nmap 使用总结

nmap 网络探测工具

 

参考链接:

https://nmap.org/man/zh/

http://www.360doc.com/content/18/0127/18/52402560_725574428.shtml

 

 

0X00 背景

nmap是测试中常用的网络探测工具,但是这回简单的操作,一直了解不深入,现在深入的了解和学习一下。

在文章结构上,我把平时常用的内容提前了,以便再次查阅的时候,比较方便。

 

0X01 安装

nmap可以到

http://nmap.org/download.html  

下载最新版本(目前最新版本 nmap-7.70)

 

0X02 实例部分

实例  https://nmap.org/man/zh/man-examples.html

 

下面给出一些实例,简单的、复杂的到深奥的。为更具体,一些例子使用了实际的IP地址和域名。在这些位置,可以使用你自己网络 的地址/域名替换。注意,扫描其它网络不一定合法,一些网络管理员不愿看到未申请过的扫描,会产生报怨。因此,先获得允许是最好的办法。

命令组成

nmap [ <扫描类型> ...] [ <选项> ] { <扫描目标说明> }

初级使用

nmap -v scanme.nmap.org

这个选项扫描主机scanme.nmap.org中所有的保留TCP端口。选项-v启用细节模式。

 

nmap -A -T4 scanme.nmap.org

-A用来进行操作系统及其版本的探测,-T4 可以加快执行速度

 

nmap -sS -O scanme.nmap.org/24

进行秘密SYN扫描,对象为主机Saznme所在的“C类”网段的255台主机。同时尝试确定每台工作主机的操作系统类型。因为进行SYN扫描 和操作系统检测,这个扫描需要有根权限。

 

nmap -sV -p 22,53,110,143,4564 198.116.0-255.1-127

进行主机列举和TCP扫描,对象为B类188.116网段中255个8位子网。这 个测试用于确定系统是否运行了sshd、DNS、imapd或4564端口。如果这些端口 打开,将使用版本检测来确定哪种应用在运行。

 

nmap -v -iR 100000 -P0 -p 80

随机选择100000台主机扫描是否运行Web服务器(80端口)。由起始阶段发送探测报文来确定主机是否工作非常浪费时间,而且只需探测主机的一个端口,因此使用-P0禁止对主机列表。

 

nmap -P0 -p80 -oX logs/pb-port80scan.xml -oG logs/pb-port80scan.gnmap 216.163.128.20/20

扫描4096个IP地址,查找Web服务器(不ping),将结果以Grep和XML格式保存。

 

host -l company.com | cut -d -f 4 | nmap -v -iL -

进行DNS区域传输,以发现company.com中的主机,然后将IP地址提供给 Nmap。上述命令用于GNU/Linux -- 其它系统进行区域传输时有不同的命令。

 

深入扫描命令

 

-Pn  不探测扫描(假定所有主机都存活)

-PB  默认探测扫描(探测端口:TCP 80,445&ICMP)

-PS<portlist>  tcp探测扫描

-PE  ICMP Echo Request

-PP  ICMP Timestamp Request

-PM  ICMP Netmask Request

 

扫描类型

-sP  只探测主机在线情况

-sS  SYN扫描(隐身扫描)

-ST  TCP扫描

-sU  UDP扫描

-sV  系统版本检测

-O   操作系统识别

–scanflags  指定TCP标识位(设置URG, ACK, PSH,RST,SYN,FIN位)

 

细粒度的时间选项

–min-hostgroup/max-hostgroup <size>  平行的主机扫描组的大小

–min-parallelism/max-parallelism <numprobes>  并行探测

–min-rtt-timeout/max-rtttimeout/initial-rtt-timeout <time>   指定每轮探测的时间

–max-retries <tries>    扫描探测的上限次数设定

–host-timeout <time>    设置timeout时间

–scan-delay/–max-scan-delay <time>  调整两次探测之间的延迟

–min-rate <number>     每秒发送数据包不少于<number>次

 

时序选项

-T0  偏执的:非常非常慢,用于IDS逃逸

-T1  猥琐的:相当慢,用于IDS逃逸

-T2  有礼貌的:降低速度以消耗更小的带宽,比默认慢十倍

-T3  普通的:默认,根据目标的反应自动调整时间模式

-T4  野蛮的:假定处在一个很好的网络环境,请求可能会淹没目标

-T5  疯狂的:非常野蛮,很可能会淹没目标端口或是漏掉一些开放端口

 

输出格式

-oN  标准输出

-oG  好理解的格式

-ox  xml格式

-oA<basename>  用<basename>生成以上格式的文件 

 

misc选项

-n  禁止反向IP地址查找

-6  只是用 IPv6

-A  是用几个命令:OS 探测,版本探测,脚本扫描,traceroute

–reason 列出nmap的判断:端口开放,关闭,被过滤。

 

0X03 脚本讲解

nmap脚本主要分为以下几类,在扫描时可根据需要设置--script=类别这种方式进行比较笼统的扫描:

 

脚本引擎

-sC 运行默认脚本

–script=<ScriptName>

 运行个人脚本或批量脚本

–script-args=<Name1=value1,…>

 使用脚本参数列表

–script-updatedb

 更新脚本数据库

 

脚本主要种类

auth: 利用或绕过目标主机得访问控制

broadcast: 在局域网内探查更多服务开启状况,如dhcp/dns/sqlserver等服务 

brute: 提供暴力破解方式,针对常见的应用如http/snmp等 

default: 使用-sC或-A选项扫描时候默认的脚本,提供基本脚本扫描能力 

discovery: 对网络进行更多的信息,如SMB枚举、SNMP查询等 

dos: 用于进行拒绝服务攻击 

exploit: 利用已知的漏洞入侵系统 

external: 利用第三方的数据库或资源,例如进行whois解析 

fuzzer: 模糊测试的脚本,发送异常的包到目标机,探测出潜在漏洞

intrusive: 入侵性的脚本,此类脚本可能引发对方的IDS/IPS的记录或屏蔽 

malware: 探测目标机是否感染了病毒、开启了后门等信息 

safe: 此类与intrusive相反,属于安全性脚本 

version: 负责增强服务与版本扫描(Version Detection)功能的脚本 

vuln: 负责检查目标机是否有常见的漏洞(Vulnerability),如是否有MS08_067

 

nmap按脚本分类扫描

 

nmap --script=auth 192.168.137.*

负责处理鉴权证书(绕开鉴权)的脚本,也可以作为检测部分应用弱口令

nmap --script=brute 192.168.137.*

提供暴力破解的方式  可对数据库,smb,snmp等进行简单密码的暴力猜解

nmap --script=default 192.168.137.* 或者 nmap -sC 192.168.137.*

默认的脚本扫描,主要是搜集各种应用服务的信息,收集到后,可再针对具体服务进行攻击

nmap --script=vuln 192.168.137.*   

检查是否存在常见漏洞

nmap -n -p445 --script=broadcast 192.168.137.4

在局域网内探查更多服务开启状况

nmap --script external 202.103.243.110

利用第三方的数据库或资源,例如进行whois解析

 

nmap按应用服务扫描

 

(1)vnc扫描:

1:检查vnc bypass

nmap  --script=realvnc-auth-bypass 192.168.137.4

2:检查vnc认证方式

nmap  --script=vnc-auth  192.168.137.4 

3:获取vnc信息

nmap  --script=vnc-info  192.168.137.4

(2)smb扫描:

1:smb破解

nmap  --script=smb-brute.nse -p445 192.168.137.4 

2:smb字典破解

nmap --script=smb-brute.nse --script-args=userdb=/var/passwd,passdb=/var/passwd 192.168.137.4

3:smb已知几个严重漏

nmap  --script=smb-check-vulns.nse --script-args=unsafe=1 192.168.137.4

4:查看共享目录

nmap -p 445  --script smb-ls --script-args ‘share=e$,path=\,smbuser=test,smbpass=test’ 192.168.137.4

5:smb-psexec: 用登陆凭据作为脚本参数,在目标机器上运行一系列程序(注:需要下载nmap_service)

$nmap –script smb-psexec.nse –script-args=smbuser=<username>,smbpass=<password>[,config=<config>] -p445 <hosts>

6:查看会话

nmap -n -p445 --script=smb-enum-sessions.nse --script-args=smbuser=test,smbpass=test 192.168.137.4   

7:系统信息

nmap -n -p445 --script=smb-os-discovery.nse --script-args=smbuser=test,smbpass=test 192.168.137.4

(3)Mssql扫描:

1:猜解mssql用户名和密码

nmap -p1433 --script=ms-sql-brute --script-args=userdb=/var/passwd,passdb=/var/passwd 192.168.137.4

2:xp_cmdshell 执行命令

nmap -p 1433 --script ms-sql-xp-cmdshell --script-args mssql.username=sa,mssql.password=sa,ms-sql-xp-cmdshell.cmd="net user" 192.168.137.4 

3:dumphash值

nmap -p 1433 --script ms-sql-dump-hashes.nse --script-args mssql.username=sa,mssql.password=sa  192.168.137.4

(4)Mysql扫描:

1:检查mysql空密码

nmap -p 3306 --script=mysql-empty-password.nse 192.168.1.114

2:如果没有空密码,则可以使用自带的暴力破解功能尝试破解

nmap -p 3306 --script=mysql-brute.nse 192.168.1.114

3:如果知道了用户名与密码,可以枚举数据库中的用户

nmap -p 3306 --script=mysql-users.nse --script-args=mysqluser=root 192.168.1.114

4:枚举mysql用户信息

nmap -p 3306 --script=mysql-enum.nse 192.168.1.114

5:支持同一应用的所有脚本扫描

nmap --script=mysql-* 192.168.137.4

(5)Oracle扫描:

1:oracle sid扫描

nmap --script=oracle-sid-brute -p 1521-1560 192.168.137.5  

2:oracle弱口令破解

nmap --script oracle-brute -p 1521 --script-args oracle-brute.sid=ORCL,userdb=/var/passwd,passdb=/var/passwd 192.168.137.5

(6)其他一些比较好用的脚本

nmap --script=broadcast-netbios-master-browser 192.168.137.4   发现网关 

nmap -p 873 --script rsync-brute --script-args 'rsync-brute.module=www' 192.168.137.4  破解rsync 

nmap --script informix-brute -p 9088 192.168.137.4    informix数据库破解 

nmap -p 5432 --script pgsql-brute 192.168.137.4       pgsql破解 

nmap -sU --script snmp-brute 192.168.137.4            snmp破解 

nmap -sV --script=telnet-brute 192.168.137.4          telnet破解 

nmap --script=http-vuln-cve2010-0738 --script-args 'http-vuln-cve2010-0738.paths={/path1/,/path2/}' <target>  jboss autopwn 

nmap --script=http-methods.nse 192.168.137.4 检查http方法 

nmap --script http-slowloris --max-parallelism 400 192.168.137.4  dos攻击,对于处理能力较小的站点还挺好用的 'half-HTTP' connections  

nmap --script=samba-vuln-cve-2012-1182  -p 139 192.168.137.4

(7)不靠谱的脚本:

vnc-brute    次数多了会禁止连接

pcanywhere-brute   同上

 

0X04  Nmap 参考指南

 

了解Nmap

Nmap是什么?

Nmap (“Network Mapper(网络映射器)”) 是一款开放源代码的 网络探测和安全审核的工具。它的设计目标是快速地扫描大型网络,当然用它扫描单个主机也没有问题。

Nmap收集的信息有哪些?

  1. 使用原始IP报文来发现网络上有哪些主机
  2. 那些主机提供什么服务(应用程序名和版本)
  3. 那些服务运行在什么操作系统(包括版本信息)
  4. 它们使用什么类型的报文过滤器/防火墙,以及一堆其它功能。

 

虽然Nmap通常用于安全审核,许多系统管理员和网络管理员也用它来做一些日常的工作,比如查看整个网络的信息,管理服务升级计划,以及监视主机和服务的运行。

 

Nmap的输出结果有什么?

Nmap输出的是扫描目标的列表,以及每个目标的补充信息,至于是哪些信息则依赖于所使用的选项。

 “所感兴趣的端口表格”是其中的关键。那张表列出端口号,协议,服务名称和状态。

状态可能是:

open(开放的)

filtered(被过滤的)

closed(关闭的)

unfiltered(未被过滤的)。

 

 

端口扫描基础

  1. Open(开放的)意味着目标机器上的应用程序正在该端口监听连接/报文。
  2. filtered(被过滤的) 意味着防火墙,过滤器或者其它网络障碍阻止了该端口被访问,Nmap无法得知 它是 open(开放的) 还是 closed(关闭的)。
  3. closed(关闭的) 端口没有应用程序在它上面监听,但是他们随时可能开放。
  4. 当端口对Nmap的探测做出响应,但是Nmap无法确定它们是关闭还是开放时,这些端口就被认为是 unfiltered(未被过滤的) 。
  5. 如果Nmap报告状态组合 open|filtered 和 closed|filtered时,那说明Nmap无法确定该端口处于两个状态中的哪一个状态。
  6. 当要求进行版本探测时,端口表也可以包含软件的版本信息。
  7. 当要求进行IP协议扫描时 (-sO),Nmap提供关于所支持的IP协议而不是正在监听的端口的信息。
  8. 除了所感兴趣的端口表,Nmap还能提供关于目标机的进一步信息,包括反向域名,操作系统猜测,设备类型,和MAC地址。

 

-A, 用来进行操作系统及其版本的探测

-T4 可以加快执行速度

 

用途:nmap [扫描类型] [选项] {目标规范}

目标规范:

  可以传递主机名,IP地址,网络等。

  例如:

scanme.nmap.org

microsoft.com/24

192.168.0.1

10.0-255.0-255.1-254

目标说明

https://nmap.org/man/zh/man-target-specification.html

  -iL <inputfilename>:从主机/网络列表中输入

  -iR <num hosts>:选择随机目标,选项 0 意味着永无休止的扫描。

  --exclude <host1 [,host2] [,host3],...>:排除主机/网络

  --excludefile <exclude_file>:从文件中排除列表

 

主机发现

https://nmap.org/man/zh/man-host-discovery.html

  -sL:列表扫描 - 仅列出要扫描的目标

  -sP:Ping扫描 – 主要确定主机是否在线

  -P0:将所有主机视为在线 - 跳过主机发现

  --PS / PA / PU [portlist]:TCP SYN / ACK或UDP发现探测到给定端口

  -PE / PP / PM:ICMP回显,时间戳和网络掩码请求发现探测

  -PR:AEP扫描,针对目标ip的硬件地址

  -n:不用域名解析,加快扫描

  -R:为所有目标解析域名,发现机器正在运行时

  --system-dns:使用系统域名解析器

 

端口扫描技术

https://nmap.org/man/zh/man-port-scanning-techniques.html

Nmap支持的大约十几种扫描技术。 一般一次只用一种方法, 除了UDP扫描(-sU)可能和任何一种TCP扫描类型结合使用。

  -sS :TCP SYN扫描,半开放,速度快。

  -sT :TCP connect()建立高层系统调用,通过Berkeley Sockets API获取每个连接尝试的状态信息,不推荐可能留下日志记录

  -sA :ACK扫描,用于发现防火墙规则,确定它们是有状态的还是无状态的,哪些端口是被过滤的。

  -sU :UDP扫描,DNS,SNMP,和DHCP (注册的端口是53,161/162,和67/68)是最常见。可以与sT和sS结合使用,可以用版本扫描(-sV)帮助区分真正的开放端口和被过滤的端口。

  -sW :TCP窗口扫描,通过检查返回的RST报文的TCP窗口域。 在某些系统上,开放端口用正数表示窗口大小(甚至对于RST报文) 而关闭端口的窗口大小为0。

  -sM: Maimon扫描

  -sN :Null扫描,不设置任何标志位(tcp标志头是0)

  -sF :FIN扫描,只设置TCP FIN标志位

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

  --scanflags <flags>:自定义TCP扫描标志,只要是URG, ACK,PSH, RST,SYN,and FIN的任何组合就行。

  -sI <zombie host [:probeport]>:Idlescan 除了极端隐蔽(由于它不从真实IP地址发送任何报文),该扫描类型可以建立机器间的基于IP的信任关系。 端口列表从zombie 主机的角度。显示开放的端口。 因此您可以尝试用您认为(通过路由器/包过滤规则)可能被信任的 zombies扫描目标。

如果您由于IPID改变希望探测zombie上的特定端口,您可以在zombie 主机后加上一个冒号和端口号。 否则Nmap会使用默认端口(80)。

https://nmap.org/book/idlescan.html

  -sO:IP协议扫描,在IP协议域的8位上循环,发送IP报文头。

  -b <ftp relay host>:FTP跳转扫描,这是绕过防火墙的好方法,因为FTP服务器常常被置于可以访问比Web主机更多其它内部主机的位置。Nmap用-b选项支持ftp弹跳扫描。参数格式是 <username>:<password>@<server>:<port>。 <Server> 是某个脆弱的FTP服务器的名字或者IP地址。 您也许可以省略<username>:<password>, 如果服务器上开放了匿名用户(user:anonymous password:-wwwuser@)。 端口号(以及前面的冒号) 也可以省略,如果<server>使用默认的FTP端口(21)。

  --host-timeout:跳过慢速的主机。

 

端口说明和扫描顺序

  https://nmap.org/man/zh/man-port-specification.html

 

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

-p  <端口范围>:仅扫描指定的端口

例如:-p22 ; -p1-65535; -p U:53,111,137,T:21-25,80,139,8080

-F:快速扫描(有限的端口)

-r: (不要按随机顺序扫描端口)

 

服务和版本探测

https://nmap.org/man/zh/man-version-detection.html

用下列的选项打开和控制版本探测。

 

-sV (版本探测) 您也可以用-A同时打开操作系统探测和版本探测。

--allports (扫描所有端口)

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

高强度扫描花更多时间。强度值必须在0和9之间。 默认是7。

--version-light (打开轻量级模式)

    这是 --version-intensity 2的方便的别名。轻量级模式使版本扫描快许多,但它识别服务的可能性也略微小一点。

--version-all (尝试每个探测)

--version-intensity 9的别名,保证对每个端口尝试每个探测报文。

--version-trace (跟踪版本扫描活动)

    这导致Nmap打印出详细的关于正在进行的扫描的调试信息。 它是您用--packet-trace所得到的信息的子集。

-sR (RPC扫描,作为版本扫描(-sV)的一部分自动打开。)

 

操作系统探测

https://nmap.org/man/zh/man-os-detection.html

采用下列选项启用和控制操作系统检测:

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

--osscan-limit (针对指定的目标进行操作系统检测)

    如果发现一个打开和关闭的TCP端口时,操作系统检测会更有效。 采用这个选项,Nmap只对满足这个条件的主机进行操作系统检测,这样可以节约时间,特别在使用-P0扫描多个主机时。这个选项仅在使用 -O或-A 进行操作系统检测时起作用。

--osscan-guess; --fuzzy (推测操作系统检测结果)

 

时间和性能

https://nmap.org/man/zh/man-performance.html

改善扫描时间的技术有:忽略非关键的检测、升级最新版本的Nmap(性能增强不断改善)。 优化时间参数也会带来实质性的变化,这些参数如下。

 

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

    Nmap具有并行扫描多主机端口或版本的能力,Nmap将多个目标IP地址空间分成组,然后在同一时间对一个组进行扫描。通常,大的组更有效。缺点是只有当整个组扫描结束后才会提供主机的扫描结果。

 

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

最常见的应用是--min-parallelism值大于1,以加快性能不佳的主机或网络的扫描。这个选项具有风险,如果过高则影响准确度,同时也会降低Nmap基于网络条件动态控制并行度的能力。这个值设为10较为合适。

--max-parallelism选项通常设为1,以防止Nmap在同一时间向主机发送多个探测报文,和选择--scan-delay同时使用非常有用,虽然 这个选项本身的用途已经很好。

--min-rtt-timeout <milliseconds>(这个选项很少使用)

--max-rtt-timeout <milliseconds>, --initial-rtt-timeout <milliseconds> (调整探测报文超时响应时间,随后会放弃或重新 发送探测报文。)

这些选项以毫秒为单位,采用小的--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。

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

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

