
Bloodhound의 Neo4j 백엔드에 대해 cypher 쿼리를 실행하고 결과를 스프레드시트에 저장하는 자동화되고 확장 가능한 도구 세트입니다.
Bloodhound의 Neo4j 백엔드에 대해 Cypher 쿼리를 실행하고 출력을 스프레드시트로 저장하는 자동화되고 확장 가능한 도구 세트입니다.
이것은 Neo4j 데이터베이스에 저장된 Bloodhound 데이터에 대해 Cypher 쿼리 실행을 자동화하는 Bash 스크립트입니다.
여러 평가에서 Neo4j 웹 인터페이스를 통해 동일한 쿼리를 반복 실행하다 보니 더 쉬운 방법이 있어야 한다고 생각했습니다. 😅
실행할 Cypher 쿼리 목록은 완전히 확장 가능합니다. 아래 형식 예제는 사용자 정의 쿼리를 추가하는 방법을 보여줍니다.
유용한 추가 쿼리가 있으면 공유해 주세요. 이 프로젝트에 추가하겠습니다!
Linux, macOS, Windows의 Bash에서 작동하도록 완전히 테스트되었습니다
(더 나은 시청을 위해 termtosvg로 렌더링됨)
cypher-shell 명령어는 Neo4j에 번들로 제공되며, 이 스크립트가 작동하는 데 필요합니다.
cypher-shell을 찾을 수 없는 경우, Neo4j 버전이 오래된 것일 수 있습니다.ssconvert 명령어가 있으면 스크립트는 모든 .csv 출력을 .xls 파일 내의 시트로 결합합니다.
Windows의 경우 Neo4j 데이터베이스가 Windows에서 실행되는 동안 WSL을 사용하여 이 스크립트를 실행하는 것이 좋습니다. WSL(Linux)에 cypher-shell 패키지를 설치하기만 하면 됩니다.
플래그:
-u Neo4J 사용자 이름 (필수)
-p Neo4J 비밀번호 (필수)
-d 완전한 도메인 이름 (FQDN) (필수) (대소문자 구분)
-a Bolt 주소 (선택 사항) (기본값: localhost:7687)
-t 쿼리 타임아웃 (선택 사항) (기본값: 30s)
-v 상세 모드 (선택 사항) (기본값: 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 배열을 편집하고 다음 형식을 사용하여 한 줄을 추가하세요.
설명;Cypher 쿼리;출력 파일
도메인 값을 설정해야 하는 쿼리를 추가하는 경우 $DOMAIN으로 저장하세요.
예제 1:
모든 사용자 이름;MATCH (u:User) RETURN u.name;usernames.csv
예제 2:
모든 도메인 관리자;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 <args> -d {} ::: "${DOMAINS[@]}"
cypher-shell의 오래된 버전을 실행하는 경우 다음 오류가 발생할 수 있습니다:
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 업데이트를 최신 버전으로 진행하세요.
Chris Farrell (@seajay)
#cypher_queries 채널에 감사드립니다.