APT-Angriffe zielen mit GOGITTER, GITSHELLPAD und GOSHELL auf die indische Regierung ab | Teil 1
Detection stack
- AIDR
- Alert
- ETL
- Query
Zusammenfassung
Zscaler ThreatLabz entdeckte zwei Kampagnen – Gopher Strike und Sheet Attack, die von einer APT-Gruppe mit Verbindungen zu Pakistan betrieben werden und indische Regierungsorganisationen ins Visier nehmen. Die Aktivität führt Golang-basierte Tools ein, darunter GOGITTER, GITSHELLPAD und GOSHELL, um Payloads zu inszenieren, private GitHub-Repositories für die C2 zu nutzen und schließlich einen Cobalt-Strike-Beacon zu installieren. Der anfängliche Zugriff wird durch Spearphishing-PDFs erreicht, die die Opfer dazu verleiten, schädliche ISO-Dateien herunterzuladen. Die Operatoren setzen mehrere Ausweichmethoden ein, darunter Umweltüberprüfungen, Datei-Padding und geplante Aufgaben-Persistenz.
Untersuchung
Die Analyse ergab, dass GOGITTER das Vorhandensein eines windows_api.vbs-Skripts validiert, es erstellt, wenn es nicht vorhanden ist, und eine geplante Aufgabe registriert, um es alle 50 Minuten auszuführen. GITSHELLPAD verwendet die GitHub-REST-API für die Befehlsabrufung und Datenexfiltration, während GOSHELL nur auf ausgewählten Hostnamen einen gestaffelten Cobalt Strike Beacon lädt. Die Tools betten fest codierte URLs und User-Agent-Strings ein, um die automatisierte Analyse und Sandboxing zu erschweren. Die Kampagnen nutzten auch private GitHub-Repositories, um unterstützende Payloads wie adobe_update.zip zu hosten.
Minderung
Blockieren Sie die Ausführung von nicht vertrauenswürdigen/nicht signierten Golang-Binärdateien und erzwingen Sie eine strikte Positivliste und Überprüfung für die Erstellung geplanter Aufgaben. Überwachen Sie den ausgehenden Verkehr zu bekannten bösartigen Domains und zu GitHub-Ressourcen, die als C2 verwendet werden, einschließlich anomaler GitHub-API-Nutzung von Nicht-Entwickler-Endpunkten. Stärken Sie die E-Mail-Sicherheit, indem Sie PDF-Anhänge auf Verschleierung scannen und Links blockieren, die zu ISO-Downloads umleiten. Erkennungspunkte sollten auf die Erstellung von windows_api.vbs und periodische Aufgabenausführungsmuster mit 50-Minuten-Intervallen aufmerksam machen.
Reaktion
Wenn IOCs erkannt werden, isolieren Sie den Endpunkt, stoppen und entfernen Sie die geplante Aufgabe und löschen Sie die zugehörigen bösartigen Artefakte. Führen Sie eine forensische Überprüfung der GitHub-basierten C2-Aktivität durch, bewahren Sie die Befehlsprotokolle auf und entfernen Sie nach Möglichkeit alle exfiltrierten oder hochgeladenen Inhalte. Setzen Sie die Anmeldedaten für betroffene Konten zurück, suchen Sie nach lateraler Bewegung und aktualisieren Sie die Erkennungen mit extrahierten Indikatoren, um verwandte Aktivitäten in der gesamten Umgebung zu identifizieren.
Angriffsablauf
Erkennungen
Mögliche IP-Suche für Domain-Kommunikation versucht (über dns)
Ansehen
Verdächtiger Prozess verwendet eine URL in der Befehlszeile (über cmdline)
Ansehen
Verdächtige CURL-Nutzung (über cmdline)
Ansehen
Mögliche Systemaufzählung (über cmdline)
Ansehen
Mögliche Konto- oder Gruppenaufzählung (über cmdline)
Ansehen
Verdächtige extrahierte Dateien aus einem Archiv (über file_event)
Ansehen
Mögliche Systemnetzwerkkonfigurationsentdeckung (über cmdline)
Ansehen
IOCs (HashSha1) zur Erkennung: APT-Angriffe auf die indische Regierung unter Verwendung von GOGITTER, GITSHELLPAD und GOSHELL | Teil 1
Ansehen
IOCs (HashMd5) zur Erkennung: APT-Angriffe auf die indische Regierung unter Verwendung von GOGITTER, GITSHELLPAD und GOSHELL | Teil 1
Ansehen
IOCs (HashSha256) zur Erkennung: APT-Angriffe auf die indische Regierung unter Verwendung von GOGITTER, GITSHELLPAD und GOSHELL | Teil 1
Ansehen
Erkennung des GITSHELLPAD-Backdoors und Reinigungskommandos [Windows-Prozesserstellung]
Ansehen
Erkennung des GOGITTER-Downloaders und C2-Kommunikation [Windows-Netzwerkverbindung]
Ansehen
Simulation Execution
Voraussetzung: Die Telemetrie- & Basislinien-Vorflugprüfung muss bestanden sein.
Begründung: Dieser Abschnitt beschreibt die genaue Ausführung der gegnerischen Technik (TTP), die die Erkennungsregel auslösen soll. Die Befehle und Erklärungen MÜSSEN direkt die identifizierten TTPs widerspiegeln und darauf abzielen, die genaue Telemetrie zu generieren, die von der Erkennungslogik erwartet wird. Abstrakte oder nicht zusammenhängende Beispiele führen zu Fehlinterpretationen.
-
Angriffserzählung & Befehle:
Eine APT-Gruppe setzt das GITSHELLPAD-Backdoor (edgehost.exe) auf einem kompromittierten Windows-Host ein. Um mit dem erwarteten Systemverhalten zu verschmelzen, startet der Angreifer das Backdoor über die Windows-Befehlszeile (cmd /c). Nach Abschluss seiner Payload (z. B. Herunterladen zusätzlicher Module) führt das Backdoor ein „Cleanup“ durch, indem es seinen eigenen Prozess mithilfe vontaskkill /F /PID <PID>. Beide Aktionen erzeugen Prozess-Erstellungsereignisse, die den Namen der Binärdatei und die erforderlichen Befehlszeilen-Substrings enthalten, wodurch die Sigma-Regel erfüllt wird. -
Regressionstestskript:
# ------------------------------------------------- # Simuliere die Ausführung & Reinigung des GITSHELLPAD-Backdoors # ------------------------------------------------- # 1. Platzieren Sie einen Platzhalter edgehost.exe (irgendeine harmlose ausführbare Datei) $src = "$env:SystemRootSystem32notepad.exe" $dst = "$env:TEMPedgehost.exe" Copy-Item -Path $src -Destination $dst -Force # 2. Starten Sie edgehost.exe über cmd /c (entspricht cmd_cmd-Muster) $proc = Start-Process -FilePath "cmd.exe" -ArgumentList "/c `"$dst`"" -PassThru # 3. Warten Sie einige Sekunden, um sicherzustellen, dass der Prozess aktiv ist Start-Sleep -Seconds 5 # 4. Reinigung: Beenden Sie den edgehost.exe-Prozess mithilfe von taskkill (entspricht taskkill_cmd-Muster) $pid = $proc.Id cmd /c "taskkill /F /PID $pid" # 5. Entfernen Sie die abgelegte Datei Remove-Item -Path $dst -Force -
Reinigungskommandos:
# Stellen Sie sicher, dass alle streunenden edgehost.exe-Instanzen beendet werden Get-Process -Name "edgehost" -ErrorAction SilentlyContinue | Stop-Process -Force # Löschen Sie die temporäre Binärdatei, wenn noch vorhanden $tempPath = "$env:TEMPedgehost.exe" if (Test-Path $tempPath) { Remove-Item $tempPath -Force }