使用自动扫描器

项目介绍

几乎每个渗透测试项目都必须遵循一个严格的时间表,主要由客户的需求或开发

交付日期决定。对于渗透测试人员来说,拥有一个能够在短时间内对应用程序执行大

量测试的工具是非常有用的,这样可以在计划的时间内识别尽可能多的漏洞。自动漏

洞扫描器成为了最佳选择。它们还可以用来寻找开发替代方案,或者确保在渗透测试

中没有留下明显的东西。

Kali Linux 包含几个针对 web 应用程序或特定 web 应用程序漏洞的漏洞扫描器。

在本章中,将介绍渗透测试人员和安全专业人员最广泛使用的一些工具。

任务 1 自动化扫描注意事项

一、任务描述
通常用 openvas nusses 等漏洞扫描器时,它会扫描目标系统的开放端口,并
识别运行服务及版本,它不会发送恶意的 payload。而 web 漏洞扫描器提交参数时,
即使扫描策略进行过测试, payload 被认为是安全的,但有些数据依然有可能影响
到程序的完整性和稳定性。因此,再利用自动化扫描工具时,需要特别小心。
下面将介绍一些在扫描之前需要注意的地方。
二、任务实现
在自动化扫描之前,需要考虑以下因素:
1 、优先选择测试环境,而不是生产环境。这样如果发生错误,就不会影响到真实的
数据
2 、做好恢复机制,在发生问题时可以恢复数据和代码
3 、定义扫描范围。虽然可以针对整个站点启动扫描,但仍然建议定义工具的配置,
避免扫描应用中脆弱或敏感的部分。
4 、熟悉要使用的工具,可以先花些时间在试验靶场里测试一下工具,了解它们的功
能以及扫描可能造成的影响
5 、保持工具及其模块的更新,使结果与最新的漏洞披露和攻击技术一致 254
6 、启动扫描之前确认扫描范围和参数,确保扫描不超出指定范围
7 、记录全面的扫描过程,大多数工具都自带日志记录和生成报告的功能。
8 、扫描过程中不能无人看管,需要不断检查工作状态,做好造成影响的第一时间反
9 、不要依赖单一工具,每个人都有自己喜欢的一款工具,但是需要记住,没有一款
工具能覆盖到所有渗透测试的内容,所以交叉使用工具可以有效避免假阳性和假阴性的概
三、相关知识与技能
上面介绍了扫描中需要注意的关键点,以便在后期渗透测试中避免信息损害和服
务中断。
需要采取这些措施的原因是 web 漏洞扫描器在扫描中偏向扫描整个站点,并使
用爬行到的 url 和参数发起进一步的有效载荷测试,若 web 应用未对输入进行过滤,
这些探测请求的参数可能会永久存在数据库中,这将导致完整性问题,或损害到服务
状态。
为了防止这种破坏,建议采取一系列措施,重点是准备好测试环境,熟悉工具原
理,并保持更新,仔细选择要扫描的内容,并对所有扫描行为进行记录。

任务 2 使用 Nikto 进行扫描

