BF hunt-cloud-misconfig
Ищет ошибки конфигурации облачной / инфраструктурной среды. AWS: публичные бакеты S3 (s3:GetObject анонимно), разрешающие политики бакетов (PutObjectAcl public-write), открытый источник CloudFront, публичный URL Lambda-функции, публичный снимок RDS, учетные данные IAM в JS-бандлах, метаданные AWS, доступные через SSRF. GCP: публичные бакеты GCS, открытые сервисы Cloud Run, утечка JSON учетной записи сервиса. Azure: публичные контейнеры blob, открытые Function App. (Уязвимости Kubernetes/Docker обрабатываются hunt-k8s; атаки на CI/CD пайплайны — hunt-cicd; повышение привилегий IAM после получения учетных данных — cloud-iam-deep.) Обнаружение: целевой поиск (dorking), прозрачность сертификатов, извлечение секретов из JS-бандлов, сканирование портов для известных портов сервисов. Валидация: фактическое чтение/запись данных / RCE. Используйте при поиске ошибок конфигурации облачных хранилищ и вычислений (S3/GCS/Blob, IMDS-via-SSRF, serverless, публичные управляемые сервисы).
машинный переводПоказать оригиналСкрыть оригинал«Hunt cloud / infrastructure misconfigurations. AWS: public S3 buckets…»
Hunt cloud / infrastructure misconfigurations. AWS: public S3 buckets (s3:GetObject anonymous), permissive bucket policies (PutObjectAcl public-write), exposed CloudFront origin, public Lambda function URL, public RDS snapshot, IAM credentials in JS bundles, AWS metadata accessible via SSRF. GCP: public GCS buckets, exposed Cloud Run services, leaked service account JSON. Azure: public blob containers, exposed Function App. (Kubernetes/Docker exposure is owned by hunt-k8s; CI/CD pipeline attacks by hunt-cicd; post-credential IAM escalation by cloud-iam-deep.) Detection: targeted dorking, certificate transparency, JS bundle secret extraction, port scan for known service ports. Validate: actual data read / write / RCE. Use when hunting cloud-native storage and compute misconfig (S3/GCS/Blob, IMDS-via-SSRF, serverless, public managed services).
Ищет ошибки конфигурации облачной / инфраструктурной среды.
Как процесс F 35/100 · Не запустится — Скилл ссылается на файлы, которых нет в архиве: [0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}, [a-z]{2}-[a-z]+-[0-9]+:[0-9a-f-]{36}
Как улучшить
- В тексте есть ссылки на отсутствующие файлы: добавьте файлы или уберите ссылки.
- Свои кейсы (evals/evals.json, 4–6 реальных запросов с ожидаемыми ответами): тогда полная проверка прогонит именно их, а не черновик от модели.
- spec.yaml с триггерными фразами и утверждениями — контракт поведения для CI; `skilltest init` создаст шаблон.
Находки guard · 2
✓ Критических и высоких находок нет
Средние и низкие: 2
-
низкая Рискованное назначение
intent-offensive-securitySKILL.md:158Наступательная безопасность / двойное назначение (допустимо для авторизованного тестирования; проверьте назначение)| `guestRoleArn` with `cognito-identity:*` or `iam:PassRole` | **High** (8.0) | Privilege escalation primitive |
-
низкая Рискованное назначение
intent-offensive-securitySKILL.md:171Наступательная безопасность / двойное назначение (допустимо для авторизованного тестирования; проверьте назначение)- **HackTricks Cloud — `aws-cognito-unauthenticated-enum`** — canonical playbook. [cloud.hacktricks.wiki](https://cloud.hacktricks.wiki/en/pentesting-cloud/aws-security/aws-unauthenticated-enum-access
Просканировано файлов: 1. Улики замаскированы. Пометки в серых чипах объясняют, почему серьёзность понижена.
По спецификации Agent Skills
- предупреждение
missing-refссылка на отсутствующий файл: [0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12} - предупреждение
missing-refссылка на отсутствующий файл: [a-z]{2}-[a-z]+-[0-9]+:[0-9a-f-]{36} - заметка
frontmatter-keyнеизвестное поле фронтматтера "sources" - заметка
frontmatter-keyнеизвестное поле фронтматтера "report_count"
Процессный рейтинг: все десять параметров 35/100
- 0Инструменты и файлы. Не хватает 2 файла(ов): [0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}, [a-z]{2}-[a-z]+-[0-9]+:[0-9a-f-]{36}
- 0Результат и критерий готовности. Не сказано, что считать результатом
- 0Входы и предусловия. Не сказано, что нужно иметь на входе
- 0Ошибки и развилки. Линейный процесс без обработки сбоев
- 20Когда включается. Не сказано, при каком запросе скилл включается
- 30Повторный запуск. Изменяющих операций: 5, без проверки текущего состояния
- 100Шаги. Шагов: 19
- 100Согласованность. Имя и обязательные поля на месте
- 100Стоимость исполнения. Тело инструкции 2940 токенов
- 100Отчётность по ходу. Скилл сообщает о ходе работы
- low Ответ описан самодельной разметкой (4 тегов): типизированный вызов надёжнее
Всё перечисленное измерено по тексту скилла, а не оценено моделью: цифры проверяемы. Вес параметра тем больше, чем чаще из-за него процесс встаёт.
Сигналы качества
- +5В description нет примеров фраз, по которым скилл должен срабатывать
- +4Описание не говорит, когда скилл НЕ применять (ложные срабатывания)
- +3Длина description 853: рекомендуется 120–800 символов
- +3Формат ответа не описан: модель каждый раз решает сама
- -2Ссылки на localhost: у другого пользователя не заработает
- +1Лицензия не указана
- +2Инструкции на одном языке
- +4Структура: 15 заголовков
- +3Пошаговые инструкции: 19 пунктов
- +4Есть примеры (9 блоков кода)
База качества 70; замечания lint вычитаются, сигналы прибавляют до 100. Итог: 68.