Критична уразливість дозволяє перехоплювати весь мережевий трафік користувачів Windows



Дослідники з ІБ-підрозділу компанії 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.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 так пояснюють можливість проведення описаної атаки:

  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-аккаунте.
Джерело: Хабрахабр

0 коментарів

Тільки зареєстровані та авторизовані користувачі можуть залишати коментарі.