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
Strumenti/GitHubGitHub/0xthirteen/movekit
Framework di ExploitMovimento LateralePost-ExploitPenetration TestingRed Teaming
GitHub0xthirteen/movekit

MoveKit

Cobalt Strike kit per Lateral Movement

Vedi Repository
67810816 anni 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

MoveKit - Kit di movimento laterale per Cobalt Strike

MoveKit è un'estensione del movimento laterale integrato di Cobalt Strike che sfrutta la funzione execute_assembly con gli assembly .NET SharpMove e SharpRDP. Lo script aggressor gestisce la creazione del payload leggendo i file template per uno specifico tipo di esecuzione.

IMPORTANTE: Per utilizzare lo script, un utente deve solo caricare lo script aggressor MoveKit.cna che caricherà automaticamente tutti gli altri script necessari. Inoltre, a seconda delle azioni intraprese, gli assembly SharpMove e SharpRDP dovranno essere compilati e inseriti nella directory Assemblies. Infine, alcune operazioni di spostamento file richiedono una compilazione dinamica che necessita di Mono.

Quando si carica lo script aggressor, verrà caricato un selettore nella menubar chiamato Move. Sono disponibili varie selezioni. In primo luogo, gli utenti possono eseguire un comando su un sistema remoto tramite WMI, DCOM, Task Scheduler, RDP o SCM. In secondo luogo, c'è il meccanismo di esecuzione Command che utilizza download cradles per recuperare ed eseguire i file. In terzo luogo, il metodo File rilascia un file sul sistema e lo esegue. C'è anche Write File Only che non esegue nulla, ma solo trasferisce dati. Infine, c'è un'impostazione Default per rendere più veloce l'uso dell'interfaccia grafica e utilizzabile con i comandi beacon. Le impostazioni predefinite vengono utilizzate per tutto ciò che può accettare un valore predefinito.

Per utilizzare i comandi beacon, lo script legge le impostazioni predefinite e utilizza alcuni argomenti da riga di comando. Un esempio di comando beacon: <exec-type> <target> <listener> <filename>

move-msbuild 192.168.1.1 http move.csproj

Inoltre, il comando beacon personalizzato predefinito è leggermente diverso. Esempio di comando: move-pre-custom-file <target> <local-file> <remote-filename>

move-pre-custom-file computer001.local /root/payload.exe legit.exe

Il campo location è la parte più complessa del progetto. Quando si seleziona lo spostamento file tramite WMI, verrà utilizzato location; se viene selezionato SMB, non verrà utilizzato (quindi può essere lasciato vuoto). Location accetta tre diversi valori. In primo luogo, se location è un URL, al momento della creazione del payload questo verrà hosted dal server web di Cobalt Strike. L'host beacon da cui verrà eseguito l'assembly effettuerà una richiesta web all'URL per recuperare il file, che verrà utilizzato in un event sub sull'host di destinazione per scrivere il file. In secondo luogo, se location è una directory di Windows, caricherà il file creato sull'host beacon e l'assembly lo leggerà dal filesystem e lo memorizzerà nell'event sub per scriverlo sull'host remoto. Infine, se il campo location è un percorso Linux o la parola local, compilerà dinamicamente il payload nell'assembly in esecuzione. Tuttavia, se il file supera il limite di dimensione di 1MB, verrà mostrato un errore.

Per tutti i metodi file, il payload verrà creato tramite lo script aggressor. Tuttavia, se un payload è già stato creato, gli utenti possono selezionare l'opzione Custom (Prebuilt) per spostarlo ed eseguirlo.

Il kit contiene diverse tecniche di spostamento file, trigger di esecuzione e tipi di payload.

Lo spostamento file è il metodo utilizzato per inviare un file a un host remoto. Tipi di spostamento file:

  • SMB su file flat
  • WMI su file flat
  • WMI su valore di chiave di registro
  • WMI su proprietà personalizzata di classe WMI

Il trigger di comando è il metodo utilizzato per eseguire un comando specifico su un host remoto. Tipi di trigger di comando:

  • WMI
  • SCM
  • RDP
  • DCOM (multi)
  • Attività pianificate
  • Modifica attività pianificata (l'attività esistente viene aggiornata nell'azione, viene eseguita e poi ripristinata)
  • Modifica binpath di servizio (il servizio esistente viene aggiornato nel binpath, viene avviato e poi ripristinato allo stato originale)

Esecuzione solo shellcode:

  • Excel 4.0 DCOM
  • Sottoscrizione evento WMI (in arrivo)

Hijack:

  • Hijack DLL di servizio (in arrivo)
  • Hijack server DCOM (in arrivo)

Dipendenze

  • Mono (MCS) per compilare assembly .NET (usato con creazione dinamica del payload, InstallUtil e Custom-NonPreBuilt). Anche quando si utilizza l'assembly FileWrite.

Problemi noti:

  • A volte execute_assembly viene chiamato prima dello spostamento file; se ciò accade, è possibile eseguire il payload deselezionando la casella Auto
  • Il kit non pulisce automaticamente i file; è lasciato all'operatore
Nota: Si consiglia di non utilizzare i template predefiniti con il progetto.

Per sostituire un template, è necessario soddisfare due requisiti. In primo luogo, il template deve essere denominato in base alla tecnica (esempio: msbuild.csproj). In secondo luogo, il codice sorgente deve contenere la stringa $$PAYLOAD$$ dove verrà inserito lo shellcode codificato in base64 e deve essere in grado di convertire una stringa base64 in un array di byte. Esempio per C#:

root@kitploit:~
string strSC = "$$PAYLOAD$$";
byte[] sc = Convert.FromBase64String(strSC);

È stata aggiunta una modifica che consente ai valori predefiniti di aggiornare la 'stringa di ricerca e sostituzione' e i formati dello shellcode nella finestra 'Aggiorna impostazioni predefinite'. Per impostazione predefinita sono $$PAYLOAD$$ e base64.

Considerazioni operative

  • Se si utilizza Task Scheduler, le attività pianificate verranno create ed eliminate
  • Se si utilizza SCM, i servizi verranno creati ed eliminati
  • Se si utilizza il bypass AMSI, funzionerà solo per WSH, non per PowerShell
  • Se si utilizza il bypass AMSI, modificherà il registro aggiornando o creando una chiave di registro e poi ripristinandola al valore originale o eliminando
  • Utilizza la funzione execute-assembly di Cobalt Strike, quindi si inietterà in un processo sacrificale come altri post-ex jobs
  • I file verranno depositati su disco se si utilizza uno dei metodi File o Command
  • I template non dovrebbero essere utilizzati, sono tutti pubblici
  • Tutte le tecniche non sono nuove e sono abbastanza note

Crediti

Parte del codice, dei template o dell'ispirazione proviene da altre persone e progetti

  • WMI - SharpWMI di harmj0y
  • DCOM - SharpCOM di rvrsh3ll e SharpSploit DCOM di cobbr
  • SCM - CSExec di Tim Malcomvetter
  • Hijack DLL di servizio SharpSC di djhohnstein
  • Modifica binpath servizio SCShell di Mr-Un1k0d3r
  • Template esecutore shellcode di subTee
  • Payload CACTUSTORCH di vysecurity

Probabilmente ci sono bug da qualche parte, tendono a saltare fuori di tanto in tanto. Segnalateli e li risolverò.

Scarica lo strumento