Поддельная страница загрузки PuTTY отдаёт техническим специалистам вредоносный установщик вместе с рабочей программой. Схема рассчитана на системных администраторов, инженеров и разработчиков, которым этот клиент удалённого доступа нужен каждый день. Сразу после запуска установщика на экране открывается знакомое окно PuTTY, поэтому человек уверен, что скачал оригинал.
Описание
Цепочка начинается с поисковой выдачи. Фальшивый сайт занимает высокие позиции по запросам о загрузке PuTTY, а заголовок его страницы дословно повторяет название официального ресурса, как показало исследование. Часть переходов идёт через сервисы отслеживания кликов, поэтому маршрут выглядит правдоподобно. Сам установщик лежит не на серверах атакующих, а в стороннем облачном хранилище. Встроенная в Windows проверка репутации файлов пропускает его без предупреждения.
При двойном щелчке установщик распаковывает четыре файла в скрытую папку внутри профиля пользователя. Один из них - неизменённая сборка PuTTY версии 0.85 с корректной цифровой подписью автора. Её запускают специально: жертва видит рабочее окно и продолжает сессию, не подозревая о втором процессе. Три других файла - командный сценарий, короткая прослойка на JScript (встроенный в Windows сценарный язык) и замаскированный под файл настроек скрипт на JavaScript. Вместе они образуют загрузчик.
Своя среда исполнения вместо вредоносного файла
Загрузчик обращается к официальному сайту Node.js (среда исполнения JavaScript) и скачивает её архив напрямую. Дальше распакованная подлинная программа получает управление и выполняет намеренно запутанный код атакующих. Приём называют "принеси свой интерпретатор": на диске не появляется ни одного вредоносного исполняемого файла, и средства защиты не находят привычных сигнатур. Скрытность усиливает командный сценарий: он перезапускает себя в свёрнутом окне и прячет консоль от пользователя. Ещё один короткий скрипт запускает следующий процесс невидимо и выводит его из дерева консольных приложений, чтобы след в системе выглядел безобидно.
Адрес командного сервера хранится в блокчейне
Управляющий адрес загрузчик получает из смарт-контракта (программы внутри блокчейна) в сети Ethereum. Запрос уходит одновременно к семи открытым узлам сети, а итог выбирается по совпадению ответов. Смена адреса каждые пять минут делает блокировку домена почти бесполезной. Отключить управление можно только вместе со всей публичной инфраструктурой, а при сбое загрузчик переходит на резервный адрес, прописанный в коде. Записи в блокчейне нельзя удалить или изменить по чьему-либо требованию, поэтому он остаётся доступным, пока существует сама сеть.
Опрос сервера идёт каждые полсекунды. Запросы маскируются под загрузку картинок и таблиц стилей, поэтому в сетевом потоке выглядят как обычная активность браузера. Любой ответ длиннее десяти байт исполняется как программа с полным доступом к системе. Оператор может наращивать возможности прямо на заражённой машине, не повторяя заражение.
Оператор присылает наборы команд, которые собирают сведения о компьютере: язык системы, модель видеокарты, установленный антивирус, принадлежность к домену, номер сборки Windows. Отдельные модули копируют профили браузеров и файлы сессий, объём выгрузки достигает сотен мегабайт. Ещё один сценарий на PowerShell (встроенная среда автоматизации Windows) делает снимки экрана примерно пять раз в секунду. Файлы ложатся во временную папку, и наблюдатель почти непрерывно видит рабочий стол жертвы.
Для организаций главная опасность - не заражение одной машины, а доступ, который получает оператор. PuTTY используют для подключения к серверам, коммутаторам и промышленному оборудованию. Захваченная рабочая станция администратора открывает путь к этим системам через сохранённые ключи и пароли. Выгрузка файлов cookie и профилей браузеров расширяет список доступных учётных записей: с ними злоумышленник заходит в корпоративные сервисы от имени сотрудника.
Отличительные признаки заражения заметны в журналах: запуск среды Node.js из пользовательской папки, обращения незнакомого процесса к публичным узлам Ethereum, короткая череда команд сбора информации за считанные секунды. Официальный установщик PuTTY несёт подпись автора программы; у поддельного подпись либо отсутствует, либо выдана неизвестному издателю. Поисковая выдача давно стала каналом доставки, и загрузка служебных утилит с посторонних страниц остаётся для атакующих удобной точкой входа.