Об этой уязвимости нулевого дня в Windows стало известно еще 20 апреля, когда компания FireEye и агентство Bloomberg сообщили о неудачной кибератаке на правительственное ведомство зарубежного государства, обсуждавшее с США политику санкций против России. В причастности к содеянному, а также в попытках взлома спецслужб НАТО, госорганов Грузии, Польши, Венгрии в FireEye обвинили «русских хакеров» из группировки APT28. Атака была реализована с помощью ранее неизвестных уязвимостей CVE-2015-3043 в Adobe Flash и CVE-2015-1701 в Windows. Пользователя отправляли по ссылке на зараженный сайт, где скрипт JavaScript с помощью Flash-уязвимости подгружал в компьютер исполняемый файл, который посредством дыры CVE-2015-1701 в Windows повышал привилегии и похищал ключи шифрования. Компания Adobe в течение считанных часов устранила уязвимость во Flash, но в Microsoft не торопились и выпустили [патч][1] только накануне. В этом материале мы расскажем об основных особенностях данного бага.
#### Ценная gSharedInfo
Сначала следует описать некоторые структуры и механизмы, используемые для эксплуатации CVE-2015-1701 уязвимости. Без [печально известной][2] `win32k.sys` не обошлось и на этот раз, поэтому первым делом остановимся на структуре `win32k!tagSHAREDINFO`, которой отвечает символ `win32k!gSharedInfo`, а также на типе данных `HWND`, который с ней очень тесно связан. [![][3]][4] Наша `gSharedInfo` хранит указатели на различные связанные с окнами структуры и, что самое замечательное, многие из этих структур отображены в пользовательское пространство (смаплены в юзер-мод, по-нашему), причём соответствующий символ `user32!gSharedInfo` с некоторых пор (либо с висты, либо с семёрки) стал экспортируемым. [Читать дальше →][5]
[1]:
https://technet.microsoft.com/library/security/MS15-051
[2]:
http://www.securitylab.ru/news/472188.php
[3]: //habrastorage.org/files/2f9/e01/d11/2f9e01d11ae14fb1968afc035b733cd5.png
[4]:
http://habrahabr.ru/company/pt/blog/257879/
[5]:
http://habrahabr.ru/post/257879/#habracut