
Uma ferramenta de teste de penetração para enumerar e analisar Buckets S3 da Amazon pertencentes a um domínio.
Aviso: o código é horrível, pois só usei isso para uso pessoal. Quando tiver tempo, vou torná-lo menos horrível (e mais rápido).
Ao realizar um reconhecimento em um domínio - entender os ativos que eles possuem é muito importante. As permissões de bucket AWS S3 têm sido confundidas repetidamente e permitiram a exposição de material confidencial.
O que esta ferramenta faz é enumerar nomes de buckets S3 usando padrões comuns que identifiquei durante meu tempo de caça a bugs e testes de penetração. Permutações são suportadas em um nome de domínio raiz usando uma wordlist personalizada. Recomendo fortemente a que está incluída no AltDNS.
As seguintes informações sobre cada bucket encontrado serão retornadas:
go get -u github.com/glen-mac/goGetBucket
goGetBucket -m ~/tools/altdns/words.txt -d <domain> -o <output> -i <wordlist>
Usage of ./goGetBucket:
-d string
Supplied domain name (used with mutation flag)
-f string
Path to a testfile (default "/tmp/test.file")
-i string
Path to input wordlist to enumerate
-k string
Keyword list (used with mutation flag)
-m string
Path to mutation wordlist (requires domain flag)
-o string
Path to output file to store log
-t int
Number of concurrent threads (default 100)
Ao longo do meu uso da ferramenta, obtive os melhores resultados quando insiro uma lista (-i) de subdomínios para um domínio raiz que me interessa. Ex.:
www.domain.com
mail.domain.com
dev.domain.com
O arquivo de teste (-f) é um arquivo que o script tentará armazenar no bucket para testar permissões de escrita. Então talvez armazene suas informações de contato e uma mensagem de aviso se isso for feito durante um bounty?
A lista de palavras-chave (-k) é concatenada com o nome do domínio raiz (-d) e o domínio sem o TLD para permutar usando a wordlist de permutação fornecida (-m).
Certifique-se de não aumentar muito o número de threads (-t) - pois a AWS tem limitação de taxa de API que será acionada e começará a retornar um código indesejado.