信息收集

学习途径:

到最后还是 nmap 最好用。

DNS 域名解析

解析一个域名的 IP 地址:

1
$ host www.example.com

或者使用以下的方式详细列举包括 DNS 服务器的信息:

1
$ nslookup www.example.com

使用以下命令列举 DNS 请求的详细信息:

1
$ dig www.example.com

枚举子域名:

1
$ dnsmap example.com

服务枚举

我们将要研究 DNS 枚举和 SNMP 枚举技术。

DNS 枚举

DNS 枚举是定位某个组织的所有 DNS 服务器和 DNS 条目的过程。DNS 枚举允许我们收集有关该组织的重要信息,例如用户名、计算机名称、IP 地址以及其它。为了完成这些任务我们会使用 DNSenum

我们可以使用以下的命令进行 DNS 枚举:

1
$ dnsenum --enum <domain-name>

我们可以使用一些额外的选项来运行 DNSenum,它们包括这些东西:

  • --threads [number] 允许你设置一次所运行的线程数量。
  • -r 允许你开启递归查找。
  • -d 允许你设置在 WHOIS 请求之间的时间延迟,单位为秒。
  • -o 允许我们制定输出位置。
  • -w 允许我们开启 WHOIS 查询。

还可以使用 fierce (一个尝试多种技术来寻找所有目标所用的 IP 地址和域名的工具)进行域名扫描:

1
$ fierce -dns <domain-adddress>

为了以指定的词语列表进行相同的操作,键入以下命令:

1
$ fierce -dns <domain-address> -wordlist hosts.txt -file /tmp/output.txt

SNMP 枚举

对于 SNMP 枚举,我们会使用叫做 SnmpEnum 的工具,它是一个强大的 SNMP 枚举工具,允许我们分析网络上的 SNMP 流量。

Snmpwalk 是一个使用 SNMP GETNEXT 请求在网络实体中查询信息树的 SNMP 应用。在命令行中键入下列命令:

1
$ snmpwalk -c public <ip-address> -v 2c

我们亦可以枚举安装的软件:

1
$ snmpwalk -c public <ip-address> -v 1 | grep hrSWInstalledName

或者枚举开放的 TCP 端口:

1
$ snmpwalk -c public 192.168.10.200 -v 1 | grep tcpConnState | cut -d"." -f6 | sort –nu

另一个通过 SNMP 收集信息的工具叫做 snmpcheck

1
$ snmpcheck -t <ip-address>

SMTP 用户枚举

可以在 SMTP 服务器上启动用户的 SMTP 枚举:

1
$ smtp-user-enum -M VRFY -U /tmp/users.txt -t <address>

网络范围

1
$ dmitry -wnspb targethost.com -o /root/Desktop/dmitry-result

键入以下命令来执行 ICMP netmask 请求:

1
$ netmask -s targethost.com

使用 scapy,我们就可以执行并行路由跟踪。键入以下命令来启动它:

1
$ scapy

现在可以输入以下函数:

1
ans,unans=sr(IP(dst="www.targethost.com/30", ttl=(1,6))/TCP()

可以输入以下函数来将结果展示为表格:

1
ans.make_table( lambda (s,r): (s.dst, s.ttl, r.src) )

IP 反查

1
$ nmap --script hostmap-ip2hosts <ip-address>

或使用以下命令反查某个端口上的 IP 地址:

1
$ nmap --script hostmap-ip2hosts <ip-address> -p<port>

WAF 检测

1
$ wafw00f <target-address>