

图形有助于在大型数据集中发现异常和模式。
此脚本从多个主机获取 netstat 信息,并将其格式化为可导入 Neo4j 的格式。
可以查询 Neo4j 来查找与特定主机的连接、来自特定主机的连接、了解使用情况或协议等等。
example 目录中已包含一些文件,以便您测试该工具。
您还可以找到示例查询,这些查询将帮助您初步了解搜索的可能性。
目前,该工具已针对 Windows 系统使用命令 'netstat -an' 输出的 netstat 进行了测试。
https://docs.docker.com/install/linux/docker-ce/centos/
https://docs.docker.com/compose/install/
git clone https://github.com/trinitor/netstat2neo4j.git /opt/netstat2neo4j/
cd /opt/netstat2neo4j/
docker-compose up -d
https://ip:7474
用户: neo4j
密码: neo4j
将所有 netstat 输出文件(*.txt 文件)复制到 /opt/netstat2neo4j/script/import/
cd /opt/netstat2neo4j/script/
bash csv2neo4j.sh
所需的 cypher 语句可在 create_database.txt 中找到
浏览至 https://localhost:7474
从 create_database.txt 复制内容
粘贴到 Neo4j 界面的命令栏中
MATCH (src)-[:DEPENDS_ON]->(dst)
WHERE src.ip STARTS WITH '192_168_'
RETURN src, dst
example 文件夹中还有一个 query.txt 文件。
问: 这很冗余。难道你不知道还有其他项目吗?
答: 我知道。这并不新奇或特别。有免费项目、教程以及基于代理的商业产品,用于绘制地图甚至强制执行规则。
一些例子:
这个小项目绝不是一个替代品。
问: 在所有机器上创建 netstat 很困难。你有解决方案吗?
答:
虽然你可以通过 WMI/PowerShell 远程收集信息,但我不建议使用一个在所有系统上拥有完全管理员权限的帐户。
使用你的配置管理来调度 netstat 创建,或者使用计划任务。这超出了这个小项目的范围。
如果你想使用一个拥有所有权限的帐户:
https://ijustwannared.team/2019/04/22/network-connection-footprinting-with-wmi-and-neo4j/
问: 你一定错了。Neo4j 应该可以直接读取 CSV 文件。为什么你要自己创建语句?
答: 你说得对。直接导入 CSV 文件是可行的。
https://neo4j.com/developer/guide-import-csv/