BOtB (Break out the Box) – это инструмент для анализа и эксплуатации контейнеров, разработанный для использования пентестерами и инженерами, а также совместимый с CI / CD и распространенными технологиями CI / CD.
Что он делает?
BOtB – это инструмент CLI, который позволяет вам:
- Использовать распространенные уязвимости контейнера
- Выполнять общие действия после эксплуатации контейнера
- Обеспечить возможность, когда определенные инструменты или двоичные файлы недоступны в контейнере
- Использовать возможности BOtB с технологиями CI / CD для тестирования развертываний контейнеров
- Выполнять вышеуказанное в ручном или автоматическом подходе
Текущие возможности
Позволяет:
- Найти и определить доменные сокеты UNIX
- Определить доменные сокеты UNIX, которые поддерживают HTTP
- Найти и идентифицировать Docker Daemon в доменных сокетах UNIX или в интерфейсе
- Анализировать и идентифицировать чувствительные строки в ENV и обрабатывать их в ProcFS, т.е. /Proc /{pid} /Environ
- Определите конечные точки служб метаданных, т.е. http://169.254.169.254
- Выполнить взлом контейнера через открытые демоны Docker
- Выполнить взлом контейнера через CVE-2019-5736
- Взломать двоичные файлы хоста с пользовательской полезной нагрузкой
- Выполнять действия в режиме CI / CD и возвращать только коды выхода> 0
- Очистить метаданные от конечных точек метаданных GCP
- Передача данных в корзину S3
- Вырваться из привилегированных контейнеров
- Заставить BOtB всегда возвращать код выхода 0 (полезно для неблокирующих CI / CD)
Скачать BOtB
BOtB доступен в виде двоичного файла в разделе релизов.
Сборка BOtB
BOtB написан на GO и может быть сборан с использованием стандартных инструментов GO.
Для начала можно сделать следующее:
Получение кода:
go get github.com/brompwnie/botb
или
git clone git@github.com:brompwnie/botb.git
Сборка:
govendor init
govendor add github.com/tv42/httpunix
govendor add github.com/kr/pty
go build -o botbsBinary
Использование
BOtB может быть скомпилирован в двоичный файл для целевой платформы и поддерживает следующее использование
Usage of ./botb:
-aggr string
Attempt to exploit RuncPWN (default "nil")
-always-succeed
Attempt to scrape the GCP metadata service
-autopwn
Attempt to autopwn exposed sockets
-cicd
Attempt to autopwn but don't drop to TTY,return exit code 1 if successful else 0
-endpointlist string
Provide a wordlist (default "nil")
-find-docker
Attempt to find Dockerd
-find-http
Hunt for Available UNIX Domain Sockets with HTTP
-hijack string
Attempt to hijack binaries on host (default "nil")
-interfaces
Display available network interfaces
-metadata
Attempt to find metadata services
-path string
Path to Start Scanning for UNIX Domain Sockets (default "/")
-pwn-privileged string
Provide a command payload to try exploit --privilege CGROUP release_agent's (default "nil")
-recon
Perform Recon of the Container ENV
-region string
Provide a AWS Region e.g eu-west-2 (default "nil")
-s3bucket string
Provide a bucket name for S3 Push (default "nil")
-s3push string
Push a file to S3 e.g Full command to push to https://YOURBUCKET.s3.eu-west-2.amazonaws.com/FILENAME would be: -region eu-west-2 -s3bucket YOURBUCKET -s3push FILENAME (default "nil")
-scrape-gcp
Attempt to scrape the GCP metadata service
-socket
Hunt for Available UNIX Domain Sockets
-verbose
Verbose output
-wordlist string
Provide a wordlist (default "nil")
¯\_(ツ)_/¯
Примечание: Информация для исследования, обучения или проведения аудита. Применение в корыстных целях карается законодательством РФ.