lunes, 26 de octubre de 2015

Tarea Final

Y esto terminó....

Esta es la última de las tareas, la Tarea Final. Un resumen del trabajo que he llevado a cabo durante estas semanas....

Empezando desde el desconocimiento profundo de este tema, ha sido una gran experiencia, poder ver el uso de herramientas muy comunes para los desarrolladores como yo, desde el punto de vista de un hacker...

Aprender a buscar los puntos débiles de un sistema, la importancia de los roles en una BBDD, la NECESIDAD de encriptar un documento.... son  puntos que no tienes normalmente en cuenta a la hora de desarrollar y creedme que me habéis convencido de la importancia  y he descubierto un mundo de fallos en mis desarrollos, que a partir de ahora no cometeré.-

Desde la primera tarea:

http://porfinalgodemi.blogspot.com.es/2015/09/comenzamos-tarea-1.html

La búsqueda de la puerta y del amo de llaves, con PING, WHOIS y NMAP... por dónde quién y qué debilidades tiene...

Ha sido muy instructivo seguir en el foro la tarea 2 de los compañeros, para alguien nuevo como yo, descubrir recursos en la WEB interesentes y leer artículos sobre este tema es muy constructivo.

http://porfinalgodemi.blogspot.com.es/2015/09/tarea-2-recursos.html

La Tarea 3 criptografía, siempre me llamó la atención los modos de encriptación y la dificultad de encriptar/desencriptar un documento.
Aquí me demostraron también que es mejor ponérselo difícil al curioso, que es bastante fácil capturar una información y si no está encriptada leerla. El uso de kleopatra para la emisión de certificados y la encriptación de documentos es muy sencillo.

Este tema requiere un poco más de dedicación que un punto en un curso, seguiré investigando porque me gustó bastante y puedo orientarlo a mi trabajo.

http://porfinalgodemi.blogspot.com.es/2015/09/tarea-3-criptografia.html

Captura de información con WhireSark, aquí me demostraron que hacer un telnet es bastante peligroso, que más vale tener una conexión donde los paquetes vayan encriptados (SSL), o habrás expuesto tus datos....

http://porfinalgodemi.blogspot.com.es/2015/10/unidad-2-tarea1.html

Tarea 2 unidad 2 uff yo creo que la mejor... SQL injection... una pasada darte cuenta de la importancia de no permitir ciertas cadenas y validar la información de los formularios antes de dejar que los envíes... o te la pueden colar pero bien...
Aprender comandos básicos para colarte en la BBDD y poder encontrar hasta el usuario administrador; como decía al principio... importantísimo los roles en las BBDD, no dejar a un usuario hacer determinadas sentencias.

Esta tarea la puse en práctica en mi sistema y he tenido que recortar las atribuciones de ciertos usuarios.

http://porfinalgodemi.blogspot.com.es/2015/10/unidad-2-tarea-2.html

Las tareas de reflexión, son tan personales.... aquí las dejo... es breve porque  las opiniones son tan personales que no me gusta entrar más allá

http://porfinalgodemi.blogspot.com.es/2015/10/unidad-2-tarea-3.html

No participé en el reto... sinceramente por mi inexperiencia, pensé que más que aportar y aprender sería un lastre para un equipo. Me arriesgué pensando que ahí acababa mi incursión y sabiendo que me había llevado mucho ya de este curso.
Mi alegría al ver que podía conseguir la medalla de padawan aún sin paticipar en el reto ha sido tremenda.

Una gran experiencia, poder darle la vuelta a mi sistema para encontrar puntos débiles y aplicar restricciones, he aprendido a darle más importancia a puntos que para mí eran secundarios y eso ya vale mucho.

Seguiré aprendiendo e investigando, este mundo me ha gustado bastante :D

Un curso distinto, de temática delicada y con buena orientación,

Estaré atenta a otros cursos vuestros.

miércoles, 14 de octubre de 2015

Unidad 2 Tarea 3 y 4

Quien tiene la información tiene el poder.
Gran frase esta, tan grande como cierta; ahora bien, la manera de usar ese conocimiento es tan importante como tenerlo.
Me explico, está muy bien saber las vulnerabilidades de un sistema, la persona que las conozca tendrá que decidir si usarlas para poder defenderlas o para entrar y romperlo.
La verdad es que suena divertido, poder entrar en un sistema ajeno y gastar un par de bromas, siempre y cuando no los dañes, imagínate entrar en el servidor de tu empresa y colgar en la intranet un monigote de inocente inocente 😉. 
Pero ¿dónde está el límite? Difícil pregunta, la ética de cada persona depende de la educación que ha recibido, del entorno o de las influencias que en su vida haya tenido; lo que para mí es una travesura (una aventura divertida) para otros puede ser un ataque de mal gusto.
Robar espiar y destruir son conceptos muy claros del mal uso de una incursión , pero otros dirán que depende del objetivo.
Lo que sí que tengo claro es que hay que usar tu información de manera constructiva, para reforzar y defender tu propio sistema.
La ética no se aprende "se vive"

