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。