Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
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.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
maldev-for-dummies — Un taller sobre desarrollo de malware | Kitploit
Herramientas/GitHubGitHub/chvancooten/maldev-for-dummies
ExplotaciónShellcodeAnálisis de MalwareAprendizaje y EducaciónRed TeamingDesarrollo de PayloadsLabs y Práctica
GitHubchvancooten/maldev-for-dummies

maldev-for-dummies

Un taller sobre desarrollo de malware

Ver Repositorio
1.8k2358hace 3 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

Desarrollo de malware para Dummies

En la era de EDR, los operadores de red team ya no pueden salirse con la suya usando payloads precompilados. Por lo tanto, el desarrollo de malware se está convirtiendo en una habilidad vital para cualquier operador. Comenzar con maldev puede parecer desalentador, pero en realidad es muy fácil. ¡Este taller te mostrará todo lo que necesitas para empezar!

Este repositorio contiene las diapositivas y los ejercicios complementarios para el taller 'MalDev for Dummies' que se ha facilitado/se facilitará en Hack in Paris 2022 y X33fcon 2023. Aunque las diapositivas fueron diseñadas para presentarse 'en persona', los materiales y ejercicios permanecerán disponibles aquí para completarlos a tu propio ritmo: ¡el proceso de aprendizaje nunca debe apresurarse! Se agradecen las issues y pull requests a este repositorio con preguntas y/o sugerencias.

⚠ Aviso: El desarrollo de malware es una habilidad que puede -y debe- usarse para el bien, para avanzar en el campo de la seguridad (ofensiva) y mantener nuestras defensas afiladas. Si alguna vez usas este conjunto de habilidades para realizar actividades para las que no tienes autorización, eres un tonto más grande de lo que este taller pretende y deberías largarte de aquí.

Descripción del taller

Con las herramientas antivirus (AV) y de Enterprise Detection and Response (EDR) volviéndose más maduras a cada minuto, el red team se ve obligado a mantenerse a la vanguardia. Quedaron atrás los tiempos de execute-assembly y de dejar payloads sin modificar en el disco: si quieres que tus compromisos duren más de una semana, tendrás que mejorar tu juego de creación de payloads y desarrollo de malware. Sin embargo, comenzar en este campo puede ser desalentador, y encontrar los recursos adecuados no siempre es fácil.

Este taller está dirigido a principiantes en el ámbito y te guiará a través de tus primeros pasos como desarrollador de malware. Está dirigido principalmente a profesionales ofensivos, pero los profesionales defensivos también son muy bienvenidos a asistir y ampliar sus habilidades.

Descargar herramienta

Durante el taller repasaremos algo de teoría, después te prepararemos con un entorno de laboratorio. Habrá varios ejercicios que puedes completar dependiendo de tu conjunto de habilidades actual y nivel de comodidad con el tema. Sin embargo, el objetivo del taller es aprender, y explícitamente no completar todos los ejercicios. Eres libre de elegir tu lenguaje de programación preferido para el desarrollo de malware, pero el soporte durante el taller se proporciona principalmente para los lenguajes de programación C# y Nim.

Durante el taller, discutiremos los temas clave necesarios para comenzar a construir tu propio malware. Esto incluye (pero no se limita a):

  • La API de Windows
  • Tipos de archivos y métodos de ejecución
  • Ejecución e inyección de shellcode
  • Métodos de evasión de AV y EDR

Primeros pasos

