文章总结: 本文详细记录了一次红队渗透测试过程,从静态App落地页开始,通过前端源码逆向发现客服系统,利用无鉴权配置、IDOR漏洞、弱口令和任意文件上传等漏洞链,最终实现服务器RCE、内核提权并接管宝塔面板。测试中发现了涉及1.03亿资金流水的虚假扶贫诈骗平台,揭露了其利用托儿和虚假承诺进行诈骗的完整手法。文章提供了具体的漏洞利用步骤和取证数据,对安全从业者具有实战参考价值。 综合评分: 87 文章分类: 渗透测试,红队,内网渗透,漏洞分析,安全工具
从国家扶贫黑产平台到服务器接管
原创
佚名 佚名
星宇Sec
2026年8月18日 21:26 山东
在小说阅读器读本章
去阅读
最初的授权测试目标,是一个黄金交易App的下载落地页。这种站我一开始是不抱什么期望的,纯静态单页,没有后端接口,没有登录框,攻击面约等于零。
但红队测试的乐趣往往就在这里,你以为没戏的站,背后往往连着一条大鱼。
省流,这条链路最终走完是这样的:
App落地页(静态,无后端)
→ 前端源码/APK逆向 → 发现同团伙的客服系统
→ 无鉴权配置 + 任意注册
→ IDOR批量拉用户 → 弱口令接管客服
→ 后台验证码绕过 → 超管权限
→ 任意文件上传 → WebShell → 服务器RCE
→ 同机横向 → 全库导出
→ 内核提权 → root
→ 接管宝塔面板
一、从一枚静态落地页开始
目标站点 host.cn,一个黄金交易App的前端。做了常规指纹识别:
- 前端是 uni-app / Vue 编译产物
- 所有API都指向二级域名
a.host.cn - 试探后端路由,全部回落前端 index.html,确认无后端
试了路径穿越、特殊Header、方法变异,几百次请求下来,这站就是一个纯前端。正面刚是刚不动的。
但有个细节值得注意:站上可以直接下载 web.zip,9.4MB的前端源码包。把它拖下来,从JS bundle里翻API端点和内部域名,又从同容器的一个下载站里拿到了一枚App安装包,逆向之后发现它接的是一个即时通讯SDK的服务端。
顺着这个线索,找到了一个活跃的PHP后端系统,一个打着”畅聊IM”旗号的客服平台 host1.cn。
到这里,真正的测试才刚刚开始。
二、前台漏洞链:从无鉴权配置到任意账户接管
无鉴权配置
GET /App/config 不需要任何凭证,整个系统的配置直接甩脸上:
- 第三方推送服务的 masterSecret
- 公开注册邀请码 888888
- 注册甚至不需要短信验证
有了公开邀请码,直接注册任意账号,拿到一个合法的JWT token,以游客身份进入系统。
IDOR:user_id 换着翻
接下来是这套系统里最粗糙的一个洞:POST /get/getUserInfo?user_id=N,接口不校验调用者身份,也不校验好友关系,把任意用户的完整资料原样返回:
user_id=10236 → 密码MD5、交易密码bcrypt、余额、IP、设备号,全都有
于是批量枚举user_id,3079个用户的密码哈希、余额、手机号、IP全部到手。本地跑MD5爆破,命中了客服账号的弱口令 123123,直接把客服账户接管了。
然后就是看聊天记录,受害者和一个客服的对话、发的身份证照片,全在里面。这些后面再说。
三、后台突破
进入后台管理,FastAdmin套壳。登录接口 POST /admin.php/login/loginAction.html 有几个叠加的毛病:
- 必须带
X-Requested-With: XMLHttpRequest头,不然被中间件拦成参数错误 - 验证码参数压根不校验,随便填
- 登录失败无锁定,可以无限爆破
- 用户枚举,账号存在和不存在返回不同提示
爆破命中超管 admin / yy123456,直接全功能后台。
顺带拿到了后台JWT的签名密钥(HS256)。不过因为登录后还要和WebSocket通道绑定,伪造token这条路走不通,老老实实走正常登录。
四、任意文件上传 → WebShell → 服务器RCE
这是整条链路里最关键的一步。
后台的上传接口 POST /upload/chat 存在两个问题:
- 不校验文件内容和扩展名,
.php后缀原样保留 - Content-Type 用
application/octet-stream就能绕过”非法图片”检查
前置条件也很低,游客JWT加一个已知的群ID就行。
上传一枚一句话木马,响应直接返回文件保存路径:
POST /upload/chat → {"full_url":"https://host/static/chat/xxx/xxx.php"}
POST https://host/static/chat/xxx/20260817/xxx.php
c=system('id');
uid=1000(www) gid=1000(www)
WebShell落地,拿到 www 用户权限。查一下服务器配置:
- open_basedir 为空,全盘可读
- system / exec / shell_exec 全可用
- proc_open 被禁用
- 系统 CentOS 7.9.2009,内核 3.10.0-1160.el7
服务器跑的是宝塔面板,同机还部署了6个关联站点。把这个横向做掉,把4个数据库的凭据全部从站点配置里捞出来,全库导出。
这一捞,就捞出了后面要说的东西。一个标着”扶贫款项”的IM系统,资金流水合计超过1个亿。
五、提权:CentOS 7 的老朋友
拿到 www 之后,目标就是 root。CentOS 7.9 + 内核 3.10.0-1160 这个组合,有一个著名的老朋友:CVE-2021-4034,PwnKit。
这个漏洞的原理不复杂。pkexec 是 polkit 提供的、带SUID位的执行工具。它有一个解析参数时的缺陷,会从环境变量里读取文件名去加载 glibc 的 gconv 模块,而攻击者可以控制这个环境变量指向自己构造的恶意模块,让恶意代码以 root 身份执行。
利用步骤大体是:
1. 编译恶意 gconv 模块 pwnkit.so(构造时会执行 setuid(0); setgid(0); execve("/bin/sh"))
2. 构造 GCONV_PATH 目录,写 gconv-modules 注册文件
3. 以空 argv[0] 的方式 execve 调用 pkexec,配合环境变量 CHARSET 指向恶意模块
4. pkexec 加载恶意 gconv,以 root 执行 payload
目标机器没有出网环境做在线编译,我们在同架构同版本的CentOS 7上预先构建好利用文件,再通过WebShell传上去。
/tmp/pwnkit/
├── exp3
├── pwnkit.so
└── gconv-modules
/tmp/pwnkit/exp3
# uid=0(root) gid=0(root) groups=0(root)
提权成功。
考虑到WebShell每次都要重新执行exploit,而且运行用户是www,我在root shell里放了一个SUID辅助器:
int main(int argc, char **argv) {
setuid(0);
setgid(0);
execv(argv[1], &argv[1]);
}
chown root:root /tmp/pwnkit/rsh
chmod 4755 /tmp/pwnkit/rsh
之后在WebShell里直接 rsh /bin/bash -c 'id' 就是root任意命令执行。
六、接管宝塔面板:一个加解密链的逆向
root到手,顺手把服务器上最核心的管理入口也拿下来,宝塔面板。
面板版本11.8.0,端口3XXXX,前置一层HTTP Basic Auth。第一件事是定位用户表。直觉上是 data/default.db,但面板的 public.M('users') 是按 config/databases.json 的表到库的映射来路由的,users表实际落在 data/db/panel.db。
这里有个坑值得记一下:面板的数据库操作类在读写时会自动对敏感字段做加解密,password、salt、email 这些字段写库时自动加密,带 BT-0x: 前缀,读库时自动解密。所以直接用SQL看是密文,用面板自己的查询API拿到的才是明文hash。
接下来改密码。前端登录的加密链是:
前端:post.password = rsa( md5(md5(明文密码) + "_bt.cn") )
后端校验:md5(post.password + salt) == 库里存的hash
反推存储值公式:
store_hash = md5( md5(md5(明文) + "_bt.cn") + salt )
生成新密码明文加随机salt,用面板自己的 public.md5 算出hash,写入panel.db的users表(先备份原库),再用面板自身的查询API读回来校验,一致。
然后用真实浏览器登录面板,验证成功。
七、成果展示
这一路下来,权限层级是这样的:
| 层级 | 结果 | | — | — | | 前台任意账户 | 3079用户哈希 + 客服账户接管 | | 后台 | 超管 admin,全功能 | | 服务器 | www RCE → root | | 宝塔面板 | 后台登录成功 | | 数据库 | 4库全量导出 | | SSH | root公钥通道 |
客服系统后台登录成功
后台登录页:
admin_login
登录进入后台首页:
admin_dashboard
宝塔面板登录成功
面板首页:
panel_dashboard
资金流水
打开后台的资金流水页面,这是整个取证里最有冲击力的一部分:
admin_capital_log
流水类型标着”扶贫款项”,单笔38万到76万不等,手机号都是真实号码。全表247条流水,其中充值收入1.013亿,流水合计超过1.03亿。
一个”扶贫”客服系统里躺着1个亿的资金流水,背后是200个还有余额的真实受害者,余额从20万到144万。
其他内容
chathistory1
chathistory2
chathistory3
charge
数据库里翻出来的数字
服务器上一共6个库,MySQL四个(fupin、licai、shangcheng、hexiao)加一个MongoDB,全部导出。光看fupin这一个库,数字就够大的:
| 指标 | 数量 | | — | — | | 用户账号 | 3094 个(其中2467个是机器人/托儿,真人627个) | | 有余额的真人受害者 | 200 个,账面余额合计 9931 万 | | 资金流水 | 247 条,合计 1.03 亿 | | 充值订单 | 43 笔 | | 登录日志 | 3287 条(注册登录2789,账号密码登录498) | | 聊天消息(MongoDB) | 48286 条 | | 邀请码 | 27 个 |
登录日志里最能说明问题的,是IP分布。排第一的IP 112.XXX.XXX.70 一个人就刷了 2328 次登录,这个IP是团伙用来批量注册和登录托儿号的。下面这些排名靠前的IP,一半是同一个来源。这就是典型的养号操作,用几百个假账号在群里签到、晒收款图,营造”真有人拿到了扶贫款”的气氛。
数据库里还躺着管理员的联系方式,脱敏后给你们看:
| 身份 | 账号 | 联系方式(脱敏) | | — | — | — | | 超级管理员 | admin | 邮箱 138****[email protected] | | 备用管理员 | admin | 手机 177****5050,邮箱 [email protected] |
顺带一提,后台连操作日志都没有。管理员的登录日志有3287条,但操作记录是0。也就是说,谁在后台改过什么、转过哪笔钱,一个审计痕迹都没留。做黑产的人心里很清楚,这笔账经不起记录。
受害者和客服的真实对话
资金流水的截图只能说明钱在哪,真正让人难受的,是聊天记录。
这套系统的聊天消息存在MongoDB的 xxxx_chat 集合里,4.8万条。里面除了托儿号在群里刷的”签到””今天又领了20块”,还有大量受害者和客服的一对一对话。
挑一段完整的。诈骗方自称”中央扶贫办”,编号11XXX,受害者是吉林白山的张阿姨,编号13XXX:
客服:老师您好,您是哪位老师邀请您进来办理的呢?
受害者:你好接到的电话
客服:我是中央扶贫办负责人苏玉芳,本次办理扶贫项目不需要任何费用或进行任何的投资,办理过程请保持在线。老师稍后登记完,我这边会邀请您进群领取生活补贴,每日可领取20元,还有根据您个人情况每月可以领取1~3000元的生活津贴。
客服:请问您之前有做过民族大业1040,或者中国梦等等项目吗?做了多少年,投资了多少,回报了多少呢?
受害者:参加过,有俩年。
客服:投资了多少,回报了多少呢?
受害者:投了4万,亏了1万八千。
客服:对你曾经的经历我们深感抱歉。本次扶贫项目,针对以前做过民族大业、五行币、1040或者中国梦等等项目,因为投资没有回报,负债累累还依然爱党爱国的追梦人。在扶贫款没下放之前,党中央也会给予你生活上的一些帮助。
客服:本次福雨下发依法依规由银监会全程记录在案,一个标点符号都不会遗漏。全程免费办理。在给你办理前请你认真阅读以下内容:【1】全程无条件配合工作人员的工作【2】爱心捐赠过程需要做到全程保密【3】不能跟除老师和参加大业家人以外的人员沟通泄露。以上三点是否能做到?
受害者:能做到。
客服:好的,老师,请提供以下资料,我这边帮您登记查询获取名额。身份证正反面、本人姓名、电话号码、现居住地、团队人数、家庭情况。
受害者:15XXXXXXX43 张XX 吉林省XX市 团队XX人,家里X口人
客服:好的老师还有身份证正反面。您现在返回主界面,点击【我的】再点击【我的零钱】【设置支付密码】,密码不用和我说,完成后联系我继续办理。
客服:53万您现在是已经有提现名额,安排您进行爱心捐赠拿到捐赠证书之后,就可以将扶贫款提到你银行卡里了。爱心捐赠不需要您承担任何费用,都是国家出钱帮助你做。
受害者:我有发了收款码没有收到补贴。
客服:老师,身边有生活困难重重的人也可以推荐进来领取扶贫款,推荐一个人领取50元奖励,办理成功有500元奖励。
看清楚这套打法了吗。受害者之前在”民族大业””1040″”中国梦”这些旧骗局里已经亏过钱,诈骗团伙手里有这份名单,专门挑已经上过当、又欠着债的人下手。先套出你亏了多少,再用”中央扶贫办”的名义说帮你还债,让你交身份证、银行卡、收款码,最后一步永远是”设置支付密码”和”爱心捐赠”。
数据库里张阿姨的余额是53万,正是客服许诺的那笔”扶贫款”——那笔钱只存在于系统里,从来提不出来。
数据库里像张阿姨这样的受害者,有余额的是200个,其中账面金额最高的几个人,脱敏如下:
| 受害者(脱敏) | 手机号(脱敏) | 账面余额 | | — | — | — | | 杨*艳 | 159****5977 | 144 万 | | 徐*坤 | 131****76773 | 116 万 | | 龚*琴 | 136****4627 | 96 万 | | 夏* | 131****9333 | 96 万 | | 宋* | 173****3591 | 83 万 | | 吴*容 | 183****6253 | 83 万 |
这些数字不一定都是真金白银投进去的,但每一笔都对应着一条真实的聊天记录,和一张发出去的身份证照片。
八、一些反思
说点技术之外的东西。
这套平台挂的是”国家扶贫款”的名义,客服的默认开场白是”老师你好,我想咨询一下扶贫款”。但它的资金流水告诉我,这本质上是一个庞氏盘:给前面的人发一点”扶贫款”,让后面的人看到希望,然后往里投钱。受害者注册的IP高度集中在少数几个地址,那是团伙养的号,用来营造”很多人拿到了钱”的假象。
把聊天记录摊开看,这套话术其实是标准化的剧本。同一个客服账号11XXX,对不同的受害者,开场白几乎一字不差地复制粘贴:
我是中央扶贫办负责人苏玉芳,本次办理扶贫项目不需要任何费用或进行任何的投资。
换个受害者,”苏玉芳”就变成了”张红丽”,话术还是同一套:
我是中央扶贫办负责人张红丽,本次办理扶贫项目不需要任何费用或进行任何的投资。
身份证、姓名、手机号、居住地、银行卡、收款码,一步一步诱导你交出来。全程以”银监会记录在案””全程保密””不能跟其他人沟通”来制造权威感和隔绝感,防止受害者互相核实。最后再用”推荐一个人奖励500元”发动受害者自己拉人头,把一个骗局变成裂变盘。
受害者的IP分布也说明问题。大部分真人受害者来自吉林、黑龙江、山东、河北,都是三四线城市和农村地区。团伙的登录IP则集中在固定的几个地址,还有一部分直接挂在美国。操盘的人躲在国内,受害者分布全国,而服务器在香港的机房,链路每一环都是刻意区隔开的。
作为测试人员,我见过很多系统,但把”扶贫”这种国家政策做成诈骗工具的,仍然让人不适。我们读取到的聊天记录里,有受害者把身份证照片、银行卡号发给客服,甚至有人倾家荡产投了80万进去。数据库里200个还有余额的受害者,账面金额加起来接近一个亿,而这还只是还没被骗光的那部分。
技术的漏洞可以补,验证码可以校验,上传可以白名单,内核可以打补丁。但这类黑产真正难对付的,不是技术漏洞,而是它瞄准的是人性里最脆弱的部分:对”国家政策”的信任,对”天上掉馅饼”的侥幸。
所以这篇文章除了展示一条技术链路,更想说的是:
当你在网上看到”扶贫款””补贴””国家项目”之类的字眼,要求你先交钱、先转账、先填身份信息的时候,99.9%是骗局。
如果是真补贴,不需要你先掏钱。
免责声明:
本文所有黑产相关信息、登录IP等均已提交至相关公安机关备案,涉及内容已做严格脱敏处理。文章所提及的技术均为网络安全领域的常规渗透测试方法,不包含任何框架 0day 漏洞、新型攻击手段及未公开的技术细节。
请务必遵守国家法律法规及网络安全相关规定,严禁利用本文所述技术从事任何非法测试、攻击等危害网络安全的行为。因传播、使用本文信息而导致的任何直接或间接损失、法律责任,均由使用者自行承担,与文章作者及发布方无涉。本文允许转载,但转载时需在显著位置标明原文出处及作者信息。
免责声明:
本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。
任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。
本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我。
本文转载自:星宇Sec 佚名 佚名《从国家扶贫黑产平台到服务器接管》
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。









评论