1. 程式人生 > >使用Neo4j可視化Windows日誌

使用Neo4j可視化Windows日誌

搜索 post 簡單 desktop .so 安裝完成 win com 擴展

導語:大多數時候,這些都是以數據行的形式表示的,有時候我以看圖表。當我我看到BloodHound項目時,我感覺我的圖標形式顯示比較老舊。我想要同樣的視覺展示。

介紹

我花了很多時間在SIEM設備中找日誌。大多數時候,這些都是以數據行的形式表示的,有時候我以看圖表。當我我看到BloodHound項目時,我感覺我的圖標形式顯示比較老舊。我想要同樣的視覺展示。

在這篇文章中,我想介紹如何使用 Neo4j可視化一些Sysmon日誌。

入門

我快速的谷歌搜索,偶然發現這個的帖子,我學習了基礎知識。第一步是抓住Neo4j的免費社區版本,可以在這裏找到

安裝完成後,您應該可以瀏覽http://127.0.0.1:7474/browser/訪問Neo4j DB,默認用戶/密碼為neo4j/neo4j,在您在首次登錄時更改密碼。

第二步是使用配置文件安裝Sysmon,在以前的文章中我介紹過Sysmon。

準備日誌

現在,已經配置好Sysmon及Neo4j的設置,我們需要將日誌轉換成可以導入Neo4j的格式。我使用以下的PowerShell腳本:

這個腳本創建一個CSV文件

Import-Module C:UsersAntonDownloadsGet-WinEventData.ps1
$File = "C:UsersAntonDesktoplogs.csv"
Clear-Content "C:UsersAntonDesktoplogs.csv"
Add-Content $File -Value Source","Destination","DestinationPort","Application`n -NoNewline
$EventsID3 = Get-WinEvent -FilterHashtable @{logname="Microsoft-Windows-Sysmon/Operational";id=3} | Get-WinEventData | select EventDataSourceIp,EventDataDestinationIp,EventDataDestinationPort,EventDataImage
foreach ($Event3 in $EventsID3)
{
   $output = Write-Output $Event3.EventDataSourceIp","$Event3.EventDataDestinationIp","$Event3.EventDataDestinationPort","$Event3.EventDataImage`n
   Add-Content $File -Value $output -NoNewline
}

技術分享

為了簡單起見,我將文件放入C:Users<Name>DocumentsNeo4jdefault.graphdbimport目錄中

導入數據和Cypher查詢

現在有了我們所需格式的文件,打開Neo4j界面,並在輸入框中輸入以下命令:

load csv with headers from "file:///logs.csv" AS csvLine
CREATE (source:address { address: csvLine.Source })
CREATE (destination:addressd { addressd: csvLine.Destination })
CREATE (DestinationPort:DestPort { destport: csvLine.DestinationPort })
CREATE (application:app { Application: csvLine.Application })
CREATE (source)-[:ConnectedTo]->(destination)-[:Using]->(application)-[:OnPort]->(DestinationPort)

第一行加載我們的CSV,

接下來的四個CREATE語句使我們的圖形元素的源地址,目的地址,目標端口和應用程序

最後一個CREATE語句構建我們的關系。在這種情況下,我想知道什麽源IP連接到什麽目的地IP以及什麽應用和目標端口。

技術分享

點擊播放按鈕,你應該看到類似於以下內容:

技術分享

現在我們可以找到感興趣的東西,點擊左側的數據庫圖標,然後點擊“關系類型”下的*圖標:

技術分享

你現在應該看到的關系圖如下:

技術分享

我們得到一個真正清晰的前端展示與什麽連接到我們的系統。在這種情況下,我們可以看到192.168.1.123連接到204.79.197.200,使用端口443上的IE。

實例測試

讓我們進一步了解一下如何使用它來分析一些惡意活動。

技術分享

當然Neo4j和這種設置不會提醒你任何惡意的活動

我們可以編寫一個簡單的查詢來查看所有的PowerShell網絡連接:

技術分享

給你一個結果列表

技術分享

我們可以雙擊來擴展它。現在我們應該看到我們對PowerShell網絡活動的攻擊展示:

再次,我們可以清楚地看到192.168.1.123連接到151.101.124.133(Github),通過端口443使用PowerShell。

這顯然是一個簡化的例子,但我認為這將是一個超級便利的工具,以獲得一些額外的見解從你的日誌。我在這裏使用Sysmon,因為它提供了非常豐富的數據。

結語

使用Neo4j圖形數據庫,可以很方便的展示進行數據關聯。

如果數據量過大,您可以通過JSON的API與BloodHound一樣提供Neo4j數據庫。

使用Neo4j可視化Windows日誌