一次简单地情报收集实验
实验目的:
1.通过信息搜集工作,确定渗透测试目标的范围;
2.通过情报信息收集,发现渗透测试目标的所能搜集的所有信息,为后续的渗透攻击提供基础;
实验原理:
通过Googlehacking,社会工程学,网络踩点,扫描探测,被动监听,拒绝服务攻击,等方法针对渗透目标进行全方位的多种类型的情报收集。
实验环境:
已经越过防火墙并控制了dmz区一台kali linux虚拟机,在同一网段进行内网渗透测试
实验拓扑:
实验声明:
这是一次模拟的渗透测试,所以有些不能具体实现,大家以对像testfire.net这样的ibm公司搭建的渗透测试环境来进行信息收集
实验步骤:
一、外围信息收集
1.Googlehacking
首先我们用Googlehacking对那个web服务器上搭建的站点进行网站查找,可见到一些公共信息 例如:site:testfire.net 等对目标站点进行公共信息收集
2.whois
利用whois对目标网站进行域名查询 例如:
3.nslookup与dig
用nslookup与dig对目标进行ip查询。
他们的用法不止于此,可以查看他们的操作手册
4.位置查询
用traceroute对ip进行路由侦探,并且进行纯真数据库查询(www.cz88.net)
阶段分析:
首先你已经对你的渗透测试目标的门户网站(192.168.1.232)进行了充分的外围信息收集,了解了网站域名,ip地址,注册人,物理位置等一些外围信息有了充分的了解
二、主动探测与端口扫描
1.ping
使用最简单的基于icmp协议的ping命令扫描发现活跃主机,我们可以写一个非常简单shell脚本来简化这一过程 例如:
完一执行即可。
2.sweep模块
使用metasploit自带的主机发现模块来对这个网段扫描发现活跃主机。例如:arp_sweep模块:使用arp请求来枚举本地局域网中所有活跃主机 再比如 udp_sweep模块,通过发送udp数据包查探指定主机是否活跃 操作步骤
(1)在终端中输入命令:/etc/init.d/postgresql start #打开postgresql数据库(metasploit集成的数据库)
(2)在终端中输入命令:msfdb init #初次启动数据库服务需要初始化数据库
(3)在终端中输入命令:msfconsole #进入metasploit控制台模式
(4)在控制台输入命令:search arp_sweep #寻找相应模块
(5)在控制台输入命令:use auxiliary/scanner/discovery/arp_sweep #使用该模块
(6)在控制台输入命令:show options #查看相应的配置模块
(7)在控制台输入命令:set rhosts 192.168.1.0/24 enter后输入set threads 50 #分别配置目标网段 和 线程
(8)在控制台输入命令:run #运行此模块
#udp_sweep操作步骤与arp_sweep一样,在这里不过多演示 metasploit还有针对探测端口服务的模块,直接search portscan,找到相应的模块即可,操作步骤和上面差不多
3.nmap探测网络
使用神器nmap来探测(nmap功能很多,这里不一一列举,大家可已自行查看nmap手册)
(1)在终端中输入命令:nmap -sn 192.168.1.0/24 #-sn相当于ping命令
(2)在终端中输入命令:nmap -O 192.168.1.230 #-O探查目标操作系统版本等信息
(3)在终端中输入命令:nmap -sV -Pn 192.168.1.230 #我们采用了非ping手段(-Pn)和探测具体服务命令(-sV)
(4)使用nmap探查其他活跃主机,
在终端输入命令:nmap -sV -Pn 192.168.1.231
在终端中输入命令:nmap -sV -Pn 192.168.1.232
阶段分析:
(1)通过以上三个操作,我们发现了目标网段活跃主机 我们有理由怀疑ip地址为.1 .2 .254的ip地址为默认网关地址或者广播地址
(2)通过nmap扫描我们发现对应主机的开放端口和具体服务版本信息。我们通过具体服务版本信息可以到相应的网站找到可利用的漏洞和渗透代码,从而侵入目标计算机系统(如果你有那个水平可以自己找操作系统漏洞)。
实验总结:
事实上一次完整的信息收集远不止如此,比如这些信息收集手段又可细化为主动信息收集和被动信息收集。其实在某种意义上来讲,渗透测试就是一次相对完善的信息收集过程。