SQL injection

La inyección directa de comandos SQL es una técnica donde un atacante crea o altera comandos SQL existentes para exponer datos ocultos, sobrescribir los valiosos, o peor aún, ejecutar comandos peligrosos a nivel de sistema en el equipo que hospeda la base de datos. Esto se logra a través de la práctica de tomar la entrada del usuario y combinarla con parámetros estáticos para elaborar una consulta SQL.

5551

En esta práctica usa la técnica SQL injection para obtener información relevante sobre la estructura de una base de datos.

Para esta práctica necesitaras usar una máquina virtual preparada para el software de simulación VirtualBox. Si no tienes instalado VirtualBox puedes descargar el instalador desde este enlace.

La máquina virtual (380MB) en formato 7-Zip, que usaremos, lo podéis descargar a través del siguiente enlace

Una vez descargada la máquina estos son los pasos a seguir:

  • 1. Descomprimir utilizando un software de compresión compatible con 7-Zip (puedes descargar este último desde su página web).
  • 2. Entrar en la carpeta en la que se ha descomprimido el 7-zip de la máquina. Allí encontraremos unos ficheros llamados dvwa-windows.vbox (puede que la extensión esté oculta, dependiendo de la configuración del explorador de ficheros) y dvwa-linux. vbox.
  • 3. Hacemos doble clic sobre el fichero que corresponda al sistema operativo que estemos usando en nuestro ordenador (p. ej. si estamos usando Linux hacemos doble clic sobre el fichero dvwa-linux.vbox).
  • 4. Al hacer doble clic se importará la máquina virtual en VirtualBox.
  • 5. Seleccionamos con el ratón la máqina que se llama «dvwa» y pulsamos sobre el botón llamado «Iniciar»:

    img01

  • 6. Cuando termine de iniciarse la máquina virtual obtendremos la siguiente pantalla, donde se nos muestra la dirección IP que ha obtenido por DHCP, y que deberemos usar posteriormente para conectarnos a ella:

    img04

  • 7. Una vez ejecutada la máquina, anota la dirección IP y mediante el navegador web accede a la dirección http://direccionIP/login.php

    img04

  • 8. Una vez logueados, cambiar el nivel de seguridad en la pestana DVWA Security por el parametro «Low»

    img04

  • 9. Seleccionamos la pestana SQL Injection para comensar a ejecutar los comandos

    img04

  • 10. En el cuadro de texto insertamos 1, para obtener el registro del usuario con id = 1

    img04

Una lista completa de los diferentes tipos de Injecciones SQL que podemos hacer, la veremos en: Damn Vulnerable Web App (DVWA): Lesson 6

Este método para obtener información es de los primeros en ser analizados por los hackers, ya que determinan una baja seguridad a nivel de la aplicación o servicio que un servidor brinde.

Hasta aquí este apartado del curso de Seguridad Hacking ético impartido por Mondragon Unibersitatea.

Sobre la ética del hacker

El pasado mes de julio una importante empresa Italiana dedicada a la seguridad informática, Hacking Team, era hackeada y 400GB de datos privados que incluían contactos de clientes, facturas y otros documentos importantes se subían de forma pública a Internet para su descarga a través de torrents.

Decenas de servicios de espionaje nacionales, entre ellos el CNI, veían expuestas sus actividades para espiar a ciudadanos y a empresas y organizaciones de sus respectivos países.

Esta noticia nos plantea una importante cuestión acerca de los límites éticos del hacker que ya planteaba en 2001 el sociólogo Pekka Himanen en su popular manifiesto a favor de la ética hacker y la relevancia social de los hackers para garantizar la privacidad y la seguridad en la red de la ciudadanía.

hacked-rely-on-us

En lo que a mí respecta, coincido con la opinión del compañero «alopez», en muchas ocasiones no somos conscientes de que estamos «siendo vigilados» por estas empresas o gobiernos, es verdad, solo basta con saber que el mayor uso de internet esta en la llamada Deep Web, y tan solo es «la punta del iceberg» lo que comúnmente utilizamos.
Un hacker que revele este tipo de «espinoaje» no puede ser catalogado como «malo», excepto por las empresas que se ven perjudicadas el ser descubiertas por el mismo.
Creo que todos tenemos derecho a la privacidad y para aquellos que no disponen de los conocimientos necesario para defender sus derechos en Internet, es una gran ayuda que estos grupos de hakcers ponga al descubierto las acciones fraudulentas y las vulnerabilidades a los derechos de privacidad que las empresas o gobiernos manejan, a través de estos métodos de «espionaje».

