martes, 24 de marzo de 2015

DShell  - Framework para análisis forense en redes.





Dshell, está escrito enteramente en Python, toda la base de código se puede personalizar para problemas particulares rápidamente y fácilmente. Al ser una herramienta muy flexible es posible ajustar un decodificador existente para extraer información ligeramente diferente de los protocolos existentes, y la de escribir un nuevo analizador para un protocolo completamente nuevo.  

Tiene como finalidad realizar marcos de análisis forense extensible que permite a los usuarios desarrollar rápidamente plugins para capturas de paquetes de la red a analizar. Dicha herramienta fue desarrollado por el Laboratorio de Investigación del Ejército de Estados Unidos. Dshell se encarga de volver a montar corriente de IPv4 e IPv6 tráfico de red y también incluye la geolocalización y los datos de mapeo de IP a ASN para cada conexión. También permite el desarrollo de la red de análisis de los plug-ins que se han diseñado para ayudar en la comprensión de tráfico de la red y presentar los resultados al usuario de una manera concisa y útil al permitir a los usuarios para analizar y presentar los datos de interés de varios niveles de la red apilar.DSHELL ha reducido el tiempo necesario para identificar y responder a los desafíos de la red forenses.



Descargar Dshell : https://github.com/USArmyResearchLab/Dshell



Instalación :




En esta ocasión voy a ejecutar Dshell en Ubuntu 14.04, para hacer breve la descarga y la ejecución es necesario digitar las siguiente líneas en la consola.



jalil@ubuntu:~/jalil$ sudo apt-get install python-crypto python-dpkt python-ipy python-pypcap python-pip unzip build-essential

jalil@ubuntu:~/jalil$ sudo pip install pygeoip

jalil@ubuntu:~/jalil$ wget https://github.com/USArmyResearchLab/Dshell/archive/master.zip

jalil@ubuntu:~/jalil$ unzip master.zip

jalil@ubuntu:~/jalil$ cd Dshell-master

jalil@ubuntu:~/jalil/Dshell-master$ make


Para realizar las pruebas es necesario disponer de un archivo pcap. Por ellos vamos a descargar un archivo públicos de Netresec:





jalil@ubuntu:~/jalil/Dshell-master$ wget http://download.netresec.com/pcap/maccdc-2012/maccdc2012_00016.pcap.gz


jalil@ubuntu:~/jalil/Dshell-master$ gzip -d maccdc2012_00016.pcap.gz


Para iniciar vamos a digitar el siguiente comando.

jalil@ubuntu:~/jalil/Dshell-master$ ./dshell
jalil@ubuntu:~/jalil/Dshell-master Dshell> decode -d




Tras la ejecución del comando vamos a poder visualizar las opciones que nos brinda Dshell. Ahora vamos a seleccionar un comando que nos brindara la lista de los decoders.


jalil@ubuntu:~/jalil/Dshell-master Dshell> decode -l





Para la siguiente prueba vamos a utilizar el modulo netflow el cual nos organizara la captura d ela red de tal forma que podemos identificar fácilmente los eventos relevantes.


jalil@ubuntu:~/jalil/Dshell-master Dshell> decode -d  maccdc2012_00016.pcap





En el siguiente imagen mostraremos búsquedas de DNS en el tráfico de la muestra descargada previamente.


jalil@ubuntu:~/jalil/Dshell-master Dshell> decode -d  dns maccdc2012_00016.pcap




En la siguiente imagen también podemos observar mas búsquedas DNS cuya información es de gran valor al momento que de los análisis forenses.





Otro módulo que nos puede arrojar información interesante es followstream . Como ya sabemos, el archivo pcap contiene los paquetes de las diferentes conexiones de red que fueron ocurriendo en un determinado sistema, pero utilizando este módulo es posible reconstruir las diferentes conexiones, en orden de ocurrencia, y de esta forma identificar lo que ocurrió en cada una de ellas.


jalil@ubuntu:~/jalil/Dshell-master Dshell> decode -d followstream maccdc2012_00016.pcap

Por ejemplo, en la siguiente imagen podemos observar que un atacante ha estado persistiendo tratando de explotar una vulnerabilidad LFI. Estos ataques suelen ser recurrentes como el mismo SQL Injection.





