渗透测试的第一步就是信息收集。所谓’知己知彼百战不殆’就是这个道理。
警告:请正当地使用本文所提及的技术。未授权的渗透测试或黑客攻击是非法的。而且在有些国家,未授权的端口扫描被视为违法。
版本: Build 20151208
要进行信息收集,要进行一下四步:
- 通过搜索引擎或公开网站收集目标域的有关信息
- 收集域的注册信息
- DNS分析
- 跟踪路由并收集路由信息
首先是第一步,这里就不在赘述。利用搜索引擎来初步了解你的目标,下面是一些供参考的网站:
- archive.org 收录部分网站的历史页面
- domaintools.com 收录各种域名情报
- alexa.com 分析网站信息
- centralops.net 提供DNS工具,验证EMail地址,提供ping whois traceroute服务
- yoname.com 通过SNS查找人物
- …
第二步,了解域名的注册信息。Kali自带了whois工具可以使用:
用法:
1 |
# whois [domain] |
第三步,你需要进行DNS记录分析。DNS服务器信息和有关域名的记录是非常有用的。Kali自带了许多工具可以使用:
- host
host可以用以解析域的IP地址:
1 |
# host [domain] |
host也可以搜索域名记录:
1 |
# host -a [domain] |
这回返回域名的A,AAAA,SOA,NS,MX,及CNAME记录。
host也可进行DNS域传输:
1 |
# host -l [domain] |
这回返回包含某一域里所有主机名称
- dig
使用dig查询A记录:
1 |
# dig [domain] |
或使用dig查询所有记录:
1 |
# dig [domain] any |
使用dig进行域传输,需使用权威的DNS,设置传输类型为axfr:
1 |
# dig @ns4.isp.com [domain] axfr |
- dnsenum
使用dnsenum收集DNS信息:
1 |
# dnsenum [domain] |
使用字典文件dic file暴力破解子域名:
1 |
# dnsenum -f [dic file] [domain] |
- dnsdict6
dnsdict6内置字典,可以枚举测试798个子域名。默认情况下,它枚举IPV6子域名。
1 |
# dnsdict6 [domain] |
如需测试IPV4,使用 -4 参数:
1 |
# dnsdict6 -4 [domain] |
也可以收集DNS和NS信息:
1 |
# dnsdict6 -d [domain] |
- fierce
fierce可以通过多项技术查找目标IP地址和主机名,通过您设备使用的DNS查找目标域的DNS服务器,他还可以暴力破解子域名(而且是调用目标域的DNS进行尝试),还能针对不连续的IP和主机名进行测试。
查看帮助,使用:
1 |
# fierce -h |
如,查找有关域信息:
1 |
# fierce -dns [domain] -threads [要使用的线程数] |
- DMitry (Deep Magic Information Gathering Tool)
这个工具可以起到以下作用:
- 根据IP/域名查询whois
- 挖掘主机信息
- 查找子域
- 查找电子邮件地址
- 端口扫描
使用一个指令即可完成上述功能:
1 |
# dmitry -iwnse [domain / IP] |
使用dmitry进行端口扫描:
1 |
# dmitry -p [domain / IP] -f -b |
- Maltego
Maltego拥有图形界面,是一个强大的工具,它可以:
- 域名
- DNS名
- whois
- 网段
- IP地址
- 某人所在公司或组织
- 某人有关EMail
- 某人有关网站
- 某人有关社交网站
- 某人有关电话号码
第四部,跟踪路由并分析路由信息。
- tcptraceroute
使用这个指令来跟踪路由:
1 |
# traceroute [domain] |
但是traceroute的数据包有可能被目标屏蔽。但是tcptracetoute工具通过发送TCP SYN握手请求,便可达到traceroute达不到的作用:
1 |
# tcptraceroute [domain] |
- tctrace
同样也可使用这个工具。tctrace也利用TCP SYN握手请求来跟踪路由。
1 |
# tctrace -i [网卡(如eth0/wlan0)] -d [domain] |
以上便是信息收集的全部内容。