StripedFly -- оснащен встроенным сетевым туннелем TOR для связи с командными серверами, а также функциями обновления и доставки через такие надежные сервисы, как GitLab, GitHub и Bitbucket, с использованием собственных зашифрованных архивов.
StripedFly
Первый обнаруженный шеллкод располагался в процессе WININIT.EXE, который способен загружать бинарные файлы с bitbucket[.]org и выполнять сценарии PowerShell. На момент первых обнаружений вектор заражения был неизвестен. Однако в ходе расследования мы обнаружили SMBv1-эксплойт, удивительно похожий на EternalBlue.
Шелл-код ядра, передаваемый с помощью эксплойта, внедряет дополнительный шелл-код в пользовательское пространство. Затем разворачивается полезная нагрузка, которая включает в себя фреймворк с расширяемой плагинами функциональностью и чрезвычайно легкий сетевой клиент TOR. По завершении этого процесса ворота окончательно закрываются, и вредоносная программа отключает протокол SMBv1 на зараженной системе.
Червячный функционал пытается распространяться в локальной сети, опираясь не только на эксплойт, но и на протокол SSH, используя ключи, найденные на машине жертвы.
Для его сохранения вредоносная программа использует различные методы. Его поведение зависит от наличия интерпретатора PowerShell и привилегий, предоставленных процессу. Как правило, при установке через эксплойт вредоносная программа запускается с правами администратора, а при доставке через SSH-сервер Cygwin - с правами пользователя.
Если PowerShell отсутствует, вредоносная программа генерирует скрытый файл с загрузчиком MZ-PE с произвольным именем, расположенный в каталоге %APPDATA%. Этот загрузчик включает в себя копию файла system.img и впоследствии регистрируется с GUID-именем в ключе реестра Windows Software\Microsoft\Windows\CurrentVersion\Run.
Если установлен PowerShell, то он будет вести себя по-разному в зависимости от наличия административного доступа. При наличии административных прав его эфир выполняет сценарий PowerShell, который создает две записи планировщика задач с GUID-подобными именами и с разными триггерами. Действием этих задач является запуск скрипта-загрузчика PowerShell.
Если административные права отсутствуют, то скрипт-загрузчик PowerShell, окруженный тысячами пробелов в начале и в конце, помещается в ключ реестра HKCU\Software\Microsoft\Windows\CurrentVersion\Applets, который затем регистрируется в ключе HKCU\Software\Microsoft\Windows\CurrentVersion\Run с помощью следующей команды:
1 2 3 4 5 | C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -W Hidden - Command "Invoke-Expression((Get-ItemProperty -Path 'HKCU:\Software\Microsoft\Windows\CurrentVersion\Applets'). '%RegValNameFromPrevStep%')". |
В обоих случаях, когда доступен PowerShell, тело самого архива вредоносной программы хранится в ключе реестра Software\Microsoft\Windows\CurrentVersion\Shell в Base64-кодировке и окружении сотен пробелов, а запускается упомянутыми выше PowerShell-скриптами.
На Linux-хостах вредоносный процесс скрывается под именем (sd-pam). И имеет богатый набор способов установления постоянства: это может быть системная или пользовательская служба systemd, автозапускаемый файл .desktop, или дополнительная строка в одном из подходящих файлов /etc/rc*, profile, bashrc или inittab. Исполняемый файл вредоносной программы помещается в каталог /tmp с произвольным именем.
Для минимизации следа от первоначального эксплойта все элементы, которые могут быть выгружены, заключаются в зашифрованный и сжатый пользовательский двоичный архив. Этот архив незаметно размещается на легитимных сайтах, ловко маскируясь под двоичные файлы прошивки для загадочных устройств, обозначенных как "m100".
Репозиторий Bitbucket был создан 21 июня 2018 года под учетной записью Julie Heilman и остается единственным репозиторием, связанным с этим профилем.
В репозитории находится только файл README.md с названием проекта. Примечательно, что в папке Downloads, которая обычно содержит скомпилированные двоичные файлы проекта, находятся пять двоичных файлов: delta.dat, delta.img, ota.dat, ota.img и system.img.
В этой папке отсутствует какая-либо версионность, а счетчик загрузок отражает только количество загрузок с момента последнего обновления файла. В частности, файл system.img служит аутентичным архивом полезной нагрузки, используемым при первичном заражении системы Windows. Счетчик загрузок этого файла точно отражает количество новых заражений с момента его последнего обновления. В ходе нашего анализа последний раз файл обновлялся 24 февраля 2022 года, а количество первичных заражений по состоянию на июнь 2022 года составляло 160 тыс. жертв. Однако по состоянию на сентябрь 2023 года, после последнего обновления в апреле 2023 года, это число снизилось до 60 000.
Для обновления вредоносной программы используются файлы ota.img и delta.img, где ota.img соответствует версии для Windows, а delta.img - для Linux. Интересно, что system.img и ota.img функционально идентичны, хотя ota.img содержит дополнительные метаданные для проверки целостности, а delta.img служит начальной полезной нагрузкой для Linux-хостов, скомпрометированных через SSH Windows-версией.
Файлы ota.dat и delta.dat, а также файлы версий служат для вредоносной программы средством проверки наличия новых обновлений. Однако стоит отметить, что счетчики загрузок для ota.img и delta.img не совсем точно отражают текущее количество зараженных жертв. Это связано с тем, что вредоносная программа в основном получает обновления со своего C2-сервера и прибегает к загрузке файлов обновлений из репозитория только в том случае, если C2-сервер не отвечает на запросы.
За время нашего анализа из хранилища было получено около миллиона обновлений. На момент написания статьи было получено всего восемь обновлений для систем Windows и четыре - для систем Linux, что позволяет предположить один из двух сценариев: либо количество активных заражений минимально, либо сервер C2 остается активным и реагирует на все зараженные жертвы.TOR
Сервер C2 расположен в сети TOR и имеет адрес .onion gpiekd65jgshwp2p53igifv43aug2adacdebmuuri34hduvijr5pfjad[.]onion:1111.
Для связи с C2 вредоносная программа использует собственную, облегченную реализацию клиента TOR. Интересно, что эта реализация не основана на каких-либо известных реализациях TOR с открытым исходным кодом. Многие стандартные функции TOR, такие как маршрутизация, листинг каталогов, режимы ретрансляции и выхода из узла, а также поддержка протоколов управления, отсутствуют.
Через регулярные промежутки времени вредоносная программа инициирует TCP-соединения с сервером C2, передавая приветственное сообщение, содержащее уникальный идентификатор жертвы. Затем каждую минуту он отправляет пустое сообщение-маяк.
Цель во что бы то ни стало скрыть сервер C2 подтолкнула к разработке уникального и трудоемкого проекта - созданию собственного клиента TOR. Т
Indicators of Compromise
Onion Domains
- ajiumbl2p2mjzx3l.onion
- gpiekd65jgshwp2p53igifv43aug2adacdebmuuri34hduvijr5pfjad.onion ghtyqipha6mcwxiz.onion
URLs
- bitbucket.org/JulieHeilman/m100-firmware-mirror/downloads/
- bitbucket.org/legit-updates/flash-player/downloads
- bitbucket.org/upgrades/um/downloads/
- github.com/amf9esiabnb/documents/releases/download/
- gitlab.com/JulieHeilman/m100-firmware-mirror/raw/master/
- gitlab.com/saev3aeg/ugee8zee/raw/master/
- tcp://45.9.148.132:8080
- tcp://45.9.148.21:80
- tcp://45.9.148.36:80
- tcp://5.255.86.125:8080
- tcp://mine.aeon-pool.com:5555
- tcp://pool.minexmr.com:4444
MD5
- 00c9fd9371791e9160a3adaade0b4aa2
- 04df1280798594965d6fdfeb4c257f6c
- 090059c1786075591dec7ddc6f9ee3eb
- 120f62e78b97cd748170b2779d8c0c67
- 18f5ccdd9efb9c41aa63efbe0c65d3db
- 2cdc600185901cf045af027289c4429c
- 2e2ef6e074bd683b477a2a2e581386f0
- 35fadceca0bae2cdcfdaac0f188ba7e0
- 41b326df0d21d0a8fad6ed01fec1389f
- 506599fe3aecdfb1acc846ea52adc09f
- 54dd5c70f67df5dc8d750f19ececd797
- 6ace7d5115a1c63b674b736ae760423b
- a5d3abe7feb56f49fa33dc49fea11f85
- abe845285510079229d83bb117ab8ed6
- b28c6d00855be3b60e220c32bfad2535
- c04868dabd6b9ce132a790fdc02acc14
- c7e3df6455738fb080d741dcbb620b89
- d32fa257cd6fb1b0c6df80f673865581
- d64361802515cf32bd34f98312dfd40d
- d684de2c5cfb38917c5d99c04c21769a