【渗透测试】通过实战教你通关Billu_b0x靶机

【渗透测试】通过实战教你通关Billu_b0x靶机

Hello,各位小伙伴大家好

这里是你们的小编Monster~

【渗透测试】通过实战教你通关Billu_b0x靶机_第1张图片

话说提升技术很好的一个方法,就是去通关各种靶机
【渗透测试】通过实战教你通关Billu_b0x靶机_第2张图片
上周通关了一个靶机Billu_b0x,从中学到了很多东西,因此赶紧记录下来。

大家来跟我一起看看吧~


实验拓扑:

【渗透测试】通过实战教你通关Billu_b0x靶机_第3张图片

靶机下载链接:https://download.vulnhub.com/billu/


一、信息收集

1、IP与端口收集

搭建好靶机环境后,由于在同一网段中,我们先使用namp来扫描一下本网段IP。

发现靶机IP地址为192.168.211.185:
在这里插入图片描述
对开放的端口进行扫描,发现开放了ssh和http服务:

【渗透测试】通过实战教你通关Billu_b0x靶机_第4张图片

2、目录扫描

从HTTP服务入手,我们先访问一下这个网站
【渗透测试】通过实战教你通关Billu_b0x靶机_第5张图片
使用dirb工具对网站目录进行扫描,发现了一系列目录:

【渗透测试】通过实战教你通关Billu_b0x靶机_第6张图片

我们来依次访问一下这些目录,看看都是些什么

http://192.168.211.185/add 一个上传界面:

在这里插入图片描述

http://192.168.211.185/c 空白页面

http://192.168.211.185/cgi-bin/ 禁止访问

【渗透测试】通过实战教你通关Billu_b0x靶机_第7张图片

http://192.168.211.185/images/ 一个图片目录

【渗透测试】通过实战教你通关Billu_b0x靶机_第8张图片
http://192.168.211.185/in phoinfo( )信息

【渗透测试】通过实战教你通关Billu_b0x靶机_第9张图片

http://192.168.211.185/index.php 首页登陆界面

【渗透测试】通过实战教你通关Billu_b0x靶机_第10张图片

http://192.168.211.185/panel 访问自动跳转到首页

http://192.168.211.185/show 空白页面

http://192.168.211.185/show 该页面提示传入参数

【渗透测试】通过实战教你通关Billu_b0x靶机_第11张图片

二、渗透测试

1、SQL注入

我们先来试试首页是否存在SQL注入,尝试输入1’ or 1=1 or ‘1:
【渗透测试】通过实战教你通关Billu_b0x靶机_第12张图片
提示登陆失败:
【渗透测试】通过实战教你通关Billu_b0x靶机_第13张图片
尝试输入1’ OR 1=1 OR '1等均失败。

换个思路,我们来看看前面发现的需要传入参数的test.php页面

【渗透测试】通过实战教你通关Billu_b0x靶机_第14张图片

想试试这里有没有文件包含漏洞,尝试输入?file=index.php,无反应

【渗透测试】通过实战教你通关Billu_b0x靶机_第15张图片
使用burp抓包,改为POST方法发包:

【渗透测试】通过实战教你通关Billu_b0x靶机_第16张图片

没有文件包含漏洞,但读取到index.php页面的源码:
【渗透测试】通过实战教你通关Billu_b0x靶机_第17张图片

分析一下index.php的源码,是存在SQL注入的:
【渗透测试】通过实战教你通关Billu_b0x靶机_第18张图片

虽然前面使用str_replace( )函数将单引号全部过滤了,但是我们可以在输入pass时,输入一个 \ 符号,将uname逃逸出来。

例如我们输入123/123,这里的查询语句就是:

select * from auth where pass=‘123’ and uname=‘123’

输入pass=123\ uname= or 1=1 --+

or 1=1永真,就可以成功绕过,查询语句就成了:

select * from auth where pass=‘123\’ and uname=’ or 1=1 – ’

按以上方法输入:

【渗透测试】通过实战教你通关Billu_b0x靶机_第19张图片

成功登陆,并跳转到panel.php:
【渗透测试】通过实战教你通关Billu_b0x靶机_第20张图片

2、文件上传

选择Show Users,我们可以查看用户及其头像信息:

【渗透测试】通过实战教你通关Billu_b0x靶机_第21张图片

任意点开一个头像,我们可以看到头像保存路径:
【渗透测试】通过实战教你通关Billu_b0x靶机_第22张图片

访问http://192.168.211.185/uploaded_images/,可以看到头像文件保存目录:
【渗透测试】通过实战教你通关Billu_b0x靶机_第23张图片

如果我们可以上传一个webshell到这个目录,就可以拿下这个靶机了。

选择Add User,可以添加用户及头像:
【渗透测试】通过实战教你通关Billu_b0x靶机_第24张图片

我们尝试上传一个.php文件,提示只能上传图片格式:
【渗透测试】通过实战教你通关Billu_b0x靶机_第25张图片

通过前面的test.php页面,我们来读取一下这个页面的源码:
【渗透测试】通过实战教你通关Billu_b0x靶机_第26张图片

可以看到这里采用了白名单的机制,并不存在文件上传漏洞:
【渗透测试】通过实战教你通关Billu_b0x靶机_第27张图片

3、代码分析

