INTRO

Всем привет! Если вы хоть раз ловили себя на мысли, что устали от рутины однотипных действий при проведении пентеста или, что после N-го часа пентеста потеряли нить атаки — эта статья для вас. Пентест редко выглядит как «нашёл уязвимость → заэксплойтил → победил». Чаще это хаотичный процесс из десятков тулов, заметок, логов и гипотез, где легко утонуть в деталях.

На этом фоне всё чаще и чаще звучат идеи внедрения AI‑агентов в работу пентестеров, но не в виде кнопки «взломать всё», а в виде универсального помощника для автоматизации рутины и роста общей эффективности процессов.

В этой статье разберём:

  • что такое HexStrike AI и как он появился в Kali Linux;

  • что такое OpenCode и зачем его интегрировать с HexStrike AI;

  • очень подробно разберём установку и интеграцию этих инструментов между собой ну и, конечно же, испытаем.

Краткая история

Сначала появились классические LLM‑чаты и они хороши как справочники формата «вопрос - ответ», но такой формат не подходит для реальной работы пентестера: LLM‑чаты не держали длинный контекст, не могли самостоятельно вызывать инструменты и не видели, что сейчас происходит в процессе.

Потом появились AI‑агенты — программы, которые:

  • принимают на вход цель, а не один вопрос;

  • строят планы и анализируют результаты;

  • корректируют стратегию по мере работы.

Но их главный недостаток был в том, что они не могли (или это было очень неудобно) в своей работе использовать различные доступные программы и инструменты.

Так было до тех пор, пока Anthropic 25 ноября 2024 года не выпустили Model Context Protocol (MCP) как открытый стандарт и open-source проект для интеграции больших языковых моделей с внешними данными и инструментами. Благодаря MCP, LLM превращаются из «говорящих справочников» в «операторов», способных работать в реальных средах.

С тех пор происходит бум развития и внедрения MCP куда только можно.

Но прежде чем продолжим...


ВАЖНО!

Все материалы данной статьи носят исключительно образовательный характер. Любые действия, связанные с анализом защищённости, тестированием на проникновение или доступом к компьютерной информации без явного согласия владельца ресурса или соответствующих полномочий могут быть квалифицированы как правонарушение в соответствии с законодательством Российской Федерации. В частности, Уголовный кодекс РФ предусматривает ответственность за неправомерный доступ к охраняемой законом компьютерной информации (статья 272 УК РФ) — вплоть до уголовной ответственности за деяния, совершённые без согласия правообладателя информации.

Пожалуйста, всегда действуйте очень осторожно, обдуманно и только в рамках закона!


HexStrike AI

HexStrike AI — AI‑платформа, которая помогает анализировать поверхность атаки, выстраивать логичные цепочки действий и пр. благодаря возможности использования множества специализированных инструментов кибербезопасности.

В сентябре 2025 года HexStrike AI появился в официальных репозиториях Kali Linux, что стало заметным событием для сообщества offensive security. Дальнейшие обновления и патчи были добавлены в октябре‑ноябре 2025, включая улучшения MCP.

Инструментарий HexStrike Ai
Инструментарий HexStrike Ai

Кроме того, метапакеты kali‑meta и kali‑menu были обновлены так, чтобы включить HexStrike AI в общее меню инструментов, что говорит о его доступности как полноценного инструмента дистрибутива. Официально об этом объявили 12 декабря 2025 в пресс-релизе Kali Linux 2025.4.

OpenCode

Поскольку мы хотим заниматься именно Vibe Pentesting, нам нужна соответствующая среда. Как указано на сайте: OpenCode - The open source AI coding agent. Проект создаётся, как свободный аналог Claude Code, который, в свою очередь, сейчас является лидирующим проектом в Vibe Coding, но он очень дорогой.

Что ещё важно для нас, цитирую:

OpenCode uses the AI SDK and Models.dev to support 75+ LLM providers and it supports running local models.

Из коробки доступны несколько бесплатных моделей, например GLM 4.7, которая очень хороша в кодинге, согласно бенчам. В общем, минусов в проекте за время использования я пока не обнаружил. OpenCode очень активно развивается - новые релизы выходят практически каждый день.

ВАЖНО: С недавнего времени доступ к бесплатным моделям не работает с российских IP. Для их использования нужно получить иностранный IP-адрес.

Но зачем нам интеграция OpenCode и HexStrike AI, спросите вы?

OpenCode отлично расширяет и дополняет функционал HexStrike AI:

  • OpenCode - это удобный интерфейс взаимодействия с HexStrike AI;

  • В процессе пентеста часто приходится писать различные скрипты, например, для автоматизации перебора. OpenCode отлично сам с этим справляется, что повышает эффективность процесса;

  • OpenCode может взаимодействовать с локальной файловой системой. Например, он в процессе пентеста, с вашего разрешения, может сам установить дополнительный необходимый инструмент;

  • Мы можем расширять функциональность и свои возможности с помощью подключения и использования других дополнительных MCP к OpenCode.

