0% encontró este documento útil (0 votos)
356 vistas13 páginas

7.3.2.4 Lab - Attacking A MySQL Database

Este documento describe un ataque de inyección SQL contra una base de datos mySQL a través del análisis de un archivo PCAP usando Wireshark. El atacante primero verifica que la aplicación es vulnerable ingresando la cadena "1=1", luego obtiene información como el nombre de la base de datos, usuarios y versiones. Luego obtiene una lista de tablas y finalmente logra extraer hashes de contraseñas almacenadas en la base de datos.

Cargado por

cesar
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
356 vistas13 páginas

7.3.2.4 Lab - Attacking A MySQL Database

Este documento describe un ataque de inyección SQL contra una base de datos mySQL a través del análisis de un archivo PCAP usando Wireshark. El atacante primero verifica que la aplicación es vulnerable ingresando la cadena "1=1", luego obtiene información como el nombre de la base de datos, usuarios y versiones. Luego obtiene una lista de tablas y finalmente logra extraer hashes de contraseñas almacenadas en la base de datos.

Cargado por

cesar
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 13

Práctica de laboratorio: Atacar una base de datos mySQL

Objetivos
En esta práctica de laboratorio verán un archivo PCAP de un ataque anterior a una base de datos SQL.

Antecedentes / Escenario
Los ataques de inyección SQL permiten que los hackers maliciosos escriban sentencias SQL en un sitio web
y reciban una respuesta de la base de datos. Esto permite que los atacantes modifiquen los datos actuales
de la base de datos, suplanten identidades y ejecuten malware variado.
Hemos creado un archivo PCAP para que vean un ataque anterior a una base de datos SQL. En esta
práctica de laboratorio verán los ataques a la base de datos SQL y responderán las preguntas.

Recursos necesarios
 Máquina virtual CyberOps Workstation
 Acceso a Internet

Parte 1: Abrir el archivo PCAP y seguir al atacante de la base de datos


SQL
Utilizarán Wireshark, un analizador de paquetes de red común, para analizar el tráfico de red. Después de
iniciar Wireshark, abrirán una captura de red ya guardada y verán un ataque de inyección SQL paso a paso
contra una base de datos SQL.

Paso 1: Abrir Wireshark y cargar el archivo PCAP.


La aplicación Wireshark se puede abrir por medio de diversos métodos en una estación de trabajo de Linux.
a. Inicien la VM CyberOps Workstation.

 Cisco y/o sus filiales. Todos los derechos reservados. Información confidencial de Cisco Página 1 de 13 www.netacad.com
Práctica de laboratorio: Atacar una base de datos mySQL

b. En el escritorio, haga clic en Aplicaciones > CyberOPS > Wireshark, y busquen la aplicación
Wireshark.

c. En la aplicación Wireshark, hagan clic en Open (Abrir) en el medio de la aplicación, en la sección Files
(Archivos).

d. Diríjanse al directorio /home/analyst/ y busquen lab.support.files. En el directorio lab.support.files


abra el archivo SQL_Lab.pcap.

 Cisco y/o sus filiales. Todos los derechos reservados. Información confidencial de Cisco Página 2 de 13 www.netacad.com
Práctica de laboratorio: Atacar una base de datos mySQL

e. El archivo PCAP se abre dentro de Wireshark para mostrar el tráfico de red capturado. Este archivo de
captura se extiende por un período de 8 minutos (441 segundos), la duración de este ataque de
inyección SQL.

En función de la información que aparece en pantalla, ¿cuáles son las dos direcciones IP involucradas
en este ataque de inyección SQL?
Según lo observado en el archivo cargado las dos IP que se involucran en el ataque son 10.0.2.4 y
10.0.2.15

Paso 2: Ver el ataque de inyección SQL


En este paso visualizarán el comienzo de un ataque.
a. Dentro de la captura de Wireshark, hagan clic derecho sobre la línea 13 y seleccionen Follow HTTP
Stream (Seguir flujo de HTTP). Se eligió la línea 13 porque es una solicitud GET HTTP. Esto será muy
útil para seguir el flujo de datos a medida que lo ven las capas de aplicación y se genera una prueba de
consulta para la inyección SQL.

 Cisco y/o sus filiales. Todos los derechos reservados. Información confidencial de Cisco Página 3 de 13 www.netacad.com
Práctica de laboratorio: Atacar una base de datos mySQL

El tráfico de origen se muestra en rojo. El origen ha enviado una solicitud GET al host 10.0.2.15. En color
azul, el dispositivo de destino le está respondiendo al origen.

b. Hagan clic en Find (Buscar) e introduzcan 1=1. Busquen esta entrada. Cuando se encuentre el texto,
hagan clic en Cancel (Cancelar) en el cuadro de búsqueda de texto Find. La cadena 1=1.

 Cisco y/o sus filiales. Todos los derechos reservados. Información confidencial de Cisco Página 4 de 13 www.netacad.com
