kaliLinux使用自动扫描器

kaliLinux使用自动扫描器

一、关于本实验

随着互联网的发展,Web 应用程序已经成为我们日常生活中不可或缺的一部分。然而,由于开发人员的瑕疵和安全意识不足,Web 应用程序也成为了黑客攻击的重要目标。在这种情况下,Web 渗透测试显得尤为重要。

传统的 Web 渗透测试方法是手动测试,但是手动测试存在很多缺点,比如测试时间长、测试效率低、测试质量不稳定等。而自动化测试则能够有效地解决这些问题。Web 渗透测试自动化扫描程序可以帮助我们快速发现 Web 应用程序的漏洞,并生成详尽的报告,为开发人员提供修补建议,从而保障 Web 应用程序的安全性。

通常我们用openvas和nusses等漏洞扫描器时,它会扫描目标系统的开放端口,并识别运行服务及版本,它不会发送恶意的payload。而web漏洞扫描器提交参数时,即使扫描策略进行过测试,payload被认为是安全的,但有些数据依然有可能影响到程序的完整性和稳定性。因此,在利用自动化扫描工具时,需要特别小心。

下面将介绍一些在扫描之前需要注意的地方:

1.优先选择测试环境,而不是生产环境。这样如果发生错误,就不会影响到真实的数据。

2.做好恢复机制,在发生问题时可以恢复数据和代码。

3.定义扫描范围。虽然我们可以针对整个站点启动扫描,但仍然建议定义工具的配置,避免扫描应用中脆弱或敏感的部分。

4.熟悉要使用的工具,可以先花些时间在试验靶场里测试一下工具,了解它们的功能以及扫描可能造成的影响。

5.保持工具及其模块的更新,使结果与最新的漏洞披露和攻击技术一致。

6.启动扫描之前确认扫描范围和参数,确保扫描不超出指定范围。

7.记录全面的扫描过程,大多数工具都自带日志记录和生成报告的功能。

8.扫描过程中不能无人看管,需要不断检查工作状态,做好造成影响的第一时间反应。

9.不要依赖单一工具,每个人都有自己喜欢的一款工具,但是需要记住,没有一款工具能覆盖到所有渗透测试的内容,所以交叉使用工具可以有效避免假阳性和假阴性的概率。

二、实验目的

本次实验旨在引导学生熟悉常见的 Web 渗透测试自动化扫描工具和测试流程。通过本实验,学生将了解到如何通过自动化工具扫描 Web 应用程序,如何分析扫描结果,如何生成测试报告以及如何提出修复建议。

在实验前,建议学生先学习一些 Web 渗透测试基础知识,如 SQL 注入、XSS 攻击、CSRF 攻击等常见漏洞类型的原理和检测方法。此外,还需要了解一些常见的 Web 安全防御措施,比如输入验证、输出过滤、用户身份认证、访问控制等,以便更好地理解和分析扫描结果。

Web 渗透测试自动化扫描是保障 Web 应用程序安全的重要手段之一,通过深入学习和实践,我们可以更好地了解它的工作原理和应用场景,从而提高我们对 Web 应用程序安全的重视程度和防御能力。

三、实验步骤

1.Nikto进行扫描

