用法
nmap [Scan Type(s)] [Options] {target specification}
指定目标
可以是主机名,IP地址,网络等,例如:scanme.nmap.org, microsoft.com/24, 192.168.0.1; 10.0.0-255.1-254
可使用参数
参数名称 | 含义 | 备注 |
---|---|---|
目标指定参数 | ||
-iL <inputfilename> | 从主机或者网络列表中输入 | |
-iR <num hosts> | 选择随机目标 | |
--exclude <host1 | 扩展主机或者网络 | |
--excludefile <exclude_file> | 从文件列表扩展 | |
主机发现参数 | ||
-sL | 列表扫描,简单地扫描目标列表 | |
-sn | Ping扫描,不启用端口扫描 | |
-Pn | 对待所有主机为在线,跳过主机发现 | |
-PS/PA/PU/PY[portlist] | 对指定端口进行TCP SYN/ACK, UDP 或者SCTP扫描 | |
-PE/PP/PM | ICMP输出,时间戳,和网络请求发现探针 | |
-PO[protocol list] | IP协议ping | |
-n/-R | 从不多DNS解析/常解析 | 默认:有时(sometimes) |
--dns-servers <serv1[,serv2],...> | 指定自定义DNS服务器 | |
--system-dns | 使用系统的DNS解析器 | |
--traceroute | 跟踪到每台机器的跳数(hop) | |
扫描技术参数 | ||
-sS/sT/sA/sW/sM | TCP SYN/Connect()/ACK/Window/Maimon扫描 | |
-sU | UDP扫描 | |
--scanflags <flags> | 自定义TCP扫描标签 | |
-sI <zombie host[:probeport]> | 空闲扫描 | |
-sY/sZ | SCTP INIT/COOKIE-ECHO扫描 | |
-sO | IP协议扫描 | |
-b <FTP relay host> | FTP反馈数据扫描 | |
端口指定和扫描顺序参数 | 例如:-p22; -p1-65535; -p U:53,111,137,T:21-25,80,139,8080,S:9 | |
-p <port ranges> | 仅扫描指定的端口 | |
--exclude-ports <port ranges> | 从指定的扫描端口扩展 | |
-F | 快速扫描模式,与默认相比, 仅扫描少数端口 | |
-r | 连续扫描端口-不要随机化 | |
--top-ports <number> | 扫描指定数量的多数通用端口 | |
--port-ratio <ratio> | 扫默更多的通用端口 | |
服务**/版本检测参数** | ||
-sV | 探针打开的端口判断服务/版本信息 | |
--version-intensity <level> | 从0-9设置扫描深度 | 0 (light) ,9 (try all probes) |
--version-light | 限制为最可能的探针 | intensity 2 |
--version-all | 尝试每一个单独的探针 | intensity 9 |
--version-trace | 显示详细的版本信息,用于调试 | |
脚本扫描参数 | ||
-sC | 等价于使用 --script=default | |
--script=<Lua scripts> | <Lua scripts>是目录、脚本文件或脚本类别的逗号分隔列表 | |
--script-args=<n1=v1,[n2=v2,...]> | 为脚本提供参数 | |
--script-args-file=filename | 在文件中提供NSE脚本参数 | |
--script-trace | 显示所有发送和接收的数据 | |
--script-updatedb | 更新脚本数据库 | |
--script-help=<Lua scripts> | 显示脚本的帮助信息 | |
操作系统检测参数 | ||
-O | 启用操作系统检测 | |
--osscan-limit | 对可能的目标限制操作系统检测 | |
--osscan-guess | 具有攻击性的猜测操作系统 | |
时间和性能参数 | <time>为秒,其他可用:'ms' (milliseconds), 's' (seconds), 'm' (minutes), or 'h' (hours) | |
-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> | 发包数量不慢于<number>每秒 | |
--max-rate <number> | 发包数量不快于<number>每秒 | |
防火墙/IDS规避和欺骗参数 | ||
-f; --mtu <val> | 片段数据包(fragment packets)(可选w/给定的MTU) | |
-D <decoy1,decoy2[,ME],...> | 用诱饵掩盖扫描 | |
-S <IP_Address> | 伪造源地址 | |
-e <iface> | 使用指定的接口 | |
-g/--source-port <portnum> | 使用指定的端口号 | |
--proxies <url1,[url2],...> | 通过HTTP/SOCKS4代理进行中继连接 | |
--data <hex string> | 将自定义负载附加到已发送的数据包 | |
--data-string <string> | 将自定义ASCII字符串附加到已发送的数据包 | |
--data-length <num> | 将随机数据附加到已发送的数据包 | |
--ip-options <options> | 使用指定的IP选项发送数据包 | |
--ttl <val> | 设置IP存活(time-to-live)字段 | |
--spoof-mac <mac address/prefix/vendor name> | 伪装MAC地址 | |
--badsum | 使用伪造的TCP/UDP/SCTP校验和发送数据包 | |
输出参数 | ||
-oN/-oX/-oS/-oG <file> | 将normal、XML、s |<rIpt kIddi3和greable格式的扫描输出到给定的文件名。 | |
-oA <basename> | 同时输出三种主要格式 | |
-v | 增加详细级别(使用-vv或更多以获得更大的效果) | |
-d | 增加调试级别(使用-dd或更多以获得更大的效果) | |
--reason | 显示端口处于特定状态的原因 | |
--open | 仅显示打开(或可能打开)的端口 | |
--packet-trace | 显示所有发送和接收的数据包 | |
--iflist | 打印主机接口和路由(用于调试) | |
--append-output | 附加到指定的输出文件,而不是删除指定的输出文件 | |
--resume <filename> | 恢复中止的扫描 | |
--stylesheet <path/URL> | 将XML输出转换为HTML的XSL样式表 | |
--webxml | 引用样式表来自Nmap.Org网站对于更可移植的XML | |
--no-stylesheet | 阻止将XSL样式表与XML输出关联 | |
其他设置参数 | ||
-6 | 启用IPV6扫描 | |
-A | 启用操作系统检测、版本检测、脚本扫描和traceroute | |
--datadir <dirname> | 指定自定义Nmap数据文件位置 | |
--send-eth/--send-ip | 用原以太帧或者IP包发送 | |
--privileged | 假设用户具有完全特权 | |
--unprivileged | 假设用户缺少原始套接字权限 | |
-V | 打印版本号 | |
-h | 显示帮助汇总页 |
案例
nmap -v -A scanme.nmap.org
nmap -v -sn 192.168.0.0/16 10.0.0.0/8
nmap -v -iR 10000 -Pn -p 80