我正在开发一个使用Windows身份validation的ASP.NET应用程序。 我已经设置web.config文件拒绝所有未经身份validation的用户,并只允许来自某个angular色的用户。
使用Fiddler,我能够模糊我的会话ID,重播请求,并且仍然得到200 OK响应…显然没有任何重新协商。
我认为基于NTLM的身份validation凭据与底层的TCP连接相关联。 首先,这是真的吗? 这是一个真正的安全威胁? 如果是这样的话,那么为了承担另一个用户的身份,个人必须采取什么措施来劫持这样的连接呢?
Internet Explorer可以执行透明的NTLM身份validation。 我还没有使用过Fiddler,我不知道它是否显示你的那部分对话。 我的猜测是,你的浏览器是透明的validation你,但我不能肯定地说。
你可以尝试嗅探浏览器/服务器的stream量W / Wireshark等,看看是否发生。 客户端和IIS之间的NTLM身份validation在TCP连接中进行带内完成,而不是作为与TCP连接启动相关的一些带外过程的一部分。 如果它在那里,你会看到它。
你没有看到TCP劫持。 您要么看到透明身份validation的结果,要么您的应用程序实际上并不需要身份validation。
直接说话TCP劫持(TCPsorting等):为了劫持TCP连接,攻击者必须预测序列和确认号码并伪造stream量作为客户端。 通常情况下,这是一个盲目的攻击,因为从服务器计算机回复最终回到真正的客户端。 (如果将TCPsorting与ARP高速caching中毒结合使用,则可能会发生双向劫持,但通常会限制对与客户端或服务器位于同一子网上的计算机上的攻击者的攻击。)客户端之间的活动连接的TCPsorting而且除非攻击者损害了客户端和服务器之间的阻塞点,否则互联网上的服务器是非常困难的。
盲目的TCPsorting攻击源于一个连接,利用协议中的信任(Kevin Mitnick对Shimomura工作站的攻击,在其上放置一个.rhosts文件)是由可猜测的初始序列号实现的,与直接劫持有点不同。
SSL,IPSEC或其他encryption隧道协议是您的朋友,用于阻止TCP劫持。 一般来说,即使你使用非明文质询/响应系统(如NTLM,NTLMv2等)进行身份validation,TCP连接仍然容易受到劫持。
要回答你最后的问题,用该隐的arp中毒是一个相对容易和微不足道的事情来完成。 话虽如此,但它确实需要两件事情之一发生,物理访问您的networking或无线访问您的networking。
一旦arp中毒,该隐收集到足够的数据,NTLM哈希就可以在该隐内部被打破。 当然,密码越强,需要的时间越长。