背景知识
Windows 横向渗透的两种方式
- 1、hash传递攻击,通过传递NTLM-Hash,登录机器,简称PtH;
- 2、ticket传递攻击,通过传递kerberos的ticket,登录机器,简称PtT;
以上两种都是常见的域内或者叫做内网渗透的横向移动的常见手段。
NTLM协议机制简述
在hash传递攻击中。传递的就是NTLMhash值,这里我们就要简述一下NTLM的过程。
NTLM的诞生
早期SMB协议在网络上传递是明文的username和password,后来出现了简称为LM的局域网管理挑战应答机制(LAN Manager Challenge/Response),后来微软又开发了WinNT LAN Manager Challenge/Response,简称NTLM。
验证过程
1.用户输入username、password、domainname(交互式才需要这个步骤),客户端会计算hash值保存在本地;
2.客户端将username明文发给DC;
3.DC生成一个16Byte的随机数(challenge)发送给客户端;
4.客户端通过运算生成一个响应值response=f(hashes,challenge,other)=>other根据版本变化,例如时间戳来防止回访等;
5.客户端将响应值发送给DC;
6.DC经过同样的运算result = f(hashes,challenge,other),然后比较result和response,一直就验证通过,不一致则验证不通过;
7.备注:目标不一定是DC,hash对应的账号所登录的(有缓存的)工作站也可以。
SMB渗透至Hash传递攻击的原理
SMB可以直接基于TCP协议或者NetBIOS over TCP,SMB的认证可以基于SMB,也可以基于kerberos,,这两种认证方式,前者本质上使用了hash,后者本质上使用了ticket,导致了SMB的PtH和PtT攻击存在的基础。