Nmap-参考手册
奇奇怪怪
安全小技巧
新的一天开始了
剪刀石头布,哈,我又赢了
2023
11-26
永远新的开始啊
目录列表
👻👻👻👻👻👻👻👻👻👻👻👻👻👻👻👻👻👻👻👻👻👻👻👻👻👻👻👻👻👻👻👻👻👻👻👻👻👻👻👻👻👻👻👻👻👻👻👻👻👻👻👻👻👻👻👻👻👻👻👻👻👻👻👻👻👻👻👻👻👻👻👻
简介 🤩
Nmap 使用手册
Nmap(Network Mapper)是一个用于网络探索和安全审计的开源工具。它被设计为快速扫描大型网络,尽管它对单个主机工作得很好。
参数说明 🤔
- -sL 列表扫描,扫描ip地址并且进行返现dns查找,主机发现(除非指定了
-n
) - -n 不进行dns解析
- -R 所有目标dns解析
- -sS SYN扫描,SYN扫描是默认的扫描类型
- -p- 扫描全部端口,默认情况下只扫描1,000个常见端口
- -PA ACK 扫描主机发现
- -PS80,443 SYN 扫描主机发现
- -PU UDP扫描主机发现
**-PE -PP -PS80,443 -PA3389 -PU40125
ping扫描,主机发现技术****-Pn
跳过识别主机是否存活,扫描所有,很慢**- -A 它相当于
-sV
-sC
-O
--traceroute
(版本检测、带有默认脚本集的Nmap脚本引擎、远程操作系统检测和traceroute) - -T 1 2 3 4 5 设置时间,越高越快,网络稳定的情况下可以尝试最大值
- -oA filename-%D 扫描结果输出所有格式,文件名-时间格式,扩展名分别可为.nmap、.xml和.gnmap
- -O os操作系统探测
- -sn 关闭端口扫描
- -sV 版本服务检测
- -sC 使用默认脚本探测
- 参数排序
- -iL filename 指定主机列表文件
- -iR
:选择随机目标 **--exclude
127.0.0.1 排除ip****--excludefile
filename 排除ip列表文件**- 主机发现:
- -sn:Ping 扫描 - 禁用端口扫描
- -Pn:将所有主机视为在线–跳过主机发现
- -PS/PA/PU/PY[端口列表]:给定端口的 TCP SYN/ACK、UDP 或 SCTP 发现
- -PE/PP/PM:ICMP 回显、时间戳和网络掩码请求发现探测
- -PO[协议列表]:IP协议Ping
- -n/-R:从不进行 DNS 解析/始终解析 [默认值:有时]
- –dns-servers <serv1[,serv2],…>: 指定自定义 DNS 服务器
- –system-dns:使用操作系统的 DNS 解析器
- –traceroute:跟踪每个主机的跃点路径
- 扫描技术:
- -sS/sT/sA/sW/sM:TCP SYN/Connect()/ACK/Window/Maimon 扫描
- -sU:UDP扫描
- -sN/sF/sX:TCP Null、FIN 和 Xmas 扫描
- –scanflags
: 自定义 TCP 扫描标志 , URGACKPSHRSTSYNFIN
指定所有协议 - -sI <僵尸主机[:probeport]>:空闲扫描
- -sY/sZ:SCTP INIT/COOKIE-ECHO 扫描
- -sO:IP协议扫描
- -b <FTP中继主机>:FTP反弹扫描
- 端口规格和扫描顺序:
- -p <端口范围>:仅扫描指定端口
例如:-p22; -p1-65535; -p U:53,111,137,T:21-25,80,139,8080,S:9 - –exclude-ports <端口范围>:从扫描中排除指定端口
- -F:快速模式 - 扫描比默认扫描更少的端口
- -r:按顺序扫描端口 - 不要随机化
- –top-ports
: 扫描 个最常见端口 - –port-ratio
:扫描比 更常见的端口 **--allports
(不排除任何端口进行版本检测)**- 服务/版本检测:
- -sV:探测开放端口以确定服务/版本信息
- –version-intensity
: 设置从 0 (light) 到 9 (尝试所有探针) - –version-light:限制最有可能的探测(强度 2)
- –version-all:尝试每个探针(强度 9)
- –version-trace:显示详细的版本扫描活动(用于调试)
- 脚本扫描:
- -sC:相当于–script=default
- –script=<Lua 脚本>: <Lua 脚本> 是逗号分隔的列表、目录、脚本文件或脚本类别
- –script-args=<n1=v1,[n2=v2,…]>: 为脚本提供参数
- –script-args-file=文件名:在文件中提供 NSE 脚本参数
- –script-trace:显示发送和接收的所有数据
- –script-updatedb:更新脚本数据库。
- –script-help=<Lua 脚本>:显示有关脚本的帮助。
是一个以逗号分隔的脚本文件列表或脚本类别。 - 操作系统检测:
- -O:启用操作系统检测
- –osscan-limit:将操作系统检测限制为有希望的目标
- –osscan-guess:更积极地猜测操作系统
- 时间设置
需要
- -T<0-5>:设置计时模板(越高越快)
- –min-hostgroup/max-hostgroup
:并行主机扫描组大小,max最大256 - –min-parallelism/max-parallelism
:最大256 探测并行化 - –min-rtt-timeout/max-rtt-timeout/initial-rtt-timeout <时间>:指定探头往返时间,延时。Nmap等待端口扫描探测响应的最短、最长和初始时间。
- –max-retries
:端口扫描探测重传次数的上限。 - –host-timeout <时间>:经过这么长时间后放弃目标,默认5分钟
- –scan-delay/–max-scan-delay <时间>:调整探头之间的延迟,默认10s
- –min-rate
: 每秒发送数据包的速度不低于 - –max-rate
: 每秒发送数据包的速度不超过 - 防火墙/IDS 规避和欺骗:
**-f
(片段数据包);--mtu
(使用指定的MTU)这个想法是将TCP报头分割成几个数据包,使数据包过滤器,入侵检测系统和其他入侵检测系统更难检测到您正在做什么。小心点!**- -D <decoy1,decoy2[,ME],…>:用诱饵隐藏扫描
- -S
:欺骗源地址 - -e
:使用指定的接口 - -g/–source-port
:使用给定的端口号 - –proxies <url1,[url2],…>: 通过 HTTP/SOCKS4 代理中继连接
- –data <十六进制字符串>:将自定义负载附加到发送的数据包中
- –data-string
:将自定义 ASCII 字符串附加到发送的数据包中 - –data-length
:将随机数据附加到发送的数据包中 - –ip-options
: 发送带有指定ip选项的数据包 - –ttl
: 设置IP生存时间字段 - –spoof-mac <mac 地址/前缀/供应商名称>: 欺骗您的 MAC 地址
- –badsum:发送带有伪造 TCP/UDP/SCTP 校验和的数据包
- 输出扫描结果:
- -oN/-oX/-oS/-oG <文件>:以正常、XML、s|<rIpt kIddi3 输出扫描,和 Grepable 格式分别为给定的文件名。
- -oA
:同时以三种主要格式输出 - -v:增加详细级别(使用-vv或更多以获得更好的效果)
- -d:提高调试级别(使用-dd或更多以获得更好的效果)
- –reason:显示端口处于特定状态的原因
- –open:仅显示开放(或可能开放)的端口
- –packet-trace:显示发送和接收的所有数据包
- –iflist:打印主机接口和路由(用于调试)
- –append-output:附加到而不是破坏指定的输出文件
- –resume <文件名>:恢复中止的扫描
- –noninteractive:通过键盘禁用运行时交互
- –stylesheet <path/URL>:用于将 XML 输出转换为 HTML 的 XSL 样式表
- –webxml:来自 Nmap.Org 的参考样式表,以获得更可移植的 XML
- –no-stylesheet:防止 XSL 样式表与 XML 输出关联
- 其他:
- -6:启用 IPv6 扫描
- -A:启用操作系统检测、版本检测、脚本扫描和traceroute
- –datadir
: 指定自定义 Nmap 数据文件位置 - –send-eth/–send-ip:使用原始以太网帧或 IP 数据包发送
- –privileged:假设用户具有完全特权
- –unprivileged:假设用户缺乏原始套接字权限
- –resolve-all选项:当主机名被指定为目标时,它通过域名系统(DNS)解析以确定要扫描的IP地址。如果名称解析为多个IP地址,则只扫描第一个。要让Nmap扫描所有解析的地址,而不仅仅是第一个,请使用 –resolve-all 选项。
**--unique
(每个地址只扫描一次)**
使用技巧 😀
主机发现
- nmap -sn -T4 www.lwn.net/24 快速扫描指定域名C段
- nmap -PE 最佳主机发现参数
- -PE -PS80 -PS443 -PP -PU40125 -PS3389 -PA21 -PU161 –source-port 53 最佳主机发现组合
- -PE -PA80 -PS443 -PP -PU40125 –source-port 53 最佳主机发现组合精简
- 最佳TCP端口选择,80,443,113,21,23,25,53,22,110,3389,8080,1723
- 最佳UDP端口选择,53,161
- -PE -PP -PS21,22,23,25,80,113,443,31339 -PA80,113,443,10042 –source-port 53 组合推荐
端口扫描
- 最常见TCP端口,80,23,443,21,22,25,3389,110,445,139,143,53,135,3306,8080,1723,111,993,5900
- 最常见UDP端口,631,161,137,123,138,1434,445,135,67,53,139,500,68,520,1900,4500,514,49152,162,69
优化参数
**F
:快速扫描。只对常见端口进行扫描,而不是对所有的65535个端口进行扫描。****T
参数:用于设置扫描的速度/侦察级别。T5
是最快的扫描速度,而T0
则是最慢的扫描速度。****-min-rate
和-max-retries
参数:可以控制nmap发送探测包的速率和重试次数,进而影响扫描的速度。****-host-timeout
参数:可以设置主机超时时间,当一个主机长时间没有响应时,nmap会跳过该主机,从而加快扫描速度。**
Nmap 脚本
- **https://nmap.org/nsedoc/lib/ 脚本库**
- **https://nmap.org/nsedoc/scripts/ nmap 官方 600+脚本介绍**
- **https://nmap.org/nsedoc/scripts/dns-zone-transfer.html dns区域传输**
**-sC
它相当于--script=default
**- nmap –script scriptname
**--script-updatedb
更新脚本数据库****--script-args *<n1>*=*<v1>*,*<n2>*={*<n3>*=*<v3>*},*<n4>*={*<v4>*,*<v5>*}
设置脚本参数**
1 | **nmap --script dns-zone-transfer.nse \ |
1 | **nmap --script firewall-bypass <target> |
**nmap --script ftp-brute -p 21 <host>
ftp爆破****nmap --script hostmap-bfk --script-args hostmap-bfk.prefix=hostmap- <targets>
通过查询http://www.bfk.de/bfk_dnslogger.html上的联机数据库,发现解析为目标IP地址的主机名。**- crt证书透明子域名查询
1 |
|
1 | **实用脚本集合 |
防火墙/入侵检测 绕过
nmap -sS -T4
使用-sS 识别被拦截的端口nmap -sF
使用fin扫描- 使用 -6 ipv6扫描
- TCP FTP反弹扫描(
-b
) --scan-delay 1075ms
指定延长扫描时间绕过检测**nmap -p 80,443 --script-args http.useragent="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3" -A <domain>
修改默认ua头**
NCAT 🥺
使用技巧
- -p 指定源端口
- -s 指定绑定源地址
- -l 监听
- -m 最大连接数,默认100,windows默认60
- -k 通常,侦听服务器只接受一个连接,然后在连接关闭时退出。此选项使其接受多个同时连接,并在所有连接关闭后等待更多连接。
**--broker
(连接代理) 允许多方连接到集中的Ncat服务器并相互通信。Ncat可以代理位于NAT之后或无法直接连接的系统之间的通信。此选项与--listen
一起使用,这会使--listen
端口启用代理模式。****--chat
(临时“聊天服务器”)****-e *<command>*
、--exec *<command>*
(执行命令)建立连接后执行指定的命令。命令必须指定为完整路径名。****-c *<command>*
、--sh-exec *<command>*
(通过sh执行命令)****--allow
ip1 ,ip2 指定的主机列表将是唯一允许连接到Ncat进程的主机。所有其他连接尝试都将被断开。如果--allow
和--deny
之间存在冲突,则优先使用--allow
。主机规范遵循Nmap使用的相同语法。****--allowfile
这与--allow
具有相同的功能,除了允许的主机是在一个新行分隔的允许文件中提供的,而不是直接在命令行上提供的。****--deny
--denyfile
拒绝连接,同上****-i *<time>*
、--idle-timeout *<time>*
(指定空闲超时),为空闲连接设置固定超时。如果达到空闲超时,则连接终止。可用于传文件,传输完成后指定延时退出**
参考文章 💣
- **https://nmap.org/book/toc.html nmap官方book**
- man手册
啊,再见了,再见了,哈
我们会再见的对么
再见你要幸福
燕子,燕子
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 方糖!