Now Reading
Wslink: Einzigartiger und undokumentierter bösartiger Loader, jener wie Server läuft

Wslink: Einzigartiger und undokumentierter bösartiger Loader, jener wie Server läuft

Wslink: Einzigartiger und undokumentierter bösartiger Loader, der als Server läuft

Es gibt keine Kennung-, Funktions- oder Betriebsähnlichkeiten, die darauf hindeuten, dass es sich um ein Tool eines bekannten Bedrohungsakteurs handelt

ESET-Forscher nach sich ziehen zusammensetzen einzigartigen und bisher unbeschriebenen Loader für jedes Windows-Binärdateien entdeckt, jener im Unterschied zu anderen solchen Loadern wie Server läuft und empfangene Module im Speicher ausführt. Wir nach sich ziehen selbige neue Schadsoftware Wslink nachher einer ihrer DLLs so genannt.

Wir nach sich ziehen in den letzten zwei Jahren nur wenige Treffer in unserer Telemetrie gesehen, mit Erkennungen in Mitteleuropa, Nordamerika und im Nahen Osten. Welcher anfängliche Kompromissvektor ist nicht veröffentlicht; die meisten Beispiele sind mit MPRESS gepackt und wenige Teile des Codes sind virtualisiert. Leider konnten wir bisher keines jener Module erhalten, die es erhalten soll. Es gibt keine Kennung-, Funktions- oder Betriebsähnlichkeiten, die darauf hindeuten, dass es sich wahrscheinlich um ein Werkzeug einer bekannten Bedrohungsakteurgruppe handelt.

Die folgenden Abschnitte enthalten eine Betrachtung des Loaders und unsrige eigene Implementierung seines Clients, die ursprünglich zum Experimentieren mit Erkennungsmethoden entwickelt wurde. Welcher Quellcode dieses Clients könnte für jedes Neuling in jener Schadsoftware-Betrachtung interessant sein – er zeigt, wie man vorhandene Funktionen von zuvor analysierter Schadsoftware wiederverwenden und mit ihnen interagieren kann. Die Betrachtung selbst könnte untergeordnet wie informative Ressource wirken, die selbige Gefahr für jedes blaue Teamer dokumentiert.

Technische Betrachtung

Wslink wird wie Tätigkeit umgesetzt und lauscht hinauf allen Netzwerkschnittstellen hinauf dem in jener angegebenen Port Tafelgeschirr-Port Registrierungswert des Dienstes Variable Schlüssel. Die vorhergehende Komponente, die den Wslink-Tätigkeit registriert, ist nicht veröffentlicht. Kurvenblatt 1 zeigt den Kennung, jener eingehende Verbindungen zu diesem Port akzeptiert.

Kurvenblatt 1. Hex-Rays-Dekompilierung jener Schleife, die eingehende Verbindungen akzeptiert

Aufwärts die Vermutung einer Vernetzung folgt ein RSA-Handshake mit einem hartcodierten öffentlichen 2048-Bit-Schlüssel, um sowohl den Schlüssel wie untergeordnet den für jedes 256-Bit-AES im CBC-Modus zu verwendenden IV sicher auszutauschen (siehe Kurvenblatt 2). Dasjenige verschlüsselte Modul wird anschließend mit einer eindeutigen Kennung – Signatur – und einem zusätzlichen Schlüssel zu seiner Entschlüsselung empfangen.

Interessanterweise wird dies zuletzt empfangene verschlüsselte Modul mit seiner Signatur multinational gespeichert und steht damit allen Clients zur Verfügung. Aufwärts selbige Weise kann man Verkehrswesen sparen – nur den Schlüssel veräußern, wenn die Signatur des zu ladenden Moduls mit jener vorherigen übereinstimmt.

Kurvenblatt 2. Hex-Rays-Dekompilierung beim Empfang des Moduls und seiner Signatur

Wie in Kurvenblatt 3 zu sehen ist, wird dies entschlüsselte Modul, im Zusammenhang dem es sich um eine normale PE-File handelt, mithilfe jener MemoryModule-Bibliothek in den Speicher geladen und schließlich jener erste Export umgesetzt. Die Funktionen für jedes Kommunikation, Socket, Key und IV werden dem Export in einem Variable geben, so dass dies Modul droben die schon aufgebaute Vernetzung Nachrichtensendung kommutieren kann.

Kurvenblatt 3. Hex-Rays-Dekompilierung des Codes, jener dies empfangene Modul im Speicher ausführt

Implementierung des Kunden

Unsrige eigene Implementierung eines Wslink-Clients, wie unten beschrieben, baut wie am Schnürchen eine Vernetzung zu einem modifizierten Wslink-Server hinauf und sendet ein Modul, dies dann entschlüsselt und umgesetzt wird. Da unser Client den privaten Schlüssel, jener dem öffentlichen Schlüssel in einer bestimmten Wslink-Serverinstanz entspricht, nicht Kontakt haben kann, nach sich ziehen wir unser eigenes Schlüsselpaar erstellt und die ausführbare Serverdatei mit dem öffentlichen Schlüssel dieses Paares modifiziert und den privaten Schlüssel in unserer Wslink-Client-Implementierung verwendet.

