萬盛學電腦網

您现在的位置: 萬盛學電腦網 >> 作業系統 >  >> Windows Server 2003 教學

Windows Server 2003 取得登入使用者明文密碼三大技術路徑分析 (Hook Winlogon、GINA、LSASS 記憶體讀取)

背景

NT 核心系列 (NT4/2000/XP/2003) 均存在取得登入密碼的技術路徑,本文分析三種主要方法優劣。

方法一:Hook Winlogon 關鍵函數

  • 原理:攔截 winlogon.exe 處理密碼的函數 (如 WlxLoggedOutSAS)。
  • 工具:winlogonhijack (rootkit.com)。
  • 缺點:僅對本地互動式登入有效,遠端桌面 (Terminal Services) 登入無法攔截。
  • 風險:修改系統核心元件,穩定性風險高。

方法二:GINA (Graphical Identification and Authentication) 介面掛鉤

  • 原理:替換/掛鉤 msgina.dll 匯出函數 (WlxLogonUser 等),在驗證前記錄密碼。
  • 優點:穩定性高、支援本地與遠端登入。
  • 缺點:XP/2003 新增 Winlogon 函數導致現有 GINA 後門程式函數未導出,需更新程式碼相容。

方法三:讀取 LSASS 進程記憶體提取明文密碼

NT4/2000 時代

findpass 直接掃描 winlogon.exe 記憶體固定位址提取明文密碼 (帳號、域名、密碼結構固定)。

XP/2003 變化

  • 密碼不再存於 winlogon.exe,轉移至 lsass.exe (Local Security Authority Subsystem Service)。
  • LSASS 需明文密碼進行認證運算 (Kerberos/NTLM),微軟未加密儲存 (可逆加密無意義),明文存在於 LSASS 記憶體中。

提取困難點

  1. 位址無規律:密碼在 LSASS 記憶體中位置動態分配。
  2. 可能被覆蓋:後登入使用者密碼覆蓋前者;登出後密碼可能殘留但無法對應帳號。
  3. 前後特徵碼無固定模式:難以用特徵掃描定位。

提高成功率策略

  1. 寫成服務定期掃描:偵測新登入事件 (事件日誌/安全審計) 後立即掃描 LSASS 記憶體。
  2. 模擬登入定位:使用 LogonUser() API 自行登入 (已知帳密),掃描 LSASS 記憶體定位已知密碼位址特徵,推測後續登入密碼大約位置。

結論比較

方法穩定性適用範圍成功率風險
Hook Winlogon中僅本地登入中高 (核心修改)
GINA 掛鉤高本地+遠端高中 (需更新相容)
LSASS 記憶體讀取低本地+遠端低 (受多因素影響)低 (唯讀記憶體)

最推薦:GINA 掛鉤法,穩定且涵蓋所有登入類型。LSASS 讀取僅作研究參考。

copyright © 萬盛學電腦網 all rights reserved