nmap简单使用
- 一、常用nmap命令
- 1.基本使用说明
- nmap常用参数
- 常用端口及对应服务
- 2.扫描方式说明
- 3.扫描策略举例
- 大神的脚本举例
- 自用扫描策略
一、常用nmap命令
1.基本使用说明
nmap常用参数
Timing 模板说明
timing 参数可以指定 nmap 扫描的速度。其中各个选项如下:
T0 => paranoid 慢速网络扫描,串行扫描,两次扫描间隔 5 分钟。扫描速度极慢。
T1 => Sneky 慢速网络扫描,串行扫描,两次扫描间隔 15 秒,扫描速度较慢。
T2 => Polite 中速网络扫描,串行扫描,两次扫描间隔 400 毫秒,扫描速度慢。
T3 => Normal 中速网络扫描,并行扫描,两次扫描间隔 0 秒,扫描速度正常。
T4 => Aggressive 快速网络扫描,并行扫描,两次扫描间隔 0 秒,扫描速度较快。
T5 => Normal 快速网络扫描,并行扫描,两次扫描间隔 0 秒,扫描速度极快。
nmap -T[0-5] [IP or domain]
常用端口及对应服务
2.扫描方式说明
TCP 扫描
端口扫描中最稳定的,利用的是 TCP 三次握手。TCP 扫描通常用于收集有关目标的更多信息,但是会和目标主机建立一个完成的 TCP 连接。
nmap -sT -Pn [IP or domain]
-sT TCP 连接扫描(s ==> 哪种类型扫描;T ==> TCP 类型)
SYN 扫描
TCP 两次握手(隐藏扫描,速度快,nmap 缺省参数)
nmap -sS -Pn [IP or domain]
-sS SYN 连接扫描(s ==> 哪种类型扫描;S ==> SYN 类型)
ACK 扫描
ACK 扫描,用于确定 TCP 端口是否被防火墙过滤。
nmap -sA -Pn [IP or domain]
-sA ACK 连接扫描(s ==> 哪种类型扫描;A ==> ACK 类型)
UDP 扫描
DHCP,DNS,SNMP,TFTP 等都使用了 UDP 协议;UDP 扫描会评估目标系统上的 UDP 端口,可以确认 UDP 端口是开放还是被防火墙过滤。
nmap -sU -Pn [IP or domain]
-sU UDP 连接扫描(s ==> 哪种类型扫描;U ==> UDP 类型)
-sV UDP 扫描中添加版本扫描信息(V ==> 版本信息)
不存在 -Pn 参数(从 UDP 协议去理解,你发了就 ok 管他收没收到)
扫描 IP 段
nmap 192.168.1.1-255 # 扫描 192.168.1.1-192.168.1.255 所有 IP
nmap 192.168.1.1/24 # 扫描 192.168.1.1-192.168.1.255 所有 IP
nmap -iL IPL.txt # 扫描 IPL.txt 中保存的所有 IP
输出保存选项
-oN => 保存为文本文件
-oX => 保存为 XML 文件
-oG => 保存为 GREPable 输出
-oS => 脚本输出
3.扫描策略举例
大神的脚本举例
# 适用所有大小网络最好的 nmap 扫描策略
# 主机发现,生成存活主机列表
nmap -sn -T4 -oG Discovery.gnmap 192.168.56.0/24
grep "Status: Up" Discovery.gnmap | cut -f 2 -d ' ' > LiveHosts.txt
# 端口发现,发现大部分常用端口
# https//nmap.org/presentations/BHDC08/bhdc08-slides-fyodor.pdf
nmap -sS -T4 -Pn -oG TopTCP -iL LiveHosts.txt
nmap -sU -T4 -Pn -oN TopUDP -iL LiveHosts.txt
nmap -sS -T4 -Pn --top-ports 3674 -oG 3674 -iL LiveHosts.txt
# 端口发现,发现全部端口,但 UDP 端口的扫描会非常慢
nmap -sS -T4 -Pn -p 0-65535 -oN FullTCP -iL LiveHosts.txt
nmap -sU -T4 -Pn -p 0-65535 -oN FullUDP -iL LiveHosts.txt
# 显示 TCP\UDP 端口
grep "open" FullTCP|cut -f 1 -d ' ' | sort -nu | cut -f 1 -d '/' |xargs | sed 's/ /,/g'|awk '{print "T:"$0}'
grep "open" FullUDP|cut -f 1 -d ' ' | sort -nu | cut -f 1 -d '/' |xargs | sed 's/ /,/g'|awk '{print "U:"$0}'
# 侦测服务版本
nmap -sV -T4 -Pn -oG ServiceDetect -iL LiveHosts.txt
# 扫做系统扫描
nmap -O -T4 -Pn -oG OSDetect -iL LiveHosts.txt
# 系统和服务检测
nmap -O -sV -T4 -Pn -p U:53,111,137,T:21-25,80,139,8080 -oG OS_Service_Detect -iL LiveHosts.txt
# 扫描 B 段的存活主机
nmap -v -sn -PE -n --min-hostgroup 1024 --min-parallelism 1024 172.16.0.0/16 | grep -v down | grep "172.16."
扫描指定IP所开放的端口:nmap -sS -p 1-65535 -v XXX.XXX.XXX.XXX
扫描C段存活主机:nmap -sP XXX.XXX.XXX.XXX/24
指定端口扫描:nmap -p 80,1433,22,1521 XXX.XXX.XXX.XXX
探测主机操作系统:nmap -o XXX.XXX.XXX.XXX
全面的系统探测:nmap -v -A XXX.XXX.XXX.XXX(Nmap默认扫描主机1000个高危端口)
探测指定网段:nmap XXX.XXX.XXX.XXX-XXX
穿透防火墙进行扫描:nmap -Pn -A XXX.XXX.XXX.XXX(XXX.XXX.XXX.XXX禁止用ping的)
使用脚本,扫描Web敏感目录:nmap -p 80 --script=http-enum.nse XXX.XXX.XXX.XXX
自用扫描策略
推荐使用:
nmap -A -sV -sS -p- IP
探测开放了哪些端口
nmap -v -sT -Pn -p1-65535 192.168.1.1
根据端口看服务
nmap -v -sT -sV -p80,3306,8080 192.168.1.1
或者直接探测服务,这样比较慢
nmap -sV 192.168.1.1-200