当前位置:首页 > 渗透测试 > 正文内容

vulnhub-DC-2渗透教程

admin1周前 (10-11)渗透测试41

引言

DC-2 是一个面向初学者的 WordPress 渗透靶场,整个攻击链覆盖信息收集 → 字典生成 → 凭据爆破 → 横向移动 → 权限提升五个阶段。本教程侧重渗透思路的演进,对每一步"为什么这么做"做明确说明,而不只罗列命令。


1. 信息收集

1.1 主机发现

确认目标在线,获取 IP。

nmap -sn 172.16.1.0/24

图片.png

1.2 全端口扫描与服务识别

nmap -A -sV -p- 172.16.1.21

图片.png

扫描结果显示目标开放两个端口:

端口服务备注
80/tcpApache标准 Web 端口
7744/tcpSSH

疑似修改默认端口(22)

参数解析:-A 启用 OS 识别 + 服务版本 + 默认 NSE 脚本 + 路由追踪;-sV 单独再跑一次服务探测(提高识别强度);-p- 扫描全部 65535 端口,避免漏掉非标准端口。

1.3 配置 hosts 域名解析

为保证后续基于域名的访问能正常解析,需在本地 hosts 中追加记录:

echo "172.16.1.21 dc-2" | sudo tee -a /etc/hosts

验证:

ping -c 3 dc-2

图片.png

2.Web 渗透(WordPress)

2.1 站点指纹识别

访问 http://dc-2/,通过首页特征确认目标为 WordPress 站点。

微信图片_20261011230429_26_3.png


图片.png


结果在首页内容中暴露了 flag1:

flag1 提示要点:标准字典可能不奏效,考虑从站点本身生成专属字典;多账号切换可能是突破关键。

2.2 dirb进行目录枚举

dirb  http://dc-2

图片.png

我们经过扫描,获取到了后台管理目录/wp-admin/admin.php,我们访问该目录,发现是WordPress的后台登录页面。

图片.png

2.3 wpscan 扫描枚举用户名

wpscan --url http://dc-2 --enumerate u

图片.png

经过用户枚举,发现该web应用下面存在三个账号,分别是admin、Jerry、tom。

3.字典生成与凭据爆破

3.1 cewl 爬取站点生成字典

cewl http://dc-2 -w /tmp/dc2.txt

图片.png

工具说明:cewl(Custom Word List generator)从目标站点爬取正文,生成针对该站点的专属字典。对于小众站点(人名/术语/产品词),定制字典的命中率远高于通用字典(如 rockyou.txt)。

经过cewl密码生成工具总计生产了238条密码。

3.2 wpscan 密码爆破

wpscan --url http://dc-2 -P /tmp/dc2.txt

图片.png

爆破成功:

用户名密码
        Jerry                      adipiscing
         tom                     parturient                    

3.3 登录 wp-admin 拿 flag2

访问 http://dc-2/wp-login.php,使用 jerry 凭据登录。

图片.png

在 Pages 列表中找到 Flag 4 页面,进入后得到 flag4:

flag4 提示要点:与 flag1 呼应——再次强调字典生成工具与多账号切换,并提示剩余 flag 需要通过 SSH(端口 7744)从其他用户入手。


4. SSH 横向移动

4.1 hydra 爆破 tom 凭据

复用 cewl 字典,对 SSH(端口 7744)爆破 tom 账号:

hydra -l tom -P /tmp/dc2.txt ssh://dc-2 -s 7744 -t 4

图片.png

爆破成功:

用户密码
 tom      parturient

4.2 SSH 登入

ssh -p 7744 tom@dc-2

图片.png

登入后发现 shell 受限(rbash),无法直接执行大部分命令。

图片.png

4.3 绕过 rbash 限制

rbash 限制的本质是:清空 PATH、锁定 SHELL 环境变量、禁止修改 PATH。在该限制下,经典的 vi :set shell=/bin/bash + :shell 路径实际上无法逃逸vi 内部 exec() 时已找不到 /bin/bash,且 SHELL 被锁定。

可用的逃逸路径是利用 bash 内建命令的 BASH_CMDS 哈希表:

BASH_CMDS[a]=/bin/sh;a
export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin

图片.png

原理:BASH_CMDS 是 bash 的命令名查找关联数组,rbash 的限制作用于 PATH 与 SHELL,不会触及该哈希——将 /bin/sh 注册为名字 a 的命令后,bash 内部直接 execve() 调用,绕开 PATH 限制。

BASH_CMDS 帮你绕进了 sh,但新 shell 启动时还是会读受限的 PATH,所以 cat、vim 照样找不到。新 shell 不继承 BASH_CMDS,只继承 PATH,所以我们需要进入新的shell以后立即进行export。

绕过 rbash 后恢复正常 shell,在 tom 家目录中找到 flag3:

图片.png

flag3 提示要点:tom 一直在追 jerry,提示下一步应以 jerry 身份继续(su 切换)。


五、权限提升

5.1 sudo -l 探测

sudo -l

图片.png

我们发现tom没有sudo权限,但是由于在flag3.txt中提示我们可以使用su进行身份切换,那么我们使用su - jerry进行身份切换,由于su不需要使用sudo权限,只需要知道jerry的密码即可,根据前期的信息采集,我们已经知道了jerry的密码,下面切换即可。

5.2 切换 jerry 拿 flag4

sudo -u jerry

图片.png

在 jerry 家目录找到 flag4:

图片.png

flag2 提示要点:需要 root 权限才能访问最终 flag;提示 git 提权路径。

5.3 git 提权拿到 flag5

jerry 拥有 root 级别的 git sudo 权限。利用 git 的 pager 逃逸提权至 root:

sudo git -p help config

进入 git 的分页模式(less),输入:

!/bin/sh

图片.png

拿到 root shell 后:

cd theflag.txt

图片.png

至此,5 个 flag 全部集齐。


总结

攻击链回顾

信息收集(nmap)
   ↓
Web 渗透(wpscan / dirb)
   ↓
字典生成(cewl)
   ↓
凭据爆破(wpscan / hydra)
   ↓
横向移动(SSH + rbash 绕过)
   ↓
权限提升(sudo su + git 提权)
   ↓
flag 收割

核心收获

  1. cewl 是定制字典的利器 —— 任何站点都可作为字典源,不依赖通用字典的"运气"。

  2. 多账号切换是 WP 站点的常见突破口 —— 不要满足于拿下一个账号,剩余用户往往通向更深层。

  3. rbash 不是绝对隔离 —— vi/vim 是经典的逃逸点,遇到受限 shell 优先尝试。

  4. git -p help config 是经典提权 —— 任何允许 sudo git 的环境都应立刻排查。

拓展思考

  • 如果 cewl 字典也不够大,可以加入 cewl -d 3(爬取深度 3)或结合 crunch 生成变体。

  • 真实环境中,WordPress 站点还应关注插件漏洞(如 wp-file-manager CVE-2020-25213),本靶场暂未涉及。

  • rbash 绕过方式不只 BASH_CMDS 一种,还可通过 man、python、awk 等多种工具逃逸。


本文首发于个人博客,转载请保留原文链接。


返回列表

上一篇:Vulnhub靶场

没有最新的文章了...

相关文章

Vulnhub靶场

Vulnhub靶场

1.Vulnhub靶场概述VulnHub是一个提供各类故意设计存在漏洞的虚拟机镜像的靶场平台,用户可下载并在本地(如VMware、VirtualBox)运行,通过模拟真实渗透测试场景来练习漏洞挖掘与利...