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.
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»:
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
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.
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.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.
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:
-
¿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.
-
¿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í.
La autoridad que emite el certificado es RSA Datasecurity Inc.
-
¿Qué asegura el certificado, la identidad del servidor o del cliente?
En este saco se asegura la identidad del servidor.
Tercera parte: analizando SSH.
En la primera parte de este ejercicio hemos visto un protocolo no seguro, como Telnet. Una alternativa a usar Telnet a la hora de conectarnos a máquinas remotas es SSH, que realiza una negociación previa al intercambio de datos de usuario. A partir de esta negociación, el tráfico viaja cifrado. Descarga esta traza con tráfico SSH y abrela con Wireshark.
En este analisís se ha detectado que desde las tramas 9 hasta la 19 comienza el intercambio de llaves.
-
¿Puedes ver a partir de qué paquete comienza el tráfico cifrado?
A partir de la trama 20.
-
¿Qué protocolos viajan cifrados, todos (IP, TCP…) o alguno en particular?
El protocolo que viaja cifrado es SSHv2.
-
¿Es posible ver alguna información de usuario como contraseñas de acceso?
No es posible debido a aque esos datos viajan cifrados.