大家都知道在平时的漏扫中,AWVS、APPSCAN、Netspark、webspectort等工具扫描出来的漏洞问题往往存在误报,这时就需要我们进行手动验证漏洞,这里有两种思路:
一是在漏洞工具中,进行多次的重复测试(AWVS、APPSCAN、Netspark、webspectort中都有重复测试漏洞问题的功能),将得出的多次结果进行分析和统计,确认漏洞是否存在。
二是对于特定的漏洞,例如Java反序列化漏洞、struts2 漏洞、openssl、httpd远程拒绝服务、IIS短文件名、各种应用软件版本低等等,我们只能使用特定的工具或者结合多种方式进行验证。
本文基于第二种方式,使用nmap的脚本功能对漏洞进行验证。
nmap 的介绍
Nmap是一个网络连接端扫描软件,用来扫描网上电脑开放的网络连接端。确定哪些服务运行在哪些连接端,并且推断计算机运行哪个操作系统(这是亦称 fingerprinting)。它是网络管理员必用的软件之一,以及用以评估网络系统安全。
在长达3.5年之后,Fyodor终于发布了著名开源网络检索工具的最新版本Nmap7。Nmap是最受欢迎的开源网络映射器之一此外,Nmap7这款自动化的扫描器能够轻易检测到Heartbleed、POODLE、FREAK等严重漏洞。Nmap7中对ssl-enum-ciphers(SSL枚举密码)脚本替换了新的实现算法,使得它能够通过枚举SSL/TLS协议版本和密码套件来快速分析TLS连接,它还能够迅速识别部署问题。另外,使用Nmap7能够轻易发现包含漏洞的服务器,Nmap7中包含了对提速和扫描实现的改进。
Nmap的一个鲜为人知的部分是NSE,即Nmap Scripting Engine,这是Nmap最强大和最灵活的功能之一。它允许用户编写(和共享)简单脚本,以自动执行各种网络任务。Nmap内置了全面的NSE脚本集合,用户可以轻松使用,但用户也可以使用NSE创建自定义脚本以满足他们的个性化需求。
使用Nmap-Vulners检测多种漏洞
由于常见的漏洞问题非常多,本文主要介绍漏洞扫描和渗透测试中经常遇到的一些漏洞,并且尝试使用namp 对这些被扫描工具扫描出来的漏洞进行人工手动验证,这些仅是命令,至于如何根据出现的结果进行判断是否有漏洞,这个在结果中很容易看出,例如出现 vulnerable — 有漏洞,not vulnerable — 无漏洞;有结果出来 — 有漏洞,无结果出来 — 无漏洞。
使用NSE脚本很简单。我们所要做的就是将–script参数添加到我们的nmap命令中,并告诉nmap使用哪个NSE脚本。具体有哪些NSE脚本可在nmap的安装目录下的scripts目录下进行查看,打开其中一个nse脚本,里面会有usage和output的说明。
nmap --script <nmap-vulners> -sV -p <port> <target>
参数-sV是绝对必要的。使用-sV,我们告诉Nmap探测版本信息的目标地址。如果Nmap不生成版本信息,则nmap-vulners将没有任何数据来查询Vulners数据库。使用这些NSE脚本时始终使用-sV。<target>替换成验证的目标IP或域名。
1、IIS短文件名泄露漏洞
nmap --script http-iis-short-name-brute -sV -p 80 <target>
2、HTTP.sys远程代码执行漏洞
nmap -sV --script http-vuln-cve2015-1635 <target>
也可使用命令:curl -i URL地址 -H “Range: bytes=0-18446744073709551615”
3、心脏出血漏洞
nmap -p 443 --script ssl-heartbleed <target>
4、SSL POODLE 信息泄露漏洞
nmap -sV -p 443 --version-light --script ssl-poodle <target>
5、验证Mongodb未授权访问漏洞
nmap -p 27017 --script mongodb-info <target>
6、ms-sql暴力爆破
nmap -p 445 -sV --script ms-sql-brute --script-args userdb=user.txt,passdb=pass.txt <host>
7、验证Memcached未授权访问漏洞
nmap -sV --script memcached-info -p 11211 <target>
8、缓慢的http拒绝服务漏洞
nmap --max-parallelism 800–script http-slowloris scanme.nmap.org
9、验证http中开启的methods
nmap -T3 --script http-methods --script-args http.test-all=true,http.url-path=/www.haoshangjia.com
10、验证cve2015-1427 漏洞
nmap --script http-vuln-cve2015-1427 --script-args command=ls <target>
11、验证CVE-2014-0224 ssl-ccs-injection
nmap -Pn --script ssl-ccs-injection <target>
12、验证低安全的 sshv1,sslv2协议
nmap --script sshv1,sslv2 <target>
13、验证ssl-cert证书问题
nmap -v --script ssl-cert <target>
14、验证SSL证书的有限期
nmap -Pn --script ssl-date <target>
15、在网络中检测某主机是否存在窃听他人流量
nmap --script sniffer-detect <target>
16、暴力破解telnet
nmap -p 23 --script telnet-brute --script-args userdb=myusers.lst,passdb=mypwds.lst --script-args telnet-brute.timeout=8s <target>
17、验证telnet是否支持加密
nmap --script telnet-encryption <target>
18、收集VNC信息
nmap --script vnc-info <target>
19、验证Redis未授权访问漏洞
nmap -p 6379 --script redis-info <target>