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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
BlackBerryC2 — 暗号化されたコマンド&コントロール(C2)研究フレームワーク。サイバーセキュリティ教育、レッドチームラボ、およびセキュアなクライアント・サーバー通信実験向け。 | Kitploit
ツール/GitHubGitHub/dereeqw/blackberryc2
暗号化/復号化ツールペイロード生成IDS/IPS回避ネットワークセキュリティ暗号化ペネトレーションテストコマンド&コントロール学習と教育レッドチーミングリモートアクセスツール
GitHubdereeqw/blackberryc2

BlackBerryC2

31255ヶ月前Kitploit レビュー済み

人気

すべて見る →

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

すべてのツールを探索

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

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

暗号化されたコマンド&コントロール(C2)研究フレームワーク。サイバーセキュリティ教育、レッドチームラボ、およびセキュアなクライアント・サーバー通信実験向け。

リポジトリを見る

BlackBerryC2 2.0.0-beta

BlackBerryC2は、教育目的、セキュリティ研究、管理された実験環境専用に設計された、暗号化されたリモート管理およびC2フレームワークです。 BlackBerryC2デモ

このプロジェクトは、外部TLSスタックに依存せずに、アプリケーション層の暗号化、セッション管理、安全なクライアント通信を備えたカスタムコマンド&コントロールサーバーを構築する方法を示しています。


⚠️ 重要なお知らせ

このプロジェクトはマルウェアではありません。不正アクセスを目的としたものではありません。

BlackBerryC2:

  • 自己増殖しません
  • 脆弱性を自動的に悪用しません
  • 永続化メカニズムは含みません
  • アンチウイルスソフトウェアを回避しようとはしません

所有している、またはテストする明示的な許可があるシステムとネットワークでのみ使用してください。


Python依存関係:

root@kitploit:~
pip install cryptography prompt_toolkit zstandard

zstandardはオプションですが、1GBを超える転送には推奨されます。


主な機能

  • カスタムTCPベースの暗号化C2サーバー (v2.0)
  • ECDHE (secp256r1) 鍵交換 — エフェメラルまたは永続的
  • セッションごとのAES-256-GCM認証付き暗号化
  • パケットごとのHMAC-SHA256認証 + アンチリプレイシーケンス番号
  • 複数の同時クライアントセッション
  • タブ補完機能付きインタラクティブオペレーターコンソール (prompt_toolkit)
  • 暗号化されたリモートコマンド実行
  • zlib / Zstandard圧縮による暗号化ファイル転送
  • 再帰的ディレクトリアップロード/ダウンロード (get -r, put -r)
  • バックグラウンド転送 (-b フラグ) — 非ブロッキング、キャンセル可能
  • 転送再開サポート (.partial + .resume ファイル)
  • クライアントペイロードジェネレーター (generate-payload)
  • IPブロッキング: 永続的ブロックリスト + 一時的な自動禁止
  • スキャン/フラッド検出: コネクトスキャン、バナーグラブ、ハンドシェイク失敗、ハートビートフラッド
  • オプションのHTTP(S)/TLSプロキシサポート (BlackBerryHTTPs_TLSProxyGUI)
  • SPA(シングルパケット認証)および事前認証用ポートノッキング
  • BerryTransferモード — 専用のファイル転送専用サーバー(シェルなし)
  • 暗号化されたセッションログ (AES-256-GCM + PBKDF2、60万イテレーション)
  • 暗号化されたサーバーログ、シェル内ビューア付き (log コマンド)
  • 起動設定を logs/last_start.json に保存

暗号設計

BlackBerryC2 v2.0は以下のように安全な通信を確立します:

  1. クライアントがTCP経由で接続。サーバーはサービスバナーを送信。
  2. クライアントがREQUEST_PUBKEYを送信。
  3. サーバーが自身のエフェメラルECDHE公開鍵 (secp256r1) を送信。
  4. クライアントが自身のECDHE公開鍵 + HMAC-SHA256認証タグを送信。
  5. サーバーがHMACを事前共有秘密鍵 (HMAC_PRE_SHARED_SECRET) に対して検証。
  6. 両側が共有秘密鍵からHKDF-SHA256を介して256ビットのAESセッション鍵を導出。
  7. 以降のすべての通信は、パケットごとのHMAC-SHA256とアンチリプレイシーケンス番号を備えたAES-256-GCMを使用。

各セッションは以下を維持:

  • 独自のAES-256鍵とHMAC鍵
  • 独立したノンス(メッセージごとに12バイトのランダム)
  • 分離されたアンチリプレイトラッカー(シーケンスウィンドウ ±100)
  • フラッド保護レートリミッター(設定可能なコマンド/秒)

すべての暗号鍵は実行時に生成され、再起動間で再利用されることはありません(--persistenteが設定されていない限り)。


サーバーの起動

root@kitploit:~
python3 BlackBerryC2_server.py

