MS12-020 или червивый RDP


Вчера Microsoft выпустила очередную порцию патчей и среди них мое внимание особенно привлек MS12-020, который имеет критический статус. Уязвимость позволяет выполнить произвольный код на удаленной системе при мощи специально сформированного RDP пакета. Данной уязвимости подвержены все версии MS Windows в том числе и 64-битные версии. На самом деле в рамках патча MS12-020 было закрыто две уязвимости CVE-2012-0002 (RCE в RDP) и CVE-2012-0152 (DoS в Terminal Server). Меня больше интересует первая уязвимость, так как она гораздо более опасная и может повлечь за собой появление сетевых червей, которые будут ее активно эксплуатировать (на данный момент о случаях ее использования во вредоносных программах мне не известно).
Кстати относительно недавно уже закрывалась уязвимость MS11-065 (август 2011), которая позволяла осуществлять DoS (WinXP/2003) и была замечена в том же драйвере rdpwd.sys, в котором была найдена CVE-2012-0002. Эти изменения можно отследить по временным меткам в   rdpwd.sys до и после патча. А также в официальных списках изменений для MS11-065 и для MS12-020.

Собственно основные изменения были замечены в функции HandleAttachUserReq(), декомпилированный вариант которой выглядит следующим образом:
 
При сравнение исправленного драйвера и драйвера до патча, видно что изменений было произведено не так уж и много. 
Видно, что добавлена дополнительная проверка и освобождение памяти при помощи ExFreePoolWithTag():
Давайте теперь посмотрим на декомпилированный вариант этих изменений:

Именно отсутствие этой проверки может за собой повлечь возможность удаленного захвата памяти и возможность несанкционированного выполнения кода. Причем выполнения кода происходит в ядре.
Описание баги от автора (Luigi Auriemma)
Неплохой анализ CVE-2012-0152 (DoS в Terminal Server) можно найти здесь.
Еще один анализ CVE-2012-0002 здесь
DoS эксплойт для CVE-2012-0002 брать в metasploit

Комментарии

Популярные сообщения из этого блога

S.M.A.R.T. (часть 3). Расшифровка и понимание SMART атрибутов

S.M.A.R.T. (часть 2). Мониторинг BBU RAID контроллеров

Обзор системы хранения Intel SS4200-E начального уровня