1 引言
CVE 的英文全称是“Common Vulnerabilities & Exposures”公共漏洞和暴露。CVE就好像是一个字典表,为广泛认同的信息安全漏洞或者已经暴露出来的弱点给出一个公共的名称。使用一个共同的名字,可以帮助用户在各自独立的各种漏洞数据库中和漏洞评估工具中共享数据,虽然这些工具很难整合在一起。这样就使得CVE成为了安全信息共享的“关键字”。如果在一个漏洞报告中指明的一个漏洞,如果有CVE名称,你就可以快速地在任何其它CVE兼容的数据库中找到相应修补的信息,解决安全问题。

CVE-Search - 一款根据个大漏洞库数据在本地建立漏洞库并进行查找的工具。具体参见官网: https://www.cve-search.org/
且git链接:https://github.com/cve-search/cve-search

2 所需实验环境
实验所需环境:VMware workstation Pro 15.5.1、Ubuntu 16.04.3、python 3.6.6、Mongodb 3.6.2、Redis 5.0.7。
3 配置流程
以下所需工具如果已安装,则可略过。
3.1 升级python 2.7 到python 3.6.6
首先使用命令
python -V
来查看本机python版本。由于Ubuntu系统自带py2.7,而cve-search所需py版本为python 3.6 或更高,故升级。升级步骤如下:
- 下载源tar包并解压,使用如下命令。
wget http://www.python.org/ftp/python/3.6.6/Python-3.6.6.tgz tar -xzvf Python-3.6.6.tgz若速度过慢,可以现在win下从官网下载好合适的安装包,拖到虚拟机里。
-
使用su命令切换到root,在/usr/local目录下新建一个文件夹python3作为安装位置,使用如下命令。
mkdir /usr/local/python3 -
切换到解压安装包的目录,执行如下命令。
./configure -prefix=/usr/local/python3 -
安装zlib*(首次安装需要转否则会报错),执行如下命令。
sudo apt-get install zlib* -
执行make命令。
make make install -
执行如下命令建立软连接。
mv /usr/bin/python /usr/bin/python_old2 ln -s /usr/local/python3/bin/python3 /usr/bin/python -
执行命令查看当前python版本
python -V显示版本为python3.6.6,成功。
3.2 安装MongoDB 3.6.2
- 首先下载mongodb 3.6.2安装包,之后执行如下命令解压。并将解压包copy到指定目录。
tar -zxvf mongodb-linux-x86_64-3.6.2.tgz mv mongodb-linux-x86_64-3.6.2/ /usr/local/mongodb - MongoDB 的可执行文件位于 bin 目录下,所以可以将其添加到 PATH 路径中:
export PATH=<mongodb-install-directory>/bin:$PATH<mongodb-install-directory> 为你 MongoDB 的安装路径。如本文的 /usr/local/mongodb 。
-
创建数据库目录。
mkdir -p /data/db注意:/data/db是mongodb默认的启动数据库的路径。
-
切换到目录/usr/local/mongodb , 运行mongodb。
./mongod注意:如果你的数据库目录不是/data/db,可以通过 --dbpath 来指定。
-
如果看到
则表示安装成功。接下来使用mongodb后台管理连接一下,进行简单的测试。cd /usr/local/mongodb/bin ./mongo会默认连接到test数据库,由于后台使用JavaScript,故可以执行简单的js语句。
2 + 2返回结果4。安装完成。
3.3 安装Redis 5.0.7
- 首先下载redis安装包,下载地址:http://redis.io/download,下载最新稳定版本。本次使用5.0.7。
- 下载完成之后解压并安装
tar xzf redis-5.0.7.tar.gz cd redis-2.8.17 make - make完后 redis-2.8.17目录下会出现编译后的redis服务程序redis-server,还有用于测试的客户端程序redis-cli,两个程序位于安装目录 src 目录下。接下来启动redis服务,执行如下命令。
cd src ./redis-server - 启动成功。之后打开客户端连接一下,并进行简单的测试。
cd src ./redis-cli - 进行测试
redis> set foo bar OK redis> get foo "bar"若返回值正常,则ojbk。
3.4 配置CVE-Search
- 首先从git上下载源码,https://github.com/cve-search/cve-search,并解压。之后使用如下命令安装pip3(若已安装则可忽略)。
sudo apt-get install python3-pip - 之后使用命令安装cve-search依赖库,
cd cve-search-master/ sudo pip3 install -r requirements.txt注意:
源如果没换到国内可能会安装失败,多试几次就好了,也可以参照https://blog.youkuaiyun.com/fengzhen8023/article/details/82927776将软件源换到国内的。如果不换国内源的话,可能有各种库没装上,后面运行.py文件时根据报错信息手动装一下就可。
-
执行如下命令加载cpe的库。
./sbin/db_mgmt_cpe_dictionary.py -p - 完成后执行命令加载cve的库。
./sbin/db_mgmt_json.py -p
4 cve-search数据库结构
MongoDB数据库的名称是 cvedb,库中包括11个集合:
- cves
- cpe
- cwe
- capec
- ranking
- d2sec
- MITRE Reference Key/Maps
- ms
- exploitdb
- info
- via4 VIA4CVE cross
Redis数据库包括有三个库:
- 10: The cpe (Common Platform Enumeration) cache - source MongoDB cvedb collection cpe
- 11: The notification database - source cve-search
- 12: The CVE reference database is a cross-reference database to CVE ids against various vendors ID - source NVD NIST/MITRE
5 cve-search使用
用法有很多,此处只是简单的列举了一下,更多详细用法参见demo中的readme。
5.1 更新数据库
在3.4中已经填充了cve-search数据库,之后若想更新数据库,可使用以下命令。
./sbin/db_updater.py -v
可以在crontab中运行它,默认情况下,日志记录是在syslog中完成的。
5.2 重新填充数据库
使用如下命令可以删除并重新填充所有数据库。
./sbin/db_updater.py -v -f
5.3 搜索
可以使用search.py搜索数据库
./bin/search.py -p cisco:ios:12.4
./bin/search.py -p cisco:ios:12.4 -o json
./bin/search.py -f nagios -n
./bin/search.py -p microsoft:windows_7 -o html
6 参考资料
https://blog.youkuaiyun.com/liangcha007/article/details/89349012
https://www.runoob.com/mongodb/mongodb-linux-install.html
https://www.runoob.com/redis/redis-install.html
https://github.com/cve-search/cve-search
1550





