
멀티클라우드 OSINT 도구. AWS, Azure, Google Cloud의 공개 리소스를 열거합니다.
이 도구는 2019년에 Azure를 포함한 침투 테스트를 위해 만들었습니다. 당시에는 다른 열거 도구가 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
필수 인자는 최소한 하나의 키워드입니다. 내장된 퍼징 문자열을 사용할 수 있지만, -m 및/또는 -b를 사용하여 직접 제공하면 더 나은 결과를 얻을 수 있습니다.
-k 인자를 여러 번 지정하여 여러 키워드를 제공할 수 있습니다.
키워드는 enum_tools/fuzz.txt 또는 -m 플래그로 제공한 파일의 문자열을 사용하여 자동으로 변형됩니다. 두 번째 수준의 브루트 포스가 필요한 서비스(Azure 컨테이너 및 GCP 함수)는 기본적으로 fuzz.txt를 사용하거나 -b 플래그로 제공한 파일을 사용합니다.
예를 들어 "somecompany"라는 회사를 조사 중이고, 웹사이트는 "somecompany.io"이며 "blockchaindoohickey"라는 제품을 만든다고 가정해 보겠습니다. 다음과 같이 도구를 실행할 수 있습니다:
uv run cloud_enum -k somecompany -k somecompany.io -k blockchaindoohickey
HTTP 스크래핑 및 DNS 조회는 기본적으로 각각 5개의 스레드를 사용합니다. 이 값을 늘릴 수 있지만, 클라우드 제공업체가 결국 속도 제한을 적용할 것입니다. 다음은 10으로 늘리는 예입니다.
uv run cloud_enum -k keyword -t 10
중요: 일부 리소스(Azure 컨테이너, GCP 함수)는 리전별로 검색됩니다. 스캔 시간을 절약하기 위해 cloudenum/azure_regions.py 및 cloudenum/gcp_regions.py에 정의된 "REGIONS" 변수는 기본적으로 하나의 리전만 사용하도록 설정되어 있습니다. 이 파일을 검토하고 자신의 작업에 맞게 편집하는 것이 좋습니다.
전체 사용법 세부 정보
usage: cloud_enum.py [-h] -k KEYWORD [-m MUTATIONS] [-b BRUTE]
Multi-cloud enumeration utility. All hail OSINT!
optional arguments:
-h, --help show this help message and exit
-k KEYWORD, --keyword KEYWORD
Keyword. Can use argument multiple times.
-kf KEYFILE, --keyfile KEYFILE
Input file with a single keyword per line.
-m MUTATIONS, --mutations MUTATIONS
Mutations. Default: enum_tools/fuzz.txt
-b BRUTE, --brute BRUTE
List to brute-force Azure container names. Default: enum_tools/fuzz.txt
-t THREADS, --threads THREADS
Threads for HTTP brute-force. Default = 5
-ns NAMESERVER, --nameserver NAMESERVER
DNS server to use in brute-force.
-l LOGFILE, --logfile LOGFILE
Will APPEND found items to specified file.
-f FORMAT, --format FORMAT
Format for log file (text,json,csv - defaults to 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
지금까지 다음에서 일부를 차용했습니다: