Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
Loki — 🧙‍♂️ Comando e Controllo Node.js per Script-Jacking di Applicazioni Electron Vulnerabili | Kitploit
Strumenti/GitHubGitHub/boku7/loki
Meccanismi di PersistenzaExploitEvasione IDS/IPSShellcodePost-ExploitCommand and ControlRed TeamingSviluppo Payload
GitHubboku7/loki

Loki

🧙‍♂️ Comando e Controllo Node.js per Script-Jacking di Applicazioni Electron Vulnerabili

Vedi Repository
1.4k2204 mesi faRevisionato da Kitploit

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

🧙‍♂️ Loki Comando e Controllo

Loki è un framework di comando e controllo (C2) di stage-1 scritto in Node.js, progettato per eseguire script-jacking su app Electron vulnerabili MITRE ATT&CK T1218.015. Sviluppato per operazioni di red team, Loki consente di eludere i software di sicurezza e bypassare i controlli delle applicazioni sfruttando app Electron fidate e firmate.

Lo script-jacking dirotta il flusso di esecuzione di un'app Electron modificando i file JavaScript caricati in runtime con codice Node.js arbitrario. Questa tecnica può essere utilizzata per:

  • Backdoorare un'app Electron
  • Svuotare un'app Electron
  • Concatenare l'esecuzione a un altro processo

Sebbene diversi strumenti affrontino già l'uso dello script-jacking per concatenare l'esecuzione a un altro processo, Loki è il primo a consentire il backdooring e lo svuotamento di app Electron firmate senza invalidare la loro firma di code signing.

Per maggiori dettagli su come funziona Loki, dai un'occhiata a questo post del blog:

  • Bypassing Windows Defender Application Control with Loki C2

🚀 Contributori

NomeContributi
Bobby CookeCreatore e maintainer
Dylan TranCreatore
Ellis SpringeAlpha Tester
Shawn JonesCodice di esecuzione Assembly
Trusted SecCodice COFFLoader
Simon ExleyCreatore di video
Clinton ElvesCreatore di video
John HammondCreatore di video

Video

Dai un'occhiata a questo video di John Hammond sul backdooring di Cursor AI con Loki C2! 🎩

  • Nel video mostra la scoperta di una nuova applicazione Electron vulnerabile, il backdooring con Loki C2, la configurazione della GUI client, e abbiamo persino trovato due modi per mantenere l'app in esecuzione in modo persistente in background 🪄 -- Cursor funziona normalmente dal punto di vista dell'utente finale! 🥷

Ho backdoorato Cursor AI

Dai un'occhiata a questo video di Simon Exley & Clinton Elves su come iniziare a usare Loki C2! 🧙‍♂️

Bypassare Windows Defender Application Control con Loki C2

Caratteristiche e Dettagli

  • Canale C2 Azure Storage Blob
    • Token SAS per proteggere l'account di storage C2
  • Messaggi C2 crittografati AES
  • Agent proxy-aware
    • Utilizza i processi figli del renderer Chromium per l'agent, l'esecuzione di shellcode e l'esecuzione in stile fork-n-run degli assembly -- eredita le capacità proxy-aware di Chromium.
  • Senza Teamserver
    • A differenza dei C2 tradizionali in cui gli agent inviano messaggi a un Teamserver, qui non esiste un Teamserver
    • Sia la GUI client che gli agent effettuano il check-in nello stesso data-store
  • Esecuzione nascosta -- gira in background

Comandi

Tutti i comandi dell'agent sono scritti in Node.JS nativo e non richiedono dipendenze aggiuntive o eventi di caricamento librerie. Fanno eccezione i comandi scexec e assembly che eseguono un caricamento delle librerie keytar.node e assembly.node

  • Tutti i comandi accettano percorsi usando /, \ nei percorsi non funzionerà.

Set - Caricamento dei nodi dai percorsi di esclusione dell'Application Control

  • Se ci sono regole di application control che impediscono il caricamento delle librerie per i file node, puoi usare il comando set per cambiare i percorsi di caricamento di assembly.node e scexec.node.
  • Usando ls, cat, cp e mv potresti essere in grado di enumerare le regole di application control per scoprire una directory scrivibile che sia un'esclusione.
  • In questo modo puoi inserire i file node nella directory di esclusione e usare il comando set per cambiare il loro percorso di caricamento verso la directory di esclusione, bypassando così l'application control.
  • Per maggiori dettagli su questo vettore di attacco, consulta il corso CRTO2 di 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

Funzionalità dell'Agent

Per maggiori informazioni sulle funzionalità dell'Agent clicca qui

Funzionalità del Client

Per maggiori informazioni sulle funzionalità del Client clicca qui

