
Whois for the Cloud: 클라우드 제공자 식별을 위한 정찰 도구. AWS, Azure, Google, Cloudflare 및 Digital Ocean을 지원합니다.
IP를 조회하여 클라우드 제공업체 및 제공업체가 게시한 JSON, CSV 또는 텍스트 데이터 기반의 기타 세부 정보를 찾습니다
Cloud edge는 클라우드 서비스 제공업체에 초점을 맞춘 정찰 도구입니다. 클라우드 귀속 및 포렌식, 침투 테스트, 버그 바운티, 레드 팀 운영 또는 클라우드 제공업체의 일반적인 R&D에 사용할 수 있습니다. Edge는 클라우드 서비스 제공업체(CSP)가 게시한 IP 주소 범위(AWS, Azure, GCP, Cloudflare, Digital Ocean) 파일을 자동으로 로드하고 입력 IP 주소를 기반으로 접두사 조회를 수행합니다. 다른 정찰 도구와 통합하여 사용할 수 있습니다. 블랙박스 네트워크 침투 테스트에서 edge는 고객이 호스팅되는 클라우드 CSP를 신속하게 발견하거나, 참여 규칙의 범위를 재확인하는 데 사용됩니다. 각 CSP는 모든 IP 접두사 및/또는 네트블록 목록을 게시합니다. Azure 및 AWS의 경우 리전/데이터 센터 및 서비스 이름을 추가합니다. 이는 위협 인텔리전스에 탁월한 강화 기능으로, IP 주소를 물리적 데이터 센터 및 클라우드 서비스에 매핑할 수 있습니다. Cloud Edge는 "무엇을 다루고 있는지" 신속하게 파악하기 위한 정찰 워크플로에 유용하며, IP 접두사 기반으로 빠르게 구문 분석하고 조회를 수행합니다.

