使用Neo4j可视化Windows日志

简介: 本文讲的是使用Neo4j可视化Windows日志,我花了很多时间在SIEM设备中找日志。大多数时候,这些都是以数据行的形式表示的,有时候我以看图表。当我我看到BloodHound项目时,我感觉我的图标形式显示比较老旧。我想要同样的视觉展示。
本文讲的是 使用Neo4j可视化Windows日志

介绍

我花了很多时间在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
}

使用Neo4j可视化Windows日志

为了简单起见,我将文件放入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以及什么应用和目标端口。

使用Neo4j可视化Windows日志

点击播放按钮,你应该看到类似于以下内容:

使用Neo4j可视化Windows日志

现在我们可以找到感兴趣的东西,点击左侧的数据库图标,然后点击“关系类型”下的*图标:

使用Neo4j可视化Windows日志

你现在应该看到的关系图如下:

使用Neo4j可视化Windows日志

我们得到一个真正清晰的前端展示与什么连接到我们的系统。在这种情况下,我们可以看到192.168.1.123连接到204.79.197.200,使用端口443上的IE。

实例测试

让我们进一步了解一下如何使用它来分析一些恶意活动。

使用Neo4j可视化Windows日志

当然Neo4j和这种设置不会提醒你任何恶意的活动

我们可以编写一个简单的查询来查看所有的PowerShell网络连接:

使用Neo4j可视化Windows日志

给你一个结果列表

使用Neo4j可视化Windows日志

我们可以双击来扩展它。现在我们应该看到我们对PowerShell网络活动的攻击展示:

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

这显然是一个简化的例子,但我认为这将是一个超级便利的工具,以获得一些额外的见解从你的日志。我在这里使用Sysmon,因为它提供了非常丰富的数据。

结语

使用Neo4j图形数据库,可以很方便的展示进行数据关联。

如果数据量过大,您可以通过JSON的API与BloodHound一样提供Neo4j数据库。




原文发布时间为:2017年7月31日
本文作者:愣娃
本文来自云栖社区合作伙伴嘶吼,了解相关信息可以关注嘶吼网站。
相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
目录
相关文章
|
1月前
|
Java 开发工具 Windows
Windows环境下面启动jar包,输出的日志出现乱码的解决办法
Windows环境下面启动jar包,输出的日志出现乱码的解决办法
|
4月前
|
应用服务中间件 nginx Windows
windows下面Nginx日志切割
windows下面Nginx日志切割
75 0
windows下面Nginx日志切割
|
19天前
|
Kubernetes Linux Windows
kubectl 本地远程链接k8s多个集群,远程管控多集群,查看日志 部署服务(windows版)
kubectl 本地远程链接k8s多个集群,远程管控多集群,查看日志 部署服务(windows版)
233 0
|
3月前
|
机器学习/深度学习 自然语言处理 数据可视化
基于CIFAR数据集 进行 MAE实现及预训练可视化 (CIFAR for MAE,代码权重日志全部开源,自取)
基于CIFAR数据集 进行 MAE实现及预训练可视化 (CIFAR for MAE,代码权重日志全部开源,自取)
|
11天前
|
SQL 监控 安全
Linux&Windows 日志分析 陇剑杯 CTF
Linux&Windows 日志分析 陇剑杯 CTF
|
6月前
|
存储 消息中间件 监控
架构设计第42讲:美团 - 可视化全链路日志追踪
架构设计第42讲:美团 - 可视化全链路日志追踪
209 0
|
8月前
|
编解码 Linux PHP
windows和linux包含日志文件和环境变量getshell
windows和linux包含日志文件和环境变量getshell
82 1
|
9月前
|
Java API 开发工具
工银e生活开发脱坑日志(1)RSA密钥签名验签windows环境下配置、
工银e生活开发脱坑日志(1)RSA密钥签名验签windows环境下配置
70 0
|
24天前
|
Java
使用Java代码打印log日志
使用Java代码打印log日志
77 1
|
25天前
|
Linux Shell
Linux手动清理Linux脚本日志定时清理日志和log文件执行表达式
Linux手动清理Linux脚本日志定时清理日志和log文件执行表达式
78 1

热门文章

最新文章