扫描参数
设置扫描目标相关
-iL | 从文件中导入目标主机或目标网段 |
---|---|
-iR | 随机选择目标主机 |
–exclude | 后面跟的主机或网段不在扫描范围内 |
–excluedefile | 后面文件中的主机或网段不在扫描范围内 |
主机发现相关参数
-sL | 列表扫描,仅列举指定目标的IP,不进行主机发现 |
---|---|
-sn | 只进行主机发现,不进行端口扫描 |
-Pn | 将所有指定的主机视作已开启,跳过主机发现过程 |
-Ps/PA/PU/PY | 使用TCP SYN/ACK或SCTP INIT/ECHO方式发现主机 |
-PE/PP/PM | 使用ICMP echo,timestamp,netmask请求包发现主机 |
-PO | 使用IP协议包探测对方主机是否开启 |
-n/R | -n表示不进行DNS解析,-R表示总进行DNS解析 |
–dns-servers | 指定DNS服务器 |
–system-dns | 指定使用系统DNS服务器 |
追踪每个路由节点 |
与常见的端口扫描方法相关的参数
-sS/sT/sA/sW/sM | 指定使用TCP SYN.Connect()/ACK/Window/Maimon scans方式扫描 |
---|---|
-sU | 指定使用UDP扫描方式确定主机UDP端口状况 |
-sN/sF/sX | 指定使用TCP Null/FIN/Xmas scans秘密扫描方式协助探测TCP状态 |
–scanflags | 定制TCP包的flags |
-sI | 指定使用Idle scan的方式进行扫描(需找到合适的zombie host) |
-sY/sZ | 使用SCTP INIT/COOKIE-ECHO扫描SCTP协议端口开放情况 |
-sO | 使用IP protocol 扫描确定目标机支持的协议类型 |
-b | 使用FTP bounce scan扫描方式 |
跟端口参数与扫描顺序的设置相关参数
-p | 扫描指定端口 |
---|---|
-F | 快速模式(仅扫描TOP前100端口) |
-r | 不进行端口随机打乱的操作(如无该参数,Nmap将随机扫描) |
–top-ports <number> | 扫描开放概率最高的number个端口 |
–port-ratio | 扫描指定频率以上的端口 |
-sV | 指定让Nmap进行版本探测 |
–version-light | 指定使用轻量级侦测方式 |
–version-all | 尝试使用所有的probes进行侦测 |
–version-trace | 显示出详细的版本侦测过程信息 |
常用方法
- 扫描单个目标地址
nmap 192.168.0.1
- 扫描多个目标地址
nmap 192.168.0.1 192.168.0.2
- 扫描范围内目标地址
nmap,192.168.0.1-10
- 扫描目标地址所在网段
nmap 192.168.0.0/24
- 扫描文件中目标地址(绝对路径)
nmap –iL /root/DiskTop/1.txt
- 扫描除某一个目标地址之外的所有目标地址
nmap 192.168.0.0/24 –exclude 192.168.0.2
- 扫描除某一文件中的目标地址之外的目标地址
nmap 192.168.0.0/24 –excludefile /root/DiskTop/1.txt
- 扫描某一目标地址的指定端口
nmap 192.168.0.1 –p 21
- 对目标地址进行路由跟踪
nmap --traceroute 192.168.0.1
- 扫描目标地址C段在线情况
nmap –sP 192.168.0.1/24
- 目标地址的操作系统指纹识别
nmap –O 192.168.0.1
- 目标地址提供的服务版本检测
nmap –sV 192.168.0.1
- 探测防火墙状态
nmap –sF –T4 192.168.0.1
端口状态
Open | 开放的,表示应用程序正在监听该端口的连接,外部可以访问 |
---|---|
Filtered | 被过滤的,表示端口被防火墙或其他网络设备阻止,不能访问 |
Closed | 关闭的,表示目标主机为开启该端口 |
Unfiltered | 未被过滤的,nmap无法确定端口所处状态,需要进一步探测 |
Open/filtered | 开放的或被过滤的,nmap不能识别 |
Closed/filtered | 关闭的或被过滤的,nmap不能识别 |
Nmap高级用法
脚本介绍
-
Nmap脚本默认存储在/xx/nmap/scripts 文件夹下
-
分类
Auth | 负责处理鉴权证书(绕过鉴权)的脚本 |
---|---|
Broadcast | 在局域网内探查更多服务的开启情况 |
Brute | 针对常见的应用提供暴力破解方式,如HTTP/SMTP等 |
Default | 使用-sC或-A选项扫描时默认的脚本,提供基本的脚本扫描能力 |
Discovery | 对网络进行更多信息的搜集(如SMB枚举SNMP查询等) |
Dos | 进行拒绝服务攻击 |
Exploit | 利用已知漏洞入侵系统 |
External | 利用第三方数据库或资源(如,进行whois解析) |
Fuzzer | 模糊测试脚本,发送异常的包到目标主机,探测出潜在漏洞 |
Intrusive | 入侵性脚本,此类脚本可能引发IDS/IPS的记录或屏蔽 |
Malware | 探测目标主机是否感染了病毒,开启后门等 |
Safe | 与intrusive相反,属于安全性脚本 |
Version | 负责增强服务与版本扫描功能的脚本 |
Vuln | 检查目标机是否有常见漏洞 |
常用脚本
可以根据需要,设置–script=脚本类别 进行扫描
-sC/–script=default | 使用默认脚本扫描 |
---|---|
–script=<> | 使用某个脚本进行扫描 |
–script-args=k1=v1… | 传递脚本里的参数,k1是参数名,该参数对应v1 |
–script-args-file= | 使用文件为脚本提供参数 |
–script-trace | 如果设置此参数,则显示脚本执行过程中发送接收的数据 |
–script-updatedb | 自行扫描script目录中的扩展脚本,进行数据库更新 |
–script-help | 输出该脚本对应的脚本使用参数,以及详细信息 |
实例
- 鉴权扫描
使用–script=auth可以对目标主机或目标主机所在网段进行弱口令检测
nmap --script=auth 192.168.0.1
- 暴力破解
可对数据库,SMB,SNMP等进行简单密码的暴力破解
nmap --script=burte 192.168.0.1
- 扫描常见漏洞
可检查目标主机或网段是否存在常见漏洞
nmap --script=vuln 192.168.0.1
- 应用服务扫描
Nmap 具备多种常见应用服务的扫描脚本,如VNC服务,MySQL服务等(以NVC服务为例)
nmap --script=realvnc-auth-bypass 192.168.0.1
- 探测局域网内更多服务开启的情况
nmap –n –p 445 --script=broadcast 192.168.0.1
- Whois解析
nmap –script external baidu.com