IT администратори, търсещи PuTTY в Google, може да видят убедителен фалшив резултат за изтегляне, смесен с легитимни връзки. Изследователи документираха кампания, която използва сайт с подобен на оригинала вид, за да достави злонамерен инсталатор за Windows, маскиран като популярния SSH клиент.
Инсталаторът отваря работещ PuTTY прозорец като примамка, докато тайно стартира отделна верига от зловреден софтуер във фонов режим.
Кампанията е насочена към хора, които използват инструменти за отдалечен достъп и системни инструменти като част от работата си. Отровен резултат от търсене води до фалшива страница на PuTTY, а нейната връзка за изтегляне предоставя троянизиран MSI инсталатор.
Страницата копира заглавието на истинския сайт за изтегляне на PuTTY, което помага на фалшивия резултат да изглежда правдоподобен. Този метод повтаря по-ранни кампании, включващи фалшиви PuTTY изтегляния, насочени към IT администратори, но новооткритата верига използва Node.js и различна командна система.
Анализатори от Unit 42 идентифицираха кампанията и съобщиха, че MSI инсталира обфускиран Node.js зареждач заедно с непроменена, подписана програма PuTTY 0.85.
Техните открития описват многоетапна инфекция, която може да даде на атакуващия възможност да изпраща нови JavaScript инструкции към заразения компютър. Докладът отбелязва също използването на Ethereum смарт договори за намиране на активния сървър за командване и контрол, или C2.
Хакери злоупотребяват с Google Търсене
Съобщеният сайт за доставка, puty[.]ink, имитира страницата за изтегляне на PuTTY. Кликването върху връзката за изтегляне извлича Putty-x86_64.msi от Backblaze B2 хранилище.
Когато жертвата отвори инсталатора, Windows Installer поставя четири файла в папка под директорията Local AppData на потребителя. MSI също така отваря putty.exe, легитимно, подписано от Sectigo копие на PuTTY 0.85. Тъй като програмата изглежда и работи нормално, потребителят може да повярва, че инсталацията е безопасна.
Междувременно инсталаторът стартира пакетен файл, наречен 44JYYsqg.cmd. Скриптът скрива конзолата си, проверява дали Node.js вече е инсталиран и изтегля официалния Node.js 18.20.5 runtime, ако не е.
След това използва малък JScript файл, за да стартира Node.js с обфускиран злонамерен код на JavaScript. Самият runtime е легитимен; опасността идва от скрипта на атакуващия и начина, по който се използва. Този подход прилича на други случаи, при които атакуващи използват Node.js като стартер на зловреден софтуер.
Вместо да разчита само на фиксиран сървърен адрес, вграден в зловредния софтуер, JavaScript зареждачът изпраща заявки към Ethereum смарт договор чрез седем публични RPC услуги.
Той сравнява отговорите и използва най-често срещания валиден URL като свой C2 адрес. Зловредният софтуер проверява за актуализиран адрес на всеки пет минути, което затруднява защитниците да разчитат само на блокирането на един сървър.
Техниката, известна като EtherHiding, се е появила и в други кампании, които скриват инфраструктура за зловреден софтуер в Ethereum. След като намери сървър, зловредният софтуер се свързва на всеки около 500 милисекунди.
Неговите заявки приличат на изтегляния на обикновени изображения или стилови файлове, като използват разширения като .png, .jpg, .css и .ico.
Ако сървърът върне повече от 10 байта, зареждачът предава отговора за изпълнение на JavaScript с достъп до функциите на Node.js. Това означава, че атакуващият може да изпраща нови възможности, без да подменя оригиналния инсталатор.
Защо IT екипите трябва да обърнат внимание
Откритията на Unit 42 описват команди за събиране на системни данни, включително операционна система, антивирусни продукти, членство в домейн, графичен хардуер и активни SMB сесии.
Изследователите също така наблюдаваха събиране на профили на браузъри и бисквитки, инсталиране на WebSocket пакет и PowerShell рутина, която заснемаше приблизително пет екранни снимки на работния плот в секунда.
Тези изображения бяха запазени като кодирани файлове във временната папка, което позволява почти мониторинг в реално време на екрана на потребителя. Кампанията не разчита на софтуерна грешка в PuTTY.
Тя зависи от това потребителят да се довери на резултат от търсене и да стартира инсталатор от фалшива страница. Това е особено тревожно за администраторите, чиито компютри може да съдържат сесии на браузъри, запазени данни за достъп или активни връзки към вътрешни системи.
Подобни примамки с резултати от търсене са използвани за доставка на троянизирани помощни програми, както се вижда в по-ранни кампании с фалшиви PuTTY и WinSCP, насочени към IT екипи.
Екипите трябва да насочват персонала към проверени софтуерни източници и да обмислят поддържането на одобрен софтуерен портал за често използвани инструменти.
Екипите по сигурността могат да разследват неочаквана node.exe активност от папките AppData на потребителя, особено когато тя работи с аргумент .ini файл.
Те трябва също така да прегледат стартиранията на MSI, които създават наречените файлове на кампанията, и да проверят за изходящ трафик към Ethereum RPC услуги от компютри, които нямат основание да ги използват.
Легитимната страница за изтегляне на PuTTY и официалният източник за издаване на Node.js могат да помогнат на потребителите да проверят откъде трябва да идва надеждният софтуер: официалният сайт на PuTTY и Node.js 18.20.5 за Windows.
Съобщението за кампанията на Unit 42 е достъпно на X. Познат прозорец на програма или валиден подпис на един обединен файл не доказва, че самият инсталатор е безопасен.
Индикатори за компрометиране (IoCs):-
| Тип | Индикатор |
|---|---|
| Фалшив сайт на PuTTY | puty[.]ink |
| Домейн за пренасочване | putredirhelps[.]online |
| Наблюдаван резервен C2 | presanis[.]com |
| Модел на хостване на MSI | hxxps[:]//<id>.s3.us-east-005.backblazeb2[.]com/ |
| Наблюдаван Backblaze bucket | mnb61ak51 |
| Ethereum четец на договори | 0x89F5664d6fD8d990FA04F53253Be4855ed481A74 |
| Избирател на функция | 0x7d434425 |
| Аргумент на кампанията за извикване на договор | 0x4e7b6e29ab5f4c01e3b9f86a3558a2d99ae0cbaf |
| Идентификатор на изграждане на кампания | 1835187f-121a-4103-832f-24649a461cac |
| Ethereum RPC крайни точки | mainnet.gateway.tenderly[.]co; rpc.flashbots[.]net; rpc.mevblocker[.]io; eth-mainnet.public.blastapi[.]io; ethereum-rpc.publicnode[.]com; eth.drpc[.]org; eth.merkle[.]io |
| Път на C2 заявка | /api/<4-byte-hex>/<client-UUID>/<4-byte-hex>.<png\|jpg\|gif\|css\|ico\|webp>?<key>=<build-id> |
| Име на MSI файл | Putty-x86_64.msi |
| Файлове на зареждача | 44JYYsqg.cmd; BdbEinqaL7.js; k3TjneJGcwI7.ini |
| Папка за стейджинг | C:\Users\<user>\AppData\Local\idejDHjFnNXb\ |
| Път на Node.js runtime | C:\Users\<user>\AppData\Local\idejDHjFnNXb\vXA8Jj\node.exe |
| Заглавие на прозореца на инсталатора | KS2FyWDqck |
| SHA-256 — злонамерен MSI | b59d9c911f11ddbe5ac0cd7e2e6e311093a44ac31453b5cab801c31f6a170750 |
| SHA-256 — пакетен зареждач | 71049ac72adad0c0c4c7a0763a4a9c806ba0687e7146237174d6252b45fb39db |
| SHA-256 — JScript трамплин | d5197f58b4c2d760f61f7cf0ff9e2a78fcaade12a05057d6e33e8e84c3be084d |
| SHA-256 — злонамерен код на JavaScript | cbc1f7909cb2460e4fb371f3159ea00a167eb4feefea2011f1f6eae3a3449ec6 |
Забележка: IP адресите и домейните са умишлено обезвредени (напр. [.]), за да се предотврати случайно разрешаване или хипервръзки. Възстановете ги само в контролирани платформи за разузнаване на заплахи като MISP, VirusTotal или вашия SIEM.
Актуализирайте защитите срещу нов зловреден софтуер веднага щом се появи. Интегрирайте информационни канали за заплахи (TI Feeds) с данни от 16K SOCs.