Monthly Archives: marzo 2014

  • 0

Esteganografía: Ocultación de ficheros en documentos de Microsoft Office

La esteganografía trata del estudio y aplicación de técnicas que permitan ocultar mensajes dentro de otros mensajes llamados “portadores”, de modo que si un enemigo intercepta el mensaje portador no detectará el mensaje oculto que figura dentro de éste. La palabra esteganografía viene del griego steganos (oculto) y graphos (escritura). A lo largo de la historia se han visto distintos tipos de implementación de la esteganografía, en la antigua Grecia tatuaban en la cabeza afeitada de los mensajeros algunos mensajes cortos e importantes, y esperaban a que el pelo creciera para enviarlos.
Otro caso histórico fue el de la población de china al rebelarse contra el poder de Mongolia. En este caso la población recibió el mensaje en unos pasteles típicos, los moon cakes, y así pudieron iniciar la revuelta que daría paso a la dinastía Ming.

En los primeros tiempos de la imprenta, era común para mezclar diferentes tipos de letra en una página impresa por la impresora no tener suficientes copias de algunas cartas de otro tipo. Debido a esto, un mensaje podría estar oculto utilizando 2 tipos de letra diferentes, como normal o cursiva.

Otro caso algo más cercano fue el de Jeremías Denton el cual parpadeó varias veces en código morse durante la conferencia de prensa televisada en 1966, la cual se vio obligado a hacer por sus captores norvietnamitas, el contenido del mensaje era la palabra “tortura”. Esto confirmó por primera vez que los militares estadounidenses (prisioneros de guerra) estaban siendo torturados en Vietnam del Norte.
En cualquier caso, el tiempo avanza y el concepto de esteganografía se acopla a la tecnología.
Actualmente la esteganografía es utilizada por algunas impresoras, como las impresoras láser en color de la marca Xerox las cuales imprimen una serie de puntos amarillos minúsculos que se añaden a cada página. Los puntos son apenas visibles y contienen números de serie de la impresora codificados, así como la fecha y la hora.
En este caso veremos cómo podemos ocultar archivos dentro de un fichero de Microsoft Word (.docx) y para ello, tan sólo necesitaremos una herramienta, el famoso Winrar o cualquier otro programa del estilo.
Los documentos de Microsoft Office tienen una estructura de XML, por tanto al renombrarlos como zip podremos abrirlos como un archivo ZIP XML. Con ese fácil gesto tendremos acceso al contenido del fichero .docx , Winrar soporta los archivos de word 2007/2010 así que no tenemos problemas con las extensiones, simplemente hacemos click en “Abrir con” y seleccionamos Winrar.

cap_abrircon_winrar

Una vez abierto podemos investigar un poco y fijarnos dónde guarda las imágenes, en el caso de los archivos .docx los guarda en /word/media aunque esta regla es aplicable a cualquier documento de Microsoft Office 2007/2010. En el caso de los ODT de Open Office también pasa lo mismo, al renombrarlos a zip podremos abrirlos con el Gestor de Archivadores de GNU/Linux. En su caso podemos ver las imágenes en la carpeta “pictures”.

Captura de un fichero .odt abierto con el Gestor de Archivadores de Ubuntu:

captura_estructura_odt

En el caso de los ficheros de Microsoft Office debemos resptar la nomenclatura de los nombres, si no al abrirlo, nuestro fichero máscara fallará y Office no podrá abrir el archivo, para ello tenemos en cuenta el nombre “image<numero>.jpeg”. estructura_docx_winrar

Renombrando el archivo que queramos a esa nomenclatura, podremos meter lo que queramos dentro hasta un máximo de 512 Mb en los archivos de Microsoft Word. La capacidad se incrementa en los archivos .pps en los cuales puedes albergar más de 1,5 Gb. Lo único que falta es configurarnos un contenedor cifrado con truecrypt e incluirlo en nuestro fichero para tener un fichero esteganográfico que sea lo más difícil de desencriptar posible.

Un Saludo!


  • 0

VPN y túnel ssh para navegar sin censura

VPN Virtual Private Network

La redes privadas virtuales no son más que conexiones de internet que van cifradas y con algunos sistemas de verificación e integridad sobre la conexión. Estas redes son utilizadas por las compañías que quieren mantener la confidencialidad de sus comunicaciones en una WAN. Por ejemplo imaginemos una empresa que necesita comunicaciones seguras entre dos sedes de la misma distintas, una en una ciudad y otra en otra, la única manera que tendría de conectar los servicios telemáticos de las dos sedes sería mediante internet.

¿Que por qué querría una empresa cifrar su tráfico?
Pues bien sencillo, hoy en día se utilizan muchos dispositivos móviles con acceso a puntos de redes inalámbricos, hoy en día más que nunca cualquiera podría estar escuchando su tráfico, en TeamSec pensamos que no importa la confianza en el entorno empresarial en cuanto a la seguridad. Ya sea su compañero de trabajo o su jefe, el 75% de los ataques en sedes de compañías se han producido dentro de la infraestructura informática de la empresa, ya fuese fuga de información, daños, etc. No es que seamos paranoicos, son recomendaciones basadas en hechos probados.

Vpn
El protocolo estándar de de VPN es IPSEC, pero existen otros protocolos PPPT, L2F, L2TP, SSL/TLS, SSH, etc. Cada uno con sus ventajas y desventajas.

Que nos ofrece una VPN:

