Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
S3Scanner — Сканирование неправильно настроенных S3-корзин в S3-совместимых API! | Kitploit
Инструменты/GitHubGitHub/sa7mon/s3scanner
Сканеры уязвимостейСбор информацииБезопасность облачных средНеправильная Конфигурация
GitHubsa7mon/s3scanner

S3Scanner

Сканирование неправильно настроенных S3-корзин в S3-совместимых API!

Репозиторий
3.2k4141 месяц назадПроверено Kitploit

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться
Сайт

S3Scanner

Возможности - Использование - Быстрый старт - Установка - Обсудить


Инструмент для поиска открытых S3-корзин в AWS и других облачных провайдерах:
  • AWS
  • DigitalOcean
  • DreamHost
  • GCP
  • Linode
  • Scaleway
  • Пользовательский
demo

Возможности

  • ⚡️ Многопоточное сканирование
  • 🔭 Поддержка множества встроенных S3-провайдеров или пользовательских
  • 🕵️‍♀️ Сканирование всех разрешений корзин для поиска неверных конфигураций
  • 💾 Сохранение результатов в базу данных Postgres
  • 🐇 Подключение к RabbitMQ для автоматического сканирования в масштабе
  • 🐳 Поддержка Docker

Используется

баннер для six2dez/reconftw баннер для yogeshojha/rengine баннер для pry0cc/axiom - читается как 'динамическая инфраструктурная платформа для всех'

Использование

root@kitploit:~
INPUT: (1 required)
  -bucket        string  Name of bucket to check.
  -bucket-file   string  File of bucket names to check.
  -mq                    Connect to RabbitMQ to get buckets. Requires config file key "mq". Default: "false"

OUTPUT:
  -db       Save results to a Postgres database. Requires config file key "db.uri". Default: "false"
  -json     Print logs to stdout in JSON format instead of human-readable. Default: "false"

OPTIONS:
  -enumerate           Enumerate bucket objects (can be time-consuming). Default: "false"
  -provider    string  Object storage provider: aws, custom, digitalocean, dreamhost, gcp, linode, scaleway - custom requires config file. Default: "aws"
  -threads     int     Number of threads to scan with. Default: "4"

DEBUG:
  -verbose     Enable verbose logging. Default: "false"
  -version     Print version Default: "false"

If config file is required these locations will be searched for config.yml: "." "/etc/s3scanner/" "$HOME/.s3scanner/"

🚀 Поддержка

Если вы нашли этот инструмент полезным, пожалуйста, рассмотрите возможность пожертвования для поддержки его разработки. Вы можете найти варианты спонсорства на боковой панели этой страницы репозитория или в FUNDING.yml

Огромное спасибо tines за постоянную спонсорскую поддержку этого проекта.

Быстрый старт

Сканирование корзин AWS по списку имен из файла, с перечислением всех объектов

root@kitploit:~
$ s3scanner -bucket-file names.txt -enumerate

Сканирование корзины в GCP, перечисление всех объектов и сохранение результатов в базу данных

root@kitploit:~
$ s3scanner -provider gcp -db -bucket my-bucket -enumerate

Установка

Использование

Ввод

s3scanner требует ровно один тип ввода: -bucket, -bucket-file или -mq.

root@kitploit:~
INPUT: (1 required)
  -bucket        string  Name of bucket to check.
  -bucket-file   string  File of bucket names to check.
  -mq                    Connect to RabbitMQ to get buckets. Requires config file key "mq". Default: "false"

-bucket

Сканировать одну корзину

root@kitploit:~
s3scanner -bucket secret_uploads

-bucket-file

Сканирует каждое имя корзины из файла

root@kitploit:~
s3scanner -bucket-file names.txt

где names.txt содержит одно имя корзины на строку

root@kitploit:~
$ cat names.txt
bucket123
assets
image-uploads

Имена корзин, указанные несколько раз, будут просканированы только один раз.

-mq

Подключается к серверу RabbitMQ и потребляет сообщения, содержащие имена корзин для сканирования.

root@kitploit:~
s3scanner -mq

Сообщения должны быть JSON-кодированными объектами Bucket - обратитесь к mqingest для примера публикации на Golang.

-mq требует ключи конфигурационного файла mq.uri и mq.queue_name. Смотрите раздел Config File для примера.

Вывод

root@kitploit:~
OUTPUT:
  -db       Save results to a Postgres database. Requires config file key "db.uri". Default: "false"
  -json     Print logs to stdout in JSON format instead of human-readable. Default: "false"

-db

Сохраняет все результаты сканирования в базу данных PostgreSQL

root@kitploit:~
s3scanner -bucket images -db
  • Требует ключ конфигурационного файла db.uri. Смотрите раздел Config File для примера.
  • При использовании -db результаты также будут выведены на консоль, если используется -json или режим вывода, понятный человеку.
  • s3scanner запускает функцию Auto Migration библиотеки Gorm каждый раз при подключении к базе данных. Если схема уже содержит таблицы с именами, которые ожидает Gorm, это может изменить структуру этих таблиц. Рекомендуется создать отдельную схему Postgres для результатов s3scanner.

-json

Вместо вывода результатов сканирования на консоль в удобочитаемом формате выводит машиночитаемый JSON.

root@kitploit:~
s3scanner -bucket images -json

Это выведет по одному JSON-объекту на строку в консоль, которые затем можно передать в jq или другие инструменты, принимающие JSON на входе.

Пример: Вывести имя корзины и регион для всех существующих корзин

root@kitploit:~
$ s3scanner -bucket-file names.txt -json | jq -r '. | select(.bucket.exists==1) | [.bucket.name, .bucket.region] | join(" - ")'       
10000 - eu-west-1
10000.pizza - ap-southeast-1
images_staging - us-west-2

