Wichtigste Erkenntnisse
- Die SHELBY-Malware-Familie missbraucht GitHub für Command-and-Control, den Diebstahl von Daten und das Abrufen von Befehlen
- Das C2-Design des Angreifers weist eine kritische Schwachstelle auf: Jeder, der über das PAT-Token verfügt, kann infizierte Computer kontrollieren und stellt damit eine erhebliche Sicherheitslücke dar
- Ungenutzter Code und dynamisches Laden von Nutzlasten deuten darauf hin, dass sich die Malware in aktiver Entwicklung befindet, was darauf hindeutet, dass zukünftige Updates Probleme mit aktuellen Versionen beheben könnten
Zusammenfassung
Im Rahmen unserer laufenden Recherchen zu neuen Bedrohungen analysierten wir eine potenzielle Phishing-E-Mail, die von einer E-Mail-Adresse eines irakischen Telekommunikationsunternehmens gesendet und an andere Mitarbeiter desselben Unternehmens gesendet wurde.
Die Phishing-E-Mail beruht darauf, dass das Opfer die angehängte Details.zip -Datei öffnet und die enthaltene Binärdatei ausführt, JPerf-3.0.0.exe. Diese Binärdatei verwendet das skriptgesteuerte Installationssystem Inno setup, das die bösartige Anwendung enthält:
%AppData%\Local\Microsoft\HTTPApi:HTTPApi.dll(SHELBYC2)HTTPService.dll(SHELBYLOADER)Microsoft.Http.Api.exeMicrosoft.Http.Api.exe.config
Bei der installierten Microsoft.Http.Api.exe handelt es sich um eine gutartige ausführbare .NET-Datei. Sein Hauptzweck besteht darin, die bösartige HTTPService.dllquerzuladen. Nach dem Laden fungiert HTTPService.dll als Loader und initiiert die Kommunikation mit GitHub für dessen Command-and-Control (C2).
Der Loader ruft einen bestimmten Wert vom C2 ab, der zum Entschlüsseln der Backdoor-Nutzlast verwendet wird, HTTPApi.dll. Nach der Entschlüsselung wird die Backdoor als verwaltete Assembly mithilfe von Reflektion in den Arbeitsspeicher geladen, sodass sie ausgeführt werden kann, ohne auf die Festplatte zu schreiben und herkömmliche Erkennungsmechanismen zu umgehen.
Zum Zeitpunkt des Schreibens haben sowohl die Backdoor als auch der Loader eine niedrige Erkennungsrate auf VirusTotal.
SHELBYLOADER-Code-Analyse
Verdunkelung
Sowohl der Loader als auch die Backdoor werden mit dem Open-Source-Tool Obfuscar verschleiert, das unter anderem die String-Verschlüsselung verwendet. Um diese Verschleierung zu umgehen, können wir de4dot mit benutzerdefinierten Parametern nutzen. Obfuscar ersetzt Zeichenketten durch Aufrufe einer Zeichenfolgenentschlüsselungsfunktion, aber indem wir das Token dieser Funktion an de4dot weitergeben, können wir den Code effektiv entschleiern. Mit den Parametern --strtyp ( der Typ des String-Entschlüsselers, in unserem Fall delegate) und --strtok ( das Token der String-Entschlüsselungsmethode) können wir diese Funktionsaufrufe durch die entsprechenden Klartextwerte ersetzen, wodurch die ursprünglichen Strings im Code angezeigt werden.
Sandbox-Erkennung
SHELBYLOADER verwendet Sandbox-Erkennungstechniken, um virtualisierte oder überwachte Umgebungen zu identifizieren. Nach der Ausführung werden die Ergebnisse an C2 zurückgesendet. Diese Ergebnisse werden als Protokolldateien verpackt, in denen detailliert angegeben ist, ob jede Erkennungsmethode eine Sandbox-Umgebung erfolgreich identifiziert hat, z. B.:
Technik 1: WMI-Abfrage für Systeminformationen
Die Malware führt eine WMI-Abfrage (Select * from Win32_ComputerSystem) aus, um Systemdetails abzurufen. Anschließend werden die Felder "Hersteller" und "Modell" auf Indikatoren für eine virtuelle Maschine überprüft, z. B. "VMware" oder "VirtualBox".
Technik 2: Prozessaufzählung
Die Malware scannt die laufenden Prozesse auf bekannte virtualisierungsbezogene Dienste, darunter:
vmsrvcvmtoolsxenservicevboxservicevboxtray
Das Vorhandensein dieser Prozesse teilt der Malware mit, dass sie möglicherweise in einer virtualisierten Umgebung ausgeführt wird.
Technik 3: Dateisystem-Checks
Die Malware sucht nach dem Vorhandensein bestimmter Treiberdateien, die häufig mit Virtualisierungssoftware in Verbindung gebracht werden, wie zum Beispiel:
C:\Windows\System32\drivers\VBoxMouse.sysC:\Windows\System32\drivers\VBoxGuest.sysC:\Windows\System32\drivers\vmhgfs.sysC:\Windows\System32\drivers\vmci.sys
Technik 4: Analyse der Festplattengröße
Die Malware überprüft die Größe des C: Volumes. Wenn die Größe kleiner als 50 GB ist, kann dies darauf schließen, dass die Umgebung Teil einer Sandbox ist, da viele virtuelle Computer zu Testzwecken mit kleineren Datenträgern konfiguriert werden.
Technik 5: Überprüfung des übergeordneten Prozesses
Die Malware untersucht ihren übergeordneten Prozess. Wenn der übergeordnete Prozess nicht explorer.exeist, kann dies auf die Ausführung in einer automatisierten Analyseumgebung und nicht in einem typischen benutzergesteuerten Szenario hinweisen.
Technik 6: Erkennung von Abweichungen zur Schlafzeit
Die Malware verwendet Timing-Prüfungen, um zu erkennen, ob ihre Schlaf- oder Verzögerungsfunktionen beschleunigt werden, eine gängige Technik, die von Sandboxes verwendet wird, um die Analyse zu beschleunigen. Signifikante Abweichungen bei den erwarteten Ruhezeiten können auf eine Sandbox-Umgebung hindeuten.
Technik 7: WMI-Abfrage für den Videocontroller
Die Malware führt eine WMI-Abfrage (SELECT * FROM Win32_VideoController) aus, um Informationen über den Videocontroller des Systems abzurufen. Anschließend wird der Name des Videocontrollers mit bekannten Werten verglichen, die virtuellen Maschinen zugeordnet sind: virtual oder vmware oder vbox.
Kernfunktionalität
Der Loader-Code der Malware beginnt mit der Initialisierung mehrerer Variablen innerhalb des Hauptklassenkonstruktors. Zu diesen Variablen gehören:
- Einen GitHub-Kontonamen
- Ein Name für ein privates Repository
- Ein Personal Access Token (PAT) für die Authentifizierung und den Zugriff auf das Repository
Zusätzlich richtet die Malware zwei Timer ein, mit denen in vordefinierten Intervallen bestimmte Aktionen ausgelöst werden.
Einer der Timer ist so konfiguriert, dass er eine bestimmte Methode 125 Sekunden nach der Ausführung auslöst. Wenn diese Methode aufgerufen wird, stellt sie die Persistenz auf dem infizierten System her, indem sie dem Windows-Registrierungsschlüssel einen neuen Eintrag SOFTWARE\Microsoft\Windows\CurrentVersion\Runhinzufügt. Sobald die Methode ausgelöst und der Persistenzmechanismus erfolgreich ausgeführt wurde, wird der Timer für das weitere Auslösen gestoppt.
Diese Methode verwendet eine ganzzahlige Variable, um das Ergebnis des Vorgangs anzugeben. In der folgenden Tabelle werden die einzelnen möglichen Werte und ihre Bedeutung beschrieben:
| ID | Beschreibung |
|---|---|
1 | Persistenz erfolgreich festgelegt |
2 | Persistenz bereits festgelegt |
8 | Es kann kein Eintrag im Schlüssel hinzugefügt werden. |
9 | Binärdatei nicht auf der Festplatte gefunden |
Dieser ganzzahlige Wert wird bei der ersten Registrierung auf dem C2 an C2 zurückgemeldet, sodass die Angreifer den Erfolg oder Misserfolg des Persistenzmechanismus auf dem infizierten System überwachen können.
Der zweite Timer ist so konfiguriert, dass er eine Methode auslöst, die für das Laden der Backdoor verantwortlich ist und 65 Sekunden nach dem Start der Malware ausgeführt wird. Zunächst generiert die Malware einen MD5-Hash, der auf einer Kombination systemspezifischer Informationen basiert. Die Daten, die zum Erstellen des Hashs verwendet werden, sind wie folgt formatiert, wobei jede Komponente durch einen Schrägstrich ( / getrennt ist):
- Die Anzahl der auf dem System verfügbaren Prozessoren.
- Der Name des Computers (Hostname).
- Der Domänenname, der dem Benutzerkonto zugeordnet ist.
- Der Benutzername des aktuell angemeldeten Benutzers.
- Die Gesamtzahl der auf dem System vorhandenen logischen Laufwerke.
Eine Teilmenge dieses Hashes wird dann extrahiert und als eindeutige Kennung für den infizierten Computer verwendet. Diese Kennung dient den Angreifern als Möglichkeit, kompromittierte Systeme innerhalb ihrer Infrastruktur zu verfolgen und zu verwalten.
Nach dem Generieren der eindeutigen Kennung überträgt die Malware mithilfe einer HTTPS-Anforderung einen neuen Commit in das myToken-Repository. Der Commit enthält ein Verzeichnis, das nach dem eindeutigen Bezeichner benannt ist und eine Datei mit dem Namen Info.txtenthält. In dieser Datei werden die folgenden Informationen über das infizierte System gespeichert:
- Der Domänenname, der dem Benutzerkonto zugeordnet ist.
- Der Benutzername des aktuell angemeldeten Benutzers.
- Das Protokoll der Sandbox-Erkennungsergebnisse, in dem aufgeführt ist, welche Techniken erfolgreich waren oder fehlgeschlagen sind.
- Das Persistenzflag (wie in der obigen Tabelle beschrieben) gibt das Ergebnis des Persistenzmechanismus an.
- Das aktuelle Datum und die Uhrzeit des Beaconing-Ereignisses
Die Malware versucht zunächst, einen Commit in das Repository zu pushen, ohne einen Proxy zu verwenden. Wenn dieser erste Versuch fehlschlägt, wird der vom System konfigurierte Proxy für die Kommunikation verwendet.
Nach dem ersten Beaconing und der erfolgreichen Registrierung des Opfers versucht die Malware, auf dasselbe GitHub-Repository-Verzeichnis zuzugreifen, das sie zuvor erstellt hat, und eine Datei mit dem Namen License.txt herunterzuladen (wir haben keinen Jitter im Prüfintervall beobachtet, aber der Server konnte damit umgehen). Falls vorhanden, enthält diese Datei einen 48-Byte-Wert, der zum Generieren eines AES-Entschlüsselungsschlüssels verwendet wird. Diese Datei wird vom Backend des Angreifers erst hochgeladen, nachdem überprüft wurde, dass die Malware nicht in einer Sandbox-Umgebung ausgeführt wird. Dadurch wird sichergestellt, dass nur validierte Infektionen den Schlüssel erhalten und die Ausführungskette bis zur Backdoor eskaliert.
Die Malware generiert einen AES-Schlüssel und einen Initialisierungsvektor (IV) aus dem Inhalt von License.txt. Zuerst wird der 48-Byte-Wert mit SHA256 gehasht, dann wird der resultierende Hash als Schlüssel und die ersten 16 Byte als IV verwendet.
Anschließend wird die Datei HTTPApi.dllentschlüsselt, die die Backdoor-Nutzlast enthält. Nach der Entschlüsselung nutzt die Malware die Assembly.Load Methode, um die Backdoor reflektiert in den Speicher zu laden. Mit dieser Technik kann die Malware die entschlüsselte Backdoor direkt ausführen, ohne sie auf die Festplatte zu schreiben.
DNS-basierter Keying-Mechanismus
Eine andere Variante von SHELBYLOADER verwendet einen anderen Ansatz für die Registrierung und das Abrufen der Bytesequenz, die zum Generieren des AES-Schlüssels und IV verwendet wird.
Zunächst führt die Malware die gleichen Anti-Sandboxing-Methoden aus und erstellt eine Reihe von 1 oder 0 , je nachdem, ob für jede Technik eine Sandbox erkannt wird.
Für ihre C2-Registrierung erstellt die Malware unter arthurshelby.click eine Subdomain mit drei Teilen: Die erste Subdomain ist eine statische Zeichenfolge (s), die zweite Subdomain ist die in Base32 codierte eindeutige Kennung und die dritte Subdomain ist eine verkettete Zeichenfolge im Format DomainName\HostName >> Anti-Sandboxing Results >> Persistence Flag in Base32 codiert.
Eine vollständige Domain könnte z. B. wie folgt aussehen: s.grldiyrsmvsggojzmi4wmyi.inevyrcfknfvit2qfvcvinjriffe6ib6hyqdambqgaydambahy7cama.arthurshelby.click
Danach führt die Malware mehrere DNS-Abfragen an Subdomains von arthurshelby.clickaus. Die von diesen Abfragen zurückgegebenen IP-Adressen werden in einer Bytesequenz verkettet, die dann verwendet wird, um den AES-Schlüssel zum Entschlüsseln der Hintertür zu generieren, indem der gleiche Prozess ausgeführt wird, der zuvor beschrieben wurde.
Die Subdomains folgen folgendem Format:
- Die erste Subdomain ist
l<index>, wobei der Index der Reihenfolge der DNS-Aufrufe entspricht (z. B.l1,l2usw.), um sicherzustellen, dass die Bytesequenz korrekt zusammengestellt wird. - Die zweite Subdomain ist die eindeutige Kennung, die in Base32 codiert ist.
SHELBYC2 Code-Analyse
Die Hintertür beginnt mit der Regenerierung desselben eindeutigen Bezeichners, der vom Loader erstellt wurde. Dazu wird ein MD5-Hash der exakten systemspezifischen Zeichenfolge berechnet, die zuvor verwendet wurde. Die Hintertür erstellt dann einen Mutex , um sicherzustellen, dass nur eine Instanz der Malware auf dem infizierten Computer ausgeführt wird. Der Mutex wird benannt, indem die Zeichenfolge Global\GHS dem eindeutigen Bezeichner vorangestellt wird.
Nach 65 Sekunden führt die Backdoor eine Methode aus, die die folgenden Systeminformationen sammelt:
- Aktuelle Benutzeridentität
- Version des Betriebssystems
- die Prozess-ID der Malware
- Name des Rechners
- Aktuelles Arbeitsverzeichnis
Interessanterweise werden diese gesammelten Informationen weder lokal verwendet noch auf den C2-Server exfiltriert. Dies deutet darauf hin, dass es sich bei dem Code um toten Code handelt, der während der Entwicklung zurückgelassen wurde, oder dass sich die Malware noch in der aktiven Entwicklung befindet und möglicherweise geplant ist, diese Daten in zukünftigen Versionen zu verwenden.
Die Malware lädt dann den aktuellen Zeitstempel in eine Datei mit dem Namen Vivante.txt im myGit-Repository in ihrem eindeutigen Verzeichnis (benannt nach der eindeutigen Kennung des Systems) hoch. Dieser Zeitstempel dient als letzter Beaconing-Zeitpunkt, der es den Angreifern ermöglicht, die Aktivität der Malware zu überwachen und zu bestätigen, dass das infizierte System noch aktiv ist. Das Wort "Vivante" bedeutet auf Französisch "lebendig", was die Rolle der Datei als Heartbeat-Indikator für den kompromittierten Computer widerspiegelt.
Als nächstes versucht die Malware, die Datei Command.txtherunterzuladen, die eine Liste von Befehlen enthält, die vom Betreiber zur Ausführung auf dem infizierten System ausgegeben wurden.
Wenn Command.txt keine Befehle enthält, sucht die Malware in einer anderen Datei mit dem Namen Broadcast.txtnach Befehlen. Im Gegensatz zu Command.txtbefindet sich diese Datei außerhalb des Malware-Verzeichnisses und wird verwendet, um Befehle gleichzeitig an alle infizierten Systeme zu senden. Dieser Ansatz ermöglicht es dem Angreifer, Vorgänge gleichzeitig auf mehreren kompromittierten Computern auszuführen und so die Kontrolle in großem Maßstab zu optimieren.
Tabelle zur Handhabung von Befehlen:
Bei den Befehlen in der Command.txt Datei kann es sich entweder um verarbeitete Befehle oder um Systembefehle handeln, die mit PowerShell ausgeführt werden. Im Folgenden finden Sie eine Beschreibung aller verarbeiteten Befehle.
/herunterladen
Mit diesem Befehl wird eine Datei aus einem GitHub-Repository auf den infizierten Computer heruntergeladen. Es werden zwei Parameter benötigt:
- Der Name der Datei, die im GitHub-Repository gespeichert ist.
- Der Pfad, in dem die Datei auf dem infizierten Computer gespeichert wird.
/hochladen
Mit diesem Befehl wird eine Datei vom infizierten Computer in das GitHub-Repository hochgeladen. Es wird ein Parameter benötigt: der Pfad der Datei, die hochgeladen werden soll.
/dlextract
Dieser Befehl lädt eine ZIP-Datei aus dem GitHub-Repository herunter (ähnlich wie /download), extrahiert ihren Inhalt und speichert sie in einem angegebenen Verzeichnis auf dem Computer.
/hervorrufen
Dieser Befehl wird verwendet, um eine .NET-Binärdatei reflektierend zu laden. Es werden zwei Parameter benötigt: Der erste Parameter ist der Pfad einer AES-verschlüsselten .NET-Binärdatei, die zuvor auf den infizierten Computer heruntergeladen wurde, der zweite Parameter ist ein Wert, der zur Ableitung von AES und IV verwendet wird, ähnlich wie der Loader die Hintertür lädt.
Dieser Befehl lädt eine .NET-Binärdatei reflektierend, ähnlich wie der SHELBYLOADER die Backdoor lädt. Es werden zwei Parameter benötigt:
- Der Pfad zu einer AES-verschlüsselten .NET-Binärdatei, die zuvor auf den infizierten Computer heruntergeladen wurde.
- Ein Wert, der zum Ableiten des AES-Schlüssels und IV verwendet wird.
Systembefehle
Jeder Befehl, der nicht mit einem der oben genannten Befehle beginnt, wird als PowerShell-Befehl behandelt und entsprechend ausgeführt.
Kommunikation
Die Malware verwendet das Git-Tool im Backend nicht, um Commits zu senden. Stattdessen erstellt es HTTP-Anfragen, um mit GitHub zu interagieren. Er sendet einen Commit an das Repository mithilfe eines JSON-Objekts mit der folgenden Struktur:
{
"message": "Commit message",
"content": "<base64 encoded content>",
"sha": "<hash>"
}
Die Malware legt bestimmte HTTP-Header für die Anfrage fest, darunter:
- Annehmen:
application/vnd.github.v3+json - Inhaltstyp:
application/json - Ermächtigung:
token <PAT_token> - User-Agent:
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36
Die Anforderung wird an den GitHub-API-Endpunkt gesendet, der wie folgt aufgebaut ist:
https://api.github.com/repos/<owner>/<repo>/contents/<unique identifier>/<file>
Das Personal Access Token (PAT), das für den Zugriff auf das private Repository erforderlich ist, ist in die Binärdatei eingebettet. Auf diese Weise kann sich die Malware authentifizieren und Aktionen im Repository ausführen, ohne die standardmäßige Git-Toolchain zu verwenden.
Die Art und Weise, wie die Malware aufgebaut ist, bedeutet, dass jeder mit dem PAT (Personal Access Token) theoretisch vom Angreifer gesendete Befehle abrufen und auf Befehlsausgaben von jedem Opfercomputer zugreifen kann. Dies liegt daran, dass das PAT-Token in die Binärdatei eingebettet ist und von jedem verwendet werden kann, der es erhält.
Schlussfolgerung der Familie SHELBY
Obwohl die C2-Infrastruktur exotisch konzipiert ist, hat der Angreifer die erheblichen Risiken und Auswirkungen dieses Ansatzes übersehen.
Wir sind der Ansicht, dass die Verwendung dieser Malware, sei es durch ein autorisiertes Red Team oder einen böswilligen Akteur, ein Fehlverhalten darstellen würde. Es ermöglicht jedem Opfer, das eingebettete PAT als Waffe einzusetzen und die Kontrolle über alle aktiven Infektionen zu übernehmen. Wenn ein Opfer Proben auf Plattformen wie VirusTotal oder MalwareBazaar hochlädt, kann jeder Dritte auf infektionsbezogene Daten zugreifen oder die Infektionen vollständig übernehmen.
REF8685 Kampagnenanalyse
Elastic Security Labs entdeckte REF8685 durch routinemäßige Erfassung und Analyse von Datenquellen von Drittanbietern. Bei der Untersuchung des REF8685 Eindringens identifizierten wir einen Loader und ein C2-Implantat, die wir als neuartig einstuften, was uns dazu veranlasste, diese detaillierte Malware- und Intrusion-Analyse zu veröffentlichen.
Die bösartigen Nutzlasten wurden über eine äußerst gezielte Phishing-E-Mail, die von der Zielorganisation gesendet wurde, an ein im Irak ansässiges Telekommunikationsunternehmen übermittelt. Der Text der E-Mail ist eine Diskussion unter Ingenieuren über die technischen Besonderheiten der Verwaltung des Netzwerks. Basierend auf dem Inhalt und dem Kontext der E-Mail ist es unwahrscheinlich, dass dieser Köder extern erstellt wurde, was auf die Kompromittierung von technischen Endpunkten, Mailservern oder beidem hindeutet.
Dears,
We would appreciate it if you would check the following alarms on Core Network many (ASSOCIATION) have been flapped.
Problem Text
*** ALARM 620 A1/APT "ARHLRF2SPX1.9IP"U 250213 1406
M3UA DESTINATION INACCESSIBLE
DEST SPID
2-1936 ARSMSC1
END
Problem Text
*** ALARM 974 A1/APT "ARHLRF1SPX1.9IP"U 250213 1406
M3UA DESTINATION INACCESSIBLE
DEST SPID
2-1936 ARSMSC1
END
…
Diese E-Mail enthält einen Call-to-Action zur Behebung von Netzwerkalarmen und einen gezippten Anhang mit dem Namen details.zip. In dieser ZIP-Datei befindet sich eine Textdatei, die die in der E-Mail adressierten Protokolle und eine ausführbare Windows-Datei (JPerf-3.0.0.exe) enthält, die die Ausführungskette startet, was zur Auslieferung des SHELBYC2 Implantats führt und den Fernzugriff auf die Umgebung ermöglicht.
Obwohl dies bei dem REF8685 Eindringen nicht beobachtet wurde, sollte beachtet werden, dass VirusTotal zeigt, dass JPerf-3.0.0.exe (feb5d225fa38efe2a627ddfbe9654bf59c171ac0742cd565b7a5f22b45a4cc3a) in einem separaten komprimierten Archiv (JPerf-3.0.0.zip) enthalten war und ebenfalls aus dem Irak eingereicht wurde. Es ist unklar, ob es sich um dasselbe oder ein anderes Opfer in dieser Kampagne handelt. Eine Suche nach Dateiähnlichkeit identifiziert auch ein zweites Implantat mit dem Namen Setup.exe mit einem zusätzlichen komprimierten Archiv (5c384109d3e578a0107e8518bcb91cd63f6926f0c0d0e01525d34a734445685c).
Die Analyse dieser Dateien (JPerf-3.0.0.exe und Setup.exe) ergab die Verwendung von GitHub für C2 und AES-Schlüsselabrufmechanismen (mehr dazu in den Abschnitten zur Malware-Analyse). Die Github-Konten (arthurshellby und johnshelllby), die für die REF8685 Malware verwendet wurden, waren bösartig und wurden von Github geschlossen.
Bemerkenswert ist, dass Arthur und John Shelby Charaktere in der britischen Krimi-Fernsehserie Peaky Blinders sind. Die Show wurde vom 2013 bis 2022 produziert.
Die Domain arthurshelby[.]click auf 2.56.126[.]151, einen von Stark Industries (AS44477) gehosteten Server, verwiesen. Dieser VPS-Hosting-Anbieter wurde bei anderen groß angelegten Cyberangriffen für Proxy-Dienste verwendet . Dieser Server hat überlappende Auflösungen für:
arthurshelby[.]click[REDACTED]telecom[.]digitalspeed-test[.]click[REDACTED]airport[.]cloud[REDACTED]airport[.]pro
Das komprimierte Archiv und die C2-Domänen für eines der SHELBYLOADER-Samples sind nach [ZENSIERT] Telecom, einem im Irak ansässigen Telekommunikationsunternehmen, benannt. Die Abdeckungskarte von [ZENSIERT] konzentriert sich auf die Region Irakisch-Kurdistan im Norden und Osten des Landes.
"Sharjaairport" deutet auf ein wahrscheinliches drittes Opfer hin. [ZENSIERT] Der internationale Flughafen ([ZENSIERT]) ist ein internationaler Flughafen, der sich auf Luftfracht in den Vereinigten Arabischen Emiraten spezialisiert hat. Es ist 14,5 Meilen (23,3km) von Dubai International Airport (DXB) entfernt.
[REDACTED]airport[.]cloud am 21. Januar 2025für einen Tag auf einen neuen Server, 2.56.126[.]157aufgelöst. Danach verwies es auf Google DNS, den legitimen [ZENSIERT] Flughafenserver und schließlich auf eine Namecheap-Parkadresse. Der 2.56.126[.]157 Server, der von Stark Industries (AS44477) gehostet wird, hostet auch [REDACTED]-connect[.]online[ZENSIERT] ist der Flughafencode für den [ZENSIERT] Internationalen Flughafen.
Die Domain [REDACTED]airport[.]cloud hat eine Subdomain- portal.[REDACTED]airport[.]cloud , die kurz auf 2.56.126[.]188 vom 23. Januar bis25verweist, 2025. Es leitete dann den Verkehr bis zum Zeitpunkt des Schreibens auf 172.86.68[.]55 um.
Banner-Hash-Pivots zeigen eine zusätzliche Server-Domain-Kombination an: 195.16.74[.]138, [REDACTED]-meeting[.]online.
Der 172.86.68[.].55 -Server hostet auch mail.[REDACTED]tell[.]com, eine offensichtliche Phishing-Domain, die auf unser ursprüngliches Opfer abzielt.
Eine Web-Login-Seite wurde bei hxxps://portal.[REDACTED]airport[.]cloud/Login (VirusTotal) gehostet.
Wir gehen davon aus, dass die Angreifer diese beiden Subdomains als Waffe eingesetzt haben, um Phishing für Cloud-Anmeldedaten zu betreiben. Sobald diese Anmeldeinformationen gesichert waren (im Fall von [ZENSIERT] Telecom), griffen die Angreifer auf die Cloud-E-Mail des Opfers zu und erstellten einen äußerst gezielten Phishing, indem sie laufende interne E-Mail-Threads als Waffe einsetzten.
Diese als Waffe eingesetzte interne E-Mail wurde verwendet, um sich ihren Weg zu den Endpunkten der Opfer zu bahnen.
Alle Domains, die mit dieser Kampagne in Verbindung stehen, haben ZeroSSL-Zertifizierungen genutzt und befinden sich in der Infrastruktur von Stark Industries.
Das Diamantmodell der Intrusionsanalyse
Elastic Security Labs verwendet das Diamond-Modell , um die Beziehungen auf hoher Ebene zwischen den Angreifern, Fähigkeiten, der Infrastruktur und den Opfern von Eindringlingen zu beschreiben. Während das Diamond-Modell am häufigsten bei einzelnen Eindringlingen verwendet wird und Activity Threading (Abschnitt 8) nutzt, um Beziehungen zwischen Vorfällen zu schaffen, wird ein Angreifer-zentrierter (Abschnitt 7.1.4) Der Ansatz ermöglicht einen, wenn auch überladenen, einzelnen Diamanten.
REF8685 und MITRE ATT&CK
Elastic verwendet das MITRE ATT&CK-Framework , um gängige Taktiken, Techniken und Verfahren zu dokumentieren, die von Advanced Persistent Threats gegen Unternehmensnetzwerke eingesetzt werden.
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.
- Reflektierendes Laden von Codes
- Phishing
- Verschleierte Dateien oder Informationen
- Befehls- und Skript-Interpreter
- Exfiltration über C2-Kanal
YARA-Regel
Elastic Security hat YARA-Regeln erstellt, um diese Aktivität zu identifizieren. Im Folgenden finden Sie YARA-Regeln zur Identifizierung der SHELBYC2- und SHELBYLOADER-Malware:
rule Windows_Trojan_ShelbyLoader {
meta:
author = "Elastic Security"
creation_date = "2025-03-11"
last_modified = "2025-03-25"
os = "Windows"
arch = "x86"
category_type = "Trojan"
family = "ShelbyLoader"
threat_name = "Windows.Trojan.ShelbyLoader"
license = "Elastic License v2"
strings:
$a0 = "[WARN] Unusual parent process detected: "
$a1 = "[ERROR] Exception in CheckParentProcess:" fullword
$a2 = "[INFO] Sandbox Not Detected by CheckParentProcess" fullword
$b0 = { 22 63 6F 6E 74 65 6E 74 22 3A 20 22 2E 2B 3F 22 }
$b1 = { 22 73 68 61 22 3A 20 22 2E 2B 3F 22 }
$b2 = "Persist ID: " fullword
$b3 = "https://api.github.com/repos/" fullword
condition:
all of ($a*) or all of ($b*)
}
rule Windows_Trojan_ShelbyC2 {
meta:
author = "Elastic Security"
creation_date = "2025-03-11"
last_modified = "2025-03-25"
os = "Windows"
arch = "x86"
category_type = "Trojan"
family = "ShelbyC2"
threat_name = "Windows.Trojan.ShelbyC2"
license = "Elastic License v2"
strings:
$a0 = "File Uploaded Successfully" fullword
$a1 = "/dlextract" fullword
$a2 = "/evoke" fullword
$a4 = { 22 73 68 61 22 3A 20 22 2E 2B 3F 22 }
$a5 = { 22 2C 22 73 68 61 22 3A 22 }
condition:
all of them
}
Beobachtungen
Alle Observables stehen auch im ECS- und STIX-Format in einem kombinierten Zip-Bundle zum Download zur Verfügung.
Die folgenden Observablen wurden in dieser Studie diskutiert.
| Überwachbar | Typ | Name | Referenz |
|---|---|---|---|
0e25efeb4e3304815f9e51c1d9bd3a2e2a23ece3a32f0b47f829536f71ead17a | SHA-256 | details.zip | Zip-Datei ködern |
feb5d225fa38efe2a627ddfbe9654bf59c171ac0742cd565b7a5f22b45a4cc3a | SHA-256 | JPerf-3.0.0.exe | |
0354862d83a61c8e69adc3e65f6e5c921523eff829ef1b169e4f0f143b04091f | SHA-256 | HTTPService.dll | SHELBYLOADER |
fb8d4c24bcfd853edb15c5c4096723b239f03255f17cec42f2d881f5f31b6025 | SHA-256 | HTTPApi.dll | SHELBYC2 |
472e685e7994f51bbb259be9c61f01b8b8f35d20030f03215ce205993dbad7f5 | SHA-256 | JPerf-3.0.0.zip | Zip-Datei ködern |
5c384109d3e578a0107e8518bcb91cd63f6926f0c0d0e01525d34a734445685c | SHA-256 | Setup.exe | |
e51c6f0fbc5a7e0b03a0d6e1e1d26ab566d606b551c785bf882e9a02f04c862b | SHA-256 | Zip-Datei ködern | |
github[.]com/johnshelllby | URL | Name des GitHub-Kontos – C2 | |
github[.]com/arturshellby | URL | Name des GitHub-Kontos – C2 | |
arthurshelby[.]click | Domain-Name | DNS-Domäne | |
speed-test[.]click | Domain-Name | ||
2.56.126[.]151 | ipv4 | ||
2.56.126[.]157 | ipv4 | ||
2.56.126[.]188 | ipv4 | ||
172.86.68[.]55 | ipv4 | ||
195.16.74[.]138 | ipv4 |
