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
PMD — Curso práctico de desarrollo de malware en Windows: hashing de API, carga lateral de DLL, ejecución de shellcode, manipulación de PE, alojamiento de payloads y laboratorios de entrega. | Kitploit
Herramientas/GitHubGitHub/rad9800/pmd
Ingeniería InversaShellcodeAnálisis de MalwareAnálisis de BinariosAprendizaje y EducaciónRed TeamingGeneración de ShellcodeDesarrollo de PayloadsLabs y Práctica
GitHubrad9800/pmd

PMD

Curso práctico de desarrollo de malware en Windows: hashing de API, carga lateral de DLL, ejecución de shellcode, manipulación de PE, alojamiento de payloads y laboratorios de entrega.

15914hace 1 añoRevisado 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

Desarrollo Práctico de Malware

Ejercicio 1 - Configuración del Entorno

  1. Configura una máquina virtual de Windows dentro de un hipervisor. a. Asegúrate de tomar una instantánea de tu instalación base.
  2. Descarga e instala Visual Studio 2022 - https://visualstudio.microsoft.com/vs/ a. Selecciona la carga de trabajo Desktop development with C++ al instalar
  3. Descarga e instala:
    • DebugView++ - https://github.com/CobaltFusion/DebugViewPP
    • PE Bear - https://github.com/hasherezade/pe-bear
    • ProcMon - https://learn.microsoft.com/en-us/sysinternals/downloads/procmon
    • Ghidra - https://www.ghidra-sre.org/
    • Everything - https://www.voidtools.com/

Adicionalmente (opcional), para una experiencia de ingeniería inversa más completa, configura los símbolos:

setx _NT_SYMBOL_PATH c:\Symbols;srv*c:\Symbols*https://msdl.microsoft.com/download/symbols

mkdir \symbols

  1. Abre PMD.sln dentro de Visual Studio.

  2. Selecciona el proyecto setup y asegúrate de poder:

    a. Compilar el proyecto

    b. Ver la instrucción de impresión de depuración dentro de DebugView++.

Ejercicio 2 - Comprensión de las Propiedades de PE

  1. Actualiza las banderas del compilador y del enlazador del proyecto template para manipular las entradas de la IAT y otras propiedades de PE.

    a. Familiarízate con la resolución dinámica de API y la documentación de MSDN.

    b. ¿Hay alguna otra propiedad que resalte? Si ejecutas Strings.exe contra el binario, ¿resalta alguna cadena?

    c. ¿Puedes eliminarlas/actualizarlas?

Utiliza cualquier herramienta de tu elección para completar el ejercicio (p. ej. dumpbin/PE Bear). Se ha proporcionado un envoltorio alrededor de pefile en scripts\props.py (asegúrate de instalar los requisitos).

  1. Descarga algunas muestras de malware desde VXUG

    a. ¿Cuáles son las principales diferencias entre ejecutables benignos y maliciosos?

    b. ¿Cuáles son las principales diferencias entre nuestro binario y los ejecutables benignos?

Recursos Adicionales

  • https://learn.microsoft.com/en-us/cpp/build/reference/dumpbin-reference?view=msvc-170
  • https://learn.microsoft.com/en-us/windows/win32/debug/pe-format
  • https://learn.microsoft.com/en-us/previous-versions/ms809762(v=msdn.10)
  • https://cloud.google.com/blog/topics/threat-intelligence/tracking-malware-import-hashing/
  • https://github.com/rad9800/misc/blob/main/generic/fix-entropy.cpp
  • https://github.com/rad9800/misc/blob/main/generic/stack-strings.cpp

Ejercicio 3 - Hashing de API en Tiempo de Compilación

El algoritmo de hashing de API actual utilizado es fnv1a.

  1. Abre el proyecto solution y llama a MessageBoxA utilizando el framework de hashing de API.
  2. Utiliza un algoritmo de hashing diferente y asegúrate de que aún puedas llamar a MessageBoxA.

Recursos Adicionales

  • https://github.com/vxunderground/VX-API/tree/main/VX-API
  • https://learn.microsoft.com/en-us/windows/win32/api/winuser/nf-winuser-messageboxa

Ejercicio 4 - Encontrar y Aprovechar el Secuestro de DLL

  1. Descarga Cisco Webex (https://www.webex.com/downloads.html)

  2. Encuentra CiscoCollabHost y observa qué DLLs se cargan

    • ¡Usa Procmon/PE Bear/Ghidra o lo que sea!
  3. Abre CiscoCollabHost en Ghidra e identifica diferentes formas de lograr ejecución de código mediante sideloading

  4. Edita dll_template para hacer sideload de tu binario objetivo. Verifica que puedes ver la cadena de depuración en DebugView++.

  5. Actualiza LastWriteTime y CreationTime de dll_template.dll para que coincidan con el DLL objetivo.

Recursos Adicionales

  • https://hijacklibs.net/
  • https://github.com/sadreck/Spartacus

Ejercicio 5 - Ejecución de Shellcode

  1. Compila y ejecuta el proyecto de utilidad.

    a. Adicionalmente, considera ejecutarlo en tu sistema anfitrión.

  2. Copia el DLL identificado al directorio x64/{Debug,Release} y actualiza el código del cargador.

  3. Actualiza execute_sc para ejecutar tu shellcode con una función diferente utilizando el framework de hashing de API.

Recursos Adicionales

  • https://github.com/Wra7h/FlavorTown

Ejercicio 6 - Poniéndolo Todo Junto

  1. Crea un nuevo proyecto DLL y combina: a. Sideloading de DLL b. Ejecución de Shellcode desde Sideload
  2. Verifica que tus propiedades de PE sean las esperadas.
  3. Compila tu payload en Release y empaquétalo en un formato adecuado para la entrega.

Ejercicio 7 - Alojamiento de Payload

  1. Regístrate en un proveedor de almacenamiento en la nube (p. ej. AWS/CloudFlare)

  2. Empaqueta tu payload y súbelo

    a. Adicionalmente, investiga formas de limitar/auditar el acceso a las descargas

  3. Toma una instantánea de tu VM

  4. Revierte a la VM base y ejecuta tu escenario completo de "entrega"

    • p. ej. llevar al usuario a la URL y lograr que descargue. Asegúrate de que funcione.

Ejercicio 8 - Construyendo Payloads con GitHub Actions

  1. Crea un repositorio Git con el contenido de este proyecto
  2. Valida que puedes ejecutar la Action y que los artefactos funcionan
  3. Actualiza .github\workflows\build.yml para realizar procesamiento adicional previo/posterior como quieras que te ahorre tiempo. Aquí tienes algunas ideas:
    • Ejecuta props.py y valida/incluye la salida
    • Automatiza el empaquetado del payload en Python
    • Automatiza la actualización de LastWriteTime y CreationTime para que coincidan con un objetivo
Descargar herramienta