1) nmap -sS 192.168.0.100
TCP的SYN扫描,也称为stealth扫描,扫描时,发送一个SYN包,等待SYN/ACK响应,当能够收到SYN/ACK响应时,就认为该端口是开放的。SYN扫描是一个速度极快而且结果又准的扫描,噪音比较低。不过,运行时,需要root或者sudo权限。
2)nmap -sT 192.168.0.100
-ST通过TCP协议的三次握手来检测,结果比-sS更加准确,但是缺点也比较明显,就是噪音比-sS要大,容易被防火墙探测到。运行不需要root或者sudo权限。
3)nmap -sU 192.168.0.100
用于扫描UDP端口,速度比较慢,虽然很多服务都是使用TCP,但是也有些服务是使用UDP,例如:DNS,SNMP,DHCP等协议。有时,使用UDP扫描也可能有意想不到的收获,不过,要做好思想准备,扫描速度太慢了,可以通过端口列表,指定一些知名的UDP服务端口,这样扫描的速度会快很多。运行需要root或者sudo权限。
4)nmap -sN 192.168.0.100
简单快速的ping扫描,根据主机是否响应ICMP Ping包来检测。对于判断机器是否在线很有用处,不过,也可以直接使用ping命令来尝试。通过-Pn与-sN达到的效果是一样的。 噪音比较小,不容易被检测到,运行需要root或者sudo权限。
5)nmap -sV 192.168.0.100
用于扫描目标机器运行哪些服务,以及这些服务是什么版本,对于后期的通过服务和版本查找相关的漏洞并进行攻击做准备。 噪音会相对纯TCP扫描会大一些,运行也不需要root或者sudo权限。
6)nmap -O 192.168.0.100
用于扫描目标机器运行在什么操作系统上,包括操作系统是什么版本,然后再根据操作系统和版本号,查找相关的漏洞去攻击。噪音会相对纯TCP扫描会大一些,运行也不需要root或者sudo权限。
7)nmap -A 192.168.0.100
A也就是aggressive的简称,通过aggressive这个单词就可以知道这种搜秒是一种有侵略性的扫描,他会执行操作系统探测,版本探测,脚本扫描以及traceroute。扫描结果中会包含很多信息,包括操作系统、运行的服务和版本,以及一些脚本扫描的结果等,信息量很大,有很多信息可以用于后续的继续攻击,例如:FTP是否支持匿名访问等,都会有记录。不过,缺点就是噪音太大,也可能是噪音最大的扫描了,同时也需要sudo权限。
测试的结果综合如下:
扫描选项 | 扫描时间 | 是否需要root/sudo |
nmap -sS | 16.82 | 是 |
nmap -sT | 16.72 | 否 |
nmap -sU | 1091.03 | 是 |
nmap -sN | 17.94 | 是 |
nmap -sV | 28.87 | 否 |
nmap -A | 42.95 | 否 |