Home page logo
/
Intro Reference Guide Book Install Guide
Download Changelog Zenmap GUI Docs
Bug Reports OS Detection Propaganda Related Projects
In the Movies In the News

Nmap Network Scanning

输出

任何安全工具只有在输出结果时才是有价值的,如果没有通过组织和 易于理解的方式来表达,复杂的测试和算法几乎没有意义。Nmap提供了一些 方式供用户和其它软件使用,实际上,没有一种方式可以使所有人满意。 因此Nmap提供了一些格式,包含了方便直接查看的交互方式和方便软件处理 的XML格式。

除了提供输出格式外,Nmap还提供了选项来控制输出的细节以及调试 信息。输出内容可发送给标准输出或命名文件,可以追加或覆盖。输出文件还可 被用于继续中断的扫描。

Nmap提供5种不同的输出格式。默认的方式是interactive output, 发送给标准输出(stdout)。normal output方式类似于 interactive,但显示较少的运行时间信息 和告警信息,这是由于这些信息是在扫描完全结束后用于分析,而不是交互式的。

XML输出是最重要的输出类型,可被转换成HTML,对于程序处理非常方便, 如用于Nmap图形用户接口或导入数据库。

另两种输出类型比较简单,grepable output格式,在一行中包含目标主机最多的信息;sCRiPt KiDDi3 0utPUt 格式,用于考虑自己的用户 |<-r4d。

交互式输出是默认方式,没有相应的命令行选项,其它四种格式选项 使用相同的语法,采用一个参数,即存放结果的文件名。多种格式可同时 使用,但一种格式只能使用一次。例如,在标准输出用于查看的同时,可将结 果保存到XML文件用于程序分析,这时可以使用选项-oX myscan.xml -oN myscan.nmap。 为便于描述的简化,本章使用类似于myscan.xml的简单文件名, 建议采用更具有描述性的文件名。文件名的选择与个人喜好有关,建议增加 扫描日期以及一到两个单词来描述,并放置于一个目录中。

在将结果输出到文件的同时,Nmap仍将结果发送给标准输出。例如, 命令nmap -oX myscan.xml target将 输出XML至myscan.xml,并在stdout 上打印相同的交互式结果,而此时-oX选项没有采用。可以 使用连字符作为选项来改变,这使得Nmap禁止交互式输出,而是将结果打印到 所指定的标准输出流中。因此,命令nmap -oX - target只 输出XML至标准输出stdout。严重错误仍然是输出到标准错误流stderr中。

与其它Nmap参数不同,日志文件选项的空格(如-oX)和 文件名或连字符是必需的。如果省略了标记,例如-oG--oXscan.xml,Nmap的向后兼容特点将建立 标准格式的输出文件,相应的文件名为G-Xscan.xml

Nmap还提供了控制扫描细节以及输出文件的添加或覆盖的选项,这些选项 如下所述。

Nmap输出格式

-oN <filespec> (标准输出)

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

-oX <filespec> (XML输出)

要求XML输出直接写入指定 的文件。Nmap包含了一个文档类型定义(DTD),使XML解析器有效地 进行XML输出。这主要是为了程序应用,同时也可以协助人工解释 Nmap的XML输出。DTD定义了合法的格式元素,列举可使用的属性和 值。最新的版本可在 http://www.insecure.org/nmap/data/nmap.dtd获取。

XML提供了可供软件解析的稳定格式输出,主要的计算机 语言都提供了免费的XML解析器,如C/C++,Perl,Python和Java。 针对这些语言有一些捆绑代码用于处理Nmap的输出和特定的执行程序。 例如perl CPAN中的Nmap::ScannerNmap::Parser。 对几乎所有与Nmap有接口的主要应用来说,XML是首选的格式。

XML输出引用了一个XSL样式表,用于格式化输出结果,类似于 HTML。最方便的方法是将XML输出加载到一个Web浏览器,如Firefox 或IE。由于nmap.xsl文件的绝对 路径,因此通常只能在运行了Nmap的机器上工作(或类似配置的机器)。 类似于任何支持Web机器的HTML文件,--stylesheet 选项可用于建立可移植的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输出的更详细信息可 查阅http://www.unspecific.com/nmap-oG-output

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

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

