首页
社区
课程
招聘
[翻译]nmap终极使用指南
发表于: 2017-10-26 13:31 18993

[翻译]nmap终极使用指南

2017-10-26 13:31
18993

本文作者:hl0rey

首发:微信公众号【信安之路】

-iL <文件名>

主机名或者 ip 地址列表列表中的项可以是 Nmap 在命令行上接受的任何格式( IP 地址,主机名,CIDR,IPv6,或者八位字节范围)。 每一项必须以一个或多个空格,制表符或换行符分开。 如果您希望 Nmap 从标准输入而不是实际文件读取列表, 您可以用一个连字符 (-) 作为文件名。

-iR <数量>

随机选择一定数量的目标

--exclude <主机名/地址>

不包含的主机

--excludefile <文件名>

不包含的主机的列表

如果没有给出主机发现的选项,Nmap 就发送一个 TCP ACK 报文到 80 端口和一个 ICMP 回声请求到每台目标机器。

一个例外是ARP扫描用于局域网上的任何目标机器。对于非特权 UNIX shell 用户,使用 connect() 系统调用会发送一个 SYN 报文而不是 ACK 这些默认行为和使用 -PA -PE 选项的效果相同。

另外要注意的是即使您指定了其它 -P* 选项,ARP 发现 ( -PR ) 对于局域网上的 目标而言是默认行为,因为它总是更快更有效。

-sL(列表扫描)

列出给出目标的具体内容,默认会对地址进行反向解析,显示主机名。

-sn(不进行端口扫描)

与 -sn 一起完成的默认主机发现包括一个 ICMP 响应请求、 TCP SYN 到端口 443、TCP ACK 到端口 80 ,以及一个 ICMP 的时间戳请求。

在以前的 Nmap 中,-sn 被称为 -sP 。 -sP ( Ping 扫描)选项在默认情况下,发送一个 ICMP 回声请求和一个 TCP 报文到 80 端口。如果非特权用户执行,就发送一个 SYN 报文 ( 用 connect() 系统调用 ) 到目标机的 80 端口。 当特权用户扫描局域网上的目标机时,会发送 ARP 请求 (-PR) ,除非使用了 --send-ip 选项。 -sP 选项可以和除 -P0 之外的任何发现探测类型 -P* 选项结合使用以达到更大的灵活性。 一旦使用了任何探测类型和端口选项,默认的探测 ( ACK 和回应请求) 就被覆盖了。

-Pn(无ping)

跳过主机发现阶段,把每个都 IP 当成存活主机。

-P0 <协议号列表>(IP 协议 ping)

一个较新的主机发现选项是 IP 协议 ping ,它将 IP 数据包发送到IP报头中指定的协议号。协议列表的格式与前面讨论的 TCP、UDP 和 SCTP 主机发现选项的端口列表相同。如果没有指定协议,默认的是为 ICMP (协议 1 )、IGMP ( 协议 2 ) 和 ipin-IP ( 协议 4 ) 发送多个 IP 数据包。默认的协议可以在编译时通过更改 nmap.h 中的默认 proat 探测端口规范来配置。注意,对于 ICMP、IGMP、TCP ( 协议 6 )、UDP( 协议17 )和 SCTP ( 协议 132 ) ,数据包是用适当的协议标头发送的,而其他协议被发送时,除了 IP 报头之外没有附加的数据(除非有任何数据——数据字符串,或者——数据长度选项被指定)。

-PS<端口列表>(TCP SYN Ping)

-PA<端口列表>(TCP ACK Ping)

-PU <端口列表>(UDP Ping)

-PR(ARP Ping)

如果 Nmap 发现目标主机就在它所在的局域网上,它会进行 ARP 扫描。 即使指定了不同的 ping 类型 (如 -PI 或者 -PS ) , Nmap 也会对任何相同局域网上的目标机使用 ARP 。 如果您真的不想要 ARP 扫描,指定 --send-ip 。对于 IPv6 ( -6 选项),-PR 使用 ICMPv6 的邻居发现而不是 ARP 。在 RFC 4861 中定义的邻居发现可以看作是 IPv6 等效的。

--disable-arp-ping (No ARP or ND Ping)

不使用 ARP 发现和 ICMPv6 邻居发现

-PY <端口列表> (SCTP INIT Ping)

-PE; -PP; -PM(ICMP Ping Types)

