翻译来自:掣雷小组
成员信息:
thr0cyte,Gr33k,花花,MrTools,R1ght0us,7089bAt
标记红色的部分为今日更新内容。
第八章:使用自动化扫描器
在这章节,我们将包括以下小节:
8.1、使用Nikto进行扫描
8.2、自动化扫描注意事项
8.3、使用Wapiti发现漏洞
8.4、使用OWASP ZAP进行扫描漏洞
8.5、使用Skipfish检测安全漏洞
8.6、使用WPScan查找WordPress中的漏洞
8.7、使用JoomScan扫描Joomla中的漏洞
8.8、使用CMSmap扫描Drupal
8.0、介绍
几乎每个渗透测试项目都必须遵循一个严格的时间表,主要由客户的需求或开发交付日期决定。对于渗透测试人员来说,拥有一个能够在短时间内对应用程序执行大量测试的工具是非常有用的,这样可以在计划的时间内识别尽可能多的漏洞。自动漏洞扫描器成为了最佳选择。它们还可以用来寻找开发替代方案,或者确保在渗透测试中没有留下明显的东西。
Kali Linux包含几个针对web应用程序或特定web应用程序漏洞的漏洞扫描器。在本章中,我们将介绍渗透测试人员和安全专业人员最广泛使用的一些工具。
8.1、使用Nikto进行扫描
每个测试人员必备的工具Nikto;它是世界上使用最广泛的免费扫描仪。正如其官方网站所述: (https://cirt.net/Nikto2)
“Nikto是一个开放源码(GPL)的web服务器扫描器,它对web服务器上的多个项目执行全面的测试,包括超过6700个潜在的危险文件/程序,检查超过1250个服务器的过期版本,以及270多个服务器上的特定于版本的问题。它还检查服务器配置项,如是否存在多个索引文件、HTTP服务器选项,并尝试标识已安装的web服务器和软件。扫描项目和插件经常更新比较活跃并且可以自动更新。”
在这个小节中,我们将使用Nikto扫描web应用程序中的漏洞并分析结果。
实战演练
Nikto是Kali Linux默认包含的命令行实用程序;打开终端开始扫描服务器:
1. 我们将扫描Peruggia漏洞应用程序,并将结果导出到一个HTML报告文件,该命令为:nikto -hhttp://192.168.56.11/peruggia/ -o result.html。输出是这样的:
-h选项告诉Nikto扫描哪个主机,-o选项告诉它在哪里存储输出,文件的扩展名决定它将采用的格式。在本例中,我们使用了.html格式的结果报告。输出也可以是CSV、TXT和XML格式。
2. 完成扫描需要一些时间。当它完成时,我们可以打开result.html文件:
原理剖析
在此小节中,我们使用Nikto扫描应用程序并生成HTML报告。在这个工具中有更多的选项用于执行特定的扫描或生成特定的输出格式。其中一些比较有用的是:
- -h:这是Nikto的帮助。
- -config<file> :在扫描中使用自定义配置文件。
- -update :这将更新插件数据库。
- -Format<format> :这定义了输出格式;它可以是CSV、HTM、NBE (Nessus)、SQL、TXT或XML。当我们希望将Nikto的结果作为其他工具的输入时,CSV、XML和NBE等格式使用的比较多。
- -evasion<technique> :这使用了一些编码技术来帮助避免web应用程序防火墙和入侵检测系统的检测。
- -list-plugins :查看可用的插件。
- -port <portnumber> :如果服务器使用非标准端口(80,443),我们需要使用该参数来告诉Nikto。
8.2、自动化扫描注意事项
通常我们用openvas和nusses等漏洞扫描器时,它会扫描目标系统的开放端口,并识别运行服务及版本,它不会发送恶意的payload。而web漏洞扫描器提交参数时,即使扫描策略进行过测试, payload被认为是安全的,但有些数据依然有可能影响到程序的完整性和稳定性。因此,再利用自动化扫描工具时,需要特别小心。
下面将介绍一些在扫描之前需要注意的地方。
实战演练
在自动化扫描之前,需要考虑以下因素:
- 优先选择测试环境,而不是生产环境。这样如果发生错误,就不会影响到真实的数据
- 做好恢复机制,在发生问题时可以恢复数据和代码
- 定义扫描范围。虽然我们可以针对整个站点启动扫描,但仍然建议定义工具的配置,避免扫描应用中脆弱或敏感的部分。
- 熟悉要使用的工具,可以先花些时间在试验靶场里测试一下工具,了解它们的功能以及扫描可能造成的影响
- 保持工具及其模块的更新,使结果与最新的漏洞披露和攻击技术一致
- 启动扫描之前确认扫描范围和参数,确保扫描不超出指定范围
- 记录全面的扫描过程,大多数工具都自带日志记录和生成报告的功能。
- 扫描过程中不能无人看管,需要不断检查工作状态,做好造成影响的第一时间反应
- 不要依赖单一工具,每个人都有自己喜欢的一款工具,但是需要记住,没有一款工具能覆盖到所有渗透测试的内容,所以交叉使用工具可以有效避免假阳性和假阴性的概率
原理剖析
上面我们介绍了扫描中需要注意的关键点,以便在后期渗透测试中避免信息损害和服务中断。
需要采取这些措施的原因是web漏洞扫描器在扫描中偏向扫描整个站点,并使用爬行到的url和参数发起进一步的有效载荷测试,若web应用未对输入进行过滤,这些探测请求的参数可能会永久存在数据库中,这将导致完整性问题,或损害到服务状态。
为了防止这种破坏,我们建议采取一系列措施,重点是准备好测试环境,熟悉工具原理,并保持更新,仔细选择要扫描的内容,并对所有扫描行为进行记录。