В начале 2026 года специалисты компании Rapid7 столкнулись с инцидентом, который на первый взгляд выглядел как рядовая атака программы-вымогателя Chaos. Однако в ходе расследования выяснилось: под вывеской финансово мотивированных киберпреступников действовала государственная группировка, связанная с Министерством разведки и безопасности Ирана. Речь идёт об операции, которую аналитики назвали ложным флагом - злоумышленники намеренно имитировали действия криминального сообщества, чтобы скрыть истинные цели.
Описание
Атака началась с целевой социальной инженерии через корпоративный мессенджер Microsoft Teams. Злоумышленники, выдавая себя за сотрудников технической поддержки, вступали в диалог с работниками компании-жертвы и инициировали сеансы удалённого доступа с демонстрацией экрана. В ходе этих сеансов они не только собирали информацию о конфигурации сети, но и в буквальном смысле заставляли сотрудников вводить свои учётные данные в текстовые файлы, создаваемые прямо на рабочем столе. Мало того - атакующие требовали от жертв изменить настройки многофакторной аутентификации, добавляя туда собственные устройства.
Такой подход резко контрастирует с типичными атаками программ-вымогателей. Обычно злоумышленники действуют скрытно, используют фишинговые письма для кражи паролей или эксплуатируют уязвимости программного обеспечения. Здесь же атакующие работали практически в открытую, полагаясь на доверчивость сотрудников и слабую осведомлённость в вопросах безопасности.
После получения доступа к учётным записям группа использовала протокол удалённого рабочего стола (RDP) для перемещения по сети. Особое внимание они уделили контроллеру домена - ключевому серверу, управляющему всеми пользователями и компьютерами в корпоративной инфраструктуре. Для закрепления в системе применялись легитимные инструменты удалённого администрирования AnyDesk и DWAgent, что позволяло поддерживать постоянный канал связи с скомпрометированной сетью.
Следующим этапом стала загрузка вредоносных файлов. С помощью утилиты curl злоумышленники скачали на сервер исполняемый файл ms_upd.exe, который действовал как загрузчик. Он собирал базовую информацию о системе, регистрировал её на командном сервере moonzonet[.]com и затем загружал три компонента: легитимную библиотеку WebView2Loader.dll, основную вредоносную программу Game.exe и зашифрованный конфигурационный файл.
Исследование Game.exe показало, что это собственноручно написанный троян удалённого доступа (RAT), замаскированный под официальный образец Microsoft WebView2. Разработчик взял проект из открытого репозитория Microsoft и встроил в него вредоносную функциональность. Программа реализует 12 команд, включая выполнение произвольных команд через командную строку и PowerShell, загрузку и удаление файлов, а также создание интерактивных сессий. При этом она проверяет, не запущена ли в среде анализа: ищет характерные библиотеки песочниц, названия процессоров виртуальных машин, проверяет таймеры на пропуски времени.
Критическим элементом, позволившим установить связь с Ираном, стал сертификат цифровой подписи, которым были подписаны вредоносные файлы. Он был выпущен на имя Donald Gay и подтверждён центром сертификации Microsoft. Отчёт специалистов Rapid7 показывает, что этот же сертификат ранее связывали с операцией MuddyWater под названием "Олалампо", которая была направлена против организаций в США и на Ближнем Востоке. Вместе с сертификатом "Amy Cherne" этот набор инструментов считается характерным признаком иранской разведки.
Помимо сертификата, на принадлежность к MuddyWater указывает инфраструктурное совпадение: домен moonzonet[.]com, использовавшийся как командный центр для загрузчика, уже фигурировал в атаках на израильские и западные компании в начале 2026 года. Также характерным является применение pythonw.exe для инжекции кода в приостановленные процессы - типичный приём этой группы.
Самое примечательное в этой истории - полное отсутствие шифрования файлов. Несмотря на то что атакующие вывесили данные на сайте утечек Chaos и вели переговоры о выкупе, они ни разу не запустили процесс шифрования. Вместо этого они сосредоточились на краже информации и установке средств долговременного доступа. Это коренным образом отличает данную операцию от типичных вымогательских программ, где главная цель - как можно быстрее зашифровать данные и потребовать выкуп.
Специалисты пришли к выводу, что использование бренда Chaos было лишь камуфляжем. Истинная цель атаки - кибершпионаж и, возможно, подготовка к будущим деструктивным операциям. MuddyWater уже прибегала к подобной тактике в конце 2025 года, когда имитировала действия группировки Qilin. После того как ту атаку публично связали с иранской разведкой, группа сменила вывеску на Chaos, чтобы снизить риски разоблачения.
Такая стратегия усложняет работу защитников. Когда инцидент выглядит как работа вымогателей, внимание сосредотачивается на переговорах и восстановлении данных, а не на поиске скрытых бэкдоров и анализе тактики злоумышленников. В данном случае именно отсутствие шифрования и чрезмерно "ручной" характер атаки стали ключевыми сигналами, указывающими на истинный характер угрозы.
Происходящее отражает общую тенденцию слияния государственного шпионажа и киберпреступности. Злоумышленники всё чаще используют криминальные бренды и тактики, чтобы запутать следы и выиграть время. Для защиты от подобных атак недостаточно полагаться на внешние признаки - необходим комплексный анализ всего жизненного цикла вторжения, от первой точки входа до методов закрепления в системе. Особое внимание стоит уделять социальной инженерии через корпоративные коммуникационные платформы и инструменты удалённого доступа, которые в руках обученного противника становятся мощным оружием.
Индикаторы компрометации
IPv4
- 116.203.208.186
- 172.86.126.208
- 77.110.107.235
- 93.123.39.127
Domains
- adm-pulse.com
- moonzonet.com
- uploadfiler.com
Onion Domains
- hptqq2o2qjva7lcaaq67w36jihzivkaitkexorauw7b2yul2z6zozpqd.onion
SHA256
- 1319d474d19eb386841732c728acf0c5fe64aa135101c6ceee1bd0369ecf97b6
- 24857fe82f454719cd18bcbe19b0cfa5387bee1022008b7f5f3a8be9f05e4d14
- 3df9dcc45d2a3b1f639e40d47eceeafb229f6d9e7f0adcd8f1731af1563ffb90
- a3bac548b5bc91c526b4d6707623ddbd1a675aa952f0d1f9a0aa6f7230f09f23
- a47cd0dc12f0152d8f05b79e5c86bac9231f621db7b0e90a32f87b98b4e82f3a
- a92d28f1d32e3a9ab7c3691f8bfca8f7586bb0666adbba47eab3e1a8faf7ecc0
- bfc1675ee1e358db8356f515aaded7962923e426aa0a0a1c0eddfc4dab053f89
- c86ab27100f2a2939ac0d4a8af511f0a1a8116ba856100aae03bc2ad6cb0f1e0
- cd098eddb23f2d2f6c42271ca82803b0d5ac950cb82a9b8ae0928e83945a53df
- cf3dfd1d6626fd2129abb7a5983c11827f4b0d497e2dba146a1889bd71f23cd5
YARA
| 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 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 | rule MuddyWaterRAT{ meta: author = "Ivan Feigl ivan_feigl@rapid7.com" description = "Hunting rule for the RAT used by the MuddyWater, based on plain text string. Original sample MD5 F8560B9A893EEB2130FC7159E9C1B851" strings: //TKP - Token privilege $TKP1 = "System" $TKP2 = "Admin" $TKP3 = "User" // DF - Data format $DF1 = "\"computer_name\":\"" $DF2 = "\"username\":\"" $DF3 = "\"domain\":\"" $DF4 = "\"local_ip\":\"127.0.0.1\"" $DF5 = "\"privilege\":\"" $DF6 = "\"process_name\":\"agent-" $DF7 = "\"version\":\"E.1.0\"" $DF8 = "\"sleep_time\":60" //IAT - Import address table $IAT1 = "GetComputerNameA" $IAT2 = "GetUserNameA" $IAT3 = "NetWkstaGetInfo" $IAT4 = "NetApiBufferFree" $IAT5 = "AllocateAndInitializeSid" $IAT6 = "OpenProcessToken" $IAT7 = "GetTokenInformation" $IAT8 = "EqualSid" $IAT9 = "CheckTokenMembership" //MSC - misc $MSC1 = "re_register" $MSC2 = "cmd_id" $MSC3 = "cmd_id" $MSC4 = "run_cmd" $MSC5 = "cmd_line" $MSC6 = "run_powershell" condition: uint16(0) == 0x5A4D and all of($TKP*) and all of($DF*) and all of($IAT*) and all of ($MSC*) } |
| 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 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 | rule MuddyWaterDownloader{ meta: author = "Ivan Feigl ivan_feigl@rapid7.com" description = "Hunting rule for the downloader used by the MuddyWater, based on plain text string. Original sample MD5 439C0A0A46627BD166E08436F383AD56" strings: //ST - Status $ST1 = "downloading" $ST2 = "running" $ST3 = "success" $ST4 = "error" //SFF - Scanf formats $SFF1 = "EXIT_%lu" $SFF2 = "RUN_%lu" $SFF3 = "DL_%s" //ICO - Internet communication operation $ICO1 = "/register" ascii wide $ICO2 = "/check" ascii wide $ICO3 = "/status" ascii wide $ICO4 = "GET" ascii wide $ICO5 = "POST" ascii wide $ICO6 = "CONN_ERR" ascii wide $ICO7 = "REQ_ERR" ascii wide $ICO8 = "SEND_ERR" ascii wide $ICO9 = "RECV_ERR" ascii wide $ICO10 = "HTTP_%lu" ascii wide //FO - File operation $FO1 = "wb" $FO2 = "EMPTY" $FO3 = "FILE_ERR" // DF - Data format $DF1 = "\"client_id\":\"%s\"" $DF2 = "\"status\":\"%s\"" $DF3 = "\"error_code\":\"%s\"" //IAT - Import address table $IAT1 = "GetLastError" $IAT2 = "Sleep" $IAT3 = "WinHttpOpen" $IAT4 = "WinHttpConnect" $IAT5 = "WinHttpOpenRequest" $IAT6 = "WinHttpSendRequest" $IAT7 = "WinHttpReceiveResponse" $IAT8 = "WinHttpReadData" $IAT9 = "WinHttpCloseHandle" $IAT10 = "DeleteFileA" condition: uint16(0) == 0x5A4D and all of($ST*) and all of($SFF*) and all of($ICO*) and all of ($FO*) and all of ($DF*) and all of ($IAT*) } |