Active Directoryのハッキング検証、ForceChangePassword

今回はActive Directoryの設定面における脆弱性「ForceChangePassword」について検証を行います。

目次

ForceChangePasswordの概要

ForceChangePasswordとは、ドメインユーザのパスワードを知る必要無く、パスワードの変更を行うことができる攻撃です。

これは、Active Directoryにおける下記の「パスワードのリセット」を悪用した攻撃となります。

画像に alt 属性が指定されていません。ファイル名: 2021-01-31_15h23_39.png

f:id:yuukoutetu:20210322212931p:plain
ad-user-property

本画像では、client01u1というユーザに対するclient01u10のアクセス権を表示したものであり、その中の1つとして「パスワードのリセット」という項目が許可されています。これによって、client01u10はclient01u1のパスワードを強制的に再設定することができます。

以下では実際にActive Directoryで脆弱な設定を行い、攻撃を行ってみます。

脆弱性の検証

システム環境と前提条件

  • [OS] Windows Server 2016
  • [攻撃側ユーザ] client01u10
  • [攻撃対象ユーザ]client01u1

検証の流れ~BlueTeam側~

まず、Active Directory側でclient01u1の設定を行います。
ダッシュボードからツール>Active Directory ユーザのコンピュータを開きます。

f:id:yuukoutetu:20210322213015p:plain
ad-server-manager

表示>拡張機能にチェックを押します。

画像に alt 属性が指定されていません。ファイル名: 2021-01-31_15h21_29.png

f:id:yuukoutetu:20210322213041p:plain
ad-user-computer

ドメイン名>Users>client01u1を右クリックし、プロパティを開きます。

画像に alt 属性が指定されていません。ファイル名: 2021-01-31_15h23_16.png

f:id:yuukoutetu:20210322213100p:plain
ad-user-computer

セキュリティタブを開き、client01u10のアクセス許可を開き、「パスワードのリセット」を許可します。

f:id:yuukoutetu:20210322213135p:plain
ad-user-property-security

検証の流れ~RedTeam側~

攻撃者は何らかの方法により、client01u10というユーザに対するアクセス権を得たとします。

BloodHoundで見てみると、client01u1というユーザへ「ForceChangePassword」という属性を所持していることが分かり、パスワードの強制変更が可能であることを発見します。(※また、client01u1からsvrad(ドメイン管理者)に対してもForceChangePasswordがあり、clinet01u1の取得によって、svradを取得し、ドメイン管理者へ権限昇格することが可能です。)

画像に alt 属性が指定されていません。ファイル名: forcepassword-2.png

f:id:yuukoutetu:20210322213225p:plain
bloodhound

ここで、「Set-ADAccountPassword」というADモジュールを使用して、client01u1のパスワードを変更できるか確認してみます。

f:id:yuukoutetu:20210322213301p:plain
Set-ADAccountPassword

エラー等返ってこなければ、パスワードを正常に変更することができています。仮に、ForceChangePasswordがない場合、下記のように、現在のパスワードが要求されます。

f:id:yuukoutetu:20210322213322p:plain
Set-ADAcoountPassword-Fail

これで、client01u1への横移動、及び本ユーザを悪用したさらなる侵入が可能となりました。

個人的な見解、リスク低減策

個人的にはこのような設定不備はリスクが高く、運用上注意すべきことだと考えています。

仮に上記のclient01u1を取得された場合に、client01u1がログオンしている端末への横移動、client01u1がForceChangePassword可能な高権限アカウントの取得等、侵入拡大の足掛かりにされる恐れがります。これは攻撃者にとっては非常に良い材料となります。

ただし、運用上どうしても「パスワードリセット」を他ユーザに付与せざるをなく、やむをえず脆弱性が残存していることがあります。

その場合においても、パスワードをリセットできるユーザはドメイン管理者など必要最小限にすべきで、一般ユーザなど同権限ユーザ間での「パスワードリセット」の権限付与は控えるべきです。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

セキュリティコンサルタント【経歴】ベンチャー企業にてセキュリティ研究者として新規事業開発に従事した後、大手外資系企業にてペネトレーションテストやゼロトラストなどの幅広い業務を実施。現在はサイバー人材育成に携わりつつ、グローバル資格の効率的な勉強方法やセキュリティキャリアについて情報発信

コメント

コメントする

目次