
검색, 파싱 및 덤프를 수행하여 노출에 관심 있는 데이터를 가진 공개된 Elasticsearch 및 MongoDB 디렉토리만을 대상으로 하는 OSINT 도구
![]() | ODBParser |
ODBParser는 열린 데이터베이스에 노출된 개인 식별 정보(PII)를 검색하는 도구입니다.
노출된 PII를 식별하고 서버 소유자에게 부주의한 데이터베이스 유지 관리에 대해 경고하기 위한 용도로만 사용하세요.
또는 액세스 권한이 있는 데이터베이스를 쿼리할 때만 사용하세요!
책임감 있게 사용해 주십시오.
원스톱 OSINT 도구를 만들어서 타사 서버에서 PII 유출을 식별하고, 열린 데이터베이스를 검색/파싱/분석하고자 이 도구를 작성했습니다. 다른 도구들은 보통 열린 데이터베이스를 검색하거나, 식별한 후 무차별적으로 데이터를 덤프하는 방식입니다. 처음에는 한두 가지 기능에서 시작했지만, 이 리포지토리에 있는 수준까지 확장되었습니다. 그래서 코드가 이상적일 정도로 깔끔하지는 않습니다.
열린 데이터베이스를 식별하려면 다음을 수행할 수 있습니다:
덤프 옵션:
후처리:
기타 기능:
odbconfig.py 파일을 참조하여 매개변수를 지정하세요. 이름에서 알 수 있듯이, 관심 있는 데이터를 노출하는 것이 핵심입니다. 구성 파일에 몇 가지 예제를 제공했습니다. 직접 실험해 보세요!
다음을 수행할 수 있습니다:
ODBParser에 가상 환경을 생성하여 모듈 버전 문제를 방지하는 것이 좋습니다. 참고: Python 3.7.3 및 Windows 10에서만 테스트되었습니다.
책임감 있게 사용해 주십시오.
Examples: python ODBParser.py -cn US -p 8080 -t users --elastic --shodan --csv --limit 100
python ODBParser.py -ip 192.168.2:8080 --mongo --ignorelogs --nosizelimits
Damage to-date: 0 servers parsed | 0 databases dumped | 0 records pulled
_____________________________________________________________________________
optional arguments:
-h, --help 도움말 메시지를 표시하고 종료
Query Options:
--shodan, -sh Shodan 사용 시 이 플래그를 추가하세요. ES 또는 MDB를 플래그와 함께 지정하세요.
--binary, -be BinaryEdge 사용 시 이 플래그를 추가하세요. ES 또는 MDB를 플래그와 함께 지정하세요.
--ip , -ip 단일 서버를 쿼리합니다. 포트는 '192.165.2.1:8080' 형식으로 추가하거나 각 DB 유형의 기본 포트를 사용합니다. ES 또는 MDB 플래그를 추가하여 파서를 지정하세요.
--file , -f 파일에서 줄 구분된 IP 목록을 로드합니다. 포트를 추가하거나 각 DB 유형의 기본 포트를 사용합니다. ES 또는 MDB 플래그를 추가하여 파서를 지정하세요.
--paste, -v 클립보드에서 줄 구분된 IP 목록을 쿼리합니다. 포트를 추가하거나 각 DB 유형의 기본 포트를 사용합니다(예: ES의 경우 9200). ES 또는 MDB 플래그를 추가하여 파서를 지정하세요.
Shodan/BinaryEdge Options:
--limit , -l 쿼리당 최대 결과 수. 기본값은 500입니다.
--port , -p 포트로 필터링합니다.
--country , -cn 국가로 필터링합니다(두 글자 국가 코드).
--terms , -t 추가 쿼리 용어를 입력하세요(예: 'users').
Dump Options:
--mongo, -mdb IP, Shodan, BinaryEdge 및 Paste 방법에 파서를 지정할 때 사용합니다.
--elastic, -es IP, Shodan, BinaryEdge 및 Paste 방법에 파서를 지정할 때 사용합니다.
--properjson, -pj 출력을 올바른 JSON 파일로 만들려면 이 플래그를 추가하세요. 기본값은 한 줄에 하나의 JSON 문자열 객체입니다.
--database , -db 가져올 데이터베이스를 지정합니다. MDB의 경우 'db:collection' 형식이어야 합니다. IP 인수와 'es' 또는 'mdb' 플래그와 함께 사용하세요.
--getall, -g 필드와 컬렉션/인덱스 이름에 관계없이 모든 인덱스를 가져옵니다(구성 파일의 선택을 무시).
--ignorelogs 이미 확인한 서버에 연결합니다.
--nosizelimits, -n 크기에 관계없이 인덱스를 덤프합니다. 기본 최대 문서 수는 800,000개입니다.
--csv JSON 덤프를 즉시 CSV 형식으로 변환합니다.(변환 문제가 있을 경우 JSON 파일을 백업 폴더에 보관)
CSV/Post-processing Options:
--convertToCSV , -c 나중에 JSON 파일 또는 JSON 덤프 폴더를 CSV로 변환합니다. 전체 경로 또는 현재 작업 디렉토리 내 폴더 이름을 입력하세요.
--dontflatten 후처리 중 JSON 파일을 CSV로 변환할 때 메모리 문제가 발생하면 사용하세요.
--basic JSON 덤프가 실제 JSON 파일이 아닌, 다른 소스에서 얻은 줄 구분 JSON 객체인 경우 --convertToCSV 플래그와 함께 사용하세요.
--dontclean, -dc CSV로 변환할 때 불필요한 데이터를 유지하려면 선택하세요. 자세한 내용은 문서를 참조하세요.