Показаны сообщения с ярлыком Stuxnet. Показать все сообщения
Показаны сообщения с ярлыком Stuxnet. Показать все сообщения

понедельник, 6 августа 2012 г.

Flame: реконструкция ООП фреймворка

Уже много слов было сказано про червя Flame (Win32/Flamer), но почему то никто не публикует результаты более детального изучения кода этой вредоносной программы. А код у Flame между тем очень интересен и таит в себе еще не мало открытий для вдумчивых и усидчивых исследователей. Ведь не спроста он оставался незамеченным на атакованных системах долгое время, причем на этих системах стаяло антивирусное ПО некоторых известных вендоров, но сейчас все же не об этом ;)

Итак, в чем же связь между Flame, Duqu и Stuxnet? Так как нами были проанализированы все три вредоносные программы, то мы решили не просто описать свои внутренние ощущения, а подтвердить это родство техническими фактами.

Начнем с того, что код Win32/Flamer анализировать не очень приятно, даже при отсутствии жесткой обфускации. Объектно-ориентированный код схож с тем, что уже встречалось ранее в Stuxnet и Duqu, но однозначного сходства не так уж и много. В основном схожесть кроется в стиле кодирования и архитектуре этих вредоносных программ. Если в случае Stuxnet и Duqu ООП архитектура была построена на одном фреймворке и концепциях, то у Flame есть отличия. У всех трех вредоносных программ реализована сложная логика работы, а использование ООП концепций, реализованных на C++, заставляют разбираться в работе не только самой вредоносной программы, но и компилятора тоже. В качестве наглядного примера посмотрите на реконструкцию вызова метода Rc4_GetBufferSize() в модуле mssecmgr.ocx:


среда, 21 марта 2012 г.

Обнаружен новый драйвер для Duqu

Обнаружен новый драйвер (mcd9x86.sys) для Duqu, у которого дата компиляции соответствует концу февраля текущего года. До этого момента наборы компонентов Duqu, которые были у нас в распоряжении, датировались: 2010-11-03/2010-11-03/2011-10-17.


Собственно о чем это может говорить, фактов пока его использования у нас нет, да и подделать дату компиляции не так сложно. Но помимо этого есть еще небольшие интересные находки.

вторник, 1 ноября 2011 г.

Win32/Duqu REsearch: что скрывает RPC

Мы продолжаем исследование Win32/Duqu, в этом посте поговорим об особенностях использования RPC-протокола. Во-первых, сразу хочу отметить,  что реализация RPC-протокола еще раз подтверждает сходство кода Duqu и Stuxnet. RPC-протокол, был одной из наиболее интересных частей Stuxnet. В Duqu используется, лишь часть от полного функционала этого протокола, который подробно описан в нашем исследовании "Stuxnet under the Microscope" (стр. 56-57).

Проанализировав реализацию RPC-сервера в одном из компонентов Duqu, который реализует лишь локальную часть протокола и сравнив в BinDiff две основные процедуры, мы получили интересные результаты:

среда, 26 октября 2011 г.

Как определить точную дату заражения Win32/Duqu

После того, как появилась первая информация о Win32/Duqu мы не могли пройти мимо, так как нам было очень интересно составить собственные впечатления об этой угрозе (да и challenge со Stuxnet напомнило). Начали копать, оказалось, что код Duqu имеет очень много общего со своим старшим братом Stuxnet. В процессе анализа складывается впечатление, что некоторые части просто полностью повторяют код из Win32/Stuxnet. Код драйверов практически идентичен, еще из наблюдений скорее всего для обоих разработок был использован какой то общий фреймворк для разработки всякого.

