Nmap 端口扫描

本文最后更新于 2025年7月11日 下午


📌 1、常用命令

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
# 批量资产扫描
nohup nmap -sT -iL ip.txt -PN -p- --min-rate 2000 -oX result.xml &

# 扫描单个目标
nmap 192.168.1.100

# 扫描多个目标
nmap 192.168.1.100 192.168.1.111 192.168.2.8
nmap 192.168.1.100,111,115,127
nmap 192.168.1.100-200

# 扫描整个网段
nmap 192.168.1.0/24
nmap 192.168.0.0/16

# -A 开启操作系统检测、版本检测、脚本扫描和 traceroute
nmap -A 192.168.1.100

# -O 仅检测操作系统
nmap -O 192.168.1.100

# -PN 跳过 ping(对方禁 ping 时用)
nmap -PN 192.168.1.111

# -sn 只探测存活主机(Ping Scan)
nmap -sn 192.168.1.1/24

# -p 指定端口
nmap -p 80,443,135,445 192.168.1.100
nmap -p 80-1000 192.168.1.100 # 扫描80-1000端口
nmap -p- 192.168.1.100 # 扫描1-65535所有端口

# 使用 Ping 扫描
nmap -sP 192.168.1.100

# TCP 全连接扫描
nmap -sT 192.168.1.100

# UDP 扫描
nmap -sU 192.168.1.100

# SYN 半开放扫描(最常用)
nmap -sS 192.168.1.100

# ACK 扫描
nmap -PA 192.168.1.120

# 使用 IP 列表文件扫描
nmap -iL ip.txt

📌 2、时间与速率选项

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
# 探测报文延迟时间(-T0 ~ -T5,数值越大越快)
nmap -T4 192.168.1.100

# 各时间模板含义:
# -T0 偏执(极慢,适合 IDS 规避)
# -T1 猥琐(很慢)
# -T2 有礼貌(比默认慢)
# -T3 普通(默认)
# -T4 野蛮(假设网络条件好)
# -T5 疯狂(非常快,可能丢端口)

# 设置 TTL
nmap --ttl 100 192.168.1.100

# 设置单个主机最大扫描时间
nmap --host-timeout 1m 192.168.1.100

# 设置每次探测的间隔
nmap --scan-delay 10s 192.168.1.100

# 最低速率(包/秒)
nmap --min-rate 50 192.168.1.100

# 最高速率(包/秒)
nmap --max-rate 10 192.168.1.100

📌 3、绕过防火墙

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
# 使用分片封包
nmap -f 192.168.1.111

# 使用特定网卡(示例,若不生效可忽略)
nmap -e eth0 192.168.1.100

# 指定最大传输单位(8的倍数)
nmap --mtu 8 192.168.1.100

# 使用伪装 IP(诱饵)
nmap -D RND:10 192.168.1.100
nmap -D 10.10.1.111,10.10.1.112 192.168.1.100

# 指定源端口
nmap --source-port 88 192.168.1.100

# 加入随机数据
nmap --data-length 25 192.168.1.100

# 故意发错校验和
nmap --badsum 192.168.1.111

📌 4、结果输出

1
2
3
4
5
6
7
8
9
10
11
# 标准输出
nmap -oN scan.txt 192.168.1.1/24

# XML 输出
nmap -oX scan.xml 192.168.1.1/24

# Grep 输出(方便 grep)
nmap -oG scan.grep 192.168.1.1/24

# 同时生成所有格式
nmap -oA scan 192.168.1.1/24

📌 5、常用脚本 NSE

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
# 扫描常规漏洞
nmap --script=vuln 192.168.1.100

# 扫描 MySQL 空口令
nmap -p 3306 --script=mysql-empty-password 192.168.1.100

# Telnet 暴力破解
nmap -p 23 --script telnet-brute --script-args userdb=users.txt,passdb=pass.txt,telnet-brute.timeout=8s 192.168.1.100

# 检查 robots.txt
nmap --script=http-robots.txt www.baidu.com

# Slowloris 攻击(演示)
nmap --script http-slowloris --max-parallelism 1000 www.baidu.com

# 获取 Banner
nmap --script banner 192.168.1.100

# 使用所有 http* 开头的脚本
nmap --script "http*" www.baidu.com

# 默认脚本(信息收集)
nmap --script default 192.168.1.100
# 简化写法
nmap -sC 192.168.1.100

# 更新脚本数据库
nmap --script-updatedb

⚡ 小贴士

✅ 推荐配合 --min-rate--max-rate 调速,避免被防火墙拉黑
✅ 使用 -sS 配合 -PN,对目标更隐蔽
✅ 扫描大网段时,配合 nohup + 输出文件,避免丢结果