Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
Loki — 🧙‍♂️ Node.js Command & Control zum Script-Jacking verwundbarer Electron-Anwendungen | Kitploit
Tools/GitHubGitHub/boku7/loki
PersistenzmechanismenExploitationIDS/IPS-UmgehungShellcodePost-ExploitationCommand and ControlRed TeamingPayload-Entwicklung
GitHubboku7/loki

Loki

🧙‍♂️ Node.js Command & Control zum Script-Jacking verwundbarer Electron-Anwendungen

Repository anzeigen
1.4k2204vor 5 MonatenVon Kitploit geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

🧙‍♂️ Loki Command & Control

Loki ist ein Command-and-Control-Framework (C2) der Stufe 1, geschrieben in Node.js, das verwundbare Electron-Apps per Script-Jacking übernimmt MITRE ATT&CK T1218.015. Loki wurde für Red-Team-Operationen entwickelt und ermöglicht die Umgehung von Sicherheitssoftware und Anwendungskontrollen durch die Ausnutzung vertrauenswürdiger, signierter Electron-Apps.

Beim Script-Jacking wird der Ausführungsfluss einer Electron-App gekapert, indem zur Laufzeit geladene JavaScript-Dateien mit beliebigem Node.js-Code modifiziert werden. Diese Technik kann genutzt werden, um:

  • Electron-Apps zu backdooren
  • Electron-Apps auszuhöhlen
  • Die Ausführung auf einen anderen Prozess zu verketten

Während sich mehrere Tools bereits damit befassen, Script-Jacking zu nutzen, um die Ausführung auf einen anderen Prozess zu verketten, ist Loki das erste, das das Backdooring und Hollowing signierter Electron-Apps ermöglicht, ohne deren Code-Signatur zu invalidieren.

Weitere Details zur Funktionsweise von Loki findest du in diesem Blogbeitrag:

  • Umgehung der Windows Defender Application Control mit Loki C2

🚀 Mitwirkende

NameBeiträge
Bobby CookeErsteller & Betreuer
Dylan TranErsteller
Ellis SpringeAlpha-Tester
Shawn JonesAssembly-Ausführungscode
Trusted SecCOFFLoader-Code
Simon ExleyVideo-Ersteller
Clinton ElvesVideo-Ersteller
John HammondVideo-Ersteller

Videos

Schau dir dieses Video von John Hammond an, in dem er Cursor AI mit Loki C2 backdoort! 🎩

  • Im Video zeigt er, wie man eine neue verwundbare Electron-Anwendung entdeckt, sie mit Loki C2 backdoort, sich mit der Client-GUI einrichtet, und wir haben sogar zwei Möglichkeiten entwickelt, die App dauerhaft im Hintergrund laufen zu lassen 🪄 -- Aus Sicht des Endbenutzers läuft Cursor ganz normal! 🥷

Ich habe Cursor AI backdoort

Schau dir dieses Video von Simon Exley & Clinton Elves an, um mit Loki C2 loszulegen! 🧙‍♂️

Umgehung der Windows Defender Application Control mit Loki C2

Funktionen & Details

  • Azure Storage Blob C2-Kanal
    • SAS-Token zum Schutz des C2-Speicherkontos
  • AES-verschlüsselte C2-Nachrichten
  • Proxy-bewusster Agent
    • Nutzt Chromium-Renderer-Kindprozesse für den Agent, Shellcode-Ausführung und Assembly-Ausführung im Fork-n-Run-Stil – erbt die Proxy-fähigen Fähigkeiten von Chromium.
  • Ohne Teamserver
    • Anders als bei herkömmlichen C2-Frameworks, bei denen Agents Nachrichten an einen Teamserver senden, gibt es keinen Teamserver
    • Der GUI-Client und die Agents checken beide im selben Datenspeicher ein
  • Verborgene Ausführung – läuft im Hintergrund

Befehle

Alle Agent-Befehle sind in nativem Node.JS geschrieben und benötigen keine zusätzlichen Abhängigkeiten oder Bibliotheksladeereignisse. Mit Ausnahme der Befehle scexec und assembly, die eine Bibliotheksladung auf keytar.node und assembly.node durchführen.

  • Alle Befehle akzeptieren Pfade mit /, \ in Pfaden funktioniert nicht.
BefehlBeschreibung
helpHilfe anzeigen. Verwendung: help oder help scan
pwdArbeitsverzeichnis anzeigen
lsDatei- und Verzeichnisliste
catInhalt einer Datei anzeigen
envProzess-Umgebungsvariablen anzeigen
spawnEinen Kindprozess starten
drivesLaufwerke auflisten
mvEine Datei zu einem neuen Ziel verschieben
sleepFür Sekunden mit Jitter schlafen
cpEine Quelldatei zu einem Ziel kopieren
exit-allBeendet den Agent; der Agent meldet sich nicht mehr zurück
loadEine Node-PE-Datei von der Festplatte in den Prozess laden
scexecShellcode ausführen
assemblyEine .NET-Assembly ausführen und Befehlsausgabe erhalten
uploadEine Datei von deiner lokalen Operator-Box auf die entfernte Agent-Box hochladen
downloadEine Datei von der entfernten Agent-Box auf die lokale Operator-Box herunterladen
scanTCP-Netzwerkscan über den CIDR-Bereich mit ausgewählten Ports durchführen
dnsDNS-Lookup. Nutzt die DNS-Konfiguration des Systems
setLegt die Node-Ladepfade für Assembly-Node und Scexec-Node fest
bofEine COFF-Datei ausführen und Ausgabe zurückgeben

Set – Nodes aus Ausschlusspfaden der Anwendungskontrolle laden

  • Wenn Application-Control-Regeln das Laden von Bibliotheken für die Node-Dateien verhindern, kannst du mit dem Befehl set die Ladepfade für assembly.node und scexec.node ändern.
  • Mit ls, cat, cp und mv kannst du möglicherweise die Application-Control-Regeln enumerieren, um ein beschreibbares Verzeichnis zu finden, das ausgenommen ist.
  • Damit kannst du die Node-Dateien in das Ausschlussverzeichnis legen und mit dem Befehl set ihren Ladepfad auf das Ausschlussverzeichnis ändern, um die Anwendungskontrolle zu umgehen.
  • Weitere Details zu diesem Angriffsvektor findest du im Kurs CRTO2 von Daniel Duggan (@_RastaMouse)
root@kitploit:~
[04-04-2025 8:50AM MST] advsim$ help set
Set the Node load paths for assembly node and scexec nodes
	set scexec_path C:/Users/user/AppData/ExcludedApp/scexec.node
	set assembly_path C:/Users/user/AppData/ExcludedApp/assembly.node
[04-04-2025 8:51AM MST] advsim$ set scexec_path C:/Users/user/AppData/ExcludedApp/scexec.node
SCEXEC Node Load Path Set to : C:/Users/user/AppData/ExcludedApp/scexec.node

Agent-Funktionen

Weitere Informationen zu den Agent-Funktionen findest du hier

Client-Funktionen

Weitere Informationen zu den Client-Funktionen findest du hier

🧙‍♂️ Illusionen bereitstellen

Zuerst musst du eine verwundbare Electron-Anwendung identifizieren, die keine ASAR-Sicherheitsintegritätsprüfungen durchführt, wie z. B. Microsoft Teams. Neuere Anwendungen können Integritätsprüfungen haben, die das Backdooring verhindern. Ältere Versionen der Ziel-App sind mit größerer Wahrscheinlichkeit verwundbar.

  • Leitfaden zum Entdecken verwundbarer Electron-Apps

Einfache Anleitung

Du musst den Agent beim Backdooring von Electron-Apps nicht kompilieren. Ersetze einfach den Inhalt von {ELECTRONAPP}/resources/app/ mit den Loki-Agent-Dateien.

Detaillierte Anleitung

Schritt 1: Azure Storage Blob-Konto erstellen und SAS-Token erhalten

  • Azure-Speicherkonto über das Azure-Portal erstellen
  • Azure-Speicherkonto über die Azure CLI erstellen

Schritt 2: Verschleiertes Loki-Payload erstellen

  • Klone dieses Repo und wechsle per cd hinein
  • Installiere Node.JS
  • Installiere das Modul javascript-obfuscator
root@kitploit:~
npm install --save-dev javascript-obfuscator
  • Führe das Skript create_agent_payload.js aus, um ein Loki-Payload mit deinen Storage-Account-Informationen zu erstellen
root@kitploit:~
bobby$ node create_agent_payload.js 
[+] Provide Azure storage account information:
        - Enter Storage Account  : 7f7584ty218ba5dba778.blob.core.windows.net
        - Enter SAS Token        : se=2025-05-28T23%3A14%3A48Z&sp=rwdlac&spr=https&sv=2022-11-02&ss=b&srt=sco&sig=5MXQzJ6FDZK8yYiBSgJ6FDZKgQzJMXBSgg6qE4ydrJ6FDZKSgg%3D

