В интернете найден фреймворк для троянских атак на Windows, macOS и Linux

В интернете найден фреймворк для троянских атак на Windows, macOS и Linux

В интернете найден фреймворк для троянских атак на Windows, macOS и Linux

Эксперты Cisco Talos опубликовали результаты анализа набора инструментов атаки, обнаруженного на веб-сервере Apache (в настоящее время неактивен). Тулкит, или фреймворк, как его называют исследователи, содержит нового трояна удаленного доступа Insekt, программу Alchimist, реализующую функции C2, и множество инструментов, пригодных для продвижения по сети после взлома.

И Alchimist, и работающий в памяти Insekt написаны на Go, что позволяет операторам атаковать разные платформы — Windows, Linux, macOS. Из более безобидных инструментов на сервере найдены PsExec, NetCat, сканер интранета fscan и обратный прокси frp, который можно использовать для вывода данных.

Компонент Alchimist представляет собой 64-битное приложение для Linux с ресурсами для веб-интерфейса и Insekt RAT в Windows- и Linux-версиях. Примечательно, что Web UI использует упрощенный китайский язык.

Набор функций Alchimist позволяет оператору генерировать полезную нагрузку нужной конфигурации, открывать сессии удаленного доступа, раздавать пейлоад на целевые машины, выполнять произвольные команды, шелл-код и получать скриншоты. Механизмы заражения при этом можно кастомизировать — создавать фрагменты кода PowerShell (для Windows) или wget (для Linux) для развертывания RAT.

Настройки, задаваемые полезной нагрузке при ее создании, включают такие параметры, как IP-адрес или URL командного сервера, атакуемая платформа (Windows или Linux), протокол передачи данных (TLS, SNI, WSS/WS) и режим работы — основной или фоновый (как демон).

Адрес C2 вшивается в код трояна вместе с самоподписанным сертификатом, создаваемым во время компиляции. Предусмотрен также 10-кратный пинг с секундным интервалом (то есть резидентный бэкдор должен работать как маячок); при отсутствии отклика попытки подключиться возобновляются через час.

Основное назначение 64-битного Insekt — обеспечение удаленного администрирования; его возможности разнообразны и предоставляют оператору широкий выбор. В ходе инициализации зловредный имплант устанавливает множество обработчиков для основных функций:

  • фиксации размеров файлов;
  • сбора данных ОС;
  • выполнения произвольных команд с помощью cmd.exe или bash;
  • самообновления;
  • выполнения команд от имени другого пользователя;
  • ухода в сон на заданный период;
  • активации/деактивации снимков экрана.

Затем вредонос проверяет наличие интернет-связи и статус нужных портов, выполняя подключение с перебором небольшого списка адресов и номеров.

Троян также может работать как прокси (SOCKS5), манипулировать SSH-ключами, сканировать порты и IP, записывать или распаковывать файлы на диск, выполнять на хосте шелл-код. Так, аналитики обнаружили, что Linux-версия Insekt умеет перечислять содержимое папки .ssh в домашнем каталоге пользователя и добавлять новые SSH-ключи в файл authorised_Keys, обеспечивая оператору альтернативный канал связи с зараженной машиной.

Из команд, которые можно задать изначально (в настройках) замечены создание нового пользователя или административной группы, листинг пользователей/админов/контроллеров домена, включение службы терминалов, отключение файрвола либо внесение изменений в правила, чтобы разрешить входящие соединения на определенном TCP-порту.

На macOS-компьютерах зловред пока не работает, хотя на сервере с тулкитом был обнаружен файл Mach-O — написанный на Go 64-битный дроппер со встроенным эксплойтом CVE-2021-4034 и бэкдором, работающим по схеме bind shell. Как оказалось, вредоносная атака в этом случае невозможна из-за отсутствия утилиты pkexec; на Linux-машинах, где она есть, тот же эксплойт с успехом отрабатывает.

Расширения Chrome могут слить секреты URL через атаку по стороннему каналу

Как оказалось, расширения Chrome можно использовать для слива кодов авторизации, сеансовых ID и других секретов из URL любой открытой вкладки. Никаких специальных разрешений для этого не понадобится, только доступ к declarativeNetRequest API.

Этот механизм, пришедший на смену webRequest API, позволяет расширениям сообщать браузеру, что следует изменить или заблокировать на загружаемой странице (заголовки, реклама, трекеры).

Правила обработки запросов при этом добавляются динамически, а фильтрация осуществляется по регулярным выражениям, соответствующим подмножествам знаков, которые могут присутствовать на определенных позициях в URL.

Исследователь Луан Эррера (Luan Herrera) обнаружил, что блокировку, диктуемую правилами, Chrome производит почти мгновенно, за 10-30 мс, а остальные запросы выполняются дольше (~50-100ms) — из-за сетевых подключений. Эту разницу во времени расширение может использовать для бинарного поиска с целью посимвольного слива URL.

// extensions/browser/api/web_request/extension_web_request_event_router.cc:1117-1127
case DNRRequestAction::Type::BLOCK:
  ClearPendingCallbacks(browser_context, *request);
  DCHECK_EQ(1u, actions.size());
  OnDNRActionMatched(browser_context, *request, action);
  return net::ERR_BLOCKED_BY_CLIENT;

Оракул для подобной тайминг-атаки строится с использованием chrome.tabs.reload для перезагрузки страницы и перехватчика chrome.tabs.onUpdated, помогающего отследить событие status === "complete". Замер времени между reload и завершением загрузки покажет, заблокирован запрос или успешно обработан.

Повторение проверок и бинарного поиска позволяет получить полный URL (с довеском после «?»), затратив на каждый знак строки несколько прогонов. Таким образом, можно незаметно для пользователя украсть включенные приложением в адрес секреты — токены OAuth и сброса пароля, API-ключи, ссылки на контент, закрытый для поисковых систем.

Проверка PoC проводилась на Windows 11 24H2 с использованием Chrome разных версий:

  • 144.0.7559.97 (Stable)
  • 145.0.7632.18 (Beta)
  • 146.0.7647.4 (Dev)
  • 146.0.7653.0 (Canary)

В Google подтвердили возможность подобной атаки по стороннему каналу, но заявили, что решить проблему нереально.

RSS: Новости на портале Anti-Malware.ru