elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.
 
Inicio Ayuda Buscar Ingresar Registrarse
27 Mayo 2012, 17:25  


Tema destacado: Grupo de Facebook de elhacker.net

+  Foro de elhacker.net
|-+  Seguridad Informática
| |-+  Hacking Avanzado (Moderadores: ANELKAOS, TRICKY)
| | |-+  Comprobar mi seguridad de MySQL
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] 2 Ir Abajo Respuesta Imprimir
Autor Tema: Comprobar mi seguridad de MySQL  (Leído 4,740 veces)
Meta


Desconectado Desconectado

Mensajes: 2.304



Ver Perfil WWW
Comprobar mi seguridad de MySQL
« en: 21 Agosto 2009, 05:15 »

Hola:

Tengo montado un servidor bajo Windows XP SP3 con Apache 2.12, PHP, MySQL 5.1.27 tal cual como indica este manual en PDF sobre Web chaceros.

http://www.abcdatos.com/webmasters/tutorial/v310.html

Tengo en MySQL creado dos cuentas, una Root y la otra Prueba de bajo provilegio. Para comprobar que no me entren o quebrante MySQL quiero saber todas las posibilidades de que existe para ser quebrantado.

Por ahora me centro en windows mientras en el futuro meteré con Linux (openSUSE o Ubuntu).

Puedes poner información abajo de lo que le podría pasar a MySQL, es decir, ¿qué ocurre si me hacen algo a MySQL? Por ejemplo, acceder a root, robar datos de MySQL, etc.

Quiero ver gente para aprender que sean capaces de quebrantar MySQL, todas las maneras posibles para saber como acceder a root o modificar datos en él. También MySQL se conecta con Visual C# que he hecho.

Quiero saber todo de seguridad y protecciones para evitar que me saboteen, porque estoy haciendo un proyecto sobre control del puerto serie con un PIC controlado desde Internet. Una vez que quebranten MySQL, ya puedes controlar el puerto serie desde tu casa y podrás hacer:

- Endencerme la luz y aphagarla de las habitaciones.
- Activar regadío automático del jardín.
- Saber la temperatura de la casa.
- Activar, ver y  mover con un motor PAP una WebCam para ver la casa del interior y otras cámras del exterior hacia el jardín.
- Activar o desactivar los ventiladores.
- Activar el micrófono.
-Etc, etc, etc y nada más que etc...

Por ahora directamente controlo ya el puerto serie.


Un cordial saludo.
En línea

Tutoriales Electrónica y PIC: http://electronica-pic.blogspot.com/
berz3k
Colaborador
***
Desconectado Desconectado

Mensajes: 1.140



Ver Perfil
Re: Comprobar mi seguridad de MySQL
« Respuesta #1 en: 29 Agosto 2009, 03:59 »

Que wuapo te ha quedado todo tio, pero es public o private lo que comentas? , tiene un front-end / back-end la aplicacion ? entras remote? details please.


-berz3k.
En línea
Meta


Desconectado Desconectado

Mensajes: 2.304



Ver Perfil WWW
Re: Comprobar mi seguridad de MySQL
« Respuesta #2 en: 30 Agosto 2009, 19:32 »

La palicación o todo el proyecto funcina públicamente como este foro.
En línea

Tutoriales Electrónica y PIC: http://electronica-pic.blogspot.com/
Jubjub


Desconectado Desconectado

Mensajes: 708


Lay Ladie lay,...


Ver Perfil WWW
Re: Comprobar mi seguridad de MySQL
« Respuesta #3 en: 30 Agosto 2009, 19:44 »

Depende mas de como lo hayas programado que de MySQL, que es usualmente seguro, ya que ni es necesario abrir sus puertos a Internet.
En línea

Jugando con Fósforoshacking con un tono diferente


.
porno
Meta


Desconectado Desconectado

Mensajes: 2.304



Ver Perfil WWW
Re: Comprobar mi seguridad de MySQL
« Respuesta #4 en: 31 Agosto 2009, 01:10 »

Este es los datos de MySQL.

Código
-- phpMyAdmin SQL Dump
-- version 3.2.0.1
-- http://www.phpmyadmin.net
--
-- Servidor: localhost
-- Tiempo de generación: 31-08-2009 a las 00:10:03
-- Versión del servidor: 5.1.37
-- Versión de PHP: 5.2.10
 
SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";
 
--
-- Base de datos: `pic_remoto`
--
 
-- --------------------------------------------------------
 
--
-- Estructura de tabla para la tabla `dispositivos`
--
 
CREATE TABLE IF NOT EXISTS `dispositivos` (
 `ID` INT(11) NOT NULL AUTO_INCREMENT,
 `nombre` VARCHAR(6) COLLATE latin1_spanish_ci NOT NULL,
 `estado` tinyint(2) NOT NULL,
 `descripcion` VARCHAR(20) COLLATE latin1_spanish_ci NOT NULL,
 PRIMARY KEY (`ID`)
) ENGINE=InnoDB  DEFAULT CHARSET=latin1 COLLATE=latin1_spanish_ci AUTO_INCREMENT=5 ;
 
