简介
Nmap
(Network Mapper
)是一款开放源代码的网络探测和安全审核的工具。
Nmap
以新颖的方式使用原始IP
报文来发现网络上有一些主机,那些主机提供什么服务(应用程序名和版本),那些服务运行在什么操作系统(包括版本信息),它们使用什么类型的报文过滤器/防火墙,以及一堆其他功能。
参数
指定目标
参数 |
输入 |
作用 |
-iL |
<inputfilename> |
从文件列表中读取目 |
-iR |
<num hosts> |
选择随机目标 |
--exclude |
<host1[,host2,host3],...> |
排除指定主机 |
--excludefile |
<exclude_file> |
排除文件列表中目标 |
主机发现
参数 |
输入 |
作用 |
-sL |
NULL |
列出要扫描的目标 |
-sn |
NULL |
不进行端口扫描 |
-Pn |
NULL |
跳过主机发现 |
-PS/PA/PU/PY |
NULL |
使用TCP SYN/ACK 、UDP 或SCTP 协议发现端口 |
-PO |
NULL |
使用IP 协议的Ping 探测 |
-n/-R |
NULL |
(不)做DNS 解析 |
--dns-servers |
<serv1[,serv2],...> |
指定DNS 服务器 |
--system-dns |
NULL |
使用操作系统的DNS 解析 |
--traceroute |
NULL |
跟踪到主机的每一跳 |
扫描技术
参数 |
输入 |
作用 |
-sS/sT/sA/sW/sM |
NULL |
使用TCP 的SYN 、Connect() 、ACK 、Window 、Maimon 进行扫描 |
-sU |
NULL |
使用UDP 扫描 |
-sN/sF/sX |
NULL |
使用TCP Null 、FIN 、Xmas 扫描 |
--scanflags |
<flags> |
自定义TCP 扫描的flags |
-sI |
<zombie host[:probeport]> |
扫描僵尸机 |
-sY/sZ |
NULL |
使用SCTP 协议的INIT/COOKIE-ECHO 扫描 |
-s0 |
NULL |
进行IP 协议扫描 |
-b |
<FTP relay host> |
指定FTP 中继主机进行FTP 反弹扫描 |
端口说明和扫描规则
参数 |
输入 |
作用 |
--exclude-ports |
NULL |
不对此端口进行扫描 |
-F |
NULL |
快速模式,扫描比默认端口数量更少的端口 |
-r |
NULL |
有序地扫描端口而不是随机地扫描 |
--top-ports |
<number> |
扫描排名指定的数字前几位的最常用的端口 |
--port-ratio |
<ratio> |
扫描比输入的比例更常用的端口 |
服务/版本探测
参数 |
输入 |
作用 |
-sV |
NULL |
探测开启的端口来获取服务、版本信息 |
--version-intensity |
<level> |
设置探测服务、版本信息的强度 |
--version-light |
NULL |
强度为2 的探测强度 |
--version-all |
NULL |
强度为9 的探测强度 |
--version-trace |
NULL |
将扫描的具体过程显示出来 |
脚本扫描
参数 |
输入 |
作用 |
-sC |
NULL |
等同于–script=default |
--script= |
<Lua scripts> |
指定使用Lua 脚本进行扫描 |
--script-args= |
<n1=v1,[n2=v2,...]> |
指定脚本的参数 |
--script-args-file= |
filename |
指定提供脚本参数的文件 |
--script-trace |
NULL |
显示全部发送和收到的数据 |
--script-updatedb |
NULL |
更新脚本的数据库 |
--script-help= |
<Lua scripts> |
显示脚本的相关信息 |
系统探测
参数 |
输入 |
作用 |
-O |
NULL |
进行系统探测 |
--osscan-limit |
NULL |
限制系统探测的目标,如只探测Linux 系统 |
--osscan-guess |
NULL |
更侵略性地猜测系统 |
定时和性能
参数 |
输入 |
作用 |
-T |
<0-5> |
设置时序模块,越高越快 |
--min-hostgroup/max-hostgroup |
<size> |
指定最小、最大的并行主机扫描组大小 |
--min-parallelism/max-parallelism |
<numprobes> |
指定最小、最大并行探测数量 |
--min-rtt-timeout/max-rtt-timeout/initial-rtt-timeout |
<time> |
指定最小、最大的扫描往返时间 |
--max-retries |
<tries> |
指定最大的重发扫描包的次数 |
--host-timeout |
<time> |
指定超时时间 |
--scan-delay/--max-scan-delay |
<time> |
指定每次探测延迟多长时间,即两次探测之间间隔多少时间 |
--min-rate |
<number> |
最小的发包速率 |
--max-rate |
<number> |
最大的发包速率 |
防火墙、IDS绕过和欺骗
参数 |
输入 |
作用 |
-f; --mtu |
<val> |
设置MTU 最大传输单元 |
-D |
<decoy1,decoy2[,ME],...> |
伪造多个IP 地址和源地址一同发送包,从而隐藏在众多的IP 地址中而不易被发现 |
-S |
<IP_Address> |
伪造源地址 |
-e |
<iface> |
使用指定的接口 |
-g/--source-port |
<portnum> |
使用指定的源端口 |
--proxies |
<url1,[url2],...> |
指定代理服务器进行扫描 |
--data |
<hex string> |
在发送包的数据字段中追加自定义的十六进制字符串 |
--data-string |
<string> |
在发送包的数据字段中追加自定义的ASCII 字符串 |
--data-length |
<num> |
在发送包的数据字段中追加随机的数据 |
--ip-options |
<options> |
使用指定的IP 选项发送包 |
--ttl |
<val> |
设置TTL 值 |
--spoof-mac |
<mac address/prefix/vendor name> |
伪造源Mac 地址 |
--badsum |
NULL |
发送伪造TCP/UDP/SCTP 校验和Checksum 的数据包 |
杂项
参数 |
输入 |
作用 |
-6 |
NULL |
扫描IPv6 的地址 |
-A |
NULL |
一次扫描包含系统探测、版本探测、脚本扫描和跟踪扫描 |
--datadir |
<dirname> |
指定自定义的nmap 数据文件位置 |
--send-eth/--send-ip |
NULL |
使用原始以太网帧或IP 数据包发送 |
--privileged |
NULL |
假设用户有全部权限 |
--unprivileged |
NULL |
假设用户缺少原始套接字权限 |
-V |
NULL |
输出版本号 |
-h |
NULL |
输出帮助信息 |
应用
全面扫描
nmap -A <target>
获取系统类型和开放端口
nmap -sS -P0 -sV -O <target>
-sS
使用TCP SYN
扫描,即半开放扫描。
-P0
不使用Ping
。
-sV
进行版本检测。
-O
识别操作系统。
扫描UDP端口
nmap -sS -sU -T4 -top-ports <num> <target>
-sU
指定扫描UDP
端口。
-T4
设置时间级别为4
。
--top-ports
筛选最有可能开放的num
个端口。
__EOF__
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix