ドメイン環境における EDR を活用した資格情報窃取段階の検知

「ドメイン環境における EDR を活用した内部偵察段階の検知」[1] の記事では、攻撃者がアクティブディレクトリ環境に属しているシステムを掌握したあと、内部ネットワークを偵察して情報を収集するプロセスを、EDR を利用して検知する事例を取り上げた。組織のインフラがアクティブディレクトリ(Active Directory)を使用する環境の場合、攻撃者は内部偵察段階を経てドメイン環境の情報を収集し、資格情報を窃取したあと、これをもとにラテラルムーブメントを実行し、最終的にドメイン環境を掌握できる。

ここでは、攻撃者がアクティブディレクトリ環境に属するシステムを掌握したあと、ラテラルムーブメントのために資格情報を窃取する攻撃段階を解説し、EDR を利用してこれを検知する方式を紹介する。攻撃者は資格情報の窃取のために Mimikatz を含む様々なツールも活用することがあり、管理者の不注意を悪用する可能性がある。

このような資格情報窃取の段階はドメインを掌握するための核心的なステップであるため、攻撃者はセキュリティ製品による検知を回避するために様々な手法を用いる。ファイル検知を回避するためにパッキングや難読化を施すことはもちろん、振る舞い検知を回避するために正常なユーティリティである ProcDump を悪用することもある。このため、AntiVirus のような従来の製品では検知に限界があり、EDR を活用して疑わしい振る舞いをモニタリングして対応する必要がある。

AhnLab EDR(Endpoint Detection and Response)は、韓国国内で唯一の振る舞いベース解析エンジンをもとにエンドポイント領域に対して強力な脅威モニタリングと解析、対応力を提供する次世代エンドポイント脅威検知および対応ソリューションである。AhnLab EDR は、疑わしい振る舞いに関するタイプ別情報を常時収集し、検知および解析、対応の観点からユーザーが脅威を正確に認識できる機能を提供し、これによって総合的な解析を通じ原因把握と適切な対応、再発防止プロセスを確立できる。

1. 概要

ディレクトリサービスは、コンピュータネットワークのユーザーとリソースの情報を統合、保存、管理するサービスであり、Windows に実装されたディレクトリサービスを Active Directory という。ドメインは AD の基本単位であり、当該ドメインにおいて認証や権限設定のような管理を担当するサーバーをドメインコントローラー(Domain Controller)という。攻撃者の目標は、当該ドメインに存在する Domain Admins グループに含まれたアカウントの資格情報を窃取し、ドメインコントローラー、すなわちドメイン全体を掌握することである。

攻撃者は、資格情報を窃取するために主に Mimikatz を利用する場合が多い。しかしながら、Mimikatz を使用しなくても不適切に管理されているユーザー情報から資格情報を抽出したり、誤った設定を悪用して資格情報を取得することもできる。このようにして取得した資格情報はラテラルムーブメント攻撃に使用され、最終的にドメイン管理者のアカウント情報を窃取するまで続けられる。

2. Mimikatz

2.1. Mimikatz とは

Mimikatz は、Windows OS 環境において資格情報を抽出する機能を持つプログラムである。オープンソースプロジェクトであり Github に公開されていることから攻撃者たちが愛用しており、特にドメイン環境においてランサムウェアの配布や情報窃取のためにドメインを掌握するための手段としてよく使用されている。

図1. Mimikatz の Github ページ

資格情報窃取と関連して Windows アカウントの平文形式のパスワード以外にも、ハッシュ、Kerberos チケット等のような様々な情報を Windows 環境から抽出でき、ひいては取得した資格情報を利用したラテラルムーブメント攻撃および操作権限維持のための機能もサポートしている。

Mimikatz がサポートする機能は段階ごとに様々であるが、ここでは実質的に最もよく利用される機能である資格情報窃取の手法を取り上げる。資格情報窃取コマンドも数多くあるが、LSASS プロセスのメモリに保存されている NT Hash(NTLM 認証プロトコルで使用するハッシュ)を抽出する手法をまとめる。

大半の攻撃事例において、攻撃者たちは Mimikatz の「sekurlsa::logonpasswords」コマンドを使用するケースがほとんどであり、このコマンドは現在のシステムにおいて抽出可能なほとんどの資格情報を表示する。

図2. logonpasswords コマンドの実行結果

2.2. 様々な形式の Mimikatz

Mimikatz は上記のようにシェルプロンプト形式でコマンドを入力することもできるが、コマンドライン引数によりコマンドを入力して実行させることもできる。実際の攻撃ではコマンドを引数として伝達して実行させ、結果をテキストファイルで出力する事例が頻繁に確認されている。

