NMAP参数详解

枫少@KillBoy
枫少@KillBoy
管理员
215
文章
0
粉丝
资源分享346,360字数 2157阅读7分11秒阅读模式
AI智能摘要
还在为看不懂Nmap参数而头疼?其实你缺的不是耐心,而是一份真正清晰、全面又实用的参数指南。本文系统梳理Nmap核心功能:从目标选择、端口扫描到操作系统识别,从服务探测、漏洞检测到NSE脚本实战,涵盖HTTP、SSL、SMB、数据库等常见场景,还详解输出格式与扫描技巧。无论你是网络安全新手还是渗透测试老手,都能快速定位所需命令,提升扫描效率。掌握这些参数,你离真正的信息收集高手只差一步。
— AI 生成的文章内容摘要

目标选择

单个扫描:nmap ip

扫描主机:nmap www.XXXX.com

扫描一系列IP:nmap 192.168.1.1-20

扫描子网:nmap 192.168.1.1/20

从文本文件获得扫描目标:nmap -iL list-of-ips.txt

无ping扫描:常用于防火墙禁止ping的情况:nmap -P0 ip

端口选择

扫描单个端口:nmap -p 端口 ip

扫描一系列端口:nmap -p 1-100 192.168.1.1

扫描100个最常见的端口(快速):nmap -F ip

扫描所有65535端口:nmap -p- ip

扫描指定端口:nmap -p 80,22,3306 ip

操作系统和服务检测

检测操作系统和服务:nmap -A ip

标准服务检测:nmap -sV ip 

激进的服务检测:nmap -sV --version-intensity 5 ip

轻量Banner抓取检测:nmap -sV --version-intensity 0 ip

nmap输出格式

将默认输出保存到文件:nmap -oN outputfile.txt ip

将结果保存为XML:nmap -oX outputfile.xml ip

为方便grep来保存格式:nmap -oG outputfile.txt ip

保存所有格式:nmap -oA outputfile ip

用NSE脚本深入挖掘

使用默认安全脚本扫描:nmap -sV -sC ip

获取脚本的帮助:nmap --script-help=ssl-heartbleed

使用特定的NSE脚本进行扫描:nmap -sV -p 443 –script=ssl-heartbleed.nse ip

用一组脚本进行扫描:nmap -sV --script=smb* ip

使用全部NSE脚本进行扫描:nmap -sV -p- --script=all ip

HTTP服务信息

从HTTP服务收集页面标题:nmap --script=http-title 192.168.1.0/24

获取Web服务的HTTP头:nmap --script=http-headers 192.168.1.0/24

从已知路径查找网络应用程序:nmap --script=http-enum 192.168.1.0/24

检测SSL漏洞问题的主机

Heartbleed测试:nmap -sV -p 443 --script=ssl-heartbleed 192.168.1.0/24

设备扫描

获取ip:host 网址
            host 域名
            dig 域名

是否存活:ping ip
                nmap -sP --script discovery ip

扫描在线主机:nmap -sP 192.168.1.*

探测IP协议:nmap -PO ip

获取系统概况:(暴力形式,很容易被发现)nmap -A ip

探测是否有【】防火墙:nmap -PN ip

探测防火墙规则:nmap -sA ip

TCP Window扫描:nmap -sw ip

禁止反向域名解析:nmap -n -sL 192.168.1.1/24

FIN扫描:(FIN扫描方式用于识别端口是否关闭,收到RST回复说明该端口关闭,否则说明是open或filtered状态)nmap -sF ip

TCP扫描:nmap -sT -p 1-65535 -Pn ip
               nmap -sT -p 1-65535 -Pn 192.168.1.1-254
               nmap -sL 192.168.1.0/24

ARP Ping扫描:nmap -PR ip

SYN扫描:nmap -sS -p- Pn ip

TCP SYN Ping扫描:nmap -PS -v www.xxx.com

UDP扫描:(UDP扫描费时,所以去掉-p-,默认扫描)nmap -sU ip

Xmas扫描:nmap -sX -p1-65535 -Pn ip

Null扫描:nmap -sN -p 1-65535 -Pn ip

扫描所选端口 - 忽略发现:nmap -Pn -F ip

绕开鉴权:nmap --script=auth 192.168.56.*

探测操作系统:nmap -O ip

探测软件版本:nmap -V ip
                       nmap -sTV -p- -Pn ip

设置扫描强度强度在0~9之间,默认强度为7:nmap -V ip
                                                                         nmap -sTV -p- -Pn ip

轻量级扫描:nmap -sV –version-light www.xxx.com

