1. Если вы только начинаете программировать на ассемблере и не знаете с чего начать, тогда попробуйте среду разработки ASM Visual IDE
    (c) на правах рекламы
    Скрыть объявление

# Adobe PDF/CFF exploit (CVE-2010-1797)

Тема в разделе "WASM.HEAP", создана пользователем kaspersky, 5 сен 2010.

  1. kaspersky

    kaspersky New Member

    Публикаций:
    0
    Регистрация:
    18 май 2004
    Сообщения:
    3.006
    мыщъх чуть не поперхнулся увидав, что кал уже месяц как не ловит эту заразу, что очень странно и вообще подозрительно. ну оригинальные сплоиты, опубликованные в сети, ловит только половина антивирусов, что говорит об их качестве и сигнатурном алгоритме детекции. и даже не сигнатурном, а вообще галимом. бракоделы!!! если выдернуть фонт из оригинального pdf и воткнуть его в другой pdf, но сплоит будет работать как и прежде, а вот куча антивирусов сядет на измену -- типа знать не знаю, ведать не ведаю.

    а вот мудрый индус из симантека (хотя какой он индус как уже давно американец?) распарсил CFF и отвалидировал аргументы, в результате чего он ловит (в теории) все модификации. на практике же выяснилось, что и симантек лgжает если перемудрить с форматом, но это не косяк того индуса, это косяк парсера pdf, который уже писал совсем другой человек.

    короче, с опубликования дыры прошло полгода как. больше месяца с появления публичных сплоитов, а вся антивирусная индустрия до сих пор эту заразу не ловит. граждане, я фигею (наш тим поймал этого зверя на январском билде, но только x86 версию, для яблочников сейчас срочно пишется поддержка ARM'а и ROP'а -- просьба не считать саморекламой ибо если продукт стоимостью $70k лажает как антвирь, продающийся в супермаркете, то всем разработчикам дружно дают мегапесды).

    но это все лирика. лучше за баб поговорим. нет, баб мы трогать не будем, ибо такого оргазма мыщъх давно не испытывал и нах эти бабы когда у нас супер сплоиты есть (где искать не скажу, найдете сразу максимум на третьей минтуте гугления).

    так вот. за сплоит. оригинальное семейство нацелено на iPod и iPhone. стало быть, это ARM. ну что мыщъх ARM'а не видел что-ли?! щас мы это дело задизамблируем хоть в hiew'e, хоть в IDA, хоть даже в GNUARM. какие сложности?!

    а вот такие!!! шелл-код построен по ROP технологии уже знакомой нам, хакерам, по атакам типа ret2libc. это короче когда в вместо машинных команд идут аргументы и адреса возврата, указывающие куда-то внутрь системы. то есть без самой системы это ни за что не отладить. а система на себя дебаггер устанавливать не позволяет.

    но!!! этот сплоит как раз и проявляет себя тем, что снимает блокировку от установки левых программ!!! получается так! качаем pdf, открываем его на iPhone. сплоит ломает iPhone, после чего мы ставим туда gdb и шелл и дебажим этот самый сплоит :derisive:

    а дальше?! а дальше вот что:

    привожу кусок чтобы было понятно как оно работает.

    00000000h
    POP {R4-R7,PC}
    31606FADh
    00000000h
    00000000h
    00000000h
    POP {R0-R3,PC}
    09100638h -> "/System/Library/PrivateFrameworks/IOSurface.framework/IOSurface"
    00000000h
    00000000h
    00000000h
    BLX R4 -> dlopen()
    POP {R4,R5,R7,PC}
    31606FADh
    00000000h
    00000000h
    POP {R0-R3,PC}
    09100678h -> "/System/Library/Frameworks/IOKit.framework/IOKit"
    00000000h
    00000000h
    00000000h
    BLX R4 -> dlopen()
    POP {R4,R5,R7,PC}

    и вот такого шелл-кода там только мала часть. потом идут либы, скачивающие другой дроппер, и дальше уже начинается классика. благо там они писана на си (вроде) и потому их уже дизассемблировать проблем нет:


    а теперь самое важное!!! непатченный Adobe пробивается даже при отключенной жабе, флеше и т.д. и т.п. короче, если есть встроенный косячный CFF фонт (а он достаточно часто встречается) -- то это песец. и ведь антивирусы не ловят.

    но это фигня. щас выяснилось, что Adobe, Apple и MS использовали оперсорурсную библиотеку с кузни в которой эта дыра и была (кстати давно закрытая). но вот в коммерческих бранчах исправления не перекочевали и теперь этой напасти подвержен не только один PDF, а очень много разных приложений юзающих CFF.

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

    P.S. появилась инфа, что и андроид тоже подвержен атаке. мужики, у кого он есть -- проверьте, а ?!
     
  2. Folk Acid

    Folk Acid New Member

    Публикаций:
    0
    Регистрация:
    23 авг 2005
    Сообщения:
    432
    Адрес:
    Ukraine
    Так а не проще ли было бы (в-теории) отреверсить бажную библиотеку, понять как работает бага, а не эксплоит, и написать эмулятор баги и ловить _исключения_?
     
  3. kaspersky

    kaspersky New Member

    Публикаций:
    0
    Регистрация:
    18 май 2004
    Сообщения:
    3.006
    Folk Acid
    > Так а не проще ли было бы (в-теории) отреверсить бажную библиотеку,
    чего ее реверсировать? оренсоурсная она. причем пофиксенная самими разработчиками. задолго до.

    > понять как работает бага,
    там короче есть структура INDEX. это в общем массив. если в стек не влезеает, то... переполнение. вот только это ARM. и стек там неисполняемый. какие будут предложения? ну конечно же ROP, ибо зверь известный...

    то есть с багой все понятно. а вот что делает сплоит? а вот его очень секусально реверсить... но это можно понять только попробовав!

    > а не эксплоит, и написать эмулятор баги и ловить _исключения_?
    а чего их ловить? парсим CFF и валидируем аргументы. благо спекка есть. но возникает вопрос - что успел натворить сплоит и как его вычистить из системы? а без анализа сплоита это сложно сделать....
     
  4. Folk Acid

    Folk Acid New Member

    Публикаций:
    0
    Регистрация:
    23 авг 2005
    Сообщения:
    432
    Адрес:
    Ukraine
    предлагаешь написать трейсер для андроид?
     
  5. TermoSINteZ

    TermoSINteZ Синоби даоса Команда форума

    Публикаций:
    1
    Регистрация:
    11 июн 2004
    Сообщения:
    3.449
    Адрес:
    Russia
    kaspersky
    Ну это уже проще. ) Чаще всего как раз сложнее понять почему и как происходит эксплуатация. Чем потом разреверсить шелкод.
    :-)
    А вообще CFF - это такое гавно я вам скажу.. Ппц просто. Структура - по удобству хуже чем PE формат. (чисто мое мнение)
     
  6. Folk Acid

    Folk Acid New Member

    Публикаций:
    0
    Регистрация:
    23 авг 2005
    Сообщения:
    432
    Адрес:
    Ukraine
    Разве для того люди гробят зрение, чтобы до маразма копаться в чужом дерьме?

    Не спорю, полезно, чтобы были идеи и держать себя в форме.
     
  7. kaspersky

    kaspersky New Member

    Публикаций:
    0
    Регистрация:
    18 май 2004
    Сообщения:
    3.006
    TermoSINteZ
    >> то есть с багой все понятно. а вот что делает сплоит?
    > Ну это уже проще. )
    сразу видно, что месье даже в глаза это не видел ;)
     
  8. dZentle_man

    dZentle_man New Member

    Публикаций:
    0
    Регистрация:
    24 авг 2008
    Сообщения:
    414
    kaspersky,
    Судя по тому, что мыщъх не просил проверить сплоит на iPhone, последний у него таки есть)
     
  9. TermoSINteZ

    TermoSINteZ Синоби даоса Команда форума

    Публикаций:
    1
    Регистрация:
    11 июн 2004
    Сообщения:
    3.449
    Адрес:
    Russia
    kaspersky
    Кстати - давай сэмпл для адроида :-) Проверю.
     
  10. kaspersky

    kaspersky New Member

    Публикаций:
    0
    Регистрация:
    18 май 2004
    Сообщения:
    3.006
    dZentle_man
    > Судя по тому, что мыщъх не просил проверить сплоит на iPhone, последний у него таки есть)
    в виде эмулятора: http://developer.apple.com/iphone/library/documentation/xcode/conceptual/iphone_development/125-Using_iPhone_Simulator/iphone_simulator_application.html
     
  11. Enterado

    Enterado New Member

    Публикаций:
    0
    Регистрация:
    25 дек 2008
    Сообщения:
    99
    Так и андроед есть в виде эмулятора.
     
  12. dZentle_man

    dZentle_man New Member

    Публикаций:
    0
    Регистрация:
    24 авг 2008
    Сообщения:
    414
    Вот именно, поэтому и предположил что мыщъх предпочел тестить на реальном аппарате)
     
  13. kaspersky

    kaspersky New Member

    Публикаций:
    0
    Регистрация:
    18 май 2004
    Сообщения:
    3.006
    dZentle_man
    > Вот именно, поэтому и предположил что мыщъх предпочел тестить на реальном аппарате)
    у меня филька. причем его в качестве холодного оружия юзать можно. зато и работает месяц без подзарядки. при моей кочевой жизни это актуально
     
  14. dZentle_man

    dZentle_man New Member

    Публикаций:
    0
    Регистрация:
    24 авг 2008
    Сообщения:
    414
    И че, желания попробовать ифон/ипод не возникает?)
     
  15. bendme

    bendme New Member

    Публикаций:
    0
    Регистрация:
    10 мар 2009
    Сообщения:
    179
    А вот как ищут баги в adobe?
     
  16. TermoSINteZ

    TermoSINteZ Синоби даоса Команда форума

    Публикаций:
    1
    Регистрация:
    11 июн 2004
    Сообщения:
    3.449
    Адрес:
    Russia
    bendme
    Методом проб и ошибок :-)
     
  17. Satsura

    Satsura S4(uR4 __r00tw0rm__

    Публикаций:
    0
    Регистрация:
    22 апр 2010
    Сообщения:
    377
    Адрес:
    Узбекистон, бляать!!11 :D
    >>А вот как ищут баги в adobe?

    -Как и в других компаниях. В основом используются 3 метода.
    1) Stupid Fuzzing - основывается на тупой генерации специально заготовленных пакетов, файлов с целью выяснения багов. Например pdf. Программа (Fuzzer) перебирает и последовательно подставляет сгенирированные файлы программе-жертве в надежде что программа скажет : "Мяу!". Процесс долговременный. Поэтому приходится запасаться терпением.

    2) Clever Fuzzing - "Умный Фаззинг". Алгоритм тот же, только вот данные и адресса можно динамически изменять [с умом ест-но]. Причем круг поиска ошибок значительно сужается. Процесс отлова сокращается как минимум в 4-6 раз.

    3) Прямыми руками и прокачанной головой. Самый Трудоемкий процесс, требующий не только высокой квалификации, но и везения. Само название говорит само за себя. Если вы не боитесь заработать геморой и красноглазие, то способ как раз для вас. Лично я выбираю именно это способ, так как считаю его полным ДЗЕНОМ.

    ЗЫ.: Хотя и Fuzzing это "тупой" способ нахождения ошибок, примерно 70% современных современных багов(эксплойтов) находится(разрабатывается) таким вот незамысловатым образом;)

    Зы.: У Криса вроде была статья про универсальный поиск ошибок в двоичном коде;)
     
  18. izl3sa

    izl3sa New Member

    Публикаций:
    0
    Регистрация:
    22 апр 2010
    Сообщения:
    164
    Адрес:
    Spb
    Satsura
    бе, в js vm акробата сломаешься пока разберешься =)