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
Clematis — PE to shellcode | Kitploit
Herramientas/GitHubGitHub/cblabresearch/clematis
Payload GenerationExploitationShellcodeRed TeamingShellcode GenerationPayload Development
GitHubcblabresearch/clematis

Clematis

PE to shellcode

Ver Repositorio
28353hace 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

Clematis

clematis

[ 中文 | English ]

🛠️ Una potente herramienta para convertir archivos PE (EXE/DLL) en shellcode independiente de la posición.

✨ Características principales

  • Soporte para convertir archivos PE (EXE/DLL) a shellcode
  • Compatible con arquitecturas x86 y x64
  • Soporte de argumentos de línea de comandos
  • Algoritmo de compresión LZNT1 integrado para reducir significativamente el tamaño del archivo de salida
  • Ofuscación opcional para mayor sigilo

📦 Instalación

Dependencias

root@kitploit:~
pip install pefile lznt1

🚀 Uso

root@kitploit:~
python clematis.py -f <PE_file> -o <output_file> [-g <true/false>] [-c <true/false>] [-p <parameters>]

Parámetros

Ejemplos

root@kitploit:~
# Show help information
python clematis.py -h

# Basic usage
python clematis.py -f target.exe -o output.bin

# Disable obfuscation and compression
python clematis.py -f target.exe -o output.bin -g false -c false

# Pass arguments to target program
python clematis.py -f target.exe -o output.bin -p arg1 arg2

python clematis.py -f target.exe -o output.bin -p "arg1 arg2"

💪 Nuestras ventajas

  • 🎯 Soporte para DOT NET
  • 🗜️ Soporte de compresión
  • 🎭 Soporte de ofuscación
  • 🔄 Soporte de paso de parámetros
  • 🚀 Soporte completo para golang
  • 💪 El shellcode generado es potente y estable

💡 Filosofía de diseño

En ciertos entornos especiales, podemos encontrarnos con los siguientes desafíos:
root@kitploit:~
- 🛡️ Unable to perform process injection (AV/EDR/XDR blocking)
- 🔄 Executing golang programs in current process may cause blocking
- 💾 Memory leaks may occur after golang program execution
- ⚠️ Threads created by golang cannot be released!
Para abordar estos problemas, desarrollamos clematis:
root@kitploit:~
- ✨ Convert golang programs to shellcode
- 🎯 Direct execution in current process
- ♻️ Automatic memory release after execution
- 🚀 Completely avoid golang-related memory issues
- 🔄 Reclaim all threads created by golang

📝 Notas

  • Asegúrate de tener permisos suficientes para leer los archivos PE de origen y escribir los archivos de destino
  • Se recomienda la compresión al convertir archivos grandes
  • La ofuscación puede añadir cierta sobrecarga de rendimiento, pero proporciona mayor sigilo

⚠️ Problemas conocidos

  • Partes de una aplicación (exe) compilada con mingw | gcc pueden fallar al cargar, puede deberse a la reubicación? ( No implementado )
  • Acceso ilegal a memoria en DOT NET ( Corregido )

🗓️ Funciones planificadas

  • Opciones de cifrado avanzadas para una mejor seguridad
  • Interfaz gráfica para una operación más sencilla
  • Monitoreo del progreso de conversión en tiempo real
  • Procesamiento de recursos en PE
  • Capacidades de evasión mejoradas, como [ProxyDll, Syscall, ...]

🔄 Actualizaciones recientes

  • 2024-12-27

    • Soporte para DOT NET (x64 | x86)
  • 2024-12-28

    • Corregidos posibles fallos de programas DOT NET (Puede que no ocurran)

    • Añadido manejo para IMAGE_DIRECTORY_ENTRY_EXCEPTION ( x64 )

    • APIs actualizadas para usar NTAPI


⚠️ Advertencia

  • No planeamos publicar esta actualización de forma gratuita, la pondremos en nuestro círculo de pago.
  • Este proyecto sigue disponible y es gratuito, pero puede que no se actualice en el futuro, ¡gracias!

clematis


🔍 Cómo funciona

Clematis convierte archivos PE a shellcode mediante los siguientes pasos:

  1. Leer y analizar el archivo PE objetivo
  2. Procesar los argumentos de la línea de comandos (si los hay)
  3. Compresión LZNT1 opcional
  4. Procesamiento de ofuscación opcional
  5. Generar el shellcode final independiente de la posición
root@kitploit:~
flowchart TD
    A[START] --> B[Read PE file]
    B --> C[Parse PE structure]
    C --> D{Is there a command line argument?}
    D -- TRUE --> E[Process command line arguments]
    D -- FALSE --> F{Enable compression?}
    E --> F
    F -- TRUE --> G[LZNT1 compression]
    F -- FALSE --> H{Enable obfuscation?}
    G --> H
    H -- TRUE --> I[Execute obfuscation processing]
    H -- FALSE --> J[Generate shellcode]
    I --> J
    J --> K[Output result]
    K --> L[END]

🤝 Contribuciones

¡Las Issues y las Pull Requests son bienvenidas!

Descargar herramienta
descripciónpor defectorequerido
-f--fileRuta al archivo PE a convertirtrue
-o--outputNombre del archivo de salidatrue
-g--garbleHabilitar ofuscacióntruefalse
-c--compressHabilitar compresióntruefalse
-p--parameterParámetros de ejecución a pasar al archivo PEfalse
antesahora
VirtualAllocNtAllocateVirtualMemory
VirtualProtectNtProtectVirtualMemory
VirtualFreeNtFreeVirtualMemory
LoadLibraryLdrLoadDll
GetProcAddressLdrGetProcedureAddress
WaitForMultipleObjectsNtWaitForMultipleObjects
CreateEventNtCreateEvent
CloseHandleNtClose
SignalObjectAndWaitNtSignalAndWaitForSingleObject
TerminateThreadNtTerminateThread
SuspendThreadNtSuspendThread
OpenThreadNtOpenThread
ResumeThreadNtResumeThread
GetContextThreadNtGetContextThread
SetContextThreadNtSetContextThread
...
  • 2025-1-1

    • Añadida seguridad de hilos para gestionar listas de hilos y listas de memoria
    • Corregidos algunos problemas funcionales
    • Eliminado el procesamiento de parámetros en el payload y cambiado a parcheo
    • Soporte para upx
    • Añadida comprobación de arquitectura en el payload para verificar que la arquitectura coincide
    • Algunas implementaciones han sido modificadas para ofrecer mejor compatibilidad