Tutoriales

Conjunto de herramientas automatizado y desplegable que ejecuta consultas Cypher

Cypheroth es un conjunto de herramientas automatizado y desplegable que ejecuta consultas de oculto para el backend Neo4j de Bloodhound y guardia la salida en hojas de cálculo.

Este es un script de bash que automatiza el proceso de ejecución de consultas de oculto en los datos de Bloodhound almacenados en una cojín de datos de Neo4j.

Me encontré ejecutando las mismas consultas nuevamente a través de la interfaz web de Neo4j en múltiples revisiones y me di cuenta de que debe acontecer una modo más obediente de hacerlo.

La registro de consultas Cypher a ejecutar es completamente ampliable. El ulterior ejemplo de formato muestra cómo ampliar el suyo.

¡Comparta más preguntas bártulos para que pueda agregarlas a este plan!

manifestación

requisitos

  • La cypher-shell El comando viene con Neo4j y es necesario para que este script funcione
    • Si Neo4j está instalado y cypher-shell no se encuentra, es posible que tenga una traducción desactualizada de Neo4j
    • Siempre puede encontrar la última traducción aquí
    • Bajo Kali, actualice a la última traducción usando el repositorio Debian de Neo4j
  • Opcional: si el ssconvert Si el comando está presente, el script combinará toda la salida CSV con el desplazamiento en un archivo XLS
    • Instale el conjunto de herramientas numéricas con apt o brew para obtener comunicación a ssconvert

En Windows, recomendamos usar WSL para ejecutar este script mientras la cojín de datos neo4j se ejecuta en Windows. Solo tienes que instalar eso cypher-shell Paquete en WSL (Linux).

usar

Banderas:

-u nombre de adjudicatario de Neo4J (obligatorio)
-p contraseña de Neo4J (obligatorio)
-d Nombre de dominio completo (obligatorio) (distingue entre mayúsculas y minúsculas)
-una dirección de perno (opcional) (predeterminado: localhost: 7687)
-t tiempo de paciencia de consulta (opcional) (predeterminado: 30 s)
-v Modo detallado (opcional) (predeterminado: FALSO)
-h Texto de ayuda y ejemplo de uso (opcional)

Ejemplo con configuración normalizado:

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

Ejemplo con todas las opciones:

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

Los archivos se agregan a un subdirectorio con el nombre del nombre de dominio completo.

Consultas de oculto

El script contiene actualmente casi 60 consultas. Este es un ejemplo de la información que se le dará:

  • Inventario completa de propiedades de adjudicatario
  • Inventario completa de propiedades de la computadora
  • Inventario completa de propiedades de dominio
  • Inventario completa de propiedades de OU
  • Inventario completa de propiedades de GPO
  • Inventario completa de propiedades del clan
  • Computadora con administradores
  • Computadora sin administradores
  • Usuarios y equipos que se pueden consentir a Kerberos en los que son administradores

Edite la opción para ampliar más consultas queries Arregle cypheroth.sh y agregue una recta en el ulterior formato:

Description;Cypher Query;Output File

Si agrega una consulta que necesita tener configurado el valencia de dominio, guárdela como $ DOMAIN.

Todos los nombres de adjudicatario; COINCIDIR (u: adjudicatario) VOLVER u.name; nombres de adjudicatario.csv

Todos los administradores de dominio; COINCIDIR (u: adjudicatario) COINCIDIR (g: clan nombre: ‘ADMINISTROS DE DOMINIO @ $ DOMINIO’) RETORNO y displayname; domainAdmins.csv

Analizar varios dominios

Si necesita analizar varios dominios, puede ejecutar varias instancias de Cypheroth en paralelo, con cada instancia trabajando en su dominio. Por ejemplo, puede utilizar el ulterior script (10 en paralelo).

#! / usr / bin / env bash
DOMINIOS = (domA.example.net domB.example.net […])
paralelo -j10 –lb ./cypheroth.sh -d ::: “$ DOMINIOS[@] ”

Alternativa de problemas

Si está ejecutando una traducción desactualizada del cypher-shell Es posible que vea el ulterior error:

DateTime no se admite como tipo de retorno en la traducción del protocolo Bolt
1. Asegúrese de que el compensador admita al menos la traducción del protocolo
2. Lo más probable es que se requiera una aggiornamento del compensador.

Actualice Neo4j a la última traducción para solucionarlo.

Inspección: Chris Farrell (@ Seajay)

influencia de gracias

Publicaciones relacionadas

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Botón volver arriba