nmap常用命令

· Updated on 2026-05-19 · 2472 words
Table of Contents

Nmap

主机枚举

主机存活发现

基本直接扫描nmap -snn 10.129.2.0/24就足够了

-sn禁用端口扫描

--packet-trace参数可以显示所有已经发送和接收的数据包,可以进一步学习原理 --reason可以显示判定为存活的理由

扫描网络范围 sudo nmap 10.129.2.0/24 -sn -oA tnet | grep for | cut -d" " -f5

列表扫描,使用iL参数从hosts.lst读取 sudo nmap -sn -oA tnet -iL hosts.lst | grep for | cut -d" " -f5

小部分的扫描 sudo nmap -sn -oA tnet 10.129.2.18-20| grep for | cut -d" " -f5

这里通过disable-arp-ping来禁止arp ping,从而发包就会使用icmp sudo nmap 10.129.2.18 -sn -oA host -PE --packet-trace --disable-arp-ping

端口扫描

端口状态 描述
open 开放
closed 关闭
filtered 防火墙的原因

我常用的几条命令

1
2
3
nmap -sV -sC -v 10.49.172.71
nmap -sX 10.49.1.1
sudo nmap -A -sV -sC -T4 -p- -Pn --defeat-rst-ratelimit 10.49.172.71

nmap端口扫描文档

这里给出最常用的三种的端口扫描,其他的扫描类型更多是为了绕过防火墙以及IDS/IPS这些

-sT 连接扫描,就是普通的三次握手,容易被记录到日志中,所以一般SYN更加隐秘 -sS SYN半开放扫描,注意这个需要root用户才可以 -sU Udp端口扫描

其他参数大多只是改变扫描详细程度 -sV 扫描服务版本

--top-ports=10 扫描前10个tcp端口 -F 前100个 -p 22-445 -p 22,25,80,139,445 -p-全部端口

这几个参数常用于主机存活,禁用可以提高端口扫描的速度 -Pn 禁用ICMP -n 禁用DNS解析 --disable-arp-ping ARPping

保存结果

输出格式,这个可以方便保存每次扫描的结果

  • -oA 全部
  • -oN .nmap 普通的txt格式
  • -oG .gnmap 配合grep命令使用
  • -oX .xml 可以使用xsltpproc工具,从xml到html xsltproc target.xml -o target.html 方便查看结果

服务枚举

-sV 这个参数,执行服务检测 -v / -vv 参数提高显示状态,只要检测到端口开放就直接显示

--stats-every=5s 也可以分钟(m) 来设置状态的显示周期,虽然没感受到有啥特别的作用 --packet-trace 直接这个全部显示数据包

NSE脚本

我最常用的还是-sC 使用默认脚本枚举下服务

选择特定类型的脚本 sudo nmap <target> --script <category>

自定脚本 sudo nmap <target> --script <script-name>,<script-name>

Category Description 描述
auth 确定身份验证凭据。
broadcast 用于通过广播进行主机发现的脚本,发现的主机可以自动添加到剩余的扫描中。
brute 执行脚本尝试使用凭据通过暴力破解方式登录相应的服务。
default 使用 -sC 选项执行的默认脚本。
discovery 评估可访问的服务。
dos 用于检查服务是否存在拒绝服务漏洞,但使用较少,因为可能损害服务。
exploit 尝试利用被扫描端口的已知漏洞。
external 使用外部服务进行进一步处理的脚本。
fuzzer 通过发送不同字段识别漏洞和意外的数据包处理,可能耗费较长时间。
intrusive 可能对目标系统造成负面影响的侵入性脚本。
malware 检查目标系统是否感染了恶意软件。
safe 防御性脚本,不执行侵入性或破坏性访问。
version 服务检测扩展,用于识别服务版本。
vuln 识别具体的漏洞。

防火墙和IDS/IPS规避

TCP ACK扫描 -sA 发送带有ACK的数据包,通常容易被防火墙放行

Decoys 利用诱饵进行扫描,这个会混入多个其他IP,把真实IP地址混在其中

感觉只是对方溯源麻烦点 sudo nmap 10.129.2.28 -p 80 -sS -Pn -n -D RND:5

利用不同源IP进行扫描,就是改用其他网卡的IP

或者是其他控制的机器的IP地址,估计还得配合监听,来看数据包

sudo nmap 10.129.2.28 -n -Pn -S 10.129.2.200 -e tun0

DNS代理,就是设置源端口,一般防火墙不会拦截源端口53的,因为这个一般是DNS服务

sudo nmap 10.129.2.28 -p50000 -sS -Pn -n --disable-arp-ping --packet-trace --source-port 53

获取banner信息常用的探测命令

1
2
3
sudo ncat -nv --source-port 53 <redacted-ip> port
sudo netcat(nc) -nv -p 53 <redacted-ip> port
telnet <ip> port #这个好像无法改源端口