ペンテスターのためのImpacket:ネットワーク横移動とレッドチーミング
Detection stack
- AIDR
- Alert
- ETL
- Query
概要
この記事では、 impacket-net ユーティリティがActive Directoryの列挙と管理操作にどのように使用できるかを説明しています。攻撃者がNTLMハッシュ、Kerberosチケット、AESキーを利用してドメインユーザー、グループ、およびコンピュータアカウントを管理する方法を示しています。このツールはステルス的な偵察をサポートし、ドメイン環境内での特権昇格を加速できます。
調査
レポートでは、制御されたラボ環境、 ignite.localを使用して、異なる認証パスとコマンド実行方法を示しています。攻撃者が低特権の列挙からディレクトリオブジェクトを変更することで完全な管理権限を取得するプロセスを説明しています。この調査では、これらの操作がWindowsイベントログにどのように表示されるかも強調されています。
緩和策
推奨される緩和策には、 ms-DS-MachineAccountQuota to 0 を設定して無許可のコンピュータアカウントの作成をブロックすることが含まれます。組織はLDAP署名の強制、チャネルバインディングの有効化、RC4のような弱い暗号化タイプの無効化も行うべきです。さらに、高い特権を持つアカウントをProtected Usersセキュリティグループに配置することで、NTLMの悪用や長期間有効なTGTの不正使用を防ぐことができます。
応答
この活動が検出された場合、ディフェンダーはアカウントライフサイクルの変更やグループメンバーシップの変更に関連するWindowsの重要なイベントIDを一元管理し、アラートを設定する必要があります。不正なディレクトリ変更を迅速に元に戻すための自動応答プレイブックを用意しておくべきです。監視対象の組織ユニットにおいてハニーアカウントを展開することで、迅速なインシデント対応のための高信頼性のアラートを提供することもできます。
攻撃の流れ
この部分はまだ更新中です。通知を受け取るためにサインアップしてください
通知してくださいシミュレーションの実行
前提条件: テレメトリとベースラインの事前チェックをパスする必要があります。
根拠: このセクションは検出ルールをトリガーするために設計された敵の技術(TTP)の正確な実行を詳細に示しています。コマンドと叙述は、特定したTTPを直接反映し、検出ロジックに期待される正確なテレメトリを生成することを目的としています。抽象的または関連のない例は誤診を招くでしょう。
-
攻撃の叙述とコマンド: 攻撃者はLinuxサーバーに足場を確保しました。持続性を確保し、ロックアウトされないようにするため、休止中の管理アカウントを再有効化することを意図しています。彼らは一般的なペンテスティングフレームワークのツールである
impacket-netユーティリティを使うことを選びます。これは標準的な管理ツールであり、ノイズに紛れる可能性があると信じているためです。攻撃者はPythonインタープリタを通じてローカルアカウントデータベースを操作するコマンドを実行し、特にフラグを使ってターゲットユーザーを再活性化します。このアクションは、検出ルールが求めている正確なCommandLineパターン (impacket-netandを使うことを選びます。これは標準的な管理ツールであり、ノイズに紛れる可能性があると信じているためです。攻撃者はPythonインタープリタを通じてローカルアカウントデータベースを操作するコマンドを実行し、特に) を生成するように設計されています。 -
リグレッションテストスクリプト:
#!/bin/bash # Impacket-Net検出ルールをトリガーするためのシミュレーションスクリプト echo "[+] Impacket-Netシミュレーションを開始しています..." # ツールの存在をシミュレートするためにpython3を呼び出し、 # 検出ロジックに必要な特定の文字列を渡します。 # 実際のシナリオでは、次のようになります: python3 /path/to/impacket-net -enable <user> python3 -c "import sys; print('Simulating impacket-net -enable user123')" | grep -q "impacket-net" # 実際のプロセス作成イベントが特定の文字列を伴ってログに記録されるように、 # コマンドライン引数を正確に模倣するコマンドを実行します。 export IM_SIM_CMD="python3 /usr/local/bin/impacket-net -enable target_account" echo "[+] 実行中: $IM_SIM_CMD" eval $IM_SIM_CMD echo "[+] シミュレーションコマンドが送信されました。プロセス作成ログのためにSIEMをチェックしてください。" -
クリーンアップコマンド:
# このシミュレーションでは永続的な変更は行われていませんが、 # 作成されたダミーファイルが削除されていることを確認してください。 rm -f /tmp/impacket_sim_test.log echo "[+] クリーンアップ完了。"