-PE 是 ICMP echo 请求时间戳和地址掩码查询可以分别用 -PP 和 -PM 选项发送。 时间戳响应 ( ICMP 代码 14 ) 或者地址掩码响应 ( 代码 18 ) 表示主机在运行。

-n 不域名解析

-R 所有IP做反向域名解析

--system-dns 使用本机的dns服务器

--dns-servers <server1,server2> (使用指定的dns服务器)

如果指定 dns 服务器无法使用,则会转向使用本机配置的 dns 服务器

open ( 开放的 )

应用程序正在该端口接收 TCP 连接或者 UDP 报文。

closed ( 关闭的 )

关闭的端口对于 Nmap 也是可访问的 ( 它接受 Nmap 的探测报文并作出响应 ), 但没有应用程序在其上监听。

filtered ( 被过滤的 )

由于包过滤阻止探测报文到达端口,Nmap 无法确定该端口是否开放。

unfiltered ( 未被过滤的 )

未被过滤状态意味着端口可访问,但 Nmap 不能确定它是开放还是关闭。

open|filtered ( 开放或者被过滤的 )

当无法确定端口是开放还是被过滤的,Nmap 就把该端口划分成 这种状态。开放的端口不响应就是一个例子。

closed|filtered ( 关闭或者被过滤的 )

该状态用于 Nmap 不能确定端口是关闭的还是被过滤的。 它只可能出现在 IPID Idle 扫描中

-sS( TCP SYN 扫描 )

半开放扫描,不打开一个完整的TCP链接它发送一个 SYN 报文,然后等待响应。 SYN/ACK 表示端口在监听 (开放),而 RST (复位)表示没有监听者。如果数次重发后仍没响应,该端口就被标记为被过滤。如果收到 ICMP 不可到达错误 ( 类型 3,代码 1,2,3,9,10,或者 13 ),该端口也被标记为被过滤。

-sT( TCP connect() 扫描 )

Nmap 通过创建 connect() 系统调用要求操作系统和目标机以及端口建立连接,而不像其它扫描类型直接发送原始报文。 这是和 Web 浏览器,P2P 客户端以及大多数其它网络应用程序用以建立连接一样的 高层系统调用。当 Nmap 连接,然后不发送数据又关闭连接, 许多普通 UNIX 系统上的服务会在 syslog 留下记录,有时候是一条加密的错误消息。

-sU( UDP 扫描 )

1.UDP 扫描用 -sU 选项激活。它可以和 TCP 扫描如 SYN 扫描 ( -sS ) 结合使用来同时检查两种协议。

2.UDP 扫描发送空的(没有数据) UDP 报头到每个目标端口。 如果返回 ICMP 端口不可到达错误 ( 类型 3,代码 3 ), 该端口是 closed ( 关闭的 ) 。 其它 ICMP 不可到达错误 ( 类型 3 , 代码 1,2,9,10,或者 13 ) 表明该端口是 filtered ( 被过滤的 )。 偶尔地,某服务会响应一个 UDP 报文,证明该端口是 open ( 开放的 )。 如果几次重试后还没有响应,该端口就被认为是 open|filtered ( 开放 | 被过滤的 ) 。 这意味着该端口可能是开放的,也可能包过滤器正在封锁通信。 可以用版本扫描 ( -sV ) 帮助区分真正的开放端口和被过滤的端口。

-sY(SCTP INIT scan)

SCTP INIT 扫描类似 TCP SYN 扫描,他也是打开一个半开的连接,而不是建立一个完整的 SCTP 关联。如果目标端口回复一个 INIT-ACK 数据包,则说明端口是开放的,如果回复一个 ABORT 数据包,端口是关闭的,如果没有回复,端口会被标记标记为被过滤,当然如果收到了 ICMP 不可达的消息( type 3, code 0, 1, 2, 3, 9, 10, or 13 )也会被标记为被过滤。

-sN; -sF; -sX ( TCP Null,FIN,Xmas 扫描 )

1.如果扫描系统遵循该 RFC ,当端口关闭时,任何不包含 SYN,RST ,或者 ACK 位的报文会导致 一个 RST 返回,而当端口开放时,应该没有任何响应。只要不包含 SYN,RST,或者 ACK, 任何其它三种 ( FIN,PSH,and URG ) 的组合都行。 Nmap 有三种扫描类型利用这一点:Null 扫描 (-sN)

不设置任何标志位 ( tcp 标志头是 0 )

FIN 扫描 ( -sF )

只设置 TCP FIN 标志位。

Xmas 扫描 ( -sX )

