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
Empire — Empire è un agente di post-exploitation in PowerShell e Python. | Kitploit
Strumenti/GitHubGitHub/empireproject/empire
Escalation di PrivilegiGenerazione di PayloadMeccanismi di PersistenzaExploitMovimento LateralePost-ExploitPenetration TestingCommand and ControlRed TeamingArchived
GitHubempireproject/empire

Empire

7.9k2.9k6 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

Empire è un agente di post-exploitation in PowerShell e Python.

Vedi RepositorySito web

Invoke-Obfuscation v1.8

Invoke-Obfuscation Screenshot

Introduzione

Invoke-Obfuscation è un offuscatore di comandi e script PowerShell compatibile con PowerShell v2.0+.

Background

Nell'autunno del 2015 ho deciso di iniziare a ricercare la flessibilità del linguaggio di PowerShell e ho iniziato a catalogare i vari modi per realizzare una manciata di tecniche comuni che la maggior parte degli attaccanti utilizza regolarmente.

Inizialmente concentrandomi sulle sintassi di comando codificato e di download remoto (remote download cradle), ho scoperto che vari caratteri di escape che non ostacolavano l'esecuzione del comando persistevano negli argomenti della riga di comando, sia nel processo in esecuzione sia in ciò che viene registrato nei log di sicurezza EID 4688 e Sysmon EID 1. Questo mi ha portato a esplorare sistematicamente i modi per offuscare ogni tipo di "token" presente in qualsiasi comando o script PowerShell.

Ho quindi esplorato modi più oscuri per eseguire l'offuscamento a livello di stringa, varie tecniche di codifica/cifratura (come ASCII/hex/ottale/binario e persino SecureString) e infine tecniche di lancio di PowerShell per astrarre gli argomenti della riga di comando da powershell.exe e spingerli al processo padre e persino al nonno.

Scopo

Gli attaccanti e i malware commodity hanno iniziato a utilizzare tecniche di offuscamento estremamente semplici per nascondere la maggior parte del comando dagli argomenti della riga di comando di powershell.exe. Ho sviluppato questo strumento per aiutare il Blue Team a simulare comandi offuscati basati su ciò che attualmente so essere sintatticamente possibile in PowerShell 2.0-5.0, in modo che possano testare le loro capacità di rilevamento di queste tecniche.

L'unico scopo dello strumento è rompere qualsiasi presupposto che noi difensori possiamo avere su come i comandi PowerShell possano apparire sulla riga di comando. La mia speranza è che incoraggi il Blue Team a passare alla ricerca di Indicatori di Offuscamento sulla riga di comando, oltre ad aggiornare la registrazione di PowerShell per includere la registrazione di Moduli, ScriptBlock e Trascrizione, poiché queste fonti semplificano la maggior parte degli aspetti delle tecniche di offuscamento generate da questo strumento.

Utilizzo

Sebbene tutti i livelli di offuscamento siano stati sviluppati in script separati, la maggior parte degli utenti troverà la funzione Invoke-Obfuscation il modo più semplice per esplorare e visualizzare le tecniche di offuscamento attualmente supportate da questo framework.

Installazione

