Appearance
Appearance
NTLMSSP 是 Microsoft 用于通过 NTLM 协议进行身份验证的协议。
开放规范: [MS-NLMP]
只要你向 Wireshark 提供所需的 secrets,Wireshark 就知道如何解密 NTLM 加密流量。随后它可以解密 NTLM exchanges:包括 NTLM challenge/response 以及后续协议 payloads(例如可能使用从 NTLM authentication 派生的 keys 加密的 DCE/RPC)。
以下是在提供 password 或 hash 之前,DRSUAPI (DCE/RPC) session 开始处的 NTLM authentication 的样子:
而在提供 password/hash 之后,请注意以蓝色突出显示的附加信息:
然后,在提供 password/hash 之前,DsGetDomainControllerInfo request payload 不可读,因为它是 “encrypted stub data”:
但在提供 password/hash 之后,它变成了 “decrypted stub data”(由于 bug #19000 (closed),此截图中的 decrypted data 无效;该问题已在 v4.0.6 中修复,并 backported to v3.6.14)
如果你只有账户的 NT hash(又称 “NTLM hash”),仍然可以通过在 keytab 文件中提供该 hash 来解密 NTLM 加密流量(是的,这很令人意外,因为 keytab 文件通常用于 Kerberos,但它确实可用!)。你可以参考这个 Decrypt Kerberos/NTLM “encrypted stub data” in Wireshark 教程,其中说明了如何创建 keytab 文件并将其传递给 Wireshark。这个技术也在这个 Capture-the-Flag challenge write-up 中有所解释:Insomni'Hack Teaser 2023 - Autopsy
“NT Password” 设置可以包含一个密码。转到 Edit -> Preferences -> Protocols -> NTLMSSP。只需在 “NT Password” 字段中输入用户密码。
根据源代码,仅支持 ASCII passwords(原因是 Unicode encoding 的方法很简单)。如果你只有 NTLM hash:见上文。