jueves, 8 de octubre de 2015

Unidad 2 . Tarea 2

SQL Injection

Es un defecto  normal del programador no preocuparse de proteger las BBDD limitando el acceso con roles. Inicialmente (y salvo por la propia experiencia), no lo suele tener en cuenta en los análisis; y amigos míos proteger tu BBDD es más importante de lo que piensas.

Aprovechando este descuido, se pueden utilizar los formularios web para obtener más información (o información más interesante) de la que el propio programador había pensado.

 ¿Cómo? usando los campos de estos formularios para introducir código SQL que varíe la respuesta de la sentencia SQL original.

Y esta es la práctica de SQL Injection:

Tras instalar VirtualBox e importar la máquina virtual que nos han proporcionado, la IP que conecta es la 192.168.56.101, nos conectamos a esta IP y nos logamos.

admin/password

Bajamos el nivel de seguridad a low, para poder lanzar las consultas.


Ahora nos vamos a la opción SQL Injection  comenzamos a probar:

1 ; Al meter este dato, vemos que el resultado de la consulta es este.



Deduzco que es una consulta simple de una tabla de usuarios y hemos seleccionado el primero. La select podría ser 'SELECT FIRST-NAME, SURNAME FROM USERS WHERE ID='1';

Visto esto vamos a ver si averiguamos todos los usuarios de la tabla: injectamos esto en la consulta %' or '0=0

Y voilá aquí están los 5 registros que probablemente tenga la tabla.

Otro dato interesante es la versión de la BBDD, para esto podemos injectar 
%' or 0=0 union select null, version() "


Versión es la 5.5.44
Si somos muy curiosos vamos a ver quién es el usuario: %' or 0=0 union select null, user()

El usuario dvwa@localhost
Para el nombre de la BBDD: %' or 0=0 union select null, database()

La BBDD dvwa
El esquema de la BBDD (descripción de tablas): %' and 1=0 union select null, table_name from information_schema.tables #


Podremos ver todas las tablas definidas en la BBDD dvwa incluidas las propias de control de la BBDD
Del esquema que salio antes podremos filtrar a ver qué tabla es la de usuarios.. 
%' and 1=0 union select null, table_name from information_schema.tables where table_name like 'user%'#


users es la tabla que buscábamos

Vamos a ver su estructura:   %' and 1=0 union select null, concat(table_name,0x0a,column_name) from information_schema.columns where table_name = 'users' #



la columna password chan chan¡¡¡¡ es la más interesante de todas... seguimos mirando un poco más dentro; Hacemos una select con las columnas de la tabla que nos interesa ver (entre ellas la password) %' and 1=0 union select null, concat(first_name,0x0a,last_name,0x0a,user,0x0a,password) from users #




Tenemos la clave del usuario administrador, con ella podemos entrar 
Y con esto acabamos... es muy sencillo si no tienes cuidado de cómo administras la BBDD

Ya sólo me quedan 2 tareas... y ver cómo avanza el reto.

Que pena no tener más tiempo para dedicarle a esto (pero se hace lo que se puede)























viernes, 2 de octubre de 2015

Unidad 2 . Tarea1

WhireShark...

Una herramienta para el análisis del tráfico de datos, la información capturada en función del protocolo usado estará cifrada o  no. Ahí radicará la facilidad de interpretarla.

Parte  1.
En el ejercicio analizamos una conexión por telnet.. conexión remota a una máquina sin cifrado.

De la IP 192.168.0.2 a 198.168.0.1

Respondiendo a las preguntas:

1.usu: fake pss: user
2. UNIX
3. Comandos:
   - ls
   - sbin/ping www.yahoo.com
   - \003
   - exit

Es abrumador la facilidad con la que se puede leer la información enviada/recibida por un Telnet...

Parte 2.
SSL, conexíón a un servidor con certificado:

1. En el paquete 2
2. Va cifrado con shawhithRSAEncripyption y lo emite verising
3. La del servidor, verifica que el servidor al que te conectas es el correcto (seguro)

Parte 3. 
SSH, es la alternativa segura para conectar a una máquina, toda la información está cifrada.

1. Del 20, antes sólo se estaba estableciendo la manera de comunicarse.
2. El propio de SSH, SSHv2
3. No que yo haya visto, toda la información está cifrada, sólo consigo localizar el algoritmo y padding de cifrado de los mensajes:






Que ganas de llegar al enigma... pero paso a paso, vamos a terminar primero toda la unidad...

Cada día me gusta más este curso... (y me da miedo todo lo que es capaz una cabeza pensante ¡¡¡¡)

lunes, 28 de septiembre de 2015

Tarea 3. Criptografía

Criptografía el arte de esconder las cosas

Al ser humano nos encanta ocultar las cosas en la misma proporción que nos fascina buscarlas.. ni qué decir la satisfacción de lograr descubrir el secreto.