[+] Configuration:
        - Storage Account : 7f7584ty218ba5dba778.blob.core.windows.net
        - SAS Token       : se=2025-05-28T23%3A14%3A48Z&sp=rwdlac&spr=https&sv=2022-11-02&ss=b&srt=sco&sig=5MXQzJ6FDZK8yYiBSgJ6FDZKgQzJMXBSgg6qE4ydrJ6FDZKSgg%3D
        - Meta Container  : mllyi2zjmafjm

[+] Updated /Users/bobby/apr2/LokiC2/config.js with storage configuration. 
 - Enter into the Loki Client UI
        Loki Client > Configuration

[+] Modifying PE binaries to have new hashes...
        - Payload assembly.node hash : e9d126407264821d3c2d324da0e2d1bc13cbc53e7c56340fe12b07f69b707f02
        - Payload keytar.node   hash : 292c14ffebd6cae3df99d9fbee525e29a5a704f076b82207eb3e650de45b075d

[+] Payload ready!
         - Obfuscated payload in the ./app directory

Schritt 3: Electron-Anwendung backdooren

  • Dein verschleiertes Loki-Payload wird nach ./app/ ausgegeben
  • Wechsle in das Verzeichnis {ELECTRONAPP}/resources/
  • Lösche alles
  • Kopiere den Loki-Ordner ./app/ nach {ELECTRONAPP}/resources/app/
  • Klicke auf die Electron-PE-Datei und stelle sicher, dass Loki funktioniert

Schritt 4: Loki-Client konfigurieren

  • Starte den Loki-GUI-Client

  • Klicke in der Menüleiste auf Loki Client > Configuration, um das Einstellungsfenster zu öffnen

  • Gib deine Storage-Account-Details ein und klicke auf Save

  • Der Agent sollte jetzt im Dashboard erscheinen

  • Klicke in der Dashboard-Tabelle auf den Agent, um das Agent-Fenster zu öffnen

  • Teste, um sicherzustellen, dass Loki ordnungsgemäß funktioniert

Electron-Apps backdooren und die echte Anwendung normal weiterlaufen lassen

Der einfachste Weg, Loki zu nutzen, besteht darin, die Dateien in {ELECTRONAPP}/resources/app/ durch die Loki-Dateien zu ersetzen. Dies höhlt die App aus, d. h. die App funktioniert nicht mehr normal -- Loki hat ihre Funktionalität ersetzt.

Wenn du die Electron-Anwendung wirklich weiterlaufen lassen und zusätzlich Loki im Hintergrund bereitstellen möchtest, ist noch nicht alle Hoffnung verloren! John Hammond und ich haben einen Weg gefunden, die echte Electron-Anwendung weiterlaufen zu lassen. Wir haben dazu die Datei /loki/backdoor/init.js in dieses Repo aufgenommen.

Sie ist derzeit für Cursor eingerichtet, das von John Hammond als verwundbar entdeckt wurde.

Dazu musst du:

  • Die Cursor-App herunterladen
  • Alle Loki-Dateien außer package.json nach cursor/resources/app/ einfügen
    • Ersetze nicht das echte package.json
  • Kopiere /loki/backdoor/init.js nach cursor/resources/app/
  • Ändere den Inhalt von cursor/resources/app/package.json folgendermaßen:
    • setze "main":"init.js",
    • lösche "type":"module",
    • lösche "private":true,

Wie das funktioniert

  • Durch diese Änderungen lädt Cursor.exe init.js beim Klick / bei der Ausführung
  • init.js liest package.json
  • init.js ändert "main":"init.js", -> "main":"main.js",
    • main.js ist Loki
  • init.js startet und löst sich von einem neuen Cursor.exe, der auf Loki zeigt
  • Loki wird im Hintergrund gestartet
  • init.js liest package.json erneut
  • init.js ändert "main":"main.js", -> "main":"./out/main.js",
    • ./out/main.js" ist die echte Cursor-Anwendung
  • init.js startet und löst sich von einem neuen Cursor.exe, der auf den echten Cursor zeigt
  • Die echte Cursor-App wird sichtbar gestartet und funktioniert normal
  • Wenn Cursor vom Benutzer beendet wird:
    • init.js fängt die Beendigung ab
    • init.js liest package.json zum dritten Mal
    • init.js ändert "main":"./out/main.js", -> "main":"init.js",

Auf diese Weise ist die App dauerhaft backdoort und funktioniert normal. Wenn die Cursor-App beendet wird, läuft Loki weiter im Hintergrund.

Zukunft

