2021年6月18日
著者:白石 三晃 - セキュアワークス株式会社 セキュリティ・リスク・コンサルティング事業本部 Red Team テクニカルリード
はじめに
標的型攻撃でも、標的型ランサムウェア攻撃でも、Active Directoryの侵害は一連の攻撃過程における最大のマイルストーンとなっています。Active Directoryは組織の端末やユーザを一元管理する機能を持っているため、攻撃者がActive Directoryの管理者権限(ドメイン管理者アカウント)を取得すると、組織の全ユーザや端末の設定を自由に制御できるようになります。
弊社では、標的型攻撃を中心とするサイバー攻撃をシミュレーションすることにより、組織のインシデント対応能力(防御力・検知力・対応力)を訓練・評価する「Red Teamサービス」を提供しています。同サービスによる攻撃シミュレーションにおいても、お客様との事前のお打合せの中で、攻撃目標として「Active Directoryの攻略」が設定されるケースが大半です。本記事では、弊社がこれまでに実施した攻撃シミュレーションの結果から、ドメイン管理者権限を攻撃者に奪われてしまった要因について、日本国内での事例を紹介するとともに、それらの要因への対処法について解説します。
前提
本記事では、マルウェア感染などにより、Active Directoryに属する端末が攻撃者に遠隔操作される状態を想定し、そこからどのようにドメイン管理者アカウントが侵害されるかを記載します。本記事に記載の内容は、弊社Red Teamサービスにおける日本国内での事例に基づいています。なお本記事中のスクリーンショットなどは弊社検証環境にて実施した結果を利用しています。
ドメイン管理者アカウントが侵害される要因
以下は、弊社攻撃シミュレーションによりドメイン管理者アカウントの攻略に至った要因のうち、比較的多くみられるものです。必ずしも高度な技術を必要とするものではなく、人為的な要因がドメイン管理者アカウントの侵害につながる例も多く存在します。
- 単純なドメイン管理者パスワード
- 端末初期設定用のプログラムコードに管理者パスワードが記載されている
- パスワード管理表
- Kerberoasting
- ドメイン管理者の利用する端末が侵害される
単純なドメイン管理者パスワード
弊社攻撃シミュレーションにおいてしばしば見られるのが、「ユーザ名と同じ」「P@ssw0rd!」などの単純なドメイン管理者パスワードが判明するケースです。「何を今さら」と思われるかもしれませんが、これらのパスワードが判明することが、ドメイン管理者アカウントの侵害される要因の上位を占めています。
経験的には、ドメイン管理者アカウントが多数存在する組織においてこの傾向が強いように見受けられます。とくに「〇〇admin」など特定用途向けと思われるドメイン管理者アカウントや、システムインテグレータが利用していると思われる管理者アカウントにおいて、上記のような単純なパスワードが設定されている組織を多く見かけます。
弊社攻撃シミュレーションでは、ごく簡単なパスワードリストを用いてドメイン管理者アカウントに対するパスワード推測攻撃を実施します。多くの組織ではアカウントロックアウトポリシーが有効になっているため、ログイン試行は十分な時間間隔を空けながらゆっくりと実施する必要があります。それでも、ユーザ名と同じなどの単純なパスワードによりドメイン管理者権限が取れてしまうケースが後を絶ちません。
端末初期設定用のプログラムコードに管理者パスワードが記載されている
前述のような単純なパスワードでなくとも、端末やファイルサーバのスクリプトファイルなどにパスワードがハードコードされており、それがきっかけとなってドメイン管理者アカウントが侵害される場合もあります。
たとえば、端末の初期設定スクリプト(BATファイルやPS1ファイル)の中にパスワードがハードコードされている、SYSVOLのグループポリシー基本設定(GPP)[1] にパスワードが復号可能な形で記載されている、などがあり、それを使いまわすことによってドメイン管理者権限を取得できるパターンも比較的多く存在します。
パスワード管理表
組織によっては、テキストファイルやエクセルファイルでパスワード管理を行っていて、ファイルサーバやクラウドストレージなどの共有領域に保存された「パスワード管理表」からドメイン管理者パスワードが漏洩する場合もあります。これはドメイン管理者に限らず、AWSやBOXなどのクラウドサービスや、社内重要システムへのログイン情報についても同様です。海外の技術者によるセキュリティテストでは日本語環境における情報収集が手薄になりがちですが、侵害済みの環境から正規の権限でアクセス可能な領域を参照することによって攻撃の突破口が開けることもしばしばあります(弊社ではこのプロセスを「宝探し(Treasurehunt)」と呼んでいます)。
Kerberoasting[2]
ドメイン管理者アカウントがサービスアカウントとして登録されている場合に、オフラインでパスワードを解析することによりパスワードが判明するパターンです。
Active Directoryには、ドメイン上でサービスを提供する仕組みが用意されており、利用可能なサービスの一覧をActive Directory(ドメインコントローラ)への問い合わせにより取得することができます。仕様上、これにより得られる情報の中にはサービスアカウント(サービスの稼動に利用されるアカウント)のパスワード解析に利用可能な情報が含まれています。本情報は、ドメインの一般ユーザ権限で取得することができます。
以下は、弊社ラボ環境において、パスワード解析に利用可能な情報を攻撃ツール「Rubeus」[3] により取得した様子です。サービスアカウントのアカウント名「mssql」が確認できます。
[*] NOTICE: AES hashes will be returned for AES-enabled accounts. [*] Use /ticket:X or /tgtdeleg to force RC4_HMAC for these accounts. [*] Target Domain : duvel [*] Using alternate creds : duvel.local\charlotte [*] Searching path 'LDAP://duvel.local' for Kerberoastable users [*] Total kerberoastable users : 2 (snip) $krb5tgs$23$*mssql$DUVEL.local$MSSQLService/mars.duvel.local@duvel*$44E694 18E1AC108E3B1199D8025E6038$2B8189159BCD82FFC281D5513771CA249C 4FAEDDCACF5664E4CF8B98E402F(snip)663C80B43FCCAF3670D59B788F49929D05E 0085230BC873C0231EA7F3A0F6F3B9955419B9911CE7E51B1551C022517C9FA85F1B CA01DF8C82400BD4897CF540A88B7C52F053158D9AD71D92E078FAF32B0F1 CB0F1D7325FBFB3
攻撃者は、ドメインに属する端末からの問い合わせによりサービスアカウントの一覧を取得します。その後、取得した情報に基づいてオフライン(攻撃者環境)にてパスワード解析を実施します。この場合、ターゲットの環境に対して認証試行を行う必要がないため、アカウントロックアウトなどを気にせず高速でパスワード解析を行うことができます。オンラインでの認証試行よりもはるかに多くのパスワードを試すことができ、結果として「iloveyou0630!」のようなパスワードを短時間で解析することも可能となります。
以下は、弊社ラボ環境から取得した上記の出力に対してオフラインにてパスワードクラックを実施し、ユーザ「mssql」のパスワードを解析した様子です。
hashcat (v6.2.1) starting... (snip) $krb5tgs$23$*mssql$DUVEL.local$MSSQLService/mars.duvel.local@duvel*$44e69418e1ac 108e3b1199d8025e6038$2b8189159bcd82ffc281d5513771ca249c4faeddcacf5664e4cf8b9 8e402fc86267ceff03dedddc57b2a8cf(snip)36bc46ed0814fa9afae2a5ff7ee88d31a 7f71de83beddc210fd37c015cf4a0f283d90a683cd654d8f4f3e4ce4a7ab2b0a93901 bae17f9781086813b5c40c2660b5743aad48d1ee1986068ccdf6221255b55ee59663 c80b43fccaf3670d59b788f49929d05e0085230bc873c0231ea7f3a0f6f3b9955419b9 911ce7e51b1551c022517c9fa85f1bca01df8c82400bd4897cf540a88b7c52f053158d 9ad71d92e078faf32b0f1cb0f1d7325fbfb3:be7+L(en Session..........: hashcat Status...........: Exhausted Hash.Name........: Kerberos 5, etype 23, TGS-REP Hash.Target......: C:\bin\target\Kerberoast.txt Time.Started.....: Thu Jun 10 00:21:54 2021 (0 secs) Time.Estimated...: Thu Jun 10 00:21:54 2021 (0 secs) Guess.Base.......: File (C:\bin\dict\wordlist.txt) Guess.Queue......: 1/1 (100.00%) (snip) Started: Thu Jun 10 00:21:43 2021 Stopped: Thu Jun 10 00:21:55 2021
ドメイン管理者の利用する端末が侵害される
ドメイン管理者の利用する端末がマルウェアに感染することにより、ドメイン管理者アカウントのパスワードやパスワードハッシュが漏洩するパターンです。
Windows端末にログインを行うと、以下のような場所に認証情報(パスワードやパスワードハッシュ)が記録されます。端末の管理者権限を取得した攻撃者は、これらの情報にアクセスし、同じ端末にログインした他のユーザの認証情報を取得する可能性があります。
- Cached Domain Credentials[4] :Active Directoryとの通信が行えない環境でも端末にログオンできるよう、過去にログオンしたユーザのパスワード情報がキャッシュとして保持されている
- LSASS:メモリ上のlsass.exeのプロセス領域に、端末にログオンしたユーザのパスワードハッシュが保存される
以下は、弊社環境において、メモリ上からユーザ「admin_henry」のパスワードハッシュを取得した様子です。
上記、端末上のシステム領域から認証情報を取得する方法に加え、攻撃者は、キーロガーによりユーザが入力したパスワードを盗み取る、資格情報マネージャ[5] に保存されたパスワードを読み取るなどの攻撃も可能です。
なお、本攻撃は攻撃者が当該端末に管理者権限で接続できることが前提条件となります。このため、全端末に共通の管理者パスワードが設定されている環境や、端末同士が(SMBやRDPなどにより)互いに通信できる環境において有効な攻撃となります。
BloodHound[6] と呼ばれるツールは、ドメイン管理者が利用している端末を特定するとともに、Active Directoryのユーザやグループなど様々な設定を分析し、どのユーザや端末を侵害すればドメイン管理者アカウントに辿り着くことができるかを表示することができます。以下は、弊社検証環境をBloodHoundによって分析した様子です。
攻撃者は本ツールなどを用いてActive Directoryのユーザや端末の関係を分析し、ドメイン管理者アカウントの侵害につながる攻撃経路がないかどうかを調査します。
対策
上記を踏まえ、ドメイン管理者アカウントを保護するため、組織において以下を再確認することを推奨します。
- ドメイン管理者アカウントのパスワードを推測の困難なものにする
- ドメイン管理者アカウントをサービスアカウントとして登録しない
- 初期インストール用スクリプトなど端末やファイルサーバ上に存在するファイルの中にパスワードがハードコードされていないか調査する
- 専用のパスワード管理ツール(パスワードマネージャ)によるパスワード管理を行うことにより、エクセルなどによるパスワード管理を避ける
- ドメイン管理者アカウントでログインする端末を保護する:ドメイン管理者の利用する端末に攻撃者が横断的侵害を行うのを防止するため、以下を実施する
- ドメイン管理者アカウント専用の端末を準備し、ドメイン管理者権限の必要な操作は当該端末からのみ実施する
- 端末共通管理者アカウントの利用を避ける(LAPS)
- ネットワークデバイスや端末上のファイアウォールなどにより、端末同士の通信を遮断し、端末管理者アカウントが漏洩した場合でも他端末への横断的侵害を行えないようにする
あわせて、以下のような弊社ソリューションにより、貴組織におけるセキュリティリスクを特定することもご検討ください。
- フルスコープRed Team:貴組織全体に対するリアルなサイバー攻撃シミュレーションサービス 対象組織のビジネスクリティカルなリスクを攻撃目標に設定した高度なサイバー攻撃シミュレーションにより、悪意のある攻撃者による標的型攻撃を再現、セキュリティインシデントに対する貴組織の対応能力を訓練・評価する
- Red Team Lite:Active Directoryを対象とする攻撃シミュレーションサービス
Active Directory侵害を目的とする攻撃シミュレーションにより、悪意のある攻撃者が貴組織においてどのような活動を行いうるかを明らかにする - ADSA(Active Directory Security Assessment)サービス
Active Directoryの設定内容を分析することにより、ドメイン管理者アカウントの侵害に悪用されるおそれのあるユーザや端末を特定する - パスワード解析サービス
Active Directoryに登録されているパスワード情報を弊社解析マシンにて解析し、弱いパスワードがどの程度含まれているかを明らかにする
本記事が貴組織におけるドメイン管理者アカウントの保護に役立つことを願っています。
まとめ
- 標的型攻撃への対策において、ドメイン管理者アカウントの保護は重要な要素です
- 弊社攻撃シミュレーションの経験から、以下のような要因でドメイン管理者アカウントが攻略される場合が多く存在します
- 単純なドメイン管理者パスワード
- 端末初期設定用のプログラムコードに管理者パスワードが記載されている
- パスワード管理表
- Kerberoasting
- ドメイン管理者の利用する端末が侵害される
- 上記の各要因への対策を講じることにより貴組織のドメイン管理者アカウントを保護することができます
参考資料
[1] [MS14-025] グループ ポリシー基本設定の脆弱性により、特権が昇格される (2014 年 5 月 13 日)
https://technet.microsoft.com/ja-jp/security/bulletin/MS14-025
[2] Kerberoasting
https://attack.mitre.org/techniques/T1558/003/
[3] Rubeus
https://github.com/GhostPack/Rubeus
[4] Cached domain logon information
https://docs.microsoft.com/en-us/troubleshoot/windows-server/user-profiles-and-logon/cached-domain-logon-information
[5] 資格情報マネージャーにアクセスする
https://support.microsoft.com/ja-jp/windows/資格情報マネージャーにアクセスする-1b5c916a-6a16-889f-8581-fc16e8165ac0
[6] BloodHound
https://github.com/BloodHoundAD/BloodHound