Skip to content
KitploitKITPLOIT
도구블로그
제출
도구블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
CVE-2023-38831 — CVE-2023-38831 - WinRAR | Kitploit
도구/GitHubGitHub/mishra0230/cve-2023-38831
Vulnerability AnalysisExploitationWeb Application ExploitationForensicsMalware AnalysisPenetration TestingThreat IntelligencePapers & ResearchLearning & EducationIncident ResponseBinary Exploitation
7개월 전아직 검토되지 않음

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유
GitHub
mishra0230/cve-2023-38831

CVE-2023-38831

CVE-2023-38831 - WinRAR

저장소 보기

CVE-2023-38831 WinRAR 익스플로잇 탐지 로직

이 저장소는 CVE-2023-38831 (WinRAR ZIP 파일 스푸핑 / 이중 확장자 익스플로잇)에 대한 탐지 로직을 원시 쿼리 / 코드 블록과 ETW 관련 공급자 이름 + 이벤트 ID와 함께 제공합니다. 대상 시스템에 취약한 버전의 WinRAR (< 6.23)이 있어야 합니다.

행동 요약

CVE-2023-38831은 다음 경우에 악용됩니다:

  • 사용자가 WinRAR에서 악성 ZIP 파일을 엽니다.

  • 아카이브에 다음이 포함되어 있습니다:

    ● 속임수 파일 (예: invoice.pdf )

    ● 같은 이름의 디렉토리 (예: invoice.pdf )

    ● 디렉토리 안에는 같은 이름이지만 약간 다른 이름을 가진 '두' 개의 파일이 있습니다. (첫 번째 파일은 공백으로 끝나며 확장자가 없고, 두 번째 파일은 "invoice.pdf .cmd"와 같은 스크립트 또는 실행 파일입니다.)

  • WinRAR이 문서("PDF") 대신 스크립트나 실행 파일을 실행합니다.

  • 이 실행은 ShellExecuteExW 함수를 호출하여 파일을 실행하며, shExecInfo(Explorer를 통한 ShellExecute)를 전달합니다.

  • WinRAR이 자식 프로세스(cmd, powershell, mshta, wscript, exe 및 폴더 내에 있는 모든 것)를 생성합니다.

  • 실행은 주로 Temp/AppData/추출 경로에서 발생합니다.

공격 요약

흐름 요약 사용자가 아카이브를 엽니다.

root@kitploit:~
  ↓
  
WinRAR이 속임수 파일을 표시합니다.

  ↓
  
사용자가 문서를 더블 클릭합니다.

  ↓
  
WinRAR이 같은 이름의 디렉토리를 추출합니다.
  ↓
  
실행 파일이 *.pdf\*.pdf .exe로 기록됩니다.
  ↓
  
Explorer를 통한 ShellExecute
  ↓
  
실행 파일의 ImageLoad

  ↓
  
페이로드 실행

이 흐름이 탐지에 중요한 이유

root@kitploit:~
●	매크로 사용 없음

●	프로세스 생성 의존성 없음

●	익스플로잇은 파일 시스템 위장에 의존함

●	높은 신뢰도, 낮은 노이즈 신호