Bueno creo que hemos llegado al final del post, espero que la información brindada les sea de utilidad en un futuro próxima. También espero que puedan complementar la herramienta ya que dispone de una gran flexibilidad para añadir propios módulos de análisis. Sin mas que adicionar me despido y será hasta la próxima oportunidad.








lunes, 2 de marzo de 2015

VeraCrypt - GNU Privacy Guard - Kleopatra



Bueno en el siguiente post voy a tocar 2 puntos claves. El primero el cual van a estar relacionado con la seguridad de nuestra información alojadas en un nuestro ordenador o como también puede estarlo en un dispositivo de almacenamiento. El otro punto va tratar sobre la integridad de nuestra información la cual vamos a tratar de implementar un nivel de seguridad para evitar posibles modificaciones en nuestras comunicaciones.



Anteriormente en este blog se trato sobre la herramienta Truecrypt, de la cual se dijo es una aplicación informática  cuyo fin era de cifrar y ocultar datos que el usuario considere reservados empleando para ello diferentes algoritmos de cifrado como AES, Serpent y Twofish o una combinación de los mismos. Permite crear un volumen virtual cifrado en un archivo de forma rápida y transparente o cifrar una partición o una unidad extraible entera. Lamentablemente en de Mayo del 2014 hace poco menos de 1 año el sitio oficial de TrueCrypt anunció que el proyecto dejaría de desarrollarse y que el programa podría contener fallos de seguridad, por lo que recomendaba buscar soluciones alternativas.



Hubieron muchas especulaciones con respecto de que podría haber sido un software utilizado por la NSA y la fecha de caducidad del proyecto había llegado a su fin. Bueno creo que muchas cosas quedaran en el misterio hasta que aya un anuncio oficial. Pero tras la caída de Truecrypt, surgieron muchos proyectos con el mismo fin el de brindar seguridad a nuestra información. A continuación voy a comentarles acerca de VeraCrypt que tiene prácticamente toda la esencia de Truecrypt pero mejorado.



VeraCrypt es un sucesor del descontinuado TrueCrypt proyecto. VeraCrypt fue lanzado inicialmente (versión 1.0a) el 22 de junio de 2013 y su última version fue lanzada  (versión 1.0f) a partir de diciembre de 2014.  Las mejoras de seguridad se han implementado tras la auditoría que se realizó al código de TrueCrypt.

VeraCrypt utiliza 327.661 iteraciones del algoritmo PBKDF2-RIPEMD160 para particiones del sistema, y para contenedores estándar y otras particiones que utiliza 655.331 iteraciones de RIPEMD160 y 500.000 iteraciones de SHA-2 e hidromasaje. Si bien esto hace VeraCrypt ligeramente más lento en la apertura de las particiones cifradas, hace que el software de un mínimo de 10 y un máximo de alrededor de 300 veces más resistente a la fuerza bruta.

Nota : Algo que podría tomar un mes para acabar con TrueCrypt, tardaría un año aproximado poder lograrlo a VeraCrypt".

A continuación vamos a proceder a instalar VeraCryt, cuya intalación es muy similar a su antecesor TrueCrypt, la cual ya se tomo en cuenta en un post anterior.


TrueCrypt - Instalación : http://antisec-security.blogspot.com/2012/09/truecrypt-instalacion-truecrypt-es-una.html


Descargar VeraCrypt : https://veracrypt.codeplex.com/


Para el siguiente ejemplo, voy a instalar VeraCrypt en el Sistema Operativo Windows.




La instalación de VeraCrypt es sencillo y rápido. En el siguiente paso vamos a crear nuestro contenedor, al cual lo vamos a configurar de acuerdo a nuestro gusto particular.




Procederemos a crear un nuevo volumen de cifrado.




Si nunca antes tuviste una interacción con su antecesor TrueCrypt es recomendable usar la opciones de usuarios con poca experiencia.




Como deseamos crear un volumen estandar, pues la primera opción sería la adecuada.

En el siguiente punto VeraCrypt nos va a solicitar la dirección en la cual se va a crear el contenedor.




