xray 是什么
xray 是从长亭洞鉴核心引擎中提取出的社区版漏洞扫描神器,支持主动、被动多种扫描方式,自备盲打平台、可以灵活定义 POC,功能丰富,调用简单,支持 Windows / macOS / Linux 多种操作系统,可以满足广大安全从业者的自动化 Web 漏洞探测需求。
如何第一时间知道扫出了漏洞
对于安全工程师来说,扫描器发现了漏洞能第一时间给出告警是非常重要的,因为安全工程师使用的是 xray 的基础爬虫模式,爬虫一直在爬也不会一直人工刷新和查看漏洞报告,也有可能是使用的被动代理模式,让测试人员挂扫描器代理然后访问各个业务页面,但是不知道什么时间测试人员才开始和完成测试,也有可能是日志扫描模式,导入日志使用脚本进行 url 扫描,不知道什么时间才能重放完成。
还有很多公司自建了漏洞管理系统、工单系统等等,如果扫描器发现了漏洞可以自动同步这些系统也将会大大解放安全人员。针对这些场景 xray 有一种漏洞输出模式叫 webhook-output
,在发现漏洞的时候,将会向指定的 url post 漏洞数据,demo 的代码就是
import requests requests.post(webhook, json=vuln_info)
如果我们写一个中间的转换和转发层,就可以很方便的实现下面的功能了
- 发送邮件、短信告警
- 发送微信、企业微信、钉钉、slack告警
- 漏洞信息同步到自己的数据库中
- 为该漏洞创建一个工单
- 使用其他的工具去验证漏洞是否存在
……
使用 webhook 做自动推送
本文就借助Server酱 和 企业微信机器人 ,来演示如何实时通知 xray 发现了漏洞。
xray 的 webhook 是什么
对于 xray,webhook 应该是一个 url 地址,也就是我们需要自己搭建一个 web 服务器,接收到 xray 发送的漏洞信息,然后在将它转发,借助于 Python 的 flask 框架,我们很快写了一个 webhook url 的 demo 出来。
from flask import Flask, request import requests app = Flask(__name__) @app.route('/webhook', methods=['POST']) def xray_webhook(): print(request.json) return 'ok' if __name__ == '__main__': app.run()
使用 接下来就是解析 xray 的漏洞信息,然后生成对应的页面模板就好了。需要参考 https://chaitin.github.io/xray/#/guide/vuln 的文档。因为推送不适合发送太大的数据量,所以就选择了基础的一些字段。 Server 酱 Server酱是一款程序员和服务器之间的通信软件,也就是从服务器推报警和日志到手机的工具。 开通并使用上它还是很简单的 我们先用 Python 写一个简单的 demo,以下所有的 SECKEY 的实际值我都使用 很简单就收到了消息,将上面 xray 的漏洞信息结合在一起,就是 展示效果如图 企业微信群机器人 企业微信群机器人就像一个普通成员一样,可以发言,可以 开通和使用方法 调用的代码也非常简单,我们只需要展示主要的部分就可以了 展示效果如图 总结 以上所述是小编给大家介绍的Python对接 xray 和微信实现自动告警,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!xray webscan --url http://pentester-web.vulnet/sqli/example1.php"htmlcode">
* Serving Flask app "app.py"
* Environment: development
* Debug mode: off
* Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)
{'create_time': 1566836256580, 'detail': {'host': 'pentester-web.vulnet', 'param': {'key': 'name', 'position': 'query', 'value': "root'and'lW'='lql"}, 'payload': "root'and'lW'='lql", 'port': 80, 'request': '', 'request1': 'GET /sqli/example1.php"Generic Boolean based case ['string']", 'type': 'boolean_based', 'url': 'http://pentester-web.vulnet/sqli/example1.php"POST /webhook HTTP/1.1" 200 -
from flask import Flask, request
import requests
app = Flask(__name__)
@app.route('/webhook', methods=['POST'])
def xray_webhook():
vuln = request.json
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)))
print(content)
return 'ok'
if __name__ == '__main__':
app.run()
http://sc.ftqq.com/{SECKEY}.send
发请求,就可以在微信里收到消息啦{SECKEY}
代替,大家需要修改为自己的值。
import requests
requests.post("https://sc.ftqq.com/{SECKEY}.send",
data={"text": "xray vuln alarm", "desp": "test content"})
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/SCU645T57f2913b7c0fc69372e997031f7cc4e0561b7f85f2b3d.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
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()
@
人,如果我们接入企业微信群做 xray 的漏洞告警,也会大大方便漏洞的第一时间发现。
def push_wechat_group(content):
resp = requests.post("https://qyapi.weixin.qq.com/cgi-bin/webhook/send",
json={"msgtype": "markdown",
"markdown": {"content": content}})
if resp.json()["errno"] != 0:
raise ValueError("push wechat group failed, %s" % resp.text)
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
RTX 5090要首发 性能要翻倍!三星展示GDDR7显存
三星在GTC上展示了专为下一代游戏GPU设计的GDDR7内存。
首次推出的GDDR7内存模块密度为16GB,每个模块容量为2GB。其速度预设为32 Gbps(PAM3),但也可以降至28 Gbps,以提高产量和初始阶段的整体性能和成本效益。
据三星表示,GDDR7内存的能效将提高20%,同时工作电压仅为1.1V,低于标准的1.2V。通过采用更新的封装材料和优化的电路设计,使得在高速运行时的发热量降低,GDDR7的热阻比GDDR6降低了70%。