Worok: Η μεγάλη εικόνα PlatoBlockchain Data Intelligence. Κάθετη αναζήτηση. Ολα συμπεριλαμβάνονται.

Worok: Η μεγάλη εικόνα

Εστιασμένη κυρίως στην Ασία, αυτή η νέα ομάδα κυβερνοκατασκοπείας χρησιμοποιεί μη τεκμηριωμένα εργαλεία, συμπεριλαμβανομένης της στεγανογραφικής εξαγωγής ωφέλιμων φορτίων PowerShell από αρχεία PNG

Οι ερευνητές της ESET βρήκαν πρόσφατα στοχευμένες επιθέσεις που χρησιμοποιούσαν μη τεκμηριωμένα εργαλεία εναντίον διαφόρων εταιρειών υψηλού προφίλ και τοπικών κυβερνήσεων κυρίως στην Ασία. Αυτές οι επιθέσεις πραγματοποιήθηκαν από μια προηγουμένως άγνωστη ομάδα κατασκοπείας που ονομάσαμε Worok και η οποία είναι ενεργή τουλάχιστον από το 2020. Το σύνολο εργαλείων του Worok περιλαμβάνει έναν φορτωτή C++ CLRLoad, έναν PowerShell backdoor PowHeartBeat και έναν C# loader PNGLoad που χρησιμοποιεί steganography για να εξάγει κρυφά κακόβουλα ωφέλιμα φορτία από αρχεία PNG.

Ποιος είναι ο Worok;

Κατά τη διάρκεια του ProxyShell (CVE-2021-34523) αποκάλυψη ευπάθειας στις αρχές του 2021, παρατηρήσαμε δραστηριότητα από διάφορες ομάδες APT. Ένα εμφάνισε χαρακτηριστικά κοινά με TA428:

  • Χρόνοι δραστηριότητας
  • Στοχευμένες κάθετες
  • Χρήση του ShadowPad

Το υπόλοιπο σύνολο εργαλείων είναι πολύ διαφορετικό: για παράδειγμα, το TA428 συμμετείχε στο Συμβιβασμός με δυνατότητα επιφάνειας εργασίας το 2020. Θεωρούμε ότι οι σύνδεσμοι δεν είναι αρκετά ισχυροί για να θεωρηθεί ότι το Worok είναι η ίδια ομάδα με το TA428, αλλά οι δύο ομάδες ενδέχεται να μοιράζονται εργαλεία και να έχουν κοινά ενδιαφέροντα. Αποφασίσαμε να δημιουργήσουμε ένα σύμπλεγμα και το ονομάσαμε Worok. Το όνομα επιλέχθηκε μετά από ένα mutex σε έναν φορτωτή που χρησιμοποιείται από την ομάδα. Περαιτέρω δραστηριότητα με παραλλαγές των ίδιων εργαλείων συνδέθηκε στη συνέχεια με αυτήν την ομάδα. Σύμφωνα με την τηλεμετρία της ESET, το Worok είναι ενεργό από τα τέλη του 2020 και συνεχίζει να είναι ενεργό μέχρι τη στιγμή που γράφονται αυτές οι γραμμές.

Πίσω στα τέλη του 2020, το Worok στόχευε κυβερνήσεις και εταιρείες σε πολλές χώρες, και συγκεκριμένα:

  • Μια εταιρεία τηλεπικοινωνιών στην Ανατολική Ασία
  • Μια τράπεζα στην Κεντρική Ασία
  • Μια εταιρεία ναυτιλιακής βιομηχανίας στη Νοτιοανατολική Ασία
  • Μια κυβερνητική οντότητα στη Μέση Ανατολή
  • Μια ιδιωτική εταιρεία στη νότια Αφρική

Υπήρξε σημαντική διακοπή στις παρατηρούμενες λειτουργίες από το 2021-05 έως το 2022-01, αλλά η δραστηριότητα Worok επέστρεψε το 2022-02, με στόχο:

  • Ενεργειακή εταιρεία στην Κεντρική Ασία
  • Μια οντότητα του δημόσιου τομέα στη Νοτιοανατολική Ασία

Το σχήμα 1 παρουσιάζει έναν οπτικό χάρτη θερμότητας των στοχευόμενων περιοχών και κάθετων.

Εικόνα 1. Χάρτης των στοχευόμενων περιοχών και κάθετων

Λαμβάνοντας υπόψη τα προφίλ των στόχων και τα εργαλεία που έχουμε δει να εφαρμόζονται εναντίον αυτών των θυμάτων, πιστεύουμε ότι ο κύριος στόχος του Worok είναι η κλοπή πληροφοριών.

Τεχνική ανάλυση

Ενώ η πλειονότητα των αρχικών προσβάσεων είναι άγνωστη, σε ορισμένες περιπτώσεις μέχρι το 2021 και το 2022 έχουμε δει να χρησιμοποιούνται εκμεταλλεύσεις έναντι των τρωτών σημείων του ProxyShell. Σε τέτοιες περιπτώσεις, συνήθως έχουν μεταφορτωθεί κελύφη ιστού μετά την εκμετάλλευση αυτών των τρωτών σημείων, προκειμένου να παρέχεται επιμονή στο δίκτυο του θύματος. Στη συνέχεια, οι χειριστές χρησιμοποίησαν διάφορα εμφυτεύματα για να αποκτήσουν περαιτέρω δυνατότητες.

Μόλις αποκτήθηκε η πρόσβαση, οι χειριστές ανέπτυξαν πολλαπλά, δημόσια διαθέσιμα εργαλεία για αναγνώριση, συμπεριλαμβανομένων Mimikatz, Σκουληκαντέρα, ReGeorg, να NBTscan, και στη συνέχεια ανέπτυξαν τα προσαρμοσμένα εμφυτεύματα τους: έναν φορτωτή πρώτου σταδίου, ακολουθούμενο από έναν φορτωτή .NET δεύτερου σταδίου (PNGLoad). Δυστυχώς, δεν έχουμε τη δυνατότητα να ανακτήσουμε κανένα από τα τελικά ωφέλιμα φορτία. Το 2021, ο φορτωτής πρώτου σταδίου ήταν ένα συγκρότημα CLR (CLRLoad), ενώ το 2022 αντικαταστάθηκε, στις περισσότερες περιπτώσεις, από μια κερκόπορτα PowerShell με πλήρεις δυνατότητες (PowHeartBeat) – και οι δύο αλυσίδες εκτέλεσης απεικονίζονται στο Σχήμα 2. Αυτές οι τρεις Τα εργαλεία περιγράφονται αναλυτικά στις ακόλουθες υποενότητες.

