INTROВсем привет!В первой статье я рассказал вам о том, как настроить интеграцию HexStrike-AI и OpenCode, чтобы получить инструмент для занятий настоящим вайб-пINTROВсем привет!В первой статье я рассказал вам о том, как настроить интеграцию HexStrike-AI и OpenCode, чтобы получить инструмент для занятий настоящим вайб-п

Может ли AI-агент решить всю CTF-площадку?

eb5cb56d16faed0323e9a282b7ac1099.jpg

INTRO

Всем привет!

В первой статье я рассказал вам о том, как настроить интеграцию HexStrike-AI и OpenCode, чтобы получить инструмент для занятий настоящим вайб-пентестом. Мы всё настроили, испытали на одной из CTF-задач и получили, имхо, фантастический результат. Более того, все используемые компоненты - Open Source, а OpenCode предлагает несколько бесплатных AI-моделей для использования, что позволяет настроить и использовать эти инструменты каждому! Прошло почти 2 недели после первой статьи и в этой я хочу поделиться своими мыслями, найденными проблемами, а также мы продолжим улучшать наш инструментарий, работая над простой идеей.

Идея: Инструмент решения отдельных CTF-задач у нас есть, а можно ли и, если да, то как автоматизировать решение сразу всех задач CTF-площадки? Также, в процессе, я покажу несколько неочевидных, на первый взгляд, кейсов использования OpenCode.

Как думаете, сейчас это реально? Интересно? Тогда давайте делать! Но прежде, как и в первой статье:


ВАЖНО!

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

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


Мои мысли после 2 недель использования и экспериментов

Произошёл какой-то перелом в скорости разработки. Посмотрите на то, как обновляется OpenCode:

0d9ee9da81557430501506e287a21293.jpg

По несколько релизов в день! Я сделал вывод, что к подобной скорости изменений нужно привыкать! В подтверждение своего вывода, я приведу скрин поста CEO Vercel, который пишет о том, что на их платформе хостинга скиллов для AI-агентов каждый час добавляется 550 новых скиллов!

991f652febf3d7be48d6e41461058e83.jpg

Скорости развития просто поразительные! Но давайте к сути.

Даём OpenCode доступ к браузеру

Мы с вами говорим о максимальной автоматизации решения CTF. Первое, что нужно сделать - это дать возможность OpenCode работать с браузером. Нам нужно, чтобы OpenCode:

  • Мог сам находить задания на CTF-площадке;

  • Если в задании есть файл, он должен иметь возможность сам его скачать;

  • После решения задачи он должен сам вставить найденный флаг и подтвердить решение задачи.

Для решения этих задач будем использовать Crome DevTools MCP.

dcca400af2649d94d5c4d2c7a806dd53.jpg

Как видно на скриншоте, это то, что нам и нужно! Ниже описаны требования для установки:

2e014dc021c88c24fd2613cc661c0f62.jpg

Но тут давайте мы остановимся и осознаем одну не самую очевидную вещь: мы установили и настроили OpenCode - AI-агента для разработки и пентеста. А почему бы нам его не использовать в т. ч. для установки необходимого окружения? Вайб-инсталляция возможна?

Открываем OpenCode.

Переходим в режим Plan и задаём агенту простой вопрос
Переходим в режим Plan и задаём агенту простой вопрос

Отдельно хочу сказать, что по умолчанию в OpenCode есть 2 агента, или 2 режима работы: Plan и Build. Переключение между ними осуществляется клавишей TAB.

Plan - режим, который служит для планирования (окно агента становится фиолетовым). Ключевое - агент не имеет доступ на создание файлов и запись.

Build - режим, при котором агент имеет доступ к вашей файловой системе на создание и запись (окно агента синего цвета).

Переходим в режим Plan и задаём агенту вопрос, см. скриншот выше. По итогу я получил следующий ответ:

80e8a8f04d9e035a58121504bcd1a699.jpg

Тут всё логично: Node.js пришел как зависимость при обновлении Kali Linux. Давайте попробуем разрешить corepack. Тут, поскольку нам для установки потребуется root-пароль, я установил npm в отдельном терминале:

