index_new5.html
../../../zaker_core/zaker_tpl_static/wap/tpl_guoji1.html
![]()
本文介绍了如何通过编写脚本,批量抓取XUI面板管理后台的代理服务配置信息,并将其导出为Excel文件。文章详细阐述了从资产收集、弱口令爆破到爬虫脚本编写的整个流程,并提供了具体的实现思路和代码示例。通过自动化工具,可以高效地管理和利用面板中的代理节点信息,为后续的延迟测试、测速等操作提供便利。
📝 **XUI面板功能概览与应用价值**:XUI面板是一款V2Ray/Xray代理服务的部署和管理后台,具备系统状态监控、多用户多协议支持、可视化操作等功能,支持vmess、vless、trojan、shadowsocks等多种协议。通过脚本爬取面板中的入站配置信息,可以自动生成代理工具的配置文件,实现批量部署,或进行延迟测试、测速等操作,极大地提高了管理效率。
🔐 **弱口令爆破与资产收集**:在进行数据抓取前,首先需要收集相关资产信息。文章提到通过FOFA导出约5000条数据,并使用Python3改造的`web_pwd_common_crack`工具进行弱口令爆破,成功找出几十条弱口令。尽管由于云主机性能限制和字典设置,爆破结果有限,但展示了自动化检测弱口令的必要性。
🕷️ **爬虫脚本实现思路与解析**:文章详细描述了爬虫脚本的实现思路:首先读取包含面板URL、用户名和密码的文本文件,然后自动登录面板并请求`/xui/inbound/list`接口获取JSON格式的入站配置信息。脚本能够解析不同协议(如vless、vmess、shadowsocks、socks)的关键字段,如协议类型、地址、端口、UUID、用户名、密码、加密方式等,并将所有数据整合导出为格式美观的Excel文件。
⚙️ **数据整合与导出细节**:爬虫脚本在解析不同协议数据后,会将所有面板的数据统一导出为Excel(xls)文件。在此过程中,服务器IP信息会自动填充到每一条对应数据中,方便后续的管理和区分。脚本通过循环调用登录和数据获取函数,并针对不同协议的特性,设计了相应的字段提取函数,如`get_email_from_settings`、`get_user_pass_from_settings`、`get_vmess_uuid`等,确保数据提取的准确性和完整性。

声明:Tide安全团队原创文章,转载请声明出处!文中所涉及的技术、思路和工具仅供以安全为目的的学习交流使用,任何人不得将其用于非法用途给予盈利等目的,否则后果自行承担!

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的功能,方便我们对其中数据的利用。后期如果扩展支持更多协议或字段,那么在解析部分增加对应的提取逻辑就行了。
往期推荐
TscanPlus-一款红队自动化工具
潮影在线免杀平台上线了
自动化渗透测试工具开发实践
【红蓝对抗】利用CS进行内网横向
一个Go版(更强大)的TideFinger
SRC资产导航监测平台Tsrc上线了
新潮信息-Tide安全团队2022年度总结
记一次实战攻防(打点-Edr-内网-横向-Vcenter)
Tide团队产品及服务
团队自研平台:潮汐在线指纹识别平台 | 潮听漏洞情报平台 | 潮巡资产管理与威胁监测平台 | 潮汐网络空间资产测绘 | 潮声漏洞检测平台 | 在线免杀平台 | CTF练习平台 | 物联网固件检测平台 | SRC资产监控平台 | ......
技术分享方向:Web安全 | 红蓝对抗 | 移动安全 | 应急响应 | 工控安全 | 物联网安全 | 密码学 | 人工智能 | ctf 等方面的沟通及分享
团队知识wiki:红蓝对抗 | 漏洞武器库 | 远控免杀 | 移动安全 | 物联网安全 | 代码审计 | CTF | 工控安全 | 应急响应 | 人工智能 | 密码学 | CobaltStrike | 安全测试用例 | ......
团队网盘资料:安全法律法规 | 安全认证资料 | 代码审计 | 渗透安全工具 | 工控安全工具 | 移动安全工具 | 物联网安全 | 其它安全文库合辑 | ......
📍发表于:中国 山东