えもんブログ

社内SEのひとりごと

mimikatzでCredentialGuardが突破できるとの噂があるので検証してみた

スポンサーリンク

こんにちは、えもんです。

 

mimikatzの最新バージョンでCredential Guardが突破可能だとTwitterで見かけたので検証してみました。

 

正しくは突破じゃないよ、回避だよ。

 

mimikatzとは

Windowsのメモリ上に保存されている認証情報にアクセスして、管理者権限の取得や他のアカウントへなりすましができるツールです。ツール自体はgithubで公開されており、誰でも簡単に入手できちゃいます。

github.com

 

このツールは標的型攻撃でもよく用いられ、サイバーキルチェーンにおける侵入基盤構築の段階で使用されます。

ちなみに、作者は「これはぼくのC言語の勉強だよ。セキュリティの実験だよ。」って言ってるらしいです。

 

Credential Guardとは

Windows 10 Enterpriseで導入された資格情報の保護機能です。

メモリ上の認証情報を仮想化機能を用いて守ってくれます。

簡単に言えばアンチmimikatz機能と言えます。

下記、マイクロソフトのページに詳細が載っているのでご参照いただければと思います。

Credential Guard によるドメインの派生資格情報の保護 (Windows)

 

検証してみた

早速検証してみました。

検証環境は下記のとおりです。

仮想環境:VMware Workstation Player 15
エディション:Windows 10
Enterpriseバージョン:1709

mimikatzのダウンロード〜実行

こちらから最新版のmimikatzをダウンロードします。

標準的なウィルス対策ソフトなら検知します。検知しないように除外設定をしてください。

f:id:emonnao:20181012203706p:plain

 

zipを展開すると中にexeファイルがあります。それがmimikatz本体です。

普通にコマンドプロンプト上で実行してみましょう。

世界一憎たらしいキウイが出てきたらOKです。

f:id:emonnao:20181012204438p:plain

コンソール上で

privilege::debug

と打ってみましょう。

上の画像ではエラーが出てますね。これはコマンドプロンプトが管理者権限で動いていないことが原因です。次はコマンドプロンプトを管理者権限で実行し、同様にmimikatzを動かしてみましょう。

f:id:emonnao:20181012205543p:plain

Privilege '20' OKと出ていたら問題ありません。

それではさっそく認証情報を窃取していきましょう。

CredentialGuardが無効の場合

Credential Guardが無効になっている場合の出力を見てみましょう。

コンソール上でsekurlsa::logonpasswordsと打ちます。

f:id:emonnao:20181012210202p:plain

 

NTLM、SHA1ハッシュ値が取得できました。

やったね!

 

CredentialGuardが有効の場合

それでは次はCredential Guardが有効になっている場合の出力を見てみましょう。 

f:id:emonnao:20181012210501p:plain

ハッシュ値っぽい値が取れているようにも見えますが、これは暗号化されたデータであり、本来のパスワードのハッシュ値とは異なります。

ありがとうCredentialGuard、さようならmimikatz

回避できるんだって

手順は実に簡単。mimikatzのコンソール上で

misc::memsspと入力し、メモリにインジェクションする。

f:id:emonnao:20181012210757p:plain

手順終わり。

 

・・・

 

全然パスワード取得できてないじゃん。

 

というのは冗談で一旦ログオフし、ロック画面に戻ります。

f:id:emonnao:20181012211253p:plain

 

再度ログオンします。

すると、Windows/System32配下に見慣れぬmimilsa.logが作成されています。

f:id:emonnao:20181012211546p:plain

しっかりパスワードが記録されていますね!大変ですね!

CredentialGuardを回避してパスワードの情報を抜き取ることができちゃいました。

この方法はログオンをするタイミングでmimilsaに記入されていきます。一つの端末で共通のアカウントを利用している場合は危険ですね。

また、再起動するとメモリ上から消えるためmimilsaに記入されることはなくなります。

 

対策

・System32配下を監視する

ソースコードを改変されない限り、デフォルトでsystem32フォルダにmimilsa.logとして保存されるので、そのファイルの有無を監視するのが対策と考えております。

高度な攻撃者はソースコードを変えて仕掛けてくると思うのでこれだけでは難しいかもしれませんね。。。

他に対策あれば教えてください!

 

次はAD環境、リモートデスクトップで接続した場合とかで検証してみようと思います。

 

【不正アクセス】利用中のサービスが不正アクセス被害にあった場合どうする?【対処】