С того момента, как мы начали исследовать Win32/Duqu, нас интересовал вопрос, каким образом можно идентифицировать точную дату заражения компьютера этой вредоносной программой (т.к. дроппер нам до сих пор найти не удалось). Такая информация, прежде всего, полезна для проведения криминалистической экспертизы и восстановления картины произошедших событий. У нас появилась идея о том, что если Duqu хранит информацию о моменте своего самоудаления, то должна быть информация, с которой начинается этот отсчет (варианта могло быть два, либо счетчик, либо дата заражения). Нам удалось обнаружить интересную вещь, на данный момент у нас есть несколько наборов сэмплов с различных зараженных машин. И оказалось, что в процессе заражения формируется так называемая main.dll, в которой сохраняется точная дата заражения в UTC-формате. Ниже мы приводим декомпилированный код, осуществляющий проверку этой самой даты:

среда, 19 октября 2011 г.

Win32/Duqu: новый виток развития истории со Stuxnet

Буквально несколько часов назад компания Symantec обнародовала довольно интересный исследовательский отчет "Duqu: the precursor to the next Stuxnet". Собственно повествует он о вредоносной программе, которая своей реализацией сильно напоминает все известный Stuxnet. Причем настолько напоминает, что местами, кажется, что этот код писала одна и таже группа разработчиков. Сценарий работы очень схож со Stuxnet, но кода много и поэтому на 100% процентов для себя еще не подтвердил идентичность авторов. Из интересного вот такая вот сравнительная таблица:

вторник, 29 марта 2011 г.

Ralph Langner o PLC Payload из Stuxnet

Ralph Langner довольно неплохо разложил все по полочкам о PLC Payload из Stuxnet:

среда, 19 января 2011 г.

Эксплойт для MS10-073 таки попал на паблик

Сегодня на Metasploit появился эксплойт для повышения привилегий до SYSTEM, через эксплуатацию уязвимости в неправильной обработки keyboard layout (win32k.sys). MS10-073 известен тем, что применялся червем Stuxnet для повышения привилегий на системах Win2000/WinXP и уже много где достаточно подробно разобран (анализ от vupen).

В Canvas эксплойт для этой уязвимости попал примерно за месяц до выхода патча, но публичного эксплойта так никто и не сочинил. Возможно по причине того, что эксплойт не универсален и работает только на Win2000/WinXP. Появление этого эксплойта в Metasploit связано с PoC, который разработал Ruben Santamarta aka reversemode и положил на паблик на прошлой неделе.

А вот уязвимость с переполнением стека при обработке SystemDefaultEUDCFont (CVE-2010-4398) по прежнему не закрыта, а ведь прошло у больше двух месяцев.

среда, 15 декабря 2010 г.

Дождались или уязвимость в Task Scheduler закрыта

Не прошло и нескольких месяцев, как вчера вышел MS10-092, закрывающий последний 0-day, эксплуатирующийся червем Stuxnet для повышения привилегий до уровня системы на осях Vista/Win7.
Что интересно эта уязвимость стала эксплуатироваться руткитом TDL4 с конца ноября для инсталляции на системы Vista/Win7.



Где-то в конце ноября появился публичный эксплойт и примерно через несколько дней мы обнаружили первые экземпляры TDL4, эксплуатирующие эту уязвимость. Возможно эти события никак и не взаимосвязаны, т.к. в CANVAS рабочий сплойт попал на много раньше, да и в принципе уже многие его расковыряли сами в тельце Stuxnet. Кстати уязвимость эксплуатируется достаточно просто и код получается универсальным и для x86 систем, и для x64.

Что стало наиболее приятным для меня во всей этой эпопее с сотрудничеством с MS, нас таки отметили в списке с благодарностями:


Но в принципе, иначе и быть не могло, т.к. мы единственные кто предоставили рабочий PoC код еще в сентябре, а не только описание уязвимости.

MS10-92 - это не единственная уязвимость закрытая вчера и с полном списком можно ознакомиться здесь.

воскресенье, 28 ноября 2010 г.

Два 0-day, о которых пока молчит MS