Установка и базовая настройка

Перед началом давайте полностью обновим систему:

sudo apt update && sudo apt full-upgrade -y

Давайте убедимся, что наша версия Kali linux 2025.4 или выше:

lsb_release -a
У нас версия 2025.4
У нас версия 2025.4

Установим HexStrike AI:

sudo apt install hexstrike-ai

После установки в главном меню должна появиться соответствующая иконка:

Теперь установим OpenCode. Команду для установки берём с сайта проекта:

curl -fsSL https://opencode.ai/install | bash
Процесс установки OpenCode
Процесс установки OpenCode

После окончания установки OpenCode, чтобы приступить к следующим шагам, нужно обязательно перезагрузиться!

Следующий шаг только для тех, у кого нет платного доступа к каким-то крупным AI-операторам (OpenAI, Copilot, Gemini пр..). Если у вас есть действующая платная подписка, пропускаем этот шаг, если никакой подписки нет, то идём на сайт OpenCode и переходим в Zen.

Zen - специализированный провайдер моделей ИИ, подготовленный командой OpenCode, который предоставляет отобранный набор протестированных и оптимизированных моделей, хорошо работающих с кодирующими агентами (coding agents).

Внутри Zen проходим регистрацию и в разделе "API-Keys" создаём себе ключ и копируем его в буфер.

Создание API-ключа Zen
Создание API-ключа Zen

Теперь открываем терминал и вводим:

opencode auth login

Откроется меню выбора AI-провайдеров:

Я выбираю Zen, но, как писал выше, если у вас есть соответствующая платная подписка, используйте ее. Выбираем Zen -> Enter. Вводим свой API-ключ и снова Enter. Готово.

Мы всё установили. Теперь давайте соединим HexStrike AI и Opencode.

Интеграция

Надо всё же сказать, что над этой настройкой мне пришлось посидеть и поэкспериментировать несколько часов, потому что всё очень неочевидно. Самое интересное, что я нигде не нашёл информации в интернете как это сделать. Поэтому эта инструкция - уникальная информация на текущий момент.

Находим папку где установлен HexStrike AI. У меня (думаю и у вас) он установился в /usr/share/hexstrike-ai/.

Открываем терминал и переходим в эту папку:

В папке лежит 2 ключевых файла, которые нужны для запуска HexStrike AI: hexstrike_server.py и hexstrike_mcp.py.

Сначала запускаем сервер. В том же окне терминала пишем:

python3 hexstrike_server.py
Сервер запущен на 127.0.0.1:8888
Сервер запущен на 127.0.0.1:8888

Давайте проверим и зайдём на endpoint проверки состояния сервера. Вводим в браузере: http://127.0.0.1:8888/health

Должна открыться диагностическая страница:

Сервер "здоров"
Сервер "здоров"

Открываем новое окно терминала.

Важно! Окно терминала, где запускали сервер не закрываем, иначе сервер закроется.

Переходим снова в папку, где установлен HexStrike Ai и запускаем MCP:

python3 hexstrike_mcp.py
MCP запущен
MCP запущен

Если всё сделано правильно, то вы увидите то, что на картинке выше.

Вот такой порядок запуска HexStrike AI MCP (сначала сервер, затем MCP). Мы просто это запомним на будущее. Важно было убедиться, что у нас всё установлено верно и работает. Теперь можно закрыть все окна терминала и браузер. Давайте автоматизируем запуск HexStrike Ai скриптом.

В папке, в которой установлен HexStrike Ai, открываем терминал и создаём там скрипт sh, в котором пропишем порядок запуска MCP:

# переключимся в root
sudo su

# Создаём файл
touch OpenCodeStart.sh

# даём права на исполнение
chmod +x OpenCodeStart.sh

# (опционально) открываем его в редакторе
nano OpenCodeStart.sh
# или
vim OpenCodeStart.sh

# Или в любом другом

Теперь внутри файла прописываем:

# Указываем, что скрипт должен выполняться интерпретатором bash
!/bin/bash

# Проверяем, запущен ли сервер (hexstrike_server.py). Если уже запущен, то второй раз не запускаем
if ! pgrep -f "hexstrike_server.py" > /dev/null; then
    # pgrep -f ищет процесс по имени/части командной строки
    # > /dev/null — убираем вывод
    # ! — если процесс НЕ найден

    nohup python3 /usr/share/hexstrike-ai/hexstrike_server.py \
        > /tmp/hexstrike_server.log 2>&1 &
    # Запускаем сервер в фоне:
    # nohup — процесс не завершится при закрытии терминала
    # stdout пишем в лог-файл
    # 2>&1 — stderr тоже пишем туда же
    # & — фоновый режим

    sleep 2
    # Ждём 2 секунды, чтобы сервер успел корректно стартовать
