Security Lab

Подробности удаленного переполнения буфера в RPC DCOM

Дата публикации:11.09.2003
Дата изменения:17.10.2006
Всего просмотров:3078
Опасность:
Наличие исправления:
Количество уязвимостей:1
CVE ID: Нет данных
Вектор эксплуатации:
Воздействие:
CWE ID: Нет данных
Наличие эксплоита: Нет данных
Уязвимые продукты:
Описание: Уязвимость может быть воспроизведена DCERPC "bind" пакетом, за которым следует специально сформированный DCOM object activation request пакет. Управляя длиной поля внутри активационного пакета, пользователь может перезаписать произвольные части динамической памяти и выполнить произвольный код на уязвимом сервере.

Посылая серию пакетов, можно вызвать исключение в пределах обычного RtlAllocateHeap:

PAGE:77FC8F11 mov [ecx], eax
PAGE:77FC8F13 mov [eax+4], ecx
Контролируя значения eax и ecx, можно записать данные в произвольные части памяти. Произвольный код может выполнятся различными способами, например через unhandledexceptionfilter или заблокированный PEB указатель. В этом случае проще всего перезаписать указатель внутри перезаписываемого .data раздела внутри RPCSS.DLL.
.data:761BC254 off_761BC254 dd offset loc_761A1AE7 ; DATA XREF:
sub_761A19EF+1C_r
.data:761BC254 ; sub_761A19EF+11D_w
...
.data:761BC258 off_761BC258 dd offset loc_761A1B18 ; DATA XREF:
sub_761A19EF+108_w
.data:761BC258 ; sub_761A1DCF+13_r
Перезаписывая offset x761BC25 нашим выбранным EIP значением, атакующий может контролировать выполнение программы непосредственно после переполнения. Дополнительные подробности см. в источнике сообщения.
Ссылки: Microsoft RPC Heap Corruption Vulnerability - Part II