Помогаем этичным хакерам использовать LLM в 50 строках кода или меньше..
hackingBuddyGPT — это открытый фреймворк для создания агентов тестирования безопасности на основе LLM. Он предоставляет скучную, но необходимую основу — подключение к LLM, коннекторы к целевым системам (SSH / локальная оболочка / psexec в стиле WinRM), подключение возможностей/инструментов, ограничения на запуск и структурированное логирование — чтобы вы могли выразить новый эксперимент («use-case») в нескольких десятках строк кода. Мы стремимся стать тем самым фреймворком для исследователей безопасности и пентестеров, которые хотят использовать LLM (или автономных агентов на основе LLM) для тестирования безопасности.
Для поддержки воспроизводимых исследований мы также поддерживаем переиспользуемый бенчмарк повышения привилегий в Linux и публикуем наши результаты в виде отчётов с открытым доступом. Если вам нужна помощь в выборе LLM для задачи, у нас есть статья, сравнивающая несколько LLM.
⚠️ Это программное обеспечение выполняет реальные команды на работающих системах. В режиме локальной оболочки оно выполняет их на вашей машине; в режиме SSH/psexec — на целевой системе, которую вы указали. Запускайте его только против систем, которыми вы владеете или которые вам явно разрешено тестировать, и предпочитайте изолированные виртуальные машины или контейнеры. См. отказ от ответственности.
# 1. clone and install (uv is recommended; a plain venv + pip works too)
git clone https://github.com/ipa-lab/hackingBuddyGPT.git && cd hackingBuddyGPT
uv sync && source .venv/bin/activate
# 2. configure your LLM key + target
cp .env.example .env && $EDITOR .env
# 3. list the available use-cases
wintermute
# 4. run one — e.g. a minimal Linux privilege-escalation against an SSH target
wintermute MinimalPrivEscLinux \
--conn=ssh --conn.host=192.168.122.151 \
--conn.username=lowpriv --conn.password=trustno1
Установка пакета предоставляет команду wintermute. Запуск без аргументов выводит список всех зарегистрированных use-case; wintermute <UseCase> --help показывает параметры этого use-case.
Нужна цель для практики? Возьмите уязвимую машину из нашего Linux Privilege-Escalation Benchmark или намеренно уязвимую ВМ, такую как Lin.Security от VulnHub.
Эксперименты структурированы в use-cases. Каждый из них становится подкомандой wintermute. В настоящее время фреймворк поставляет следующие:
| Команда | Описание |
|---|---|
MinimalPrivEscLinux | Минимальное повышение привилегий в Linux размером ~20 строк. Каждый раунд шаблонизирует всю историю в один промпт и извлекает голую команду из ответа (классический цикл hackingBuddyGPT). Отличная отправная точка — см. Build your own use-case. |
MinimalToolCallPrivEscLinux | Близнец предыдущего с вызовом инструментов: ведёт реальную историю чата и управляет целью через function calling. Его инструмент task_solved проверяется по ground truth, поэтому галлюцинированное или уступчивое «got root» не может засчитать ложный успех. |
PrivEscLinux | Полнофункциональное стратегическое повышение привилегий в Linux с опциональной генерацией с дополнением из поиска (--rag_path), цепочкой рассуждений (--enable_cot), отслеживанием состояния и структурированным руководством. |
PrivEscWindows | Стратегическое повышение привилегий в Windows, управляющее целью через psexec вместо SSH. |
ExPrivEscLinuxLSE | Сначала запускает lse.sh на цели, превращает его вывод в подсказки, затем организует PrivEscLinux для каждой подсказки — пример use-case, который вызывает другой use-case. |
| Команда | Описание |
|---|---|
WebTestingWithExplanation | Автономно тестирует веб-страницу по HTTP, позволяя LLM «проговаривать» свои рассуждения; включает возможность пентеста по плейбуку в стиле OWASP. |
WebTestingWithShell | Веб-тестирование с доступом к оболочке на атакующей машине в стиле Kali. |
AdvancedWebTesting | Агент верхнего уровня без прямого доступа к цели, который делегирует работу ограниченным субагентам через возможность субагентов. |
| Команда | Описание |
|---|---|
WebAPITesting | Определяет поверхность цели — спецификацию OpenAPI или карту сайта — затем проводит пентест REST API. Работает в --mode document (построить спецификацию), test (пентест известной поверхности) или auto (оба). |
| Команда | Описание |
|---|---|
AD | Автономный пентест Active Directory по сценарию assumed-breach с помощью LLM, портированный из атакующего инструмента cochise. Использует дизайн planner/executor: постоянный стратегический планировщик поддерживает дерево задач и общую базу знаний, делегируя каждую задачу свежему тактическому исполнителю без памяти. |
--limits.max_rounds/max_tokens/max_cost/max_duration).llm.model — OpenAI, OpenRouter (эндпоинт по умолчанию), Anthropic, Azure, локальный Ollama и другие. Направляйте API-трафик через перехватывающий прокси (Burp/mitmproxy) с помощью --llm.proxy.asyncio.Требования: Python 3.13+. Проект использует бэкенд сборки uv; мы рекомендуем uv для управления окружением, но обычный python -m venv + pip тоже подойдёт.
git clone https://github.com/ipa-lab/hackingBuddyGPT.git
cd hackingBuddyGPT
# option A (recommended): uv creates .venv and installs the project
uv sync
source .venv/bin/activate
# option B: a plain virtual environment + pip
python -m venv venv && source ./venv/bin/activate
pip install -e .