
Invoke-ArgFuscator is an open-source, cross-platform PowerShell module that helps generate obfuscated command-lines for common system-native executables.
░█░█▄░█░█▒█░▄▀▄░█▄▀▒██▀░▒░ ▄▀▄▒█▀▄░▄▀▒▒█▀░█▒█░▄▀▀░▄▀▀▒▄▀▄░▀█▀░▄▀▄▒█▀▄░ ░█░█▒▀█░▀▄▀░▀▄▀░█▒█░█▄▄░▀▀░█▀█░█▀▄░▀▄█░█▀░▀▄█▒▄██░▀▄▄░█▀█░▒█▒░▀▄▀░█▀▄░
Invoke-ArgFuscator è un modulo PowerShell open-source e multipiattaforma che aiuta a generare righe di comando offuscate per comuni eseguibili nativi di sistema su Windows, Linux e macOS.
👉 Usa la versione interattiva di ArgFuscator su ArgFuscator.net 🚀
L'offuscamento della riga di comando (T1027.010) è il mascheramento della reale intenzione di un comando attraverso la manipolazione della riga di comando di un processo. Su Windows, Linux e macOS, molte applicazioni interpretano gli argomenti passati sulla riga di comando in modi inaspettati, portando a situazioni in cui l'inserimento, la rimozione e/o la sostituzione di determinati caratteri non modifica il flusso di esecuzione del programma. Un offuscamento efficace della riga di comando può ostacolare le misure difensive come i software AV ed EDR, in alcuni casi aggirando completamente il rilevamento.
Sebbene ricerche precedenti abbiano evidenziato i rischi dell'offuscamento della riga di comando, principalmente con esempi aneddotici di applicazioni vulnerabili (native di sistema), esiste un vuoto di conoscenza su questa tecnica. Questo progetto mira a colmare questa lacuna fornendo una risorsa centralizzata che documenta e dimostra varie tecniche di offuscamento della riga di comando e registra la suscettibilità delle applicazioni più diffuse per ciascuna.
Questo modulo funziona su qualsiasi sistema operativo che supporti PowerShell/pwsh; questo include Windows, macOS e Linux.
brew è preinstallato, eseguire brew install powershell/tap/powershell per installare l'ultima versione di PowerShell. Per opzioni di installazione alternative, fare riferimento alla documentazione di Microsoft.Il modo più semplice per installare questo modulo è tramite il seguente comando PowerShell:
Install-Module -Name Invoke-ArgFuscator
Per usare il modulo, chiamare la funzione Invoke-ArgFuscator da PowerShell, ad esempio:
a. Per passare come argomento della riga di comando una riga di comando che si desidera offuscare (supponendo che sia supportata da ArgFuscator.net):
# Windows
powershell /c "Invoke-ArgFuscator -Command 'certutil /f /urlcache https://www.example.org/ homepage.txt'"
# macOS and Linux
pwsh -c "Invoke-ArgFuscator -Command 'certutil /f /urlcache https://www.example.org/ homepage.txt'"
b. Per usare i propri file modello1:
# Windows
powershell /c "Invoke-ArgFuscator -InputFile path\to\file.json"
# macOS and Linux
pwsh -c "Invoke-ArgFuscator -InputFile path/to/file.json"
Clonare questo repository sul proprio dispositivo.
Chiamare Invoke-ArgFuscator.ps1 tramite PowerShell, ad esempio:
a. Per eseguire in modalità interattiva, passare il percorso di un file modello1 tramite l'input standard (stdin):
# Windows
powershell .\Invoke-ArgFuscator.ps1
# macOS and Linux
pwsh ./Invoke-ArgFuscator.ps1
b. Per passare il percorso del file modello1 come argomento della riga di comando:
# Windows
powershell .\Invoke-ArgFuscator.ps1 -InputFile "path\to\file.json"
# macOS and Linux
pwsh ./Invoke-ArgFuscator.ps1 -InputFile "path/to/file.json"
c. Per passare come argomento della riga di comando una riga di comando che si desidera offuscare:
Nota: questo richiede che la cartella models/ sia presente nella stessa cartella di Invoke-ArgFuscator.ps1.
# Windows
powershell .\Invoke-ArgFuscator.ps1 -Command "certutil /f /urlcache https://www.example.org/ homepage.txt"
# macOS and Linux
pwsh ./Invoke-ArgFuscator.ps1 -Command "certutil /f /urlcache https://www.example.org/ homepage.txt"
Poiché Invoke-ArgFuscator è un modulo PowerShell, puoi aggiungere le funzionalità di questo progetto al tuo progetto PowerShell.
Per sfruttare Invoke-ArgFuscator, aggiungi
Import-Module Invoke-ArgFuscator
al tuo file PowerShell e chiamalo in uno dei seguenti modi:
Invoke-ArgFuscator -InputFile $InputFile -n $n
Invoke-ArgFuscator -Command $Command -Platform $Platform -n $n
con
$InputFile una string contenente un percorso di file (relativo/assoluto) al file modello, $Profile un intero maggiore o uguale a 0 che rappresenta l'indice del profilo all'interno del percorso file fornito da selezionare (opzionale), e $n un integer maggiore di 0 per il numero di equivalenti di riga di comando offuscata che dovrebbero essere prodotti (opzionale); oppure,$Command una string contenente la riga di comando che si desidera offuscare, $Platform una string con la piattaforma pertinente (ad es. windows, opzionale), e $n un integer maggiore di 0 per il numero di equivalenti di riga di comando offuscata che dovrebbero essere prodotti (opzionale).Queste possono essere generate tramite ArgFuscator.net con l'opzione 'Download', oppure scaricate da GitHub. ↩ ↩2 ↩3