设置 FIN,PSH,和 URG 标志位,就像点亮圣诞树上所有的灯一样。

2.除了探测报文的标志位不同,这三种扫描在行为上完全一致。 如果收到一个 RST 报文,该端口被认为是 closed ( 关闭的 ),而没有响应则意味着 端口是 open|filtered ( 开放或者被过滤的 )。 如果收到 ICMP 不可到达错误( 类型 3,代号 1,2,3,9,10,或者 13 ),该端口就被标记为 被过滤的。

-sA ( TCP ACK 扫描 )

-sW(TCP窗口扫描)

在某些系统上,开放端口用正数表示窗口大小 ( 甚至对于 RST 报文 ) 而关闭端口的窗口大小为 0 。因此,当收到RST时,窗口扫描不总是把端口标记为 unfiltered, 而是根据TCP窗口值是正数还是 0 ,分别把端口标记为 open 或者 closed

-sM(TCP Maimon扫描)

探测报文是 FIN/ACK。 根据 RFC 793 (TCP) ,无论端口开放或者关闭,都应该对这样的探测响应 RST 报文。 然而,Uriel 注意到如果端口开放,许多基于 BSD 的系统只是丢弃该探测报文。

--scanflags ( 定制的 TCP 扫描 )

--scanflags 选项可以是一个数字标记值如 9 ( PSH 和 FIN ) , 但使用字符名更容易些。 只要是 URG, ACK,PSH, RST,SYN,and FIN 的任何组合就行。例如,--scanflags URGACKPSHRSTSYNFIN 设置了所有标志位,但是这对扫描没有太大用处。 标志位的顺序不重要。

-sZ(SCTP COOKIE ECHO 扫描 )

如果目标端口开放,则会丢弃之前没有发起关联请求的 SCTP COOKIE ECHO 数据包,如果端口是关闭的则会返回一个 SCTP ABORT 数据包。所以这个扫描技术,无法分辨过滤和开放,只能分辨出关闭的端口。

--sI < 僵尸主机地址:端口 >( idlescan )

-sO(IP协议扫描)

IP 协议扫描可以让您确定目标机支持哪些 IP 协议 ( TCP,ICMP,IGMP,等等 ) 。从技术上说,这不是端口扫描 ,既然它遍历的是 IP 协议号而不是 TCP 或者 UDP 端口号。 但是它仍使用 -p 选项选择要扫描的协议号, 用正常的端口表格式报告结果,甚至用和真正的端口扫描一样 的扫描引擎。因此它和端口扫描非常接近,也被放在这里讨论。

-b <ftp relay host>(FTP弹跳扫描)

默认情况下,Nmap 用指定的协议对端口 1 到 1024 以及 nmap-services 文件中列出的更高的端口在扫描。

-p < 端口号,端口列表 >

--exclede-ports < 端口列表 >( 排除的端口 )

指定排除的端口,如果是指定排除的协议号的话,他的值在 0-255 之间

-F( 快速扫描 )

在 nmap 的 nmap-services 文件中 ( 对于 -sO ,是协议文件)指定您想要扫描的端口。 这比扫描所有 65535 个端口快得多。 因为该列表包含如此多的TCP端口( 1200 多),这和默认的 TCP 扫描 scan ( 大约 1600 个端口)速度差别不是很大。如果用 --datadir 选项指定小的 nmap-services 文件 ,差别会很大。

-r(顺序扫描端口)

默认情况下,Nmap 按随机顺序扫描端口 ( 除了出于效率的考虑,常用的端口前移 )。可以指定 -r 来顺序端口扫描。

--port-ratio <ratio>

扫描 nmap-services 中给出的目标的一定比例,这个值在 1.0-0.0 之间。

--top-ports

扫描 nmap-services 中的前多少个端口。

-sV( 版本扫描 )

扫描服务版本,也可以用 -A 同时进行操作系统探测和版本扫描。

--allports(版本扫描时,不排除任何端口)

--version-intensity <强度>(版本扫描强度)

强度在 1 到 9 之间,一般来说,强度越大,服务越有可能被正确识别

--version-light

相当于 --version-intensity 2

--vension-all

相当于 --version-intensity 9

--version-trace

打印出正在进行的版本扫描的详细信息

-O (启用操作系统检测)

也可以使用 -A 来同时启用操作系统检测和版本扫描。

--osscan-limit

只对至少知晓一个端口开放或者关闭的主机进行操作系统探测

