/CVE-jiankong

CVE监控

Primary LanguagePython

前言

最近开始想慢慢复现一些CVE,那么从获取最新的CVE开始

主要包括以下几个方面。

  1. 获取最新的CVE列表和详情 主要采用了python的requests模块和BeautifulSoup模块。
  2. 将最新的CVE信息存入数据库 数据库使用了Mongodb,采用了pymongo模块。
  3. 通过邮件发送最新的CVE信息 发送邮件采用了smtplib模块。
  4. 定时执行任务 使用了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']

效果