> mimikatz.exe “privilege::debug” “sekurlsa::logonpasswords” exit
図3. GlobeImposter ランサムウェアの攻撃事例で確認された Mimikatz のコマンド
図4. Mimikatz コマンドに関する検知ログ – EDR 製品

Mimikatz は LSASS プロセスのメモリに保存されている NT Hash を取得するために、直接 LSASS プロセスのメモリにアクセスする。このような振る舞いはセキュリティ製品により容易に検知できるため、最近の攻撃者たちはセキュリティ製品の検知を回避するために正常なプログラムである Sysinternals 社の ProcDump を利用することもある。正常なプログラムである ProcDump によりメモリをダンプしてファイルとして生成し、「sekurlsa::minidump」コマンドを利用してダンプファイルを Mimikatz で復号化する方式である。このような事例は、過去に「韓国国内企業の Web サービスを対象とする APT 攻撃事例の解析」[2] 事例でも使用された。

> procdump.exe -accepteula -ma lsass.exe C:\attack\lsass.dmp
> mimikatz.exe “sekurlsa::minidump C:\attack\lsass.dmp” “sekurlsa::logonpasswords” “exit”

AhnLab EDR は、正常なプログラムである Sysinternals 社の ProcDump を利用して LSASS プロセスのメモリをダンプする振る舞いに対して脅威として検知し、管理者がこれを認知して原因把握と適切な対応を行えるようにサポートする。

図5. 疑わしい ProcDump 実行ログに関する検知ログ – EDR 製品

参考に、最新の Windows 環境では基本的に WDigest セキュリティパッケージを利用した平文パスワードの取得が不可能であり、UseLogonCredential のレジストリキーを設定しなければ平文形式のパスワードを取得することはできない。これにより、攻撃者は平文パスワードを得るために UseLogonCredential レジストリキーを追加するコマンドを使用する場合もある。

> reg add HKLM\SYSTEM\CurrentControlSet\Control\SecurityProviders\WDigest /v UseLogonCredential /t REG_DWORD /d 1 /f
図6. UseLogonCredential キーの設定による平文パスワードの取得および検知ログ – EDR 製品

ここまで扱ってきた Mimikatz は、実行ファイル形式であった。攻撃者たちはファイル検知を回避するために直接製作、または既存のバイナリをパッキング、または難読化して使用することもあるが、実際の攻撃事例では PowerShell フォーマットの Mimikatz がよく確認されている。PowerShell スクリプトの特性上、便利なインターフェースやファイル形式の代わりにメモリ上で実行できるという利点があり、PowerSploit、Empire、Nishang 等、大半のペネトレーションテストツールにおいて「Invoke-Mimikatz.ps1」という名前でサポートしている。

図7. Invoke-Mimikatz PowerShell スクリプトに関する検知ログ – EDR 製品

Cobalt strike は企業や機関のネットワークおよびシステムについての脆弱性を点検するための目的で使用されるツールである。これにより、内部偵察段階から権限昇格、資格情報の窃取、ラテラルムーブメント、コマンド制御等のペネトレーションテスト段階ごとに様々な機能をサポートする。Cobalt strike は資格情報の窃取に Mimikatz を使用する。上記で取り上げた実行ファイル形式の代わりに DLL 形式が使われるが、これは Invoke-Mimikatz PowerShell スクリプトが内部で DLL 形式の Mimikatz を使用することと類似している。Cobalt strike は Mimikatz のコマンドを実行する際、正常なプロセスを実行してそこに Mimikatz をインジェクションする方式により動作する。

GUI 環境で「Run Mimikatz」コマンドを使用すると Mimikatz の「sekurlsa::logonpasswords」コマンドがデフォルトで実行されて結果を表示し、直接シェルから Mimikatz の各コマンドを実行することもできる。

図8. Cobalt strike がサポートする Mimikatz の機能(引用元 – Basic Beacon Use [3])

AhnLab EDR は、Cobalt strike の Mimikatz が正常なプロセスにインジェクションされ資格情報を窃取する振る舞いに対して検知し、管理者がこれを認知して原因把握と適切な対応を行えるようにサポートする。

図9. Cobalt strike により実行された Mimikatz の検知ログ – EDR 製品

2.3. Mimikatz を利用した資格情報の窃取

Mimikatz は LSASS プロセスのメモリに存在する資格情報を抽出し、復号化して表示する。感染システムが個人の使用する PC であるか特定のネットワークに含まれていない場合は感染システム自体の資格情報のみを取得することしかできない。しかし、組織のドメイン環境は設定によって管理者のミスや複数の複雑な関係が存在する場合がある。このような環境では、操作権限を奪った少数のシステムで Mimikatz を実行するだけでもラテラルムーブメントに必要な情報を収集できる。[4](外部サイト、英語にて提供)

