Wslink: Einzigartiger und undokumentierter bösartiger Loader, jener denn Server läuft
[ad_1]
Es gibt keine Identifikator-, Funktions- oder Betriebsähnlichkeiten, die darauf hindeuten, dass es sich um ein Tool eines bekannten Bedrohungsakteurs handelt
ESET-Forscher nach sich ziehen verdongeln einzigartigen und bisher unbeschriebenen Loader zu Händen Windows-Binärdateien entdeckt, jener im Kontroverse zu anderen solchen Loadern denn Server läuft und empfangene Module im Speicher ausführt. Wir nach sich ziehen jene neue Schadsoftware Wslink nachdem einer ihrer DLLs geheißen.
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 traut; die meisten Beispiele sind mit MPRESS gepackt und manche Teile des Codes sind virtualisiert. Leider konnten wir bisher keines jener Module erhalten, die es erhalten soll. Es gibt keine Identifikator-, Funktions- oder Betriebsähnlichkeiten, die darauf hindeuten, dass es sich wahrscheinlich um ein Werkzeug einer bekannten Bedrohungsakteurgruppe handelt.
Die folgenden Abschnitte enthalten eine Resümee des Loaders und unsrige eigene Implementierung seines Clients, die ursprünglich zum Experimentieren mit Erkennungsmethoden entwickelt wurde. Welcher Quellcode dieses Clients könnte zu Händen Spund in jener Schadsoftware-Resümee interessant sein – er zeigt, wie man vorhandene Funktionen von zuvor analysierter Schadsoftware wiederverwenden und mit ihnen interagieren kann. Die Resümee selbst könnte gleichwohl denn informative Ressource wirken, die jene Gefahr zu Händen blaue Teamer dokumentiert.
Technische Resümee
Wslink wird denn Tätigkeit umgesetzt und lauscht gen allen Netzwerkschnittstellen gen dem in jener angegebenen Port Tafelgeschirr-Port Registrierungswert des Dienstes Unbekannte Schlüssel. Die vorhergehende Komponente, die den Wslink-Tätigkeit registriert, ist nicht traut. Lichtbild 1 zeigt den Identifikator, jener eingehende Verbindungen zu diesem Port akzeptiert.
Hinauf die Spekulation einer Zusammenhang folgt ein RSA-Handshake mit einem hartcodierten öffentlichen 2048-Bit-Schlüssel, um sowohl den Schlüssel denn gleichwohl den zu Händen 256-Bit-AES im CBC-Modus zu verwendenden IV sicher auszutauschen (siehe Lichtbild 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 weltweit gespeichert und steht damit allen Clients zur Verfügung. Hinauf jene Weise kann man Verkehrswesen sparen – nur den Schlüssel transferieren, wenn die Signatur des zu ladenden Moduls mit jener vorherigen übereinstimmt.
Wie in Lichtbild 3 zu sehen ist, wird dies entschlüsselte Modul, unter 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 zu Händen Kommunikation, Socket, Key und IV werden dem Export in einem Unbekannte Erbrechen, so dass dies Modul zusätzlich die schon aufgebaute Zusammenhang Nachrichtensendung umtauschen kann.
Implementierung des Kunden
Unsrige eigene Implementierung eines Wslink-Clients, wie unten beschrieben, baut problemlos eine Zusammenhang zu einem modifizierten Wslink-Server gen 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 nachdem 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 Lichtbild 4) – wir können sie sofort nutzen und zu tun sein sie später nicht neu implementieren.
Anschließend liest unser Client den zu verwendenden privaten RSA-Schlüssel aus einer File und eine Zusammenhang zur angegebenen IP und Port wird aufgebaut. Es wird erwartet, dass eine Instanz von Wslink schon gen jener angegebenen Postadresse und dem Port lauscht. Natürlich muss gleichwohl sein eingebetteter öffentlicher Schlüssel durch verdongeln ersetzt werden, dessen privater Schlüssel traut ist.
Unser Client und jener Wslink-Server pendeln mit dem Handshake fort, jener den Schlüssel und den zu Händen die AES-Verschlüsselung zu verwendenden IV austauscht. Dies besteht aus drei Schritten, wie in Lichtbild 5 zu sehen: Senden eines Client-Hallo, Empfangen des symmetrischen Schlüssels mit IV und Zurücksenden, um die erfolgreiche Entschlüsselung zu ermitteln. Basta 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, dementsprechend setzen wir es problemlos gen Nullen.
Welcher letzte Teil ist dies Senden des Moduls. Wie man in Lichtbild 6 sehen kann, besteht es aus ein paar einfachen Schritten:
- die Signatur des zuvor geladenen Moduls erhalten – wir nach sich ziehen uns entschlossen, in unserer Implementierung nichts damit zu tun, da es zu Händen uns nicht wichtig war
- Senden einer hartcodierten Signatur des Moduls
- dies Modul aus einer File Vorlesung halten, verschlüsseln (siehe Lichtbild 7) und versenden
- Senden des Verschlüsselungsschlüssels des Moduls
Welcher vollständige Quellcode zu Händen unseren Client ist in unserem WslinkClient GitHub-Repository verfügbar. Befolgen Sie, dass jener Identifikator immer noch verdongeln erheblichen Arbeitsaufwand erfordert, um zu Händen böswillige Zwecke verwendet werden zu können, und es wäre einfacher, verdongeln anderen Lader von Grund gen neu zu erstellen.
Ziel
Wslink ist ein einfacher, dagegen bemerkenswerter Loader, jener im Kontroverse zu denen, die wir normalerweise sehen, denn Server läuft und empfangene Module im Speicher ausführt.
Interessanterweise verwenden die Module die Funktionen des Laders zu Händen Kommunikation, Tasten und Buchsen wieder; von dort zu tun sein sie keine neuen ausgehenden Verbindungen initiieren. Wslink verfügt zusätzlich zusätzlich ein gut entwickeltes kryptografisches Protokoll, um die ausgetauschten Statistik zu schützen.
IoCs
Proben
SHA-1 | ESET-Erkennungsname |
---|---|
01257C3669179F754489F92947FBE0B57AEAE573 | Win64/TrojanDownloader.Wslink |
E6F36C66729A151F4F60F54012F242736BA24862 | |
39C4DE564352D7B6390BFD50B28AA9461C93FB32 |
MITRE ATT&CK-Techniken
Solche Tabelle wurde erstellt mit Version 9 des ATT&CK-Frameworks.
Taktik | ICH WÜRDE | Name | Erklärung |
---|---|---|---|
Unternehmen | T1587.001 | Entwicklungsfähigkeiten: Schadsoftware | Wslink ist ein benutzerdefinierter PE-Loader. |
Exekution | T1129 | Verbinden genutzte Module | Wslink lädt DLLs im Random Access Memory und führt sie aus. |
T1569.002 | Systemdienste: Dienstausführung | Wslink wird denn Tätigkeit umgesetzt. | |
Verschleierte Dateien oder Informationen | T1027.002 | Verschleierte Dateien oder Informationen: Softwarepakete | Wslink ist mit MPRESS gepackt und sein Identifikator könnte virtualisiert werden. |
Steuerung und Test | T1573.001 | Verschlüsselter Programm: Symmetrische Kryptographie | Wslink verschlüsselt den Datenverkehr mit AES. |
T1573.002 | Verschlüsselter Programm: Asymmetrische Kryptographie | Wslink tauscht verdongeln symmetrischen Schlüssel mit RSA aus. |