Il codice sorgente per Invoke-Obfuscation è ospitato su Github e puoi scaricarlo, biforcarlo e revisionarlo da questo repository (https://github.com/danielbohannon/Invoke-Obfuscation). Segnala problemi o richieste di funzionalità tramite il bug tracker di Github associato a questo progetto.

Per installare:

root@kitploit:~
Import-Module ./Invoke-Obfuscation.psd1
Invoke-Obfuscation

Licenza

Invoke-Obfuscation è rilasciato sotto licenza Apache 2.0.

Note di rilascio

v1.0 - 2016-09-25 DerbyCon 6.0 (Louisville, Kentucky USA): Rilascio PUBBLICO di Invoke-Obfuscation.

v1.1 - 2016-10-09 SANS DFIR Summit (Prague, Repubblica Ceca): Aggiunta funzionalità di riordino dell'operatore di formato -f a tutte le funzioni di offuscamento TOKEN applicabili. Aggiunte anche ulteriori opzioni di sintassi per l'impostazione dei valori delle variabili.

v1.2 - 2016-10-20 CODE BLUE (Tokyo, Giappone): Aggiunto offuscamento del TOKEN Type (cast diretto del tipo con opzioni di offuscamento delle stringhe per il nome del tipo).

v1.3 - 2016-10-22 Hacktivity (Budapest, Ungheria): Aggiunti due nuovi LAUNCHER: CLIP+ e CLIP++. Aggiunta anche una sintassi di conversione di array di caratteri aggiuntiva (e più semplice) per tutte le funzioni ENCODING che non richiede For-EachObject/%.

v1.4 - 2016-10-28 BruCON (Ghent, Belgio): Aggiunta nuova funzione ENCODING BXOR. Migliorata anche la randomizzazione delle maiuscole/minuscole per tutti i componenti di tutte le funzioni ENCODING e per i flag di esecuzione di PowerShell per tutti i LAUNCHER. Infine, aggiunta l'opzione abbreviata -EP per -ExecutionPolicy a tutti i LAUNCHER, nonché la rappresentazione intera opzionale del flag di esecuzione di PowerShell -WindowStyle: Normal (0), Hidden (1), Minimized (2), Maximized (3).

v1.5 - 2016-11-04 Blue Hat (Redmond, Washington USA): Aggiunto LAUNCHER WMIC con una certa randomizzazione degli argomenti della riga di comando di WMIC.

v1.6 - 2017-01-24 Blue Hat IL (Tel Aviv, Israele):

  • Aggiunta funzionalità CLI: Esempio: Invoke-Obfuscation -ScriptBlock {Write-Host 'CLI FTW!'} -Command 'Token\All\1, Encoding\1,Launcher\Stdin++\234,Clip' -Quiet -NoExit
  • Aggiunta funzionalità UNDO per rimuovere uno strato di offuscamento alla volta.
  • Rimossa l'offuscamento degli spazi bianchi da Token\All\1 per velocizzare l'offuscamento di script grandi.
  • Aggiunto output dell'albero degli argomenti del processo per tutti i launcher per aiutare i difensori.
  • Aggiunta funzionalità di rilevamento automatico del menu di base per evitare di dover usare BACK o HOME: Esempio: se hai eseguito TOKEN poi ALL poi 1, basta digitare LAUNCHER e arriverai al menu LAUNCHER senza dover digitare HOME o BACK per tornare al menu principale.
  • Aggiunta sintassi multi-comando utilizzata dalla CLI e dalla modalità interattiva: Esempio: Token\All\1,String\3,Encoding\5,Launcher\Ps\234,Clip
  • Aggiunta capacità regex a tutti i comandi di menu e offuscamento: Esempio: Token**,String[13],Encoding(1|6),Launcher.*[+]{2}\234,Clip
  • Aggiunta funzionalità di comando singolo OUT FILEPATH.
  • Aggiunta decodifica se la sintassi powershell -enc viene inserita come valore SCRIPTBLOCK.
  • Aggiunta l'alias ForEach alle opzioni di sintassi randomizzate ForEach-Object/% in tutte le funzioni ENCODING.
  • Aggiunte opzioni di sintassi di sottostringa -Key -Ke -K KEY a Out-SecureStringCommand.ps1.
  • Aggiunta randomizzazione più accurata delle maiuscole/minuscole a tutte le funzioni di offuscamento \Home\String.
  • Aggiunti flag -ST/-STA (Single-Threaded Apartment) alle funzioni launcher CLIP+ e CLIP++ poiché sono necessari se eseguiti su PowerShell 2.0.
  • Aggiunta sintassi Get-Item/GI/Item ovunque venga utilizzato Get-ChildItem per ottenere valori di variabili.
  • Aggiunta sintassi di istanziazione di variabili Set-Item alla funzione di offuscamento TYPE.
  • Aggiunta sintassi aggiuntiva per Invoke-Expression/IEX utilizzando variabili automatiche di PowerShell e concatenazioni di valori di variabili d'ambiente in Out-ObfuscatedStringCommand.ps1's Out-EncapsulatedInvokeExpression e copiata a tutti i launcher, funzioni STRING e ENCODING per aggiungere numerose sintassi di riga di comando per IEX.
  • Aggiunte due nuove sintassi JOIN per String\Reverse e tutte le opzioni di offuscamento ENCODING:
  1. Aggiunta sintassi JOIN [String]::Join('',$string)
  2. Aggiunta sintassi JOIN con variabile OFS (Output Field Separator automatic variable)
  • Aggiunte altre due sintassi SecureString per Encoding\5:
  1. PtrToStringAnsi / SecureStringToGlobalAllocAnsi
  2. PtrToStringBSTR / SecureStringToBSTR
  • Aggiunte sei sintassi alternative GetMember per diversi membri di SecureString:
  1. PtrToStringAuto, ([Runtime.InteropServices.Marshal].GetMembers()[3].Name).Invoke
  2. PtrToStringAuto, ([Runtime.InteropServices.Marshal].GetMembers()[5].Name).Invoke
  3. PtrToStringUni , ([Runtime.InteropServices.Marshal].GetMembers()[2].Name).Invoke
  4. PtrToStringUni , ([Runtime.InteropServices.Marshal].GetMembers()[4].Name).Invoke
  5. PtrToStringAnsi, ([Runtime.InteropServices.Marshal].GetMembers()[0].Name).Invoke
  6. PtrToStringAnsi, ([Runtime.InteropServices.Marshal].GetMembers()[1].Name).Invoke
  • Aggiornato Out-ObfuscatedTokenCommand.ps1 in modo che l'offuscamento VARIABLE non incapsuli variabili in ${} se già incapsulate (così ${${var}} non accadrà più, poiché causa errori).
  • Sostituito Invoke-Obfuscation.psm1 con Invoke-Obfuscation.psd1 (grazie @Carlos_Perez).
  • Risolti diversi bug di offuscamento a livello TOKEN segnalati da @cobbr_io e @IISResetMe.

v1.7 - 2017-03-03 nullcon (Goa, India):

  • Aggiunti 3 nuovi LAUNCHER: RUNDLL, RUNDLL++ e MSHTA++
  • Aggiunte stringhe aggiuntive di variabili wildcard ExecutionContext

v1.8 - 2017-07-27 Black Hat (Las Vegas, Nevada USA):

  • Aggiunte 2 nuove opzioni ENCODING: Caratteri Speciali e Spazi Bianchi
Scarica lo strumento