デフォルト設定:

  • ホスト: 0.0.0.0
  • ポート: 9949

コマンドライン引数

例:

root@kitploit:~
# 基本起動(ログパスフレーズを要求)
python3 BlackBerryC2_server.py

# 永続的ECDHE鍵 + 詳細出力
python3 BlackBerryC2_server.py -p -vv

# カスタムポート、HMACチェックなし
python3 BlackBerryC2_server.py -P 8080 --no-secure

# カスタムポートでのポートノッキング
python3 BlackBerryC2_server.py --spa --spa-mode knock --knock-seq 9001,9002,9003

# BerryTransferモード + 自動確認
python3 BlackBerryC2_server.py --berrytransfer --auto-confirm

# サーバーを起動せずにログを表示/復号
python3 BlackBerryC2_server.py --logs

オペレーターコンソールコマンド

サーバー管理

プロキシ


セッションコマンド (select <ID> 内)

一般

ファイル転送


BerryTransferモード

BerryTransferは、scpに触発された専用のファイル転送専用サーバーモードです。このモードがアクティブな場合、サーバーはすべてのシェルアクセスを拒否し、BT:*プロトコルコマンドのみを受け入れます。

起動:

root@kitploit:~
python3 BlackBerryC2_server.py --berrytransfer
python3 BlackBerryC2_server.py --berrytransfer --auto-confirm  # GETのオペレータープロンプトなし

BerryTransferシェルコマンド:

転送ログは logs/bt_transfer.jsonl に書き込まれます(オプションでAES-256-GCM暗号化)。


SPA / ポートノッキング

--spaが有効な場合、クライアントはTCP接続が受け入れられる前にUDP経由で認証する必要があります。

SPAモード(デフォルト): クライアントは32バイトのHMAC-SHA256トークンを SPA_UDP_PORT に送信します。

root@kitploit:~
token = HMAC-SHA256(HMAC_SECRET, "{ip}:{time_window_30s}")

ノックモード: クライアントはタイムアウトウィンドウ内にUDPポートのシーケンスを順番にノックします。

root@kitploit:~
python3 BlackBerryC2_server.py --spa --spa-mode knock --knock-seq 7001,7002,7003 --knock-timeout 10

認可されたIPは --spa-ttl 秒間有効です(デフォルト60)。


セキュリティ機能


ロギング

ビルトインビューアでログを表示:

root@kitploit:~
BlackBerry> log

またはスタンドアロン(サーバーなし):

root@kitploit:~
python3 BlackBerryC2_server.py --logs

使用目的

このプロジェクトは以下の目的のみを意図しています:

  • 教育デモンストレーション
  • セキュリティ研究
  • 管理されたラボ環境
  • 許可されたペネトレーションテスティング

許可なくシステムに対して不正に使用することは固く禁じられています。


ライセンス

完全なライセンス詳細については LICENSE ファイルを参照してください。


免責事項

本ソフトウェアは「現状のまま」提供され、いかなる種類の保証もありません。
作者は、本ソフトウェアの誤用またはそれによって生じた損害について一切の責任を負いません。