Para comenzar con el desarrollo de malware, necesitarás una máquina de desarrollo para que no te molesten las herramientas defensivas que puedan ejecutarse en tu máquina anfitriona. Prefiero Windows para el desarrollo, pero Linux o MacOS también funcionan bien. Instala tu editor/IDE preferido (uso VS Code para casi todo excepto C#, para lo cual uso Visual Studio, y luego instala las cadenas de herramientas necesarias para tu lenguaje de MalDev preferido:

  • C#: Visual Studio te dará la opción de incluir los paquetes .NET que necesitarás para desarrollar C#. Si quieres desarrollar sin Visual Studio, puedes descargar .NET Framework por separado.
  • Nim lang: Sigue las instrucciones de descarga. Choosenim es una utilidad conveniente que se puede usar para automatizar el proceso de instalación.
  • Golang (gracias a @nodauf por el PR): Sigue las instrucciones de descarga.
  • Rust: Rustup se puede usar para instalar Rust junto con las cadenas de herramientas requeridas.

No olvides deshabilitar Windows Defender o agregar las exclusiones apropiadas, ¡para que tu arduo trabajo no sea puesto en cuarentena! Más adelante, podemos probar en una máquina separada con controles defensivos como AV habilitado.

ℹ Nota: A menudo, los gestores de paquetes como apt o herramientas de gestión de software como Chocolatey o Winget (¡ahora integrado!) se pueden usar para automatizar la instalación y gestión de dependencias de manera conveniente y repetible. Sin embargo, ten en cuenta que las versiones en los gestores de paquetes pueden estar un par de versiones por detrás de la versión real. A continuación se muestra un comando de ejemplo para instalar todas las herramientas mencionadas de una vez.

root@kitploit:~
 choco install -y nim choosenim go rust vscode visualstudio2019community dotnetfx

Compilación de programas

Los lenguajes que discutiremos durante este taller son lenguajes compilados, lo que significa que se utiliza un compilador para traducir tu código fuente a ejecutables binarios del formato que elijas. El proceso de compilación difiere según el lenguaje.

C#

El código C# (archivos .cs) se puede compilar directamente (con la utilidad csc) o a través del propio Visual Studio. La mayoría del código fuente en este repositorio (excepto la solución al ejercicio extra 3) se puede compilar de la siguiente manera.

ℹ Nota: Asegúrate de ejecutar el siguiente comando en un "Símbolo del sistema para desarrolladores de Visual Studio" para que sepa dónde encontrar csc; se recomienda usar el "Símbolo del sistema de herramientas nativas x64" para tu versión de Visual Studio. El indicador /unsafe será necesario para la mayoría de scripts donde accedemos directamente a funcionalidades de bajo nivel.

root@kitploit:~
csc filename.exe

Puedes habilitar optimizaciones en tiempo de compilación con el indicador /optimize. También puedes ocultar la ventana de consola agregando /target:winexe, o compilar como DLL con /target:library (pero asegúrate de que la estructura de tu código sea adecuada para esto).

Nim

El código Nim (archivos .nim) se compila con el comando nim c. El código fuente de este repositorio se puede compilar de la siguiente manera.

root@kitploit:~
nim c filename.nim

Si deseas optimizar tu compilación para el tamaño y eliminar información de depuración (¡mucho mejor para opsec!), puedes agregar los siguientes indicadores.

root@kitploit:~
nim c -d:release -d:strip --opt:size filename.nim

Opcionalmente, también puedes ocultar la ventana de consola agregando --app:gui.

Golang

El código Golang (archivos .go) se compila con el comando go build. El código fuente de este repositorio se puede compilar de la siguiente manera.

root@kitploit:~
GOOS=windows go build

Si deseas optimizar tu compilación para el tamaño y eliminar información de depuración (¡mucho mejor para opsec!), puedes agregar los siguientes indicadores.

root@kitploit:~
GOOS=windows go build -ldflags "-s -w"

Rust

El código Rust (archivos .rs) se compila mediante el comando cargo. Cargo se puede usar para gestionar tus dependencias y compilar tu proyecto. El código fuente de este repositorio se puede compilar navegando a la carpeta del proyecto y ejecutando el siguiente comando.

root@kitploit:~
cargo build

Si deseas optimizar tu compilación para el tamaño y eliminar información de depuración, puedes agregar los siguientes indicadores. Consulta también la sección [profile.release] en cada archivo Cargo.toml para algunas opciones de opsec en tiempo de compilación.

root@kitploit:~
cargo build --release

Dependencias

C#

La mayoría de las soluciones se pueden compilar sin dependencias. En caso de que se requieran dependencias, se proporciona un proyecto de Visual Studio que enlaza con los paquetes NuGet adecuados.

Nim

La mayoría de los programas Nim dependen de una biblioteca llamada "Winim" para interactuar con la API de Windows. Puedes instalar la biblioteca con el gestor de paquetes Nimble de la siguiente manera (después de instalar Nim):

root@kitploit:~
nimble install winim

Golang

Se utilizan algunas dependencias en el código fuente de este repositorio. Puedes instalarlas de la siguiente manera (después de instalar Go):

root@kitploit:~
go mod tidy

Rust

Algunos ejemplos dependen de la crate windows-sys para llamar a la API de Windows. Como estamos usando Cargo, los paquetes se gestionarán automáticamente cuando compiles una compilación de prueba o de lanzamiento.

Recursos

Las diapositivas del taller hacen referencia a algunos recursos que puedes usar para comenzar. Recursos adicionales, como blogs relevantes o fragmentos de código, se enumeran en los archivos README.md de cada ejercicio.