icono de contraseña es una aplicación .NET que le permite ofuscar el código fuente de C#, VBA/VB6 (macros) y PowerShell y fue desarrollada para actividades de seguridad ofensivas como Red/Purple Teams. Codeceptionon se diferencia de otros ofuscadores en que apunta al código fuente en lugar de a los ejecutables compilados, y se desarrolló específicamente para eludir AV/EDR.
Codeceptionon le permite ofuscar y reescribir código, y también ofrece características como reescribir la línea de comandos.
Tabla de Contenidos
Leé esto primero
! ¡Antes que empecemos!
- Este documento solo describe cómo instalar y usar Codeceptiveon. No se proporciona compilación, uso ni soporte para herramientas como Rubeus y SharpHound. Vea el repositorio de cada proyecto individualmente para más detalles.
- Codeceptionon está activamente desarrollado/probado en VS2022, pero deberían También funciona en VS2019. Cualquier boleto/problema creado para VS2019 e inferior no se investigará a menos que el problema sea reproducible en VS2022. Así que use el último y mejor VS2022.
- Los siguientes paquetes Debe ser v3.9.0porque las versiones más nuevas tienen los siguientes problemas que aún no se han resuelto: dotnet/roslyn#58463
- Microsoft.CodeAnalysis.CSharp.Workspaces
- Microsoft.CodeAnalysis.Workspaces.MSBuild
Codeceptionon verifica las versiones de estos paquetes en tiempo de ejecución y le notificará si las versiones difieren de v3.9.0.
- No se puede enfatizar lo suficiente: Siempre pruebe su código ofuscado localmente primero.
requisitos previos
Visual Studio Profesional/Comunidad 2022
compilador roslyn
abrir y compilar
Abra Codeceptiveon, espere a que se descarguen todos los paquetes de NuGet y luego cree la solución.
Usar Codecepticons
Hay dos formas de usar Codeceptiveon, una es poner todos los parámetros en la línea de comando, la otra es pasar un solo archivo de configuración XML.No se recomienda hacerlo manualmente debido al alto grado de personalización admitido --help
salida para tratar de averiguar qué parámetros usar y cómo.usar generador de línea de comando.html y genere rápidamente su comando:
El formato de salida del generador de comandos puede ser Console
cualquiera XML
, dependiendo de lo que te guste. El comando de la consola se puede ejecutar como:
Codecepticon.exe --action obfuscate --module csharp --verbose ...etc
Al usar archivos de configuración XML como:
Codecepticon.exe --config C:\Your\Path\To\The\File.xml
Si desea obtener más información sobre las capacidades de Codeceptionon, ver este documento.
Para sugerencias que puede utilizar, ver este documento.
C#
Ofuscar un proyecto de C# es tan simple como seleccionar la solución a la que desea apuntar. Tenga en cuenta que no se realizará una copia de seguridad de la solución en sí, se ofuscará la copia de seguridad actual. Asegúrese de que puede compilar el proyecto de destino de forma independiente antes de intentar ejecutar Codeceptiveon en él.
VBA/VB6
La ofuscación de VBA funciona en el código fuente en sí, no en el documento de Microsoft Office.Esto significa que no puede pasar doc(x)
cualquiera xls(x)
Archivo a Codecepticon. Debe ser el código fuente del propio módulo (presione Alt-F11 y copie el código desde allí).
potencia Shell
Debido a la complejidad de las secuencias de comandos de PowerShell y los grados de libertad que ofrece en la forma en que se escriben las secuencias de comandos, es un desafío cubrir todos los casos extremos y garantizar que los resultados de ofuscación funcionen por completo. Si bien se espera que Codeceptionon funcione bien en secuencias de comandos/funciones simples, ejecutarlo en secuencias de comandos/funciones complejas como PowerView no funcionará, es un trabajo en progreso.
Ofuscar los argumentos de la línea de comando
Después de ofuscar una aplicación o secuencia de comandos, es probable que los parámetros de la línea de comandos también hayan cambiado de nombre. La solución a esto es usar un archivo de mapeo HTML para encontrar los nuevos nombres. Por ejemplo, transformemos la siguiente línea de comando:
SharpHound.exe --CollectionMethods DCOnly --OutputDirectory C:\temp\
Al buscar en el archivo de mapeo HTML para cada parámetro, obtenemos:
Al reemplazar todas las cadenas, el resultado es:
ObfuscatedSharpHound.exe --AphylesPiansAsp TurthsTance --AnineWondon C:\temp\
Sin embargo, algunos valores pueden existir en más de una categoría:
así es Crítico Siempre pruebe primero sus resultados en un entorno local.