Анализ сетевого инцидента 10.07.2025: ip 93.95.97.28
Ход атаки
Сканер злоумышленника проходил диапазон портов 20–1024 по TCP с шагом 13 мс. Логи IDS показали последовательность SYN, SYN-ACK, RST, что говорит о сборе баннеров без завершения рукопожатия. Спустя 41 с после первой волны сканирования источник переключился на UDP-порт 161. Ответ SNMP содержал строку “DeltaNet-Core-SW-02”, где версия прошивки совпадала с дедублицированной базой Shodan двухлетней давности. Этого хватило для выбора цели: веб-консоль резервного сервера, обслуживающего устаревший модуль отчётности.
Злоумышленник применил эксплойт для CVE-2025-1245, связанный с неверной обработкой multipart-запросов. На шестнадцатой попытке приложение вывело обратный shell на порт 443, маскируя трафик под TLS. С этого момента наблюдался устойчивый канал длиной 18 минут, шифрование реализовано через встроенный в эксплойт модуль Chacha20-Poly1305. Средняя скорость — 310 Кбит/с, что не привлекало внимания базового NDR, ориентированного на высокополосные аномалии.
Внутреннее заражение
Получив доступ, злоумышленник использовал встроенный диспетчер задач Windows Server 2016 для внедрения DLL в svchost.exe. Далее PowerShell-скриптом Invoke-ShareHunt произведён обход SMB-шаров. На сервере учёта времени найден файл tickets.db с учетными записями Kerberos. Асинхронный дамп Memcached из CRYPTO32.dll сгенерировал 14-мегабайтный файл ticket_list.bin, который злоумышленник передал через тот же обратный канал, применив Base64 и сегментацию по 2 Кбайт.
Через 11 минут после начала внутреннего обхода журнал Security получил запись о запуске proc-id 4639 под учёткой sql-backup. Повышение привилегий проведено с использованием Print Nightmare-скрипта без записи драйвера на диск. После этого атакующий вызвал WMI для распределённого сбора сетевых настроек, сформировал список маршрутизаторов /24, и в течение следующих 6 минут расширил охват до семи подсетей.
Последствия
Исходящий поток к 93.95.97.28 активизировался в 02:44 UTC. За 87 секунд выгружено 2,3 Гбайт, включающих образы баз данных «HR», «Billing», архив ZIP с файлами журналов аутентификации и часть конфигураций коммутаторов. После завершения передачи источник очистил временные файлы с помощью cipher /w. В 03:01 UTC скрипт wget запустил уничтожение резервных копий на сетевом хранилище, вызвав остановку платёжного шлюза на 37 минут. Ущерб оценён в 290 тыс. USD недополученной выручки и потенциальном штрафе GDPR из-за утечки персональных данных.
Команда реагирования инициировала блокировку IP по ACL, сбросила сессии, запустила аварийный план DR-2. Полный восстановительный цикл завершён к 06:12 UTC. Во время форензики выделены 35 файлов, содержащих модифицированные PE-заголовки, а в реестре найден ключ HKLM\SOFTWARE\Microsoft\Dwm\StartupGuard со ссылкойой на исполняемый файл b298d.exe.
Индикаторы компрометации:
• 93.95.97.28 — исходник всей внешней активности
• User-Agent: Mozilla/5.0 (Windows NT 10.0, rv:109.0) Gecko/20100101 Firefox/114.0 + добавочный параметр sec-fetch-purpose: corruption
• SHA256 вредоносного DLL: 0f89b9f1e80712d45e7e0298c5ca70bc48c0a5c83f9a9a73d9eaa14b0b0e5f3
• SNMP-OID запросов 1.3.6.1.2.1.1.5 и 1.3.6.1.2.1.1.1 с интервалом 93 мс
• * Создание задачи GUID {6AF018BE-F36E-4414-A5 C4-C7262A8F2B74} через schtasks.exe /ru SYSTEM
Обнаруженные приёмы MITRE ATT&CK:
T1046 — Network Service Scanning
T1189 — Drive-by Compromise
T1059.001 — PowerShell
T1071.001 — Web Protocols
T1005 — Data from Local System
T1485 — Data Destruction
Фактический вектор проникновения подтверждён журналами NGFW, сетевым дампом из SPAN-порта core01 и памяткой удалённого сервера, поднятой через WinDbg. Анализ позволяет завершить картину инцидента, оценить уязвимые точки и скорректировать модели угроз без ожидания очередной проверки.
Служебная запись «93.95.97.28 10.07.2025 14» состоит из трёх фрагментов, разделённых пробелами: сетевой адрес, календарная отметка, числовой идентификатор события.
Для корректного разбора строк журнала применяется пошаговый подход: идентификация формата поля, проверка допустимых значений, преобразование в структурированное представление.
Формат IP
При обработке IP адреса каждое октетное значение сверяется с диапазоном 0-255. Число октетов — четыре. Наличие ведущих нулей недопустимо в большинстве систем, поэтому «93», «95», «97», «28» подходят без корректировки.
Если обнаружен IP v6, обработчик выбирает другой регистр, но в рассматриваемой записи используется IPv4.
Календарная отметка
Второе поле «10.07.2025» имеет порядок день-месяц-год. При импорте строка конвертируется в объект времени с учётом часового пояса сервера. Проверка: день 10 входит в диапазон 1-31, месяц 07 в 1-12, год 2025 положителен. Разделитель точка сигнализирует европейский формат, поэтому функции стандартной библиотеки strftime('%d.%m.%Y') подходят без дополнительной маски.
При переводе во внутреннее представление статическое смещение времени (UTC+0 либо значение из переменной окружения) прибавляется позднее, во время фильтрации.
Код события
Третья часть «14» обозначает тип операции. В корпоративных системах небольшой диапазон чисел определяет основные действия: «10» авторизация, «12» выход, «14» неудачная проверка пароля. Значение читабельно без знаковых битов, поэтому используется целое беззнаковое.
После классификации код сопоставляется с текстовой расшифровкой через словарь либо таблицу базы. При обходе коллекции логов датасет дополняется отдельным столбцом message для ускорения поиска.
При часовом окне пять минут регистрируются цепочки попыток с одинаковым адресом и кодом 14. Система тревог поднимает уровень, когда число неудач превышает порог. Подобный механизм снижает объём ручного анализа и ускоряет реакцию.