使用Zed攻击代理自动进行渗透测试

在本文中,您将学习如何使用OWASP Zed Attack Proxy(ZAP)执行渗透测试。 ZAP是免费的Web应用程序扫描程序,可用于安全测试。

简介

在开发应用程序时,必须解决安全性问题。如今,它已不容忽视。从最初的开发开始就必须考虑到安全性,而当您想首次部署到生产环境时就不要考虑安全性。

通常,您会注意到,在开发的后期向应用程序添加安全性将花费大量时间。最好从一开始就考虑安全性,这样可以使您免于遭受一些痛苦的头痛。您可能在公司内部有一些安全专家,因此当需要开发新的应用程序时,让他们从一开始就参与其中。但是,您还需要验证开发的应用程序是否安全。

渗透测试可以帮助您。 OWASP Zed攻击代理(ZAP)是可以帮助您对应用程序执行渗透测试的工具。在本文中,您将学习如何使用ZAP桌面客户端设置ZAP并执行测试。您还将需要一个容易受到攻击的应用程序。为此,将使用OWASP的Webgoat。如果您不知道什么是Webgoat,则可以先阅读上一篇文章。

自从那时以来Webgoat已经得到了改进,这可能有点过时了,但是它将使您对Webgoat是什么有一个很好的印象。建议您在使用Webgoat时断开与Internet的连接,因为它可能会使您的计算机受到攻击。

启动应用程序

首先要做的是启动Webgoat。 最简单的方法是将其作为Docker容器运行。 Docker映像包含应用程序Webgoat和Webwolf,但是您将仅在本文中使用Webgoat。 您将容器命名为山羊和狼(这将使启动和停止容器变得容易),然后以分离模式运行它。

#shell
$ docker run --name goatandwolf -p 8080:8080 -p 9090:9090 -d webgoat/goatandwolf

容器启动后,验证是否可以通过浏览器访问URL为http://localhost: 8080/WebGoat/显示登录页面。

WebGoat登录界面
WebGoat登录界面

就是这样,您现在就可以开始使用ZAP。

Zed攻击代理

1.安装

ZAP的安装说明取决于您的操作系统。 对于Linux,请下载文件ZAP_2_10_0_unix.sh并执行。

// shell
$ ./ZAP_2_10_0_unix.sh

启动ZAP,保留默认的持久性设置,然后单击“Start”。

ZAP Start
ZAP Start

2.快速扫描

启动扫描的最快方法是使用“Quick Start”菜单并启动自动扫描。 单击此菜单中的自动扫描按钮。

快速扫描菜单
快速扫描菜单

填写要攻击的URL,启用“Use ajax spider”,然后单击“Attack”按钮。 现在不要对所有选项都考虑太多,在本文的后面,它们将变得更加清晰。

快速扫描配置
快速扫描配置

运行扫描后,可能会注意到一些有趣的事情。 让我们看一下“Sites”部分并将其展开,以便您查看哪些URL参与了扫描。

扫描站点列表
扫描站点列表

蜘蛛会尝试浏览您的网站并找到一些有用的东西,但是在这种情况下,几乎整个网站都位于登录页面之后。 扫描是在没有登录的情况下执行的,因此不会扫描您网站的主要部分。 扫描确实发现了一些警报,但未达到预期的数目。

扫描警告
扫描警告

自动扫描是一种获得快速结果的好方法,仅此而已。 绝对不能将其视为对应用程序的良好扫描,当然,当应用程序的大部分需要登录时也是如此。

3.浏览应用

一种方式,您将需要让ZAP知道您的应用程序的外观。 因此,您需要手动浏览您的网站,然后单击所有链接,按钮,填写所有可用的表格,甚至导航到隐藏的URL等。对于WebGoat,对于应用程序具有的每个角色,您都需要这样做 只会在这篇文章中为普通用户浏览该网站。 让我们开始吧!

再次转到“Quick Start”菜单,这次选择“Manual Explore”。 填写URL(如果尚未完成),然后单击“Launch Browser”按钮。

手动浏览应用
手动浏览应用

就像我们访问WebGoat之前看到的那样,将打开一个浏览器窗口并显示登录页面。 区别在于,ZAP现在位于浏览器和应用程序之间,这使ZAP可以拦截所有流量并跟踪我们对网站所做的工作。

让我们继续创建用户。 单击“Register new user”链接并创建一个用户。 在下面的示例中,使用密码password(密码必须在6到10个字符之间)创建用户mydeveloperplanet。 同意条款和条件,然后单击“Sign up”按钮。

创建新用户
创建新用户

现在是进行最繁琐的工作的时候了,您必须尽可能地浏览该网站。 当您这样做时,您会注意到“Sites ”部分将随着新URL的增长而继续增长。

