目录
攻击机:Linux Kali
靶机:Win7、Win10和Metasploittable2
Kali内通过DNS或IP地址收集目标信息
- Whois
- 用来查询域名注册信息数据库的工具。
- 域名注册信息包含域名所有者、服务商、注册日期等。
- 在渗透攻击之前,这些信息非常有价值。
- 注意:进行whois查询时不能带有www、ftp等前缀。
- Nslookup(查询指定域名对应的IP地址)
-
nslookup命令格式:
nslookup -type=参数 domain
-
参数作用:
- 对IP地址解析
- AAAA:地址记录
- AFSDB:文件系统数据库服务器记录
- ATMA:ATM地址记录
- CNAME:别名记录
- ISDN:域名对应的ISDN号码
- MB:存放指定邮箱的服务器
- MG:邮件组记录
- MINFO:邮件组和邮箱的信息记录
- MR:改名的邮箱记录
- MX:查找邮件转发服务器
- NS:名字服务器记录
- PTR:反向记录
- RP:负责人记录
- RT:路由穿透记录
- SRV:TCP服务器信息记录
- TXT:域名对应的文本信息
- X25:域名对应的X.25地址记录
-
示例:
┌──(rootkali)-[~/桌面] └─# nslookup -type=A baidu.com Server: 192.168.200.2 Address: 192.168.200.2#53 Non-authoritative answer: Name: baidu.com Address: 220.181.38.148 Name: baidu.com Address: 220.181.38.251 ┌──(rootkali)-[~/桌面] └─# nslookup -type=MX baidu.com Server: 192.168.200.2 Address: 192.168.200.2#53 Non-authoritative answer: baidu.com mail exchanger = 15 mx.n.shifen.com. baidu.com mail exchanger = 20 mx1.baidu.com. baidu.com mail exchanger = 20 jpmx.baidu.com. baidu.com mail exchanger = 20 mx50.baidu.com. baidu.com mail exchanger = 20 usmx01.baidu.com. baidu.com mail exchanger = 10 mx.maillb.baidu.com.
- host
- 有时候我们会搜索到主机名而不是IP地址,可以使用host工具进行查询。
- ICMP Ping
- Ping(Packet Internet Grope,英特网包探索器)用于测试网络连接的程序。
- Ping程序会发送一个ICMP echo请求消息给目的主机,并报告应答情况。
- 通过ping探测主机是否活跃。
MSF内主机探测与端口扫描
主机探测
-
MSF关于主机发现模块:
-
需要启用metasploit所依赖的postgresql数据库。
-
在Kali Linux上启动postgresql命令:
systemctl start postgresql
,然后启动msfconsole。 -
主机探测模块位于
auxiliary/scanner/discovery
中。 -
端口扫描模块:
-
位于
auxiliary/scanner/portscan
中。
使用MSF进行主机探测
- auxiliary/scanner/discovery/arp_sweep模块:ARP扫描本地网络探测。
- auxiliary/scanner/discovery/ipv6multicastping模块:IPv6本地Ping探测。
- auxiliary/scanner/discovery/ipv6_neighbor模块:IPv6本地邻居探测。
- auxiliary/scanner/discovery/ipv6neighborrouter_advertisement模块:使用路由器公告IPv6本地邻居探测。
- auxiliary/scanner/discovery/empty_udp模块:基于UDP的空探测器。
- auxiliary/scanner/discovery/udp_probe模块:基于UDP的服务探测器。
- auxiliary/scanner/discovery/udp_sweep模块:发送UDP数据包探测指定主机是否活跃,并发现UDP服务。
使用MSF进行端口扫描
- auxiliary/scanner/portscan/ack模块:ack方式探测防火墙未屏蔽的端口。
- auxiliary/scanner/portscan/ftpbounce模块:通过FTP bounce攻击原理对TCP服务枚举。
- auxiliary/scanner/portscan/syn模块:使用TCP SYN方式探测开放的端口。
- auxiliary/scanner/portscan/tcp模块:通过一次完整的TCP判断端口开放。
- auxiliary/scanner/portscan/xmas模块:更为隐秘的扫描方式,发送FIN、URG等。
使用Nmap进行主机探测和端口扫描
- Nmap参数:
-sP
:使用ping探测主机。-sn
:Ping Scan只进行主机发现,不进行端口扫描。-P0/Pn
:默认视为指定的主机已开启,跳过主机发现阶段。-PS
:使用TCP ACK的方式来发现。-PA
:使用TCP SYN的方式来发现。-PU
:使用UDP Ping的方式来发现。-PY
:使用SCTP的方式来发现。-PE/-PP/-PM
:使用ICMP echo/timestamp/netmask扫描。-PR
:使用ARP Ping的方式扫描。-R/-n
:总是进行DNS解析/不进行DNS解析。
使用Nmap进行高级TCP空闲扫描
- 示例:
nmap -T4 -A -v ip
:快速扫描,-A将会综合扫描和深入服务枚举,-v显示余。nmap -O ip
:OS操作系统类型探测。nmap -sS -Pn/P0 ip
:-sS执行一次隐秘的TCP扫描,-Pn不执行ping命令,视默认主机为存活。nmap -sS -sV ip
:TCP扫描的同时探测版本。
高级TCP空闲扫描
- TCP空闲扫描原理:
- 判断端口是否开放的一种方法是向该端口发送一个SYN包。
- 如果目标端口是开放的,则会返回一个SYN/ACK包;否则,返回RST包。
- TCP空闲扫描利用这一点,通过向空闲主机发送SYN/ACK包,判断目标端口是否开放。
使用Metasploit进行TCP空闲扫描
- 使用
auxiliary/scanner/ip/ipidseq
模块扫描满足TCP空闲扫描的主机。 - 示例:
- 启动Kali自带的MSF:
msfconsole
- 使用扫描空闲主机的模块:
use auxiliary/scanner/ip/ipidseq
- 查看需要配置的内容:
show options
- 进行配置:
- 设置RHOSTS的扫描范围。
- 设置THREADS的线程数,如50或100。
- 执行exploit。
- 扫描完成后,发现一个空闲主机192.168.200.145。
- 使用nmap中的-sI对192.168.200.145进行扫描:
nmap -PN -sI 傀儡机IP 目标IP
。 - 使用空闲扫描,可以不利用自身IP进行扫描获取目标开放端口。