taibeihacker
Moderator
0x00 前言
通過Fox-IT我們可以讓客戶了解其企業組織中出現的常見安全風險。當攻擊者可以利用NT LAN Manager身份驗證協議(以下簡稱:NTLM身份驗證)時,憑據重用就有這樣的風險,即這種協議通常在Microsoft Active Directory中保持啟用狀態。 NTLM認證中的不安全性已有超過15年。該協議可能被濫用,是通過一個被稱為“中繼”的過程劫持受害者的會話,該過程通過將受害者的憑據轉發到與預期不同的服務來濫用受害者的憑據。在許多情況下,默認情況仍然支持和啟用NTLM身份驗證,即使它已被更安全的Kerberos替換為默認身份驗證方法。在本文中,我們將演示如何使用NtlmRelayx將憑證中繼到LDAP、IMAP和MSSQL,NtlmRelayx是著名的smbrelayx工具的FOX IT擴展。要防禦此類攻擊:
如果可能,請完全禁用企業組織內的NTLM並切換到Kerberos。
如果無法禁用NTLM,請參閱此文中討論的設置和指南,以降低憑據重用的風險。
0x01 NTLM中继简要说明
NTLM身份驗證是一種基於挑戰- 響應的協議。挑戰- 響應協議使用一個通用的共享秘密(在本例中是用戶密碼)來驗證客戶端。服務器發送一個質詢,客戶端回复此質詢的響應。如果質詢與服務器計算的質詢相匹配,則接受身份驗證。 NTLM身份驗證是一種複雜的協議,這裡只是簡單的闡述。可以在http://davenport.sourceforge.net/ntlm.html中找到非常詳細的描述。1.NTLM身份验证流程
NTLM身份驗證協議有3個步驟:協商身份驗證:NTLM身份驗證的第一步是協議協商,以及客戶端支持的功能。在此階段,客戶端將身份驗證請求發送到服務器,包括客戶端接受的NTLM版本。
服務器挑戰:服務器響應自己的消息,指示它接受的NTLM版本以及要使用的功能。此消息還包括“質詢”值,這在身份驗證中很重要。
身份驗證響應:客戶端根據質詢返迴響應,並包含所屬的用戶名和域的密碼
交互3條消息後,服務器將回復一條消息,表明身份驗證成功,或者身份驗證失敗。根據使用的協議,客戶端與服務器之間的會話現在已經過身份驗證。此過程如下圖所示:

2.滥用NTLM
作為攻擊者,如果客戶端能夠被劫持連接到攻擊者,那麼這個過程可能會被濫用。如何做到這一點將在下一節中闡述。一旦攻擊者擁有一個進行身份驗證的連接客戶端,他們就可以輕鬆地將3條消息轉發到客戶端和服務器之間的服務器,直到質詢- 響應週期完成。
在連接通過身份驗證時,攻擊者可以簡單地向客戶端發送錯誤消息,或者斷開連接。之後,攻擊者可以使用該會話從中繼身份驗證的用戶中與服務器進行交互。
3.跨协议(cross)中继
NTLM身份驗證被封裝在其他協議中,但無論上層協議如何,消息都是相同的。這允許在其他協議中使用NTLM消息。例如,使用HTTP進行身份驗證的客戶端會在“授權”標頭中發送NTLM身份驗證消息。攻擊者可以從HTTP標頭中取出這些消息,並在其他協議(如SMB)中使用它們。NTLM在多種協議中被支持,例如SMB,HTTP(S),LDAP,IMAP,SMTP,POP3和MSSQL。
4.获得中继流量
還有一點尚未解釋,那就是如何讓客戶端與攻擊者連接,而不是與真正的服務器連接。有幾種方法可以獲得可中繼的流量:以不安全的方式向以其解析IP的主機的流量
濫用AutoDiscovery協議導致的流量
通過中間人攻擊獲得的流量
4.不安全的名称解析协议
在Fox-IT中經常遇到使用不安全協議的名稱解析流量。工作站或服務器通常被配置為網絡中不再存在的主機或無法使用DNS解析其主機名的主機。當這種情況發生時,Windows工作站會退回到名稱解析協議,如NBNS和LLMNR,它們依賴廣播流量來請求同一網絡中的主機將主機名解析為IP地址。由於同一網段中的所有主機都可以查看此流量(取決於防火牆配置),因此任何主機都可以回復請求。這使攻擊者有機會偽造所請求名稱的地址。該過程如下所示。
5.自动发现(WPAD)协议
也許過去幾年黑客中最臭名昭著的功能是Windows代理自動檢測(WPAD)功能。此功能基本上會通過DNS查找名為WPAD的主機名,如果不成功,則可以通過上面描述的llmnr和nbns進行攻擊,然後連接到它能找到的第一個主機。濫用此功能變得更加容易,因為當提示進行身份驗證時,工作站將自動嘗試使用NTLM身份驗證進行驗證,然後攻擊者可能會中繼該身份驗證。微軟在2016年6月修補了這方面的一些問題,但有時Fox-IT仍在網絡中遇到這種情況。6.中间人攻击
攻擊者接管受害者流量的中間人攻擊通常在企業網絡中具有很大的破壞性,尤其是在使用諸如ARP欺騙之類的技術時。但是,當企業設備連接到不受信任的網絡(例如公共WiFi網絡)時,攻擊者可以攻擊受害者並攔截不受TLS保護的流量,將其重定向到受害者工作站信任的位置。然後,如果啟用了自動內部網檢測(這是默認設置),受害者將自動進行身份驗證。
7.使用Ntlmrelayx在任何地方中继NTLM
有幾種工具可以濫用NTLM身份驗證。其中一個是smbrelayx,它是Core Security的impacket庫的一部分。 Ntlmrelayx是由Fox-IT開發的smbrelayx工具的擴展和部分重寫。它具有適用於各種協議的中繼功能。該工具接受多個目標,在每個目標之間循環,以找到要進行身份驗證的系統。該工具具有一個SMB和HTTP服務器,從中它可以將NTLM身份驗證中繼到SMB、HTTP(S)、IMAP、LDAP和MSSQL。8.中继到SMB
中繼到smb是一種經典攻擊,它已經是smbrelayx的一部分。如果您不熟悉此攻擊,中繼到SMB允許攻擊者在禁用了SMB簽名的主機上執行文件,前提是被中繼的用戶在設備上具有管理權限。對於非管理用戶,ntlmrelayx添加了啟動smbclient shell的選項,允許攻擊者與共享進行交互,例如下載或上傳文件。可以使用交互式標誌(-i)完成此攻擊,該標誌將生成本地TCP shell,該shell可以與例如netcat連接。

