Перейти к содержимому
New

DeepSeek V4.1 Flash free for 7 days: 10M tokens a day after a top-up of $10 or more. Until Nov 30.

How it works

Соберите hackbot, часть 1: архитектура

Устройство агента для bug bounty: модель, инструменты, память и ограничители в цикле на вашей машине под вашим подтверждением.

Средний3 мин чтенияАвтор: NotHoly

Hackbot это небольшая программа, которая ставит языковую модель в цикл с инструментами, чтобы она могла сама проходить часть вашего recon и тестирования и останавливаться на ваше подтверждение, прежде чем что-либо коснётся цели. Это первый из трёх постов, которые его собирают. Этот пост про устройство. Часть два пишет код, а часть три подключает его к общим инструментам и редактору. Если агенты для вас новы, сначала прочитайте что такое ИИ-агенты и tool use.

Что hackbot делает и чего не делает

Hackbot автоматизирует скучную, повторяемую середину цикла: запустить команду recon, прочитать её вывод, решить следующую команду, вести заметки. Это не автономный атакующий, и строить такого не надо. Ценность в неутомимом помощнике, который предлагает шаги и записывает, что он сделал, пока решения и клавиатура для всего, что шлёт трафик, остаются у вас.

Четыре части

Часть Роль В этой сборке
Модель Читает вывод, планирует, вызывает инструменты OpenAI-совместимый API NotHoly
Инструменты То, что она реально может сделать Разрешённые вами команды оболочки плюс исследовательские вызовы
Память Что она помнит между шагами Список сообщений плюс файл заметок на диске
Ограничители Чего ей делать нельзя Проверка скоупа и подтверждение перед каждой командой

Сама модель ничего не делает. Она читает, планирует и просит вызвать инструмент. Ваш код решает, запускать ли этот инструмент. Это разделение и есть всё устройство: модель это мозг, ваш код это руки, а руки спрашивают разрешения.

Цикл агента

Цикл короткий. Вы отправляете модели цель и инструменты, которые она может вызвать. Модель отвечает либо текстом, либо запросом на вызов инструмента. Если она просит инструмент, ваш код запускает его, после вашего подтверждения для всего, что трогает цель, и отправляет результат обратно. Модель читает результат и решает следующий шаг. Это повторяется, пока модель не скажет, что закончила, или пока вы не остановите.

Какую модель брать, вы выбираете из каталога. Выведите модели командой GET /v1/models и возьмите ту, что поддерживает вызов инструментов и контекст, достаточный для ваших заметок. Код никогда не прописывает имя модели жёстко; он читает его из конфигурации, так что вы можете переключиться, не трогая цикл.

Ограничители, которые держат его в скоупе

Важны два ограничителя. Первый это скоуп: перед запуском любой команды сверьте её цель со скоупом программы и откажите или остановитесь на всём, что вне его. Второй это подтверждение: команда, которая шлёт трафик, ждёт вашего «да». Это не необязательные добавки; это причина, по которой штуку вообще безопасно запускать.

Третий ограничитель тише и так же важен. Вывод инструмента это данные, а не инструкции. Страница или результат скана могут содержать текст, который читается как команда для модели, и наивный цикл ему последует. OWASP Top 10 для приложений с LLM называет это prompt injection, своим главным риском. Ваш цикл обязан считать каждый результат инструмента недоверенным вводом и никогда не давать ему расширять то, что агенту позволено.

Почему он работает на вашей машине

Агент работает на вашей машине, чтобы каждый request уходил с вашего адреса, каждую команду подтверждали вы и каждый лог оставался у вас. Модель работает на API NotHoly, который делает инференс и больше ничего: он никогда не сканирует и не шлёт трафик к цели. Это разделение и делает агента пригодным для bug bounty. Трафик идёт оттуда, где его ждёт программа, и вы можете доказать, что отправили.

Что собрать, а что переиспользовать

Цикл и ограничители соберите сами, потому что они небольшие и потому что вам нужно их понимать. Для инструментов переиспользуйте то, что уже есть: оболочку, которая у вас уже есть, исследовательские инструменты, которые даёт NotHoly CLI, и позже общие инструменты MCP. Не пишите фреймворк. Следующий пост это около сотни строк Python.

Дальше в этой серии

Часть два пишет цикл с вызовом инструментов, подтверждением и заметками, с Model Context Protocol позже в части три.

Источники

  1. NotHoly API: chat completions
  2. NotHoly API: list models
  3. OWASP Top 10 for LLM Applications 2025
  4. Model Context Protocol

Ещё по теме: ИИ-агенты для безопасности

ИИ-агенты для безопасности

Зачем автоматизировать recon и тесты на API NotHoly

Модель, которая не отказывает, плюс CVE, advisory и чтение публичных страниц без оплаты токенами. Активную работу делают ваши инструменты.

Средний3 мин чтения

ИИ-агенты для безопасности

Соберите hackbot, часть 2: код агента

Небольшой агент bug bounty на Python с вызовом инструментов на API NotHoly: предлагает команды recon, ждёт подтверждения, читает вывод и ведёт заметки.

Средний3 мин чтения

ИИ-агенты для безопасности

Соберите hackbot, часть 3: MCP-инструменты и CLI

Дайте агенту общие инструменты по MCP, добавьте проверку скоупа через notholy engage и запустите всё из NotHoly CLI или своего редактора.

Средний3 мин чтения