Windows系統安全事件日誌取證工具:LogonTracer
- 2019 年 12 月 4 日
- 筆記
一、前言
最近在做着一些日誌分析的活,剛好看到LogonTracer這款工具,於是就參考着網上僅有的文章去搭建了,搭建過程中會多少遇到一些問題,也就順手將其記錄到這篇文章中了,希望這篇文章能幫助到第一次搭建這款工具的小夥伴。
LogonTracer這款工具是基於Python編寫的,並使用Neo4j作為其數據庫(Neo4j多用於圖形數據庫),是一款用於分析Windows安全事件登錄日誌的可視化工具。它會將登錄相關事件中的主機名(或IP地址)和帳戶名稱關聯起來,並將其以圖形化的方式展現出來,使得在日誌取證時直觀清晰。
二、Docker搭建LogonTracer詳細過程
Docker安裝過程就略過了。接下來將詳細介紹如何使用Docker搭建LogonTracer:
1、開啟docker服務
service docker start
2、拉取logontracer鏡像
docker pull jpcertcc/docker-logontracer

3、運行鏡像
docker run --detach --publish=7474:7474 --publish=7687:7687 --publish=8080:8080 -e LTHOSTNAME=192.168.59.128 jpcertcc/docker-logontracer
(其中LTHOSTNAME值對應修改為本地IP)

4、連接Neo4j數據庫
瀏覽器訪問:http://[本地IP地址]:7474
默認賬號neo4j/neo4j,接着要求修改密碼,輸入新密碼即可。

輸入完密碼連接成功後,在如下圖的輸入框中輸入如下命令,點擊右側的按鈕執行。
MATCH(n)OPTIONAL MATCH (n)-[r]-()DELETE n,r

做到這一步時,可能會遇到即使正確輸入默認密碼後仍一直提示賬號密碼錯誤,這時可以修改neo4j.conf配置文件,取消驗證機制,該文件在conf目錄下。
docker exec -it 7882c4e3dab1 /bin/sh (其中7882c4e3dab1為容器ID號,通過docker ps -a可查看)vi conf/neo4j.conf
找到文件內容:#dbms.security.auth_enabled=false
將前面的#號去掉,修改為dbms.security.auth_enabled=false
(重啟鏡像才生效,當前可以暫時不重啟,因為下面還有需要重啟的地方,到時一次重啟即可。)

5、訪問LogonTracer界面
http://[本機IP地址]:8080
此時,通過上述4步之後LogonTracer的Docker環境已經搭建好並可以正常運行,但是,由於打開的頁面中有2個JS文件調用的是遠程網址,這2個網址由於一些原因在國內無法正常訪問,所以,在通過瀏覽器訪問首頁後,點擊「Upload Event Log」按鈕是無反應的,那就無法上傳日誌文件,這就是需要解決的坑。

解決這個坑要對2處JS進行修改:
第一處JS:
https://cdn.rawgit.com/neo4j/neo4j-javascript-driver/1.4.1/lib/browser/neo4j-web.min.js
解決辦法:直接修改系統的hosts文件,手動將域名cdn.rawgit.com解析到151.139.237.11上,該網址就可以正常訪問了。
執行命令:
vim /etc/hosts然後在hosts文件中添加一行:151.139.237.11 cdn.rawgit.com

第二處JS:
https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js
解決方法:進入Docker鏡像編輯index.html模板文件。
執行命令:
docker exec -it 7882c4e3dab1 /bin/sh (其中7882c4e3dab1為容器ID)
進入Docker鏡像的終端內執行命令,編輯模板文件:
vi /usr/local/src/LogonTracer/templates/index.html
找到
https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js

將該網址的改為
https://ajax.loli.net/ajax/libs/jquery/3.2.1/jquery.min.js
保存文件。

6、重啟Docker鏡像
docker restart 7882c4e3dab1 (其中7882c4e3dab1為容器ID)

7、再次訪問LogonTracer界面
http://[本地IP地址]:8080
點擊左側的「UploadEvent Log」上傳保存在本機的evtx格式或者XML格式的Windows安全日誌文件,點擊「Browse」選擇日誌文件,然後點擊「Upload」,進行上傳。這時候就完美解決了上傳按鈕點不了的問題了。

