iT邦幫忙

第 11 屆 iThome 鐵人賽

DAY 30
4
Security

突破困境:資安開源工具應用系列 第 31

開源登入事件分析工具:LogonTracer

https://ithelp.ithome.com.tw/upload/images/20191012/20118848sYmHW0Lcaf.png

在大多數的企業網路中,Windows 電腦是數量佔比最多的作業系統,而為了集中管理這些 Windows 電腦,會採用 Active Directory 服務進行集中化管理,而 Active Directory 當中的網域控制站也兼負了帳號密碼驗證的重要任務。

由於惡意軟體與網路攻擊層出不窮,經常會發生對 Windows 主機進行暴力帳密猜測的攻擊,若有啟用安全性稽核,這些事件都在 Windows 的事件記錄中,可以進行分析。

不過由事件檢視器分析是一件痛苦又麻煩的事,因此前面我們也介紹過使用 Graylog 搭配相關的 Dashboard 進行快速的總覽觀看與數據圖表,可以快速知道問題帳號、主機。然而在某些時候,需要的是將多種事件繪製成有關聯性的圖表,Graylog 就力有未逮了。


方案介紹

還好開源方案中仍然讓我們發現了一款相當好用的開源工具,它是一款在 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: 特殊權限指派

下圖是官網上所呈現的一張範例圖,可以將帳戶、主機與關聯性一次清楚的呈現,相當易讀。

https://ithelp.ithome.com.tw/upload/images/20191012/20118848RitKC3Jfgq.png
圖表範例


安裝方式

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 的主畫面,最上方是篩選、搜尋與匯出的工具列;左方是可以直接點選取出的相關條件;右方是依據內容產生使用者與主機的排行榜,目前因為還沒有匯入資料,所以右方的排行榜是範例資料。

https://ithelp.ithome.com.tw/upload/images/20191012/20118848d1M4tgOkU4.png
主畫面

若要將事件交由 LogonTracer 進行分析,請到 Windows Server 上,例如網域控制站將安全性事件匯出或是複製出來,並將畫面捲至主畫面最左下角按下 [Upload Event Log] 按鈕,在此選擇要分析的 .evtx 事件檔,可以複選多個一起上傳。

https://ithelp.ithome.com.tw/upload/images/20191012/20118848CvwDpWYko6.png
上傳事件記錄檔案

上傳時記得最前面的時區欄位要調整,以台灣的時區請選擇 8,若您的時區不同,請依據實際情況調整。

提醒:系統需要啟用登入與登出的相關安全性稽核,相關設定可以至文末參考資料最後一項查閱。

圖表模式

https://ithelp.ithome.com.tw/upload/images/20191012/20118848jADH9YKt81.png
圖表-Grid

上圖是選則「Grid」圖表類型的呈現方式。

https://ithelp.ithome.com.tw/upload/images/20191012/20118848l9XFru3uH0.png
圖表-Cose

上圖是選則「Cose」圖表類型的呈現方式,我個人是比較喜歡這種呈現方式。

在這些圖表上都可以使用滑鼠拖曳、放大與縮小,其中的每一個圖示都可以自己拉動放到想要的位置,以方便想要查看的細節與關聯。

圖示說明

LogonTracer 使用不同的形狀與顏色標示不同的項目,這對於在大量資訊的圖表中可以幫助我們快速辨識需要觀察的重點項目。

圖示顏色說明:

  • 紅色八角形: 俱備系統權限的帳戶

  • 藍色圓形: 一般使用者帳戶

  • 綠色方形: IP 位址或主機

時間軸模式

除了查看登入事件的關聯圖表之外,LogonTracer 也可以用時間軸的方式來看多個帳戶之間可能的事件重疊性。

https://ithelp.ithome.com.tw/upload/images/20191012/20118848iUosB0mboD.png
時間軸表格

對於時間軸上的使用者,還可以點選後切換用折線圖的方式繪製,用以檢視不同時間點登入事件的數量。

https://ithelp.ithome.com.tw/upload/images/20191012/20118848mYjliv3FzU.png
時間軸圖表

檢視角度

除了上面的功能之外,LogonTracer 還能以帳戶的角度來檢視相關事件的關連並繪製成圖表,可以方便看出這個事件與其它主機的相關狀況。

https://ithelp.ithome.com.tw/upload/images/20191012/20118848W82xgP4ynt.png
帳戶角度檢視

同樣的,我們也可以從主機的出發點來檢視,此主機與那一些帳戶有發生過的事項,可以快速看出事件與相關性。

https://ithelp.ithome.com.tw/upload/images/20191012/20118848jDMwN0OF6t.png
主機角度檢視


結論

採用 LogonTracer 這套開源工具,可以協助我們將事件記錄做集中化的分析並產出具有高度可讀性的圖表,對於管理者要追查登入相關的異常事件幫助很大,可以省下大量交叉比對的時間。

再加上將 LogonTracer 與 Graylog 搭配使用,相信將會是帳戶管理者好用的兩把工具。


參考資料


上一篇
開源惡意軟體分析平台:Malice
下一篇
開源資訊安全事件管理系統:OSSIM
系列文
突破困境:資安開源工具應用33
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

2 則留言

1
sharbui
iT邦新手 3 級 ‧ 2020-07-15 17:01:40

內文中的
docker run --detach --publish=7474:7474 --publish=7687:7687 --publish=8080:8080 -e LTHOSTNAME=0.0.0.0 jpcertcc/docker-logontracer
如果用0.0.0.0 目前會遇到 neo4j-web.min.js 無法建立連線.

'ws://0.0.0.0:7687/' failed: Error in connection establishment: net::ERR_ADDRESS_INVALID

可以上傳檔案建立資料, 但8080 port 的web 無法連到 0.0.0.0:7687 取得資料,

把0.0.0.0的IP換成你的本機IP可以解決
$ docker run
--detach
--publish=7474:7474 --publish=7687:7687 --publish=8080:8080
-e LTHOSTNAME=[IP_Address]
jpcertcc/docker-logontracer

感謝分享~

0
糜糜卯卯
iT邦新手 5 級 ‧ 2021-06-25 09:09:43

第1次「Upload Event Log」上傳及處理事件皆正常
1、問後續使用「Upload Event Log」會出現「Upload Failed!」可能是什麼原因?(事件重複?)
1-1、後續「Upload Event Log」是要勾「Add additional EVTX or XML files」嗎?
1-2、如果我:
6/1從DC複制Security.evtx出來,餵到LogonTracer
6/2又從DC複制Security.evtx出來(包含全部的日期),餵到LogonTracer
某事件是否會重複計算?

2、請問要如何「Load from Elasticsearch」?
Graylog會裝Elasticsearch,我Graylog開127.0.0.1:9200有顯示json檔,所以我在Graylog VM上跑Docker的LogontTracer,但在「Load Event Log from Elasticsearch」還是一直Wait。

感謝節省哥

log是顯視

elasticsearch.exceptions.ConnectionError:ConnectionError(:Failed to establish a new connection:[Errno 111] Connection refused)
  1. 這個我沒試過重複的,但我猜應該是以新的取代
  2. 我沒有試過讓他搭配 Elasticsearch 喔,您可能要多試試看

感謝回覆^^
今天又試一下,發現:
(1)Time Zone選對
(2)Add addition EVTX or XML files打勾
就可上傳成功。

我要留言

立即登入留言