Foro de elhacker.net

Programación => Bases de Datos => Mensaje iniciado por: freedert en 21 Enero 2010, 04:59 am



Título: consulta, crackear psw MYSQL local.
Publicado por: freedert en 21 Enero 2010, 04:59 am
Buenas! saludos como nuevo usuario del foro.

Mi consulta es la siguiente.
Tengo una DB en MySQL instalada localmente en esta maquina, necesito editar unos valores dentro de la misma que mas específicamente están alojados en unos archivos MYD y MYI. El problema es que al tratar de conectarme a esta DB con el usuario root y psw root como figura en el my.ini del MySQL me da error de acceso.

Esta sql se instala con una aplicación de un software, es decir, no soy yo quien setea el pass o los permisos.

necesito, o conseguir los datos de acceso a esta DB o poder de alguna manera editar estos archivos del MySQL, cualquiera de las dos cosas me sirve pero no puedo lograrlo.

Agradezco cualquier idea o ayuda y díganme si necesitan que les mande algún dato o los archivos en si.

gracias!!
Diego


Título: Re: consulta, crackear psw MYSQL local.
Publicado por: AlbertoBSD en 21 Enero 2010, 06:21 am
Como te conectas al server?

Código:
mysql -h host -u root -p


Saludos



Mover a foro de DB


Título: Re: consulta, crackear psw MYSQL local.
Publicado por: freedert en 21 Enero 2010, 16:07 pm
Buenas gracais por responder, me conecto con un software generico para administrar DBs, igualmente por si las dudas (falto aclarar que todo esto es bajo windows). Probe conectando desde el CMD en la carpeta MYSQL/bin usando el comando como vos ejemplificaste y me da lo siguiente:

mysql -h localhost -u root -p
ERROR: 1045: Acceso negado para usuario: "root@LocalHost" <Usando clave: SI>

usando como clave "root". Lo raro es que si en el archivo my.ini esta especificado que la clave y usuario son root no deberia poder entrar asi?

salu2


Título: Re: consulta, crackear psw MYSQL local.
Publicado por: braulio-- en 21 Enero 2010, 16:41 pm
Estás seguro de que tiene contraseña ?
mysql -h localhost -u root


Título: Re: consulta, crackear psw MYSQL local.
Publicado por: freedert en 21 Enero 2010, 17:20 pm
Estás seguro de que tiene contraseña ?
mysql -h localhost -u root

Tambien probe eso pero salta lo mismo, acceso denegado.

si quieren les puedo pasar el exe que isntala el server bajo win y crea la base de datos, pesa 7 megas.


Título: Re: consulta, crackear psw MYSQL local.
Publicado por: ^Tifa^ en 21 Enero 2010, 18:36 pm
Citar
usando como clave "root". Lo raro es que si en el archivo my.ini esta especificado que la clave y usuario son root no deberia poder entrar asi?

No del todo, la contrasena que vez algunas veces especificada en my.ini sirve de referencia para el usuario que se descarga un software nuevo o desconoce la contrasena de root de la DB entonces el DBA edita este archivo, para que el usuario que quiera logearse como root al motor sepa cual es la clave de root (siendo la clave de root la que se asigno a MySQL durante la instalacion). Pero no es que tu le pones una clave a este archivo, y automaticamente MySQL asigna esa clave a root, no... es solo una referencia digase para que otro usuario sepa cual es la contrasena de root. No es algo obligatorio de colocar como veras, es solo opcional.

Hay formas de recuperar contrasenas de root perdida en MySQL tanto en Windows como en sistemas Unix/Linux, pero porque al que seteo la contrasena no le especificas que quieres editar esos archivos? si otra persona esta siendo encargada de la DB porque quieres hacer algo tu que podrias solicitarle a esa persona tu problema????


Título: Re: consulta, crackear psw MYSQL local.
Publicado por: freedert en 21 Enero 2010, 19:30 pm
Gracias por responder, no le pido el acceso primero porque no se donde estará esta persona que programo este soft, y segundo porque en todo caso no me lo daría ya que es un software de su propiedad (el cual, en realidad le compre y me salió bastante caro por cierto) y quiero poder editar esos archivos para usar otra aplicación en esa DB.

salu2


Título: Re: consulta, crackear psw MYSQL local.
Publicado por: ^Tifa^ en 21 Enero 2010, 20:25 pm
Pues muy mal por la persona que te vendio el software, el o ella debio indicar en my.ini cual era la contraseña de root que el o ella le otorgo al motor, aunque reconozco que esto lo hacen para obligarte a ti a que los llame para cualquier soporte o consulta y asi cobrarte dinero por dicho servicio. Pero en fin, aunque desde un inicio vi en tu mensaje una manera de querer obtener algo al cual no tienes acceso, por eso me he negado un poco a ayudar puesto que no ayudo ni opino cuando veo intenciones de hackeo no positivo.

