
TCPポートリダイレクションユーティリティ
PortBenderは、レッドチームオペレーターが特定のTCPポート(例:445/TCP)宛の受信トラフィックを別のTCPポート(例:8445/TCP)にリダイレクトできるTCPポートリダイレクトユーティリティです。PortBenderには、オペレーターがこのツールをCobalt Strikeと統合するために利用できるアグレッサースクリプトが含まれています。ただし、このツールはリフレクティブDLLとして実装されているため、"ReflectiveLoader"インターフェース[1]を介したモジュールのロードをサポートする任意のC2フレームワークと統合できます。また、このツールは、Duqu 2.0脅威アクターが使用する"PortServ.sys"機能で利用されるバックドア/永続化メカニズムをシミュレートすることもできます。
PortBenderは、Windowsフィルタリングプラットフォーム(WFP)を使用してネットワークトラフィックを傍受するためにWinDivertライブラリを利用します。PortBenderの設計は、同じくWinDivertライブラリを利用するDivertTCPConnユーティリティ[1]に大きく影響を受けています。
PortBenderには2つの動作モードがあります。1つ目は「リダイレクタモード」、2つ目は「バックドアモード」です。「リダイレクタモード」では、対象の宛先ポート(例:445/TCP)への接続は代替ポート(例:8445/TCP)にリダイレクトされます。「バックドアモード」では、攻撃者が特別にフォーマットされたTCPパケットを対象ポート(例:443/TCP)に送信した場合のみトラフィックをリダイレクトします。PortBenderはそのクライアントIPアドレスをバックドアクライアントのリストに追加し、その対象ポートへのすべてのトラフィックを代替ポート(例:3389/TCP)にリダイレクトします。オペレーターはこのメカニズムを利用して、Duqu 2.0脅威アクターがKasperskyを侵害する際に使用した永続化手法をエミュレートできます。
PortBenderを実行するには、まず"PortBender.cna"スクリプトをCobalt Strikeにインポートし、オペレーティングシステムのアーキテクチャに応じて"PortBender.zip"に含まれているWinDivert32.sysまたはWinDivert64.sysバイナリをターゲットホストにアップロードする必要があります。PortBenderのヘルプメニューと使用例を以下に示します:
beacon> help PortBender
Redirect Usage: PortBender redirect FakeDstPort RedirectedPort
Backdoor Usage: PortBender backdoor FakeDstPort RedirectedPort Password
Examples:
PortBender redirect 445 8445
PortBender backdoor 443 3389 praetorian.antihacker
例えば、侵害されたWindowsシステムからSMBリレー攻撃を実行するために、PortBenderをリダイレクタモードで実行したい場合があります。これを実現するには、PortBenderに対して445/TCPへのすべてのトラフィックを、攻撃者のSMBサービスが動作している代替ポート8445/TCPにリダイレクトするように指示します。この例では、コマンド"PortBender redirect 445 8445"を実行してこれを実現します。期待される出力は以下のとおりです:
この例では、侵害されたインターネット接続のIIS Webサーバーに隠密永続化メカニズムを展開したいとします。ここでは、"PortBender backdoor 443 3389 praetorian.antihacker"を実行して、バックドアサービスに対して、指定された"praetorian.antihacker"キーワードを提供する任意のIPアドレスからの443/TCPへの接続を、侵害されたホスト上の3389/TCPにリダイレクトするように指示します。期待される出力は以下のとおりです:
[1] https://github.com/Arno0x/DivertTCPconn
[2] https://github.com/stephenfewer/ReflectiveDLLInjection
[3] https://github.com/basil00/Divert
[4] https://diablohorn.com/2018/08/25/remote-ntlm-relaying-through-meterpreter-on-windows-port-445