WatchVuln 飞书机器人使用完整文档

WatchVuln 飞书机器人使用完整文档 一、飞书机器人准备1. 创建飞书机器人打开飞书客户端进入需要接收漏洞推送的群组点击群设置 → 群机器人 → 添加机器人 → 自定义机器人填写机器人名称如「WatchVuln漏洞推送」按需配置「安全设置」推荐开启「签名校验」复制机器人的「Webhook地址」或仅复制access_token部分、「签名密钥Sign Secret」保存备用。注意飞书机器人权限仅能推送消息到创建时绑定的群组如需推送到多个群组需为每个群组单独创建机器人。2. 飞书机器人配置说明配置项获取位置作用AccessToken机器人Webhook地址末尾部分或完整Webhook地址飞书机器人唯一标识用于定位推送目标SignSecret机器人安全设置 → 签名校验 → 密钥消息签名验证防止伪造推送二、飞书机器人部署方式方式1Docker部署推荐1. 基础运行命令dockerrun--restartalways-d\-eLARK_ACCESS_TOKEN你的飞书机器人access_token或完整Webhook地址\-eLARK_SECRET你的飞书机器人签名密钥可选开启签名校验时必填\-eINTERVAL30m\# 漏洞检查周期支持60s/10m/1h-eENABLE_CVE_FILTERtrue\# 开启CVE去重同一漏洞仅推送一次zemal/watchvuln:latest2. 私有化部署飞书适配若你的飞书为私有化部署直接填写完整Webhook地址即可无需拼接dockerrun--restartalways-d\-eLARK_ACCESS_TOKENhttps://your-private-lark-domain/open-apis/bot/v2/hook/xxxx\-eLARK_SECRET你的签名密钥\-eINTERVAL30m\zemal/watchvuln:latest3. 自定义筛选规则黑白名单如需仅推送指定关键词的漏洞如「泛微」「Apache」可挂载黑白名单文件# 1. 创建白名单文件每行一个关键词echo-e泛微\nApache\nStruts2lark_whitelist.txt# 2. 启动容器并挂载文件dockerrun--restartalways-d\-v$(pwd)/lark_whitelist.txt:/config/whitelist.txt\-eWHITELIST_FILE/config/whitelist.txt\-eLARK_ACCESS_TOKEN你的access_token\-eLARK_SECRET你的签名密钥\-eINTERVAL30m\zemal/watchvuln:latest方式2二进制运行1. 下载二进制文件从 WatchVuln Release页面 下载对应系统Linux/Windows/Mac的二进制文件赋予执行权限Linux/Macchmodx watchvuln2. 基础运行命令# 公网飞书./watchvuln--lt你的access_token--ls你的签名密钥-i30m# 私有化部署飞书直接填完整Webhook./watchvuln--lthttps://your-private-lark-domain/open-apis/bot/v2/hook/xxxx--ls你的签名密钥-i30m3. 关键参数说明参数缩写作用--lark-access-token--lt飞书机器人access_token或完整Webhook地址--lark-sign-secret--ls飞书机器人签名密钥开启签名校验时必填--interval-i漏洞检查周期如30m表示30分钟检查一次--whitelist-file--xf漏洞关键词白名单文件路径--blacklist-file--bf漏洞关键词黑名单文件路径--no-filter-禁用高价值筛选推送所有漏洞--no-sleep-禁用夜晚休眠默认00:00-07:00不运行方式3配置文件部署多机器人/多渠道推送1. 创建YAML配置文件如lark_config.yamldb_conn:sqlite3://vuln_v3.sqlite3sources:[avd,oscs,seebug,threatbook,kev]# 启用的漏洞数据源interval:30menable_cve_filter:truepusher:-type:larkaccess_token:你的第一个飞书机器人access_tokensign_secret:你的第一个飞书机器人签名密钥-type:larkaccess_token:https://your-private-lark-domain/open-apis/bot/v2/hook/xxxx# 私有化部署飞书sign_secret:你的第二个飞书机器人签名密钥2. 启动命令# Docker方式dockerrun--restartalways-d\-v$(pwd)/lark_config.yaml:/config.yaml\-eCONFIG/config.yaml\zemal/watchvuln:latest# 二进制方式./watchvuln-clark_config.yaml三、验证飞书机器人运行1. 测试推送可选启动时添加测试参数立即推送3条测试消息到飞书群组# Docker方式dockerrun--rm\-eLARK_ACCESS_TOKEN你的access_token\-eLARK_SECRET你的签名密钥\-eTESTtrue\zemal/watchvuln:latest# 二进制方式./watchvuln--lt你的access_token--ls你的签名密钥--test2. 查看运行日志# Docker查看日志dockerps|grepwatchvuln# 获取容器IDdockerlogs-f容器ID# 二进制查看日志./watchvuln--lt你的access_token--ls你的签名密钥-i30m--debug正常日志示例[pusher-lark] sending text 数据初始化完成当前版本 v1.6.0 本地漏洞数量: 120, 检查周期: 30m [pusher-lark] sending markdown CVE-2024-12345 某某系统远程代码执行漏洞3. 确认飞书消息启动成功后飞书群组会收到「数据初始化完成」的提示消息漏洞检查周期内符合条件的高价值漏洞会以Markdown格式推送至群组。四、飞书机器人专属配置说明环境变量对应二进制参数作用默认值LARK_ACCESS_TOKEN--lark-access-token/--lt飞书机器人access_token或完整Webhook地址-LARK_SECRET--lark-sign-secret/--ls飞书机器人签名密钥开启签名校验时必填-NO_SLEEP--no-sleep禁用夜晚休眠默认00:00-07:00不推送falseSOURCES--sources自定义漏洞数据源如avd,oscs,seebugavd,ti,oscs,threatbook,seebug,struts2,venustech五、常见问题解决1. 飞书推送失败检查LARK_ACCESS_TOKEN是否正确公网飞书填access_token部分私有化部署填完整Webhook地址若开启签名校验确认LARK_SECRET与飞书机器人配置一致飞书机器人未加入目标群组删除机器人重新创建确保绑定正确群组网络问题服务器无法访问飞书开放平台配置HTTPS_PROXY环境变量如-e HTTPS_PROXYhttp://代理IP:端口。2. 飞书消息格式乱码WatchVuln会自动处理Markdown格式兼容飞书无需手动调整若出现空行丢失无需处理飞书对Markdown空行兼容性问题不影响内容阅读。3. 私有化部署飞书推送失败确认LARK_ACCESS_TOKEN填写完整的私有化Webhook地址如https://your-lark-domain/open-apis/bot/v2/hook/xxxx检查服务器是否能访问私有化飞书域名关闭防火墙/安全组限制。六、进阶优化1. 仅推送指定等级漏洞结合黑白名单仅推送「严重」「高危」且含指定关键词的漏洞# 创建白名单文件仅推送含“严重”“高危”的漏洞echo-e严重\n高危lark_severity.txt# 启动容器dockerrun--restartalways-d\-v$(pwd)/lark_severity.txt:/config/whitelist.txt\-eWHITELIST_FILE/config/whitelist.txt\-eLARK_ACCESS_TOKEN你的access_token\-eLARK_SECRET你的签名密钥\-eINTERVAL15m\zemal/watchvuln:latest2. 多飞书群组推送通过配置文件添加多个飞书机器人实现多群组推送pusher:-type:larkaccess_token:群组1的access_tokensign_secret:群组1的签名密钥-type:larkaccess_token:群组2的access_tokensign_secret:群组2的签名密钥3. 调整漏洞检查周期根据需求缩短/延长检查周期最低1分钟# 10分钟检查一次漏洞dockerrun--restartalways-d\-eLARK_ACCESS_TOKEN你的access_token\-eLARK_SECRET你的签名密钥\-eINTERVAL10m\zemal/watchvuln:latest