SMB签名关闭的安全风险探讨
SMB签名关闭的安全风险探讨
在做内网渗透测试的时候,经常遇到的安全风险问题就是SMB签名关闭的情况。今天探讨一下关于这个SMB签名关闭的安全问题以及如何处置。以我渗透的环境为例:
什么是SMB签名?
SMB签名 是一种安全机制,用于验证SMB数据包的完整性和真实性。它就像给SMB通信加上"数字签名",确保:
- 数据在传输过程中没有被篡改
- 通信双方的身份是真实的
- 防止中间人攻击
SMB签名关闭的安全风险
1. NTLM中继攻击
这是最主要的风险。攻击流程:
攻击者(A) ←→ 受害者(B) ←→ 目标服务器(C)
攻击步骤:
- 攻击者诱使受害者(B)向攻击者控制的服务器(A)进行SMB认证
- 攻击者(A)将受害者的认证凭证"中继"到真正的目标服务器©
- 由于SMB签名关闭,服务器©无法验证请求是否来自原始客户端(B)
- 攻击者(A)使用受害者(B)的权限访问服务器©
2. 具体攻击场景
# 攻击者设置中继服务器
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中继攻击
# 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签名状态
# 检查具体主机的SMB签名状态
nmap -p445 --script smb2-security-mode 192.168.11.34# 或者使用crackmapexec查看
crackmapexec smb 192.168.11.34 | grep signing
防护措施
对于系统管理员:
# 启用SMB签名(组策略)
# 位置:计算机配置 -> 策略 -> 安全设置 -> 本地策略 -> 安全选项
# "Microsoft网络服务器:对通信进行数字签名(始终)"
对于渗透测试:
这正是攻击者可以利用的弱点!
总结
简单来说:SMB签名关闭就像让所有人不用验身份证就能进银行金库 - 攻击者可以轻易冒充他人身份进行操作。
在我的测试环境中,这实际上为我提供了很好的攻击机会,可以演示真实的横向移动技术。但在生产环境中,这是必须修复的高危漏洞。
