
🧙♂️ Node.js Command & Control pour le script-jacking d'applications Electron vulnérables
Loki est un framework de commande et contrôle (C2) de stade 1 écrit en Node.js, conçu pour le script-jacking d'applications Electron vulnérables MITRE ATT&CK T1218.015. Développé pour les opérations de red team, Loki permet de contourner les logiciels de sécurité et les contrôles d'applications en exploitant des applications Electron de confiance et signées.
Le script-jacking détourne le flux d'exécution d'une application Electron en modifiant les fichiers JavaScript chargés à l'exécution avec du code Node.js arbitraire. Cette technique peut être utilisée pour :
Bien que plusieurs outils permettent déjà d'exploiter le script-jacking pour chaîner l'exécution vers un autre processus, Loki est le premier à permettre de backdoorer et d'évider des applications Electron signées sans invalider leur signature de code.
Pour plus de détails sur le fonctionnement de Loki, consultez cet article de blog :

| Nom | Contributions |
|---|---|
| Bobby Cooke | Créateur et mainteneur |
| Dylan Tran | Créateur |
| Ellis Springe | Testeur alpha |
| Shawn Jones | Code d'exécution d'assembly |
| Trusted Sec | Code de COFFLoader |
| Simon Exley | Créateur de vidéos |
| Clinton Elves | Créateur de vidéos |
| John Hammond | Créateur de vidéos |
Découvrez cette vidéo de John Hammond sur le backdooring de Cursor AI avec Loki C2 ! 🎩
Découvrez cette vidéo de Simon Exley & Clinton Elves pour démarrer avec Loki C2 ! 🧙♂️
Toutes les commandes de l'agent sont écrites en Node.JS natif et ne nécessitent pas de dépendances supplémentaires ni de chargements de bibliothèques. À l'exception des commandes scexec et assembly qui effectuent un chargement de bibliothèque sur keytar.node et assembly.node
/, les \ dans les chemins ne fonctionneront pas.| Commande | Description |
|---|---|
help | Afficher l'aide. Utilisation : help ou help scan |
pwd | Afficher le répertoire de travail |
ls | Lister les fichiers et répertoires |
cat | Afficher le contenu d'un fichier |
env | Afficher les variables d'environnement du processus |
spawn | Lancer un processus enfant |
drives | Lister les lecteurs |
mv | Déplacer un fichier vers une nouvelle destination |
sleep | Mettre en pause pendant des secondes avec jitter |
cp | Copier un fichier source vers une destination |
exit-all | Quitte l'agent, l'agent ne rappellera plus |
load | Charger un fichier PE Node depuis le disque dans le processus |
scexec | Exécuter du shellcode |
assembly | Exécuter un assembly .NET et obtenir la sortie de la commande |
upload | Téléverser un fichier depuis la machine locale de l'opérateur vers la machine distante de l'agent |
download | Télécharger un fichier depuis la machine distante de l'agent vers la machine locale de l'opérateur |
scan | Effectuer un scan réseau TCP sur une plage CIDR avec les ports sélectionnés |
dns | Résolution DNS. Utilise la configuration DNS du système |
set | Définir les chemins de chargement Node pour les nœuds assembly et scexec |
bof | Exécuter un fichier COFF et renvoyer la sortie |
Set - Chargement des fichiers .node depuis les chemins d'exclusion du contrôle d'applications.node, vous pouvez utiliser la commande set pour modifier les chemins de chargement de assembly.node et scexec.node.ls, cat, cp et mv, vous pourrez peut-être énumérer les règles de contrôle d'applications afin de découvrir un répertoire inscriptible constituant une exclusion..node dans le répertoire d'exclusion et utiliser la commande set pour modifier leur chemin de chargement vers le répertoire d'exclusion afin de contourner le contrôle d'applications.[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