zoukankan      html  css  js  c++  java
  • kali之Nmap (Network Mapper(网络映射器)

    Nmap是主机扫描工具,他的图形化界面是Zenmap,分布式框架为Dnamp

    Nmap可以完成以下任务:

    • 主机探测
    • 端口扫描
    • 版本检测
    • 系统检测
    • 支持探测脚本的编写
    • Nmap在实际中应用场合如下:
    • 通过对设备或者防火墙的探测来审计它的安全性
    • 探测目标主机所开放的端口
    • 通过识别新的服务器审计网络的安全性
    • 探测网络上的主机

    端口扫描工具,即借助工具,试图了解所扫描IP提供的计算机网络服务类型(网络服务均与端口号相关),从而发现攻击弱点,常见服务对应端口号:

    服务

    端口号

    HTTP

    80

    HTTPS

    443

    Telnet

    23

    FTP

    21

    SSH(安全登录)、SCP(文件传输)、端口重定向

    22

    SMTP

    25

    POP3

    110

    WebLogic

    7001

    TOMCAT

    8080

    WIN2003远程登录

    3389

    Oracle数据库

    1521

    MS SQL* SEVER数据库sever

    1433

    MySQL 数据库sever

    3306

    Nmap进行完整全面的扫描
    nmap –T4 –A –v

    其中-A选项用于使用进攻性(Aggressive)方式扫描;-T4指定扫描过程使用的时序(Timing),总有6个级别(0-5),级别越高,扫描速度越快,但也容易被防火墙或IDS检测并屏蔽掉,在网络通讯状况良好的情况推荐使用T4-v表示显示冗余(verbosity)信息,在扫描过程中显示扫描的细节,从而让用户了解当前的扫描状态。

    Nmap输出的是扫描目标的列表,以及每个目标的补充信息,至于是哪些信息则依赖于所使用的选项。 状态可能是 open(开放的),filtered(被过滤的), closed(关闭的),或者unfiltered(未被过滤的)。 Open(开放的)意味着目标机器上的应用程序正在该端口监听连接/报文。 filtered(被过滤的) 意味着防火墙,过滤器或者其它网络障碍阻止了该端口被访问,Nmap无法得知 它是 open(开放的) 还是 closed(关闭的)。 closed(关闭的) 端口没有应用程序在它上面监听,但是他们随时可能开放。 当端口对Nmap的探测做出响应,但是Nmap无法确定它们是关闭还是开放时,这些端口就被认为是 unfiltered(未被过滤的) 如果Nmap报告状态组合 open|filtered 和 closed|filtered时,那说明Nmap无法确定该端口处于两个状态中的哪一个状态。 当要求进行版本探测时,端口表也可以包含软件的版本信息。当要求进行IP协议扫描时 (-sO),Nmap提供关于所支持的IP协议而不是正在监听的端口的信息。

    除了所感兴趣的端口表,Nmap还能提供关于目标机的进一步信息,包括反向域名,操作系统猜测,设备类型,和MAC地址。

    参数搭配:

    Nmap 7.60SVN(https://nmap.org)

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

    目标规格:

      可以通过主机名,IP地址,网络等

      例如:scanme.nmap.org,microsoft.com/24,192.168.0.1; 10.0.0-255.1-254

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

      -iR <num hosts>:选择随机目标

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

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

    主机发现:

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

      -sn:Ping扫描 - 禁用端口扫描

      -Pn:将所有主机视为联机 - 跳过主机发现

      -PS / PA / PU / PY [portlist]:对给定端口的TCP SYN / ACK,UDP或SCTP发现

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

      -PO [协议列表]:IP协议Ping

      -n / -R:永远不要做DNS解析/总是解决[默认:有时]

      --dns-servers <serv1 [,serv2],...>:指定自定义DNS服务器

      --system-dns:使用操作系统的DNS解析器

      --traceroute:跟踪每个主机的跳转路径

    扫描技术:

      -sS / sT / sA / sW / sM:TCP SYN / Connect()/ ACK / Window / Maimon扫描

      -sU:UDP扫描

      -sN / sF / sX:TCP空,FIN和圣诞节扫描

      --scanflags <flags>:自定义TCP扫描标志

      -sI <僵尸主机[:探测端口]>:空闲扫描

      -sY / sZ:SCTP INIT / COOKIE-ECHO扫描

      -sO:IP协议扫描

      -b <FTP中继主机>:FTP反弹扫描

    港口规格和扫描订单:

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

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

      --exclude-ports <端口范围>:从扫描中排除指定的端口

      -F:快速模式 - 扫描比默认扫描更少的端口

    -r:连续扫描端口 - 不要随机化

      --top-ports <number>:扫描<number>最常见的端口

      - 端口比率<比率>:扫描端口比<比率>更普遍

    服务/版本检测:

      -sV:探测打开的端口以确定服务/版本信息

      --version-intensity <level>:从0(亮)到9(尝试所有探针)

      --version-light:限制为最有可能的探针(强度2)

      --version-all:尝试每一个探针(强度9)

      --version-trace:显示详细版本的扫描活动(用于调试)

    脚本扫描:

      -sC:等同于--script = default

      --script = <Lua scripts>:<Lua scripts>是逗号分隔的列表

               目录,脚本文件或脚本类别

      --script-args = <n1 = v1,[n2 = v2,...]>:为脚本提供参数

      --script-args-file = filename:在文件中提供NSE脚本参数

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

      --script-updatedb:更新脚本数据库。

      --script-help = <Lua scripts>:显示有关脚本的帮助。

               <Lua scripts>是脚本文件或者逗号分隔的列表

               脚本的类别。

    操作系统检测:

      -O:启用操作系统检测

      --osscan-limit:限制操作系统检测到有前途的目标

      --osscan-guess:猜测操作系统更积极

    时间和表现:

      采用<time>的选项以秒为单位,或附加“ms”(毫秒),

      (秒),'m'(分钟)或'h'(小时)的值(例如30m)。

      -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>:在此之后放弃目标

      - 扫描延迟/  - 最大扫描延迟<时间>:调整探头之间的延迟

      --min-rate <number>:发送不低于每秒<number>的数据包

      --max-rate <number>:发送数据包不会比每秒<number>更快

    防火墙/ IDS消除和防盗:

      -F; --mtu <val>:分段数据包(可选w /给定MTU)

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

      -S <IP_Address>:欺骗源地址

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

      -g /  -  source-port <portnum>:使用给定的端口号

      --proxies <url1,[url2],...>:通过HTTP / SOCKS4代理中继连接

      --data <十六进制字符串>:附加一个自定义的有效载荷到发送的数据包

      --data-string <string>:附加一个自定义的ASCII字符串到发送的数据包

      --data-length <num>:追加随机数据到发送的数据包

      --ip-options <options>:发送指定ip选项的数据包

      --ttl <val>:设置IP生存时间字段

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

      --badsum:发送具有伪造的TCP / UDP / SCTP校验和的数据包

    OUTPUT:

      -oN / -oX / -oS / -oG <file>:输出扫描正常,XML,s | <rIpt kIddi3,

         Grepable格式,分别给定的文件名。

      -oA <basename>:一次输出三种主要格式

      -v:提高详细程度(使用-vv或更多来获得更大的效果)

      -d:增加调试级别(使用-dd或更多以获得更好的效果)

      --reason:显示端口处于特定状态的原因

      - 打开:只显示打开(或可能打开)的端口

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

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

      --append-output:附加到指定的输出文件而不是clobber

      --resume <文件名>:恢复中止的扫描

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

      --webxml:Nmap.Org的参考样式表,以获得更多可移植的XML

      --no-stylesheet:阻止与XML输出相关联的XSL样式表

    MISC:

      -6:启用IPv6扫描

      -A:启用操作系统检测,版本检测,脚本扫描和跟踪路由

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

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

      - 特权:假设用户是完全特权的

      --unprivileged:假设用户缺少原始套接字权限

      -V:打印版本号

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

    例子:

      nmap -v -A scanme.nmap.org

      nmap -v -sn 192.168.0.0/16 10.0.0.0/8

      nmap -v -iR 10000 -Pn -p 80

    -h; --help (打印帮助摘要面)打印一个短的帮助屏幕,列出大部分常用的 命令选项,这个功能与不带参数运行Nmap是相同的。

    实例:

    Nmap用于主机发现的一些用法

    -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: 追踪每个路由节点

    Nmap用于端口扫描的一些用法

    1、扫描方式选项

    -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扫描方式

    2、 端口参数与扫描顺序

    [plain] view plain copy-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协议)  

      -F: Fast mode – 快速模式,仅扫描TOP 100的端口  

      -r: 不进行端口随机打乱的操作(如无该参数,nmap会将要扫描的端口以随机顺序方式扫描,以让nmap的扫描不易被对方防火墙检测到)。  

      --top-ports <number>:扫描开放概率最高的number个端口(nmap的作者曾经做过大规模地互联网扫描,以此统计出网络上各种端口可能开放的概率。以此排列出最有可能开放端口的列表,具体可以参见文件:nmap-services。默认情况下,nmap会扫描最有可能的1000TCP端口)  

      --port-ratio <ratio>: 扫描指定频率以上的端口。与上述--top-ports类似,这里以概率作为参数,让概率大于--port-ratio的端口才被扫描。显然参数必须在在01之间,具体范围概率情况可以查看nmap-services文件。  

    3、 版本侦测的用法

    版本侦测方面的命令行选项比较简单。

    [plain] view plain copy-sV: 指定让Nmap进行版本侦测  

      --version-intensity <level>: 指定版本侦测强度(0-9),默认为7。数值越高,探测出的服务越准确,但是运行时间会比较长。  

      --version-light: 指定使用轻量侦测方式 (intensity 2)  

      --version-all: 尝试使用所有的probes进行侦测 (intensity 9)  

      --version-trace: 显示出详细的版本侦测过程信息。

     

    10、其他扫描方式
    SYN扫描:利用基本的SYN扫描方式测试其端口开放状态
    namp -sS -T4 <target ip>

    FIN扫描:利用FIN扫描方式探测防火墙状态。FIN扫描方式用于识别端口是否关闭,收到RST回复说明该端口关闭,否则说明是openfiltered状态
    namp -sF -T4 <target ip>

    ACK扫描:利用ACK扫描判断端口是否被过滤。针对ACK探测包,为被过滤的端口(无论打开或关闭)会回复RST
    namp -sA -T4 <target ip>

    扫描前不进行Ping扫描测试
    nmap -Pn <target ip>

    如果有一个ip地址列表,将这个保存为一个txt文件,和nmap在同意目录下,扫描这个txt的所有主机,命令为
    nmap -iL target.txt
    版本检测扫描

  • 相关阅读:
    .net注册iis
    hdu 1081To The Max
    hdu 1312Red and Black
    hdu 1016Prime Ring Problem
    hdu 1159Common Subsequence
    hdu 1372Knight Moves
    hdu 1686Oulipo
    hdu 1241Oil Deposits
    hdu 1171Big Event in HDU
    hdu 4006The kth great number
  • 原文地址:https://www.cnblogs.com/haozheyu/p/9212224.html
Copyright © 2011-2022 走看看