Nmap常用命令

Nmap常用操作

# 主机发现,5.21 之前为 -sP
sudo nmap -sn 192.168.56.0/24

# 端⼝扫描
sudo nmap -sT --min-rate 10000 -p- 192.168.56.110 -oA nmapscan/ports

# 端⼝数据格式化
grep open nmapscan/ports.nmap | awk -F'/' '{print $1}' | paste -sd ','
ports=$(grep open nmapscan/ports.nmap | awk -F'/' '{print $1}' | paste -sd ',')
echo $ports

# 详细信息扫描
sudo nmap -sT -sV -sC -O -p80,111,777 192.168.56.110 -oA nmapscan/info

# udp扫描
sudo nmap -sU -p- 192.168.56.110 -oA nmapscan/udp

# 漏洞脚本扫描
sudo nmap --script=vuln -p80,111,777 192.168.56.110 -oA nmapscan/vuln

参数含义

  -sn : Ping扫描 - 禁用端口扫描,在 5.21 之前为 -sP
  -sT : TCP 全连接扫描
  --min-rate <数字>:发送包的速度不低于<数字>每秒,指定最低速率
  -p <端口范围>:仅扫描指定端口,例:-p22; -p1-65535; -p U:53,111,137,T:21-25,80,139,8080,S:9
  -p-  : 扫描所有端口 1-65535
  -oA <基本名>:一次性以三种主要格式(.nmap,.xml,.gnmap)输出
  -sV:探测开放端口以确定服务/版本信息
  -O:启用操作系统探测
  -sU:UDP扫描
  -sC:等同于 --script=default ,执行默认的脚本扫描
  --script=<Lua脚本>:<Lua脚本>是一个逗号分隔的目录、脚本文件或脚本类别列表,常用的 default 默认运行的脚本,通常用于基本的信息收集和漏洞探测, vuln 扫描已知漏洞的脚本, exploit 利用已知漏洞的脚本

其他

# 注:192.168.56.1 为目标IP地址
# 1. 纯扫描,默认情况下,nmap会发出一个arp ping扫描,且扫描目标tcp端口,范围为1-10000。
nmap 192.168.56.1

# 2. Nmap普通扫描增加输出冗长(非常详细)
nmap -vv 192.168.56.1

# 3. 端口扫描
nmap 192.168.56.1 -p 80  # 指定定单个端口
nmap 192.168.56.1 -p 1-100 # 多个端口
nmap 192.168.56.1 -p- # 所有端口
nmap -sP 10.1.112.89 # Ping扫描
nmap -sS 192.168.56.1 -p 80 # SYN半连接扫描
nmap -sT 192.168.56.1 -p 80  # TCP全连接扫描
nmap -sU 192.168.56.1 # UDP扫描
nmap -sF  192.168.56.1 # FIN,目标可能有IDS/IPS系统的存在,防火墙可能过滤掉SYN数据包,发送一个FIN标志的数据包不需要完成TCP的握手

# 4. 路由追踪
nmap --traceroute 192.168.56.1

# 5. 扫描一个网段
nmap -sP 192.168.56.1/24

# 6. 扫描目标主机版本(不是很准确)
nmap -O 192.168.56.1 -p 80

# 7. 扫描目标服务版本
nmap -O -sV 192.168.56.1 -p 80

# 8. 全面扫描(包含了1-10000端口ping扫描,操作系统扫描,脚本扫描,路由跟踪,服务探测)
nmap -A 192.168.56.1 -p-

# 9. 保存结果
nmap -A 192.168.56.1 -p- -oN nmap1

# 10. nmap命令混合式扫描
nmap -vv -p1-100 -o 192.168.56.1

# 11. 扫描多个目标
nmap 192.168.56.1 127.0.0.2
nmap 192.168.56.1-100 # 扫描 IP 地址范围内的所有主机
nmap -iL target.txt # namp在同一目录下,扫描这个txt内的所有主机