Linux

如何使用 samba 克服較弱的 MD4 雜湊問題

  • August 19, 2021

我們在我們的 RedHat(RHEL7.9) 系統上使用 samba 配置,其中 SMB 身份驗證基於 NTLM 密碼雜湊,它基本上是用於質詢-響應身份驗證的明文憑據,儲存在 LDAP 中的單獨屬性 sambaNTPassword 中(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

如果有人遇到這個並有解決方案,那麼我想尋求指導或建議來緩解這個問題。

更新後接收安全評估文件:

在閱讀並通過滲透測試結果後,我了解到 pen-tester 提供了一個基於 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 connectionPaylod。

NT 密碼雜湊使用 MD4,您對此無能為力。

但是您已經通過使用 ldaps 緩解了網路攔截問題,ldaps 是使用 TLS 保護的 LDAP。除非您的 TLS 配置有問題,否則無法從網路中截獲這些雜湊值。我最有興趣了解您的安全團隊如何破壞 TLS 的詳細資訊。

獲取這些密碼雜湊的唯一其他方法是直接本地訪問 LDAP 伺服器,或者如果存在訪問控制故障,允許某人查詢它們。不過,你沒有提到這些。

引用自:https://serverfault.com/questions/1073664