Nmap 常用命令总结
获取IP
host 网址
host 域名
dig 域名
 
是否存活
ping ip
nmap -sP --script discovery ip  //可以得到更详细的信息
 
扫描在线主机
nmap -sP 202.193.64.*
 
探测IP协议
nmap -PO ip
 
获取系统概况
nmap -A ip  //暴力形式,很容易被发现
 
探测防火墙
探测是否有防火墙
nmap -PN ip
探测防火墙规则
nmap -sA ip
TCP Window扫描
nmap -sw ip
FIN扫描
nmap -sF ip  //FIN扫描方式用于识别端口是否关闭,收到RST回复说明该端口关闭,否则说明是open或filtered状态
 
TCP扫描
nmap -sT -p- -Pn ip
nmap -sT -p- -Pn 202.193.64.1-254  //所有子网TCP扫描,费时
nmap -sL 192.168.1.0/24
 
SYN扫描
nmap -sS -p- Pn ip
 
UDP扫描
nmap -sU ip  //UDP扫描费时,所以去掉-p-,默认扫描
 
Xmas扫描
nmap -sX -p- -Pn ip
 
Null扫描
nmap -sN -p- -Pn ip
 
绕开鉴权
nmap --script=auth 192.168.56.*
 
探测操作系统
nmap -O ip
 
探测软件版本
nmap -V ip
nmap -sTV -p- -Pn ip
 
探查局域网内更多服务
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 –p 80,443 --script http-methods xxx.com
 
发现文件
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站点进行渗透测试,可以使用以下脚本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.*
 
按应用服务扫描
vnc扫描
检查vnc bypass
nmap --script=realvnc-auth-bypass ip
检查vnc认证方式
nmap --script=vnc-auth ip
获取vnc信息
nmap --script=vnc-info 192.168.56.x
 
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
 
其他一些比较好用的脚本
发现网关
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
 
PostgreSQL破解
nmap -p 5432 --script pgsql-brute ip
 
SNMP破解
nmap -sU --script snmp-brute ip
 
检查http方法
nmap --script=http-methods.nse 192.168.137.4
 
其他用法
查看本地路由与接口
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
 
扫描路由器
扫描思科路由器
nmap -p1-25,80,512-515,2001,4001,6001,9001 10.20.0.1/16  //思科路由器会在上述端口中运行了常见的服务。列举出上述端口开放的主机,可以定位到路由器设备可能的IP地址及端口状态
扫描路由器TFTP
nmap –sU –p69 –nvv target  //大多数的路由器都支持TFTP协议(简单文件传输协议),该协议常用于备份和恢复路由器的配置文件,运行在UDP 69端口上。使用上述命令可以探测出路由器是否开放TFTP
扫描路由器操作系统
nmap -O -F -n 192.168.1.1  //与通用PC扫描方式类似,使用-O选项扫描路由器的操作系统。-F用于快速扫描最可能开放的100个端口,并根据端口扫描结果进一步做OS的指纹分析。
 
显示网络上共有多少台 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"