Opiniones… Tarea 7…

hackers

Hola, de nuevo a tod@s….

Respondiendo a algunas que preguntas que quisiera compartir…

Mi opinión….

¿Qué opinas sobre la acción realizada contra Hacking Team? ¿Consideras que los hackers se han excedido en sus ‘funciones’?Cuando aparece algo que daña o quebranta en un punto en cualquier sociedad, cultura, llamemolo como se quiera, provoca caos, esto genera miles de opiniones de un lado y del otro. Personalmente opino que se debe tener un objetivo, un ETICA, saber de que lado estoy y hacia donde voy… Considerando que el conocimiento que podemos llegar a obtener y los alcances en nuestra cultura son envidiados por muchos.. es por esto mismo que debemos tener aun mas claro, quienes somos, que queremos y hacia donde vamos. Considero que Hacking Team se desvió…

¿Cuáles crees que deberían ser los límites del hacker?** El limite de un hacker es su ETICA, El limite esta en si cruzas esa delgada linea que divide lo bueno de lo malo, en la cual todos los que hacemos parte de este mundo vivimos…

¿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? Considero que gran parte, tal vez el 70% de la sociedad apenas esta abriendo los ojos a este mundo, son muy pocas las personas que le dan un verdadero valor a su información, de aquí, deriva el poco, por no decir nulo, conocimiento a cerca de nosotros.. personas que para muchos somos Dioses.. para otros Demonios…

Cuando la sociedad se entere en que era esta, entonces el significado que tienen de nosotros cambiará….

Saludos… Neox!

SQL Injection DVWA… Tarea 5!

De nuevo… Hola a todo@s

hoy hablare y dare unos ejemplos de SQL injection o inyección SQL, como es habitual, un poco de teoría para comenzar

Método de infiltración de código intruso que se vale de una vulnerabilidad informática presente en una aplicación en el nivel de validación de las entradas para realizar operaciones sobre una base de datos.

El origen de la vulnerabilidad radica en el incorrecto chequeo o filtrado de las variables utilizadas en un programa que contiene, o bien genera, código SQL. Es, de hecho, un error de una clase más general de vulnerabilidades que puede ocurrir en cualquier lenguaje de programación o script que esté embebido dentro de otro.

Se conoce como Inyección SQL, indistintamente, al tipo de vulnerabilidad, al método de infiltración, al hecho de incrustar código SQL intruso y a la porción de código incrustado.

Para este ejemplo manejaremos una maquina virtual que puedes descargar aqui, utilizando virtualbox, podemos importarla y realizar todo lo que veremos aquí en este post.

1

Una vez importada la maquina virtual, configuraremos una adaptador de red solo anfitrión para nuestra maquina virtual. Después de iniciada la MV, nos mostrara una dirección IP, la cual ingresaremos como URL dentro de un navegador en nuestro equipo anfitrión. Una vez hecho esto, el navegador nos mostrará la siguiente pantalla:

2

Para conocer un poco la historia y todas las funcionalidades de DVWA, aqui esta su sitio web.

el usuario y contraseña para ingresar son:

user: admin

password: password

Para este ejemplo, una vez estemos dentro de la herramienta, bajaremos los niveles de seguridad a los minimos: En el panel izquierdo: DVWA Security – low – submit

Una vez hecho esto, clickeamos en SQL Injection, ubicado en el mismo panel.

3

Situados aqui, comenzaremos con nuestros ejercicios:

Primer Ejercicio:

Para comenzar, digitamos 1 en el cuadro de texto

  • 1

4

Para este ejemplo explotamos la siguiente sentencia PHP:

  • $getid = «SELECT first_name, last_name FROM users WHERE user_id = ‘$id'»;

Para que sea un poco mas sencillo de ententer, la sentencia anterior, realiza un SELECT de las columnas first_name, last_name, de la tabla users donde el id del usuario es igual a = «1».

Segundo Ejercicio:

Aquí ingresamos la siguiente sentencia en el cuadro de texto:

  • %’ or ‘0’=’0

Explotaremos una consulta realizada por MYSQL

  • mysql> SELECT first_name, last_name FROM users WHERE user_id = ‘%’ or ‘0’=’0′;

Lo que sucede en este caso, es que el código injectado hace que la consulta se vuelva «verdadera», por que?

Lo que estamos haciendo es que la consulta evalue un id = % o 0 = 0,  lo cual hace que la consulta se vuelva verdadera para todos los registros de la tabla, por lo tante trae todos los existentes.

5

En la imagen anterior, vemos los registros existentes dentro de la tabla para los campos, first_name y last_name.

