Skip to content
KitploitKITPLOIT
ツールブログ
提出
ツールブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

··フィード·お問い合わせ·プライバシー·© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
shellen — :cherry_blossom: シェルコードを簡単に作成するための対話型シェルコーディング環境 | Kitploit
ツール/GitHubGitHub/konatabrk/shellen
エクスプロイトリバースエンジニアリングシェルコードCTFバイナリ解析学習と教育シェルコード生成ペイロード開発
GitHubkonatabrk/shellen

shellen

🌸 シェルコードを簡単に作成するための対話型シェルコーディング環境

リポジトリを見る
907935年前Kitploit レビュー済み

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有

Shellen

概要

Shellenは対話型のシェルコード作成環境です。シェルコードを書くための便利なツールをお探しなら、shellenはあなたの友になるかもしれません。Shellenはアセンブルツールや逆アセンブルツールとしても使用できます。

shellenのすべての操作にはkeystoneエンジンとcapstoneエンジンが使用されています。

Shellenはpython3でのみ動作します。python2のサポートは将来追加されるかもしれません。

インストール

まず、shellenの依存パッケージをインストールする必要があります:

root@kitploit:~
$ sudo apt-get install cmake python3-dev python3-setuptools

pip3を使用してshellenの安定版をインストールできます:

root@kitploit:~
$ sudo pip3 install shellen

または、必要なパッケージがすでにすべて揃っている場合(必要条件を参照):

root@kitploit:~
$ python3 setup.py install

keystone-engineのインストールで問題が発生した場合は、keystone-engineをコンパイルする必要があります(keystoneリポジトリ内のCOMPILE.mdファイルを参照)。

Shellenの実行方法

shellenと必要なパッケージをインストールした後、ターミナルで次のように入力するとshellenを実行できます:

root@kitploit:~
$ shellen

shellenの使用方法については、shellenのhelpコマンドを実行すると情報を得られます。

Shellenの機能

Shellenは命令のアセンブルと逆アセンブルを行うため、それぞれasmモードとdsmモードという2つの使用モードがあります。その他の機能には、システムコールテーブルの検索や一般的なシェルコードの検索などがあります。

プロンプト

Shellenには、現在のモード、OS(システムコール用のオペレーティングシステム)、および現在のモードで選択されているアーキテクチャを表示する便利なプロンプトがあります。Shellenのプロンプトは次のようになります:

root@kitploit:~
L:asm:x86_32 >

ターミナルで入力しているのと同じように入力を編集できます。また、shellenはコマンド履歴を記録します(上矢印キーを押すだけで以前のコマンドを表示できます)。

プロンプトのLはLinuxの短縮名です。以下に他のすべてのOS名を示します:

  • LはLinux
  • WはWindows
  • MはMacOS

OSを変更したい場合は、次のようにsetos [linux/windows/macos]と入力します:

root@kitploit:~
L:asm:x86_32 > setos windows

[+] OS changed to windows.

現在のモードを変更するには、プロンプトでasmまたはdsmを入力します。

root@kitploit:~
L:dsm:arm32 > asm

[+] Changed to asm (assembly) mode

L:asm:x86_32 > dsm

[+] Changed to dsm (disassembly) mode

L:dsm:arm32 > 

基本コマンド

コマンド説明
clearターミナル画面をクリアします。Windowsのclsや*nix系のclearと同じです。
helpヘルプメッセージを表示します。
quit,q,exit

アセンブル

命令をアセンブルするには、次のようにセミコロンで区切って入力します:

root@kitploit:~
L:asm:x86_32 > mov edx, eax; xor eax, eax; inc edx; int 80;
   [+] Bytes count: 7
       Raw bytes:  "\x89\xc2\x31\xc0\x42\xcd\x50"
       Hex string: "89c231c042cd50"

アセンブルされたバイトにヌルバイトが含まれている場合、shellenがそのことを通知します。

逆アセンブル

逆アセンブルはアセンブルと似ています。プロンプトにバイトを入力して結果を確認してください!

