家studyをつづって

IT技術やセキュリティで勉強したことをつづっています。

「Pass the Hash」攻撃について

概要

「Pass the Hash」攻撃は、Windows端末に対するリモートアクセス時の認証の際に、不正に取得したNTLMハッシュやLMハッシュを使用して、認証を突破する攻撃手法です。 この記事では、攻撃用のKaliと標的となるWindows端末を用意し、実際にKaliからSYSTEM権限を取得した時の内容をまとめます。

 

 

 

検証

環境構築

検証では「Administrator」としてKaliからログインを行います。
デフォルトでは「Administrator」は無効状態であり、パスワードも未設定の為、設定を行います。

 

「Administrator」の有効化

net user administrator /active:yes

「Administrator」のパスワード設定

  1. 「コンピューターの管理」-「ローカルユーザーとグループ」-「グループ」をクリック
  2. 「Administrator」を右クリックして「パスワードの設定」を選択 アラートが出るので「続行」をクリック
  3. パスワードを入力して「OK」をクリック

 

攻撃の流れ

今回の検証はTry Hack Meの以下のコースをもとに行いました。

「Jr PenetrationTester」-「Privilege Escalation」-「Windows Privilege Escalation」-「Abusing dangerous privileges」

 

攻撃の流れとしては以下のようになります。

  1. HKLM\SAMとHKLM\SYSTEMレジストリ ハイブをバックアップする
  2. SAMデータベースからアカウントのハッシュを抽出する
  3. 取得したハッシュを使いPass-the-Hashを実行する

 

実際の動作は以下の通りです。

youtu.be

 

標的端末のログ出力状況

SYSTEM権限を取得した後、標的端末のイベントログを見てみました。 今回使用した「psexec」は使用された場合、イベントビューアー上に痕跡が残ります。

 

アカウントが正常にログオンしました。(イベントID:4624)

「アカウントが正常にログオンしました。(イベントID:4624)」はログオン成功イベントの際に生成されるものです。 AD環境下での認証は通常Kerberosプロトコルが使用されるため、パッケージ名に「Kerberos」と記録されますが、「psexec」による認証があると、パッケージ名が「NTLMv2」と記録されます。 

アカウントが正常にログオンしました

 

サービスがシステムにインストールされました。(イベントID:7045)

「psexec」が使用された際は「サービスがシステムにインストールされました。(イベントID:7045)」のログが記録されます。

このログは実行されたファイルのファイルパスが記録されています。

「psexec」では「%SystemRoot%」配下にファイルがアップロードされ実行されます。 

 

サービスがシステムにインストールされました

今回の環境では、サービス名およびサービスファイル名がランダムな文字列になっています。 これはKali側で実行した際の内容が記録されています。

Kaliの画面(赤線のところにサービス名等が記載されています)

 

参考にさせていただいたサイト

貴重な情報をありがとうございます。

blogs.manageengine.jp

milestone-of-se.nesuke.com

github.com