Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Ataques Web Conceptos
Ataques Web Conceptos
andresoliva
[Consultor SI - TI]
Febrero de 2013
Conceptos iniciales
Qu es una aplicacin Web?
HTTP
RFC 2616
Protocolo de capa de aplicacin, no orientado a
conexin
pregunta-respuesta cliente-servidor
A travs de HTTP se puede acceder a recursos
apuntados por URLs (Uniform Resource Locators)
El avance paralelo de otras tecnologas (SSL, JS,
Flash, PHP, etc.) permiti tener lo que hoy es Internet.
Peticin HTTP
GET / HTTP/1.1
Host: www.udenar.edu.co
User-Agent: Mozilla/5.0 (X11; Ubuntu; Linux i686; rv:16.0)
Gecko/20100101 Firefox/16.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: es-MX,es-ES;q=0.8,es-AR;q=0.7,es;q=0.5,enUS;q=0.3,en;q=0.2
Accept-Encoding: gzip, deflate
Proxy-Connection: keep-alive
Cookie: HstCfa1617468=1347378695655;
HstCla1617468=1347378695655; HstCmu1617468=1347378695655;
HstPn1617468=1; HstPt1617468=1; HstCnv1617468=1;
HstCns1617468=1;
c_ref_1617468=http%3A%2F%2F190.66.7.7%3A8082%2Focara%2Fad
mocara.php
Ethical Hacking: Enfoque Prctico
Peticin HTTP
Todos los mensajes HTTP contienen una o ms
cabeceras, separadas por un salto de lnea, seguido de un
mensaje de cuerpo opcional.
La primera lnea siempre ser:
Un verbo que indica el mtodo HTTP usado.
La URL solicitada
Versin del protocolo (1.0 o 1.1)
Otros datos interesantes en la cabecera HTTP:
Referer
User Agent
Host
Cookie
Ethical Hacking: Enfoque Prctico
Respuesta HTTP
HTTP/1.1 200 OK
Date: Mon, 22 Oct 2012 20:31:47 GMT
Server: Apache/2.2.17 (Ubuntu)
X-Powered-By: PHP/5.3.5-1ubuntu7.11
X-Pingback: http://www.udenar.edu.co/xmlrpc.php
Vary: Accept-Encoding
Content-Length: 55674
Content-Type: text/html; charset=UTF-8
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" dir="ltr" lang="es-ES">
........
Respuesta HTTP
La primera lnea de una respueta HTTP siempre ser:
Versin del protocolo (1.0 o 1.1)
Nmero que indica el cdigo HTTP obtenido como
respuesta (1xx informacin, 2xx peticin servida
satisfactoriamente, 3xx redireccin, 4xx error, 5xx error
en el servidor para atender la peticin)
Una razn a la repuesta (texto)
Otros datos interesantes en la cabecera HTTP:
Server
Set-Cookie
Pragma
Content-Length
Ethical Hacking: Enfoque Prctico
Mtodos HTTP
GET y POST
HEAD similar a GET, se utiliza como mtodo de
prueba antes de hacer una peticin.
TRACE diagnstico
OPTIONS para preguntarle al servidor por los
mtodos HTTP soportados por el servidor
PUT subir contenido (peligrosisisisimo)
Estos son los mtodos ms relevantes relacionados con
la seguridad en aplicaciones Web.
Cookies
Permiten enviar datos desde el servidor al cliente para
que este los almacene y reutilice en el futuro.
Vehculo de muchas vulnerabilidades
Headers involucrados:
Set-cookie
o Expires
o Domain
o path
o secure
o HttpOnly no puede ser accedida a travs de JS
en el cliente
Cookie
Ethical Hacking: Enfoque Prctico
Escudriar y perfilar
Metodologa a seguir:
Infraestructura
o Servidor (/pentest/enumeration/web/)
./httprint -h 200.21.87.170 -s signatures.txt
./whatweb 200.21.87.170
o Puertos nmap
o Banners
telnet 200.21.87.170 80 (nc 200.21.87.170 80)
HEAD / HTTP/1.0
o Buscadores (google, bing, shodan)
o DNS (/pentest/enumeration/dns/)
./dnsrecon.py -d udenar.edu.co -n 200.21.87.163 -t std -g
Ethical Hacking: Enfoque Prctico
Escudriar y perfilar
./dnsmap udenar.edu.co
Aplicacin
o Automatizadas
Nikto (/pentest/web/nikto/)
./nikto.pl host udenar.edu.co
Joomscan (/pentest/web/joomscan/)
./joomscan.pl u www.dominioconjoomla.com
wpscan (/pentest/web/wpscan/)
./wpscan.rb -u www.udenar.edu.co
o Wappalyzer http://wappalyzer.com/download
o Crawling --> httrack
Ethical Hacking: Enfoque Prctico
Escudriar y perfilar
Utilizacin de proxy para capturar trfico HTTP
Herramientas: BurpSuite, ZAProxy, ParosProxy, etc.
Usaremos BurpSuite.
http://www.portswigger.net/burp/download.html
java -jar burpsuite_v1.4.jar
BurpIntruder - Payloads
Preset list el ms simple, configura una lista predefinida
de tems a probar.
Runtime file Carga los datos desde un archivo y se
entregan a cada peticin en tiempo de ejecucin, cada
payload es leido lnea por lnea.
Custom iterator Genera permutaciones personalizadas
de acuerdo a una plantilla. Por ejemplo si el id de usuario es
la cdula, este payload puede recorrer todos los nmeros de
una longitud definida.
Character substitution Reemplaza caracteres
individuales desde un payload fuente con algunas reglas
predefinidas, muy til para realizar ataques de contraseas ya
que puede generar variaciones importantes de diccionarios.
Ethical Hacking: Enfoque Prctico
BurpIntruder - Payloads
Case substitution dem anterior, con reglas predefinidas.
Recursive grep A travs de grep, se capturan porciones
de la respuesta del servidor para utilizarla como peticin en la
siguiente consulta.
Illegal unicode Reemplaza cada paylaod fuente con
caracteres ilegales. Sirve para verificar validaciones de
campos de entrada y auditar filtros basados en este tipo de
caracteres.
Character blocks Genera bloque de caracteres de un
tamao especfico. Sirve para detectar buffer overflow.
Numbers Genera nmeros de forma aleatoria o
secuencial en un formato especfico
Ethical Hacking: Enfoque Prctico
BurpIntruder - Payloads
Dates Genera fechas entre un rango especfico, en un
intervalo especfoc o en un formato especfico.
Brute forcer Genera un conjunto de payloads de una
longitud especfica que contenga todas las permutaciones del
set de caracteres especificados
Null payloads
Taller
Seleccionar un objetivo
Practicar la metodologa expuesta
Recolectar la mayor cantidad de informacin e importarla
al framework dradis.
Utilizar BurpSuite para descargar el sitio completo.
andresoliva
[Consultor SI - TI]
310 501 9219
Jaime.andres.oliva@gmail.com
Gracias !!!!!