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

Invoke-Obfuscation è un offuscatore di comandi e script PowerShell compatibile con PowerShell v2.0+.
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.
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.
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.
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:
Import-Module ./Invoke-Obfuscation.psd1
Invoke-Obfuscation
Invoke-Obfuscation è rilasciato sotto licenza Apache 2.0.
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):
v1.7 - 2017-03-03 nullcon (Goa, India):
v1.8 - 2017-07-27 Black Hat (Las Vegas, Nevada USA):