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签名关闭就像让所有人不用验身份证就能进银行金库 - 攻击者可以轻易冒充他人身份进行操作。

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

相关推荐
桌面运维家17 分钟前
vDisk安全启动策略怎么应用?防止恶意引导攻击
安全
我是一只puppy33 分钟前
使用AI进行代码审查
javascript·人工智能·git·安全·源代码管理
熊延37 分钟前
麒麟V10系统安装部署elasticsearch
linux·运维·服务器·elasticsearch·搜索引擎·全文检索
迎仔2 小时前
10-网络安全监控与事件响应:数字世界的智能监控与应急系统
网络·安全·web安全
雨中风华3 小时前
Linux, macOS系统实现远程目录访问(等同于windows平台xFsRedir软件的目录重定向)
linux·windows·macos
Yeats_Liao4 小时前
评估体系构建:基于自动化指标与人工打分的双重验证
运维·人工智能·深度学习·算法·机器学习·自动化
爱吃生蚝的于勒4 小时前
【Linux】进程信号之捕捉(三)
linux·运维·服务器·c语言·数据结构·c++·学习
文艺理科生Owen4 小时前
Nginx 路径映射深度解析:从本地开发到生产交付的底层哲学
运维·nginx
期待のcode4 小时前
Redis的主从复制与集群
运维·服务器·redis
x-cmd5 小时前
[x-cmd] jsoup 1.22.1 版本发布,引入 re2j 引擎,让 HTML 解析更安全高效
前端·安全·html·x-cmd·jsoup