lunes, 27 de julio de 2015

No hace falta que seas un manitas para hacer phishing

No hace falta ser un manitas en esto de la informática para conseguir suplantar la identidad de una empresa y conseguir las credenciales de acceso con un poco de ingenio e ingeniería social. Y sobre todo cuando existen aplicaciones que lo hacen por ti simplemente agregando la URL del sitio web que quieres clonar, como es el caso de HTTrack, una aplicación desarrollada para dos tipos de personas, bien puede servir para un auditor de aplicaciones web que quiera analizar el sitio a auditar de manera offline, o para un cibercriminal que quiera suplantar la identidad de una página para conseguir datos que puedan interesarle como las credenciales de acceso.

Esta aplicación multiplataforma que está disponible para Windows, Linux  y OS X tiene un uso muy sencillo y es que, solamente tendremos que indicarle el nombre del proyecto, la ruta donde guardarlo y la URL del sitio a clonar. Después de esto, tendremos el sitio clonado idéntico al original y ya nosotros tendríamos que configurarlo a nuestro gusto para recibir los datos que el usuario introduzca y añadirle un poco de astucia a la hora de engañar.

HTTrack nos brinda varias opciones a la hora de hacer el clonado, en este caso vamos hacer una copia del sitio web.




También podemos definir una serie de opciones a la hora de realizar el clonado del sitio como puede ser filtrar archivos, modificar cabeceras o especificar el número de conexiones que se hará por si la aplicación contiene algún tipo de control. Tampoco entraré en mucho detalle sobre estas opciones y lo dejaré en vuestras manos para que juguéis con la aplicación.

En mi caso, voy a realizar un clonado de la página web Steam, una plataforma de videojuegos que cuenta con más de 125 millones de usuarios registrados y que es muy común encontrarse con alguien que intente hacer phishin de este sitio para conseguir cuentas y luego venderlas.




Si le echamos un vistazo a la URL que le indico que quiero que haga el clonado http://store.steampowered.com/ podemos comprobar que esta URL no navega por HTTPS por lo que engañar en este caso a un usuario podría ser un más fácil que a la hora de hacer login que lo veremos más adelante. Como dije anteriormente aquí entraría el ingenio del cibercriminal a la hora de engañar al usuario para conseguir que acceda a este sitio web como podría ser, con acortadores de URL estilo https://goo.gl/ y rezar para que cuando el usuario haga click en la URL acortada no mire la barra de direcciones, o también conseguir un nombre de dominio semejante como podrían ser http://store.steampovvered.com/ (nótese las dos "v" en vez de una "w").

Una vez le digamos que empiece al clonar podemos ver como HTTrack va visitando el sitio web completo para descargarse los archivos en el equipo local.




Ya clonado, vamos a comparar los dos sitios a ver si conseguimos ver algo diferente.

Sitio web original de Steam

Sitio web clonado de Steam

Como podemos comprobar el sitio web es idéntico al original. En este caso el login de esta aplicación web si contiene HTTS por lo que navegará por el protocolo SSL y además contiene un certificado EV SSL que explicaré al final del post. En este caso el cibercriminal le sería algo más complicado engañar al usuario pero nunca imposible ya que la mayoría de los usuarios navegan por Internet sin mirar la barra de direcciones por lo que no saben si realmente están el sitio web legítimo o no. En estos casos lo que se suele hacer es, cuando el usuario introduce su usuario y contraseña y le llega al cibercriminal, este le redirige al sitio web original indicándole que las credenciales introducidas no son válidas.

El login en este caso tendrá el siguiente aspecto.

Login original de Steam


Como podemos comprobar la navegación cambian a HTTPS y vemos el cuadrado verde con el candado garantizando la identidad de la empresa Valve, no quedaría duda de que es el sitio web original. Nuestro sitio web clonado quedaría de la siguiente manera.

Login clonado de Steam

De nuevo son idénticos y no se consigue apreciar ningún cambio significativo por lo que el usuario no se daría cuenta realmente de no ser porque mire la URL.


¿Cómo prevenir un ataque de phishing?

Poniendo este caso como ejemplo, lo mejor para prevenir este tipo de ataques es mirar siempre la URL a la que accedemos por terceros en los que desconfiamos como puede ser por email, foros o desconocidos. Verificar el candado verde que nos garantiza la identidad de la empresa y la navegación por HTTPS que nos dice que los datos irán cifrados en todo momento. En el caso de que la URL esté acortada, podemos ver a donde apunta con knowurl.

