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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
shellnoob — シェルコード作成ツールキット | Kitploit
ツール/GitHubGitHub/reyammer/shellnoob
エクスプロイトリバースエンジニアリングスクリプトと自動化シェルコードデバッガバイナリ解析学習と教育シェルコード生成ペイロード開発
GitHubreyammer/shellnoob

shellnoob

シェルコード作成ツールキット

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

人気

すべて見る →

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

すべてのツールを探索

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

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

ShellNoob

シェルコードを書くのは常に超楽しいですが、いくつかの部分は非常に退屈でエラーが発生しやすいものです。楽しい部分だけに集中して、ShellNoob を使いましょう!

簡単な概要は、Black Hat Arsenal トークのスライドをご覧ください: リンク

貢献したいですか? 機能リクエスト? バグ報告? 悪態? すべてのフィードバックを歓迎します!! (ただ、ある種のフィードバックは他より歓迎されることもあります :-))。

質問があれば、Twitter の @reyammer まで気軽に ping するか、yanick[AT]cs.ucsb.edu までメールしてください!

コントリビューターと謝辞

  • Levente Polyak (@anthraxx42)
    • Python 3 サポートを追加
    • バグ修正
  • @ToolsWatch と Black Hat スタッフ
    • 私のツールを披露する機会を与えてくれました :D

ニュース

  • 01/21/2014 - ShellNoob 2.1 がリリースされました! Python 3 の完全サポートと多数のバグ修正が含まれています。全クレジットは Levente Polyak に!

  • 07/29/2013 - ShellNoob 2.0 がリリースされました!

  • 06/08/2013 - ShellNoob が Black Hat Arsenal に採択されました! アナウンスはこちら: リンク。

機能

  • シェルコードをさまざまな形式とソース間で変換します。現在サポートされている形式: asm、bin、hex、obj、exe、C、python、ruby、pretty、safeasm、completec、shellstorm。(詳細は「形式の説明」セクションを参照。)
  • インタラクティブな asm からオペコードへの変換(およびその逆)モード。シェルコード内で特定のバイトを使用できない場合に、特定のアセンブリ命令が問題を引き起こすかどうかを確認したいときに便利です。
  • ATT 構文と Intel 構文の両方をサポート。--intel スイッチを確認してください。
  • 32 ビットと 64 ビットをサポート(x86_64 マシンで実行する場合)。--64 スイッチを確認してください。
  • システムコール番号、定数、エラー番号を解決します(今度は本物です! :-))。
  • ポータブルで簡単にデプロイ可能(gcc/as/objdump と python のみに依存)。単一の自己完結型 Python スクリプトであり、Python2.7+ と Python3+ の両方をサポートします。
  • その場での開発: ターゲットアーキテクチャ上で直接 ShellNoob を実行できます!
  • Linux/x86、Linux/x86_64、Linux/ARM、FreeBSD/x86、FreeBSD/x86_64 の組み込みサポート。
  • "ブレークポイントを前置" オプション。-c スイッチを確認してください。
  • stdin からの読み取り / stdout への書き込みをサポート(ファイル名として "-" を使用)
  • 超お手軽デバッグ: --to-strace と --to-gdb オプションを確認してください!
  • スクリプト内で Python モジュールとして ShellNoob を使用! 「ライブラリとしての ShellNoob」セクションを確認してください。
  • 詳細モードでは変換の低レベルなステップを表示: デバッグ / 理解 / 学習に役立ちます!
  • 追加プラグイン: --file-patch、--vm-patch、--fork-nopper オプションでバイナリパッチを簡単に! (詳細は以下)

使用例

組み込みヘルプ

