nmap tips

nmap 是一款老牌网络安全扫描工具,它的年纪和中国风味美食老干妈差不多,老干妈始于96年,nmap始于97年~

出道虽早,但Nmap的江山地位稳固的。在大多数新手印象中它是一款网络端口扫描工具,渗透测试的时候用于探测目标网站服务器对外开放的服务端口,根据端口指纹信息发起针对性的渗透攻击。

说到渗透测试,在安全公司的渗透测试项目中,客户会对渗透测试的范围和测试程度做限制,防止不可控的情况发生,突然想起一句话,渗透不规范,亲人两行泪~ 所以渗透测试一定要把握好度,Nmap的漏洞插件大部分是验证问题所在,没有类似Getshell及拒绝服务攻击等影响系统运行的动作,下面是自己平时用到参数分享。

一、常用参数

  -A -sV  (-A 综合扫描   -sV 版本信息)
  -sP     (主机存活探测) 
  -sS     (SYN/ACK或RST判断端口开放)
  -iflist (列出网卡)
  --unprivileged  (连接VPN无法扫描时,使用此参数 -e 指定网卡)
  -iL     (扫描IP列表)
  --script http-waf-detect (检测WAF)
  --proxyfile proxies.txt  (使用代理)

二、信息收集

  --script=http-email-harvest  (电子邮件收集)
  --script hostmap-ip2hosts    (IP反查域名)
  --script dns-brute --script-args dns-brute.domain=test.com,dns-brute.threads=5  (域名枚举)

三、Web扫描

  -sV -T4 --script http*,default  (目录扫描)
  -sV --script=vulscan (漏洞扫描,需要下载 https://github.com/scipag/vulscan)
  --script http-dombased-xss.nse  (DOMXSS扫描)
  --script=http-config-backup     (备份文件扫描)
  -sV --script=http-sql-injection (SQL注入扫描)
  --script http-xssed.nse         (XSS扫描)

四、流行漏洞验证

  微软永恒之蓝漏洞[MS17-010]
-sC -p445 --open --max-hostgroup 3 --script smb-vuln-ms17-010.nse

微软远程代码执行漏洞[MS08-067]
--script smb-vuln-ms08-067 -p445 

微软远程代码执行漏洞[MS12-020]
--script rdp-vuln-ms12-020 -p 3389 

GNU Bash 环境变量远程命令执行漏洞(CVE-2014-6271)
-sV -p- --script http-shellshock 
-sV -p- --script http-shellshock --script-args uri=/cgi-bin/bin,cmd=ls 

HTTP.sys remote code execution vulnerability (MS15-034)
--script ms15-034 -n -p 80 | grep Vulnerable -B4 | sed -n 's/.*for (.*)$/1/p'

IIS短文件名泄露
-p80 --script http-iis-short-name-brute 

SSL心脏滴血漏洞(CVE-2014-0160)
-p 443 --script ssl-heartbleed

WebLogic wls9-async反序列化漏洞 (CNVD-C-2019-48814)
-sV -p 7001 --script weblogic-cnve-c-2019-48814

Apache Struts2 远程代码执行
--script http-vuln-cve2017-5638 
--script http-vuln-strust2-s16-s17
--script http-vuln-cve2017-9791 (s2-048 https://github.com/r3naissance/nse/blob/7a780180c86df774d5a085519a814c82e8dc1e05/http-vuln-cve2017-9791.nse)

五、内网系列

Apache hadoop
--script hadoop-datanode-info.nse -p 50075
--script hadoop-jobtracker-info [--script-args=hadoop-jobtracker-info.userinfo] -p 50030 host
--script hadoop-datanode-info.nse -p 50075 
--script hadoop-secondary-namenode-info -p 50090
--script hadoop-tasktracker-info -p 50060
--script hbase-master-info -p 60010
  --script hbase-region-info -p 60030 host
  
Samba服务
--script smb-vuln-cve-2017-7494 -p 445

SMB服务
--script smbv2-enabled.nse -p445  (检测是否开启smb协议2)
-sS -sV --script smb-enum-shares.nse,smb-os-discovery.nse -p445,139 192.168.1.0/24  (共享查看)
-sV --script=smb-ls 
--script smb-system-info.nse -p445 (系统信息)
--script smb-enum-users.nse -p445  (系统用户)
--script smb-psexec.nse --script-args=smbuser=,smbpass=[,config=] -p445 

NFS服务 (1025,111,2049端口)
-sV --script=nfs-ls 
-sV --script=nfs-showmount 
-sV --script=nfs-statfs 

Redis服务
-p 6379 --script redis-info
-p 6379 --script redis-brute

SNMP服务
-sU -p 161 --script=snmp-win32-users (通过snmp枚举windows用户)
-sU -p 161 --script=snmp-win32-services (通过snmp枚举windows服务)
-sU -p 161 --script=snmp-interfaces
-sU -p161 --script snmp-brute --script-args snmplist=community.lst 
-sU -p161 --script snmp-brute --script-args snmplist=snmpcommunities.lst
-sU -p 161 --script=snmp-netstat
-sU -p 161 --script=snmp-processes
-sU -p 161 --script=snmp-sysdescr

Axis服务
-p80 --script http-axis2-dir-traversal 
-p80,8080 --script http-axis2-dir-traversal --script-args 'http-axis2-dir-traversal.file=../../../../../../../etc/issue' 

RMI服务
--script=rmi-dumpregistry.nse -p 1098

Rsync
-p 873 --script rsync-brute --script-args 'rsync-brute.module=www'

六、数据库系列

mongodb
-p 27017 --script mongodb-databases
-p 27017  --script mongodb-brute (口令爆破)

MySQL
-p3306 --script=mysql-empty-password.nse  (检查空口令)
-sV --script=mysql-users   (枚举MySQL用户) 

MSSQL
-p 1433 --script ms-sql-info --script-args mssql.instance-port=1433  (探测mssql数据库版本信息)
-p 1433 --script ms-sql-brute --script-args userdb=customuser.txt,passdb=custompass.txt (口令爆破)
-p 1433 --script ms-sql-empty-password --script-args mssql.instance-all (探测空口令)
-p 1433 --script ms-sql-empty-password (探测空口令)

PostgreSQL
-p 5432 --script pgsql-brute (口令爆破)

Oracle
--script oracle-brute -p 1521 --script-args oracle-brute.sid=ORCL  (oracle爆破)
oracle-brute-stealth(CVE-2012-3137)
--script oracle-brute-stealth -p 1521 --script-args oracle-brute-stealth.sid=ORCL