![Web渗透测试实战:基于Metasploit 5.0](https://wfqqreader-1252317822.image.myqcloud.com/cover/213/39888213/b_39888213.jpg)
4.2.1 主动侦察
主动侦察(或主动攻击)是侦察的一种方式,在侦察期间,测试人员可以通过自己的系统或虚拟专用服务器(VPS)与目标服务器/系统进行通信。在本章中,我们将介绍一些使用Metasploit中的内置脚本执行主动和被动侦察的方法。
4.2.1.1 标识抓取
标识(banner)抓取是一种用于获取有关网络上设备信息的技术,例如操作系统、在开放端口上运行的服务、使用的应用程序或版本号。标识抓取是信息收集阶段的一部分,Metasploit有很多可用于收集来自不同类型服务标识的模块。
在以下示例中,我们将使用http_version模块检测给定IP上基于HTTP协议运行的服务的版本号和名称。
1)单击Project→Modules,然后在Search Modules框中输入http_version,如图4-1所示。
![](https://epubservercos.yuewen.com/7A610E/20784354908784906/epubprivate/OEBPS/Images/4-1.jpg?sign=1738867732-2kaNfbwVNxFqUCArWAJAdPI5A8bg0eVE-0-15a2bf91fe0cd474896a19456a159266)
图 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标头。
![](https://epubservercos.yuewen.com/7A610E/20784354908784906/epubprivate/OEBPS/Images/4-2.jpg?sign=1738867732-oDgL6YjxnO6zuI1XMGHYRIK0K404A5yc-0-146922d5d7f61b93b4f8fc71507db85f)
图 4-2
![](https://epubservercos.yuewen.com/7A610E/20784354908784906/epubprivate/OEBPS/Images/4-3.jpg?sign=1738867732-VKu3as9xJoIuUqVnG2OBKqFraU7WQjza-0-8e31679e12571d9a30a829574f119ef2)
图 4-3
![](https://epubservercos.yuewen.com/7A610E/20784354908784906/epubprivate/OEBPS/Images/4-4.jpg?sign=1738867732-hzXtjAToOZIauP8No6OAYNQfLKbaJOoT-0-e343c9e5ed262ff1e3d5dd401e9b6ed7)
图 4-4
![](https://epubservercos.yuewen.com/7A610E/20784354908784906/epubprivate/OEBPS/Images/4-5.jpg?sign=1738867732-vN8zzNq9HTHq6nu6uijTOBSngso2gBvR-0-844b4c9db38fb71b5a9ebf52dd234f9c)
图 4-5
4.2.1.2 HTTP标头检测
现在,让我们尝试检测Web应用程序的HTTP标头。HTTP标头可以揭示有关应用程序的许多信息,例如所使用的技术、内容长度、cookie到期日期、XSS保护等。
1)导航到Modules页面并搜索http_header,如图4-6所示。
![](https://epubservercos.yuewen.com/7A610E/20784354908784906/epubprivate/OEBPS/Images/4-6.jpg?sign=1738867732-10mJUBUOv0c088YHYDXW0eciA1fVfGAw-0-82bb28be03f0c11058d50d5537c1e0b6)
图 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(机器人排除标准)是网站用来与爬虫或机器人通信的方法。让我们看看枚举的步骤:
![](https://epubservercos.yuewen.com/7A610E/20784354908784906/epubprivate/OEBPS/Images/4-7.jpg?sign=1738867732-Sk1VDnpIzBntpVWKrLx3GsjpBWFsuAkK-0-a8ad3d5c0d41ffb11ded003840c52ac6)
图 4-7
![](https://epubservercos.yuewen.com/7A610E/20784354908784906/epubprivate/OEBPS/Images/4-8.jpg?sign=1738867732-RT1fC5ucl5dbkUM8CCsjtmEMJaRzLY5f-0-80bc3a1b52bd652db4a0be2a32206cb5)
图 4-8
1)要阻止Googlebot爬取某个子文件夹,我们可以使用以下语法:
![](https://epubservercos.yuewen.com/7A610E/20784354908784906/epubprivate/OEBPS/Images/082a1.jpg?sign=1738867732-i8cQIohVpjNSh430gVbA4bI2Q3QMuRSa-0-f45ae74e44f186b3d944cf4475494a7c)
2)为了阻止所有机器人抓取网站,我们可以在文本文件中加入以下数据:
![](https://epubservercos.yuewen.com/7A610E/20784354908784906/epubprivate/OEBPS/Images/082a2.jpg?sign=1738867732-JeCCf2p2zLU9ukkSItnaWYGqxIDfUGMl-0-38eb5b1fd71b5e4c38309aeb093afd39)
![](https://epubservercos.yuewen.com/7A610E/20784354908784906/epubprivate/OEBPS/Images/4-9.jpg?sign=1738867732-8mOhQ0GKfcQXNkOdxy1JbqixkW4CePdT-0-b8118b13b9c5f1e45d9e1952d7a96b94)
图 4-9
在本节中,我们将使用robots_txt辅助模块来获取网站的robots.txt文件内容:
1)首先使用robots_txt关键字搜索模块,如图4-10所示。
![](https://epubservercos.yuewen.com/7A610E/20784354908784906/epubprivate/OEBPS/Images/4-10.jpg?sign=1738867732-HW8ZTQf3n07L1MdJuKONICZcKjH1AqdY-0-6e9f65a2e5d1387df2f8422d330cf483)
图 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所示。
![](https://epubservercos.yuewen.com/7A610E/20784354908784906/epubprivate/OEBPS/Images/4-11.jpg?sign=1738867732-ieQ59ebSsTwUodMBQYhWz8c6RFKE1NNP-0-0ed8a47f4a8ad9f0530adcea14be45ab)
图 4-11
![](https://epubservercos.yuewen.com/7A610E/20784354908784906/epubprivate/OEBPS/Images/4-12.jpg?sign=1738867732-uq9o1gDcTWdHdFufhAM9kXi6WJs6qszF-0-fae255502ba13dcc20f6cdce57d75063)
图 4-12
![](https://epubservercos.yuewen.com/7A610E/20784354908784906/epubprivate/OEBPS/Images/4-13.jpg?sign=1738867732-caW2xRAAIjCm9qfi2UQPnHIdnUegzThS-0-ca03c90d97989a64bab92c6b000eb4f5)
图 4-13
接下来,让我们在给定的网站上查找一些配置错误的Git存储库。
4.2.1.4 查找隐藏的Git存储库
有时,在生产服务器上从Git部署代码时,开发人员会将git文件夹保留在公共目录中。这很危险,因为它可能使攻击者可以下载应用程序的整个源代码。
让我们看一下git_scanner模块,它可以帮助我们发现网站上配置错误的存储库。
1)首先搜索git_scanner关键字,如图4-14所示。
![](https://epubservercos.yuewen.com/7A610E/20784354908784906/epubprivate/OEBPS/Images/4-14.jpg?sign=1738867732-EFUeeQB99JzIDWc0TZzonBE8T3oG5J9G-0-02236a9263ead21e4aca29ae14f2a4c4)
图 4-14
2)单击该模块会重定向到模块选项页面,我们可以指定目标地址和端口,然后单击Run Module,如图4-15所示。
![](https://epubservercos.yuewen.com/7A610E/20784354908784906/epubprivate/OEBPS/Images/4-15.jpg?sign=1738867732-cTRgYQ3Hnrclx3gzlbD3JdSYS2HsXgkr-0-f4c852347dc620de23cb114c37429d81)
图 4-15
3)创建一个新任务,如图4-16所示。
![](https://epubservercos.yuewen.com/7A610E/20784354908784906/epubprivate/OEBPS/Images/4-16.jpg?sign=1738867732-eBD2xd76fHlVYBZsD7TpcldlTN1fWY6w-0-c35fdb454ac757fd26eb07d6a1b21b36)
图 4-16
4)任务完成后,我们可以转到Analysis选项卡,然后单击主机。在Notes标签中,我们看到辅助模块已找到存储库的config和index文件,如图4-17所示。
![](https://epubservercos.yuewen.com/7A610E/20784354908784906/epubprivate/OEBPS/Images/4-17.jpg?sign=1738867732-L2XHGowH7u4Ciei0OjPMxxh9h06uTudD-0-46e426bff69859698ad337ab2600ad1a)
图 4-17
5)接下来,我们可以转到Captured Data选项卡以查看由辅助模块找到的文件的内容,如图4-18所示。
![](https://epubservercos.yuewen.com/7A610E/20784354908784906/epubprivate/OEBPS/Images/4-18.jpg?sign=1738867732-pxovgcrACeRSnXC0Ks3Tj4Vgfvvr1mFk-0-e5c0a5d2962cc3ea1b8c8e9fcef12c92)
图 4-18
6)单击View查看config文件的内容,其中包含git URL、版本和一些分支信息。此信息还可用于下载应用程序的整个源代码,如图4-19所示。
接下来,我们将进行开放代理检测。
4.2.1.5 开放代理检测
这是一个非常简单的脚本,它允许我们检查在端口上找到的代理服务是否为开放代理。如果代理服务是开放式代理,则可以将服务器用作代理,尤其是在红队活动期间用来执行不同的攻击并避免被检测。可以通过以下步骤完成:
![](https://epubservercos.yuewen.com/7A610E/20784354908784906/epubprivate/OEBPS/Images/4-19.jpg?sign=1738867732-VtTWUOS6pumSlnTqLTna08ukrV5d7tkZ-0-f14245f373f0ea492e8515cf38dedfa4)
图 4-19
1)首先在Modules选项卡中搜索open_proxy关键字,如图4-20所示。
![](https://epubservercos.yuewen.com/7A610E/20784354908784906/epubprivate/OEBPS/Images/4-20.jpg?sign=1738867732-l5Wr9msHZbZoY1Y2HeCzBlPO8hItbgfG-0-591b487fc5e5a6f1f3c71d071c12fd62)
图 4-20
2)单击模块名称,将被重定向到设置IP、端口和URL的选项,以检查代理设置。
3)单击Run Module将创建一个新任务,如图4-21所示。
如果是开放式代理,我们将在任务窗口中看到一条消息,如图4-22所示。
现在,我们对使用Metasploit进行主动侦察有了进一步的了解,接下来我们将学习关于被动侦察的内容。
![](https://epubservercos.yuewen.com/7A610E/20784354908784906/epubprivate/OEBPS/Images/4-21.jpg?sign=1738867732-um0BCr4hkTadpuHSkGbm9GAbbX2Q5X1x-0-88653759bb8ccae8791af66a7b90b225)
图 4-21
![](https://epubservercos.yuewen.com/7A610E/20784354908784906/epubprivate/OEBPS/Images/4-22.jpg?sign=1738867732-Mop2XUMmcu2riuE2Nmg9XPRgUFanatVX-0-e3760a7a618f69d10e11cbedd1c6f8d4)
图 4-22