恒美微站 Logo 恒美微站
  • 首页
  • 关于我们
  • 建站服务
  • 主题模板
  • 案例展示
  • 资讯中心
  • 联系我们

DC-1靶机渗透实战:从Drupal漏洞到Root提权的完整记录

  • 首页
  • 资讯中心
  • /
  • DC-1靶机渗透实战:从Drupal漏洞到Root提权的完整记录

相关资讯

50个Claude2提示词拆解:句式模板、应用场景与实战技巧 2026/10/6 6:57:29
嘉立创EDA专业版晶振电路PCB设计实战指南 2026/10/6 6:57:29
伺服系统接口接线与信号控制全解析 2026/10/6 6:57:29

最新资讯

SE-VLN: A Self-Evolving Vision-Language Navigation Framework Based on Multimodal Large Language M...
Understanding Large Language Models‘ Ability on Interdisciplinary Research
Applying the Chinese Wall Reverse Engineering Technique to Large Language Model Code Editing
Is Large Language Model Performance on Reasoning Tasks Impacted by Different Ways Questions Are A...
Extracting Visual Facts from Intermediate Layers for Mitigating Hallucinations in Multimodal Larg...
【SI_DSI3 01】DSI3测试方案

今日推荐

2026 AI 开发全家桶落地指南:TaoToken 统一 Key 打通 IDE 插件、Agent 与自动化代码审查全链路配置实测
MR25H40CDF+STM32F031C6工业级高可靠数据存储方案
MRAM+STM32工业断电数据保全实战指南

本周热门

MR25H40CDF + PIC18F65K40:工业记录仪高可靠存储实战
基于STM32的数控恒压恒流电源设计:从硬件到PID调参全解析
LT9211 MIPI重定时器原理与双路扇出实战指南

本月精选

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证
2026 大模型集体涨价:用 Python 做企业 Token 成本测算与选型避坑(附配置)

DC-1靶机渗透实战:从Drupal漏洞到Root提权的完整记录

