Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
sickle-pdk — Sickle - Набор для разработки полезных нагрузок | Kitploit
Инструменты/GitHubGitHub/wetw0rk/sickle-pdk
Фреймворки для эксплойтовГенерация полезной нагрузкиЭксплуатацияОбратная инженерияАнализ Бинарных ФайловРазработка Полезной Нагрузки
GitHubwetw0rk/sickle-pdk

sickle-pdk

Sickle - Набор для разработки полезных нагрузок

Репозиторий
87212462 месяцев назадПроверено Kitploit

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

Sickle - Набор для разработки полезных нагрузок

alt text

Sickle — это инструмент, который я изначально разработал, чтобы повысить свою эффективность как в разработке, так и в понимании шелл-кода. Однако в процессе разработки и использования он превратился в комплект для разработки полезных нагрузок. Хотя текущие модули в основном ориентированы на ассемблер, этот инструмент не ограничивается только шелл-кодом.

В настоящее время Sickle может помочь в следующем:

  • Преобразование инструкций ассемблера в машинный код (опкоды)
  • Выполнение байт-кода, включая сгенерированные полезные нагрузки
  • Форматирование опкодов для целевого языка
  • Определение недопустимых символов
  • Линейная дизассемблера
  • Сравнение (diffing)

Генерация шелл-кода

Sickle поддерживает генерацию шелл-кода через Keystone Engine. Так как это недавно добавленная функция, поддержка полезных нагрузок ограничена. Однако цель — добавить базовый reverse shell для каждой архитектуры и платформы.

alt text

Сравнение (Diffing)

Sickle включает модуль "diffing", изначально предназначенный для анализа заглушек шелл-кода. Оригинальный режим "asm" выполняет линейное сравнение результатов дизассемблирования отдельно на уровне ассемблера и опкодов.

alt text

Кроме того, Sickle предлагает различные режимы для выполнения сравнения, что делает его полезным не только для разработки шелл-кода.

alt text

Выполнение шелл-кода

Одна из частых задач — тестирование вашего шелл-кода. Этот процесс обычно включает следующие шаги:

  1. Скомпилировать код на ассемблере.
  2. Извлечь шелл-код и отформатировать его для выбранной обёртки.
  3. Скомпилировать обёртку.
  4. Выполнить обёртку.

Хотя эти шаги могут показаться незначительными, при частом повторении они отнимают много времени. Sickle упрощает процесс, автоматически оборачивая шелл-код для быстрого тестирования, а модуль "run" в настоящее время поддерживает как Windows, так и Unix-системы.

alt text

Дизассемблирование

Sickle также может преобразовывать бинарный файл в извлечённые опкоды (шелл-код), а затем транслировать их в машинные инструкции (ассемблер). Обратите внимание, что этот процесс работает только с сырыми бинарными файлами и в настоящее время выполняет дизассемблирование линейным способом через Capstone.

alt text

В приведённом выше примере модуль "disassemble" дизассемблирует reverse shell, разработанный Стивеном Фьюером, в ассемблер.

Извлечение шелл-кода

Извлечение шелл-кода было первым модулем или, скорее, основной функциональностью Sickle, поскольку опкоды интерпретируются по-разному в зависимости от используемой обёртки. JavaScript, например, хранит и интерпретирует шелл-код не так, как программа на C.

alt text

Возможно, главным вдохновением для этого был msfvenom.

Определение недопустимых символов

Хотя это менее распространено в 64-битных эксплойтах, могут быть случаи, когда использование определённых символов ограничено. Именно здесь модуль "pinpoint" проявляет себя наилучшим образом, поскольку он напрямую определяет и выделяет инструкции ассемблера, ответственные за обнаруженные недопустимые символы.

alt text

Модульная архитектура

Изначально этот инструмент представлял собой один большой скрипт. Однако по мере его развития я обнаружил, что с каждым обновлением приходится заново изучать код. Чтобы решить эту проблему, Sickle теперь использует модульный подход, позволяющий добавлять новые функции с минимальными затратами времени на повторное изучение дизайна инструмента.

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

Такой подход позволяет каждому модулю создавать подробную документацию по своей функциональности.

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

Этот подход также включает документацию для заглушек шелл-кода.

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
Скачать инструмент