Tipos de certificados

Como dije antes, el candado verde significa que es un certificado EV, es decir, existe un tercero que verifica y valida la identidad de la aplicación web. También existe el certificado normal que lo que garantiza es que los datos en todo momento van cifrados y no se podrán extraer. Por supuesto, el certificado EV es más caro a la hora de adquirirlo.

Luego podemos encontrarnos y seguro que os habréis topado con alguno, los llamados certificados autofirmados. Estos certificados no tienen un tercero que lo firme y verifique la identidad del sitio web y cuando vamos a navegar por su sitio nos dice "Esta conexión no es de confianza o no está verificada" en mi caso, me ha pasado mucho con la Junta de Andalucía.


En estos casos, tenemos tres opciones. La primera es no confiar en el sitio web y no navegar por él. La segunda sería, entender los riesgos y navegar aunque, podríamos ser vulnerables a un ataque de MiTM (Man-in-the-middle). Y la tercera opción sería importar el certificado en nuestro navegador y poder navegar por el sitio web y que los datos vayan cifrados así evitando un ataque MiTM. Para hacer esta última opción se tendría que confiar plenamente en el sitio web.




Un saludo @Joseliyo_Jstnk.


DISCLAIMER: No me hago responsable del uso que se le de a la aplicación explicada que se ha hecho con fines educativos. Esta aplicación está desarrollada para descargar sitios web y analizarlos de forma offline.



lunes, 13 de julio de 2015

Test de Intrusión a un NAS y Medidas de Seguridad

En el pasado artículo vimos como se puede virtualizar un NAS de Synology (Modelo DS3615xs) usando Virtual Box, en el cual podemos instalar multitud de servicios nativos y otros que no lo son pero que son muy utilizados como veremos más adelante. Vamos ahora a preocuparnos de la seguridad del NAS para intentar reducir el número de vectores de ataque al mínimo, para ello pasaremos a hacerle un test de intrusión.


Justificación

Antes de nada comentar el porqué de elegir dicho dispositivo para el test de intrusión. Dado el alto coste de estos dispositivos y que no todo el mundo puede disponer de uno, hasta ahora que ya podemos virtualizarlo, los investigadores de seguridad parece que no le han prestado interés a las aplicaciones nativas de Synology e incluso a su Synology DSM.

Vamos a hacer un análisis haciendo uso de Shodan a ver que encontramos. Si recordáis del artículo anterior, el Synology DSM da servicio vía Web a través de los puertos 5000 y 5001. Haciendo una búsqueda a nivel global por los puertos indicados encontramos lo siguiente:


A nivel mundial nos salen más de medio millón de dispositivos NAS de Synology, donde el mayor número de ellos se encuentran en Australia y Estados Unidos, seguido de Alemania, Francia y Holanda. Aquí tenéis el reporte por si queréis consultarlo más a fondo de esta búsqueda: Reporte Shodan Synology

Si ahora realizamos la búsqueda a nivel de España encontramos estos resultados:



Encontramos 8577 dispositivos en España de los cuales la gran mayoría, excepto 23, dan servicio por el puerto 5000, el resto por el 5001. En ambas búsquedas de Shodan podemos encontrar falsos positivos, ya que puede haber servicios que estén publicados en el puerto 5000, pero al igual que hay muchos NAS de Synology que cambian el puerto y no los estamos listando. Estos los podemos encontrar haciendo un poco de Google Hacking.


Con todo esto podemos ver que son dispositivos muy utilizados por las empresa y algunos particulares.

Obteniendo Información

Para llevar a cabo el test de intrusión vamos antes a buscar información sobre nuestro NAS de Synology. Como es una auditoría interna, no tenemos que buscar información del dominio. Lo que si sabemos son los puertos sobre los que suele trabajar Synology que son 5000 o 5001, caso de trabajar en otro puerto, más adelante lo veremos.

Intentamos obtener toda la información posible buscando primero en el propio centro de paquetes de Synology, donde conoceremos los servicios que nos podemos encontrar.



Además el propio fabricante nos facilita una lista detallada de puertos donde trabaja cada uno de los servicios de Synologyhttps://www.synology.com/es-mx/knowledgebase/faq/299 Esta lista nos será muy útil en la siguiente fase.