Integridad de los datos- La encriptación de los datos es tan importante como que no sean cambiados o alterados durante su circulación. Por ejemplo, IPsec incluye  un mecanismo para asegurar que la parte encriptada del paquete, el encabezado completo y los datos del paquete IP o datagramas IP, no han sido alterados. Si se detectase alguna modificación, el paquete es descartado. Esta integridad de los datos también involucra autenticar el remote peer, esto es, la otra parte de la comunicación, que deberá  compartir su clave pública para completar el protocolo, como por ejemplo un certificado ssl.

Autenticación del origen de los datos- Verificar la identidad de la fuente de los datos que se están enviando es tan importante como los que se están recibiendo, puesto que siempre podemos estar expuestos a ataques del tipo spoofing que suplantarían nuestro tráfico.
Anti Replay Es la habilidad de detectar y rechazar paquetes que son reproducidos o copiados, y sirve para evitar el spoofing.

Data Tunneling/Traffic Flow Confidentiality- Tunneling es el proceso de encapsular un paquete completo dentro de otro paquete y enviarlo sobre una red. El tunneling se utiliza cuando se quiere esconder la identidad del dispositivo que origina el tráfico. Lo que hace es encapsular el tráfico de los host que hay detrás de él modificando el encabezado de los datagramas IP de los mismos. De esta forma no solo se añade total confidencialidad al tráfico, sino que además esconde el origen de las conexiones. Muchas empresas ofrecen este servicio y es en el tunneling al que hace referencia en sus ofertas comerciales para la utilización de internet con privacidad.

 

Usando un servidor ssh propio para saltarse la censura de navegación de una forma sencilla:

Muchas veces se nos restringe el acceso a algún servicio/puerto ya sea porque las políticas de la red que estemos utilizando, por las limitaciones técnicas, firewalls, etc. También puede ser que hayamos viajado a algún país donde no este permitido el acceso a ciertas páginas como es el caso de  China  Wikipedia Lista de webs bloqueadas en China y muchos otros.

En este ejemplo vamos a ver lo fácil que es saltarse casi cualquier restricción en cuanto a conectividad una vez tenemos acceso ssh a una máquina. En este caso supondremos que hemos instalado un servidor ssh en nuestra casa, hemos configurado el router para abrir el puerto 443 y enrutarlo al 22 de nuestro servidor de ssh. ¿Porqué el 443? Bueno, este puerto está normalmente abierto ya que es la versión segura de http para la versión web (https) y no es tan evidente como el 80, otro puerto que sería muy raro que estuviese cerrado hacia afuera dentro de cualquier red. El caso es utilizar un puerto que normalmente no esté cerrado y esos dos son universales.

Normalmente al instalar el servidor ssh puede ser que nos pregunte o no las passphrases según la distribución linux que estemos utilizando.

En este caso vamos a generar nuestras propias claves privada y pública porque es una tarea recomendable el cambiarlas de vez en cuando.

ssh-keygen -t rsa

root@teamsec:~/.ssh$ ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/root/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/root/.ssh/id_rsa.
Your public key has been saved in /home/root/.ssh/id_rsa.pub.
The key fingerprint is:
a6:35:ef:c1:91:91:54:7e:eb:04:9b:8a:7e:fd:11:ec root@teamsec
The key’s randomart image is:

 

Vpnssh
Como no hemos introducido passphrase no genera una extraña imagen aleatoria, a partir de ella se genera la clave rsa

Ahora copiamos nuestra claves al directorio de claves de ssh para que las use como nuestra claves pública y privada.

cp id_rsa /etc/ssh_host_rsa_key
cp ida_rsa_pub /etc/ssh/ssh_host_rsa_key.pub

Una vez tenemos nuestro servidor ssh con sus claves, este ya puede iniciar el protocolo de comunicación cifrado.

Ahora, suponiendo que ya estamos en el extranjero, deseamos acceder a Facebook, pero por alguna razón el país donde estamos nos lo tiene prohibido, de hecho vamos a suponer también que la web de descarga del TorBoundle, nos es inaccesible, y no lo tenemos descargado. Así que vamos a crear un tunnel ssh que nos permitirá saltarnos esa restricción.

$ssh -p 443 -L 80:facebook.com:80 myhome.no-ip.org

Ahora abrimos el navegador y tecleamos en la barra de direcciones
http://localhost

Ya tendríamos acceso a Facebook, pero es engorroso si se quiere visitar más páginas.

Hilando más fino, usando nuestro propio proxy:

Hay 8 escenarios posibles de conexiones túneles ssh genialmente explicados por Vicent Navarro en su magnífico blog y de muy recomendable lectura.

Blog de Vicente Navarro, creando túneles tcpip, port forwarding con ssh, los 8 escenarios posibles usando openssh

Como no solo queremos entrar a Facebook,  vamos a decirle a nuestro tunnel que queremos conectarnos a un servicio de nuestros servidor ssh que nos deje navegar , en este caso usaremos privoxy, que tenemos instalamos en el servidor. Privoxy es  un proxy que corre en el puerto por defecto 8118 asi que ejecutamos:

ssh -p 443 -L 6666:localhost:8118 myhome.no-ip.org

Esto creará un tunnel contra el puerto 8118, que acepta peticiones de un navegador web, así que configuramos nuestro navegador en el puerto de escucha. (-L 6666 significa que nuestra máquina creará un tunnel ssh a través de ese puerto en local 6666, localhost:6666)
Ese será el proxy que debemos configurar en el navegador.
confignavegador
Recordar que se puede configurar privoxy para que utilice la red de TOR siempre y cuando hayamos añadido la linea correspondiente a su configuración. (forward-socks5 / 127.0.0.1:9050 .)

echo “forward-socks5 / 127.0.0.1:9050 .” >> /etc/privoxy/config