Pero, hare una excepcion a algo donde no suelo ayudar, no es para nada recomendable que tu manualmente edites ningun archivo datafile digase nada de editar los archivos terminados en MYD ni ninguno de los archivos indices MYI son archivos binarios, generados por el motor mientras realizes transaciones, si tu manualmente editas aunque sea 1 solo caracter de dicho archivos.. podrias danar la data completa y de paso perder dicha tabla, por ende procura no hacer cambios manuales ya que no sera nada satisfactorio ciertamente.

Hay varias maneras de recobrar contrasenas olvidades de root en MySQL, la mas sencilla es la que te dare ahora, sigue estos pasos:

1 - Deten el proceso de MySQL. Vete a Cpanel, Services y ahi busca el servicio MySQL y paralo.

2 - Abre un CMD de Windows (Si esa terminal negra que se llama MS-DOS o algo asi).

3 - Dentro del CMD vete al directorio bin de MySQL, si tienes la carpeta de MySQL en C, vete con el comando cd asi:

cd C:\MySQL\bin

si MySQL esta en C:\Programas pos ya sabes sustituye la ruta anterior.

4 - Cuando en el CMD te hayas movilizado  a la carpeta bin de MySQL ejecuta este comando:
mysqld.exe -u root --skip-grant-tables

5 - No cierres el CMD donde ejecutaste lo anterior si quieres minimizalo es opcion tuya, ahora abre otro CMD nuevo y como el caso anterior en este nuevo CMD dirigete a la carpeta bin de MySQL con el comando   cd

6 - Cuando en el nuevo CMD estes dentro de la carpeta bin de MySQL escribe en el prompt  mysql  y pulsa Enter. Deberas logearte sin problemas al motor MySQL.

7 - Ya logeado en MySQL escribe lo siguiente:

mysql> select user from mysql.user;

Te lanzara cuales usuarios existen para logearse al motor, verificate que exista 'root' (Ya que por seguridad mas que todo, hay personas que sustituyen la cuenta  administrador 'root' por otro nombre de usuario por ende hay que asegurarse que existe 'root' y no otro usuario como administrador de MySQL)

Si vez que existe una cuenta de administrador con el usuario 'root' perfecto sino existe la cuenta 'root' pero si existe otro usuario como administrador, sencillamente sustituye el nombre 'root' por el nombre de usuario admin existente en la consulta SQL siguiente:

mysql> update mysql.user set password = password('TU_NUEVA_CONTRASENA') where user = 'root';

Luego :

mysql> flush privileges;

Ya hecho lo anterior, sales de la instancia MySQL con la palabra exit
Y ya puedes cerrar el primer CMD (El que esta ejecutando mysqld.exe skip-grant..)

Luego que hayas cerrado los 2 CMD vete a servicios de WIndows y inicia el servidor MySQL, cuando inicie logeate con la nueva contraseña de root.


Título: Re: consulta, crackear psw MYSQL local.
Publicado por: N4X en 21 Enero 2010, 20:34 pm
eso que explicas no es una opción un tanto permisiva?

o funciona bajo ciertas restricciones?

es decir...

teniendo una shell de un server de un tercero yo, bajo esos comandos, soy capaz de obtener un acceso total no?

seguramente habrá peros digo yo :P


Título: Re: consulta, crackear psw MYSQL local.
Publicado por: ^Tifa^ en 21 Enero 2010, 20:47 pm
Ahhhh por eso no queria decir como se hacia ..... no quiero que otro usuario haga lo anterior para violar cosas que no debe, en algun servidor fisico donde tenga acceso con algun usuario que tenga permisos de Administrador.

Citar

eso que explicas no es una opción un tanto permisiva?

o funciona bajo ciertas restricciones?

Lo anterior funciona siempre y cuando la opcion 'skip-grant-tables' este compilada como 'SI' dentro del motor MySQL. Ahora como hablamos de un MySQL instalado en Windows, como aca no se compila sino que se instala, por defecto en MySQL la opcion 'skip-grant-tables' viene activada  ;)  por lo que bajo sistemas Windows... me temo que si, lo anterior aplica siempre. Ahora bajo sistemas Unix o Linux donde tienes la posibilidad de compilar el fuente de MySQL y tu lo compilas con las opciones que quieres y no quieres, podria lo anterior variar. Ya que puedo compilar mi motor con dicha opcion desactivada por lo cual no aplicaria intentar iniciar el motor con la opcion skip-grant-tables... y en ese caso entonces tendria yo que hacer otro procedimiento para recuperar la contraseña de root en un sistema Unix/Linux el cual no explayare aqui porque como dije, no me gusta aportar a cosas que se que son negativas y seran utilizadas para hacer danio.