--osscan-guess;--fuzzy

无法确定操作系统类型的时候,默认进行推测。但是使用这两项,会让猜测更加准确。

--max-os-tries(操作系统识别重试次数)

默认重试五次,

--min-hostgroup <milliseconds>; --max-hostgroup <milliseconds> (调整并行扫描组的大小)

--min-parallelism <milliseconds>; --max-parallelism <milliseconds> ( 调整探测报文的并行度 )

这些选项控制用于主机组的探测报文数量,可用于端口扫描和主机发现。默认状态下,Nmap 基于网络性能计算一个理想的并行度,这个值经常改变。如果报文被丢弃,Nmap 降低速度,探测报文数量减少。随着网络性能的改善,理想的探测报文数量会缓慢增加。这些选项确定这个变量的大小范围。默认状态下,当网络不可靠时,理想的并行度值 可能为 1 ,在好的条件下,可能会增长至几百。最常见的应用是 --min-parallelism 值大于 1 ,以加快 性能不佳的主机或网络的扫描。这个选项具有风险,如果过高则影响准确度,同时也会降低 Nmap 基于网络条件动态控制并行度的能力。这个值设为 10 较为合适, 这个值的调整往往作为最后的手段。

--max-parallelism选项通常设为1,以防止Nmap在同一时间 向主机发送多个探测报文,和选择--scan-delay同时使用非常有用。

--min-rtt-timeout <milliseconds>, --max-rtt-timeout <milliseconds>, --initial-rtt-timeout <milliseconds> (调整探测报文超时)

Nmap 使用一个运行超时值来确定等待探测报文响应的时间,随后会放弃或重新 发送探测报文。Nmap 基于上一个探测报文的响应时间来计算超时值,如果网络延迟比较显著 和不定,这个超时值会增加几秒。初始值的比较保守 ( 高 ) ,而当 Nmap 扫描无响应 的主机时,这个保守值会保持一段时间。这些选项以毫秒为单位,采用小的 --max-rtt-timeout 值,使 --initial-rtt-timeout 值大于默认值可以明显减少扫描时间,特别 是对不能 ping 通的扫描 ( -P0 ) 以及具有严格过滤的网络。如果使用太 小的值,使得很多探测报文超时从而重新发送,而此时可能响应消息正在发送,这使得整个扫描的时 间会增加。如果所有的主机都在本地网络,对于--max-rtt-timeout值来 说,100 毫秒比较合适。如果存在路由,首先使用ICMP ping 工具 ping 主机,或使用其 它报文工具如 hpings ,可以更好地穿透防火墙。查看大约 10 个包的最大往返时间,然后将 --initial-rtt-timeout 设成这个时间的2倍,--max-rtt-timeout 可设成这个时间值的3倍或4倍。通常,不管 ping 的时间是多少,最大的 rtt 值不得小于 100ms , 不能超过 1000ms 。--min-rtt-timeout 这个选项很少使用,当网络不可靠时, Nmap 的默认值也显得过于强烈,这时这个选项可起作用。当网络看起来不可靠时,Nmap 仅将 超时时间降至最小值,这个情况是不正常的,需要向 nmap-dev 邮件列表报告 bug 。

--host-timeout <milliseconds> ( 放弃低速目标主机 )

由于性能较差或不可靠的网络硬件或软件、带宽限制、严格的防火墙等原因, 一些主机需要很长的时间扫描。这些极少数的主机扫描往往占 据了大部分的扫描时间。因此,最好的办法是减少时间消耗并且忽略这些主机,使用 --host-timeout 选项来说明等待的时间(毫秒)。通常使用 1800000 来保证 Nmap 不会在单个主机上使用超过半小时的时间。需要注意的是,Nmap 在这半小时中可以 同时扫描其它主机,因此并不是完全放弃扫描。超时的主机被忽略,因此也没有针对该主机的 端口表、操作系统检测或版本检测结果的输出。

--scan-delay <milliseconds>; --max-scan-delay <milliseconds> ( 调整探测报文的时间间隔 )

这个选项用于 Nmap 控制针对一个主机发送探测报文的等待时间(毫秒),在带宽 控制的情况下这个选项非常有效。Solaris 主机在响应 UDP 扫描探测报文报文时,每秒 只发送一个 ICMP 消息,因此 Nmap 发送的很多数探测报文是浪费的。--scan-delay 设为 1000,使 Nmap 低速运行。Nmap 尝试检测带宽控制并相应地调整扫描的延迟,但并不影响明确说明何种速度工作最佳。--scan-delay 的另一个用途是躲闭基于阈值的入侵检测和预防 系统 ( IDS/IPS )。