De esta forma, conseguimos dos cosas, evitar la censura y securizar la comunicación de el tráfico que generemos desde nuestra máquina hasta nuestra casa, ya que estará cifrado, haciendo muy difícil que se sepa que estamos haciendo a través de esa conexión, además virtualmente estaríamos visitando Facebook desde nuestra propia casa y desde nuestro país, porque así es como lo percibirían los servidores que visitemos de esta manera, excepto claro, si usamos la combinación tor+privoxy en nuestro servidor de ssh, para además añadir privacidad a nuestra navegación.

Como comentaba esta es una forma de portforwarding que funciona, sin utlizar socks y  sin complicadas configuraciones de enrutado de interfaces virtuales que nos exigiría un escenario de reenvío dinámico de puertos

Blog de Vicente Navarro, vpn con openssh

Pablo Martínez. TeamSec


  • 0

Crackeando WPA con Hashcat.

Crackeando WPA con Hashcat

logo

Uno de los principales inconvenientes a la hora de desencriptar claves WPA es el tener que depender de un diccionario o las rainbow tables para poder obtener la ansiada contraseña. Esta práctica en muchos casos deja el password “indescifrable” por no dar exactamente con la palabra, en otros casos como son los hashes MD5, tenemos software que aplica todas las combinaciones posibles incrementando el numero de caracteres que se van probando hasta dar con la clave, como por ejemplo John the ripper o Hashcat.
En este caso hablaremos de hashcat y de los ataques de fuerza bruta a handshakes de WPA/WPA2. El handshake (apretón de manos) es el paquete que contiene el hash de la clave WPA/WPA2 de una red wifi. La opción más común es atacar mediante un diccionario, pero estamos sujetos a que la palabra de la clave figure en el diccionario, y se termina por tener mucho espacio en disco ocupado por estos ficheros. Una alternativa es un ataque de fuerza bruta, probando una a una todas las combinaciones posibles hasta dar con la correcta. En el caso de las claves WPA hay que tener en cuenta la posible longitud de la clave, ya que si es WPA2 sabemos que podemos tener el doble de caracteres que podemos encontrar en WPA, en esta clase de ataques, una buena gestión de contraseñas de la red inalámbrica puede ser decisiva a la hora de frustrar un ataque de estas características.
Para comenzar, usaremos la suite de aircrack-ng para extraer el handshake. Primero ponemos nuestra interfaz wifi en modo monitor:

# airmon-ng start wlan0

Hashcat_airmon-ng

Una vez hecho esto nos pondrá el interfaz wlan0 en modo monitor, creando el interfaz mon0. Ahora debemos ver qué redes están circulando a nuestro alrededor, para ello usaremos airodump-ng, este programa de la suite aircrack es el encargado de guardar las capturas de red que necesitamos analizar para extraer la clave, a diferencia de las redes con seguridad WEP, las redes WPA no requieren que almacenemos IV’s para poder averiguar la clave, en este caso sólo necesitamos capturar un paquete, el handshake.

Primero ejecutamos airodump-ng sin guardar y observando todos los canales para seleccionar el objetivo, abrimos una nueva shell y escribimos:

# airodump-ng mon0

Hashcat_airodump_primero

Nos convendría un punto de acceso en el que tuviésemos un cliente asociado, así podemos hacer el ataque de desautenticación y provocar la reconexión para capturar el handshake de la red en cuestión. Anotamos las direcciones MAC tanto del punto de acceso como del cliente que queremos desautenticar.
Ahora ejecutamos airodump con las especificaciones para el punto de acceso que hemos elegido:

sudo airodump-ng --bssid a4:5X:XX:XX:XX:XX --write ~/Escritorio/POCwpa --output-format pcap mon0

Una vez hecho esto lanzamos el ataque de desautenticación y esperamos la reconexión del cliente para que airodump capture el handshake.

# aireplay-ng -0 10 -e Apio -a a4:5X:XX:XX:XX:XX -c 00:EX:XX:XX:XX:XX --ignore-negative-one mon0

Hashcat_aireplay_DeauthAttack

Una vez que vemos que ha capturado el handshake nos lo indicará en la equina superior derecha de la consola.

Hashcat_airodump_handshake_capturado

Ahora que tenemos el handshake capturado tenemos varias posibilidades de transformar el archivo a un formato legible para hashcat. Como primera opcion tenemos la web de hashcat, que nos proporciona una utilidad online para transformar nuestros archivos .pcap en .hccap.
Como segunda opción nos podemos descargar el software necesario para ejecutarlo en nuestro linux, en este caso debemos compilarlo, para ello nos descargamos el software en este enlace  y seguidamente lo descomprimimos.

Esto nos creará un directorio con el mismo nombre del archivo que hemos descomprimido, ahora ingresamos en el directorio y compilamos el programa.

Si diese algún problema de dependencias tan sólo debéis instalar las librerías que necesitéis, en tal caso, toca pelearse con la consola >;-)

Una vez instalado, usar el programa es de lo más sencillo, simplemente tenemos que darle el archivo de entrada y el archivo de salida, como figura en el siguiente ejemplo:

./cap2hccap.bin ~/Escritorio/POCwpa-14.cap ~/Escritorio/HandshakeApio.hccap

Esto nos dejará el archivo preparado para que le pasemos por encima el hashcat.

./hashcat-cli64.bin -m2500 -a3 -n2 --pw-min=20 ~/Escritorio/HandshakeApio.hccap.cap ?a?a?a?a?a?a?a?a?a?a?a?a?a?a?a?a?a?a?a?a?a

Modificadores:

-a Indicamos el modo de ataque, en este caso 3 indica fuerza bruta.

-m Indicamos el tipo de hash, en este caso WPA/WPA2 se corresponde al 2500.

?a?a?a?a?a?a?a Indicamos la máscara, en este caso ?a significa que buscará numéricos, mayúsculas, minúsculas y especiales, escribiendo ?a de forma consecutiva le estamos indicando la longitud máxima de carateres que va a probar. Saber manejar la máscara de hashcat nos ayudará a concretar un poco qué tipo de caracteres estamos buscando dentro del password, por ejemplo:

Dado el password Habichuela**

Una máscara adecuada sería ?u?l?l?l?l?l?l?l?l?l?s?s, así limitamos con ?u la búsqueda a mayúsculas sólamente, con ?l buscamos minúsculas y con ?s buscamos caracteres especiales, de tal forma no tenemos que buscar una mayúscula en las dos últimas posiciones. Para el caso del wireless podemos ver como algunos puntos de acceso tienen por defecto claves numéricas o alfanuméricas, por tanto podríamos podríamos ahorrar bastante tiempo si quitamos de las combinaciones posibles los caracteres especiales.

Una vez esté trabajando hashcat podremos darle a enter y ver el progreso.

Hashcat_Proceso


  • 0

OWASP

Tags :

owaps

La fundación OWASP, es una fundación nacida en el año 2004 con objeto de mejorar la seguridad en el software. Mayormente esta fundación se dedica a difundir información para mejorar la seguridad, ya sea a través de sus publicaciones, libros, conferencias, cursos y otro tipo de eventos. Es una comunidad que se rige por varios principios:

Libre y Abierto
Gobernado por consenso
Cumplir con un código ético
Sin ánimo de lucro
No impulsada por intereses comerciales
Enfoque basado en el riesgo

 
 
 
 

Entre sus proyectos locales encontramos:

– Evaluación de la seguridad del DNIe (dni electrónico)

https://www.owasp.org/index.php/Spain/Projects/DNIe

– La especificación de los requisitos legales para aplicaciones web en España.

Identificación de las leyes y reglamentos que pueden afectar a la especificación de requisitos de una aplicación Web

https://owasp.org/index.php/Spain/Projects/Requerimientos_Legales

OWASP reune una gran cantidad de proyectos que están siendo desarrollados en los que encontramos utilidades para la mejora de la seguridad, tales como validadores de formularios para javascript, JSON, etc. y todo tipo de herramientas que dan al desarrollador control sobre lo que hace, normalmente bajo un principio: Se conservador en lo que tu haces, pero se liberal con lo que aceptas de los demás.

Básicamente nos viene a decir que no pierdas el control de lo que estás programando sin restringir en exceso la libertad del usuario. Sobre todo a la hora de validar los datos de entrada de una aplicación, que es mayor foco de vulnerabilidades normalmente.

Entre sus proyectos estrella encontramos OWASP Enterprise Security API, un conjunto de APIS que nos permitirán validar la fiabilidad de nuestro código fuente, ya sea PHP, .NET, python, java, javascript o asp. Muy interesante para alguien que quiera desarrollar código fuente reforzando aspectos de la seguridad.

https://owasp.org/index.php/File:OWASP_Classic_ASP_ESAPI.zip

Además sus tres herramientas más conocidas:

OWASP Web Testing Enviroment Project – Un live CD con las herramientas y la documentación necesaria para comenzar a utilizar OWASP

OWASP WebGoatProject – Es un proyecto web insecuro (a propósito claro) para poder hacer pruebas de pentesting. Está diseñado para probar y divulgar lecciones de seguridad.

OWASP Zed Attack Proxy – Es una herramienta para testear la seguridad de las páginas web, proporciona los escáneres necesarios para detectar vulnerabilidades.

En resumen OWASP es una comunidad abierta y libre sobre la seguridad en aplicaciones, que contiene un montón de proyectos, algunos bien conocidos por los hackers como joomscan.

Además sus libros realmente nos parecen bastante asequibles en cuanto a precio y muy interesantes.

http://www.lulu.com/spotlight/owasp


  • 1

Introducción a Hashcat

Tags :

Category : Ciberseguridad , Redes

Hashcat es un software que automatiza la labor de hallar hashes con el objeto de recuperar contraseñas. Hashcat contiene varios modos de ataque (por diccionario, fuerza bruta, etc) y múltiples tipos de hashes soportados con los que podremos hallar casi la clave que queramos (si disponemos del hardware adecuado).

logo
En cuanto al hardware necesario para este programa, se aplica la misma regla que a cualquier otro software del estilo, necesitamos una buena gráfica, o en su defecto un buen procesador, el motivo de este requerimiento es poder comparar hashes con palabras a la mayor velocidad posible. En el caso de los hashes de WPA (hashes RC4) si una clave tuviera 20 caracteres tardaría una media de 300 días con un procesador intel i5, si hacemos la prueba, comprobaremos que un buen hardware es decisivo para ésta clase de tareas. Para agilizar el tiempo podremos aprovechar la gpu de nuestra tarjeta gráfica en el caso que tengamos un chipset compatible (como cuda, por ejemplo), en este caso la herramienta se llama oclHashcat, la cual podremos instalar desde los repositorios de kali.
Para comenzar, si lo instalamos desde el repositorio de kali y lo intentamos iniciar, nos suelta la enorme bofetada de que: “El software está desactualizado”.

captura_desactualizacion

