我们在 RedHat(RHEL7.9) 系统上使用 samba 配置,其中 SMB 身份验证基于 NTLM 密码哈希,该密码基本上是质询-响应身份验证的明文凭据,存储在单独的属性中,sambaNTPassword 在 LDAP (Oracle 统一目录)目录数据库。
因此,我们的安全团队进行了一些渗透测试,发现我们的 samba 使用的 MD4 可以被拦截,因为它携带的哈希值较弱。
除了身份验证之外,确保传输中的数据完整性和加密是 SMB 安全的重要组成部分,它再次依赖于 MD4 哈希。
以下是我的 samba 配置示例:
cat /etc/samba/smb.conf
[global]
log file = /var/log/samba/%m.log
log level = 2
max log size = 50
netbios name = FDI0816
server string = FDI0816.myorg.com
workgroup = FDI
; ldap configuration
invalid users = root +wheel
encrypt passwords = Yes
guest account = nobody
ldap admin dn = cn=sambaAdmin,ou=users,o=services
ldap group suffix = ou=Group
ldap passwd sync = only
ldap ssl = no
ldap suffix = ou=FDI,o=myorg
ldap timeout = 4
ldap user suffix = ou=People
map to guest = Bad User
security = user
passdb backend = ldapsam:"ldaps://ldap.FDI.myorg.com ldaps://ldap.rnd.myorg.com"
; client connection settings
deadtime = 15
dns proxy = No
lm announce = No
server min protocol = SMB2
; shares default settings
create mask = 0750
directory mask = 2750
posix locking = No
strict allocate = Yes
unix extensions = No
wide links = Yes
; printers are disabled
disable spoolss = Yes
load printers = No
printcap name = /dev/null
printing = bsd
show add printer wizard = No
[homes]
browseable = No
comment = Your Home
create mode = 0640
csc policy = disable
directory mask = 0750
public = No
writeable = Yes
[proj]
browseable = Yes
comment = Project directories
csc policy = disable
path = /proj
public = No
writeable = Yes
[home]
browseable = Yes
comment = Project directories
csc policy = disable
path = /home
public = No
writeable = Yes
具有属性的 LDAP 端用户详细信息:
例子:
Attribute Description value
sambaNTPassword 0735509A0ED9A577BD7D8GG7BC1T
uidNumber 32222
userPassword {RBKBD4-HMAC-SHA512)...
其他详情:
Samba Version: 4.10
Client side smb version: 2
Samba Server : RHEL7.9
如果有人遇到这个并有解决方案,那么我想寻求指导或建议来缓解这个问题。
更新后接收安全评估文件:
在阅读并通过渗透测试结果后,我了解到 pentester 为基于 LDAP 的用户提供了内部用户帐户,并发现了 LDAP(Oracle 统一目录)的弱点,他们发现“LDAP 匿名Null Bind”,因此他们发现可以通过 LDAP 服务检索关键信息,而无需提供任何身份验证凭据,因为它还支持具有 NULL 和空的基本对象的搜索请求,因此未经身份验证的攻击者甚至可以利用并获取任何先前的信息LDAP知识。
因此,获得了对 LDAP 服务器的访问权限,因为它允许 NULL/空基本连接到 LDAP 服务器,并转储了所有 LDAP 数据,很容易获得userPassword
&的所有密码信息sambaNTPassword
。
为了执行“pass-the-hash”攻击,使用了“Mimikatz”工具和浏览器“Internet Explorer”。
然而,有趣的是这里要强调的是,为了访问该组织,他们需要从外部访问 VPN,因此他们使用meterpreter
工具绕过reverse https connection
Paylod。
NT 密码哈希使用 MD4,您对此无能为力。
但是您已经通过使用 ldaps 缓解了网络拦截问题,ldaps 是使用 TLS 保护的 LDAP。除非您的 TLS 配置有问题,否则无法从网络中截获这些哈希值。我最有兴趣了解您的安全团队如何破坏 TLS 的详细信息。
获取这些密码哈希的唯一其他方法是直接本地访问 LDAP 服务器,或者如果存在访问控制故障,允许某人查询它们。不过,你没有提到这些。