一.教材《网络攻防技术》第十一、十二章的学习
1.Web应用程序体系结构及其安全威胁
Web应用体系结构包括浏览器、web服务器、web应用程序数据库、传输协议。
Web应用安全威胁和攻击类型:针对浏览器和终端用户的Web浏览安全威胁;系统层安全威胁;Web服务器软件安全威胁;Web应用程序安全威胁;Web数据安全威胁。
2.Web应用安全攻防技术概述
Web应用的信息收集,针对Web应用程序的探测和漏洞发现的技术方法:手工审查Web应用程序结构与源代码、自动下载与镜像Web站点页面、使用Google Hacking技术审查与探测Web应用程序、Web应用程序安全评估与漏洞探测。
攻击Web服务器软件,Web服务器平台中的安全漏洞主要有:数据驱动的远程代码执行安全漏洞、服务器功能扩展模块漏洞、样本文件安全漏洞、源代码泄露、资源解析攻击。
攻击web应用程序(6类):针对认证机制的攻击、授权机制的攻击、客户端攻击、命令执行攻击、信息暴露、逻辑攻击。
攻击Web数据内容,具体包括安全敏感数据泄露、网站内容遭受篡改和不良信息内容上传。
针对上述各种类型Web应用安全威胁、信息收集和攻击技术手段,应设计、部署和实施安全防护措施:Web站点网络传输安全设防措施、Web站点操作系统及服务安全设防措施、web应用安全设防措施、web站点数据安全设防措施。
3.SQL注入
代码注入是针对web应用程序的主流攻击技术之一。代码注入根据攻击目标的不同又分为:恶意读取、修改与操纵数据库的SQL注入攻击;在Web服务器端安装、执行Webshell等恶意脚本的PHP注入或ASP注入攻击;在web服务器端恶意执行操作系统命令的Shell注入攻击;其他注入攻击。
SQL注入原理,是向Web应用程序提供的用户输入接口输入一段SQL查询命令,攻击和利用不完善的输入验证机制,使得注入代码得以执行完成非预期的攻击操作行为。
攻击步骤:发现SQL注入点;判断后台数据库类型;后台数据库中管理员用户口令字猜解;上传ASP后门,得到默认账户权限;本地权限提升;利用数据库扩展存储过程执行Shell命令。
SQL注入攻击防范措施:使用类型安全的参数编码机制;凡是来自外部的用户输入,必须进行完备检查;将动态SQL语句替换为存储过程、预编译SQL或ADO命令对象;加强SQL数据库服务器的配置与连接。
4.XSS跨站脚本攻击
XSS跨站脚本攻击的最终目标是使用Web应用程序的用户。XSS跨站脚本漏洞有两种类型:持久性XSS漏洞和非持久性XSS漏洞。前者是危害最为严重的XSS漏洞。
XSS攻击防范措施:
(1)服务器端防范措施:输入验证、输出净化、消除危险的输入点。
(2)客户端防范措施:提高浏览器访问非受信网站时的安全等级、关闭cookie功能等。
5.web浏览器安全威胁
Web浏览器软件安全困境三要素:复杂性、可扩展性、连通性。
Web安全威胁位置
- 传输网络的网络协议安全威胁
- Web浏览端系统平台的安全威胁
- Web浏览器软件及插件程序的渗透攻击威胁
- 互联网用户社会工程学攻击威胁
6.网络钓鱼(phishing)
网络钓鱼是社会工程学在互联网中广泛实施的一种典型攻击方式。
原理:通过大量发送声称来自于银行或其他知名机构的欺骗性垃圾邮件,意图引诱收信人给出个人敏感信息。
普遍技术流程:
- 攻击者扫描网段,寻找存有漏洞的服务器;
- 服务器被攻陷,并被安装一个rootkit或口令保护的后门工具;
- 攻击者从加密的后门工具获得对服务器的访问权,并下载已经构建完毕的钓鱼网站内容,进行一些网站搭建配置与测试工
作,使得钓鱼网站上线运行;
- 攻击者下载群发电子邮件工具,并大规模散发垃圾邮件;
- 网页浏览的流量开始到达钓鱼网站,受害者访问并给出个人敏感信息,攻击者通过后台脚本收集这些信息。
二.Kali视频学习
视频16.Kali漏洞分析中数据库评估的工具
1.BBQSQL
一种用Python写的SQL盲注框架。当发动QL注入漏洞攻击时,它将非常有用。BBQSQL是半自动工具,允许许多难以触发的SQL注入变得用户化。BBQSQL最重要的是它不关心数据或数据库。
2.DBPwAudit (数据库用户名密码枚举工具)
功能:通过挂载字典对目标数据库进行密码暴力猜解,目前支持的数据库包括SQLServer、MySQL、Oracle、DB2
破解SQLServer数据库:
./dbpwaudit -s IP -d master(数据库名) -D mssql(数据库类型) -U username(字典) -P password(字典)
破解MySQL数据库:
./dbpwaudit.sh -s IP -d mysql(数据库名) -D MySQL(数据库类型) -U username(字典) -P password(字典)
3.HexorBase
图形化的密码破解与连接工具,支持MySQL、Oracle、PostgreSQL、SQLite和SQL Server五大主流数据库。它允许安全人员指定用户字典和密码字典,然后实施字典攻击。同时,它还提供对应的图形界面客户端,允许安全人员使用破解出的用户名和密码,对数据库进行远程管理。
4.jSQL
jSQL是一款Java开发的轻量级远程服务器数据库注入漏洞测试工具,且免费、开源、跨平台 (Windows, Linux, Mac OS X, Solaris)。将存在注入漏洞的URL贴进去即可进行响应的漏洞利用。
5.MDBTools
包括MDB-Export,以及MDB-Dump,mdb-parsecsv,mdb-sql,mdb-tables等子工具
6.Oracle Scanner
OScanner 是基于Java开发的一个Oracle评估框架。它有一个基于插件的架构并附带几个插件,目前可以实现:
- Sid枚举
- 密码测试(常见&字典)
- 枚举Oracle版本
- 枚举账号权限
- 枚举账号哈希
- 枚举审计信息
- 枚举密码策略
- 枚举数据库链接
7.SIDGuesser
针对Oracle的SID进行暴力枚举的工具。
SID为Oracle实例名,Oracle连接字符串,通过实例名+用户+密码连接。当用户希望远程连接Oracle数据库时,则需要知道SID、用户名、密码及服务器的IP地址。
8.sqldict
SQLdict是一个Windows程序,是一款用户名密码枚举工具,运行时会自动调用Kali Linux内置的Wine组件。渗透测试人员只要指定目标IP地址、账户名和密码字典,就可以实施密码爆破。
视频17.漏洞分析之数据库评估(二)
1.tnscmd10g
允许向Oracle数据库注入数据。
2.Sqlsus
一个开放源代码的MySQL注入和接管工具,sqlsus使用perl编写,基于命令行界面。Sqlsus可以获取数据库结构,注入自己的SQL语句,从服务器下载文件,爬行web站点可写目录,上传和控制后门,克隆数据库等。最好用的两点就是注射获取数据速度非常快,另外一个最大的特点就是自动搜索可写目录。使用时,首先使用sqlsus -g test.conf生成一个配置文件。在配置文件中,设置注入路径以及注入的各项参数,如修改our $url_start = “”,引号里写入输入注入点。然后使用sqlsus test.conf命令加载该文件,实施渗透测试(get databases获取数据库,set database 设定数据库,get tables获取表)
3.sqlninja
一款Perl编写的一个专门针对microsoft SQL server的SQL注入工具,和市面上其他的注入工具不同,sqlninja没有将精力用在跑数据库上,而是侧重于获得一个shell。
4.Sqlmap
SQLMAP是一个开源的渗透测试工具,它主要用于自动化的侦测和实施SQL注入以及渗透数据库服务器,SQLMAP配有强大的侦测引擎,适用于高级渗透测试用户,不仅可以获得不同数据库的指纹信息,还可以从数据库中提取数据,此外还能够处理潜在的文件系统以及通过带外数据连接执行系统命令等。
视频18.Kali漏洞分析之Web应用代理
通过web应用代理工具分析数据包,或修改数据包重放、暴力攻击等在WEB安全测试中经常用到。
web应用代理工具有:burpsuite、owasp-zap、paros、vega、webscarab、proxystrike
1.Burp Suite
Burp Suite是用于攻击web应用程序的集成平台。Burp Suite带有一个代理,通过默认端口8080运行,使用这个代理,可以截获并修改从客户端到web应用程序的数据包。
2.OwaspZAP
OWASP Zed Attack Proxy Project攻击代理(简称ZAP),是一款查找网页应用程序漏洞的综合类渗透测试工具。它包含了“拦截代理、自动处理、被动处理、暴力破解、端口扫描以及蜘蛛搜索”等功能。OwaspZAP为会话类调试工具,调试功能对网站不会发起大量请求,对服务器影响较小。
OWASP_ZAP 默认监听的是 8080 端口,并且在启动 ZAP 的时候便会自动开始监听。如此,只需设置浏览器代理,ZAP 便会自动爬取所有数据。
ZAP 最简单的使用方式便是在首页直接输入目标 Target 然后点击“攻击”便会开始主动扫描了。
3.Paros
paros proxy,这是一个对web应用程序的漏洞进行评估的代理程序,即一个基于Java的web代理程序,可以评估web应用程序的漏洞。它支持动态的编辑/查看HTTP/HTTPS,从而改变cookies和表单字段等项目。
它包括一个web通信记录程序,web圈套程序(spider),hash计算机,还有一个可以测试常见的web应用程序攻击的扫描器。该工具检查漏洞形式包括:SQL注入、跨站点脚本攻击、目录遍历等。
4.Webscarab
Webscarab一款代理软件,包括HTTP代理,网络爬行、网络蜘蛛、会话ID分析,自动脚本接口,模糊测试工具,WEB格式的编码/解码,WEB服务描述语言和SOAP解析器等功能模块。Webscarab基于GNU协议,使用Java编写,是WebGoat中所使用的工具之一。
视频19.漏洞分析之BurpSuite
Burp Suite是一个Web应用程序集成攻击平台,它包含了一系列burp工具,这些工具
之间有大虽接口可以互相通信,这样设计的目的是为了促进和提高整个攻击的效率。平台中
所有工具共享同一 robust 框架,以便统一处理HTTP请求,持久性,认证,上游代理,日志
记录,报帑和可扩展性。
Burp Suite 允许攻击者结合手工和自动技术去枚举、分析、攻击Web应用程序。这些
不冋的burp工具通过协同工作,有效的分享信息,支持以某种工具中的信息为基础供另一
种工具使用的方式发起攻击。
-
Proxy提供一个直观、友好的用户界面,它的代理服务器包含非常详细的拦截规则,井
能准确分析HTTP消息的结构与内容 -
Spide爬行蜘蛛工具可以用来抓取目标网站,以显示网站的内容,基本结构和其他功能
当浏览Web应用时,spider会从HTML响应内容中主动生成一份URL列表,然后尝试连接URL。首先点击Target–> Site Map标签,然后右键域名,选择“Add To Scope”:
- Scanner Web应用程序的安全漏洞进行自动发现工具。它被设计用于渗透测试,并密
切与现有的技术和方法,以适应执行手动和半自动化的Web应用程序滲透测试 - Repeater 可手动重新发送单个HTTP请求
- Intruder 是burp套件的优势,提供一组特别有用的功能。它可以自动实施各种定制攻击,包括资源枚举、数据提収、模糊测试等常见漏洞等。在各种有效的扫描工具中,它能够以最细化、最简单的方式访问它生产的请求与响应,允许组合利用个人智能与该工具的控制优点。
- Sequencer 对会话令牌,会话标识符或其他出于安全原因需要随机产生的键值的可预测性进行分析。
- Decoder 转化成规范的形式编码数据,或转化成各种形式编码和散列的原始数据。它能够智能识別多种编码格式,使用启发式技术。
- Comparer 执行比较数据之间的任何两个项目(一个可视化的“差异”)。在攻击一个Web应用程序的情况下,这一要求通常会出现当你想快速识别两个应用程序的响应之间的差异(例如,入侵者攻击的过程中收到的两种反应之间之间,或登录失败
的反应使用有效的和无效的用户名)之间,或两个应用程序诘求(例如,确定不同的行为引起不同的请求参数)
视频20.Kali漏洞分析之Fuzz工具
Fuzz工具是一个模糊测试工具。模糊测试是一种介于完全的手工渗透测试与完全的自动化测试之间的安全性测试类型,是一种通过向目标系统提供非预期的输入并监视异常结果来发现软件漏洞的方法。测试的基本思想就是通过向程序中输入大量的随机数据,然后观察输入这些数据之后程序的情况,记录下使程序发生异常的数据,从而判断程序是在那些地方发生了异常。 简言之,就是发送一连串可能畸形的数据包,尝试使程序报错,从而进行判断。
1.Bed
Bed是一个纯文本协议的Fuzz工具,能够检查常见的漏洞,如缓冲区溢出,格式串漏洞,整数溢出等。BED通过加载插件,向目标主机发送攻击数据。如果发现目标无法响应,说明目标可能存在溢出区漏洞。经过多次测试验证,就可以判断漏洞出现的位置。然后通过手工执行验证,代码审核、反编译等方式,就可以找出漏洞具体触发机制,从而加以利用。
2.ohrwurm
一个迷你的对RTP的fuzz工具,主要针对SIP通信的fuzz
3.PowerFuzzer
4.Wfuzz
针对WEB应用的模糊测试工具,可以进行web应用暴力猜解,也支持对网站目录、登录信息、应用资源文件等的暴力猜解,还可以进行get及post参数的猜解,sql注入、xss漏洞的测试等。所有功能依赖于字典。
5.Xsser