도구가 입력 및 출력에 대해 작동하는 방식에 대한 몇 가지 참고 사항입니다.
Cloud Edge를 실행하면 지원되는 모든 클라우드 제공업체 파일이 자동으로 다운로드됩니다. 파일이 작업 디렉토리에 없으면 다운로드됩니다:
% ./edge
[INF] Cloud Edge 버전 0.2.4 시작
[INF] cloud.json 파일이 다운로드되어 생성되었습니다
[INF] aws.json 파일이 다운로드되어 생성되었습니다
[INF] cloudflare-ipv4.txt 파일이 다운로드되어 생성되었습니다
[INF] cloudflare-ipv6.txt 파일이 다운로드되어 생성되었습니다
[INF] digitalocean.csv 파일이 다운로드되어 생성되었습니다
[INF] azure.json 파일이 다운로드되어 생성되었습니다
오프라인 상태여서 다운로드할 수 없는 경우, 이 저장소의 csp-files 디렉토리를 확인하세요. 작업 디렉토리에 복사하세요.
도구가 처음 실행될 때, 자동으로 여섯 개의 클라우드 제공업체 IP 주소 범위 JSON, 텍스트 및 csv 파일을 작업 디렉토리에 다운로드하고 로드하려고 시도합니다. 작동 방식은 다음과 같습니다:
기본적으로 파일이 이미 작업 디렉토리에 없는 경우 아래 URL에서 여섯 개의 파일을 다운로드하려고 시도합니다.
Cloud Edge는 각 파일을 다운로드하기 전에 해당 파일이 있는지 확인합니다. 따라서 파일이 이미 존재하면 삭제하지 않는 한 다시 다운로드되지 않습니다.
이 여섯 개의 파일은 이 GitHub 저장소의 csp-files 디렉토리에 포함되어 있습니다. 클라우드 제공업체는 목록을 자주 업데이트하므로, 작업 디렉토리에서 aws.json, azure.json, cloud.json, cloudflare-ipv4.txt, cloudflare-ipv6.txt, digitalocean.csv 파일을 제거하여 최신 파일을 확보하세요.
작업 디렉토리에 있으면 모든 IP 접두사가 메모리에 로드됩니다. 클라우드 제공업체 IP 범위 파일은 항상 작업 디렉토리에서 로드를 시도합니다. 실제 조회를 활성화하려면 -prefix 플래그를 사용합니다.
-dns 모드가 활성화되면 A 및 CNAME 레코드에 대한 DNS 조회가 모든 DNS 쿼리가 완료될 때까지 표시 없이 버퍼링됩니다. 쿼리가 완료된 후 출력이 표시됩니다.
기본적으로 출력은 [INF]로 시작하는 정보 메시지를 표시합니다. -silent 플래그로 비활성화할 수 있습니다. 출력은 다음과 같습니다:
./edge -single 140.179.144.130
[INF] 140.179.144.130의 단일 IP 접두사 조회
[INF] IP [140.179.144.130]이 접두사 [AWS:140.179.144.128/25]를 통해 클라우드 제공업체와 일치
[INF] IP [140.179.144.130]이 클라우드 서비스 [API_GATEWAY] 및 리전 [cn-north-1]과 일치
140.179.144.130,Provider:AWS;Prefix:140.179.144.128/25;Region:cn-north-1;Service:API_GATEWAY
정보 메시지는 DNS 'A' 레코드, DNS 'CNAME' 레코드, 인증서(crt.sh) 또는 접두사 일치를 통해 레코드가 발견되었는지 알려줍니다. 접두사 일치는 감지된 클라우드 제공업체와 일치하는 접두사, 해당되는 경우 클라우드 서비스 및 리전을 알려줍니다. Azure 리전은 현재 감지되지 않지만 AWS 리전은 감지됩니다.
-dns 또는 crt 모드에서 출력은 기본적으로 쉼표로 구분된 결과로 콘솔에 전송됩니다. 이를 통해 다른 도구로 이러한 결과를 쉽게 구문 분석할 수 있습니다.
FQDN,IP,SOURCE,CNAME,DESCRIPTION
-prefix가 활성화된 경우 IP 주소 범위 설명의 결과를 반환합니다.-prefix 모드와 -ip 또는 -nmap을 함께 사용하면 출력은 기본적으로 쉼표로 구분된 결과로 콘솔에 전송됩니다:
IP,DESCRIPTION
IP는 IP 주소이고, DESCRIPTION은 해당되는 경우 클라우드 제공업체 IP 주소 범위 JSON 파일의 IP 주소 범위 조회 결과입니다.
-ptr 모드와 ip 또는 nmap을 함께 사용하면 출력은 기본적으로 쉼표로 구분된 결과로 콘솔에 전송됩니다:
IP,PTR
IP는 IP 주소이고, PTR은 DNS PTR 조회 결과(있는 경우)입니다.
-ip 플래그는 IP 주소 목록을 반복하도록 지시하며, prefix 또는 ptr 모드에서 사용할 수 있습니다. -ip <hosts.txt>로 도구를 실행하면 각 IP 주소가 별도의 줄에 있어야 하며, 목록을 반복하여 조회를 수행합니다. 파일 내용의 예:
user@host:~/demo$ cat ip.txt
3.133.110.237
18.117.232.92
18.221.247.211
3.137.199.52
-nmap 플래그는 nmap XML 파일을 구문 분석하도록 지시합니다. nmap 스캔 파일에서 "Up"으로 표시된 호스트를 찾습니다. 예를 들어, -nmap scan1.xml은 도구가 scan1.xml 파일을 구문 분석하고 nmap에 의해 Up으로 표시된 호스트를 찾도록 지시합니다. 그런 다음 -ptr 또는 -prefix와 함께 실행하여 IP 조회를 수행합니다.
이 도구는 한 줄에 하나의 호스트 이름을 포함하는 wordlist를 반복하여 일반적인 서브도메인 열거를 수행합니다. 이는 -dns 모드에서 -wordlist <hosts.txt>와 함께 사용됩니다. hosts.txt 파일의 예:
user@host:~/demo$ more subdomains-5k.txt
www
blog
news
blogs
en
online
$ edge -help
edge 사용법:
-crt
인증서 투명성 조회 모드
-csv string
CSV 파일로 결과 출력
-dns
A 및 CNAME 레코드 조회 모드
-domain string
추측을 수행할 도메인.
-ip string
IP 주소에 사용할 텍스트 파일
-nmap string
사용할 Nmap 스캔 xml 파일.
-output
CSV로 출력 활성화
-prefix
IP 접두사 CSP 조회 모드
-ptr
PTR 조회 모드
-resolver string
사용할 DNS 서버. (기본값 "8.8.8.8:53")
-silent
[INF]를 숨기기 위해 무음 모드 활성화
-single string
접두사 조회를 할 단일 IP 주소
-verbose
상세 출력 활성화
-wordlist string
추측에 사용할 wordlist.
-workers int
사용할 작업자 수. (기본값 10)
예제 #1: 단일 IP 주소 조회
edge -single <ip_address>
설명: 클라우드 제공업체의 JSON 파일을 대상으로 <ip_addr>로 제공된 단일 IP 주소의 접두사 조회를 수행합니다.
샘플 출력:
edge -single 140.179.144.130
[INF] 140.179.144.130의 단일 IP 접두사 조회
[INF] IP [140.179.144.130]이 접두사 [AWS:140.179.144.128/25]를 통해 클라우드 제공업체와 일치
[INF] IP [140.179.144.130]이 클라우드 서비스 [API_GATEWAY] 및 리전 [cn-north-1]과 일치
140.179.144.130,Provider:AWS;Prefix:140.179.144.128/25;Region:cn-north-1;Service:API_GATEWAY
예제 #2: 단일 IP 주소 조회 및 정보 메시지 숨기기
$ edge -single <ip_address> -silent
설명: 위와 동일하지만 무음 모드를 활성화합니다. 추가 정보가 포함된 [INF] 메시지를 숨깁니다.
샘플 출력:
edge -single 140.179.144.130
140.179.144.130,Provider:AWS;Prefix:140.179.144.128/25;Region:cn-north-1;Service:API_GATEWAY
예제 #3: 다운로드 대신 로컬 제공업체 JSON 파일 사용
edge -single <ip_address> -silent -nd
설명: 제공업체 JSON 파일을 다운로드하지 말고 대신 작업 디렉토리의 로컬 파일을 사용합니다.
예제 #4: 인증서 투명성 및 접두사 조회를 포함한 wordlist 서브도메인 열거
edge -domain <domain> -dns -crt -prefix -wordlist <wordlist.txt>
설명: wordlist.txt를 기반으로 도메인에 대한 모든 A 및 CNAME 레코드의 wordlist 서브도메인 열거를 수행하고 인증서 투명성 조회를 추가합니다. 인증서 투명성에서 발견된 각 열거된 호스트에 대해 DNS 조회도 수행합니다. 세 클라우드 서비스 제공업체의 게시된 IP 접두사 목록에서 IP 주소의 IP 접두사 조회를 수행합니다.
샘플 출력:
edge -domain tesla.com -dns -crt -prefix -wordlist subdomains-5k.txt
[INF] crt.sh를 통해 호스트 발견 [nas-origin.tesla.com]
nas-origin.tesla.com,,Certificate,,
[INF] crt.sh를 통해 호스트 발견 [eua-origin.tesla.com]
eua-origin.tesla.com,,Certificate,,
[INF] CNAME을 통해 호스트 발견 [fleetview.prd.na.fn.tesla.com.:fleetview.prd.usw2.fn.tesla.com]
fleetview.prd.na.fn.tesla.com.,,CNAME,fleetview.prd.usw2.fn.tesla.com,
[INF] CNAME을 통해 호스트 발견 [fleetview.prd.usw2.fn.tesla.com.:a69ff530d53f14d8e8059a3aee44e9ab-1848028946.us-west-2.elb.amazonaws.com]
fleetview.prd.usw2.fn.tesla.com.,,CNAME,a69ff530d53f14d8e8059a3aee44e9ab-1848028946.us-west-2.elb.amazonaws.com,
[INF] A 레코드를 통해 호스트 발견 [a69ff530d53f14d8e8059a3aee44e9ab-1848028946.us-west-2.elb.amazonaws.com:52.39.128.70]
[INF] 접두사 [AWS:52.36.0.0/14]를 통해 클라우드 제공업체 일치
[INF] IP [52.39.128.70]이 클라우드 서비스 [EC2] 및 리전 [us-west-2]와 일치
예제 #5: 인증서 투명성 또는 IP 접두사 조회 없이 wordlist 서브도메인 열거
edge -domain <domain> -dns -wordlist <wordlist.txt>
설명: wordlist를 기반으로 모든 A 및 CNAME 레코드의 wordlist 스캔만 수행합니다.
샘플 출력:
edge -domain tesla.com -dns -wordlist subdomains-5k.txt
[INF] CNAME을 통해 호스트 발견 [fleetview.prd.na.fn.tesla.com.:fleetview.prd.usw2.fn.tesla.com]
fleetview.prd.na.fn.tesla.com.,,CNAME,fleetview.prd.usw2.fn.tesla.com,
[INF] A 레코드를 통해 호스트 발견 [e9056.b.akamaiedge.net:23.2.254.58]
e9056.b.akamaiedge.net,23.2.254.58,A,teslamotors.vanity3.ca1.qualtrics.com,
예제 #6: 인증서 투명성 없이 wordlist 서브도메인 열거 및 발견된 IP 주소에 대한 IP 접두사 조회
edge -domain <domain> -dns -wordlist <wordlist.txt> -prefix
설명: wordlist를 기반으로 모든 A 및 CNAME 레코드의 wordlist 스캔만 수행합니다. 열거된 모든 IP 주소에 대해 접두사 조회를 수행합니다.
예제 #7: 인증서 투명성 로그 조회
edge -domain <domain> -crt
설명: https://crt.sh를 사용하여 인증서 투명성 로그 조회를 수행합니다.
샘플 출력:
edge -domain tesla.com -crt
[INF] crt.sh 인증서 투명성 조회 실행 중
[INF] crt.sh를 통해 호스트 발견 [solarbonds.tesla.com]
solarbonds.tesla.com,,Certificate,,
[INF] crt.sh를 통해 호스트 발견 [energydesk.tesla.com]
energydesk.tesla.com,,Certificate,,
예제 #8: DNS 조회를 포함한 인증서 투명성
edge -domain <domain> -dns -crt
설명: 인증서 투명성 조회를 수행합니다. 인증서 투명성을 통해 발견된 각 호스트에 대해 전체 DNS A 또는 CNAME 조회를 수행합니다.
예제 #9: IP 주소 목록으로 IP 접두사 조회
edge -prefix -ip <ip-hosts.txt>
설명: 클라우드 서비스 제공업체 IP 접두사에 대한 IP 주소 조회를 수행합니다. ip-hosts.txt에 있는 IP 주소 목록을 가져와 조회를 수행합니다. 한 줄에 하나의 IP 주소.
샘플 출력:
edge -prefix -ip ip-hosts.txt
[INF] IP [140.179.144.130]이 접두사 [AWS:140.179.144.128/25]를 통해 클라우드 제공업체와 일치
[INF] IP [140.179.144.130]이 클라우드 서비스 [API_GATEWAY] 및 리전 [cn-north-1]과 일치
140.179.144.130,Provider:AWS;Prefix:140.179.144.128/25;Region:cn-north-1;Service:API_GATEWAY
[INF] IP [18.189.124.22]이 접두사 [AWS:18.189.0.0/16]를 통해 클라우드 제공업체와 일치
[INF] IP [18.189.124.22]이 클라우드 서비스 [EC2] 및 리전 [us-east-2]와 일치
18.189.124.22,Provider:AWS;Prefix:18.189.0.0/16;Region:us-east-2;Service:EC2
[INF] IP [20.60.128.132]이 접두사 [Azure:20.60.0.0/16]를 통해 클라우드 제공업체와 일치
[INF] IP [20.60.128.132]이 클라우드 서비스 [AzureStorage]와 일치
20.60.128.132,Provider:Azure;Prefix:20.60.0.0/16;Name:Storage;ID:Storage;Platform:Azure;SystemService:AzureStorage
예제 #10: IP 주소 목록으로 DNS PTR 조회
edge -ptr -ip <ip-hosts.txt>
설명: ip-hosts.txt의 각 줄에 있는 IP 주소를 기반으로 DNS PTR 조회를 수행합니다.
샘플 출력:
edge -ptr -ip ip-hosts.txt
140.179.144.130,ec2-140-179-144-130.cn-north-1.compute.amazonaws.com.cn.
예제 #11: nmap 파일 구문 분석 및 발견된 IP 주소의 접두사 조회
edge -prefix -nmap <results.xml>
설명: nmap 스캔 XML 파일을 구문 분석하여 모든 "Up" 호스트를 식별합니다. nmap XML 스캔 결과의 모든 "Up" 호스트에 대해 클라우드 서비스 제공업체의 IP 접두사 조회를 수행합니다.
예제 #12: nmap 파일 구문 분석 및 각 IP 주소의 DNS PTR 조회
edge -ptr -nmap <results.xml>
설명: nmap 스캔 XML 파일을 구문 분석하고 모든 "Up" 호스트의 PTR 조회를 수행합니다.
예제 #13: 100개의 작업자로 동시성 추가하여 성능 향상
edge -domain <domain> -dns -wordlist <wordlist.txt> -workers 100
설명: 100개 작업자의 DNS 동시성 스캔을 사용합니다. 스캔 속도가 증가합니다. 기본 작업자 수: 10.
예제 #14: DNS 리졸버 지정
edge -domain <domain> -dns -wordlist <wordlist.txt> -resolver 8.8.4.4:53
설명: 포트 53에서 8.8.4.4의 DNS 리졸버를 지정합니다. 기본값은 8.8.8.8입니다.
사전 컴파일된 바이너리를 가져오거나 빌드할 수 있습니다. 클라우드 제공업체 IP 접두사 JSON 파일도 함께 가져와야 합니다.
go 1.25로 테스트 및 빌드되었습니다.
$ git clone https://github.com/iknowjason/edge.git
$ cd edge
~/edge$ go build edge.go
~/edge$ ./edge (확인)
@mosesrenegade - 도구 영감 제공
@0xdabbad00 - 일반 AWS 도구 및 영감 제공
이 도구는 dnsrecon 및 gobuster를 포함한 많은 다른 도구와 작성자로부터 영감을 받았습니다. 네, 알고 있습니다. 여기서 새로운 것은 많지 않습니다. 또 다른 서브도메인 열거 도구일 뿐입니다. 저는 정말로 Golang을 배우고 싶었습니다 :-)
"Black Hat Go" 책
| 제공업체 | 로컬 파일 | 원격 URL |
|---|
| AWS | aws.json | https://ip-ranges.amazonaws.com/ip-ranges.json |
| Azure | azure.json | https://azservicetags.azurewebsites.net/ |
| GCP | cloud.json | https://www.gstatic.com/ipranges/cloud.json |
| Cloudflare | cloudflare-ipv4.txt | https://www.cloudflare.com/ips-v4/# |
| Cloudflare | cloudflare-ipv6.txt | https://www.cloudflare.com/ips-v6/# |
| Digital Ocean | digitalocean.csv | https://digitalocean.com/geo/google.csv |