一、任务描述
每个测试人员必备的工具 Nikto ,它是世界上使用最广泛的免费扫描仪。正如其
官方网站(https://cirt.net/Nikto2)所述:
“Nikto 是一个开放源码(GPL)的 web 服务器扫描器,它对 web 服务器上的多个
项目执行全面的测试,包括超过 6700 个潜在的危险文件/程序,检查超过 1250 个服
务器的过期版本,以及 270 多个服务器上的特定于版本的问题。它还检查服务器配置
项,如是否存在多个索引文件、HTTP 服务器选项,并尝试标识已安装的 web 服务器
和软件。扫描项目和插件经常更新比较活跃并且可以自动更新。”
在这个小节中,将使用 Nikto 扫描 web 应用程序中的漏洞并分析结果。
二、任务实现
Nikto 是 Kali Linux 默认包含的命令行实用程序,打开终端开始扫描服务器:
1.将扫描 Peruggia 漏洞应用程序,并将结果导出到一个 HTML 报告文件,该命令
为: nikto -h http://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。
pwd 显示当前目录
uname -a(内核版本查看)
rpm -q centos-release(系统版本查看)
cat /proc/cpuinfo |grep "name"		(cpu核心查看) // | 后面内容为信息过滤
cat /proc/meminfo |head -4			(查看内存信息)(前4行)
df -h								(查看磁盘空间信息)
mkdir  dir 		在当前目录下创建目录
rmdir  dir		删除空目录
touch file		创建文件
vi file			编辑文件
				默认状态:命令行模式,可以用/去进行搜索
				比如:/what     在命令行模式下,想找what,就去锁定 
				编辑模式:i
				返回命令行模式:esc
				保存	:w
				退出: q!(不保存退出)
				保存后退出:wq!
cat file [|grep “xxx][|head/tail -n] 		查看文件内容
		|gerp “xxx”	 						查看包含xxx的行
		|head -n 	 						查看前n行
		|tail  -n		 					查看后n行
rm -i file 			询问删除
rm -f file 			强制删除
rm -r dir			递归删除包含文件的目标
注:	-i:询问用户是否确认删除,用y或者n来回答。
	-r:删除目录时加该选项,删除目录及目录下的文件和目录,可以删除不为空的目录。
	-f:强制删除,不用确认

任务 3 使用 Wapiti 发现漏洞

一、任务描述
Wapiti 是另一个基于终端的 Web 漏洞扫描程序,它将 GET 和 POST 请求发送到寻
找以下漏洞的目标站点(http://wapiti.sourceforge.net/):
文件纰漏
数据库注入
跨站点脚本( XSS
命令执行检测
CRLF 注射
XML 外部实体( XXE )注入
使用已知的潜在危险文件
可绕过的弱 .htaccess 配置
存在提供敏感信息的备份文件(源代码公开)
在本文中,将使用 Wapiti 发现一个测试应用程序中的漏洞并生成扫描报告。
二、任务实现
Wapiti 是一个命令行工具, 在 Kali Linux 中打开终端并确保在开始之前运行
易受攻击的 VM:
1. 在终端中,执行 wapiti http://192.168.56.11/peruggia/ -o wapiti_result
-f html-m“-blindsql”扫描易受攻击的 VM 中的 Peruggia 应用程序,将输出以 HTML
格式保存在 wapiti_result 目录中,并跳过盲目的 SQL 注入测试。
2. 等待扫描完成并打开报告的目录,然后打开 index.html 文件, 那么,你会
看到这样的东西:
在这里,可以看到 Wapiti 发现了 12 个 XSS 和 5 个文件处理漏洞。
3. 现在,单击 CrossSite Scripting 以查看结果的详细信息。
4. 选择一个漏洞,然后单击 HTTP 请求,将选择第二个并选择并复制请求的 URL
部分
5.现在,将该 URL 粘贴到浏览器中并添加服务器部分(
http://192.168.56.11/peruggia/index.php?action=comment&pic_id=%3E%3C%
2F%3E%3Cscript%3Ealert%28%27wp6dpkajm%27%29%3C /脚本%3E), 结果应如下
所示:
发现确实存在一个 XSS 漏洞。
三、相关知识与技能
跳过了这个配置中的盲 SQL 注入测试(-m“-blindsql”),因为已经知道这个
应用程序很容易受到攻击。 当它达到计算基于时间的注入时,它会引发超时错误,
使 Wapiti 在扫描完成之前关闭,因为 Wapiti 通过注入 sleep()命令多次测试,直
到服务器超过超时阈值。
此外,选择了输出的 HTML 格式(-f html)和 wapiti_result 作为报告的目标目
录, 还可以使用其他格式,例如 JSON,OpenVas,TXT 或 XML。
Wapiti 的其他命令选项包括:
-x <URL> :从扫描中排除指定的 URL , 对注销和密码更改 URL 特别有用。
-i <file> :从 XML 文件恢复以前保存的扫描。 文件名是可选的,因为如果省
略, Wapiti 会从其扫描文件夹中获取文件。
-a <login password> :使用指定的凭据对应用程序进行身份验证。
--auth-method <method> :定义 -a 选项的身份验证方法, basic,digest, kerberos,
ntlm
-s <URL> :定义用于开始扫描的 URL
-p <proxy_url> :使用 HTTP HTTPS 代理。
任务 4使用 Skipfish 检测安全漏洞
一、任务描述
Skipfish https://code.google.com/archive/p/skipfish/ )由谷歌制作,于 2010 年对
外发布。 Skipfish 被描述是一个高效的 Web 应用程序的安全性检测工具,默认安装在
Kali Linux 中,它不仅仅是一款检测工具。它是一款完整的漏洞扫描工具。它有以下
特点:
高速:它可以达到每秒 400 多个请求,在高速局域网下可以到达每秒 2000
个请求
它的命令行选项简单易用
它可以检测出各种各样的漏洞问题,从简单的目录遍历和信息泄露到不同类型
SQL 注入和 XML 注入
在这小节中,将使用一个简单的例子来教会大家如何使用 Skipfish 并检查其结果。
二、任务实现
Skipfish 被默认安装在了 Kali 中,可以随时使用,将要用它来扫描 Peruggia
1. 打卡一个终端并执行以下命令:
skipfish -o skipfish_result -I peruggia http://192.168.56.11/peruggia/
2. 然后将会出现一些带有建议性的信息,敲击 Enter 键或者等待 60S 之后自动
开始
3. 扫描开始,然后将扫描统计信息展示出来。 CTRL+C 可以在任何时候停止它。
扫描时,终端会如下图所示:
4. 当扫描结束后,可以打开报告。在这个例子中,这份报告在运行的 Skipfish
的相对目录下: skipfish_result/index.html
5. “Issue type overview – click to expand” 部分:可以点击问题的名称,然后可
以准确地看到有效的 URL 地址和攻击载荷,如下图所示:
三、相关知识与技能
Skipfish 将首先通过爬行站点地图并可选地为目录和文件名使用字典来构建站点
地图。然后通过多个安全检查处理此映射。
在这个例子中,使用了 Peruggia 作为漏洞虚拟机。为了防止它扫面整个服务器,
使用了 “-I peruggia” 参数,设定不同的参数,将只会扫描该参数下指定扫描文本。使
“-o” 参数将告诉 Skipfish 将报告保存在哪里,设置的目路在扫描运行时必须不能存
在。
Skipfish 的主要缺点是自从 2012 年以来就没有更新过。对于一些新兴的技术它
并不适用于此。
任务 5 使用 WPScan 查找 WordPress 中的漏洞
一、任务描述
WordPress 是世界上最常用的内容管理系统 (CMS) 之一。 CMS 是一种应用程序 (
常是 web 应用程序 ) ,它允许用户在没有或几乎没有编程知识的情况下轻松创建功能
齐全的网站。 WPScan 是一个专门检测 WordPress 站点漏洞的漏洞扫描器。
在这个小节中,将使用 WPScan 来识别安装在 OWASP BWA 虚拟机中的
WordPress 站点上的脆弱组件。
二、任务实现
WPScan 是一个命令行工具,打开终端开始使用:
1. 使用 WPScan http://192.168.56.11/wordpress/ 命令对目标运行 WPScan URL
是想要扫描的 WordPress 站点的位置。
2. 如果这是您第一次运行 WPScan ,它将要求更新数据库,这需要 internet 连接。
在实验设置中, Kali Linux VM 没有 internet 连接,所以最好先更改其网络设置,更新
使用的工具,并在完成之后将其连接回来。要更新,只需回答 Y 并按回车即可。下
面的截图显示了预期的输出:
3. 更新完成后, WPScan 将继续扫描目标站点。它会在终端内显示调查结果,例
如,在下面的截图中,可以看到它检测到了 web 服务器和 WordPress 版本,并且该版
本存在一些漏洞:
4. 有了关于现有漏洞的信息,可以跟踪引用并搜索已发布的漏洞,例如,如果
在用户注册表中搜索 CVE-2007-5106 ,这是一个 XSS 漏洞,将在 Security Focus 中找
到一个漏洞:
https://www.securityfocus.com/bid/25769/exploit
5. 寻找其他漏洞,并尝试利用 WPScan 识别的漏洞。
三、相关知识与技能
WordPress 允许在开发 web 应用程序方面没有经验的用户通过添加插件来创建自
己的站点,这些插件可能是由其他用户创建的,并且不受主 CMS 的质量保证和测试
的约束,这意味着当其中一个插件或模块存在严重的安全缺陷时,成千上万的用户可
能已经在他们的站点上安装了易受攻击的代码,并暴露在可能危及整个服务器的互联
网环境下。
在本文中,使用 WPScan 来识别旧 WordPress 安装中的漏洞。首先更新工具的数
据库,这是在连接到互联网时自动完成的。更新完成后,继续扫描,识别安装的
WordPress 版本、用户和站点使用的插件,有了这些信息, WPScan 就可以在其数据
库中搜索任何活动组件中的已知漏洞,并在终端中显示结果。扫描完成后,查找信息
并利用这些信息查找问题。对这些漏洞的进一步利用留给读者去做。
任务 6 使用 JoomScan 扫描 Joomla 中的漏洞
一、任务描述
另一个很受欢迎的 CMS Joomala ,和 WordPress 一样, Joomla 也是基于 PHP
的,它的目的是为了帮助没有技术的用户创建网站,尽管它可能并没有 WordPress
么友好,它更适合电子商务网站,而不是博客或者是新闻类的站点。
Kali Linux 中也包括一个漏洞扫描器专门用于查找 Joomla 中的漏洞,它就是
joomScan
在本任务中,将使用它来分析 Joomla 站点 使用的虚拟机是 VM_1
二、任务实现
kali linux 中的很多工具一样,同样是使用命令行来启动它。
1. 首先运行 joomscan -h 查它的使用选项:
2. 现在,根据提示,使用 -u 选项,后面跟上目标 URL ,当然也可以修改请求中
的其他参数,例如 user-agent 或者是 cookie ,使用
joomscan -u http://192.168.56.11/joomla/
269 命令来启动一个简单的扫描任务
3. JoomaScan 会开始扫描并显示结果,如下图所示,结果中给出了 Joomlia 的版
本,漏洞类型、 CVE 编号,以及一些对渗透测试人员非常有用的信息,比如可以利
用的公开漏洞。
4. 当扫描结束时, joomScan 会显示出存储扫描结果的文件的所在路径,扫描结
果一般存储在 /user/share/joomscan/reports/192.168.56.11/
5. 报告是 HTML 格式的,如下图所示,
三、相关知识与技能
在本任务中,使用 joomscan 来识别漏洞,该工具可以识别 joomla 版本及其启动
的插件,并将这些信息与已知漏洞和漏洞数据库对比,并以 HTML 的格式将最终的
结果存储下来。
任务 7   使用 CMSmap 扫描 Drupal
一、任务描述
另一个流行的 CMS 是 Drupal ,它也是开源的并且基于 PHP,与之前的一样。 虽
然没有那么广泛,但根据其官方网站
(https://www.drupal.org/project/usage/drupal),它拥有相当大的市场份额,
有超过 100 万个网站使用它。
在本文中,将安装适用于 Drupal、WordPress 和 Joomla 的漏洞扫描程序 CMSmap
并使用它来识别靶机(蜜罐)中安装的 Drupal 版本中的漏洞,靶机(蜜罐)是实验
室中易受攻击的虚拟机之一。在找到相关的漏洞后,将利用它并在服务器上获得命令
执行。
CMSmap 未安装在 Kali Linux 中,也未包含在其官方软件存储库中; 但是,可以
轻松地从 GitHub 存储库中获取它。 打开终端并运行 git
clonehttps://github.com/Dionach/CMSmap.git; 这会将最新的源代码下载到
CMSmap 目录。由于它是用 Python 制作的,因此无需编译代码,因为它已准备好运行。
要查看用法示例和可用选项,请输入 CMSmap 目录并运行 python cmsmap.py 命令。 此
过程如以下屏幕截图所示:
二、任务实现 一旦准备好运行 CMSmap,启动 VM_1 靶机。在此示例中,它的 IP 地址
192.168.56.12。
1.浏览到 http://192.168.56.12/drupal/以验证是否有正在运行的 Drupal 版本。
结果应如下所示:
2.现在,针对该站点启动扫描程序。 打开终端,转到下载 CMSmap 的目录,然后
运行 python cmsmap.py -thttp://192.168.56.12/drupal 命令。以下屏幕截图显示:
可以看到一些漏洞排名很高(红色[H])。 其中一个是 SACORE-2014-005;谷歌
搜索将告诉这是一个 SQL 注入,这个漏洞也被昵称为 Drupageddon。
3.现在,让看看是否有一种简单的方法来利用这个众所周知的缺陷。 打开
Metasploit 的控制台(msfconsole)并搜索 drupageddon; 你应该找到至少一个漏洞,
如下所示:
4.使用 multi/http/drupal_drupageddon 模块并使用通用反向 shell 根据场景设
置选项。 下一个屏幕截图显示了最终设置:
5.运行漏洞并验证是否有命令执行,如下所示:
3.总结
在本文中,首先使用带有 clone 命令的 git 命令行客户端从其 GitHub 源代码存储
库下载 CMSmap ,该命令生成指定存储库的本地副本。安装 CMSmap 后,检查它已
准备好执行并查看使用选项,然后针对目标运行它。
在结果中,看到了一个被扫描程序评为高影响的漏洞,并在线查看有关它的信息,
发现它是一个带有多个公开可用漏洞的 SQL 注入。
该漏洞在 Drupal 的安全公告 SA-CORE-2014-005 中公开
https://www.drupal.org/forum/newsletters/security-advisories-for-drupal-core/2014-10-15
/sa-core-2014-005-Drupal-core-SQL )。据此,它是一个 SQL 注入漏洞,可用于获取
权限提升, PHP 执行,以及在示例中看到的,在受影响的主机上执行命令。
选择在 Metasploit 中查找现有漏洞。使用的漏洞有两种实现远程 shell 的方法:
在第一种方法中,它使用 SQLi 将恶意内容上传到 Drupal 的缓存并触发该缓存条目以
执行 payload 。这是漏洞使用的选项,因为没有更改 TARGET 参数(从 0 1 )。在
第二种方法中,它将在 Drupal 中创建一个管理员用户,并使用该用户上载要执行的
服务器的 PHP 代码。
最后,在服务器上获得了一个有限的 shell,可以执行非交互式的命令和检索信

息。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值