byob - 学生、研究者、開発者向けのオープンソースのポストエクスプロイト フレームワーク。

(An open-source post-exploitation framework for students, researchers and developers.)

Created at: 2017-12-18 17:10:12
Language: Python
License: GPL-3.0

バナー

ライセンス バージョン 建てる カバレッジ ステータス 不和 つぶやき

質問?ドキュメントを確認するか、 Discord サポート サーバーに参加してください

免責事項: このプロジェクトは、承認されたテストまたは教育目的でのみ使用する必要があります。

BYOB は、学生、研究者、開発者向けのオープンソースのポストエクスプロイト フレームワークです。次のような機能が含まれています。

  • 直感的なユーザー インターフェイスを備えたコマンド & コントロール サーバー
  • 複数のプラットフォーム用のカスタム ペイロード ジェネレーター
  • 12 のポストエクスプロイト モジュール

学生や開発者が独自のコードを簡単に実装し、C2 サーバーやリモート管理ツールをゼロから作成することなく、クールな新機能を追加できるように設計されています。

このプロジェクトには、オリジナルのコンソール ベースのアプリケーション(

/byob
) とWeb GUI (
/web-gui
) の 2 つの主要部分があります。

Web GUI

ダッシュボード

悪用後のモジュールを実行するためのポイント アンド クリック インターフェイスを備えた C2 サーバーのコントロール パネル。コントロール パネルには、クライアント マシンのインタラクティブなマップと、クライアント マシンを効率的かつ直感的に管理できるダッシュボードが含まれています。

ダッシュボード_プレビュー

ペイロードジェネレーター

ペイロード ジェネレーターは、Docker コンテナーと Wine サーバーを含むブラック マジックを使用して、選択したプラットフォーム/アーキテクチャの実行可能なペイロードをコンパイルします。これらのペイロードは、 Diffie-Hellman IKEを使用して安全な対称キーを生成した後、AES-256 を介して暗号化されたネットワーク経由の通信でリバース TCP シェルを生成します。

ペイロード_プレビュー

端末エミュレータ

Web アプリにはブラウザー内ターミナル エミュレーターが含まれているため、Web GUI を使用している場合でもシェルに直接アクセスできます。

terminal_preview

コンソール アプリケーション

クライアント

クライアント

ステージングされたペイロード、リモート インポート、および無制限のポストエクスプロイト モジュールを使用して、完全に検出不可能なクライアントを生成します

  1. リモート インポート: サードパーティ パッケージをディスクに書き込んだり、ダウンロード/インストールしたりせずに、サーバーからリモートでインポートします。
  2. ディスクに何も書き込まれない : リモート インポートにより、任意のコードをメモリに動的にロードし、現在実行中のプロセスに直接インポートできるため、クライアントはディスクに何も書き込みません。
  3. ゼロ依存性 (Python 自体でさえもありません) : クライアントは Python 標準ライブラリだけで実行され、非標準のパッケージ/モジュールをサーバーからリモートでインポートし、スタンドアロンの Python インタープリターを使用して、任意のプラットフォーム用にフォーマットされたポータブル バイナリ実行可能ファイルにコンパイルできます。ターゲット ホストに Python 自体がない場合でも、あらゆる環境で実行できます。
  4. ワンクリックで新機能を追加: ディレクトリにコピーしたすべての Python スクリプト、モジュール、またはパッケージは
    ./byob/modules/
    、コマンド & コントロール サーバーの実行中に、すべてのクライアントで自動的にリモートでインポート可能になり、直接使用できるようになります。
  5. 独自のモジュールを作成する: 基本的なモジュール テンプレートが
    ./byob/modules/
    ディレクトリに用意されているため、独自のモジュールを簡単に簡単に作成できます。
  6. ファイルサイズを肥大化させずに無制限のモジュールを実行:リモートインポートを使用して、クライアントのファイルサイズに1バイトも追加することなく無制限の機能を追加します
  7. 完全に更新可能: 各クライアントは、リモート インポートに使用できる新しいコンテンツがないかサーバーを定期的にチェックし、何かが追加/削除された場合はメモリ内リソースを動的に更新します。
  8. プラットフォームに依存しない : すべてが Python (プラットフォームに依存しない言語) で記述され、生成されたクライアントは、オプションで移植可能な実行可能ファイル ( Windows ) にコンパイルするか、スタンドアロン アプリケーション ( macOS )にバンドルできます。
  9. Bypass Firewalls : クライアントはリバース TCP 接続を介してコマンド & コントロール サーバーに接続します。これは、デフォルトのフィルター構成が主に着信接続をブロックするため、ほとんどのファイアウォールをバイパスします。
  10. ウイルス対策対策: 既知のウイルス対策製品の名前を持つプロセスの生成をブロックすることにより、ウイルス対策による分析を回避します。
  11. 分析を防ぐためにペイロードを暗号化する : メインのクライアント ペイロードは、ランダムな 256 ビット キーで暗号化されます。このキーは、ペイロード ステージャーと共に生成されます。
  12. リバース エンジニアリングの防止: デフォルトでは、仮想マシンまたはサンドボックスが検出されると、クライアントは実行を中止します。

