Ligolo-ng工具中SMB端口转发的技术分析与解决方案
背景介绍
Ligolo-ng是一款功能强大的隧道工具,广泛应用于渗透测试和内网横向移动场景。在实际使用过程中,用户经常需要通过该工具转发SMB(445端口)流量,以实施PetitPotam、Coercer、Responder等攻击手法。然而,许多安全研究人员在使用过程中遇到了SMB端口转发失败的问题。
问题现象分析
在典型的攻击场景中,攻击者通常拥有以下设备:
- 攻击机(Kali Linux)
- 跳板机(已植入Ligolo agent的Linux主机)
- 目标域控制器
当尝试通过Ligolo建立SMB端口转发时,常见的错误表现为:
- Ligolo代理端显示"connection refused"错误
- 虽然代理程序显示已在445端口监听,但实际连接无法建立
- 使用netcat等工具测试时连接被拒绝
根本原因
经过深入分析,发现该问题主要由以下几个因素导致:
-
目标服务监听配置不当:许多SMB相关工具(如Responder)默认监听在特定接口(如tun0)而非本地回环地址(127.0.0.1)
-
端口转发规则配置错误:用户经常混淆"监听地址"(--addr)和"目标地址"(--to)参数的配置逻辑
-
IPv4/IPv6兼容性问题:在某些Linux系统上,服务可能仅监听IPv6地址,导致IPv4连接失败
解决方案与实践验证
正确配置端口转发规则
经过多次测试验证,正确的转发规则配置应遵循以下原则:
- 确保目标服务(如Responder或smbserver)确实在指定地址和端口上监听
- 使用netcat等工具预先测试连接可达性
- 在Ligolo中配置转发规则时,--to参数必须指向实际监听的服务地址
例如,当Responder监听在tun0接口(10.10.16.53)时,正确的转发命令应为:
listener_add --addr 0.0.0.0:445 --to 10.10.16.53:445
替代方案验证
当某些工具无法正常工作时,可考虑使用替代方案:
- 使用Impacket的smbserver.py:经测试验证,该工具能够与Ligolo良好配合
python smbserver.py -smb2support share /tmp
- 明确指定监听接口:对于Responder等工具,明确指定监听接口而非依赖默认配置
技术建议与最佳实践
-
预先连接测试:在配置Ligolo转发前,务必使用netcat等工具测试目标服务的可达性
-
权限检查:确保Ligolo agent以root权限运行,以便绑定特权端口(如445)
-
网络配置审查:检查系统防火墙规则和SELinux策略,确保不会阻止端口转发
-
日志分析:充分利用Ligolo的verbose模式获取详细错误信息
-
IPv4/IPv6兼容性:对于仅监听IPv6的服务,考虑添加IPv4监听或使用兼容性配置
通过以上分析和解决方案,安全研究人员可以更有效地利用Ligolo-ng工具实现SMB协议相关攻击手法的隧道转发,提升内网渗透测试的效率。
GLM-5智谱 AI 正式发布 GLM-5,旨在应对复杂系统工程和长时域智能体任务。Jinja00
GLM-5-w4a8GLM-5-w4a8基于混合专家架构,专为复杂系统工程与长周期智能体任务设计。支持单/多节点部署,适配Atlas 800T A3,采用w4a8量化技术,结合vLLM推理优化,高效平衡性能与精度,助力智能应用开发Jinja00
jiuwenclawJiuwenClaw 是一款基于openJiuwen开发的智能AI Agent,它能够将大语言模型的强大能力,通过你日常使用的各类通讯应用,直接延伸至你的指尖。Python0213- QQwen3.5-397B-A17BQwen3.5 实现了重大飞跃,整合了多模态学习、架构效率、强化学习规模以及全球可访问性等方面的突破性进展,旨在为开发者和企业赋予前所未有的能力与效率。Jinja00
AtomGit城市坐标计划AtomGit 城市坐标计划开启!让开源有坐标,让城市有星火。致力于与城市合伙人共同构建并长期运营一个健康、活跃的本地开发者生态。01
OpenDeepWikiOpenDeepWiki 是 DeepWiki 项目的开源版本,旨在提供一个强大的知识管理和协作平台。该项目主要使用 C# 和 TypeScript 开发,支持模块化设计,易于扩展和定制。C#00