Worok: Η μεγάλη εικόνα PlatoBlockchain Data Intelligence. Κάθετη αναζήτηση. Ολα συμπεριλαμβάνονται.

Εικόνα 2. Συμβιβαστικές αλυσίδες Worok

CLRLload: Φορτωτής συναρμολόγησης CLR

Το CLRLoad είναι ένα γενικό PE των Windows που έχουμε δει και στις δύο εκδόσεις 32 και 64 bit. Είναι ένας φορτωτής γραμμένος σε C++ που φορτώνει το επόμενο στάδιο (PNGLoad), το οποίο πρέπει να είναι Συνέλευση Common Language Runtime (CLR). αρχείο DLL. Αυτός ο κώδικας φορτώνεται από ένα αρχείο που βρίσκεται σε δίσκο σε έναν νόμιμο κατάλογο, πιθανώς για να παραπλανήσει τα θύματα ή τους ανταποκριτές συμβάντων να πιστέψουν ότι είναι νόμιμο λογισμικό.

Ορισμένα δείγματα CLRLload ξεκινούν αποκωδικοποιώντας την πλήρη διαδρομή του αρχείου του οποίου το περιεχόμενο θα φορτώσουν ως το επόμενο στάδιο. Αυτές οι διαδρομές αρχείων κωδικοποιούνται με ένα XOR ενός byte, με διαφορετικό κλειδί σε κάθε δείγμα. Αποκωδικοποιημένες ή καθαρό κείμενο, αυτές οι διαδρομές αρχείων είναι απόλυτες, με τις ακόλουθες να είναι αυτές που έχουμε συναντήσει:

  • C:Program FilesVMwareVMware ToolsVMware VGAuthxsec_1_5.dll
  • C:Program FilesUltraViewermsvbvm80.dll
  • C:Program FilesInternet ExplorerJsprofile.dll
  • C:Program FilesWinRarRarExtMgt.dll
  • C:Program Files (x86)Foxit SoftwareFoxit Readerlucenelib.dll

Στη συνέχεια, δημιουργείται ένα mutex και έχουμε δει διαφορετικό όνομα σε κάθε δείγμα. Ο φορτωτής ελέγχει για αυτό το mutex. αν βρεθεί, βγαίνει, επειδή ο φορτωτής λειτουργεί ήδη. Σε ένα από τα δείγματα, το mutex Wo0r0KGWhYGO συναντήθηκε, γεγονός που έδωσε στην ομάδα το όνομά της Worok.

Στη συνέχεια, το CLRLoad φορτώνει ένα συγκρότημα CLR από την πιθανώς αποκωδικοποιημένη διαδρομή αρχείου. Ως μη διαχειριζόμενος κώδικας, το CLRLoad το επιτυγχάνει μέσω CorBindToRuntimeEx Το API των Windows καλεί σε παραλλαγές 32-bit ή CLRCreateInstance κλήσεις σε παραλλαγές 64-bit.

PowHeartBeat: Πίσω πόρτα PowerShell

Το PowHeartBeat είναι μια κερκόπορτα με πλήρεις δυνατότητες γραμμένη σε PowerShell, η οποία έχει συσκοτιστεί χρησιμοποιώντας διάφορες τεχνικές όπως συμπίεση, κωδικοποίηση και κρυπτογράφηση. Με βάση την τηλεμετρία ESET, πιστεύουμε ότι το PowHeartBeat αντικατέστησε το CLRLoad σε πιο πρόσφατες καμπάνιες Worok ως το εργαλείο που χρησιμοποιείται για την εκκίνηση του PNGLoad.

Το πρώτο επίπεδο του κώδικα της κερκόπορτας αποτελείται από πολλά κομμάτια κώδικα PowerShell με κωδικοποίηση base64. Μόλις το ωφέλιμο φορτίο ανακατασκευαστεί, εκτελείται μέσω IEX. Μόλις αποκωδικοποιηθεί, εκτελείται ένα άλλο επίπεδο ασαφούς κώδικα, το οποίο μπορούμε να δούμε στο Σχήμα 3.

Worok: Η μεγάλη εικόνα PlatoBlockchain Data Intelligence. Κάθετη αναζήτηση. Ολα συμπεριλαμβάνονται.

Εικόνα 3. Απόσπασμα της αποκωδικοποιημένης κύριας συνάρτησης του δεύτερου στρώματος του PowHeartBeat

Το δεύτερο στρώμα του backdoor first base64 αποκωδικοποιεί το επόμενο στρώμα του κώδικά του, το οποίο στη συνέχεια αποκρυπτογραφείται με Τριπλό DES (Λειτουργία CBC). Μετά την αποκρυπτογράφηση, αυτός ο κωδικός αποσυμπιέζεται χρησιμοποιώντας το gzip αλγόριθμο, δίνοντας έτσι το τρίτο επίπεδο κώδικα PowerShell, που είναι η πραγματική κερκόπορτα. Χωρίζεται σε δύο κύρια μέρη: διαμόρφωση και χειρισμός εντολών backdoor.

Το κύριο επίπεδο κώδικα backdoor είναι επίσης γραμμένο στο PowerShell και χρησιμοποιεί HTTP ή ICMP για επικοινωνία με τον διακομιστή C&C. Λειτουργεί όπως φαίνεται στο Σχήμα 4.

Worok: Η μεγάλη εικόνα PlatoBlockchain Data Intelligence. Κάθετη αναζήτηση. Ολα συμπεριλαμβάνονται.

Εικόνα 4. Λειτουργία του PowHeartBeat

διαμόρφωση

Η διαμόρφωση περιέχει πολλά πεδία, συμπεριλαμβανομένου του αριθμού έκδοσης, της προαιρετικής διαμόρφωσης διακομιστή μεσολάβησης και της διεύθυνσης C&C. Ο Πίνακας 1 περιγράφει τις έννοιες των πεδίων διαμόρφωσης στις διάφορες εκδόσεις που έχουμε παρατηρήσει.

Πίνακας 1. Έννοιες πεδίων διαμόρφωσης

Ονομα πεδίου Περιγραφή
nouse / ikuyrtydyfg
(άλλα δείγματα)
Αχρησιμοποίητος.
Ταυτότητα πελάτη Αναγνωριστικό πελάτη, που χρησιμοποιείται για τους ακόλουθους σκοπούς:
· Ως τιμή κατά την κατασκευή του Κεφαλίδα cookie για επικοινωνίες C&C.
· Ως κρυπτογραφικό τεχνούργημα για κρυπτογράφηση απεσταλμένων δεδομένων.
Εκδοχή Αριθμός έκδοσης του PowHeartBeat.
ExecTimes Αριθμός επιτρεπόμενων προσπαθειών εκτέλεσης κατά την έκδοση α RunCmd (εκτέλεση εντολών) εντολή.
πράκτορας χρήστη Πράκτορας χρήστη που χρησιμοποιείται για επικοινωνίες C&C.
referer referer κεφαλίδα που χρησιμοποιείται για επικοινωνίες C&C.
Αποδοχή Κωδικοποίησης Αχρησιμοποίητος.
CookieClientId
CookieTaskId
CookieTerminalId
Τιμές που χρησιμοποιούνται για την κατασκευή του Cookie κεφαλίδα για επικοινωνίες C&C.
UrlHttps Πρωτόκολλο προς χρήση για επικοινωνίες C&C.
UrlDomain
Διεύθυνση IP
Domains
URL, τομέας ή διεύθυνση IP που χρησιμοποιείται ως διακομιστής C&C. Αν Domains δεν είναι κενό, επιλέγεται αντί για Διεύθυνση IP. Σε άλλες περιπτώσεις, Διεύθυνση IP είναι κατηλημμένο.
UrlSendHeartBeat Διαδρομή διεύθυνσης URL που χρησιμοποιείται όταν η κερκόπορτα ζητά εντολές από τον διακομιστή C&C.
UrlSendResult Διαδρομή διεύθυνσης URL που χρησιμοποιείται όταν η κερκόπορτα στέλνει τα αποτελέσματα της εντολής πίσω στον διακομιστή C&C.
GetUrl Ολοκληρωμένη διεύθυνση URL, που χρησιμοποιείται από το PowHeartBeat για να ζητήσει εντολές από τον διακομιστή C&C. Είναι η συνένωση των παραπάνω στοιχείων URL.
PutUrl Το ίδιο με GetUrl αλλά χρησιμοποιείται για την αποστολή των αποτελεσμάτων της εντολής πίσω στον διακομιστή C&C.
τρέχον μονοπάτι Αχρησιμοποίητος.
ProxyEnableFlag Σημαία που υποδεικνύει εάν η κερκόπορτα πρέπει να χρησιμοποιεί διακομιστή μεσολάβησης ή όχι για να επικοινωνεί με τον διακομιστή C&C.
Proxymsg Διεύθυνση του διακομιστή μεσολάβησης που θα χρησιμοποιηθεί εάν ProxyEnableFlag έχει οριστεί σε $αλήθεια.
Διάστημα Χρόνος σε δευτερόλεπτα κατά τον οποίο το σενάριο αναμένει μεταξύ των αιτημάτων GET.
BasicConfigPath Διαδρομή σε ένα προαιρετικό αρχείο διαμόρφωσης που περιέχει χρόνο λειτουργίας, Χρόνος αργίας, DefaultInterval, να Domains. Αυτές οι τιμές θα παρακαμφθούν εάν υπάρχει το αρχείο.
χρόνο λειτουργίας Ώρα της ημέρας από την οποία αρχίζει να λειτουργεί το backdoor, που σημαίνει ότι αρχίζει να κάνει αιτήματα GET στον διακομιστή C&C.
Χρόνος αργίας Ώρα της ημέρας μέχρι την οποία μπορεί να λειτουργήσει το backdoor, δηλαδή η ώρα που σταματά να κάνει αιτήματα στον διακομιστή C&C.
DomainIndex Ευρετήριο του τρέχοντος ονόματος τομέα για χρήση για επικοινωνίες με τον διακομιστή C&C. Σε περίπτωση που ένα αίτημα εμφανίσει μήνυμα σφάλματος διαφορετικό από 304 ("Δεν τροποποιήθηκε"), DomainIndex αυξάνεται.
Μυστικό κλειδί Κλειδί που χρησιμοποιείται για την αποκρυπτογράφηση/κρυπτογράφηση της διαμόρφωσης. Η διαμόρφωση είναι κρυπτογραφημένη με XOR πολλαπλών byte.
IfLog Αχρησιμοποίητος.
IfLogFilePath Σημαία που υποδεικνύει εάν η καταγραφή είναι ενεργοποιημένη.
δρομολόγιο Διαδρομή του αρχείου καταγραφής.
ProxyFile Διαδρομή αρχείου της προαιρετικής διαμόρφωσης διακομιστή μεσολάβησης. Εάν είναι άδειο ή δεν βρίσκεται στο σύστημα αρχείων, το backdoor ανακτά τις ρυθμίσεις διακομιστή μεσολάβησης του χρήστη από την τιμή μητρώου HKCUSoftwareMicrosoftWindowsΤρέχουσαΈκδοσηΡυθμίσειςΔιαδικτύουΔιακομιστήςProxy .
IfConfig Σημαία που υποδεικνύει εάν θα χρησιμοποιηθεί ένα αρχείο διαμόρφωσης.

Το σχήμα 5 δείχνει ένα παράδειγμα της διαμόρφωσης που εξήχθη από ένα δείγμα PowHeartBeat (SHA-1: 757ABA12D04FD1167528FDD107A441D11CD8C427).

Εικόνα 5. Παράδειγμα διαμόρφωσης

