前言
最近开始想慢慢复现一些CVE,那么从获取最新的CVE开始
主要包括以下几个方面。
- 获取最新的CVE列表和详情 主要采用了python的requests模块和BeautifulSoup模块。
- 将最新的CVE信息存入数据库 数据库使用了Mongodb,采用了pymongo模块。
- 通过邮件发送最新的CVE信息 发送邮件采用了smtplib模块。
- 定时执行任务 使用了linux的crontab来实现。
使用
安装依赖库
pip install pymongo
pip install requests
pip install beautifulsoup4
启动mongodb
mkdir /var/data/ #数据存储位置
mongod --port 65521 --dbpath /var/data --logpath /tmp/mongodb.log --fork --logappend --bind_ip 127.0.0.1 &
mongo 127.0.0.1:65521/mydb
db.createUser({user:'xxx',pwd:'xxx',roles:[{role:'dbOwner',db:'mydb'}]})
加入定时计划
创建1.sh,内容如下,记得手工创建/tmp/log/cvemonitor.txt
#!/bin/bash
/usr/bin/python /path/to/CVE-Monitor.py >> /tmp/log/cvemonitor.txt
crontab -e
在末尾加入0 7 * * * /bin/bash /path/to/1.sh
添加关键字
可以在keywords中添加你想抓取的CVE关键字,例如
keywords = ['WordPress','Struts','Jboss','Remote Code Execution Vulnerability','XSS','SQL injection','injection','RCE','java','PHP','Linux kernel','CSRF','SSRF','CMS','SQL command','XXE','File Content Disclosure']
也可以暴力抓取
keywords = ['a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z','A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z']