参考资料:《Kali Linux 2 网络渗透测试实践指南》
使用Nmap进行主机发现
跳过Ping扫描阶段
通常Nmap在进行其他扫描之前,都会对目标进行一个Ping扫描,如果目标主机无法Ping通的话,就会直接结束整个扫描进程。但是如果目标主机在线,只是采用了某种手段屏蔽了Ping扫描(如开启了防火墙,并禁止Ping),那么也会因此躲过其他扫描操作。
所以,可以指定无论是否响应Ping扫描,都要将整个扫描过程完成的参数:
语法:nmap -PN [目标ip地址]
如:
nmap -PN 192.168.113.133
扫描结果如图:
仅使用Ping协议进行主机发现
在需要对大量主机进行扫描的时候,如果Nmap对一个目标采用各种手段进行扫描的话,会花费大量时间。这时可以选择只对目标采用Ping扫描方式。
语法:nmap -sP [目标ip地址]
如:
nmap -sP 192.168.113.133
扫描结果如图,可以看到扫描速度大大加快了:
使用ARP协议进行主机发现
当目标主机与我们处于同一网段的时候,使用ARP协议扫描技术就是最佳选择——不仅速度最快,扫描结果也是最精确的。这是因为没有任何安全措施会阻止正常的ARP请求。
语法:nmap -PR [目标ip地址]
使用TCP协议进行主机发现
半开扫描:nmap -sS [目标ip地址]
全开扫描:nmap -sT [目标ip地址]
如:
nmap -sS 192.168.113.133
nmap -sT 192.168.113.133
在Kali Linux下,半开扫描需要root用户权限。
扫描结果如图:
使用UDP协议进行主机发现
UDP协议比TCP协议简单,但是在扫描时不如TCP方便且花费时间很长,因此这种扫描方式并不常用。
语法:nmap -sU [目标ip地址]
如:
nmap -sU 192.168.113.133
在Kali Linux下,这个扫描也需要root用户权限。
扫描结果如图,可以看出进行这个扫描花费了很长时间,远远超过了其他的扫描方式。
使用Nmap进行端口发现
可以使用Nmap找到目标上开放的端口,Nmap对目标的端口进行扫描时,对端口状态的判断有以下五种:
- open,应用程序在该端口接收TCP连接或UDP报文。
- closed,关闭的端口对于nmap也是可以访问的,它接收nmap探测报文并作出响应,但没有应用程序在其上监听。
- filtered,由于包过滤阻止探测报文到达端口,nmap无法确定端口是否开放。
- unfiltered,状态可访问,但nmap无法确定它是开放还是关闭。只有用于映射防火墙规则集的ACK扫描才会把端口分配到这个状态。
- open|filtered,无法确定端口开放还是被过滤,如开放的端口不响应。
nmap默认扫描的其实是65536个端口中最常用的1000个端口。
扫描全部端口
语法:nmap -p "*" [目标ip地址]
如:
nmap -p "*" 192.168.113.133
扫描结果如图所示:
扫描前n个端口
可以只扫描使用频率最高的n个端口。
语法:nmap --top-ports n [目标ip地址]
例如:
nmap --top-ports 10 192.168.113.133
扫描结果如图:
扫描指定端口
语法:nmap -p [端口号] [目标ip地址]
例如:
nmap -p 445 192.168.113.133
扫描结果如图:
使用Nmap扫描目标操作系统
nmap可以使用通过向目标发送探针,然后根据目标的回应来猜测系统。
语法:nmap -O [目标ip地址]
如:
nmap -O 192.168.113.133
在Kali Linux下这个扫描需要root用户权限。
扫描结果如图:
根据nmap扫描的结果,目标主机的操作系统可能为:Windows 7 SP0 - SP1, Windows Server 2008 SP1, Windows Server 2008 R2, Windows 8, Windows 8.1 Update 1中的一种,而目标主机是windows7。
使用Nmap扫描目标服务
语法:nmap -sV [目标ip地址]
如:
nmap -sV 192.168.113.133
扫描结果如图: