Лаборатория FortiGuard Labs обнаружила новые образцы кампании RapperBot, активной с января 2023 года.
RapperBot - это семейство вредоносных программ, направленных в первую очередь на IoT-устройства. Оно наблюдается в природе с июня 2022 года. FortiGuard Labs сообщала о предыдущих кампаниях в августе 2022 года и декабре 2022 года. Эти кампании были направлены на перебор устройств со слабыми или стандартными учетными данными SSH или Telnet, чтобы расширить зону действия ботнета для проведения распределенных атак типа "отказ в обслуживании" (DDoS).
RapperBot Botnet
В этой кампании угрожающие субъекты начали осваивать криптоджекинг, в частности, для машин Intel x64. Первоначально они развернули и запустили отдельный криптоминер Monero наряду с обычным бинарным файлом RapperBot. Но в конце января 2023 года они объединили оба функционала в одного бота.
FortiGuard начали наблюдать первые образцы этой кампании майнеров RapperBot в январе 2023 года. Они имеют некоторые общие характеристики, которые позволили нам связать эту кампанию с более ранними.
Наиболее уникальной и устойчивой чертой образцов RapperBot является URL-адрес YouTube https://www.youtube.com/watch?v=4fm_ZZn5qaw, который встречался в большинстве образцов этого семейства. Однако эта строка никогда не используется в данной кампании, в отличие от более ранних образцов, где URL выводится в консоль в начале выполнения.
Еще одним признаком кампании RapperBot является добавление открытого ключа SSH в ~/.ssh/authorized_keys для сохранения доступа к зараженным машинам даже после перезагрузки устройств. В этой последней кампании используется тот же ключ, который был замечен в первой кампании в июне 2022 года и указан в разделе IOC ниже.
Однако помимо этих сходств, FortiGuard также обнаружили ряд ключевых различий, включая несколько значительных обновлений в функциональности вредоносной программы, в частности, в протоколе связи C2.
Один кластер образцов ARM, например 7c9e6d63bc1f26e9c8a8703439e12de12da9892f2d6cd9bda5f45ec00c98a29f (кластер A), который был доставлен через hxxp://109[.]206[.]243[.]207/ssh/arm7, был очень минимальным по функциональности. Они включали только три типа DoS-атак и не содержали возможности перебора SSH или самораспространения. Однако эти образцы включали новый код для сбора и отправки информации о зараженной системе после регистрации на C2-сервере.
Другой кластер образцов ARM, доставленных с того же URL, например, 912e151641f20f9d689c6ea26cf6f11d5ee0b6fdc4d4a1179fac413391748c65 (кластер B), похож на вышеупомянутые образцы, но с включением программы перебора SSH, которая в последний раз была замечена в кампании июня 2022 года. В отличие от той кампании, учетные данные встроены в каждый образец, а не загружаются с сервера C2. Эти образцы распространяются самостоятельно путем загрузки и выполнения hxxp://109[.]206[.]243[.]207/d после успешного взлома системы методом перебора.
Как и в прошлых кампаниях, все образцы из этой кампании по-прежнему кодируют конфиденциальные строки с помощью XOR-кодировки. Но на этот раз разработчики решили добавить дополнительный уровень XOR-кодирования, причем первый уровень использует многобайтовые XOR-ключи с различными значениями и длиной для каждой закодированной строки. Второй уровень использует тот же стиль однобайтового XOR-кодирования, что и в предыдущих кампаниях, при этом ключ вычисляется путем XOR-перестановки всех байтов ключа первого уровня. Этот дополнительный уровень кодирования XOR предотвращает перебор XOR и легкое обнаружение строк, связанных с вредоносным ПО.
Первоначальный проект был сформулирован двусмысленно, мы хотели сказать, что в этой кампании учетные данные были встроены в каждый образец. В предыдущей кампании учетные данные загружались с сервера C2.
Структура клиентских запросов к серверу Command-and-Control (C2) также была значительно обновлена. Уникальный 32-байтовый идентификатор бота, отправляемый с каждым запросом в предыдущих кампаниях, был удален. Вместо этого размер запроса стал переменным, а для заполнения неиспользуемых частей запроса генерируются случайные байты. Наконец, данные запроса больше не располагаются на фиксированных смещениях внутри каждого запроса.
Изменение протокола связи C2 - не единственное важное обновление в этой кампании. До сих пор RapperBot в основном использовал своих жертв для DDoS-операций. Однако в этой кампании он начал использовать ресурсы зараженных машин Intel x64 для майнинга криптовалюты, известного как Cryptojacking.
FortiGuard Labs заметили, что hxxp://109[.]206[.]243[.]207/ssh/x86_64 начал обслуживать скрипты оболочки Bash вместо обычного бинарного файла RapperBot для архитектуры x64 еще 12 января. Эти Bash-скрипты (пример хэша: 7f6e0fa785820075a61819ca6b272a239733b770eb8a92a4056cf5d26d89795f) загружали и выполняли отдельные криптомайнеры XMRig (пример хэша: 0ad68d5804804c25a6f6f3d87cc3a3886583f69b7115ba01ab7c6dd96a186404) и двоичные файлы RapperBot
XMRig - это майнер Monero с открытым исходным кодом, обычно используемый угрожающими субъектами для криптоджекинга. Monero (XMR) является популярной криптовалютой для незаконного майнинга субъектами угроз из-за ее функций, повышающих конфиденциальность. Она также разработана таким образом, чтобы быть более устойчивой к майнерам на базе интегральных схем специального назначения (ASIC), что делает возможным прибыльную добычу с помощью оборудования потребительского класса.
В конце января 2023 года FortiGuard Labs собрала значительно больший образец x64 f06d698967cee77e5a7bf9835b0a93394097e7590c156ed0d8c6304345701cfa, который использовал тот же IP-адрес сервера C2 и протокол связи. При дальнейшем анализе мы убедились, что разработчики бота объединили исходный код RapperBot C с кодом C++ майнера XMRig Monero для создания комбинированного клиента бота с возможностью майнинга.
За исключением выполнения майнера в качестве дочернего процесса при выполнении, эти образцы функционально идентичны образцам, нацеленным на устройства ARM, и не имеют возможности перебора SSH или самовоспроизведения. Слияние кода бота и майнера может быть попыткой скрыть майнинговые пулы и адреса кошельков Monero (перечисленные в разделе IOCs) с помощью двухслойного XOR-кодирования, чтобы они не были открыты в открытом виде, как в сценарии Bash (Рисунок 4).
Код майнера также содержит несколько модификаций для облегчения криптоджекинга.
Возможность чтения внешних конфигурационных файлов была удалена, поэтому он всегда использует конфигурацию, встроенную в сам двоичный файл. Бот декодирует майнинговые пулы и адреса кошельков Monero и обновляет жестко закодированную конфигурацию перед запуском встроенного майнера.
Майнер также настроен на использование нескольких майнинговых пулов для обеспечения избыточности и дополнительной конфиденциальности. Два из них являются прокси-серверами для майнинга, расположенными на самом RapperBot C2 IP. Это позволяет субъекту угрозы не указывать в конфигурации майнера адреса кошельков и реальные пулы для майнинга. Кроме того, они могут изменять эту информацию на прокси-сервере без перестройки и развертывания новых ботов. Кроме того, он также настроен на прямое использование публичного майнингового пула, вероятно, в качестве резервного, если C2 IP выйдет из строя.
Чтобы предотвратить завершение процесса майнера владельцем машины, были удалены стандартные обработчики сигналов SIGTERM, SIGUSR1, SIGINT и SIGHUP.
Информация об использовании, выводимая при выполнении аргумента командной строки --help, также была удалена, вероятно, чтобы избежать обнаружения продуктами безопасности и конкурирующими майнерами других групп криптоджекинга. Аналогично, разработчики также заменили "XMRig" на "asbuasdbu" в информации о версии, чтобы предотвратить легкую идентификацию.
Для повышения эффективности майнинга он уничтожает других майнеров, перечисляя другие запущенные процессы и пытаясь просканировать связанные с ними двоичные файлы на диске на наличие следующих ключевых слов из черного списка. Затем эти процессы завершаются, а соответствующие файлы удаляются. Например, "--algo" в приведенном ниже списке является частью информации об использовании, выводимой стандартными майнерами XMRig.
- xmrig
- .rsync
- miner
- dota.
- moner
- UPX!
- --algo
- network01
- faster than light
- dota2
- .rsync
- cat /proc/cpuinfo
- /etc/cron.hourly/gcc.sh
- /etc/daemon.cfg
- denyip=
Если двоичные файлы не читаются, он будет искать ключевые слова из черного списка в путях к файлам, завершать процессы и удалять связанные с ними файлы.
- /shm/
- /dev/netslink/
- /tmp/
- xmrig
- .X19-unix
- netwalker
- (deleted)
- .rsync
- /a/
- /b/
- /c/
- miner
- dota
- network01
- xrx
- /.x
Наконец, он завершит процессы, содержащие ключевые слова из черного списка в пути процесса или аргументах командной строки. Процессы, путь или аргументы командной строки которых содержат "/zvx/", заносятся в белый список и никогда не завершаются.
- wget
- curl
- netstat
- kill
- 3333
- zmap
- tsm
- passwd
- netwalk
- zzh
- xrx
- pnscan
- xri
Судя по используемым ключевым словам, разработчики бота больше заинтересованы в уничтожении других майнеров, чем других IoT-ботов. Это подтверждает их нацеленность на криптоджекинг по сравнению с DDoS-атаками, по крайней мере, на машинах x64.
Вектора заражения, который напрямую поставляет x64 RapperBot, так как ни один из образцов RapperBot с интегрированным майнером не имеет возможности самораспространения. Это говорит о возможном наличии внешнего загрузчика, управляемого агентом угрозы, который использует учетные данные, собранные другими образцами RapperBot с возможностью перебора, и заражает только x64 машины с объединенным ботом/майнером.
В качестве альтернативы, добавление публичного SSH-ключа угрожающего агента на зараженные машины может обеспечить еще одну точку входа для этих образцов x64.
Indicators of Compromise
IPv4
- 109.206.243.207
- 171.22.136.15
IPv4 Port Combinations
- 109.206.243.207:25621
- 109.206.243.207:31271
Domain Port Combinations
- pool.hashvault.pro:80
URLs
- http://109.206.243.207/d
- http://109.206.243.207/ssh/arm4
- http://109.206.243.207/ssh/arm5
- http://109.206.243.207/ssh/arm6
- http://109.206.243.207/ssh/arm7
- http://109.206.243.207/ssh/bot
- http://109.206.243.207/ssh/scan_arm4
- http://109.206.243.207/ssh/scan_arm5
- http://109.206.243.207/ssh/scan_arm6
- http://109.206.243.207/ssh/scan_arm7
- http://109.206.243.207/ssh/x86_64
- http://109.206.243.207/ssh/xmrig
- http://171.22.136.15/arm4
- http://171.22.136.15/arm5
- http://171.22.136.15/arm6
- http://171.22.136.15/arm7
SHA256
- 0ad68d5804804c25a6f6f3d87cc3a3886583f69b7115ba01ab7c6dd96a186404
- 3296598c79748322dfff8eb786705d048725c04b23dd3a293f52a1acafe9e7ae
- 6c034ff9b5447da62822e3231e5e2d5db225756b3e216f6fc469469cb1d81813
- 7c9e6d63bc1f26e9c8a8703439e12de12da9892f2d6cd9bda5f45ec00c98a29f
- 7f6e0fa785820075a61819ca6b272a239733b770eb8a92a4056cf5d26d89795f
- 912e151641f20f9d689c6ea26cf6f11d5ee0b6fdc4d4a1179fac413391748c65
- 95aa6882f5ea5a892ef832ef15dea77261394a7fec6db9d91267d40f1cf2bfa5
- bd87ac780e574ae8415907f88a3b48af578bb269308b56826e2f33438559e4b7
- dfaffe78b8ccb03626c2f55596f977da917e8e9a00ee7576ce9eca688d88447d
- f06d698967cee77e5a7bf9835b0a93394097e7590c156ed0d8c6304345701cfa