nmap的用法大全

Nmap是一款比较常用的开源工具,可以从https://nmap.org/下载,它可以用来探测目标机器开放了哪些端口,使用的操作系统类型和启用了哪些服务,同时,可以针对具体的服务发起一些枚举攻击以及漏洞扫描,并且根据漏扫发现的漏洞使用某个CVE发起攻击。本文主要对一些常用的nmap命令进行说明,并且针对一些功能举行实例说明。

Nmap主要的功能和相对应的实例罗列如下:

一、探测主机

  •  TCP SYN ping       

        Nmap -sS -Pn 192.168.0.1

        Nmap -sS -p- 192.168.0.1

  • TCP ACKping

        Nmap -sn -PA -Pn 192.168.0.1

  • UDP ping scan

        Nmap -sn -PU 192.168.0.1

  • ARP Ping [很快和很准,但是,经常有防火墙拦截]

        Nmap -PR 192.168.0.1

  • ICMP ECHO ping

        Nmap -PE 192.168.0.1

  • ICMP timestamp Ping

        Nmap -PP 192.168.0.1

  • IP Protocol Ping

        Nmap -PO1 192.168.0.1  使用IP协议

        Nmap -PO2 192.168.0.1  使用IGMP协议,经常被防火墙拦截。

  • Traceroute

        Nmap -sn 192.168.0.1 --traceroute

        

  • Reverse DNS resolution

        Nmap -R 192.168.0.1

  • Defaut scan  只扫描最常用的1000个端口

        Nmap 192.168.0.1

  • 扫描端口与协议

        Nmap -p 22 192.168.0.1 扫描某个端口

        Nmap -p 22,80,443 192.168.0.1 扫描端口列表

        Nmap -p 20-1000 192.168.0.1 扫描某个范围的端口

        Nmap -p ssh 192.168.0.1 扫描ssh协议的端口

         

  • Full链接扫描,由于需要建立链接来扫描,扫描速度很慢

        Nmap -sT -p- 22 192.168.0.1

  • 快速扫描

        Nmap -F 192.168.0.102

        nmap -F -sV 192.168.0.102 快速扫描服务的版本

  • 结果输出 -o   -oN -X -oS -oG  <file>

        Nmap -F 192.168.0.102 -oX output.xml

  • 显示扫描的过程信息

        nmap -v 192.168.0.102

        nmap -vvv -sS -A -F 192.168.0.102  v的数量越多,显示的信息越详细

  • FIN (-sF)、NULL Scan(-sN)、Xmas scan (-sX)

        nmap -sN 192.168.0.104  请求消息,没有设置TCP flag。

        nmap -sF 192.168.0.104  TCP flag被设置为FIN

         

        nmap -sX 192.168.0.104  TCP Flag 被设置为FIN PSH URG

        

 二、探测操作系统和服务

  • 探测OS

        Nmap -sS -O 192.168.0.107

         

  • 探测服务【检测会比较慢】

        Nmap -sS -sV -p- 192.168.0.107    -sV 表示显示服务的版本

        

  •  可以扫描机器是否运行在虚拟机软件上

        nmap -sn 192.168.0.1/24 --exclude 192.168.0.10

  • Aggressive scan 会尝试去发起攻击,探测可能存在的漏洞

        nmap -sS -A 192.168.0.102

        

  

  • 综合,搜索发现比较全的信息

        nmap -sS -sV -O -p- 192.168.0.107

三、UDP 扫描

  • 使用UDP协议

        nmap -sU -p1-1000 192.168.0.107

四、Nmap reason

  • 主要用于检测nmap是如何检测和做决策的

         Nmap -sn  192.168.0.107 --reason

        

 五、探测防火墙

  • 使用ACK Probing探测防火墙

        nmap -sA 192.168.0.106

        

  • Packet Fragmentation

        Nmap -sS -f 192.168.0.106

        

         使用-f之后,可以发现探测的端口比-sA 要多探测出来两个端口。

  • Specifying MTU

        nmap --mtu 16 192.168.0.106

        

  • IP地址欺骗

        使用一个地址列表扫描:

                nmap -sS -F -D 192.168.0.1,192.168.0.2 192.168.0.106

                

        使用随机的地址扫描:

                nmap -D RND:5 192.168.0.100

                

  • MAC 地址欺骗

                nmap  -sS  --spoof-mac 0 192.168.0.100

                

                nmap  -sS  --spoof-mac Apple 192.168.0.100 模拟某个厂商的MAC

                

 六、扫描时间和性能

  • 时间模板【减少扫描可能花的时间】

        -T<0-5> 数字越大,扫描速度越快,越容易被网络设备探测到。

        -T0 Paranoid

        -T1 Sneaky

        -T2 Polite

        -T3 Normal 【默认值】

        -T4 Aggressive

        -T5 The fastest

        nmap 192.168.0.100 命令默认使用T3.

        nmap -sV -T1 192.168.0.100 可以通过设置不同的时间模板,比较一下速度。

  • 并行扫描【设置并行扫描,加快速度,增加流量】

        nmap -sS -F 192.168.0.100 -T4 --min-parallelism 10 设置最小并行数量

        nmap -sS -F 192.168.0.100 -T4 --max-parallelism 10 设置最大并行数量

  • 设置主机超时时间  --host-timeout <time>  超时就放弃当前扫描的目标

        nmap -Pn 192.168.0.0-100 --host-timeout 20s

        注意:时间太短,可能会错过一些目标,一般建议20s~30s。

  • 延时扫描 (有时可以使用延时扫描绕过IDS检测)

        nmap -sS -p1-100 192.168.0.0-100 -T1 --scan-delay 10s  [由于延时,这种扫描比较花时间]

