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

в 9:15, , рубрики: badtunnel, windows, Блог компании Positive Technologies, информационная безопасность, разработка под windows, уязвимость, метки:

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

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

В чем проблема

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

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

Разбор возможной атаки

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

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

<img src=\10.10.10.10BadTunnel>

При обработке этого адреса первоначально будут отправлены запросы на порты 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 так объясняют возможность проведения описанной атаки:

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

Как защититься

Использование таких средств, как межсетевые экраны или NAT не может предотвратить атаки с применением уязвимости BadTunnel. По словам Яна Ю, причина этого кроется в том, что протокол UDP не устанавливает соединения, а используется для создания туннеля.

Microsoft опубликовала бюллетени безопасности MS16-063 и MS16-077, устраняющие ошибку в последних версиях Windows.
Суть этих обновлений заключается в том, что теперь периодическое определение имени WPAD выключено по умолчанию, а NBSTAT запросы из домашней сети также по умолчанию заблокированы. Эти изменения регулируются ключами реестра и делают невозможным установление UDP тоннеля для проведения атаки с использованием BadTunnel.

Однако уязвимость сохранилась в устаревших и ныне не поддерживаемых версиях ОС. В их числе Windows XP и Windows Server 2003. Пользователям этих систем для того, чтобы обезопасить себя, необходимо заблокировать порт UDP 137.

По словам Яна Ю, это не первая уязвимость, приводящая к возможности атак перехвата WPAD. Подобные случаи фиксировались в 1999, 2007, и 2012 году, когда произошел всплески активности червя Flame.

Существующие Proof-of-Concept скрипты не учитывают информацию об Transaction ID в NBSTAT запросе и основываются на огромном потоке поддельных ответов на запрос со всеми возможными значениями поля Transaction ID от 0 до 65535. Однако для успешного проведения атаки достаточно минимального количества поддельных пакетов.

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

Автор: Positive Technologies

Источник

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js