--
-- (Evento) desencadenante `dispositivos`
--
DROP TRIGGER IF EXISTS `pic_remoto`.`logestado`;
DELIMITER //
CREATE TRIGGER `pic_remoto`.`logestado` AFTER UPDATE ON `pic_remoto`.`dispositivos`
FOR EACH ROW BEGIN
 
                                  DECLARE Rele1 INT;
                                  DECLARE Rele2 INT;
                                  DECLARE Rele3 INT;
                                  DECLARE Rele4 INT;
 
                                  SET Rele1 = (SELECT estado
                                  FROM dispositivos
                                  WHERE nombre LIKE 'RELE 1');
 
                                  SET Rele2 = (SELECT estado
                                  FROM dispositivos
                                  WHERE nombre LIKE 'RELE 2');
 
                                  SET Rele3 = (SELECT estado
                                  FROM dispositivos
                                  WHERE nombre LIKE 'RELE 3');
 
                                  SET Rele4 = (SELECT estado
                                  FROM dispositivos
                                  WHERE nombre LIKE 'RELE 4');
 
                                  INSERT INTO log(RELE_1, RELE_2, RELE_3, RELE_4, USUARIO, FECHA_HORA)
                                  VALUES (Rele1, Rele2, Rele3, Rele4, USER(), NOW());
                            END
//
DELIMITER ;
 
--
-- Volcar la base de datos para la tabla `dispositivos`
--
 
INSERT INTO `dispositivos` (`ID`, `nombre`, `estado`, `descripcion`) VALUES
(1, 'RELE 1', 1, 'Luz'),
(2, 'RELE 2', 1, 'Motor'),
(3, 'RELE 3', 1, 'Camara'),
(4, 'RELE 4', 1, 'Alarma');
 
-- --------------------------------------------------------
 
--
-- Estructura de tabla para la tabla `log`
--
 
CREATE TABLE IF NOT EXISTS `log` (
 `ID` INT(11) NOT NULL AUTO_INCREMENT,
 `RELE_1` tinyint(1) NOT NULL,
 `RELE_2` tinyint(1) NOT NULL,
 `RELE_3` tinyint(1) NOT NULL,
 `RELE_4` tinyint(1) NOT NULL,
 `USUARIO` VARCHAR(40) COLLATE latin1_spanish_ci NOT NULL,
 `FECHA_HORA` datetime NOT NULL,
 PRIMARY KEY (`ID`)
) ENGINE=InnoDB  DEFAULT CHARSET=latin1 COLLATE=latin1_spanish_ci AUTO_INCREMENT=573 ;
 
--
-- Volcar la base de datos para la tabla `log`
--
 
INSERT INTO `log` (`ID`, `RELE_1`, `RELE_2`, `RELE_3`, `RELE_4`, `USUARIO`, `FECHA_HORA`) VALUES
(1, 0, 0, 1, 0, 'Prueba02@localhost', '2009-08-18 08:32:13'),
 
 
 
En línea

Tutoriales Electrónica y PIC: http://electronica-pic.blogspot.com/
Jubjub


Desconectado Desconectado

Mensajes: 708


Lay Ladie lay,...


Ver Perfil WWW
Re: Comprobar mi seguridad de MySQL
« Respuesta #5 en: 1 Septiembre 2009, 01:34 »

Me referia al lenguaje que interactua con la base de datos, ¿es php? , ¿python?

Cuentanos :P
En línea

Jugando con Fósforoshacking con un tono diferente


.
porno
Meta


Desconectado Desconectado

Mensajes: 2.304



Ver Perfil WWW
Re: Comprobar mi seguridad de MySQL
« Respuesta #6 en: 1 Septiembre 2009, 03:36 »

Es  PHP como una casa.
En línea

Tutoriales Electrónica y PIC: http://electronica-pic.blogspot.com/
berz3k
Colaborador
***
Desconectado Desconectado

Mensajes: 1.140



Ver Perfil
Re: Comprobar mi seguridad de MySQL
« Respuesta #7 en: 2 Septiembre 2009, 13:07 »

Mmm habra que "endurezer" esos files PHP para evitar explotaciones remotas

+SQLi, SQL Injection
+XSS. Cross Site Scripting
+BoF, Buffer Overflows
+LFI, Local File Inclusion
+RFI , Remote File Inclusion
+Parsear algunas cosas dentro del code PHP para evitar chars no permitidos.

Todo ello lo podras encontrar en google

-berz3k.


En línea
vertexSymphony


Desconectado Desconectado

Mensajes: 2.150