root@kitploit:~
L:dsm:x86_32 > 89c231c042cd50
        0x00080000:     mov     edx, eax
        0x00080002:     xor     eax, eax
        0x00080004:     inc     edx
        0x00080005:     int     0x50

シェルコードの実行

また、シェルコードをサブプロセスで実行することもできます。これによりシステムに害が及ぶ可能性があることに注意してください! サブプロセスで最後のシェルコードにジャンプします。何が問題になるというのでしょう? なお、コードがロードされるベースアドレスを制御することはできず、命令がCPUにとって意味のあるものであることを前提としています。使用方法については、shellen内のhelpを参照してください。

潜在的に危険なシェルコードをより安全に実行できるよう、何らかの仮想環境でサブプロセスを実行することを計画しています。

アーキテクチャ

asmモードとdsmモードは、さまざまなアーキテクチャで動作します。現在のモードで利用可能なアーキテクチャの一覧を表示するには、次のように入力します:

root@kitploit:~
L:dsm:x86_32 > archs
┌────────┬────────┬─────────┬─────────┬────────┐
│        │        │         │         │        │
│ arm32  │ mips32 │ sparc32 │ systemz │ x86_16 │
│ arm64  │ mips64 │ sparc64 │         │ x86_32 │
│ arm_tb │        │         │         │ x86_64 │
└────────┴────────┴─────────┴─────────┴────────┘

現在のアーキテクチャを変更するには、次のように入力します:

root@kitploit:~
L:dsm:x86_32 > setarch arm32

[+] Architecture of dsm changed to arm32

システムコール

シェルコードを作成するときは、システムコールが必要になります。shellenでシステムコールを調べるには、sysと目的のシステムコール名を入力します。Shellenは、探しているシステムコールを含む可能性のあるシステムコールのリストを表示します。

root@kitploit:~
L:asm:x86_32 > sys open

┌────────┬───────┬──────────────────────┬──────────────────────┬──────────────┬──────────────┐
│ name   │ eax   │ ebx                  │ ecx                  │ edx          │ esi          │
├────────┼───────┼──────────────────────┼──────────────────────┼──────────────┼──────────────┤
│ open   │ 0x05  │ const char *filename │ int flags            │ umode_t mode │ -            │
│ openat │ 0x127 │ int dfd              │ const char *filename │ int flags    │ umode_t mode │
└────────┴───────┴──────────────────────┴──────────────────────┴──────────────┴──────────────┘

sysは、指定されたシステムコールの可能なバリアントのリストを表示します。shellenが検索するシステムコールテーブルは、選択されたアーキテクチャとオペレーティングシステム(OS)によって異なります。この場合、アーキテクチャはx86_32で、OSはLinuxです。

一般的なシェルコード

Shellenは、キーワードに応じた一般的なシェルコードのリストを表示できます。Shellenのキーワード検索はshell-storm.orgのAPIを使用しており(作者に感謝!)、次のように使用できます:

root@kitploit:~
L:asm:x86_32 > shell <keyword> <count>

countパラメータは必須ではないことに注意してください。shell <keyword> <count>の出力の画像は画像セクションにあります。

対応OS

現在、shellenはLinuxでのみサポートされています。WindowsまたはMacOS用の機能を追加したい場合は、issueを作成してください。サポートを追加します。

問題の報告や新機能のリクエスト方法

問題やバグなどを見つけた場合は、その問題についてissueを作成してください。また、shellenに追加すると良い機能があると思った場合も同じように、issueを作成してください。リクエストいただいた機能の追加を試みます。

必要条件

  • keystone
  • capstone
  • colorama
  • termcolor
  • terminaltables

TODO

  • アセンブル
  • 逆アセンブル
  • システムコール一覧
  • 一般的なシェルコードのデータベース
  • ROPビルダーの追加
  • 複数行でのアセンブリコード編集の追加
  • asmモードとdsmモードで異なる履歴
  • シェルコードを実行するための仮想環境

画像

ちょっとした画像の数々です。(さまざまな機能が追加されたため、古いものです)





ツールをダウンロード
現在のセッションを終了してshellenを終了します