• XSS.stack #1 – первый литературный журнал от юзеров форума

Переполнение буфера в Adobe Reader и Acrobat

Одинокий Волк

CPU register
Забанен
Регистрация
16.05.2005
Сообщения
1 264
Решения
1
Реакции
3
Пожалуйста, обратите внимание, что пользователь заблокирован
adobe-acrobat-9.jpg

Программа:
Adobe Reader 7.x, 8.x, 9.x
Adobe Acrobat 7.x, 8.x, 9.x

Опасность: Критическая
Наличие эксплоита: Нет

Описание:
Уязвимость позволяет удаленному пользователю скомпрометировать целевую систему.
[New$paN]
Уязвимость существует из-за неизвестной ошибки. Удаленный пользователь может вызвать переполнение буфера и выполнить произвольный код на целевой системе.

Примечание: Уязвимость активно эксплуатируется в настоящее время.

URL производителя: www.adobe.com

Решение: Способов устранения уязвимости не существует в настоящее время. Производитель планирует выпустить исправление 11 марта 2009 года.

Журнал изменений:

20.02.2009
Изменена секция «Программа»,добавлена версия 7.x

Источник: www.securitylab.ru
 
Описание:
Уязвимость позволяет удаленному пользователю скомпрометировать целевую систему.

Уязвимость существует из-за неизвестной ошибки. Удаленный пользователь может вызвать переполнение буфера и выполнить произвольный код на целевой системе.
как я обожаю это описание :lol:
 
Появился патч исправляющий уязвимость. В данный момент патч доступен только для 9й версии Акро Ридера.
Для предыдущих версий требуется обновиться до последней версии и установить патч. Обновление заменяет библиотек AcroRd32.dll.
Размер распакованного файла около 19ти метров, 10 метров в архиве.
Когда вы откроете "плохой файл, появится всплывающее окно с текстом "Insufficient data for an image" и ничего больше показано не будет.

:zns5: Скачать|Download

Источник: http://vrt-sourcefire.blogspot.com/
 
0e980f773584cfd97e7104a6e22dcb7e - мд5сум патченной
583b4bde937ea4968d9af053643f11eb - мд5сум оригинала
версии эдентичны полностью включая версию продукта для которого выпущено+сами версии либ

:zns5: Скачать|Download - патченная ДЛЛ
:zns5: Скачать|Download - оригинальная ДЛЛ
 
а чему радоваться ? это дос сплоенты что бы что то получилось надо не хило изъебаца ... а именно в самом начале эксплуатации

Код:
00 01 40 00 00 33 33 33
собственно самое главное тут 33 33 33

Код:
00EDD519   8B41 1C          MOV EAX,DWORD PTR DS:[ECX+1C] <- как раз таки 33 33 33
00EDD51C   85C0             TEST EAX,EAX
00EDD51E   0F84 AC020000    JE AcroRd_1.00EDD7D0
00EDD524   8B4E 10          MOV ECX,DWORD PTR DS:[ESI+10]
00EDD527   8D0480           LEA EAX,DWORD PTR DS:[EAX+EAX*4]
00EDD52A   834481 EC 01     ADD DWORD PTR DS:[ECX+EAX*4-14],1
первая сложность в том что бы угадать значение так что бы по [ECX+EAX*4-14] была валидная память что бы потом её увеличить на единичку и что бы от этого ничего не было впринципе можно ... ( если можно заюзать спрей то в его адреса ) . кстати это иногда само по себе прокатывает, т.е. подбирается валидный адрес.

сложность номер два

Код:
00EDD76A   8B41 1C          MOV EAX,DWORD PTR DS:[ECX+1C] <- 0x333333
00EDD76D   8B56 10          MOV EDX,DWORD PTR DS:[ESI+10]
00EDD770   8D0480           LEA EAX,DWORD PTR DS:[EAX+EAX*4] <- 0xFFFFFF
00EDD773   8D4482 EC        LEA EAX,DWORD PTR DS:[EDX+EAX*4-14] <- 0x06EFFF80
00EDD777   8B50 04          MOV EDX,DWORD PTR DS:[EAX+4]
00EDD77A   85D2             TEST EDX,EDX

надо подобрать значение так что бы адрес был валидным и память была доступна для чтения у меня 0x06EFFF80+4 показывает на хип забитый 0x0d0d0d0d ( хз почему )

Код:
00EDD77A   85D2             TEST EDX,EDX
00EDD77C   74 0A            JE SHORT AcroRd_1.00EDD788
00EDD77E   8B68 10          MOV EBP,DWORD PTR DS:[EAX+10] <- 0x06EFFF80+0x10 тож должен быть валидным
00EDD781   890CAA           MOV DWORD PTR DS:[EDX+EBP*4],ECX

и в итоге мы пишем ecx полученое х#й знает от куда и мб вабще не управляемое ( это надо смотреть ) по адресу [EDX+EBP*4] равному 0х41414141

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

Код:
0094119A   FF7424 1C        PUSH DWORD PTR SS:[ESP+1C]
0094119E   57               PUSH EDI
0094119F   FF7424 1C        PUSH DWORD PTR SS:[ESP+1C]
009411A3   FF15 504B3501    CALL DWORD PTR DS:[1354B50]
если записать в 1354B50 свой адрес то можно передать управление, проблема лишь в том что бы найти зависимость с ecx в строке MOV DWORD PTR DS:[EDX+EBP*4],ECX
 


Напишите ответ...
  • Вставить:
Прикрепить файлы
Верх