NMAP参数详解
2021-03-03 12:05:09 Author: www.freebuf.com(查看原文) 阅读量:154 收藏

目标选择

单个扫描: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
如有侵权请联系:admin#unsafe.sh