
レッドチーム演習用のSlackボットフィッシングフレームワーク

Slackワークスペース内でレッドチームおよびフィッシング演習を実施するためのSlack攻撃フレームワークです。
このツールはセキュリティ専門家のみを対象としています。明示的なテスト許可なしに、いかなるSlackワークスペースに対してもこのツールを使用しないでください。自己責任で使用してください。
何千もの組織がSlackを利用して従業員のコミュニケーション、コラボレーション、やり取りを促進しています。これらのSlackワークスペースの多くは、Slack内でさまざまなタスクを自動化するために使用されるアプリやボットをインストールしています。これらのボットには、Slack APIを介してリクエストできるタスクを規定する個別の権限が付与されています。Slack APIに認証するために、各ボットにはxoxbまたはxoxpで始まるAPIトークンが割り当てられています。多くの場合、これらのトークンはどこかに漏洩しています。レッドチーム演習中にこれらのトークンが流出した場合、適切に活用するのは面倒なことがあります。そこでEvilSlackbotが登場し、そのプロセスを自動化・効率化します。EvilSlackbotを使用して、なりすましのSlackメッセージ、フィッシングリンク、ファイルを送信したり、Slack内の機密情報を検索したりできます。**
レッドチーム活動に加えて、EvilSlackbotはSlackフィッシングシミュレーションを念頭に開発されています。Slackフィッシング演習を実施するためにEvilSlackbotを使用するには、Slack内でボットを作成し、テスト目的に必要な権限をボットに付与し、EvilSlackbotにシミュレーションフィッシング(リンク、ファイル、なりすましメッセージ)でテストしたい従業員のメールアドレスリストを提供します。
EvilSlackbotにはPython 3とSlackclientが必要です。
pip3 install slackclient
usage: EvilSlackbot.py [-h] -t TOKEN [-sP] [-m] [-s] [-a] [-f FILE] [-e EMAIL]
[-cH CHANNEL] [-eL EMAIL_LIST] [-c] [-o OUTFILE] [-cL]
options:
-h, --help このヘルプメッセージを表示して終了
必須:
-t TOKEN, --token TOKEN
Slack OAuthトークン
攻撃:
-sP, --spoof Slackメッセージをなりすまし、名前やアイコンなどをカスタマイズ
(-e、-eL、または-cHが必要)
-m, --message トークンに関連付けられたボットとしてメッセージを送信
(-e、-eL、または-cHが必要)
-s, --search キーワードでSlack内の機密情報を検索
-a, --attach 悪意のある添付ファイルを含むメッセージを送信(-fおよび
-e、-eL、または-cHが必要)
引数:
-f FILE, --file FILE ファイル添付のパス
-e EMAIL, --email EMAIL
ターゲットのメールアドレス
-cH CHANNEL, --channel CHANNEL
ターゲットのSlackチャンネル(#は含めない)
-eL EMAIL_LIST, --email_list EMAIL_LIST
改行で区切られたメールアドレスリストのパス
-c, --check 指定されたトークンに関連付けられた権限と利用可能な攻撃を
検索して表示
-o OUTFILE, --outfile OUTFILE
検索結果を保存する出力ファイル
-cL, --channel_list すべての公開Slackチャンネルを一覧表示
このツールを使用するには、xoxbまたはxoxpトークンを提供する必要があります。
必須:
-t TOKEN, --token TOKEN (Slack xoxb/xoxpトークン)
python3 EvilSlackbot.py -t <トークン>
トークンに関連付けられた権限に応じて、EvilSlackbotが実行できる攻撃がいくつかあります。EvilSlackbotは自動的にトークンの権限を確認し、その権限と指定されたトークンで実行可能な攻撃を表示します。

攻撃:
-sP, --spoof Slackメッセージをなりすまし、名前やアイコンなどをカスタマイズ(-e、-eL、または-cHが必要)
-m, --message トークンに関連付けられたボットとしてメッセージを送信(-e、-eL、または-cHが必要)
-s, --search キーワードでSlack内の機密情報を検索
-a, --attach 悪意のある添付ファイルを含むメッセージを送信(-fおよび-e、-eL、または-cHが必要)
適切なトークン権限があれば、EvilSlackbotを使用してボット名やボット写真を偽装したフィッシングメッセージを送信できます。この攻撃には、ターゲットのメールアドレス (-e)、ターゲットメールアドレスのリスト (-eL)、またはSlackチャンネル名 (-cH) のいずれかが必要です。EvilSlackbotはこれらの引数を使用して、指定されたメールアドレスまたはチャンネル名に関連付けられたユーザーのSlack IDを検索します。攻撃を自動化するには、メールアドレスのリストを使用します。
python3 EvilSlackbot.py -t <xoxbトークン> -sP -e <メールアドレス>
python3 EvilSlackbot.py -t <xoxbトークン> -sP -eL <メールリスト>
python3 EvilSlackbot.py -t <xoxbトークン> -sP -cH <チャンネル名>
適切なトークン権限があれば、EvilSlackbotを使用してフィッシングリンクを含むフィッシングメッセージを送信できます。この攻撃がなりすまし攻撃と異なる点は、この方法では指定されたトークンに関連付けられたボットとしてメッセージが送信されることです。フィッシングを送信するボットの名前や画像を選択することはできません。この攻撃には、ターゲットのメールアドレス (-e)、ターゲットメールアドレスのリスト (-eL)、またはSlackチャンネル名 (-cH) のいずれかが必要です。EvilSlackbotはこれらの引数を使用して、指定されたメールアドレスまたはチャンネル名に関連付けられたユーザーのSlack IDを検索します。攻撃を自動化するには、メールアドレスのリストを使用します。
python3 EvilSlackbot.py -t <xoxbトークン> -m -e <メールアドレス>
python3 EvilSlackbot.py -t <xoxbトークン> -m -eL <メールリスト>
python3 EvilSlackbot.py -t <xoxbトークン> -m -cH <チャンネル名>
適切なトークン権限があれば、EvilSlackbotを使用してキーワード検索でSlack内の機密情報を検索できます。現時点では、この攻撃にはxoxpトークンが必要です。xoxbトークンにはSlack内でキーワード検索を行う適切な権限が付与できないためです。検索結果をファイルに書き出すには-o引数を使用します。
python3 EvilSlackbot.py -t <xoxpトークン> -s -o <出力ファイル.txt>
適切なトークン権限があれば、EvilSlackbotを使用してファイル添付を送信できます。添付ファイル攻撃には、送信するファイルのパス (-f) が必要です。この攻撃には、ターゲットのメールアドレス (-e)、ターゲットメールアドレスのリスト (-eL)、またはSlackチャンネル名 (-cH) のいずれかが必要です。EvilSlackbotはこれらの引数を使用して、指定されたメールアドレスまたはチャンネル名に関連付けられたユーザーのSlack IDを検索します。攻撃を自動化するには、メールアドレスのリストを使用します。
python3 EvilSlackbot.py -t <xoxbトークン> -a -f <ファイルへのパス> -e <メールアドレス>
python3 EvilSlackbot.py -t <xoxbトークン> -a -f <ファイルへのパス> -eL <メールリスト>
python3 EvilSlackbot.py -t <xoxbトークン> -a -f <ファイルへのパス> -cH <チャンネル名>
引数:
-f FILE, --file FILE ファイル添付のパス
-e EMAIL, --email EMAIL ターゲットのメールアドレス
-cH CHANNEL, --channel CHANNEL ターゲットのSlackチャンネル(#は含めない)
-eL EMAIL_LIST, --email_list EMAIL_LIST 改行で区切られたメールアドレスリストのパス
-c, --check 指定されたトークンに関連付けられた権限と利用可能な攻撃を検索して表示
-o OUTFILE, --outfile OUTFILE 検索結果を保存する出力ファイル
-cL, --channel_list すべての公開Slackチャンネルを一覧表示
適切な権限があれば、EvilSlackbotはSlackワークスペース内のすべての公開チャンネルを検索して一覧表示できます。これは、チャンネルメッセージの送信先を計画する際に役立ちます。リストをファイルに書き出すには-oを使用します。
python3 EvilSlackbot.py -t <xoxbトークン> -cL