9.中继到LDAP
中繼到LDAP是Ntlmrelayx中的一個新增功能。 LDAP是一個有趣的協議,因為它用於直接查詢目錄,該目錄包含了許多攻擊者感興趣的信息。更有趣的是,在默認情況下,域中的所有帳戶(包括計算機帳戶)都可以讀取這些信息的大部分。這就是Ntlmrelayx與另一個Fox IT開發工具ldapdomaindump集成的地方。此工具嘗試從域中收集盡可能更多的信息,包括用戶,其組成員身份,域計算機和域策略。

10. 中继到IMAP
雖然在當前版本的Exchange中默認情況下未啟用,但許多企業組織在其Exchange服務器上通過IMAP進行NTLM身份驗證。這允許中繼到IMAP,使攻擊者可以直接訪問受害者的電子郵件。當中繼到IMAP時,ntlmrelayx可以選擇在電子郵件中搜索關鍵字,或者只在用戶的指定收件箱中下載所有最新的電子郵件。
:

11.中继到MSSQL
中繼到MSSQL目前僅作為理論證明存在,但可以在命令行上指定查詢,這些查詢將在數據庫的受害者上中被執行0x02 缓解措施
那麼,在企業組織可以做些什麼來抵禦這些攻擊呢?上述所有攻擊都濫用了NLTM身份驗證協議,因此唯一完整的解決方案是完全禁用NTLM並切換到Kerberos。但是,許多企業組織都有不支持Kerberos身份驗證的舊產品或操作系統,因此禁用NTLM將對業務產生相當大的影響。作為緩解措施,那麼可以啟用多種設置以減少最小化的中間人攻擊風險。啟用SMB簽名:SMB簽名將通過要求對所有流量進行簽名來阻止中繼到SMB。簽名要求用戶密碼對消息進行身份驗證,因此中繼連接的攻擊者無法發送服務器接受的任何通信,因為攻擊者沒有擁有受害者的密碼。
啟用LDAP簽名:與SMB簽名類似,LDAP簽名可防止與LDAP的未簽名連接。應該注意的是,通過TLS到LDAP的連接被認為是簽名的,因此此設置不會阻止通過TLS到LDAP的中繼攻擊。
啟用身份驗證擴展保護:身份驗證的擴展保護有助於防止某些中繼攻擊,方法是確保用於連接到服務器的TLS通道與客戶端進行身份驗證時使用的通道相同。此設置主要適用於IIS。
啟用SPN目標名稱驗證:SPN目標名稱驗證是另一種緩解措施,它可以通過驗證客戶端認為正在進行身份驗證的目標名稱來阻止中間人攻擊到SMB。如果名稱與服務器不匹配,則拒絕身份驗證。
確保內部網站使用HTTPS:當通過不安全的HTTP協議訪問內部網站時,用戶無法驗證連接的真實性。通過強制所有內部網站僅通過HTTPS方法,中間人攻擊變得不那麼有效。
一般强化以防止中间人攻击
除了這些特定的服務器端設置之外,以下一般強化可以防止NTLM中繼:禁用自動Intranet檢測:如果域中需要NTLM身份驗證,請確保瀏覽器(主要是Internet Explorer)僅自動對受信任的網站進行身份驗證。通過組策略,可以禁用自動Intranet檢測,並且只能自動對應應用自動身份驗證的內部網站白名單進行身份驗證。如上所述,強烈建議僅在此處使用HTTPS網站。
禁用Windows代理自動檢測:雖然WPAD的安全問題主要由MicrosoftMS16-077安全更新解決,但仍然建議通過組策略禁用WPAD。
禁用LLMNR/NBNS:在配置良好的網絡中通常不需要這些不安全的名稱解析協議。禁用它們會減少攻擊者進行名稱解析欺騙的可能性,從而使攻擊者更難以欺騙受害者身份連接到攻擊者服務器。
0x03 获取Ntlmrelayx
Ntlmrelayx已經提交到Impacket存儲庫中,可以在Impacket示例目錄中找到。0x04 更多資源
我們在嘗試理解NTLM方面的大部分研究都是在以下資源的幫助下完成的:

Microsoft Learn: Build skills that open doors in your career
Learn with interactive lessons and technical documentation, earn professional development hours and certifications, and connect with the community.
msdn.microsoft.com

Microsoft Learn: Build skills that open doors in your career
Learn with interactive lessons and technical documentation, earn professional development hours and certifications, and connect with the community.
technet.microsoft.com