fi

# Запускаем MCP-клиент — он подключается к локальному MCP-серверу по HTTP
python3 /usr/share/hexstrike-ai/hexstrike_mcp.py

Логику и структуру файла я подробно описал комментами. Сохраняем и закрываем файл.

Переходим к настройке OpenCode.

Переходим в папку ".opencode". Если вы ничего не меняли и устанавливали как я, то эта папка будет тут: /home/kali/.opencode.

Открываем терминал в этой папке и создаём там файл, в котором пропишем настройки нашего MCP:

# переключимся в root
sudo su

# Создаём файл
touch opencode.jsonc

# (опционально) открываем его в редакторе
nano opencode.jsonc
# или
vim opencode.jsonc

# Или в любом другом

В файле прописываем следующие настройки:

{
 "$schema": "https://opencode.ai/config.json",
 "mcp": {
   "hexstrike": {
     "type": "local",
     "command": ["bash", "/usr/share/hexstrike-ai/OpenCodeStart.sh"],
     "timeout": 10000,
     "enabled": true
   }
 }
}

Тут логика следующая: мы объявляем локальный (HexStrike Ai у нас установлен локально) MCP-сервер с именем "hexstrike". Для его запуска используем написанный нами выше скрипт. Устанавливаем таймаут, чтобы сервер успел запуститься. Тут важно, что время я подобрал экспериментально, т.к. если дать мало времени, то сервер в итоге запустится, но OpenCode его не будет видеть. "enabled": true означает, что MCP активируется при запуске OpenCode. Если поставить false, то его нужно будет запускать вручную из интерфейса OpenCode каждый раз, когда он нам будет нужен.

Сохраняем и закрываем файл.

Почти всё. Всё закрываем. Открываем новый терминал, вводим opencode и если мы всё сделали правильно, то увидим:

1 MCP говорит нам о том, что мы подключили mcp HexStrike AI корректно.
1 MCP говорит нам о том, что мы подключили mcp HexStrike AI корректно.

Последнее, что делаем, в окне OpenCode вбиваем /models -> Enter. Мы увидим перечень доступных моделей. Те, которые бесплатные помечены как "Free". Я чаще всего работаю с GLM-4.7. Она хороша, но из-за этого она очень часто перегружена и работает медленно. Пробуйте разные модели.

Тестирование

Ну что ж, давайте уже испытаем возможности бандла, который мы настроили. Для тестов я взял CTF-площадку https://ctf.bug-makers.ru/. Площадка построена на CTFd, её логика очень проста для понимания и освоения даже новичками. Надеюсь, БАГодельня не будут против, что я с такой целью использовал их ресурс.

Простыми задачами трудно доказать всю крутость нашего инструмента, поэтому для теста я взял самую сложную задачу категории WEB, дающую аж 455 баллов.

Для решения, я скопировал текст задачи с адресом стенда в буфер, открыл OpenCode, убедился, что HexStrike AI MCP подключен и работает и написал:

Нужно решить CTF-задачу.
Вот её текст: [Тут CTRL+V скопированного текста задачи]. 
Покажи полный ход её решения. 
Все рассуждения и итоговый отчёт должны быть на русском языке
Use hexstrike

Я специально написал запрос очень простым языком, без всякого ПРОМТ-инжиниринга, чтобы показать, что даже с такими запросами система работает. Но, конечно же, знать правила правильного написания эффективных промтов очень важно, потому что, опять же, это сильно влияет на качество и скорость получения результата.

Давайте посмотрим что получилось:

5 мин. 43 сек. потребовалось для решения. Флаг найден в явном виде, хотя мы нигде не писали, что результатом решения CTF-задачи является флаг. Полностью описан алгоритм. Удивительно конечно!

Минусы и нюансы

Есть ли минусы? Конечно есть:

  1. Плохо то, что для использования бесплатных моделей нужен VPN;

  2. Я не уверен, что тот способ интеграции, который я реализовал, он самый правильный и оптимальный. Если знаете как лучше, напишите в комментах;

  3. Бесплатные модели в Zen часто перегружены, что приводит к большим задержкам и модель теряет контекст. Приходится перезапускать задачу.

Итог

Меня полученный результат сильно вдохновил! Уверен, что и вас тоже! Мы получили инструмент существенного повышения собственной эффективности и производительности, который может вывести наши знания и наши результаты на новый уровень!

Да, конечно CTF-соревнования сейчас станет проводить гораздо сложнее, но такой он - новый AI-мир!

Я планирую и дальше развивать тему Vibe Pentesting и у меня уже есть план на ближайшие 2-3 статьи. Поэтому, если вам понравилась эта статья, подписывайтесь, поставьте мне лайк и напишите в комменты — а что вы думаете по этому поводу?

Ну и приходите ко мне в мой Телеграм, где я пишу про кибербез.

Комментарии (0)