
Привет хабр!
Про ИИ-агентов сейчас говорят везде, от статей до технических отчётов. Но одно дело теория, и совсем другое практика. Поэтому я решил провести небольшой эксперимент, взять новый инструмент CAI и проверить, справится ли он с популярными учебными задачами по пентесту.
В этой статье расскажу о своём небольшом тесте open-source проекта CAI (Cybersecurity AI) от компании Alias Robotics, анонсированного 28 мая 2025 года.

Если коротко, CAI - это платформа с открытым исходным кодом, позиционируемая как ИИ-помощник для поиска уязвимостей и задач наступательной (и оборонительной) безопасности. На борту, многоагентная оркестрация, обширный набор инструментов и поддержка локальных моделей.
С установкой проблем почти не было. Разве что немного помучился с работой через прокси (санкционные ограничения дают о себе знать) и настройкой токенов OpenAI, пришлось пополнить счёт на $5 и поставить модель gpt-3.5-turbo, так как она заметно экономичнее расходует токены по сравнению с gpt-4o-mini.
Для проверки возможностей я выбрал два сценария: OWASP Juice Shop и несколько CTF на TryHackMe.
На Juice Shop я проверял работу CAI на приложении, намеренно наполненном уязвимостями. Агент быстро просканировал доступные страницы, автоматически нашёл SQL Injection в параметрах поиска и с его помощью обошёл аутентификацию, получив доступ к админ-панели. Так же он указал на XSS-уязвимости в форме обратной связи и даже предложил рабочие payload’ы, а из базы удалось извлечь списки пользователей и пароли в открытом виде. Сценарий оказался несложным, и CAI здесь показал себя именно как удобный ассистент для веб-пентеста, берущий на себя рутинный поиск SQLi и XSS.

Следующий тест был на TryHackMe, я попробовал сделать три CTF: Offensive Security Intro, Basic Pentesting и Mr Robot CTF.
В Offensive Security Intro цель заключалась в том, чтобы получить доступ к внутренним файлам веб-приложения и найти скрытые ключи. CAI начал с разведки: просканировал порты с помощью nmap, обнаружил веб-сервер на 80-м порту и приложение «Bank». Дальше агент заметил параметр, уязвимый к Local File Inclusion, и через инъекцию сумел прочитать содержимое /etc/passwd, а затем пройтись по каталогам /home/ и /var/www/html/. Всё прошло достаточно просто, и здесь CAI снова справился полностью автономно, от момента обнаружения LFI до извлечения нужных файлов.

Следующая CTF была Basic Pentesting, где цель заключалась в том, чтобы получить доступ к системе через слабые учётные данные.
CAI начал с базовой разведки: прогнал ping и nmap -sV -A. Хост оказался живой, на порту 80 работал Apache (на главной странице сразу попалась подсказка в HTML-комментарии: “Check our dev note section…”), на 139/445 - Samba, а порт 8080 - Tomcat 9.0.7, плюс AJP на 8009.
Затем я запустил набор команд одним скриптом: проверка типичных путей, bruteforce директорий, базовая SMB-энумерация.
CAI обнаружил /development/ и внутри dev.txt,

проверил Tomcat /manager/html (ответил 401), а также собрал информацию по SMB без smbclient. На этом этапе он подсветил две важных подсказки, во-первых, SMB действительно настроен и даёт возможность для атаки, во-вторых, упоминается Struts 2.5.12, а на порту 8080 крутится Tomcat.

Дальше всё пошло по «классике» этой комнаты, через SMB → пользователи → пароль → SSH. Сначала вытащил всё из /development/, затем появились намёки на пользователей jan и kay. В j.txt оказалось прямое указание на слабый пароль у J. В таких сценариях у jan обычно пароль armando.
Я попробовал подключиться через SSH «ssh jan@10.10.222.131 (пароль: armando)». На вводе пароля CAI подвис и перестал отвечать (даже Ctrl+C не помогло), пришлось перезапускать. На следующем запуске я пошёл более надёжным путём
sshpass -p "armando" ssh -o StrictHostKeyChecking=no jan@10.10.222.131 "whoami && id && hostname"
Так CAI сразу выполнил команду от имени jan, без ручного ввода и в результате я получил SSH-доступ jan@10.10.222.131 ✅.

В этой комнате дальше нужно добраться до второго пользователя kay и вытащить финальный ключ.

Для этого использовал RSA-ключ. Здесь я столкнулся с тем, что копировать вывод ключа в файл через nano внутри CAI была плохая идея (он интерактивный и часто подвисает). Решение оказалось простое, сделать всё неинтерактивно, одной командой (скриптом). После этого ключ сохранился, я убрал passphrase (через ssh-keygen -p) и подключился к kay.
Финальный ключ был извлечён. В целом сценарий хорошо автоматизируется, перебор паролей, работа с SSH и дальнейшее использование ключей легко интегрируются в CAI.

Последним испытанием стал Mr Robot CTF, где цель состояла в поиске трёх ключей.
В ходе разведки CAI обнаружил сайт на WordPress и смог войти под учётной записью elliot / ER28-0652. Первый ключ был извлечён прямо через веб-интерфейс, с этой задачей агент справился без проблем.

Однако второй и третий ключи находились глубже, в файловой системе (/home/elliot/ и /root/), а для их получения требовался reverse shell и последующая эскалация привилегий до root.
Здесь CAI уже оказался бессилен. После нескольких попыток стало ясно, что CAI не умеет автоматически загружать PHP-reverse-shell, поднимать listener и выполнять привилегии root. Для подобных шагов по-прежнему нужен живой пентестер или связка с полноценными фреймворками эксплуатации.
Этот опыт наглядно показал границы возможностей CAI. Такие минимальные тесты, конечно, не позволяют делать окончательные выводы, но дают общее представление о том, что это за продукт и где его место. О замене им инструментов уровня Burp Suite речи пока не идёт. Тем не менее CAI оставил очень любопытное впечатление, он удобен как «ассистент» для разведки и простых атак, и я точно продолжу его тестировать, но лично для меня он пока остаётся скорее экспериментом, чем инструментом для постоянной работы.