Título: Re: consulta, crackear psw MYSQL local.
Publicado por: freedert en 21 Enero 2010, 20:50 pm
Muchas gracias TiFa!!! ya pude acceder a la DB con tu instruccion, muchas gracias por tu ayuda y por la buena onda!! esta tarde misma voy a probar alguanas cosas en el sistema cuando abra el negocio.

Gracias por la buena onda todos!!  :xD


Título: Re: consulta, crackear psw MYSQL local.
Publicado por: ^Tifa^ en 21 Enero 2010, 20:56 pm
Me alegro que hayas podido resolver tu pequeno inconveniente freedert ...

Y de antemano espero, que esto lo tomen como algo positivo y lo usen para buenas causas y no para hacerle nada a nadie.

Un saludo  :-*


Título: Re: consulta, crackear psw MYSQL local.
Publicado por: N4X en 21 Enero 2010, 21:05 pm
Ahhhh por eso no queria decir como se hacia ..... no quiero que otro usuario haga lo anterior para violar cosas que no debe, en algun servidor fisico donde tenga acceso con algun usuario que tenga permisos de Administrador.

Citar

eso que explicas no es una opción un tanto permisiva?

o funciona bajo ciertas restricciones?

Lo anterior funciona siempre y cuando la opcion 'skip-grant-tables' este compilada como 'SI' dentro del motor MySQL. Ahora como hablamos de un MySQL instalado en Windows, como aca no se compila sino que se instala, por defecto en MySQL la opcion 'skip-grant-tables' viene activada  ;)  por lo que bajo sistemas Windows... me temo que si, lo anterior aplica siempre. Ahora bajo sistemas Unix o Linux donde tienes la posibilidad de compilar el fuente de MySQL y tu lo compilas con las opciones que quieres y no quieres, podria lo anterior variar. Ya que puedo compilar mi motor con dicha opcion desactivada por lo cual no aplicaria intentar iniciar el motor con la opcion skip-grant-tables... y en ese caso entonces tendria yo que hacer otro procedimiento para recuperar la contraseña de root en un sistema Unix/Linux el cual no explayare aqui porque como dije, no me gusta aportar a cosas que se que son negativas y seran utilizadas para hacer danio.

me parece un grave error por parte de MySQL el no tener alguna forma de quitar la opción en plataformas windows...
al menos estoy tranquilo que en linux podré compilarlo sin esa opción... lo tendré en cuenta en el futuro


Título: Re: consulta, crackear psw MYSQL local.
Publicado por: ^Tifa^ en 21 Enero 2010, 21:22 pm
Entiendo perfectamente tu condicion N4X, y yo tampoco lo veo muy fiable pero... tambien reconozco que MySQL desde un inicio le dieron mas importancia en su desempeno bajo sistemas Unix/Linux que Windows como tal.

A lo mejor (Que conste que yo nunca lo he intentado) pero a lo mejor, en Windows con gcc exista la posibilidad de compilar los fuentes de MySQL y colocarle que opciones quieres y cuales no dentro del motor... pero repito no se si sea posible hacerlo ya que habria que editar posiblemente muchos headers de las fuentes para hacer eso compatible con este sistema operativo, yo siempre me he descargado el instalador.exe de MySQL para Windows y se que por defecto esta opcion viene habilitada.

Te aseguro que los motores transacionales tienen pasos similares para recuperar contrasenas del admin del motor. Asumo que la seguridad de controlar esto ellos se lo dejan al Sysadmin como tal, ya que si un usuario de Windows no tiene permisos de Administrador, no podra detener el proceso Mysql ni iniciarlo con skip-grant-tables ni mucho menos, por ende no podra recuperar ni robarse la contraseña de root. Esto es un juego de 2 del DBA y del Sysadmin de dicho sistema, si todo se hace de manera correcta no hay manera que un usuario pueda de antemano resetear la contraseña de un motor relacional sea MySQL, como sea Oracle, como sea Postgresql u otro.

PD: Recuerda que existen varias maneras de recuperar la contraseña de 'root' de MySQL , yo solamente dije una manera de hacerlo que es con 'skip-grant-tables' pero si esto esta desabilitado hay otras maneras de recuperar la contraseña como tal... siempre habra maneras de recuperar tanto en MySQL como otro motor. La tarea de seguridad de quien puede y quien no depende del Sysadmin.