Исследователи из Sophos изучили повадки Qakbot — модульного Windows-зловреда, который, несмотря на почтенный возраст, сохранил свою актуальность как угроза. Троян даже стал еще более агрессивным в отсутствие основных конкурентов — сошедшего со сцены Trickbot и потерявшего былую мощь Emotet.
Дебютировавший как банкер вредонос за десять с лишним лет научился воровать и другую информацию, а также регистрировать клавиатурный ввод, открывать бэкдор, избегать обнаружения и, следуя примеру Trickbot и Emotet, загружать другие вредоносные программы, в том числе шифровальщиков.
Разбор недавних атак Qakbot, он же QBot, QuackBot и Pinkslipbot, показал, что он по-прежнему распространяется через спам, доставляет различную полезную нагрузку и сканирует сети жертв в поисках слабых мест. Вредонос также сохранил способность к самораспространению через перехват переписки своих жертв в Outlook и рассылку поддельных реплик на найденные входящие сообщения.
Как оказалось, такие зловредные письма используют форму reply-all («ответить всем»); в них даже цитируется легитимное сообщение, на которое троян отозвался от имени жертвы. Фальшивое послание лаконично: оно состоит из одной фразы и ссылки (URL или хотлинк), указывающей на веб-ресурс с архивным файлом, содержащим вредоносный документ в редком формате .xlsb (Excel Binary Workbook).
Примечательно, URL в письмах Qakbot обычно включают несколько слов на латыни, как в этом примере Sophos (nulla quia — «никаких ибо», eum — «ему»):
Как и следовало ожидать, при открытии xlsb-файла пользователя попросят включить режим редактирования и активировать макрос, запускающий цепочку заражения. Опасная функциональность Microsoft Office по умолчанию отключена, а скоро, видимо, и вовсе исчезнет из пользовательского интерфейса.
При установке Qakbot создает на диске C: папку с произвольным 5-значным именем для своих файлов, а затем начинает собирать подробную информацию о зараженной машине. Каждые пять минут работающий в памяти троян (DLL загружаются в память процесса Exporer.exe или Msedge.exe с помощью regsvr32) пытается связаться со своим сервером.
В ответ на присланные данные зловреду отдают дополнительные модули, которые тоже загружаются в память по методу process hollowing (создание нового экземпляра запущенного процесса в состоянии ожидания и замена легитимного кода в памяти вредоносным). Экспертам удалось выявить три таких компонента:
- инжектор, внедряющий код для кражи паролей в веб-страницы Facebook, Microsoft, Google и систем онлайн-банкинга;
- сканер сети, использующий протокол ARP;
- модуль-спамер, который пытается подключиться к SMTP-серверу (заданный список содержит десяток позиций) и начать рассылку вредоносных писем.
Зловредные коды и C2-коммуникации тщательно маскируются с использованием обфускации и шифрования. Аналитикам пришлось изрядно повозиться, чтобы добраться до ключевых строк кода Qakbot, параметров конфигурации и вшитых адресов центра управления.
Зловред также умеет скрывать обращения к API Windows с помощью хеш-таблиц — похожий механизм использует Dridex. Кешируя данные в системном реестре, троян шифрует их ключом, сгенерированным в ходе заражения. При выполнении многих функций он использует команды WMI, которые тоже шифруются (по методу XOR).
Обмен с C2-сервером осуществляется по HTTPS (с TLS-щифрованием); каждое послание кодируется по base64 уникальным ключом. Сохраняемую локально информацию вредонос тоже шифрует, генерируя для этого отдельный ключ.
Не исключено, что авторы Qakbot-атак подрабатывают, продавая доступ к взломанным сетям. Экспертам попадались сэмплы, пытавшиеся загрузить на хост маячок Cobalt Strike, который можно потом использовать для дальнейшего проникновения в сеть.