mimikatzの使い方と認証情報の取得について【防御で必要な知識】

パスワード入力機器
※当サイトはプロモーションが含まれています

こんにちは、ぎんたです。

IT・フォレンジック・セキュリティアナリスト関連業務を8年ほどやっております。

本記事では、サイバー攻撃者によく使われるmimikatzというツールについて紹介したいと思います。

攻撃者が使うツールについて知ることはサイバー防御において必要となります。

外部に対しては決して使用せず、試行する場合は仮想環境などの自身が構築した環境内で実施ください。

このツールを使うことで、平文のパスワード、パスワードハッシュなどの認証情報を取得することができます。

また、

  • mimikatzを使ったパスワードを取得する具体的な方法を知りたい!
  • mimikatzがパスワードハッシュを取得するメカニズムってなんだろう。
  • パスワードハッシュを取得するのに必要な権限って何だろう?

という疑問や要望もあるかもしれませんね。

そこで今回は、

  1. Windows端末に侵入後に行われること
  2. パスワードハッシュって何?
  3. Windowsの認証のメカニズム
  4. mimikatzを使用したパスワードハッシュ取得方法

について順番に解説していきます。

目次

Windows端末に侵入後に行われること

攻撃者が何らかの方法で、一般ユーザの端末に侵入したとします。

ドメインに参加したユーザであれば、組織の方針にもよると思いますが、端末の管理者でないとできないような操作が制限されていることが多いです。

例えば、

  • 一般ユーザが許可されていないアプリケーションの実行・インストール
  • 端末の設定変更
  • 重要なファイルへのアクセス
  • 他システムへのアクセス、ファイルの実行(いわゆる横展開)

などが挙げられます。

よって、攻撃者はこれらの制限を回避するため、さまざまな手法を使用して特権ユーザへの昇格を狙います。

そして特権ユーザに昇格した後は、認証情報の取得が一般的に行われます。

別ユーザやドメイン管理者の認証情報がここで得られた場合、横展開やActiveDirectoryなどの攻撃に利用されることがあります。

認証情報を窃取する際に使われるツールの一つがmimikatzです。

パスワードハッシュって何?

パスワードハッシュとは、パスワードを暗号化する手法の一つで、元のパスワードを復元することができないように変換することです。

これにより、パスワードが漏洩しても、ハッシュ化されているため、第三者による不正アクセスを防止することができます。

例えば、”password1234″ というパスワードを SHA-256 ハッシュ関数でハッシュ化すると、次のようなハッシュ値が生成されます:

d23bafa8d516e52dc27b41263f1aeb10d9d85f3203b3a3c56a95d3096c399b6f

このハッシュ値は、元のパスワードを知っていない限り、パスワードを復元することができません

ハッシュ値は一方向性があり元のデータを復元することができないため、一度ハッシュ化したパスワードは平文のパスワードよりも安全に管理することができます。

こころ

パスワードハッシュが漏れたっていうニュースを聞くことがあるけど、大丈夫ってことかしら?

ぎんた

ブルートフォース攻撃などの手法を使って元のパスワードを推測されることもあるから、セキュリティ上のリスクはあるよ。
特に、推測されやすい弱いパスワードを使っていると解読されたりするから注意が必要だね。

Windowsの認証のメカニズム

Windowsは、SAM(Security Accounts Manager)データベースに様々な認証情報を保存します。

一般的に、ユーザーパスワードなどの資格情報は、SAMデータベース内にハッシュとして保存されます。

SAMデータベースに保存されているハッシュのうち、最も一般的な2つのハッシュは以下のとおりです。

LAN Manager (LM)このハッシュは、レガシーシステムのために残されているWindowsが使用する最も古いパスワード保存の形式
NT LAN Manager (NTLM)最新のWindowsシステムでは、パスワードの保存にこのハッシュアルゴリズムを使用

ユーザがローカルの Windows マシンにログオンすると、Local Security Authority Subsystem Service (LSASS) プロセスが SAM データベースからユーザの認証情報を取得します。

ユーザーが入力したパスワードのハッシュが、SAMデータベースに保存されているパスワードのハッシュと一致する場合、ユーザーは正常にログオンすることができます。

ユーザーがログオンに成功すると、LSASSプロセスはユーザーの認証情報をメモリに保存します。

これは利便性を考慮して設計されたもので、ユーザーが他のリソースにアクセスする際、常に認証情報を入力する必要はありませんが、LSASSプロセスはメモリに保存された認証情報を様々なアクションに使用します。

mimikatzを使用したパスワードハッシュ取得方法

それでは、mimikatzを使用したパスワードハッシュの取得方法について解説します。

攻撃者はmimikatzを使用して、LSASSプロセスに保存されているパスワードハッシュをダンプすることができます。

LSASSプロセスはSAMデータベースと対話しメモリに資格情報を保存する必要があるため、通常では特権ユーザーのような標準ユーザーよりも高い権限で実行されます

ぎんた

これらのことから、mimikatzを使ってパスワードハッシュをダンプする際には特権ユーザーが事前に必要なんだよ。

mimikatzには、メモリからさまざまな種類の認証情報を抽出し、これらの認証情報を使用してユーザーアカウントにアクセスするために使用できる、さまざまなモジュールがあります。

今回は、sekurlsaモジュールを使用することにします。

コマンドプロンプトでPowerShellを実行し、mimikatzを実行します。

mimikatzコマンド実行例(一枚目)

次のコマンドを使用し、プログラムを実行するのに適切な権限があるかどうかを確認します。

mimikatzコマンド実行例(2枚目)

適切な権限があることを確認し、sekurlsaモジュールを使ってLSASSメモリからパスワードをダンプします。

このモジュールは、LSASSメモリから様々な認証情報を抽出するために使用されます。

このモジュールを使用するには、Administrator アクセスまたは SYSTEM アカウントが必要です。

このモジュール内では、logonpasswords関数を使用して、現在ログインしているユーザーの認証情報を抽出することができます:

mimikatzコマンド実行例(3枚目)

マシンにログインしているユーザのNTLM ハッシュを取得することができたことが確認できます。

ここでは、Administratorのアカウントの認証情報を取得していますが、別ユーザが管理目的のためにログインしていた場合、そのアカウントのNTLMハッシュ値も出力される恐れが充分にあります。

後は、得られたハッシュ値をパスワードクラックし、平文のパスワードを取得することができます。

パスワードクラックの詳細はここでは割愛しますが、john the ripperやhashcatなどのツールを使うことができます。

まとめ

mimikatzを使用したパスワードハッシュ取得方法について解説しました。

振り返り
  • mimikatz はLSASSプロセスに保存されているパスワードハッシュをダンプする
  • mimikatzでパスワードハッシュを取得するためにはAdministratorのような高い権限が必要である
  • パスワードをダンプするためのmimikatzのコマンドを紹介

パスワードハッシュの取得についてイメージを持っていただけたら幸いです。

以上、ぎんたでした。

サイバーセキュリティを学ぶ上で必要な攻撃と解析に関する他の記事は、以下のリンクで確認できます。

学習に関しましては、以下のセキュリティの勉強法、おすすめの学習本・動画の記事が多くの方に読まれています。

資格の記事については以下の記事がおすすめです。

ITエンジニアへの転職については以下の記事がおすすめです。

その他学習・転職関連に関しましては、以下の記事もあわせて読まれています。

ぜひご覧ください!

よかったらシェアしてね!
目次