
红队视角下的Weblogic文件上传漏洞攻防全纪实那是一个闷热的周五下午我们红队正在为某金融机构的年度攻防演练做最后准备。连续三天的外网渗透毫无进展——WAF规则更新得滴水不漏员工钓鱼邮件打开率不到2%就连往常最容易得手的VPN漏洞也被修补得干干净净。就在团队几乎要放弃时资产测绘系统突然发出叮的一声提示...1. 突破口的诞生从资产测绘到漏洞定位现代企业网络就像一座戒备森严的城堡而红队的工作就是找到那块松动的砖。我们使用自主开发的资产指纹识别系统通过以下特征在客户上千台服务器中锁定了关键目标HTTP头部特征Server: Oracle-WebLogic-ServerURL路径特征/console/login/LoginForm.jsp端口组合7001/7002端口伴随8009(AJP)开放# 资产识别命令示例实际工具已封装为GUI nmap -sV -p 7001,7002,8009 10.10.0.0/16 --scripthttp-weblogic-version当看到10.10.34.56:7001返回的版本信息显示为WebLogic 12.2.1.3时整个作战室突然安静了——这个版本号恰好落在CVE-2018-2894的影响范围内。实战经验大型企业往往存在孤儿服务器现象即业务下线后未及时清理的中间件实例。这些被遗忘的系统最容易成为攻击跳板。2. 漏洞利用的艺术绕过限制上传Webshell与公开的漏洞复现教程不同真实环境往往存在各种限制。目标服务器的Web Service Test Page处于禁用状态但通过以下技巧我们成功绕过了限制后台权限获取爆破弱口令未果后通过/console/login/LoginForm.jsp的报错信息确认启用的是LDAP认证利用客户提供的测试账号pentest01权限为只读用户成功登录控制台功能激活路径导航至域结构 base_domain 高级勾选启用Web服务测试页后无需重启立即生效POST /ws_utc/config.do HTTP/1.1 Host: 10.10.34.56:7001 [...] Content-Type: application/x-www-form-urlencoded settingworkDirvalue/u01/oracle/user_projects/domains/base_domain/servers/AdminServer/tmp/_WL_internal/com.oracle.webservices.wls.ws-testclient-app-wls/4mcj4y/war/css文件上传技巧使用经过混淆的JSP脚本绕过基础防护通过多阶段上传先传图片马再覆盖规避内容检查表常见Webshell检测规避方案对比技术手段检测绕过率所需权限日志痕迹纯JSP文件上传30%文件写入明显配置文件注入65%配置修改中等日志文件写入85%日志目录写入隐蔽内存马注入95%代码执行极隐蔽3. 内网横向移动从边缘服务器到核心区获得立足点后我们立即展开内网渗透。通过Webshell执行whoami发现当前权限为oracle用户这为后续操作提供了便利信息收集阶段netstat -antp发现到192.168.100.0/24网段的连接env获取到数据库连接字符串信息ps -ef发现正在运行的Tuxedo服务进程权限提升技巧利用WebLogic的wlst.sh脚本执行系统命令通过crontab -l发现备份脚本的弱权限配置# 通过WLST执行系统命令的示例 connect(weblogic,password,t3://localhost:7001) exec(java.lang.Runtime.getRuntime().exec(id))隐蔽通信方案使用DNS-over-HTTPS进行C2通信流量伪装成正常的API请求格式设置每天固定时段激活的定时任务4. 蓝队反击从异常日志到完整溯源演练进行到第36小时防守方开始有所反应。通过复盘蓝队分享的日志我们了解到他们的检测逻辑初始检测点WebLogic access.log中出现大量/ws_utc/config.do的POST请求中间件日志中检测到异常的ClassLoader调用链行为分析线索HIDS捕获到oracle用户突然执行whoami /all网络流量分析发现异常的DNS隧道特征溯源技术栈通过ELK聚合各节点日志时间线使用Apache Kafka实现实时事件流分析最终定位到初始攻击入口点防御方checklist[ ] 定期扫描未授权开启的Web服务测试页[ ] 监控ws_utc目录下的文件变更[ ] 对中间件的ClassLoader行为建立基线[ ] 限制服务器出站DNS查询权限5. 漏洞防御的立体化方案真正的安全防护需要层层设防。针对此类漏洞我们建议企业实施以下防御矩阵网络层控制使用微隔离技术限制中间件服务器的网络连接对管理接口实施IP白名单访问控制主机层加固按照CIS基准进行安全配置部署EDR解决方案监控敏感操作# 示例Kubernetes网络策略片段 kind: NetworkPolicy apiVersion: networking.k8s.io/v1 metadata: name: weblogic-isolation spec: podSelector: matchLabels: app: weblogic policyTypes: - Egress egress: - to: - podSelector: matchLabels: app: oracle-db应用层防护部署RASP解决方案拦截异常类加载对上传文件实施内容签名校验定期进行红蓝对抗演练验证防护效果在最近一次复测中客户按照我们建议的方案改造后同类攻击的平均检测时间从原来的48小时缩短到了19分钟。