nmap常用命令详解

nmap

基本功能:
1. 探测一组主机是否在线
2. 扫描主机端口,嗅探所提供的网络服务
3. 推断主机所用的操作系统
4. 支持探测脚本的编写

指定ip时,可以通过 . 或 ,
例如:192.168.0-255.1-254
又如:192.168.1,3,7.1-254 //指定某个网段


探测主机存活

探测的目的是获得响应以显示某个IP地址是否是活动的
(正在被某主机或者网络设备使用)

选项:

-p* 用于选择ping的类型(可以被结合使用)
可以使用不同的TCP端口/标志位和ICPM码发送许多探测报文,目的是增加穿透防守严密的防火墙机会

  1. -PS[portlist](TCP SYN Ping) 例如:namp -PS80,23,21,22 www.baidu.com
    //发送一个设置了SYN标志位的空TCP报文,默认端口80
    不同的端口可以作为选项指定

  2. -PA[portlist](TCP ACK Ping)
    //提供SYN,ACK两种ping探测的原因是使通过防火墙的机会尽可能大

  3. -PU[portlist] (UDP Ping)
    //发送一个空的(除非指定了–data-length)UDP报文到指定的端口
    优势:可以穿越只过滤TCP的防火墙和过滤器

  4. -PE;-PP;-PM(ICMP Ping Types)
    Nmap发送一个ICMP type8报文到目标IP,期待从运行的主机得到一个type0的报文,但目前许多主机和防火墙封锁这个报文;时间戳和地址掩码查询可以分别用-PP和-PM选项发送,时间戳响应或者地址掩码响应表示主机在运行

  5. -PR(APR Ping)
    比基于ip的扫描更快更可靠。如果nmap发现目标主机就在它所在的局域网上,它会进行ARP扫描,即使指定了不同的Ping类型。如果真的不想要ARP扫描,指定–send-ip

  6. -Pn 还会返回端口信息
    nmap -Pn 192.168.3.1/24

  7. -sn : 只进行主机发现,不进行端口扫描

  8. -sL :nmap -sL 192.168.3.1/24 列出目标,但没有扫

  9. –dns-servers:指定dns服务器


端口扫描

  1. -sS(TCP SYN扫描)
    默认选项;从不完成TCP连接,可以明确可靠地区分open、closed、filtered状态; 被称作半开放扫描;
    SYN/ACK表示端口在监听,而RST表示没有监听者,如果数次重发后没有响应,该端口被标记为过滤,如果ICMP不可达错误,该端口也被标记为过滤

  2. -sT(TCP Coonect()扫描)
    完全连接到开放的目标端口,而不是像SYN扫描进行半开放的复位。容易被发现

  3. -sU(UDP扫描)
    可以和TCP扫描如SYN扫描(-sS)结合起来同时检查两种协议。
    UDP扫描发送空的UDP报头到每个目标端口。
    如果返回ICMP端口不可达错误(类型3,代码3),端口关闭;其他ICMP不可达错误(类型3,代码1,2,9,10,13)表明该端口是被过滤的;偶尔,某服务响应一个UDP报文,证明端口开放;如果多次重试后没有响应,证明端口开放或被过滤
    UDP扫描非常慢,可以用–host-timeout跳过慢速的主机

  4. -sA(TCP ACK扫描)
    用于发现防火墙规则,确定它们是有状态的还是无状态的,哪些端口是被滤的。
    当扫描未被过滤的系统时,开放和关闭的端口都返回RST,ACK报文不能到达,但无法确定究竟是开放还是关闭;不响应或发送特定ICMP错误信息的端口,标记为被过滤的
    下图第一次关闭防火墙,第二次开启防火墙:
    在这里插入图片描述

  5. -sI(僵尸扫描)
    进行真正的TCP端口盲扫描(没有报文从你真实的IP地址发送到目标)
    nmap -p445 192.168.3.33 --script ipidseq.nse
    nmap 192.168.3.1-100 --script ipidseq //探测某个主机能不能作为僵尸机
    nmap 192.168.3.33 -sI 192.168.3.33 -p1-1000 //33是僵尸机

  6. -sN/sF/sX
    指定使用TCP Null, FIN, and Xmas scans秘密扫描方式来
    协助探测对方的TCP端口状态。
    在这里插入图片描述

  7. 使用 --top-ports < number >
    扫描开放概率最高的number个端口(默认情况下,nmap会扫描最有可能的1000个TCP端口)
    在这里插入图片描述

  8. 使用 --port-ratio < ratio > 根据端口使用频率来扫描
    nmap --port-ratio 0.2 192.168.3.51

