17370845950

自动化密码查询工具Cypheroth

Cypheroth介绍

Cypheroth是一款自动化且可扩展的工具套件,旨在帮助研究人员对Bloodhound的Neo4j后端进行自动化密码查询,并将查询结果存储到电子表格中。

Cypheroth是一款Bash脚本,能够自动对Neo4j数据库中存储的Bloodhound数据执行密码查询。

密码查询列表完全可扩展,稍后将介绍如何添加自定义查询格式。

目前版本的Cypheroth经过充分测试,可在Linux、macOS和Windows系统上正常运行。

依赖组件

cypher-shell命令与Neo4j绑定,是Cypheroth运行必需的。如果已安装Neo4j但未找到cypher-shell命令,可能需要更新Neo4j版本。

如果使用ssconvert命令,该脚本会将所有.csv输出合并到一个.xls文件中。

在Windows系统上,建议使用WSL运行该脚本,只需在WSL中安装cypher-shell包即可。

工具使用

可用的参数选项:

-u Neo4J用户名(必需)
-p Neo4J密码(必需)
-d 全限定域名(必需)(大小写敏感)
-a 本地地址(可选)(默认:localhost:7687)
-t 查询超时(可选)(默认:30s)
-v Verbose模式(可选)(默认:FALSE)
-h 显示帮助信息和使用样例(可选)

默认配置运行:

./cypheroth.sh -u neo4j -p BloodHound -d TESTLAB.LOCAL

全选项运行样例:

./cypheroth.sh -u neo4j -p hunter2 -d BigTech.corp -a 10.0.0.1:7687 -t 5m -v true

文件会被添加到以FQDN命名的子目录中。

密码查询

该脚本目前支持60种查询方式,以下是用户可接收的数据样例:

如需添加额外查询,请编辑cypheroth.sh中的queries数组,并使用以下格式添加数据:

Description;Cypher Query;Output File

如果添加的查询需要域名值,请将其存储为$DOMAIN。

样例一:

All Usernames;MATCH (u:User) RETURN u.name;usernames.csv

样例二:

All Domain Admins;MATCH (u:User) MATCH (g:Group {name:'DOMAIN ADMINS@$DOMAIN'}) RETURN u.displayname;domainAdmins.csv

分析多个域名

如果需要分析多个域名,可以同时运行多个Cypheroth实例,并分别分析多个域名。可以使用以下格式的脚本,同时运行10个实例:

#!/usr/bin/env bash
DOMAINS=(domA.example.net domB.example.net [...])
parallel -j10 --lb ./cypheroth.sh  -d {} ::: "${DOMAINS[@]}"

疑难问题

如果运行的不是最新版本的Cypheroth,可能会遇到以下错误信息:

DateTime is not supported as a return type in Bolt protocol version 1. Please make sure driver supports at least protocol version 2. Driver upgrade is most likely required.

要解决此问题,请将Neo4j更新至最新版本。

工具演示

演示地址:https://www./link/d33589e1de94c978c3c54d3d22f42c48

项目地址

Cypheroth:https://www./link/af20aa8cc361a5498fb417683dfd8488