En mi caso voy a crearlo en mi Disco Externo, en el cual ya ha dispuesto de una carpeta con el Nombre de VeraCrypt la cual va a contener a dicho archivo(contenedor).




En la imagen podemos observar la carpeta que va a almacenar el contenedor que vamos a crear.




Procedemos a dar un nombre a dicho archivo, en mi caso he elegido el nombre de VeraCrypt y finalmente guardamos.




Un vez elegido la localización de nuestro contenedor vamos a proceder con las configuraciones.

A continuación vamos a seleccionar los algoritmos que deseamos aplicar a nuestro contenedor, los cuales son los siguientes.

  • AES
  • Twofish
  • AES(Twofish)
  • AES(Twofish(Serpent))
  • Serpent(AES)
  • Serpent(Twofish(AES))
  • Twofish(Serpent)

Para este ejemplo voy a utilizar la opción número 6 - Serpent(Twofish(AES)).




A continuación vamos a seleccionar la capacidad de almacenamiento de nuestro contenedor, el cuál yo he dispuesto de 1GB para este ejemplo.




Siguiendo con la configuración de nuestro contenedor vamos a añadir una contraseña la cual recomiendo sea de  gran extensión con símbolos y Mayúsculas.




PD : Si usted gusto puede añadir mas seguridad usando la opciones de llave basada en una archivo, el que usualmente suele ser una imagen.

Por último vamos a crear nuestro contenedor con las configuraciones que hemos realizado.




El tiempo que se demore en crear nuestro contenedor va a depender de la capacidad de almacenamiento del archivo.

Nota : Si gusta añadir mas seguridad con respecto al nivel criptográfíco se recomienda mover el mouse durante la creación de nuestro contenedor.




Hasta este punto ya tenemos creado nuestro contenedor seguro basado en 3 sistemas criptográficos.




Para finalizar esta sección del post vamos a abrir nuestro contenedor y posteriormente añadir cualquier clase de archivo que deseamos cifrar.




Primero vamos a seleccionar nuestro archivo cifrado, luego elegimos un Drive (en mi caso he seleccionado el Drive G) con un doble click, para finalmente introducir nuestra contraseña con la cual tendremos acceso a dicho contenedor.




Bueno como podemos observar ya tenemos acceso a nuestro contenedor y solo sería cuestión de seleccionar y mover nuestros archivos que deseamos cifrar. Al momento de querer cifrar nuestra información solo tendriamos que clickear en el botnet Dismount.


Nota : En la pestaña Settings disponemos de la opción Idiomas.





Bueno hemos llegado al final de la primera parte de este post, espero que la información compartida hasta el momento les haya sido de utilidad.


Es una herramienta de cifrado y firmas digitales, que viene a ser un reemplazo del PGP (Pretty Good Privacy) pero con la principal diferencia que es software libre licenciado bajo la GPL. GPG utiliza el estándar del IETF(Internet Engineering Task Force) denominado OpenPGP.


GPG es estable, calificado como un software para el uso en producción y es comúnmente incluido en los sistemas operativos como FreeBSD, OpenBSD, NetBSD y últimamente con todas las distribuciones GNU/Linux.Aunque básicamente el programa tiene una interfaz textual, actualmente hay varias aplicaciones gráficas que utilizan recursos de GPG. Por ejemplo, ha sido integrado dentro de Kmail y Evolution, también hay un plugin llamado Enigmail que se integra con Mozilla y Thunderbird que trabajan en Windows, GNU/Linux y otros sistemas operativos.


GPG cifra los mensajes usando pares de claves individuales asimétricas generadas por los usuarios. Las claves públicas pueden ser compartidas con otros usuarios de muchas maneras, un ejemplo de ello es depositándolas en los servidores de claves. Siempre deben ser compartidas cuidadosamente para prevenir falsas identidades por la corrupción de las claves públicas. También es posible añadir una firma digital criptográfica a un mensaje, de esta manera la totalidad del mensaje y el remitente pueden ser verificados en caso de que se desconfíe de una correspondencia en particular.


  1. Ana redacta un mensaje
  2. Ana cifra el mensaje con la clave pública de David
  3. Ana envía el mensaje cifrado a David a través de internet, ya sea por correo electrónico, mensajería instantánea o cualquier otro medio.
  4. David recibe el mensaje cifrado y lo descifra con su clave privada
  5. David ya puede leer el mensaje original que le mandó Ana.

Nota : Según las declaración y documentación expuesta por Edward Snowden, al parecer la Agencia de Seguridad Nacional de EEUU - NSA , había tenido dificultades al momento de querer romper el sistema de seguridad de GPG, claro que dicha información data del 2012, cosa que hay que tener claro que el día no podemos estar totalmente seguridad de la inmunidad de dicho sistema.




Un proyecto de código abierto que puede ayudarle a cifrar sus correos electrónicos y archivos directamente es Gpg4win, el GNU Privacy Guard para Windows. Gpg4win es apoyado por la Oficina Federal Alemana para seguridad de la información (BSI). Su objetivo es proporcionar a un instalador de Windows con un número de aplicaciones gratuitas para ayudarle a mantener sus datos seguros.




Pues consiguiente a la primera parte de este post vamos a seguir utilizando Windows por lo tanto vamos a utilizar la herramienta Gpg4win, la cual es el distribución oficial de Gnu Privacy Guard (GnuPG) para Windows. El instalador incluye los siguientes componentes:

  • GnuPG, la herramienta de cifrado de núcleo compatible con OpenPGP y S/MIME (x.509) estándares de criptografía
  • Kleopatra el cual se encargará de administrador los certificados.
  • GNU Privacy Assistant (GPA), un administrador de certificados alterno.
  • GpgOL, un plug-in para Microsoft Outlook 2003 y 2007 para cifrar mensajes de correo electrónico
  • GpxEX, nos añade al menú desplegable de windows (botón derecho) enlaces directos para poder cifrar descifrar, etc.
  • Claws Mail, un cliente de correo electrónico con soporte de cifrado
  • Gpg4win compendio, documentación exhaustiva de las herramientas

Instalación 

A continuación vamos a ver el proceso de instalación y la creación de las llaves las cuales nos permitirán una comunicación segura.


Descargar Gpg4win : http://gpg4win.org/download.html

La instalación es realmente sencilla, solo hay que tener presente que tenemos que deseamos instalar, la configuración por defecto es lo básico para poder crear un medio seguro de comunicación.




A continuación vamos a iniciar la herramienta Kleopatra, con la cuál voy a disponerme a crearme tanto mi clave privado como pública.

Primero vamos a ir a la pestaña File y escoger la opción New Certificate.




Esto nos proporcionara la siguiente ventana a la cual vamos a dar click en la primera opción, ya que es lo que deseamos hacer.




Ahora vamos a rellenar los siguientes formularios con un nombre y una dirección de email, las cuales pueden ser del gusto personal.




Antes de dar click en el boton Next, vamos a ir a Configuraciones Avanzadas, y vamos a configurar nuestras llaves. La opción por defecto se encuentra en 2,048 bits, nosotros los cambiaremos a 4,096 bits. Después de realizarlo vamos al boton Ok y continuaciamos.




Después de dar click al boton Next, vamos a poder observar la el nombre y el email que hemos ingresado , a la vez también podremos observar las configuraciones que hemos hecho. Ahora solo vamos a aceptar las configuraciones para crear nuestras llavez.




Por último vamos a ingresar nuestra contraseña, la cual recomiendo que sea una contraseña robusta con númoros, símbolos y Minúsculas.



Después de ingresar nuestra contraseña robusta vamos a esperar unos breves segundos para poder finalizar la creación de nuestras llaves y para culminar este proceso vamos al botón Finish.




Solicitar Clave Pública y Clave Privada.


A continuación vamos a solicitar nuestras llaves con las cuales nos vamos a firmar los mensajes que enviaremos próximamente. Iniciaremos con solicitar nuestra Clave Pública.




Seleccionamos una carpeta en la cual se va a guardar nuestra clave pública y guardamos.




Finalmente nos dirigimos a la carpeta seleccionada y abrimos nuestra llave pública para verificar que no haya error alguno.



