ॐ॒॑॓॔='ەۖۗۘۙۚۛۜ۞ۣ۟۠ۡۢۤ♞98ecf2b˿̴̵̶̷̸̡̢̧̨̛̖̗̘̙̜̝̞̟̠̣̤̥̦̩̪̫̬̭̮̯̰̱̲̳̹̺̻̼͇͈͉͍͎̀́̂̃̄̅̆̇̈̉̊̋̌̍̎̏̐̑̒̓̔̽̾̿̀́͂̓̈́͆͊͋͌̕̚ͅ͏͓͔͕͖͙͚͐͑͒͗͛ͣͤͥͦͧͨͩͪͫͬͭͮ͘͜͟͢͝͞͠͡';alert( ॐ॒॑॓॔)
Mostrando las entradas con la etiqueta chrome. Mostrar todas las entradas
Mostrando las entradas con la etiqueta chrome. Mostrar todas las entradas
martes, 10 de enero de 2017
Ataqué zombie en javascript (Simulación de DDoS).
lunes, 9 de enero de 2017
El peligro de un hoax- El truco de Homero Simpson para tener gasolina gratis en México.
domingo, 15 de mayo de 2016
Comprometiendo la privacidad de un usuario con una sencilla extensión para chrome
Antes que nada quiero dejar en claro que todo lo expuesto a continuación es para fines educativos y no para
uso indebido o para fines lucrativos. No me hago responsable del mal uso o de las consecuencias que puedan
llegar a suceder si el método aquí descrito es aplicado de manera errónea o incorrecta.
Ahora sí, empecemos :)..
Primero que nada, ¿Qué es una extensión para chrome?, simple, y tal como lo define google, son "pequeños programas que incorporan nuevas funciones al navegador para personalizar tu experiencia de navegación.", es decir, son esos pequeños programas que pueden cumplir funciones tales como:
- bloqueo de publicidad (Adblock Plus)
- protección contra sitios web fraudulentos o con mala reputación (Avast Online Security)
- etc.
Pues sí, son esas cositas que muchas veces agregamos a nuestro navegador chrome desde este sitio web sin ser conscientes de lo que ello implica.
Pero tranqui sigue leyendo, y te aseguro, que la próxima vez que veas una extensión que te dice te hará ver como todo un 5up3r h4x0r N30, te sacara de la soltería y te hará billonario, te la pensaras dos veces y no la instalaras ;).
Como dije que esto se expone solo con fines educativos, no publicare una extensión en la store de google, esto para evitar que la aplicación sea instalada por alguien que no leyo este post antes, y por lo tanto desconoce lo que puede llegar a suceder si la tiene instalada (Naaa la verdad solo quiero ahorrarme 5$), pero la dejare disponible para descargar desde este link.
bueno el primer paso para lograr el cometido es obvio, tienes que descargar la extensión, una vez descargada sigue estos pasos para instalarla:
- Escribe en tu barra de direcciones chrome://extensions/ y da enter
- Veras un listado con todas las extensiones que tu navegador tiene instaladas, ahora tienes que arrastrar a esta pantalla la extensión que descargaste y listo, ya haz instalado la extensión que te hará ver como un 5up3r h4x0r N30, te conseguirá novia y te hará billonario.
No te creas jeje :P, La verdad la aplicación a simple vista no hace nada del otro mundo, solo te cambia el fondo de todos los sitios web que visitas, cambia el color de letra y remueve todas las imágenes, es decir hace que las paginas web que visitas se vean así:
pero, ¿Qué te asegura que eso es todo lo que hace? nada, solo un análisis exhaustivo de dicha extensión te lo puede decir, así que a ello, vayamos nuevamente al listado de extensiones que tenemos instaladas en nuestro navegador (chrome://extensions) copiemos el ID (fnogiidjfnmmjllpiifaifkbcgagcdim) de la extensión llamada "5up3r h4x0r N30", busquemos la carpeta con ese nombre dentro de nuestro sistema (Un locate 'fnogiidjfnmmjllpiifaifkbcgagcdim' en sistemas basados en linux bastara), una vez encontrado analicemos primeramente el archivo manifest.json:
Este archivo es el único que debe estar presente en toda WebExtension. contiene los metadatos básicos acerca de la extensión, como su
nombre, versión, y los permisos que esta requiere. También provee los
enlaces a otros archivos de la extensión que analizaremos más adelante.
Las partes más interesantes en un manifest.json son los permisos y los enlaces a otros archivos .js, como podemos ver, nuestra aplicación llamada
"5up3r h4x0r N30" tiene permisos para:
Las partes más interesantes en un manifest.json son los permisos y los enlaces a otros archivos .js, como podemos ver, nuestra aplicación llamada
"5up3r h4x0r N30" tiene permisos para:
- Alterar todos los sitios web que visitamos (http://*/*/ y https://*/*/)
- mostrar notificaciones
- e interactuar con el sistema de pestañas del navegador.
Otra de las secciones interesantes del manifest.json es la que se encarga de la lógica de ejecución de nuestra extensión, es decir, background, la cual enlaza a un archivo llamado background.js (No puedo explicar a detalle como es la anatomía de un manifest.json aquí, pero si quieres puedes profundizar leyendo la doc oficial de google).
Bueno, ahora que sabemos que nuestra extensión puede alterar todos los sitios web que visitamos y que el manifest.json apunta solo al archivo background.js, pues analicemos dicho archivo:
Ok, es muy claro, este archivo hace uso de la chrome.tabs API que nos permite crear, modificar y reordenar las pestañas del navegador, ahora ya sabemos porque la extensión solicitaba el permiso tabs en la sección permisos del manifest.json. Para ser más especifico el código de la imagen se activa cuando alguna pestaña del navegador se actualiza, una vez activada ejecuta la función callback que se le pasa como parámetro a addListener, dicha función callback nuevamente usa la chrome.tabs API pero esta vez usa el método executeScript que lo que hace es básicamente inyectar código javascript en una página, y aunque existe la posibilidad de inyectar código directamente con este método, nuestra extensión no lo hace de esa forma, sino que hace uso de otro archivo llamado evil.js que es el que contiene el código javascript que se inyecta a la pagina cuando se abre una nueva pestaña o se actualiza una ya abierta, ahora que sabemos eso, miremos este otro archivo y veamos que es lo que hace:
Bueno, para empezar observamos que de la linea 1-5 se encuentra el código de la biblioteca jquery, que esta vez por ser una extensión que yo mismo les proporciono les aseguro no contiene ninguna linea de código malicioso (Esto no siempre es así, y lo correcto seria comprobar la integridad de dicha librería y de cualquier otra, siempre), sabiendo esto, prosigamos con las siguientes lineas, de la linea 7-10 vemos un setInterval que lo que hace es repetir cada 500 milisegundos la función callback que se le pasa como parámetro, dicha función no hace otra cosa que alterar nuestro color de fondo, color de letra, y remover las imágenes de la web que visitamos,es decir, es básicamente lo que sabemos según la descripción (Te hará ver un "5up3r h4x0r N30") hace nuestra extensión una vez la instalamos, pero ¡epa! y ¿esa ultima linea?, parece que tampoco tiene nada malicioso escondido, pero, analizando bien que es lo que hace con ese eval te darás cuenta que permite que cualquiera que sepa que usas esa extensión y haga que visites un enlace que tenga algo parecido a http://example.com#[payloadJS] podría ejecutar sin tu consentimiento código javascript y sí, es aquí en donde esta pequeña extensión pasa a poner en riesgo tu privacidad (credenciales) y la podríamos considerar como una extensión de "chrome maliciosa", sin embargo, eso lo sabemos porque hemos echo un análisis que aunque no del todo profundo, si suficiente para entender las implicaciones que puede traernos el tenerla instalada, en fin, ya para ir concluyendo queda recomendarte que o bien, cada que te dispongas a instalar una extensión para chrome de una fuente no confiable, la analices meticulosamente o no la instales, porque sí, esta extensión fácilmente evade los controles de seguridad
de google al no tener en su propio código ninguna linea
maliciosa, lo que significa que fácilmente puede estar disponible en la store de google, es decir, puede ser usada por el creador (Usuario mal intencionado) para ejecutar ataques dirigidos a determinados grupos o personas. Y sí, nuestra extensión puede no este tan bien decorada como para que alguien se trague la historia y se la instale, pero eso solo lo limita la creatividad del atacante, porque basta con mirar el numero de visualizaciones de este vídeo para darse cuenta que no es nada difícil llegar a un gran numero de potenciales víctimas.
Ya para finalizar les comparto el link de los payloads que son usados en este vídeo:
Como pueden ver, dichos payloads hacen que un usuario que tiene instalada nuestra extensión pueda terminar enviando sus credenciales, cookies, etc, a un servidor remoto. Y bueno eso ha sido todo por hoy, ¡happy hacking! y hasta la próxima :).
Ya para finalizar les comparto el link de los payloads que son usados en este vídeo:
Como pueden ver, dichos payloads hacen que un usuario que tiene instalada nuestra extensión pueda terminar enviando sus credenciales, cookies, etc, a un servidor remoto. Y bueno eso ha sido todo por hoy, ¡happy hacking! y hasta la próxima :).
Etiquetas:
chrome,
chrome extensions,
Cookies,
hacking facebook
lunes, 28 de diciembre de 2015
Aprovechando parámetros GET para ejecutar un XSS reflejado
Imaginemos que estamos en un tienda virtual y nos topamos con un formulario de búsqueda que solicita dos campos, categoría y producto respectivamente, ademas, usa el método GET del protocolo HTTP para enviar los datos, es decir , usa la url, algo parecido a lo que se ve en la siguiente imagen para ser mas precisos:
Podemos ver claramente que el script php que va a procesar este formulario (Atributo action del formulario) es "vulnerable.php", cuyo código fuente es el siguiente:
¡Bueno!, es claro que no se necesita ser un genio para entender que este código es vulnerable a XSS reflected, a simple vista se puede notar que las variables $categoria y $producto pueden ser manipuladas por un usuario malintencionado y por ende llevar a la ejecución arbitraria de código del lado del cliente, pero echemos mejor un ojo a las siguientes imágenes:
En este primer caso no se ve riesgo alguno, ya que lo que se paso vía get desde los parámetros categoría y producto, fue "juguetes" y "Cubo de rubik" respectivamente, pero, ¿qué pasa si enviamos en cualquiera de los parámetros algo como esto:
<script>alert(/XSS HERE/)<script>
Pues probemos, pero ahora no usemos el formulario, si no que directamente modifiquemos la url y manipulemos los parámetros categoría y producto, es decir, hagamos que nuestra url tenga un aspecto parecido a este:
http://domain/vulnerable.php?categoria=<script>alert(/XSS HERE/)</script>&producto=<script>alert(/XSS HERE/)</script>
Esto es lo que obtenemos si visitamos nuestra url desde el navegador firefox:
¡Bingo!, hemos logrado ejecutar código javascript, si ese enlace se lo enviamos a una persona y lo visita, el limite de lo que podemos lograr hacer es directamente proporcional al grado de sofisticación de nuestro script inyectado, para fines prácticos el mio solo muestra un alert :P.
Pero, y si el navegador es google chrome? pues nos jodimos temporalmente, porque gracias a la inexistencia de la cabecera X-XSS-Protection dentro del código vulnerable, el XSS-Auditor de chrome bloquea automáticamente este intento de Cross-Site-Scripting y no ejecuta nuestro hermoso alert :( como se observa en la siguiente imagen:
![]() |
| Auditor XSS de chrome, evitando se ejecute nuestro alert |
Pero epa, les dije que la joda era temporal así que intentemos ver si logramos hacer saltar ese alert... Sabemos que nuestro código imprime nuestras dos variables get (Categoría y Producto), así que usemos el poder del conjunto he intentemos armar una carga útil (Payload) usando ambas, como primer intento probemos lo siguiente:
?categoria=<script>&producto=</script>
mmm, nuevamente el mensaje del xss-auditor, aunque por ningún lado se ve nuestro alert, y esto se debe a que estamos metiendo en orden incorrecto las etiquetas <script></script> , si miramos bien el código de vulnerable.php vemos que imprime primero la variable producto y después la variable categoría, así que hagamos un segundo intento pero ahora con esto:
?categoria=</script>&producto=<script>alert()
Ok, esta vez si que vemos algo parecido a nuestro payload, no se lanzo el mensaje del xss-auditor pero si un error de sintaxis, ya que después del alert esta el texto "en la categoría", intentemos ver que logramos si comentamos ese string basura:
?categoria=</script>&producto=<script>alert()/*
Pues ahí esta, otro intento fallido, pensemos... ¿Y si metemos ese string basura dentro de una variable?, es decir, junk='en la categoría', venga que por un ultimo intento no perdemos nada, así que probemos nuestro nuevo payload:
?categoria=';alert(junk)</script>&producto=<script>junk='
http://hlabdlinux/XSS_Reflected/vulnerable.php?categoria=';alert(a)</script>&producto=<script>a='
No es el caso, pero en una aplicación en producción, una falla de este tipo puede ser aprovechada por un usuario mal intencionado y en vez de un simple alert puede redireccionar a portales infectados con malware, obtener cookies, hacer campañas de phishing, conocer la ip del cliente, entre muchas otras cosas más, que como investigadores nosotros no haremos, ya que lo expuesto anteriormente solo es con fines educativos y como recordatorio de que ...
"Si estáis tratando de resolver un problema del que sois un experto, cuanta mayor sea la dificultad del problema, más se agudizarán y aumentarán vuestros talentos".
Etiquetas:
Bypass,
chrome,
Cross-Site Scripting,
Firefox,
javascript,
XSS
Suscribirse a:
Entradas (Atom)












