Notas técnicas DeEhi Kioya
Bueno, no es exactamente hackear. Pero déjame explicarte
El alojamiento web es parte de mi negocio y, como era de esperar, la mayoría de los clientes construyen sus sitios con WordPress. Todo su contenido (archivos y bases de datos) se encuentra en mis servidores y, aunque no tenga (o quiera) una cuenta de administrador en sus instalaciones de WordPress, tengo acceso de root tanto en el sistema de archivos como en la base de datos.
Los clientes a menudo olvidan su información de inicio de sesión de WordPress. Cuando esto sucede, se quedan fuera del área de administración de sus sitios y necesitan ayuda para volver a entrar. También hay escenarios en los que los administradores de servidores pueden necesitar la necesidad de «forzar» su entrada en el sitio de un cliente incluso cuando el cliente no lo ha solicitado. Tal vez por razones legales o violaciones de políticas. O, dependiendo del tipo de servicio de administración que se proporcione, los administradores del servidor pueden necesitar iniciar sesión para realizar actualizaciones, mantenimiento de rutina, etc.
En resumen, los escenarios en los que puede ser necesario» hackear » una contraseña de WordPress incluyen:
- Olvidaste el nombre de usuario y la dirección de correo electrónico de tu propio sitio.
- Conoce el nombre de usuario o la dirección de correo electrónico, pero ha olvidado la contraseña. Y por alguna razón, la opción de restablecimiento de contraseña lista para usar no ha funcionado, tal vez porque los correos electrónicos de restablecimiento de contraseña no llegan. O tal vez ya no tenga acceso a la dirección de correo electrónico original utilizada.
- Su cliente ha perdido los detalles de inicio de sesión de un sitio web de WordPress que aloja en su nombre.
- Por razones legales o debido a violaciones de la política, se le requiere que ingrese a la fuerza a un sitio web alojado en su infraestructura.
- Su sitio fue hackeado y la cuenta de administrador se eliminó (o se cambió la contraseña).
En cualquier caso, este artículo explica cómo un administrador de servidor puede forzar el restablecimiento de la contraseña de WordPress de un usuario o crear un nuevo usuario administrador de WordPress con una contraseña completamente nueva. Mostraré cómo se puede hacer esto desde la base de datos MySQL del backend o utilizando las funciones.archivo php a través de FTP. En ambos casos, no se requiere una cuenta de WordPress en el sitio web en cuestión.
Los métodos que exploraremos aquí son:
- «Hackear» una contraseña de WordPress en la base de datos (forzando un restablecimiento de contraseña)
- Crear un nuevo usuario administrador de WordPress a través de la base de datos
- «Hackear» (restablecer) una contraseña de WordPress utilizando las funciones.archivo php
- Crear un nuevo usuario administrador de WordPress usando las funciones.archivo php
Si bien ninguno de los métodos anteriores es exactamente hackear contraseñas (ya que no estamos utilizando técnicas de fuerza bruta ni nada por el estilo), el resultado final efectivamente «hackea» nuestro camino a WordPress con los mismos derechos administrativos que se perdieron anteriormente.
DESCARGO DE RESPONSABILIDAD: Los procesos descritos aquí son completamente legales. A pesar de que la pieza de hash de contraseña utiliza esta herramienta que construí, la herramienta utiliza la función oficial de WordPress wp_hash_password() detrás de escena. Escribí este artículo pensando en administradores de servidores y web masters. Está destinado a ser puramente informativo y educativo. Si alguien usa las instrucciones aquí por razones maliciosas, no puedo ser considerado responsable.
Comencemos
Método 1: «Hackear» (Restablecer) Una Contraseña De WordPress En La Base De datos
Inicie su herramienta de administración de base de datos. Esto podría ser phpMyAdmin, HeidiSQL, MySQL Workbench, etc. Haremos un cambio en la tabla wp_users.
NOTA: El nombre de la tabla puede ser diferente dependiendo de si la instalación utiliza un prefijo de tabla personalizado. Este artículo asume que wp_ es el prefijo de la tabla. Este es el valor predeterminado. Un vistazo rápido a los nombres de las tablas de WordPress debería ayudarte a identificar el prefijo de la tabla y la tabla wp_users equivalente en tu caso. También puede encontrar el prefijo de tabla definido explícitamente en wp-config.archivo php (la variable de interés es tabl table_prefix).
Una vez que abra la tabla wp_users para ver los datos, debería poder identificar rápidamente el registro de usuario que debe cambiarse. El campo de interés (que contiene la contraseña con hash) es el campo user_pass. Este campo tendrá un valor que se ve algo como esto 😛 P BE BE.lIb0ypAKBR2OZCREKMwSrPiWW9g1
Inicie el generador de Hash de contraseñas de WordPress. Introduzca la nueva contraseña que desee para este usuario y haga clic en el botón «Hash this Phrase». Copie la cadena generada y reemplace el valor user_pass actual con ella. Debería poder editar el valor simplemente haciendo doble clic en él.
Guarde los cambios e inicie sesión en su área de administración de WordPress con su nueva contraseña. Dependiendo de la seguridad de la contraseña elegida y de si tu sitio web aplica contraseñas seguras, es posible que te pidan que elijas una contraseña segura inmediatamente después de iniciar sesión.
Método 2: Crear un Nuevo Usuario Administrador de WordPress A través de la Base de datos
Crear un nuevo usuario administrador es similar al proceso anterior de restablecer la contraseña de un usuario. Pero es un poco más complicado. Esta vez, modificaremos tanto la tabla wp_users como la tabla wp_usermeta. Esto es lo que debe hacer:
Crear un nuevo registro en la tabla wp_users. Establecer estos campos:
- user_login – El nombre de usuario que desea para acceder al área de administración de WordPress
- user_pass – El código hash de su contraseña elegida generado mediante el Generador Hash de contraseñas de WordPress
- user_email – El correo electrónico que desea asociar con esta nueva cuenta
- user_registered – La fecha en que este usuario se registró
Todos los demás campos pueden permanecer en blanco por ahora. No son campos obligatorios. Pero puede editarlos más tarde desde el panel de WordPress si lo desea. Guarde el nuevo registro de usuario.
Una vez guardado, WordPress le dará automáticamente al usuario un ID. Este número se guardará en el campo ID. Anote este número.
Ahora abra la tabla wp_usermeta. Crearemos dos nuevos registros en esta tabla.
Para ambos registros nuevos, establezca el campo user_id en el ID generado automáticamente anterior.
Para el primer registro, establezca el campo meta_key en wp_user_level y establezca el campo meta_value en 10.
Para el segundo registro, establezca el campo meta_key en wp_capabilities y establezca el campo meta_value en a: 1: {s: 13: «administrator»; s:1:»1″;}
NOTA: Los valores de wp_user_level y wp_capabilities utilizados anteriormente dependerán de nuevo del prefijo de tabla utilizado en su instalación. Por lo tanto, si, por ejemplo, el prefijo de la tabla es wp_yourdomain_, entonces los valores deben ser wp_yourdomain_user_level y wp_yourdomain_capabilities respectivamente.
Guarde ambos registros e inicie sesión en su sitio web de WordPress con el nuevo nombre de usuario y contraseña que acaba de crear. Dependiendo de la seguridad de la contraseña elegida y de si tu sitio web aplica contraseñas seguras, es posible que te pidan que elijas una contraseña segura inmediatamente después de iniciar sesión.
Una vez que haya iniciado sesión, edite su usuario desde el panel de WordPress. No hay necesidad de cambiar nada. Simplemente desplácese hacia abajo y presione el botón Guardar. WordPress agregará internamente información adicional al nuevo usuario que acabas de crear. Si se le pide que proporcione cualquier información adicional requerida, simplemente proporciónela (por ejemplo, es posible que se le pida que proporcione un apodo único).
Ahora que tiene una nueva cuenta de administrador de WordPress, puede continuar y eliminar la cuenta de administrador anterior si lo desea. Durante el proceso de eliminación, WordPress le permitirá atribuir todo el contenido creado por el usuario anterior al nuevo usuario (o a cualquier otro usuario existente).
Método 3: «Hackear» Una Contraseña De WordPress Usando Las Funciones.Archivo php
Abre las funciones.archivo php de su tema activo en un editor de texto. Este archivo generalmente se encuentra aquí: public_html/wp_content/themes/your-active-theme / functions.php
Agregue esta línea de código al archivo. Puedes añadirlo al final del contenido existente.
wp_set_password('yourdesiredpassword', 1);
Lo mejor es elegir una contraseña segura. De esta manera, si tu sitio web aplica contraseñas seguras, no tendrás que cambiarlas de nuevo después de iniciar sesión.
En el caso anterior, se restablecerá la contraseña del usuario con un ID de 1.
Guarde las funciones.archivo php y visita el frontend de tu sitio. Se restablecerá la contraseña del usuario.
IMPORTANTE: Antes de confirmar que el restablecimiento de contraseña funcionó, elimine primero la línea de código anterior de sus funciones.archivo php. Si no lo hace, la contraseña se restablecerá en cada carga de página y es posible que nunca logre iniciar sesión con la nueva contraseña que ha establecido.
Después de eliminar el código de restablecimiento de contraseña, ahora puede iniciar sesión con la nueva contraseña.
Puedes leer más sobre la función wp_set_password () aquí.
Tenga en cuenta que, a diferencia del método de restablecimiento de contraseña de la base de datos anterior, para usar esta técnica de restablecimiento de contraseña de FTP, necesitará conocer el ID del usuario de antemano. Pero como es posible que aún no lo sepa (sin adivinarlo), creo que el método de restablecimiento de contraseñas de la base de datos (descrito en el Método 1 anterior) es más poderoso.
Método 4: Crear Un Nuevo Usuario Administrador De WordPress Usando Las Funciones.Archivo php
Abre las funciones.archivo php de tu tema activo.
Agregue este código al archivo.
function ehi_kioya_create_admin_account(){$username = 'yourdesiredusername';$password = 'yourdesiredpassword'; // Choose a strong password. That way, if your website enforces strong passwords, you won't be required to change it again after signing in.$email = '[email protected]';// Only create user if chosen username and chosen email are not already in useif (!email_exists($email) && !username_exists($username)){$userid = wp_create_user($username, $password, $email);wp_update_user(array('ID' => $userid, 'nickname' => $email));$newuser = new WP_User($userid);$newuser->set_role('administrator');}}add_action('init','ehi_kioya_create_admin_account');
No olvide introducir su propio nombre de usuario, contraseña y valores de correo electrónico. Si ya hay un usuario en WordPress con su nombre de usuario o correo electrónico elegido, no se creará una nueva cuenta. Así que asegúrate de usar valores únicos para el nombre de usuario y el correo electrónico.
Guarde las funciones.archivo php y luego simplemente visite el frontend de su sitio web. El código se ejecutará y se creará el nuevo usuario administrador. A continuación, puede iniciar sesión con las credenciales del nuevo usuario.
De nuevo, no olvide eliminar el código de las funciones.archivo php.
Conclusión
Esperamos que uno de los métodos descritos anteriormente le ayude a recuperar el acceso administrativo a su sitio web de WordPress. Al tener acceso a la base de datos y / o al sistema de archivos, usted demuestra que tiene derechos sobre el servidor y, por lo tanto, debería tener derechos sobre los sitios web alojados en él. Si está intentando hackear un sitio web de WordPress para el que no tiene acceso a la base de datos ni al sistema de archivos, entonces está intentando hackear los sitios de otras personas y claramente no está bien. Obtener acceso no autorizado a sitios web de otras personas como ese es un delito y no algo que enseñe o aliente.
Si los métodos discutidos aquí le resultaran útiles, o tiene una pregunta o contribución, comparta sus ideas utilizando la sección de comentarios a continuación.