Skip to content
KitploitKITPLOIT
FerramentasBlog
Enviar
FerramentasBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
sickle-pdk — Sickle - Payload Development Kit | Kitploit
Ferramentas/GitHubGitHub/wetw0rk/sickle-pdk
Exploit FrameworksPayload GenerationExploitationReverse EngineeringBinary AnalysisPayload Development
GitHubwetw0rk/sickle-pdk

sickle-pdk

Sickle - Payload Development Kit

Ver Repositório
872124há 1 mêsRevisado pelo Kitploit

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar

Sickle - Kit de Desenvolvimento de Payloads

alt text

Sickle é uma ferramenta que desenvolvi originalmente para me ajudar a ser mais eficaz, tanto no desenvolvimento quanto na compreensão de shellcode. No entanto, ao longo do seu desenvolvimento e uso, ela evoluiu para um kit de desenvolvimento de payloads. Embora os módulos atuais sejam voltados principalmente para assembly, esta ferramenta não se limita a shellcode.

Atualmente, o Sickle pode auxiliar no seguinte:

  • Converter instruções de assembly para código de máquina (opcodes)
  • Executar bytecode, incluindo payloads gerados
  • Formatar opcodes para uma linguagem alvo
  • Identificação de caracteres inválidos
  • Desmontagem linear
  • Diffing

Geração de Shellcode

O Sickle suporta geração de shellcode por meio do Keystone Engine. Por ser um recurso adicionado recentemente, o suporte a payloads é limitado. No entanto, o objetivo é adicionar um reverse shell básico para cada arquitetura e plataforma.

alt text

Diffing

O Sickle inclui um módulo de "diffing" inicialmente projetado para analisar stubs de shellcode. O modo "asm" original realiza diffs de desmontagem linear tanto no nível da linguagem assembly quanto no nível dos opcodes, separadamente.

alt text

Além disso, o Sickle oferece vários modos para realizar diffs, tornando-o útil além do desenvolvimento de shellcode.

alt text

Execução de Shellcode

Uma tarefa comum que você pode realizar com frequência é testar seu shellcode. Esse processo normalmente envolve as seguintes etapas:

  1. Compilar o código em linguagem assembly.
  2. Extrair o shellcode e formatá-lo adequadamente para o wrapper escolhido.
  3. Compilar o wrapper.
  4. Executar o wrapper.

Embora essas etapas possam parecer simples, elas podem se tornar demoradas quando repetidas. O Sickle simplifica o processo ao envolver automaticamente o shellcode para testes rápidos, e o módulo "run" atualmente suporta sistemas Windows e Unix.

alt text

Desmontagem

O Sickle também pode converter um arquivo binário em opcodes extraídos (shellcode) e, em seguida, traduzi-los em instruções de máquina (assembly). Observe que esse processo funciona apenas com arquivos binários brutos e atualmente realiza a desmontagem de forma linear por meio do Capstone.

alt text

No exemplo mostrado acima, o módulo "disassemble" desmonta um reverse shell projetado por Stephen Fewer para assembly.

Extração de Shellcode

A extração de shellcode foi o primeiro módulo, ou melhor, a funcionalidade principal do Sickle, pois os opcodes são interpretados de forma diferente dependendo do wrapper utilizado. O JavaScript, por exemplo, não armazena e interpreta shellcode da mesma forma que um programa em C faria.

alt text

Talvez a maior inspiração para isso tenha sido o msfvenom.

Identificação de Caracteres Inválidos

Embora menos comum em exploits de 64 bits, pode haver casos em que um exploit restrinja o uso de determinados caracteres. É aí que o módulo "pinpoint" se destaca, pois identifica e realça diretamente as instruções de assembly responsáveis pelo(s) caractere(s) inválido(s) identificado(s).

alt text

Design Baseado em Módulos

Originalmente, esta ferramenta começou como um único script grande. No entanto, à medida que evoluiu, precisei reaprender o código a cada atualização. Para resolver isso, o Sickle agora segue uma abordagem modular, permitindo que novas funcionalidades sejam adicionadas com tempo mínimo gasto reaprendendo o design da ferramenta.

