{"id":13845382,"url":"https://github.com/lxflxfcl/monitor","last_synced_at":"2025-07-12T02:31:00.820Z","repository":{"id":41566672,"uuid":"450744899","full_name":"lxflxfcl/monitor","owner":"lxflxfcl","description":"漏洞监控平台——Monitor。目前实现了监控GitHub、微软、CNNVD三者的漏洞信息，并使用企业微信实时推送。还可以使用邮箱推送，默认关闭。","archived":false,"fork":false,"pushed_at":"2024-03-11T10:41:34.000Z","size":2117,"stargazers_count":433,"open_issues_count":7,"forks_count":88,"subscribers_count":9,"default_branch":"main","last_synced_at":"2024-08-05T17:44:28.276Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/lxflxfcl.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2022-01-22T07:12:24.000Z","updated_at":"2024-08-01T04:59:05.000Z","dependencies_parsed_at":"2023-02-09T21:15:50.112Z","dependency_job_id":null,"html_url":"https://github.com/lxflxfcl/monitor","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lxflxfcl%2Fmonitor","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lxflxfcl%2Fmonitor/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lxflxfcl%2Fmonitor/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lxflxfcl%2Fmonitor/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/lxflxfcl","download_url":"https://codeload.github.com/lxflxfcl/monitor/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":225784454,"owners_count":17523651,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-08-04T17:03:22.286Z","updated_at":"2024-11-21T18:31:26.340Z","avatar_url":"https://github.com/lxflxfcl.png","language":"Python","readme":"# 漏洞监控平台——Monitor\n\n## 免责声明\n\n本程序仅用于内部测试与学习交流，请勿用于其他用途。使用者请务必遵守当地法律！！\n\n\n\n## 写在前面的话\n\n对于网络安全从业者来说，实时掌握漏洞动态是至关重要的，所以萌生了开发一个监控平台的想法，把最新漏洞资讯集成然后进行推送。这里推送选的是企业微信，留下了邮件推送的接口，默认是关闭的，想开启的小伙伴自行开启。数据库选用的是sqlite。目前实现了监控GitHub、微软、CNNVD。（不要问我为啥不监控CNVD，我是不会告诉你我干不过它的反爬【狗头保命】）。\n\n项目已开源，欢迎师傅们送Star⭐⭐⭐\n\n## 项目介绍\n\n### 更新GitHub中issues监控和安全文章监控（2023.1.15）\n\n这几天将之前写的漏洞情报监控更新了一下，增加了一些新功能，包括增加GitHub知名项目issues监控、安全社区文章监控等，并添加了相关配置文件，这次所有配置都只需要在修改配置文件即可。\n\n#### 添加配置文件\n\n这次所有的配置只需要在配置文件中进行修改。包括脚本循环间隔时间也是在这里设置。如下图：\n\n![图片](https://lxflxf.oss-cn-beijing.aliyuncs.com/13.png)\n\n#### GitHub知名项目issues监控\n\n目前实现实时监控github中相关issues。并且实现自定义配置，想监控哪个知名组件，只需要在配置文件中填写相对应的github_owner和gitHub_project。**可以同时监控多个项目，在配置文件中使用逗号隔开**。我这里填写了三个项目进行演示，如下图所示：\n\n![图片](https://lxflxf.oss-cn-beijing.aliyuncs.com/14.png)**注意：github_owner和gitHub_project一定要一一对应，不然监控不到！**实现的效果如下图：\n\n![图片](https://lxflxf.oss-cn-beijing.aliyuncs.com/15.png)\n\n#### 安全社区文章监控\n\n目前实现了监控先知社区、跳跳糖社区、奇安信攻防社区三个社区的文章监控。启动脚本后，实现的效果如下图\n\n![图片](https://lxflxf.oss-cn-beijing.aliyuncs.com/16.png)\n\n后续有时间的话应该会优化一下安全社区推送的相关代码逻辑，现在的代码复用太高了。有机会也会优化一下邮件推送。\n\n### 更新简化配置（2022.1.27）\n\n**添加requirements.txt配置文件**\n\n~~**简化企业微信配置流程**~~\n\n~~现在企业微信配置**只需要修改monitor.py文件中的24-38行**就可以了。如下图：~~\n\n### 项目目录结构\n\n```\n│  cve_db.db\n│  monitor.py\n│  style.css\n│  config.ini\n├─Functions\n│  ├─Commons\n│  │      excel.py\n│  │      excel_html.py\n│  │      github.py\n│  │      mail.py\n│  │      style.css\n│  │      translate.py\n│  │      wechat_api.py\n│  │      __init__.py\n│  │\n│  ├─RequestInfo\n│  │      cnnvd_monitor.py\n│  │      github_monitor.py\n│  │      MS_monitor.py\n|  |      SEC_node_monitor.py\n│  │      __init__.py\n│  │\n│  └─Sql\n│          installDb.py\n│          sql_helper.py\n│\n└─log\n```\n\n\n\n### 文件说明\n\n**monitor.py**文件是主文件，部署完成后直接运行就此文件可以。\n\n**Commons**目录下的文件为主要功能文件。\n\n**RequestInfo**目录下为监控目标的一些文件。\n\n**Sql**目录下为数据库相关文件，installDb.py是用来生成数据库和日志文件的。\n\n**log**目录为存放日志文件目录。\n\n### 功能介绍\n\n同时监控CNNVD、Github、微软官方的漏洞消息。\n\n#### CNNVD\n\n- [x] 每天推送企业微信卡片消息\n- [x] Web端漏洞信息表格展示\n- [x] 每周五统计漏洞数量（高危、中危、低危）\n- [x] 高危漏洞信息醒目标注\n\n#### 微软官方漏洞消息\n\n- [x] 每天推送企业微信卡片消息\n- [x] Web端漏洞信息表格展示\n\n#### Github\n\n- [x] 每天推送企业微信卡片消息\n- [x] 点击卡片消息自动跳转对应Github链接\n\n#### 展示效果\n\n效果如下图\n\n![](https://lxflxf.oss-cn-beijing.aliyuncs.com/1.jpeg)\n\n**当点击CNNVD的消息卡片时，会跳转到相对应的Web端以表格形式展示**，如下图：\n\n![](https://lxflxf.oss-cn-beijing.aliyuncs.com/2.jpeg)\n\n**点击微软漏洞消息的漏洞卡片时，也会跳转到相对应的Web端表格展示**，如下图：\n\n![](doc/3.jpeg)\n\n~~**点击Github的漏洞消息通知时，跳转到相对于的Github地址**，如下图：~~\n\n## 项目部署\n\n### 前期准备\n\n- 开发语言：python3\n- 一台服务器(脚本跑在服务器上)\n- 一个域名(可选)\n\n首先安装依赖，如下：\n\n```\npip install -r requirements.txt\n```\n\n然后进行数据库初始化，初始化时生成log文件夹用来存放生成的日志文件。命令如下：\n\n```python\npython3 installDb.py\n```\n\n### 环境搭建\n\n因为要做Web端表格展示，所以这里**使用Nginx做了目录浏览**。服务器系统使用的是CentOS7，过程如下。\n\n首先使用yum源下载nginx，命令如下：\n\n```\nyum install -y nginx\n```\n\n装好后，查看版本，检查是否安装成功，如下图：\n\n![img](https://lxflxf.oss-cn-beijing.aliyuncs.com/5.png)\n\n然后找到nginx的配置文件，具体位置为：\n\n```\ncd /etc/nginx/\n```\n\n找到nginx.conf文件，对其中的server板块进行修改就可以了，**主要是添加了末尾三行**。\n\n```\nserver {\n    listen       80;\n    listen       [::]:80;\n    server_name  _;\n   # root         /usr/share/nginx/html;\n    charset utf-8;\n    # Load configuration files for the default server block.\n    include /etc/nginx/default.d/*.conf;\n    location / {\n            root /usr/share/nginx/html/download; \n    autoindex on; #开启索引功能\n    autoindex_exact_size off; #关闭计算文件确切大小(bytes)\n    autoindex_localtime on; #显示本机时间\n\t}\n}\n```\n\n**注意生成文件位置**，我这里是`/usr/share/nginx/html/download` ，看个人爱好。(现在只需要在配置文件config.ini中配置即可)\n\n~~**如果修改，请修改monitor.py的24行和excel_html.py的11行。**~~\n\n~~### 配置企业微信推送~~\n~~这个需要先到企业微信创建一个企业，并自建一个应用，**获取到自定义应用的 Secret和注册的企业 corpid**，就可以了。修改位置在moniter.py文件的14行至17行，如下图：~~\n\n#### ~~自定义推送内容修改事项~~\n~~根据自己实际情况修改 RequestInfo文件夹下的文件。**如果是自己使用，请注释掉toparty，取消touser的注释~~\n\n**应用ID**和**部门ID**在企业微信后台如下位置\n\n![](https://lxflxf.oss-cn-beijing.aliyuncs.com/10.png)\n\n![](https://lxflxf.oss-cn-beijing.aliyuncs.com/11.png)\n\n启动监控脚本，命令如下：\n\n```\npython3 monitor.py\n```\n\n大功告成！！！\n\n\n\n","funding_links":[],"categories":["漏洞库、漏洞靶场","Python"],"sub_categories":["网络服务_其他"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flxflxfcl%2Fmonitor","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flxflxfcl%2Fmonitor","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flxflxfcl%2Fmonitor/lists"}