Skip to content
KitploitKITPLOIT
도구블로그
제출
도구블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
DumpsterDiver — 다양한 파일 유형에서 시크릿을 검색하는 도구. | Kitploit
도구/GitHubGitHub/securing/dumpsterdiver
Static AnalysisVulnerability AnalysisCode AnalysisData ExfiltrationInformation GatheringSecret DetectionArchived
GitHubsecuring/dumpsterdiver

DumpsterDiver

다양한 파일 유형에서 시크릿을 검색하는 도구.

저장소 보기
1.0k1543년 전Kitploit 검토 완료

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

DumpsterDiver_logo

DumpsterDiver (by @Rzepsky)

DumpsterDiver는 대량의 데이터를 분석하여 AWS Access Key, Azure Share Key, SSH 키와 같은 하드코딩된 비밀(키 또는 비밀번호)을 검색하는 도구입니다. 또한 기본 조건(예: 최소 10개의 이메일 주소가 포함된 CSV 파일만 보고)을 사용한 간단한 검색 규칙을 생성할 수 있습니다. 이 도구의 주요 아이디어는 잠재적인 비밀 유출을 감지하는 것입니다. 데모 비디오에서 실제 작동을 확인하거나 이 기사에서 모든 기능에 대해 읽을 수 있습니다.

DumpsterDiver

주요 특징:

  • Shannon 엔트로피를 사용하여 개인 키를 찾습니다.
  • git 로그를 검색합니다.
  • 압축된 아카이브(예: zip, tar.gz 등)를 푸는 기능.
  • 간단한 규칙을 사용한 고급 검색 지원(아래 세부 사항).
  • 하드코딩된 비밀번호 검색.
  • 완전히 사용자 정의 가능.

사용법

root@kitploit:~
usage: DumpsterDiver.py [-h] -p LOCAL_PATH [-r] [-a] [-s] [-o OUTFILE]
                        [--min-key MIN_KEY] [--max-key MAX_KEY]
                        [--entropy ENTROPY] [--min-pass MIN_PASS]
                        [--max-pass MAX_PASS]
                        [--pass-complex {1,2,3,4,5,6,7,8,9}]
                        [--exclude-files EXCLUDE_FILES [EXCLUDE_FILES ...]]
                        [--bad-expressions BAD_EXPRESSIONS [BAD_EXPRESSIONS ...]]

기본 명령줄 옵션

  • -p LOCAL_PATH - 분석할 파일이 들어 있는 폴더의 경로.
  • -a, --advance - 이 플래그가 설정되면 모든 파일이 rules.yaml 파일에 지정된 규칙을 사용하여 추가 분석됩니다.
  • -r, --remove - 이 플래그가 설정되면 비밀(또는 -a 플래그가 설정된 경우 흥미로운 항목)이 포함되지 않은 파일이 제거됩니다.
  • -s, --secret - 이 플래그가 설정되면 모든 파일이 하드코딩된 비밀번호를 찾기 위해 추가 분석됩니다.
  • -o OUTFILE - JSON 형식의 출력 파일.

사전 요구 사항

DumpsterDiver를 실행하려면 Python 라이브러리를 설치해야 합니다. 다음 명령어를 실행하여 설치할 수 있습니다:

root@kitploit:~
$> pip install -r requirements.txt

Python 2와 3을 별도로 설치한 경우 pip3 또는 pip3.6을 사용해야 합니다.

검색 사용자 정의

모든 사람의 요구에 맞는 단일 도구는 없으며 DumpsterDiver도 예외는 아닙니다. 검색을 사용자 정의하는 두 가지 방법이 있습니다:

  • 명령줄 매개변수 사용
  • config.yaml 파일 사용

명령줄 매개변수를 통한 사용자 정의

  • --min-key MIN_KEY - 분석할 최소 키 길이를 지정합니다(기본값 20).
  • --max-key MAX_KEY - 분석할 최대 키 길이를 지정합니다(기본값 80).
  • --entropy ENTROPY - 높은 엔트로피의 경계를 지정합니다(기본값 4.3).

또한 단일 단어에서 문자의 엔트로피를 계산할 수 있는 별도 스크립트가 추가되었습니다. 이를 통해 DumpsterDiver를 필요에 맞게 더 잘 사용자 정의할 수 있습니다. 다음 명령어로 확인할 수 있습니다:

root@kitploit:~
$> python3 entropy.py f2441e3810794d37a34dd7f8f6995df4

이 방법은 찾고자 하는 것이 무엇인지 알 때 매우 유용합니다. 몇 가지 예는 다음과 같습니다:

  • AWS Secret Access Key를 찾는 경우:

$> python3 DumpsterDiver.py -p [PATH_TO_FOLDER] --min-key 40 --max-key 40 --entropy 4.3

  • Azure Shared Key를 찾는 경우:

$> python3 DumpsterDiver.py -p [PATH_TO_FOLDER] --min-key 66 --max-key 66 --entropy 5.1

  • SSH 개인 키를 찾는 경우(기본적으로 RSA 개인 키는 76바이트 길이의 문자열로 작성됨):

$> python3 DumpsterDiver.py -p [PATH_TO_FOLDER] --min-key 76 --max-key 76 --entropy 5.1

  • aws_access_key_id 또는 aws_secret_access_key의 모든 발생을 찾는 경우:

