domingo, 27 de septiembre de 2015

Tarea 3

TAREA 3: Una sencilla práctica sobre criptografía 

(NOTA: Esta actividad es una práctica que os servirá para la resolución del enigma que se planteará al final de la unidad 2 de cara a acceder a la propuesta del RETO) 

Descripción de la tarea 

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. 

A su vez, debido principalmente al carácter privado de PGP, la IETF (Grupo de Trabajo de Ingeniería de Internet) definió y ahora mantiene mediante el OpenPGP Working Group el estandar de Internet OpenPGP. Este estándar se define en el RFC 4880 y se utiliza como base en programas como el GNU Privacy Guard abreviado comúnmente como GnuPG o GPG. Este programa lo desarrolla el Free Software Foundation. Distribuido libremente mediante la licencia General Public Licence (GPL), GPG ofrece una interfaz de línea de comandos aunque también existen diversas interfaces de usuario gráficas. Estos son algunos de ellos: 

1. Windows Gpg4win 

2. Mac OS X GPGTools 

3. Linux Kleopatra (KDE) Seahorse (Gnome/xfce) 

En esta tarea te proponemos el intercambio de un archivo cifrado y firmado digitalmente. Para ello será necesario trabajar en grupos de al menos dos personas. A grandes rasgos, cada integrante del grupo generará un archivo de texto (mensaje), lo cifrará con la clave pública de un tercero y a su vez, compartirá el mensaje cifrado con el propietario de la clave pública para que éste lo descifre utilizando su clave privada. 

Aunque se puede utilizar cualquiera de las herramientas descritas en el párrafo anterior, a modo de ejemplo se ha empleado gpg2, el cual permite realizar las operaciones necesarias mediante la línea de comandos. 

A grandes rasgos, estos son los pasos a seguir: 

1. Generar un nuevo par de claves (pública y privada): 

$ gpg2 --gen-key 

2. Exportar la clave pública generada en binario y el modo ASCII blindado 

$ gpg2 --export nombre_usuario > nombre_usuario-pub.gpg 
$ gpg2 --armor --export nombre_usuario > nombre_usuario-pub-asc.gpg 

3. Compartir con un tercero la clave pública exportada y obtener el suyo 

4. Importar la clave pública de un tercero 

$ gpg2 --import nombre_usuario2-pub.gpg 

5. Generar un archivo de texto y firmarlo y cifrarlo. 

Modo binario - > 

$ gpg2 --recipient nombre_usuario2 --sign --encrypt test.txt 

Modo ASCII - > 

$ gpg2 --recipient nombre_usuario2 --armor --sign --encrypt test.txt 

6. Enviar y recibir el mensaje cifrado al compañero de la tarea 

7. Descifrar el mensaje recibido mediante nuestra clave privada, el proceso verifica la firma Modo binario - > 

$ gpg2 --decrypt test.txt.gpg > test.txt Modo ASCII - > $ gpg2 --decrypt test.txt.gpg > test.asc.txt 

Una vez realizados los pasos, el compañero debería de ser capaz de interpretar el mensaje que se le ha enviado.

Para esta tarea se hizo uso de la herramienta Gpg4win, a continuación se describen los pasos a seguir cabe señalar que no importa si se hace el uso de una herramienta para encriptar y otra para descifrar los resultados son los mismos. 

No se detallaran los pasos que se hicieron para la instalación de Gpg4win. 

1.- Creación de claves personales y configuración mínima inicial

Lo primero es abrir el programa Gpg4win e ir a la pestaña file y aparecerá un menú como se muestra en la siguiente imagen:





Seleccionamos la opción New Certificate y nos aparecerá una nueva ventana, lo siguiente que nos pregunta la aplicación es si deseamos crear un certificado de tipo OpenPGP o de tipo X.509. tal y como aparece en la siguiente imagen :



La ventaja del primer tipo es que es de tipo auto-servicio: nosotros nos creamos nuestro propio certificado con los datos que queremos y lo tenemos listo para usar de inmediato. La desventaja es que no hay un tercero que de fé de la veracidad de los datos, por lo que la “gestión de la confianza” del certificado de otras personas es más engorrosa. Es decir, corre de nuestra cuenta verificar que tanto los datos del certificado, como la titularidad del mismo y la identidad de su creador son ciertos.

Una vez le indicamos que deseamos un certificado de tipo OpenPGP, se nos piden los datos básicos necesarios para crear dicho certificado: nombre y apellidos, dirección de correo electrónico y un comentario opcional tal y como aparece en la siguiente imagen:




Agregamos un nombre y una dirección de correo electrónico las opciones avanzadas las dejamos tal y como están, si requieren modificar algunos parámetros opcionales del certificado le dan clic y aparecerá una ventana como se muestra en la siguiente imagen:



 En dichos parametros podemos elegir el tipo de clave a generar (RSA o DSA + ElGamal), la longitud de la clave (no se recomienda menos de 2048 bits actualmente), y el tipo de uso que haremos del certificado y la validez temporal del mismo.

A menos que haya razones para ello, se recomienda elegir claves de tipo RSA con longitudes de 2048 bits o superiores (aunque cuando mayor es la longitud mayor es la se.guridad, también lo es el tiempo de cómputo necesario). Asimismo se recomenienda especificar que el certificado es tanto para firma (Signing) como para cifrado (Encryption), e indicar una fecha de caducidad de unos 2-4 años si así se desea.

Una vez especificados los ajustes avanzados del certificado pulsamos en el botón “OK”, y cuando volvemos a la pantalla con los ajustes normales del certificado pulsamos sobre el botón “Next >”. Nos aparece la pantalla con el resumen de los ajustes como se muestra en la siguiente imagen:



Pulsamos sobre el botón “Create Key” para comenzar la generación de las claves del certificado en sí. Se nos pide que introduzcamos una contraseña para proteger la privacidad del certificado. Es importante introducir una contraseña robusta, puesto que cualquiera que descubra esta contraseña podrá utilizar nuestro certificado, y por tanto suplantar completamente nuestra identidad digital. Podemos utilizar múltiples palabras o frases tan largas como queramos (que suelen ser más fáciles de recordar), así como se muestra en la siguiente imagen:



Según la vamos introduciendo nos va indicando la calidad (robustez) de la contraseña:


Se nos pide que la introduzcamos por segunda vez para comprobar que la hemos tecleado correctamente. Una vez introducida la contraseña se generan las claves del certificado. Dependiendo de la velocidad de nuestro equipo y de la cantidad de actividad que tenga en ese momento le costará más o menos tiempo. Lo normal es que sean unos pocos segundos. Cuando termina se nos muestra una pantalla similar a la pantalla siguiente:




En ella se nos muestra la huella digital (Fingerprint) de nuestro certificado. Este es uno de los datos que se pueden consultar más tarde y que se suelen usar para poder verificar la veracidad del certificado y la de su propietario.


Además se nos da la opción de hacer una copia de seguridad del certificado, pulsando el botón “Make a Backup Of Your Key Pair…”, algo que es altamente recomendable.

2.- Importación de certificados desde archivo

Podemos recibir los certificados (su parte pública) directamente desde sus propietarios. En este caso, se nos facilitarán en forma de archivos.

Para esto ocupamos un compañero con quien trabajar para que nos mande su parte publica.


Para poder importarlos en Kleopatra tenemos que pulsar en el botón “Import Certificates…” de la pantalla principal como se muestra en la siguiente imagen:



Despues de ello se abre un cuadro de diálogo para escoger el archivo que contiene el certificado a importar el que nos haya mandado nuestro compañero con el que hemos estado trabajando, que deberá estar en uno de los formatos estándar para certificados OpenPGP o X.509. Una vez seleccionado el archivo desde donde lo tengamos , Kleopatra intentará importar el certificado. Si todo va bien, se nos muestra un cuadro de diálogo con un resumen de la operación como se muestra en la siguiente imagen:



Pulsando el botón “OK” volveremos a la pantalla principal, donde se nos mostrará en la pestaña “Imported Certificates” una lista de los certificados que acabamos de importar (que también aparecerán en la pestaña “Other Certificates”), como en el caso anterior, como se muestra en la siguiente imagen:




3.- Cifrado y firmado de archivos

Una vez tenemos importados los certificados de los usuarios en este caso con el compañero que hemos estado trabajando o para los que queremos cifrar un archivo, podemos llevar a cabo la operación de cifrado en sí. Para ello haremos uso de las extensiones del explorador de archivos que configura Kleopatra como parte de su instalación inicial.


Vamos a la carpeta donde está el archivo que queremos cifrar. Pulsamos con el botón derecho sobre el archivo en cuestión y nos aparecerá un menú contextual similar al siguiente:




Entre las opciones disponibles tendremos “Firmar y cifrar” y “Más opciones de GpgEx”. Si queremos cifrar el archivo y además firmarlo digitalmente, podremos usar directamente la primera opción. Si sólo queremos cifrarlo o sólo firmarlo (o descifrarlo, o verificarlo, etc.), escogeremos la segunda y dentro de ella la opción que nos convenga.


Suponemos que escogemos “Firmar y cifrar” (la opción más interesante, ya que además de garantizar la confidencialidad con el cifrado, garantizamos la integridad del archivo con el firmado digital). En este caso se nos muestra una pantalla como la siguiente:

En este caso escogemos la opción (ya preseleccionada) “Sign and Encrypt (OpenPGP only)” y seleccionamos la casilla “Text output (ASCII armor)”, que guarda el archivo firmado y cifrado en un formato de texto ASCII (lo que hace que sea menos problemático para enviarlo por correo, por ejemplo).