¿Qué opinas sobre la acción realizada contra Hacking Team? ¿Consideras que los hackers se han excedido en sus ‘funciones’?

No considero que se excedieran, a fin de cuentas, revelaron información de vital importancia «NO ESTAMOS TENIENDO ESE DERECHO A LA PRIVACIDAD»

¿Cuáles crees que deberían ser los límites del hacker?

Con base en lo anterior, un hacker debería plantearse ciertos límites más bien éticos y manejar las cosas con responsabilidad.

¿Piensas que la ciudadanía es consciente del rol que los hackers pueden jugar en favor de su propia seguridad en la red detectando aquellos sitios que no son seguros ya sea porque ponen en riesgo los datos de los usuarios o bien porque hacen un uso ilegítimos de los mismos?

Si la información que encuentra puede ayudar a muchos, entonces dicha información debe ser compartida.
Si la información que encuentra perjudica a muchos, entonces dicha información debe ser compartida.

sigpic5336155_4

Capturando tráfico con Wireshark

Wireshark es un analizador de protocolos muy popular. Es software libre y es una herramienta fantástica para investigar qué está pasando en una red y, también, para aprender sobre protocolos de comunicaciones.
En la página de descargas de Wireshark puedes descargar la versión adecuada para tu sistema operativo. Y en la ayuda oficial de Wireshark puedes consultar cómo se instala (es muy sencillo) y cómo se utiliza. También puedes ver este vídeo con una introducción al uso de Wireshark.

Primera parte: analizando un protocolo inseguro – Telnet.

Aquí no vamos a realizar capturas en vivo de tráfico, sino que vamos a analizar trazas (capturas) ya realizadas con anterioridad y salvadas en archivos. En este caso, vamos a usar la traza telnet-raw.pcap, del repositorio de capturas disponible en Wireshark.

Descárgate la traza y ábrela con Wireshark. Esta traza ha capturado el tráfico de una sesión de Telnet entre el cliente y el servidor.

En nuestro ordenador (Debian 4.0.4-1+kali2), abrimos wireshark y cargamos la traza que habíamos descargado anteriormente para analizarla.

ws1

ws2

ws2

Un consejo: para observar mejor el tráfico de Telnet, puedes usar un filtro muy sencillo de visualización, como puedes ver en la imagen:

ws2

  • ¿Qué usuario y contraseña se ha utilizado para acceder al servidor de Telnet?

    Habiendo analizado el tráfico hemos encontrado datos de sesión, como usuario y contraseña. Para este ejemplo los datos resultaron ser:

    • Usuario: fake
    • Contraseña: user

    ws5

  • ¿Qué sistema operativo corre en la máquina?

    ws5

    Corresponde a OpenBSD (unix), se concentra en la portabilidad, cumplimiento de normas y regulaciones, corrección, seguridad proactiva y criptografía integrada.

  • ¿Qué comandos se ejecutan en esta sesión?
  • Algunos comandos que se ejecutaron en esta sesión son: ls -a, /sbin/ping http://www.yahoo.com, exit.

    Todos aquiridos a través de analizar varias líneas de tráfico.

Como puedes ver, la elección de una aplicación no segura como Telnet puede llevar a la difusión de información importante, como información de acceso, sistemas operativos, etc., en este caso a través del tráfico intercambiado.

Segunda parte: analizando SSL.

Para la realización de este ejercicio, descarga esta traza con tráfico SSL y abrela con Wireshark. SSL es un protocolo seguro que utilizan otros protocolos de aplicación como HTTP. Usa certificados digitales X.509 para asegurar la conexión.

  • ¿Puedes identificar en qué paquete de la trama el servidor envía el certificado?

    En la trama 2, el cifrado es enviado al cliente, como respuesta a su petición.

    ws5

  • ¿El certificado va en claro o está cifrado? ¿Puedes ver, por ejemplo, qué autoridad ha emitido el certificado?
  • Hay paquetes que vienen en claro (autoridad que emite, para qué dominios es válido, etc). Luego vienen datos cifrados que son la firma del certificado y (supongo) el certificado en sí.

    ws5

    La autoridad que emite el certificado es RSA Datasecurity Inc.