На прошлой неделе был опубликован PoC на интересный 0-day, суть которого заключается в недостаточном контроле входных параметров функции RtlQueryRegistryValues() в итоге получаем классическое переполнение стека в ядре и права SYSTEM у нас в руках. Эксплуатировать уязвимость достаточно просто,т.к. в ядре нет различных препятствий мешающих эксплуатации, как в пользовательском режиме. Не буду тут подробно описывать эту уязвимость, так как все уже есть.

Второй интересной новостью стало появление публичного PoC для уязвимости в Task Scheduler, которая была обнаружена в коде червя Stuxnet и известна уже как минимум с конца лета (с этого же времени MS тоже в курсе).

Обе эти уязвимости прекрасно работают на большинстве распространенных версий винды и позволяют повысить локальные привилегии до SYSTEM в обход UAC. Но кроме бюллетеней CERT, пока нет официальных бюллетеней со стороны MS, в прочем и дат по их закрытию тоже. А злоумышленники тем временем имеют вполне себе неплохие инструменты для "тихой" инсталляции всякого зверья.

суббота, 13 ноября 2010 г.

SCADA и Stuxnet

Не так давно я уже выкладывал ролик с демонстрацией того, что делает Stuxnet при модификациях вносимых им в параметры SCADA системы. Правда он был в плохом качестве и был заснят одним из посетителей VB'2010 на мобильный телефон. Разобрать, что там происходит на самом деле было достаточно проблематично и вот наконец авторы того доклада решили обновить свою видео демонстрацию и на этот раз уже с преферансом и блудницами :)

среда, 3 ноября 2010 г.

Stuxnet under the microscope (revision 1.2)

Сегодня обновили наше исследование "Stuxnet under the microscope" до версии 1.2, внесли немного косметических правок. Но самое главное добавили описание последней 0-day уязвимости, которая пока не была озвучена подробно, речь идет о повышении привилегий через Task Scheduler. В нашем отчете мы подробно рассмотрели то, как червь Stuxnet эксплуатирует эту уязвимость для повышения привилегий под Vista/Win7. Все использованные вектора для атаки червем Stuxnet выглядят следующем образом:

пятница, 22 октября 2010 г.

Вчера довелось прочесть лекцию в МГУ

Вчера прочитал лекцию в стенах ВМиК МГУ в рамках цикла семинаров "Технологии разработки и анализа программ". Хотя я изначально я предупреждал организаторов, что тема моего доклада будет отличаться от тематики семинара и в основном я хотел бы поговорить о целенаправленных атаках на примере червя Stuxnet, проблемах реверсинга больших программ и о возможных сценариях развития кибервойн, но их это не остановило. На мой взгляд получилось интересно и пока меня на втором часу лекции не прервали организаторы :), я никак не мог остановится, настолько у меня накопилось много информации и мыслей по этой теме. А прервать им меня пришлось, так как семинар состоит из двух частей, первая это доклад, а вторая собственно дискуссионная часть.


пятница, 1 октября 2010 г.

Another report about Stuxnet

Сегодня Symantec наконец выпустили свой репорт о Stuxnet, не смотря на то, что мы их опередили у них раскрыта SCADA составляющая гораздо подробнее (во всем остальном наш отчет лучше :)). Поэтому всем интересующимся рекомендую к прочтению "W32.Stuxnet Dossier".
Ну, а на сладкое демонстрация последствий заражения PLC контроллера с VB'2010 ;)

среда, 29 сентября 2010 г.

Unpatched 0-day's, Stuxnet and M$

Не для какого уже давно не секрет,что как только появилась информация об использовании червем Stuxnet не закрытых уязвимостей, множество исследователей по разные стороны баррикад стали их искать. Кому-то удалось их найти, а кому-то нет, но не понятно, когда они будут закрыты. Обе уязвимости используются червем для повышения локальных привилегий в системе при своей инсталляции в систему.


понедельник, 27 сентября 2010 г.

