
멀티클라우드 OSINT 도구. AWS, Azure, Google Cloud의 공개 리소스를 열거합니다.
이 도구는 2019년 Azure 관련 침투 테스트를 위해 만들었습니다. 당시에는 이를 지원하는 다른 열거 도구가 없었기 때문입니다. 그때부터 발전해 왔고, 기능을 추가하면서 많은 것을 배웠습니다.
도구를 만드는 것은 재미있지만, 유지보수는 어렵습니다. 한동안 이 도구를 직접 적극적으로 사용하지는 않았지만, 버그를 수정하고 풀 리퀘스트를 검토하기 위해 최선을 다해 왔습니다.
앞으로는 이 기능을 필수 요소(웹/DNS 요청, 스레딩, I/O, 로깅 등)를 처리하는 잘 유지관리되는 프로젝트로 통합하는 것이 합리적입니다. Nuclei가 이에 매우 적합합니다. cloud_enum 기능을 Nuclei로 마이그레이션하기 위한 첫 PR은 여기에서 확인할 수 있습니다.
다른 분들이 Nuclei에 템플릿을 기여해 주시기를 권장합니다. 그러면 우리는 기반 작업은 Nuclei에 맡기고 클라우드 리소스 탐지에 집중할 수 있습니다.
시간이 허락하는 대로 버그를 해결하기 위해 여기에서 PR을 계속 검토하려고 노력하겠지만, 큰 변경을 할 시간은 없을 것 같습니다.
훌륭한 기여자 여러분께 감사드립니다. 정찰 작업에 행운이 있기를 바랍니다!
멀티 클라우드 OSINT 도구입니다. AWS, Azure, Google Cloud의 공개 리소스를 열거합니다.
현재 다음을 열거합니다:
Amazon Web Services:
Microsoft Azure:
Google Cloud Platform
Codingo의 비디오 데모 여기에서 실제 동작을 확인하세요.
이 프로젝트는 의존성 관리를 위해 uv를 사용합니다. uv를 설치한 후 다음을 실행하세요:
uv sync
또는 독립 실행형 도구로 설치하세요:
uv tool install git+https://github.com/initstring/cloud_enum
필수 인수는 최소 하나의 키워드뿐입니다. 내장 퍼징 문자열을 사용할 수 있지만, -m 및/또는 -b로 직접 제공하면 더 나은 결과를 얻을 수 있습니다.
-k 인수를 여러 번 지정하여 여러 키워드를 제공할 수 있습니다.
키워드는 enum_tools/fuzz.txt 또는 -m 플래그로 제공한 파일의 문자열을 사용하여 자동으로 변형됩니다. 2차 무차별 대입이 필요한 서비스(Azure Containers 및 GCP Functions)는 기본적으로 fuzz.txt 또는 -b 플래그로 제공한 파일을 사용합니다.
웹사이트가 "somecompany.io"이고 "blockchaindoohickey"라는 제품을 만드는 "somecompany"를 조사한다고 가정해 보겠습니다. 다음과 같이 도구를 실행할 수 있습니다:
uv run cloud_enum -k somecompany -k somecompany.io -k blockchaindoohickey
HTTP 스크래핑과 DNS 조회는 기본적으로 각각 5개의 스레드를 사용합니다. 이 값을 늘려볼 수 있지만, 결국 클라우드 제공업체가 속도 제한을 걸게 됩니다. 다음은 10으로 늘리는 예입니다.
uv run cloud_enum -k keyword -t 10
중요: 일부 리소스(Azure Containers, GCP Functions)는 리전별로 검색됩니다. 스캔 시간을 절약하기 위해 enum_tools/azure_regions.py 및 enum_tools/gcp_regions.py에 "REGIONS" 변수가 정의되어 있으며 기본적으로 1개의 리전만 사용하도록 설정되어 있습니다. 이 파일들을 살펴보고 자신의 작업에 맞게 편집하는 것이 좋습니다.
전체 사용법 세부 정보
usage: cloud_enum [-h] (-k KEYWORD | -kf KEYFILE) [-m MUTATIONS] [-b BRUTE] [-t THREADS]
[-ns NAMESERVER] [-nsf NAMESERVERFILE] [-l LOGFILE] [-f FORMAT] [--disable-aws]
[--disable-azure] [--disable-gcp] [-qs]
Multi-cloud enumeration utility. All hail OSINT!
options:
-h, --help show this help message and exit
-k, --keyword KEYWORD
Keyword. Can use argument multiple times.
-kf, --keyfile KEYFILE
Input file with a single keyword per line.
-m, --mutations MUTATIONS
Mutations. Default: enum_tools/fuzz.txt
-b, --brute BRUTE List to brute-force Azure container names. Default: enum_tools/fuzz.txt
-t, --threads THREADS
Threads for HTTP brute-force. Default = 5
-ns, --nameserver NAMESERVER
DNS server to use in brute-force. Default: 1.1.1.1
-nsf, --nameserverfile NAMESERVERFILE
Path to the file containing nameserver IPs
-l, --logfile LOGFILE
Appends found items to specified file.
-f, --format FORMAT Format for log file (text,json,csv) - default: text
--disable-aws Disable Amazon checks.
--disable-azure Disable Azure checks.
--disable-gcp Disable Google checks.
-qs, --quickscan Disable all mutations and second-level scans
지금까지 다음에서 차용했습니다: