20189320《网络攻防》第五周作业

一、Kali视频学习总结

(一)漏洞分析之数据库评估

       1.BBQSql

       BBQSql是一个Python编写的盲注工具,当检测可疑的注入漏洞时会很有用。同时BBQSql是一个半自动工具,允许客户自定义参数。
       
       打开BBQSql出现了如上图所示的问题,通过如下处理解决了上述问题。
       
       
       

       2.DBPwAudit:数据库用户名密码枚举工具

       

       3.HexorBase:图形化的密码破解与连接工具,开源

       与DBPwAudit相比,HexorBase还可以连接并控制数据库执行一些语句等。
       
       点击Bruteforce Database Servers,可以暴力枚举用户名和密码。
       

       4.Jsql Injection

       JSQL是一款Java书写的轻量级安全测试工具,可以检测SQL注入漏洞。它跨平台(Windows、Linux、Mac OS X、Solaris)、开源且免费。将存在注入漏洞的URL贴进来即可进行响应的漏洞利用。图形化界面比较亲民,但是使用效果有待改善。
       

       5.MDBTools

       MDBTools主要是针对MDB数据库,包括MDB-Export,以及 MDB-Dump,mdb-parsecsv,mdb-sql,mdb-tables等子工具,具体环境具体使用。

       6.Oracle Scanner

       
       

       7.SIDGusser

       同样是针对Oracle的SID进行暴力枚举的工具。SID为Oracle实例名,Oracle连接字符串,通过实例名+用户+密码连接。
       

       8.SqIDICT:又一个用户名密码枚举工具,通过Wine运行

       

       9.tnscmd10g:允许向Oracle数据库里注入命令,不是很常用

       

       10.Sqlsus

       Sqlsus是一个开放源代码的MySQL注入和接管工具,Sqlsus使用perl编写,基于命令行界面。Sqlsus可以获取数据库结构,注入自己的SQL语句,从服务器下载文件,爬行Web站点可写目录,上传和控制后门,克隆数据库等等。最好的两点就是注射获取数据速度非常快以及自动搜索可写目录。
       
       (1)生成配置文件

$ sqlsus -g test.conf

       
       (2)编辑配置文件:修改our $url_start = "";写入地址

$ vi test.conf

       
       (3)启动并测试

$ sqlsus test.conf

       (4)获取数据库数据
       ①查看全部数据库名字

sqlsus> get databases

       ②设定数据库

sqlsus> set database    #database="sql"
sqlsus> set database mysql    #database="mysql"

       ③获取表

sqlsus> get tables

       11.Sqlninja

       Sqlninja是一款perl编写的一个专门针对Microsoft SQL Server的sql注入工具。它侧重于获得一个shell而不是跑数据库。它具有如下优点:
       (1)可找到远程SQL服务器的标志和特征(版本、用户执行的查询、用户特权、xp_cmdshell的可用性、身份验证模式等)。
       (2)对“sa”管理员口令的强力攻击:如果找到口令后,就将特权提升到“sa”权限。
       (3)如果原始的xp_cmdshell被禁用后,就创建一个定制的xp_cmdshell。
       (4)不需要FTP连接。
       (5)为了找到目标网络的防火墙所允许的端口,可以实施针对目标SQL服务器的TCP/UDP端口扫描。
       (6)逃避技术,这是为了使注入式代码“模糊”不清,并且混淆/绕过基于签名的IPS和应用层防火墙。
       (7)采用“盲目执行”攻击模式,在其他模式失效时,可以用于发布命令并执行诊断。
       (8)在sqlninja生成的SQL代码上,执行的是自动化的URL编码,这使得用户可以更精细地控制漏洞利用的字符串。
       (9)如果得到权限为sa,可以结合msf进一步对目标主机进行渗透。
       

       12.Sqlmap

       Sqlmap是一个开源的用Python编写的渗透测试工具,主要用于自动化地侦测和实施SQL注入攻击以及渗透数据库服务器。Sqlmap配有强大的侦测引擎,适用于高级渗透测试用户,不仅可以获得不同数据库的指纹信息,还可以从数据库中提取数据,此外还能处理潜在的文件系统以及通过带外数据连接执行系统命令等。
       常用的使用命令如下:
       
       对于拖取数据,Sqlmap非常人性化,会将获取的数据存储在sqlmap/output/中。其他几个针对性的命令参数:
       
       Sqlmap还有众多功能,如绕过WAF的tamper,修改UA的random-agent等参数,需要在实际中灵活使用。

(二)漏洞分析之Web代理

       通过应用代理工具分析数据包,或修改数据包重放、暴力攻击等在Web安全测试中经常用到,Kali下的Web应用代理工具有:

       1.Burp Suite

       Burp Suite是用于攻击Web应用程序的集成平台。Burp Suite带有一个代理,通过默认端口8080上运行,使用这个代理可以截获并修改从客户端到Web应用程序的数据包。
       
       
       例如,访问百度,在网页中输入百度的网址。
       
       可以看到,并没有直接得到百度的页面。此时打开Burp Suite,就会发现多了一个请求,如下图所示。
       
       点击Forward,打开网页此时就会出现百度的界面,如下图所示。
       

       2.OwaspZAP

       OwaspZAP攻击代理是一款查找网页应用程序漏洞的综合类渗透测试工具,包含拦截代理、自动处理、被动处理、暴力破解、端口扫描以及蜘蛛搜索等功能。OwaspZAP是会话类调试工具,调试功能对网站不会发出大量请求,对服务器影响较小。
       

       3.Paros

       paros proxy是一个对Web应用程序的漏洞进行评估的代理程序,即一个基于Java的Web代理程序,可以评估Web应用程序的漏洞。它支持动态地编辑/查看HTTP/HTTPS,从而改变cookies和表单字段等项目。它包括一个Web通信记录程序,Web圈套程序(spider)、hash计算器,还有一个可以测试常见的Web应用程序攻击(如SQL注入式攻击和跨站脚本攻击)的扫描器。该工具检查漏洞形式包括:SQL注入、跨站点脚本攻击、目录遍历等。
       

       4.Proxystrike

       

       5.Vega代理功能

       Vega是一个开放源代码的Web应用程序安全测试平台。它能帮助验证注入SQL、跨站脚本(XSS)、敏感信息泄露和其它一些安全漏洞。Vega使用Java编写,有GUI,可以在Linux、OS X和Windows下运行。

       6.WebScarab

       WebScarab是一款基于GNU协议,使用Java编写的代理软件,包括HTTP代理、网络爬行、网络蜘蛛、会话ID分析、自动脚本接口、模糊测试工具、Web格式的编码/解码、Web服务描述语言和SOAP解析器等功能。
       

(三)漏洞分析之Burp Suite

       Burp Suite是一个Web应用程序集成攻击平台,它包含了一系列burp工具,这些工具之间有大量接口可以互相通信,从而促进和提高整个攻击的效率。平台中所有工具共享同一robust框架,以便统一处理HTTP请求。
       Burp Suite允许攻击者结合手工和自动技术去枚举、分析、攻击Web应用程序。这些不同的burp工具通过协同工作,有效的分享信息,支持以某种工具中的信息为基础供另一种工具使用的方式发起攻击。
       
       使用Burp Suite主要包括如下几个步骤:

       1.配置监听端口,配置浏览器

       打开设置-网络-代理,然后告诉它使用“localhost”和端口“8080”(或任何正在运行的端口,默认Burp:8080),然后保存更新的设置。
       

       2.爬虫与扫描

       可以列出当前浏览网站中已获取到的目录与文件以及引用到的其他网站。

       3.测试暴力破解表单账户密码

       可以针对不同表单进行枚举破解,若网站存在代码缺陷,亦可绕过某些验证码进行枚举。

       4.Repeater改包重发模块

       很方便直观的改包提交,查看回显,在实际测试一个外部应用漏洞时很有用。

       5.Decoder模块

       一个易于使用的编码解码工具。
       

       6.Comparer模块

       比较两个请求包或返回包的不同之处。

       7.插件模块

       为自己的Burp Suite添加实用的插件。

(四)漏洞分析之Fuzz工具

       模糊测试是漏洞挖掘过程中的重要一步,Kali下的模糊测试工具有:

       1.Bed.pl

       Bed(Bruteforce Exploit Detector)是一个纯文本协议的Fuzz工具,能够检查常见的漏洞,如缓冲区溢出、格式串漏洞、整数溢出等。
       使用参数如下图所示,可选择针对不同协议的插件。
       
       

       2.Fuzz_ipv6

       Fuzz_ipv6是THC出品的一个针对IPV6协议的模糊测试工具。
       

       3.Ohrwurm

       

       4.Powerfuzzer

       
       Burp Suite等Web代理工具也具有响应的Fuzz能力。

       5.Wfuzz

       Wfuzz是一个针对Web应用的模糊测试工具,可以进行Web应用暴力猜解,也支持对网站目录、登录信息、应用资源文件等的暴力猜解,还可以进行get及post参数的猜解,SQL注入、XSS漏洞的测试等。该工具的所有功能都依赖于字典。
       
       与Burp Suite不同,Wfuzz更轻量级。

       6.Sfuzz:Simple-Fuzzer

       

       7.XSSer:针对XSS漏洞的发掘

       
       使用xsser --gtk 命令可以打开一个图形化的页面,如下图所示。
       

二、教材学习总结

(一)Web应用程序体系结构及其安全威胁

       Web应用程序是一种使用浏览器在互联网或企业内部网上进行访问操作的应用软件形态,通常以浏览器支持的语言所编写,或能够在浏览器控制的环境中运行,依赖于浏览器来对应程序进行渲染与执行。更新和维护Web应用程序无须向大量客户端分发、安装与更新任何软件。Web应用的体系结构由浏览器作为客户端主要完成数据显示与展示内容的渲染功能,由功能强大的服务器负责完成主要业务的计算处理;两者之间通过因特网或内联网上HTTP/HTTPS应用层协议的请求与应答进行通信。服务器端由Web服务器软件、Web应用程序及后端数据库构成,通过经典的三层架构,即表示层、业务逻辑层和数据层,来进行组织与构建。

       1.Web应用体系结构

       Web应用体系结构包括浏览器、Web服务器、Web应用程序、数据库和传输协议HTTP/HTTPS这些关键组件。

       2.Web应用安全威胁

       在整个体系结构,每个组件中都存在着安全弱点,容易遭受各种攻击。其中每个组件所面临的典型安全威胁和攻击类型分别为:
       (1)针对浏览器和终端用户的Web浏览安全威胁。如以浏览器渗透攻击为核心的网页木马、Phishing网站钓鱼等。
       (2)针对传输网络的网络协议安全威胁。如针对HTTP明文传输协议的敏感信息监听,在网络层、传输层和应用层都存在的假冒身份攻击,以及拒绝服务攻击等。
       (3)系统层安全威胁。Web站点的宿主操作系统,如Windows、Server、Linux等,存在着远程渗透攻击和本地渗透攻击威胁。
       (4)Web服务器软件安全威胁。Web服务器软件如IIS、Apache作为一种典型的网络服务,也不可避免地存在着安全漏洞与弱点。
       (5)Web应用程序安全威胁。如SQL注入攻击、XSS跨站脚本攻击等。
       (6)Web数据安全威胁。Web站点中在Web应用程序后台存储的关键数据内容,以及Web客户输入的数据内容,存在着被窃取、篡改及输入不良信息等威胁。

(二)Web应用安全攻防技术概述

       1.Web应用的信息收集

       (1)手工审查Web应用程序结构与源代码。
       攻击者收集目标Web应用程序有如下各种不同类型的信息:
       ①静态和动态生成的页面。
       ②目录结构。如有一款经典Web应用服务探测工具Whisker可以来探查特定目录是否在目标服务器上存在。
       ③辅助性文件。手动审查这些辅助性文件可能会得到数据库字段结构、目录路径、Web应用输入参数以及数据库连接字符串等重要信息。
       ④输入表单。表单是Web应用程序接受用户输入的主要途径。
       ⑤查询参数字符串。
       (2)自动下载与镜像Web站点页面。
       (3)使用Google Hacking技术审查与探测Web应用程序。
       Google Hacking技术特指使用Google搜索引擎或其他的Google应用,在Web站点中的配置、计算机代码及包含数据中,寻找安全漏洞与敏感信息的计算机黑客技术。最简单的Google Hacking就是使用一串独特关键字来定位一些存有漏洞的Web应用程序特定版本。在Google搜索中,还可以通过Site关键字来限定搜索的域名范围,从而能够针对目标Web站点实施更具针对性的Web应用信息情报收集,根据其查询条件记录,分为“获取攻击入口点”、“获取攻击所需信息”、探测安全漏洞和“获取敏感信息与数据”四个大类别。SiteDigger是能自动进行Google Hacking搜索的免费软件。
       (4)Web应用程序安全评估与漏洞探测。
       针对Web应用程序的攻击主要集中在身份验证、会话管理、数据库操作、输入数据合法/合理性检查。
       Web应用安全辅助分析工具包括如下三种重要类型:
       ①浏览器插件。②免费工具集。③商业Web应用安全评估系统和漏洞扫描器。

       2.攻击Web服务器软件

       Web服务器平台中的安全漏洞主要分为如下五个大类:
       (1)数据驱动的远程代码执行安全漏洞。
       (2)服务器功能扩展模块漏洞。
       (3)样本文件安全漏洞。
       (4)源代码泄露。
       (5)资源解析攻击。

       3.攻击Web应用程序

       目前安全最薄弱的环节在于Web应用程序。在2004年发布的《WASC Web安全威胁分类v1.0》中,将Web应用程序安全威胁从攻击技术角度分为如下六类:
       (1)针对认证机制的攻击。
       (2)授权机制的攻击。
       (3)客户端攻击。
       (4)命令执行攻击。
       (5)信息暴露。
       (6)逻辑攻击。
       其中,最流行的两类Web应用程序安全漏洞和攻击技术:SQL注入和XSS跨站脚本

       4.攻击Web数据内容

       Web站点除了通过服务器软件和应用程序中存在安全漏洞和弱点遭受攻击之外,还面临着针对敏感数据内容的攻击威胁,具体包括:
       (1)安全敏感数据泄漏。
       (2)网站篡改。在中国黑客社区中,网站篡改被称为“黑站”。大多数网站篡改并不具备破坏性,不会对网站内容和服务器进行恶意删除或破坏,或利用被攻陷网站实施其他攻击行为。
       (3)不良信息内容上传。

       5.Web应用安全防范措施

       (1)Web站点网络传输安全设防措施
       ①尽量使用HTTPS来保障Web站点传输时的保密性、完整性与身份真实性,至少要对登陆过程进行加密保护。
       ②通过加密的连接通道来管理Web站点,避免使用未经加密的telent、FTP、HTTP来进行后台管理,而使用SSH、SFTP等安全协议。
       ③对关键的Web服务器,设置静态绑定的MAC-IP映射,在服务网段内进行ARP等各类欺骗攻击的检测与MAC封禁机制,在网关位置部署防火墙与入侵检测系统对Web服务器实施保护与安全检测,采用冗余等机制来应对拒绝服务攻击。
       (2)Web站点操作系统及服务安全设防措施
       ①对Web站点的操作系统与服务器软件进行及时的补丁更新。
       ②对Web站点服务器的操作系统及各种开放服务进行远程安全漏洞扫描,在攻击者利用安全漏洞实施攻击之前发现和修补这些安全漏洞。
       ③采用提升系统与服务安全性的一般性设防措施。
       (3)Web应用程序安全设防措施
       (4)Web站点数据安全设防措施
       ①提高网站内容维护人员的数据安全意识;培养注重个人隐私的良好习惯;对于允许用户提交数据的网站,需重视用户提交数据的合法性审查。
       ②对维护网站的数据安全实施日常监测和防护。