A nivel específico de seguridad Synology nos proporciona una apartado sobre actualizaciones de seguridad tanto de su DSM como de sus servicios nativos. Si pinchamos en la actualización nos indica incluso los identificadores de la vulnerabilidad que ha sido parcheada.



Escaneo de Puertos

Lo primero a la hora de llegar a esta fase es lanzar un escaneo de puertos con nmap e intentar identificar servicios y versiones. Nos va a ayudar mucho la lista de puertos-servicios encontrada en la fase anterior.


Antes de analizar el resultado del escaneo de nmap también llevaremos a cabo un escaneo con Nessus configurándole varios plugins específicos para Synology que vemos a continuación.  Si nos fijamos tenemos dentro de la lista uno que nos detecta la versión de DSM que corre en el NAS, concretamente el plugin con ID 72341. Dentro de Nessus debemos irnos al escaneo actual, apartado plugins y añadirlos por su ID.



Tras el escaneo nos da 1 vulnerabilidad de nivel MEDIO y 31 INFO.


La vulnerabilidad de nivel MEDIO nos indica que deberíamos hacer usos de certificados de seguridad para cifrar la información en el protocolo SMB para evitar ataques MiTM. En los info vemos sobre todo los mismos puertos abiertos que con nmap (Nessus SYN scanner) y el plugin que antes configurábamos nos devuelve la versión exacta del Synology DSM que es la 5.2.5565.


Respecto a los puertos que tenemos: 80, 139, 161, 445, 515, 548, 3306 y 5000 tenemos donde jugar. Según la la lista de Synology del apartado anterior tendríamos los siguientes paquetes/servicios levantados en los siguientes puertos:

  • Puerto 80: Photo Station, Web Station, Mail Station o DS Photo.
  • Puerto 139: Demonio de smb para transferencia de ficheros sobre el que también corren las copias de seguridad.
  • Puerto 161: Protocolo SNMP para obtener información de la red.
  • Puerto 445: Se utiliza junto con el 139 para transferencia de archivos.
  • Puerto 515: Protocolo LPR (Line Printer Remote), es decir para impresión a través de la red.
  • Puerto 548: Protocolo AFP (Apple Filing Protocol) para transferencia de archivos con máquinas Apple.
  • Puerto 3306:  Servicio MySql corriendo en este puerto.
  • Puerto 5000: Puerto por defecto que utiliza DSM para gestión vía Web.

Nos vamos a centrar primero en los puertos sobre los cuales corre un servicio Apache que son el 80 y el 5000. Normalmente este tipo de dispositivos se suele utilizar para guardar copias de seguridad y crear Web por cada uno de los usuarios. Si utilizamos un navegador Web encontramos en cada uno lo siguiente:

Puerto 80: Encontramos un WebStation

 Puerto 5000: Encontramos el DSM

Corroboramos la versión del DSM obtenida con Nessus que nos decía que era DSM 5.2. Vamos ahora un poco más lejos e intentamos hacer un descubrimiento de directorios con una herramienta de fuerza bruta:  OWASP  DirBuster.


Encontramos un directorio de wordpress y otro de phpMyAdmin, parece que poco a poco vamos atando cabos. Nuevamente usamos el navegador Web para comprobar:

Front-End de Wordpress

Back-End de Wordpress

phpMyAdmin

Se nos van presentando cada vez más vectores de ataque, ya que conseguimos fácilmente obtener el back-end por defecto del sitio WordPress.

Si queremos centrarnos en el sitio WordPress tenemos muchas herramientas que podemos usar como vemos en las siguientes imágenes.

Detectamos versión Wordpress 4.1.5 con módulo auxiliar de Metasploit.

Identificamos plugins instalados y vulnerabilidades con wpscan

Si lanzamos otros escáneres también podemos sacar más información y otras vulnerabilidades. Hemos lanzado también OpenVas y nos da un servicio vulnerable (LPR en puerto 515) para el cual si buscáis tenemos un exploit.


Podíamos seguir así analizando cada uno de los servicios y buscar vulnerabilidades en cada uno de de ellos para llegar a la siguiente fase de explotación con muchos vectores de ataque posibles.

Explotación

