1、钉钉机器人
钉钉机器人api接口文档:
https://developers.dingtalk.com/document/app/document-upgrade-notice#/serverapi2/krgddi
添加机器人
def send_msg(self,message):
url = 'https://oapi.dingtalk.com/robot/send?access_token={your dingtalk access_token}'
headers = {'Content-Type': 'application/json;charset=utf-8'}
self.message = message
data = {
"msgtype": "text",
"text": {
"content": self.message
}
}
r = requests.post(url, data=json.dumps(data), headers=headers)
return r.text
参考钉钉api文文档配置好机器人,进行测试:
没有问题,下一步获取阿里云告警的漏洞链接。
2、获取漏洞链接
请求地址:
https://help.aliyun.com/noticelist/9213612.html
通过正则获取当前页漏洞告警的标题、时间以及漏洞具体链接:
# 获取漏洞标题、时间、链接
re_link = re.findall(r'<a href="(.*?)" >【漏洞通告】', req.text)
re_time = re.findall(r'<span class="y-right">(.*?)<span class="time">', req.text)
re_vlu = re.findall(r'html" >(.*?)</a>', req.text)
将得到的漏洞时间与当日时间做对比(之后可以把脚本当作定时脚本放在服务器上,每24h执行一次,实现功能)
3、获取漏洞详情
在第二步获取到最新的漏洞链接之后,对漏洞详情进行爬取。
for url in url_list:
req = requests.get(url=url)
res = BeautifulSoup(req.text, "html.parser")
# 漏洞标题
vlu_name = res.h3.get_text()
# 漏洞描述
vlu_describe = res.find_all("div", id="se-knowledge")[0].p.get_text()
vlu_list.append(vlu_name + "n" + vlu_describe + "n" + "漏洞详情:" + str(url) + "n")
4、定时任务
脚本写好之后就可以放在服务器上跑定时任务啦。
git clone https://github.com/yliang54/SecAlert.git
cd SecAlert
# 注意,这在要在VulAlert.py中替换自己钉钉机器人的token
添加定时任务,用crontab -e进入当前用户的工作表添加以下行,时间和频率可以自己控制。
52 11 * * * python3 /root/taotao/test/SecAlert/VulAlert.py
测试结果:
代码GitHub链接:
https://github.com/yliang54/SecAlert
加日志、添加其他脚本等等希望有机会再写。努力!
本文始发于微信公众号(安全鸭):平平无奇的漏洞监控脚本
免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论