Аудит кода выявил 21 уязвимость в почтовом сервере Exim

Аудит кода выявил 21 уязвимость в почтовом сервере Exim

Аудит кода выявил 21 уязвимость в почтовом сервере Exim

Аудит кода популярного почтового сервера Exim выявил 21 уязвимость, о которых ранее ничего не было известно. Некоторые из этих брешей можно использовать в связке для удалённого выполнения кода на целевом сервере, для чего даже не требуется аутентификация.

Разработчики уже успели выпустить патчи с версией Exim v4.94.2, посоветовав пользователям как можно скорее установить обновление. Более того, теперь все версии, выпущенные до 4.94.2, признаны устаревшими.

«Апдейт будет включён в ряд дистрибутивов. Вам остаётся лишь установить вышедшие обновления», — рекомендует один из девелоперов Exim Хайко Шлитерман.

Аудит кода Exim провёл исследователь из компании Qualys, в результате чего обнажились более двух десятков уязвимостей, получивших коллективное название «21Nails». Большая часть брешей затрагивает все версии почтового сервера.

Десять выявленных дыр можно использовать удалённо, а некоторые баги даже позволяют злоумышленнику получить права root в атакуемых системах:

  • CVE-2020-28017 — численное переполнение в receive_add_recipient();
  • CVE-2020-28020 — численное переполнение в receive_msg();
  • CVE-2020-28023 — возможность чтения за пределами границ в smtp_setup_msg();
  • CVE-2020-28021 — возможность удалённой инъекции кода;
  • CVE-2020-28022 — возможность чтения и записи за пределами границ в extract_option();
  • CVE-2020-28026 — инъекция в spool_read_header();
  • CVE-2020-28019 — сбой при сбросе указателя функции (после ошибки BDAT);
  • CVE-2020-28024 — переполнение буфера в smtp_ungetc();
  • CVE-2020-28018 — брешь «Use-after-free» в tls-openssl.c;
  • CVE-2020-28025 — возможность чтения за пределами границ в pdkim_finish_bodyhash().

Другие 11 дыр эксплуатируются только локально, большинство связано с конфигурацией по умолчанию или с типичной уязвимой настройкой. Технические подробности брешей доступны (TXT) на сайте Qualys.

TrickBot спрятал команды в DNS и научился обходиться без HTTP

TrickBot обзавёлся новым способом связи с командным сервером: вместо привычного HTTP вредонос использует DNS-туннелирование. Команды и украденные данные теперь маскируются под обычные DNS-запросы — попробуй отличи атаку от сетевой рутины.

Исследователи из FortiGuard Labs обнаружили, что TrickBot шифрует данные с помощью XOR-ключа 0xB9, переводит их в шестнадцатеричный формат и дробит на части.

Получившиеся строки становятся поддоменами адресов злоумышленников — например, westurn.in. Запросы могут отправляться через публичные DNS-серверы вроде 8.8.8.8.

 

Ответы устроены ещё хитрее: вредонос кодирует данные внутри IPv4-адресов, используя старшие биты каждого октета как метки для сборки фрагментов. Один пакет позволяет передать до 183 байт. Если DNS-сервер перемешает ответы, TrickBot расставит их в правильном порядке самостоятельно.

Скорость такого туннеля достигает примерно 30,7 Кбайт/с. Этого достаточно, чтобы загрузить модуль размером 1,2 Мбайт менее чем за минуту. Не оптоволокно, конечно, но для доставки вредоносной нагрузки вполне бодро.

При этом старые привычки TrickBot не забыл. Он сохранил прежнюю структуру команд, умеет загружать модули, внедрять код в процессы, запускать PowerShell и выполнять машинный код.

 

Для закрепления в системе малварь создаёт задания планировщика с безобидными названиями вроде Wireshark autoupdate #<число>. Они запускаются каждые пять минут и при старте Windows. Сведения о задании и путь к файлу прячутся в альтернативных потоках NTFS $TASK и $FILE.

Строки и названия Windows API внутри образца зашифрованы, а нужные функции определяются во время работы по хешам. Аналитикам оставили настоящий технический квест.

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

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