Κρυπτογράφηση δεδομένων

Το PowHeartBeat κρυπτογραφεί αρχεία καταγραφής και πρόσθετο περιεχόμενο αρχείων διαμόρφωσης.

Το περιεχόμενο του αρχείου καταγραφής κρυπτογραφείται μέσω XOR πολλαπλών byte με ένα κλειδί που καθορίζεται σε καθαρό κείμενο στο δείγμα. Με ενδιαφέρο, ταυτότητα πελάτη χρησιμοποιείται ως αλάτι για το ευρετήριο στον πίνακα κλειδιών. Το κλειδί είναι ένας πίνακας 256 byte, ο οποίος ήταν πανομοιότυπος σε κάθε δείγμα που συναντήσαμε. Το πρόσθετο περιεχόμενο του αρχείου διαμόρφωσης κρυπτογραφείται μέσω XOR πολλαπλών byte με την τιμή από Μυστικό κλειδί ως το κλειδί του.

Επικοινωνίες C&C

Το PowHeartBeat χρησιμοποίησε το HTTP για επικοινωνίες C&C μέχρι την έκδοση 2.4 και μετά άλλαξε σε ICMP. Και στις δύο περιπτώσεις η επικοινωνία δεν είναι κρυπτογραφημένη.

HTTP

Σε έναν άπειρο βρόχο, η κερκόπορτα στέλνει ένα αίτημα GET στον διακομιστή C&C, ζητώντας μια εντολή για έκδοση. Η κρυπτογραφημένη απάντηση αποκρυπτογραφείται από την κερκόπορτα, η οποία επεξεργάζεται την εντολή και εγγράφει την έξοδο της εντολής σε ένα αρχείο του οποίου το περιεχόμενο αποστέλλεται στη συνέχεια στον διακομιστή C&C μέσω αιτήματος POST.

Η μορφή των αιτημάτων GET είναι η εξής:

Σημειώστε ότι το αίτημα δημιουργείται χρησιμοποιώντας τα ομώνυμα πεδία διαμόρφωσης.

Στην απόκριση από τον διακομιστή C&C, το τρίτο byte του περιεχομένου είναι το αναγνωριστικό εντολής που υποδεικνύει την εντολή προς επεξεργασία από την κερκόπορτα. Θα το ονομάσουμε command_id. Το υπόλοιπο περιεχόμενο της απάντησης θα μεταβιβαστεί ως όρισμα στην εντολή που υποβάλλεται σε επεξεργασία. Αυτό το περιεχόμενο είναι κρυπτογραφημένο με τον αλγόριθμο που φαίνεται στην Εικόνα 6, TaskId είναι η τιμή του cookie που πήρε το όνομά του CookieTaskId's τιμή από τη διαμόρφωση.

Εικόνα 6. Ζητείται αλγόριθμος κρυπτογράφησης δεδομένων περιεχομένου

Η απάντηση από τον διακομιστή C&C περιέχει επίσης ένα άλλο cookie, το όνομα του οποίου καθορίζεται από το backdoor CookieTerminalId μεταβλητή διαμόρφωσης. Η τιμή αυτού του cookie επαναλαμβάνεται στο αίτημα POST από την κερκόπορτα και δεν πρέπει να είναι κενό. Μετά την εκτέλεση της εντολής backdoor, το PowHeartBeat στέλνει το αποτέλεσμα ως αίτημα POST στον διακομιστή C&C. Το αποτέλεσμα αποστέλλεται ως αρχείο του οποίου το όνομα είναι .png.

ICMP

Ξεκινώντας από την έκδοση 2.4 του PowHeartBeat, το HTTP αντικαταστάθηκε από το ICMP, έστειλε πακέτα με χρονικό όριο έξι δευτερολέπτων και αποσπασματικά. Η επικοινωνία μέσω του ICMP είναι πιθανότατα ένας τρόπος αποφυγής του εντοπισμού.

Δεν υπάρχει καμία σημαντική αλλαγή στις εκδόσεις 2.4 και μεταγενέστερες, αλλά παρατηρήσαμε ορισμένες τροποποιήσεις στον κώδικα:

  • Το PowHeartBeat στέλνει ένα πακέτο καρδιακού παλμού σε κάθε βρόχο που περιέχει τη συμβολοσειρά abcdefghijklmnopqrstuvwxyz, πριν ζητήσετε εντολή. Αυτό ενημερώνει τον διακομιστή C&C ότι η κερκόπορτα είναι έτοιμη να λάβει εντολές.
  • Τα αιτήματα για λήψη εντολών που εκτελούνται από την κερκόπορτα περιέχουν τη συμβολοσειρά abcdefghijklmnop.

Τα πακέτα καρδιακών παλμών έχουν τη μορφή που περιγράφεται στο Σχήμα 7.

Worok: Η μεγάλη εικόνα PlatoBlockchain Data Intelligence. Κάθετη αναζήτηση. Ολα συμπεριλαμβάνονται.

Εικόνα 7. Διάταξη πακέτων καρδιακών παλμών

Η διαφορά μεταξύ ταυτότητα πελάτη και σημαία πελάτη είναι αυτό ταυτότητα πελάτη διαφέρει σε κάθε δείγμα ενώ σημαία πελάτη είναι το ίδιο σε κάθε δείγμα που χρησιμοποιεί ICMP. σημαία χτύπου της καρδιάς υποδηλώνει ότι η κερκόπορτα στέλνει έναν καρδιακό παλμό. Η απόκριση από τον διακομιστή C&C έχει τη μορφή που περιγράφεται στην Εικόνα 8.

Worok: Η μεγάλη εικόνα PlatoBlockchain Data Intelligence. Κάθετη αναζήτηση. Ολα συμπεριλαμβάνονται.

Εικόνα 8. Διάταξη απόκρισης διακομιστή C&C

σημαία εδώ υποδεικνύει εάν υπάρχει εντολή για έκδοση στην κερκόπορτα. Τα αιτήματα για λήψη εντολών έχουν τη μορφή που περιγράφεται στην Εικόνα 9.

Worok: Η μεγάλη εικόνα PlatoBlockchain Data Intelligence. Κάθετη αναζήτηση. Ολα συμπεριλαμβάνονται.