En la fase de explotación podemos buscar exploits para las diferentes versiones de servicios que están corriendo en nuestro Synology DSM, ya que tenemos muchos vectores de ataques: 
  • Versiones de paquetes propietario obsoletas, como las que hace unos días han sido parcheadas ( Download Station 3.5-2963 y Photo Station 6.3-2953 )
  • Versiones del Synology DSM vulnerables, como las versiones de la 4.0 a la 4.3 con su CVE-2013-6955 con su exploit para Metasploit (synology_dsm_sliceupload_exec_noauth
  • Servicios muy conocidos vulnerables, bien por configurados por defecto o con vulnerabilidades en sus versiones o complementos como puede ser Wordpress y sus plugins, o la propia versión de PHP.
  • También podemos tener ataques de fuerza bruta o denegación de servicio en los diferentes servicios (login del DSM, Back-End de Wordpress o login de phpMyAdmin) si no tomamos medidas.

Os dejamos a vosotros la fase de explotación para que juguéis con los exploits y el correspondiente informe que se que a más de uno le encanta escribir. Vamos a ver ahora que contramedidas podemos llevar a cabo para aumentar la seguridad.

Medidas de Seguridad

Las medidas de seguridad a llevar a cabo para reducir riesgos son las siguientes:
  • Activar el doble factor de autenticación (2FA) en todos los servicios que requieran user/pass y te lo permitan, como son el DSM o el Back-End de Wordpress. Opciones de Usuario - Cuenta - Habilitar verificación en 2 pasos.
  • Habilitar la comunicación vía HTTPS, para lo cual tendremos que crear nuestro propio certificado. Panel de Control - Certificado - Crear Certificado y después Panel de Control - Red - Configuración DSM para activar HTTPS
  • Crear reglas de cortafuegos para permitir ciertos servicios sólo desde ciertas IPs y sólo a ciertos usuarios. Panel de Control - Cortafuegos
  • Habilitar la protección DoS que incorpora Synology DSM. Panel de Control - Protección
  • Habilitar los bloqueos automáticos cuando se detecte un número de intentos de inicio de sesión en cualquiera de los servicios (lo incorpora Synology DSM). Configurar whitelist y blacklist. Panel de Control - Bloqueo Automático

Todas estas medidas las podéis encontrar más detalladamente en la siguiente dirección:


Ahora os toca a vosotros poneros manos a la obra y securizar vuestros NAS.

Un #handshake de @eduSatoe

"No se trata de ser los más rápidos, los más fuertes, o los más grandes, se trata de ser nosotros mismos
Killian Jornet

domingo, 5 de julio de 2015

Virtualizando un NAS de 2500€ a coste cero

Después de varios meses de inactividad en mi blog por otros temas relacionados con el Hacking y alguna que otra beers, por fin retomo la actividad en mi blog, y es que los días podían tener 365h. Antes de nada, para aquellos que no pudísteis asistir al congreso de Qurtuba o para los que queráis volver a ver las ponencias, las tenéis disponibles gracias al impresionantes trabajo de los amigos de @HangoutON. ¡ MIL GRACIAS !


Ahora sí, vamos con el siguiente artículo donde vamos a ver como podemos virtualizar un NAS  de Synology mediante Virtual Box, y todo ello haciendo uso del hardware de nuestra máquina. Una vez tengamos nuestro NAS instalado y configurado con los servicios que nos interesen, pasaremos a hacerle un test de intrusión para analizar su seguridad (eso en el siguiente artículo). Antes de nada por si alguno está perdido vamos a empezar por definir que es un NAS y que nos ofrece.

Un NAS (Network Attached Storage) es un dispositivo de almacenamiento al cual se accede a través de la red y que nos puede brindar muchos servicios. Básicamente es un disco duro (o conjunto de discos duros) conectado a la red que cuenta con un sistema operativo propietario que nos brinda una serie servicios a la red por medio de la instalación de unos paquetes de aplicaciones, unas propietarias y otras no. En la siguiente imagen podemos identificar algunos de los servicios que nos puede ofrecer: WordPress, Multimedia Streaming, Antivirus, Servidor de Correo, Servidor de Cámaras IP, Gestor de Tienda Online, Servicios iTunes, Gestor de Descargas, Servicios Cloud, etc.



Intalación del NAS sobre Virtual Box


Fase 0: ¿Qué es XPEnology?

Si alguna vez habéis trabajado con un NAS de la marca Synology sabréis que su sistema operativo propietario se llama DSM (DiskStation Manager), el modelo que vamos a virtualizar es el DS3615xs y tiene un coste en el mercado de unos 2500€ aprox. con dos discos en espejo.

XPEnology es una tecnología que permite virtualizar el Synology DSM con los recursos que consideremos oportunos en cuanto a procesamiento y capacidad de la máquina donde se aloje. El resultado va a ser un NAS virtualizado con gran cantidad de posibilidades a coste cero.

Fase 1: Descargando la imagen del Synology DSM

Vamos a descargar la imagen del Synology DSM de la dirección http://xpenology.me/downloads/ (enlace de la ISO aquí). Existen varias posibilidades a la hora de instalar nuestro NAS, pero nosotros utilizaremos la ISO del modelo DSM DS3615xs (ver especificaciones del modelo aquí)


Fase 2: Configurando Virtual Box

El siguiente paso es configurar Virtual Box de la manera adecuada para que no tengamos problemas a la hora de instalar el NAS. Comentar que la máquina anfitriona donde se encuentra Virtual Box es un Windows 8.1 64bits. Los pasos a seguir en Virtual Box son los siguientes:

2.1. Creamos una nueva VM como Linux 2.4 (64 bit).
  


2.2. Le asignaremos 1024MB de RAM.

2.3. No agregaremos ningún disco duro a la máquina virtual, pues más adelante la agregaremos.



2.4. Nos vamos a la configuración de la VM ya creada: Almacenamiento - Controlador IDE (Vacío) - Seleccionamos ISO descargada en la fase 1.


2.5. Ahora nos vamos a Almacenamiento - Controlador SATA - Icono de Agregar disco duro. Donde seleccionaremos Crear nuevo disco - VDI (VirtualBox Disk Image) - Reservado dinámicamente - Seleccionamos capacidad del disco duro (20GB en nuestro caso).


Una vez que tenemos ya nuestro disco duro, podríamos añadir varios discos duros más, bien para utilizarlos en modo espejo o para alojar en cada uno de ellos los ficheros de diferentes servicios.

2.6. Por último, antes de empezar con la instalación del Synology DSM 5.2 vamos a Configuración - Red - Adaptador 1 y lo configuramos modo Bridge o Adaptador Puente, como vemos en la imagen.


Fase 3: Instalando DSM 5.2

Pasamos a arrancar la máquina virtual creada Synology DSM 5.2 y seleccionamos la opción de instalación.



Para localizar cualquier NAS de Synology que no tiene aún el DiskStation Manager instalado tenemos un servicio desde la Web oficial, para lo cual abrimos cualquier Web Browser desde dentro de la misma red local del NAS y ponemos find.synology.com. Pulsamos en conectar y comenzará todo el proceso de instalación y configuración.


Seleccionaremos Instalar ahora para instalar el DSM sobre nuestro disco duro añadido en pasos anteriores y comenzará a descargarlo por medio del Web Assistant.


Caso de que se produzca cualquier error durante la instalación, se puede reanudar accediendo a la IP del dispositivo y poniendo las credenciales admin sin contraseña.


Configuramos ahora la cuenta del administrador del NAS y también nos pedirá crear una cuenta QuickConnect ID (paso que omitiremos) para poder acceder al dispositivo desde fuera de la red local sin necesidad de natear puertos en el router (hablamos de natear al hecho de abrir un puerto en el router y redireccionar las peticiones de este puerto en el router hacia un nodo de dentro de la red).


Al final de todo el proceso ya tendremos nuestro Synology DSM 5.2 disponible para poder configurar e interaccionar con el dispositivo.


En nuestro caso hemos accedido al interior del NAS y hemos instalado una serie de servicios que descubriremos en el test de intrusión del siguiente post. Las instalación de estos servicios se ha omitido, ya que la finalidad del artículo no es esa, sino la virtualización del DSM 5,2 para su posterior auditoría. No obstante aquí tenéis una guía del usuario del DSM 5.2 por si queréis consultarla.

Si queréis probar el NAS antes de instalar toda la máquina virtual y el DSM 5.2, tenéis la posibilidad de entrar en un DSM 5.2 online que ofrece Synology para pruebas en la siguiente dirección (user: admin  y password: synology):


En el siguiente artículo llevaremos a cabo el test de intrusión al dispositivo. 

Un handshake


"Para ser grande, primero tienes que aprender a ser pequeño.
La humildad es la base de toda verdadera grandeza"