前言
大家都知道在平时的漏扫中,AWVS、APPSCAN、Netspark、webspectort等漏扫工具扫描出来的漏洞问题往往存在误报,这时我们就需要进行人工手动验证漏洞,这里我们有两种思路:
一是在漏洞工具中,进行多次的重复测试,AWVS、APPSCAN、Netspark、webspectort中都有重复测试漏洞问题的功能),将得出的多次结果进行分析和统计,确认漏洞是否存在。
二是对于特定的漏洞,例如Java反序列漏洞、struts2 各种漏洞、openssl、httpd远程拒绝服务、IIS短文件名、各种应用软件版本低等等,我们需要进行单点测试。在这些单点测试工具中,我们可使用Nmap帮我们做一些事情,目前的Nmap7脚本库已经支持500多个脚本。
首先我们看下工具安装目录:
Nmap\scripts下脚本文件,我们可以使用txt方式打开
大多文件都介绍了使用方法,我们只需知道这些文件是用来做什么即可
Nmap\nselib\data目录发现
弱口令爆破字典,后期我们可以增强它
#这些脚本主要分为以下几类,在扫描时可根据需要设置--script=类别这种方式进行比较笼统的扫描:
auth: 负责处理鉴权证书(绕开鉴权)的脚本
broadcast: 在局域网内探查更多服务开启状况,如dhcp/dns/sqlserver等服务
brute: 提供暴力破解方式,针对常见的应用如http/snmp等
default: 使用-sC或-A选项扫描时候默认的脚本,提供基本脚本扫描能力
discovery: 对网络进行更多的信息,如SMB枚举、SNMP查询等
dos: 用于进行拒绝服务攻击
exploit: 利用已知的漏洞入侵系统
external: 利用第三方的数据库或资源,例如进行whois解析
fuzzer: 模糊测试的脚本,发送异常的包到目标机,探测出潜在漏洞
intrusive: 入侵性的脚本,此类脚本可能引发对方的IDS/IPS的记录或屏蔽
malware: 探测目标机是否感染了病毒、开启了后门等信息
safe: 此类与intrusive相反,属于安全性脚本
version: 负责增强服务与版本扫描(Version Detection)功能的脚本
vuln: 负责检查目标机是否有常见的漏洞(Vulnerability)
这里我使用了一台虚拟机进行了测试这些部分的脚本
1. 首先我需要先了解下主机有哪些端口
2.发现了一个mysql测试下是否存在空密码(无回显,说明没有空密码)
3.尝试mysql爆破,成功爆破弱口令
4.尝试获取下数据库
5.nmap --script=vuln 192.168.1.109
检查是否存在常见漏洞
发现了部分敏感目录,我们可以人工检查它
发现了一个远程命令执行漏洞
当然,这些命令需要加载的脚本很多执行起来速度很慢,我们可以单独针对某些漏洞进行测试是否存在
例如我们可以进行smb漏洞扫描
我们在使用nmap的时候往往忽视它最强大的NSE脚本扫描功能,在渗透测试中,好好利用nmap及其NSE脚本,往往有意想不到的收获。
公众号:itet_forever
CSDN:http://blog.csdn.net/itest_2016
QQ群:274166295(爱测未来2群)、610934609(爱测未来3群)