
Active Directory에서 Neo4j 기반의 조직도를 생성하고, 비밀번호 감사에서 얻은 손상된 사용자 데이터를 오버레이하여 비밀번호 보안이 취약한 부서를 시각화합니다.

Active Directory는 조직에서 ID 공급자로 사용됩니다.
여기에는 모든 직원의 이름, 직급, 부서 및 관리자 정보가 포함됩니다.
비밀번호 감사는 취약점과 위험을 발견하는 데 도움이 될 수 있습니다.
소수의 비밀번호로 비밀번호 스프레이 공격을 시도할 수 있습니다.
또는 hashcat을 사용하여 사용자 해시에 대한 사전 공격을 실행할 수 있습니다.
또한 https://haveibeenpwned.com 같은 서비스로부터 유출 정보를 얻을 수 있습니다.
그런 경우 위험에 처한 사용자 목록을 얻게 됩니다. 이 스크립트는 어떤 부서나 영역이 위험에 처했는지 시각화하는 데 도움을 줍니다.
평문 비밀번호를 알게 되면 위협 행위자가 사용자로 인증할 수 있으며 종종 경고를 발생시키지 않습니다.
이 저장소는 Active Directory의 관리자 속성을 기반으로 조직도를 그려 조직을 시각화하는 데 도움을 줍니다.
그런 다음 손상된 사용자 목록을 가져와 정보를 결합합니다.
손상된 사용자를 볼 수 있는 조직도를 생성하여 비밀번호 관리가 이상적이지 않은 부서를 쉽게 식별하는 데 도움을 줍니다. 해당 부서에 추가적인 인식 교육을 제공할 수 있습니다.
이 PowerShell 스크립트는 Active Directory에 가입된 컴퓨터에서 실행됩니다.
Active Directory PowerShell 모듈을 사용하여 모든 AD 사용자 개체를 쿼리합니다. 일반적으로 환경 내 모든 사용자가 수행할 수 있습니다.
선택적으로 compromised_users.csv 파일을 가져와 해당 개체를 표시합니다.
정보를 시각화하기 위해 Neo4j Desktop을 사용합니다. PowerShell 스크립트가 필요한 Cypher 스크립트를 생성합니다.
스크립트는 두 개의 매개변수를 허용합니다. -OutputFile -> Cypher 문이 이 파일에 기록됩니다. 기본값: ".\cypher.txt" -CompromisedUsersFile -> 손상된 사용자 계정(SamAccountName) 목록입니다. 기본값: ".\Users_Compromised.csv" [string]$CompromisedUsersFile =


다음 쿼리 실행
MATCH (employee)
RETURN employee

다른 예제 쿼리는 cyper_search_queries.md 파일에서 확인할 수 있습니다.
대규모 조직의 경우 Neo4j 설정에서 초기 노드 표시(Initial Node Display) 변수를 증가시켜야 합니다. 기본적으로 쿼리는 300개의 노드를 표시합니다.
yFiles Neo4j Explorer와 같은 다른 앱을 사용하여 다른 레이아웃을 가질 수도 있습니다.

이 저장소에는 Vagrant 파일이 포함되어 있습니다.
컴퓨터에 VirtualBox와 Vagrant를 설치하고 다음을 실행할 수 있습니다:
vagrant up
다음과 같은 작업을 수행합니다:
이 데모 환경은 대규모 엔터프라이즈 환경에서 실행하기 전에 제어된 환경에서 시험해 보는 데 도움이 됩니다.
전체 AD 환경을 구축하고 싶지 않은 경우를 위해 예제 데이터베이스 생성 스크립트도 있습니다.
Neo4j Desktop을 설치하고 demo/example_cypher_creation_script.txt 파일을 사용하여 데이터베이스를 구축하십시오.