细节和调试选项

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

通过提高详细度,Nmap可以输出扫描过程的更多信息。 输出发现的打开端口,若Nmap认为扫描需要更多时间会显示估计 的结束时间。这个选项使用两次,会提供更详细的信息。这个选 项使用两次以上不起作用。

大部分的变化仅影响交互式输出,也有一些影响标准和脚本 小子输出。其它输出类型由机器处理,此时Nmap默认提供详细的信 息,不需要人工干预。然而,其它模式也会有一些变化,省略一些 细节可以减小输出大小。例如,Grep输出中的注释行提供所有扫描 端口列表,但由于这些信息过长,因此只能在细节模式中输出。

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

当详细模式也不能为用户提供足够的数据时,使用调试可以得到更 多的信息。使用细节选项(-v)时,可启用命令行参数 (-d),多次使用可提高调试级别。也可在-d 后面使用参数设置调试级别。例如,-d9设定级别9。这是 最高的级别,将会产生上千行的输出,除非只对很少的端口和目标进行简单扫描。

如果Nmap因为Bug而挂起或者对Nmap的工作及原理有疑问,调试输出 非常有效。主要是开发人员用这个选项,调试行不具备自我解释的特点。 例如,Timeoutvals: srtt: -1 rttvar: -1 to: 1000000 delta 14987 ==> srtt: 14987 rttvar: 14987 to: 100000。如果对某行输出不明白, 可以忽略、查看源代码或向开发列表(nmap-dev)求助。有些输出行会有自 我解释的特点,但随着调试级别的升高,会越来越含糊。

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

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

--iflist (列举接口和路由)

输出Nmap检测到的接口列表和系统路由,用于调试路由 问题或设备描述失误(如Nmap把PPP连接当作以太网对待)。

其它输出选项

--append-output (在输出文件中添加)

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

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

一些扩展的Nmap运行需要很长的时间 -- 以天计算,这类扫描 往往不会结束。可以进行一些限制,禁止Nmap在工作时间运行,导致 网络中断、运行Nmap的主机计划或非计划地重启、或者Nmap自己中断。 运行Nmap的管理员可以因其它原因取消运行,按下ctrl-C 即可。从头开始启动扫描可能令人不快,幸运的是,如果标准扫描 (-oN)或Grep扫描(-oG)日志 被保留,用户可以要求Nmap恢复终止的扫描,只需要简单地使用选项 --resume并说明标准/Grep扫描输出文件,不允许 使用其它参数,Nmap会解析输出文件并使用原来的格式输出。使用方式 如nmap --resume <logfilename>。 Nmap将把新地结果添加到文件中,这种方式不支持XML输出格式,原因是 将两次运行结果合并至一个XML文件比较困难。

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

Nmap提从了XSL样式表nmap.xsl,用于查看 或转换XML输出至HTML。XML输出包含了一个xml-stylesheet, 直接指向nmap.xml文件, 该文件由Nmap安装(或位于Windows当前工作目录)。在Web浏览器 中打开Nmap的XML输出时,将会在文件系统中寻找nmap.xsl文件, 并使用它输出结果。如果希望使用不同的样式表,将它作为 --stylesheet的参数,必段指明完整的路 径或URL,常见的调用方式是--stylesheet http://www.insecure.org/nmap/data/nmap.xsl。 这告诉浏览器从Insecire.Org中加载最新的样式表。这使得 没安装Nmap(和nmap.xsl) 的机器中可以方便地查看结果。因此,URL更方便使用,本地文件系统 的nmap.xsl用于默认方式。

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

使用该选项禁止Nmap的XML输出关联任何XSL样式表。 xml-stylesheet指示被忽略。

[ Nmap | Sec Tools | Mailing Lists | Site News | About/Contact | Advertising | Privacy ]