重量级扫描:nmap -sV –version-all www.xxx.com

版本探测:nmap -sV -A www.xxx.com

对指定的目标进行系统探测:Nmap -osscan-limit www.xxx.com

推测系统识别:Nmap -osscan-guess/–fuzzy www.xxx.com

获取详细版本信息:nmap -sV –version-trace www.xxx.com

全端口版本探测:nmap -allports -A www.xxx.com

RPC扫描:Nmap -sR www.xxx.com

调整并行扫描组的大小(默认为5-1024)最小的组:nmap –min-hostgroup 30 172.20.62.1/24

调整并行扫描组的大小(默认为5-1024)最大的组:nmap –max-hostgroup 50 172.20.62.1/24

探查局域网内更多服务:nmap -n --script=broadcast ip

碎片化:nmap -f ip
             nmap --mtu 16 ip

诱饵:nmap –D RND:10 TARGET
         nmap –D decoy1,decoy2,decoy3 target

MAC地址欺骗:nmap -sT -PN –spoof-mac aa:bb:cc:dd:ee:ff target
                        nmap -spoof-mac Scisio ip
                        -spoof-mac 可以根据厂商名字伪造不同mac地址

发送间隔时间控制:nmap -scan_delay 5ms ip

发送错误校验:nmap --badsum target

Http方法:nmap -p80,443 --script http-methods scanme.nmap.org

发现文件:nmap -sV --script http-enum ip

判断是否使用默认端口:nmap -sV -script=smtp-strangeport ip

利用第三方数据库:nmap --script external ip

获得PHP版本信息:nmap -sV -script=http-php-version ip

如果想对一个基于WordPress的web站点进行渗透测试,可以使用这个脚本:

nmap -sV -script=http-php-version ip
1.http-wordpress-plugins
2.http-wordpress-enum
3.http-wordpress-brute

用户发现IP地址黑名单:nmap -sn ip --script dns-blacklist

简单暴力猜解:nmap --script=brute 192.168.56.*

检查是否存在漏洞:nmap --script=vuln 192.168.56.*

路由跟踪:nmap --traceroute -sP ip

SCTP INIT Ping扫描:nmap -PY -v ip

按VNC扫描

检查vnc bypass:nmap  --script=realvnc-auth-bypass ip

检查vnc认证方式:nmap  --script=vnc-auth  ip

获取vnc信息:nmap  --script=vnc-info  ip

按SMB扫描

smb破解:nmap  --script=smb-brute.nse ip 

smb字典破解:nmap --script=smb-brute.nse --script-args=userdb=/var/passwd,passdb=/var/passwd ip

smb已知几个严重漏洞:nmap  --script=smb-check-vulns.nse --script-args=unsafe=1 ip

查看共享目录:nmap -p 445  --script smb-ls --script-args ‘share=e$,path=/,smbuser=test,smbpass=test’ ip

查询主机一些敏感信息:nmap -p 445 -n –script=smb-psexec --script-args= smbuser=test,smbpass=test ip

查看会话:nmap -n -p445 --script=smb-enum-sessions.nse --script-args=smbuser=test,smbpass=test ip

系统信息:nmap -n -p445 --script=smb-os-discovery.nse --script-args=smbuser=test,smbpass=test ip

按Mssql扫描

猜解mssql用户名和密码:

nmap -p1433 --script=ms-sql-brute --script-args=userdb=/var/passwd,passdb=/var/passwd ip

xp_cmdshell 执行命令:

nmap -p 1433 --script ms-sql-xp-cmdshell --script-args mssql.username=sa,mssql.password=sa,ms-sql-xp-cmdshell.cmd="net user" ip

dumphash值:

nmap -p 1433 --script ms-sql-dump-hashes.nse --script-args mssql.username=sa,mssql.password=sa  ip

按Mysql扫描

扫描root空口令:nmap -p3306 --script=mysql-empty-password.nse ip

列出所有mysql用户:nmap -p3306 --script=mysql-users.nse --script-args=mysqluser=root ip

支持同一应用的所有脚本扫描:nmap --script=mysql-* ip

按Oracle扫描

oracle sid扫描:nmap --script=oracle-sid-brute -p 1521-1560 ip

oracle弱口令破解:

nmap --script oracle-brute -p 1521 --script-args oracle-brute.sid=ORCL,userdb=/var/passwd,passdb=/var/passwd ip

信息收集扫描

ip信息搜集:nmap –script ip-geolocation-* www.xxx.com

获得IP地址的信息:nmap --script=asn-query,whois,ip-geolocation-maxmind 192.168.1.0/24