Параметры

root@kitploit:~
OPTIONS:
  -enumerate           Enumerate bucket objects (can be time-consuming). Default: "false"
  -provider    string  Object storage provider: aws, custom, digitalocean, dreamhost, gcp, linode, scaleway - custom requires config file. Default: "aws"
  -threads     int     Number of threads to scan with. Default: "4"

-enumerate

Перечислить все объекты, хранящиеся в корзине. По умолчанию s3scanner проверяет только разрешения корзин.

root@kitploit:~
s3scanner -bucket attachments -enumerate
  • Примечание: Это может занять много времени, если хранится большое количество объектов.
  • При перечислении s3scanner будет запрашивать «страницы» по 1 000 объектов. Если страниц больше 5 000, остальные будут пропущены.

-provider

Имя поставщика хранилища, используемого при проверке корзин.

root@kitploit:~
s3scanner -bucket assets -provider gcp
  • Используйте «custom» для работы с неподдерживаемым или локальным сетевым хранилищем.
  • Провайдер «custom» требует ключи конфигурационного файла в разделе providers.custom, перечисленные в разделе Config File.

-threads

Количество потоков для сканирования.

root@kitploit:~
s3scanner -bucket secret_docs -threads 8
  • Увеличение количества потоков увеличит количество одновременно сканируемых корзин, но не ускорит перечисление объектов. Перечисление в настоящее время однопоточное для каждой корзины.

Отладка

root@kitploit:~
DEBUG:
  -verbose     Enable verbose logging. Default: "false"
  -version     Print version Default: "false"

-verbose

Включает подробное логирование отладочных сообщений. Этот параметр генерирует много логов и не рекомендуется к использованию, если только вы не составляете отчет об ошибке.

root@kitploit:~
s3scanner -bucket spreadsheets -verbose

-version

Вывести информацию о версии и выйти.

root@kitploit:~
s3scanner -version
  • Выведет dev, если скомпилировано из исходного кода.

Разработка

Включен файл docker compose, который создает 4 контейнера:

  • rabbitmq
  • postgres
  • app
  • mitm

Настроены 2 профиля:

  • dev - Стандартная среда разработки
  • dev-mitm - Среда, настроенная с mitmproxy для упрощения наблюдения за HTTP-трафиком при отладке или добавлении новых провайдеров.

Для запуска среды разработки выполните make dev или make dev-mitm. Войдите в контейнер app с помощью docker exec -it -w /app app_dev sh, затем go run . При использовании профиля dev-mitm откройте http://127.0.0.1:8081 в браузере для просмотра и управления HTTP-вызовами, выполняемыми из контейнера app.

Конфигурационный файл

Если используются флаги, требующие параметры конфигурации, s3scanner будет искать config.yml в:

  • (текущая директория)
  • /etc/s3scanner/
  • $HOME/.s3scanner/
root@kitploit:~
# Required by -db
db:
  uri: "postgresql://user:[email protected]:5432/schema_name"

# Required by -mq
mq:
  queue_name: "aws"
  uri: "amqp://user:pass@localhost:5672"

# providers.custom required by `-provider custom`
#   address_style - Addressing style used by endpoints.
#     type: string
#     values: "path" or "vhost"
#   endpoint_format - Format of endpoint URLs. Should contain '$REGION' as placeholder for region name
#     type: string
#   insecure - Ignore SSL errors
#     type: boolean
# regions must contain at least one option
providers:
  custom: 
    address_style: "path"
    endpoint_format: "https://$REGION.vultrobjects.com"
    insecure: false
    regions:
      - "ewr1"

Когда s3scanner анализирует конфигурационный файл, он берет endpoint_format и заменяет $REGION на все перечисленные regions, чтобы создать список URL-адресов конечных точек.

S3-совместимые API

Примечание: S3Scanner в настоящее время поддерживает сканирование только разрешений анонимных пользователей для не-AWS сервисов.

📚 Дополнительная информация о не-AWS API находится в вики проекта.

Разрешения

Этот инструмент попытается получить всю доступную информацию о корзине, но интерпретация результатов остается за вами.

Возможные разрешения для корзин:

  • Read (Чтение) - Список и просмотр всех файлов
  • Write (Запись) - Запись файлов в корзину
  • Read ACP (Чтение ACP) - Чтение всех политик управления доступом, прикрепленных к корзине
  • Write ACP (Запись ACP) - Запись политик управления доступом в корзину
  • Full Control (Полный доступ) - Все вышеперечисленные разрешения

Любое или все из этих разрешений могут быть установлены для 2 основных групп пользователей:

  • Аутентифицированные пользователи
  • Публичные пользователи (без установленных учетных данных AWS)
  • Отдельные пользователи/группы (выходят за рамки этого инструмента)

Что это означает: То, что корзина не разрешает чтение/запись ACL, не означает, что вы не можете читать/записывать файлы в корзине. И наоборот, вы можете иметь возможность перечислять ACL, но не читать/записывать в корзину.

Лицензия

MIT

Скачать инструмент
ПлатформаВерсияШаги
BlackArchBlackArch packagepacman -S s3scanner
DockerDocker releasedocker run ghcr.io/sa7mon/s3scanner
GoGolanggo install -v github.com/sa7mon/s3scanner@latest
Kali LinuxKali packageapt install s3scanner
MacOShomebrew versionbrew install s3scanner
Parrot OSParrot packageapt install s3scanner
Windows - wingetwinget install s3scanner
NixOS stablenixpkgs unstable packagenix-shell -p s3scanner
NixOS unstablenixpkgs unstable packagenix-shell -p s3scanner
Другой - сборка из исходниковGitHub releasegit clone [email protected]:sa7mon/S3Scanner.git && cd S3Scanner && go build -o s3scanner .