프로젝트 소개

theHarvester는 승인된 보안 평가의 초기 정찰 단계를 위한 Python 기반 오픈소스 인텔리전스 도구다. 공개 제공자와 데이터 소스를 조회한 뒤 서브도메인 및 기타 호스트명, 이메일 주소, IP 주소, URL, ASN, 인물, 유출 이름 등의 발견 결과를 공유 증거 모델로 정규화한다. 주 명령줄 인터페이스는 일회성 열거와 셸 워크플로를 지원한다. 사용자는 개별 제공자를 선택하거나 subdomains, emails, ips, asns, urls, people, breaches 같은 기능 선택자를 사용할 수 있다. 소스 동시성, 결과 제한, 호스트명 제외, DNS 해석, 프록시, 출력 이름 지정이 설정 가능하다. 저장소에는 인증서 투명성 서비스, 검색 엔진, 코드 저장소, 패시브 DNS 제공자, URL 아카이브, 보안 인텔리전스 플랫폼을 포함한 60개의 발견 소스가 나열되어 있다. 일부 소스는 API 키가 필요하며 여러 패시브 소스는 자격 증명 없이 사용할 수 있다. 활동은 세 가지 범위 등급으로 나뉜다. P0 소스는 대상에 직접 트래픽을 보내지 않고 기존 제공자나 데이터셋을 조회한다. P1은 해석, 무차별 대입, 역방향 조회, 재귀 DNS 같은 DNS 관련 활동을 다룬다. P2는 HTTP 또는 TLS 요청, 스크린샷, 탈취 확인, 가상 호스트 확인, 포트 관련 활동, API 경로 스캔을 포함한 직접 상호작용을 다룬다. P1 및 P2 작업은 명시적으로 선택된 경우에만 실행되며 문서에서는 운영자가 소유하거나 평가가 명시적으로 허용된 도메인이나 엔드포인트만 테스트하도록 강조한다. 결과는 JSONL로 내보낼 수 있으며 JSON 및 XML 호환성 보고서도 생성된다. 완료된 실행은 로컬 SQLite 증거 저장소에 보관된다. JSONL 출력에는 실행 요약과 소스 및 작업 출처가 포함된 중복 제거된 발견 결과가 포함되며, 선택된 결과 유형에는 DNS 증거, Shodan 호스트, 탈취 지표, 관찰 및 기타 보강 레코드에 대한 구조화된 세부 정보가 포함될 수 있다. HarvestView는 실행 시작, 이력 및 아티팩트 검토, 소스 결과 검사, 호스트명 변경 비교, 일정 관리를 위한 로컬 브라우저 인터페이스와 API를 제공한다. 기본적으로 루프백에서 실행되며 API 키와 파생 HttpOnly 세션 쿠키를 사용하고, 예약된 유한 실행을 로컬 워커로 직렬 실행한다. 별도의 보고 명령은 완료된 실행을 비교하고 완료된 소스 결과를 기준으로 호스트명을 새로 보고됨, 계속 보고됨, 더 이상 보고되지 않음, 불확실로 분류할 수 있다. REST API는 인증된 엔드포인트를 통해 실행 생성 및 취소, 소스 목록, 증거 가져오기 및 내보내기, 실행 이력, 일정 관리, 디스패치 이력을 노출한다. Docker Compose 배포가 문서화되어 있으며 서비스는 비특권 사용자로 실행되고 localhost에 바인딩되며 실행을 명명된 볼륨에 저장하고 파일 시크릿에서 운영자 키를 읽는다. 사용자 구성 디렉터리의 구성 파일은 제공자 API 키, 프록시, 선택적 인증 서비스를 관리한다.