
マルチプロトコルデータ漏洩テストツール。FTP、HTTP、HTTPS、DNS、ICMP、SMB、SMTP、SFTPを介した現実的な出口シナリオをシミュレートし、検出能力を検証します。
Egress-Assess は、データの出口検出機能をテストするためのツールです。
セットアップするには、付属のセットアップスクリプトを実行するか、次の手順を実行します。
openssl req -new -x509 -keyout server.pem -out server.pem -days 365 -nodes
ブログ記事はこちらで公開されています:
Egress-Assess の典型的な使用例は、このツールを2つの場所にコピーすることです。1つはサーバーとして機能し、もう1つはクライアントとして機能します。Egress-Assess は、FTP、HTTP、HTTPS 経由でデータを送信できます。
FTP 経由でデータを抽出するには、まず Egress-Assess の FTP サーバーを起動し、--server ftp を選択してユーザー名とパスワードを指定します。
./Egress-Assess.py --server ftp --username testuser --password pass123
次に、クライアントが接続して FTP サーバーにデータを送信するには、以下を実行します。
./Egress-Assess.py --client ftp --username testuser --password pass123 --ip 192.168.63.149 --datatype ssn
また、Egress-Assess を Web サーバーとして設定するには、以下を実行します。
./Egress-Assess.py --server https
次に、FTP サーバーにデータを送信し、特に15メガバイトのクレジットカードデータを送信するには、次のコマンドを実行します。
./Egress-Assess.py --client https --data-size 15 --ip 192.168.63.149 --datatype cc
その他の注意点:
SMTP - クライアントはメールメッセージを作成し、データをメッセージ本文に配置するか、ファイルの場合は添付ファイルとして配置します。クライアントは、ポート25(または指定された代替ポート)で EgressAssess サーバーへの SMTP 接続を試みます。SMTP サーバーは認証を必要とせず、受信接続を受け入れてメールを処理します。メールメッセージの処理では、メールの本文または添付ファイルからデータを取得します。このテストでは、組織のメールサーバーを経由してメールを送信しようとはしません。
SMTP_Outlook - (このモジュールは PowerShell クライアントでのみ利用可能です)。Outlook クライアントが事前に設定されている場合、PowerShell クライアントは Outlook への COM オブジェクトを作成します(構成によっては、認証を提供するようにユーザーに要求される場合があります)。PowerShell クライアントは、データをメッセージ本文に配置するか、ファイルの場合は添付ファイルとして含むメールメッセージを作成します。メールは、以前に設定されたユーザーとして Outlook から送信されます(一部のセキュリティ設定では、プログラムがバックグラウンドでメールを送信しようとしていることをユーザーに通知し、許可を選択する必要がある場合があります)。このモジュールを機能させるには、EgressAssess サーバー用の MX レコードを作成する必要があります。EgressAssess SMTP サーバーは、MX レコードのドメイン宛てのすべてのメールメッセージを受け入れ、ファイル添付またはメール本文のデータを含むメールを受信します。
Invoke-EssessAgress -Client SMTPOutlook -IP <SMTP サーバーのドメイン> -NoPing -DataType "ssn"
ICMP - データはバイト単位に分割され、base64 エンコードされて、ICMP Type 8 ECHO リクエストでネットワーク経由で送信されます。データはパケットのデータフィールドに配置されます。ECHO リクエストは EgressAssess サーバーに継続的に送信され、サーバーは ICMP リクエストを受信してデータを収集し、デコードします。
FTP - データとファイルは、通常のプロトコル使用法に従って EgressAssess FTP サーバーにアップロードされます。サーバーにアクセスするにはユーザー名とパスワードが使用されます。上記の例を参照してください。
SFTP - データとファイルは SFTP プロトコルに従ってアップロードされます。サーバーにアクセスするにはユーザー名とパスワードが使用されます。
HTTP(S) - データとファイルは、EgressAssess Web サーバーへの POST Web リクエストを介して送信されます。Python クライアントの場合、データは http(s)://<IP または FQDN>/post_data.php に POST され、PowerShell クライアントの場合、データは http(s)://<IP または FQDN>/posh_file.php に POST されます。
SMB - EgressAssess サーバー(Impacket の SimpleSMBserver を使用)は /TRANSFER SMB 共有を作成します。クライアントシステムは認証なしで共有に接続し、ファイルを転送します。ネットワーク共有に接続してファイルをコピーするのと同じです。必要に応じて、認証用のユーザー名とパスワードを追加するオプションもあります。上記の通り、データを流出させるシステムとそのセキュリティポリシーに応じて、古い脆弱な SMBv1 を使用できるか、SMBv2 を有効にする必要があるかを判断してください。
DNS_TXT - データとファイルはバイト単位に分割され、base64 に変換され、個別の DNS TXT クエリに分割されて IP アドレスまたはドメイン名に対して行われます。クライアントは EgressAssess サーバーに直接接続しようとし、DNS TXT クエリを実行します。サーバーはパケットからデータをフィルタリングし、デコードします。PowerShell クライアントには、スタッククエリのオプションがあります。これにより、サーバーへの各 DNS リクエストで最大7つの TXT クエリが実行され、データ流出の速度が向上します。
DNS_Resolved - データとファイルはバイト単位に分割され、base64 に変換されます。その後、データはチャンク化され、サブドメインを解決するための DNS リクエストの一部として使用されます。<エンコードされたデータ>.domain.com。これを機能させるには、ドメインの NS レコードを EgressAssess サーバー用に設定する必要があります。すべての DNS リクエストはシステムの設定されたネームサーバーに対して行われ、最終的に事前に設定された EgressAssess サーバーに到達します。EgressAssess サーバーは、各リクエストからデータセクションを取得し、ファイルを再構築します。