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。