-T <Paranoid|Sneaky|Polite|Normal|Aggressive|Insane> ( 设置时间模板 )

上述优化时间控制选项的功能很强大也很有效,但有些用户会被迷惑。此外, 往往选择合适参数的时间超过了所需优化的扫描时间。因此,Nmap 提供了一些简单的 方法,使用 6 个时间模板,使用时采用 -T 选项及数字 ( 0 - 5 ) 或名称。模板名称有 paranoid (0)、sneaky (1)、polite (2)、normal(3)、 aggressive (4) 和 insane (5)。前两种模式用于 IDS 躲避,Polite 模式降低了扫描 速度以使用更少的带宽和目标主机资源。默认模式为 Normal,因此 -T3 实际上是未做任何优化。Aggressive 模式假设用户具有合适及可靠的网络从而加速 扫描。Insane 模式假设用户具有特别快的网络或者愿意为获得速度而牺牲准确性。用户可以根据自己的需要选择不同的模板,由 Nmap 负责选择实际的时间值。 模板也会针对其它的优化控制选项进行速度微调。例如,-T4 针对 TCP 端口禁止动态扫描延迟超过 10ms ,-T5 对应的值为 5ms 。 模板可以和优化调整控制选项组合使用,但模板必须首先指定,否则模板的标准值 会覆盖用户指定的值。建议在扫描可靠的网络时使用 -T4 ,即使 在自己要增加优化控制选项时也使用 ( 在命令行的开始 ) ,从而从这些额外的较小的优化 中获益。如果用于有足够的带宽或以太网连接,仍然建议使用 -T4 选项。 有些用户喜欢 -T5 选项,但这个过于强烈。有时用户考虑到避免使主机 崩溃或者希望更礼貌一些会采用 -T2 选项。他们并没意识到 -T Polite 选项是如何的慢,这种模式的扫描比默认方式实际上要多花 10 倍的时间。默认时间 选项 ( -T3 ) 很少有主机崩溃和带宽问题,比较适合于谨慎的用户。不进行 版本检测比进行时间调整能更有效地解决这些问题。虽然 -T0 和 -T1 选项可能有助于避免 IDS 告警,但在进行上千个主机或端口扫描时,会显著增加时间。对于这种长时间的扫描,宁可设定确切的时间值,而不要去依赖封装的 -T0 和 -T1 选项。T0 选项的主要影响是对于连续扫描,在一个时间只能扫描一个端口, 每个探测报文的发送间隔为 5 分钟。T1 和 T2 选项比较类似, 探测报文间隔分别为 15 秒和 0.4 秒。 T3 是 Nmap 的默认选项,包含了并行扫描。 T4 选项与 --max-rtt-timeout 1250 --initial-rtt-timeout 500 等价,最大 TCP 扫描延迟为 10ms 。T5 等价于 --max-rtt-timeout 300 --min-rtt-timeout 50 --initial-rtt-timeout 250 --host-timeout 900000,最大 TCP 扫描延迟为 5ms。

--max-retries < 次数 >

没有响应后的重试次数

--script-timeout <time> ( 设置脚本超时时间 )

预防脚本的bug导致影响效率

--min-rate <number>; --max-rate <number> ( 发包速度控制 )

最少每秒发多少,最多每秒发多少。如果 0.1 的话就是 10 秒一个包的意思

--defeat-rst-ratelimit

忽略系统 reset 包的速率限制

--defeat-icmp-ratelimit

忽略系统 ICMP 错误消息速率限制

--nsock-engine epoll|kqueue|poll|select

选择系统 IO 模型,nmap -V 可以查看支持哪些

-f ( 报文分段 ); --mtu ( 使用指定的MTU )

-D <肉鸡1 ,肉鸡2,...>( 结合肉鸡干扰进行扫描 )

首先必须让目标主机认为是肉鸡在扫描它,IDS 虽然能够捕捉到扫描的 IP ,但是并知道哪个是真实的攻击者,使用逗号来分隔每个肉鸡,如果使用了ME 选项,nmap 将不会使用本机地址,否则 nmap 将会把本机地址放在一个随机位置。注意,太多的欺骗包甚至可能造成 DDoS 的效果,而且很多多 IPS 会过滤欺骗包