モジュール

モジュール

クライアントがリモートでインポートできるエクスプロイト後のモジュール

  1. 持続性(
    byob.modules.persistence
    ): 5 つの異なる方法を使用して、ホスト マシンで持続性を確立します。
  2. パケット スニファー(
    byob.modules.packetsniffer
    ): ホスト ネットワークでパケット スニファーを実行し、.pcap ファイルをアップロードします。
  3. 特権の昇格(
    byob.modules.escalate
    ): UAC バイパスを試行して、権限のない管理者特権を取得します
  4. ポート スキャナー(
    byob.modules.portscanner
    ): ローカル ネットワークをスキャンして、他のオンライン デバイスと開いているポートを探します。
  5. キーロガー(
    byob.modules.keylogger
    ): ユーザーのキーストロークと入力されたウィンドウ名をログに記録します
  6. スクリーンショット(
    byob.modules.screenshot
    ): 現在のユーザーのデスクトップのスクリーンショットを撮ります
  7. Outlook (
    byob.modules.outlook
    ): ローカルの Outlook クライアントから電子メールを閲覧/検索/アップロード
  8. プロセス制御(
    byob.modules.process
    ): ホスト上で現在実行中のプロセスを一覧表示/検索/強制終了/監視
  9. iCloud (
    byob.modules.icloud
    ): macOS でログインしている iCloud アカウントを確認します
  10. マイナー(
    byob.core.miner
    ): 組み込みのマイナーまたは XMRig を使用して、バックグラウンドで Monero をマイニングします。

サーバ

サーバ

永続的なデータベースとコンソールを備えたコマンド & コントロール サーバー

  1. コンソール・ベースのユーザー・インターフェース: クライアント・ホスト・マシンへの直接端末アクセスを提供するリバース TCP シェルを介して、クライアント・ホスト・マシンをリモートで制御するための簡素化されたコンソール・インターフェース
  2. Persistent SQLite Database : クライアント ホスト マシンに関する識別情報を格納する軽量データベース。これにより、リバース TCP シェル セッションが任意の期間切断されても持続し、長期的な偵察が可能になります。
  3. クライアント サーバー アーキテクチャ: ローカルにインストールされたすべての python パッケージ/モジュールは、ターゲット マシンのディスクに書き込むことなく、クライアントがリモートでインポートできるように自動的に作成されます。これにより、クライアントは、ターゲット マシンにインストールされていないパッケージを必要とするモジュールを使用できます。

芯

ジェネレーターとサーバーで使用されるコア フレームワーク モジュール

  1. ユーティリティ(
    byob.core.util
    ): 多くのモジュールで使用されるその他のユーティリティ関数
  2. セキュリティ(
    byob.core.security
    ): Diffie-Hellman IKE & 3 つの暗号化モード (AES-256-OCB、AES-256-CBC、XOR-128)
  3. ローダー(
    byob.core.loaders
    ): サーバーから任意のパッケージ/モジュール/スクリプトをリモートでインポートします
  4. ペイロード(
    byob.core.payloads
    ): 依存関係、パッケージ、およびモジュールをリモートでインポートするように設計されたリバース TCP シェル
  5. ステージャー(
    byob.core.stagers
    ): 独自のペイロード ステージャーを生成して、分析と検出を防止します。
  6. ジェネレーター(
    byob.core.generators
    ): すべて動的にクライアント ジェネレーターのコードを生成する関数
  7. DAO (
    byob.core.dao
    ): コマンド & コントロール サーバーと SQLite データベース間のやり取りを処理します。
  8. Handler (
    byob.core.handler
    ): サーバーへのリモート ファイル アップロード用の HTTP POST 要求ハンドラ

すること

寄稿者歓迎!あなたが思いついた新機能や改善点について、気軽にプルリクエストを発行してください!

  1. リモート インポート暗号化- リモート インポートされるパッケージ/モジュールのデータ ストリームの暗号化 (機密性/信頼性/整合性を維持し、逆シリアル化に起因するリモート コード実行の脆弱性を防止するため)
  2. トランスポート タイプ- より多くのトランスポート タイプ (HTTP/S、DNS など) のサポートを追加します。
  3. バグ修正- バグ/問題を修正します