b2cd71c8eac278f05cc982f678c0c260.jpg

Опять просим OpenCode проверить, корректно ли установлены node и npm?

Всё корректно
Всё корректно

Теперь в OpenCode с помощью команды /new открываем новую сессию и пишем:

Спустя какое-то время получаем результат:

ef839b1cdc46d625fccd6cff0cf74a12.jpg

Чтобы проверить и убедиться, закрываем и снова открываем OpenCode. Вводим команду /mcps и видим, что второй наш MCP установлен корректно.

Chrome DevTools MCP установлен и настроен
Chrome DevTools MCP установлен и настроен

Основная часть

Теперь наш агент может работать с браузером. Для наших экспериментов мы продолжим использовать CTF-площадку https://ctf.bug-makers.ru/, тем более, что после первой статьи мне написали её представители и сказали, что не против моих экспериментов.

Карточка задачи
Карточка задачи

Логика эксперимент следующая: Берём все задачи определённой категории (я взял WEB, т.к. у нас всё же пентест в приоритете) и просим агента решить все задачи из этой категории. Как я писал в первой статье, промпт (текстовый запрос к агенту) очень важен, т.к. чем более детально вы опишите задачу, тем лучше и быстрее агент её выполнит. После нескольких попыток, я сформировал следующий запрос:

Тебе необходимо решить все задачи категории WEB с https://ctf.bug-makers.ru/challenges. Будь внимателен, в этой категории сейчас 18 задач, те, которые отмечены зелёным - решены. Полное задание бери из карточки задачи. В некоторых заданиях приложены файлы, которые должны помочь решить задание. Файлы скачивай и используй для решения. Когда задача решена и найден флаг, то внеси его в карточку соответсвующией задачи в поле Флаг и нажми кнопку Отправить. Если флаг корректный, то карточка задачи становится зелёной и задача считается решённой Use chrome-devtools Use hexstrike

После старта, агент попросит вас авторизоваться на площадке ну и начнёт работу. Этому эксперименту я посвятил 4 часа и вот что у меня получилось:

Результат и выводы

Чтобы вас не томить, вот что получилось за 4 часа:

4968961af831f9e190a1a0752675c016.jpg

8 решённых задач. После этого я остановил эксперимент.

Основной вывод: Подход, когда мы вот так топорно 1 запросом просим решить агента все задачи - не работает!

Проблемы:

! Агент, спустя какое-то время, начинает терять контекст своих рассуждений. Приходится его останавливать и поправлять (именно поэтому я ограничил в эксперименте категорию задач только задачами WEB).

! OpenCode плохо работает с внешними MCP, ответ которых большой и требует времени. Это делает невозможным использование многих важных инструментов HexStrike, потому что они всегда падают с таймаутом.

a4d0296312553d70807488ef024469d0.jpg

Это ошибка именно в OpenCode, т.к. именно он не дожидается ответа от MCP. Надеюсь, эту ошибку скоро исправят.

Что хорошо:

! Несмотря ни на что, 3 из этих 8 задач были решены полностью автоматически. 2 задачи Агент не смог решить сам, но решил сразу после того, как я указал ему на то, как лучше сделать.

! 1 задачу агент не смог решить с первого раза, но решил сам со второго раза, когда сам же к ней вернулся спустя какое-то время.

! В процессе решения агент перебирает очень много разных вариантов. Он не устаёт и не жалуется.

Итог

  • В настоящее время данные инструменты не способны полностью автоматизировать работу пентестера. Но! Это - прекрасный ассистент, которой экономит кучу времени на рутинных задачах.

  • Контекст часто теряется, поэтому CTF-задачи лучше решать отдельно по одной и лучше сразу при постановке задачи указывать агенту на что стоит обратить внимание в первую очередь.

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

  • Есть ошибка OpenCode, связанная с таймаутом, которая не позволяет ему в полной мере использовать инструментарий HexStrike. Будем ждать её решения разработчиками.

  • Всё очень быстро развивается! Обещают выпустить 7 версию HexStrike, OpenCode обновляется каждый день! Думаю, что уже летом этого года результаты будут принципиально лучше!

