
Generatore e Offuscatore di PowerShell Remote Download Cradle

Invoke-CradleCrafter è un generatore e offuscatore di cradle per download remoti di PowerShell compatibile con PowerShell v2.0+.
Nell'autunno del 2016, dopo aver rilasciato Invoke-Obfuscation, ho continuato ad aggiornare il mio foglio di calcolo dei cradle per download remoti di PowerShell, pensando che un giorno avrei potuto aggiungere un menu "selettore di cradle" in Invoke-Obfuscation. Questo elenco includeva cradle che mi erano oscuri, molti dei quali non venivano osservati (o non del tutto) nel mondo reale.
Tuttavia, poiché Invoke-Obfuscation è stato progettato per offuscare qualsiasi comando o script PowerShell arbitrario, ci sono alcune tecniche di offuscamento che sapevo di dover includere riguardo la costruzione di cradle personalizzati che non era fattibile includere in Invoke-Obfuscation.
Questo è stato il punto che mi ha portato a spostare questa ricerca sui cradle in un progetto separato, anche se è sempre possibile prendere l'output di Invoke-CradleCrafter e inserirlo in Invoke-Obfuscation e continuare il divertimento. Poiché Invoke-CradleCrafter è molto più controllato, mi ha permesso di includere tecniche di offuscamento completamente diverse da qualsiasi tecnica presente in Invoke-Obfuscation.
Alcune delle nuove tecniche di offuscamento in questo strumento includono l'offuscamento dei token attraverso l'enumerazione dei tipi di dati e la corrispondenza con caratteri jolly, e la riorganizzazione della struttura dei comandi introducendo variabili aggiuntive e sintassi di variabili.
Infine, lo strumento supporta 10+ sintassi di invocazione che vanno oltre le più diffuse Invoke-Expression e IEX.
Invoke-CradleCrafter esiste per aiutare i Blue Team e i Red Team a esplorare, generare e offuscare facilmente i cradle per download remoti di PowerShell. Inoltre, aiuta i Blue Team a testare l'efficacia delle rilevazioni che possono funzionare per l'output prodotto da Invoke-Obfuscation ma potrebbero essere insufficienti quando si ha a che fare con Invoke-CradleCrafter poiché non contiene concatenazioni di stringhe, codifiche, apostrofi, casting di tipo, ecc.
Un altro componente importante di questa ricerca e sviluppo dello strumento era evidenziare efficacemente il comportamento ad alto livello e gli artefatti lasciati quando ogni cradle viene eseguito. Ho cercato di evidenziare queste informazioni quando si accede per la prima volta a un nuovo tipo di cradle nei menu interattivi dello strumento.
Alla fine, conoscere di più sul comportamento e gli artefatti di ogni cradle aiuterà il Blue Team a rilevare meglio questi cradle. Questa conoscenza dovrebbe anche avvantaggiare il Red Teamer nel fare selezioni più informate su quale cradle utilizzare in un dato scenario.
Sebbene tutti i cradle possano essere prodotti chiamando direttamente la funzione Out-Cradle, la complessità delle parti mobili per tutti i componenti offuscati impilati rende l'uso della funzione Invoke-CradleCrafter il modo più semplice per esplorare e visualizzare le sintassi dei cradle e le tecniche di offuscamento attualmente supportate da questo framework.
Il codice sorgente di Invoke-CradleCrafter è ospitato su Github, ed è possibile scaricarlo, forkarlo e revisionarlo da questo repository (https://github.com/danielbohannon/Invoke-CradleCrafter). Si prega di segnalare problemi o richieste di funzionalità attraverso il bug tracker di Github associato a questo progetto.
Per installare:
Import-Module ./Invoke-CradleCrafter.psd1
Invoke-CradleCrafter
Invoke-CradleCrafter è rilasciato sotto licenza Apache 2.0.
v1.0 - 2017-04-28 x33fcon (Gdynia, Polonia): Rilascio PUBBLICO di Invoke-CradleCrafter.
v1.1 - 2017-05-11 NOPcon (Istanbul, Turchia): Aggiunti 3 nuovi cradle basati su memoria:
v1.1.1 - 2018-01-08: Aggiunto 1 nuovo cradle basato su memoria:
v1.1.2 - 2018-02-05: Aggiunte stringhe User-Agent alle informazioni del cradle