Tras el éxito de solicitud de nuestra clave Pública, procederemos a pedir nuestra clave Privada, para esto desplegamos el menú y seleccionamos la opción Export Secret Keys.




Seleccionamos la carpeta y el nombre con el cual deseamos guardar el archivo. Es recomendable cifrar este archivo en un contenedor creado por VeraCrypt.




Hay que tener presente que esta llave es la base para este sistema. Una seleccionado el lugar de nuestra llave privada, proseguimos a clickear en el boton Ok.




Listo, ahora ya disponemos tanto de nuestra llave pública como privada.


Importar llave Pública y Privada.


Como bien ya se mostró en el diagrama anteriormente, de la cual se puede deducir que para poder enviar un mensaje al receptor es necesario disponer de su clave pública. Para este ejemplo he creado una cuenta adicional la cual sera el receptor.

Entonces iniciare importando la llave publica del receptor, el cual lleva el nombre de Khalil. (khalilkham@security.gov)

Al momento de crear la cuenta de receptor Khalil, tambien he creado una carpeta con el nombre Claves de Khalil, la cual contendrá tanto la clave pública como la privada de dicho usuario. Por lo consiguiente en este paso vamos a seleccionar la llave pública y click en Abrir.




A continuación realizo la misma función pero esta vez importare mi Clave privada.




Encriptación de mensaje.


Bueno para esta sección he creado una carpeta en mi Escritorio con 2 sub-carpetas y un mensaje en texto plano hecho en block de notas.



Las dos sub-carpetas van a contener tanto al archivo encriptado como al desencriptado. Ahora vamos a disponernos a encriptar dicho archivo que lleva el nombre de Crypted.


Primero vamos a seleccionar todo el texto del archivo y le damos en copiar, luego nos vamos a la pestaña Clipboard y elegimos la opción Encrypt.




Vamos al boton Add Recipent y damos click.




Aquí vamos a seleccionar a quien deseamos enviar el mensaje y damos en Ok.




Para finalizar esta sección solo debemos dar click en Next
.



Una vez terminado el proceso de Encriptación, nos dirigimos a la carpeta Kleopatra-Encriptado y creamos un block de notas y pegamos (CTRL+v).



Hasta este punto ya hemos ejecutado correctamente el proceso de encriptación.


Desencriptación del mensaje.


A continuación vamos a ejecutar el proceso inverso que anteriormente ya se realizo. Para esto vamos a la pestaña File y elegimos la opción Sign/Encrypt Files.




Seleccionamos el archivo cifrado y damos en Abrir.




Seleccionamos la carpeta en la cual se creará el archivo con la información en texto plano, en mi caso la carpeta lleva el nombre de Desencriptado, por último damos click en el botón Decrypt/Verify.




A continuación se solicitara nuestra contraseña, la cual ingresaremos y finalmente click en el botón Ok.




Hasta este punto ya hemos hemos realizado con éxito el proceso de desencriptación como lo podemos observar el la siguiente imagen.




Por último para verificar los procesos me dirigiré en mi caso a la carpeta Desencriptado y abriré el archivo el cual se ha creado con extensión .out. Para esto solo lo abriré con la aplicación block de notas y listo.



Como se puede observar hemos obtenido el mensaje original y podríamos decir que el proceso ha sido todo un éxito.


Notas :

  • Hace ya algunos años se descubrió pequeñas fallas entorno a GPG, las cuales se refería a que, en determinadas circunstancias, las claves PGP utilizados tanto para la firma y cifrado podrían perder algunos de los bits de clave privada, por lo que estos dígitos serían más fácil de romper.
  • Como se mencionó con anterioridad existen otras opciones las cuales son Thunderbird & enigmail addon, las cuales pueden ser de mucha utilidad en el contexto de correo electrónico.
  • Por último me gustaría invitar a los lectores al proyecto gpg4usb el cual es una aplicación de muy fácil uso basado en un pequeño editor portátil para cifrar y descifrar cualquier mensaje de texto o archivo que se desee.


Criptografía Cuántica.


Bueno hemos llegado al final de post, espero que la información compartida les hay sido fácil de entender y les sea de utilidad en un futuro próximo. Bueno sin mas que añadir me despido y será hasta la próxima.