TChopper
最近発見した新しい手法で、私はこれに「Chop chop」というニックネームを付けました。Windowsサービスの表示名とWMIを利用し、悪意のあるバイナリをbase64チャンクとして密輸(smuggling)することで横方向の移動(lateral movement)を実行し、TChopperツールを使ってそのプロセスを自動化します。

image
仕組み
- ツールは密輸したいファイルを取得し、そのファイルをbase64としてメモリストリームにエンコードします
- 各行の長さを150~250文字に分割します(250はサービス lpDisplayname パラメータの最大許容スペースです https://docs.microsoft.com/en-us/windows/win32/api/winsvc/nf-winsvc-createservicea)
- chop chop攻撃では、各分割チャンクに対して一意のサービスを作成し、サービスを開始した後に削除することで重複を回避します。または、攻撃モードオプション(-m)を選択してサービスのみを変更する攻撃モードを選ぶことで、より高速かつ安定させることができます
- その後、サービスの lpbinarypath パラメータを、サービスの表示名を取得し、結果を tmp_payload.txt にパイプ出力するための必要なコマンドラインに変更します
- 最後に、すべてのファイルチャンクをbase64として配送した後、ツールは別のサービスを作成し、そのコンテンツを有効な実行可能ファイルにデコードして実行します
一方、WMI技術を使用して横方向の移動(lateral movement)を行う場合も、Chopperを使用して実行できます
- TchopperはWMIを使用してセッションを認証します
- 複数のプロセスを作成し、PowerShellの独自コマンドを使用して各セグメントを c:\users\public\chop.enc にパイプ出力します
- 最後のプロセスを作成し、certutilを使用してコンテンツをバイナリにデコードして実行します
image
使い方
#chop chop mode
chopper.exe -s -u USERNAME -p PASSWORD -d DOMAIN -f BINARYLOCAL PATH
# chop chop done
chopper.exe -m -u USERNAME -p PASSWORD -d DOMAIN -f BINARYLOCAL PATH
# use WMI to smuggle
chopper.exe -w -u DOMAIN\USERNAME -p PASSWORD -t MACHINE -f LOCALBINARYPATH
https://youtu.be/xbvhzHul7w0
詳細な調査
http://0xsp.com/security%20research%20&%20development%20(SRD)/smuggling-via-windows-services-display-name-lateral-movement
サポートのお願い
私はオープンソースコミュニティ向けにoffsecツールを作成しています。サポートをお願いします https://paypal.me/0xsp