Tercer Ejercicio:

Ingrese el siguiente código:

  • %’ or 0=0 union select null, version() #

Para este ejemplo estamos utilizando el ejercicio anterior, uniendole a la consulta, la solicito de versión  del motor de base de datos (mysql)

6

Vemos que la version es: 5.5.44

Cuarto Ejercicio:

El siguiente código debe ser ingresado:

  • %’ or 0=0 union select null, user() #

Funciona de la misma forma que el ejercicio anterior, con la diferencia de que aquí no solicitamos la versión del motor de base de datos, sino el usuario quien lo administra

7

La consulta nos muestra que el usuario es : dvwa.

Quinto Ejercicio:

Ingresa el siguiente codigo:

  • %’ or 0=0 union select null, database() #

8

De esta manera podremos conocer el nombre de la base de datos en la cual se encuentran alojados dichos registros.

Sexto Ejercicio:

  • %’ and 1=0 union select null, table_name from information_schema.tables #

9

Aquí encontramos la información de la base de datos Information_schema, en la cual se almacena la información acerca de todas las otras bases de datos del servidor mysql

Septimpo Ejercicio:

Código a inyectar:

  • %’ and 1=0 union select null, table_name from information_schema.tables where table_name like ‘user%’#

10

Para este ejemplo Filtramos la información anterior, solicitando las tablas existentes dentro de informtion_schema que contengan el prefijo «users»

Octavo Ejercicio:

  • %’ and 1=0 union select null, concat(table_name,0x0a,column_name) from information_schema.columns where table_name = ‘users’ #

11

Inyectando este código, logramos mostrar todas las columnas de la tabla usuario, vemos que existen las siguientes:

user_id

first_name

last_name

user

password

avatar

Noveno Ejercicio:

Código:

  • %’ and 1=0 union select null, concat(first_name,0x0a,last_name,0x0a,user,0x0a,password) from users #

12

Solicitamos los registros existentes en la tabla usuario, teniendo esto ya tenemos los nombre de usuario y contraseña de dichos usuarios.

Sin embargo, la contraseña se encuentra en HASH, por lo tanto utilizaremos la herramienta John the Ripper instalada en Kali, sino lo tienen su pagina -> aqui

Comenzaremos creando un archivo txt concatenando cada una de los usuarios y contraseñas de la siguiente manera:

«usuario1″:»hashContraseña2»

«usuario2″:»hashContraseña3»

«usuario3″:»hashContraseña3»

13

Hecho esto, guardamos nuestro archivo y ejecutamos el siguiente comando dentro de la terminar de Linux (John the Ripper)

  • john –format=raw-MD5 «archivo.txt»

14

Utilizando el comando anterior se decifran las contraseñas almacenadas dentro la base datos, tal como se ve en la imagen anterior.

Asi terminamos los ejercicios de este post,

SQL Injection es mucho mas de lo que les acabo de mostrar, las herramientas empleadas son mucho mas grandes de lo que les mostre…

Saludos!!!

Neox!

Analizador de Paquetes «Wireshark». Tarea 4

wireshark

De nuevo… A tod@s Hola….

Hoy hablare y mostrare algunos ejemplos de los analizadores de protocolos. Herramienta utilizado para analizar (valga la redundancia) los paquetes o trazas que viajan por la red.

Wireshark antes conocido como Ethereal, 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.

La funcionalidad que provee es similar a la de tcpdump, pero añade una interfaz gráfica y muchas opciones de organización y filtrado de información. Así, permite ver todo el tráfico que pasa a través de una red (usualmente una red Ethernet, aunque es compatible con algunas otras) estableciendo la configuración en modo promiscuo. También incluye una versión basada en texto llamada tshark.

Link de descarga

https://www.wireshark.org/#download

Una vista de la intergaz de wireshark

1

Para este post usaremos un archivo de trazas capturadas con anterioridad, es decir, una vez realizamos la captura de las trazas de la red (sniffear), podemos almacenar dicha captura dentro de un archivo, para poder ser analizado después con wireshark.

  1. Caputra de Protocolo inseguro – Telnet (Descargar archivo aqui)

Para este ejercicio, daremos respuesta a las siguientes preguntas:

  • ¿Qué usuario y contraseña se ha utilizado para acceder al servidor de Telnet?
  • ¿Qué sistema operativo corre en la máquina?
  • ¿Qué comandos se ejecutan en esta sesión?

Una vez abramos nuestro archivo (.cap) obtendremos la siguiente interfaz, la cual esta compuesta por las multiples tramas del procolo telnet que fueron capturadas al sniffear la red.