A. 同一ローカル管理者のアカウント

例えば、IT 管理者が新しい PC を支給する際にローカル管理者グループのアカウントを同じ形に設定して支給することもある。この場合、複数の PC が同一ローカル管理者のアカウントおよびパスワードを有することになるため、同様に支給された他のシステムも同じ NT Hash を持つことになる。すなわち、攻撃者が単一のシステムを掌握してローカル管理者アカウントの資格情報を窃取した場合、これらのシステム全体に対しても資格情報を取得できることになる。このようにして取得した資格情報を利用し、ラテラルムーブメント攻撃を実行しながらドメイン管理者アカウントを使用する、または使用した履歴がある内部システムまで掌握することができる。

B. ローカル管理者権限を持つグループ

このほかにも、ドメインユーザーに不適切な権限を付与するケースも存在する。例えば、ヘルプデスク部署では IT サービスのためにドメイン内のシステムに対し管理者権限を必要とする場合がある。このためにヘルプデスクグループにローカル管理者権限を追加すると、ヘルプデスクグループのユーザーがドメイン内のシステムからログインしたときに当該システムのローカル管理者権限を持つことになる。もし攻撃者がヘルプデスクアカウントの資格情報、すなわち NT Hash を奪った場合、ローカル管理者権限が含まれるため、このドメインはラテラルムーブメント攻撃に対して脆弱となる。

C. ドメイン管理者グループのアカウントでログイン

ローカル管理者以外に、ドメイン管理者グループのアカウントを不適切に管理している場合もある。現在のシステムに多数のユーザーがログインした履歴がある場合、資格情報が LSASS プロセスのメモリに残っているため、感染したシステムでログインしたユーザーはすべて資格情報窃取の対象となる。感染したシステムのユーザーが Domain Users ではなくドメイン管理者アカウントでログインしている場合、別途プロセスの必要なくドメインを掌握できる。

D. ドメイン管理者アカウントでプロセスを実行

上記のように直接ドメイン管理者アカウントでログインしなくとも、ドメイン管理者権限で特定のプログラムを実行させる場合がある。例えば、インストールまたは実行時に管理者権限を必要とするプログラムが存在し、そのために管理者アカウントでログインして管理者権限で実行させる場合がある。現在のシステムのプロセスリストを照会したとき、ドメイン管理者アカウントで実行中のプロセスが存在する場合、LSASS プロセスのメモリにはドメイン管理者アカウントの資格情報が残っていることを意味する。

3. 様々な資格情報の窃取方式

ここまで、Mimikatz を利用してローカルシステムに保存された資格情報を窃取する攻撃方式を取り上げてきた。しかし、ユーザーや管理者の不注意を利用しようとする場合は、Mimikatz を使用しなくても十分な資格情報を得ることができる。特に、外部からアクセスが不可能な内部インフラの場合、デフォルトで設定されていたり脆弱な資格情報を設定している場合が多く、ここでは代表的な事例を取り上げる。

3.1. 不適切なデータ管理

1つ目の方式は、アクセス可能な内部データを活用する方法である。例えば、共有フォルダーをスキャンしたあと各共有フォルダー内に存在する設定ファイル、スクリプトファイル等を利用して情報を収集することができる。一般的な会社内の部署では業務資料を共有するための方式で共有フォルダーを利用する場合がある。ここには、他のシステムのアドレスおよび説明のほか、資格情報を含んでいる設定ファイルやログインスクリプトのようなスクリプトファイルが存在することがある。攻撃者たちはアクセス可能なすべての共有フォルダーをスキャンしたあと、全体のデータを調査してラテラルムーブメントに必要な情報を収集する。

PowerView は PowerSploit プロジェクトにも含まれるツールであり、Windows のドメイン環境で様々な情報を収集して表示する。例えば、現在のドメインに存在する共有フォルダーを検索する Find-DomainShare コマンドをサポートしている。攻撃者たちはその結果を利用し、共有フォルダーにアクセスして情報を収集することができる。Find-InterestingDomainShareFile コマンドは複数の共有フォルダーにおいて「admin」、「password」のような資格情報に関するキーワードが存在するファイルを抽出して表示するコマンドである。

3.2. 不適切なユーザー管理

