nmap使用方法

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
# 批量资产扫描
nohup nmap -sT -iL ip.txt -PN -p- --min-rate 2000 -oX result.xml &
# 扫描单个目标
nmap 192.168.1.100
# 扫描多个目标
nmao 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 参数将大多数有用的扫描命令集成在一起使用
nmap -A 192.168.1.100
# -O 参数获取目标的系统版本
nmap -O 192.168.1.100
# -PN 跳过ping尝试,对目标进行深度扫描(-PN 和 -P0 是一样的)
nmap -PN 192.168.1.111
# -sn 探测存活主机
nmap -sn 192.168.1.1/24
# -p 扫描指定端口
nmap -p 80,443,135,445 192.168.1.100
nmap -p 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.1_6_8.1.120
# 使用文本扫描
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
# 探测报文延迟时间(-T0 ~ -T5)数值越大越快,延迟时间可以提高扫描的精确度
nmap -T4 192.168.1.100
<--
-T0 偏执的:非常非常慢,用于IDS逃逸
-T1 猥琐的:相当慢,用于IDS逃逸
-T2 有礼貌的:降低速度以消耗更小的带宽,比默认慢十倍
-T3 普通的:默认,根据目标的反应自动调整时间模式
-T4 野蛮的:假定处在一个很好的网络环境,请求可能会淹没目标
-T5 疯狂的:非常野蛮,很可能会淹没目标端口或是漏掉一些开放端口
-->
# TTL(存活时间)是因特网协议(IP)报文分组中的一个值
nmap -ttl 100 192.168.1.100
# 设置timeout时间
nmap --host-timeout 1m 192.168.1.100
# 指针延迟,可以提高准确度
nmap --scan-delay 10s 192.168.1.100
# 设置每秒最低50个数据包发送量,太高扫描结果可能不准确
nmap --min-rate 50 192.168.1.100
# 设置每秒最大10个数据包发送量
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
# 绕过防火墙
nmap -f 192.168.1.111
# 使用ETH,这个命令会发送小于8字节的探针,而不是整个包
nmap eta ETH 192.1_6_8.1.100
# 指定最大传输单位(字节),可以是8的任何倍数(16,32,64)
nmap --mtu 8 192.168.1.100
# 使用诱饵选项,使用许多伪装的ip地址
nmap -D RND:10 192.168.1.100
# 使用伪装ip地址进行扫描,支持伪装多个ip地址
nmap -D 10.10.1.111 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
# -oN 参数标准输出
nmap -oN scan.txt 192.168.1.1/24
# -oX 参数输出xml文件
nmap -oX scan.xml 192.168.1.1/24
# -oG 参数输出文件,适合用grep查看
nmap -oG scan.txt192.168.1.1/24
# -oA 参数输出以上所有格式文件
nmap -oA scan 192.168.1.1/24

5、脚本

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# 扫描常规漏洞(根据nmap版本而定)
nmap --script=vuln 192.168.1.100
# 扫描root空口令
nmap -p 3306 --script=mysql-empty-password.nse 192.168.1.100
# telnet暴力破解
nmap -p 23 --script telnet-brute --script-args userdb=[用户名字典路径],passdb=[密码字典路径] --script-args telnet-brute.timeout=8s 192.168.1.100
# 检测robots.txt文件中的内容
nmap --script=http-robots.txt.nse www.baidu.com
# 执行dos攻击
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
......