通用渗透测试框架
◆范围界定:收集需求、筹划工作、边界分析、明确业务指标、项目管理和统筹调度
◆信息收集:包括DNS服务器、路由关系、whois数据库、电子邮件地址、电话号码、个人信息以及用户账户
⇨⇨信息收集可分为两大类:主动式信息收集和被动式信息收集。主动式信息收集方法是通过直接发起与该目标网络之间的互动来获取相关信息,例如ICMP ping或者TCP端口扫描就属于主动式信息手机手段。而被动式信息收集方法,则是通过第三方服务例如谷歌来获取目标网络的相关信息。
1.查询域名注册信息
(修改之后好像查询不到注册人联系方式之类信息了)
#whois example.com
2.DNS记录分析
(使用DNS分析工具可收集DNS服务器信息和有关域名的相应记录)
通过域名查询IP信息,这种查询叫做正向查询;
通过IP地址查询域名属于逆向查询。
host :
#host www.example.com
( 默认情况下使用此命令查询主机www.example.com的IPv4、IPv6地址和邮件服务器地址,如需查询全部DNS记录,可以使用- a选项)
dig :
#dig example.com
(相比于host指令,dig用法更灵活,输出更清晰,甚至可以用dig指令处理一个文件里所有的DNS查询指令)
#dig example.com any
如果使用dig指令不加任何选项,其仅会返回该域的A记录,如需查询全部的DNS数据,我们可以把type选项设定为any
dnsenum :
# dnsenum example.com
默认情况下,dnsenum会返回主机地址,名称解析服务器和邮件服务器的IP地址。如图所示情况即为不能进行域传输,在不能进行域传输的情况下,我们可以使用字典文件对子域名进行暴力破解。例如,如果使用字典文件dns.txt暴力破解example.com的子域名,可使用下面这条指令
#dnsenum -f dns.txt example.com
在DNS域传输被禁用的情况下,通过google搜索某域的子域名是十分有效的方法,在dnsenum指令加上 “ - p页数 ” 选项,可以在google结果的前几页里搜索子域名。而在指令里加上 “ -s数量 ”,则可以按个数搜索子域名。为了加快搜索进程,可以设置线程的数量(--threads)
dnsdict6 :
#dnsdict6 example.com 枚举IPv6子域名
dnsdict6自带的字典文件可测试出798个子域名,在指定 - 4 选项后,dnsdict6就可以测试IPv4的子域名。还可通过 –d 选项,让它收集该域的DNS和NS信息
fierce :
查看帮助手册
#fierce -h
#fierce -dns example.com -threads 3
DNS枚举工具fierce可通过多项技术查找目标IP地址和主机名,它会通过主机使用的DNS服务器查找继而使用目标域的DNS服务器,它同样可以利用暴力破解子域名。在使用字典文件进行暴力破解时,它会调用目标域DNS服务器逐条尝试字典里的DNS条目。这个工具的主要特点是,它能够针对不连续的IP空间和主机名称进行测试。
fierce进行DNS枚举的时间耗费可能会比较长.
上述篇幅介绍了搜索某个域的主机名称的多种方法,在渗透测试项目里,只要能够在DNS分析阶段找到主机名称,就可以对该主机进行测试
dmitry :
属于多功能的信息收集工具,它收集信息的主要方式可分为:
◎根据IP地址(或域名)来查询目标主机的whois信息
◎在Netcarft.com的网站上挖掘主机信息
◎查找目标域中用的子域
◎查找目标域的电子邮地址
◎探测目标主机上打开的端口,被屏蔽的端口和关闭的端口
尽管kali中很多工具都可以部分获取这些信息,但是dmitry更为方便,整合了这些工具,能够在同一个报告里记录多种工具才能获取到的所有信息。
#dmitry -iwnse targehost
此指令完成了
◎进行whois查询
◎从Netcarft.com的网站上收集相关信息
◎搜索所有可能的子域
◎搜索所有可能的电子邮件地址
#dmitry -p targethost -f -b 做简单的端口扫描
由扫描结果可以看出,targethost使用了某种包过滤设备,它只允许连接到该主机的80端口,这个端口通常由Web服务器占用。
Maltego:
Maltego是开源的情报收集程序和法证调查程序,它能够以一种人性化的方式挖掘、收集并整理信息。
Maltego 能够以图形化的方式显示数据之间的关联,在分析信息片段各方面的共同性时,这种可视化功能可使工作变得简单。
使用:ctrl + T创建新的工作图
添加域,解析
3.路由信息
网络路由信息可以帮助测试人员了解自己的主机到目标主机之间的网络通信路径,进而理解目标主机的网络情况。保护目标的防火墙信息,往往也藏在路由信息里。
tcptraceroute :
tcptraceroute是traceroute程序的补充工具,传统的 traceroute程序在其发送的UDP或ICMP echo数据包里,设置有特定的TTL标志位,它把TTL的值从1开始递增,直到数据包到达目的主机为止。而tcptraceroute则是使用TCP数据包进行测试,他利用TCP SYN(握手请求)数据包进行路由信息探测。
相比其他程序,tcptraceroute的优点是在于他有较高的通过率,如果在渗透测试人员和目标主机之间的防火墙禁止traceroute数据通过,那么traceroute指令就发挥不了作用了。但是只要防火墙允许访问目标主机的特定TCP端口,就可以使用tcptraceroute程序穿过防火墙到测试目标主机。
#traceroute example.com
#tcptraceroute example.com
tctrace:
使用tctrace程序分析路由信息
#tctrace -i
参数中的device指的是网卡接口,targehost则是被测试的主机
4.搜索引擎
kali linux中的搜索引擎类工具可以使用搜索引擎获取目标主机的域名信息、电子邮件信息以及文件的元数据信息。如果无法访问目标主机上的网站,不妨利用搜索引擎间接访问,就其结果而言,目标主机不会知道您具体进行了那些操作。
theharvester:
#theharvester -d example.com -l 100 -b baidu
表示从百度的前100项搜索结果挖掘目标域中的电子邮件地址和主机名
如果需要搜索用户名等信息,可以将baidu字段换成 linkedin
metagoofil(会被墙)
通过google引擎在目标域内搜索目标域的文件的元数据信息。
#metagoofil -d example.com -l 20 -t doc,pdf -n 5 -f test.html -o test
从目标域(-d example.com)里搜索DOC、PDF文件(-t .doc,.ipdf),并保存到test目录里(-o test),对于每种类型的文件,我们都要收集20个(-l 20),我们希望这个程序只下载5个文件(-n 5),并将最终处理结果保存为test.html(-f test.html)
程序如果找到了很多文件,并从中收集到了大量诸如用户名和文件路径的信息,我们可以通过这些用户名穷举目标域里的用户名,进而让使用字典暴力破解(在目标域中存在的)用户名的密码,需要小心的是,如果对目标域里的用户名进行暴力破解,可能会造成用户账号被锁定的情况。此外,我们俩可以根据路径信息推测目标主机的操作系统。