![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=1738946051-aqNEUpgS06JXWvDLrENpvEQSMFjHyVXg-0-4644d7a731ad00eb3dda5e1f6534847d)
图 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=1738946051-NBCQNYoOozu9Y0BiFwGvZ7eKUvKx4ff6-0-93925dc726630a564657a1413c54c6a8)
图 4-2
![](https://epubservercos.yuewen.com/7A610E/20784354908784906/epubprivate/OEBPS/Images/4-3.jpg?sign=1738946051-BnrEjzwa1TlCD51UEbMb55ls7htaEqbG-0-4e3a401b5ebe80347c3c1ab81fb0bc53)
图 4-3
![](https://epubservercos.yuewen.com/7A610E/20784354908784906/epubprivate/OEBPS/Images/4-4.jpg?sign=1738946051-QsTtgFnyrxXcSLvqZZwhq5l9MiS5VLqw-0-29588b28d27c565027e97cc9df7fb9a0)
图 4-4
![](https://epubservercos.yuewen.com/7A610E/20784354908784906/epubprivate/OEBPS/Images/4-5.jpg?sign=1738946051-rOkwF5sWWb5b2fQ4acNiyRS9lksbUaUo-0-e7d32d907b80b96a9a1a6eacb71b50c6)
图 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=1738946051-8VOb4frkbX61nZQLZIGX9AwunttGu65e-0-989549dbd0197817f8eca49f9b260e6a)
图 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=1738946051-fqd3nmHg9CpQrBki5vqHVENP57DDdd0T-0-1dbbf6a49f76ec305834af00345a7ed4)
图 4-7
![](https://epubservercos.yuewen.com/7A610E/20784354908784906/epubprivate/OEBPS/Images/4-8.jpg?sign=1738946051-liJNsK0JwoKNJeHkAe3PXL4jrHxMxDHw-0-77738516c322dc6122af48421aa27b84)
图 4-8
1)要阻止Googlebot爬取某个子文件夹,我们可以使用以下语法:
![](https://epubservercos.yuewen.com/7A610E/20784354908784906/epubprivate/OEBPS/Images/082a1.jpg?sign=1738946051-0s1JKHRzVAltPPen7gG4EnbJkQDhGrAU-0-7b592ac89375aa60c6599fb80fa67c60)
2)为了阻止所有机器人抓取网站,我们可以在文本文件中加入以下数据:
![](https://epubservercos.yuewen.com/7A610E/20784354908784906/epubprivate/OEBPS/Images/082a2.jpg?sign=1738946051-zjGN6fJFd73iTzADeRWyzlX1Arz6tIut-0-6390f8f91e41789d17a516aa1ae4cfa7)
![](https://epubservercos.yuewen.com/7A610E/20784354908784906/epubprivate/OEBPS/Images/4-9.jpg?sign=1738946051-FKhchrhYL0hqy7w5wJZm4ZE51nEKyAcJ-0-d2b6285b27d04033bb61e8a8d3850c73)
图 4-9
在本节中,我们将使用robots_txt辅助模块来获取网站的robots.txt文件内容:
1)首先使用robots_txt关键字搜索模块,如图4-10所示。
![](https://epubservercos.yuewen.com/7A610E/20784354908784906/epubprivate/OEBPS/Images/4-10.jpg?sign=1738946051-GgDD7a9HAEVJS2YX9XNu8J9gz3DzSuF1-0-3bf5f344505f7749d9f077ce78da1636)
图 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=1738946051-wnDOvLoO5wGP41Ye4CLtU9ISbD2RfvoJ-0-4018236e5148baadb9f187100cb814ef)
图 4-11
![](https://epubservercos.yuewen.com/7A610E/20784354908784906/epubprivate/OEBPS/Images/4-12.jpg?sign=1738946051-TO23812WmSz5UlbTNeyo8Tvwjv9d8xco-0-19c98b49f2790c62fb99b14af7bb8132)
图 4-12
![](https://epubservercos.yuewen.com/7A610E/20784354908784906/epubprivate/OEBPS/Images/4-13.jpg?sign=1738946051-vnv5Id3EALbMyJX47GnBfIDqoefMzGn6-0-f18188994c81cf60e710b89578c2bdb2)
图 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=1738946051-FKFARpKy1r3CK7UNJF9A60BjFUoEkyXy-0-14de4287a0a81044d770f90d0bba4f9a)
图 4-14
2)单击该模块会重定向到模块选项页面,我们可以指定目标地址和端口,然后单击Run Module,如图4-15所示。
![](https://epubservercos.yuewen.com/7A610E/20784354908784906/epubprivate/OEBPS/Images/4-15.jpg?sign=1738946051-EaN4xFgAHQ6GInPzoTnt4bQWfUUiZaMu-0-d853cf796b2758dc0f36d520e4c3489f)
图 4-15
3)创建一个新任务,如图4-16所示。
![](https://epubservercos.yuewen.com/7A610E/20784354908784906/epubprivate/OEBPS/Images/4-16.jpg?sign=1738946051-M17g7MlrxsnTgPheXpKbk0rah2zD5Rmk-0-4b3e4a5e1e2e8e8a1e5daff440c3a4bf)
图 4-16
4)任务完成后,我们可以转到Analysis选项卡,然后单击主机。在Notes标签中,我们看到辅助模块已找到存储库的config和index文件,如图4-17所示。
![](https://epubservercos.yuewen.com/7A610E/20784354908784906/epubprivate/OEBPS/Images/4-17.jpg?sign=1738946051-KVRXG8BoHX7thAtmYnK2o15CjmXX7kAo-0-de8aa4537f4c4c78d56e9f8806800e9e)
图 4-17
5)接下来,我们可以转到Captured Data选项卡以查看由辅助模块找到的文件的内容,如图4-18所示。
![](https://epubservercos.yuewen.com/7A610E/20784354908784906/epubprivate/OEBPS/Images/4-18.jpg?sign=1738946051-2gsEktLobZk2DdEy9pvljAnsGYsLHMho-0-e947af1c664bb3ad0cf5b2c00a63ecaf)
图 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=1738946051-N5cRFVQt3TY1Bn3LOEYZGPKMKrXxPTZX-0-c7c62e58c2892c52cd4e709d4c4c24f7)
图 4-19
1)首先在Modules选项卡中搜索open_proxy关键字,如图4-20所示。
![](https://epubservercos.yuewen.com/7A610E/20784354908784906/epubprivate/OEBPS/Images/4-20.jpg?sign=1738946051-nwJJjHpQiDs1EtscPCjhZXZQVQ7WHmD6-0-9f79acba728eeec8c3ef6bb625f2f204)
图 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=1738946051-TxLyJMreuzVbPvAVv19jyUGHfHpTxzWj-0-7c04368bb7d21c85b4ecd42aecd13e62)
图 4-21
![](https://epubservercos.yuewen.com/7A610E/20784354908784906/epubprivate/OEBPS/Images/4-22.jpg?sign=1738946051-NGTSyQuZgxfiGDGSRb8BFO5nz9seTRYt-0-1c5fcb89f9d7aadedf9b4f94dbf73898)
图 4-22