Ver Perfil WWW
Re: Comprobar mi seguridad de MySQL
« Respuesta #8 en: 5 Septiembre 2009, 05:11 »

deberías configurar tu firewall para que MySQL acepte solamente conexiones loopback (es decir, que se originan y tienen como destino tu PC), con eso sacás el tema de que esté expuesto ...

después, del lado Php tendrías que tocar un poco el php.ini, desactivar (y activar, en el caso del safe mode, teniendo el server corriendo con otro usuario, que esté desprivilegiado) y endurecer las opciones actuales ...
esto también vendría bien que lo mejores a nivel script (que verifiques lo que el usuario ingresa)

yo si tuviese esto en linux, correría el site haciendo que se ingrese en un archivo aparte o en el mismo MySQL las incidencias de seguridad y al cabo de 3, lanzar una regla en el iptables baneando a esa dirección por X tiempo (ya teniendo un programa externo que se encargue de esto) y, claro está que al cabo de X incidencias por segundo tomar tal otra acción (esto ya es otro tema igualmente, el brujo posteó igualmente sobre como evitar DDoS)...

eso lo pondría como base, después, como dijo Berz3k : los BoF (el resto está contemplado en 'verificar lo que el usuario ingresa'), verificá que versiones tengas de PHP y Apache y asegurate de ser bastante restrictivo con lo que se recibe, no más de lo que necesites =P

Saludos ~

P.S : no es LA seguridad, pero, es una buena base de la que partir ;P
« Última modificación: 5 Septiembre 2009, 05:12 por Vertex.Symphony » En línea

Mail/PGP/XMPP/D*
Código
gpg --recv-keys --keyserver pgp.mit.edu 0xCD21671D
braulio--
Wiki

Desconectado Desconectado

Mensajes: 889


Imagen recursiva


Ver Perfil WWW
Re: Comprobar mi seguridad de MySQL
« Respuesta #9 en: 5 Septiembre 2009, 15:42 »

También deberías blindarlo contra CSRF porque si los atacantes consiguen que hagas una petición a un archivo en concreto podrían conseguir el control.
En línea

Meta


Desconectado Desconectado

Mensajes: 2.304



Ver Perfil WWW
Re: Comprobar mi seguridad de MySQL
« Respuesta #10 en: 6 Septiembre 2009, 16:56 »

Gracias, tomo nota sus consejos.
En línea

Tutoriales Electrónica y PIC: http://electronica-pic.blogspot.com/
berz3k
Colaborador
***
Desconectado Desconectado

Mensajes: 1.140



Ver Perfil
Re: Comprobar mi seguridad de MySQL
« Respuesta #11 en: 8 Septiembre 2009, 09:37 »

@Meta
Algo que podras hacer rapido y eficiente contra ataques antes posteados, recuerda que si dichas funciones son necesarias en el codigo, con los settings del PHP.INI podras potregerte un poco mas, a grandes rasgoz son las funciones con mas problemas de explotacion.


Localizar php.ini editar (en Linux):

Código:
1) vi /usr/local/lib/php.ini

Editar la linea:

Código:
   disable_functions = “”
y agregar algo como:

Código:
   disable_functions = “symlink,shell_exec,exec,proc_close,proc_open,popen,system,dl,passthru,escapeshellarg, escapeshellcmd”

En línea
TRICKY
The "Tricky" ..
Moderador
***
Desconectado Desconectado

Mensajes: 1.605


Ver Perfil
Re: Comprobar mi seguridad de MySQL
« Respuesta #12 en: 8 Septiembre 2009, 10:55 »


Asimismo ten asegurado en tu php.ini el que safe_mode este activado, y que register_golbals este off.
Entre otras cosas claro.




Saludos.
En línea

"La envidia es una declaración de inferioridad"
Napoleón.
Meta


Desconectado Desconectado

Mensajes: 2.304



Ver Perfil WWW
Re: Comprobar mi seguridad de MySQL
« Respuesta #13 en: 10 Septiembre 2009, 06:40 »

Por suerte los register_golbals ya vienen desactivado predeterminadamente.
En línea

Tutoriales Electrónica y PIC: http://electronica-pic.blogspot.com/
7th_Sign

Desconectado Desconectado

Mensajes: 78



Ver Perfil WWW
Re: Comprobar mi seguridad de MySQL
« Respuesta #14 en: 11 Septiembre 2009, 09:01 »

si PHP esta accediendo al MySQL desde la misma PC, yo diria que limites el la conexión a la BD solo al equipo local.
y obviamente un firewall para evitar shell remotas, de ahí para alla tu front end sería lo único que habría que perfeccionar para evitar cualquier tipo listo.
En línea

qué me sugieren poner aquí???
Páginas: [1] 2 Ir Arriba Respuesta Imprimir 

Ir a:  
Powered by SMF 1.1.16 | SMF © 2006-2008, Simple Machines