Die neue modulare Hintertür PipeMon der Winnti Group wurde im Februar 2020 entdeckt. Ihre Hauptziele sind koreanische und taiwanesische Multiplayer-Online-Gaming- und Videounternehmen, und die Malware kann Angriffe auf die Lieferkette starten. Angreifer können Trojaner in veröffentlichte Spiele einbetten oder Spieleserver angreifen und Spielwährungen nutzen, um finanzielle Vorteile zu erzielen. Die Winnti Group ist seit 2012 aktiv und nimmt Supply-Chain-Angriffe in der Softwareindustrie ins Visier. Kürzlich entdeckten ESET-Forscher auch Angriffe, die auf mehrere Universitäten in Hongkong abzielten.
In Zielunternehmen wurden zwei Varianten von PipeMon entdeckt. Der erste Schritt von PipeMon besteht darin, eine passwortgeschützte ausführbare Datei zu starten, die in .rsrc eingebettet ist. Starten Sie das Programm und schreiben Sie RARSFX in setup0.exe im automatisch generierten Verzeichnis, geben Sie das Kennwort über Parameter an und verwenden Sie CreateProcess, um RARSFX auszuführen, wie unten gezeigt:
setup0.exe -p*|T/PMR{|T2^LWJ*
Das Kennwort für jedes Beispiel ist unterschiedlich, und extrahieren Sie dann den Inhalt von RARSFX zu % In TMP%RarSFX0:
CrLnc.dat – verschlüsselte Nutzlast
Duser.dll – UAC-Umgehung
osksupport.dll – UAC-Umgehung
PrintDialog.dll – Malware-Initialisierung
PrintDialog.exe – Pri ntDialog wird geladen .dll Legale Windows-Dateien
setup.dll – Installations-DLL
setup.exe – Hauptprogramm
Wenn es einen Konflikt im Ordnernamen gibt, wird die Zahl am Ende der RarSFX0-Zeichenfolge erhöht, bis keine mehr vorhanden sind Konflikte. Nach dem Extrahieren der Datei wird setup.exe ohne Parameter ausgeführt, wobei LoadLibraryA zum Laden von setup.dll verwendet wird. Nach dem Laden überprüft setup.dll Parameter in der Form „-x:n“, wobei n in verschiedenen Betriebsmodi unterschiedlich ist. Die unterstützten Parameter und ihr entsprechendes Verhalten sind in Tabelle 1 aufgeführt.
RARSFX führt setup.exe ohne Argumente aus und prüft, ob es mit Berechtigungen ausgeführt wird. Wenn nicht, ermitteln Sie weiter, ob die Windows-Version älter als Windows 7 Build 7601 ist. Wenn die Bedingungen erfüllt sind, wird der Token-Identitätswechsel verwendet, um Berechtigungen zu erhalten. Andernfalls wird versucht, eine andere UAC-Umgehungstechnik zu verwenden, die die Nutzlast in eine der folgenden Dateien installieren kann:
C:WindowsSystem32spoolprtprocsx64DEment.dll
C:WindowsSystem32spoolprtprocsx64EntAppsvc.dll
C:WindowsSystem32spoolprtprocsx64Interactive.dll
Eher angreifen Anstatt den Speicherort der schädlichen DLL zufällig auszuwählen, registriert setup.dll den DLL-Loader als alternativen Drucker, indem es den folgenden Registrierungswert festlegt:
HKLMSYSTEMControlSet001ControlPrintEnvironmentsWindows x64Print ProcessorsPrintFiiterPipelineSvcDriver = „DEment.dll“
HK LMSYSTEMCurrentControlSetControlPrintEnvironmentsWindows. x64 Druckprozessorenlltdsvc1Driver = " „ENTAPPSVC.DLL“
Bitte achten Sie auf die Rechtschreibfehler in PrintfiiterPipelinesvc (da jeder Name verwendet werden kann, hat dies keine Auswirkung auf die Installation des gedruckten Prozessors).
Nach der Registrierung des Druckprozessors startet PipeMon den Druckspoolerdienst (spoolsv.exe) neu, wodurch der bösartige Druckprozess geladen wird. Der Druckspooler-Dienst startet jedes Mal, wenn der PC hochfährt, und stellt so sicher, dass Schadprogramme bestehen bleiben. Abhängig vom Installationsprogramm wird CrLnc.dat an den folgenden Speicherort in der Registrierung geschrieben:
HKLMSOFTWAREMicrosoftPrintComponentsDC20FD7E-4B1B-4B88-8172-61F0BED7D9E8
HKLMSOFTWAREMicrosoftPrintComponentsA66F35-4164-45FF-9CB4-69 ACAA10 E52D
Der gesamte PipeMon-Ausführungsprozess Wie in der Abbildung unten gezeigt:
PipeMon ist eine modulare Hintertür. Jedes Modul ist eine DLL, die die IntelLoader-Funktion exportieren und zum Laden die reflektierende Ladetechnologie verwenden kann. Jedes Modul hat unterschiedliche Funktionen, wie in Tabelle 2 gezeigt.
Der für das Laden der Hauptmodule (ManagerMain und GuardClient) verantwortliche Loader ist Win32CmdDll.dll und befindet sich im Druckprozessorverzeichnis. Die Module werden verschlüsselt am selben Ort gespeichert und haben den folgenden Namen:
banner.bmp
Certificate.cert
License.hwp
JSONDIU7c9djE
D8JNCKS0DJE
B0SDFUWEk. NCj.logN
.hwp ist Koreanisch text Der Handler verwendet eine Erweiterung, die in Südkorea sehr beliebt ist. Das Modul ist mit R** verschlüsselt und der Entschlüsselungsschlüssel lautet „Com!“. 123Qasdz‘ ist in jedem Modul fest codiert. Win32CmDll.dll entschlüsselt und injiziert die Module ManagerMain und GuardClient. Das ManagerMain-Modul ist für die Entschlüsselung und Einfügung des Kommunikationsmoduls verantwortlich, während das GuardClient-Modul dafür sorgt, dass das Kommunikationsmodul ausgeführt und bei Bedarf neu geladen wird. Das folgende Diagramm zeigt, wie PipeMon funktioniert.
Win32CmDll.dll versucht zunächst, die Module ManagerMain und GuardClient in einen Prozess mit dem folgenden Namen einzuschleusen: lsass.exe, wininit.exe oder lsm.exe. Wenn dies fehlschlägt, wird versucht, einen der registrierten Windows-Dienstprozesse einzuschleusen, mit Ausnahme der Prozesse mit den Namen spoolsv.exe, ekrn.exe (ESET), avp.exe (Kaspersky) oder dllhost.exe. Wenn alles andere fehlschlägt, werden die Prozesse taskhost.exe, taskhostw.exe oder explorer.exe ausprobiert.
Andere Module können bei Bedarf mit speziellen Befehlen geladen werden, aber noch keines davon wurde entdeckt. Module kommunizieren über benannte Pipes. Der Kommunikationskanal zwischen den einzelnen Modulen verwendet zwei benannte Pipes, eine zum Senden und eine zum Empfangen.
Die %CNC_DEFINED%-Zeichenfolge wird vom C&C-Server empfangen, die Variable %B64_TIMESTAMP% ist der Base64-codierte Zeitstempel:
Das Kommunikationsmodul ist für die Verwaltung der Kommunikation zwischen dem C&C-Server und anderen Modulen über das verantwortlich Pipeline und ihre C&C-Adresse im ManagerMain-Modul fest codiert. Das Kommunikationsprotokoll ist TLS über TCP und wird über die HP-Socket-Bibliothek abgewickelt. Alle Nachrichten werden mit hartcodierten Schlüsseln R**-verschlüsselt. Wenn der übertragene Inhalt größer oder gleich 4 KB ist, wird er zunächst mit zlib komprimiert.
Initiiert die Kommunikation mit dem C&C-Server und sendet zunächst eine Beacon-Nachricht mit den folgenden Informationen:
Betriebssystemversion
physische Adressen verbundener Netzwerkadapter, verkettet mit %B64_TIMESTAMP%
lokale IP-Adresse des Opfers
Backdoor-Version/Kampagne ID; wir haben die folgenden Werte beobachtet: „1.1.1.4beat“
Der Angreifer verwendete auch eine aktualisierte Version von PipeMon, indem er R** durch ein einfaches XOR ersetzte, 0x75E8EEAF als Schlüssel verwendete und alles entfernte hartcodierte Zeichenfolgen und Verwendung von Zufallswerten zur Benennung der Kommunikationsleitungen zwischen Modulen. Nur der Hauptlader wird als Datei auf der Festplatte gespeichert und die aktualisierten Module werden in der folgenden Tabelle beschrieben:
Änderungen des C&C-Kommunikationsformats:
Die Backdoor-Konfiguration ist verschlüsselt und in die Loader-DLL eingebettet .
Sowohl das PipeMon-Modul als auch das Installationsprogramm verwenden dieselbe Signatur, und das Zertifikat wurde möglicherweise bei einem früheren Angriff von der Winnti-Organisation gestohlen.
Das obige ist der detaillierte Inhalt vonSo implementieren Sie die neue Variantenanalyse der Winnti Group. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!