BlueDelta (APT28) Anmeldeinformations-Phishing über kostenloses Hosting & Ngrok
Detection stack
- AIDR
- Alert
- ETL
- Query
Zusammenfassung
BlueDelta, eine mit dem GRU verbundene Gruppe, auch bekannt als APT28/Fancy Bear, führte zwischen Februar und September 2025 mehrere Kampagnen zur Abgriff von Zugangsdaten durch. Die Kampagnen nutzten kostenlose Hosting- und Tunneling-Dienste, um gefälschte Outlook-, Google- und Sophos-VPN-Anmeldeseiten zu hosten und abgegriffene Anmeldedaten zu exfiltrieren. Als Köder wurden legitime PDF-Dokumente und regionsspezifische Sprache verwendet, um die Glaubwürdigkeit zu erhöhen. Die Operation zielte auf Energie-, Nuklearforschungs-, Regierungs- und akademische Einrichtungen in der Türkei, Nordmazedonien und Usbekistan ab.
Untersuchung
Die Insikt-Gruppe von Recorded Future sammelte über ein Dutzend Phishing-Seiten, die auf Diensten wie Webhook.site, InfinityFree, Byet Internet Services und ngrok gehostet wurden. JavaScript auf den Seiten erfasste Benutzernamen, Passwörter und Opferkennungen, sendete Beacons an von Angreifern kontrollierte Webhooks und leitete die Opfer dann zu authentischen Portalen weiter. Mehrere Varianten wiederverwendeten Code und änderten Variablennamen, um die Bereitstellung zu optimieren. Die Infrastruktur war kurzlebig und nutzte Link-Shortener wie ShortURL.at.
Abschwächung
Sperren Sie bekannte Domains für kostenloses Hosting und Tunneling, überwachen Sie ausgehenden Traffic zu Webhook-Diensten und erzwingen Sie MFA für alle nach außen gerichteten Konten. Schulen Sie Benutzer über Phishing-Seiten, die OWA, Google und VPN-Portale imitieren, insbesondere wenn PDF-Köder angehängt sind. Implementieren Sie Netzwerkfilterung für bekannte bösartige URLs und wenden Sie E-Mail-Sicherheitskontrollen an, um verdächtige PDF-Links zu erkennen.
Reaktion
Alarmieren Sie SOC-Analysten, wenn HTTP-POSTs zu bekannten Webhook-Endpunkten beobachtet werden und wenn Seiten zum Abgriff von Zugangsdaten geladen werden. Quarantäne der bösartigen Seite, isolieren Sie betroffene Benutzerkonten, erzwingen Sie Passwort-Resets und überprüfen Sie Protokolle auf laterale Bewegungen. Führen Sie eine Bedrohungssuche nach anderen Seiten unter Verwendung derselben Infrastruktur durch und aktualisieren Sie blockierte Listen entsprechend.
„graph TB %% Klassendefinitionen classDef action fill:#99ccff classDef service fill:#ffcc99 classDef tool fill:#cccccc %% Knoten u2013 Aufklärung recon_info[„<b>Aktion</b> – <b>T1591 Informationen zu Zielorganisation sammeln</b>: Sammeln Sie öffentliche E-Mail-Adressen und Organisationsdetails von Ziel-Forschern.“] class recon_info action recon_roles[„<b>Aktion</b> – <b>T1591.004 Rollen identifizieren</b>: Bestimmen Sie spezifische Jobfunktionen wie Energieanalysten, Think-Tank-Wissenschaftler und Sicherheitspersonal.“] class recon_roles action %% Knoten u2013 Ressourcenentwicklung resource_dev[„<b>Aktion</b> – <b>T1583.006 Webdienste für Infrastruktur erwerben</b>: Registrieren Sie Einweg-Domains und nutzen Sie kostenlose Hosting-/Tunneling-Dienste (Webhook.site, InfinityFree, Byet, ngrok, shorturl.at).“] class resource_dev service %% Knoten u2013 Phishing phishing[„<b>Aktion</b> – <b>T1566.001 Spearphishing-Anhang</b>: Senden Sie eine gestaltete E-Mail mit gekürztem bösartigem Link, der über mehrere URLs weiterleitet.“] class phishing action %% Knoten u2013 Verschleierung html_smuggling[„<b>Aktion</b> – <b>T1027.006 HTML-Schmuggeln</b>: Der erste Redirect liefert HTML, das kurzzeitig eine legitime PDF-Falle über Meta-Refresh einbettet.“] class html_smuggling action %% Knoten u2013 Zugangsdaten-Abgriff credential_forge[„<b>Aktion</b> – <b>T1606 Web-Zugangsdaten fälschen / T1056.003 Web-Portal Erfassung</b>: Gefälschte Anmeldeseiten (OWA, Google, Sophos VPN) erfassen Zugangsdaten mit JavaScript.“] class credential_forge tool %% Knoten u2013 Eingangsbeacon erfassen web_capture_beacon[„<b>Aktion</b> – <b>T1056.003 Web-Portal Erfassung</b>: JavaScript sendet einen geöffneten Beacon und eingegebene Zugangsdaten an den Angreifer-Webhook.“] class web_capture_beacon tool %% Knoten u2013 Exfiltration exfil_webhook[„<b>Aktion</b> – <b>T1567.004 Exfiltration über Webhook</b>: POST erfasste Daten als JSON an einen vom Angreifer kontrollierten Webhook (webhook.site, ngroku2011free.app).“] class exfil_webhook service %% Knoten u2013 Kommando und Kontrolle c2_webprotocol[„<b>Aktion</b> – <b>T1071.001 Anwendungsschicht-Protokolle Web-Protokolle</b>: Verwenden Sie Standard-Web-Traffic für C2-Kommunikation.“] class c2_webprotocol service c2_webservice[„<b>Aktion</b> – <b>T1102.002 Webdienst Zweiseitige Kommunikation</b>: Halten Sie einen persistierenden Zweiseitigen-Kanal über den Webhook-Dienst aufrecht.“] class c2_webservice service %% Knoten u2013 Tunneling protocol_tunnel[„<b>Aktion</b> – <b>T1572 Protokoll-Tunneling</b>: Nutzen Sie ngrok-Tunnel, um lokale Exfiltrations-Endpunkte dem Internet zugänglich zu machen.“] class protocol_tunnel tool %% Knoten u2013 Weiterleitung nach der Exfiltration post_redirect[„<b>Aktion</b> – Weiterleitung nach der Exfiltration: Nach der Datenerfassung werden die Opfer zum ursprünglichen legitimen Dokument oder VPN-Portal geschickt, um Verdacht zu vermeiden.“] class post_redirect action %% Verbindungen u2013 Fluss recon_info u002du002d>|führt zu| recon_roles recon_roles u002du002d>|führt zu| resource_dev resource_dev u002du002d>|ermöglicht| phishing phishing u002du002d>|auslöst| html_smuggling html_smuggling u002du002d>|liefert| credential_forge credential_forge u002du002d>|erfasst| web_capture_beacon web_capture_beacon u002du002d>|sendet zu| exfil_webhook exfil_webhook u002du002d>|unterstützt| c2_webprotocol c2_webprotocol u002du002d>|nutzt| c2_webservice c2_webservice u002du002d>|basiert auf| protocol_tunnel protocol_tunnel u002du002d>|erleichtert| post_redirect „
Angriffsablauf
Erkennungsmaßnahmen
Mögliche Malware-Verteilung über WebsiteHook-Endpunkte (via Proxy)
Ansehen
Mögliche Malware-Verteilung über WebsiteHook-Endpunkte (via DNS)
Ansehen
Möglicher Port-Tunneling-Dienst (via DNS)
Ansehen
Mögliche Dateninfiltration / Exfiltration / C2 über Drittanbieterdienste / -tools (via Proxy)
Ansehen
IOCs (DestinationIP) zur Erkennung: GRU-Verbundene BlueDelta entwickelt Credential Harvesting
Ansehen
IOCs (SourceIP) zur Erkennung: GRU-Verbundene BlueDelta entwickelt Credential Harvesting
Ansehen
Erkennung von BlueDeltas Credential Harvesting-Kampagnen über Webhook Site [Webserver]
Ansehen
Simulation Ausführung
Voraussetzung: Der Telemetrie- & Basislinien-Pre-Flight-Check muss bestanden sein.
Begründung: In diesem Abschnitt werden die genaue Ausführung der gegnerischen Technik (TTP) beschrieben, um die Erkennungsregel auszulösen. Die Befehle und das Narrativ MÜSSEN die identifizierten TTPs direkt widerspiegeln und darauf abzielen, die genaue Telemetrie zu erzeugen, die von der Erkennungslogik erwartet wird. Abstrakte oder nicht verwandte Beispiele führen zu Fehldiagnosen.
-
Angriffserzählung & Befehle:
- Erste Phishing-Lieferung: Ein Angreifer sendet eine Phishing-E-Mail mit einem kurzen URL, die auf das bösartige
webhook.siteSeite weiterleitet. - Opferinteraktion: Das Opfer klickt auf den Link; der Browser folgt der Weiterleitung und sendet eine HTTP GET Anfrage an
https://webhook.site/e8ae3bbd-ab02-46b7-b84c-f5f4baa5d7c7. - Zugangsdaten-Abgriff-Seite: Die Seite hostet JavaScript, das eingegebene Zugangsdaten stiehlt und sie zurück an dieselbe Webhook-URL postet, aber der Proxy protokolliert nur die anfängliche GET-Anfrage, was ausreicht, um die Regel auszulösen.
- Für den Test, wir emulieren das Opfer, indem wir PowerShell’s
Invoke-WebRequestverwenden, um die genaue bösartige URL anzufordern und dasselbe Protokolleintrag im Proxy zu reproduzieren.
- Erste Phishing-Lieferung: Ein Angreifer sendet eine Phishing-E-Mail mit einem kurzen URL, die auf das bösartige
-
Regressionstest-Skript:
# ------------------------------------------------- # BlueDelta Webhook Site-Zugriffssimulation (TC-20260109-9X3BZ) # ------------------------------------------------- $maliciousUrls = @( "https://webhook.site/e8ae3bbd-ab02-46b7-b84c-f5f4baa5d7c7", "https://webhook.site/3791f8c0-1308-4c5b-9c82-0dc416aeb9c4" ) foreach ($url in $maliciousUrls) { try { Write-Host "Anforderung an bösartige URL: $url" Invoke-WebRequest -Uri $url -UseBasicParsing -Method GET -TimeoutSec 10 | Out-Null Write-Host "✅ Anfrage gesendet." } catch { Write-Warning "Anforderung an $url fehlgeschlagen: $_" } } -
Befehle zur Bereinigung:
# Proxy-Cache leeren (falls zutreffend), um Resteinträge zu vermeiden net stop "Squid Service" net start "Squid Service" # Alle temporären Dateien entfernen, die durch das Skript erstellt wurden (keine in diesem Fall) Write-Host "Bereinigung abgeschlossen."