
Bella は、macOS 向けの純粋な Python 製ポストエクスプロイテーションデータマイニングツール & リモート管理ツールです。 🍎💻
Bellaは、macOS向けの純粋なPython製ポストエクスプロイテーションデータマイニングツール&リモート管理ツールです。🍎 💻
Bellaは、macOS向けの堅牢な純粋なPython製のポストエクスプロイテーションおよびリモート管理ツールです。
Bella(別名サーバー)は、macOS 10.6以降を実行する任意のシステムに配置できるSSL/TLS暗号化リバースシェルです。Bellaは以下の機能を提供します:
SSHインスタンスをエミュレートする疑似TTY [ほとんどの機能でCTRL-Cサポート、ストリーミング出力、インラインバッシュスクリプティングの完全サポート、タブ補完、コマンド履歴など].
自動インストーラー! バイナリを実行するだけで、Bellaが残りの処理を行います - ハードドライブの隠し場所に永続的なリバースシェルを設置し、アンチウイルスには検出されません。
任意のファイルのアップロード/ダウンロード
リバースVNC接続。
コンピュータのマイク入力をストリーミングして保存。
システムプロンプトによるログイン/キーチェーンパスワードのフィッシング。
iTunesプロンプトによるApple IDパスワードのフィッシング。
iCloudトークンの抽出。
抽出されたトークンまたはパスワードを使用したユーザーのすべてのiCloudサービスへのアクセス。
これには、iCloud連絡先、iPhoneを探す、友達を探す、iOSバックアップが含まれます。
Google Chromeパスワードの抽出。
ChromeとSafariの履歴抽出。
kcパスワード発見時の自動キーチェーン復号化。
macOSチャット履歴。
iTunes iOSバックアップの列挙。
すべてのBellaアクティビティとダウンロードファイルの広範なログ記録。
非常に包括的なデータストレージ。 Bellaが発見したすべての情報[トークン、パスワードなど]は、Bellaを実行しているコンピュータ上の暗号化されたSQLデータベースに保存されます。この情報は、より高速な関数実行と「スマートな」リバースシェルのために使用されます。
その他にもたくさんの素晴らしい機能! 実際に試して動作を確認してください。
これらは、ユーザーランドにいる場合に利用可能な機能の一部です。このシェルは、ユーザーがインターネットに接続しているとき(ログイン中でコンピュータがスリープ状態でない場合)にいつでもアクセスできます。
root権限を取得すると、Bellaの機能は大幅に拡張されます。
meterpreterシェルのgetsystem関数と同様に、Bellaにはget_root関数があり、フィッシングされたユーザーパスワードや、システムが脆弱な場合のローカル権限昇格エクスプロイトなど、さまざまな手段でrootアクセスを試みます。
rootアクセスを取得すると、Bellaは/Libraryの隠しディレクトリに移動し、自身をLaunchDaemonとしてロードします。これにより、コンピュータがネットワーク接続を持っている限り、常にBellaインスタンスへのリモートアクセスが提供されます。rootを取得すると、以下のことが可能になります:
マルチユーザーサポート! Bellaは、コンピュータ上のアクティブユーザーからのすべての情報を包括的なデータベースで追跡し、アクティブなコンピュータユーザーに自動的に切り替えます。前述のすべてのデータ抽出技術が、マシン上のすべてのユーザーに対して利用可能になります。
すべてのTLS/SSLトラフィックを復号化し、コントロールセンター経由でリダイレクト! [素敵なアクティブMITM攻撃]
キーボードおよび/またはマウスの無効化/有効化。
ユーザーがノートパソコンを閉じても接続を維持するためにInsomnia KEXTをロード。
iCloudトークンとChromeパスワードの自動ダンプ [SIPが無効な場合、keychaindumpとchainbreakerを活用]
舞台裏の多くの自動化。
Bellaの力は、ポストエクスプロイテーションシナリオで直面するほとんどの骨の折れるタスクの高度な自動化にあります。セットアップと使用は非常に簡単で、ターゲット側の事前設定は不要で、コントロールセンターの設定もほとんど必要ありません。macOSとPythonの驚くべき舞台裏の力を活用して、スムーズなポストエクスプロイテーション体験を提供します。
このリポジトリをダウンロード/クローンします。
./BUILDERを実行し、適切な情報を入力します。
これで完了です!Bellaの準備は整いました。macOSターゲットにBellaをアップロードして実行するだけです。
次に、macOSコントロールセンターでControl Center.pyを実行します。依存関係は不要です[MITMを行いたい場合はmitmproxyを除く]。自動設定が行われ、数秒後にこのような画面が表示されます。
コントロールセンターは、最大128台の個別コンピュータに対してこの選択を継続的に更新します。
Ctrl-Cを押して選択肢から選び、目的のコンピュータの番号を入力します。すると、このような画面が表示されます。
コマンドの実行を開始しましょう!bella_infoは素晴らしいコマンドです。manualを実行すると、すべてのコマンドの完全なマニュアルが表示されます。また、Tabキーを2回押すと、利用可能なコマンドの一覧が表示されます。
小さな注意: Bellaは、適切に設定すればインターネット越しでも動作します。ファイアウォールを設定して、Bellaのポートをコントロールセンターに転送してください。転送すべき他の重要なポート: 1) VNC - 5500。 2) マイク - 2897。 3) MITM - 8081
このプロジェクトは積極的にメンテナンスされています。バグ報告、質問、機能リクエスト、関連情報など、あらゆるものを提出してください。
Bellaは、base64エンコードされたCバイナリをBellaサーバー/ターゲットに送信することで、keychaindump、VNC、マイクストリーミングなどを活用しています。Payloads/payloads.txtファイルに、事前にコンパイルおよびエンコードされたファイルを含めています。これらのペイロードを自分でコンパイルしたい場合は、コンパイル後に以下の手順に従ってください:
それらをbase64でエンコードし、以下の順序でpayloads.txtに配置します。各ペイロードは改行で区切ります。
vnc, keychaindump, microphone, rootshell, insomnia, lock_icon, chainbreaker.
Payloadsディレクトリ内のpayload_generatorが役立つはずです。
問題があればお知らせください。
https://github.com/juuso/keychaindump
https://github.com/n0fate/chainbreaker
https://github.com/richardkiss/speakerpipe-osx
https://github.com/semaja2/InsomniaX
https://github.com/stweil/OSXvnc
Linux向けコントロールセンターのサポート [少しの調整で済むはず]
サーバー経由でトラフィックをトンネリングするリバースSOCKSプロキシ
Firefoxパスワードの復号化/抽出
判読可能な出力によるキーストロークログ [80%完了]
ブロックを引き起こすすべてのプログラムを検出し、それらを強制終了 [85%完了]
interactive_shellコマンド。pttyモジュールを通じて完全にインタラクティブなttyを提供します。現時点でのこの機能の唯一の欠点は、事前プログラムされた関数を実行できないことです。[95%完了、事前プログラム関数の統合に取り組み中]
前述の通り、Bellaは疑似TTYです。これにより、Bellaのベースソケットとリモートコード実行処理は、非常に単純な要求応答ソケットのかなり抽象化されたバージョンです。Bellaはサーバーからコマンドを受信します。コマンドが事前プログラムされた関数(例:Chrome履歴ダンプ)と一致する場合、その関数を実行し、応答をクライアントに送信します。クライアントは同じ方法で応答を処理します。応答を処理した後、クライアントに送信する別のコマンドをプロンプトします。
低レベルソケットの問題は多数あり、以下に限定されません: 3. パイプをブロックしてハングさせ、決して来ない出力を待つプログラムの実行(sudo、nano、ftp) 4. socket.recv()呼び出しで予想されるデータ量がわからない。 5. Ctrl-C、Ctrl-Zおよび同様のコマンドを送信できない。 6. コマンド履歴がない 7. クラッシュするプログラムがシェルを停止させる可能性がある。 8. 一対一の応答と要求。
Bellaは以下で上記に対処します: 4. メッセージの長さをシリアル化し、それに応じて応答/要求をループするrecv()およびsend()関数。 5. Ctrl-Cサポート、コマンド履歴、タブ補完を含む、より'tty'のような感触を提供するReadline統合。 6. ブロックするプログラムを検出し、それらを強制終了する ベータ版 7. クライアントがさらなる入力を促すことなく、複数のメッセージを一度に送信できる(ping、tree、およびライブアップデートを含むコマンドに最適)。
事前プログラムされた関数の完全な情報については、サーバーに接続しているときにmanualコマンドを実行してください。
--