首页
/
行业洞察
/
正文
INDUSTRY INSIGHT · 深度
DC-1靶场保姆级教程⭐️⭐️⭐️
📅 2026/10/15 7:18:42
✍️ 爱科研究院
👁 阅读 3,247
一、DC-1靶场介绍DC-1 是 VulnHub 平台上经典的入门级渗透测试靶场基于 Linux 环境搭建核心围绕Drupal 7 CMS 漏洞利用展开覆盖主机发现、端口扫描、CMS 指纹识别、漏洞利用、数据库操作、SUID 提权等基础渗透测试知识点难度较低适合网安新手入门实操通过获取靶场内多个 flag 并最终拿到 root 权限完成靶场渗透。二、DC-1靶场解题思路整体遵循渗透测试标准流程以获取 flag 为导向通过靶场内置 flag 的提示信息逐步推进操作核心思路为环境配置将 Kali 攻击机与 DC-1 靶机配置为 NAT 模式保证二者局域网互通信息收集通过 arp-scan 发现靶机 IPnmap 扫描开放端口 / 服务whatweb 识别 CMS 版本与指纹漏洞利用借助 Metasploit 框架利用 Drupal 7 的 Drupalgeddon2 漏洞获取靶机初始权限信息提取从靶机中查找 flag通过 flag 提示找到 CMS 配置文件提取数据库账号密码权限横向移动连接数据库修改 Drupal 后台管理员密码登录后台获取新的 flag 与提权提示权限提升通过查找 SUID 权限文件利用 find 命令的 exec 特性实现提权获取 root 权限最终收尾在 root 目录下找到最终 flag完成整个靶场渗透。三、DC-1靶场解题过程一 环境配置1、DC-1靶场官方下载链接点击即可下载 https://download.vulnhub.com/dc/DC-1.zip。下载完成后打开VMware进行导入打开即可。(注意只显示登录的位置即是安装好DC-1靶场的靶机剩下的渗透工作需要自行去完成)。2、将 Kali Linux 攻击机和 DC-1 靶机的网络模式均修改为NAT 模式确保两台机器处于同一局域网能够互相通信。NAT 模式会让两台虚拟机处于同一虚拟局域网Kali 能扫描到 DC-1 的 IP二者才能互相通信如果用桥接/仅主机模式可能出现网段不一致、无法互通的情况后续所有扫描/攻击操作都无法进行。二主机发现在 Kali 攻击机中执行arp-scan -l命令扫描局域网内存活的主机从扫描结果中识别出 DC-1 靶机的 IP 地址为192.168.159.147。DC-1 靶机的 IP 是动态分配的没有固定地址必须先找到靶机的 IP后续的 nmap 扫描、漏洞攻击、网页访问才能指定目标arp-scan -l是局域网主机发现的常用命令能快速扫描出同一网段内所有在线设备的 IP 和 MAC 地址。1、arp-scan最稳、最快、最适合靶场专门扫同一局域网的机器准确率极高。arp-scan -l #-l扫描本地局域网 #注意 .1一般是 VMware 的虚拟网关负责 NAT 转发。 .2一般是 VMware 的虚拟 DHCP 服务器负责给虚拟机分配 IP。 .254一般是虚拟网络的广播地址或其他网络设备。 192.168.159.147是一台独立的虚拟机设备符合 DC-1 靶机的角色。2、nmap万能扫描最通用Kali 自带功能最强。扫网段存活主机不扫端口只找在线机器。nmap-sn192.168.159.0/24#-sn只主机发现不扫端口3、netdiscover非常适合虚拟机内网主动 被动扫描适合 VMware/NAT 网络。netdiscover-r192.168.159.0/24三端口与服务扫描1、执行nmap 192.168.159.147命令扫描靶机开放端口发现开放 22/tcpSSH、80/tcpHTTPApache 2.2.22、111/tcprpcbind端口且从 80 端口的扫描结果中发现靶机由Drupal 7搭建。端口是靶机对外的「入口」不同端口对应不同的服务而服务存在漏洞是渗透的关键比如 80 端口是网页服务说明靶机有网站可从网页入手找漏洞22 端口是 SSH后续提权后可通过 SSH 登录靶机。 nmap 的核心作用是识别靶机「开放了什么服务、用的什么版本」版本信息是找漏洞的关键比如Drupal 7有已知的 Drupalgeddon2漏洞。2、在浏览器打开192.168.159.147:80进行访问查看网站信息。四CMS 指纹精准识别为确认 CMS 版本执行whatweb -v 192.168.159.147命令精准识别出靶机使用Drupal 7版本为后续漏洞利用提供依据。CMS 版本Drupal 7从MetaGenerator[Drupal 7 (http://drupal.org)]直接看到。这是 DC-1 靶场最核心的突破口因为 Drupal 7 存在已知的远程代码执行漏洞Drupalgeddon2。五漏洞利用MSF 框架kali中自带的MSF模块内置存在Drupal7的远程代码执行漏洞Drupalgeddon2。因此我们利用该模块进行攻击复现。#执行msfconsole进入 Metasploit 框架msfconsole#执行search Drupal搜索 Drupal 相关漏洞利用模块选择exploit/unix/webapp/drupal_drupalgeddon2模块Drupalgeddon2 漏洞适配 Drupal 7search Drupal exploit/unix/webapp/drupal_drupalgeddon2#执行show options查看模块配置项设置RHOSTS为靶机 IP192.168.183.130RPORT为 80show optionssetRHOSTS192.168.159.147setRPORT80#执行exploit发起攻击成功获取靶机的 meterpreter 会话。exploit#使用ls进行查看发现flag1.txt的文件。MetasploitMSF是渗透测试的神器内置了大量漏洞的利用模块无需手动编写漏洞利用代码新手也能快速利用已知漏洞Drupal 7 存在经典的 Drupalgeddon2 漏洞CVE-2018-7600这个漏洞属于远程代码执行漏洞利用后能直接在靶机上执行命令获取靶机的操作权限设置 RHOSTS/RPORT告诉 MSF 框架「攻击的目标是谁、目标端口是多少」这是漏洞利用的必要配置meterpreter 会话是 MSF 生成的远程控制会话能在 Kali 上直接操作靶机相当于拿到了靶机的远程桌面。六提取 flag1 与数据库信息在 meterpreter 会话中执行ls命令发现并读取flag1.txt内容为Every good CMS needs a config file - and so do you.提示查找 CMS 配置文件根据 Drupal 7 默认路径访问/var/www/sites/default/settings.php找到flag2及数据库连接信息数据库名 drupaldb、用户名 dbuser、密码 R0ck3t。所有 CMSWordPress、Joomla、Drupal都有固定的默认配置文件路径新手记熟这些路径渗透时能直接定位 1、WordPress/wp-config.php数据库配置 2、Joomla/configuration.php数据库配置 3、Drupal/sites/default/settings.php数据库配置。 这些路径是行业共识几乎所有入门靶场 / 实战场景中CMS 的配置文件都不会偏离默认路径除非人为修改但新手靶场不会这么做。七反弹交互式 shell在 meterpreter 会话中执行shell获取基础 shell再执行python -c import pty;pty.spawn(/bin/bash)反弹为交互式 bash shell方便后续数据库操作。# 自带的shell是残缺shell没有补全、没有历史命令、无法执行部分 Linux 命令比如 mysql操作非常不方便# 交互式 bash shell 是完整的 Linux 终端支持命令补全、历史记录、所有 Linux 命令后续连接数据库、执行提权命令都需要完整的 shell 环境#用 python 反弹是因为靶机默认安装了 python这是 Linux 系统的通用操作无需额外安装软件.八数据库操作与后台密码修改执行mysql -u dbuser -p输入密码 R0ck3t 连接 MySQL 数据库执行SHOW DATABASES;查看数据库执行use drupaldb;进入 Drupal 对应数据库执行show tables;查看表执行select * from users;查询用户表获取 admin 管理员的密码哈希值回到/var/www目录执行php scripts/password-hash.sh yang生成新密码yang的 Drupal 加密哈希值重新进入mysql环境执行UPDATE users SET pass 新哈希值 WHERE nameadmin;替换 admin 的密码哈希值。全部命令如下mysql-udbuser-pshow databases;use drupaldb;show tables;select* fromusers;exit;php scripts/password-hash.sh yang UPDATEusersSET pass新哈希值WHEREnameadmin;九登录后台提取 flag3访问靶机 80 端口的 Drupal 后台使用账号 admin、密码 yang 成功登录.在后台仪表盘找到flag3内容为Special PERMS will help FIND the passwd - but youll need to - exec that command to work out how to get whats in the shadow.提示通过特殊权限SUID和 find 的 exec 命令提权查找 shadow 文件信息。flag3 的提示是提权关键Special PERMS指 Linux 的特殊权限SUID-exec是 find 命令的参数这句话直接提示我们要用 find 命令结合 SUID 权限实现提权找到 shadow 文件Linux 系统的密码文件。十查找靶机用户与提权准备执行cat /etc/passwd查看靶机用户发现存在flag4用户家目录为/home/flag4但当前权限无法访问在输出结果中我们重点关注到了flag4用户这一行flag4这是一个专门为靶场设计的用户账号。x表示真实的密码哈希存储在/etc/shadow文件中而不是这里。1001:1001用户 ID 和组 ID 都是 1001这是一个普通用户的标识系统用户通常 UID1000。/home/flag4该用户的家目录通常会存放与该用户相关的文件比如我们要找的flag4.txt。/bin/bash该用户可以使用 bash 作为登录 Shell意味着如果能拿到这个用户的密码就可以通过 SSH 登录。执行find / -user root -perm -4000 -print 2/dev/null查找root 权限的 SUID 文件发现/usr/bin/find具备 SUID 权限可用于提权。查看 /etc/passwd这是 Linux 系统的用户信息文件记录了所有用户的用户名、家目录、登录 shell 等信息发现 flag4 用户说明靶机有专门的 flag4 目录后续需要访问该目录获取 flag4 查找 SUID 文件SUID 是 Linux 的特殊权限如果一个命令被设置了 SUID 权限普通用户执行这个命令时会临时获得该命令所有者的权限如果所有者是 root普通用户执行该命令就会临时拥有 root 权限这是 Linux提权的经典思路 命令中2/dev/null的作用屏蔽扫描过程中的「权限不足」错误提示让结果更整洁只显示有效信息。十一SUID 提权获取 root 权限执行find ./ -exec /bin/sh \;命令利用 find 的 SUID 权限和 exec 特性成功提权为root 用户执行whoami验证为 root。find ./让 find 命令找当前目录的文件随便找个东西只是为了触发 find 的执行-exec /bin/sh \;让 find 命令 “顺便” 执行/bin/sh打开 Linux 的 shell因为 find 有 SUID 权限所以/bin/sh会以 root 身份打开 → 你就从 www-data 变成 root 了执行whoami会显示root。十二 提取 flag4 与最终 flag提权后进入/home/flag4目录读取flag4.txt内容为Can you use this same method to find or access the flag in root? Probably. But perhaps its not that easy. Or maybe it is?提示查找 root 目录下的最终 flag执行cd /root进入 root 目录执行ls发现thefinalflag.txt执行cat thefinalflag.txt读取最终 flag内容为Well done!!!! Hopefully youve enjoyed this and learned some new skills. You can let me know what you thought of this little journey by contacting me via Twitter - DCAU7完成 DC-1 靶场全部渗透操作。
📌 标签:
工业官网
设计趋势
AI 建站
SEO
获取完整报告 →
RELATED ARTICLES
推荐阅读
2026/10/15 7:18:42
给内河航道搭建立体感知网络
2026/10/15 7:18:42
《创业之路》-1041-细读商业经典 - 创业与企业管理20本书单
2026/10/15 7:18:42
AI反例生成:数学验证的范式革命
2026/10/15 8:13:47
diagram-design:用约束优先的图表设计规范提升团队协作效率
2026/10/15 8:13:47
工业Agent与实时控制:为什么Agent进不了控制回路?
2026/10/15 8:13:47
artcraft:半自动创作台的设计与实现,从素材到导出的完整管线
2026/10/15 8:13:47
FPGA通过SPI配置ADC:从寄存器解析到状态机设计
2026/10/15 8:13:47
BOOTSTRA.386 可访问性指南:为何“仅用颜色传达含义“会失效,以及用 `.visually-hidden` 与对比度兜底的完整实践
2026/10/15 8:08:47
用CLI替代向量库:代码Agent省Token四成的实战指南
2026/10/15 0:02:59
AI Coding时代的柔性之美:从静态软件到自演化软件,软件研发正在重新进化
2026/10/15 0:02:59
亨得利客户服务中心官方网点分布一览:2026年全国多城门店地址与最新联系电话公布
2026/10/15 0:02:59
防关联浏览器哪个好?三款产品实测差异解析
2026/10/13 12:25:09
流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南
2026/10/14 18:35:19
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别
2026/10/14 14:52:59
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容
2026/10/15 1:07:55
我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频
2026/10/15 5:07:59
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证
2026/10/15 8:10:01
2026 大模型集体涨价:用 Python 做企业 Token 成本测算与选型避坑(附配置)