
Многопоточный инструмент перечисления на основе DNS для обнаружения корзин AWS S3 с использованием предварительно скомпилированных списков слов и пользовательских DNS-резолверов, с опциональным развертыванием в Docker.
go get -u github.com/smiegles/mass3
mass3 -w ./lists/buckets.txt -r ./lists/resolvers.txt -t 100
| argument | explanation |
|---|---|
| -w | Словник со всеми предварительно составленными S3-бакетами (bucketname.s3.amazonaws.com) |
| -r | Список всех резолверов |
| -t | Количество потоков для использования, по умолчанию 10 |
| -o | Путь к файлу для сохранения результата (необязательно. По умолчанию будет сохранено в out.csv) |
docker build -t <name> .
docker run -it <name> -w buckets.txt -r resolvers.txt -t 100 -o /tmp/out.csv
Q: Почему бы не генерировать все "потенциальные" имена S3-бакетов в самом инструменте?
A: Этот инструмент не знает разведданные, которые вы уже собрали, например, поддомены. Когда у вас есть огромный список поддоменов, вы можете запустить над ним alt-dns и попытаться найти другие S3-бакеты, для которых, возможно, еще не настроена DNS-запись.
Q: Инструмент возвращает странные несуществующие бакеты
A: Инструмент полагается на файл lists/resolvers.txt, который должен быть точным, без "плохих" резолверов. Вы можете использовать fresh.sh для очистки списка резолверов.
Q: Сколько потоков следует использовать?
A: Зависит от ваших ресурсов; лично я использую 500 потоков, и это, кажется, работает нормально.
Благодарности @koenrh, создателю s3enum. Я использовал некоторые части его кода и способ определения существования S3-бакета через DNS.