Программа: 
Microsoft Windows 2000 Advanced Server 
Microsoft Windows 2000 Datacenter Server 
Microsoft Windows 2000 Professional 
Microsoft Windows 2000 Server 
Microsoft Windows NT 4.0 Server 
Microsoft Windows NT 4.0 Server, Terminal Server Edition 
Microsoft Windows NT 4.0 Workstation 
Microsoft Windows Server 2003 Datacenter Edition 
Microsoft Windows Server 2003 Enterprise Edition 
Microsoft Windows Server 2003 Standard Edition 
Microsoft Windows Server 2003 Web Edition 
Microsoft Windows XP Home Edition 
Microsoft Windows XP Professional 

Три уязвимости обнаружено в Microsoft Windows в DCOM интерфейсе.
Удаленный атакующий может выполнить произвольный код на системе через
135-139, 445, 593 порты и в некоторых случаях через
80 (http) и 443 (https) порты. Уязвимости воздействует на DCOM (Distributed Component Object Model)
интерфейс внутри RPCSS службы и связаны с переполнением буфера и
неопределенной ошибкой при обработке RPC сообщений.
Две из обнаруженных уязвимостей связанны с переполнением буфера. В
результате удаленный атакующий может выполнить произвольный код на уязвимой
системе с root привилегиями. Третья может использоваться для аварийного
завершения работы RPCSS службы. Уязвимость может эксплуатироваться через 135 (tcp/udp), 137
(udp),138 (udp), 139 (tcp), 445 (tcp/udp), 593 (tcp) порты. Также если если на сервере
включена служба COM Internet Services (CIS), то уязвимость может
эксплуатироваться через 80 и 443 TCP порты. 

Уязвимость может быть воспроизведена 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 значением, атакующий может
контролировать выполнение программы непосредственно после переполнения.

  • Подпишись на наc в Telegram!

    Только важные новости и лучшие статьи

    Подписаться

  • Подписаться
    Уведомить о
    0 комментариев
    Межтекстовые Отзывы
    Посмотреть все комментарии