Засветился на НТВ сегодня немножко :)

Не успел прийти сегодня на работу, как понабежали журналисты и начали допрашивать насчет червя Stuxnet. Говорят наш отчет даже читали :)

пятница, 24 сентября 2010 г.

Stuxnet Under the Microscope

Вчера вечером мы закончили подготовку достаточно серьезного исследования по анализу червя Win32/Stuxnet. Самым сложным было подготовить сам отчет, т.к. он постоянно разрастался, потому как хотелось описать все, но описать все, таки не получилось. Некоторые подробности внедрения вредоносного функционала в SCADA остались за кадром (ну нету у нас реактора для тестов :)). Также мы не стали публиковать описание еще двух 0-day уязвимостей, которые пока до сих пор не закрыты и MS попросила этого не делать. Одна из них находится в win32k.sys и служит для повышения локальных привилегий в процессе инсталляции на операционные системы Win2000/WinXP. А вторая поинтереснее, т.к. позволяет повысить привилегии на Vista/Win7, через уязвимость в Task Scheduler. Пока про эти уязвимости больше ничего не скажу, всему свое время ;)
Искренне считаю, что мы провели полезное исследование и смогли правильно преподнести его результаты, поэтому крайне рекомендую вам с ним ознакомиться.

среда, 21 июля 2010 г.

Новая багофича от MS (CVE-2010-2568) или LNKpokalipsis

Буквально недавно была обнаружена уязвимость в обработке LNK-файлов и их отображением. Но самой уязвимости уделяется мало внимания, в основном весь шум вокруг Win32/Stuxnet и использованных валидных сертификатов для подписи компонентов этого зловреда. А тем временем эта уязвимость уже появилась в публичном доступе. Сначала в виде PoC, а потом и в виде модуля для Metasploit. MS, как в прочем и обычно, пофиг на критичность этой уязвимости и она вероятнее всего выпустит патч не раньше 10 августа. А для WinXP SP2 патча вообще не будет, хотя как не странно на ней еще есть пользователи и их не так мало, как хотелось бы. Подтверждение тому распределение угрозы по оконным версиям от Symantec, где именно WinXP SP2 имеет большую долю зафиксированных инцидентов.  
В качестве векторов использования этой уязвимости могут быть не только USB-накопитили, но и сетевые ресурсы. Например, в Metasploit эксплуатация происходит через WebDAV. Работает уязвимость примерно так:



Речь идет не о банальном переполеннии или неразименованном указателе, все гораздо хуже, т.к. уязвимость by design так сказать (уязвимы все версии винды). Т.е. разработчики прохлопали ушами, что такой путь могут использовать злоумышленники для установки всякого вредоносного. Хотя может все гораздо хуже и это просто очередной бэкдор оставленный в системе по просьбе NSA? Боюсь правды мы не узнаем никогда. Давайте теперь поговорим непосредственно о технических деталях работы этой уязвимости.
CVE-2010-2568 – уязвимость находится в обработчике LNK-файлов, о точнее связана с процессом отображения Control Panel shortcuts, когда происходит их загрузка в память процессом Explorer.exe. Уязвимой являться библиотека shell32.dll в которой происходит некорректная обработка. Ниже приведенная схема иллюстрирует потоки данных между вызываемыми функциями в процессе работы эксплойта (подсмотренно здесь). Успешным выполнением эксплойта является загрузка сторонней динамической библиотеки при помощи WinAPI функции LoadLibraryW.
Собственно именно ниже приведенный код и заставляет выполниться вредоносную DLL, этот код находиться в функции _LoadCPLModule, которыя вызывается из CPL_LoadCPLModule.
В эксплойте в составе Metasploit для эксплуатации уязвимости генерируется URL следующего вида "{webdav}{exploit_base}\\{exploit_dll}", такой подход к эксплуатации этой уязвимости сильно расширяет границы ее использования за пределы USB-накопителей.