Skip to content
KitploitKITPLOIT
StrumentiExploitsBlog
Log in
Invia
StrumentiExploitsBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
Clematis — PE to shellcode | Kitploit
Strumenti/GitHubGitHub/cblabresearch/clematis
Generazione di PayloadExploitShellcodeRed TeamingGenerazione di ShellcodeSviluppo Payload
GitHubcblabresearch/clematis

Clematis

PE to shellcode

Vedi Repository
28353191 anno faRevisionato da Kitploit

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

Clematis

clematis

[ 中文 | English ]

🛠️ Un potente strumento per convertire file PE (EXE/DLL) in shellcode indipendente dalla posizione.

✨ Caratteristiche principali

  • Supporto per la conversione di file PE (EXE/DLL) in shellcode
  • Compatibile con le architetture x86 e x64
  • Supporto degli argomenti da riga di comando
  • Algoritmo di compressione LZNT1 integrato per ridurre significativamente la dimensione del file di output
  • Offuscamento opzionale per una maggiore furtività

📦 Installazione

Dipendenze

pip install pefile lznt1

🚀 Utilizzo

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

Parametri

DescrizionePredefinitoObbligatorio
-f--filePercorso del file PE da convertiretrue
-o--outputNome del file di outputtrue
-g--garbleAbilita l'offuscamentotruefalse
-c--compressAbilita la compressionetruefalse
-p--parameterParametri di esecuzione da passare al file PEfalse

Esempi

# 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"

💪 I nostri vantaggi

  • 🎯 Supporto per DOT NET
  • 🗜️ Supporto della compressione
  • 🎭 Supporto dell'offuscamento
  • 🔄 Supporto del passaggio di parametri
  • 🚀 Supporto completo per golang
  • 💪 Lo shellcode generato è potente e stabile

💡 Filosofia di progettazione

In alcuni ambienti particolari, potremmo incontrare le seguenti sfide:
- 🛡️ 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!
Per risolvere questi problemi, abbiamo sviluppato clematis:
- ✨ 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

📝 Note

  • Assicurati di avere i permessi necessari per leggere i file PE sorgente e scrivere i file di destinazione
  • La compressione è consigliata quando si convertono file di grandi dimensioni
  • L'offuscamento può aggiungere un certo overhead prestazionale, ma offre una maggiore furtività

⚠️ Problemi noti

  • Alcune parti di un'applicazione (exe) compilata con mingw | gcc potrebbero non essere caricate, potrebbe essere causato dalla rilocazione? ( Non implementato )
  • Accesso illegale alla memoria DOT NET ( Risolto )

🗓️ Funzionalità previste

  • Opzioni di crittografia avanzate per una migliore sicurezza
  • Interfaccia GUI per un utilizzo più semplice
  • Monitoraggio in tempo reale dell'avanzamento della conversione
  • Gestione delle risorse nel PE
  • Capacità di evasione potenziate, come [ProxyDll, Syscall, ...]

🔄 Aggiornamenti recenti

  • 2024-12-27

    • Supporto per DOT NET (x64 | x86)
  • 2024-12-28

    • Corretto potenziale crash dei programmi DOT NET (Potrebbe non verificarsi)

    • Aggiunta la gestione per IMAGE_DIRECTORY_ENTRY_EXCEPTION ( x64 )

    • API aggiornate per utilizzare NTAPI

      primaora
      VirtualAllocNtAllocateVirtualMemory
      VirtualProtectNtProtectVirtualMemory
      VirtualFreeNtFreeVirtualMemory
      LoadLibraryLdrLoadDll
      GetProcAddressLdrGetProcedureAddress
      WaitForMultipleObjectsNtWaitForMultipleObjects
      CreateEventNtCreateEvent
      CloseHandleNtClose
      SignalObjectAndWaitNtSignalAndWaitForSingleObject
      TerminateThreadNtTerminateThread
      SuspendThreadNtSuspendThread
      OpenThreadNtOpenThread
      ResumeThreadNtResumeThread
      GetContextThreadNtGetContextThread
      SetContextThreadNtSetContextThread
      ...
  • 2025-1-1

    • Aggiunta la thread safety per la gestione delle liste di thread e di memoria
    • Corretti alcuni problemi funzionali
    • Rimossa l'elaborazione dei parametri nel payload e passaggio alla patch
    • Supporto per upx
    • Aggiunto il controllo dell'architettura nel payload per verificare che l'architettura corrisponda
    • Alcune implementazioni sono state modificate per offrire una migliore compatibilità

⚠️ Avviso

  • Non abbiamo intenzione di rilasciare questo aggiornamento gratuitamente, lo inseriremo nel nostro circolo a pagamento.
  • Questo progetto continua a essere disponibile e gratuito, ma potrebbe non essere aggiornato in futuro, grazie!

clematis


🔍 Come funziona

Clematis converte i file PE in shellcode attraverso i seguenti passaggi:

  1. Legge e analizza il file PE di destinazione
  2. Elabora gli argomenti della riga di comando (se presenti)
  3. Compressione LZNT1 opzionale
  4. Elaborazione dell'offuscamento opzionale
  5. Genera lo shellcode finale indipendente dalla posizione
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]

🤝 Contributi

Issues e Pull Request sono benvenuti!

Scarica lo strumento