ODIN
관찰, 탐지, 네트워크 조사


현재 버전: v2.0.0 "Huginn"
ODIN은 정보 수집, 자산 발견 및 보고를 자동화하는 Python 도구입니다. 최신 기능은 dev 브랜치를 확인하세요. 피드백은 언제나 환영합니다!
자세한 내용과 설치 및 설정 지침은 GitHub 위키를 참조하세요.
ODIN은 무엇을 할 수 있나요?
ODIN은 레드 팀이 네트워크 자산(도메인, IP 주소, 인터넷 접속 시스템)을 발견하고 데이터를 수집하는 기본 정찰 작업을 자동화하는 것을 목표로 합니다. ODIN의 핵심 기능은 데이터 관리 및 보고입니다. 데이터는 데이터베이스에 구성된 후 선택적으로 HTML 보고서 또는 데이터 시각화를 위한 Neo4j 그래프 데이터베이스로 변환될 수 있습니다.
ODIN은 여러 단계로 이를 수행합니다:
1단계 - 자산 발견
- Full Contact 마케팅 데이터베이스와 같은 출처에서 기본 조직 정보를 수집합니다.
- DNS Dumpster, Netcraft 및 TLS 인증서를 확인하여 제공된 도메인의 서브도메인을 발견합니다.
- 소켓 연결 및 DNS 레코드를 통해 도메인과 서브도메인을 IP 주소로 확인합니다.
- RDAP, whois 및 기타 데이터 출처에서 소유권 및 조직 데이터와 같은 모든 IP 주소의 정보를 수집합니다.
- Shodan에서 도메인을 조회하고 IP 주소를 검색하여 운영 체제, 서비스 배너, 열린 포트 등의 추가 데이터를 수집합니다.
- 도메인과 서브도메인의 takeover 및 domain fronting 가능성을 확인합니다.
2단계 - 직원 발견
- 대상 조직의 이메일 주소와 직원 이름을 수집합니다.
- 검색 엔진과 Twitter API를 통해 직원을 소셜 미디어 프로필에 연결합니다.
- 발견된 이메일 주소를 Troy Hunt의 Have I Been Pwned로 교차 확인합니다.
3단계 - 클라우드 및 웹 서비스
- 대상 도메인에서 Office 파일과 PDF를 찾아 다운로드하고 메타데이터를 추출합니다.
- 조직과 관련된 키워드를 사용하여 AWS S3 버킷과 Digital Ocean Spaces를 검색합니다.
- 발견된 웹 서비스의 스크린샷을 찍어 서비스를 신속하게 초기 검토합니다.
4단계 - 보고
- 모든 데이터를 SQLite3 데이터베이스에 저장하여 데이터를 쉽게 쿼리할 수 있도록 합니다.
- 기본 SQL 쿼리를 사용하여 HTML 보고서를 생성하여 웹 브라우저에서 데이터를 간편하게 탐색할 수 있도록 합니다.
- 발견된 모든 엔티티(IP 주소, 도메인, 서브도메인, 포트, 인증서)를 관계(예: RESOLVES_TO, HAS_PORT)로 연결하는 Neo4j 그래프 데이터베이스를 생성합니다.
이 모든 과정이 끝나면 여러 가지 방법으로 데이터를 탐색하고 시각화할 수 있습니다. 간단한 Neo4j 쿼리인 MATCH (n) RETURN n(모든 항목 표시)만으로도 조직의 외부 경계에 대한 흥미로운 그래프를 만들고 자산이 어떻게 연결되어 있는지 쉽게 확인할 수 있습니다. 더 나은 쿼리 예제는 Neo4j 위키 페이지에 있습니다.