一、工具简介
说明:
这是一款基于主机的漏洞扫描工具,采用多线程确保可以快速的请求数据,采用线程锁可以在向sqlite数据库中写入数据避免database is locked的错误,采用md5哈希算法确保数据不重复插入。
本工具查找是否有公开exp的网站为shodan,该网站限制网络发包的速度,因而采用了单线程的方式,且耗时较长。
功能:
查找主机上具有的CVE
查找具有公开EXP的CVE
起因:
因为需要做一些主机漏洞扫描方面的工作,因而编写了这个简单的工具。之前也查找了几款类似的工具,如下:
vulmap:
vulmon开发的一款开源工具,原理是根据软件的名称和版本号来确定,是否有CVE及公开的EXP。这款Linux的工具挺好用,但是对于Windows系统层面不太适用。
windows-exp-suggester:
这款和本工具的原理一样,尝试使用了之后,发现它的CVEKB数据库只更新到2017年的,并且没有给出CVE是否有公开的EXP信息。
基于以上所以写了这个简单的工具,该项目在https://github.com/chroblert/WindowsVulnScan
原理:
- 搜集CVE与KB的对应关系。首先在微软官网上收集CVE与KB对应的关系,然后存储进数据库中
- 查找特定CVE网上是否有公开的EXP
- 利用powershell脚本收集主机的一些系统版本与KB信息
- 利用系统版本与KB信息搜寻主机上具有存在公开EXP的CVE
参数:
-h, --help show this help message and exit
-u, --update-cve 更新CVEKB数据
-U, --update-exp 更新CVEEXP数据
-C, --check-EXP 检索具有EXP的CVE
-f FILE, --file FILE ps1脚本运行后产生的.json文件
下载地址:https://github.com/chroblert/WindowsVulnScan
二、使用教程
1、首先运行powershell脚本KBCollect.ps收集一些信息
在cmd中输入powershell后,才可以运行该脚本,如下图所示:
KBCollect.ps脚本运行结束后,会在当前目录生成一个KB.json文件,该文件详细描述当前操作系统的版本信息与已经打过的漏洞补丁信息,如下图所示:
2、运行python脚本cve-check.py -u 创建CVEKB数据库(电脑需要安装python3环境)
3、运行python脚本 cve-check.py -U 更新CVEKB数据库中的hasPOC字段(第一次更新的话,时间会很长,1-2小时内)
4、运行python脚本 cve-check.py -C -f KB.json查看操作系统打的补丁,以及存在可进行漏洞利用的公开EXP漏洞,如下:
目标网站存在两个CVE漏洞,并且网上已有对应的EXP