
SCM操作を介してWindows上の445/tcpをバインド解除する手法のBOFおよびPython3実装
Windows上でドライバをロードせず、LSASSへモジュールをロードせず、ターゲットマシンを再起動せずに445/tcpのバインド解除と再バインドを行うためのテクニックです。C2経由でのSMBベースのNTLMリレーの負担を軽減するために実装されました。このテクニックの技術的分析は、x33fconでのRelay Your Heart Away: An OPSEC Concious Approach to 445 Takeoverプレゼンテーションで詳しく説明されています。
PoCはPythonとBOFフォーマットの両方で書かれています。どちらもリモートマシンをターゲットにする際にトランスポートとしてRPC over TCP(ncacn_ip_tcp)を利用します。
概要については、関連ブログ記事の運用上の使用セクションを参照してください。主なポイントは次のとおりです。
srvnetから逆方向にサービス依存関係を列挙し、考慮すべき追加の依存サービスがないか確認できます。ncacn_ip_tcpとncacn_npのどちらを利用するかを理解してください。後者(名前付きパイプ)を使用する場合、ターゲットとリモート通信して再び有効にすることはできません。Python仮想環境を作成し、pip installでimpacketをインストールします。
git clone https://github.com/zyn3rgy/smbtakeover.gitcd smbtakeoverpython3 -m virtualenv venvsource venv/bin/activatepython3 -m pip install impacketpython3 smbtakeover.py -hpython3 smbtakeover.py atlas.lab/josh:[email protected] checkpython3 smbtakeover.py atlas.lab/josh:[email protected] stoppython3 smbtakeover.py atlas.lab/josh:[email protected] startbof_smbtakeover localhost checkbof_smbtakeover 10.0.0.21 stopbof_smbtakeover localhost start