Εικόνα 9. Διάταξη για αιτήματα λήψης εντολών

Σημειώστε ότι η λειτουργία ICMP της κερκόπορτας επιτρέπει τη λήψη απεριόριστου όγκου δεδομένων, χωρισμένων σε κομμάτια και μεταβλητές μήκος δεδομένων, τρέχουσα θέση και συνολικό μήκος χρησιμοποιούνται για την παρακολούθηση των μεταδιδόμενων δεδομένων. Οι απαντήσεις σε αυτά τα αιτήματα έχουν τη μορφή που περιγράφεται στο Σχήμα 10.

Worok: Η μεγάλη εικόνα PlatoBlockchain Data Intelligence. Κάθετη αναζήτηση. Ολα συμπεριλαμβάνονται.

Εικόνα 10. Διάταξη απαντήσεων σε αιτήματα λήψης εντολών

Όπως και στις απαντήσεις HTTP, το αναγνωριστικό εντολής είναι το τρίτο byte ημερομηνία.

Μετά από επτά διαδοχικές απαντήσεις ICMP με κενό ή ασυνεπώς μορφοποιημένο περιεχόμενο, οι μεταφορές μεταξύ του backdoor και του διακομιστή C&C θεωρούνται ολοκληρωμένες.

Όσον αφορά τα αιτήματα αποστολής του αποτελέσματος της εντολής που έχει εκδοθεί στον διακομιστή C&C, η λειτουργία διακομιστή αλλάζει για λειτουργία ανάρτησης και η τελική συμβολοσειρά (abcdefghijklmnop) αλλάζει για τα δεδομένα αποτελέσματος.

Εντολές πίσω πόρτας

Το PowHeartBeat έχει διάφορες δυνατότητες, συμπεριλαμβανομένης της εκτέλεσης εντολών/διαδικασιών και χειρισμού αρχείων. Ο Πίνακας 2 παραθέτει όλες τις εντολές που υποστηρίζονται από τα διάφορα δείγματα που αναλύθηκαν.

Πίνακας 2. Περιγραφές εντολών PowHeartBeat

Όνομα Αναγνωριστικό εντολής Περιγραφή
Cmd 0x02 Εκτελέστε μια εντολή PowerShell.
Exe 0x04 Εκτελέστε μια εντολή ως α διαδικασια μας.
Ανέβασμα αρχείου 0x06 Ανεβάστε ένα αρχείο στο μηχάνημα-θύμα. Το περιεχόμενο του αρχείου είναι συμπιεσμένο με gzip.
Φόρτωση αρχείου 0x08 Κάντε λήψη ενός αρχείου από το μηχάνημα του θύματος και επιστρέψτε τη διαδρομή αρχείου, το μήκος του αρχείου, τον χρόνο δημιουργίας, τους χρόνους πρόσβασης και το περιεχόμενο του αρχείου στον διακομιστή C&C.
Προβολή αρχείου 0x0A Λάβετε πληροφορίες αρχείου ενός συγκεκριμένου καταλόγου, ειδικότερα:
· Ονόματα αρχείων
· Ιδιότητες αρχείου
· Τελευταίοι χρόνοι εγγραφής
· Περιεχόμενα αρχείου
Διαγραφή αρχείου 0x0C Διαγράψτε ένα αρχείο.
Μετονομασία αρχείου 0x0E Μετονομάστε ή μετακινήστε ένα αρχείο.
ChangeDir 0x10 Αλλάξτε την τρέχουσα θέση εργασίας της κερκόπορτας.
Πληροφορίες 0x12 Λάβετε μια κατηγορία πληροφοριών σύμφωνα με το καθορισμένο όρισμα:
· "Βασικές πληροφορίες": Ταυτότητα πελάτη, Εκδοχή, όνομα κεντρικού υπολογιστή, διευθύνσεις IP, explorer.exe πληροφορίες έκδοσης και μεγέθους, λειτουργικό σύστημα (αρχιτεκτονική και σημαία που υποδεικνύει εάν το μηχάνημα είναι διακομιστής), Διάστημα, τρέχων κατάλογος, πληροφορίες μονάδας δίσκου (όνομα, τύπος, ελεύθερος χώρος και συνολικό μέγεθος), τρέχουσα ώρα
· «Πληροφορίες χρονικού διαστήματος»: Διάστημα και την τρέχουσα ώρα
· "Πληροφορίες τομέα": αποκρυπτογραφημένο περιεχόμενο αρχείου διαμόρφωσης
Config 0x14 Ενημερώστε το περιεχόμενο του αρχείου διαμόρφωσης και φορτώστε ξανά τη διαμόρφωση.
N / A 0x63 Έξοδος πίσω πόρτας.

Σε περίπτωση σφαλμάτων στην πλευρά της κερκόπορτας, η κερκόπορτα χρησιμοποιεί ένα συγκεκριμένο αναγνωριστικό εντολής 0x00 στο αίτημα POST προς τον διακομιστή C&C, υποδεικνύοντας έτσι ότι παρουσιάστηκε σφάλμα.

Σημειώστε ότι πριν στείλετε τις πληροφορίες πίσω στον διακομιστή C&C, τα δεδομένα συμπιέζονται με gzip.

PNGLoad: Steganographic loader

Το PNGLoad είναι το ωφέλιμο φορτίο δεύτερου σταδίου που αναπτύσσεται από το Worok σε παραβιασμένα συστήματα και, σύμφωνα με την τηλεμετρία της ESET, φορτώνεται είτε από το CLRLoad είτε από το PowHeartBeat. Αν και δεν βλέπουμε κανέναν κώδικα στο PowHeartBeat που να φορτώνει απευθείας το PNGLoad, το backdoor έχει τη δυνατότητα λήψης και εκτέλεσης πρόσθετων ωφέλιμων φορτίων από τον διακομιστή C&C, κάτι που είναι πιθανό ο τρόπος με τον οποίο οι εισβολείς έχουν αναπτύξει το PNGLoad σε συστήματα που έχουν παραβιαστεί με το PowHeartBeat. Το PNGLoad είναι ένα πρόγραμμα φόρτωσης που χρησιμοποιεί byte από αρχεία PNG για να δημιουργήσει ένα ωφέλιμο φορτίο για εκτέλεση. Είναι ένα εκτελέσιμο .NET 64-bit – συσκοτισμένο με .NET Reactor – που μεταμφιέζεται ως νόμιμο λογισμικό. Για παράδειγμα, το σχήμα 11 δείχνει τις κεφαλίδες CLR ενός δείγματος που μεταμφιέζεται σε WinRAR DLL.