Así que para evitarnos problemas, nos vamos a su página oficial y nos bajamos la última versión.
Una vez lo descarguemos, descomprimimos e ingresamos en el directorio creado. Si estamos en linux debemos usar el archivo binario (.bin), en windows usaremos el archivo .exe. La forma de uso es la misma que cualquier comando de GNU/linux, podremos ver la ayuda ejecutando el siguiente comando (en mi caso uso un sistema de 64 bits):

./hashcat-cli64.bin –help

Nos muestra la siguiente página de ayuda en la cual incluyen todos los hashes soportados:

hashcat, advanced password recovery

Usage: hashcat [options] hashfile [mask|wordfiles|directories]

=======
Options
=======

* General:

  -m,  --hash-type=NUM               Hash-type, see references below
  -a,  --attack-mode=NUM             Attack-mode, see references below
  -V,  --version                     Print version
  -h,  --help                        Print help
       --eula                        Print EULA
       --expire                      Print expiration date
       --quiet                       Suppress output

* Misc:

       --hex-salt                    Assume salt is given in hex
       --hex-charset                 Assume charset is given in hex

* Files:

  -o,  --outfile=FILE                Define outfile for recovered hash
       --outfile-format=NUM          Define outfile-format for recovered hash, see references below
  -p,  --separator=CHAR              Define separator char for hashlists/outfile
       --show                        Show cracked passwords only (see also --username)
       --left                        Show un-cracked passwords only (see also --username)
       --username                    Enable ignoring of usernames in hashfile (recommended: also use --show)
       --remove                      Enable remove of hash once it is cracked
       --stdout                      stdout mode
       --disable-potfile             do not write potfile
       --debug-file=FILE             debug-file
       --debug-mode=NUM              Defines the debug mode (hybrid only by using rules), see references below
  -e,  --salt-file=FILE              salts-file for unsalted hashlists

* Resources:

  -c,  --segment-size=NUM            Size in MB to cache from the wordfile
  -n,  --threads=NUM                 number of threads
  -s,  --words-skip=NUM              skip number of words (for resume)
  -l,  --words-limit=NUM             limit number of words (for distributed)

* Rules:

  -r,  --rules-file=FILE             Rules-file use: -r 1.rule
  -g,  --generate-rules=NUM          Generate NUM random rules
       --generate-rules-func-min=NUM Force NUM functions per random rule min
       --generate-rules-func-max=NUM Force NUM functions per random rule max
       --generate-rules-seed=NUM     Force RNG seed to NUM

* Custom charsets:

  -1,  --custom-charset1=CS          User-defined charsets
  -2,  --custom-charset2=CS          Example:
  -3,  --custom-charset3=CS          --custom-charset1=?dabcdef : sets charset ?1 to 0123456789abcdef
  -4,  --custom-charset4=CS          -2 mycharset.hcchr : sets charset ?2 to chars contained in file

* Toggle-Case attack-mode specific:

       --toggle-min=NUM              number of alphas in dictionary minimum
       --toggle-max=NUM              number of alphas in dictionary maximum

* Mask-attack attack-mode specific:

       --pw-min=NUM                  Password-length minimum
       --pw-max=NUM                  Password-length maximum

* Permutation attack-mode specific:

       --perm-min=NUM                Filter words shorter than NUM
       --perm-max=NUM                Filter words larger than NUM

* Table-Lookup attack-mode specific:

  -t,  --table-file=FILE             table file
       --table-min=NUM               number of chars in dictionary minimum
       --table-max=NUM               number of chars in dictionary maximum

==========
References
==========

* Outfile formats:

    1 = hash[:salt]
    2 = plain
    3 = hash[:salt]:plain
    4 = hex_plain
    5 = hash[:salt]:hex_plain
    6 = plain:hex_plain
    7 = hash[:salt]:plain:hex_plain
    8 = plain:position

* Debug mode output formats (for hybrid mode only, by using rules):

    1 = save finding rule
    2 = save original word
    3 = save original word and finding rule

* Built-in charsets:

   ?l = abcdefghijklmnopqrstuvwxyz
   ?u = ABCDEFGHIJKLMNOPQRSTUVWXYZ
   ?d = 0123456789
   ?s =  !"#$%&'()*+,-./:;<=>?@[]^_`{|}~
   ?a = ?l?u?d?s

* Attack modes:

    0 = Straight
    1 = Combination
    2 = Toggle-Case
    3 = Brute-force
    4 = Permutation
    5 = Table-Lookup

