
.NET/PowerShell/VBA Offuscatore per la Sicurezza Offensiva
[!CAUTION] Questo repository non è più mantenuto, visita https://github.com/sadreck/Codecepticon per l'ultima versione.
Codecepticon è un'applicazione .NET che permette di offuscare codice sorgente C#, VBA/VB6 (macro) e PowerShell, sviluppata per attività offensive di sicurezza come Red/Purple Team. Ciò che distingue Codecepticon da altri offuscatori è che colpisce il codice sorgente anziché gli eseguibili compilati, ed è stato sviluppato specificamente per l'evasione di AV/EDR.
Codecepticon consente di offuscare e riscrivere il codice, ma offre anche funzionalità come la riscrittura della riga di comando.
! Prima di iniziare !
Questa documentazione riguarda solo l'installazione e l'utilizzo di Codecepticon. Non verrà fornita assistenza per la compilazione, l'uso o il supporto di strumenti come Rubeus e SharpHound. Fare riferimento separatamente al repository di ciascun progetto per maggiori informazioni.
Codecepticon è attivamente sviluppato/testato in VS2022, ma dovrebbe funzionare anche in VS2019. Qualsiasi ticket/segnalazione creata per VS2019 e versioni precedenti non verrà presa in esame a meno che il problema non sia riproducibile in VS2022. Quindi si prega di utilizzare l'ultima versione di VS2022.
I seguenti pacchetti DEVONO essere v3.9.0, poiché le versioni più recenti presentano il seguente problema ancora aperto: https://github.com/dotnet/roslyn/issues/58463
Codecepticon verifica la versione di questi pacchetti all'avvio e ti informerà se la versione è diversa dalla 3.9.0.
Non si può sottolineare abbastanza: testa sempre il codice offuscato localmente prima.


Apri Codecepticon, attendi che tutti i pacchetti NuGet siano scaricati e poi compila la soluzione.
Ci sono due modi per usare Codecepticon: inserire tutti gli argomenti nella riga di comando oppure passare un singolo file di configurazione XML. A causa dell'elevato numero di personalizzazioni supportate, non è consigliabile esaminare manualmente l'output di --help per cercare di capire quali parametri usare e come. Usa CommandLineGenerator.html e genera rapidamente il tuo comando:

Il formato di output del generatore di comandi può essere Console o XML, a seconda delle preferenze. I comandi della console possono essere eseguiti come:
Codecepticon.exe --action obfuscate --module csharp --verbose ...eccetera
Mentre quando si utilizza un file di configurazione XML, come:
Codecepticon.exe --config C:\Tuo\Percorso\Al\File.xml
Se vuoi approfondire le funzionalità di Codecepticon, dai un'occhiata a questo documento.
Per suggerimenti utili, vedi questo documento.
Offuscare un progetto C# è semplice, basta selezionare la soluzione che si desidera targetizzare. Nota che non verrà creata una copia di backup della soluzione stessa e quella corrente verrà offuscata. Assicurati di poter compilare indipendentemente il progetto target prima di provare a eseguire Codecepticon contro di esso.
L'offuscamento VBA agisce sul codice sorgente stesso piuttosto che su un documento Microsoft Office. Ciò significa che non è possibile passare un file doc(x) o xls(x) a Codecepticon. Dovrà essere il codice sorgente del modulo stesso (premi Alt-F11 e copia il codice da lì).
A causa della complessità degli script PowerShell, insieme alla libertà che offre nel modo di scrivere script, è difficile coprire tutti i casi limite e garantire che il risultato offuscato sia completamente funzionale. Sebbene ci si aspetti che Codecepticon funzioni bene con script/funzionalità semplici, eseguirlo su script complessi come PowerView non funzionerà - è un lavoro in corso.
Dopo aver offuscato un'applicazione o uno script, è molto probabile che anche gli argomenti della riga di comando siano stati rinominati. La soluzione è utilizzare il file di mappatura HTML per trovare i nuovi nomi. Ad esempio, convertiamo la seguente riga di comando:
SharpHound.exe --CollectionMethods DCOnly --OutputDirectory C:\temp\
Cercando nel file di mappatura HTML ogni argomento, otteniamo:



E sostituendo tutte le stringhe il risultato è:
ObfuscatedSharpHound.exe --AphylesPiansAsp TurthsTance --AnineWondon C:\temp\
Tuttavia, alcuni valori possono esistere in più di una categoria:

Pertanto è fondamentale testare sempre il risultato in un ambiente locale prima.
È anche possibile utilizzare Codecepticon per firmare digitalmente file eseguibili (l'output compilato). Codecepticon può sia generare un certificato di firma per te, sia utilizzarlo (o qualsiasi altro tu possa fornire) per firmare il file target.
L'output compilato include molte DLL di dipendenze che, a causa dei requisiti di licenza, non possiamo ridistribuire senza un consenso scritto.