Winlogon

Winlogon.exe
開発元 Microsoft Windows
対応OS Windows NT 3.1以降
種別 実行可能ファイル
テンプレートを表示

Winlogonは、SAS(英語: Secure attention sequence)を処理し、対話型ログオンセッションを管理するユーザーモードプロセスである。

概要

Winlogon.exeはWindows起動後、以下の手順を追う。

1. ウィンドウステーションの作成

キーボードやマウス、モニターを利用可能にするため、ウィンドウステーション(\Sessions\1\Windows\WindowStations\WinSta0)を作成する。この時点でWinlogon.exeは、他のプロセスがこのステーションにアクセスできないよう、SYSTEMのACEのみを含むセキュリティ記述子を付与する。

2. デスクトップの作成

二つのデスクトップセッションを作成する。一つは、アプリケーションデスクトップ(\Sessions\1\Windows\WinSta0\Default)と呼ばれ、実際にユーザーがアクセスすることのできるデスクトップである。もう一つは、Winlogonデスクトップまたはセキュアデスクトップ(\Sessions\1\Windows\WinSta0\Winlogon)と呼ばれ、資格情報ダイアログや既定でUACの昇格ダイアログを表示する。この時点でWinlogon以外のプロセスはこのウィンドウにアクセスすることはできない。

3. LSASSとのALPC通信の確立

Winlogon.exeはLsaRegisterLogonProcessを使用して、ログオンやログオフ中にデータを交換したり、パスワードの管理をするため、LSASS(英語: Local Security Authority Subsystem Service, Lsass.exe)とALPC(英語: Advanced Local Procedure Call)通信を確立する。

4. PRCメッセージサーバの登録

SASやログオフ、ワークステーションのロックの通知を受け取るために、RPCメッセージサーバを登録する。

5. 次のプロセスの起動

次にWinlogon.exeは、レジストリキーHKLM\SOFTWARE\Microsoft\Windows NT\Current Version\Winlogon\Userinitに存在する、実行可能ファイル名が書かれたコンマ区切りの文字列データを参照し、そのプロセスを作成する(通常はUserinit.exe)。

Userinit.exeは起動すると、ユーザープロファイルを読み込み、HKCU\SOFTWARE\Microsoft\Windows NT\Current Version\Winlogon\Shell、もしくは、HKLM\SOFTWARE\Microsoft\Windows NT\Current Version\Winlogon\Shellの実行可能ファイル名が書かれた文字列データを参照し、そのプロセスを作成する(通常はexplorer.exe)。その後、Userinit.exeは終了するため、explorer.exeは親プロセスを持たない。

脆弱性や不具合

脚注

[脚注の使い方]
  1. 1 2 alvinashcraft (2023年6月12日). “Winlogon の責任 - Win32 apps”. learn.microsoft.com. 2025年2月16日閲覧。
  2. ↑ “W (Security Glossary)”. 2025年2月16日閲覧。
  3. 1 2 3 4 5 6 7 Windows Internals 7th Edition Part 1
  4. ↑ 通常起動以外の方法で起動した場合は管理者権限を持つユーザーのみログオンできる。

関連項目