🧙‍♂️ Distribuire Illusioni

Innanzitutto devi identificare un'applicazione Electron vulnerabile che non esegue controlli di integrità ASAR, come Microsoft Teams. Le applicazioni più recenti possono avere controlli di integrità che impediscono il backdooring. Le versioni precedenti dell'app target hanno maggiori probabilità di essere vulnerabili.

  • Guida per scoprire app Electron vulnerabili

Istruzioni Semplici

Non è necessario compilare l'agent quando si esegue il backdooring di app Electron. Basta sostituire il contenuto di {ELECTRONAPP}/resources/app/ con i file dell'agent Loki.

Istruzioni Dettagliate

Passo 1 : Creare un account Azure Storage Blob e ottenere il token SAS

  • Crea un account Azure Storage tramite il portale Azure
  • Crea un account Azure Storage tramite Azure CLI

Passo 2 : Creare il payload Loki offuscato

  • Clona questa repo ed esegui cd al suo interno
  • Installa Node.JS
  • Installa il modulo javascript-obfuscator
root@kitploit:~
npm install --save-dev javascript-obfuscator
  • Esegui lo script create_agent_payload.js per creare un payload Loki con le informazioni del tuo account di storage
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

Passo 3 : Backdoorare l'applicazione Electron

  • Il tuo payload Loki offuscato viene generato in ./app/
  • Portati nella directory {ELECTRONAPP}/resources/
  • Elimina tutto
  • Copia la cartella ./app/ di Loki in {ELECTRONAPP}/resources/app/
  • Fai clic sul file PE Electron e assicurati che Loki funzioni

Passo 4 : Configurare il client Loki

  • Avvia la GUI client di Loki

  • Dalla barra dei menu fai clic su Loki Client > Configuration per aprire la finestra delle impostazioni

  • Inserisci i dettagli del tuo account di storage e fai clic su Save

  • L'agent dovrebbe ora apparire nella dashboard

  • Fai clic sull'agent nella tabella della dashboard per aprire la finestra dell'agent

  • Verifica che Loki funzioni correttamente

Backdoorare le app Electron mantenendo l'applicazione reale funzionante normalmente

Il modo più semplice per usare Loki è sostituire i file in {ELECTRONAPP}/resources/app/ con i file di Loki. Questo svuota l'app, il che significa che l'app non funzionerà normalmente -- Loki ha sostituito la sua funzionalità.

Se vuoi davvero mantenere in esecuzione l'applicazione Electron e far sì che distribuisca anche Loki in background, non tutto è perduto! Io e John Hammond abbiamo trovato un modo per mantenere in esecuzione la vera applicazione Electron. Abbiamo aggiunto il file di cui avrai bisogno in /loki/backdoor/init.js in questa repo.

Attualmente è configurato per funzionare con Cursor, scoperta come vulnerabile da John Hammond.

Per fare questo avrai bisogno di:

  • Scarica l'app Cursor
  • Incolla tutti i file di Loki tranne package.json in cursor/resources/app/
    • Non sostituire il package.json originale
  • Copia /loki/backdoor/init.js in cursor/resources/app/
  • Modifica il contenuto di cursor/resources/app/package.json in modo da:
    • impostare "main":"init.js",
    • eliminare "type":"module",
    • eliminare "private":true,

Come funziona

  • Con queste modifiche, Cursor.exe caricherà init.js al clic / all'esecuzione
  • init.js legge package.json
  • init.js cambia "main":"init.js", in "main":"main.js",
    • main.js è Loki
  • init.js avvia e disowna un nuovo Cursor.exe che punta a Loki
  • Loki viene avviato in background
  • init.js legge di nuovo package.json
  • init.js cambia "main":"main.js", in

In questo modo l'app è persistentemente backdoorata e funziona normalmente. Se l'app Cursor viene chiusa, Loki continuerà a girare in background.

Futuro

In futuro creerò uno script per automatizzare tutto questo.

Raccomandazioni OPSEC

  • Raccomandazioni OPSEC

Guide di Compilazione

Queste sono le istruzioni di compilazione per creare agent e client. Le istruzioni coprono più piattaforme, tra cui Windows, Linux e macOS. Si consiglia di compilare il client sulla piattaforma e architettura di destinazione.

Client

  • Windows
  • macOS
  • Linux

Agent

Se stai eseguendo il backdooring di un'applicazione Electron, non hai bisogno di compilare gli agent.

Non consiglio di compilare l'agent e usarlo per le operazioni. Le istruzioni di compilazione dell'agent sono per lo sviluppo.

  • Windows
  • Linux
  • macOS