whois查询:nmap –script whois www.xxx.com

ip反查:nmap -sn –script hostmap-ip2hosts www.xxx.com

信息搜集:nmap –script dns-brute www.xxx.com

列举dns服务器的主机名:nmap –script dns-brute –script-args dns-brute.domain=xxx.com

检索系统信息:nmap -p 445 ip –script membase-http-info

后台打印机服务漏洞:nmap –script smb-security-mode.nse -p 445 ip

smb漏洞扫描:nmap –script smb-check-vulns.nse -p 445 ip//未验证命令

通过snmp列举windows服务:nmap -sU -p 161 –script=snmp-win32-services ip

通过snmp列举windows账户:nmap -sU -p 161 –script=snmp-win32-users ip

http信息搜集,对http版本进行探测:nmap -sV -p 80 www.xxx.com

http头信息探测:nmap -p 80 –script=http-headers www.xxx.com

http目录结构探测:nmap -p 80 –script=http-sitemap-generator www.xxx.com

枚举ssl密钥ssl-enum-ciphers,SSL(Secure Sockets Layer,安全套接层,TLS(Transport Layer Security,传输层安全):nmap -p 443 –script=ssl-enum-ciphers www.xxx.com

服务器支持的密钥算法SSH服务密钥信息探测:

nmap -p 22 –script ssh-hostkey –script-args ssh_hostkey=full 127.0.0.1

其他脚本

发现网关:Nmap --script=broadcast-netbios-master-browser ip

telnet破解:nmap -sV --script=telnet-brute ip

dos攻击:nmap --script http-slowloris --max-parallelism 400 ip

破解rsync:nmap -p 873 --script rsync-brute --script-args 'rsync-brute.module=www' ip

informix数据库破解:nmap --script informix-brute -p 9088 ip

pgsql破解:nmap -p 5432 --script pgsql-brute ip

snmp破解:nmap -sU --script snmp-brute ip

检查http方法:nmap --script=http-methods.nse ip

查看本地路由与接口:nmap -iflist

指定网口与ip地址:nmap -e eth0 ip

产生随机ip地址:

nmap -iR 1200000 -sL -n | grep “not scanned” | awk ‘{print $2}’ | sort -n | uniq >! tp; head -25000000 tp >! tcp-allports-1M-IPs; rm tp

扫描思科路由器:思科路由器会在上述端口中运行了常见的服务。列举出上述端口开放的主机,可以定位到路由器设备可能的IP地址及端口状态。

nmap -p1-25,80,512-515,2001,4001,6001,9001 10.20.0.1/16

扫描路由器TFTP:大多数的路由器都支持TFTP协议(简单文件传输协议),该协议常用于备份和恢复路由器的配置文件,运行在UDP 69端口上。使用上述命令可以探测出路由器是否开放TFTP。

nmap –sU –p69 –nvv target

扫描路由器操作系统:与通用PC扫描方式类似,使用-O选项扫描路由器的操作系统。-F用于快速扫描最可能开放的100个端口,并根据端口扫描结果进一步做OS的指纹分析。

nmap -O -F -n 192.168.1.1

显示网络上共有多少台 linux 及 Win 设备:

nmap -F -O 192.168.1.1-255 | grep "Running: " > /tmp/os; echo "$(cat /tmp/os | grep linux | wc -l) Linux device(s)"; echo "$(cat /tmp/os | grep Windows | wc -l) Window(s) devices"

技巧

发送以太网数据包:nmap --send-eth ip

网络层发送:nmap --send-ip ip

假定拥有所有权:nmap --privileged ip

设置调试级别:nmap -d 1 ip

级别范围1-9,9为最高级,产生的数据最多,跟踪发送接受的报文:(-p指定端口范围,减少产生的报文):nmap --packet-trace -p 20-30 ip

列举接口和路由:(多用于调试路由):nmap -iflist ip

指定网络接口:指定从en0发送数据:nmap -e en0 ip

探测防火墙:nmap --script=firewalk --traceroute ip

端口状态

开放:Open

关闭:Closed

可能被过滤,可能网络阻塞:Filtered

可以访问,但未知端口处于开放还是关闭状态:Unfiltered

能确定端口事开放被过滤:Open|Filtered

不能确定端口事关闭还说被过滤:Closed|Filtered

https://www.freebuf.com/sectool/264941.html

 
枫少@KillBoy
评论  34  访客  34
    • 暗夜航行者
      暗夜航行者 0

      这个无ping扫描参数很实用,防火墙环境下必备

      • 咯吱鹅
        咯吱鹅 0

        扫描所有端口的命令记下了,下次排查用得上

          • 辐射毒蝎
            辐射毒蝎 0

            @ 咯吱鹅 全端口扫描太耗时了,一般先-F快速过一遍再细扫

          • 瓷杯
            瓷杯 0

            -sV参数经常用,但版本强度设置还没试过

            • 观自在
              观自在 0

              有人试过在云服务器上用这些参数吗?

              • 罪骸使者
                罪骸使者 0

                之前用nmap扫内网被安全部门找上门了😂

                  • 神经回廊
                    神经回廊 0

                    @ 罪骸使者 hh,内网乱扫确实容易触发警报,我们组新人上周刚被通报

                    • 玄龟负山
                      玄龟负山 0

                      @ 罪骸使者 MAC地址欺骗那个参数试了下,-spoof-mac后面直接跟Dell这种品牌名就行

                    • 甜豆小奶包
                      甜豆小奶包 1

                      -oA输出格式最方便,三种格式都有了

                        • 社交雾
                          社交雾 0

                          @ 甜豆小奶包 确实,一键生成三种文件省事儿。

                        • 小猴子猴猴
                          小猴子猴猴 0

                          NSE脚本这块看得有点懵,有没有更基础的教程?

                          • 无双剑姬
                            无双剑姬 0

                            轻量级扫描和重量级扫描具体差在哪?

                            • 花开处
                              花开处 0

                              这些参数组合起来用效果确实不错

                                • SolitaryDawn
                                  SolitaryDawn 0

                                  @ 花开处 我也常这么配合,省时又全面。

                                • 靛蓝星空
                                  靛蓝星空 0

                                  碎片化扫描对性能提升明显吗?

                                  • 留声机
                                    留声机 0

                                    轻量是只查常见服务banner,重量级会发一堆探测包把版本号都扒出来

                                    • 绣娘小翠
                                      绣娘小翠 0

                                      -sC默认脚本有时候会误报,得手动筛结果

                                      • 格局打开
                                        格局打开 0

                                        有人用–script=vuln扫出过真实漏洞吗?还是纯鸡肋?

                                          • 虚无之音
                                            虚无之音 1

                                            @ 格局打开 我试过一次,真抓到个未打补丁的MySQL,算是有用。

                                          • Driftlull
                                            Driftlull 1

                                            这参数列表看着全,但实际用的时候经常记混-p和-P的区别🤔

                                            • 蝴蝶公主
                                              蝴蝶公主 0

                                              FIN扫描在高防环境下基本没用,回包全被吃了

                                              • Nebulashimmer
                                                Nebulashimmer 0

                                                前几天刚用http-enum扫到一个测试站的备份目录,运气爆了

                                                • 悠闲时光
                                                  悠闲时光 0

                                                  云服务器上跑nmap容易被限流,建议加–scan-delay

                                                  • 木窗午后
                                                    木窗午后 0

                                                    MAC地址欺骗那块写得有点模糊,具体怎么指定厂商名?

                                                    • 九幽阴魂
                                                      九幽阴魂 0

                                                      这几个参数挺好用的,直接copy就行。

                                                      • 黑洞观察者
                                                        黑洞观察者 0

                                                        有些选项写得太密了,看着眼花。

                                                        • 社交迷糊星
                                                          社交迷糊星 0

                                                          -sV的版本强度到底该选几?默认7合适吗?

                                                          • 印雪无痕
                                                            印雪无痕 0

                                                            如果想省流量,-F配合–max-retries 1能更快把常见端口扫完。

                                                            • Silentwander
                                                              Silentwander 0

                                                              前几天在公司内网用了–script=vuln,真发现了一个老旧服务的漏洞。

                                                              • 乐观小太阳
                                                                乐观小太阳 0

                                                                看到有人把–script=ssl-heartbleed直接丢进批量扫描,结果服务器全挂了,真是血的教训,大家慎用。

                                                                • Bolt兔
                                                                  Bolt兔 0

                                                                  -Pn真是救命。

                                                                  • 摄魂琴师
                                                                    摄魂琴师 0

                                                                    那如果目标是云上有防火墙的机器,-Pn配合–scan-delay有必要吗?

                                                                    • 小岛日和
                                                                      小岛日和 0

                                                                      误报倒是常有,别全信。

                                                                      • 乔巴
                                                                        乔巴 1

                                                                        大家一起分享一下最常用的脚本组合吧,顺便来点笑料 😂

                                                                      匿名

                                                                      发表评论

                                                                      匿名网友

                                                                      拖动滑块以完成验证