Dieser Client ermöglichte es uns, die Kommunikation von Wslink zu reproduzieren und nachher einzigartigen Mustern zu suchen; es bestätigte unsrige Ergebnisse zusätzlich, weil wir sein Verhalten nachahmen konnten.

Manche Funktionen zum Senden/Empfangen von Nachrichtensendung werden zunächst aus dem Originalmuster übernommen (siehe Kurvenblatt 4) – wir können sie sofort nutzen und sollen sie später nicht neu implementieren.

Kurvenblatt 4. Welcher Kennung zum Laden von Funktionen aus einem Wslink-Exempel

Anschließend liest unser Client den zu verwendenden privaten RSA-Schlüssel aus einer File und eine Vernetzung zur angegebenen IP und Port wird aufgebaut. Es wird erwartet, dass eine Instanz von Wslink schon hinauf jener angegebenen Anschrift und dem Port lauscht. Natürlich muss untergeordnet sein eingebetteter öffentlicher Schlüssel durch zusammensetzen ersetzt werden, dessen privater Schlüssel veröffentlicht ist.

Unser Client und jener Wslink-Server kutschieren mit dem Handshake fort, jener den Schlüssel und den für jedes die AES-Verschlüsselung zu verwendenden IV austauscht. Dies besteht aus drei Schritten, wie in Kurvenblatt 5 zu sehen: Senden eines Client-Hallo, Empfangen des symmetrischen Schlüssels mit IV und Zurücksenden, um die erfolgreiche Entschlüsselung zu nachsehen. Ende jener Umpolung jener Wslink-Binärdatei nach sich ziehen wir gelernt, dass die einzige Einschränkung jener Hallo-Nachricht, ausgenommen von jener Größe von 240 Bytes, darin besteht, dass dies zweite Byte Null sein muss, folglich setzen wir es wie am Schnürchen hinauf Nullen.

See Also
US-Verteidigungsunternehmen gibt Datenschutzverletzung bekannt

Kurvenblatt 5. Kennung unseres Kunden für jedes den RSA-Handshake

Welcher letzte Teil ist dies Senden des Moduls. Wie man in Kurvenblatt 6 sehen kann, besteht es aus ein paar einfachen Schritten:

  • die Signatur des zuvor geladenen Moduls erhalten – wir nach sich ziehen uns kategorisch, in unserer Implementierung nichts damit zu tun, da es für jedes uns nicht wichtig war
  • Senden einer hartcodierten Signatur des Moduls
  • dies Modul aus einer File Vorlesung halten, verschlüsseln (siehe Kurvenblatt 7) und versenden
  • Senden des Verschlüsselungsschlüssels des Moduls

Kurvenblatt 6. Kennung unseres Kunden zum Senden des Moduls

Kurvenblatt 7. Kennung unseres Kunden zum Laden und Verschlüsseln des Moduls

Welcher vollständige Quellcode für jedes unseren Client ist in unserem WslinkClient GitHub-Repository verfügbar. Einplanen Sie, dass jener Kennung immer noch zusammensetzen erheblichen Arbeitsaufwand erfordert, um für jedes böswillige Zwecke verwendet werden zu können, und es wäre einfacher, zusammensetzen anderen Lader von Grund hinauf neu zu erstellen.

Zweck

Wslink ist ein einfacher, im Unterschied dazu bemerkenswerter Loader, jener im Unterschied zu denen, die wir normalerweise sehen, wie Server läuft und empfangene Module im Speicher ausführt.

Interessanterweise verwenden die Module die Funktionen des Laders für jedes Kommunikation, Tasten und Buchsen wieder; von dort sollen sie keine neuen ausgehenden Verbindungen initiieren. Wslink bietet zusätzlich ein gut entwickeltes kryptografisches Protokoll zum Schutzmechanismus jener ausgetauschten Fakten.

IoCs

Proben

SHA-1 ESET-Erkennungsname
01257C3669179F754489F92947FBE0B57AEAE573 Win64/TrojanDownloader.Wslink
E6F36C66729A151F4F60F54012F242736BA24862
39C4DE564352D7B6390BFD50B28AA9461C93FB32

MITRE ATT&CK-Techniken

Welche Tabelle wurde erstellt mit Version 9 des ATT&CK-Frameworks.

Taktik ICH WÜRDE Name Darstellung
Unternehmen T1587.001 Entwicklungsfähigkeiten: Schadsoftware Wslink ist ein benutzerdefinierter PE-Loader.
Version T1129 Verbinden genutzte Module Wslink lädt DLLs im RAM und führt sie aus.
T1569.002 Systemdienste: Dienstausführung Wslink wird wie Tätigkeit umgesetzt.
Verschleierte Dateien oder Informationen T1027.002 Verschleierte Dateien oder Informationen: Softwarepakete Wslink ist mit MPRESS gepackt und sein Kennung könnte virtualisiert werden.
Steuerung und Leistungsnachweis T1573.001 Verschlüsselter Wasserweg: Symmetrische Kryptographie Wslink verschlüsselt den Datenverkehr mit AES.
T1573.002 Verschlüsselter Wasserweg: Asymmetrische Kryptographie Wslink tauscht zusammensetzen symmetrischen Schlüssel mit RSA aus.

What's Your Reaction?
Excited
0
Happy
0
In Love
0
Not Sure
0
Silly
0
View Comments (0)

Leave a Reply

Your email address will not be published.

Scroll To Top