4.2.1 主动侦察
主动侦察(或主动攻击)是侦察的一种方式,在侦察期间,测试人员可以通过自己的系统或虚拟专用服务器(VPS)与目标服务器/系统进行通信。在本章中,我们将介绍一些使用Metasploit中的内置脚本执行主动和被动侦察的方法。
4.2.1.1 标识抓取
标识(banner)抓取是一种用于获取有关网络上设备信息的技术,例如操作系统、在开放端口上运行的服务、使用的应用程序或版本号。标识抓取是信息收集阶段的一部分,Metasploit有很多可用于收集来自不同类型服务标识的模块。
在以下示例中,我们将使用http_version模块检测给定IP上基于HTTP协议运行的服务的版本号和名称。
1)单击Project→Modules,然后在Search Modules框中输入http_version,如图4-1所示。
图 4-1
2)单击模块名称,这会将我们重定向到模块选项,在这里我们可以指定目标地址和其他设置,如图4-2所示。
在本例中,我们将选择端口80,因为我们知道HTTP协议正在端口80上运行。可以将该值更改为运行HTTP的任何端口号。
3)设置完所有内容后,我们单击图4-2中所示的Run Module按钮,这将创建一个新任务。单击Project Options选项卡上的Tasks可以查看任务的状态,如图4-3所示。
4)模块执行完成后,可以返回到Analysis选项卡,然后单击运行模块所依据的Host IP,如图4-4所示。
5)我们将看到该模块已检测到并打印了SERVICE INFORMATION下在80端口上运行的标识,如图4-5所示。
接下来,让我们看看如何检测Web应用程序的HTTP标头。
图 4-2
图 4-3
图 4-4
图 4-5
4.2.1.2 HTTP标头检测
现在,让我们尝试检测Web应用程序的HTTP标头。HTTP标头可以揭示有关应用程序的许多信息,例如所使用的技术、内容长度、cookie到期日期、XSS保护等。
1)导航到Modules页面并搜索http_header,如图4-6所示。
图 4-6
2)单击模块名称将导航至选项页面,在这里我们可以指定目标地址、端口号、线程等,如图4-7所示。
3)设置完成后,单击Run Module,将启动一个新任务,如图4-8所示。
4)任务完成后,可以转到Analysis选项卡,在Notes标签下将能够看到由扫描器模块发现的所有标头,如图4-9所示。
接下来,让我们看一下Web robot页面枚举。
4.2.1.3 Web robot页面枚举
robots.txt(机器人排除标准)是网站用来与爬虫或机器人通信的方法。让我们看看枚举的步骤:
图 4-7
图 4-8
1)要阻止Googlebot爬取某个子文件夹,我们可以使用以下语法:
2)为了阻止所有机器人抓取网站,我们可以在文本文件中加入以下数据:
图 4-9
在本节中,我们将使用robots_txt辅助模块来获取网站的robots.txt文件内容:
1)首先使用robots_txt关键字搜索模块,如图4-10所示。
图 4-10
2)单击该模块会重定向到选项页面,在这里我们可以设置Target Addresses、RPORT、PATH、VHOST等。在本例中,我们以www.packtpub.com作为VHOST,如图4-11所示。
3)单击Run Module后,将创建一个新任务,我们可以在Tasks窗口中查看正在运行的脚本的状态,如图4-12所示。
4)任务完成后,我们可以返回Analysis选项卡,然后单击目标主机的Notes标签,以查看网站的robots.txt文件中列出的所有目录,如图4-13所示。
图 4-11
图 4-12
图 4-13
接下来,让我们在给定的网站上查找一些配置错误的Git存储库。
4.2.1.4 查找隐藏的Git存储库
有时,在生产服务器上从Git部署代码时,开发人员会将git文件夹保留在公共目录中。这很危险,因为它可能使攻击者可以下载应用程序的整个源代码。
让我们看一下git_scanner模块,它可以帮助我们发现网站上配置错误的存储库。
1)首先搜索git_scanner关键字,如图4-14所示。
图 4-14
2)单击该模块会重定向到模块选项页面,我们可以指定目标地址和端口,然后单击Run Module,如图4-15所示。
图 4-15
3)创建一个新任务,如图4-16所示。
图 4-16
4)任务完成后,我们可以转到Analysis选项卡,然后单击主机。在Notes标签中,我们看到辅助模块已找到存储库的config和index文件,如图4-17所示。
图 4-17
5)接下来,我们可以转到Captured Data选项卡以查看由辅助模块找到的文件的内容,如图4-18所示。
图 4-18
6)单击View查看config文件的内容,其中包含git URL、版本和一些分支信息。此信息还可用于下载应用程序的整个源代码,如图4-19所示。
接下来,我们将进行开放代理检测。
4.2.1.5 开放代理检测
这是一个非常简单的脚本,它允许我们检查在端口上找到的代理服务是否为开放代理。如果代理服务是开放式代理,则可以将服务器用作代理,尤其是在红队活动期间用来执行不同的攻击并避免被检测。可以通过以下步骤完成:
图 4-19
1)首先在Modules选项卡中搜索open_proxy关键字,如图4-20所示。
图 4-20
2)单击模块名称,将被重定向到设置IP、端口和URL的选项,以检查代理设置。
3)单击Run Module将创建一个新任务,如图4-21所示。
如果是开放式代理,我们将在任务窗口中看到一条消息,如图4-22所示。
现在,我们对使用Metasploit进行主动侦察有了进一步的了解,接下来我们将学习关于被动侦察的内容。
图 4-21
图 4-22