本节书摘来自异步社区《BackTrack 5 Cookbook中文版——渗透测试实用技巧荟萃》一书中的第3章3.2节服务遍历,作者【美】Pritchett Willie , 【墨】David De Smet,更多章节内容可以访问云栖社区“异步社区”公众号查看。
3.2 服务遍历
在这个示例中,我们将演示一些服务遍历的技巧。遍历(Enumeration)泛指获取网络信息的操作。我们将讲解DNS遍历和SNMP遍历技术。DNS遍历过程用来寻找一个机构的所有DNS服务器和DNS记录。DNS遍历可以收集一些目标的关键信息,例如用户名、计算机名、IP地址等。DNSenmu可以很好地胜任DNS遍历任务。要开展SNMP遍历,就需要用到SnmpEnum这类的SNMP遍历工具。SnmpEnum功能强大,可以用来分析网络中的SNMP通信。
操作步骤
现在开始进行DNS遍历。
1.我们将使用DNSenum进行DNS遍历。要进行DNS遍历就需要在Gnome里打开终端窗口,然后输入下述命令。
cd /pentest/enumeration/dns/dnsenum/
./dnsenum.pl --enum adomainnameontheinternet.com
请不要对公网服务器或者他人的网络运行该工具,本例中使用adomainnameontheinternet.com进行举例,您应该进行相应替换。一定要当心!
2.此时我们至少能够获取主机、域名服务器和邮件服务器在内的信息。如果我们足够幸运,没准会可以进行域信息的完整传输(zone transfer)(见图3.1)。
3.我们还可以结合其他选项使用DNSenum,常用的选项如下所示。
--threads [number]:设置同时运行的进程数量。
-r:启用递归查询。
-d:设置WHOIS查询操作之间的时间延迟(单位为秒)。
-o:指定输出位置。
-w:启用WHOIS查询。
4.要使用SNMPenum进行SNMP遍历,需要在终端窗口中输入下述命令。
cd /pentest/enumeration/snmp/snmpenum/
perl snmpenum.pl 192.168.10.200 public windows.txt
5.在本节的示例中,我们攻击主机192.168.10.200。如果这个IP的设备开启了SNMP服务并连入网络,您可以得到相当多的信息,如下所示。
已安装的软件;
用户名;
设备运行的时间;
主机名;
磁盘信息;
运行的进程。
SNMP遍历的默认语法如下。
`
javascript
perl snmpenum.pl [ip address to attack] [community]
[config file]
6.除此以外,我们还可以使用snmpwalk遍历Windows主机的SNMP服务。snmpwalk是一个SNMP应用程序,它使用SNMP协议的GETNEXT命令查询网络实体,并生成树状信息。在命令行中输入下述命令:
```javascript
snmpwalk -c public 192.168.10.200 -v 2c
7.我们也可以遍历主机上已经安装好的软件。
snmpwalk -c public 192.168.10.200 -v 1 | grep
hrSWInstalledName
HOST-RESOURCES-MIB::hrSWInstalledName.1 = STRING: “Vmware
Tools”
HOST-RESOURCES-MIB::hrSWInstalledName.2 = STRING: “WebFldrs”
8.我们可以用同一工具来遍历主机开放的所有TCP端口。
snmpwalk -c public 192.168.10.200 -v 1 | grep tcpConnState |
cut -d”.” -f6 | sort–nu
21
25
80
443
9.除了snmpwalk和SNMPenum,snmpcheck也能用来进行SNMP遍历。
`
javascript
cd /pentest/enumeration/snmp/snmpcheck/
perl snmpcheck.pl -t 192.168.10.200
10.要使用fierce(一个尝使用多种技术来查找目标使用的所有IP地址和主机名的工具)执行域扫描,我们可以输入下述命令。
cd /pentest/enumeration/dns/fierce/
perl fierce.pl -dns adomainnameontheinternet.com
<div style="text-align: center">
<img src="https://yqfile.alicdn.com/358681b5d5b46af395c6f7748178499b24432dfa.png" >
</div>
请不要对公网服务器或他人的网络运行该工具,本例中使用adomainnameontheinternet.com进行举例,您应该进行相应的替换。一定要当心!
11.在使用fierce执行域扫描时,也可以指定使用字典文件。命令如下所示。
```javascript
perl fierce.pl -dns adomainnameontheinternet.com -wordlist
hosts.txt -file /tmp/output.txt
12.要在一台SMTP服务器上遍历STMP的账号信息、验证用户名是否存在,可以输入下述命令:
`
javascript
smtp-user-enum.pl -M VRFY -U /tmp/users.txt -t 192.168.10.200