* Hash types:

    0 = MD5
   10 = md5($pass.$salt)
   20 = md5($salt.$pass)
   30 = md5(unicode($pass).$salt)
   40 = md5($salt.unicode($pass))
   50 = HMAC-MD5 (key = $pass)
   60 = HMAC-MD5 (key = $salt)
  100 = SHA1
  110 = sha1($pass.$salt)
  120 = sha1($salt.$pass)
  130 = sha1(unicode($pass).$salt)
  140 = sha1($salt.unicode($pass))
  150 = HMAC-SHA1 (key = $pass)
  160 = HMAC-SHA1 (key = $salt)
  200 = MySQL
  300 = MySQL4.1/MySQL5
  400 = phpass, MD5(WordPress), MD5(phpBB3)
  500 = md5crypt, MD5(Unix), FreeBSD MD5, Cisco-IOS MD5
  800 = SHA-1(Django)
  900 = MD4
 1000 = NTLM
 1100 = Domain Cached Credentials, mscash
 1400 = SHA256
 1410 = sha256($pass.$salt)
 1420 = sha256($salt.$pass)
 1430 = sha256(unicode($pass).$salt)
 1440 = sha256($salt.unicode($pass))
 1450 = HMAC-SHA256 (key = $pass)
 1460 = HMAC-SHA256 (key = $salt)
 1600 = md5apr1, MD5(APR), Apache MD5
 1700 = SHA512
 1710 = sha512($pass.$salt)
 1720 = sha512($salt.$pass)
 1730 = sha512(unicode($pass).$salt)
 1740 = sha512($salt.unicode($pass))
 1750 = HMAC-SHA512 (key = $pass)
 1760 = HMAC-SHA512 (key = $salt)
 1800 = SHA-512(Unix)
 2400 = Cisco-PIX MD5
 2500 = WPA/WPA2
 2600 = Double MD5
 3200 = bcrypt, Blowfish(OpenBSD)
 3300 = MD5(Sun)
 3500 = md5(md5(md5($pass)))
 3610 = md5(md5($salt).$pass)
 3710 = md5($salt.md5($pass))
 3720 = md5($pass.md5($salt))
 3810 = md5($salt.$pass.$salt)
 3910 = md5(md5($pass).md5($salt))
 4010 = md5($salt.md5($salt.$pass))
 4110 = md5($salt.md5($pass.$salt))
 4210 = md5($username.0.$pass)
 4300 = md5(strtoupper(md5($pass)))
 4400 = md5(sha1($pass))
 4500 = sha1(sha1($pass))
 4600 = sha1(sha1(sha1($pass)))
 4700 = sha1(md5($pass))
 4800 = MD5(Chap)
 5000 = SHA-3(Keccak)
 5100 = Half MD5
 5200 = Password Safe SHA-256
 5300 = IKE-PSK MD5
 5400 = IKE-PSK SHA1
 5500 = NetNTLMv1-VANILLA / NetNTLMv1-ESS
 5600 = NetNTLMv2
 5700 = Cisco-IOS SHA256
 5800 = Samsung Android Password/PIN
 6300 = AIX {smd5}
 6400 = AIX {ssha256}
 6500 = AIX {ssha512}
 6700 = AIX {ssha1}
 6900 = GOST, GOST R 34.11-94
 7000 = Fortigate (FortiOS)
 7100 = OS X v10.8
 7200 = GRUB 2
 7300 = IPMI2 RAKP HMAC-SHA1
 7400 = sha256crypt, SHA256(Unix)
 9999 = Plaintext

* Specific hash types:

   11 = Joomla
   21 = osCommerce, xt:Commerce
  101 = nsldap, SHA-1(Base64), Netscape LDAP SHA
  111 = nsldaps, SSHA-1(Base64), Netscape LDAP SSHA
  112 = Oracle 11g
  121 = SMF > v1.1
  122 = OS X v10.4, v10.5, v10.6
  123 = EPi
  131 = MSSQL(2000)
  132 = MSSQL(2005)
  141 = EPiServer 6.x < v4
 1441 = EPiServer 6.x > v4
 1711 = SSHA-512(Base64), LDAP {SSHA512}
 1722 = OS X v10.7
 1731 = MSSQL(2012)
 2611 = vBulletin < v3.8.5
 2711 = vBulletin > v3.8.5
 2811 = IPB2+, MyBB1.2+
 3721 = WebEdition CMS
 7600 = Redmine Project Management Web App

Podemos comprobar que tenemos una apmlísima biblioteca de hashes que podemos calcular, e inclusos hashes predefinidos de algunas aplicaciones como Joomla, Oracle 11g o Redmine.

El uso de hashcat es similiar a cualquier comando en linux:

hashcat [options] hashfile [mask|wordfiles|directories]

Primero las opciones o modificadores, luego indicamos la ruta del archivo donde se encuentra el hash, y podremos indicarle una máscara, o un archivo o serie de archivos o un directorio. Hashcat cuenta con una serie de modificadores algunos de los más comunes son los siguientes:

-m Le indicamos el tipo de hash que queremos desencriptar, los hashes y sus respectivos números están definidos en la ayuda más arriba.

-a Con este modificador le indicamos el tipo de ataque que vamos a emplear, entre otros tipos encontramos fuerza bruta o permutación, con ellos podremos comprobar a base de diccionario, haciendo combinaciones entre uno o varios diccionarios e incluso alterando las propias palabras del diccionario, como por ejemplo cambiar las “o” por “0” o la “E” por “3”.

-V Nos mostrará la version actual de hashcat.

-n Controlamos el número de hilos (threads) que va a lanzar hashcat. Debemos tener en cuenta que cuantos más threads, más consumo y más calentamiento para nuestra máquina.

-o Definimos el fichero de salida.

–output-format=NUM definimos el formato de salida con un número, podemos ver la lista de formatos más arriba, en la ayuda.

-r Podremos indicarle un fichero.

Ataque con Máscaras.

Una parte importante de hashcat son las máscaras y el control que podemos tener sobre ellas, con esto, podremos indicar qué tipo de carateres queremos probar y así ahorramos comprobaciones con tipos de caracteres que no tenga. Los tipos de caracteres que podremos probar los tenéis en la ayuda en el apartado “Built-in charsets”, un ejemplo de máscara y password es el siguiente:

Password: **ABc99 Máscara: ?a?a?u?u?l?d?d 
Password: Manolo Máscara: ?u?l?l?l?l?l
Password: 001234 Máscara: ?d?d?d?d?d?d

La longitud mínima y máxima del password se indican con los modificadores –pw-min=NUM y –pw-max=NUM respectivamente.

También podemos crearnos un juego de caracteres personalizado, para ello usaremos los modificadores -1, -2, -3 y -4, con ellos podemos dejar otro caracter predefinido en las opciones para luego usarlo en nuestra máscara. Un ejemplo podría ser el siguiente:

./hashcat-cli64.bin -m11 -a3 -1?dABCDEF archivo.hccap ?1?1?1?1?1?1?1

En este caso le estamos indicando con -1 que cuente con números (?d) y letras mayúsculas de la A a la F. De esta forma podremos afinar un poco mas a la hora de sacar la contraseña en cuestión.


  • 0

Seahorse, una clave para manejarlas a todas.

En temas de seguridad lo importante empieza por los pequeños detalles.

Es básico entender las herramientas a nuestro alcance y exprimir sus posibilidades de aplicación.
Conocer para qué, cómo y hasta qué punto puedes manejarlas te puede dar poder al igual que mayor responsabilidad.
Y eres tú quien decide, decide bien. Por el bien de todos.

Es buena práctica usar diferentes usuarios en diferentes redes, al igual que usar diferentes contraseñas y ser imaginativo al crearlas.
Esto implica multitud de usuarios y multitud de contraseñas alfanuméricas y de más allá con más de cuarenta o cincuenta caracteres de longitud.

WAT if len(pass)>50: PANIC

Evidentemente eso no lo soporta cualquier humano. (Salvo en el norte, claro :)) Recordar un sin fin de combinaciones de usuarios y contraseñas no es práctico.

No es bueno entrar en el mode paranoid on & high, pero sí es conveniente ser precavido, no vale con esconder el trozo de papel donde acabamos de anotar la contraseña debajo de otros papeles, wait, fuuuuu, ¿u kidding me? O_o ¿srly? OMG!!! No lo vuelvas a hacer 😛

 

Seahorse, una clave para dominarlas a todas.

Seahorse
Seahorse

Seahorse es mucho más que un almacén de claves, pero hoy nos centraremos en este aspecto. Guardar claves.
Vamos a crear un depósito donde almacenar contraseñas que usemos. Da igual para qué, grabaremos una descripción y una contraseña.
Y para poder acceder a esos datos deberemos conocer una contraseña maestra que desbloquee el depósito.
A un depósito determinado podemos añadir cualquier número de claves con una descripción.
Y cada usuario puede disponer de cualquier número de depósito de claves.

Wins are beautiful but keys give u da powa. Nada más cierto, no recuerdo a quien se lo dije xD

Empecemos, si no lo tienes instalado, ya sabes, sudo apt-get install seahorse
Y si resulta que no es seahorse o falta un guión o es horsesea o nosequeeeeh y no funciona, take it easy, aplica la ley del apt-cache search y el apt-cache show que molan mazo y dan información interesante. Man también te ayudará 🙂

Y como decía aquel, si no sabes lo que te digo, Google es tu amigo 😛

Veamos el proceso con varios pantallazos.

 

Pantalla inicial programa seahorse

Pantalla inicial del programa Seahorse

Seahorse, añadir depósito de claves

Añadimos un nuevo depósito de claves

Seahorse, añadir nombre al depósito de claves

Introducimos un nombre para el depósito de claves

Seahorse, introducimos el nombre del depósito de claves

Un ejemplo puede ser el nombre del equipo o su dirección

Seahorse, nombrando un depósito de claves

Nos decidimos por usar una buena pelicula

Seahorse, depósito de claves creado

Ya tenemos el depósito de claves creado

Seahorse, añadir clave a un depósito de claves

Procedemos a almacenar una clave

Seahorse, seleccionamos el depósito de claves

Seleccionamos el depósito de claves en el que almacenarla

Seahorse, añadir contraseña y comentario

Añadimos la contraseña y un comentario

Seahorse, añadimos la clave al depósito

Para ver la contraseña sólo tenemos que marcar la opción

Seahorse, clave almacenada

Ya tenemos la clave almacenada en el depósito correspondiente

Seahorse, detalle de una clave almacenada

Detalles de la clave almacenada

Seahorse, Acerca de.

Seahorse, contraseñas y claves

 

El resto ya lo sabemos, contraseñas cada vez más largas y que no sean fácilmente imaginables por otra persona o programa, hasta que se invente una tecnología segura mediante tarjetas o reconocimiento corporal de algún tipo.

Me queda repasar otras características de firma y cifrado, muy útiles si usas nautilus o gedit, seguramente alguna aplicación más del entorno gnome. Para los que prefieran pcmanfm o thunar, disponemos de gpa, con el que podremos realizar todas las tareas de firma y cifrado sobre texto y ficheros, disponiendo además de un potente gestor de claves.

Todos los detalles los tienes en https://wiki.gnome.org/Apps/Seahorse

Xau all.
Aprended, hackead.


  • 0

Tor ARM, el brazo articulado de Tor

Tags :

Category : Herramientas , Manuales , Redes , Tor

La red tor es una red virtual muy utilizada por los que buscan más privacidad dentro de internet, como hemos explicado anteriormente en el post de “Tor: The Onion Router” la red tor se basa en unos nodos de entrada, nodos intermedios y nodos de salida, algunas veces, cuando necesitamos configurar rapidamente sobre que nodos de salida salir o hacer un uso ágil de este servicio nos lleva más tiempo ir modificando archivos de configuración. Arm (Anonymizing Relay Monitor) es un software que entre otras cosas te permite monitorear el ancho de banda de la red tor, ver y modificar ficheros de configuración o pedir una nueva dirección IP entre otras cosas. Sólo está disponible para GNU/Linux o para Mac.

Para instalarlo sólo tenemos que teclear en nuestra shell:

sudo apt-get install tor-arm

