
CVE-2023-38146 "ThemeBleed"에 대한 python 개념 증명
gabe_k님께서 C#으로 최초 PoC를 작성하고 이 CVE를 실제로 발견해 주신 데 대해 큰 감사를 드립니다. 이는 그의 코드를 파이썬으로 다시 구현하고 그의 스테이지 파일을 재사용한 것입니다. 초기 PoC를 확인하려면 여기에서 그의 페이지를 방문하세요: https://github.com/gabe-k/themebleed
CVE-2023-38146 "ThemeBleed"에 대한 파이썬 기반 개념 증명입니다.
이 프로그램은 Impackets SMB 서버를 사용하며, smb2Create 함수를 오버라이드하므로 Impacket의 기능이 필요합니다.
사용법:
exploit.theme 파일에서 {IP-ADDRESS}를 교체하세요.
python3 ThemeBleedServer.py - SMB 서버 실행
취약한 Windows 11 시스템에서 .theme 파일을 사용하세요.
Gabe의 Exploit처럼 VerifyThemeVersion을 내보내는 DLL인 새 stage 3 파일을 생성해야 하며, 현재 파일은 Calc만 엽니다.
ThemeBleed는 인터넷에서 msstyles 파일을 요청하는 .THEME 파일로 시작합니다. 파일에 "999" 버전 번호가 사용되면 ReviseVersionIfNecessary 함수가 호출되며, 이 함수는 .dll 파일을 안전하지 않게 로드하여 공격자가 검사되지 않은 라이브러리 파일을 로드할 수 있게 합니다.
C# 코드를 리눅스에서 컴파일하지 못해서 이 코드를 작성했습니다. 아마도 제가 C#의 작동 방식을 잘 몰라서일 겁니다. 하지만 파이썬 코드는 작성할 줄 압니다.