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は次のことを支援できます。

  • アセンブリ命令を機械語(オペコード)に変換する
  • 生成したペイロードを含むバイトコードを実行する
  • ターゲット言語向けにオペコードをフォーマットする
  • 不正文字(bad character)の特定
  • リニア・ディスアセンブリ
  • 差分比較

シェルコード生成

SickleはKeystone Engineを介したシェルコード生成をサポートしています。これは新しく追加された機能であるため、ペイロードの対応範囲は限られています。ただし、各アーキテクチャとプラットフォーム向けの基本的なリバースシェルを追加していくことを目標としています。

alt text

差分比較

Sickleには、当初シェルコードスタブを解析するために設計された「diffing」モジュールが含まれています。元の「asm」モードは、アセンブリ言語レベルとオペコードレベルの両方でリニア・ディスアセンブリの差分を個別に実行します。

alt text

さらに、Sickleはさまざまな差分比較モードを提供しており、シェルコード開発以外にも役立ちます。

alt text

シェルコードの実行

よく行う作業のひとつに、シェルコードのテストがあります。このプロセスには通常、次の手順が含まれます。

  1. アセンブリ言語コードをコンパイルする。
  2. シェルコードを抽出し、選択したラッパーに合わせて適切にフォーマットする。
  3. ラッパーをコンパイルする。
  4. ラッパーを実行する。

これらの手順は些細に思えるかもしれませんが、繰り返し行うと時間がかかるものです。Sickleはシェルコードを自動的にラップして手早くテストできるようにすることでこのプロセスを簡素化し、現在「run」モジュールはWindowsとUnixの両方に対応しています。

alt text

ディスアセンブリ

Sickleはバイナリファイルを抽出したオペコード(シェルコード)に変換し、それらを機械命令(アセンブリ)に変換することもできます。この処理は生のバイナリファイルでのみ動作し、現在はCapstoneを介してリニア方式でディスアセンブリを実行することに注意してください。

alt text

上記の例では、「disassemble」モジュールがStephen Fewer氏によって設計されたリバースシェルをアセンブリに逆アセンブルしています。

シェルコード抽出

シェルコード抽出は、Sickleにとって最初のモジュールであり、むしろ中核となる機能です。オペコードは使用するラッパーによって解釈が異なるためです。例えば、JavaScriptはCプログラムと同じようにはシェルコードを保存・解釈しません。

alt text

おそらく、この最大のインスピレーションはmsfvenomでした。

不正文字(Bad Character)の特定

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
ツールをダウンロード