PDA

Просмотр полной версии : PDF + EXE


d_x
07.06.2010, 17:53
В начале года несколькими людьми была найдена "уязвимость" (http://blog.didierstevens.com/2010/03/29/escape-from-pdf) в формате PDF, позволяющая запускать произвольный код при открытии файла, которая на самом деле является документированной возможностью формата. Всего было опубликовано два типа уязвимостей: с использованием и без использования JavaScript.
После беглого изучения формата и специфики этой проблемы была реализована программа для внедрения exe файлов в тело pdf и последующего запуска exe при открытии. Конечно, при открытии pdf выдается предупреждение:

http://kaimi.ru/wp-content/uploads/2010/06/example-launch.png

Однако, существует возможность вывести произвольный текст в окне предупреждения (актуально для Acrobat Reader 9.*, в 8.* весь внедренный код вываливается целиком, и пользователь, скорее всего, что-нибудь заподозрит).

Программа обладает следующими возможностями:

Задание произвольного текста сообщение (лучше не делать текст длинным)
Задание имени временного vbs файла (используется для создания exe файла из тела pdf)
Задание имени временного exe
Возможность удаления exe через заданный интервал времени


Интерфейс программы предельно прост и выглядит следующим образом:

http://kaimi.ru/wp-content/uploads/2010/06/exe2pdf.png

Скачать: здесь (http://kaimi.ru/wp-content/uploads/2010/06/PDFRunner.zip)


===== Как это работает? =====
Программа открывает заданный PDF-документ и ищет в нем максимальное значение номера объекта. После этого создается собственный объект с командой запуска, и его выполнение указывается в корневом объекте PDF, т.е запуск происходит сразу после открытия документа.

Было много проблем плана "а как же спрятать exe?". Алгоритм таков: если пользователь разрешает запуск объекта, открывается cmd.exe, создающая небольшой vbscript-сценарий.

Этот сценарий запускается и начинает искать в текущей директории pdf-документ с самой последней датой изменения (очевидно, это будет наш коварный pdf). Сценарий открывает этот файл и считывает из него заданный диапазон байтов (это второй vbs-файл, спрятанный в конец pdf-документа) и записывает его в виде нового vbscript-сценария, после чего запускает. На этом работа первого сценария завершена.

Второй сценарий содержит тело exe-файла, запакованное в массив байтов. Сценарий из массива создает exe-файл и запускает его, после чего удаляет себя и первый сценарий. Если была задана опция удаления exe, то сценарий ждет заданное время и пытается удалить также созданный exe-файл.

Окно командной строки при всех этих манипуляциях появляется всего на пару секунд.

Такой подход позволяет спрятать в pdf-документе exe-файл любого размера и за несколько секунд запустить его.

Berman
07.06.2010, 17:57
Отлично, спасибо. Т.е. теперь можно exe запустить прям с сайта?
http://site.com/test.pdf
и откроется exeшник?

Kaimi
07.06.2010, 18:08
Нет, pdf создается в временной директория браузера, а vbs скрипт создается в директории с запускаемым файлом браузера.
Хотя, наверное можно адаптировать.

Ноль
07.06.2010, 18:16
теперь школьнеки будут спамить пдфками

d_x
07.06.2010, 18:18
Не будут, ограничения большие, по крайней мере, пока. Из браузера запуск не произойдет, из рар- или зип-архива - тоже не произойдет. Только если открыть пдфку из какой-то директории.

Jingo Bo
07.06.2010, 23:53
Мне недавно через pdf залепили в hosts переадресацию на свежинькие фейки для контакта + порно банер, причём не слабый. Открыл сайт(не порно), тут же в браузере(FF) открылся pdf документ, там каким то раком какой то код умудрился выполнить через "Выполнить" открытие через блокнот файл hosts, отредактировать и закрыть, а потом скачать порно банер. Благо секундное открытие блонота с файлом hosts заметил. Но было дикое удивление.

d_x
08.06.2010, 00:39
Мне недавно через pdf залепили в hosts переадресацию на свежинькие фейки для контакта + порно банер, причём не слабый. Открыл сайт(не порно), тут же в браузере(FF) открылся pdf документ, там каким то раком какой то код умудрился выполнить через "Выполнить" открытие через блокнот файл hosts, отредактировать и закрыть, а потом скачать порно банер. Благо секундное открытие блонота с файлом hosts заметил. Но было дикое удивление.
Командной строке через pdf можно передать vbscript, и она его выполнит. Проблема в том, что если прятать большой exe внутри pdf - приходится разбивать всю структуру запуска на несколько vbscript'ов, потому что командной строке нельзя передавать чересчур длинный аргумент.

Jingo Bo
08.06.2010, 02:17
Хех) Придётся вырубать плагин для pdf от греха подальше. А вообще круто сделали, обычный юзер даже не поймет что отредактировали в блокноте открыв обычный pdf, единственно в "Выполнить" палево остаётся:)

shell_c0de
08.06.2010, 02:30
Почти у всех связках этот сплойт юзается щас ....
например свеженкая стата и пробив каждого..

Sploit: Loads:
Opera_telnet 1
MS09-002 13
javad 110
pdf_exp 267
mdac 691