Worok: Η μεγάλη εικόνα PlatoBlockchain Data Intelligence. Κάθετη αναζήτηση. Ολα συμπεριλαμβάνονται.

Εικόνα 11. Παράδειγμα πλαστού WinRAR DLL

Μόλις αποσυμφορηθεί, υπάρχει μόνο μία κλάση. Σε αυτή την τάξη, υπάρχει ένα MainPath χαρακτηριστικό που περιέχει τη διαδρομή καταλόγου που αναζητά το backdoor, συμπεριλαμβανομένων των υποκαταλόγων του, για αρχεία με α . Png επέκταση, όπως φαίνεται στο σχήμα 12.

Worok: Η μεγάλη εικόνα PlatoBlockchain Data Intelligence. Κάθετη αναζήτηση. Ολα συμπεριλαμβάνονται.

Εικόνα 12. . Png καταχώριση αρχείων

Κάθε . Png αρχείο που βρίσκεται από αυτήν την αναζήτηση του MainPath στη συνέχεια ελέγχεται για στεγανογραφικά ενσωματωμένο περιεχόμενο. Πρώτον, το λιγότερο σημαντικό bit των τιμών R (κόκκινο), G (πράσινο), B (μπλε) και A (άλφα) κάθε εικονοστοιχείου ανακτάται και συναρμολογείται σε μια προσωρινή μνήμη. Εάν τα πρώτα οκτώ byte αυτού του buffer ταιριάζουν με τον μαγικό αριθμό που φαίνεται στο Σχήμα 13 και η επόμενη τιμή οκτώ byte, έλεγχος, δεν είναι μηδενική, το αρχείο περνά τον έλεγχο στεγανογραφικού περιεχομένου του PNGLoad. Για τέτοια αρχεία, η επεξεργασία συνεχίζεται με το υπόλοιπο buffer αποκρυπτογραφημένο με XOR πολλαπλών byte, χρησιμοποιώντας το κλειδί που είναι αποθηκευμένο στο PNGLoad's SecretKeyBytes χαρακτηριστικό και, στη συνέχεια, το αποκρυπτογραφημένο buffer αποσυμπιέζεται με gzip. Το αποτέλεσμα αναμένεται να είναι ένα σενάριο PowerShell, το οποίο εκτελείται αμέσως.

Worok: Η μεγάλη εικόνα PlatoBlockchain Data Intelligence. Κάθετη αναζήτηση. Ολα συμπεριλαμβάνονται.

Εικόνα 13. Μορφή προσωρινής μνήμης Το PNGLoad δημιουργείται από την επεξεργασία . Png αρχεία

Είναι ενδιαφέρον ότι οι λειτουργίες που εκτελούνται από το PNGLoad καταγράφονται σε ένα αρχείο του οποίου η διαδρομή είναι αποθηκευμένη στη μεταβλητή LogFilePath. Οι λειτουργίες καταγράφονται μόνο εάν υπάρχει ένα αρχείο του οποίου η διαδρομή καθορίζεται από την εσωτερική μεταβλητή IfLogFilePath.

Δεν μπορέσαμε να λάβουμε δείγμα . Png Το αρχείο χρησιμοποιείται μαζί με το PNGLoad, αλλά ο τρόπος που λειτουργεί το PNGLoad υποδηλώνει ότι θα πρέπει να λειτουργεί με έγκυρα αρχεία PNG. Για να κρύψει το κακόβουλο ωφέλιμο φορτίο, το Worok χρησιμοποιεί αντικείμενα Bitmap σε C#, τα οποία λαμβάνουν μόνο πληροφορίες pixel από αρχεία και όχι από τα μεταδεδομένα του αρχείου. Αυτό σημαίνει ότι το Worok μπορεί να κρύψει τα κακόβουλα ωφέλιμα φορτία του σε έγκυρες, αβλαβείς εικόνες PNG και έτσι να κρυφτεί σε κοινή θέα.

Συμπέρασμα

Το Worok είναι μια ομάδα κυβερνοκατασκοπείας που αναπτύσσει τα δικά της εργαλεία, καθώς και αξιοποιεί υπάρχοντα εργαλεία, για να συμβιβάσει τους στόχους της. Η κλοπή πληροφοριών από τα θύματά τους είναι αυτό που πιστεύουμε ότι επιδιώκουν οι χειριστές επειδή επικεντρώνονται σε οντότητες υψηλού προφίλ στην Ασία και την Αφρική, στοχεύοντας διάφορους τομείς, ιδιωτικούς και δημόσιους, αλλά με ιδιαίτερη έμφαση σε κρατικούς φορείς. Οι χρόνοι δραστηριότητας και το σύνολο εργαλείων υποδεικνύουν πιθανούς δεσμούς με το TA428, αλλά κάνουμε αυτήν την αξιολόγηση με χαμηλή εμπιστοσύνη. Το προσαρμοσμένο σύνολο εργαλείων τους περιλαμβάνει δύο φορτωτές – ένα σε C++ και ένα σε C# .NET – και ένα κερκόπορτα PowerShell. Αν και η ορατότητά μας είναι περιορισμένη, ελπίζουμε ότι το να ρίξει φως σε αυτήν την ομάδα θα ενθαρρύνει άλλους ερευνητές να μοιραστούν πληροφορίες σχετικά με αυτήν την ομάδα.

Για οποιαδήποτε απορία σχετικά με την έρευνά μας που δημοσιεύτηκε στο WeLiveSecurity, επικοινωνήστε μαζί μας στο απειλητικό@eset.com.

