hacktricks/windows-hardening/active-directory-methodology/skeleton-key.md
2023-07-07 23:42:27 +00:00

7.5 KiB
Raw Blame History

スケルトンキー

☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥

スケルトンキー

出典: https://blog.stealthbits.com/unlocking-all-the-doors-to-active-directory-with-the-skeleton-key-attack/

攻撃者がドメイン内に侵入した後、特権を昇格させ、持続性を作成するために使用できるActive Directoryアカウントの侵害方法はいくつかあります。スケルトンキーは、Active Directoryドメインを対象とした特に恐ろしいマルウェアで、任意のアカウントを乗っ取ることが驚くほど簡単になります。このマルウェアはLSASSに自己注入し、ドメイン内の任意のアカウントで機能するマスターパスワードを作成します。既存のパスワードも引き続き機能するため、この攻撃が行われたことを知るのは非常に困難です。

予想通り、これはMimikatzを使用して非常に簡単に実行できる多くの攻撃の1つです。それがどのように機能するかを見てみましょう。

スケルトンキー攻撃の要件

この攻撃を行うためには、攻撃者はドメイン管理者権限を持っている必要があります。この攻撃は完全な侵害のためにすべてのドメインコントローラで実行する必要がありますが、単一のドメインコントローラを対象にするだけでも効果的です。ドメインコントローラを再起動すると、このマルウェアは削除され、攻撃者によって再展開する必要があります。

スケルトンキー攻撃の実行

攻撃の実行は非常に簡単です。各ドメインコントローラで次のコマンドを実行するだけです: misc::skeleton。その後、Mimikatzのデフォルトパスワードを使用して、任意のユーザーとして認証できます。

Mimikatzを使用してドメインコントローラにスケルトンキーを注入する

以下は、スケルトンキーをパスワードとして使用してドメインコントローラに管理アクセスを取得するためのドメイン管理者メンバーの認証です。

Mimikatzのデフォルトパスワードを使用してドメインコントローラに管理アクセスを取得するためのスケルトンキーをパスワードとして使用する

注意: "System error 86 has occurred. The specified network password is not correct"というメッセージが表示された場合は、ユーザー名にドメイン\アカウントの形式を使用してみてください。

"System error 86 has occurred. The specified network password is not correct"というメッセージが表示された場合は、ユーザー名にドメイン\アカウントの形式を使用してみてください

もしlsassがすでにスケルトンキーでパッチされている場合、このエラーが表示されます:

緩和策

  • イベント:
  • システムイベントID 7045 - システムにサービスがインストールされました(カーネルモードドライバータイプ)
  • セキュリティイベントID 4673 - 機密特権の使用("特権の使用を監査する"が有効になっている必要があります)
  • イベントID 4611 - ローカルセキュリティ機関に信頼されたログオンプロセスが登録されました("特権の使用を監査する"が有効になっている必要があります)
  • Get-WinEvent -FilterHashtable @{Logname='System';ID=7045} | ?{$_.message -like "Kernel Mode Driver"}
  • これはmimidrvのみを検出します Get-WinEvent -FilterHashtable @{Logname='System';ID=7045} | ?{$.message -like "Kernel Mode Driver" -and $.message -like "mimidrv"}
  • 緩和策:
  • lsass.exeを保護されたプロセスとして実行し、攻撃者がカーネルモードドライバをロードすることを強制します
  • New-ItemProperty HKLM:\SYSTEM\CurrentControlSet\Control\Lsa -Name RunAsPPL -Value 1 -Verbose
  • 再起動後に確認: Get-WinEvent -FilterHashtable @{Logname='System';ID=12} | ?{$_.message -like "protected process"}
☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