TrickBot тихомълком се разви в по-скрита заплаха, превръщайки ежедневния DNS трафик в невидим канал за команди на зловреден код, което прави дейността му по-трудна за забелязване в натоварени корпоративни мрежи.

В скорошна кампания нов вариант беше забелязан да компрометира Windows системи и да използва DNS заявки и отговори за пренос на данни за командване и управление по начин, който се слива с нормалното търсене в интернет.

Това позволява на атакуващите да поддържат отдалечен контрол над компрометираните машини, оставайки под радара на много традиционни контроли за сигурност.

Зловредният код продължава да се насочва към потребители на Microsoft Windows, където може да предостави на атакуващия пълен контрол над устройството на жертвата, включително изпълнение на команди, зареждане на модули и инжектиране на код в други процеси.

По-ранните поколения на TrickBot разчитаха главно на HTTP трафик за комуникация със своите сървъри за управление, което правеше мрежовото засичане по-лесно.

В този последен анализ обаче анализатори от FortiGuard Labs на Fortinet наблюдаваха образци, които са преминали към DNS тунелиране за своя комуникационен слой, отбелязвайки забележителна промяна в похватите на семейството.

В доклад, споделен с Cyber Security News (CSN), Fortinet заявява, че този вариант на TrickBot използва модулен дизайн, така че атакуващите да могат да изтеглят, изпълняват или инжектират различни зловредни кодове въз основа на това какво искат да постигнат на компрометирания хост.

Някои модули се фокусират върху изпълнението на Windows команди и PowerShell, докато други поддържат техники като „process hollowing“, „process doppelganging“ и изпълнение на суров шел код (shellcode) директно в паметта.

Читателите, които искат по-широк поглед върху злоупотребата с DNS, могат да сравнят тази дейност с неотдавнашни публикации за това как хакери експлоатират DNS заявки за операции по командване и управление (C2), което подчертава как атакуващите превръщат протокола в оръжие за скрити канали за управление.

Въздействието върху жертвите надхвърля обикновената кражба на данни, тъй като високата оценка за сериозност на зловредния код отразява способността му да действа като гъвкава платформа за следващите етапи на атаката.

Веднъж инсталиран, TrickBot си осигурява постоянно присъствие (persistence) с помощта на Windows Task Scheduler, маскирайки се като на пръв поглед безобидна планирана задача с имена от рода на „Wireshark autoupdate #72784“, която се стартира при зареждане на системата и се повтаря на всеки няколко минути.

Той също така крие ключови конфигурационни детайли в NTFS Alternate Data Streams (алтернативни потоци от данни), за да избегне прости проверки на файлово ниво, на които защитниците биха могли да разчитат.

Преминавайки към DNS тунелиране, TrickBot също така усложнява реагирането на инциденти, тъй като зловредният трафик вече се смесва с рутинна дейност като търсене на домейни, от която повечето организации зависят всеки ден.

Тази тенденция отразява по-широката злоупотреба с DNS-базирани канали, наблюдавани в кампании, при които злонамерени субекти крият източване на данни или контролиращ трафик в полета на протокола, които изглеждат доброкачествени на пръв поглед, както е описано подробно в изследванията за хакери, експлоатиращи услуги за DNS тунелиране.

TrickBot превръща обикновения DNS трафик в скрит канал

В сърцето на стратегията на този вариант е способността му да опакова трафика за командване и управление в рамките на това, което изглежда като обикновени DNS заявки към домейн под контрола на атакуващия.

Преди да изпрати данни, TrickBot шифрова своя команден зловреден код с прост XOR ключ, преобразува резултата в шестнадесетичен формат и го структурира като дълъг низ от поддомейни, който периодично се разделя с точки, за да имитира вероятна структура на домейн.

Този низ след това се прикрепя към постоянния домейн „westurn.in“, създавайки DNS заявка, която изглежда нормална за много инструменти за мрежов мониторинг.

За изпращане на тези специално подготвени заявки зловредният софтуер разчита на Windows getaddrinfo() API и може да насочва трафика през публични DNS сървъри, включително този на 8.8.8.8, което допълнително слива дейността му с често срещаните модели в корпоративните мрежи.

Вътре в пакетите TrickBot използва малък протокол от три типа пакети, които поддържат данни за заявки, договаряне на размера и съдържание на отговора, с логика за фрагментиране за разделяне на по-големи зловредни кодове на управляеми части.

По време на един тест отне около четиридесет секунди за преместване на 1.2 MB файл през този DNS тунел, постигайки скорост от приблизително 30.7 KB в секунда – бавно, но напълно достатъчно за команди и модули, които не се нуждаят от висока скорост.

За контекст относно това как други семейства зловреден код възприемат подобни идеи, вижте проучванията, разкриващи тактиките за DNS тунелиране на Zloader, които описват сходни C2 модели в друго семейство заплахи.

От страна на отговора зловредният код крие върнатите данни в IP адресите на DNS отговорите чрез кодиране на байтовете на зловредния код в множество IPv4 записи.

TrickBot резервира битове в първия октет на всеки IP адрес като стойност на индекс, така че по-късно да може да сортира и възстанови оригиналния зловреден код, дори ако DNS средите пренаредят адресите по пътя.

След сортиране по индекс, той сглобява отново три байта данни от всеки адрес в буфер, изграждайки наново резултатите от командите или съдържанието на модула, изпратени обратно от симулирания сървър за управление.

Постоянно присъствие, модулно изпълнение и защити

След като стартира, TrickBot се уверява, че ще оцелее при рестартиране и опити за почистване, като създава планирани задачи чрез COM интерфейса на Task Scheduler и съхранява имената на задачите и изпълнимите файлове...