每个测试人员必备的工具Nikto,它是世界上使用最广泛的免费扫描仪。正如其官方网站(https://cirt.net/Nikto2)所述:
“Nikto是一个开放源码(GPL)的web服务器扫描器,它对web 服务器上的多个项目执行全面的测试,包括超过6700个潜在的危险文件/程序,检查超过1250个服务器的过期版本,以及270多个服务器上的特定于版本的问题。它还检查服务器配置项,如是否存在多个索引文件、HTTP服务器选项,并尝试标识已安装的web服务器和软件。扫描项目和插件经常更新比较活跃并且可以自动更新。”

Nikto 是Kali Linux默认包含的命令行实用程序,打开终端开始扫描服务器:
1.我们将扫描Peruggia 漏洞应用程序,并将结果导出到一个HTML报告文件,该命令为:nikto-h http://192.168.150.129/peruggia/ -o result.html 。输出是这样的
在这里插入图片描述
-h 选项告诉Nikto扫描哪个主机,-0选项告诉它在哪里存储输出,文件的扩展名决定它将采用的
格式。在本例中,我们使用了.html格式的结果报告。输出也可以是CSV、TXT和XML格式.
2.完成扫描需要一些时间。当它完成时,我们可以打开result.html文件:
在这里插入图片描述
我们使用Nikto 扫描应用程序并生成HTML报告。在这个工具中有更多的选项用于执行特定的扫描或生成特定的输出格式。其中一些比较有用的是

-h:这是 Nikto的帮助.
-config:在扫描中使用自定义配置文件。
-update:这将更新插件数据库。
-Format:这定义了输出格式,它可以是 CSV、HTM、NBE(Nessus)、SQL、TXT或XML。当我们希望将 Nikto 的结果作为其他工具的输入时,CSV、XML 和 NBE 等格式使用的比较多。

evasion:这使用了一些编码技术来帮助避免web应用程序防火墙和入侵检测系统的检测。

-list-plugins:查看可用的插件。-port :如果服务器使用非标准端口(80,443),我们需要使用该参数来告诉Nikto。

2.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.56.11/peruggia/ -o wapiti_result-f html-m xss,file,blindsql使用指定模块扫描易受攻击的VM中的Peruggia 应用程序,将输出以HTML 格式保存在 wapiti result 目录中。
2.等待扫描完成并打开报告的目录,然后打开 index.html 文件, 那么,你会看到这样的东西:
在这里插入图片描述
在这里,我们可以看到Wapiti发现了12个XSS和5个文件处理漏洞。
3.现在,单击CrossSite Scripting以查看结果的详细信息。
4.选择一个漏洞,然后单击HTTP请求,我们将选择第二个并选择并复制请求的URL部分
在这里插入图片描述
5.现在,我们将该URL粘贴到浏览器中并添加服务器部分
( http://192.168.150.129/peruggia/index.php?action=comment&pic_id=%3E%3C%2F%3E%
3Cscript%3Ealert%28%27wp6dpkajm%27%29%3C/Script%3E ),结果应如下所示:
在这里插入图片描述
我们发现确实存在一个XSS漏洞。

我们跳过了这个配置中的盲SQL注入测试(-m“-blindsql”),因为我们已经知道这个应用程序很容易受到攻击。当它达到计算基于时间的注入时,它会引发超时错误,使Wapiti 在扫描完成之前关闭,因为Wapiti 通过注入sleep()命令多次测试,直到服务器超过超时阈值。

此外,我们选择了输出的HTML格式(-fhtml)和wapiti_result 作为报告的目标目录,我们还可以使用其他格式,例如JSON,OpenVas,TXT或XML。

Wapiti的其他命令选项包括:
-x:从扫描中排除指定的URL,对注销和密码更改URL特别有用。i:从XML文件恢复以前保存的扫描。文件名是可选的,因为如果省会从其扫描文件夹中获取文件。
-a <login%password>:使用指定的凭据对应用程序进行身份验证。
–auth-method :定义-a 选项的身份验证方法,basic,digest,kerberos,或ntlm。
-s:定义用于开始扫描的URL。
-p <proxy_url>:使用HTTP或HTTPS代理。

3.OWASP ZAP进行漏洞扫描

OWASP ZAP 是我们已经在本书中用于各种任务的工具,在其众多功能中,它包括一个自动漏洞扫描程序。 它的使用和报告生成将在本文中介绍。
我们在 OWASPZAP 中执行成功的漏洞扫描之前,我们需要抓取现场:
1.打开OWASPZAP并配置 Web浏览器以将其用作代理。
2.导航到http://192.168.150.129/peruggia。
3.按照第3章“使用代理,爬网程序和蜘蛛”中的使用ZAP蜘蛛的说明进行操作。

浏览了应用程序或运行ZAP的蜘蛛,我们开始扫描:
1.转到OWASPZAP的“站点”面板,右键单击peruggia文件夹。
2.从菜单中,导航到Attack|主动扫描,如下所示截图:
在这里插入图片描述
3.将弹出一个新窗口。在这一点上,我们知道我们的应用是什么技术和服务器使用,所以,转到 Technology 选项卡,只检查 MySQL,PHP,Linux 和 Apache:
在这里插入图片描述
在这里,我们可以根据Scope(开始扫描的位置,在什么上下文等)配置我们的扫描,输入向量(选择是否要在GET和POST请求中测试值,标题cookie 和其他选项),自定义向量(将原始请求中的特定字符或单词添加为攻击向量),技术(要执行的技术特定测试)和策略(选择特定测试的配置参数)。
4.单击“开始扫描”
5.“活动扫描”选项卡将显示在底部面板上,扫描期间发出的所有请求都将显示在此处。
6.扫描完成后,我们可以在“警报”选项卡中查看结果,如下面的屏幕截图所示:

在这里插入图片描述如果我们选择一个警报,我们可以看到发出的请求和从服务器获得的响应。这允许我们分析攻击并定义它是真正的漏洞还是误报。我们还可以使用此信息进行模糊测试,在浏览器中重复请求,或深入挖掘开发。
7.要生成HTML报告(与以前的工具一样),请转到主菜单中的“报告”,然后选择“生成HTML报告”。
8.新对话框将询问文件名和位置。例如,设置zapresult.html,完成后打开文件:
在这里插入图片描述
OWASPZAP 能够执行主动和被动漏洞扫描,被动扫描是OWASPZAP在我们浏览发送数据和点击链接时进行的非侵入式测试。主动测试涉及对每个表单变量或请求值使用各种攻击字符串,以便检测服务器是否响应我们可以称之为易受攻击的行为。
OWASPZAP 拥有各种技术的测试字符串,首先确定我们的目标使用的技术是有用的,以便优化我们的扫描并减少被检测或导致服务中断的可能性。

此工具的另一个有趣功能是,我们可以在同一窗口中分析导致检测到漏洞及其相应响应的请求。它被检测到的那一刻。这使我们能够快速确定它是真正的漏洞还是误报,以及是否开发我们的概念证明(PoC)或开始利用。

我们也使用过 BurpSuite。 Kali Linux仅包含免费版本,该版本没有主动和
被动扫描功能。 绝对建议获得 Burp Suite 的专业许可证,因为它具有有用的功能和对这些免费版本的改进。

当我们使用配置为浏览器代理的Burp Suite 浏览网页时,后台会发生被动
Burp将在查找与已知漏洞相对应的模式时分析所有请求和响应。

在主动扫描中,Burp Suite 会向服务器发送特定请求并检查响应,以查看它们是否与某些易受攻击的模式相对应。这些请求是专门为在应用程序易受攻击时触发特殊行为而设计的。

四、实验总结

这里只是介绍了几个常用的自动扫描器,Kali Linux 提供的工具还有很多其他选项可供选择。选择合适的自动扫描器取决于你的具体需求和目标。为了保证扫描结果的准确性和可靠性,建议在扫描之前备份重要数据。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

YCIU

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值