编写爬取某框架面板管理后台代理池的脚本

0x01 框架简介

对于*ray框架之前接触不多,先来熟悉一下相关资料。 *ray面板管理后台界面,常用于V2Ray/*ray代理服务的部署和管理。 功能介绍: 系统状态监控 支持多用户多协议,网页可视化操作 支持的协议:vmess、vless、trojan、shadowsocks、dokodemo-door、socks、http 支持配置更多传输配置 流量统计,限制流量,限制到期时间 可自定义 *ray 配置模板 支持 https 访问面板(自备域名 + ssl 证书) 支持一键SSL证书申请且自动续签 

0x02 目的

*ray面板管理后台登录后的功能如下:

自动草稿

如果我们将图中“入站列表”中的代理协议(如 SOCKS)、地址、端口、用户名和密码等信息通过脚本爬取下来,那么后续可以根据爬取的结果,自动生成代理工具(如 Clash、Proxifier、Shadowsocks 客户端)的配置文件,批量部署代理连接;或者进行结合脚本批量对这些节点进行延迟测试、测速、存活探测等等。

0x03 口令爆破

在尝试编写脚本之前,需要想办法收集一波资产

自动草稿

这里我导出了5k条。接下来就需要爆破其中的弱口令了,在github上找了一圈觉得还是用我们团队大佬之前自己开发的web_pwd_common_crack比较好~

https://github.com/TideSec/web_pwd_common_crack 

不过这脚本年代太久了,还是python2,先把它简单修改一下为支持python3吧。 主要是把新版本不兼容的地方改进一下,比如基本语法更新(所有print语句添加括号,使用queue替代Queue,使用is_alive()替代isAlive()),还有字符串和编码处理,HTTP请求处理等等。另外还要做一下性能优化,毕竟我的云主机配置太低,万一跑着脚本卡死就浪费时间了. 添加延时,避免CPU占用过高:

自动草稿

改进内存的使用:

自动草稿

运行虽然有报警,但是可以正常跑,不强求。

自动草稿

最终5k条FOFA导出的数据共计跑出几十条弱口令。没办法,云主机性能有限而且资产量太大,只能把账号和密码字典设的少一些了。

0x04 编写爬虫脚本

1、实现思路

接下来是编写爬虫脚本。我们已经知道了面板管理后台中支持的用户协议类型有很多,比如vmess、vless、trojan、shadowsocks等,基本类似于如下截图

自动草稿

以vless协议为例,关键参数包括协议类型、地址、端口、uuid等等。

自动草稿

抓包可看到获取相关协议时为json数据,相关字段在响应字段中均能找到。

自动草稿

那么我们的大体思路可以为: 1、读取登录信息 首先读取用户提供的txt文本文件,文件中包含面板URL和对应的用户名:密码。由脚本自动读取并解析面板登录信息。 2、自动登录与数据获取 依次用每组URL和账号密码登录面板(通过POST请求/login),登录成功后再POST请求/xui/inbound/list接口,获取面板的入站配置JSON信息。 3、解析各种协议数据 针对不同协议(如vless、vmess、shadowsocks、socks等),解析JSON数据中各自的关键字段,比如邮箱、端口、传输方式、path、用户名、密码、加密方式、UUID等。 4、数据整合与导出 所有面板的数据最后统一导出为Excel(xls)文件,面板的服务器IP自动填充到每一条的对应数据,方便后续管理和区分。字段齐全,尽量做到格式美观。

2、实现代码

我们可以先POST请求/login接口,提交用户名和密码,登录成功后再POST请求/xui/inbound/list接口,获取入站配置的JSON数据。

自动草稿

关于主函数的调用流程,可以循环遍历每组URL和账号密码,调用login_and_fetch_data登录并获取数据;如果登录成功,调用process_inbound_data解析数据,并将结果存到列表。

自动草稿

当然重要的是解析各种类型的协议数据,比如我们可以首先解析入站配置数据

自动草稿

第一步要遍历入站配置数据(data.get(‘obj’, [])),提取每个入站配置的协议类型、端口、传输方式、path等基础信息;然后调用get_email_from_settings、get_user_pass_from_settings、get_vmess_uuid等函数,根据协议类型提取相应的字段。 其次就是要针对不同协议,分别提取用户名、密码和加密方式:

自动草稿

还有一些比较特殊的协议,比如提取vmess的UUID这种

自动草稿

大体上的实现思路与代码就这些,接下来让我们运行脚本查看效果。

自动草稿

最终导出的Excel文件如下

自动草稿

基本上看起来还算可以~

0x05 总结

整体上脚本通过“读取文件 → 登录面板 → 解析数据 → 整合导出”的流程,实现了批量自动抓取XUI面板数据并导出为Excel的功能,方便我们对其中数据的利用。后期如果扩展支持更多协议或字段,那么在解析部分增加对应的提取逻辑就行了。


文章来源:Tide安全团队

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容