mirror of
https://github.com/HackTricks-wiki/hacktricks.git
synced 2025-10-10 18:36:50 +00:00
69 lines
4.8 KiB
Markdown
69 lines
4.8 KiB
Markdown
# Archive Extraction Path Traversal ("Zip-Slip" / WinRAR CVE-2025-8088)
|
||
|
||
{{#include ../banners/hacktricks-training.md}}
|
||
|
||
## Overview
|
||
|
||
Wiele formatów archiwów (ZIP, RAR, TAR, 7-ZIP itp.) pozwala każdemu wpisowi na posiadanie własnej **wewnętrznej ścieżki**. Gdy narzędzie do ekstrakcji bezmyślnie honoruje tę ścieżkę, stworzona nazwa pliku zawierająca `..` lub **ścieżkę absolutną** (np. `C:\Windows\System32\`) zostanie zapisana poza wybranym przez użytkownika katalogiem. Ta klasa podatności jest powszechnie znana jako *Zip-Slip* lub **przechodzenie ścieżki ekstrakcji archiwum**.
|
||
|
||
Konsekwencje wahają się od nadpisywania dowolnych plików po bezpośrednie osiągnięcie **zdalnego wykonania kodu (RCE)** poprzez umieszczenie ładunku w lokalizacji **auto-run**, takiej jak folder *Startup* systemu Windows.
|
||
|
||
## Root Cause
|
||
|
||
1. Atakujący tworzy archiwum, w którym jeden lub więcej nagłówków plików zawiera:
|
||
* Relatywne sekwencje przejścia (`..\..\..\Users\\victim\\AppData\\Roaming\\Microsoft\\Windows\\Start Menu\\Programs\\Startup\\payload.exe`)
|
||
* Ścieżki absolutne (`C:\\ProgramData\\Microsoft\\Windows\\Start Menu\\Programs\\StartUp\\payload.exe`)
|
||
2. Ofiara wyodrębnia archiwum za pomocą podatnego narzędzia, które ufa osadzonej ścieżce zamiast jej oczyszczać lub wymuszać ekstrakcję poniżej wybranego katalogu.
|
||
3. Plik jest zapisywany w lokalizacji kontrolowanej przez atakującego i wykonywany/ładowany następnym razem, gdy system lub użytkownik wywoła tę ścieżkę.
|
||
|
||
## Real-World Example – WinRAR ≤ 7.12 (CVE-2025-8088)
|
||
|
||
WinRAR dla systemu Windows (w tym `rar` / `unrar` CLI, DLL i przenośne źródło) nie zweryfikował nazw plików podczas ekstrakcji. Złośliwe archiwum RAR zawierające wpis taki jak:
|
||
```text
|
||
..\..\..\Users\victim\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup\payload.exe
|
||
```
|
||
skończyłby **na zewnątrz** wybranego katalogu wyjściowego i wewnątrz folderu *Startup* użytkownika. Po zalogowaniu Windows automatycznie wykonuje wszystko, co się tam znajduje, zapewniając *trwałe* RCE.
|
||
|
||
### Tworzenie PoC Archiwum (Linux/Mac)
|
||
```bash
|
||
# Requires rar >= 6.x
|
||
mkdir -p "evil/../../../Users/Public/AppData/Roaming/Microsoft/Windows/Start Menu/Programs/Startup"
|
||
cp payload.exe "evil/../../../Users/Public/AppData/Roaming/Microsoft/Windows/Start Menu/Programs/Startup/"
|
||
rar a -ep evil.rar evil/*
|
||
```
|
||
Opcje użyte:
|
||
* `-ep` – przechowuj ścieżki plików dokładnie tak, jak podano (nie **przycinaj** wiodącego `./`).
|
||
|
||
Dostarcz `evil.rar` ofierze i poinstruuj ją, aby rozpakowała go za pomocą podatnej wersji WinRAR.
|
||
|
||
### Obserwowana Eksploatacja w Naturze
|
||
|
||
ESET zgłosił kampanie spear-phishingowe RomCom (Storm-0978/UNC2596), które dołączały archiwa RAR wykorzystujące CVE-2025-8088 do wdrażania dostosowanych backdoorów i ułatwiania operacji ransomware.
|
||
|
||
## Wskazówki dotyczące wykrywania
|
||
|
||
* **Inspekcja statyczna** – Wypisz wpisy archiwum i oznacz wszelkie nazwy zawierające `../`, `..\\`, *ścieżki bezwzględne* (`C:`) lub niekanoniczne kodowania UTF-8/UTF-16.
|
||
* **Ekstrakcja w piaskownicy** – Rozpakuj do jednorazowego katalogu za pomocą *bezpiecznego* ekstraktora (np. `patool` w Pythonie, 7-Zip ≥ najnowsza wersja, `bsdtar`) i zweryfikuj, czy wynikowe ścieżki pozostają w katalogu.
|
||
* **Monitorowanie punktów końcowych** – Powiadom o nowych plikach wykonywalnych zapisanych w lokalizacjach `Startup`/`Run` krótko po otwarciu archiwum przez WinRAR/7-Zip itd.
|
||
|
||
## Łagodzenie i Wzmocnienie
|
||
|
||
1. **Zaktualizuj ekstraktor** – WinRAR 7.13 wdraża odpowiednią sanitację ścieżek. Użytkownicy muszą ręcznie go pobrać, ponieważ WinRAR nie ma mechanizmu automatycznej aktualizacji.
|
||
2. Rozpakowuj archiwa z opcją **„Ignoruj ścieżki”** (WinRAR: *Rozpakuj → "Nie rozpakowuj ścieżek"*) gdy to możliwe.
|
||
3. Otwieraj nieufne archiwa **w piaskownicy** lub VM.
|
||
4. Wdrażaj białą listę aplikacji i ogranicz dostęp do zapisu użytkowników do katalogów auto-uruchamiania.
|
||
|
||
## Dodatkowe przypadki dotknięte / historyczne
|
||
|
||
* 2018 – Ogromne *Zip-Slip* ostrzeżenie od Snyk dotyczące wielu bibliotek Java/Go/JS.
|
||
* 2023 – 7-Zip CVE-2023-4011 podobne przejście podczas łączenia `-ao`.
|
||
* Jakakolwiek niestandardowa logika ekstrakcji, która nie wywołuje `PathCanonicalize` / `realpath` przed zapisem.
|
||
|
||
## Odnośniki
|
||
|
||
- [BleepingComputer – Wykorzystanie zero-day WinRAR do zainstalowania złośliwego oprogramowania podczas ekstrakcji archiwum](https://www.bleepingcomputer.com/news/security/winrar-zero-day-flaw-exploited-by-romcom-hackers-in-phishing-attacks/)
|
||
- [WinRAR 7.13 Zmiany](https://www.win-rar.com/singlenewsview.html?&L=0&tx_ttnews%5Btt_news%5D=283&cHash=a64b4a8f662d3639dec8d65f47bc93c5)
|
||
- [Snyk – Opis podatności Zip Slip](https://snyk.io/research/zip-slip-vulnerability)
|
||
|
||
{{#include ../banners/hacktricks-training.md}}
|