SQL Server的Windows驗證之NTLM的Netmon主要過程
阿新 • • 發佈:2018-12-11
NTLM連線SQL Server預設例項
1. 使用命令,ipconfig /flushdns, 然後再次去執行連線,由於沒有client會發一個包給DNS Server, 來查詢SERVER的IP地址。
2.然後,在伺服器端,抓到的TCP三次握手過程。
3.三次握手建立以後,SQLNCLI10會發一個PreLogin的包,到SQL Server伺服器上。
在PRELOGIN成功之後,也就是協商好,即只對LOGIN做SSL加密。那麼隨後SQLNCLI10.DLL會發起一個SSL連線。進行SSL四次握手。
4.客戶端和伺服器端在建立SSL通訊後,通過SSPI協議,互相溝通,尋找合適的authentication方式,或者是NTLM,或者是KERBEROS. SSPI協商是由客戶端發起的。
5. NTLM_Challenge及Response過程。
6. 這裡服務端向客戶端傳送一個加密的Challenge, 客戶端把這個Challenge解開,然後傳送回給伺服器端。驗證完成。
7. SQL Server所在的伺服器,lsass.exe向AD有一個NRPC:NetrLogonSamLogonEx請求。
8.在AD上有相應迴應。伺服器把這個response請求轉送到域控制器(DC)上來讓域控制器呼叫組安全策略來做使用者認證。然後伺服器就可以構建一個安全令牌並建立一個session。