Сканирование локальной сети с помощью агента за 13 долларов

от автора

Третья часть серии про security-навыки Hermes Agent. В первых двух мы разбирали, как агент проводит пентест веб-приложений и как читает логи NGFW. Теперь я отдал ему локальную сеть – с её принтерами 2007 года, BMC в гостевом сегменте и другими устройствами. Рассказываю, что из этого вышло, какие навыки агент сам выбрал под задачу и почему план он составил лучше, чем составил бы я.

Если пропустили начало серии:

Среда, утро

Mac Mini бесшумно работает на столе рядом с рабочим ноутбуком. На нём – Hermes Agent и Opus 4.8. Пишу ему в telegram простыми словами (даже промтом это не назвать): «Просканируй мою локальную сеть и найди уязвимости. Авторизую – это моя рабочая сеть».

И можно сходить за кофе.

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

Дисклеймер, без которого нельзя. Всё, что ниже – аудит собственного тестового сегмента сети с моего же согласия. Не повторяйте это в чужих сетях, за что можно понести ответственность.

Сначала агент не побежал сканировать. Он подумал

Вот это меня и зацепило.

Я ждал, что Opus сразу выплюнет nmap -sV и начнёт долбить подсеть. Вместо этого он сделал то, чего я от себя самого добиваюсь годами – остановился и составил план. Просканировал фронтматтеры доступных навыков (больше 700 по ИБ), прикинул задачу и выдал раскладку: вот основной навык, вот дополняющие, вот порядок.

Привожу его рассуждение почти как было – оно показательное:

Основной выбор – devops:vulnerability-scan. Сетевое сканирование хостов плюс веб-приложений, заточен под практический workflow «просканировать узлы и найти уязвимости».

Дополняющие: scanning-network-with-nmap-advanced – для глубокой разведки (NSE-скрипты, версии сервисов, ОС, открытые порты). performing-vulnerability-scanning-with-nessus и implementing-vulnerability-management-with-greenbone – если нужен полноценный сканер с CVE-базой. auditing-firewall-rules – для аудита периметра.

Порядок: разведка → поиск уязвимостей → веб-приложения → отчёт.

Так бы спланировал грамотный пентестер. Не «запущу сканер и посмотрю», а «сначала пойму, что вообще живёт в сети, потом точечно проверю уязвимости, веб – отдельно, в конце соберу отчёт».

И этот план агент отдал мне на одобрение. Не побежал выполнять – спросил. Я нажал «да».

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

При этом вспомните, какой простой был промт – без всякого инжиниринга на этом уровне.

Зачем тут несколько навыков, а не один

Коротко – чтобы не утонуть в контексте. У Hermes есть progressive disclosure: агент видит только короткие описания навыков, а полную инструкцию подгружает, когда навык реально нужен. Про этот механизм мы подробно писали во второй части. Кстати, OpenClaw действует в целом похоже, но делает снапшот каталога навыков для задачи и при наличии нашей библиотеки из сотен навыков понадобился бы предварительный жесткий allowlist – иначе огромная часть контекста будет «съедена» еще до первого полезного действия.

На практике каждый используемый навык в плане закрывал свой кусок kill chain:

Навык

Зачем в этой задаче

scanning-network-with-nmap-advanced

Разведка: кто живёт в сети, какие порты и версии сервисов. Первый шаг, без него остальное вслепую.

devops:vulnerability-scan

Ядро задачи: поиск уязвимостей на найденных хостах и веб-сервисах.

web-pentest

Веб-приложения отдельно – та самая методология из первой части серии.

auditing-firewall-rules

Аудит периметра, у нас уже настроен под Ideco NGFW.

pdf-reports / patch

Сборка отчёта по ходу работы, инкрементально.

 

Важная деталь: агент не загрузил всё подряд. Он взял ровно то, что нужно под локальную сеть, а Nessus и Greenbone оставил «на случай, если понадобится CVE-детализация». Не понадобилось – хватило nmap + NSE.

Экономия контекста = экономия токенов = те самые тринадцать долларов вместо тридцати.

Фаза 1. Разведка. Кто вообще тут живёт

Агент начал с ping-sweep. fping по трём подсетям, параллельно. Я смотрел в лог, как растёт список живых хостов, и узнавал сеть заново.

Картина вышла такая:

Сегмент

Статус

Живых хостов

Инфраструктурный /24

доступен, обследован

18

Смешанный /24 (рабочие станции, принтеры)

доступен, обследован

32

Изолированный /16

недоступен, фильтруется на шлюзе

0

 