root@kitploit:~
$ sickle-pdk -l

  Shellcode                              Ring Description
  ---------                              ---- -----------
  windows/x64/virtualalloc_exec_tcp       3   A lightweight stager that connects to a handler via TCP over IPv4 to receive and execute shellcode
  windows/x64/egghunter                   3   Egghunter based on Hell's Gate and NtProtectVirtualMemory
  windows/x64/virtualalloc_exec_https     3   A lightweight stager that connects to a handler over HTTPS to receive and execute shellcode
  windows/x64/exec                        3   Executes a command on the target host
  windows/x64/reflective_pe_loader        3   Stageless Reflective PE Loader that takes an x64 binary and executes it in memory
  windows/x64/shell_reverse_tcp           3   Reverse Shell via TCP over IPv4 that provides an interactive cmd.exe session
  windows/aarch64/shell_reverse_tcp       3   Reverse Shell via TCP over IPv4 that provides an interactive cmd.exe session
  windows/x86/shell_reverse_tcp           3   Reverse shell via TCP over IPv4 that provides an interactive cmd.exe session
  windows/x64/kernel_token_stealer        0   Token stealing shellcode for privilege escalation
  windows/x64/kernel_sysret               0   Generic method of returning from kernel space to user space
  windows/x64/kernel_ace_edit             0   SID entry modifier for process injection
  windows/x86/kernel_token_stealer        0   Token stealing shellcode for privilege escalation
  linux/x64/memfd_reflective_elf_tcp      3   Staged Reflective ELF Loader via TCP over IPV4 which executes an ELF from a remote server
  linux/aarch64/memfd_reflective_elf_tcp  3   Staged Reflective ELF Loader via TCP over IPv4 which executes an ELF from a remote server handler
  linux/aarch64/shell_reverse_tcp         3   Reverse Shell via TCP over IPv4 that provides an interactive /bin/sh session
  linux/x86/execve                        3   Executes a shell session such as /bin/sh
  linux/x86/shell_reverse_tcp             3   Reverse shell via TCP over IPV4 that provides an interactive /bin/sh session

  Architectures
  -------------
  aarch64
  x64
  x86

  Modules       Description
  -------       -----------
  disassemble   Simple linear disassembler for multiple architectures
  handler       Module for handling payload distribution and session management
  asm_shell     Interactive assembler and disassembler
  diff          Bytecode diffing module for comparing two binaries (or shellcode)
  pinpoint      Highlights opcodes within a disassembly to identify instructions responsible for bad characters
  run           Wrapper used for executing bytecode (shellcode)
  format        Converts bytecode into a respective format (activated anytime '-f' is used)
  badchar       Produces a set of all potential invalid characters for validation purposes

  Format        Description
  ------        -----------
  perl          Format bytecode for Perl
  python        Format bytecode for Python
  hex_space     Format bytecode in hex, seperated by a space
  nasm          Format bytecode for NASM
  java          Format bytecode for Java
  javascript    Format bytecode for Javascript (Blob to send via XHR)
  escaped       Format bytecode for one-liner hex escape paste
  rust          Format bytecode for a Rust application
  uint8array    Format bytecode for Javascript as a Uint8Array directly
  bash          Format bytecode for bash script (UNIX)
  powershell    Format bytecode for Powershell
  cs            Format bytecode for C#
  dword         Format bytecode in dword
  c             Format bytecode for a C application
  raw           Format bytecode to be written to stdout in raw form
  ruby          Format bytecode for Ruby
  num           Format bytecode in num format
  hex           Format bytecode in hex
  python3       Format bytecode for Python3

Essa abordagem permite que cada módulo gere documentação detalhada sobre sua funcionalidade.

root@kitploit:~
$ sickle-pdk -m run -i

Usage information for run

              Name: Shellcode Runner
            Module: run
      Architecture: Multi
          Platform: Multi
              Ring: 3

Author(s):
    wetw0rk

Tested against:
    Linux
    Windows

Module Description:

  Executes bytecode from a binary file (-r) or a payload module (-p) under the context
  of the currently running operating system and architecture. Meaning if you are
  running on AARCH64 bytecode will be interpreted as such and if you're on x64 it will
  interpret it as x64 respectively.

Example:

  /usr/local/bin/sickle-pdk -m run -r shellcode

Essa abordagem também inclui documentação para stubs de shellcode.

root@kitploit:~
$ sickle-pdk -p windows/x64/egghunter -i

Usage information for windows/x64/egghunter

              Name: Windows (x64) Hell's Gate based Egghunter
            Module: windows/x64/egghunter
      Architecture: x64
          Platform: windows
              Ring: 3

Author(s):
    hvictor

Tested against:
    Windows 11 (10.0.26100 N/A Build 26100)

Argument Information:

  Name          Description           Optional
  ----          -----------           --------
  TAG           Egg (provide 4 bytes)      yes

Module Description:

  This egghunter iterates virtual memory addresses and before searching for the egg, it
  performs a NtProtectVirtualMemory system call. This system call is similar to
  VirtualProtect, and is parameterized to set the memory to be scanned to READ, WRITE,
  EXECUTE. This way, when the egg is found, the shellcode after it is guaranteed to be
  executable.

Example:

  /usr/local/bin/sickle-pdk -p windows/x64/egghunter TAG=w00t
Baixar ferramenta