以下文章来源于Vulnerability L0ading ,作者L0ading
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服务
主要代码为:
代码语言:javascript复制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.exewebscan --listen 127.0.0.1:7777 --webhook-output http://127.0.0.1:5000/webhook
仔细命令可以查看xray文档
值得一提的是,我既想把结果存为html文档,又想让他推送给server酱,便尝试了该命令:
.xray_windows_amd64.exewebscan --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/#/