Ich werde in Zukunft ein Skript erstellen, um dies zu automatisieren.

OPSEC-Empfehlungen

  • OPSEC-Empfehlungen

Kompilierungsanleitungen

Dies sind die Kompilierungsanweisungen zum Erstellen der Agents & Clients. Die Anweisungen decken mehrere Plattformen ab, einschließlich Windows, Linux und macOS. Es wird empfohlen, den Client auf der Zielplattform und -architektur zu kompilieren.

Client

  • Windows
  • macOS
  • Linux

Agents

Wenn du eine Electron-Anwendung backdoort, musst du keine Agents kompilieren.

Ich empfehle nicht, den Agent zu kompilieren und für Operationen zu verwenden. Die Kompilierungsanweisungen für Agents sind für die Entwicklung gedacht.

  • Windows
  • Linux
  • macOS

Erkennungshinweise

  • Überprüfe die von MITRE bereitgestellten Informationen für weitere Details, Beispiele und Informationen zu dieser TTP:
    • MITRE ATT&CK T1218.015: Electron Applications
  • Ausführung einer Electron-App aus einem ungewöhnlichen Verzeichnis wie ~/Downloads/Teams/Teams.exe
  • Electron-Apps, die zu einem Azure Storage Blob *.blob.core.windows.net beaconen
  • SAS-Token-Nutzung im Netzwerkverkehr
  • Electron-Apps, die Kindprozesse wie netstat.exe oder whoami.exe starten
  • Ein Verzeichnis mit dem Namen aus der Loki-package.json wird in ~/AppData/Roaming/{NAME} erstellt, wenn das Loki-JavaScript im Electron-Prozess ausgeführt wird.
  • Dieser LOLBAS-Teams-Eintrag deckt Erkennungen für das Backdooring von Electron-Anwendungen ab. Die Erkennungsinformationen sind unten kopiert.
  • IOC: Verzeichnis %LOCALAPPDATA%\Microsoft\Teams\current\app erstellt
  • IOC: Datei %LOCALAPPDATA%\Microsoft\Teams\current\app.asar von einem Nicht-Teams-Installer/-Updater erstellt/geändert
  • SIGMA-Regel zur Erkennung eines etablierten Loki-C2-Kanals aus einer Electron-App
  • SIGMA-Regel zur Erkennung der Übernahme des Electron-App-Ordners (Teams, VS Code, RingCentral, Postman) zum Laden des C2-Frameworks

Referenzen || Danksagungen || Offensive-Electron-Forschung

  • Dylan Tran (@d_tranman)
    • Mitersteller des Loki-Agents. Erstellte Node-Module für Shellcode- und Assembly-Ausführung.
  • Valentina Palmiotti (@chompie1337), Ellis Springe (@knavesec) und Ruben Boonen für ihre früheren internen Arbeiten zum Backdooring von Electron-Anwendungen für Persistenz
  • Ruben Boonen
    • Wild West Hackin’ Fest talk Statikk Shiv: Leveraging Electron Applications for Post-Exploitation
  • Andrew Kisliakov
    • Microsoft Teams und andere Electron-Apps als LOLbins
  • Shawn Jones
    • Für die Loki-Assembly-Ausführung hat Dylan den öffentlichen InlineExecute-Assembly-Code von Shawn portiert.
  • mr.d0x (@mrd0x) für seine früheren Arbeiten zur Nutzung der Teams-Electron-Anwendung zur Ausführung beliebigen Node.JS-Codes und zur Veröffentlichung seiner Erkenntnisse im LOLBAS-Projekt.
  • Michael Taggart
    • quASAR-Projekt, ein Tool zum Modifizieren von Electron-Anwendungen zur Ermöglichung von Befehlsausführung
    • Quasar: Electron-Apps kompromittieren
  • Raphael Mudge dafür, dass er mich inspiriert hat, tief ins Red Teaming einzutauchen, und die Veröffentlichung dieses Tools unterstützt hat
    • The Security Conversation
  • Fletcher Davis
    • BSides: Electron-Anwendungen missbrauchen
  • Pavel Tsakalidis
    • BEEMKA - Electron Exploitation Toolkit

Lizenz

Dieses Projekt ist unter der Business Source License 1.1 lizenziert. Die nicht-kommerzielle Nutzung ist unter den Bedingungen der Lizenz gestattet. Die kommerzielle Nutzung erfordert die ausdrückliche Genehmigung des Autors. Am 3. April 2030 wird diese Lizenz in Apache 2.0 umgewandelt. Einzelheiten findest du in LICENSE.

Tool herunterladen