我们在 RedHat(RHEL7.9)系统上使用 samba 配置,其中 SMB 身份验证基于 NTLM 密码哈希,它基本上是质询-响应身份验证的明文凭证,存储在 LDAP(Oracle 统一目录)目录数据库中的单独属性 sambaNTPassword 中。
因此,我们的安全团队进行了一些渗透测试,发现我们的 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
如果有人遇到过这个问题并且有解决方案,那么我想寻求指导或建议来缓解这个问题。
更新后收到的安全评估文件:
在阅读并查看了渗透测试结果后,我发现渗透测试人员获得了基于 LDAP 的用户内部用户账户,并发现了 LDAP(Oracle Unified Directory)的弱点,他们发现了“LDAP Anonymous Null Bind”,因此他们可以通过 LDAP 服务检索关键信息而无需提供任何身份验证凭据,因为它还支持使用 NULL 和空基础对象的搜索请求,因此未经身份验证的攻击者可以利用并获取信息,甚至任何 LDAP 的先验知识。
因此,获得了对 LDAP 服务器的访问权限,因为它允许与 LDAP 服务器建立 NUll/empty 基础连接,并转储了所有 LDAP 数据,从而轻松获得了userPassword
& 的所有密码信息sambaNTPassword
。
为了执行“传递哈希”攻击,使用了工具“Mimikatz”和浏览器“Internet Explorer”。
然而,这里值得强调的是,为了访问该组织,他们需要从外部进行 VPN 访问,因此他们使用meterpreter
工具通过 paylod 绕过 VPN reverse https connection
。
答案1
NT 密码哈希使用 MD4,您对此无能为力。
但是您已经通过使用 ldaps(使用 TLS 保护的 LDAP)缓解了网络拦截问题。除非您的 TLS 配置存在严重问题,否则无法从网络拦截这些哈希。我最感兴趣的是了解您的安全团队如何破解 TLS 的细节。
获取这些密码哈希的唯一其他方法是直接本地访问 LDAP 服务器,或者如果出现访问控制故障,允许某人查询它们。但是您没有提到这些。