Λύκος σε Ενδυμασία Προμηθευτή: Ανάλυση του SLEEPWALKER Backdoor
Τι είναι το SLEEPWALKER
Ένας ερευνητής (r136a1) ανέφερε στις 24 Αυγούστου 2026 ένα μη αναφερθέν Windows backdoor που δεν ανήκει σε κανένα γνωστό threat actor. Το sample είναι ένα 64-bit DLL, 59.904 bytes, μη-υπογεγραμμένο, που εκτελείται μέσω DLL side-loading στον ESET Management Agent.
Σε αντίθεση με τα περισσότερα backdoor, το SLEEPWALKER δεν κάνει τίποτα αυτόματα. Δεν επικοινωνεί με κανένα C2 server. Δεν ανοίκει κανένα port. Απλά κοιμάται. Και περιμένει.
Πώς λειτουργεί — Βήμα προς Βήμα
Κάθε εντολή που φτάνει δεν είναι κείμενο — είναι bytecode σε γλώσσα που υπάρχει μόνο μέσα σε αυτό το αρχείο. Ακόμα κι αν αποκωδικοποιήσεις το AES, πρέπει να αντιστρέψεις τη δική του εσωτερική γλώσσα.
Γιατί είναι επικίνδυνο
| Ικανότητα | Τι σημαίνει | Απειλή |
|---|---|---|
| RUN_SHELLCODE | Εκτελεί οποιοδήποτε μηχανικό κώδικα απευθείας στη μνήμη | Κρίσιμο |
| Named Pipes + Lateral Movement | Δημιουργεί pipes με permissions σε Everyone — μετακινείται σε άλλα μηχανήματα | Κρίσιμο |
| VMCI Channel | Επικοινωνία μέσω VMware guest→host χωρίς traffic στο δίκτυο | Κρίσιμο |
| Promiscuous Sniffing | Βλέπει ΟΛΗ την κίνηση δικτύου — κλεπτοκαρδία, κωδικοί, emails | Κρίσιμο |
| CRON_SCHEDULE | Εκτελεί εντολές σε χρονοδιάγραμμα — μπορεί να κάνει τίποτα κάθε μέρα στις 3:00 | Υψηλό |
| STAGE_WRITE + VERIFY_EXEC | Φέρνει payload σε τεμάχια με SHA-256 έλεγχο — αποφεύγει detection | Υψηλό |
| DECOMPRESS_RUN | Εκτελεί compressed προγράμματα — μπορεί να φέρει megabytes payload | Υψηλό |
| DNS Trigger | Εντολές κρύβονται σε DNS queries — ακόμα κι αν το firewall κλείνει TCP/UDP | Υψηλό |
| TCP/UDP/ICMP_SEND | Αποστολή δεδομένων σε οποιοδήποτε remote host | Μεσαίο |
| RUN_FILE_SCRIPT | Διαβάζει encrypted αρχείο από δίσκο και το εκτελεί | Μεσαίο |
Πώς εγκαθίσταται — DLL Side-Loading
Το backdoor δεν "εγκαθίσταται" με τον παραδοσιακό τρόπο. Χρησιμοποιεί side-loading: μπαίνει στον φάκελο του ESET Management Agent σαν dpapi.dll — ένα νόμιμο όνομα Windows DLL. Όταν το ERAAgent.exe ξεκινά, φορτώνει το DLL αυτόματα.
| Πεδίο | Τι δείχνει | Τι είναι πραγματικά |
|---|---|---|
| CompanyName | ESET | Πλαστό |
| ProductName | ESET Management Agent | Πλαστό |
| FileDescription | ESET Management Agent Module | Πλαστό |
| OriginalFilename | dpapi.dll | Το ίδιο το backdoor |
| Version | 11.2.2076.0 | Αντιγραμμένο από legit ESET |
| Υπογραφή | — | Μη-υπογεγραμμένο |
ERAAgent.exe) — δεν ελέγχει path, signature, ή cryptographic hash. Αν ένα νόμιμο ESET agent τρέχει στο μηχάνημά σου, είσαι στόχος.
Έτοιμο Detection Script
Ο ερευνητής δημοσίευσε read-only PowerShell script. Δεν αλλάζει τίποτα — απλά ελέγχει αρχεία και registry.
Τι ελέγχει
| Έλεγχος | Τι βρίσκει |
|---|---|
dpapi.dll δίπλα στο ERAAgent.exe |
Αν υπάρχει → anomalous (στον legit ESET δεν υπάρχει) |
| SHA-256 hash | Αν ταυριστεί με D34717... → confirmed match |
| Αρχεία 59.904 bytes | Sweep σε όλα τα Program Files |
dpapisvc.dll |
Δεν υπάρχει σε legit Windows → red flag |
Registry: EveryoneIncludesAnonymous = 1 |
Το backdoor το αλλάζει για anonymous pipe access |
Registry: NullSessionPipes |
Προσομοίωση baseline — σύγκρισε με γνωστό-καλό |
Exit Codes
| Code | Σημαίνει | Ενέργεια |
|---|---|---|
0 |
Clean | Δεν βρέθηκε τίποτα |
1 |
Anomaly | Χρειάζεται χειροκίνητο έλεγχο |
2 |
Confirmed | Το μηχάνημα θεωρείται compromised — rebuild |
Πώς τρέχεις
Enterprise vs Προσωπική Χρήση
| Σενάριο | Επίπεδο Απειλής | Εξήγηση |
|---|---|---|
| Enterprise με ESET PROTECT | Κρίσιμο | Κάθε μηχάνημα με ESET Agent είναι πιθανός στόχος. Το backdoor μπορεί να μετακινηθεί lateral σε όλο το domain μέσω named pipes. |
| MSP / Managed Services | Κρίσιμο | Αν διαχειρίζεσαι πολλά clients με ESET, ένα compromised μηχάνημα μπορεί να οδηγήσει σε πολλαπλά. |
| VMware environment | Κρίσιμο | Το VMCI channel επιτρέπει traffic guest→host χωρίς να φαίνεται στο δίκτυο. Ακόμα κι αν το firewall είναι τέλειο, το backdoor περνάει. |
| Home user (χωρίς ESET) | Χαμηλό | Δεν είσαι στόχος. Το backdoor ελέγχει ΜΟΝΟ για ERAAgent.exe. Αν δεν έχεις ESET Agent, δεν ενεργοποιείται. |
| Home user (με ESET) | Μεσαίο | Αν έχεις ESET σε personal PC, τρέξε το script. Ο στόχος παραμένει enterprise, αλλά δεν κάνει πονοκέφαλο να ελέγξεις. |
Τρέξε το Script Τώρα
Αν έχεις ESET στο μηχάνημά σου ή σε εταιρικό περιβάλλον, αυτό το 30-δευτερόλεπτο scan μπορεί να σου σώσει την επιχείρηση.
Λήψη Script + YARA Rule →Indicators of Compromise (IOC)
| Τύπος | Τιμή |
|---|---|
| SHA-256 | d347170752a28e2b8c4b8b9f3cab2e3a6541ba11682c94498d26eb9002779d60 |
| SHA-1 | 2ec8aa9661a33bccc002150ce1ed02d90c3986ff |
| MD5 | 2318327b29bb1c0e2d2b5f0211fc7fac |
| Imphash | 4e2dbfa7e3efd4cca2f3662797df9735 |
| Μέγεθος | 59.904 bytes |
| Compilation | 2024-06-10 09:18:27 UTC |
| AES-256 Key | 0x746531ff378dbb4bb51d2aa2b1d38d905350a959583186baf4c690f5f316b3ae |
| Config Nonce | 0x3a6d357fb9bc51eacc8b8509 |
| Στόχος Process | ERAAgent.exe (ESET Management Agent) |
| Πλαστό DLL | dpapi.dll (δίπλα στο ERAAgent) |
| Ψεύτικο DLL | dpapisvc.dll (δεν υπάρχει σε legit Windows) |
Η Γλώσσα Bytecode — 23 Εντολές
Κάθε εντολή ξεκινάει με ένα opcode byte. Ακολουθούν parameters σε συγκεκριμένο format — δεν είναι κείμενο, είναι raw bytes που μόνο αυτό το backdoor ξέρει πώς να διαβάσει.
| Κατηγορία | Εντολή | Τι κάνει |
|---|---|---|
| Έλεγχος | EXIT | Σταματά όλα τα threads |
| SPAWN_THREAD_SCRIPT | Τρέχει εντολή σε δεύτερο thread | |
| Χρονοδιάγραμμα | SLEEP_SECONDS | Παύση N δευτερολέπτων |
| SLEEP_RANDOM_SECONDS | Τυχαία παύση (jitter) | |
| CRON_SCHEDULE | Προγραμματισμός (λεπτά/ώρες/μέρες) | |
| REPEAT_N | Επανάληψη N φορές | |
| LOOP_FOREVER | Ατέρμον επανάληψη | |
| Αποστολή δεδομένων | TCP_SEND | Αποστολή σε TCP port |
| UDP_SEND | Αποστολή σε UDP port | |
| ICMP_SEND | Κρυμμένα δεδομένα σε ping | |
| PIPE_SEND | Εγγραφή σε named pipe | |
| Λήψη εντολών | TCP_CONNECT_RECV | Σύνδεση + λήψη program |
| TCP_LISTEN_RECV | Bind port + αναμονή σύνδεσης | |
| UDP_BIND_RECV | Bind UDP + αναμονή δεδομένων | |
| PIPE_CLIENT_RECV | Σύνδεση σε remote pipe | |
| PIPE_SERVER_RECV | Δημιουργία local pipe | |
| Εκτέλεση | STAGE_WRITE | Γράφει chunks σε buffer |
| STAGE_VERIFY_EXEC | SHA-256 verify + εκτέλεση | |
| DECOMPRESS_RUN | LZMA decompress + εκτέλεση | |
| RUN_SHELLCODE | Εκτέλεση raw machine code | |
| RUN_FILE_SCRIPT | Διαβάζει encrypted αρχείο + εκτελεί | |
| Trigger | SNIFF_MAGIC_PACKET | Sniffing για magic packet |
| SNIFF_MAGIC_PACKET_DNS | Sniffing + DNS trigger |
Οι εντολές μπορούν να ενσωματώνουν άλλες εντολές — π.χ. ένα CRON_SCHEDULE μπορεί να περιέχει SNIFF_MAGIC_PACKET, που με τη σειρά του μπορεί να περιέχει RUN_SHELLCODE. Αυτό δημιουργεί άπειρους συνδυασμούς.
Πηγή
Αυτή η ανάλυση βασίζεται στην αρχική έρευνα του ερευνητή r136a1, που δημοσίευσε τις 24 Αυγούστου 2026:
The Hacker News — Newly SLEEPWALKER Backdoor Waits for One Crafted Packet