ツールをダウンロード
フラグ説明
-p / --persistenteecdhe-cert/から永続的なECDHE鍵を使用(パスフレーズを要求)
-vデバッグロギング
-vv詳細(緩やかな)ロギング
-H <host>待受ホスト(デフォルト: 0.0.0.0)
-P <port>待受ポート(デフォルト: 9949)
--no-secureHMAC検証なしで任意のECDHEクライアントを受け入れる
--hmac <secret>カスタムHMAC事前共有秘密鍵(16進数または文字列)
--log-passphrase <pass>サーバーログをAES-256-GCM(PBKDF2 60万イテレーション)で暗号化
--logsインタラクティブログビューア — サーバーは起動しない
--spaSPA/ポートノッキング事前認証を有効化
--spa-mode <spa|knock>spa = 単一UDPトークン、knock = ポートシーケンス
--spa-port <port>SPAリスナーのUDPポート(デフォルト: 7331)
--knock-seq <ports>ノックモードのポートシーケンス(デフォルト: 7001,7002,7003)
--knock-timeout <sec>ノックシーケンス完了までの秒数(デフォルト: 10)
--spa-ttl <sec>認可されたIPが有効な秒数(デフォルト: 60)
--berrytransferBerryTransferモード: ファイル転送のみ、シェルなし
--transfer-root <dir>BerryTransferのルートディレクトリ(デフォルト: ./berry_transfers)
--auto-confirmBerryTransferですべてのGETリクエストを自動承認(オペレータープロンプトなし)
コマンド説明
listアクティブなセッションを統計情報とホスト名とともに一覧表示
select <ID>クライアントセッションと対話
all <cmd>全接続クライアントにコマンドを送信
reportサーバーの完全なステータスレポート(稼働時間、セッション、転送)
set host <HOST>待受ホストを変更(サーバーを再バインド)
set port <PORT>待受ポートを変更(サーバーを再バインド)
sVbanner "<text>"サービスのバナーを変更
generate-payloadクライアントペイロードを生成
fingerprintECDHEサーバー鍵のフィンガープリント(SHA-256)を表示
ecdhe-keys現在のECDHE鍵ペア(PEM)を表示
kill <id|ip>IDまたはIPでセッションを終了
block <IP>IPを永続的にブロック
unblock <IP>IPのブロックを解除(永続的 + 一時的)
blocklistブロックされたIP(永続的および一時的)を表示
logインタラクティブログビューア(暗号化ログ対応)
reportステータス概要: 稼働時間、セッション、転送
banner起動バナーを再表示
cleanサーバーログファイルを削除
vDEBUGロギングを切り替え
vvVERBOSEロギングを切り替え
cd <dir>サーバーのローカル作業ディレクトリを変更
E <cmd>ローカルで os.system を介してコマンドを実行
<任意のコマンド>サーバー上でローカルに実行
exitサーバーを停止して終了
コマンド説明
proxyTLS/HTTPプロキシデーモンを起動(自動モード)
proxy --mode <mode>モード: auto, tls, http, https, both, all
proxy --statsプロキシ統計情報を表示
proxy guiプロキシGUIを起動(別プロセス)
stop-proxyプロキシデーモンを停止
stop-proxy-guiプロキシGUIを停止
proxy-helpプロキシヘルプを表示
コマンド説明
helpセッションヘルプを表示
exitメインシェルに戻る
!<cmd>サーバー上でローカルにコマンドを実行
<cmd>リモートクライアントでコマンドを実行
cmd1 && cmd2チェーン: cmd1が成功した場合のみcmd2を実行
cmd1 || cmd2チェーン: cmd1が失敗した場合のみcmd2を実行
cmd1 ; cmd2チェーン: 常にcmd2を実行
コマンド説明
get <file>クライアントからファイルをダウンロード
get <dir> -r再帰的ディレクトリダウンロード
get <file> -bバックグラウンドダウンロード(非ブロッキング)
get <dir> -r -bバックグラウンド再帰的ダウンロード
put <file>ファイルをクライアントにアップロード
put <file> -excアップロードしてメモリ内で実行(スクリプト)
put <dir> -r再帰的ディレクトリアップロード
put <file> -bバックグラウンドアップロード
transfersアクティブおよび完了したすべての転送を一覧表示
stop <ID>バックグラウンド転送をキャンセル(例: stop T1)
resume <local_file>中断されたダウンロードを再開
screenshotクライアント画面をキャプチャ
コマンド説明
confirm <ID>保留中のGETリクエストを承認
deny <ID>保留中のGETリクエストを拒否
pending承認待ちのGETリクエストを一覧表示
auto [on|off]自動確認を切り替え/設定
clientsアクティブなBerryTransferセッションを表示
ls [dir]転送ルート内のファイルを一覧表示
tree [dir]転送ルートのファイルツリーを表示
find <name>転送ルート内のファイルを検索
rm <file>転送ルートからファイルを削除(確認あり)
log [N]最後のN件の転送ログエントリを表示(デフォルト30)
cd <dir>ローカル作業ディレクトリを変更
pwd現在のローカルディレクトリを表示
!<cmd>ローカルシステムコマンドを実行
exitBerryTransferサーバーを停止
機能詳細
鍵交換ECDHE secp256r1 エフェメラルまたは永続的
セッション暗号化AES-256-GCM、メッセージごとにランダムな12バイトノンス
クライアント認証ハンドシェイク中の共有秘密鍵に対するHMAC-SHA256
メッセージ完全性パケットごとのHMAC-SHA256(seq + nonce + ciphertextをカバー)
アンチリプレイセッションごとのシーケンス番号ウィンドウトラッカー
ダウングレード保護最低AES鍵サイズを強制(256ビット)
ハートビートレート制限ハートビート間隔最小3秒; 違反は追跡
コマンドフラッド保護レートリミッター; しきい値超過後自動切断
スキャン検出コネクトスキャン、バナーグラブ、ハンドシェイク失敗カウンター
IP管理永続的ブロックリスト + 一時的な禁止(自動+手動)
ログ暗号化AES-256-GCM + PBKDF2-HMAC-SHA256(60万イテレーション)
応答ジッター10〜50msのランダムジッターでタイミング攻撃に対抗
事前認証TCP受け入れ前にSPAトークンまたはポートノッキング
ログファイル内容
logs/BlackBerryC2_Server.logプレーンテキスト回転式サーバーログ(INFO以上)
logs/BlackBerryC2_enc.log暗号化されたサーバーログ(--log-passphraseが設定されている場合)
logs/sessions.jsonlセッションイベント: 接続、切断、バイト数
logs/bt_transfer.jsonlBerryTransferファイル転送ログ
logs/last_start.json起動設定スナップショット(ホスト、ポート、トークン、PID)