Vulnhub_DC1 记录
经验 & 总结
- 对Drupal这个架构还是不熟悉,找配置文件找了半天,最后还是靠搜索引擎。
- MSF框架搜索出来的攻击exp好几个,得想想办法批量测试(虽然真实项目应该遇不到,但是能偷一点懒是一点嘛)
- 距离上一次做靶机已经有一段时间了,中间这段时间也没有看相关的内容,手有点生了。真的是业精于勤荒于嬉
步骤流水
-
网络扫描,确定靶机IP(我的netdiscover好像有问题,扫描提示完成之后需要等一会儿才能显示结果)。
-
端口扫描
端口 描述 22 SSH 80 apache2.2.22、Drupal 111 rpcbind 44237 RPC 111和44237没见过
1. 建立立足点
-
涨知识了
大概意思是:apache保护文件名中带有
.ht
的文件不被下载感兴趣的页面
xmlrpc.php
-
网页源码也没有感兴趣的点。
-
使用msf的
exploit/unix/webapp/drupal_drupalgeddon2
得到一个shell,权限为www-data
2. 提权
-
在当前目录下就可以找到第一个flag
-
根据提示查找config文件
大致翻了一下这个文件,里面并没有找到有用的信息。
上网搜了一下,Drupal的配置文件为
sites/default/settings.php
其中找到了数据库的配置信息
-
连接数据库,因为mysql数据库并没有对外开放,因此在shell中进行操作。
翻了翻数据库,能看到drupal登录用户的密码hash,但是感觉并不是重点,因为已经通过web获得了一个立足点,cms登录用户已经显得不是那么重要了。
尝试进行udf提权,发现没有写入权限,同时也发现自己到现在都没有对主机信息进行搜集。
3. 主机信息搜集
利用LinEnum.sh脚本搜集信息,将报告导回本地查看。
-
内核版本为
Linux version 3.2.0-6-486
-
存在一个用户名为
flag4
,其HOME目录下有个flag4的文本文件 -
看到了一个exim4进程,但是用户很诡异,而且这个程序有s属性
-
查查看其他有s属性的命令
4. 继续提权
-
针对内核版本查找提权途径,但是两个程序都无法提权。
-
读一下
flag4.txt
,我也不知道这个“相同的方法”指的是啥,我又没有ls、cat root目录下内容的权限。 -
试试看Exim,搜出来一大堆
-
查看当前版本,有点尴尬,并不在列表里
-
尝试通过find提权,发现可以提权(之所以最后尝试这个,是因为之前忘记查看带有suid权限的程序了,信息搜集的最后一步是补上去的)
-
获得一个root权限的shell
5. 消失的flag
-
回到得到cms配置文件的那一步
-
利用配置文件中的信息,登录到数据库,可以看到Drupal的用户名和密码。
-
查看Drupal详细版本号为7.24
-
searchsploit到一个添加Admin用户的脚本
-
利用脚本添加一个账户
-
登录后看到flag3的提示
Special PERMS will help FIND the passwd - but you'll need to -exec that command to work out how to get what's in the shadow.
-
另一种添加用户的方式,既然有了数据库权限,就可以手工添加账号。利用Drupal自身提供的脚本
./scripts/password-hash.sh
加密自己的密码,通过数据库添加一个账号,并修改成管理员权限。 -
根据提示,使用find命令查看shadow文件可以得到用户密码的hash
-
利用hashcat尝试爆破,很快就可以爆破出flag4的密码,但是root的一直都没有出现(等不及了,要睡觉)
-
使用ssh成功登陆,并读取flag4.txt