xray和360爬虫以及server酱联动形成自动化挖洞以及报警
0X00前言
上一篇我们写了xray和360爬虫形成自动化挖洞,但是这需要我们有事没事就去看一眼挖到洞没,很是繁琐,因此我们利用server酱来实现漏洞得自动推送。
0X01server酱简介
「Server酱」,英文名「ServerChan」,是一款「程序员」和「服务器」之间的通信软件。说人话?就是从服务器推报警和日志到手机的工具。官网http://sc.ftqq.com/3.version
0X02程序搭建
基本上原理如图所示。
上一篇中我们已经搭建好了自动化挖洞,因此我们只需要和server酱联动起来即可。
首先需要创建一个server账号。
开通并使用上它,只需要一分钟:
登入:用GitHub账号登入网站,就能获得一个SCKEY(在「发送消息」页面)
绑定:点击「微信推送」,扫码关注同时即可完成绑定
发消息:往 http://sc.ftqq.com/SCKEY.send 发GET请求,就可以在微信里收到消息啦
要实现自动推送,我们必须先利用flask在本地搭建一个webhook服务
主要代码为:
from flask import Flask, request import requests import datetime import logging app = Flask(__name__) def push_ftqq(content): resp = requests.post("https://sc.ftqq.com/{sckey}.send", data={"text": "xray vuln alarm", "desp": content}) if resp.json()["errno"] != 0: raise ValueError("push ftqq failed, %s" % resp.text) @app.route('/webhook', methods=['POST']) def xray_webhook(): vuln = request.json # 因为还会收到 https://chaitin.github.io/xray/#/api/statistic 的数据 if "vuln_class" not in vuln: return "ok" content = """##爸爸 xray 发现了新漏洞 url: {url} 插件: {plugin} 漏洞类型: {vuln_class} 发现时间: {create_time} 请及时查看和处理 """.format(url=vuln["target"]["url"], plugin=vuln["plugin"], vuln_class=vuln["vuln_class"] or "Default", create_time=str(datetime.datetime.fromtimestamp(vuln["create_time"] / 1000))) try: push_ftqq(content) except Exception as e: logging.exception(e) return 'ok' if __name__ == '__main__': app.run()
将代码中得{sckey}替换为你自己的SCKEY
将该代码保存为py文件在本地执行,可以看到在本地成功开启了服务。
使用xray被动扫描命令监听端口并将结果发送到本地的webhook服务
命令为:.\xray_windows_amd64.exe webscan --listen 127.0.0.1:7777 --webhook-output http://127.0.0.1:5000/webhook
仔细命令可以查看xray文档
值得一提的是,我既想把结果存为html文档,又想让他推送给server酱,便尝试了该命令:
.\xray_windows_amd64.exe webscan --listen 127.0.0.1:7777 --html-output proxy.html --webhook-output http://127.0.0.1:5000/webhook
当都监听好以后将需要扫的域名放到traget.txt中启动爬虫即可。
附结果图俩张:
0X03参考链接
sc.ftqq.com
https://github.com/ox01024/Xray_and_crwlergo_in_server
https://docs.xray.cool/#/