之前我学习nmap的时候,对很多命令一知半解。为了加深印象,再写一次。
-sV,使用SYN扫描,模拟的是TCP握手的端口扫描技术,因为UDP是无连接的,所以对UDP协议是无效的。SYN可以显示出端口是否开放,但是无法探测端口的应用程序的版本,比如是SMB的什么版本。
-sU,和名字一样,用来探测UDP协议的端口。
-sV,我觉得这个参数非常有价值,不仅显示端口,还会显示端口的协议版本。
几种s开头参数使用的协议对应如下,
-sS/sT/sA/sW/sM: TCP SYN/Connect()/ACK/Window/Maimon scans。所以这几个选择一个就可以了。
以下是扫描baidu的80端口结果,这里肯定是不会有版本的,人家是大厂,只是做一个示例。
└─$ nmap -sV -p 80 baidu.com
Starting Nmap 7.93 ( https://nmap.org ) at 2024-02-19 14:12 CST
Stats: 0:00:06 elapsed; 0 hosts completed (1 up), 1 undergoing Service Scan
Service scan Timing: About 0.00% done
Nmap scan report for baidu.com (110.242.68.66)
Host is up (0.046s latency).
Other addresses for baidu.com (not scanned): 39.156.66.10
PORT STATE SERVICE VERSION
80/tcp open http Apache httpd
Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 7.86 seconds
-p,指定端口,默认情况下nmap会扫描1000个常用端口,如果想指定特殊端口可以使用以下参数
-p-,是1-65535全部端口,-p 80,443 指定扫描这两个端口,-p 80-1000,扫描端口的区间。
--min-rate,设置最小扫描速度,如果不设置这个扫描一台主机大概要十几分钟,设置为5000的时候一分钟以内可以完成,当然速度快了容易被封ip,具体设置什么值需要看情况。
结合以上知识,最常用的命令如下;
bash
sudo nmap -p- -sV --min-rate=5000 [target]
示例如下,已经隐藏了实际的IP
bash
└─$ sudo nmap -p- -sV --min-rate=5000 *.*.*.*
Starting Nmap 7.93 ( https://nmap.org ) at 2024-02-19 14:27 CST
Nmap scan report for *.*.*.*
Host is up (0.00018s latency).
Not shown: 65531 closed tcp ports (reset)
PORT STATE SERVICE VERSION
80/tcp open tcpwrapped
443/tcp open tcpwrapped
8080/tcp open tcpwrapped
8888/tcp open tcpwrapped
Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 13.62 seconds