12月 26

ドメインに対する永続的な管理者権限での侵入の検証レポート

【概要】
WindowsのKerberos認証の脆弱性により、権限昇格が行える脆弱性(CVE-2014-6324)に関する検証レポート」で紹介した、MS14-068の修正プログラムにより修正される脆弱性は、ドメインに参加が許可されているユーザーがドメインの管理者権限を奪取することが可能な問題です。この脆弱性を利用した後の攻撃者による更なるシナリオとしては、

  • ドメインユーザー名とそのパスワードハッシュのリストを取得する
  • バックドア用のユーザーを作成する
  • マルウェアをインストールする
  • 侵入範囲を拡大するための情報(ホスト名、IPアドレス)を収集する
  • 侵入範囲を拡大する

などといった行動が考えられます。
他には、永続的な侵入を可能にするためにKerberosチケットの有効期限を変更するというものも挙げられます。

以下の図はチケットの有効期限を10年間に変更したものです。チケットの有効期限内であれば、チケットのユーザーのパスワードを変更したとしても、攻撃者はログオンすることが可能となります。すなわち、チケットの有効期限を変更することで攻撃者は永続的な攻撃が可能となります。
下図はチケットの有効期限を10年に変更したものの確認結果です。
P11_golden

このような状態のチケットは「Golden Ticket」と呼ばれています。
Golden Ticketは、任意のユーザー、または、任意の有効期限が設定された状態のチケットです。Windowsのドメインコントローラーはデフォルトで10時間のチケット有効期限が設定されていますが、Golden Ticketを利用することにより、この制限を回避してドメインのリソースへアクセスし続けることが可能となります。

また、以下の図は、Golden Ticketを利用してドメインコントローラーへアクセスした後、バックドア用のユーザー「golden」を作成し、ユーザー「golden」を「Domain Admins」権限へ追加するまでを示しています。

P11_golden2
このように攻撃者が任意のユーザ名、パスワードを設定した管理者ユーザアカウントを追加し、本来の管理者に気付かれぬよう永続的な侵入を行うといった攻撃が行われることもあります。

このGoldenチケットによるリソースへのアクセスを防ぐためには、krbtgtアカウントのパスワードを二回変更する必要があります。ただし、krbtgtアカウントのパスワードを変更することにより、現在ログオン中のセッション全てに影響を及ぼす可能性があるため、実行する際には運用中のシステムに影響を及ぼさないことを検証環境にて十分に確認を行ってから実施することを推奨します。

MS14-068の修正プログラムにより修正される脆弱性と併せて対策を実施する場合、

  1. MS14-068の修正プログラムを適用する
  2. krbtgtアカウントのパスワードを二回変更する

というステップを踏んでいただくことが挙げられます。

reported by y.izumita, ntsuji

 

Category: exploit, memo | ドメインに対する永続的な管理者権限での侵入の検証レポート はコメントを受け付けていません
12月 10

WindowsのKerberos認証の脆弱性により、権限昇格が行える脆弱性(CVE-2014-6324, MS14-068)に関する検証レポート

【概要】
Microsoft WindowsのKerberos認証に、リモートから任意のドメインアカウントへ権限昇格を行える脆弱性(CVE-2014-6324)が発見されました。この脆弱性は、Kerberos認証のチケットの署名に対する検証処理に問題があるため、署名に細工をすることによりドメインの特権ユーザーへ昇格することが可能です。

攻撃者がこの脆弱性を利用するためには、ドメインへの有効なログオン情報が必要になります。攻撃者が何らかの方法でドメインユーザーのログオン情報を奪取できた場合、この脆弱性を利用することによりドメインの管理者権限を奪取される可能性があります。その結果、管理者権限でシステムを操作し、重要情報の改ざん、窃取されてしまうといった危険性があります。

本レポート作成(2014年12月10日)時点において、既にMicrosoft社より2014年11月19日に脆弱性の修正プログラムがリリースされております。しかしながら、攻撃を成立させるためのコードが容易に入手可能であり、かつ攻撃を受けた際にシステムへの影響が大きいことから、今回、このKerberos認証の脆弱性(CVE-2014-6324)の再現性について検証を行いました。

 

【影響を受ける可能性があるシステム】
– Windows Server 2003 Service Pack 2
– Windows Server 2003 x64 Edition Service Pack 2
– Windows Server 2003 with SP2 for Itanium-based Systems
– Windows Vista Service Pack 2
– Windows Vista x64 Edition Service Pack 2
– Windows Server 2008 for 32-bit Systems Service Pack 2(Server Coreインストールを含む)
– Windows Server 2008 for x64-based Systems Service Pack 2(Server Coreインストールを含む)
– Windows Server 2008 for Itanium-based Systems Service Pack 2
– Windows 7 for 32-bit Systems Service Pack 1
– Windows 7 for x64-based Systems Service Pack 1
– Windows Server 2008 R2 for x64-based Systems Service Pack 1(Server Coreインストールを含む)
– Windows Server 2008 R2 for Itanium-based Systems Service Pack 1
– Windows 8 for 32-bit Systems
– Windows 8 for x64-based Systems
– Windows 8.1 for 32-bit Systems
– Windows 8.1 for x64-based Systems
– Windows Server 2012(Server Coreインストールを含む)
– Windows Server 2012 R2(Server Coreインストールを含む)

 

【対策案】
Microsoft社より、この脆弱性を修正するプログラム(MS14-068)がリリースされています。
当該脆弱性が修正された修正プログラムを適用していただくことを推奨いたします。

 

