
대규모 도크 저장소를 사용하여 GitHub에서 비밀을 스크래핑하는 Python 프로그램

GitDorker는 GitHub Search API와 제가 여러 소스에서 수집한 방대한 GitHub dork 목록을 활용하여 검색어가 주어졌을 때 GitHub에 저장된 민감한 정보의 개요를 제공하는 도구입니다.
GitDorker의 주요 목적은 사용자에게 GitHub에서 민감한 정보를 수집하기 위한 깔끔하고 맞춤화된 공격 표면을 제공하는 것입니다. GitDorker는 GitRob 또는 Trufflehog와 같은 추가 도구와 함께 GitDorker에서 발견된 흥미로운 리포지토리나 사용자에 대해 사용하여 최상의 결과를 얻을 수 있습니다.
GitDorker는 GitHub Search API를 사용하며 분당 30개의 요청으로 제한됩니다. 속도 제한을 방지하기 위해 GitDorker에는 30개의 요청마다 검색 실패를 방지하는 sleep 함수가 내장되어 있습니다. 따라서 alldorks.txt 파일을 GitDorker와 함께 실행하면 프로세스를 완료하는 데 약 5분이 소요됩니다.
** Python3
** GitHub 개인 액세스 토큰
** 이 저장소의 requirements.txt 파일 내 요구 사항 설치 (pip3 install -r requirements.txt)
개인 액세스 토큰 생성 방법을 모르는 경우 아래 가이드를 따르십시오: https://docs.github.com/en/github/authenticating-to-github/creating-a-personal-access-token
GitDorker에 최소 두 개의 GitHub 개인 액세스 토큰을 제공하여 dorking 과정에서 두 토큰을 번갈아 사용하고 속도 제한 가능성을 줄이는 것이 좋습니다. 별도의 GitHub 계정에서 여러 토큰을 사용하면 최상의 결과를 얻을 수 있습니다.
dorks 폴더 안에는 dork 목록이 있습니다. GitHub 비밀 정보 공격 표면을 매핑할 때는 "alldorks.txt" 파일을 사용하는 것이 좋습니다. "alldorks.txt"는 다양한 리소스에서 가져온 dork 모음으로, 총 239개의 개별 GitHub 민감 정보 dork로 구성되어 있습니다.
GitDorker 사용 방법과 잠재적인 사용 사례에 대한 더 자세한 내용이 담긴 블로그 게시물을 작성했습니다: https://medium.com/@obheda12/gitdorker-a-new-tool-for-manual-github-dorking-and-easy-bug-bounty-wins-92a0a0a6b8d5
사용 사례와 GitDorker의 최신 기능 사용 방법에 대한 전체 상세 정보는 아래 BlackHat 프레젠테이션을 참조하십시오: https://youtu.be/UwzB5a5GrZk
도움말 출력:

## 빌드 명령어
docker build -t gitdorker .
## 기본 실행 명령어
docker run -it gitdorker
## 실행 명령어
docker run -it -v $(pwd)/tf:/tf gitdorker -tf tf/TOKENSFILE -q tesla.com -d dorks/DORKFILE -o tesla
## 실행 명령어
docker run -it -v $(pwd)/tf:/tf xshuden/gitdorker -tf tf/TOKENSFILE -q tesla.com -d dorks/DORKFILE -o tesla
아래는 소수의 dork 목록으로 "tesla.com" 쿼리를 실행한 결과 예시입니다.
다음 명령어로 "tesla.com"을 dork 목록에 대해 쿼리했습니다:
python3 GitDorker.py -tf TOKENSFILE -q tesla.com -d Dorks/DORKFILE -o tesla

참고: 더 고급 쿼리(예: 사용자, 조직, 엔드포인트 정보 통합 등)를 사용할수록 더 간결한 결과를 얻을 수 있습니다.
GitDorker 생성 및 dork 목록 작성을 위한 참고 자료
이 프로젝트는 교육 및 윤리적 테스트 목적으로만 제작되었습니다. 사전 상호 동의 없이 이 도구를 사용하여 대상을 공격하는 것은 불법입니다. 개발자는 어떠한 책임도 지지 않으며, 이 도구로 인한 오용이나 손해에 대해 책임을 지지 않습니다.