Práctica de laboratorio: Atacar una base de datos mySQL

c. El atacante ha ingresado una consulta (1=1) en un cuadro de búsqueda de UserID en el destino


10.0.2.15 para ver si la aplicación es vulnerable a la inyección SQL. En lugar de responder con un
mensaje de falla en el inicio de sesión, la aplicación respondió con un registro de la base de datos. El
atacante ha verificado que puede ingresar un comando SQL y que la base de datos le responderá. La
cadena de búsqueda 1=1 crea una sentencia SQL que siempre será verdadera. En el ejemplo no importa
lo que se haya ingresado en el campo, siempre será verdadera.

d. Cierren la ventana Follow HTTP Stream.


e. Hagan clic en Clear (Borrar) para mostrar toda la conversación de Wireshark.

Paso 3: El ataque de inyección SQL continúa...


En este paso visualizarán cómo prosigue un ataque.

 Cisco y/o sus filiales. Todos los derechos reservados. Información confidencial de Cisco Página 5 de 13 www.netacad.com
Práctica de laboratorio: Atacar una base de datos mySQL

a. Dentro de la captura de Wireshark, hagan clic derecho sobre la línea 19 y seleccionen Follow HTTP
Stream (Seguir flujo de HTTP).

b. Haga clic en Buscar e introduzca 1=1. Busquen esta entrada. Cuando se encuentre el texto, hagan clic
en Cancel (Cancelar) en el cuadro de búsqueda de texto Find.

 Cisco y/o sus filiales. Todos los derechos reservados. Información confidencial de Cisco Página 6 de 13 www.netacad.com
Práctica de laboratorio: Atacar una base de datos mySQL