Para otras distribuciones, mirad en la web de descargas, en mi caso, la distribución Backbox lo trae instalado por defecto, de tal forma que teclearemos “sudo arm” en la shell para ejecutarlo.

Captura de pantalla de 2014-03-06 23:17:33

Se nos abre la primera pantalla de arm en la que tenemos una gráfica en tiempo real del ancho de banda de tor y abajo tenemos los eventos donde nos indica si no se puede conectar, si tenemos una versión desactualizada, información acerca de nuestro fichero torrc… Podemos ver en la parte de arriba que nos revisa nuestra versión de tor y nos indica si está actualizado, para obtener una nueva identidad tenemos que pulsar la tecla n, si necesitamos ver la ayuda, lo haremos presionando la tecla h.

Captura de pantalla de 2014-03-07 03:19:19

Para navegar pos la páginas de tor-arm usaremos la flechas de dirección, segunda página de arm, donde podemos ver las conexiones y los circuitos establecidos en la red tor.

Captura de pantalla de 2014-03-06 23:19:01

El fichero torrc que está en el directorio /etc/tor/ es el archivo de configuración del servicio TOR, realmente podemos modificarlo a mano usando gedit, nano o cualquier otro editor de texto, siempre es recomendable leerse el manual y el FAQ en su página web oficial. En la página 3 podemos configurar algunos parámetros del fichero torrc, para orientarnos mejor nos muestra una descripción del parámetro que estemos modificando en ese momento, después para recargar el fichero torrc presionamos la tecla r.

Captura de pantalla de 2014-03-06 23:19:38

Si queremos modificar a mano el fichero torrc, podemos hacerlo en la página 4, donde podremos afinar aun más las configuraciones.

Captura de pantalla de 2014-03-06 23:20:27

En la última página tenemos el “Control Interpretor”, el cual iniciaremos presionando enter. Es una consola que nos permite hacer una serie de configuraciones, por ejemplo, poder extender nuestro circuito de tor o cerrar el circuito que le indiquemos, entre otras cosas.

Captura de pantalla de 2014-03-07 03:22:41

En resumidas cuentas, con tor-arm podremos configurar rápidamente nuestro servicio sin necesidad de ir buceando los archivos de configuración, consume pocos recursos y es bastante eficiente, así qu es una opcion bastante recomendable para los que solemos hacer uso de esta red.


  • 2

TOR. The Onion Router

Category : Redes , Tor , Uncategorized

TOR The Onion Router

Mucha gente se empieza a interesar en TOR, en su funcionamiento y en sus posibilidades en cuanto al anonimato.

¿Que es Tor? Tor es una red que funciona sobre internet. Nació como un proyecto de la marina estadounidense con el propósito de proteger las comunicaciones militares y gubernamentales. Más tarde el proyecto fue liberado y hoy en día es utilizado por gran número de personas, sean periodistas, gobiernos, activistas, o cualquier otro que quiera proteger su identidad durante sus actividades en la red.

Tor funciona a través de una serie de túneles virtuales, que impiden reconocer el origen de las ips que establecen una comunicación, tratando de asegurar el anonimato.

Lo primero que hace el tor proxy en la maquina donde se instala, es descargar la lista de los tor nodes, para crear un circuito. Estos nodes pertenecen a organizaciones o personas que contribuyen al proyecto de forma altruista mayormente.

El proxy selecciona un nodo de entrada creando la primera clave de sesión, y seguidamente buscará, un middel node con el que extender el circuito por supuesto con otra clave de sesión , hasta el nodo de salida, con el que establecerá otra última clave de sesión TSL

Ahora que está creado el circuito con las claves de cada una de las sesiones, se puede cifrar un mensaje en tres capas, de tal forma que el nodo de entrada desencripta la primera capa, el segundo, la segunda capa y el de salida la última, cada uno con su clave que contendrá los datos con la ip de destino. Como es lógico el nodo de entrada y de salida ignoran por completo cual es el destino, solo el nodo de salida es el conocedor de esta información tras descifrar la última capa del mensaje cifrado. Haciendo que sea muy difícil localizar la ip de origen de dicho tráfico.

Tor-onion-network

 

Onion_diagram

 

La forma que se establece la seguridad en capas es lo que le da el nombre de onion, cebolla en inglés.

Hidden Services, La deep web.

Los hidden services son servicios de internet que funcionan a través de la red de tor. Cualquiera puede montar un servidor “oculto” en la deep web, ya sea porque no quiere publicarlo en internet o bien porque su ISP no permite ese tipo de servicios, su país lo blockea, temas leagales o de censura, etc.

Para generar un hidden service, hace falta crear una dirección en tor. Es un hash con números y letras que termina con una extensión .onion la más famosa de estas direcciones es the hidden wiki, una wiki con los principales enlaces a hidden services de la red tor.

http://kpvz7ki2v5agwt35.onion.to/wiki/‎ (en este caso un servicio web)

Si no funciona este enlace, es normal, tor es una red distribuida y puede caerse una parte o bien puede haber mirrors de la misma web o simplemente han cambiado el hostname.

Estos enlances son distribuidos entre los tor relays, ordenadores destinados a contribuir al proyector tor, lo que hacen es utilizar un protocolo p2p. Lo que consigue es poner en contacto a un usuario con el servicio en concreto, sin exponer como se pretende, el anonimato.

Empezar a usar tor es tan fácil como descargarse el tor boundle de la página, https://www.torproject.org en su versión para cada sistema operativo que lo soporta.

Es un conjunto de herramientas que nos permitirán navegar por internet anónimamente, ya que incluye una versión modificada del navegador firefox, configurada para utilizar tor.

Pablo Martínez. Team Sec