Критическая уязвимость Windows позволяет перехватить сетевой трафик


Xuanwu LabИсследователями из Xuanwu Lab была обнаружена серьезная ошибку в реализации протокола NetBIOS, использующейся в Windows. Уязвимость получила статус критической. Ее назвали BadTunnel — позволяет злоумышленникам полностью контролировать сетевой трафик жертвы.

Помимо HTTP и HTTPS-запросов BadTunnel позволяет злоумышленникам контролировать и всю сетевую активность операционной системы. Например, вмешиваться в загрузку системных обновлений и процесс получения списков сертификатов. Уязвимы все версии ОС Windows без исключения.

Исследователи заверяют, что перенаправление трафика жертвы может осуществляться с помощью поддельного WPAD-файла (Web Proxy Auto Discovery) или ISATAP-сервера.

Эксперты рассмотрели атаку с применением уязвимости BadTunnel. Для ее осуществления жертву необходимо убедить открыть хотя бы один UNC или URI путь (это может быть адрес вредоносного сайта, адрес папки или документа). В этом случае будет использоваться NetBIOS over TCP/IP, а не стандартные сокеты.

Путь должен содержать в себе ip-адрес сервера атакующего, например:

  • <img src=\\10.10.10.10\BadTunnel>


При обработке этого адреса первоначально будут отправлены запросы на порты:

  • 139 - NetBIOS Session;

или

  • 445 - Microsoft-DS Active Directory, Windows shares.


В случае, если данные порты будут закрыты, то жертва отправит NetBIOS Name Service (NBNS) NBSTAT сообщение на 137 порт, тем самым открывая UDP-тоннель и позволяя злоумышленнику слать запросы прямиком жертве, минуя NAT и Firewall.

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

Через некоторое время после принятия уязвимым компьютером фиктивного ответа на WPAD запрос, он начнет искать настройки прокси по адресу WPAD. Обнаружив их нахождение, произойдет подключение. В результате чего злоумышленник получит полный контроль над трафиком жертвы.

Как объясняют эксперты Positive Technologies, проведение выше описанной атаки возможно поскольку:

  • Поле Transaction ID в NBNS-запросах не рандомизируется, а инкрементируется, поэтому атакующий может его подобрать.
  • NBSTAT и NB-запросы инкрементируются вместе (один счётчик).
  • NBSTAT-сообщения по умолчанию могут уходить во внешнюю сеть.
  • Broadcast-запросы могут получать ответы из внешней сети.
  • NBNS использует исключительно 137 порт и UDP (и на клиенте, и на сервере), который не поддерживает сессий и состояний.


Защититься от атаки с применением уязвимости BadTunnel, использовав межсетевые экраны или NAT - не представляется возможным. Причина здесь кроется в том, что протокол UDP не устанавливает соединения, а используется для создания туннеля.

После того, как Microsoft опубликовала бюллетени безопасности MS16-063 и MS16-077, устраняющие ошибку в последних версиях Windows, уязвимости остались подвержены лишь устаревшие и неподдерживаемые версии операционных систем Windows.

Напомним, выпущенные обновления установили значение периодического определения имени WPAD, как "выключено по умолчанию", а также заблокированы по умолчанию NBSTAT запросы из домашней сети. Теперь эти изменения регулируются ключами реестра и делают невозможным установление UDP тоннеля для проведения атаки с использованием BadTunnel.

Пользователям устаревших и не поддерживаемых версий ОС, в целях безопасности, необходимо заблокировать порт UDP 137.

Эксперты Positive Technologies разработали ряд сигнатур для IDS Suricata, позволяющих обнаружить стадии подмены NetBIOS имен и установления UDP тоннеля, блокирующие попытки подмены адреса WPAD и ISATAP и сигнализирующие о возможной попытке атаки. Они доступны в официальном Twitter и github-аккаунте.


Обновлено (07.07.2016 23:00)