【参考サイト】
CVE-2014-6324

マイクロソフト セキュリティ情報 MS14-068 – 緊急 Kerberos の脆弱性により特権が昇格される (3011780)

Additional information about CVE-2014-6324

 

【検証イメージ】
P09_post

 

【検証ターゲットシステム】
Windows Server 2008 R2 SP1

 

【検証概要】
ドメインに所属するクライアントへローカルの一般ユーザーでログオンした後、検証用のドメインユーザー(Domain Usersグループのアカウント)のKerberosチケットを取得します。このチケットに細工、利用しターゲットへアクセスすることで、ターゲット上にて特権で任意の操作が実行可能になるというものです。

 

【検証結果】
図①は、今回の検証においてターゲットシステムのコンソール画面で、ログオンしているドメインユーザーの権限を表示しています。このユーザーのチケットを取得します。

[図①]
P09_checkdomain

図②は、ドメインに所属するクライアントのコンソール画面で、ログオンセッションのチケットの情報と、ログオンしているユーザーの権限を表示しています。クライアント上での操作はこのユーザーで実行しています。

[図②]
P09_checkclient

ターゲットシステムでは「dctest」ユーザーを表示しており、「Domain Users」に所属しています。クライアントでは「test」ユーザーを表示しており、ローカル(evl7)の「Users」に所属しています。

以下より検証結果を記載します。以下の図③から図⑥はMS14-068の修正プログラムを適用する前、一方で図⑦は修正プログラムを適用した後の検証結果です。

■MS14-068適用前■
図③はドメインに所属するクライアント(Windows 7)のターミナル画面です。攻撃コードを含むスクリプトを実行することにより、ドメイン「2008R2AD.testdomain」のユーザー「dctest」のKerberosチケットに対して、ドメインの特権を付与する細工を行います。

[図③]
P09_prepatch1

図④は、③のチケットを現在のセッションに取り込みを行ったところです。この際、このチケットのユーザー名は「dctest」であることが分かります。

[図④]
P09_prepatch2

図⑤は、現在のセッションのチケットの情報を表示しています。このチケットを用いてターゲット(Windows Server 2008 R2)に対してnet useによる接続を試みたところです。Domain Users権限ではアクセスできないリソースである「\\<ターゲット>\c$」を、認証なしでzドライブとしてマウントできました。

[図⑤]
P09_prepatch3

図⑥は、チケットを使いターゲットのシェルを取得したところです。取得したシェルの実行権限を確認したところ、Domain Users権限のみ与えられているはずの「dctest」ユーザーに、「Domain Admins」や「Administrators」などの権限が付与されています。このことから、この脆弱性を持つドメインコントローラーは、細工されたチケットを検証できていないことが確認できます。

[図⑥]
P09_prepatch4

なお、WindowsのKerberos認証では、TGTチケットにはデフォルトで10時間の有効期限が設定されています。
この期限内では、TGTチケットを取得されたユーザーのパスワードを変更しても、攻撃者はログオンすることが可能です。

■MS14-068適用後■
図③から図④までと同じ手順で進めた後、図⑦では、現在のセッションにチケットがキャッシュされていることを確認しています。

次に、修正プログラム適用前の検証と同様にチケットを用いてターゲット(Windows Server 2008 R2)に対してnet useによる接続を試みていますが、MS14-068を適用した後は適用前と挙動が異なり、ドメインのリソースへのアクセスに認証が求められるようになります。脆弱性を修正するプログラム適用後は、細工されたチケットを用いてドメインのリソースにアクセスできなくなっていることが分かります。この脆弱性の修正プログラム(MS14-068)を適用していただくことにより、ドメインコントローラーはチケットを検証するようになったことが確認されました。

[図⑦]
P09_patched

■イベントログへの記録■
MS14-068を未適用の場合で特権の昇格の攻撃が成功した場合、WindowsのシステムログID4672を確認することにより、不審な挙動を検出することが出来ます。脆弱性を利用したリクエストが行われた場合、ログオンユーザーに対して特権が与えられるログが記録されます。以下の例ではDomain Users権限である「dctest」に対して特権が与えられていることが確認できます。

P09_log_ID4672

このログを取得するためには、グループポリシーの管理から使用しているポリシーを選択し、以下の設定を行います。

キー コンピューターの構成\ポリシー\Windowsの設定\セキュリティの設定\監査ポリシーの詳細な構成\監査ポリシー\特権の使用\
サブカテゴリ 重要な特権の使用の監査

 

MS14-068を適用済みの場合、WindowsのシステムログID4769を確認することにより、細工されたチケットを用いた特権のリクエストを検出することが出来ます。以下の例ではdctestユーザーとしての特権のリクエストを却下したことが確認できます。

P09_log_ID4769

このログを取得するためには、グループポリシーの管理から使用しているポリシーを選択し、以下の設定を行います。

キー コンピューターの構成\ポリシー\Windowsの設定\セキュリティの設定\監査ポリシーの詳細な構成\監査ポリシー\アカウントログオン
サブカテゴリ Kerberosサービスチケット操作の監査

 

【変更履歴】
(12/11) 修正プログラム適用前と適用後の比較に変更しました。
(12/14) 検証イメージを修正しました。
(12/15) 検証結果の内容を追記しました。
(12/17) イベントログへの記録を追記しました。

reported by y.izumita, ntsuji

 

Category: exploit | WindowsのKerberos認証の脆弱性により、権限昇格が行える脆弱性(CVE-2014-6324, MS14-068)に関する検証レポート はコメントを受け付けていません