七、NSE:NmaP Script Engine  [https://nmap.org/book/nse.html#nse-intro]

  • 查看nmap所有的支持的script
  •          ls -al /usr/share/nmap/scripts
    •         

         sudo nmap --script-updatedb 更新最新的脚本库

        

  • 使用script枚举ftp服务

        ls -al /usr/share/nmap/scripts | grep ftp 可以找到所有ftp相关的script

        

        通过名字就知道ftp-anon.nse是探测ftp是否支持匿名登录的脚本

                nmap -p 21 --script ftp-anon 192.168.0.105

                

  • 同时运行多个script【逗号隔开不同的脚本名字或者通配符】

                nmap -p 21 --script ftp-anon, ftp-vsftpd-backdoor 192.168.0.105

                nmap -p 21 --script "ftp-*" 192.168.0.105

                

  • 使用默认的script类 【https://nmap.org/nsedoc/categories/default.html】

        nmap -sC 192.168.0.105 【一般不指定类别,都是用默认的类别】

  • 使用指定的Script类

        nmap --script auth 192.168.0.105

        nmap --script auth,default 192.168.0.105 【使用多种类别的script】

        nmap --script 192.168.0.105 【使用所有的类别的脚本】

八、服务枚举

  • 抓取banner

        sudo nmap -p22,80 --script banner 192.168.0.105

        

        sudo nmap -F -T4 --script banner 192.168.0.105 快速扫描所有的服务的banner

  • whois & Traceroute Geo-location枚举

        ls -al /usr/share/nmap/scripts | grep whois 可以查案支持哪些whois

        nmap -sn --script whois-domain nmap.scanme.org

        nmap -sn --script “whois-*” nmap.scanme.org  使用所有的whois脚本

        nmap -sn --script traceroute nmap.scanme.org

        sudo nmap -sn --script traceroute-geolocation nmap.scanme.org

  • ftp枚举

        ls -al /usr/share/nmap/scripts | grep ftp 查询所有ftp的脚本

        

        nmap -sV -p 21 192.168.0.105 先探测FTP的服务和版本

        

         接下来根据几个script可以发起枚举攻击分析:

        sudo nmap -sS -p 21 --script ftp-anon,tftp-enum,ftp-vsftpd-backdoor 192.168.0.105

        

  • SMTP 枚举

        ls -al /usr/share/nmap/scripts | grep smtp查询所有smtp的脚本

        sudo nmap -p25 --script smtp-commands 192.168.0.103 [查询支持的命令]

        

         sudo nmap -p25 --script smtp-commands --script-args smtp-enum-users.methods={VRFY} 192.168.0.103 枚举潜在的用户

        sudo nmap -p25 --script smtp-vuln-cve2011-1720  192.168.0.103 尝试利用某个CVE

  • DNS枚举

        ls -al /usr/share/nmap/scripts | grep dns查询所有dns的脚本

      sudo nmap -Pn --script dns-brute --script-args dns-brute.thread=5,dns-brute.hostlist=hosts.txt zonetransfer.me

 暴力破解的列表可以参考:

【https://github.com/danielmiessler/SecLists/tree/master/Discovery/DNS】

sudo nmap -Pn --script dns-zone-transfer --script-args dns-zone-transfer.server=nsztml.digi.ninja,dns-zone-transfer.domain=zonetransfer.me,dns-zone-transfer.port=53

  • HTTP枚举

        ls -al /usr/share/nmap/scripts | grep http查询所有http的脚本

        sudo nmap -Pn -sV -p 80 --script http-methods --script-args http-methods.test=all nmap.scanme.org  [枚举支持的Method,效果和发送HTTP的OPTIONS方法差不多,如果防火墙禁用OPTIONS,就不能用OPTIONS了。]

        

        sudo nmap -F -sV -T5 192.168.0.103  【先看一下是否有http服务】

        

        sudo nmap -sV -p 80 --script http-enum 192.168.0.103 [枚举服务端的路径]

        

        nmap -Pn -p 80,443 --script http-waf-detect,http-waf-fingerprint  192.168.0.103 [探测waf]

  • SMB枚举

        ls -al /usr/share/nmap/scripts | grep smb查询所有smb的脚本

        nmap -p 445 --script smb-os-discovery 192.168.0.103    [检测OS类型]

        nmap -p 445 --script smb-enum-shares 192.168.0.103   [检测所有的smb共享路径]

  • MySQL枚举

        ls -al /usr/share/nmap/scripts | grep mysql查询所有mysql的脚本

        nmap -p 3306 --script mysql-info 192.168.0.103 [获得mysql的信息]

        

        nmap -p 3306 --script mysql-enum 192.168.0.103 [获得mysql的账号信息]

        nmap -p 3306 --script mysql-empty-password 192.168.0.103 [检测mysql的账号是否有空密码]

        

        nmap -p 3306 --script mysql-brute --script-args mysql-brute.threads=20 192.168.0.103 [暴力破解mysql的账号和密码,如果不指定]

  • 漏洞扫描

ls -al /usr/share/nmap/scripts | grep vulners查询所有漏洞的脚本

也可以访问https://github.com/vulnersCom/nmap-vulners获取nmap支持的漏洞列表的脚本。

sudo nmap -sV -p21-8080 --script vulners 192.168.0.103 [根据端口枚举相关的漏洞]

 获得CVE之后,可以通过https://vulners.com/cve/CVE-2012-1667 ,获得CVE的详细信息。

九、WEBmap 

  1. 是一个基于Web的工具,可以发起nmap扫描,也可以将nmap的扫描结果以图形化显示以及生成报告,具体可以参考一下网站https://hub.docker.com/r/reborntc/webmap

        

  • 3
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值