在这里插入图片描述


服务及版本探测

  1. -sv(版本探测)
    (1) --allports 不为版本探测排除任何端口(默认情况下,nmap版本探测会跳过某些端口)
    (2) --version-trace 跟踪版本扫描活动
    (3)–version-intensity : 指定版本侦测强度(0-9),默认为7。数值越高,探测出的服务越准确,但是运行时间会比较长。
    在这里插入图片描述

操作系统探测

  1. -O 也可以使用-A来同时启用操作系统检测和版本检测

  2. 脚本:--script=smb-os-discovery.nse 【比-O准】


nmap脚本扫描

  1. 获取banner信息
    --script banner.nse

  2. 获取whois信息
    --script whois-domain/ip 目标
    【whois信息网站:www.iana.org/whois】

  3. 扫描HTTP代理
    --script http-open-proxy -p8080 <target>

  4. 指定不同的USER AGENT来绕过某些防火墙
    --script http-enum --script-args http。Useragent=”Mozilla 5” <target>

  5. 列举目录列表
    --script http-enum -p80 <target>

  6. 探测WAF
    --script=http-waf-detect.nse

  7. SMTP协议
    --script smtp-enum-users.nse --script-args=smtp-enum-users.methods={VRFY}
    //找到一台开放25端口的主机,枚举用户,列出具体的用户信息
    --script smtp-open-relay.nse
    //探测中继是否开启

  8. SMP协议
    --script=smb-os-discovery.nse //操作系统
    --script=smb-vuln-*.nse --script-args=unsafe=1 //探测漏洞


nmap绕过欺骗防火墙IDS

  1. -f(报文分段);- -mtu(使用指定的偏移量大小)
    -f要求扫描时使用小的IP包分段。将TCP头分段在几个包中,使得包过滤器,IDS及其他攻击的检测更加困难
    - -mtu要是8的倍数

  2. -D 添加多个地址,对源地址进行混淆,同时发起迷惑防火墙
    nmap 192.168.3.51 -D 192.168.3.3,192.168.3.61

  3. -S 伪装源地址进行扫描
    nmap -S 192.168.3.88 192.168.3.51 -e eth0 //用88去扫描51

  4. -g/–source-port < portnum > 指定源端口
    nmap -g 5000 192.168.3.51

  5. 使用- -proxies <url1,[url2]…> 添加代理,只能是http或SOCKS4
    nmap --proxies “SOCKS4://username:password@ip:port” 192.168.3.51

  6. 使用- -data 传送数据,16进制
    nmap 192.168.3.51 -p3306 --data FFFFFFFFFF
    在这里插入图片描述

  7. 使用- -sprrf-mac 设置mac地址
    nmap 192.168.3.51 -p80 --spoof-mac XXXXXX
    在这里插入图片描述


其他选项

  1. -n 不用域名解析 告诉nmap不对它发现活动IP地址进行反向域名解析,因为DNS比较慢
  2. -R 为所有目标解析域名
  3. -iR 随机选择目标 选项0意味着永无休止的扫描(nmap -iR 100 -p80 --open)
  4. –exclude <[host1],[host2],[…]> 排除主机/网
    (nmap 192.168.3.1/24 --exclude 192.168.3.1-30)
  5. Excludefile 排除文件列表中的
  6. -A 综合扫描
  7. -p 只扫描指定端口
    例如-p1-1900;-p U:53,111,T:21-25,80(指定TCP/UDP端口类型)
  8. -F快速扫描
  9. -r 按随机顺序扫描端口
  10. -T<0-5>: Set timing template (higher is faster) 如果确定目标没有防火墙可以用5
  11. –scan-delay
  12. -v 具体打印正常扫描的信息
  13. –min-rate :每秒发的包不少于
    –max-rate : 每秒发的包不多于
              雪碧可乐_2020/7/14_12:07
             雪碧可乐_2020/7/17_10:37

版权声明:本文为weixin_44940180原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。