zoukankan      html  css  js  c++  java
  • 扫描工具——Nmap用法详解

    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用于主机发现的一些用法

    -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会扫描最有可能的1000个TCP端口)  
      
    --port-ratio <ratio>: 扫描指定频率以上的端口。与上述--top-ports类似,这里以概率作为参数,让概率大于--port-ratio的端口才被扫描。显然参数必须在在0到1之间,具体范围概率情况可以查看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: 显示出详细的版本侦测过程信息。  

    具体操作演示如下
    1、用Nmap扫描特定IP地址

    2、用-vv对结果进行详细输出

    3、自行设置端口范围进行扫描

    4、指定端口号进行扫描

    5、对目标进行Ping扫描
    格式:namp -sP <target ip>

    6、路由跟踪
    nmap -traceroute <target ip>

    7、扫描一个段的主机在线状况
    nmap -sP <network address > </CIDR>

    8、操作系统探测
    nmap -O <target ip>

    9、万能开关扫描
    nmap -A <target ip>

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

    FIN扫描:利用FIN扫描方式探测防火墙状态。FIN扫描方式用于识别端口是否关闭,收到RST回复说明该端口关闭,否则说明是open或filtered状态
    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
    版本检测扫描
    nmap -sV <target ip>

    Nmap的帮助文档

    参考资料

    Nmap扫描原理与用法

     
  • 相关阅读:
    【转】C#中Invoke的用法
    SQLite判断某表是否存在
    qemu-kvm安装and配置桥接和SR-IOV
    Linux内核模块开发(简单)
    NetSpectre:通过网络读取任意内存
    Packet Chasing:通过缓存侧信道监视网络数据包
    Mastik:微体系结构侧信道攻击工具包
    infiniband网卡安装、使用总结
    NetCAT:来自网络的实用缓存攻击
    从线性回归案例理解深度学习思想
  • 原文地址:https://www.cnblogs.com/uestc2007/p/10948722.html
Copyright © 2011-2022 走看看