
🧙♂️ Node.js Command & Control zum Script-Jacking verwundbarer Electron-Anwendungen
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:
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:

| Name | Beiträge |
|---|---|
| Bobby Cooke | Ersteller & Betreuer |
| Dylan Tran | Ersteller |
| Ellis Springe | Alpha-Tester |
| Shawn Jones | Assembly-Ausführungscode |
| Trusted Sec | COFFLoader-Code |
| Simon Exley | Video-Ersteller |
| Clinton Elves | Video-Ersteller |
| John Hammond | Video-Ersteller |
Schau dir dieses Video von John Hammond an, in dem er Cursor AI mit Loki C2 backdoort! 🎩
Schau dir dieses Video von Simon Exley & Clinton Elves an, um mit Loki C2 loszulegen! 🧙♂️
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.
/, \ in Pfaden funktioniert nicht.| Befehl | Beschreibung |
|---|---|
help | Hilfe anzeigen. Verwendung: help oder help scan |
pwd | Arbeitsverzeichnis anzeigen |
ls | Datei- und Verzeichnisliste |
cat | Inhalt einer Datei anzeigen |
env | Prozess-Umgebungsvariablen anzeigen |
spawn | Einen Kindprozess starten |
drives | Laufwerke auflisten |
mv | Eine Datei zu einem neuen Ziel verschieben |
sleep | Für Sekunden mit Jitter schlafen |
cp | Eine Quelldatei zu einem Ziel kopieren |
exit-all | Beendet den Agent; der Agent meldet sich nicht mehr zurück |
load | Eine Node-PE-Datei von der Festplatte in den Prozess laden |
scexec | Shellcode ausführen |
assembly | Eine .NET-Assembly ausführen und Befehlsausgabe erhalten |
upload | Eine Datei von deiner lokalen Operator-Box auf die entfernte Agent-Box hochladen |
download | Eine Datei von der entfernten Agent-Box auf die lokale Operator-Box herunterladen |
scan | TCP-Netzwerkscan über den CIDR-Bereich mit ausgewählten Ports durchführen |
dns | DNS-Lookup. Nutzt die DNS-Konfiguration des Systems |
set | Legt die Node-Ladepfade für Assembly-Node und Scexec-Node fest |
bof | Eine COFF-Datei ausführen und Ausgabe zurückgeben |
Set – Nodes aus Ausschlusspfaden der Anwendungskontrolle ladenset die Ladepfade für assembly.node und scexec.node ändern.ls, cat, cp und mv kannst du möglicherweise die Application-Control-Regeln enumerieren, um ein beschreibbares Verzeichnis zu finden, das ausgenommen ist.set ihren Ladepfad auf das Ausschlussverzeichnis ändern, um die Anwendungskontrolle zu umgehen.[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
Weitere Informationen zu den Agent-Funktionen findest du hier
Weitere Informationen zu den Client-Funktionen findest du hier