중요 기술 세부 사항

  • 파일은 특별한 구조로 기록됩니다.

    예를 들어, 같은 이름을 가진 두 개의 객체(파일/디렉토리)가 있고, 아카이브 파일에서 임시로 파일을 열려고 열린 아카이브에서 해당 파일(대상 파일)을 더블 클릭하면 WinRAR이 이 파일을 추출하고, 대상 파일과 같은 이름을 가진 모든 파일도 추출합니다. 모든 파일은 %tmp% 경로의 임시 디렉토리에 기록됩니다.

    root@kitploit:~
      	| 파일/디렉토리 이름                                          | 추출 경로                                                                   |
      	
      	| ------------------------------------------------------ | --------------------------------------------------------------------------------- |
      	
      	| CLASSIFIED_DOCUMENTS.txt <– 클릭된 대상 파일   | `C:\Users\UsersName\AppData\Loca\Temp\Rar$DIa8432.13968\CLASSIFIED_DOCUMENTS.txt\`|
      	
      	| CLASSIFIED_DOCUMENTS.txt .cmd <– 디렉토리 안의 파일 | `C:\Users\UsersName\AppData\Loca\Temp\Rar$DIa8432.13968\CLASSIFIED_DOCUMENTS.txt\`|
      	
    
  • 임시(압축 해제) 디렉토리에 같은 이름이지만 크기가 다른 두 개의 파일(예: 20k와 12k)이 있고, 아카이브를 열어 첫 번째 파일(1.txt, 20k)을 열면 WinRAR이 두 번째 파일(1.txt, 10K)로 교체할지 묻습니다. "예"를 클릭하면 두 번째 파일(1.txt)만 열립니다. 이 조건은 제외 항목에 추가할 수 있습니다.

탐지 로직의 중요한 포인트

  • ZIP 추출 경로 또는 임시 디렉토리에서 프로세스 실행이 트리거되며, 오해를 불러일으키는 확장자 또는 파일로 위장한 폴더가 있음

  • WinRAR이 임시 디렉토리에 압축 해제를 위해 파일을 풀 때, 같은 이름이지만 약간 다른 이름(공백으로 끝나며 확장자가 없는)을 가진 두 개의 파일이 포함되어야 합니다. 예를 들어, 주 파일 이름 끝에 공백(" ")이 있는 (CLASSIFIED_DOCUMENTS.pdf )와 그 뒤에 ".cmd"가 붙은 (CLASSIFIED_DOCUMENTS.pdf .cmd)와 같습니다.

  • WinRAR이 DLL을 로드하고 ShellExecuteExA 함수를 호출할 때, 매개 변수 "pExecInfo"에는 공백이 포함되고 확장자로 끝나는 경로(예: "CLASSIFIED_DOCUMENTS.pdf .cmd")가 있습니다.

  • ETW 공급자 및 탐지 철학 (ETW 전용) ETW 공급자

    root@kitploit:~
      	| 목적                    | ETW 공급자                          |
      	
      	| -------------------------- | ------------------------------------- |
      	
      	| 프로세스 생성           | `Microsoft-Windows-Kernel-Process`    |
      	
      	| 명령줄 가시성    | `Microsoft-Windows-Security-Auditing` |
      	
      	| 파일 작업 (선택 사항) | `Microsoft-Windows-Kernel-File`       |
      	
    
     탐지는 다음에 의존합니다 (ProcessStart, CreateProcess 또는 EDR 스타일의 부모/자식 로직이 없는 경우):
     
      	●	파일 시스템 ETW
      	
      	●	셸 / Explorer ETW
      	
      	●	이미지 로드 ETW (선택 사항, 생성 아님)
      	
      	●	명령줄 ETW (선택 사항)
      	
      
     핵심 ETW 공급자
     
      	| 목적                    | ETW 공급자                          |
      	
      	| -------------------------- | ------------------------------------- |
      	
      	| 디렉토리 생성         | `Microsoft-Windows-Kernel-File`       |
      	
      	| EXE 생성               | `Microsoft-Windows-Kernel-File`       |
      	
      	| 셸 실행            | `Microsoft.Windows.ShellExecute`      |
      	
      	| 이미지 로드                 | `Microsoft-Windows-Kernel-Image`      |
      	
      	| Explorer                   | `Microsoft-Windows-Explorer`          |
      	
      	| 셸                      | `Microsoft-Windows-Shell-Core`        |	
    

원시 탐지 로직

root@kitploit:~
높은 수준에서 이 로직은 다음을 탐지합니다:

			●	WinRAR.exe가 파일 쓰기를 시작함

			●	같은 기본 이름을 가진 디렉토리와 파일의 생성

			●	이름 변경 또는 덮어쓰기 후 실행 파일 확장자가 나타남

			●	짧은 시간 창(<2s) 내에 발생하는 시퀀스

이 패턴은 정상적인 워크플로에서는 극히 드물지만 익스플로잇의 실행 경로에서 핵심입니다.

			●	이 규칙은 의도적으로 다음을 피합니다:

			●	명령줄 검사

			●	자식 프로세스 추적

			●	전체 파일 해싱

핵심 로직 탐지

핵심 로직 탐지는 아래에 신뢰도 수준과 간략한 설명과 함께 나열되어 있습니다.

1. 이미지 로드 (실행 확인)

root@kitploit:~
	이유: 프로세스 생성 텔레메트리 없이 실제 실행을 확인합니다.
	
	탐지 로직 :
	
		Windows 로더:
		
			●	Invoice.pdf .exe를 메모리에 매핑
			
		ETW 신호:
		
			●	ImageLoad
			
			●	이미지 경로:
			
			●	*.pdf\*.pdf .exe	
			
	

2. 탐지 규칙 (API ShellExecuteExA) - 고정밀 규칙 로직

root@kitploit:~
아래 텔레메트리를 기반으로 한 일반 탐지 규칙:

			●	WinRar.exe에 의한 파일 생성 이벤트
			
			●	WinRar.exe가 Shell32.dll DLL을 로드하고 API(ShellExecuteExA|W)를 매개 변수와 함께 사용하기 시작하는 이미지 로드 이벤트
			
			●	이 함수는 SHELLEXECUTEINFO라는 구조체 인수를 받습니다. 이 구조체에는 많은 필드가 있지만, 그중 두 가지인 lpVerb와 lpFile이 중요합니다.
				
			●	lpVerb - LpVerb를 NULL로 설정하면 ShellExecuteExA|W는 사용 가능한 경우 기본 동사를 사용하고, 그렇지 않으면 "open" 동사를 수행합니다. "open" 동사는 파일을 열거나 실행합니다.
			
			●	lpFile - lpFile은 ShellExecuteExA에서 동사를 수행하는 데 사용되는 파일의 경로입니다. 여기서 파일 경로 끝의 공백 문자(0x20)에 주목해야 합니다.
			             
			
참고: 
	1- Shell32.dll: ShellExecuteExA가 정의된 곳입니다. SHELLEXECUTEINFO 구조체를 구문 분석하고 요청을 처리하는 방법(예: 문서 열기, EXE 실행, 속성 대화 상자 표시)을 결정하는 로직이 포함되어 있습니다.
			
	2- 취약점이 작동하는 방식: 취약점은 바로 여기에 있습니다. WinRAR은 파일을 쓸 때 파일 이름에서 공백을 제거했지만, 이 변경 사항을 추출 목록에 반영하는 것을 잊었습니다. 따라서 대상 파일 이름은 변경되지 않았고 파일 이름에 공백이 그대로 남아 있습니다. 또한 ShellExecuteExA는 "CLASSIFIED_DOCUMENTS.pdf .cmd" 파일을 엽니다. ShellExecuteExA에게 ".cmd"는 중요하지 않으며, 해당 경로에서 "CLASSIFIED_DOCUMENTS.pdf "라는 이름의 파일을 그냥 실행합니다.
        			
탐지 로직 (고정밀 규칙 로직):

	●	SQL-Based :\\Detection_Logic\\SQL-based-ShellExecute.txt
	
	●	KQL (ProcessCommandLine):\\Detection_Logic\\KQL-API-ProcessCommandLine.txt
	
	●	Pseudocode Detection Logic :\\Detection_Logic\\SQL-API-ShellExecute.txt

참고: 위 기준에 따라 탐지 로직을 만들 수 있습니다. 탐지 규칙 작성에 도움이 되는 이벤트를 얻기 위한 간단한 Python 스크립트도 추가했습니다. 또한 ETW 기반 규칙을 만들 때 유용한 것도 추가했습니다.

	 
		| Provider                              | Event ID                                  | Event ID / Task             |
		                                                                       
		| ------------------------------------- | ----------------------------------------- | --------------------------- |
		                                                                       
		| `Microsoft-Windows-Shell-Core`        | {30336983-0362-4540-9E69-14844E6A3B7A}    | Event ID 1 (Execute)        |
		
		| `Microsoft-Windows-Kernel-Process`    | {22FB2AD3-E163-4078-8C2A-801648437D2D}    | Image Load / Process Start  |


		
		

3. WinRAR CVE-2023-38831 악용에 대한 고정밀 규칙 로직

root@kitploit:~
	- 이유: 이름이 문서 확장자로 끝나는 디렉토리에서 실행 파일이 생성되거나 로드되고, Explorer/Shell API를 통해 실행이 시작될 때 경고합니다.			
	- Pseudocode Detection Logic (High-Fidelity Rule Logic)- \\Detection_Logic\\WinRAR-CVE-2023-38831-Exploitation.txt				

4. EDR 탐지 규칙 (ETW 기반)

root@kitploit:~
	아래 텔레메트리를 기반으로 한 일반 EDR 탐지 규칙:	 
	
			●	파일 생성 이벤트
			
			●	셸 실행 / Explorer 호출
			
			●	이미지 로드 이벤트 (선택 사항이지만 강력함)
			
	Detection Logic : \\Detection_Logic\\EDR-Detection-ETW-based.txt
	

5. DeviceProcessEvents를 사용하지 않는 KQL 쿼리 (엔드포인트가 지원하는 경우)

root@kitploit:~
		이유: 이 버전은 DeviceProcessEvents에 의존하지 않고 작동합니다.
		
		Detection Logic : \\Detection_Logic\\KQL-Detection-without-DeviceProcessEvents.txt
		
   

6. 셸 실행 신호 (활성화되고 지원되는 경우)

root@kitploit:~
		이유: 파일 생성과 상관 관계를 맺을 때 신뢰도를 높입니다.
		
		Detection Logic : \\Detection_Logic\\Shell-Execution-Signal.txt	
		

7. SOC 친화적 (분류 흐름)

root@kitploit:~
		이유: 이 규칙은 공격 중 발견된 각 단계에 대해 생성되었습니다.
		
		Detection Logic : \\Detection_Logic\\SOC-Friendly.txt
		
		

대체 탐지 로직

(경고 / ProcessStart, CreateProcess 또는 EDR 스타일의 부모/자식 로직이 포함된 경우)

1. winrar.exe가 의심스러운 디렉토리/파일을 생성할 때 탐지 (특히 임시 또는 아카이브 추출 경로에서) 및 취약한 버전의 WinRAR을 사용하여 생성된 의심 파일 실행

root@kitploit:~
이유: 제품이 처리하는 이벤트(액세스, 이벤트, 클라우드 기반 등)에 따라 규칙을 생성합니다.

Detection Logic:\\Detection_Logic\\Gen-Pseudocode-Detection-Logic.txt

2. winrar.exe가 의심스러운 자식 프로세스를 생성할 때 탐지 (특히 임시 또는 아카이브 추출 경로에서)

root@kitploit:~
	Detection Logic :
	
		EndPonit : \\Detection_Logic\\winrar-spawns-suspicious-child-process.txt
		
		Sigma Rule : \\Detection_Logic\\Sigma-Rule-WinRAR Exploit.txt
			

3. ETW 공급자 기반 경고 (프로세스 생성)

root@kitploit:~
		| Provider                              | Event ID                    |
		
		| ------------------------------------- | --------------------------- |
		
		| `Microsoft-Windows-Security-Auditing` | 4688 (Process Creation)     |
		

	Detection Logic
	
		●	Parent Process = winrar.exe
		
		●	New Process = scripting engine or executable
		
		●	CommandLine includes Temp/AppData

4. DeviceProcessEvents를 사용하는 KQL 쿼리 (엔드포인트가 지원하는 경우)

root@kitploit:~
		이유: DeviceProcessEvents를 사용하여 개발하려는 경우
		
		Detection Logic : \\Detection_Logic\\KQL-Detection-with-DeviceProcessEvents.txt
		

5. 공격 지표 (높은 신뢰도의 경고 추가 가능)

root@kitploit:~
	아래 조건을 충족하면 IOA 또는 감시 목록 규칙을 경고에 추가할 수 있습니다.

	| 지표                          | 신뢰도 |
	
	| ---------------------------------- | ---------- |
	
	| winrar.exe가 cmd/powershell 생성 |  높음     |
	
	| Temp/AppData에서 실행        |  높음     |
	
	| `.cmd/.bat /.exe ` 실행       |  높음     |
	
	| 이중 확장자 ZIP 열림        |  중간   |

감시 목록

취약한 버전의 WinRAR (< 6.23)이 생성한 디렉토리에서 같은 이름을 가진 두 개의 파일에 대한 감시 목록을 만듭니다:

디렉토리에는 같은 이름을 가진 두 개의 파일이 있을 수 없습니다. 또한, 디렉토리와 파일이 같은 이름을 가질 수도 없습니다.

그러나 WinRAR/7zip과 같은 압축 소프트웨어에서는 이것이 가능합니다. 압축 파일에서는 같은 이름의 파일이 있든 없든, 파일은 특별한 구조로 기록됩니다.

따라서 ZIP/RAR 파일에는 같은 이름을 가진 두 개의 객체(파일/디렉토리)가 있을 수 있습니다.

제외 사항 (정상적인 트리거)

root@kitploit:~
	Likely legitimate triggers
	
		●	7-Zip/WinRAR 자체 추출 설치 프로그램에 의해 생성된 cmd.exe
		
		●	RAR에 패키징된 엔터프라이즈 소프트웨어 업데이터에 의해 실행된 powershell.exe
		
		●	프린터 드라이버 또는 GPU 드라이버 설치 프로그램에 사용된 rundll32.exe

	제외 로직 (예시)
	
		AND NOT (
		  ChildImage IN (cmd.exe, powershell.exe, rundll32.exe)
		  AND
		  CommandLine CONTAINS (
			"setup.exe",
			"install.cmd",
			"driverinstall",
			"vendorupdate"
		  )
		)
			

상관 관계 기회

root@kitploit:~
	이렇게 하면 알려진 설치 프로그램 동작을 억제하면서 익스플로잇 탐지를 유지합니다. 아카이브 파일 텔레메트리(파일 시스템 이벤트) — 이 규칙을 RAR/ZIP 추출 활동(예: 실행 직전에 생성된 .cmd/.bat/.exe 파일, 특히 Rar$EX*와 같은 WinRAR 추출 디렉토리)과 상호 연관시키면 실행이 아카이브 추출 직후에 발생했음을 증명함으로써 신뢰도를 크게 높이고 오탐을 줄일 수 있습니다.
	
	

MITRE ATT&CK 매핑

root@kitploit:~
	T1204.002 – 사용자 실행: 악성 파일
	T1059 – 명령 및 스크립팅 인터프리터
	T1036 – 위장 (이중 확장자)

면책 조항

root@kitploit:~
This detection code is for educational and authorized testing purposes only.  
Do not use it on systems you do not own or have explicit permission to test.

참고 자료

  • Group-IB Blog: CVE-2023-38831 WinRAR Zero-Day
  • Github- B1tg Analysis: CVE-2023-38831
  • Github- B1tg WinRAR Exploit PoC CVE-2023-38831
  • Github- CVE-2023-38831 WinRAR Exploit PoC
  • Github- rapid7 for metasploit Module
  • Github- Metasploit Module
도구 다운로드