发布时间:2026/10/6 7:02:30
DC-1靶机渗透实战:从Drupal漏洞到Root提权的完整记录 简介面向网络安全初学者的夺旗CTF实操教程以 Vulnhub DC-1 靶机为载体完整演示 5 个 flag 获取全过程。教程从环境搭建入手涵盖 Kali 2023 桥接配置、arp-scan 内网扫描、nmap 端口探测、Drupal 漏洞利用及 Metasploit 模块使用并逐步介绍 SUID 提权、Python 反弹 shell、配置文件查找、MySQL 数据库交互和 John the Ripper 密码破解等关键技能。资源仅含 1 个 PDF 文件约 1.82MB便于下载阅读作者对每条命令均亲手验证相当于一份可直接照做的渗透实战笔记。教程重点强化实战细节例如通过 find / -perm -us 查找提权文件、用 find / -name flag 定位关键信息以及修改数据库密码、SSH 登录等步骤均有明确命令示范。已有 1416 人学习适合刚接触网络攻防、希望系统完成一次完整靶机练习的读者既能理解漏洞利用思路也能积累常用提权与数据库操作命令。1. 一次完整的夺旗DC-1靶机与5个flag的真实路线我最早跑 DC-1 这个靶机是在一个网络安全夺旗练习的讨论组里。群友说「5 个 flag一晚上搞定」结果我卡在第二个 flag 整整两天。后来照着这份教程把每一步命令都手工敲过才发现这种实战教程的真正价值不是「拿到 root 有多帅」而是它把一条典型的攻击链路完整摊开在你面前局域网存活发现、端口扫描、Web 漏洞利用、SUID 提权、数据库改密、哈希破解、SSH 横向登录最后再回到提权拿 root。每一个环节都是真实渗透里会遇到的操作DC-1 只是把这些技能封装成了一台可以反复练习的靶机。教程页面上写着「温老师亲自手工验证每一步命令」这意味着你照着敲大概率能复现完整流程而不是那种「作者跑通了但读者跑不通」的教程。它适合两类人刚入门网络安全、想靠一台靶机把 Kali 工具链走通的新手以及已经接触过 CTF web 解题、但没系统整理过「从 flag1 到 flag5」完整流程的从业者。你能复现的不只是 5 个 flag更是一套可以迁移到其他 Vulnhub 靶机的操作习惯。下文我会把每条命令的意图、参数含义和容易翻车的点补全尽量让你少走我走过的弯路。2. 环境准备与信息收集桥接网络、arp-scan、nmap 扫出第一道门2.1 环境搭建的三个前置条件桥接模式、VM 工具与同网段DC-1 是 Vulnhub 上一台非常经典的靶机下载下来是一个 vm 文件用 VMware 直接打开就能启动。这台靶机故意不提供任何用户名和密码所有凭据都要靠自己打出来所以环境准备阶段唯一的目标是让 Kali 和 DC-1 在同一个局域网里并且能被互相发现。教程里明确要求两张虚拟网卡都设置成「桥接模式」。我解释一下为什么桥接模式会把虚拟机网卡直接接入物理机所在的局域网相当于局域网里多了一台独立主机。此时 Kali、DC-1、物理机三者同网段彼此能直接访问。如果图省事选了 NAT靶机被藏进 VMware 的虚拟内网里Kali 的 arp-scan 大概率扫不到它后面所有步骤都会卡死在第一步。这是整条流程里第一个「环境问题比技术问题更致命」的坑。网络模式虚拟机能否被局域网其他主机看到是否适合本靶机桥接模式能与物理机同网段推荐NAT 模式不能被 VMware 内网隔离不推荐仅主机模式仅 VMware 虚拟网段可见不推荐我的习惯是三层确认先在两台虚拟机的 VM 设置里把网卡切到桥接再分别启动系统用ip addr确认 Kali 和 DC-1 都拿到了与物理机同网段的 IP最后三者之间互相 ping 一遍再开始扫描。很多新手跳过了 ping 验证结果 Kali 本身没拿到 IP后面所有命令都变成对空气输出。2.2 arp-scan -l 找靶机为什么不用 ping 扫网段环境就绪后打开 Kali 终端第一条命令是局域网存活主机扫描sudo arp-scan -l-l是 local 的缩写arp-scan 会遍历本地网卡所在网段向每个 IP 发送 ARP 请求并收集响应。它跟 ping 扫描最大的区别在于ARP 是二层协议只要主机在线、网卡正常就会回应 ARP 请求而 ping 依赖对方是否开放 ICMP 回显不少虚拟机默认禁 ping。所以用 ping 扫网段很容易把活靶机漏掉。这是我做内网信息收集时的固定习惯先 arp-scan 拿到存活主机列表再用 nmap 对存活 IP 做精细扫描。扫出来的结果通常有多台主机。怎么分辨哪个是 DC-1先看 MAC 地址厂商VMware 虚拟机的网卡厂商通常显示为 VMware 或 PCS Systemtechnik GmbH再看 IP 段物理机如果是 192.168.1.100靶机往往落在 192.168.1.100–200 这一段里。教程里扫到的靶机 IP 是 192.168.1.155。注意家用路由器、手机、智能设备都会出现在 arp-scan 结果里列表很长时不要慌按 CtrlF 搜 VMWare 是最高效的办法。如果连续扫描两次某个 IP 的 MAC 地址没变、且厂商是虚拟设备厂商那基本就是靶机。2.3 nmap 端口扫描结果解读22、80、111 各自的角色锁定靶机 IP 后下一步是端口扫描教程用的命令很朴素nmap 192.168.1.155默认的 nmap 扫描会探测 1000 个常用端口DC-1 返回了三个开放端口端口服务在本次夺旗流程里的角色22/tcpSSH后面横向登录到 flag4 用户时使用80/tcpHTTP主要攻击面Drupal 网站111/tcprpcbind本靶机未使用不必深挖新手在这里最容易犯的错是看到 111 端口就去想 NFS 挂载、想 rpcbind 漏洞。rpcbind 确实可能暴露 NFS 共享但 DC-1 的设计攻击面不在这里教程的路径是让你从 80 端口进。我自己的习惯是先开浏览器访问一下 80 端口同时跑一条更完整的服务版本扫描nmap -sV -sC -p 22,80,111 192.168.1.155-sV探测服务版本-sC运行默认的 NSE 脚本。这一步能确认 80 端口跑的是 Drupal还能顺带看到版本信息版本信息直接决定后面 Metasploit 模块的选择。浏览器访问http://192.168.1.155会看到一个带用户名密码登录框的 Drupal 默认页面。这里要特别说一下这个登录框不是 flag它是入口它引导你去思考「Drupal 有没有已知漏洞」。至此信息收集阶段结束攻击路径已经清晰80 端口的 Drupal 公开漏洞库匹配 直接用 Metasploit 打进。3. Drupal漏洞利用与 flag1Metasploit 打入靶机的完整流程3.1 指纹确认与模块搜索search drupal 之后怎么选浏览器确认是 Drupal 站点后不要急着点登录框试弱口令直接启动 Metasploit 搜索现成模块msfconsole search drupalsearch 返回的结果是一串模块列表每一行开头带序号。教程里用的是use 1也就是结果列表里第一个模块。不同 Metasploit 版本里列表排序可能有细微差异但第一条通常就是 Drupalgeddon2 对应的 RCE 模块路径形如exploit/unix/webapp/drupal_drupalgeddon2。这个漏洞对应 CVE-2018-7600影响 Drupal 6/7/8 三个大版本核心问题是 Drupal 的 Form API 在处理数组递归时存在参数注入攻击者无需认证就能执行任意 PHP 代码。DC-1 用的 Drupal 版本正好命中。选模块不能只看名字像不像要看两件事一是不是 RCE 类型二是不是unix/webapp路径。两者都满足才有利用价值。有些 drupal 模块只是辅助扫描器执行完只会告诉你漏洞存在拿不到 shell选错等于白忙。3.2 参数配置与 exploitRHOSTS、LHOST 与会话建立选定模块后先看参数这是一个好习惯不要上来就 exploituse 1 show optionsshow options会列出模块的全部可配置项。必填项是 RHOSTS表示目标地址这里就是靶机 IP。如果模块需要反弹 shell还会要求设置 LHOST 和 LPORT。LHOST 指的是 Kali 自己的 IP必须填对否则 payload 反弹回来找不到路LPORT 保持默认即可也可以用 4444 或别的空闲端口。配置命令如下set rhosts 192.168.1.155 exploitexploit和run是同一个动作的两种写法执行后等待一两秒。如果屏幕上出现 session opened 或 Meterpreter session 的提示说明利用成功你已经在这台靶机上拿到了一个 shell。这个瞬间很有成就感但它只是起点当前身份是 www-data离 root 还差着权限提升这一步。教程后面的所有操作都在为「把 www-data 变成 root」这一目标服务。提示exploit执行后一直卡住或报 Connection refused优先查两件事——LHOST 是不是误填成了 127.0.0.1靶机 IP 是不是因为 DHCP 租约过期已经变了。这两个原因占了八成失败率。3.3 拿到 shell 之后flag1.txt 与第一个提示会话建立后先执行shell这一步是在 Meterpreter 会话里派生一个系统命令行shell lsMetasploit 拿到的这个 shell在 DC-1 上的权限是 www-data也就是 Web 服务用户。ls能看到当前目录下有 flag1.txt说明我们正落在 Drupal 的站点目录里。直接读取它cat flag1.txtflag1 的内容是一句提示大意是「下一个任务需要找一个配置文件」。Drupal 的配置路径是sites/default/settings.php这句话直接为后面的 flag2 和数据库账密埋了线索。到这里第一个 flag 的完整链路是web 指纹识别 → 漏洞库匹配 → RCE 拿 shell → 文件读取。这条路径在真实渗透测试里完全成立很多企业站点就运行着带公开 CVE 的 CMSMetasploit 只是把手工利用过程自动化了。3.4 反弹交互式 shellpython pty 与后续操作的基础从 Metasploit 或 Web 漏洞拿到的 shell 通常是非交互式的。典型表现是没有完整环境变量、没有 TTY执行su、vim、ssh这类命令会直接报错说「not a terminal」方向键和 Tab 补全也全部失灵。所以下一步是把 shell 升级成交互式python -c import pty;pty.spawn(/bin/sh)这条命令的原理是调用 Python 的 pty 模块派生一个带伪终端的/bin/sh。DC-1 上预装了 Python所以能用这种方式。执行后 Tab 补全、CtrlC 中断这些基本终端特性就回来了。此时执行whoami确认身份看到 www-data 就老老实实进入提权环节。不要小看这步操作后续对 MySQL 执行交互命令时一个像样的终端能省掉大量排错时间。这里也补充一句如果目标机器没有 Python常见替代方案是script /dev/null -c bash或者用 socat但 DC-1 用 Python 就足够。4. SUID提权与数据库链路从 root shell 挖到 flag2 与 flag34.1 SUID 提权原理为什么 passwd 能成为提权跳板拿到 www-data 的 shell 后第一件事是想办法提升权限到 root。教程用的是 SUID 提权这是 Linux 上最经典、也最适合新手理解的提权思路。SUIDSet User ID是文件权限位里的特殊位。当一个可执行文件的属主是 root、并且设置了 SUID 位时普通用户执行这个文件会临时以 root 身份运行。系统里最典型的例子是/usr/bin/passwd任何用户都要能修改自己的密码而/etc/shadow只有 root 能写所以 passwd 程序必须带 SUID 位让普通用户执行它时临时获得 root 权限来写 shadow 文件。这是系统设计上的必要之恶也恰恰是渗透测试可以利用的点——如果某个带 SUID 位的 root 程序能被我诱导去执行任意命令或派生一个 shell权限就直接提升到 root。DC-1 就存在这种可利用的配置。做法不是去构造复杂漏洞而是把系统里所有带 SUID 位的文件列出来再从里面挑一个能拉起 shell 的。4.2 find / -perm -us 命令拆解与 exec 执行细节查找 SUID 文件的命令本身就是教程的重点知识点find / -perm -us -type f 2/dev/null一条条拆开看含义find /从根目录开始遍历整个文件系统-perm -us-perm后面的连字符表示「只要文件权限里包含 SUID 位就命中」不是要求权限完全等于 us这是新手最容易误解的地方-type f只要普通文件把目录和符号链接过滤掉2/dev/null把权限不足等错误信息丢弃。不对普通文件加这个满屏 Permission denied 会淹没真正的结果。这条命令跑出来的列表会很长几十个文件都很正常里面大多是 mount、chsh、passwd、su、sudo 这类系统工具。教程从列表里挑中了 passwd进入它所在目录执行提权cd /usr/bin find passwd -exec /bin/sh \;关键在-exec对 find 找到的每个结果执行后面紧跟的命令。这里 find 找到的结果是/usr/bin/passwd执行的命令是/bin/sh。由于 passwd 带 SUID 位且属主是 root被拉起/bin/sh也以 root 身份启动。执行成功后命令提示符从$变成#这个变化就是「现在我是 root」的直接信号。提示命令结尾的\;是-exec的固定收尾写法反斜杠加分号表示命令行结束。省略掉这个find 会继续解析下一个参数直接报语法错误。执行前最好先ls -l /usr/bin/passwd确认这个文件的权限位里有 s避免找了半天才发现环境和你预期不一致。4.3 settings.php 挖出 flag2配置文件里的明文数据库账密提权成功只是拿到了一个 root shell但 flag1.txt 已经留下了线索下一个目标在配置文件里。Drupal 的配置路径是sites/default/settings.php直接读取cat sites/default/settings.php在配置数组里能看到 flag2同时还有一段 MySQL 数据库连接信息里面有数据库名、用户名和密码而且是明文。看到这一行时我有种「靶机把饭喂到嘴边」的既视感但现实里很多内网站点的配置文件就是这么裸奔的。这段配置就是后面所有数据库操作和网站后台登录的凭据来源。到这里第二个 flag 到手还额外收获了一组数据库账密。接下来的思路很顺用这组账密登录 MySQL看看库里存了什么。4.4 MySQL 改密与 flag3用网站自己的脚本生成合法哈希用 settings.php 里读到的账密登录 MySQLmysql -u 用户名 -p密码 -e show databases;登录后定位到 Drupal 的数据库看 users 表select * from users;执行结果里有一个 admin 用户密码字段显示为一长串不可读的哈希。Drupal 的密码哈希不是纯 md5而是带盐的 SHA-512 变体。直接 UPDATE 成明文「123456」是没用的登录时系统会把输入明文重新哈希再比对只有写入正确的哈希才能通过验证。所以正确的做法是借用系统自己的哈希生成工具。先在靶机上搜索带 hash 字样的文件find / -name *hash*在/var/www/scripts目录下能找到password-hash.sh这是 Drupal 站点自带的密码哈希生成脚本。执行它把明文转成合法哈希php scripts/password-hash.sh 123456拿到输出的一长串哈希后回到 MySQL 里替换 admin 的密码字段update users set pass这里粘贴生成的哈希 where uid1;uid1是 Drupal 中 admin 的默认 uid比用nameadmin更精确避免同名字段干扰。改完后退出 MySQL回到浏览器用admin / 123456登录网站。登录后在第一个内容板块里就能看到 flag3。这条线很有意思它不靠更多漏洞而是靠「配置文件泄露账密 → 数据库改密 → 后台登录」这条信息链自然推出来的。5. 避坑排查Metasploit、SUID、John 与 SSH 四个高频翻车点以下四条坑是我自己和帮别人复现这台靶机时真实遇到过的每条按「现象 → 原因 → 解决」的记录方式给出。5.1 坑一Metasploit 会话建立成功却没有 shell 回显现象exploit执行后屏幕提示 session opened但输入shell后没有任何回显或者敲命令没反应。 原因绝大多数情况是 LHOST 配置不对。部分 Drupal 模块的 payload 是反弹型Meterpreter 需要从靶机主动连回 Kali 的 LPORT。如果 LHOST 填的是 127.0.0.1 或 VMware 的 NAT 网段地址反弹流量根本到不了 Kali。 解决重新查看模块参数show options确认 LHOST 是 Kali 桥接网卡的 IP必要时手动set lhost 192.168.1.xxx然后重新exploit。如果靶机 IP 在扫描后发生过变化也要同步更新 RHOSTS。建议每次开始打靶前先sudo arp-scan -l复查一遍靶机 IP再配置模块。5.2 坑二SUID 提权命令找不到文件或提示符没变现象执行find passwd -exec /bin/sh \;后提示find: passwd: No such file or directory或者命令执行了但提示符还是$没有变成#。 原因第一个问题多半是因为没有先cd /usr/binfind 在当前目录找不到 passwd第二个问题可能是系统默认/bin/sh指向了新版本 bash它会在启动时主动丢弃 SUID 权限导致即使从带 SUID 的 passwd 派生 shell权限也被降回原用户。 解决先确认文件路径和权限位ls -l /usr/bin/passwd看权限位是否含s。再用绝对路径执行提权find /usr/bin/passwd -exec /bin/sh \;。DC-1 上/bin/sh指向 dash没有 bash 的权限丢弃行为所以教程命令能稳定成功。判断是否提权成功不要只看提示符执行id看 uid 是不是 0 是最稳妥的验证方式。5.3 坑三John 编译失败或破解不出结果现象源码下好后make直接报command not found或者编译成功但./john shadow.txt跑完没有任何输出。 原因command not found是 Kali 默认没装完整编译工具链缺 make 或 gcc破解无结果的原因比较多最常见的是 shadow.txt 内容格式不对、只复制了哈希段而不是完整的用户名:哈希一行还有一种是 John 没能自动识别哈希类型。 解决先装工具链apt install build-essential装完再make。如果 make 没有正确识别平台进 src 目录执行make clean linux-x86-64指定 64 位 Linux 目标。shadow.txt 务必用完整行格式标准做法是cat /etc/shadow shadow.txt或手工把目标用户的行完整复制。对于格式比较特殊的哈希可以用./john --formatmd5crypt shadow.txt强制指定类型跳过自动检测环节。5.4 坑四SSH 登录被拒或连接后卡住现象ssh flag4192.168.1.155提示 Permission denied或者连接成功后输密码阶段卡住不动。 原因Permission denied 通常是密码输入错误或账号拼写错误——shadow 里那个用户名也叫 flag4不是 flag4.txt连接卡住则比较常见于首次连接的 host key 确认提示被终端吞掉或者当前 Kali 网络状态异常。 解决第一次连接建议加参数跳过交互确认ssh -o StrictHostKeyCheckingno flag4192.168.1.155密码提示出现后仔细输入。如果还卡住先退出用ping 192.168.1.155确认靶机在线再复查 arp-scan 确认 IP 没变。另外提醒一点教程里提到的破解密码 orange破解出来的是小写输错大小写也会被拒。6. 从 flag4 到 rootSSH 登录、二次提权与验证习惯6.1 SSH 横向登录用 orange 密码进入 flag4 用户John 破解出 flag4 用户的密码是 orange 后从 Kali 直接 SSH 登录靶机ssh flag4192.168.1.155输入密码 orange 后进入系统。这一步在渗透里叫横向移动从已控制的 root shell 转向系统中另一个真实用户。虽然当前已经是 root但以 flag4 身份登录的意义在于获得一个完整、干净的登录会话把夺旗流程里「登录 → 读用户目录 → 发现下一个提示」的闭环走完。教程里也提到了可以用虚拟机图形界面直接登录靶机但我偏好 SSH更贴近真实工作方式。6.2 flag4.txt 与二次 SUID 提权登录后执行ls能看到 flag4.txt读取它cat flag4.txt内容是一句提示你能用同样的方式在 root 中找到 flag 吗这就是一张现成的提权邀请函。既然第 4 章已经验证过这台机器上的 SUID 提权路径直接复用find /usr/bin/passwd -exec /bin/sh \; cd /root ls cat thefinalflag.txt最终 flag 的内容是一句道贺大意是「希望你玩得开心并学到了一些新技能」。到这里DC-1 的 5 个 flag 全部拿下。6.3 验证习惯把一次打通变成可复用方法打完这台靶机后我复盘最有价值的不是 5 个 flag而是它把整条链路完整串了起来网络发现 → Web 漏洞利用 → SUID 提权 → 配置泄露 → 数据库改密 → 哈希破解 → 横向移动 → 二次提权。从那以后我每次打一台新的 Vulnhub 靶机都强制自己走一遍这个完整闭环并记录每一步的输入输出和当前身份状态即使中间某个环节打不动也清楚自己缺在哪一课。这套习惯后来打 CTF 夺旗赛和其他渗透靶机时直接复用帮我省了很多重复排错的时间。希望帮到你。本文还有配套的精品资源点击获取

关于恒美微站

恒美微站专注于为个体商户、工作室提供极简自助建站服务,让每个人都能轻松拥有专业网站。

快速链接

  • 关于我们
  • 建站服务
  • 主题模板
  • 案例展示
  • 资讯中心

服务项目

  • 可视化建站
  • 拖拽编辑
  • 主题定制
  • SEO 优化
  • 网站托管

联系方式

  • 📍 地址:北京市朝阳区建国路 88 号
  • 📞 电话:400-888-8888
  • ✉️ 邮箱:info@hmyw.cn
  • 🕐 时间:周一至周日 9:00-18:00

© 2024 恒美微站 hmyw.cn 版权所有 | 京 ICP 备 12345678 号