WordPress 4.7.2 Cookie de autenticación de fuerza bruta

0

Hace poco me encontré con un sitio de WordPress (v 4.7.2) con un archivo wp-config.php expuesto, dentro del cual se podían acceder a los secretos de la clave de autorización del servidor de texto sin formato.
Después de leer el artículo de Mike Czumak sobre cómo generar una cookie de WordPress, entiendo a un alto nivel cómo puede funcionar la generación de cookies de sesión de autenticación WP: enlace

Las entradas pertinentes dependientes del host requeridas para el proceso de fuerza bruta son un ID de usuario de WordPress válido, el nombre del servidor y los secretos AUTH del servidor de wp-config.php.

Sin embargo, el artículo se aplica a WordPress 3.9. Me pregunto si el ataque de fuerza bruta descrito en el artículo es posible en versiones más nuevas. Probé el POC y descubrí que las cookies de autenticación de la versión 3.9 generadas estaban en un formato más corto que las requeridas para 4.7.2.
La comparación del código fuente de WordPress revela un parámetro $token adicional que se usa cuando se genera $auth_cookie .

3.9

$auth_cookie = wp_generate_auth_cookie($user_id, $expiration, $scheme);
$logged_in_cookie = wp_generate_auth_cookie($user_id, $expiration, 'logged_in');

4.7.2

if ( '' === $token ) {
    $manager = WP_Session_Tokens::get_instance( $user_id );
    $token   = $manager->create( $expiration );
}

$auth_cookie = wp_generate_auth_cookie( $user_id, $expiration, $scheme, $token );
$logged_in_cookie = wp_generate_auth_cookie( $user_id, $expiration, 'logged_in', $token );

Estoy en el proceso de informar el problema a los propietarios del sitio. No he podido seguir completamente el código PHP más reciente (> 3.9) y, por lo tanto, quisiera algunas sugerencias sobre si el mismo tipo de ataque de fuerza bruta de generación de cookies es factible en la versión 4.7.2.

    
pregunta user1330734 08.08.2017 - 06:34
fuente

1 respuesta

2

Su pregunta es sobre WP 4.7.2, pero la versión actual es 4.8.1. Usa la versión actual, siempre. Mi respuesta es para 4.8.1.

En pocas palabras, el antiguo algoritmo de hashing era md5 y el nuevo algoritmo utiliza sha256 (preferido) y sha1 si sha256 no está disponible. . Pero, todavía están generando estos hashes basados en criterios predecibles.

Entonces, sí, el forzamiento bruto ahora tomará más tiempo (órdenes de magnitud más largas), y bajo el poder de cómputo actual, es probable que sea computacionalmente inviable aunque estemos usando entradas predecibles.

Nosoyunfandeellosusandomaterialpredecibleparagenerarestehasholacookie,porquereducesignificativamenteelespaciodebúsqueda.Pero,ciertamenteesmejordeloqueera.Y,dadoqueelsitioesWordpress,loúnicoquepuedeshaceresmantenerloactualizado.

Porcierto,alobservarestecódigo,parecequenoactualizaronelusodehashesMD5enningúnotrolugar.Porsupuesto,hmacconsalessignificativamentemásseguroquesolounMD5,peroelMD5estámuydañado,ymeparecequeelcostocomputacionaldeusarSHA1sobreMD5esinsignificante.NoestoysegurodeporquénoactualizarontodosloshashesaalmenosSHA1sinoesSHA256.

    
respondido por el DrDamnit 08.08.2017 - 12:55
fuente

Lea otras preguntas en las etiquetas