场景:2026年8月,某省级政务云平台暴露在互联网的运维管理后台被红队锁定。一个刚公开的Java反序列化RCE漏洞POC,成为了撕开边界的致命缺口。
攻击 / 事件时间线
初始访问:POC武器化
红队通过FOFA语法定位到目标政务云运维门户,指纹识别确认其使用某国产中间件存在刚披露的反序列化RCE。利用公开POC构造恶意序列化数据,通过HTTP POST请求发送至/admin/console接口,触发CommonsCollections利用链。目标服务器成功执行whoami并在DNSLog平台收到回显,确认RCE成立。整个过程仅耗时4分钟,无任何认证要求。
FOFAysoserialDNSLog
立足点巩固:内存马植入
为避免落盘被杀软查杀,红队放弃写入WebShell,转而利用Filter内存马技术,通过反序列化漏洞动态注册一个恶意Filter。该Filter监听特定URL参数?cmd=,通过Runtime.exec()执行命令。内存马无文件落地,重启后失效,但足以支撑后续操作。同时通过nohup启动frp客户端,将内网10.10.30.0/24网段代理至公网VPS。
Filter内存马frpnohup
权限提升:内核漏洞突围
当前权限为www-data,红队上传LinPEAS进行本地信息收集,发现内核版本为5.4.0-42-generic,存在CVE-2021-3493(OverlayFS提权漏洞)。编译并执行EXP后成功获取root权限。随后读取/etc/shadow,使用John the Ripper离线破解出两个运维账号密码,为横向移动储备凭证。
LinPEASCVE-2021-3493 EXPJohn the Ripper
横向移动:SSH隧道与凭证喷洒
利用破解的凭证,通过SSH成功登录内网10.10.30.15运维跳板机。在跳板机中发现Ansible配置文件,其中明文存储了数据库服务器10.10.30.22的root密码。红队随即通过SSH登录数据库服务器,使用mysqldump导出核心业务库gov_affairs,包含约120万条公民办事记录。数据通过frp隧道加密外传至VPS,全程约37分钟。
SSHAnsiblemysqldumpfrp
痕迹清理与持久化
红队执行history -c清除命令历史,删除/var/log/auth.log和/var/log/secure中的相关登录记录。同时在跳板机crontab中植入定时任务,每30分钟通过curl请求C2地址获取指令,实现持久化控制。最后通过Shred工具覆写删除上传的工具文件,完成痕迹清理。
history -cShredcrontab
蓝队视角 · 发现与处置
SOC值班人员于次日09:15收到EDR告警:运维门户服务器出现异常Java进程派生/bin/sh。安全团队立即启动应急响应,通过Sysmon日志回溯发现攻击者POST请求中的恶意序列化特征,确认RCE漏洞被利用。随后通过Netflow分析发现服务器与境外VPS存在持续443端口加密通信,判定为frp隧道。蓝队迅速隔离受控主机,重置所有相关账号密码,并全网排查Filter内存马特征。最终通过YARA规则在跳板机内存中捕获恶意Filter类,完成清除。
涉及关键技术 / 工具
Java反序列化RCE(CommonsCollections利用链)Filter内存马无文件持久化CVE-2021-3493 OverlayFS本地提权
防护经验总结
- 对暴露在互联网的运维后台强制启用
双因素认证,并限制源IP访问,禁止0.0.0.0/0开放 - 部署
RASP或WAF对反序列化流量进行深度检测,拦截ysoserial等工具生成的恶意序列化特征 - 定期使用
Lynis或OpenSCAP进行主机安全基线核查,确保内核及中间件补丁及时更新,关闭不必要的Ansible明文凭证存储
#RCE#反序列化#内存马#提权#横向移动