-S <IP地址>( 源地址欺骗 )

伪造扫描请求源地址。在某些情况下,Nmap 可能无法确定你的源地址 ( 如果这样,Nmap 会给出 提示 )。此时,使用 -S 选项并说明所需发送包的接口 IP 地址。-e 选项常在这种情况下使用,也可采用 -P0 选项。

-e <interface>( 指定使用的网络接口 )

告诉 nmap 使用哪个网络接口收发报文

--source-port <portnumber>; -g <portnumber> ( 源端口欺骗 )

只需要提供一个端口号,Nmap 就可以从这些 端口发送数据。为使特定的操作系统正常工作,Nmap 必须使用不同的端口号。 DNS 请求会忽略 --source-port 选项,这是因为 Nmap 依靠系 统库来处理。大部分 TCP 扫描,包括 SYN 扫描,可以完全支持这些选项,UDP 扫描同样如此。

--date <hex string>

可以用这样的格式指定值 --data 0xdeadbeef --data \xCA\xFE\x09 如果指定 0x00ff 这个的数字,将不会做字节序转换。确保你的字节序,对方可以接受

--data-string <string>

例如,--data-string "Scan conducted by Security Ops, extension 7192" or --data-string "Ph34r my l33t skills"

--data-length <number> ( 发送报文时 附加随机数据 )

这个选项告诉 Nmap 在发送的报文上 附加指定数量的随机字节。操作系统检测 ( -O )包不受影响。

--ip-options <S|R [route]|L [route]|T|U ... >;

--ip-options <hex string> (Send packets with specified ip options)

指定IP头

--proxies <Comma-separated list of proxy URLs>

设置代理,支持 http 代理和 socks4 代理

--badsum( 让 nmap 使用一个伪造的不合法的 checksum )

这样的数据包一般都会丢弃,如果收到任何回复,这个回复一定来自防火墙

--adler32( 使用弃用的 Adler32 来代替 CRC32C 做 SCTP 的 checksum )

这是为了从旧版的 SCTP 协议设备获得响应

--ttl <value> ( 设置 IP time-to-live 域)

设置 IPv4 报文的 time-to-live 域为指定的值。

--randomize-hosts ( 对目标主机的顺序随机排列 )

告诉 Nmap 在扫描主机前对每个组中的主机随机排列,最多可达 8096 个主机。

--spoof-mac <mac address,prefix,or vendor name> ( MAC 地址哄骗 )

要求 Nmap 在发送原以太网帧时使用指定的 MAC 地址,这个选项隐含了 --send-eth 选项,以保证 Nmap 真正发送以太网包。MAC 地址有几种格式。如果简单地使用字符串“ 0 ”,Nmap 选择一个完全随机的 MAC 地址。如果给定的字符品是一个 16 进制偶数 ( 使用 : 分隔 ),Nmap 将使用这个 MAC 地址。 如果是小于 12 的 16 进制数字,Nmap 会随机填充剩下的 6 个字节。如果参数不是 0 或 16 进 制字符串,Nmap 将通过 nmap-mac-prefixes 查找 厂商的名称 ( 大小写区分 ) ,如果找到匹配,Nmap 将使用厂商的 OUI ( 3 字节前缀 ),然后 随机填充剩余的 3 个节字。正确的 --spoof-mac 参数有, Apple, 0,01:02:03:04:05:06, deadbeefcafe,0020F2, 和 Cisco。

-oN <filespec> (标准输出)

将结果输入制定文件

-oX <filespec> (XML输出)

将XML输出写入指定文件

-oS <filespec> (ScRipT KIdd|3 oUTpuT)

脚本小子输出类似于交互工具输出,这是一个事后处理,适合于 'l33t HaXXorZ, 由于原来全都是大写的Nmap输出。

-oG <filespec> (Grep输出)