c. El atacante ha ingresado una consulta (1’ or 1=1 union select database(), user()#) en un cuadro de
búsqueda de ID de usuario en el destino 10.0.2.15. En lugar de responder con un mensaje de falla en el
inicio de sesión, la aplicación respondió con la siguiente información:

El nombre de la base de datos es dvwa y su usuario es dvwa@localhost. También se muestran varias


cuentas de usuario.
d. Cierren la ventana Follow HTTP Stream.
e. Hagan clic en “Clear” (“Borrar”) para mostrar toda la conversación de Wireshark.

Paso 4: El ataque de inyección SQL proporciona información del sistema.


El atacante prosigue y comienza a buscar información más específica.
a. Dentro de la captura de Wireshark, hagan clic derecho sobre la línea 22 y seleccionen Follow HTTP
Stream (Seguir flujo de HTTP). El tráfico de origen se muestra en rojo, y está enviando la solicitud GET
al host 10.0.2.15. En color azul, el dispositivo de destino le está respondiendo al origen.

 Cisco y/o sus filiales. Todos los derechos reservados. Información confidencial de Cisco Página 7 de 13 www.netacad.com
Práctica de laboratorio: Atacar una base de datos mySQL

b. Hagan clic en Find (Buscar) e introduzcan 1=1. Busquen esta entrada. Cuando se encuentre el texto,
hagan clic en Cancel (Cancelar) en el cuadro de búsqueda de texto Find.

 Cisco y/o sus filiales. Todos los derechos reservados. Información confidencial de Cisco Página 8 de 13 www.netacad.com
Práctica de laboratorio: Atacar una base de datos mySQL

c. El atacante ha ingresado una consulta (1’ or 1=1 union select null, version ()#) en un cuadro de búsqueda
de ID de usuario en el destino 10.0.2.15 para localizar el identificador de la versión. Observe que el
identificador de versión se encuentra al final del resultado justo antes de </pre>.</div> cierre del código
HTML.

¿Cuál es la versión?
La versión que se muestra en el código HTML es 5.7.12-0.
d. Cierren la ventana Follow HTTP Stream.
e. Hagan clic en Clear (Borrar) para mostrar toda la conversación de Wireshark.

Paso 5: El ataque de inyección SQL e información de tablas


El atacante sabe que hay gran cantidad de tablas SQL repletas de información. Trata de encontrarlas.
a. Dentro de la captura de Wireshark, hagan clic derecho sobre la línea 25 y seleccionen Follow HTTP
Stream (Seguir flujo de HTTP). El origen se muestra en rojo. Ha enviado una solicitud GET al host
10.0.2.15. En color azul, el dispositivo de destino le está respondiendo al origen.

 Cisco y/o sus filiales. Todos los derechos reservados. Información confidencial de Cisco Página 9 de 13 www.netacad.com
Práctica de laboratorio: Atacar una base de datos mySQL

b. Haga clic en Buscar e introduzca users. Busquen la entrada que se muestra a continuación. Cuando se
encuentre el texto, hagan clic en Cancel (Cancelar) en el cuadro de búsqueda de texto Find.

c. El atacante ha ingresado una consulta (1’ or 1=1 union select null, table_name from
information_schema.tables#) en un cuadro de búsqueda de ID de usuario en el destino 10.0.2.15 para
ver todas las tablas de la base de datos. Esto proporciona una enorme salida de muchas tablas, ya que
el atacante especificó “null” sin más especificaciones.

¿Qué haría el comando modificado de (1' OR 1=1 UNION SELECT null, column_name FROM
INFORMATION_SCHEMA.columns WHERE table_name='users') por el atacante?
Este comando permitiría conocer las respuestas masa resumidas onde se encuentra la palabra 'users'
d. Cierren la ventana Follow HTTP Stream.
e. Hagan clic en Clear (Borrar) para mostrar toda la conversación de Wireshark.

 Cisco y/o sus filiales. Todos los derechos reservados. Información confidencial de Cisco Página 10 de 13 www.netacad.com
Práctica de laboratorio: Atacar una base de datos mySQL

Paso 6: El ataque de inyección SQL concluye


El ataque finaliza con el mejor premio posible: hashes de contraseñas.
a. Dentro de la captura de Wireshark, hagan clic derecho sobre la línea 28 y seleccionen Follow HTTP
Stream (Seguir flujo de HTTP). El origen se muestra en rojo. Ha enviado una solicitud GET al host
10.0.2.15. En color azul, el dispositivo de destino le está respondiendo al origen.

b. Hagan clic en Find (Buscar) e introduzcan 1=1. Busquen esta entrada. Cuando se encuentre el texto,
hagan clic en Cancel (Cancelar) en el cuadro de búsqueda de texto Find.

 Cisco y/o sus filiales. Todos los derechos reservados. Información confidencial de Cisco Página 11 de 13 www.netacad.com
Práctica de laboratorio: Atacar una base de datos mySQL

¡El atacante ha ingresado una consulta (1’ or 1=1 union select user, password from users#) en un cuadro de
búsqueda de ID de usuario en el destino 10.0.2.15 para obtener nombres de usuario y hashes de
contraseñas!

¿Qué usuario tiene 8d3533d75ae2c3966d7e0d4fcc69216b como hash de su contraseña?


El usuario con tiene este hash de contraseña es el usuario 1337

Utilicen un sitio web como https://crackstation.net/ para copiar el hash de la contraseña en el


decodificador de hashes de contraseñas y comiencen a decodificarlo.
¿Cuál es la contraseña en texto plano?
La contraseña encontrada es charley

 Cisco y/o sus filiales. Todos los derechos reservados. Información confidencial de Cisco Página 12 de 13 www.netacad.com
Práctica de laboratorio: Atacar una base de datos mySQL

c. Cierren la ventana Follow HTTP Stream. Cierren todas las ventanas abiertas.

Reflexión
1. ¿Cuál es el riesgo de hacer que las plataformas utilicen el lenguaje SQL?
Muchos sitios web usan base de datos con lenguaje SQL, y por lo evidenciado se puede tener problemas de
seguridad y resguardo de la información de las bases de datos por lo que si es imperativo usar este lenguaje
en una plataforma es necesario asegurarse de contar con las herramientas de ciberseguridad necesarias
para evitar la a instrucción a la información.
2. Busquen “evitar ataques de inyección SQL” en Internet. Mencionen 2 métodos o pasos que se pueden utilizar
para evitar ataques de inyección SQL.
Un componente fundamental es que los desarrolladores y administradores de las plataformas conozcan las
vulnerabilidades que pueden aprovechar los ataques de inyección SQL para implementar estrategias en sus
diseños o realizar acciones en la administración de la plataforma que evite este tipo de intrusiones, también
es una buena practica identificar y rastrear todas las autenticaciones que usen SQL, es importante la
implementación de cortafuegos dedicados a aplicaciones web para tener una barrera adicional a las
verificaciones de los profesionales de Ciber seguridad, la implementación de listas blancas también es una
abuena estrategia para filtrar las entradas de usuarios.

Conclusiones
En el laboratorio se pudo evidenciar que la eficacia de los ataques de inyección SQL es alta para
acceder a información sensible en las bases de datos, de igual forma la información obtenida por los
ataques de inyección SQL demostró la vulnerabilidad de plataformas basadas en lenguajes SQL por lo
que lo antes evidenciado es muy importante para conocer los riesgos de plataformas en este lenguaje
e identificar la implementación de acciones que mitiguen su vulnerabilidad.

 Cisco y/o sus filiales. Todos los derechos reservados. Información confidencial de Cisco Página 13 de 13 www.netacad.com

También podría gustarte