$> python3 DumpsterDiver.py -p ./test/ --grep-words *aws_access_key_id* *aws_secret_access_key* -a

grep 단어 앞뒤의 와일드카드는 의도적으로 사용됩니다. 이렇게 하면 "aws_access_key_id" 또는 aws_access_key_id=와 같은 표현식도 보고됩니다.

하드코딩된 비밀번호 찾기

비밀번호를 찾기 위해 엔트로피를 사용하는 것은 많은 오탐지를 생성하므로 효과적이지 않습니다. 이것이 DumpsterDiver가 하드코딩된 비밀번호를 찾기 위해 다른 접근 방식을 사용하는 이유입니다 - passwordmeter를 사용하여 비밀번호 복잡성을 확인합니다. 이 검색을 사용자 정의하려면 다음 명령어를 사용할 수 있습니다:

  • --min-pass MIN_PASS - 분석할 최소 비밀번호 길이를 지정합니다(기본값 8). 구문에 -s 플래그를 추가해야 합니다.
  • --max-pass MAX_PASS - 분석할 최대 비밀번호 길이를 지정합니다(기본값 12). 구문에 -s 플래그를 추가해야 합니다.
  • --pass-complex {1,2,3,4,5,6,7,8,9} - 1(간단한 비밀번호)에서 9(매우 복잡한 비밀번호) 사이의 비밀번호 복잡성 경계를 지정합니다(기본값 8). 구문에 -s 플래그를 추가해야 합니다.

예를 들어 복잡한 비밀번호(대문자, 소문자, 특수 문자, 숫자를 포함하고 길이가 10~15자)를 찾으려면 다음 명령어를 사용할 수 있습니다:

$> python3 DumpsterDiver.py -p [PATH_TO_FOLDER] --min-pass 10 --max-pass 15 --pass-complex 8

검색 제한

특정 파일을 스캔하지 않도록 제외할 수 있습니다. 이를 위해 다음 매개변수를 사용할 수 있습니다:

  • --exclude-files - 분석하지 않을 파일 이름 또는 확장자를 지정합니다. 파일 확장자는 . 문자를 포함해야 합니다(예: .pdf). 여러 파일 이름과 확장자는 공백으로 구분합니다.

  • --bad-expressions - 나쁜 표현식을 지정합니다. DumpsterDiver가 파일에서 이러한 표현식을 찾으면 해당 파일은 분석되지 않습니다. 여러 나쁜 표현식은 공백으로 구분합니다.

여러 파일 이름, 나쁜 표현식 또는 grep 단어를 별도 파일로 지정하려면 다음 bash 트릭을 사용할 수 있습니다:

root@kitploit:~
$> python3 DumpsterDiver.py -p ./test/ --exclude-files `while read -r line; do echo $line; done < blacklisted_files.txt`

config.yaml 파일을 통한 사용자 정의

여러 명령줄 매개변수를 사용하는 대신 config.yaml 파일에서 위에서 언급한 모든 매개변수 값을 한 번에 지정할 수 있습니다.

고급 검색:

DumpsterDiver는 고급 검색도 지원합니다. 이 도구는 와일드카드를 사용한 단순한 grep 외에도 조건을 생성할 수 있습니다. 예를 들어, 회사 이메일 유출을 검색한다고 가정해 보겠습니다. 또한 최소 100개의 이메일 주소가 포함된 대규모 유출에만 관심이 있습니다. 이를 위해 rules.yaml 파일을 다음과 같이 편집해야 합니다:

root@kitploit:~
filetype: [".*"]
filetype_weight: 0
grep_words: ["*@example.com"]
grep_words_weight: 10
grep_word_occurrence: 100

다른 시나리오를 가정해 보겠습니다. .db 또는 .sql 파일에서 "pass", "password", "haslo", "hasło"(폴란드 회사 저장소를 분석하는 경우)라는 용어를 찾고 있습니다. 그러면 rules.yaml 파일을 다음과 같이 수정하여 이를 달성할 수 있습니다:

root@kitploit:~
filetype: [".db", ".sql"]
filetype_weight: 5
grep_words: ["*pass*", "*haslo*", "*hasło*"]
grep_words_weight: 5
grep_word_occurrence: 1

규칙은 총 가중치(filetype_weight + grep_words_weight)가 >=10인 경우에만 트리거됩니다.

Docker 사용

DumpsterDiver용 Docker 이미지를 사용할 수 있습니다. 다음 명령어로 실행합니다:

root@kitploit:~
$> docker run -v /path/to/my/files:/files --rm rzepsky/dumpsterdiver -p /files

구성 파일(config.yaml 또는 rules.yaml) 중 하나를 재정의하려면:

root@kitploit:~
$> docker run -v /path/to/my/config/config.yaml:/config.yaml /path/to/my/config/rules.yaml:/rules.yaml -v /path/to/my/files:/files --rm rzepsky/dumpsterdiver -p /files

기여

더 좋은 아이디어가 있으신가요? 이 프로젝트에 도움을 주고 싶으신가요? 트위터 @Rzepsky로 연락해 주세요. 여기에 기여자들이 나타나면 매우 기쁠 것입니다!

특별 감사

이 프로젝트 개발에 도움을 주신 모든 분들께 깊이 감사드립니다:

  • Stephen Sorriaux
  • Andres Riancho
  • Damian Stygar
  • Disconnect3d

라이선스

LICENSE 파일을 참조하십시오.

도구 다운로드