Pulsamos sobre el botón “Next >”.y en la siguiente pantalla se nos pide que indiquemos para qué usuario destinatario queremos cifrar el archivo. O dicho de otro modo, para que certificado queremos cifrar el archivo. Se nos muestra una lista de certificados disponibles. Si son muchos, podemos filtrarlos o bien usando la casilla “Find” (con un método de selección similar al indicado en la sección 3), o bien con el menú desplegable que está a la derecha de dicha casilla, donde podremos seleccionar diferentes subconjuntos de certificados.

Se nos muestra una pantalla como la siguiente:

Para escoger un certificado con el que cifrar el archivo, basta con seleccionarlo con el ratón y pulsar el botón “Add” de la zona intermedia. Nos quedaría como en la imagen siguiente:



Una vez escogidos los certificados, pulsamos en el botón “Encrypt”. En este punto puede ocurrir que nos aparezca un cuadro de diálogo como se muestra en la imagen siguiente:



En este caso se nos indica que puesto que no hemos indicado ningún de nuestros propios certificados como destinatario, no vamos a poder descifrar el archivo una vez cifrado. Si estamos seguros de que es lo que queremos, pulsamos el botón “Continue”. Sino pulsando el botón “Cancel” podemos volver a la pantalla anterior y añadir alguno de nuestros certificados a la lista de certificados destinatarios.

Si continuamos adelante, nos aparece la pantalla donde debemos indicar con qué certificado propio queremos firmar digitalmente el archivo. Escogemos unos de nuestros certificados de la lista que nos muestra, y opcionalmente marcamos la casilla “Remember thses as default for future operations” si queremos utilizar ese certificado por defecto en el futuro. Y pulsamos en el botón “Sign & Encrypt”.
Así como aparece en la siguiente imagen: 



En este momento se nos pide que introduzcamos la contraseña que hayamos utilizado anteriormente para asegurar la privacidad del certificado, si se introduce correctamente, se firma digitalmente el archivo con nuestro certificado y se cifra con el certificado o certificados destinarios y se nos muestra el resultado de la operación como se muestra en la siguiente imagen:




Si volvemos a la carpeta que contiene el archivo original que hemos cifrado, veremos que hay un segundo archivo con el mismo nombre y una extensión extra. En el caso de usar certificados de tipo OpenPGP, será “.asc” si hemos marcado la casilla “Text output (ASCII armor)”, o “.gpg” si no lo hemos hecho.

Así como se muestra en la siguiente imagen:



3.- Descifrado y verificación de archivos

Una vez visto como cifrar y firmar digitalmente archivos, necesitamos ser capaces de hacer la operación complementaria: descifrar el archivo y verificar la firma digital.


Para ello necesitamos tener un archivo cifrado que haya sido enviado anteriormente por nuestro compañero de equipo hacer clic con el botón derecho sobre el archivo cifrado, y opcionalmente firmado, que hemos recibido. Si el archivo se ha cifrado usando certificados de tipo OpenPGP y hemos marcado la casilla “Text output (ASCII armor)”, el archivo cifrado tendrá extensión “.asc”, si no la hemos marcado tendrá extensión “.gpg” así como se muestra en la siguiente imagen:


Al hacer clic con el botón derecho nos aparecerán, entre otras opciones de menú la de “Descifrar y verificar” y “Más opciones de GpgEx”. Si queremos descifrar el archivo y además verificar la firma digital, podremos usar directamente la primera opción. Si sólo queremos descifrarlo o sólo verificarlo, escogeremos la segunda y dentro de ella la opción que nos convenga, asi como se muestra en la siguiente imagen:




Suponemos que escogemos “Descifrar y verificar” En este caso se nos muestra una pantalla como la siguiente:



En nuestro caso sólo tenemos que indicar la carpeta donde se colocará el archivo o archivos descifrados, indicándolo en la casilla “Output Folder”, o pulsando en el icono similar a un disquete que hay en la zona derecha para elegir en que carpeta.


Una vez indicada la carpeta, pulsamos en el botón “Decrypt/Verify”. Si el archivo de puede descifrar y la firma digital se verifica con éxito, obtendremos una pantalla como la siguiente, donde se nos indica que el archivo se ha descifrado y que estaba firmado digitalmente y que no hay informacion suficiente para validar la firma digital, pero aun asi descifra el archivo.



Si pulsamos en el enlace “Show details” que aparece en la zona derecha del mensaje de éxito, podemos ver más detalles sobre la firma digital, incluyendo la fecha y hora de firmado, el ID de la clave del certificado (“Key ID”) y el nivel de confianza en dicho certificado (en este caso, “ultimately trusted”, es decir, de confianza absoluta por nuestra parte) como se muestra a continuación:



Nos genera el archivo descifrado en la misma carpeta donde tenemos el archivo cifrado y lo podremos abrir ya descifrado, para poder ver el mensaje recibido tal y como se muestra en la siguiente imagen:



Resumen

En la siguiente imagen se ve los archivos que se necesitan, en primer lugar ocupamos la llave publica en este caso la del compañero con el que estuvimos trabajando, en este ejemplo se llama Pablo-pub.gpg, esto para agregarlo a mis certificados de confianza y poder descifrar su mensaje, luego de que nuestro compañero nos envié su mensaje el cual ya el deberá de tener cifrado con anterioridad en este caso se llama msj.txt.asc y el cual en este ejercicio pudimos descifrar, el tercero es el archivo ya descifrado que nos generara en la misma carpeta de nombre msj.txt.


Cabe señalar que no importa si se trabajan con diferentes sistemas operativos el resultado es el mismo.


TAREA 2: Búsqueda y puesta en común de recursos

Tarea 2

Internet es un gran espacio para relacionarse con otros usuarios pero ante todo es una gran biblioteca que está en continuo crecimiento. En esta tarea te proponemos que identifiques tres espacios web relacionados con la temática de este curso. Dos de ellos deben ser sitios que puedan ser considerados relevantes por la cantidad y calidad de recursos que ofrecen sobre Hacking. Pueden ser blogs personales, sitios web de organizaciones, empresas o grupos de usuarios de la red que comparten contenidos de calidad sobre Hacking. El tercer sitio web debe ser un espacio de encuentro entre interesados en el Hacking, pueden ser foros, grupos o comunidades en redes sociales, un hashtag en Twitter, etc. en general un sitio donde sea posible interactuar con otros usuarios, hacer preguntas y participar de forma activa en conversaciones. A continuación abre un artículo en tu blog y anota en él los tres recursos que has identificado indicando los aspectos más relevantes de cada uno de ellos y los motivos por los que los has seleccionado entre otros posibles recursos.

http://www.backtrackacademy.com

Muy interesantes sus aportaciones y siempre en constante ayuda a los usuarios nuevos con mucha información.

http://revista.seguridad.unam.mx/numero-12/hacking-%C3%A9tico-mitos-y-realidades

Muy interesante por los autores que publican en el siempre basándose en publicaciones de expertos en el tema.

https://www.facebook.com/groups/hackingmexico/


Un grupo de facebook para interactuar sobre el tema de hacking etico.



Tarea 1

Herramientas básicas para obtener información de servidores externos 

1. Ping: Utiliza la herramienta ping desde la terminal de tu ordenador para comprobar si están disponibles los siguientes hosts: www.google.es (O cualquier otra dirección conocida). www.euskalert.net O bien puedes optar por un servidor web de internet de tu elección. 

Haciendo ping a: www.google.es


Como se puede apreciar en la imagen anterior esta disponible el host. 
Haciendo ping a: www.euskalert.net



Como se puede apreciar en la imagen anterior no esta disponible el host. 

2. Whois: Comprueba si esta herramienta está disponible para tu Sistema Operativo. Si es así descárgala y si no usa su versión online (http://ping.eu/ns-whois/). A continuación busca información sobre el dominio que estás investigando. Encuentra la persona que figura como contacto técnico y como contacto administrativo. Esta información puede servir a un hacker para contactar directamente con las personas adecuadas dentro de la empresa (nota: Kevin Mitnick era un experto en colarse en las empresas vestido con un uniforme de asistencia técnica y preguntando por las personas adecuadas). 
El dominio a investigar es mycompulab.com


En la imagen anterior se puede apreciar que hay información de importancia tal como se estaba buscando el resultado nos arroja el nombre del administrador de donde es así como su dirección de correo electrónico y teléfono. 

3. Nmap: Descarga la herramienta Nmap y analiza alguna de las anteriores direcciones. A continuación explica qué puertos están abiertos y cuál puede ser la razón. Nmap también intenta identificar los sistemas operativos y las aplicaciones que están corriendo en el servidor que estás investigando. Identifica alguna aplicación en el servidor y consulta en la página de la Base de Datos de Vulnerabilidades Nacional de Estados Unidos (NVD) a cuántas vulnerabilidades está expuesto. 

Hacemos Nmap a mycompulab.com ejecutando el siguiente comando: 
nmap -sS -P0 -sV -O mycompulab.com 
-sS =escaneo TCP SYN (o escaneo sigiloso) 
-P0 =no se envían pings ICMP 
-sV =detecta las versiones 
-O =se intenta identificar el Sistema Operativo


como se puede observar en la imagen anterior hay el host contiene varios puertos abiertos, por lo que estan expuestos a varios posibles ataques Todas las tareas realizadas son básicas y de mucha utilidad para contrarrestar ataques .