Если вам понравилась эта статья, подписывайтесь, поставьте мне лайк и напишите ваши мысли в комменты.

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

Источник

Отказ от ответственности: Статьи, размещенные на этом веб-сайте, взяты из общедоступных источников и предоставляются исключительно в информационных целях. Они не обязательно отражают точку зрения MEXC. Все права принадлежат первоисточникам. Если вы считаете, что какой-либо контент нарушает права третьих лиц, пожалуйста, обратитесь по адресу service@support.mexc.com для его удаления. MEXC не дает никаких гарантий в отношении точности, полноты или своевременности контента и не несет ответственности за любые действия, предпринятые на основе предоставленной информации. Контент не является финансовой, юридической или иной профессиональной консультацией и не должен рассматриваться как рекомендация или одобрение со стороны MEXC.

Вам также может быть интересно

Криптокомитет Fairshake накопил $193 млн на политические кампании перед выборами в США

Криптокомитет Fairshake накопил $193 млн на политические кампании перед выборами в США

Комитет политических действий Fairshake заявил о наличии $193 млн в преддверии очередных выборов в США. Об этом пишет Axios, со ссылкой на слова представителя о
Поделиться
Incrypted2026/01/29 18:31
Центробанк ОАЭ одобрил запуск долларового стейблкоина USDU

Центробанк ОАЭ одобрил запуск долларового стейблкоина USDU

Главное: USDU стал первым USD-стейблкоином, одобренным Центробанком ОАЭ. Резервы хранятся 1:1 на счетах в крупнейших банках страны. Стейблкоин разрешен для
Поделиться
ProBlockChain2026/01/29 13:50
От 2 триллионов до 400 триллионов долларов? Генеральный директор предвидит рост Биткоина в 200 раз

От 2 триллионов до 400 триллионов долларов? Генеральный директор предвидит рост Биткоина в 200 раз

Пост От 2 триллионов до 400 триллионов долларов? Генеральный директор предвидит рост Биткоина в 200 раз появился на BitcoinEthereumNews.com. Говорят, что журналисты никогда по-настоящему не отключаются от работы. Но для Кристиана это не просто метафора, это образ жизни. Днем он ориентируется в постоянно меняющихся течениях рынка криптовалют, владея словами как опытный редактор и создавая статьи, которые расшифровывают жаргон для масс. Когда же компьютер переходит в режим гибернации, его занятия принимают более механический (и иногда философский) оборот. Путешествие Кристиана с письменным словом началось задолго до эпохи Биткоина. В священных залах академии он оттачивал свое мастерство как автор статей для студенческой газеты. Эта ранняя любовь к рассказыванию историй проложила путь к успешной работе редактором в фирме по обработке данных, где победа в конкурсе эссе в первый месяц финансировала многомесячный запас лакомств для собак и кошек – свидетельство его преданности пушистым компаньонам (об этом позже). Затем Кристиан путешествовал по миру журналистики, работая в газетах в Канаде и даже в Южной Корее. В конце концов он осел в местном новостном гиганте в своем родном городе на Филиппинах на десятилетие, став настоящим новостным наркоманом. Но затем что-то новое привлекло его внимание: криптовалюта. Это было похоже на охоту за сокровищами, смешанную с рассказыванием историй – как раз по его части! Так он получил отличную работу в NewsBTC, где он является одним из главных специалистов по всему, что связано с криптоактивами. Он разбивает эти запутанные вещи на небольшие части, делая их понятными для каждого (он отдает честь своей управленческой команде за обучение этому навыку). Думаете, Кристиан только работает и не играет? Ни за что! Когда он не за компьютером, вы найдете его предающимся своей страсти к мотоциклам. Настоящий механик, Кристиан любит возиться со своим мотоциклом и наслаждаться радостью открытой дороги на своем Yamaha R3 объемом 320 куб. см. Когда-то лихач, который разогнался...
Поделиться
BitcoinEthereumNews2025/09/19 02:51