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

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

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

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

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

Категории

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

S3Scanner

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

Репозиторий
3.2k41451 месяц назадПроверено 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
    

    Установка

    ПлатформаВерсияШаги
    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 package

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

    Ввод

    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

    Скачать инструмент
    nix-shell -p s3scanner
    NixOS unstablenixpkgs unstable packagenix-shell -p s3scanner
    Другой - сборка из исходниковGitHub releasegit clone [email protected]:sa7mon/S3Scanner.git && cd S3Scanner && go build -o s3scanner .