Linee Guida per la Rilevazione

  • Consulta le informazioni fornite da MITRE per maggiori dettagli, esempi e informazioni su questa TTP:
    • MITRE ATT&CK T1218.015: Electron Applications
  • Esecuzione di un'app Electron da una directory anomala come ~/Downloads/Teams/Teams.exe
  • App Electron che effettuano beaconing verso un Azure Storage Blob *.blob.core.windows.net
  • Utilizzo di token SAS nel traffico di rete
  • App Electron che generano processi figli come netstat.exe o whoami.exe
  • Una directory con il nome presente nel package.json di Loki verrà creata in ~/AppData/Roaming/{NAME} quando il JavaScript di Loki viene eseguito nel processo Electron.
  • Questa voce LOLBAS Teams copre le rilevazioni per il backdooring delle applicazioni Electron. Le informazioni di rilevazione sono riportate di seguito.
  • IOC: directory %LOCALAPPDATA%\Microsoft\Teams\current\app creata
  • IOC: file %LOCALAPPDATA%\Microsoft\Teams\current\app.asar creato/modificato da un installer/updater non-Teams
  • Regola SIGMA per rilevare un canale C2 Loki stabilito da un'app Electron

Riferimenti || Ringraziamenti || Ricerca Offensiva su Electron

  • Dylan Tran (@d_tranman)
    • Co-creatore dell'agent Loki. Ha creato i moduli node per l'esecuzione di shellcode e assembly.
  • Valentina Palmiotti (@chompie1337), Ellis Springe (@knavesec), e Ruben Boonen per il loro precedente lavoro interno sul backdooring delle applicazioni Electron per la persistenza
  • Ruben Boonen
    • Talk al Wild West Hackin’ Fest Statikk Shiv: Sfruttare le applicazioni Electron per il post-exploitation
  • Andrew Kisliakov
    • Microsoft Teams e altre app Electron come LOLbin
  • Shawn Jones
    • Per l'esecuzione assembly di Loki, Dylan ha portato il codice pubblico InlineExecute-Assembly di Shawn
  • mr.d0x (@mrd0x) per il suo precedente lavoro sullo sfruttamento dell'applicazione Electron di Teams per eseguire codice Node.JS arbitrario e per aver pubblicato i suoi risultati nel progetto LOLBAS.
  • Michael Taggart
    • progetto quASAR, uno strumento progettato per modificare le applicazioni Electron per abilitare l'esecuzione di comandi
    • Quasar: Compromettere le app Electron
  • Raphael Mudge per avermi ispirato a immergermi nel red teaming e per aver supportato il rilascio di questo strumento
    • The Security Conversation
  • Fletcher Davis
    • BSides: Abusare delle applicazioni Electron

Licenza

Questo progetto è concesso in licenza secondo la Business Source License 1.1. L'uso non commerciale è consentito secondo i termini della licenza. L'uso commerciale richiede il permesso esplicito dell'autore. Il 3 aprile 2030 questa licenza si convertirà in Apache 2.0. Consulta LICENSE per tutti i dettagli.

Scarica lo strumento
ComandoDescrizione
helpMostra l'aiuto. Utilizzo: help o help scan
pwdStampa la directory di lavoro
lsElenco di file e directory
catMostra il contenuto di un file
envMostra le variabili d'ambiente del processo
spawnAvvia un processo figlio
drivesElenca le unità
mvSposta un file in una nuova destinazione
sleepSospendi per secondi con jitter
cpCopia un file sorgente in una destinazione
exit-allTermina l'agent, l'agent non farà più callback
loadCarica un file PE node dal disco nel processo
scexecEsegui shellcode
assemblyEsegui un assembly .NET e ottieni l'output del comando
uploadCarica un file dalla tua macchina operatore locale alla macchina agent remota
downloadScarica un file dalla macchina agent remota alla macchina operatore locale
scanEsegue una scansione di rete TCP su un intervallo CIDR con le porte selezionate
dnsRisoluzione DNS. Sfrutta la configurazione DNS di sistema
setImposta i percorsi di caricamento Node per i nodi assembly e scexec
bofEsegue un file COFF e restituisce l'output
"main":"./out/main.js",
  • ./out/main.js è la vera applicazione Cursor
  • init.js avvia e disowna un nuovo Cursor.exe che punta al vero Cursor
  • La vera app Cursor viene avviata, visibile e funziona normalmente
  • Quando Cursor viene chiuso dall'utente:
    • init.js intercetta l'uscita
    • init.js legge package.json per la terza volta
    • init.js cambia "main":"./out/main.js", in "main":"init.js",
  • Regola SIGMA per rilevare il dirottamento della cartella app di Electron (Teams, VS Code, RingCentral, Postman) per caricare un framework C2
  • Pavel Tsakalidis
    • BEEMKA - Electron Exploitation Toolkit