当前位置: 首页 > news >正文

从一次内部红队演练看CVE-2018-2894:Weblogic任意文件上传的实战利用与溯源

红队视角下的Weblogic文件上传漏洞攻防全纪实

那是一个闷热的周五下午,我们红队正在为某金融机构的年度攻防演练做最后准备。连续三天的外网渗透毫无进展——WAF规则更新得滴水不漏,员工钓鱼邮件打开率不到2%,就连往常最容易得手的VPN漏洞也被修补得干干净净。就在团队几乎要放弃时,资产测绘系统突然发出"叮"的一声提示...

1. 突破口的诞生:从资产测绘到漏洞定位

现代企业网络就像一座戒备森严的城堡,而红队的工作就是找到那块松动的砖。我们使用自主开发的资产指纹识别系统,通过以下特征在客户上千台服务器中锁定了关键目标:

  • HTTP头部特征Server: Oracle-WebLogic-Server
  • URL路径特征/console/login/LoginForm.jsp
  • 端口组合:7001/7002端口伴随8009(AJP)开放
# 资产识别命令示例(实际工具已封装为GUI) nmap -sV -p 7001,7002,8009 10.10.0.0/16 --script=http-weblogic-version

当看到10.10.34.56:7001返回的版本信息显示为WebLogic 12.2.1.3时,整个作战室突然安静了——这个版本号恰好落在CVE-2018-2894的影响范围内。

实战经验:大型企业往往存在"孤儿服务器"现象,即业务下线后未及时清理的中间件实例。这些被遗忘的系统最容易成为攻击跳板。

2. 漏洞利用的艺术:绕过限制上传Webshell

与公开的漏洞复现教程不同,真实环境往往存在各种限制。目标服务器的Web Service Test Page处于禁用状态,但通过以下技巧我们成功绕过了限制:

  1. 后台权限获取

    • 爆破弱口令未果后,通过/console/login/LoginForm.jsp的报错信息确认启用的是LDAP认证
    • 利用客户提供的测试账号pentest01(权限为只读用户)成功登录控制台
  2. 功能激活路径

    • 导航至域结构 > base_domain > 高级
    • 勾选"启用Web服务测试页"后无需重启立即生效
POST /ws_utc/config.do HTTP/1.1 Host: 10.10.34.56:7001 [...] Content-Type: application/x-www-form-urlencoded setting=workDir&value=/u01/oracle/user_projects/domains/base_domain/servers/AdminServer/tmp/_WL_internal/com.oracle.webservices.wls.ws-testclient-app-wls/4mcj4y/war/css
  1. 文件上传技巧
    • 使用经过混淆的JSP脚本绕过基础防护
    • 通过多阶段上传(先传图片马再覆盖)规避内容检查

表:常见Webshell检测规避方案对比

技术手段检测绕过率所需权限日志痕迹
纯JSP文件上传30%文件写入明显
配置文件注入65%配置修改中等
日志文件写入85%日志目录写入隐蔽
内存马注入95%代码执行极隐蔽

3. 内网横向移动:从边缘服务器到核心区

获得立足点后,我们立即展开内网渗透。通过Webshell执行whoami发现当前权限为oracle用户,这为后续操作提供了便利:

  1. 信息收集阶段

    • netstat -antp发现到192.168.100.0/24网段的连接
    • env获取到数据库连接字符串信息
    • ps -ef发现正在运行的Tuxedo服务进程
  2. 权限提升技巧

    • 利用WebLogic的wlst.sh脚本执行系统命令
    • 通过crontab -l发现备份脚本的弱权限配置
# 通过WLST执行系统命令的示例 connect('weblogic','password','t3://localhost:7001') exec('java.lang.Runtime.getRuntime().exec("id")')
  1. 隐蔽通信方案
    • 使用DNS-over-HTTPS进行C2通信
    • 流量伪装成正常的API请求格式
    • 设置每天固定时段激活的定时任务

4. 蓝队反击:从异常日志到完整溯源