Η ESET Research τώρα προσφέρει επίσης ιδιωτικές αναφορές πληροφοριών APT και ροές δεδομένων. Για οποιαδήποτε απορία σχετικά με αυτήν την υπηρεσία, επισκεφθείτε τη διεύθυνση ESET Threat Intelligence .

ΔΟΕ

Αρχεία

SHA-1 Όνομα Όνομα ανίχνευσης ESET Σχόλιο
3A47185D0735CDECF4C7C2299EB18401BFB328D5 γραφή PowerShell/PowHeartBeat.B PowHeartBeat 2.4.3.0003.
27ABB54A858AD1C1FF2863913BDA698D184E180D γραφή PowerShell/PowHeartBeat.A PowHeartBeat 2.4.3.0003.
678A131A9E932B9436241402D9727AA7D06A87E3 γραφή PowerShell/PowHeartBeat.B PowHeartBeat 2.4.3.0003.
757ABA12D04FD1167528FDD107A441D11CD8C427 γραφή PowerShell/PowHeartBeat.B PowHeartBeat 2.1.3.0003.
54700A48D934676FC698675B4CA5F712C0373188 γραφή PowerShell/PowHeartBeat.A PowHeartBeat 1.1.3.0002.
C2F53C138CB1B87D8FC9253A7088DB30B25389AF γραφή PowerShell/PowHeartBeat.A PowHeartBeat 1.1.3.0002.
C2F1954DE11F72A46A4E823DE767210A3743B205 tmp.ps1 PowerShell/PowHeartBeat.B PowHeartBeat 2.4.3.0004.
CE430A27DF87A6952D732B4562A7C23BEF4602D1 tmp.ps1 PowerShell/PowHeartBeat.A PowHeartBeat 2.1.3.0004.
EDE5AB2B94BA85F28D5EE22656958E4ECD77B6FF γραφή PowerShell/PowHeartBeat.A PowHeartBeat 2.4.3.0003.
4721EEBA13535D1EE98654EFCE6B43B778F13126 vix64.dll MSIL/PNGLoader.A PNGLoader.
728A6CB7A150141B4250659CF853F39BFDB7A46C RarExtMgt.dll MSIL/PNGLoader.A PNGLoader.
864E55749D28036704B6EA66555A86527E02AF4A Jsprofile.dll MSIL/PNGLoader.A PNGLoader.
8DA6387F30C584B5FD3694A99EC066784209CA4C vssxml.dll MSIL/PNGLoader.A PNGLoader.
AA60FB4293530FBFF00D200C0D44EEB1A17B1C76 xsec_1_5.dll MSIL/PNGLoader.A PNGLoader.
B2EAEC695DD8BB518C7E24C4F37A08344D6975BE msvbvm80.dll MSIL/PNGLoader.A PNGLoader.
CDB6B1CAFEE098615508F107814179DEAED1EBCF lucenelib.dll MSIL/PNGLoader.A PNGLoader.
4F9A43E6CF37FF20AE96E564C93898FDA6787F7D vsstrace.dll Win64/CLRLoad.C CLRLload.
F181E87B0CD6AA4575FD51B9F868CA7B27240610 ncrypt.dll Win32/CLRLoad.A CLRLload.
4CCF0386BDE80C339EFE0CC734CB497E0B08049C ncrypt.dll Win32/CLRLoad.A CLRLload.
5CFC0D776AF023DCFE8EDED5CADA03C6D7F9C244 wlbsctrl.dll Win64/CLRLoad.E CLRLload.
05F19EBF6D46576144276090CC113C6AB8CCEC08 wlbsctrl.dll Win32/CLRLoad.A CLRLload.
A5D548543D3C3037DA67DC0DA47214B2C2B15864 secur32.dll Win64/CLRLoad.H CLRLload.
CBF42DCAF579AF7E6055237E524C0F30507090F3 dbghelp.dll Win64/CLRLoad.C CLRLload.

Διαδρομές αρχείων

Μερικά από τα MainPath, LogFilePath και IfLogFilePath τιμές που συναντήσαμε σε δείγματα PNGLoad:

MainPath LogFilePath IfLogFilePath
C:Program FilesVMwareVMware Tools C:Program FilesVMwareVMware ToolsVMware VGAuthreadme.txt C:Program FilesVMwareVMware ToolsVMware VGAuthVMWSU_V1_1.dll
C: Program FilesWinRar C:Program FilesWinRarrarinstall.log C:Program FilesWinRardes.dat
C:Program FilesUltraViewer C:Program FilesUltraViewer‌CopyRights.dat C:Program FilesUltraVieweruvcr.dll

Δίκτυο

Domain IP
Κανένας 118.193.78[.]22
Κανένας 118.193.78[.]57
αεροπλάνο.ταξιδιωτικά-εμπορικά[.]πρακτορείο 5.183.101[.]9
κεντρικός.suhypercloud[.]org 45.77.36[.]243

Mutexes

Στα δείγματα CLRLoad, τα ονόματα mutex που συναντήσαμε είναι:

aB82UduGX0EX
ad8TbUIZl5Ga
Mr2PJVxbIBD4
oERiQtKLgPgK
U37uxsCsA4Xm
Wo0r0KGWhYGO
xBUjQR2vxYTz
zYCLBWekRX3t
3c3401ad-e77d-4142-8db5-8eb5483d7e41
9xvzMsaWqxMy

Μπορείτε να βρείτε μια πλήρη λίστα δεικτών συμβιβασμού (IoC) και δειγμάτων το αποθετήριο μας GitHub.

Τεχνικές MITER ATT & CK

Αυτός ο πίνακας κατασκευάστηκε χρησιμοποιώντας έκδοση 11 του πλαισίου MITER ATT & CK.

