
Инструмент для энумерации Slack и обнаружения раскрытых секретов
Мониторинг Slack и поиск раскрытых секретов
Slack Watchman — это приложение, которое использует Slack API для поиска потенциально чувствительных данных, раскрытых в рабочем пространстве Slack, а также для сбора другой полезной информации для red, blue и purple команд.
Подробнее о Slack Watchman можно узнать в моём блоге.
Slack Watchman ищет:
Вы можете запустить Slack Watchman для поиска результатов за следующий период:
Он также собирает следующие данные:
Это означает, что после одного глубокого сканирования вы можете настроить регулярный запуск Slack Watchman и получать только результаты за выбранный период времени.
Вы можете запустить Slack Watchman в режиме неаутентифицированного зондирования, чтобы получить параметры аутентификации и другую информацию о рабочем пространстве. Для этого не нужен токен. Режим возвращает:
Чтобы запустить этот режим, используйте Slack Watchman с флагом --probe и доменом рабочего пространства для зондирования:
slack-watchman --probe https://domain.slack.com
Slack Watchman использует пользовательские YAML-сигнатуры для поиска совпадений в Slack. Эти сигнатуры загружаются из центрального репозитория Watchman Signatures. Slack Watchman автоматически обновляет свою базу сигнатур во время выполнения, чтобы использовать самые свежие сигнатуры для обнаружения секретов.
Вы можете указать сигнатуры, которые нужно отключить при запуске Slack Watchman, добавив их ID в раздел disabled_signatures файла watchman.conf. Например:
slack_watchman:
token: ...
cookie: ...
url: ...
disabled_signatures:
- tokens_generic_bearer_tokens
- tokens_generic_access_tokens
ID сигнатуры можно найти в отдельных YAML-файлах в репозитории Watchman Signatures.
Slack Watchman предоставляет следующие варианты логирования:
Если параметр не указан, Slack Watchman по умолчанию использует удобный для терминала вывод в stdout. Он рассчитан на чтение человеком.
Также доступно JSON-логирование, которое идеально подходит для загрузки в SIEM или другие платформы анализа журналов.
Логирование в формате JSON можно легко перенаправить в файл, как показано ниже:
slack-watchman --timeframe a --all --output json >> slack_watchman_log.json
Для запуска Slack Watchman понадобится OAuth-токен доступа Slack API. Для этого создайте простое Slack-приложение.
Приложению необходимо добавить следующие User Token Scopes:
channels:read
files:read
groups:read
im:read
links:read
mpim:read
remote_files:read
search:read
team:read
users:read
users:read.email
Примечание: Пользовательские токены действуют от имени пользователя, который их авторизовал, поэтому я рекомендую создать и авторизовать это приложение с помощью сервисной учётной записи — в противном случае приложение получит доступ к вашим личным беседам и чатам.
Slack-приложения можно создавать из JSON-манифестов, которые определяют детали приложения и области действия, которые нужно утвердить. Манифест приложения для Slack Watchman находится в docs/app_manifest.json; с его помощью вы можете ускорить создание Slack-приложения.
Кроме того, Slack Watchman может аутентифицироваться в Slack с помощью пользовательской cookie d, которая хранится в браузере каждого пользователя, вошедшего в рабочее пространство.
Для аутентификации с помощью cookie необходимо указать cookie d и URL целевого рабочего пространства. Затем при запуске Slack Watchman нужно использовать флаг --cookie.
Подробнее об аутентификации с помощью cookie можно узнать в моём блоге
Сначала Slack Watchman попытается получить Slack-токен (а также cookie-токен и URL, если они выбраны) из переменных окружения:
SLACK_WATCHMAN_TOKENSLACK_WATCHMAN_COOKIESLACK_WATCHMAN_URLЕсли это не удастся, он попытается загрузить токен(ы) из файла .conf (см. ниже).
Параметры конфигурации можно передать в файле с именем watchman.conf, который должен храниться в вашем домашнем каталоге. Файл должен соответствовать формату YAML и выглядеть следующим образом:
slack_watchman:
token: xoxp-xxxxxxxx
cookie: xoxd-%2xxxxx
url: https://xxxxx.slack.com
disabled_signatures:
- tokens_generic_bearer_tokens
- tokens_generic_access_tokens
Slack Watchman будет искать этот файл во время выполнения и использовать указанные в нём параметры конфигурации. Если вы не используете cookie-аутентификацию, оставьте cookie и url пустыми.
Если у вас возникли проблемы с файлом .conf, проверьте его с помощью YAML-линтера.
Пример файла находится в docs/example.conf.
Примечание: Значения Cookie и URL являются необязательными и не требуются, если вы не используете cookie-аутентификацию.