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

суббота, 31 марта 2012 г.

Blackhole + CVE-2012-0507 = Carberp

На этой неделе известный набор эксплойтов Blackhole обновился до версии 1.2.3 и в его составе появился новый эксплойт для Java на уязвимость CVE-2012-0507 (Java/Exploit.CVE-2012-0507). Первыми обратила внимание общественности на актуальность этой уязвимости компания Microsoft, которая опубликовала в своем блоге сообщение об интересном способе выполнения Java кода за пределами песочницы JRE (Java Runtime Environment).

Первые упоминания о боевом эксплойте для этой уязвимости появились от компании Immunity, которая выпустила специальный модуль для своего продукта Immunity CANVAS еще в начале марта 7.03.2012. Эта уязвимость была закрыта 15 февраля в рамках критического обновления от Oracle. Буквально вчера поздним вечером, на момент подготовки этой публикации, появился публичный эксплойт для CVE-2012-0507 в составе Metasploit Framework. Отдельно стоит отметить его кроссплатформенность и возможность эксплуатации на системах Windows, Linux, Solaris и OSX. Последняя особенно интересна в свете увеличения количества вредоносных программ для нее, распространяющихся в том числе и посредством эксплуатации Java уязвимостей. Эксплойт из Metasploit Framework выглядит очень похожим на тот, что был обнаружен в обновленном Blackhole и складывается впечатление, что он был рипнут по большей части от туда ;)

В последнее время я довольно часто писал об эксплойтах для Java и они действительно в последний год самые пробивные в инцидентах массового распространения вредоносных программ. Разработчики наборов эксплойтов, таких как Blackhole, используют только так называемые 1-day уязвимости, т.е. уже содержащие официальное исправление от разработчиков. Потому что использование 0-day слишком дорого для их целей и совершенно себя не окупает, но бывают исключения, когда 0-day попадает на паблик вместе с PoC. Использование уязвимости нулевого дня на данный момент можно чаще всего увидеть в целенаправленных атаках. Кстати довольно занимательный пост о ценах на 0-day и карме ресечеров можно почитать тут.

Вернемся к нашему эксплойту, на этой неделе было замечено снова распространение Win32/TrojanDownloader.Carberp через популярные веб-ресурсы, посредством внедрения iFrame конструкций для перенаправления на ресурс с набором эксплойтов.

Первым нам попался ресурс lifenews.ru, на котором содержался следующий iFrame:


Как видно из внедренного кода сразу происходила атака именно CVE-2012-0507, а доменное имя на котором был расположен Blackhole очень схоже с именем атакованного веб-ресурса. Результат выполнения кода в iFrame можно увидеть даже визуально на модифицированной оригинальной странице.


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

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

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

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

вторник, 2 августа 2011 г.

понедельник, 5 июля 2010 г.

Обновление IDA и Hex-Rays


Как-то неожиданно обновились на прошлой неделе сразу и IDA до версии 5.7, и Hex-Rays до версии 1.3 (еще обновился ARM Decompiler, но я его пока не использовал почти, только из любопытства немного покрутил). Hex-Rays, причем уже обновлялся относительно недавно до версии 1.2, где одним из главных нововведений была поддержка декомпиляции операций с плавающей точкой. Этот релиз больше похож на большой bugfix, где поправили много всяких недочетов и навели немного гламура на внешний вид декомпилированного листинга. Все гламурные рюшки версии 1.3 можно увидеть на сomparison Page. А changelog с багфиксами здесь.
Из важных нововведений для IDA, наконец-то сделали поддержку MMX/XMM регистров во строенном отладчике. Появилась возможность подгрузить отладочные символы и автоматически делать анализ кода для выбранного модуля в процессе отладки. Сильно обновился IDAPython до версии 1.4, там случился тоже большой багфикс и улучшалась скорость работы. А самое главное, теперь появилась нормальная дока по всем методам и классам поддерживаемым в IDAPython. Полный changelog здесь. Я уже давно перешел на использование IDAPython, ибо меньше времени и удобнее нежели IDC, думаю, что дальше развивать IDC нет смысла.
Еще интересно, что началось тестирование нового интерфейса написанного на QT и дающего возможность нормального GUI под все поддерживаемые платформы. Наконец-то у меня будет нормальная IDA на моем маке и без использования ВМ, а не это консольное убожество.
В этом году вообще чувствуется активная разработка и желание улучшить свои продукты со стороны разработчиков IDA, а ведь такими темпами и 6.0 не за горами. Интересно, когда они начнут нам анонсировать вкусности шестерки :)

понедельник, 1 февраля 2010 г.

Hex-Rays 1.2 have been released!

С сабжевым заголовком сегодня получил собственно письмо от граждан разработчиков, которые прислали мне его аж два раза. Первый раз как пользователю этого продукта, а второй как купившему IDA, они решили еще раз напомнить о существовании Hex-Rays :) Но сейчас не об этом, в этот раз в Rays довольно много существенных изменений, которые меня сильно порадовали и о которых не могу не рассказать.
Итак поехали обо всем по порядку:
- поддержка SSE scalar floating point, ну здесь в общем-то все понятно, теперь вместо asm-вставок того, что раньше не декомпилилось мы видим вполне читаемый код
- ура, теперь наконец-то есть нормальная поддержка условий вида ?: и целочисленного деления %, раньше вместо них было что-то монструозное
- реализована поддержка более 500 intrinsic functions для MS и Intel компиляторов
- преоптимизация при помощи нового микрокода, что позволит сворачивать код более компактно. Это круто, вот бы еще дали доступ к работе с этим микрокодом на уровне API и это пожалуй было бы очень интересно для оптимизации обфусцированного кода
В целом улучшений очень много и код выглядит заметно читабельнее неже ли от предыдущей версии, ну и пофиксили кучу всяких маленьких, но неприятных багов.
Подробнее о новинках, сравнение изменении с предыдущей версией