
공개된 Azure Storage Blob을 위한 빠른 열거 도구입니다.
Goblob은 Azure Blob에 공개적으로 노출된 민감 정보를 발견하는 데 도움을 주는 가볍고 빠른 열거 도구입니다. 이는 취약점 평가, 침투 테스트, 정찰 등 다양한 연구 목적에 유용할 수 있습니다.
경고. Goblob은 각 저장소 계정에서 확인할 각 컨테이너 이름에 대해 개별 고루틴을 생성하며, -goroutines 플래그에 지정된 최대 동시 고루틴 수로만 제한됩니다. 이 구현은 기본 워드리스트를 사용할 경우 대부분의 경우 대역폭을 빠르게 소진하거나, 클라우드 환경에서 도구를 사용할 경우 많은 비용이 발생할 수 있습니다. 도구를 실행하기 전에 자신이 무엇을 하고 있는지 이해하고 있어야 합니다.
go install github.com/Macmod/goblob@latest
goblob을 사용하려면 다음 명령을 실행하세요:
$ ./goblob <storageaccountname>
여기서 <storageaccountname>은 공개 Azure Blob Storage URL을 열거할 대상 저장소 계정입니다.
확인할 저장소 계정 이름 목록을 지정할 수도 있습니다:
$ ./goblob -accounts accounts.txt
기본적으로 이 도구는 일반적인 Azure Blob Storage 컨테이너 이름 목록을 사용하여 잠재적 URL을 구성합니다. 그러나 -containers 옵션을 사용하여 사용자 정의 컨테이너 이름 목록을 지정할 수도 있습니다. 예:
$ ./goblob -accounts accounts.txt -containers wordlists/goblob-folder-names.txt
도구는 -output 옵션을 사용하여 결과를 파일로 출력하는 것도 지원합니다:
$ ./goblob -accounts accounts.txt -containers wordlists/goblob-folder-names.txt -output results.txt
stdin을 통해 테스트할 계정을 제공하려면 -accounts(또는 계정 이름)를 생략할 수도 있습니다:
$ cat accounts.txt | ./goblob
Goblob에는 -containers 옵션과 함께 사용할 수 있는 기본 워드리스트가 포함되어 있습니다:
Goblob은 열거 과정을 개선하기 위해 조정할 수 있는 여러 플래그를 제공합니다:
-goroutines=N - 허용할 최대 동시 고루틴 수 (기본값: 5000).-blobs=true - 컨테이너 URL 대신 각 Blob의 URL을 보고합니다 (기본값: false).-verbose=N - 상세 수준 설정 (기본값: 1, 최소: 0, 최대: 3).-maxpages=N - Blob을 찾기 위해 탐색할 최대 컨테이너 페이지 수 (기본값: 20, 제한을 비활성화하려면 -1로 설정, Blob 목록을 전혀 나열하지 않고 컨테이너가 공개인지만 확인하려면 0으로 설정)-timeout=N - HTTP 요청에 대한 제한 시간 (초, 기본값: 90)-maxidleconns=N - HTTP 클라이언트의 전송 매개변수 (기본값: )예를 들어, 대량의 저장소 계정 및 컨테이너 이름 목록을 사용하여 공개적으로 노출된 컨테이너만 찾으려면 -maxpages=0을 사용하여 고루틴이 페이지를 매기지 않도록 해야 합니다. 그런 다음 찾은 결과 집합에 대해 -blobs=true와 -maxpages=-1을 사용하여 실제 Blob의 URL을 가져옵니다.
반면, 매우 인기 있는 컨테이너 이름의 작은 목록을 대량의 저장소 계정 집합에 대해 테스트하려면 -invertsearch=true와 -maxpages=0을 사용하여 각 저장소 계정에 대한 컨테이너 이름 대신 각 컨테이너 이름에 대한 공개 계정을 확인할 수 있습니다.
또한 -goroutines, -timeout, -maxidleconns, -maxidleconnsperhost, -maxconnsperhost, -skipssl을 변경하여 대역폭을 최적으로 사용하고 더 빠르게 결과를 찾을 수 있습니다.
플래그를 실험하여 자신에게 가장 적합한 설정을 찾아보세요 ;-)
이슈 열기 또는 풀 리퀘스트 제출을 통해 기여할 수 있습니다.
도구를 사용한 실험에서 발견된 인기 있는 컨테이너 이름의 흥미로운 시각화:

실험 및 주제에 대해 더 자세히 알고 싶다면 다음 글을 참조하세요:
MIT 라이선스 (MIT)
저작권 (c) 2023 Artur Henrique Marzano Gonzaga
이 소프트웨어 및 관련 문서 파일(이하 "소프트웨어")의 사본을 얻은 모든 사람에게는 소프트웨어를 제한 없이 사용, 복사, 수정, 병합, 게시, 배포, 서브라이선스 및/또는 판매할 수 있는 권한이 무료로 부여되며, 소프트웨어를 제공받은 사람에게도 동일한 권한이 부여됩니다. 단, 다음 조건을 준수해야 합니다:
위의 저작권 표시와 이 허가 표시는 소프트웨어의 모든 사본 또는 중요한 부분에 포함되어야 합니다.
소프트웨어는 "있는 그대로" 제공되며, 상품성, 특정 목적에의 적합성 및 비침해에 대한 보증을 포함한 어떠한 명시적 또는 묵시적 보증도 없이 제공됩니다. 어떤 경우에도 저작자 또는 저작권 보유자는 소프트웨어와 관련하여 발생하는 계약, 불법 행위 또는 기타 행위로 인한 청구, 손해 또는 기타 책임에 대해 책임을 지지 않습니다.
MaxIdleConns100-maxidleconnsperhost=N - HTTP 클라이언트의 MaxIdleConnsPerHost 전송 매개변수 (기본값: 10)-maxconnsperhost=N - HTTP 클라이언트의 MaxConnsPerHost 전송 매개변수 (기본값: 0)-skipssl=true - SSL 인증 건너뛰기 (기본값: false)-invertsearch=true - 각 계정에 대한 컨테이너 대신 각 컨테이너에 대한 계정 열거 (기본값: false)