Исследователи Group-IB обнаружили новый macOS-инфостилер ClickLock Stealer, который использует принципиально иной подход к получению системного пароля: при отказе жертвы ввести учётные данные вредонос начинает циклически завершать ключевые приложения — Finder, Dock, Spotlight, Terminal, Activity Monitor и браузеры — каждые 210 миллисекунд, превращая рабочий стол в неработоспособную среду с единственным окном ввода пароля. По данным Group-IB, с мая кампания затронула не менее 100 целей в 33 странах, более половины — в Европе. На момент анализа оркестраторный скрипт имел ноль детектов на VirusTotal.
Механика заражения: от вставки в Terminal до захвата рабочего стола
Доставка ClickLock построена на технике ClickFix (T1204.004) — жертву убеждают вставить команду в Terminal. Скрипт принимает параметр RAY_ID и отображает поддельный баннер Cloudflare CAPTCHA с прогресс-баром из двенадцати строк статуса — чисто декоративный элемент для создания иллюзии легитимности. Под этим фасадом скрипт отключает клавиатурные прерывания, скрывает курсор и загружает четыре полезные нагрузки с двух скомпрометированных сайтов: две передаются напрямую в bash, две сохраняются в скрытый каталог $HOME/.cacheb/.
Первый запрос пароля — диалог osascript с загруженной иконкой Apple и реальным именем пользователя. Введённый пароль проверяется командой dscl /Local/Default -authonly, и только рабочий пароль отправляется оператору. Эта же техника валидации, по данным Microsoft, использовалась в SHub Stealer, AMOS и MacSync в рамках волны macOS-кампаний ClickFix в мае.
Если жертва нажимает «Отмена», скрипт устанавливает два LaunchAgent — com.authirity.plist и com.chromer.plist в ~/Library/LaunchAgents/ — и тихо завершается. Принуждение начинается при следующем входе в систему.
Двойной цикл принуждения
Первый LaunchAgent запускает цикл завершения процессов с интервалом 210 мс до получения пароля. Второй работает параллельно: завершает процессы каждые 0,2 секунды на протяжении до 3 000 000 секунд (около 34,7 дней), одновременно запрашивая ключ Chrome Safe Storage из Keychain каждые полсекунды. Этот запрос вызывает реальный системный диалог macOS, а цикл завершения приложений удерживает рабочий стол в нерабочем состоянии, пока жертва не одобрит доступ.
Activity Monitor и Terminal включены в оба списка завершения — жертва не может ни диагностировать проблему, ни остановить процесс стандартными средствами. Третий цикл завершает NotificationCenter в течение шести часов, блокируя отображение предупреждений Gatekeeper. Если Terminal не имеет Full Disk Access, оркестратор открывает System Settings на нужной панели и проводит жертву через предоставление разрешения.
Group-IB характеризует субсекундные вызовы pkill и killall против Finder, Dock, SystemUIServer и NotificationCenter как «поведение, уникальное для вредоносного ПО с принудительным взаимодействием, не имеющее легитимного применения».
Масштаб кражи данных и бэкдор
Успешное выполнение даёт оператору: валидированный системный пароль macOS, AES-ключ Chrome Safe Storage (позволяющий офлайн-расшифровку файлов Login Data и Cookies), а также ZIP-архив с учётными данными браузеров, cookie, хранилищем расширений криптокошельков, файлами десктопных кошельков, хранилищами менеджеров паролей, содержимым Keychain, историей shell и сохранёнными учётными данными FileZilla. Эксфильтрация проходит через три Telegram-бота.
Бэкдор-компонент goyim, по оценке Group-IB, на 80% скопирован с публичного скрипта развёртывания GSocket — инструмента туннелирования с шифрованным обратным подключением через реле. Бинарный файл загружается с gsocket.io и подключается к операторскому реле gsnc[.]eu:67. На macOS он сохраняется как iCloud в ~/Library/Application Support/iCloudsync и маскируется под процесс SystemUIServerl — с лишней буквой «l» в конце.
Критически важная деталь: модули стилера удаляют собственные LaunchAgent, подделывают временные метки файлов по каталогу ~/Movies для затруднения форензики и самоуничтожаются. Бэкдор goyim при этом остаётся. После ввода пароля рабочий стол выглядит нормально, но на машине работает обратная оболочка.
Защита Apple и её ограничения
В macOS 26.4, выпущенной в конце марта, Apple добавила предупреждение при подозрительной вставке в Terminal и блокировку известного вредоносного ПО. Однако, как следует из документации Apple, предупреждение срабатывает только для пользователей, которые не используют Terminal регулярно, и содержит кнопку «Paste Anyway». Блокировка требует, чтобы macOS уже знала сигнатуру вредоноса.
Два подхода к обходу появились в течение нескольких недель. Jamf Threat Labs зафиксировала в апреле кампанию с использованием URL-схемы applescript:// для открытия Script Editor с предзагруженной полезной нагрузкой — проверка Terminal вообще не срабатывает. ClickLock пошёл другим путём: сохранил вставку в Terminal, но спроектировал механизм принуждения, который делает отказ пользователя бессмысленным.
Индикаторы компрометации
- Хеш оркестратора:
3ce0504ba65f8d56f83d7fef45faeaeb31e4e5aa9b872b56610b5f2558231caa - Файлы LaunchAgent:
com.authirity.plist,com.chromer.plist - Бэкдор:
~/Library/Application Support/iCloudsync/iCloud, процессSystemUIServerl - Сетевые индикаторы:
gsnc[.]eu:67, трафик кapi.telegram.org - Поведенческие сигналы: вызов
security find-generic-passwordиз shell-скрипта; диалогиosascriptс иконками из/tmp/; массовое чтение каталогов профилей браузеров;curl, перенаправленный в bash с URL, заканчивающимся на.jpg,.txtили.css
Рекомендации по реагированию
Если Mac начал циклически завершать приложения и отображает единственное окно ввода пароля — не вводите пароль. Ни одна страница верификации не требует доступа к Terminal; проверка Cloudflare выполняется в браузере.
- Принудительное выключение: удерживайте кнопку питания до отключения.
- Загрузка в Safe Mode: на Intel — удерживайте Shift при включении; на Apple Silicon — удерживайте кнопку питания до появления «Loading startup options», выберите том, затем удерживайте Shift и нажмите «Continue in Safe Mode» (инструкция Apple).
- Удаление артефактов: проверьте
~/Library/LaunchAgents/на наличиеcom.authirity.plistиcom.chromer.plist; удалите~/Library/Application Support/iCloudsyncи$HOME/.cacheb/. - Если пароль был введён: считайте скомпрометированными все сохранённые пароли, cookie, ключи кошельков и сессии браузеров. Отзовите активные сессии, смените все пароли, перевыпустите ключи криптокошельков.
ClickLock демонстрирует сдвиг в тактике macOS-инфостилеров: вместо обхода технических защит — инженерия принуждения, при которой отказ пользователя не останавливает атаку, а откладывает её до следующего входа в систему. Организациям с парком Mac следует проверить наличие указанных IOC, ограничить права Terminal через MDM-политики и убедиться, что пользователи знают: легитимные системные процессы никогда не завершают Finder и Dock циклически для получения пароля.