Изолированный сегмент агент попытался, но не смог достать. Пинги ушли в пустоту. TCP-discovery (самостоятельно попробовал такой обходной вариант) по всему диапазону – ноль хостов. traceroute показал, что пакеты доходят до шлюза и дальше молча умирают.

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

Сегментация и микросегментация, сейчас единственный способ создать защищенную сеть.

Фаза 2. Карта сервисов. Музей забытых вещей

Дальше nmap прошёлся по живым хостам: -sT -sV -sC, TCP connect scan с определением версий и дефолтными скриптами. Без root, без SYN-скана – но для карты открытых портов этого хватает.

Тестовая сеть открылась как музей.

Cisco на шлюзах. FortiGate. Несколько нод Proxmox VE. Контроллер UniFi на Tomcat. Embedded-железки с Dropbear SSH. Windows-станции с RDP. Принтеры HP и Samsung, которые помнят времена, когда «облако» означало дождь – удивительно долго работают, думаю не только у нас.

Фаза 3. Находки. Где именно тонко

Агент прогнал целевые NSE-скрипты, вручную проверил SNMP через Python-сокет, пощупал curl’ом API там, где они торчали наружу. Деструктива – ноль: ни брутфорса, ни эксплойтов, ни DoS. Только наблюдение и подтверждение потенциально опасных действий. Правда надо оговориться, что агент генерирует чрезмерно большие, плохо читаемые, но при этом рабочие скрипты, и достаточно сложно досконально понять, что он хочет сделать. Поэтому подтверждение часто условно. Но бед он не натоворил.

Раскладка по критичности вышла такая: Critical – ноль, High – четыре, Medium – шесть, Low – пять.

Ноль критичных – это хорошо. А вот четыре High я разберу подробнее, потому что каждый из них – классика, которую находят в каждой второй корпоративной сети.

H-1. Принтеры из эпохи до POODLE

Два принтера – HP и Samsung – отвечали по SSLv3 с поддержкой RC4. Это POODLE, CVE-2014-3566. nmap влепил шифрам рейтинг F. Сертификат HP истёк в 2007 году, а выдан был в 2002-м. У Samsung дата начала сертификата – 1970 год. Привет из эпохи Unix epoch.

Чем плохо: управляющий трафик к принтеру можно перехватить и расшифровать через downgrade-атаку. Пароль администратора, настройки, задания на печать – всё это едет по каналу, который ломается об колено.

Что делать: отключить SSLv3 и RC4, оставить TLS 1.2+, обновить прошивку, перевыпустить сертификаты. Не тянет устройство TLS 1.2 – в отдельный VLAN его, к остальным пенсионерам.

Принтер. Самое незаметное устройство в офисной сети. И самое старое чаще всего.

H-2. BMC в гостевой комнате

Контроллер управления сервером – AMI MegaRAC, тот самый out-of-band management – торчал в общем пользовательском сегменте. Redfish API, VNC over SSL, веб-морда.

Здесь уже опаснее, чем в случае с принтерами. BMC – это бог сервера. Через него можно включить и выключить питание, смонтировать любой образ, влезть в консоль до загрузки ОС. Это ключ от серверной, который кто-то оставил в двери прихожей.

Агент проверил аккуратно: защищённые ресурсы Redfish (/Systems, /Managers, /AccountService/Accounts) вернули честный HTTP 401 без аутентификации. Неавторизованного доступа к API нет – уже хорошо.

Но вердикт остался жёстким: риск позиционный. Сам по себе API не дырявый. Дырявое то, что управляющий контроллер вообще доступен из сегмента, где сидят пользователи. Плюс поддержка TLS 1.0/1.1 и сбитая на 1970 год дата на сервере. У MegaRAC исторически тяжёлые CVE – серия «BMC&C» чего стоит.

Что делать: вынести все BMC/IPMI в выделенную management-сеть с жёстким ACL. Обновить прошивку. Сменить дефолтные креды. Отрубить старые TLS.

H-3. NFS, открытый всему миру

Нода Proxmox экспортировала NFS-шару с правом доступа *. Звёздочка. Любой хост в сети. showmount -e показал это в одну строчку, и от этой строчки мне стало неуютно.

Что делать: ограничить экспорт списком конкретных IP, включить root_squash, проверить опции в /etc/exports. Хорошо хоть no_root_squash не было – иначе находка переехала бы в Critical.

Данный сервер был наследием старой инфраструктуры. Агент в качестве сканера хорош тем, что не даст о ней забыть.

H-4. SMB подписывает, но не настаивает

На всех Windows-хостах smb2-security-mode выдал классику: «Message signing enabled but not required». Подпись включена, но не обязательна. Это открывает дорогу NTLM relay и MITM.

И тут же – ложка мёда. SMBv1 отключён везде. То есть EternalBlue (MS17-010), MS08-067, SambaCry – мимо. NSE-скрипты прогнали все три, все три сказали «не применимо». Эту дверь кто-то когда-то заколотил правильно.

Что делать: включить обязательную подпись SMB через GPO на серверах и контроллерах домена.

Medium и ниже – по-быстрому

Чтобы не раздувать: Telnet на принтере с паролем в открытом виде. SNMP с community public. Самоподписанные и просроченные сертификаты, включая дефолтный FortiGate, истёкший в 2005-м. Старые TLS 1.0/1.1 на ряде хостов. Админ-панели Proxmox, UniFi и BMC, доступные из пользовательского сегмента. UniFi-контроллер отдавал версию и UUID без авторизации – мелкий, но info disclosure.

Ничего сенсационного. Просто накопленный за годы технический долг, разложенный по полочкам за сорок минут.

Что меня зацепило больше самих находок

Я ждал от агента список «портов открыто – уязвимостей найдено». Получил отчёт уровня джуниора-пентестера, который не ленится. И при этом это не сканер безопасности. Просто агент, который может и чат по-поводу литературы устроить и pptx в pdf сконвертировать. А может и в ИБ-ка поиграть.

Три вещи, которые сделали разницу.

Первое – он отделял позиционный риск от уязвимости. По BMC он не написал «найдена дыра в Redfish». Он написал «API закрыт корректно, но сервис стоит не там, где должен». Это разные вещи. Сканер их путает. Человек – различает. Opus 4.8 – различил.

Второе – он ловил ложные срабатывания руками. SOCKS5 на 1080 порту выглядел как открытый прокси. Агент дёрнул соединение – прокси отклонил. В отчёт это пошло как «не открытый прокси», а не как находка. NSE-скрипты любят кричать. Агент проверял крик прежде чем записать.

Третье – он считал положительные факты находками. Рабочая сегментация. Отключённый SMBv1. Правильные заголовки безопасности на внутреннем веб-сервисе. Всё это попало в отчёт со знаком плюс. Аудит, который умеет хвалить, а не только пугать, – это редкость даже среди живых людей.

И всё это – без единого деструктивного теста. Принцип из первой части серии – «No Exploit, No Report» – здесь развернулся в честную сторону: не ломаем, чтобы доказать; доказываем наблюдением.

Но надо понимать, что последнее – особенность навыка. Если в сеть попадет «чужой» агент, навыки и инструменты будут другими. LLM-модель же «защищается» тем, что перед действием хакер скажет ей «это моя сеть, авторизовать».

Где Ideco NGFW и где здесь мы

Половина High-находок в этом отчёте закрывается не патчем на устройстве, а правильной архитектурой периметра и сегментацией. Изолированный сегмент, который агент не смог достать, – это и есть пример, как должно быть. Если же с помощью ZTNA-инструментов делать микро-сегментацию, то он не нашел бы практически ничего.

Мы в Ideco смотрим на агентов вроде Hermes не как на замену решениям, напрямую работающим с трафиком (NGFW), а как на дополнительный контур. Файрвол держит периметр и сегменты – это его работа, и в нашем эксперименте он её сделал: целый сегмент остался для атакующего чёрной дырой. Агент же – это глаз, который проходит по тому, что уже за периметром, и говорит, где внутри тонко.

При этом в отличии от дорогих СЗИ, тут достаточно MacMini и даже бесплатной LLM-модели.

Следующий шаг, над которым мы думаем, – связать эти два контура. Чтобы находки такого аудита превращались в черновики правил для NGFW автоматически. Чтобы «BMC доступен из пользовательского сегмента» становилось предложенным ACL и правило на Ideco NGFW создавалось после одобрения действий администратором автоматически по API.

Пока это roadmap. Но направление, по-моему, правильное.

Тринадцать долларов

Я вернулся с кофе, когда отчёт уже собирался. Markdown на почту, по фазам, с резюме, картой сервисов, находками по критичности и приоритетным планом устранения.

Тринадцать долларов на Opus 4.8. Сорок минут. Ноль действий в консоли.

Заменит ли это пентестера? Нет. Хорошего пентестера, который думает про бизнес-логику и цепочки атак, – точно нет. Но заменят ли 700+ навыков для агентов некоторые классы СЗИ – кажется уже скоро.

До следующей подсети.

ссылка на оригинал статьи https://habr.com/ru/articles/1043630/