root@kitploit:~
$ ./shellnoob.py -h
shellnoob.py [--from-INPUT] (input_file_path | - ) [--to-OUTPUT] [output_file_path | - ]
shellnoob.py -c (prepend a breakpoint (Warning: only few platforms/OS are supported!)
shellnoob.py --64 (64 bits mode, default: 32 bits)
shellnoob.py --intel (intel syntax mode, default: att)
shellnoob.py -q (quite mode)
shellnoob.py -v (or -vv, -vvv)
shellnoob.py --to-strace (compiles it & run strace)
shellnoob.py --to-gdb (compiles it & run gdb & set breakpoint on entrypoint)

Standalone "plugins"
shellnoob.py -i [--to-asm | --to-opcode ] (for interactive mode)
shellnoob.py --get-const <const>
shellnoob.py --get-sysnum <sysnum>
shellnoob.py --get-errno <errno>
shellnoob.py --file-patch <exe_fp> <file_offset> <data> (in hex). (Warning: tested only on x86/x86_64)
shellnoob.py --vm-patch <exe_fp> <vm_address> <data> (in hex). (Warning: tested only on x86/x86_64)
shellnoob.py --fork-nopper <exe_fp> (this nops out the calls to fork(). Warning: tested only on x86/x86_64)

"Installation"
shellnoob.py --install [--force] (this just copies the script in a convinient position)
shellnoob.py --uninstall [--force]

Supported INPUT format: asm, obj, bin, hex, c, shellstorm
Supported OUTPUT format: asm, obj, exe, bin, hex, c, completec, python, bash, ruby, pretty, safeasm
All combinations from INPUT to OUTPUT are supported!

インストール(必要な場合のみ)

root@kitploit:~
$ ./shellnoob.py --install

これはスクリプトを /usr/local/bin/snoob にコピーするだけです。それだけです。(元に戻すには ./shellnoob.py --uninstall を実行してください)。

超柔軟な CLI でシェルコードをさまざまな形式に変換

root@kitploit:~
$ snoob --from-asm shell.asm --to-bin shell.bin

いくつかの同等の代替方法(ツールはファイル拡張子からあなたの意図を推測しようとします..)

root@kitploit:~
$ snoob --from-asm shell.asm --to-bin
$ snoob shell.asm --to-bin
$ snoob shell.asm --to-bin - > shell.bin
$ cat shell.asm | snoob --from-asm - --to-bin - > shell.bin

形式の説明

  • "asm" - 標準アセンブリ。デフォルトは ATT 構文で、Intel 構文を使用するには --intel を使用してください。(詳細は「asm を出力形式として」セクションを参照)
  • "bin" - 生バイナリ ('\x41\x42\x43\x44')
  • "hex" - 16進数でエンコードされた生バイナリ ('41424344')
  • "obj" - ELF
  • "exe" - 実行可能な ELF
  • "c" - C プログラムに埋め込む準備ができたもの。
  • "python"、"bash"、"ruby" - こちらも同様。
  • "completec" - メモリを RWX として適切に設定するコンパイル可能な C(自己書き換えシェルコードをサポートするため)
  • "safeasm" - 100% アセンブル可能なアセンブリ: "asm" の取得元である objdump の出力は、アセンブルできないことがあります。これは (.byte 表記で) "生の" バイトを出力するため、"as" でアセンブル可能です。
  • "shellstorm" - --from-shellstorm スイッチは <shellcode_id> を引数として受け取ります。ShellNoob は選択されたシェルコードを shell-storm シェルコード DB から取得し、選択した形式に変換します。

簡単デバッグ

root@kitploit:~
$ snoob -c shell.asm --to-exe shell
$ gdb -q shell
$ run
Reading symbols from ./shell...(no debugging symbols found)...done.
(gdb) run
Starting program: ./shell

Program received signal SIGTRAP, Trace/breakpoint trap.
0x08048055 in ?? ()
(gdb) 

または、新しい --to-strace と --to-gdb スイッチを使用できます!

root@kitploit:~
$ snoob open-read-write.asm --to-strace
Converting open-read-write.asm (asm) into /tmp/tmpBaQbzP (exe)
execve("/tmp/tmpBaQbzP", ["/tmp/tmpBaQbzP"], [/* 97 vars */]) = 0
[ Process PID=12237 runs in 32 bit mode. ]
open("/tmp/secret", O_RDONLY)           = 3
read(3, "thesecretisthedolphin\n", 255) = 22
write(1, "thesecretisthedolphin\n", 22thesecretisthedolphin
) = 22
_exit(0)  
root@kitploit:~
$ snoob open-read-write.asm --to-gdb
Converting open-read-write.asm (asm) into /tmp/tmpZdImWw (exe)
Reading symbols from /tmp/tmpZdImWw...(no debugging symbols found)...done.
(gdb) Breakpoint 1 at 0x8048054
(gdb)

ShellNoob がエントリポイントにブレークポイントを自動的に設定することに注目してください!

システムコール番号、定数、errno を取得

root@kitploit:~
$ snoob --get-sysnum read
i386 ~> 3
x86_64 ~> 0
$ snoob --get-sysnum fork
i386 ~> 2
x86_64 ~> 57
root@kitploit:~
$ snoob --get-const O_RDONLY
O_RDONLY ~> 0
$ snoob --get-const O_CREAT
O_CREAT ~> 64
$ snoob --get-const EINVAL
EINVAL ~> 22
root@kitploit:~
$ snoob --get-errno EINVAL
EINVAL ~> Invalid argument
$ snoob --get-errno 22
22 ~> Invalid argument
$ snoob --get-errno EACCES
EACCES ~> Permission denied
$ snoob --get-errno 13
13 ~> Permission denied

インタラクティブモード

root@kitploit:~
$ ./shellnoob.py -i --to-opcode
asm_to_opcode selected
>> mov %eax, %ebx
mov %eax, %ebx ~> 89c3
>> 
root@kitploit:~
./shellnoob.py -i --to-asm
opcode_to_asm selected
>> 89c3
89c3 ~> mov %eax,%ebx
>>

ライブラリとしての ShellNoob

root@kitploit:~
$ python
>>> from shellnoob import ShellNoob
>>> sn = ShellNoob(flag_intel=True)

>>> sn.asm_to_hex('nop; mov ebx,eax; xor edx,edx')
'9089c331d2'
>>> sn.hex_to_inss('9089c331d2')
['nop', 'mov ebx,eax', 'xor edx,edx']

>>> sn.do_resolve_syscall('fork')
i386 ~> 2
x86_64 ~> 57

asm を出力形式として

"asm" が出力形式の場合、ShellNoob は最善を尽くします。逆アセンブラには objdump が使われますが、その出力は完璧ではありません。ShellNoob はバイト(.byte 表記)を追加して逆アセンブル出力を拡張し、適切な場合は ASCII での等価表現(.ascii 表記)も表示します。これは objdump の出力を変更/アセンブルしたいが、簡単な修正が必要な場合に便利です。

.byte 表記の例:

root@kitploit:~
jmp 0x37              # .byte 0xeb,0x35      
pop %ebx              # .byte 0x5b          
mov %ebx,%eax         # .byte 0x89,0xd8      
add $0xb,%eax         # .byte 0x83,0xc0,0x0b 
xor %ecx,%ecx         # .byte 0x31,0xc9      

.ascii 表記の例:

root@kitploit:~
das                   # .ascii "/"
je 0xac               # .ascii "tm"
jo 0x70               # .ascii "p/"
jae 0xa8              # .ascii "se"
arpl %si,0x65(%edx)   # .ascii "cre"
je 0xa0               # .ascii "tX

ライセンス

ShellNoob は MIT ライセンスの下でリリースされています。COPYRIGHT ファイルを確認してください。

ツールをダウンロード