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.
Una sencilla práctica sobre criptografía
Quizás hayas oído hablar sobre Pretty Good Privacy (PGP), aplicación software comúnmente utilizado para cifrar y firmar digitalmente el correo electrónico, el cual permite cifrar, descifrar y firmar además del correo electrónico, diferentes tipos de archivos. Así se proporciona integridad, privacidad y autenticación a la comunicación de datos.
En esta Tarea n° 3, se propone el intercambio de un archivo cifrado y firmado digitalmente, con la finalidad de practicar lo expuesto anteriormente.
¿Para qué necesito cifrar y firmar mensajes?
Lo más conveniente sería que habitualmente hiciéramos uso de este tipo de herramientas, al menos para las comunicaciones que queramos mantener realmente en privado.
¿Cómo puedo encriptar un mensaje?
Para encriptar un mensaje con GPG (o con cualquier sistema de criptografía asimétrica), necesitamos generar un par de claves. Una de ellas será la clave pública, clave que todo el mundo deberá conocer, y la otra será la clave privada, que debe mantenerse en privado y sólo tú debes conocer, ya que eso nos garantizará los servicios de confidencialidad, autenticación, integridad y no repudio.
Para generar nuestro par de claves, utilizaremos Seahorse, un gestor de claves GPG para Gnome que facilita mucho todo el proceso.
Aquí están las capturas que nos muestra cómo generar el par de claves paso a paso:
En Seahorse, damos click en «Nuevo»
Escogemos el tipo de clave, en este caso clave pública
Aparece una nueva ventana en la que deberemos introducir nuestros datos: Nombre, email y comentario (éste último opcional). También podemos seleccionar el tipo de cifrado, la fortaleza de la clave (2048 para el ejemplo) y la caducidad de la misma si hacemos clic en «opciones avanzadas de clave», sin caducidad.
Establecemos la contraseña de seguridad para nuestra clve
¿Y ahora qué?
Bien, pues ahora puedes encriptar y firmar documentos o archivos y enviárselos a quien quieras, con la certeza de que nadie, salvo la persona a la que le envías el mensaje, podrá leerlo. Para hacerlo, la persona que recibirá el mensaje encriptado debe disponer también de un par de claves como los que acabamos de generar, y tú debes conocer la clave pública del destinatario.
Vamos a ver un ejemplo de cómo exportar tu clave pública con Seahorse.
Exportamos nuestra clave pública.
Para importar una clave pública y añadirla en tu lista de claves públicas, tan solo tienes que hacer doble clic en el fichero .asc o, dentro de Seahorse, hacer clic en Archivo, Importar… y seleccionar el archivo de clave pública.
Importamos la clave pública, de otro compañero, con la finalidad de estableces comunicación por medio de mensajes cifrados.
Listo! Ahora solo tenemos que enviar el archivo encriptado por correo electrónico, mensajería instantánea o como queramos y nos hemos asegurado de que sólo el destinatario podrá descifrarlo.
La educación formal te permitirá vivir, la autoeducación te llevará al éxito. (Jim Rohn)
Búsqueda y puesta en común de recursos
Internet es un gran espacio para relacionarse con otros usuarios pero ante todo es una gran biblioteca que está en continuo crecimiento.
Como parte de la Tarea n° 2 del MOOC Hacking Ético impartido por Mondragon Unibertsitatea (2015) Se pone a disposición tres sitios web dedicados a la seguridad y el hackin ético, que te serán de gran ayuda, por su diversidad de contenidos.
En el marco de la Seguridad Informática y el Hacking Ético, tenemos a disponibilidad una gama de sitios web y foros que ofrecen gran cantidad de información, video tutoriales, algoritmos, etc, que nos ayuden a comprender como funcionan las herramientas que usan los hackers y a estar preparados para proteger nuestra información.
Te presento tres espacios relacionados con la Seguridad Informática y el Hacking ético:
Organización Mexicana de Háckers Éticos (OMHE)
Es una organización de profesionales multidisciplinarios comprometida a promover y fortalecer la seguridad informática, con el objetivo de dar a conocer la importancia que tiene forjar una cultura en cuanto a seguridad informática para asegurar un buen acceso, manejo y distribución de la información.
Uno de los mejores, debido a la gran cantidad de material que brinda.
Es una comunidad dedicada al Hacking y a la Seguridad Informática.
Apoya la libre divulgación del conocimiento, compartir saberes, intercambiar aportes e interactuar día a día para potenciar las capacidades y habilidades de cada uno en un ambiente cordial.
Desarrollan talleres, tutoriales, guías de aprendizaje, papers de variados temas, herramientas y actualizaciones informáticas.
Es un Portal sobre Linux, enlaces a manuales de seguridad, hacking y lenguajes de programación. Ofrece trucos y foros. Una comunidad pequeña de hackers que esta creciendo. Aquí puedes aprender de todo tipo de hacking.
Como siempre, la mejor opción dependerá del grado de interés que se tenga en el tema.
Herramientas básicas para obtener información de servidores externos
El MOOC Hacking Ético impartido por Mondragon Unibertsitatea (2015) dictará varias tareas que serán publicadas en este blog.
La siguiente corresponde a la primera tarea, que consiste en utilizar herramientas básicas para recopilar información.
Dentro del ámbito de la seguridad informática, lo ideal es que nunca sufra pérdidas de información. Por tal motivo, es primordial conocer las diferentes herramientas que se pueden usar para obtener información de un servidor, con la finalidad de protegerse de las mismas y garantizar que dicha información esté disponible el mayor tiempo posible.
Las siguientes herramientas son especialmente útiles para empezar a obtener información de los servidores que queremos poner a prueba:
- Ping: Es una utilidad de diagnóstico de redes de computadoras que comprueba el estado de la comunicación del host local con uno o varios equipos remotos de una red. Mediante esta utilidad podemos determinar el estado, velocidad y calidad de un host determiando.
- WhoIs: Es un protocolo TCP basado en petición/respuesta que se utiliza para efectuar consultas en una base de datos que permite determinar el propietario de un nombre de dominio o una dirección IP en Internet.
- NMap: Es una herramienta de código abierto para exploración de red y auditoría de seguridad. Nmap utiliza paquetes IP «crudos» en formas originales para determinar qué equipos se encuentran disponibles en una red, qué servicios (nombre y versión de la aplicación) ofrecen, qué sistemas operativos (y sus versiones) ejecutan, qué tipo de filtros de paquetes o cortafuegos se están utilizando así como docenas de otras características.
Para hacer uso de estas herramientas, el primer paso es la recolección de los datos de nuestro objetivo, cuanto mayor datos logremos obtener, tendremos mayores probabilidades de lograr un ataque exitoso.
Nuestro objetivo es: www.sahmedltda.com
- Información del objetivo: Para obtener información sobe el dominio (objetivo), haremos uso de la herramienta «whois».
En nuestro terminal (un entorno linux, basado en Kali), escribimos el comando: «whois sahmedltda.com»Podemos apreciar que hemos obtenido el nombre, tipo de registro, el registrador, algunas fechas importantes del dominio y los nombres de servidores en donde se encuentra alojado.
- IP del objetivo: A través de la herramienta «ping» conoceremos la IP de nuestro objetivo, en nuestro terminal kali, escribimos el comando «ping sahmedltda.com -c 5», donde «-c 5» es opcional.
Tenemos ya la IP del objetivo «50.23.16.2» (un punto más en nuestra recolección de información).
- Más información del objetivo: Para obtener información adicional como por ejemplo, detalles del sistema operativo, puertos abiertos, servicios activos de objetivo, usaremos la herramienta «nmap», que en nuestro entorno kali, realizaremos de la sigueinte manera:
- Para realizar un scan simple de puertos «abiertos» del objetivo escribimos lo siguiente: «nmap 50.23.16.2»
- Para conocer la versión del los diferentes servicios del objetivo escribimos lo siguiente: «nmap -sV 50.23.16.2»
Como podemos apreciar, estos comandos son muy útiles al momento de conocer información básica de nuestro objetivo, los mismos servirán para más adelante realizar las respectivas pruebas de seguridad.
Con esto finaliza esta primera entrega del curso de seguridad y hacking ético.
La educación formal te permitirá vivir, la autoeducación te llevará al éxito. (Jim Rohn)