📅 26 Αυγούστου 2026 ⏱️ 7 λεπτά ανάγνωσης 🏷️ Cybersecurity · Malware Analysis

Λύκος σε Ενδυμασία Προμηθευτή: Ανάλυση του SLEEPWALKER Backdoor

Το SLEEPWALKER είναι ένα passive Windows backdoor που δεν ανοίκει ports, δεν κάνει beacon, δεν επικοινωνεί με κανένα server. Κοιμάται στη μνήμη όσο χρειαστεί — και ξυπνάει μόνο όταν φτάσει ένα μόνο encrypted πακέτο στο δίκτυο. Σχεδιασμένο για enterprise περιβάλλοντα με ESET, αποτελεί threat υψηλού επιπέδου για IT admins.

Τι είναι το 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. Απλά κοιμάται. Και περιμένει.

Πώς λειτουργεί — Βήμα προς Βήμα

1. DLL φορτώνεται στο ERAAgent.exe
2. Ελέγχει όνομα process
3. Κοιμάται στη μνήμη
4. Sniffing — βλέπει ΟΛΑ τα πακέτα
5. Magic packet φτάνει
6. AES-256-CCM decrypt
7. Bytecode interpreter εκτελεί 23 εντολές

Κάθε εντολή που φτάνει δεν είναι κείμενο — είναι 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 αυτόματα.

Πεδίο Τι δείχνει Τι είναι πραγματικά
CompanyNameESETΠλαστό
ProductNameESET Management AgentΠλαστό
FileDescriptionESET Management Agent ModuleΠλαστό
OriginalFilenamedpapi.dllΤο ίδιο το backdoor
Version11.2.2076.0Αντιγραμμένο από legit ESET
ΥπογραφήΜη-υπογεγραμμένο
⚠️ Σημαντικό: Το backdoor ελέγχει ΜΟΝΟ το όνομα του process (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

Πώς τρέχεις

PowerShell # Βασικό scan .\sleepwalker-scan.ps1 # Με verbose (βλέπεις ποια paths απέτυχαν) .\sleepwalker-scan.ps1 -Verbose # JSON output (για collection πολλαπλών μηχανημάτων) .\sleepwalker-scan.ps1 -AsJson # Με metadata (Authenticode + version claims) .\sleepwalker-scan.ps1 -IncludeMetadata

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, αλλά δεν κάνει πονοκέφαλο να ελέγξεις.
🔴 Για IT Admins: Αν βρεις confirmed match (exit code 2), θεωρεί το μηχάνημα compromised. Δεν αρκεί να διαγράψεις το DLL — ο επιθετικός μπορεί να έχει στείλει εντολές μέσω magic packets. Χρειάζεται incident response: reset κωδικοί, έλεγχος lateral movement, rebuild.

Τρέξε το Script Τώρα

Αν έχεις ESET στο μηχάνημά σου ή σε εταιρικό περιβάλλον, αυτό το 30-δευτερόλεπτο scan μπορεί να σου σώσει την επιχείρηση.

Λήψη Script + YARA Rule →

Indicators of Compromise (IOC)

ΤύποςΤιμή
SHA-256d347170752a28e2b8c4b8b9f3cab2e3a6541ba11682c94498d26eb9002779d60
SHA-12ec8aa9661a33bccc002150ce1ed02d90c3986ff
MD52318327b29bb1c0e2d2b5f0211fc7fac
Imphash4e2dbfa7e3efd4cca2f3662797df9735
Μέγεθος59.904 bytes
Compilation2024-06-10 09:18:27 UTC
AES-256 Key0x746531ff378dbb4bb51d2aa2b1d38d905350a959583186baf4c690f5f316b3ae
Config Nonce0x3a6d357fb9bc51eacc8b8509
Στόχος ProcessERAAgent.exe (ESET Management Agent)
Πλαστό DLLdpapi.dll (δίπλα στο ERAAgent)
Ψεύτικο DLLdpapisvc.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_RECVBind port + αναμονή σύνδεσης
UDP_BIND_RECVBind UDP + αναμονή δεδομένων
PIPE_CLIENT_RECVΣύνδεση σε remote pipe
PIPE_SERVER_RECVΔημιουργία local pipe
ΕκτέλεσηSTAGE_WRITEΓράφει chunks σε buffer
STAGE_VERIFY_EXECSHA-256 verify + εκτέλεση
DECOMPRESS_RUNLZMA decompress + εκτέλεση
RUN_SHELLCODEΕκτέλεση raw machine code
RUN_FILE_SCRIPTΔιαβάζει encrypted αρχείο + εκτελεί
TriggerSNIFF_MAGIC_PACKETSniffing για magic packet
SNIFF_MAGIC_PACKET_DNSSniffing + DNS trigger

Οι εντολές μπορούν να ενσωματώνουν άλλες εντολές — π.χ. ένα CRON_SCHEDULE μπορεί να περιέχει SNIFF_MAGIC_PACKET, που με τη σειρά του μπορεί να περιέχει RUN_SHELLCODE. Αυτό δημιουργεί άπειρους συνδυασμούς.

Πηγή

Αυτή η ανάλυση βασίζεται στην αρχική έρευνα του ερευνητή r136a1, που δημοσίευσε τις 24 Αυγούστου 2026:

📎 r136a1.dev — SLEEPWALKER: A Passive Backdoor With Its Own Command Language

The Hacker News — Newly SLEEPWALKER Backdoor Waits for One Crafted Packet
Αυτό το άρθρο δεν αλλάζει τίποτα στο μηχάνημά σου. Είναι ενημερωτικό και περιέχει μόνο read-only detection tools.
↑ Πίσω στην αρχή