МелкоМягкие опять радуют и с новой силой :). На этот раз в Microsoft Outlook Express глючит
отсутствие проверки длины буфера, в который
записывается имя файла, при обработке файлов *.jpeg
и *.bmp, приаттаченных к письму. Таким образом, если
отправить жертве письмо и прикрепить кнему любой
файл *.jpeg или *.bmp, имя которого превышает 256
символов, то можно спровоцировать переполнение
буфера. А так как Outlook Express автоматически пытается
открывать такие письма при переполнении буфера,
то можно добиться исполнения кода.
Пример подобного письма:

Content-Type: text/plain;
name=»hert.jpg»
Content-Transfer-Encoding: base64
Content-Disposition: attachment;
filename=»AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAA.jpg»

А вот чтобы реализовать
эксплойт — встаёт задача несколько более трудная.
Почему? Потому что адрес буфера начинается с ’00’, а
в начале его мы имеем строку ‘C:\TEMP’. Это строка
помещается в стек перед началом наших данных.
Поэтому для написания эксплойта придется
как-нибудь это обходить. Например, передавать
управление одной из функций, которая, в свою
очередь, переведёт точку исполнения порграммы в
начало переданного буфера сразу после строки
C:\TEMP. Дальнейшее использование кода может быть
различным. От диверсионных действий в лагере
противника 🙂 до загрузки на чужой компьютер
клиента удалённого доступа. Дерзайте :).

Оставить мнение

Check Also

Конкурс хаков: пишем на PowerShell скрипт, который уведомляет о днях рождения пользователей Active Directory

В компаниях часто встречается задача уведомлять сотрудников о приближающихся днях рождения…