演练进行到第36小时,防守方开始有所反应。通过复盘蓝队分享的日志,我们了解到他们的检测逻辑:

  1. 初始检测点

    • WebLogic access.log中出现大量/ws_utc/config.do的POST请求
    • 中间件日志中检测到异常的ClassLoader调用链
  2. 行为分析线索

    • HIDS捕获到oracle用户突然执行whoami /all
    • 网络流量分析发现异常的DNS隧道特征
  3. 溯源技术栈

    • 通过ELK聚合各节点日志时间线
    • 使用Apache Kafka实现实时事件流分析
    • 最终定位到初始攻击入口点

防御方checklist

  • [ ] 定期扫描未授权开启的Web服务测试页
  • [ ] 监控ws_utc目录下的文件变更
  • [ ] 对中间件的ClassLoader行为建立基线
  • [ ] 限制服务器出站DNS查询权限

5. 漏洞防御的立体化方案

真正的安全防护需要层层设防。针对此类漏洞,我们建议企业实施以下防御矩阵:

  1. 网络层控制

    • 使用微隔离技术限制中间件服务器的网络连接
    • 对管理接口实施IP白名单访问控制
  2. 主机层加固

    • 按照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
  1. 应用层防护
    • 部署RASP解决方案拦截异常类加载
    • 对上传文件实施内容签名校验
    • 定期进行红蓝对抗演练验证防护效果

在最近一次复测中,客户按照我们建议的方案改造后,同类攻击的平均检测时间从原来的48小时缩短到了19分钟。

http://www.gsyq.cn/news/1505977.html

相关文章:

  • 5个真实场景告诉你:为什么你需要这款离线音频转写神器
  • 3步打造专属Office界面:Office Custom UI Editor零代码定制指南 [特殊字符]
  • POE接口EMC实战:从电路防护到PCB布局的完整设计指南
  • 5个必学的commitlint配置技巧:让团队提交信息从混乱到规范
  • 基于Kettle的企业级可视化数据集成平台架构设计与技术实现深度解析
  • 云原生 AI 平台:Kubernetes 智能调度器如何让 GPU 利用率翻倍
  • Sketch MeaXure终极指南:3分钟掌握设计标注自动化神器
  • 构建数字知识网络:Omeka开源平台如何重塑文化遗产数字化管理
  • 揭秘Genesis Plus GX:如何用精准模拟技术复活世嘉经典游戏机
  • 用Python+Requests+BeautifulSoup爬取Boss直聘岗位信息(附完整源码与防封策略)
  • 无线充电电路最少元器件方案汇总
  • 深度解析NewTab-Redirect:5个专业技巧实现完美新标签页重定向
  • 罗氏虾工厂对比:2026年五大罗氏沼虾养殖场实力深度解析 - GrowthUME
  • KMS智能激活工具:Windows和Office全系列永久激活完整指南
  • Go 后端服务开发:服务网格 Sidecar 注入与流量治理的工程实践
  • 西安回收名表门店推荐|五大正规商家实力排行,禹竞名奢汇综合实力第一 - 名奢变现站
  • 2026年MIM加工厂家选购参考指南:精密MIM、非标MIM、硬质合金MIM、粉末注射成型零件优质厂商汇总 - 海棠依旧大
  • Linux开机自启动服务创建
  • 2026纸护角胶水哪家强?资深采购的五家优选名单 - 品研笔录
  • 3步掌握猫抓插件:从网页资源嗅探到专业下载的完整路径
  • ReaLTaiizor:现代WinForms界面设计的革命性解决方案
  • 2026年花雕罗氏虾工厂怎么选?熟醉罗氏虾供应商对比评测指南 - GrowthUME
  • 超自动化运维的三个阶段:脚本化、平台化、智能化
  • HX8347 TFT屏的3线SPI驱动详解:从数据手册到代码实现的避坑指南
  • 西安装修公司推荐:不同预算对应高性价比选择 - 信息热点
  • SDXL VAE半精度优化:彻底解决FP16黑色噪点问题的终极方案
  • MOSFET选型实战指南:从参数解析到场景化决策
  • 手把手教你用Vivado 2019.1在UltraScale FPGA上搭建SDI视频处理系统(含KU040/ZU19EG工程源码)
  • 30分钟搞定黑苹果:这款免费神器让OpenCore配置变得如此简单
  • [智能体-339]:LangGraph 节点返回值 完整规则总结