一、介绍
1.1 自动化扫描注意事项
通常我们用openvas和 nusses等漏洞扫描器时,它会扫描目标系统的开放端口,并识别运行服务及版本,它不会发送恶意的payload。而 web漏洞扫描器提交参数时,即使扫描策略进行过测试,payload被认为是安全的,但有些数据依然有可能影响到程序的完整性和稳定性。因此,在利用自动化扫描工具时,需要特别小心。
1.2 在自动化扫描之前,需要考虑以下因素:
1. 优先选择测试环境,而不是生产环境。这样如果发生错误,就不会影响到真实的数据。
2. 做好恢复机制,在发生问题时可以恢复数据和代码。
3. 定义扫描范围。虽然我们可以针对整个站点启动扫描,但仍然建议定义工具的配置,避免扫描应用中脆弱或敏感的部分。
4. 熟悉要使用的工具,可以先花些时间在试验靶场里测试一下工具,了解它们的功能以及扫描可能造成的影响。
5. 保持工具及其模块的更新,使结果与最新的漏洞披露和攻击技术一致。6.启动扫描之前确认扫描范围和参数,确保扫描不超出指定范围。
7. 记录全面的扫描过程,大多数工具都自带日志记录和生成报告的功能。
8. 扫描过程中不能无人看管,需要不断检查工作状态,做好造成影响的第一时间反应。
9. 不要依赖单一工具,每个人都有自己喜欢的一款工具,但是需要记住,没有一款工具能覆盖到所有渗透测试的内容,所以交叉使用工具可以有效避免假阳性和假阴性的概率。
实验虚拟机:kali、VM v1.2靶机
二、使用Nikto进行扫描
将使用工具Nikto,它是世界上使用最广泛的免费扫描仪。扫描项目和插件经常更新比较活跃并且可以自动更新。”
我们将使用Nikto扫描web应用程序中的漏洞并分析结果。
Nikto是 Kali Linux 默认包含的命令行实用程序,打开终端开始扫描服务器:
1.我们将扫描Peruggia漏洞应用程序,并将结果导出到一个HTML 报告文件,该命令为:
(靶机地址)
nikto -h http://192.168.220.132/peruggia/ -o result.html
在终端再次输入:
cp result.html /
打开result.html文件:
三、使用Wapiti发现漏洞
Wapiti是另一个基于终端的Web漏洞扫描程序,它将GET 和 POST 请求发送到寻找以下漏洞的目标站点(http://wapiti.sourceforge.net/) :
文件纰漏
数据库注入
跨站点脚本(XSs)命令执行检测
CRLF注射
XML外部实体(XXE)注入使用已知的潜在危险文件可绕过的弱.htaccess配置
存在提供敏感信息的备份文件(源代码公开)
在本文中,我们将使用Wapiti 发现我们的一个测试应用程序中的漏洞并生成扫描报告。
Wapiti是一个命令行工具,在Kali Linux 中打开终端并确保在开始之前运行易受攻击的VM:
1.在终端中,执行:(靶机地址)
wapiti -u http://192.168.220.132/peruggia/ -o wapiti_result -f html -mxss,file,blindsql
使用指定模块扫描易受攻击的VM中的Peruggia应用程序,将输出以HTML格式保存在wapiti_result目录中。
再次输入:
cp -R wapiti_result /
打开wapiti_result文件夹下的报告:
然后打开阅读模式随便复制一个漏洞,复制图中区域的内容
内容前面加上靶机地址(关闭代理)
四、使用OWASP ZAP进行扫描漏洞
OWASP ZAP是我们用于各种任务的工具,在其众多功能中,它包括一个自动漏洞扫描程序。它的使用和报告生成将在本文中介绍。
4.1安装ZAP
apt install zaproxy
我这里已经安装过了
4.2打开浏览器和FoxyProxy的代理:
打开ZAP,浏览器导航到:(靶机地址)
http://192.168.220.132/peruggia/
ZAP程序菜单中,点击站点下的文件,(勾选显示高级选项)选中,MYSQL、PHP、Linux和Apache选项卡,进行扫描。
扫描完成后,我们可以在警报选项卡查看结果然后生成报告