在大多數的企業網路中,Windows 電腦是數量佔比最多的作業系統,而為了集中管理這些 Windows 電腦,會採用 Active Directory 服務進行集中化管理,而 Active Directory 當中的網域控制站也兼負了帳號密碼驗證的重要任務。
由於惡意軟體與網路攻擊層出不窮,經常會發生對 Windows 主機進行暴力帳密猜測的攻擊,若有啟用安全性稽核,這些事件都在 Windows 的事件記錄中,可以進行分析。
不過由事件檢視器分析是一件痛苦又麻煩的事,因此前面我們也介紹過使用 Graylog 搭配相關的 Dashboard 進行快速的總覽觀看與數據圖表,可以快速知道問題帳號、主機。然而在某些時候,需要的是將多種事件繪製成有關聯性的圖表,Graylog 就力有未逮了。
方案介紹
還好開源方案中仍然讓我們發現了一款相當好用的開源工具,它是一款在 BlackHat 2018 大會上出現的好工具,名為 LogonTracer。
還好開源方案中仍然讓我們發現了一款相當好用的開源工具,它是一款在 BlackHat 2018 大會上出現的好工具,名為 LogonTracer。
它能夠為我們做到幾項功能:
- 純 Web 化操作介面
- 支援 Windows,可匯入 evtx 或 xml 格式的事件記錄
- 自動產生 User 與 Host 的排行榜
- 可以依據記錄繪製圖表,提供 Grid、Cose、Circle、Tree 四種類型
- 可以快速選擇要查閱的類別,例如登入失敗、遠端桌面登入、新增或刪除帳戶...等
- 可以用 Username、IPAddress、Hostname 為條件篩選
- 可以匯出為 CSV、JSON、PNG、JPEG 四種格式
- 可以將事件以時間軸搭配表格方式呈現,方便比對
- 以不同顏色標示帳號屬性
在事件方面,它會取出以下類型進行分析:
- 4624: 登入成功
- 4625: 登入失敗
- 4768: Kerberos 驗證 (TGT Request)
- 4769: Kerberos 服務票證 (ST Request)
- 4776: NTLM 驗證
- 4672: 特殊權限指派
下圖是官網上所呈現的一張範例圖,可以將帳戶、主機與關聯性一次清楚的呈現,相當易讀。
圖表範例
安裝方式
LogonTracer 有兩種安裝方式,一種是傳統的套件一個一個安裝起來,另一個是使用已經打包好的 Docker 容器套件執行,可依據需求選擇。
由於這個系統是在需要分析時才使用,因此我個人會選用 Docker 容器方式,節省大量安裝時間,本文以 Ubuntu 18.04 為例。
安裝 Docker
apt update apt install apt-transport-https ca-certificates curl software-properties-common curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add - add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu bionic stable" apt update apt install docker-ce
安裝完成以後,可以用 systemctl status docker 指令確認是否正確執行中。
安裝 LogonTracer 容器
docker pull jpcertcc/docker-logontracer docker run --detach --publish=7474:7474 --publish=7687:7687 --publish=8080:8080 -e LTHOSTNAME=0.0.0.0 jpcertcc/docker-logontracer
至此安裝完成,終究還是用 Docker 方式輕鬆又寫意啊。可惜這樣就不能貼一堆安裝套件的指令混字數了。(誤)
最後請以瀏覽器打開 http://ip:8080 ,即可進入使用頁面。
主要功能
登入系統之後,即可看到 LogonTracer 的主畫面,最上方是篩選、搜尋與匯出的工具列;左方是可以直接點選取出的相關條件;右方是依據內容產生使用者與主機的排行榜,目前因為還沒有匯入資料,所以右方的排行榜是範例資料。
主畫面
若要將事件交由 LogonTracer 進行分析,請到 Windows Server 上,例如網域控制站將安全性事件匯出或是複製出來,並將畫面捲至主畫面最左下角按下 [Upload Event Log] 按鈕,在此選擇要分析的 .evtx 事件檔,可以複選多個一起上傳。
上傳事件記錄檔案
上傳時記得最前面的時區欄位要調整,以台灣的時區請選擇 8,若您的時區不同,請依據實際情況調整。
提醒:系統需要啟用登入與登出的相關安全性稽核,相關設定可以至文末參考資料最後一項查閱。
圖表模式
圖表-Grid
圖表-Cose
上圖是選則「Cose」圖表類型的呈現方式,我個人是比較喜歡這種呈現方式。
在這些圖表上都可以使用滑鼠拖曳、放大與縮小,其中的每一個圖示都可以自己拉動放到想要的位置,以方便想要查看的細節與關聯。
圖示說明
LogonTracer 使用不同的形狀與顏色標示不同的項目,這對於在大量資訊的圖表中可以幫助我們快速辨識需要觀察的重點項目。
圖示顏色說明:
- 紅色八角形: 俱備系統權限的帳戶
- 藍色圓形: 一般使用者帳戶
- 綠色方形: IP 位址或主機
時間軸模式
除了查看登入事件的關聯圖表之外,LogonTracer 也可以用時間軸的方式來看多個帳戶之間可能的事件重疊性。
時間軸圖表
檢視角度
除了上面的功能之外,LogonTracer 還能以帳戶的角度來檢視相關事件的關連並繪製成圖表,可以方便看出這個事件與其它主機的相關狀況。
帳戶角度檢視
同樣的,我們也可以從主機的出發點來檢視,此主機與那一些帳戶有發生過的事項,可以快速看出事件與相關性。
主機角度檢視
結論
採用 LogonTracer 這套開源工具,可以協助我們將事件記錄做集中化的分析並產出具有高度可讀性的圖表,對於管理者要追查登入相關的異常事件幫助很大,可以省下大量交叉比對的時間。
再加上將 LogonTracer 與 Graylog 搭配使用,相信將會是帳戶管理者好用的兩把工具。
參考資料
- JPCERTCC/LogonTracer
https://github.com/JPCERTCC/LogonTracer
- Jump start with Docker · JPCERTCC/LogonTracer Wiki
https://github.com/JPCERTCC/LogonTracer/wiki/jump-start-with-docker
- Important Notes (audit policy change on client side) · JPCERTCC/LogonTracer Wiki
https://github.com/JPCERTCC/LogonTracer/wiki/Important-Notes-(audit-policy-change-on-client-side)