三、信息收集
被动信息收集
在不接触目标系统时进行的信息收集,包括使用工具Yeti、Whois
(1)Whois
msf > whois secmaniac.net
(2)Netcraft:find the IP address of a server hosting a particular website
(3)nslookup
2.主动信息收集:与目标系统主动交互
(1)使用nmap进行端口扫描
推荐选项-sS,执行一次隐秘的TCP扫描
推荐选项-Pn,告诉nmap不要使用ping命令判断主机是否存活,而默认所有主机都是存活状态,因为在internat上大多数网络均不允许ping命令所使用的ICMP协议通行,如果预先使用了ping进行判断,那么会漏掉很多真实存在的主机。但是,如果在内网里,进行nmap扫描,可以忽略这个选项以加快扫描速度。
-A,尝试进行深入的服务枚举和旗标获取
3.在metasploit中使用数据库:记录操作
metasploit支持MySQL、PostgreSQL和SQLite3数据库,默认为PostgreSQL。
4.高级Nmap扫描,TCP空闲扫描:冒充网络上的另一个主机进行扫描
msf > use auxiliary/scanner/ip/ipidseq
msf auxiliary(ipidseq) > set RHOSTS 192.168.1.0/24
RHOSTS => 192.168.1.0/24
msf auxiliary(ipidseq) > set THREADS 50
THREADS => 50
msf auxiliary(ipidseq) > run
msf auxiliary(ipidseq) > nmap -PN -sI 192.168.1.109 192.168.1.155
5.使用Metasploit内置工具进行端口扫描
查看内置的端口扫描工具msf > search portscan
6.针对性扫描
(1)服务器消息块协议扫描(SMB):可以使用smb_version来遍历一个网络,查看Windows系统版本号
msf > use scanner/smb/smb_version
(2)配置不当的Microsoft SQL Server:通常是进入主机的第一个后门,很多人不知道自己的主机上安装了SQL,因为在其他程序安装时装载到系统里面的,也很少安装补丁
MS SQL安装后,默认监听TCP1433端口或使用随机的动态TCP端口,Metasploit的模块mssql_ping可以获取随机的TCP端口号。
msf > use scanner/mssql/mssql_ping
由于mssql_ping使用UDP协议,速度可能会很慢,在局域网里将线程数设为255将很大的提高扫描速度。
(3)SSH服务器扫描:一些主机运行着SSH(安全shell),应对对SSH版本进行扫描,因为SSH存在漏洞。
可以利用Metasploit的ssh_version模块来识别目标服务器上运行的SSH版本。
(4)FTP扫描:FTP服务器经常是进入一个目标网络最便捷的途径。
模块scanner/ftp/ftp_version可以对FTP服务进行扫描;
模块scanner/ftp/anonymous可以检查FTP服务器是否允许匿名用户登录;
(5)简单网管协议SNMP扫描
SNMP通常用于网络设备中,用来报告带宽利用率、冲突率等信息。
内置模块scanner/snmp/snmp_enum,为SNMP扫描专门设计。开始扫描之前请注意,如果能够获取只读(RO)或者读/写(RW)权限的团体字符串,将对你从设备中提取信息发挥重要作用。基于Windows操作系统的设备中,如果配置了SNMP,通常可以使用RO或RW权限的团体字符串,提取目标的补丁级别、运行服务、用户名、持续时间、路由等信息。团体字符串(Community strings)基本等同于查询设备信息或写入设备配置参数时所需的口令。
SNMP的v1和v2天生便有安全权限,SNMP的v3中添加了加密功能增强了安全性。为了获取管理一台交换机的权限,首先要找到它的SNMP团体字符串,利用Metasploit框架中的scanner/snmp/snmp_login模块,可以尝试对一个IP(段)使用字典猜解SNMP团体字符串。