<返回更多

网络渗透中的扫描工具——nmap介绍

2022-03-09    会测试的鲸鱼
加入收藏

前面其实断断续续介绍过很多nmap的用法,但不是很完整。这里单独来介绍一下这个非常强大的扫描工具nmap。

完整地帮助文档就不放上来了,想看完整文档的直接输入命令nmap -h:

网络渗透中的扫描工具——nmap介绍

nmap -h

后面我们针对说明文档中的各个参数进行一些说明,其实如果英文比较好,就直接看说明文档就行了,我后面的介绍很多就是翻译一下而已。

目标规范

第一类就是指定扫描目标规范相关的参数:

网络渗透中的扫描工具——nmap介绍

TARGET SPECIFICATION

说明文档中介绍了不使用这部分的参数时,目标主机该怎么传,就是Ex后面的那些参数类型。

-iL:传递一个ip地址的文档,文档里的ip地址可以是不连续的,不同网段的。
-iR:后面跟一个数字,会随机扫描指定数量的主机,可以加-p指定端口扫描。
--exclude:后面跟ip地址或者网段,表示这些主机不用进行扫描。
--excludefile:后面传一个ip地址的文档,表示文档中的主机不进行扫描。

主机发现

接下来一块就是主机发现相关的参数:

-sL: List Scan 列表扫描,仅将指定的目标的IP列举出来,不进行主机发现。  
-sn: Ping Scan 只进行主机发现,不进行端口扫描。  
-Pn: 将所有指定的主机视作开启的,跳过主机发现的过程。  
-PS/PA/PU/PY[portlist]: 使用TCPSYN/ACK或SCTP INIT/ECHO方式进行发现。  
-PE/PP/PM: 使用ICMP echo, timestamp, and.NETmask 请求包发现主机。-PO[protocollist]: 使用IP协议包探测对方主机是否开启。  
-n/-R: -n表示不进行DNS解析;-R表示总是进行DNS解析。  
--dns-servers <serv1[,serv2],...>: 指定DNS服务器。  
--system-dns: 指定使用系统的DNS服务器  
--traceroute: 追踪每个路由节点 

扫描技术

接下来是扫描技术相关的参数:

-sS/sT/sA/sW/sM:指定使用 TCP SYN/Connect()/ACK/Window/Maimon scans的方式来对目标主机进行扫描。  
-sU: 指定使用UDP扫描方式确定目标主机的UDP端口状况。  
-sN/sF/sX: 指定使用TCP Null, FIN, and Xmas scans秘密扫描方式来协助探测对方的TCP端口状态。  
--scanflags <flags>: 定制TCP包的flags。  
-sI <zombiehost[:probeport]>: 指定使用idle scan方式来扫描目标主机(前提需要找到合适的zombie host)  
-sY/sZ: 使用SCTP INIT/COOKIE-ECHO来扫描SCTP协议端口的开放的情况。  
-sO: 使用IP protocol 扫描确定目标机支持的协议类型。  
-b <FTP relay host>: 使用FTP bounce scan扫描方式

端口规范和扫描顺序

接下来是指定扫描端口相关的参数:

-p <port ranges>:扫描指定的端口  
实例: -p22; -p1-65535; -p U:53,111,137,T:21-25,80,139,8080,S:9(其中T代表TCP协议、U代表UDP协议、S代表SCTP协议)  
--exclude-ports <port ranges>:指定不扫描的端口
-F:Fast mode – 快速模式,仅扫描TOP 100的端口  
-r:不进行端口随机打乱的操作(如无该参数,nmap会将要扫描的端口以随机顺序方式扫描,以让nmap的扫描不易被对方防火墙检测到)。  
--top-ports <number>:扫描开放概率最高的number个端口(nmap的作者曾经做过大规模地互联网扫描,以此统计出网络上各种端口可能开放的概率。以此排列出最有可能开放端口的列表,具体可以参见文件:nmap-services。默认情况下,nmap会扫描最有可能的1000个TCP端口)  
--port-ratio <ratio>:扫描指定频率以上的端口。与上述--top-ports类似,这里以概率作为参数,让概率大于--port-ratio的端口才被扫描。显然参数必须在在0到1之间,具体范围概率情况可以查看nmap-services文件。  

服务版本扫描

接下来是端口上服务版本扫描相关的参数:

-sV:指定让Nmap进行版本侦测  
--version-intensity <level>:指定版本侦测强度(0-9),默认为7。数值越高,探测出的服务越准确,但是运行时间会比较长。  
--version-light:指定使用轻量侦测方式 (intensity 2)  
--version-all:尝试使用所有的probes进行侦测 (intensity 9)  
--version-trace:显示出详细的版本侦测过程信息。

脚本扫描

接下来是脚本扫描相关的参数:

-sC: 相当于使用了 --script=default
--script=<Lua scripts>: 传递指定脚本
--script-args=<n1=v1,[n2=v2,...]>: 为脚本提供参数。
--script-args-file=filename: 在文件中提供NSE脚本参数。
--script-trace: 显示发送和接收的所有数据。
--script-updatedb: 更新脚本数据库。
--script-help=<Lua scripts>: 会显示一些脚本的说明,以便理解目标脚本可以起什么作用。

系统扫描

系统扫描主要是识别目标系统是linux还是window或者是Unix:

-O: 进行系统扫描
--osscan-limit: 限制检测指定类型的系统
--osscan-guess: 猜测的时候更激进一些

时间和性能

接下来是时间和性能相关的参数:

-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>: 最高发送数据包的速度

防火墙、id欺骗、躲避

接下来是防火墙、id欺骗和躲避相关的参数:

-f; --mtu <val>: fragment packets (optionally w/given 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生存时间字段
--spoof-mac <mac address/prefix/vendor name>: 伪装你的MAC地址
--badsum: 使用伪TCP/UDP/SCTP校验和发送数据包

这块前面接触得不多。

输出内容

接下来就是输出内容相关的参数:

-oN/-oX/-oS/-oG <file>: 分别指定级格式输出扫描到给定文件名。
-oA <basename>: 同时以三种主要格式输出
-v:增加详细程度(使用-vv或更高级别以获得更大效果)
-d:提高调试级别(使用-dd或更多以获得更大的效果)
--reason: 显示端口处于特定状态的原因
--open: 仅显示打开(或可能打开)的端口
--packet-trace: 显示发送和接收的所有数据包
--iflist: 打印主机接口和路由(用于调试)
--Append-output: 附加到指定的输出文件,而不是删除指定的输出文件
--resume <filename>: 继续中止扫描
--noninteractive: 通过键盘禁用运行时交互
--stylesheet <path/URL>: 将XML输出转换为html的XSL样式表
--webxml: 来自Nmap.Org的参考样式表具可移植性的XML
--no-stylesheet: 防止XSL样式表与XML输出关联

杂项

还有几个不知道该归类到哪里的参数:

-6: 启用IPv6扫描
-A: 启用操作系统检测、版本检测、脚本扫描和跟踪路由
--datadir <dirname>: 指定自定义Nmap数据文件位置
--send-eth/--send-ip: 使用原始以太网帧或IP数据包发送
--privileged: 假设用户拥有完全特权
--unprivileged: 假设用户缺少原始socket权限
-V: 打印版本号
-h: 打印帮助说明
声明:本站部分内容来自互联网,如有版权侵犯或其他问题请与我们联系,我们将立即删除或处理。
▍相关推荐
更多资讯 >>>