这个选项用于Nmap控制针对一个主机发送探测报文的等待时间(毫秒),在带宽控制的情况下这个选项非常有效。Solaris主机在响应UDP扫描探测报文时,每秒只发送一个ICMP消息,因此Nmap发送的很多数探测报文是浪费的。--scan-delay 设为1000,使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,默认时间选项(-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。

 

防火墙/IDS躲避和哄骗

https://nmap.org/man/zh/man-bypass-firewalls-ids.html

 

-f (报文分段) --mtu <val>:片段数据包(可选地w /给定MTU)

-D <decoy1,decoy2 [,ME],...>:使用诱饵隐蔽扫描

-S <IP_Address>:源地址哄骗

-e <iface >:使用指定的接口

-g <portnumber > / - source-port <portnumber >:源源端口哄骗,使用给定的端口号

--data-length <num>:(发送报文时附加随机数据)将随机数据附加到发送的数据包

--ttl <val>:(设置IP time-to-live域)设置IP生存时间字段

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

--spoof-mac <mac地址,前缀或供应商名称>:欺骗您的MAC地址

    要求Nmap在发送原以太网帧时使用指定的MAC地址,这个选项隐含了 --send-eth选项,以保证Nmap真正发送以太网包。

 

 

Nmap输出格式

https://nmap.org/man/zh/man-output.html

 

-oN <filespec> (标准输出),要求将标准输出直接写入指定的文件。如上所述,这个格式与交互式输出略有不同。

-oX <filespec> (XML输出)

XML输出引用了一个XSL样式表,用于格式化输出结果,类似于 HTML。最方便的方法是将XML输出加载到一个Web浏览器,如Firefox 或IE。由于nmap.xsl文件的绝对路径,因此通常只能在运行了Nmap的机器上工作(或类似配置的机器)。 类似于任何支持Web机器的HTML文件

--stylesheet 选项可用于建立可移植的XML文件。

-oS <filespec> (ScRipT KIdd|3 oUTpuT) 脚本小子输出类似于交互工具输出

-oG <filespec> (Grep输出)

-oA <basename> (输出至所有格式) 以三种主要格式输出

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

 

细节和调试选项

--packet-trace:显示发送和接收的所有数据包

-v (提高输出信息的详细度) 这个选项使用两次,会提供更详细的信息。

-d [level] (提高或设置调试级别,最高级别-d9,输出更多的细节)

--packet-trace (跟踪发送和接收的报文)

要求Nmap打印发送和接收的每个报文的摘要,通常用于调试。为避免输出过多的行,可以限制扫描的端口数,如-p20-30。 如果只需进行版本检测,使用--version-trace。

--iflist:打印主机接口列表和系统路由(用于调试)

 

其它输出选项

--append-output (在输出文件中添加,附加到而不是clobber指定的输出文件)

当使用文件作为输出格式,如-oX或-oN, 默认该文件被覆盖。如果希望文件保留现有内容,将结果添加在现有文件后面,使用--append-output选项。所有指定的输出文件都被添加。但对于XML(-oX)扫描输出 文件无效,无法正常解析,需要手工修改。

 

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

当中断时,如果标准扫描 (-oN)或Grep扫描(-oG)日志 被保留,用户可以要求Nmap恢复终止的扫描,使用选项 --resume并说明标准/Grep扫描输出文件,不允许使用其它参数,Nmap会解析输出文件并使用原来的格式输出。

使用方式 如nmap --resume <logfilename>。 Nmap将把新地结果添加到文件中,这种方式不支持XML输出格式,原因是将两次运行结果合并至一个XML文件比较困难。

 

--stylesheet <path / URL>:XSL样式表将XML输出转换为HTML

--no-stylesheet:防止Nmap关联XSL样式表w / XML输出 MISC:  (忽略XML声明的XSL样式表,使用该选项禁止Nmap的XML输出关联任何XSL样式表。 xml-stylesheet指示被忽略。) 

 

 

其它选项

https://nmap.org/man/zh/man-misc-options.html

 

-6:启用IPv6扫描

-A:这个选项启用额外的高级和高强度选项,目前启用操作系统检测(-O)和版本检测(-sV)

--datadir <dirname>:指定自定义Nmap数据文件位置

--send-eth / - send-ip:使用原始以太网帧发送数据包或IP数据包

--privileged:假定用户完全权限

-V;--version:打印版本号

-h;--help:打印此帮助摘要页面。

 

posted @ 2018-01-27 22:47  时光不改  阅读(7319)  评论(0编辑  收藏  举报