NMAP原理及脚本实践

NMAP

1.简介

  • NMAP:network mapper是一款开源的网络发现的工具(network discovery)和安全审计(security auditing)的工具.这也是他的两大主要的功能.
  • 主要功能及流程:
主机发现
端口扫描
版本检测
操作系统侦测

2.命令详解

2.1主机发现

  • 原理及方式:主要向主机发起ICMP请求,TCP连接,然后根据主机返回的报文来确认主机的存活
发送
接收
主机
靶机
  • 命令:

    1.PING测试
    -sL -sn PS/PA/PU/PY
    -PE/PP/PN -PO
    1. HOST DISCOVERY( PING ):

      -iL:从文件中导入目标主机和网段

      --exclude:排除不要的主机

      -sL: List Scan - simply list targets to scan使用场景就是在导入主机列表文件时先列出去将要扫描的主机.(scan List)
      -sn: Ping Scan - disable port scan:只进行主机发现,不进行端口扫描
      -Pn: Treat all hosts as online – skip host discovery:已经知道主机存活了,不要去探测主机是否在线
      -PS/PA/PU/PY[portlist]: TCP SYN/ACK, UDP or SCTP discovery to given ports:使用tcp三次握手中的连接来探测主机是否存活
      -PE/PP/PM: ICMP echo, timestamp, and netmask request discovery probes使用ICMP的时间戳,子网掩码,请求来探测主机
      -PO[protocol list]: IP Protocol Ping使用ip包来探测是否存在
      -n/-R: Never do DNS resolution/Always resolve [default: sometimes]
      --dns-servers <serv1[,serv2],…>: Specify custom DNS servers:指定dns的解析服务器
      --system-dns: Use OS’s DNS resolver
      --traceroute: Trace hop path to each host

2.2端口扫描

  • 熟知端口

[外链图片转存失败(img-Bmp2YH1L-1568813900487)(C:\Users\frinck\AppData\Roaming\Typora\typora-user-images\1568796598172.png)]

  • 原理:远程主机想服务器某个端口建立起一个连接的请求是,如果有此项服务,就会应答,如果未安装则无应答.

  • 几种状态:

    OPEN
    开放状态
    closed
    关闭
    Filtered
    无法确定状态
    建议等会再扫描
    Unfiltered
    意味着端口可以访问
    ,但是不能普安段端口的状态
    建议换一种扫描方式而不是使用ACK
    open filtered
    通常是被过滤了
    2.TCP连接测试
    -sS/SA/sW/sM -sU -sN/sF/sX -sO
  • 扫描方式:

    • 时序扫描:
    T0 非常慢的扫描,通常用于IDS逃避
    T1 缓慢的扫描,同样可以避开一些IDS
    T2 降低扫描速度,通常不用
    T3 默认扫描
    T4 快速扫描,可能会被防火墙发现
    T5 快速扫描,牺牲准确度
  • SCAN TECHNIQUES (TCP连接):
    -sS/sT/sA/sW/sM: TCP SYN/Connect()/ACK/Window/Maimon scans

    -p:制定端口扫描

    -F:快速扫描

    --top-ports:扫描开放概率最高的端口

    -sU: UDP Scan
    -sN/sF/sX: TCP Null, FIN, and Xmas scans
    --scanflags : Customize TCP scan flags:自定义flags
    -sI <zombie host[:probeport]>: Idle scan:空闲扫描,通过冒充另一台僵尸网络并观察僵尸网络行为来实现的
    -sY/sZ: SCTP INIT/COOKIE-ECHO scans
    -sO: IP protocol scan
    -b: FTP bounce scan

  • FIREWALL/IDS EVASION AND SPOOFING:
    -f; --mtu : fragment packets (optionally w/given MTU)
    -D <decoy1,decoy2[,ME],…>: Cloak a scan with decoys
    -S <IP_Address>: Spoof source address
    -e : Use specified interface
    -g/–source-port : Use given port number
    –proxies <url1,[url2],…>: Relay connections through HTTP/SOCKS4 proxies
    –data : Append a custom payload to sent packets
    –data-string : Append a custom ASCII string to sent packets
    –data-length : Append random data to sent packets
    –ip-options : Send packets with specified ip options
    –ttl : Set IP time-to-live field
    –spoof-mac <mac address/prefix/vendor name>: Spoof your MAC address
    –badsum: Send packets with a bogus TCP/UDP/SCTP checksum

2.3指纹识别

1.TCP指纹识别
2.ICMP指纹识别
  • TCP指纹识别:根据每种操作系统对数据包的不同类型会做出不同类型的反应.

  • ICMP协议中错误信息可以进行指纹识别

    -sV 版本探测

    --allports:全端口 版本探测

    -sR:RPC扫描

    -O:操作系统探测

    2.4 脚本使用

    • nmap的脚本存在于*/nmap/scripts目录下

      • 目录主要分为几大类
      Auth
      负责处理鉴权证书的脚本
      Broadcast
      探测更多服务的如dhcp,dns
      Brute
      暴力**方式
      Default
      提供基本的扫描能力
      Discovery
      DOS
      dos攻击
      External
      利用第三方数据库或资源
      Fuzzer
      模糊测试
      intrusive
      入侵性的脚本
      malware
      探测主机是否感染病毒
      safe
      安全性脚本
      version
      负责增强服务和版本扫描的脚本
      Vuln
      检查目标机是否有常见的漏洞
      • 使用方式:

        --script=上述脚本类型:使用脚本

        --script-args=key1=value1:传递参数

        --script-tracce:追踪脚本中发送接收的数据

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

      • 实例

        1. 鉴权扫描
          nmap --script=auth 192.168.0.105

NMAP原理及脚本实践
2. **
nmap --script=burpt 192.168.1.105
NMAP原理及脚本实践
3. nmap --script=external baidu.com

NMAP原理及脚本实践
NMAP原理及脚本实践