一、介绍
Nmap(全称Network Mapper)是一款开源免费的网络探测和安全审核工具。可以用来扫描大型网络,执行主机探测、端口扫描、操作系统指纹识别及漏洞审计。
二、安装
yum install nmap -y
三、使用方法
nmap [选项] 目标
全部参数解释
TARGET SPECIFICATION(目标指定)
| 参数 |
说明 |
| 主机/IP/网段 |
可指定主机名、IP、网络段等 |
| 示例 |
scanme.nmap.org、192.168.0.1、10.0.0-255.1-254 |
-iL <文件> |
从文件读取目标列表 |
-iR <数量> |
随机选择目标主机 |
--exclude <主机> |
排除指定主机或网络 |
--excludefile <文件> |
从文件中读取排除列表 |
HOST DISCOVERY(主机发现)
| 参数 |
说明 |
-sL |
列表扫描,仅显示目标,不进行扫描 |
-sn |
Ping扫描,不进行端口扫描 |
-Pn |
不检测主机是否在线,直接扫描 |
-PS/PA/PU/PY[端口] |
TCP SYN、ACK、UDP、SCTP 主机发现 |
-PE/PP/PM |
ICMP Echo、时间戳、网络掩码请求 |
-PO[协议] |
IP协议探测 |
-n |
不解析 DNS |
-R |
总是进行 DNS 解析 |
--dns-servers |
指定 DNS 服务器 |
--system-dns |
使用系统 DNS |
--traceroute |
路由追踪 |
SCAN TECHNIQUES(扫描技术)
| 参数 |
类型 |
说明 |
-sS |
SYN扫描 |
半开放扫描(推荐) |
-sT |
Connect扫描 |
完整 TCP 连接 |
-sA |
ACK扫描 |
防火墙检测 |
-sW |
Window扫描 |
基于 TCP Window |
-sM |
Maimon扫描 |
特殊 FIN/ACK 扫描 |
-sU |
UDP扫描 |
UDP端口扫描 |
-sN |
Null扫描 |
不设置标志位 |
-sF |
FIN扫描 |
FIN包扫描 |
-sX |
Xmas扫描 |
FIN+PSH+URG |
--scanflags |
自定义 TCP 标志位 |
|
-sI |
Idle扫描 |
僵尸主机扫描 |
-sY |
SCTP INIT |
|
-sZ |
SCTP COOKIE-ECHO |
|
-sO |
IP协议扫描 |
|
-b |
FTP Bounce扫描 |
|
PORT SPECIFICATION(端口指定)
| 参数 |
说明 |
-p 22 |
扫描指定端口 |
-p 1-65535 |
扫描端口范围 |
-p U:53,T:80 |
指定协议类型端口 |
-F |
快速模式,仅扫描常见端口 |
-r |
顺序扫描,不随机 |
--top-ports <数量> |
扫描最常见的 N 个端口 |
--port-ratio <比例> |
扫描出现频率高于指定比例的端口 |
示例
nmap -p22 192.168.1.1
nmap -p1-65535 192.168.1.1
nmap --top-ports 100 192.168.1.1
SERVICE/VERSION DETECTION(服务与版本识别)
| 参数 |
说明 |
-sV |
探测服务和版本 |
--version-intensity 0-9 |
探测强度 |
--version-light |
轻量探测(等级2) |
--version-all |
尝试全部探针(等级9) |
--version-trace |
显示详细调试信息 |
SCRIPT SCAN(NSE脚本扫描)
| 参数 |
说明 |
-sC |
默认脚本扫描 |
--script= |
指定脚本 |
--script-args= |
给脚本传递参数 |
--script-args-file= |
从文件读取参数 |
--script-trace |
显示收发数据 |
--script-updatedb |
更新脚本数据库 |
--script-help= |
查看脚本帮助 |
示例:
nmap -sC 192.168.1.1
nmap --script=http-title 192.168.1.1
OS DETECTION(操作系统识别)
| 参数 |
说明 |
-O |
开启操作系统识别 |
--osscan-limit |
仅对可能成功的目标进行识别 |
--osscan-guess |
更积极猜测操作系统 |
| 参数 |
说明 |
-T0~T5 |
时间模板,越大越快 |
--min-hostgroup |
最小主机组大小 |
--max-hostgroup |
最大主机组大小 |
--min-parallelism |
最小并发 |
--max-parallelism |
最大并发 |
--min-rtt-timeout |
最小超时时间 |
--max-rtt-timeout |
最大超时时间 |
--initial-rtt-timeout |
初始超时时间 |
--max-retries |
最大重试次数 |
--host-timeout |
主机扫描超时 |
--scan-delay |
探测延迟 |
--max-scan-delay |
最大延迟 |
--min-rate |
最低发送速率 |
--max-rate |
最高发送速率 |
时间模板
| 参数 |
速度 |
-T0 |
极慢(隐蔽) |
-T1 |
慢 |
-T2 |
较慢 |
-T3 |
默认 |
-T4 |
快 |
-T5 |
极快 |
FIREWALL / IDS EVASION(防火墙绕过与伪装)
| 参数 |
说明 |
-f |
IP分片 |
--mtu |
指定 MTU |
-D |
诱饵扫描 |
-S |
伪造源 IP |
-e |
指定网卡 |
-g |
指定源端口 |
--data-length |
添加随机数据 |
--ip-options |
指定 IP 选项 |
--ttl |
设置 TTL |
--spoof-mac |
伪造 MAC 地址 |
--badsum |
错误校验和 |
OUTPUT(输出)
| 参数 |
说明 |
-oN |
普通格式输出 |
-oX |
XML输出 |
-oS |
Script Kiddie格式 |
-oG |
Grep格式 |
-oA |
同时生成三种格式 |
-v |
增加详细级别 |
-vv |
更详细 |
-d |
调试模式 |
--reason |
显示端口状态原因 |
--open |
仅显示开放端口 |
--packet-trace |
显示所有数据包 |
--iflist |
显示网络接口 |
--log-errors |
记录错误 |
--append-output |
追加输出 |
--resume |
恢复中断扫描 |
--stylesheet |
XML转HTML样式 |
--webxml |
使用 Nmap 官方样式 |
--no-stylesheet |
不使用样式 |
MISC(其它)
| 参数 |
说明 |
-6 |
IPv6 扫描 |
-A |
综合扫描(OS+版本+脚本+路由) |
--datadir |
指定数据目录 |
--send-eth |
原始以太网发送 |
--send-ip |
原始 IP 发送 |
--privileged |
以特权模式运行 |
--unprivileged |
非特权模式 |
-V |
查看版本 |
-h |
查看帮助 |
四、常用命令
扫描默认 1000 个端口
nmap 192.168.1.1
指定端口
nmap -p 22,80,443 192.168.1.1
扫描端口范围
nmap -p 1-65535 192.168.1.1
扫描所有端口
nmap -p- 192.168.1.1
扫描192.168.1.101主机开放的tcp端口,并探测开放的服务与版本
nmap -sS -sV -p- 192.168.1.101
按顺序扫描192.168.1.101主机开放的tcp端口(半连接扫描)和udp端口
nmap -sSU -p- -r 192.168.1.101
按顺序扫描192.168.1.101的tcp端口和udp端口,使用T4快速扫描,并输出更详细信息
nmap -sT -sU -p- -r -T4 -vv 192.168.1.101