2

Ahora explicare un poco la interfaz, principalmente esta dividida en tres paneles.

  1. Compuesto de las diferentes tramas que fueron caputaradas
  2. Permite visualizar detalladamente las cabeceras que componen la trama seleccionada del panel 1.
  3. Nos permite ver el cuerpo del paquete

Para observar de manera mas especifica y comoda el trafico podemos realizar diferentes tipos de filtros. Para este ejemplo, aplicaremos el filtro para el protocolo

3

Damos click derecho en el panel dos(2), y Follow TCP stream. Esta opción funciona cuando estamos analizando protocolos basados en TCP, le permitirá ver el flujo de datos TCP de la manera mas similar a como se ve en la capa de aplicación:

5

Aquí visualizaremos muchísimo mas fácil el usuario, password y sistema operativo utilizado en la apertura de sesión de Telnet.

6

Usuario: fake

Contraseña: user

Sistema Operativo: OpenBSD

También podemos visualizar los comandos que fueron utilizados durante la sesión Telnet.

7

$ls

$ls -a

$ping http://www.yahoo.com

$exit

        2. Captura de Protocolo seguro – SSL(Descargar archivo aqui)

Para tener en cuenta antes de continuar:

SSL (Secure Socket Layers) es un proceso que administra la seguridad de las transacciones que se realizan a través de Internet. El estándar SSL fue desarrollado por Netscape, junto conMastercard, Bank of America, MCI y Silicon Graphics. Se basa en un proceso de cifrado de clave pública que garantiza la seguridad de los datos que se envían a través de Internet. Su principio consiste en el establecimiento de un canal de comunicación seguro (cifrado) entre dos equipos (el cliente y el servidor) después de una fase de autenticación.

El sistema SSL es independiente del protocolo utilizado; esto significa que puede asegurar transacciones realizadas en la Web a través del protocolo HTTP y también conexiones a través de los protocolos FTP, POP e IMAP. SSL actúa como una capa adicional que permite garantizar la seguridad de los datos y que se ubica entre la capa de la aplicación y la capa de transporte ( por ejemplo, el protocolo TCP).

Aqui les dejo un enlace para que lean y entiendan el funcionamiento de este protocolo. De esta manera, sera un poco mas facil, entender la captura de Wireshark

https://publib.boulder.ibm.com/tividd/td/TRM/SC23-4822-00/es_ES/HTML/user277.htm

Para este ejercicio, daremos respuesta a las siguientes preguntas:

  • ¿Puedes identificar en qué paquete de la trama el servidor envía el certificado?
  • ¿El certificado va en claro o está cifrado? ¿Puedes ver, por ejemplo, qué autoridad ha emitido el certificado?
  • ¿Qué asegura el certificado, la identidad del servidor o del cliente?

A continuación veremos que en los paquetes 2, 11 y 18 de la captura se envía el certificado por parte del navegador.

8

Dando click derecho sobre la trama en el cual se encuentra el certificado, follow TCP stream, podemos evidenciar que el certificado se envia de manera cifrada (RSA) y que fue emitido por:  www.versign.co

9

El certificado es asegurado por la identidad del servidor, sin embargo, el servidor tambien puede solicitar un certificado al cliente.

        3. Captura de Protocolo seguro – SSH(Descargar archivo aqui)

Respondamos ahora las siguientes preguntas,

  • ¿Puedes ver a partir de qué paquete comienza el tráfico cifrado?
  • ¿Qué protocolos viajan cifrados, todos (IP, TCP…) o alguno en particular?
  • ¿Es posible ver alguna información de usuario como contraseñas de acceso?

Podemos evidencias a partir de que paquete comienza el trafico cifrado:  numero veinte(20), para nuestro ejercicio

10

Para dar respuesta a nuestra segunda pregunta, debemos revisar detalladamente cada una de las tramas que hay un nuestra captura, al menos, algunas de cada protocolo, con el fin de visualizar que tramas viajan encriptadas y cuales no, culminando nuestro análisis, concluimos que viaja encriptada, únicamente las tramas del protocolo SSH

11

Nuestra ultima pregunta, se responde con las anteriores, como vimos, toda la información viaja encriptada, al menos para el protocolo SSH (en nuestro ejemplo), por lo tanto, es imposible visualizar o extraer contraseñas de nuestras tramas.

Pido disculpas por demorarme, por tardarme, prometo no volverlo a hacer. Esten pendientes de mi proximo Post

Saludos,

Neox.