LAME:通過SSL加密通訊進行橫向滲透的新技術
本文主要討論一項用於紅隊的被稱之為“LAME”的新橫向滲透技術及其緩解措施。簡單來說,“LAME”技術就是利用受信任的SSL證書,在內部網路中建立加密通訊通道的一項技術。在今年的8月份,Deloitte Greece道德黑客團隊成員vangelos Mourikis和Nikos Karouzos,在都柏林舉辦的實踐社群(CoP)峰會上,確定並展示了該項技術。
簡介
在滲透測試或紅藍對抗期間,我們都會盡一切努力獲得對目標內網的遠端訪問,並在環境範圍內提升許可權,建立持久通訊通道持續監控,並不斷擴大戰果直至實現方案目標。
為了建立一個隱蔽持久的通訊通道,紅隊往往會採用許多橫向滲透技術。而通常他們的做法是建立基於TCP/IP通訊協議的通道(如DNS,SMB和HTTP),模擬預期的網路流量和使用者行為,從而保持不被發現。但這些協議都使用未加密的通訊,因此我們可以通過一些網路監控工具,NIDS/HIDS等來輕鬆識別這些流量。另外,就算你使用了帶有自簽名證書的加密通道(例如HTTPS),也同樣會觸發入侵檢測/監控系統的警報,因為它是中間人(MiTM)攻擊的一種非常常見的攻擊媒介。
更新後的防毒軟體可以輕鬆識別這些技術,並使用了最新的啟發式引擎,它們能夠關聯和阻止這些型別的通訊通道。
圖1– 未加密的通訊通道(HTTP):
圖2– 嘗試使用自簽名SSL證書,執行payload會產生許多錯誤訊息,併為入侵檢測/監視系統留下大量痕跡:
“LAME”技術
那麼,如果我們可以使用受信任的SSL證書在內網中進行橫向滲透結果又會如何呢?
事實
1.域名系統(DNS)
域實現和規範 ofollow,noindex" target="_blank">RFC 1035 (1987年11月)指出“主檔案中A行的RDATA部分是一個Internet地址,表示為四個十進位制數字用點分隔,且沒有任何嵌入空格(例如,“10.2.0.52″ 或 “192.0.5.6″)。”
私有IP地址分配稍後介紹( RFC 1918 – 私有Internet地址分配,1996年2月),未指定與公共DNS記錄分配給私有IP地址有關的任何安全考慮事項。
雖然許多出版物提出了不同建議,但仍然可以將公共域名的A記錄分配給私有(內部)IP地址。
2. SSL 證書
證書頒發機構( RFC 6125 )執行的SSL證書的驗證和簽名,在很大程度上依賴於對相應DNS名稱的檢查。為了提高效率,簽名證書不會被繫結到相應的IP地址上,因此底層架構中的更改並不會影響證書的有效性。所以,我們可以為解析到私有(內部)IP地址的公共DNS名稱頒發受信任的SSL證書。
準備
出於概念驗證(PoC)的目的,我們使用了像Cloudflare和LetsEncrypt這類的免費服務。
為了執行LAME技術,我們還需要進行以下操作:
使用LetsEncrypt的DNS驗證方法 ,為internal.dotelite.gr頒發SSL證書。
使用CloudFlare將DNS A記錄internal.dotelite.gr分配給內部IP地址:192.168.72.141。
圖3– 公共DNS名稱的受信任SSL證書解析到內部IP地址上:
執行
圖4– 以下是“LAME”技術的執行流程圖:
紅隊已在IP地址192.168.72.141上,部署了一個命令和控制(CNC)伺服器,並使用簽名的SSL證書為internal.dotelite.gr配置了一個HTTPS伺服器。
在受害者機器(192.168.72.140)上獲取遠端程式碼執行後,紅隊建立了一個加密的通訊通道。使用Shell/">PowerShell oneliner,受害者將經歷以下過程並最終連線到internal.dotelite.gr:
1.受害者在內部DNS伺服器上,請求internal.dotelite.gr的DNS記錄。
2.內部DNS伺服器將DNS記錄請求轉發到Internet上的根DNS伺服器。
3.公共DNS伺服器(例如CloudFlare)使用指向內部IP 192.168.72.141的DNS記錄進行響應。
4.內部DNS伺服器接收上述DNS記錄。
5.DNS記錄儲存在內部DNS伺服器的快取中,並且可以在內網中提供多個類似的請求。
6.DNS記錄被轉發給受害者。
7.受害者將使用受信任的SSL證書與攻擊者的內部IP 192.168.72.141建立加密通訊通道。
圖5– PowerShell oneliner“LAME”技術(Step 0):
圖6– 將internal.dotelite.gr子域解析到IP 192.168.72.141的DNS解析流量(Steps 1-6):
圖7– TLS通訊(Step 7):
圖8– 內網中功能齊全的加密通訊通道(Step 7):
圖9– 上述命令執行的網路流量(Step 7):
總結
獲得解析為內部IP地址的公共DNS名稱的受信任SSL證書並非不可能。一旦獲取,我們則可以將其用於在內部網路中建立加密通訊通道。這不僅可以讓我們的通訊通道更加隱蔽,還可以幫助我們躲過入侵檢測/監控系統。
此外,LAME技術還可用於APT中。結合埠轉發和代理,紅隊可以在內部網路獲得初始立足點後在目標環境中建立多個隱蔽樞紐點,並通過Internet上的外部CNC伺服器進行控制。
緩解措施
由於通訊的加密性和交換SSL證書的有效性,導致這種橫向滲透技術難以被檢測發現。而阻止內部網路中主機之間的HTTPS流量,則可能會導致合法服務的可用性問題,因此似乎並不是一個可行的解決方案。我們的建議是在內部網路中強制使用集中式DNS伺服器,併為所有請求的DNS條目建立特定的監控用例。分析已解析的DNS記錄,並進一步調查分配給內部IP地址的潛在可疑條目。此外,我們建議增強主機級別的監控功能,以便及時的識別可能具有相同結果的替代攻擊路徑(例如,監控本地“etc/hosts”檔案的變化)。
更新(04/09/2018):除了上述建議之外,你還可以在內部集中式DNS伺服器中啟用反重繫結保護(例如–stop-dns-rebind , dnsmasq 中的–rebind-domain-ok選項)。
*參考來源: dotelite ,FB小編 secist 編譯,轉載請註明來自FreeBuf.COM