内部データ管理の問題以外にも、誤った管理方法を悪用する方式もある。例えば、管理対象ユーザーの数があまりにも多い場合、管理者がドメインユーザーの「説明」(Description)エントリにパスワードのような情報を書き込むことがある。当該エントリは管理者だけでなく一般ドメインユーザーもツールを利用して全体ドメインユーザーをリスト化し、出力することが可能である。

以下の事例では PowerView の Get-NetUser コマンドを利用して全体ドメインユーザーの Description を User Fileld から抽出している。

> Get-NetUser | select samaccountname, description
図10. PowerView を利用したユーザー Description の出力

このように、PowerView は内部偵察段階だけでなく資格情報窃取の段階でもよく使用される。AhnLab EDR は、攻撃者が PowerView スクリプトを利用してドメイン環境から資格情報を取得する振る舞いに対して以下のように検知し、管理者がこれを認知できるようにサポートする。

図11. PowerView コマンドに関する検知ログ – EDR 製品

3.3. アプリケーションに保存された資格情報

内部イントラネットに存在するシステムは、インターネット接続が可能な環境のシステムと比較して、資格情報の管理が疎かになっている可能性が高い。また、ほとんどのインフラは Web で構築されているため、内部イントラネットシステムの Web ブラウザには内部イントラネットの別のシステムに対するアクセス履歴や資格情報が多数存在することがある。Web ブラウザや電子メール、および FTP、SSH クライアントのようなプログラムからユーザーのアカウント情報を窃取する手法は、すでに広く知られている。

例えば、過去に Defray777 ランサムウェアの攻撃者も VMware ESXi サーバー攻撃の過程で Web ブラウザに保存されている資格情報を悪用した。Mimikatz および Web ブラウザから収集した資格情報を利用してラテラルムーブメントを実行し、最終的に VMware ESXi 環境で動作中であった VM を暗号化した。[5](外部サイト、英語にて提供)

このほかにも GlobeImposter、MedusaLocker [6]、Crysis、Venus [7] 等のランサムウェアによる攻撃者たちは外部に公開されているリモートデスクトップサービスを攻撃対象とするが、初期侵入後、複数のツールを使って内部偵察および資格情報窃取段階を実行する。感染システムに保存されたアカウント情報を収集する過程では、NirSoft 社のツールがよく使用される。WebBrowserPassView は Chrome、Firefox、IE 等の Web ブラウザに保存されたアカウント情報を抽出して表示するツールであり、Mail PassView は Outlook、Thunderbird のような電子メールクライアントに保存されたアカウント情報を抽出して表示する。このほかにも VNCPassView、WirelessKeyView 等、感染システムに保存されている様々なアカウント情報を抽出するツールを使用することもある。

図12. Venus ランサムウェア攻撃者が資格情報窃取のためのツールをインストールするログ

これらのツールは様々な攻撃で使用されているものの、管理者が組織のネットワークをメンテナンスする目的としても使用可能なツールであるため、AntiVirus 製品でこれらのツールを完全に遮断することには限界がある。

図13. 攻撃に使用されたツールに関する検知ログ – EDR 製品

4. 結論

アクティブディレクトリを使用する組織のドメイン環境に侵入した攻撃者は、Mimikatz を利用して資格情報を取得できる。無論、Mimikatz が最もよく使用されるツールではあるが、攻撃者たちは不適切なデータおよびユーザー管理等、管理者の不注意を悪用して資格情報を得ることもある。このようにして取得した資格情報は、内部偵察プロセスで得た情報と合わせて今後ラテラルムーブメント攻撃に使用される。

このような資格情報窃取の段階はドメインを掌握するための核心的なステップであるため、攻撃者はセキュリティ製品による検知を回避するために様々な手法を用い、そのために AntiVirus 製品単独では検知および遮断するのに限界がある。AhnLab EDRは特定のシステムを掌握した攻撃者が今後ドメイン全体を掌握するために資格情報を窃取する攻撃手法を検知し、管理者が原因を特定し適切な対応および再発防止プロセスを確立できるようサポートする。

振る舞い検知
– Execution/EDR.Mimikatz.M11444
– Execution/EDR.Behavior.M10484
– Suspicious/DETECT.SystemManipulation.M2810
– CredentialAccess/EDR.Mimikatz.M10451
– Suspicious/DETECT.T1003.M2608
– LateralMovement/EDR.PowerView.M4055
– Execution/EDR.Event.M10819
– Execution/EDR.Event.M10817
– Execution/EDR.Event.M10815

振る舞い情報検知および解析を通じたエンドポイント可視性を提供し、脅威を能動的に追跡する AhnLab EDR についての詳しい情報は AhnLab の公式 HP で確認できる。

Categories: AhnLab 検知

Tagged as: ,