mimikatzでCredentialGuardが突破できるとの噂があるので検証してみた
スポンサーリンク
こんにちは、えもんです。
mimikatzの最新バージョンでCredential Guardが突破可能だとTwitterで見かけたので検証してみました。
Just released a new #mimikatz version to support Windows 10 1803 to bypass the Credential Guard authentication chain
— 🥝 Benjamin Delpy (@gentilkiwi) 2018年9月25日
Reminder: your passwords/keys are not in the secure world... only its storage **after** authentication!@reni_ni this version is for you 😉https://t.co/Wzb5GAxx6L pic.twitter.com/O3B03slN6S
正しくは突破じゃないよ、回避だよ。
mimikatzとは
Windowsのメモリ上に保存されている認証情報にアクセスして、管理者権限の取得や他のアカウントへなりすましができるツールです。ツール自体はgithubで公開されており、誰でも簡単に入手できちゃいます。
このツールは標的型攻撃でもよく用いられ、サイバーキルチェーンにおける侵入基盤構築の段階で使用されます。
ちなみに、作者は「これはぼくのC言語の勉強だよ。セキュリティの実験だよ。」って言ってるらしいです。
Credential Guardとは
Windows 10 Enterpriseで導入された資格情報の保護機能です。
メモリ上の認証情報を仮想化機能を用いて守ってくれます。
簡単に言えばアンチmimikatz機能と言えます。
下記、マイクロソフトのページに詳細が載っているのでご参照いただければと思います。
Credential Guard によるドメインの派生資格情報の保護 (Windows)
検証してみた
早速検証してみました。
検証環境は下記のとおりです。
仮想環境:VMware Workstation Player 15
エディション:Windows 10
Enterpriseバージョン:1709
mimikatzのダウンロード〜実行
こちらから最新版のmimikatzをダウンロードします。
標準的なウィルス対策ソフトなら検知します。検知しないように除外設定をしてください。
zipを展開すると中にexeファイルがあります。それがmimikatz本体です。
普通にコマンドプロンプト上で実行してみましょう。
世界一憎たらしいキウイが出てきたらOKです。
コンソール上で
privilege::debug
と打ってみましょう。
上の画像ではエラーが出てますね。これはコマンドプロンプトが管理者権限で動いていないことが原因です。次はコマンドプロンプトを管理者権限で実行し、同様にmimikatzを動かしてみましょう。
Privilege '20' OK
と出ていたら問題ありません。
それではさっそく認証情報を窃取していきましょう。
CredentialGuardが無効の場合
Credential Guardが無効になっている場合の出力を見てみましょう。
コンソール上でsekurlsa::logonpasswords
と打ちます。
やったね!
CredentialGuardが有効の場合
それでは次はCredential Guardが有効になっている場合の出力を見てみましょう。
ハッシュ値っぽい値が取れているようにも見えますが、これは暗号化されたデータであり、本来のパスワードのハッシュ値とは異なります。
ありがとうCredentialGuard、さようならmimikatz
回避できるんだって
手順は実に簡単。mimikatzのコンソール上で
misc::memssp
と入力し、メモリにインジェクションする。
手順終わり。
・・・
全然パスワード取得できてないじゃん。
というのは冗談で一旦ログオフし、ロック画面に戻ります。
再度ログオンします。
すると、Windows/System32配下に見慣れぬmimilsa.logが作成されています。
しっかりパスワードが記録されていますね!大変ですね!
CredentialGuardを回避してパスワードの情報を抜き取ることができちゃいました。
この方法はログオンをするタイミングでmimilsaに記入されていきます。一つの端末で共通のアカウントを利用している場合は危険ですね。
また、再起動するとメモリ上から消えるためmimilsaに記入されることはなくなります。
対策
・System32配下を監視する
ソースコードを改変されない限り、デフォルトでsystem32フォルダにmimilsa.logとして保存されるので、そのファイルの有無を監視するのが対策と考えております。
高度な攻撃者はソースコードを変えて仕掛けてくると思うのでこれだけでは難しいかもしれませんね。。。
他に対策あれば教えてください!
次はAD環境、リモートデスクトップで接続した場合とかで検証してみようと思います。