Einführung
Elastic Security Labs hat kürzlich einen neuen Eindringling beobachtet, der auf chinesischsprachige Regionen abzielt und als REF3864 verfolgt wird. Diese organisierten Kampagnen zielen auf die Opfer ab, indem sie sich als legitime Software wie Webbrowser oder Social-Media-Messaging-Dienste ausgeben. Die Bedrohungsgruppe hinter diesen Kampagnen zeigt ein moderates Maß an Vielseitigkeit bei der Verbreitung von Malware über mehrere Plattformen wie Linux, Windows und Android. Bei dieser Untersuchung entdeckte unser Team eine einzigartige Windows-Infektionskette mit einem benutzerdefinierten Loader, den wir SADBRIDGE nennen. Dieser Loader stellt eine Golang-basierte Neuimplementierung von QUASAR bereit, die wir als GOSAR bezeichnen. Dies ist das erste Mal, dass unser Team eine Neufassung von QUASAR in der Programmiersprache Golang beobachtet.
Wichtigste Erkenntnisse
- Laufende Kampagnen, die sich an chinesischsprachige Personen richten, mit bösartigen Installationsprogrammen, die sich als legitime Software ausgeben, wie Telegram und der Webbrowser Opera.
- Infektionsketten verwenden Injektion und DLL-Sideloading mit einem benutzerdefinierten Loader (SADBRIDGE)
- SADBRIDGE setzt eine neu entdeckte Variante der QUASAR-Backdoor ein, die in Golang (GOSAR) geschrieben ist
- GOSAR ist eine multifunktionale Backdoor, die sich in aktiver Entwicklung befindet, mit unvollständigen Funktionen und Iterationen verbesserter Funktionen, die im Laufe der Zeit beobachtet wurden
- Elastic Security bietet umfassende Präventions- und Erkennungsfunktionen gegen diese Angriffskette
REF3864 Kampagnenübersicht
Im November beobachtete das Team von Elastic Security Labs eine einzigartige Infektionskette bei der Detonation mehrerer verschiedener Proben, die auf VirusTotal hochgeladen wurden. Diese verschiedenen Beispiele wurden über Landing Pages gehostet, die sich als legitime Software tarnten, wie z. B. Telegram oder der Opera GX-Browser.
Während dieser Untersuchung haben wir mehrere Infektionsketten mit ähnlichen Techniken aufgedeckt:
- Trojanisierte MSI-Installationsprogramme mit geringen Erkennungen
- Maskierung mit legitimer Software, die mit bösartigen DLLs gebündelt ist
- Kundenspezifischer SADBRIDGE-Loader im Einsatz
- Endstufe GOSAR geladen
Wir glauben, dass diese Kampagnen aufgrund mehrerer Abstraktionsebenen unter dem Radar geflogen sind. In der Regel umfasst die erste Phase das Öffnen einer Archivdatei (ZIP), die ein MSI-Installationsprogramm enthält. Legitime Software wie die Windows x64dbg.exe Debugging-Anwendung wird im Hintergrund verwendet, um eine bösartige, gepatchte DLL (x64bridge.dll) zu laden. Diese DLL startet ein neues legitimes Programm (MonitoringHost.exe), bei dem sie eine andere bösartige DLL (HealthServiceRuntime.dll) von der Seite lädt, um schließlich eine Injektion durchzuführen und das GOSAR-Implantat per Injektion in den Speicher zu laden.
Malware-Forscher extrahierten SADBRIDGE-Konfigurationen, die vom Angreifer festgelegte Kampagnendaten offenbaren und darauf hinweisen, dass Operationen mit ähnlichen TTPs seit mindestens Dezember 2023 im Gange sind. Die Command-and-Control-Infrastruktur (C2) für GOSAR tarnt sich oft unter vertrauenswürdigen Diensten oder Software, um harmlos zu erscheinen und den Erwartungen der Opfer an Softwareinstallateure zu entsprechen. Während der gesamten Ausführungskette liegt der Schwerpunkt auf der Aufzählung chinesischer AV-Produkte wie 360tray.exesowie der Namen und Beschreibungen von Firewallregeln in chinesischer Sprache. Aufgrund dieser Anpassungen glauben wir, dass diese Bedrohung auf chinesischsprachige Personen ausgerichtet ist. Darüber hinaus deutet die umfangreiche Verwendung der Protokollierung in chinesischer Sprache darauf hin, dass die Angreifer auch Chinesisch sprechen.
QUASAR wurde bereits seit 2017 bei staatlich geförderter Spionage, nichtstaatlichem Hacktivismus und kriminellen finanziell motivierten Angriffen eingesetzt (Qualys, Evolution of Quasar RAT), unter anderem von der mit China verbundenen APT10. Eine Neufassung in Golang könnte von institutionellem Wissen profitieren, das in diesem Zeitraum erworben wurde, und zusätzliche Fähigkeiten ohne umfangreiche Umschulung von zuvor effektiven TTPs ermöglichen.
GOSAR erweitert QUASAR um zusätzliche Funktionen zum Sammeln von Informationen, Unterstützung für mehrere Betriebssysteme und eine verbesserte Umgehung von Antivirenprodukten und Malware-Klassifikatoren. Die generischen Köder-Websites und der Mangel an zusätzlichen Targeting-Informationen oder Aktionen zum Ziel lassen uns jedoch keine ausreichenden Beweise zurück, um die Motivation(en) des Angreifers zu identifizieren.
SADBRIDGE Einführung
Der SADBRIDGE-Malware-Loader ist als ausführbare MSI-Datei für die Auslieferung verpackt und verwendet DLL-Sideloading mit verschiedenen Injektionstechniken, um bösartige Nutzlasten auszuführen. SADBRIDGE missbraucht legitime Anwendungen wie x64dbg.exe und MonitoringHost.exe , um bösartige DLLs wie x64bridge.dll und HealthServiceRuntime.dllzu laden, was zu nachfolgenden Phasen und Shellcodes führt.
Die Persistenz wird durch die Erstellung von Diensten und Registrierungsänderungen erreicht. Die Rechteausweitung an den Administrator erfolgt im Hintergrund mithilfe einer UAC-Umgehungstechnik , die die ICMLuaUtil COM-Schnittstelle missbraucht. Darüber hinaus enthält SADBRIDGE eine Umgehung der Rechteausweitung über den Windows-Taskplaner, um seine Hauptnutzlast mit Privilegien auf SYSTEM-Ebene auszuführen.
Die SADBRIDGE-Konfiguration wird durch eine einfache Subtraktion von 0x1 auf jedes Byte der Konfigurationszeichenfolge verschlüsselt. Die verschlüsselten Stufen werden alle mit einer .log -Erweiterung angehängt und während der Laufzeit mithilfe von XOR und dem LZNT1-Dekomprimierungsalgorithmus entschlüsselt.
SADBRIDGE verwendet PoolParty, APC-Warteschlangen und Token-Manipulationstechniken für die Prozessinjektion. Um eine Sandbox-Analyse zu vermeiden, werden API-Aufrufe mit langer Sleep verwendet. Eine weitere Technik zur Umgehung der Verteidigung umfasst API-Patches, um Windows-Sicherheitsmechanismen wie das Antimalware Scan Interface (AMSI) und die Ereignisablaufverfolgung für Windows (ETW) zu deaktivieren.
Der folgende Deep Dive ist so strukturiert, dass er die Ausführungskette untersucht, und bietet eine Schritt-für-Schritt-Anleitung für die Fähigkeiten und Funktionen wichtiger Dateien und Phasen, basierend auf der Konfiguration des analysierten Beispiels. Die Analyse zielt darauf ab, die Interaktion zwischen den einzelnen Komponenten und ihre Rollen beim Erreichen der endgültigen Nutzlast hervorzuheben.
SADBRIDGE-Code-Analyse
MSI-Analyse
Die anfänglichen Dateien werden mit dem erweiterten Installationsprogramm in einer MSI-Datei verpackt, die wichtigsten Dateien sind x64dbg.exe und x64bridge.dll.
Durch die Verwendung von MSI-Tools (lessmsi) können wir sehen, dass der LaunchApp Einstiegspunkt in aicustact.dll so konfiguriert ist, dass der in der AI_APP_FILE -Eigenschaft angegebene Dateipfad ausgeführt wird.
Wenn wir zu dieser AI_APP_FILE Eigenschaft navigieren, können wir sehen, dass die mit dieser Konfiguration verknüpfte Datei x64dbg.exeist. Dies stellt die Datei dar, die nach Abschluss der Installation ausgeführt wird, die legitime NetFxRepairTool.exe wird nie ausgeführt.
x64bridge.dll Seitliches Laden
Wenn x64dbg.exe ausgeführt wird, ruft es den BridgeInit Export aus x64bridge.dllauf. BridgeInit ist ein Wrapper für die Funktion BridgeStart .
Ähnlich wie bei BLISTER wird bei SADBRIDGE der Export einer legitimen DLL gepatcht.
Während der Malware-Initialisierungsroutine beginnt SADBRIDGE mit der Generierung eines Hashs unter Verwendung des Hostnamens und eines Magic Seed 0x4E67C6A7. Dieser Hash wird als Verzeichnisname zum Speichern der verschlüsselten Konfigurationsdatei verwendet. Die verschlüsselte Konfiguration wird in C:\Users\Public\Documents\<hostname_hash>\edbtmp.loggeschrieben. Diese Datei enthält die Attribute FILE_ATTRIBUTE_SYSTEM, FILE_ATTRIBUTE_READONLY FILE_ATTRIBUTE_HIDDEN, um sich aus einer gewöhnlichen Verzeichnisliste zu verstecken.
Das Entschlüsseln der Konfiguration ist einfach, die verschlüsselten Chunks werden durch Null-Bytes getrennt. Für jedes Byte innerhalb der verschlüsselten Chunks können wir sie um 0x1inkrementieren.
Die Konfiguration besteht aus:
- Möglicher Kampagnentermin
- Zeichenfolgen, die zum Erstellen von Diensten verwendet werden sollen
- Neuer Name für MonitoringHost.exe (
DevQueryBroker.exe) - DLL-Name für die DLL, die von MonitoringHost.exe quergeladen werden soll (
HealthServiceRuntime.dll) - Absolute Pfade für weitere Stufen (
.logDateien) - Das primäre Injektionsziel für das Hosting von GOSAR (
svchost.exe)
Das DevQueryBroker Verzeichnis (C:\ProgramData\Microsoft\DeviceSync\Device\Stage\Data\DevQueryBroker\) enthält alle verschlüsselten Stagingbereiche (.log Dateien), die zur Laufzeit entschlüsselt werden. Die Datei (DevQueryBroker.exe) ist eine umbenannte Kopie der legitimen Microsoft-Anwendung (MonitoringHost.exe).
Schließlich wird ein Prozess erstellt, der DevQueryBroker.exe ausgeführt wird und die bösartige HealthServiceRuntime.dll im selben Ordner von der Seite lädt.
HealthServiceRuntime.dll
Dieses Modul legt sowohl einen verschlüsselten als auch einen teilweise entschlüsselten Shellcode im %TEMP% Verzeichnis des Benutzers ab. Der Dateiname für den Shellcode hat das Format: log<random_string>.tmp. Jedes Byte des teilweise entschlüsselten Shellcodes wird dann von 0x10 dekrementiert, um es vollständig zu entschlüsseln. Der Shellcode wird in einem neuen Thread desselben Prozesses ausgeführt.
Die Malware nutzt API-Hashing unter Verwendung desselben Algorithmus, der in einer von SonicWall veröffentlichten Studie verwendet wird, der Hashing-Algorithmus ist im Anhang aufgeführt. Der Shellcode entschlüsselt DevQueryBroker.log in eine PE-Datei und führt dann eine einfache XOR-Operation mit einem einzelnen Byte (0x42) im ersten Drittel der Datei aus, wo er dann das Ergebnis mit dem LZNT1-Algorithmus dekomprimiert.
Der Shellcode hebt dann mithilfe von NtUnmapViewOfSectionalle vorhandenen Zuordnungen an der bevorzugten Basisadresse der PE-Datei auf, um sicherzustellen, dass ein Aufruf von VirtualAlloc Speicher ab der bevorzugten Basisadresse zuweist. Schließlich ordnet es die entschlüsselte PE-Datei diesem zugewiesenen Speicher zu und überträgt die Ausführung an seinen Einstiegspunkt. Alle Shellcodes, die von SADBRIDGE identifiziert und ausgeführt werden, haben eine identische Codestruktur und unterscheiden sich nur in den spezifischen .log Dateien, auf die sie zur Entschlüsselung und Ausführung verweisen.
DevQueryBroker.log
Die Malware lädt dynamisch amsi.dll , um kritische Sicherheitsmechanismen in Windows zu deaktivieren. Es patcht AmsiScanBuffer in amsi.dll , indem es Anweisungen einfügt, um den Rückgabewert in 0x80070057zu ändern, den standardisierten Microsoft-Fehlercode, der ungültige Argumente anzeigt, und E_INVALIDARG vorzeitig zurückkehrt, um die Scanlogik effektiv zu umgehen. Auf ähnliche Weise wird AmsiOpenSession gepatcht, um immer den gleichen Fehlercode E_INVALIDARGzurückzugeben. Darüber hinaus werden EtwEventWrite in ntdll.dllgepatcht, wobei die erste Anweisung durch eine ret Anweisung zum Deaktivieren der Ereignisablaufverfolgung für Windows (ETW) ersetzt wird, wodurch jegliche Protokollierung bösartiger Aktivitäten unterdrückt wird.
Nach dem Patchen wird ein verschlüsselter Shellcode auf temp.ini unter Pfad (C:\ProgramData\Microsoft\DeviceSync\Device\Stage\Data\DevQueryBroker\temp.inigeschrieben.
Die Malware überprüft die Gruppenmitgliedschaft des aktuellen Prozesstokens, um seine Berechtigungsstufe zu bestimmen. Es überprüft, ob der Prozess zum LocalSystem-Konto gehört, indem es eine SID mit dem SECURITY_LOCAL_SYSTEM_RID initialisiert und CheckTokenMembershipaufruft. Ist dies nicht der Fall, wird versucht, die Mitgliedschaft in der Gruppe Administratoren zu überprüfen, indem mithilfe von SECURITY_BUILTIN_DOMAIN_RID und DOMAIN_ALIAS_RID_ADMINS eine SID erstellt und eine ähnliche Überprüfung der Tokenmitgliedschaft durchgeführt wird.
Wenn der aktuelle Prozess nicht über LocalSystem- oder Administratorrechte verfügt, werden die Berechtigungen zunächst über einen UAC-Umgehungsmechanismus auf Administrator erhöht, indem die ICMLuaUtil COM-Schnittstelle genutzt wird. Es erstellt eine Monikerzeichenfolge, die "Elevation:Administrator!new:{3E5FC7F9-9A51-4367-9063-A120244FBEC7}" , um eine Instanz des CMSTPLUA Objekts mit Administratorrechten zu erstellen. Sobald das Objekt erstellt und die ICMLuaUtil Schnittstelle abgerufen wurde, verwendet die Malware die offengelegte ShellExec Methode der Schnittstelle, um DevQueryBroker.exeauszuführen.
Wenn eine Aufgabe oder ein Dienst nicht für die routinemäßige Ausführung DevQueryBroker.exe erstellt wird, prüft die Malware, ob der 360tray.exe des Antivirenprozesses ausgeführt wird. Wenn er nicht ausgeführt wird, wird ein Dienst für die Rechteausweitung an SYSTEM mit den folgenden Eigenschaften erstellt:
- Name des Diensts: DevQueryBrokerService
Name des binären Pfads: "C:\ProgramData\Microsoft\DeviceSync\Device\Stage\Data\DevQueryBroker\DevQueryBroker.exe -svc". - Anzeigename: DevQuery Background Discovery Broker-Dienst
- Beschreibung: Ermöglicht Apps das Ermitteln von Geräten mit einer Hintergrundaufgabe.
- Starttyp: Automatisch beim Systemstart
- Berechtigungen: LocalSystem
Wenn 360tray.exe bei der Ausführung erkannt wird, schreibt die Malware eine verschlüsselte PE-Datei in DevQueryBrokerService.logund ordnet dann eine PE-Datei der nächsten Stufe (Stufe 1) dem aktuellen Prozessspeicher zu und überträgt die Ausführung an diesen.
Sobald DevQueryBroker.exe mit Rechten auf SYSTEM-Ebene erneut ausgelöst wird und diesen Teil der Kette erreicht, überprüft die Malware die Windows-Version. Bei Systemen, auf denen Vista oder höher ausgeführt wird (außer Windows 7), ordnet es eine weitere nächste Stufe (Stufe 2) in den Speicher ab und überträgt die Ausführung dorthin.
Unter Windows 7 führt es jedoch einen Shellcode aus, der die DevQueryBrokerPre.log Datei entschlüsselt und ausführt.
Injektion im Stadium 1 (explorer.exe)
SADBRIDGE verwendet PoolParty Variante 7 , um Shellcode in explorer.exe zu injizieren, indem es auf die I/O-Abschlusswarteschlange des Thread-Pools abzielt. Zuerst wird ein Handle in die E/A-Abschlusswarteschlange des Zielprozesses dupliziert. Anschließend wird innerhalb explorer.exe Speicher zugewiesen, um den Shellcode zu speichern. Zusätzlicher Arbeitsspeicher wird zum Speichern einer gestalteten TP_DIRECT -Struktur zugeordnet, die die Basisadresse des Shellcodes als Rückrufadresse enthält. Schließlich ruft es ZwSetIoCompletionauf und übergibt einen Zeiger an die TP_DIRECT Struktur, um ein Paket in die I/O-Abschlusswarteschlange der Workerfactory des Zielprozesses (Worker-Thread-Manager) einzureihen und so die Ausführung des injizierten Shellcodes effektiv auszulösen.
Dieser Shellcode entschlüsselt die DevQueryBrokerService.log Datei, hebt die Zuordnung aller Speicherbereiche auf, die die bevorzugte Basisadresse belegen, ordnet die PE-Datei dieser Adresse zu und führt dann ihren Einstiegspunkt aus. Dieses Verhalten spiegelt den zuvor beobachteten Shellcode wider.
Injektion im Stadium 2 (spoolsv.exe/lsass.exe)
In Phase 2 injiziert SADBRIDGE Shellcode in spoolsv.exeoder lsass.exe , wenn spoolsv.exe nicht verfügbar ist, wobei die gleiche Injektionstechnik wie in Phase 1 verwendet wird. Der Shellcode zeigt ein ähnliches Verhalten wie die früheren Phasen: Er entschlüsselt DevQueryBrokerPre.log in eine PE-Datei, hebt die Zuordnung aller Regionen auf, die seine bevorzugte Basisadresse belegen, ordnet die PE-Datei zu und überträgt dann die Ausführung an ihren Einstiegspunkt.
DevQueryBrokerService.log
Der Shellcode, der von DevQueryBrokerService.log entschlüsselt wurde, wie im vorherigen Abschnitt erwähnt, nutzt eine Rechteausweitungstechnik mithilfe des Windows-Taskplaners. SADBRIDGE integriert eine öffentliche UAC-Bypass-Technik , die das COM-Objekt IElevatedFactorySever verwendet, um die geplante Aufgabe indirekt zu erstellen. Dieser Task ist so konfiguriert, dass DevQueryBroker.exe täglich mit Berechtigungen auf SYSTEM-Ebene unter Verwendung des Task-Namens DevQueryBrokerServiceausgeführt wird.
Um ihre Spuren zu verwischen, fälscht die Malware den Image-Pfad und die Befehlszeile, indem sie den Process Environment Block (PEB) direkt modifiziert, wahrscheinlich in dem Versuch, den COM-Dienst so zu tarnen, dass er von explorer.exestammt.
DevQueryBrokerPre.log
SADBRIDGE erstellt einen Dienst mit dem Namen DevQueryBrokerServiceSvc unter dem Registrierungsunterschlüssel SYSTEM\CurrentControlSet\Services\DevQueryBrokerServiceSvc mit den folgenden Attributen:
- Beschreibung: Ermöglicht Apps das Ermitteln von Geräten mit einer Hintergrundaufgabe.
- DisplayName: DevQuery-Brokerdienst für die Hintergrundermittlung
- Fehlerkontrolle: 1
- Bildpfad:
%systemRoot%\system32\svchost.exe -k netsvcs - Objektname: LocalSystem
- Start: 2 (Autostart)
- Typ: 16.
- Fehler-Aktionen:
- Setzt die Fehleranzahl alle 24 Stunden zurück.
- Führt drei Neustartversuche aus: eine Verzögerung von 20 ms für den ersten und eine Verzögerung von 1 Minute für den zweiten und dritten.
Die Service-Parameter geben die ServiceDll an, die sich bei C:\Program Files (x86)\Common Files\Microsoft Shared\Stationery\<hostname_hash>\DevQueryBrokerService.dllbefindet. Wenn die DLL-Datei nicht vorhanden ist, wird sie direkt danach auf der Festplatte abgelegt.
DevQueryBrokerService.dll hat eine ähnliche Codestruktur wie HealthServiceRuntime.dll, die in den früheren Phasen der Ausführungskette zu sehen ist. Es ist dafür verantwortlich, DevQueryBroker.log zu entschlüsseln und auszuführen. Die ServiceDll wird von svchost.exe geladen und ausgeführt, wenn der Dienst gestartet wird.
Darüber hinaus wird der Schlüssel SOFTWARE\Microsoft\Windows NT\CurrentVersion\Svchost\netsvcs so geändert, dass er einen Eintrag für DevQueryBrokerServiceSvc enthält, um den neu erstellten Dienst in die Gruppe von Diensten zu integrieren, die von der netsvcs Diensthostgruppe verwaltet werden.
SADBRIDGE löscht dann die zuvor erstellte geplante Aufgabe und den Dienst, indem die Registrierungsunterschlüssel SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\Schedule\\TaskCache\\Tree\\DevQueryBrokerService und SYSTEM\\CurrentControlSet\\Services\\DevQueryBrokerServiceentfernt werden.
Schließlich werden die Dateien DevQueryBroker.exe und HealthServiceRuntime.dll im Ordner C:\ProgramData\Microsoft\DeviceSync\Device\Stage\Data\DevQueryBroker entfernt, da der neue Persistenzmechanismus vorhanden ist.
GOSAR-Injektion
In der zweiten Hälfte des Codes listet SADBRIDGE alle aktiven Sitzungen auf dem lokalen Computer mithilfe der WTSEnumerateSessionsA -API auf.
Wenn Sitzungen gefunden werden, durchlaufen sie jede Sitzung:
- Für jede Sitzung wird versucht, den Benutzernamen (
WTSUserName) mitWTSQuerySessionInformationAabzurufen. Wenn die Abfrage fehlschlägt, wird sie in die nächste Sitzung verschoben. - Wenn
WTSUserNamenicht leer ist, zielt der Code aufsvchost.exeab und übergibt den Pfad, die Sitzungs-ID und den Inhalt der Ladeprogrammkonfiguration an eine Unterroutine, die die letzte Phase einfügt. - Wenn
WTSUserNameleer ist, aber derWinStationNameder Sitzung"Services"ist (was auf eine Dienstsitzung hinweist), zielt sie stattdessen aufdllhost.exeab und übergibt dieselben Parameter an das Injektionsunterprogramm der letzten Stufe.
Wenn keine Sitzungen gefunden werden, tritt es in eine Endlosschleife ein, um wiederholt Sitzungen aufzulisten und das Unterprogramm für die Injektion der letzten Stufe aufzurufen, während Überprüfungen durchgeführt werden, um redundante Injektionen zu vermeiden.
Angemeldete Sitzungen zielen auf svchost.exeab, während Dienstsitzungen oder Sitzungen ohne angemeldeten Benutzer auf dllhost.exeabzielen.
Wenn eine Sitzungs-ID verfügbar ist, versucht der Code, das Benutzertoken für diese Sitzung zu duplizieren und die Integritätsebene des duplizierten Tokens auf S-1-16-12288 (Systemintegrität) heraufzustufen. Anschließend wird das Token mit erhöhten Rechten verwendet, um über CreateProcessAsUserAeinen untergeordneten Prozess (svchost.exe oder dllhost.exe) zu erstellen.
Wenn die Token-Manipulation fehlschlägt oder keine Sitzungs-ID verfügbar ist (Systemprozesse können eine Sitzungs-ID von 0 haben), wird auf die Erstellung eines Prozesses ohne Token mit CreateProcessAzurückgegriffen.
Der verschlüsselte Shellcode- C:\ProgramData\Microsoft\DeviceSync\Device\Stage\Data\DevQueryBroker\temp.ini wird mit der gleichen XOR- und LZNT1-Dekomprimierungstechnik entschlüsselt, die zuvor zum Entschlüsseln .log Dateien verwendet wurde, und die APC-Injektion wird verwendet, um den Shellcode für die Ausführung im Thread des neu erstellten Prozesses in die Warteschlange zu stellen.
Schließlich entschlüsselt der injizierte Shellcode DevQueryBrokerCore.log zu GOSAR und führt ihn im Speicher des neu erstellten Prozesses aus.
GOSAR Einführung
GOSAR ist ein multifunktionaler Remote-Access-Trojaner, der auf Windows- und Linux-Systeme abzielt. Diese Hintertür umfasst Funktionen wie das Abrufen von Systeminformationen, das Erstellen von Screenshots, das Ausführen von Befehlen, Keylogging und vieles mehr. Die GOSAR-Backdoor behält einen Großteil der Kernfunktionalität und des Verhaltens von QUASAR bei, enthält jedoch mehrere Modifikationen, die sie von der Originalversion unterscheiden.
Durch das Umschreiben von Malware in moderne Sprachen wie Go kann dies zu geringeren Erkennungsraten führen, da viele Antivirenlösungen und Malware-Klassifikatoren Schwierigkeiten haben, bösartige Zeichenfolgen/Merkmale unter diesen neuen Programmierkonstrukten zu identifizieren. Unten sehen Sie ein gutes Beispiel dafür, wie ein entpacktes GOSAR beim Hochladen nur 5 Erkennungen erhält.
Bemerkenswert ist, dass diese Variante mehrere Plattformen unterstützt, einschließlich ELF-Binärdateien für Linux-Systeme und traditionelle PE-Dateien für Windows. Diese plattformübergreifende Fähigkeit steht im Einklang mit der Anpassungsfähigkeit von Go und macht es vielseitiger als das Original. NET-basierten QUASAR. Im folgenden Abschnitt konzentrieren wir uns auf die Hervorhebung der Code-Struktur, der neuen Funktionen und Ergänzungen von GOSAR im Vergleich zur Open-Source-Version (QUASAR).
Überblick über die GOSAR-Code-Analyse
Code-Struktur von GOSAR
Da die Binärdatei alle ihre Symbole beibehielt, konnten wir die Quellcodestruktur rekonstruieren, die aus einer Stichprobe der Version extrahiert wurde 0.12.01
- vibrant/config: Enthält die Konfigurationsdateien für die Malware.
- vibrant/proto: Enthält alle Deklarationen der Google Protocol Buffers (proto).
- vibrant/network: Enthält Funktionen im Zusammenhang mit dem Netzwerk, wie z. B. die Hauptverbindungsschleife, das Proxy-Handling und auch den Thread zur Konfiguration der Firewall und zum Einrichten eines Listeners
- vibrant/msgs/resolvers: Definiert die Befehle, die von der Malware verarbeitet werden. Diese Befehle werden innerhalb der
vibrant_msgs_init*Funktionen einem Objekt zugeordnet. - vibrant/msgs/services: Führt neue Funktionen ein, wie z.B. das Ausführen von Diensten wie Keyloggern, Zwischenablage-Logger, diese Dienste werden in der Funktion
vibrant_network._ptr_Connection.Startgestartet. - vibrant/logs: Verantwortlich für die Protokollierung der Ausführung der Malware. Die Protokolle werden mit einem AES-Schlüssel verschlüsselt, der in der Konfiguration hinterlegt ist. Die Malware entschlüsselt die Protokolle in Blöcken mit AES.
- vibrant/pkg/helpers: Enthält Hilfsfunktionen, die für verschiedene Malware-Befehle und -Dienste verwendet werden.
- vibrant/pkg/screenshot: Kümmert sich um die Screenshot-Aufnahmefunktion auf dem infizierten System.
- vibrant/pkg/utils: Enthält Hilfsfunktionen, wie z. B. das Generieren von Zufallswerten.
- vibrant/pkg/native: Stellt Funktionen zum Aufrufen von Windows-API-Funktionen (WINAPI) bereit.
Neue Ergänzungen zu GOSAR
Kommunikation und Informationsbeschaffung
Diese neue Variante verwendet weiterhin die gleiche Kommunikationsmethode wie das Original, die auf TCP TLS basiert. Bei der Verbindung sendet es zunächst Systeminformationen an den C2, wobei 4 neue Felder hinzugefügt werden:
- IP-Adresse
- Antivirus
- Zwischenablage-Einstellungen
- Brieftaschen
Die Liste der Antivirenprogramme und digitalen Geldbörsen wird in der Funktion vibrant_pkg_helpers_init initialisiert und befindet sich am Ende dieses Dokuments.
Dienste
Die Malware verarbeitet 3 Dienste, die bei der ersten Verbindung des Clients mit dem C2 gestartet werden:
- vibrant_services_KeyLogger
- vibrant_services_ClipboardLogger
- vibrant_services_TickWriteFile
KeyLogger
Die Keylogging-Funktionalität in GOSAR ist in der Funktion vibrant_services_KeyLogger implementiert. Dieses Feature basiert auf Windows-APIs, um Tastenanschläge auf dem infizierten System abzufangen und aufzuzeichnen, indem ein globaler Windows-Hook mit SetWindowsHookEx mit dem Parameter WH_KEYBOARD_LL festgelegt wird, um Tastaturereignisse auf niedriger Ebene zu überwachen. Die Hook-Funktion heißt vibrant_services_KeyLogger_func1.
ClipboardLogger
Die Protokollierungsfunktion der Zwischenablage ist unkompliziert und basiert auf Windows-APIs. Es prüft zunächst die Verfügbarkeit von Zwischenablagedaten mithilfe von IsClipboardFormatAvailable ruft sie dann mit GetClipboardData API ab.
TickWriteDatei
Sowohl ClipboardLogger als auch KeyLogger Dienste sammeln Daten, die vom TickWriteFile regelmäßig in das Verzeichnis (C:\ProgramData\Microsoft\Windows\Start Menu\Programs\diagnostics) unter einer Datei mit dem aktuellen Datum geschrieben werden, z. B. 2024-11-27.
Es kann entschlüsselt werden, indem man zuerst den Wert subtrahiert 0x1f dann mit dem Wert 0x18 verbindet, wie im CyberChef-Rezept gezeigt.
Einrichtung des Netzwerks
Nach der Initialisierung ihrer Dienste erzeugt die Malware drei Threads , die der Netzwerkeinrichtung gewidmet sind.
- vibrant_network_ConfigFirewallRule
- vibrant_network_ConfigHosts
- vibrant_network_ConfigAutoListener
Threads, die das Netzwerksetup behandeln
ConfigFirewallRule
Die Malware erstellt eine eingehende Firewall-Regel für den Portbereich 51756-51776 unter einem chinesischen Namen, der in übersetzt wird, Distributed Transaction Coordinator (LAN) sie alle eingehenden Programme und IP-Adressen zulässt, die Beschreibung wird auf Folgendes festgelegt:Inbound rules for the core transaction manager of the Distributed Transaction Coordinator service are managed remotely through RPC/TCP.
ConfigHosts (Konfigurationen)
Diese Funktion fügt c:\Windows\System32\Drivers\etc\hosts folgenden 127.0.0.1 micrornetworks.comeinen Eintrag hinzu. Der Grund für das Hinzufügen dieses Eintrags ist unklar, aber es liegt wahrscheinlich an fehlenden Funktionen oder unvollständigen Funktionen in der aktuellen Entwicklungsphase der Malware.
ConfigAutoListener
Diese Funktionalität der Malware führt einen HTTP-Server-Listener auf dem ersten verfügbaren Port innerhalb des Bereichs 51756-51776aus, der zuvor durch eine Firewall-Regel zugelassen wurde. Interessanterweise verarbeitet der Server keine Befehle, was beweist, dass sich die Malware noch in der Entwicklung befindet. Die aktuelle Version, die wir haben, verarbeitet nur eine GET Anfrage an den URI /security.jsund antwortet mit der Zeichenfolge callback();, jede andere Anfrage gibt einen 404 Fehlercode zurück. Diese minimale Antwort könnte darauf hindeuten, dass es sich bei dem Server um einen Platzhalter handelt oder sich in einer frühen Entwicklungsphase befindet, mit dem Potenzial, dass später komplexere Funktionen hinzugefügt werden
Logs
Die Malware speichert ihre Laufzeitprotokolle im Verzeichnis: %APPDATA%\Roaming\Microsoft\Logs unter dem Dateinamen im Format windows-update-log-<YearMonthDay>.log.
Jeder Protokolleintrag wird mit dem HMAC-AES-Algorithmus verschlüsselt. Der Schlüssel ist in der Funktion vibrant_config hartcodiert, im Folgenden finden Sie ein Beispiel:
Der Angreifer kann die Laufzeitprotokolle der Malware aus der Ferne abrufen, indem er den Befehl ResolveGetRunLogsausgibt.
Plugins
Die Malware ist in der Lage, Plugins auszuführen, bei denen es sich um PE-Dateien handelt, die vom C2 heruntergeladen und auf der Festplatte gespeichert werden, die mit einem XOR-Algorithmus verschlüsselt sind. Diese Plugins werden unter dem Pfad C:\ProgramData\policy-err.loggespeichert. Um ein Plugin auszuführen, wird der Befehl aufgerufen, ResolveDoExecutePlugin aufgerufen wird, er prüft zunächst, ob ein Plugin verfügbar ist.
Anschließend wird eine native DLL reflektiert geladen, die im Base64-Format in der Binärdatei mit dem Namen plugins.dll gespeichert ist, und führt die Exportfunktion ExecPluginaus.
ExecPlugin Erstellt einen angehaltenen Prozess von C:\Windows\System32\msiexec.exe mit den Argumenten /package /quiet. Anschließend werden Asynchronous Procedure Calls (APC) an den Hauptthread des Prozesses in die Warteschlange gestellt. Wenn der Thread fortgesetzt wird, wird der Shellcode in der Warteschlange ausgeführt.
Der Shellcode liest das verschlüsselte Plugin, das bei C:\ProgramData\policy-err.loggespeichert ist, entschlüsselt es mit einem hartcodierten 1-Byte-XOR-Schlüssel, lädt es reflektiert und führt es aus.
HVNC
Die Malware unterstützt verstecktes VNC(HVNC) über den vorhandenen Socket und legt 5 Befehle offen
- ResolveHVNCCommand
- ResolveGetHVNCScreen
- ResolveStopHVNC
- ResolveDoHVNCKeyboardEvent
- ResolveDoHVNCMouseEvent
Der erste Befehl, der ausgeführt wird, ist ResolveGetHVNCScreen , der ihn zuerst initialisiert und eine Ansicht einrichtet, er verwendet eine eingebettete native DLL- HiddenDesktop.dll im Base64-Format, die DLL wird reflektiert in den Speicher geladen und ausgeführt.
Die DLL ist für die Ausführung von Low-Level-APIs zum Einrichten des HVNC verantwortlich, mit insgesamt 7 exportierten Funktionen:
- ExcuteCommand (Englisch)
- DoMouseScroll
- DoMausRechtsklick
- DoMouseMove (Mit der Maus)
- DoMouseLeftClick
- DoKeyPress
- CaptureScreen (Erfassen)
Die erste aufgerufene Exportfunktion ist Initialise, um einen Desktop mit CreateDesktopA API zu initialisieren. Diese HVNC-Implementierung verarbeitet insgesamt 17 Befehle, die in ExcuteCommand Export zu finden sind, wie bereits erwähnt, hat sie einen Tippfehler im Namen, die Befehls-ID wird von der Befehls- ResolveHVNCCommand der Malware weitergeleitet, die ExcuteCommandaufruft.
| Befehls-ID | Beschreibung |
|---|---|
| 0x401 | Die Funktion deaktiviert zunächst die Gruppierung von Taskleistenschaltflächen, indem der Registrierungsschlüssel TaskbarGlomLevel unter Software\Microsoft\Windows\CurrentVersion\Explorer\Advancedauf 2 festgelegt wird. Als Nächstes wird sichergestellt, dass die Taskleiste immer sichtbar und im Vordergrund ist, indem SHAppBarMessage mit dem Befehl ABM_SETSTATE verwendet und der Status auf ABS_ALWAYSONTOPfestgelegt wird. |
| 0x402 | Ruft ein RUN-Dialogfeld auf, indem die 61. Exportfunktion von shell32.dllausgeführt wird.C:\Windows\system32\rundll32.exe shell32.dll,#61 |
| 0x403 | Führt eine Instanz von powershell.exe |
| 0x404 | Führt eine PE-Datei aus, die in C:\\ProgramData\\shell.log |
| 0x405 | Führt eine Instanz von chrome.exe |
| 0x406 | Führt eine Instanz von msedge.exe |
| 0x407 | Führt eine Instanz von firefox.exe |
| 0x408 | Führt eine Instanz von iexplore.exe |
| 0x409 | Führt eine Instanz von 360se.exe |
| 0x40A | Führt eine Instanz von 360ChromeX.exeaus. |
| 0x40B | Führt eine Instanz von SogouExplorer.exe |
| 0x40C | Aktuelles Fenster schließen |
| 0x40D | Minimiert das angegebene Fenster |
| 0x40E | Aktiviert das Fenster und zeigt es als maximiertes Fenster an. |
| 0x40F | Beendet den Prozess eines Fensters |
| 0x410 | Legt die Zwischenablage fest |
| 0x411 | Löscht die Zwischenablage |
Screenshot
Die Malware lädt reflektiert die dritte und letzte im Base64-Format eingebettete PE-DLL mit dem Namen Capture.dllund verfügt über 5 Exportfunktionen:
- CaptureFirstScreen
- ErfassenNächsterBildschirm
- GetBitmapInfo
- GetBitmapInfoSize
- SetQualität
Die Bibliothek wird zunächst initialisiert, indem resolvers_ResolveGetBitmapInfo aufgerufen wird, der seine DllEntryPoint reflektiert lädt und ausführt, wodurch die Bildschirmaufnahmestrukturen mithilfe gängiger Windows-APIs wie CreateCompatibleDC, CreateCompatibleBitmap undCreateDIBSectioneingerichtet werden . Die 2 Exportfunktionen CaptureFirstScreen und CaptureNextScreen werden verwendet, um einen Screenshot des Desktops des Opfers als JPEG-Bild aufzunehmen.
Beobachtung
Interessanterweise kann der ursprüngliche .NET QUASAR-Server weiterhin zum Empfangen von Beaconing von GOSAR-Beispielen verwendet werden, da sie das gleiche Kommunikationsprotokoll beibehalten haben. Der operative Einsatz würde jedoch erhebliche Änderungen erfordern, um die GOSAR-Funktionalitäten zu unterstützen.
Es ist unklar, ob die Autoren den Open-Source-Server .NET QUASAR aktualisiert oder erweitert haben oder einen komplett neuen Server entwickelt haben. Es ist erwähnenswert, dass sie den standardmäßigen Überwachungsport 1080 beibehalten haben, der mit der ursprünglichen Implementierung übereinstimmt.
Neue Funktionalität
In der folgenden Tabelle finden Sie eine Beschreibung aller neu hinzugefügten Befehle:
| Neue Befehle | |
|---|---|
| ResolveDoRoboCopy | Führt RoboCopy Befehl zum Kopieren von Dateien aus |
| ResolveDoCompressFiles | Komprimieren von Dateien im ZIP-Format |
| ResolveDoExtractFile (ResolveDoExtract-Datei) | Extrahieren einer ZIP-Datei |
| ResolveDoCopyFiles | Kopiert ein Verzeichnis oder eine Datei auf dem infizierten Rechner |
| ResolveGetRunLogs | Abrufen verfügbarer Protokolle |
| ResolveHVNCCommand | Ausführen eines HVNC-Befehls |
| ResolveGetHVNCScreen | HVNC initiieren |
| ResolveStopHVNC | Beenden Sie die HVNC-Sitzung |
| ResolveDoHVNCKeyboardEvent | Tastaturereignis an HVNC senden |
| ResolveDoHVNCMouseEvent | Mausereignis an HVNC senden |
| ResolveDoExecutePlugin | Ausführen eines Plugins |
| ResolveGetProcesses | Abrufen einer Liste der ausgeführten Prozesse |
| ResolveDoProcessStart | Starten eines Prozesses |
| ResolveDoProcessEnd | Beenden eines Prozesses |
| ResolveGetBitmapInfo | Abrufen der BITMAPINFO-Struktur für die Anzeigeeinstellungen des aktuellen Bildschirms |
| ResolveGetMonitore | Auflisten der Anzeigemonitore des Opfers mit EnumDisplayMonitors API |
| ResolveGetDesktop | Starten der Bildschirmaufnahmefunktion |
| ResolveStopGetDesktop | Beenden Sie die Bildschirmaufnahmefunktion |
| ResolveNewShellExecute | Öffnet Pipes zu einem erzeugten cmd.exe Prozess und sendet Befehle an ihn |
| ResolveGetSchTasks | Rufen Sie geplante Aufgaben ab, indem Sie den Befehl schtasks /query /fo list /v |
| ResolveGetScreenshot | Machen Sie einen Screenshot des Desktops des Opfers |
| ResolveGetServices | Rufen Sie die Liste der Dienste mit einer WMI-Abfrage ab: select * from Win32_Service |
| ResolveDoServiceOperation | Starten oder Beenden eines Diensts |
| ResolveDoDisableMultiLogon | Deaktivieren Sie mehrere Sitzungen pro Benutzer, indem Sie den Wert fSingleSessionPerUser unter dem Schlüssel auf 1 festlegen HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\TerminalServer |
| ResolveDoRestoreNLA | Stellt die Sicherheitseinstellungen für das Remotedesktopprotokoll (RDP) wieder her, aktiviert die Authentifizierung auf Netzwerkebene (Network Level Authentication , NLA) und erzwingt die SSL/TLS-Verschlüsselung für eine sichere Kommunikation. |
| ResolveGetRemoteClientInformation | Rufen Sie eine Liste aller lokalen Benutzer ab, die aktiviert sind, das RDP-Profilsowie LAN-IP- und Betriebssystem-spezifische Informationen: DisplayVersion, SystemRoot und CurrentBuildNumber, die aus dem Registrierungsschlüssel extrahiert wurden, HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion |
| ResolveDoInstallWrapper | Einrichten eines versteckten Remotedesktopprotokolls (HRDP) |
| ResolveDoUninstallWrapper | HRDPdeinstallieren |
| ResolveDoRecoverPrivileges | Stellt die ursprünglicheHKEY_LOCAL_MACHINE\\SAM\\SAMRegistrierung wieder her , bevor während der Installation des HRDPÄnderungen vorgenommen wurden |
| ResolveGetRemoteSessions | Rufen Sie Informationen zu den RDP-Sitzungen auf dem Computer ab. |
| ResolveDoLogoffSession | Abmelden der RDP-Sitzung mit der **WTSLogoffSession** API |
| ResolveGetSystemInfo | Abrufen von Systeminformationen |
| ResolveGetConnections | Holen Sie sich alle Verbindungen in der Maschine |
| ResolveDoCloseConnection | Nicht implementiert |
Malware und MITRE ATT&CK
Elastic verwendet das MITRE ATT&CK-Framework , um gängige Taktiken, Techniken und Verfahren zu dokumentieren, die Bedrohungen gegen Unternehmensnetzwerke einsetzen.
Taktiken
Taktiken stellen das Warum einer Technik oder Untertechnik dar. Es ist das taktische Ziel des Gegners: der Grund für die Ausführung einer Aktion.
Techniken
Techniken stellen dar, wie ein Angreifer ein taktisches Ziel erreicht, indem er eine Aktion ausführt.
- Hijack-Ausführungsablauf: DLL-Querladen
- Eingabeerfassung: Keylogging
- Prozessinjektion: Asynchroner Prozeduraufruf
- Prozess-Erkennung
- Artefakte ausblenden: Verstecktes Fenster
- Erstellen oder Ändern des Systemprozesses: Windows-Dienst
- Nicht standardmäßiger Anschluss
- Mechanismus zur Kontrolle der Rechteerweiterungen bei Missbrauch: Umgehen der Benutzerkontensteuerung
- Verschleierte Dateien oder Informationen
- Beeinträchtigung der Abwehr: Deaktivieren oder Ändern von Tools
- Virtualisierung/Sandbox-Umgehung: Zeitbasierte Umgehung
Milderung REF3864
Erkennung
- Potenzielle Umgehung der Schnittstelle für die Antischadsoftwareüberprüfung über PowerShell
- Ungewöhnlicher untergeordneter Druckspooler-Prozess
- Ausführung aus einem ungewöhnlichen Verzeichnis - Befehlszeile
- Externe IP-Suche von Nicht-Browser-Prozessen
- Ungewöhnliche Eltern-Kind-Beziehung
- Ungewöhnliche Netzwerkverbindung über DllHost
- Ungewöhnliche Persistenz über die Services Registry
- PID-Spoofing des übergeordneten Prozesses
Verhütung
- Netzwerkverbindung über Prozess mit ungewöhnlichen Argumenten
- Potential Masquerading as SVCHOST (Potenzielle Maskierung als SVCHOST)
- Netzwerkmodul aus verdächtigem, nicht gesichertem Speicher geladen
- UAC Bypass via ICMLuaUtil Elevated COM Interface (UAC-Umgehung mit erweiterter ICMLuaUtil-COM-Schnittstelle)
- Potentielles Laden von Bildern mit einer gefälschten Erstellungszeit
YARA
Elastic Security hat YARA-Regeln erstellt, um diese Aktivität zu identifizieren.
Beobachtungen
Die folgenden Observablen wurden in dieser Studie diskutiert:
| Überwachbar | Typ | Name | Referenz |
|---|---|---|---|
| opera-x[.]netto | Domain-Name | Landingpage | |
| teledown-cn[.]COM | Domain-Name | Landingpage | |
| 15af8c34e25268b79022d3434aa4b823ad9d34f3efc6a8124ecf0276700ecc39 | SHA-256 | NetFxRepairTools.msi | MSI |
| accd651f58dd3f7eaaa06df051e4c09d2edac67bb046a2dcb262aa6db4291de7 | SHA-256 | x64bridge.dll | SADBRIDGE |
| 7964a9f1732911e9e9b9e05cd7e997b0e4e2e14709490a1b657673011bc54210 | SHA-256 | GOSAR | |
| ferp.googledns[.]io | Domain-Name | GOSAR C2 Server | |
| hk-dns.secssl[.]com | Domain-Name | GOSAR C2 Server | |
| hk-dns.winsiked[.]com | Domain-Name | GOSAR C2 Server | |
| hk-dns.wkossclsaleklddeff[.]is | Domain-Name | GOSAR C2 Server | |
| hk-dns.wkossclsaleklddeff[.]io | Domain-Name | GOSAR C2 Server |
Referenzen
In der obigen Studie wurde auf Folgendes Bezug genommen:
- https://zcgonvh.com/post/Advanced_Windows_Task_Scheduler_Playbook-Part.2_from_COM_to_UAC_bypass_and_get_SYSTEM_dirtectly.html
- https://www.sonicwall.com/blog/project-androm-backdoor-trojan
- https://www.safebreach.com/blog/process-injection-using-windows-thread-pools/
- https://gist.github.com/api0cradle/d4aaef39db0d845627d819b2b6b30512
Anhang
Hashing-Algorithmus (SADBRIDGE)
def ror(x, n, max_bits=32) -> int:
"""Rotate right within a max bit limit, default 32-bit."""
n %= max_bits
return ((x >> n) | (x << (max_bits - n))) & (2**max_bits - 1)
def ror_13(data) -> int:
data = data.encode('ascii')
hash_value = 0
for byte in data:
hash_value = ror(hash_value, 13)
if byte >= 0x61:
byte -= 32 # Convert to uppercase
hash_value = (hash_value + byte) & 0xFFFFFFFF
return hash_value
def generate_hash(data, dll) -> int:
dll_hash = ror_13(dll)
result = (dll_hash + ror_13(data)) & 0xFFFFFFFF
return hex(result)
AV-Produkte, die in GOSAR geprüft wurden
| 360sd.exe | kswebshield.exe |
|---|---|
| 360tray.exe | kvmonxp.exe |
| a2guard.exe | kxetray.exe |
| ad-watch.exe | mcshield.exe |
| arcatasksservice.exe | mcshield.exe |
| ashdisp.exe | miner.exe |
| avcenter.exe | mongoosagui.exe |
| avg.exe | mpmon.exe |
| avgaurd.exe | msmpeng.exe |
| avgwdsvc.exe | mssecess.exe |
| avk.exe | nspupsvc.exe |
| avp.exe | ntrtscan.exe |
| avp.exe | patray.exe |
| avwatchservice.exe | pccntmon.exe |
| ayagent.aye | psafesystray.exe |
| baidusdsvc.exe | qqpcrtp.exe |
| bkavservice.exe | quhlpsvc.EXE |
| ccapp.exe | ravmond.exe |
| ccSetMgr.exe | remupd.exe |
| ccsvchst.exe | rfwmain.exe |
| cksoftshiedantivirus4.exe | rtvscan.exe |
| cleaner8.exe | safedog.exe |
| cmctrayicon.exe | savprogress.exe |
| coranticontrolcenter32.exe | sbamsvc.exe |
| cpf.exe | spidernt.exe |
| egui.exe | spywareterminatorshield.exe |
| f-prot.EXE | tmbmsrv.exe |
| f-prot.exe | unthreat.exe |
| f-secure.exe | usysdiag.exe |
| fortitray.exe | v3svc.exe |
| hipstray.exe | vba32lder.exe |
| iptray.exe | vsmon.exe |
| k7tsecurity.exe | vsserv.exe |
| knsdtray.exe | wsctrl.exe |
| kpfwtray.exe | yunsuo_agent_daemon.exe |
| ksafe.exe | yunsuo_agent_service.exe |