(三)SQL注入

       代码注入是针对Web应用程序的主流攻击技术之一,通过利用Web应用程序的输入验证不完善漏洞,使得Web应用程序执行由攻击者所注入的恶意指令和代码,造成敏感信息泄露、权限提升或对系统的未授权访问等危害后果,根据目标的不同分为:

  • 恶意读取、修改与操纵数据库的SQL注入攻击,是最常见也是较为直观的一种攻击技术。
  • 在Web服务器端安装、执行Webshell等恶意脚本的PHP注入或ASP注入攻击。
  • 在Web服务器端恶意执行操作系统命令的Shell注入攻击。
  • 其他多种多样的攻击如LDAP注入、邮件命令注入。

       1.SQL注入攻击原理

       SQL注入攻击原理是向Web应用程序提供的用户输入接口输入一段精心构造的SQL查询命令,攻击和利用不完善的输入验证机制,使得注入代码得以执行完成非预期的攻击操作行为。
       一种常见的SQL注入漏洞是利用字符串输入参数对转义字符过滤不完善。在支持同时执行多条SQL语句的后台数据库管理系统中,最终将顺序执行三个不同的SQL查询与操作,即对accounts表进行查询,完全删除accounts表以及查询admin表获取全部记录信息。另一种常见的SQL注入漏洞是由于不正确的类型处理,没有对用户输入参数进行类型约束的检查。

       2.SQL注入攻击步骤和过程

       (1)发现SQL注入点。
       (2)判断后台数据库类型。
       (3)后台数据库中管理员用户口令字猜解。
       (4)上传ASP后门,得到默认账户权限。
       (5)本地权限提升。
       (6)利用数据库扩展存储过程执行Shell命令。

       3.SQL注入攻击防范措施

       主要依靠对用户输入中特殊字符严格的输入验证机制,及对输入参数类型与长度的严格检查与限制机制。具体来说需注意如下几个方面:
       (1)使用类型安全的参数编码机制。
       (2)凡是来自外部的用户输入,必须进行完备检查。
       (3)将动态SQL语句替换为存储过程、预编译SQL或ADO命令对象。
       (4)加强SQL数据库服务器的配置与连接。

(四)XSS跨站脚本攻击

       1.XSS攻击技术原理

       与代码注入类似,XSS攻击的根源同样是Web应用程序对用户输入内容的安全验证与过滤不够完善。而与代码注入不同的是,XSS攻击的最终攻击目标不是Web服务器,而是访问这些Web服务器的用户。

       2.XSS攻击类型

       XSS跨站脚本漏洞有两种类型:持久性XSS漏洞和非持久性XSS漏洞。其中,持久性XSS漏洞是危害最为严重的XSS漏洞。

       3.XSS攻击防范措施

       对XSS跨站脚本的防范分为服务器端和客户端两个方面。
       (1)服务器端防范措施:①输入验证。②输出净化。③消除危险的输入点。
       (2)客户端防范措施:提升浏览器的安全设置。

(五)Web浏览的安全问题与威胁

       1.Web浏览器软件的安全困境三要素:复杂性、可扩展性、连通性。

       2.Web浏览安全威胁位置

       如同Web应用服务端一样,Web浏览环境中的每个组件也都面对着各种不同类型的安全威胁。
       (1)针对传输网络的网络协议安全威胁。
       (2)针对Web浏览端系统平台的安全威胁。
       (3)针对Web浏览器软件及插件程序的渗透攻击威胁。
       (4)针对互联网用户的社会工程学攻击威胁。

(六)Web浏览端的渗透攻击威胁——网页木马

       1.网页木马发展与流行的驱动力——黑客地下经济链

       黑客地下经济链中包括病毒编写者、黑站长/网络骇客、“信封”盗窃者、虚拟资产盗窃者、虚拟资产卖家和玩家六种不同类型的参与者。

       2.网页木马存在的技术基础——Web浏览端安全漏洞

       3.网页木马的本质核心——浏览器渗透攻击

       4.网页挂马

       在编写完成网页木马渗透攻击代码之后,攻击者还需要将网页木马挂接到一些拥有客户访问流量的网站页面,这一过程称为网络挂马。网络挂马最主要的有如下四类策略:
       (1)内嵌HTML标签。
       (2)恶意Script脚本。
       (3)内嵌对象连接。
       (4)ARP欺骗挂马。

       5.混淆机制(也被称为“免杀”)

       除了引入中间跳转节点进行嵌套链接,并集成多种渗透攻击代码之外,网页木马还往往采用了大量的混淆技术,来对抗反病毒软件的检测,并提高反病毒工程师的分析难度,从而使得网页木马攻击网络更难被检测和摧毁。

原文地址:https://www.cnblogs.com/microsala/p/10630310.html