刚才从test.php页面我们成功读取到index页面的源码,我们现在挨个读取一下其他页面的代码,看看有没有有用信息。

读取c.php页面:
【渗透测试】通过实战教你通关Billu_b0x靶机_第28张图片

发现数据库账号、密码:
【渗透测试】通过实战教你通关Billu_b0x靶机_第29张图片

再读取panel.php页面代码,会发现这里还有一个文件包含漏洞,并且对输入未作任何处理:
【渗透测试】通过实战教你通关Billu_b0x靶机_第30张图片
我们可以上传一个图片马,然后尝试利用这个漏洞执行。

4、文件包含漏洞

选择一张图片muma.jpg,插入恶意代码如下:
在这里插入图片描述

在panel页面进行上传:
【渗透测试】通过实战教你通关Billu_b0x靶机_第31张图片

访问该图片,可以正常访问:
【渗透测试】通过实战教你通关Billu_b0x靶机_第32张图片
现在利用图片马,通过文件包含漏洞尝试执行phpinfo():
【渗透测试】通过实战教你通关Billu_b0x靶机_第33张图片

成功执行:
【渗透测试】通过实战教你通关Billu_b0x靶机_第34张图片

这里学习了两个函数,顺便记录一下:

(1)file_get_contents(),用于将文件的内容读入到一个字符串中:
【渗透测试】通过实战教你通关Billu_b0x靶机_第35张图片

成功读取到c.php内容:
【渗透测试】通过实战教你通关Billu_b0x靶机_第36张图片

(2)scandir( ) 函数返回指定目录中的文件和目录的数组。
【渗透测试】通过实战教你通关Billu_b0x靶机_第37张图片

读到当前目录下的文件:
【渗透测试】通过实战教你通关Billu_b0x靶机_第38张图片

5、生成一句话木马

言归正传,我们现在利用我们的图片马,写入一个webshell:
【渗透测试】通过实战教你通关Billu_b0x靶机_第39张图片

访问config.php,生成失败:
【渗透测试】通过实战教你通关Billu_b0x靶机_第40张图片

可能是这个目录没有写入权限,我们往uploaded_images/写入:
【渗透测试】通过实战教你通关Billu_b0x靶机_第41张图片
依然生成失败:

【渗透测试】通过实战教你通关Billu_b0x靶机_第42张图片
尝试对写入内容使用ascii码的方式传入。

编写以下代码将一句话木马转换为ascii码的方式:
【渗透测试】通过实战教你通关Billu_b0x靶机_第43张图片

得到转换结果:
在这里插入图片描述

重新生成webshell:
【渗透测试】通过实战教你通关Billu_b0x靶机_第44张图片

尝试访问config.php,未报错,生成成功:
【渗透测试】通过实战教你通关Billu_b0x靶机_第45张图片

现在使用中国菜刀去连接:
【渗透测试】通过实战教你通关Billu_b0x靶机_第46张图片

成功getshell:
【渗透测试】通过实战教你通关Billu_b0x靶机_第47张图片

6、系统提权

中国菜刀连接成功后,打开虚拟终端查看权限:
【渗透测试】通过实战教你通关Billu_b0x靶机_第48张图片
接下来我们来提权到root权限。

先查看一下系统的版本信息以及内核信息:
在这里插入图片描述

回到kali,搜索一下Ubuntu 12.04.5 ,找到可利用的exp:
【渗透测试】通过实战教你通关Billu_b0x靶机_第49张图片
将exp拷贝出来并进行编译:
【渗透测试】通过实战教你通关Billu_b0x靶机_第50张图片

将编译好的exp上传至靶机中运行,发现无法执行:
在这里插入图片描述

返回kali,使用msfvenom生成一个php后门:
在这里插入图片描述

调用exploit模块,设置payload后监听:
【渗透测试】通过实战教你通关Billu_b0x靶机_第51张图片

将door.php通过菜刀上传至靶机并访问:
【渗透测试】通过实战教你通关Billu_b0x靶机_第52张图片

成功反弹shell至kali:
在这里插入图片描述

进入shell模式,运行刚才上传的exp,成功提权至root :
【渗透测试】通过实战教你通关Billu_b0x靶机_第53张图片
完毕~~

其实还有一种方法,前面通过读取c.php的源码,发现了数据库的账号/密码:

【渗透测试】通过实战教你通关Billu_b0x靶机_第54张图片

尝试远程连接数据库,失败:
在这里插入图片描述

通过dirb也没能发现数据库登陆页面:

【渗透测试】通过实战教你通关Billu_b0x靶机_第55张图片
其实是有的,使用强大一点的字典就能找出来:
【渗透测试】通过实战教你通关Billu_b0x靶机_第56张图片
数据库中可以查询到登陆界面的账号/密码,可以直接去登陆了:
【渗透测试】通过实战教你通关Billu_b0x靶机_第57张图片

尝试数据库写入一句话木马,失败,应该是权限不够:
【渗透测试】通过实战教你通关Billu_b0x靶机_第58张图片


好啦,这就是今天的全部内容了,大家都明白了吗?

如有问题,欢迎到我的微信公众号留言哦~
【渗透测试】通过实战教你通关Billu_b0x靶机_第59张图片

peace!

你可能感兴趣的:(web安全)