SMB签名关闭的安全风险探讨

SMB签名关闭的安全风险探讨

在做内网渗透测试的时候,经常遇到的安全风险问题就是SMB签名关闭的情况。今天探讨一下关于这个SMB签名关闭的安全问题以及如何处置。以我渗透的环境为例:

什么是SMB签名?

SMB签名 是一种安全机制,用于验证SMB数据包的完整性和真实性。它就像给SMB通信加上"数字签名",确保:

  • 数据在传输过程中没有被篡改
  • 通信双方的身份是真实的
  • 防止中间人攻击

SMB签名关闭的安全风险

1. NTLM中继攻击

这是最主要的风险。攻击流程:

复制代码
攻击者(A) ←→ 受害者(B) ←→ 目标服务器(C)

攻击步骤:

  1. 攻击者诱使受害者(B)向攻击者控制的服务器(A)进行SMB认证
  2. 攻击者(A)将受害者的认证凭证"中继"到真正的目标服务器©
  3. 由于SMB签名关闭,服务器©无法验证请求是否来自原始客户端(B)
  4. 攻击者(A)使用受害者(B)的权限访问服务器©

2. 具体攻击场景

bash 复制代码
# 攻击者设置中继服务器
ntlmrelayx.py -t smb://192.168.11.30 -c "whoami" -socks

# 然后通过某种方式诱骗192.168.11.34向攻击者发起SMB连接
# 攻击者就可以用192.168.11.34的身份执行命令到192.168.11.30

3. 为什么关闭SMB签名如此危险?

状态 安全性 攻击难度
SMB签名开启 极难 - 需要破解加密
SMB签名关闭 容易 - 直接中继攻击

实际攻击演示

使用Impacket进行NTLM中继攻击

bash 复制代码
# 1. 设置中继服务器
ntlmrelayx.py -tf targets.txt -c "ipconfig" -socks

# 2. 诱骗客户端连接(方法有多种)
# - LLMNR/NBT-NS投毒
# - WPAD代理攻击  
# - 钓鱼邮件中的SMB链接

针对您网络的具体风险

在我的测试环境中:

  • 8台Windows主机全部关闭SMB签名
  • **1台主机(192.168.11.34)**已有空密码漏洞
  • 攻击者可以:
    • 用192.168.11.34作为跳板
    • 对其他7台主机进行中继攻击
    • 快速控制整个网络

验证SMB签名状态

bash 复制代码
# 检查具体主机的SMB签名状态
nmap -p445 --script smb2-security-mode 192.168.11.34

# 或者使用crackmapexec查看
crackmapexec smb 192.168.11.34 | grep signing

防护措施

对于系统管理员:

bash 复制代码
# 启用SMB签名(组策略)
# 位置:计算机配置 -> 策略 -> 安全设置 -> 本地策略 -> 安全选项
# "Microsoft网络服务器:对通信进行数字签名(始终)"

对于渗透测试:

这正是攻击者可以利用的弱点!

总结

简单来说:SMB签名关闭就像让所有人不用验身份证就能进银行金库 - 攻击者可以轻易冒充他人身份进行操作。

在我的测试环境中,这实际上为我提供了很好的攻击机会,可以演示真实的横向移动技术。但在生产环境中,这是必须修复的高危漏洞。

相关推荐
碳基沙盒6 小时前
OpenClaw 多 Agent 配置实战指南
运维
cipher21 小时前
ERC-4626 通胀攻击:DeFi 金库的"捐款陷阱"
前端·后端·安全
蝎子莱莱爱打怪3 天前
Centos7中一键安装K8s集群以及Rancher安装记录
运维·后端·kubernetes
埃博拉酱3 天前
VS Code Remote SSH 连接 Windows 服务器卡在"下载 VS Code 服务器":prcdn DNS 解析失败的诊断与 BITS 断点续传
windows·ssh·visual studio code
唐宋元明清21884 天前
.NET 本地Db数据库-技术方案选型
windows·c#
一次旅行4 天前
网络安全总结
安全·web安全
DianSan_ERP4 天前
电商API接口全链路监控:构建坚不可摧的线上运维防线
大数据·运维·网络·人工智能·git·servlet
加号34 天前
windows系统下mysql多源数据库同步部署
数据库·windows·mysql
tryCbest4 天前
Windows环境下配置pip镜像源
windows·pip
red1giant_star4 天前
手把手教你用Vulhub复现ecshop collection_list-sqli漏洞(附完整POC)
安全