来源:中国IT实验室
利用WINDOWS认证过程,采用中间人欺骗方式可以非常方便的攻击WINDOWS。使得
进行认证的双方主机都被攻破。
WINDOWS认证过程存在如下问题:
1.开始连接的一方会试图用自己主机注册用户的身份与登陆,直到失败以后才
会跳出对话框,这样使得本机可能遭受攻击。
2.主机认证的过程使得被登陆一方的主机可能被攻击。
WINDOWS的认证过程如下:
1.主机A通过SMB协议与主机B协商,获得登陆使用的协议(LM。NTLM2等)
2.主机A向主机B发出登陆连接申请
3.主机B向主机A发出一个随即的字符串(SMB挑战)
4.主机A用需要登陆的用户密码的散列(密码加密之后,WINDOWS又叫SAM)加密SMB挑战并发给主机B
5.主机B通过同样的加密过程来验证主机A的密码散列是否正确
这样就可以利用ARP欺骗,使得A-》B,B-》A的通讯为A-》C-》B,B-》C-》A,这样我们可以考虑如下情况
1.主机A经过C通过SMB协议与主机B协商,获得登陆使用的协议(LM。NTLM2等)
2.主机A经过C向主机B发出登陆连接申请
3.主机B经过C向主机A发出一个随即的字符串(SMB挑战A),因为要经过C,C拦截此信息暂时补予发送。
4.主机C启动命令连接主机B
5.主机B向主机C发出一个随即的字符串(SMB挑战C)
6.主机C把给主机A的SMB挑战A篡改成给自己的SMB挑战C
7.主机A利用需要登陆的用户密码的散列加密SMB挑战C并发给主机C
8.主机C利用主机发出的加密信息置换自己的登陆的用户名和加密SMB挑战C
9.主机C获得主机B的认证,无密码攻击成功
另外,利用WINDOWS的在开始连接的时候会试图用自己主机注册用户的身份与登陆特性,同样可实现对主机A的攻击
1.主机A经过C通过SMB协议与主机B协商,获得登陆使用的协议(LM。NTLM2等)
2.主机A经过C向主机B发出登陆连接申请
3.主机B经过C向主机A发出一个随即的字符串(SMB挑战A),因为要经过C,主机C拦截此信息暂时补予发送。
4.主机C启动命令连接主机A
5.主机A向主机C发出一个随即的字符串(SMB挑战C)
6.主机C把给主机A的SMB挑战A篡改成给自己的SMB挑战C
7.主机A利用自己主机登陆用户的密码的散列加密SMB挑战C并发给主机C(WINDOWS在开始时候会自动做成行为,这时使用的密码散列是自己当前登陆用户的)
8.C利用主机发出的加密信息置换自己的登陆的用户名和加密SMB挑战C
9.主机C获得主机A的认证,无密码攻击成功
以上攻击已经通过实验证实,另外考虑到主机C自己通过认证的时候需要修改自己发出的包,而WINPCAP目前没此功能,实现上引入了主机D,让主机D启动去连接主机A或B,信息通过主机C中转来实现包的修改
……