Mimikatz は、GitHub からダウンロードできるオープンソースの Windows ユーティリティです。 Mimikatz は、Microsoft Windows Local Security Authority Subsystem Service (LSASS) の実用的な悪用を実証するために 2007 年に初めて開発され、システム メモリに保存されている平文パスワードを含むアカウント ログイン情報をダンプすることが可能です。
mimikatz (フランス語でかわいい猫) は、ブラックハット ハッカー、レッドチーム ハッカー、侵入テスト担当者を問わず、攻撃者が侵入したシステムからログイン ID、パスワード、認証トークンを抽出し、特権を昇格させて侵入したネットワーク上のシステムにさらにアクセスできるようにすることを目的としたポスト エクスプロイト用ツールです。
この Mimikatz チュートリアルでは、クレデンシャル ハッキング ツールの紹介、Mimikatz の機能、および Mimikatz を使用してターゲット システムからログオン パスワードを抽出する方法について説明します。
Mimikatz を作成したフランスの情報セキュリティ研究者 Benjamin Delpy は、Mimikatz GitHub ページに、このソフトウェアは “平文のパスワード、ハッシュ、PIN コード、および Kerberos チケットをメモリから抽出” または “pass-the-hash, pass-the-ticket または Golden ticket を構築するために使用できる” と書き込んでいます。 Mimikatz 攻撃は、Kerberos 認証と同様に、標準の Windows 認証スキームを悪用します。
これらの機能により、Mimikatz は攻撃者にとって必携のツールとなっています。 Mitre ATT&CK フレームワークは、Mimikatz を使用して検出された少なくとも 20 の異なる高度持続的脅威グループを識別しています。 しかし、Mimikatz は防御側にとっても重要なツールであり、特に侵入テストやレッド チーム演習を実施し、組織がそのような攻撃に対してどれだけうまく、あるいはどれだけうまく防御できるかを実証するためのツールでもあります。 Mimikatz をダウンロードして実行する方法
Mimikatz を入手する最も良い場所は、Mimikatz GitHub プロジェクトのページで、そこから Mimikatz ソース コードをダウンロードすることができます。 Windows 用のコンパイル済みバイナリも Mimikatz GitHub ページから入手できます。
Mimikatz のソース コードをダウンロードする場合、Microsoft Visual Studio でコードをコンパイルする必要があります。 最近のブラウザやオペレーティング システムは Mimikatz を危険なものとして分類し、ユーザーのダウンロードをブロックしているため、ソース コードやコンパイル済みバイナリなど、どのバージョンの Mimikatz でもダウンロードすることは困難です。 Microsoft 自身の Windows Defender を含む多くのエンドポイント セキュリティ製品は、Mimikatz が攻撃でよく使用されるため、ブロックします。
アンチマルウェアによるブロックを回避する方法の 1 つは、Invoke-Mimikatz PowerShell モジュールを使用して、PowerShell(Microsoft のタスク自動化フレームワーク)を実行している攻撃者が、ターゲット システムのディスクに実行ファイルを書き込まずともリモートで Mimikatz のロードと実行ができるようにします。
Mimikatzは何に役立つか?
Mimikatzは多くのことができ、そのモジュール構造により、新しい特徴や機能を比較的容易にプラットフォームに追加することが可能です。 前述のように、PowerShell モジュールとして Mimikatz を実行すると、さらに効果的な攻撃手法になります。
Mimikatz が可能にする主な機能は次のとおりです。 管理者権限またはシステム権限で実行すると、攻撃者は Mimikatz を使用して、システムメモリ内で実行されている LSASS プロセスから平文の認証トークン (パスワードや PIN など) を抽出することができます。 Kerberos モジュールを使用して、Mimikatz は Kerberos API にアクセスすることができ、システム メモリから抽出された Kerberos チケットを使用する多くの異なる Kerberos エクスプロイトを可能にします。 Windows CryptoAPI モジュールにより、Mimikatz は被害者システムに保存されている証明書 (およびそれに関連する秘密鍵) を抽出できます。
Microsoft PowerShell ユーティリティや Metasploit プラットフォームなど、Mimikatz を他の攻撃基盤と組み合わせるとさらに強力になり、ハッカーが被害者システムから抽出した証明書を利用することができます。 Mimikatz のセットアップとコマンド
Mimikatz を被害者システムで実行中の実行ファイルから実行するか、PowerShell などのユーティリティをリモートで実行するか、コマンドはコンソール コマンド ラインで手動実行するか、スクリプトを実行して自動的に実行させることができます。
Mimikatzの実行後、コマンドセッションは次のように始まります:
mimikatz #
Mimikatzを終了するには、exitコマンドを入力します。
クリアテキストのパスワードを抽出するプロセスは、特権モジュールからデバッグコマンドを起動することによって開始されます。 このコマンドは、Mimikatzの権限をデバッグ権限レベルに上げるもので、次のようになります:
mimikatz # privilege::debug
Privilege ’20’ OK
Mimikatzとのやり取りや結果のログを記録するには:
mimikatz # log
Using ‘mimikatz.L”
Mimikatzを起動し、Mimikatzを終了します。logfile : OK
デフォルトのログファイルは mimikatz.log ですが、コマンドで別のログファイル名を指定することができます。 たとえば:
mimikatz # log customlogfilename.log
一度ログをオンにすると、残りのセッションは流出や分析目的で記録されます。
おそらく最も単純で最も生産的なコマンドは、平文パスワードを抽出してコンソール画面にリストし、ログ ファイルに書き込むものでしょう。
mimikatz # sekurlsa::logonpasswords
logonpasswords コマンドは、対象システムの現在ログインしているユーザーおよび最近ログインしたユーザーのユーザー ID とパスワードを抽出します。
sekurlsaモジュールには、Kerberos認証情報および暗号化キーを抽出する他のコマンドが含まれており、Mimikatzが抽出した認証情報を使用してパスザハッシュ攻撃を実行することも可能です。 Mimikatz が実際にどのように動作するのか、また、素人である攻撃者にとっても、システム搾取がいかに簡単であるかを知ることは価値があります。