KeyFrame內部研究專用

Black Hat USA 2003 - Brute Forcing Terminal Server Logons with TSGrinder

YouTube Creator·10月8日週二·53 min英文

三句話摘要

TS Grinder:一個用於暴力測試 Windows Terminal Services 遠端桌面連線安全性的滲透測試工具開發紀實。 TS Grinder 透過發掘 RDP 客戶端隱藏 API 與精心設計的日誌迴避策略成為高效的 Terminal Services 暴力測試工具,但防禦方可藉由帳號鎖定政策、帳號重命名與埠號修改等多層措施有效阻止此類攻擊。 技術突破:發現 Microsoft 在 mstsc.exe 中隱藏的未公開命令列參數,可透過注入回調 DLL 直接攔截 RDP 連線過程。這讓開發者能編寫自訂 S Connect 函式,完全繞過原始 SM Client 工具的六次嘗試硬限制,同時複用其他已實現功能。

重點整理

重點
  • 1

    技術突破:發現 Microsoft 在 mstsc.exe 中隱藏的未公開命令列參數,可透過注入回調 DLL 直接攔截 RDP 連線過程。這讓開發者能編寫自訂 S Connect 函式,完全繞過原始 SM Client 工具的六次嘗試硬限制,同時複用其他已實現功能。

  • 2

    隱蔽化設計:Windows Terminal Services 在第六次失敗登入時才觸發事件日誌。工具因此設計成每連線嘗試 5 次密碼後立即斷開,隨後重新建立新連線繼續嘗試,藉此完全避免留下日誌記錄。多執行緒並行可加速破解,但需在不超過系統最大並行連線限制下運作。

  • 3

    協議層監控:工具監控 RDP 協議的文字流而非圖形輸出,能精準識別登入提示、域名欄位、登入橫幅等文字元素。TSClient.dll 以 Debug 模式編譯,導致工具代碼也必須以相同模式編譯才能正常運作。

  • 4

    防禦對策:Windows 2003 記錄攻擊來源 IP(惟從 RDP 堆棧而非網路堆棧讀取),Windows 2000 僅記錄主機名稱。實務防禦應啟用帳號鎖定策略(如 3 次嘗試後鎖定 30 分鐘),並在公開發佈的 Terminal Server 上重命名 Administrator 帳號以避免目標列舉。

實用技巧與重點

乾貨
  • 工具與元件
  • TS Grinder(主工具)、mstsc.exe(Microsoft 終端伺服器客戶端)
  • TSClient.dll、clxt.dll(回調 DLL)、SM Client(Windows 2000 Server Resource Kit)
  • RDP 協議隱藏 API:clx.dll、clx 命令列參數、TSNonscriptable 介面
  • 命令列參數與功能
  • -n(執行緒數量)、-u(使用者名稱)、-d(域名)
  • 字典檔案路徑、Leet 轉換旗標、登入橫幅支援旗標、除錯級別
  • 效能指標
  • 每視窗平均 1.5 秒完成 5 個密碼嘗試
  • Windows XP 最多支援 2 個並行無日誌連線;3 個以上會觸發日誌
  • 第六次登入嘗試觸發事件日誌
  • Mark Brunette 字典:4-5MB、常見密碼按頻率排序(zato.net)
  • 安全配置建議
  • 帳號鎖定策略:3 次嘗試後鎖定 30 分鐘
  • 重命名 Administrator 帳號(於公開 Terminal Server)
  • 修改預設埠 3389
  • 啟用群組原則帳號鎖定
  • 已知限制與未來方向
  • Leet 轉換功能略不穩定
  • 尚未支援自訂連線埠
  • 不支援智慧卡驗證
  • 計畫新增多語言登入橫幅支援、埠號自訂功能

結論

結論

TS Grinder 透過發掘 RDP 客戶端隱藏 API 與精心設計的日誌迴避策略成為高效的 Terminal Services 暴力測試工具,但防禦方可藉由帳號鎖定政策、帳號重命名與埠號修改等多層措施有效阻止此類攻擊。

完整解析

詳細

這場黑帽大會演講由 Tim 與 Ryan 介紹 TS Grinder 的開發歷程與技術實作。在此之前,講者曾嘗試過利用 Terminal Server ActiveX 控制項進行暴力破解,但發現此方法在 Windows 的預設安裝上並不可行,最終被迫放棄。真正的轉機來自 Mark Brunette 的建議——他指出 Microsoft 為負載測試目的提供的 SM Client 工具可以進行腳本化控制。

經過探索,講者發現了一個關鍵的技術線索:Microsoft 在 mstsc.exe 中隱藏了未公開的命令列參數,允許透過注入回調 DLL 來攔截連線過程。這個發現徹底改變了工具的開發方向。儘管 TSClient.dll 中的原始 S Connect 函式在設計上被硬限制為六次嘗試,講者團隊最終決定編寫自己的 S Connect 函式,同時複用 TSClient.dll 中所有已實現的其他功能。由於 TSClient.dll 以 Debug 模式編譯,工具代碼也必須採用相同編譯模式才能避免崩潰。