這樣就已經成功運行並使用LogonTracer對日誌文件進行分析了。

三、LogonTracer功能介紹
1、在LogonTracer界面左側,就是對日誌文件進行分析的功能選項。

All Users:查看所有用戶的登錄信息
SYSTEM Privileges:查看管理員賬號的登錄信息(一般登錄類型3或10)
NTLM Remote Logon:查看NTLM遠程登錄信息(登錄類型3)
RDP Logon:查看RDP遠程桌面登錄信息(登錄類型10)
Network Logon:查看網絡登錄信息(登錄類型3)
Batch Logon:查看批處理登錄信息(登錄類型4)
Service Logon:查看服務登錄信息(登錄類型5)
Ms14-068 Exploit Failure:MS14-068漏洞利用失敗信息
Logon Failure:查看登錄失敗信息
Detect DCsync/DCShadow:查看刪除 DCsync/DCShadow信息
Add/Detect Users:查看添加/刪除用戶信息
Domain Check:域檢查信息
Audit Policy Change:查看審計策略變更信息
2、在界面右側,顯示着用戶名及其重要性等級。

對於此排名,LogonTracer會對事件日誌圖執行網絡分析,並根據每個節點的「中心性」創建排名。中心性是指示每個節點與網絡中心的接近度的索引。由於被攻擊帳戶用於對許多主機執行登錄嘗試,因此它們往往具有更高的中心性。因此,通過比較中心性,可以識別可能受影響的帳戶/主機。
對於每個節點,鏈接到主機(綠點)並帶有一行賬戶信息(紅/藍)表示已使用主機登陸。
紅色:SYSTEM權限帳戶 藍色:標準用戶帳戶 綠色:主機/ IP地址
附上登錄類型說明:

3、日誌篩選過濾器
在界面頂部就是日誌篩選過濾器,可以根據用戶名、主機名和IP地址等對日誌進行篩選。

也可以過濾顯示時間段及事件ID,事件出現的次數。

4、Create Timeline(創建時間軸)
按時間順序顯示事件日誌,以用戶名及時間軸劃分。


研究表明,監控以下事件對於調查未經授權的登錄是有效的。基於此,LogonTracer還可以顯示以下事件ID以進行可視化:
附登錄事件ID及說明:

由於並非所有上述事件ID都使用默認設置進行記錄,因此需要啟用審核策略以保留此類日誌,建議啟用審核策略。
5、Diff Graph(差異擴散圖)
選擇要比較額2個不同的時間日期,以圖形化對其進行差異分析。


四、常見問題
問題1:使用docker安裝完LogonTracer運行時,界面一直處於加載狀態。

現象如下圖:(360瀏覽器運行)

解決方法:不妨換個瀏覽器試試,如火狐或谷歌瀏覽器。
問題2:在使用docker安裝運行後,訪問LogonTracer界面時上傳的日誌文件成功後,卻無法對日誌加載分析。

原因:如果是上傳文件按鈕無法點擊,原因是上面安裝過程中提到的JS文件問題,按照上面安裝過程的解決方法即可。
如果是上傳的EVTX格式的日誌文件在上傳後無法加載分析的,現象如下圖:

原因一是Time Zone(時區)選項值選錯了,中國的UTC為+8,因此Time Zone下拉選項框中選擇8。
原因二是上傳的EVTX日誌文件的問題,如可能當前的日誌文件沒有記錄到任何除了IP為127.0.0.1的其他IP地址。(下圖為Log Parser Lizard的分析截圖)

五、結語
以上就是我在使用docker搭建LogonTracer時所記錄下來的筆記,在遇到問題2時一直以為是搭的環境的問題,折騰後才發現是上傳的日誌文件問題,導致一直無法進行加載分析,網上也沒有找到相關的問題解決文章,因此想通過記錄一下這個過程來幫助正在搭建或將要搭建這個工具的小夥伴一些參考。
獲取詳細的介紹、安裝使用說明以及相關軟件,請訪問:https://github.com/JPCERTCC/LogonTrace/