Τακτική ID Όνομα Περιγραφή
Αναγνώριση T1592.002 Συλλέξτε πληροφορίες οικοδεσπότη θυμάτων: Λογισμικό Το PowHeartBeat συγκεντρώνει explorer.exe πληροφοριών.
T1592.001 Συλλέξτε πληροφορίες οικοδεσπότη θυμάτων: Υλικό Το PowHeartBeat συλλέγει πληροφορίες σχετικά με τις μονάδες δίσκου.
T1590.005 Συλλέξτε πληροφορίες δικτύου θυμάτων: Διευθύνσεις IP Το PowHeartBeat συγκεντρώνει διευθύνσεις IP του υπολογιστή που έχει παραβιαστεί.
Ανάπτυξη πόρων T1583.004 Αποκτήστε υποδομή: Διακομιστής Το Worok χρησιμοποιεί τους δικούς του διακομιστές C&C.
T1588.002 Αποκτήστε δυνατότητες: Εργαλείο Το Worok ανέπτυξε πολλά δημόσια διαθέσιμα εργαλεία στα παραβιασμένα μηχανήματα.
T1583.001 Αποκτήστε υποδομή: Τομείς Το Worok έχει καταχωρίσει τομείς για να διευκολύνει την επικοινωνία και τη σταδιοποίηση C&C.
T1588.005 Αποκτήστε Δυνατότητες: Εκμεταλλεύσεις Το Worok έχει χρησιμοποιήσει την ευπάθεια ProxyShell.
T1587.001 Ανάπτυξη δυνατοτήτων: Κακόβουλο λογισμικό Το Worok έχει αναπτύξει το δικό του κακόβουλο λογισμικό: CLRLoad, PNGLoad, PowHeartBeat.
T1587.003 Ανάπτυξη Δυνατοτήτων: Ψηφιακά Πιστοποιητικά Το Worok δημιούργησε πιστοποιητικά Let's Encrypt SSL για να ενεργοποιήσει τον αμοιβαίο έλεγχο ταυτότητας TLS για κακόβουλο λογισμικό.
Εκτέλεση T1059.001 Διερμηνέας εντολών και σεναρίων: PowerShell Το PowHeartBeat είναι γραμμένο σε PowerShell.
Επιμονή T1505.003 Στοιχείο λογισμικού διακομιστή: Web Shell Το Worok χρησιμοποιεί το webshell ReGeorg.
Αμυντική υπεκφυγή T1140 Αποσυμφόρηση/Αποκωδικοποίηση αρχείων ή πληροφοριών Το Worok χρησιμοποιεί διάφορα προσαρμοσμένα σχήματα που βασίζονται σε XOR για την κρυπτογράφηση συμβολοσειρών και αρχείων καταγραφής σε PowHeartBeat, PNGLoad και CLRLoad.
T1036.005 Μεταμφίεση: Αντιστοίχιση νόμιμου ονόματος ή τοποθεσίας Τα δείγματα PNGLoad αναπτύσσονται σε καταλόγους VMWare με νόμιμη εμφάνιση.
Πρόσβαση διαπιστευτηρίων T1003.001 Απόρριψη διαπιστευτηρίων λειτουργικού συστήματος: Μνήμη LSASS Το Worok χρησιμοποιεί το Mimikatz για την απόρριψη διαπιστευτηρίων από τη μνήμη LSASS.
Ανακάλυψη T1082 Ανακάλυψη πληροφοριών συστήματος Το PowHeartBeat συλλέγει πληροφορίες λειτουργικού συστήματος.
T1083 Ανακάλυψη αρχείων και καταλόγου Το PowHeartBeat μπορεί να παραθέσει αρχεία και καταλόγους.
T1046 Ανακάλυψη υπηρεσίας δικτύου Worok χρήσεις NbtScan για να λάβετε πληροφορίες δικτύου για μηχανήματα που έχουν υποστεί βλάβη.
T1124 Ανακάλυψη χρόνου συστήματος Το PowHeartBeat συγκεντρώνει πληροφορίες για την ώρα του θύματος.
Συλλογή T1005 Δεδομένα από το Τοπικό Σύστημα Το PowHeartBeat συλλέγει δεδομένα από το τοπικό σύστημα.
T1560.002 Αρχειοθέτηση Συλλεγμένων Δεδομένων: Αρχειοθέτηση μέσω Βιβλιοθήκης Το PowHeartBeat gzip-συμπιέζει δεδομένα πριν τα στείλει στον διακομιστή C&C.
Διοίκησης και Ελέγχου T1071.001 Πρωτόκολλο επιπέδου εφαρμογής: Πρωτόκολλα Ιστού Ορισμένες παραλλαγές του PowHeartBeat χρησιμοποιούν το HTTP ως πρωτόκολλο επικοινωνίας με τον διακομιστή C&C.
T1090.001 Proxy: Εσωτερικός διακομιστής μεσολάβησης Το PowHeartBeat χειρίζεται τη διαμόρφωση διακομιστή μεσολάβησης στον υπολογιστή του θύματος.
T1001.002 Συσκότιση Δεδομένων: Στεγανογραφία Το PNGLoad εξάγει τιμές pixel από . Png αρχεία για την ανακατασκευή ωφέλιμων φορτίων.
T1573.002 Κρυπτογραφημένο κανάλι: Ασύμμετρη Κρυπτογραφία Το PowHeartBeat χειρίζεται τις επικοινωνίες HTTPS με τον διακομιστή C&C.
T1095 Πρωτόκολλο μη επιπέδων εφαρμογής Ορισμένες παραλλαγές του PowHeartBeat χρησιμοποιούν το ICMP ως πρωτόκολλο επικοινωνίας με τον διακομιστή C&C.
T1132.001 Κωδικοποίηση δεδομένων: Τυπική κωδικοποίηση Το Worok χρησιμοποιεί κωδικοποίηση XOR σε PowHeartBeat και PNGLoad.
T1132.002 Κωδικοποίηση δεδομένων: Μη τυπική κωδικοποίηση Το Worok χρησιμοποιεί αλγόριθμους κωδικοποίησης XOR που κάνουν χρήση ενός επιπλέον αλατιού.
εκδιήθησης T1041 Διήθηση πάνω από το κανάλι C2 Το PowHeartBeat χρησιμοποιεί το κανάλι επικοινωνίας του C&C για να εξάγει πληροφορίες.

Worok: Η μεγάλη εικόνα PlatoBlockchain Data Intelligence. Κάθετη αναζήτηση. Ολα συμπεριλαμβάνονται.

Σφραγίδα ώρας:

Περισσότερα από Ζούμε Ασφάλεια