核心的隱蔽設計源於對 Windows Terminal Services 日誌機制的理解:系統在第六次失敗登入時才會寫入事件日誌。工具因此採用的策略是在每個連線中嘗試五次密碼,然後立即斷開並建立新連線繼續嘗試。這樣即便進行數百次嘗試,日誌記錄也會保持在最低水平。為了進一步加速破解,工具支援多執行緒並行連線,每個執行緒獨立追蹤在字典檔案中的位置。實驗表明,Windows XP 最多能支援 2-3 個並行無額外日誌的連線;超過此限制會導致額外的日誌記錄,從而暴露攻擊行為。

在實作細節上,工具透過監控 RDP 協議的文字流(而非圖形輸出)來識別各種登入提示狀態,包括域名欄位、使用者名稱提示、登入橫幅等。這種文字層面的監控比圖形分析更為精確且高效。演講中的實際演示展示了工具如何依照字典順序逐一嘗試密碼,同時支援 Leet 翻譯功能(如將英文字母轉換為數字或符號以應對使用者常見的密碼變異方式)。

防禦建議方面,講者強調了作業系統版本間的差異:Windows 2003 會記錄攻擊來源的 IP 位址,而 Windows 2000 僅記錄主機名稱。但更關鍵的防禦層面是實施帳號鎖定策略(如 3 次失敗後鎖定 30 分鐘),以及在公開發佈的 Terminal Server 上重命名 Administrator 帳號——因為外部攻擊者無法透過 NetBios 列舉來發現重命名後的帳號名稱。修改預設連線埠 3389 也能在一定程度上減少掃描風險。

關鍵時刻

Pipeline v2

帶時間戳的重點,會在逐字稿層級分析上線後產生。目前請先透過原始影片觀看。

事實查核

Pipeline v2

說法查證是下一次管線升級的一部分。KeyFrame 只會顯示它真正能驗證的內容。

更多「Web2 安全」的內容

SANS Stormcast Tuesday, August 25th, 2026: DOUBLECUP PNG; WebAudio Fingerprinting; Expired Domains; Android; Car
7 min
Web2 安全英文PODCAST8月25日

SANS Stormcast Tuesday, August 25th, 2026: DOUBLECUP PNG; WebAudio Fingerprinting; Expired Domains; Android; Car

SANS Stormcast

  • PNG 容器攻擊的簡易性設計:Double Cup 不依賴複雜的 Exif 或隱寫技術,只用 PNG 副檔名和檔頭來偽裝,核心是利用 findstr 指令的常見可用性讓執行變得無需額外工具。
  • Web Audio API 的隱密指紋識別:音訊於增益零的無聲狀態下播放,使用者完全無感,但錄製波形足以建立裝置特徵,在瀏覽器原生功能層面難以區分是反詐欺還是過度追蹤。
  • 域名過期引發的串聯漏洞:DMARC 報告端點使用過期域名是常見疏漏,允許攻擊者透過簡單的域名註冊取得他人的 SPF/DKIM 錯誤報告,進而收集目標系統配置情報。
Risky Bulletin: Expired credit cards can be used for malicious transactions
5 min
Web2 安全英文PODCAST8月24日

Risky Bulletin: Expired credit cards can be used for malicious transactions

Risky Business

  • 支付安全的非對稱風險:Visa卡利用未加密的卡片資料與NFC通訊,攻擊者可藉由中間人技術竄改過期日期進行交易,但MasterCard、美運卡與Discover的防護更完善,顯示不同發卡機構的安全架構存在明顯差異。
  • 國家級駭客活動的連鎖延伸:北韓Lazarus集團在2月單一事件已累積100名受害者,涵蓋大學、警察部門、媒體與醫療機構,伊朗駭客則針對基礎建設如電力系統發動破壞性攻擊,反映地緣政治在網路戰爭中的升溫。
  • AI加速漏洞生態的雙面刃:AI工具催生近2萬份漏洞概念驗證代碼發布,但同時也導致大量失效漏洞代碼氾濫,增加資安團隊甄別真實威脅的難度;Mayer Protocol遭攻擊事件中,駭客用AI鏈接六個無關的小漏洞完成盜竊170萬美元的攻擊。
SANS Stormcast Monday, August 24th, 2026: More Entra Powershell; Entra Vulnerability; GitLab Vuln (and PoC); GTA 6 Leak Malware
5 min
Web2 安全英文PODCAST8月24日

SANS Stormcast Monday, August 24th, 2026: More Entra Powershell; Entra Vulnerability; GitLab Vuln (and PoC); GTA 6 Leak Malware

SANS Stormcast

  • Microsoft EntraID 的遠端代碼執行漏洞已由微軟修補,初期報告顯示已遭利用但後來更正為未遭利用。這反映 Microsoft 在雲端軟體安全上的透明度提升,對漏洞採用與內部軟體相同的 CVE 編號和公告流程。
  • PowerShell 指令碼可用於驗證 MFA 部署完整性,特別是找出未啟用 MFA 的遺漏帳號。同時可以分析 EntraID 登入日誌中的異常行為,如風險係數評估和地理位置檢測,幫助組織快速識別可疑登入。
  • GitLab 的 GraphQL 代碼注入漏洞允許未認證攻擊者刪除或修改儲存庫,潛在導致供應鏈攻擊。已有公開概念驗證 (PoC) 存在,使用內部部署 GitLab 的組織必須立即修補。