Toda persona conectada a internet se encuentra expuesta a que la información que intercambia (y sin intercambiarla también) se vea comprometida... de ahí la importancia de extremar la protección.

En qué nos ayuda la criptografía??? sencillamente en esconder la información. Y cómo??? pues transformándola de manera que sólo el que tenga la llave puede reinvertir esa transformación y tener el archivo correcto.

Vamos a usar para esta práctica la herramienta Gpg4win, la versión completa (full) que incluye kleopatra. Y amigos sobre Windows 10 (a ver si funciona).

He generado un certificado de longitud 2028 y expiración en 2 años.


Con kleopatra podemos importar los certificados de terceros con los que ellos encriptarán sus documentos y tú descifrarlos cuando lleguen. (Y viceversa).

Tiene un motor de búsqueda que incluye la búsqueda por mail o E-mail (lo que simplifica las cosas), para poder importar el certificado de la persona que buscas:


Y ahora sólo hay que encriptar el documento, botón derecho del ratón Firmar y Cifrar. Seleccionamos los certificados con los que queremos encriptar (es recomendable seleccionar el propio también si queremos poder verlo en claro de nuevo) y voilá.. Se genera un archivo nuevo con extensión asc (esto es porque hemos selecciónado la salida en ASCII y no en binario)


El compañero que reciba este archivo con guardarlo y darle a desencriptar, si es propietario del certificado correcto podrá abrirlo:

El proceso para desencriptar una vez recibido el archivo es igual de sencillo botón derecho Desencriptar.

Metemos la contraseña de nuestro certificado y si es correcta, y el certificado también, el archivo se crea de nuevo pero sin cifrar



Qué hemos aprendido?¿?¿ que con lo fácil que es este proceso ¿Porque no no acostumbramos a enviar los documentos importantes cifrándolos??? Seguro que nos ahorraríamos muchos disgustos.

Cuantas más piedras haya en el camino más se le quitan las ganas a los demás de seguir caminando...

Tarea 2. Recursos

Recursos....

Al ser mi primera incursión en este mundo, no puedo opinar ni aconsejar sobre una web o un blog en concreto, para eso tendría que tener mucha más experiencia y haberlos trasteado más.

Buscando y leyendo en otros foros he encontrado esta que me llama la atención:

http://www.diariodeunhacker.com/articles/web-links/39-hacking

Es una comunidad donde te explican de forma sencilla herramientas que se suelen usar, webs de consulta e incluso tiene su propio foro donde puedes lanzar consultas y dudas sobre temas específicos..

Me ha resultado muy cómoda de ver...

jueves, 24 de septiembre de 2015

Comenzamos . Tarea 1

Comenzamos
PING.
Ya conocía este comando, pero sólo lo he usado cuando he tenido problemas con las conexiones a un servicio, para ver si el servidor estaba caído (antes de llamar a los de sistemas :D ) o para ver si un determinado puerto estaba abierto para garantizar la llamada de un Servlet externo a esa IP:puerto.


Resumiendo, google está operativo y permite la recepción de paquetes, normal.. es raro que google no esté en marcha. ;)

Y ahora a www.euskalert.net


Que haya TimeOut en la recepción de paquetes no indica que el servicio esté caído (de hecho si entras en la url desde el navegador accedes sin problemas), lo más probable es que un FireWall nos esté parando o que el propio Servidor esté configurado para bloquear la recepción.

WHOIS.

Esta herramienta es útil, para saber a quién llamar, en cada caso.
Probando con www.euskalert.net:


No puedo evitar sonreir un poco... al ver la fecha de actualización de los datos, supongo que más de uno de este curso habrá llamado al responsable administrativo, y les habrán tirado de las orejas. (Ayer mismo hice este ejercicio y estaban los nombres en claro :P ). 

A lo que iba... normalmente aquí se vería de quién depende administrativamente y técnicamente, el dominio que consultamos, el nombre del servidor, dirección física, quien renueva el dominio etc... información muy interesante, como decía antes, para saber con quién hablar o a dónde ir.

Por lo que veo es un dominio de la Universidad, supongo que lo habrán puesto de pruebas

NMAP

Encantada de conocerte....

Realizé el comando nmap -A -v que es el más completo de escaneo contra www.euskalert.nety este es el resultado:


.


De los puertos escaneados detecta dos uno abierto el 80 y otro cerrad el 443, que está dedicado a un servicio https. El puerto 80, está abierto pero protegido con un firewall de Unix (problemente), de ahí la denominación tcpwrapper, porque el firewall deja paso al escáner pero cierra la conexión para no dejar pasar el paquete; Vamos que no somos un host autorizado para usar el servicio que protege y que se debería acceder por ese puerto.

También nos detalla la ruta de servidores que ha recorrido hasta llegar a la IP de euskalert.net

Y fin a la primera tarea.