golang漏洞监控工具——CRUSH V2.0发布

admin 2024年3月6日13:08:49评论29 views字数 2871阅读9分34秒阅读模式

CRUSH是一款漏洞监控工具,用来监控每日漏洞更新并通过邮件推送

888888,adPPYba,8b,dPPYba,8888,adPPYba,88,dPPYba,a8"     ""  88P'   "Y8  8888  I8[""88P'    "8a8b888888`"Y8ba,   88       88"8a,   ,aa  88          "8a,,a88  aa    ]8I8888`"Ybbd8"'  88           `"YbbdP'Y8  `"YbbdP"'  88       88

🎯功能

监控多个漏洞平台每日更新,将数据存储到本地数据库,并通过邮件进行推送。

项目地址:https://github.com/leesinz/crush

: CRUSH aims to crawl historical vulnerability data from major platforms and monitor daily updates. (github.com)

漏洞源

• Exploit-db• Vulhub• Github• Seebug• Metasploit• 0day.today(V2.0新增)• PacketStorm(V2.0新增)

🪄安装

工具只能在linux上运行,建议为海外VPS,防止出现github等连接不通的情况。

Go

•Go[1] version 1.20 或以上版本.

Github

git clone https://github.com/leesinz/crush.git
cd crush/srcgo build./crush   or go run main.go

🔧配置

config.yaml

database:
  db_port: 3306
  db_username: "root"
  db_password: "password"
  name: "db_name"

github:
  github_token: ghp_xxx
  blacklist:
    - aaa
    - bbb

msf:
  #the folder used for git pull msf
  msf_dir: "/root/vul_info/msf/"

vulhub:
  #the folder used for git pull vulhub
  vulhub_dir: "/root/vul_info/vulhub/"

email:
  smtp_server: smtp.163.com
  smtp_port: 25
  username: [email protected]
  #授权码,不是邮箱密码
  password: xxxxxxxx
  from: [email protected]
  to:
    - [email protected]
    - [email protected]

mysql配置

sudo apt-get update
sudo apt-get install mysql-server
sudo mysql_secure_installation

设置密码并创建数据库,将配置信息同步到config.yml。

如果遇到

Error connecting mysql database:%!(EXTRA *mysql.MySQLError=Error 1698 (28000): Access denied for user 'root'@'localhost', string=)

重置密码即可:

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'newpasswd';

安装google-chrome

wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb
sudo apt install ./google-chrome-stable_current_amd64.deb

显示版本号即为安装成功,如下:

root@iZt4ndirp1045jgp7cqswkZ:~# google-chrome -versionGoogleChrome121.0.6167.139

快速开始

环境配置

•go环境•mysql环境•config.yaml配置•google-chrome配置

配置完成后即可开始使用。

golang漏洞监控工具——CRUSH V2.0发布

初始化

初次使用时,先使用 init 参数,进行数据库创建,msf&vulhub的本地git pull等操作。

go run main.go init

golang漏洞监控工具——CRUSH V2.0发布

更新监控

在完成初始化后,后续使用monitor参数监控更新即可,会通过邮件将更新内容进行推送。

go run main.go monitor

golang漏洞监控工具——CRUSH V2.0发布

crontab请自行配置,代码中未设置定时任务或循环等。

例如:

0 9 * * * cd /root/crush/src && /usr/local/go/bin/go run main.go monitor

会在每天9点推送前一天的更新内容。

导入历史数据(可选)

在V2.0版本中不再爬取历史数据,如果需要历史数据,可以直接通过.sql文件(存放在sql文件夹下)将历史数据导入数据库。

exploit_db.sql,seebug_db.sql为全量历史数据,github_db.sql为2018至今的CVE数据,每个CVE最多五条。

以exploit-db为例,命令如下:

mysql -u username -p database_name < exploit_db.sql

💡匹配逻辑

github

golang漏洞监控工具——CRUSH V2.0发布

metasploit&vulhub

golang漏洞监控工具——CRUSH V2.0发布

else

其他几个漏洞平台匹配逻辑类似,直接访问exploit页面,进行日期匹配,并且解析poc,cve等等信息写入数据库。

😎运行演示

邮件模板

golang漏洞监控工具——CRUSH V2.0发布

在V1.0的基础上新增了两个漏洞源,github部分格式保留,防止同一个CVE有多个不同POC时影响观感,其他数据源的漏洞名称加上了超链接,点击即可跳转到漏洞POC网站,更加方便。

数据库结构

exploit-db

包含了edb官网存储的所有属性值:

golang漏洞监控工具——CRUSH V2.0发布

github

存储了CVE编号,nvd官网的漏洞描述,CVSS2,CVSS3,CNA评分,更新时间以及poc地址:

golang漏洞监控工具——CRUSH V2.0发布

seebug

存储了官网ID,提交时间,漏洞严重程度,漏洞名称,CVE号以及是否有POC:

golang漏洞监控工具——CRUSH V2.0发布

0day.today

存储了官网ID,漏洞名称,CVE号,POC地址等信息:

golang漏洞监控工具——CRUSH V2.0发布

packetstorm

存储了官网ID,名称,CVE号,POC地址以及漏洞描述等等:

golang漏洞监控工具——CRUSH V2.0发布

🎉鸣谢

感谢以下优秀的项目:

github_cve_monitor[2]

🕵️免责声明

本工具仅能在取得足够合法授权的企业安全建设中使用,在使用本工具过程中,您应确保自己所有行为符合当地的法律法规。如您在使用本工具的过程中存在任何非法行为,您将自行承担所有后果,本工具所有开发者和所有贡献者不承担任何法律及连带责任。除非您已充分阅读、完全理解并接受本协议所有条款,否则,请您不要安装并使用本工具。您的使用行为或者您以其他任何明示或者默示方式表示接受本协议的,即视为您已阅读并同意本协议的约束。

References

[1] Go: https://go.dev/
[2] github_cve_monitor: https://github.com/yhy0/github-cve-monitor

原文始发于微信公众号(Crush Sec):golang漏洞监控工具——CRUSH V2.0发布

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年3月6日13:08:49
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   golang漏洞监控工具——CRUSH V2.0发布https://cn-sec.com/archives/2551358.html

发表评论

匿名网友 填写信息