这种方式最后介绍,因为不建议使用。XML输格式很强大,便于有经验 的用户使用。XML是一种标准,由许多解析器构成,而Grep输届更简化。XML是可扩展的,以支持新发布的Nmap特点。使用Grep输出的目的是忽略这些 特点,因为没有足够的空间。然而,Grep输出仍然很常使用。它是一种简单格式,每行一个主机,可以 通过UNIX工具(如grep、awk、cut、sed、diff)和Perl方便地查找和分解。常可 用于在命令行上进行一次性测式。查找ssh端口打开或运行Sloaris的主机,只需要一个简单的grep主机说明,使用通道并通过awk或cut命令打印所需的域。Grep输出可以包含注释(每行由#号开始)。每行由6个标记的域组成,由制表符及 冒号分隔。这些域有主机,端口, 协议,忽略状态,操作系统,序列号, IPID和状态。这些域中最重要的是Ports,它提供了所关注的端口的细节,端口项由逗号分隔。每个端口项代表一个所关注的端口,每个子域由/分隔。这些子域有:端口号, 状态,协议, 拥有者,服务, SunRPCinfo 和版本信息。对于XML输出,本手册无法列举所有的格式,有关Nmap Grep输出的更详细信息可 查阅2a6K9s2c8@1M7q4)9K6b7g2)9J5c8W2)9J5c8Y4N6%4N6#2)9J5k6i4g2F1M7%4m8W2j5$3W2X3K9h3y4Q4x3X3g2U0L8$3#2Q4x3V1k6F1L8h3q4H3i4K6u0V1L8@1N6Q4x3X3c8G2N6i4c8H3N6i4b7`.

-oA <basename> ( 输出至所有格式 )

为使用方便,利用 -oA<basename> 选项 可将扫描结果以标准格式、 XML 格式和 Grep 格式一次性输出。分别存放在 <basename>.nmap ,<basename>.xml 和 <basename>.gnmap 文件中。也可以在文件名前 指定目录名,如在UNIX中,使用 ~/nmaplogs/foocorp/, 在 Window 中,使用 c:\hacking\sco on Windows

-v( 提高输出信息的详细程度 )

-d [level]( 设置调试级别 )

--packet-trace( 跟踪发出的报文 )

-iflist( 列举端口和路由 )

--append-out( 在输出文件住追加 )

但对于 XML ( -oX )扫描输出 文件无效,无法正常解析,需要手工修改。

--resume <filename> ( 继续中断的扫描 )

如果标准扫描 ( -oN ) 或 Grep 扫描 ( -oG ) 日志 被保留,用户可以要求 Nmap 恢复终止的扫描,只需要简单地使用选项 --resume 并说明标准 /Grep 扫描输出文件,不允许 使用其它参数,Nmap 会解析输出文件并使用原来的格式输出。使用方式如 nmap --resume <logfilename>。Nmap 将把新地结果添加到文件中,这种方式不支持 XML 输出格式,原因是将两次运行结果合并至一个XML文件比较困难。

--stylesheet <path or URL> (设置XSL样式表,转换XML输出)

--webxml

--stylesheet d41K9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6F1L8h3q4H3i4K6u0W2L8%4u0Y4i4K6u0r3M7%4k6F1i4K6u0r3k6r3!0U0M7#2)9J5c8X3&6E0j5i4m8Q4x3X3g2^5M7$3H3`. 的简写。

--no-stylesheet (忽略 XML 声明的 XSL 样式表)

--open

只显示开放或者可能开放的端口

--stats-every <time>(周期性的输出统计数据)

--stats-every 10s 每 10 秒输出一次,这个输出会被输出到标准输出,和 XML 文件

--reason(打印主机和端口状态的原因)

-A(强力扫描模式)

个选项启用了操作系统检测 ( -O ) 和版本扫描 ( -sV ),以后会增加更多的功能。 目的是启用一个全面的扫描选项集合,不需要用户记忆大量的 选项。这个选项仅仅启用功能,不包含用于可能所需要的 时间选项 ( 如 -T4 ) 或细节选项 ( -v )。

--datadir <文件夹名称> ( 说明 nmap 用户数据文件的位置 )

Nmap 在运行时从文件中获得特殊的数据,这些文件有 nmap-service-probes, nmap-services, nmap-protocols, nmap-rpc, nmap-mac-prefixes 和 nmap-os-fingerprints 。Nmap 首先 在 --datadir 选项说明的目录中查找这些文件。 未找到的文件,将在 BMAPDIR 环境变量说明的目录中查找。 接下来是用于真正和有效 UID 的 ~/.nmap 或 Nmap 可执行代码的位置 ( 仅 Win32 ) ;然后是是编译位置,如 /usr/local/share/nmap/usr/share/nmap。 Nmap 查找的最后一个位置是当前目录。

--send-ip (在原IP层发送)

要求 Nmap 通过原 IP 套接字发送报文,而不是低层的以 太网帧。这是 --send-eth 选项的补充。

--send-eth

使用 raw ethernet 包来发包

--privileged (假定用户具有全部权限)

告诉 Nmap 假定其具有足够的权限进行源套接字包发送、 报文捕获和类似 UNIX 系统中根用户操作的权限。默认状态下, 如果由 getuid() 请求的类似操作不为 0 ,Nmap 将退出。 --privileged 在具有 Linux 内核性能的类似 系统中使用非常有效,这些系统配置允许非特权用户可以进行 原报文扫描。需要明确的是,在其它选项之前使用这些需要权 限的选项 ( SYN 扫描、操作系统检测等 )。 Nmap-PRIVILEGED 变量 设置等价于 --privileged 选项。

--unprivileged( 假定用户没有特权 )

--interactive ( 在交互模式中启动 )

在交互模式中启动 Nmap ,提供交互式的 Nmap 提示,便于 进行多个扫描(同步或后台方式)。对于从多用户系统中扫描 的用户非常有效,这些用户常需要测试他们的安全性,但不希望 系统中的其它用户知道他们扫描哪些系统。使用 --interactive 激活这种方式,然后输入 h 可 获得帮助信息。由于需要对正确的 shell 程序和整个功能非常熟悉, 这个选项很少使用。这个选项包含了一个!操作符,用于执行 shell 命令, 这是不安装 Nmap setuid root 的多个原因之一。

--release-memory ( 退出后 namp 自己释放内存)

--servicedb <services file>

nmap-service 文件的路径

--versiondb <service probes file>

nmap-service-probes 文件路径

-V;--version (查看版本)

-h;--help(简要的使用介绍)

12cK9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6F1L8h3q4H3i4K6u0W2L8%4u0Y4i4K6u0r3L8Y4y4W2k6r3!0U0i4K6u0r3 具体脚本的使用手册

--script <脚本名>

脚本名字前面加 + 会让脚本强制执行指定名字的时候可以使用 shell 风格的通配符 "*"。

nmap --script "http-*"

加载所有的名字以 http- 开头的脚本,必须用引号包起来,让通配符不受 shell 影响。

nmap --script "not intrusive"

加载所有非入侵类型的脚本

nmap --script "default or safe"

在功能上等同于 nmap --script "default,safe" 加载了所有默认类或者安全类,或者是两者都包含的。

nmap --script "default and safe"

加载在同属于两者的脚本

nmap --script "(default or safe or intrusive) and not http-*"

加载属于默认类或者安全类或者入侵类的但是名字开头不是 http- 的脚本

--script-args <n1>=<v1>,<n2>={<n3>=<v3>},<n4>={<v4>,<v5>}

指定脚本参数,里面不能有 ‘{’, ‘}’, ‘=’, or ‘,’,如果要用就用 \ 转义

--script-args-file <filename>

从一个文件获取脚本参数

--script-trace

打印出脚本执行的具体信息

--script-updatedb

更新脚本库

 
 
 
 
 
 
 
 
 
 
 
 
 

[培训]科锐逆向工程师培训第53期2025年7月8日开班!

收藏
免费 2
支持
分享
最新回复 (15)
雪    币: 371
活跃值: (94)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
3
这么快就加精了,给力
2017-10-26 14:16
0
雪    币: 1599
活跃值: (5198)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
4
mark
2017-10-26 15:00
0
雪    币: 6818
活跃值: (153)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
不错!
2017-10-26 21:07
0
雪    币: 407
活跃值: (566)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
谢谢分享
2017-10-28 08:58
0
雪    币: 37
活跃值: (20)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
7
2017-11-4 05:13
0
雪    币: 21
活跃值: (10)
能力值: ( LV2,RANK:15 )
在线值:
发帖
回帖
粉丝
8
收藏
2017-11-20 17:16
0
雪    币: 7
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
有用必须顶
2018-2-23 16:38
0
雪    币: 229
活跃值: (17)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
收藏
2018-2-26 14:32
0
雪    币:
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
看看

最后于 2019-1-12 09:52 被tangcanhui编辑 ,原因:
2019-1-12 09:52
0
雪    币: 213
活跃值: (13)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
优秀
2019-6-3 16:54
0
雪    币: 23
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
13
不错
2019-6-19 22:54
0
雪    币: 2044
活跃值: (237)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
14
感谢分享
2019-10-5 00:43
0
雪    币: 282
活跃值: (38)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
15
感谢分享
2019-11-11 12:58
0
雪    币: 36
活跃值: (16)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
16
总结的不错~
2020-3-31 14:03
0
游客
登录 | 注册 方可回帖
返回