Sites运行截图
Sites运行截图

关闭浏览器并通过File – Persist Session…保存该会话。

4.创建上下文

必须先向ZAP提供登录信息,然后才能在扫描期间使用该登录信息,然后才能继续。 该信息必须存储在上下文中。 在“Sites”部分中双击“Default Context”。

将打开“Session Properties”窗口,可以在其中更改与会话有关的设置。 例如,您可以将会话名称更改为比“Untitled Session”更方便的名称。 您将其命名为例如WebGoat mydeveloperplanet。

会话
会话

更重要的是“Contexts”部分。 将Default Context更改为例如 Webgoat。

修改默认上下文名称
修改默认上下文名称

在“Authentication”部分中,选择“ Form-based Authentication(这取决于您的应用程序)”,然后填写登录页面的URL。

身份验证
身份验证

最后,在“Users”部分中添加创建的用户。 填写先前创建的用户名和密码。 这将允许ZAP登录到应用程序。

完善用户登录信息
完善用户登录信息

不要忘记单击“OK”按钮以保存更改。

5.ZAP运行模式

ZAP可以以四种不同的模式运行:

  • 安全(Safe):不允许有潜在危险的操作;
  • 受保护(Protected):仅对范围内的URL执行潜在的危险操作;
  • 标准(Standard):您可以做任何事;
  • 攻击(ATTACK):作用域中的新节点一被发现就被主动扫描。

您必须意识到以下事实:您只能对自己拥有的网站运行ZAP。 因此,建议您使用保护模式以确保仅攻击自己的站点。

6.启动蜘蛛

尽管您已经尽力点击每个链接和按钮,但是可以想到的是,蜘蛛程序可以帮助您发现可能错过的事物。 您可以运行传统的蜘蛛和/或AJAX蜘蛛。 后者还将爬行动态建立的链接。 请记住,您在快速扫描过程中也启用了这些蜘蛛。

在“Sites”部分中,右键单击WebGoat URL,然后选择“Attack – Spider…”。 选择用户mydeveloperplanet,然后单击开始扫描按钮。

设置蜘蛛
设置蜘蛛

Spider快速完成,在结果中您会注意到已添加了一定数量的节点(屏幕快照中的37个)。

运行情况
运行情况

用AJAX蜘蛛做同样的事情。 右键单击WebGoat URL,然后选择“Attack – AJAX Spider…”,填写必要的项目,然后单击“Start Scan”按钮。

开启蜘蛛扫描
开启蜘蛛扫描

再次添加了一些新的URL。

7.主动扫描

目前,您已经完成了所有准备工作,现在是时候采取实际行动了。 右键单击WebGoat URL,选择“Attack – Active Scan...”,填写必要的项目,然后单击“Start Scan”按钮。

配置主动扫描
配置主动扫描

ZAP将立即开始工作,因此请耐心等待,这可能需要一些时间(完成扫描大约需要15分钟)。 最后,可以在“Alerts”部分中查看结果。

Alerts
Alerts

单击警报将显示有关该漏洞以及如何解决此漏洞的更多信息。

Alert详细信息
Alert详细信息

8.导出结果

“Reports”菜单中提供了几种导出功能,用于生成报告。 例如,您可以使用“Generate HTML Report…”来生成HTML报告。

导出HTML报告
导出HTML报告

最后一步

活动扫描将为您提供有关漏洞的第一个指示。 但是请注意,主动扫描只能找到某些类型的漏洞。 除主动扫描外,还应始终执行手动渗透测试。 OWASP Top 10网站为您提供了有关是否可以通过自动扫描发现漏洞的良好信息。

除了活动扫描之外,您还可以使用“强制浏览站点”(它会尝试查找无法发现的链接)和“模糊测试”(Fuzz),后者会将随机数据发送到您的站点。

完成测试后,请不要忘记停止WebGoat Docker容器。

// shell
$ docker stop goatandwolf

总结

在此博客中,您学习了如何使用Zed Attack Proxy。 建议您尝试一下,尝试解决问题,并检查工具中还有哪些其他信息,以便对其进行更多了解。 例如,还可以拦截请求并更改请求中的项目。

SO资源郑重声明:
1. 本站所有资源来源于用户上传和网络,因此不包含技术服务请大家谅解!如有侵权请邮件联系客服!3187589@qq.com
2. 本站不保证所提供下载的资源的准确性、安全性和完整性,资源仅供下载学习之用!如有链接无法下载、失效或广告,请联系客服处理,有奖励!
3. 您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容资源!如用于商业或者非法用途,与本站无关,一切后果请用户自负!

SO资源 » 使用Zed攻击代理自动进行渗透测试