DC-1 Writeup
- 1DC-1 Writeup本文
- 2DC-2 Writeup
仅供安全学习,环境均为本地虚拟机或 CTF 靶场。请勿用于未授权目标。
介绍
目标是 root shell。
分析
nmap 扫描得知:
- OS: Debian
- Kernel: Linux 3.2 - 3.6
- Web Server: Apache httpd 2.2.22
- CMS: Drupal 7
- 开放的 TCP 端口:22, 80, 111
通过 CVE-2018-7600,使用 msfconsole 拿到 www-data 的 shell:

flag 1
第一个 flag 让我们去找 Drupal 的配置文件:

flag 2
注意到 /var/www/sites/default 下的 settings.php:

我们可以得到 Drupal 数据库的一个用户名和密码。
flag 3
进入数据库后,注意到 flag3:

但是乍一看好像没给任何信息?
注意到这个 flag3 对应的 uid 为 1,在 users 表中确认到:
- username:
admin - uid: 1
- 对应的密码哈希
$S$DvQI6Y600iNeXRIeEMF94Y6FvN8nujJcEDTCP9nS5.i38jnEKuDR
尝试注册一个新用户再通过 SQL 替换密码哈希,结果注册用户要求管理员通过且注册时不能填写密码。所以得找找其他办法。
注意到这个计算密码哈希的脚本:
www-data@DC-1:/var/www/scripts$ ls password-hash.shpassword-hash.shwww-data@DC-1:/var/www/scripts$执行后提示我们:
To run this script without the --root argument invoke it from the root directoryof your Drupal installation as
./scripts/password-hash.sh按照指示运行:
www-data@DC-1:/var/www$ ./scripts/password-hash.sh 123
password: 123 hash: $S$DhnR5dwKRomrHLQBklwV4Xb/JjiQIy2NUKwZqhOw5gbQp692NFDn
www-data@DC-1:/var/www$得到 123 的哈希 $S$DhnR5dwKRomrHLQBklwV4Xb/JjiQIy2NUKwZqhOw5gbQp692NFDn
替换 admin 密码:

登录后成功在文章列表中找到 flag3:

flag 4
根据 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.
这里有个双关:shadow 既指“阴影”,又指 /etc/shadow,同时指引我们使用 -exec 选项。
Q:但是什么命令有 -exec 选项呢?
A:注意到我们常用的命令中,find 带有 -exec 选项。
find -exec 确实可以用于执行其他程序,但是通常情况 find 的权限是 755:

检查 DC-1 的 find:

天哪竟然是 SUID,看来是作者故意改的,说明就该用这个。
先看看 /etc/shadow:

发现了 flag4 用户及其家目录,于是:

flag 5
flag4 的内容明示我们找 /root,众所周知普通用户无权进入 /root,作者也没给后门,所以…
通过 SUID 的 find 提权到 root:2



