admin管理员组

文章数量:1537955

文章目录

  • 中间人攻击
    • 0x01 域和工作组
    • 0x02 NTLM认证(Windows)
      • 本地认证
        • NTLM Hash的生成
      • 网络认证
        • 工作组环境NTLM认证流程
        • 域环境NTLM认证
    • 0x03 域名解析协议
      • LLMNR
        • 解析过程
      • NetBIOS
      • Windows系统域名解析顺序
    • 0x04 WPAD
      • 工作原理
      • WPAD劫持
    • 0x05 NTLM中继
    • 0x06 Responder介绍
  • 攻击演示
    • 0x01 利用LLMNR和NetBIOS截取Net-NTLM Hash
    • 0x02 利用WPAD劫持获得Net-NTLM Hash
    • 0x03 SMB Relay
    • 0x04 总结
    • Reference

中间人攻击


中间人攻击(Man-in-the-Middle Attack,简称“MITM攻击”)是指攻击者与通讯的两端分别创建独立的联系,并交换其所收到的数据,使通讯的两端认为他们正在通过一个私密的连接与对方直接对话,但事实上整个会话都被攻击者完全控制。在中间人攻击中,攻击者可以拦截通讯双方的通话并插入新的内容。中间人攻击一个(缺乏)相互认证的攻击。大多数的加密协议都专门加入了一些特殊的认证方法以阻止中间人攻击。例如,SSL协议可以验证参与通讯的一方或双方使用的证书是否是由权威的受信 任的数字证书认证机构颁发,并且能执行双向身份认证。

中间人攻击过程

1.客户端发送请求到服务端,请求被中间人截获。
2.服务器向客户端发送公钥。
3.中间人截获公钥,保留在自己手上。然后自己生成一个【伪造的】公钥,发给客户端。
4.客户端收到伪造的公钥后,生成加密hash值发给服务器。
5.中间人获得加密hash值,用自己的私钥解密获得真秘钥。同时生成假的加密hash值,发给服务器。
6.服务器用私钥解密获得假密钥。然后加密数据传输给客户端。

中间人攻击的核心理念在于截取hash和传递(假冒认证)

0x01 域和工作组

工作组和域宏观上都是一群计算机的集合,域中计算机的数量规模通常大于工作组内的计算机。

工作组内的机器名义上虽然是属于一个集合,但是内部各计算机还是各自管理各自的,没有一个相对成熟的信任机制,工作组内各个计算机的关系依旧是点对点。因此,在工作组环境下进行访问认证,仅涉及Client和Server。我们使用的个人计算机,默认便处于WORKGROUP工作组环境下

域是一个有安全边界的计算机集合,同一个域中的计算机通过共同的第三方信任机构建立信任关系,这个第三方信任机构角色由DC(域控制器)担当。通俗来讲,域中的机器都信任域控制器,那么只要域控制器信任我们,我们就可以在域内获得对其他服务器的访问权限。在这种认证体系中涉及三方:Client、Server、DC

VMware中域环境的搭建详见:

VMware中用虚拟机模拟搭建域(步骤、讲解详实,并以浅显的方式讲解了VMware中的三种网络模式、IP配置),Windows Server 2008 R2为域控服务器,Win7为域成员服务器_胖胖的飞象的博客-CSDN博客_虚拟机怎么创建域

0x02 NTLM认证(Windows)

本地认证

Windows不存储用户的明文密码,它会将用户的明文密码经过加密后存储在 SAM (Security Account Manager Database,安全账号管理数据库)文件中。

SAM文件的路径是 %SystemRoot%\system32\config\sam

在进行本地认证的过程中,当用户登录时,系统将用户输入的明文密码加密成 NTLM Hash,与 SAM数据库中的 NTLM Hash 进行比较,从而实现认证

winlogon.exe -> 接收用户输入 -> lsass.exe -> 认证

首先,用户注销、重启、锁屏后,操作系统会让 winlogon显示登录界面,也就是输入框,接收输入后,将密码交给 lsass进程,这个进程中会存一份明文密码,将明文密码加密成NTLM Hash,对比 SAM数据库中的Hash进行验证

NTLM Hash的生成
  • 明文密码:123456
  • 首先,密码经过十六进制ASCⅡ转为 -> 313233343536
  • 将十六进制结果转为 Unicode格式 ->310032003300340035003600
  • 以 Hex(16进制)数据作MD4加密 ->32ED87BDB5FDC5E9CBA88547376818D4

由于NTLM Hash的算法公开,故获得的Hash可暴力破解(MD4单向不可逆)

网络认证

NTLM凭据包括域名用户名用户密码的单向Hash。用户的密码不会在网络链路中传输,加密之后的Challenge值取代原本密码的作用进行对比验证,与传统传输密码的方式相比,具有较高的安全性

NTLM的认证方式分为交互式和交互式

  • 通过网络进行的交互式NTLM身份验证通常涉及两个系统:客户端系统,用户用于请求身份验证;域控制器,其中保留与用户密码有关的信息;交互式提供必要凭据,应用场景通常为用户要登录某台客户端
  • NTLM非交互式身份验证通常涉及NTLM三个系统:客户端服务器代表服务器进行身份验证计算的域控制器;无需交互式提供凭据,实际应用更多为已登录某客户端的用户去请求另一台服务器的资源 ,即用户只需要登录一次即可访问所有相互信任的应用系统及共享资源
工作组环境NTLM认证流程
1.用户访问客户机并提供域名,用户名,密码。客户端计算密码的Hash,并丢弃实际密码。
2.客户端将用户名发送到服务器。
3.服务器生成一个16字节的随机数Challenge并发送给客户端。
4.客户端使用用户密码的Hash对Challenge进行加密,然后将结果response(Net-NTLM hash)返回给服务器。
5.服务器使用用户名从SAM数据库中检索用户密码Hash,使用此密码Hash对Challenge进行加密。
6.服务器将其加密的Challenge(在步骤5中)与客户端计算的response(在步骤4中)进行比较。如果它们相同则身份验证成功。

域环境NTLM认证
1.用户访问客户机并提供域名,用户名,密码。客户端计算密码的Hash,并丢弃实际密码。
2.客户端将用户名发送到服务器。
3.服务器生成一个16字节的随机数Challenge并发送给客户端。
4.客户端使用用户密码的Hash对Challenge进行加密,然后将结果response(Net-NTLM hash)返回给服务器。
5.服务器将三个信息发送到域控制器:用户名,发送给客户机的Challenge,返回给服务器的response。
6.域控制器使用用户名从SAM数据库中检索用户密码Hash。使用此密码Hash对Challenge进行加密。
7.域控制器将其加密的Challenge(在步骤6中)与客户端计算的response(在步骤4中)进行比较。如果它们相同则身份验证成功。

本文标签: 中间人实战NTLM