zoukankan      html  css  js  c++  java
  • 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:hackingscoonWindows。

    细节和调试选项

    --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:打印此帮助摘要页面。

  • 相关阅读:
    Codeforces Round #639 Div2 A~D题解
    Codeforces Round #548 Div2 A~C题解
    Codeforces Round #581 Div2 A~D题解
    Educational Codeforces Round 69 Div2 A~D题解
    Codeforces Round #572 Div2 A~E题解
    Codeforces Round #663 Div2 A~D 题解
    44. 通配符匹配 leetcode 每日一题
    174. 地下城游戏 leetcode每日一题
    将有序数组转换为二叉搜索树 2020/7/3
    Multiplication 3 AtCoder
  • 原文地址:https://www.cnblogs.com/zhaijiahui/p/8367327.html
Copyright © 2011-2022 走看看