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 Synology: https://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"

martes, 7 de abril de 2015

De Security High School a Qurtuba Security Congress

El pasado día 19 de febrero se celebró en el instituto IES Fidiana la primera edición de las jornadas de seguridad informática para formación profesional Security High School con la colaboración de ANPHACKET, SVT Cloud Services y los amigos de Hack&Beers donde se contó con la presencia de más de 200 asistentes.


En dicha jornada estuvieron presentes ponentes como; 

Miguel Ángel Arroyo, fundador de Hacking-etico.com, Security Business Manager en SVT Cloud Services y presidente de ANPHACKET que nos ofreció una charla titulada "Hacking modo IKEA: móntate tu propio exploit" donde nos mostró un desbordamiento de buffer para poder tener el control de un software y finalmente añadir shellcode para conseguir una shell de Windows.

Francisco Barcos, inspector del grupo de delitos tecnológicos del Cuerpo Nacional de Policía de Córdoba y miembro de ANPHACKET nos mostró en su ponencia como trabajan dentro del departamento de delitos tecnológicos, cascos donde tuvieron que intervenir y un aparato muy curioso llamado Cellebrite que lo usan en su departamento. A su vez, nos habló de la aplicación Volatility donde nosotros os hablamos hace poco de ella aquí.

Manuel Camacho, colaborador de hacking-etico.com, Senior Security Consultant en SVT Cloud Services y miembro de ANPHACKET nos enseñó "Wifrikeando" sobre redes Wifi que nos mostró que por mucho que tengamos sistemas WPA/WPA2 con WPS activo podrían conseguir nuestra contraseña sin sudar mucho. También nos enseño una perfecta aplicación para Tablets o móviles Nexus llamada NetHunter  desde donde también podemos realizar ataques.

Además de estas ponencias, también contamos con otras realizadas por el alumnado de diferentes institutos de Córdoba como por fueron, "Ganando una partida al Counter Strike" realizada por los alumnos del IES Fidiana que nos enseñaban como conseguir que nuestros rivales perdiesen la conexión para así poder ganar la partida. "El phising, la pesca de los despistados" por los alumnos del IES Medina Azahara donde nos concienciaban que el phising es una de las técnicas más utilizadas para conseguir nuestros datos más preciados. "Esteganografía, ocultando información" hecha por los alumnos del IES Lope de Vega que nos mostraba como ocultar información en una fotografía donde a priori, parecía una imagen normal y corriente. Por último "Un troyano RAT para Android" donde un alumno nos enseñó lo fácil que era controlar un Android con un simple troyano.

Dichas jornadas sólo fueron el principio de lo que viene en unos días, el primer congreso de seguridad informática "Qurtuba Security Congress" que se va a celebrar en Córdoba los próximos días 10 y 11 de abril organizado por ANPHACKET en la Facultad de Derecho y Ciencias Económicas y Empresariales  de Córdoba. Más de 400 asistentes, ponentes de lujo, talleres, sorteo de cursos, streaming y numerosos patrocinadores y colaboradores, entre los que cabe destacar los amigos de HangoutON que mantendran informados a toda la comunidad por medio de streaming a todos aquellos que no puedan asistir.

No sólo contamos con Qurtuba los días 10 y 11 de abril, sino que también tenemos un Hack&Beers by Qurtuba el Jueves 9 a las 18 de la tarde en la discoteca Palazzio. Toda la información y entradas la podéis encontrar en la Web qurtuba.es

En Qurtuba podremos ver ponentes de la talla de Lorenzo Martínez o Pablo González entre muchos otros de gran prestigio, pero mejor vemos el video que han realizado los amigos de HangoutON para ver la cantidad de profesionales que participan en el evento.




Un saludo!




jueves, 26 de marzo de 2015

Haciendo DoS SLAAC mediante mensajes RA

Si piensas que IPv6 no tiene ningún funcionamiento en Windows estás muy equivocado y si encima la configuración la tienes por defecto te diré que IPv6 tiene prioridad sobre IPv4. En muchas redes locales IPv6 trabaja más que IPv4 en protocolos como podría ser SMB. Con solo hacer un ipconfig y ver que tenemos una dirección de vinculo local IPv6 que empiece con el famoso fe80:: posiblemente seas vulnerable a diferentes ataques que pueden realizarse sobre este tipo de red.

Hoy os vengo a contar un curioso ataque que probé y dejó mi PC colgado e incluso me tiró de la red local teniendo que volverme a conectar. Es un ataque que hace DoS a través de mensajes RA (Router Advertisement), pero antes de explicaros como es el ataque, os diré para que sirven estos mensajes y como funcionan..

Si queremos configurar el protocolo IPv6 en una red, podemos hacerlo de diferentes formas. Una de ellas es mediante el protocolo NDP (Neighbor Discovery Protocol) que vendría a ser lo mismo que ARP (Address Resolution Protocol) en IPv4 y mensajes RS (Router Solicitation), RA (Router Advertisiment) acompañado del funcionamiento SLAAC (Stateless Address Auto Configurator).

Imaginemos en una red local un equipo que está configurado para obtener el direccionamiento IPv6 de manera automática. Cuando encendemos el PC, este enviará un mensaje RS multidifusión a todos los routers que soporten IPv6 de la red para que le envien un mensaje RA al PC que acabamos de conectar.

Mensaje RS del PC pidiendo mensaje RA del router

Cuando el Router recibe el mensaje RS del PC, este responde con el mensaje RA solicitado anteriormente en el que van el prefijo y la longitud del prefijo de la red. Este mensaje se envía a todos los nodos de la red que sería la dirección IPv6 FF02::1 siendo la dirección link-local del router como la dirección IPv6 de origen.

Mensaje RA del router enviado a todos los nodos con los datos


El PC recibe el mensaje RA con los datos del prefijo y longitud del prefijo para la red local. Con esta información, el PC crea su propia dirección IPv6 a partir del prefijo de red (64 bits) y de una ID de interfaz que podría ser creada con su dirección MAC normalmente, aunque también podría hacerlo números aleatorios creados por el sistema operativo.


Como SLAAC es un proceso sin estado el PC debe verificar que su dirección IPv6 sea única en la red, por lo que envía un mensaje ICMPv6 con su propia dirección como la dirección de destino del mensaje para ver si algún nodo contesta. En caso de no contestarle nadie, la dirección podría utilizarla sin problema, pero si por el contrario alguien contestase, el sistema operativo debería determinar una nueva ID de interfaz para utilizar.


Una vez que ya hemos visto para que sirven los mensajes RS, RA y su funcionamiento vamos hacer DoS a las máquinas que están en la red, en concreto lo que vamos a intentar es envíar miles de paquetes RA a todos los nodos de la red (FF02::1) haciéndonos pasar por un router para que se fabriquen su propia dirección IPv6 y el PC quede colgado finalmente al no poder procesar tanta información consiguiendo así hacer flood de mensajes. Para ello necesitamos una máquina con Kali para poder utilizar la herramienta flood_router6 la cual es muy sencilla de utilizar.

Con kali arrancado lanzaremos el ataque simplemente escribiendo en la terminal
flood_router6 eth0

(Aunque nos diga que la aplicación está en desuso y utilicemos flood_router26 funciona perfectamente. Yo utilicé las dos y conseguí hacer DoS a la máquina).

Lanzando el ataque con la herramienta flood_router6

En el momento que le demos al enter para lanzar el ataque, empezará a enviar tramas a los equipos de la red para que se construyan su propia dirección IPv6 y estos empezarán a consumir recursos del PC quedando así totalmente inaccesibles, por ejemplo sin poder mover prácticamente el ratón, visitar cualquier página y en algunos casos echándonos de la red y por qué no, una vez esté la máquina fuera de la red y vaya a conectarse, realizar un ataque ROGUE DHCP ;-) . Los recursos del PC ascenderían al 100% incluso en algún momento sin poder hacer nada en la máquina como podemos ver en la siguiente imagen.

Consumo de CPU habiendo llegado al 100% imposible de usar

Y si analizamos el tráfico en ese momento podemos ver todas las tramas y el ruido que genera la aplicación a la hora de lanzarse. Como bien dijimos, estos mensajes RA se enviarán en modo multidifusión.

Tráfico capturado a la hora de realizar el ataque

Y por último, os dejaré dos capturas de pantalla de como quedaría nuestro equipo Windows al hacer un ipconfig para consultar las direcciones IPv6 que se llegaron a crear.

Comando ipconfig para consultar las direcciones IPv6

Comando ipconfig para consultar las direcciones IPv6

Este es simplemente uno de los muchos ataques que podríamos realizar al protocolo IPv6, por lo que debemos de concienciarnos de que aunque nosotros no veamos trabajar IPv6 y no hayamos configurado nada, IPv6 posiblemente esté presente en todos los equipos de nuestra casa y muchísimas empresas por defecto lo que lo hace aun más vulnerable.


Un saludo @Joseliyo_Jstnk



viernes, 20 de febrero de 2015

Haciendo un DUMP de la memoria RAM

En un análisis forense es de vital importancia conseguir una copia exacta del sistema que se vaya analizar incluyendo la memoria RAM, teniendo ésta mucha importancia debido a la volatilidad que implica el poder llegar a perder los datos si la alimentación fallase porque como ya sabemos, la memoria RAM sólo almacenará datos cuando el sistema esté encendido. Es por esto que una de las primeras acciones para la recogida de evidencias será capturar todo lo que hay en la memoria física para poder analizarlo posteriormente sin alterar ningún dato.

Para poder hacer un dump de la memoria (volcado de memoria) existen varias herramientas que nos ayudarán a conseguir el objetivo. Yo os traigo las dos herramientas que mas me han gustado a mi después de haber estado probando unas pocas. Y por supuesto, de Microsoft Windows.


  • Win32dd.exe - Win64dd.exe: Dependiendo del sistema operativo que utilices tendrás que usar una versión u otra. Esta sencilla herramienta nos hará una copia de la RAM tal cual esté en el momento. Según tengamos más o menos memoria física tardará mucho o poco, no tardará lo mismo para una RAM de 2GB que para una de 8GB. Esta herramienta funciona a través de la línea de comandos, por lo que tendremos que abrir un cmd y desde la ruta de donde tengamos el .exe escribiremos el siguiente comando: win64dd.exe /r /a /f dump.img. Vamos ahora a analizar para que sirve cada opción;
    • /r -> Crea el archivo de volcado de memoria
    • /a -> Contesta si a todas las preguntas que se hagan durante el proceso
    • /f -> Fichero destinado (Nombre del fichero)

Como podemos ver en la imagen, sale información sobre el SO que usamos, la capacidad de la memoria, la cantidad que tenemos disponible etc.. 

Ejecutando el comando de win64dd.exe

Una vez se haya realizado el dump nos saldrá un mensaje como el de la siguiente imagen en el cual nos indica el tiempo que tarda en hacerse, el tamaño del fichero o el total de paginas escritas.


DUMP hecho exitosamente

Esta es una de las dos sencillas herramientas que traigo para hacer el volcado de la memoria física que va por línea de comandos y que puedes descargar desde aquí, la siguiente herramienta es en un entorno gráfico muy fácil de utilizar también.

  • FTK Imager: La segunda herramienta también sirve para hacer una copia exacta de la memoria física del momento. Una de las ventajas que tiene esta herramienta al ser en un entorno gráfico, es que cuando conseguimos hacer la copia, podemos examinar el valor de la misma y así ver por ejemplo alguna password que haya quedado almacenada en la RAM al loguearnos en algún portal, los procesos que estaban abiertos y las conexiones activas, versión del sistema operativo y muchas más cosas. Para conseguir un volcado se haría de la siguiente manera: Al ejecutar el programa haremos click en el icono de la memoria que pone "Capture memory". 
Crear el volcado de memoria
          En la siguiente ventana que se nos abre, en destination path daremos click en browse para seleccionar el lugar de almacenamiento de dicha captura. Para finalizar haremos click en capture memory y empezará a realizar el volcado. Igual que en la anterior herramienta, dependiendo de la capacidad de nuestra memoria tardará más o menos. Una vez que tenemos la memoria capturada y quisiéramos verificar que está bien hecha la captura, deberíamos podemos verificarlo mediante el md5 o sha1 que nos da haciendo click con el botón derecho en su icono y más tarde en "Verify drive/image". Mientras tanto, vemos en la pestaña de abajo como el principio de nuestra memoria está lleno de 0, es algo normal pero si vamos bajando, vemos información que tenía almacenada la RAM cuando hicimos el dump. Os pongo dos ejemplo de una contraseña que se quedó guardada o de un simple proceso que estaba en ejecución en el momento de la captura.

Contraseña almacenada en la RAM de un campo hidden

Proceso en ejecución a la hora de realizar el dump


Esta herramienta como podemos ver nos podría servir de gran ayuda a la hora de realizar un análisis forense en la captura de evidencias, podemos ver que procesos había en ejecución incluso con las conexiones que realizarían estos mismos. FTK Imager podemos descargarla desde aquí.

Otras herramientas que también podrían servir son; NotMyFault de SysInternals, SystemDump o LiveKD



Viendo estas dos herramientas y la gran utilidad que tienen en un análisis forense para recoger evidencias he llegado a replantearme que la memoria RAM tiene mucha más información valiosa de la que yo pensaba, al ser volátil no la tenemos muy en cuenta pero nos puede servir para conseguir información muy valiosa sobre un sistema. Bueno y.. una vez conseguido el dump de la RAM ¿Qué? ¿Cómo vemos toda la información de una forma estructurada?
Para eso os traigo una gran herramienta  que incluye en su repositorio la distribución de seguridad informática Kali Linux llamada volatility que nos servirá de gran ayuda para ver que contiene nuestro volcado de memoria de una forma estructurada y con muchas opciones.



-Volatility: Para empezar, arrancaremos nuestro Kali y en un USB por ejemplo tendremos la copia del volcado que tendremos que haber hecho previamente. Empezaremos con el siguiente comando para que analice el volcado y nos dará información del SO que lleva instalado.
vol imageinfo -f /ruta/volcado.img


El siguiente comando nos ayudará para conseguir las direcciones de memoria donde están los registros del sistema. El comando que ejecutaremos eserá el siguiente. (Seleccionaremos el perfil que nos dio el resultado anterior)
vol hivelist -f /ruta/volcado.img --profile=perfil


Como ya dije anteriormente, la memoria RAM almacena cantidad de información, y una que nos puede ser muy útil es la de saber los procesos que había activos en el momento del dump para poder ver si había algun software malicioso ejecutandose.
vol pslist -f /ruta/volcado.img --profile=perfil


Y también podemos ver que procesos son hijos de que procesos pero esta vez añadiremos la opción pstree para ver en forma de árbol estos procesos.
vol pstree -f /ruta/volcado.img --profile=perfil


No nos vamos a olvidar de saber que servicios se estaban ejecutando en el momento del dump por supuesto, y para ello usaremos la opción svcscan.
vol svcscan -f /ruta/volcado.img --profile=perfil



Y por último he querido añadir también el comando ldrmodules que puede servir para buscar una dll oculta que haya en el sistema.
vol ldrmodules -f /ruta/volcado.img --profile=perfil



Esto es todo lo que os he querido mostrar en esta entrada de hoy, nos vamos sabiendo que en un análisis forense será de vital importancia hacer un volcado de la RAM siendo una de las primeras tareas que tengamos hacer debido a que es volátil. Este volcado podrá aportar a la hora de crear el informe final muchas evidencias y así conseguir el objetivo.




Un saludo!

@Joseliyo_Jstnk

jueves, 5 de febrero de 2015

¿Sabes qué procesos corren en tu sistema?


Cada vez me adentro más en la rama del análisis forense en sistemas Microsoft Windows y es por ello que hoy os traigo una nueva entrada al blog después de llevar mucho tiempo ausente sobre los procesos que corren en tiempo real en nuestro sistema operativo Windows.

Muchas veces me he preguntado que procesos se ejecutarán al instalar un programa del cual no me fío mucho y seguro que muchos de vosotros también os los habéis preguntado. Como bien sabéis, una parte fundamental de un análisis forense es la de tener una copia de seguridad siempre de la imagen real del disco duro que vayamos analizar y trabajar a partir de dicha copia. También es de vital importancia intentar trabajar con herramientas que vayan por linea de comandos ya que son más ligeras y se modifica menos la memoria RAM por lo cual, os traigo una herramienta nativa de Windows llamada tasklist que va por linea de comandos y sirve para conocer los procesos que se encuentran corriendo en el sistema. Si la usamos sin ninguna opción nos mostrará una lista muy parecida a la pestaña de Procesos del Administrador de tareas, pero en nuestro caso la utilizaremos con la opción /SVC para así poder saber que servicios dependen de los procesos que corren en el momento y que nos muestre solamente el nombre del proceso, PID y al servicio que pertenece. Por supuesto, todos estos resultados podemos arrojarlos a un archivo de texto añadiendo > nombredelfichero.txt que se guardara en la ruta en la que nos encontremos en ese mismo instante.

Salida del comando tasklist

Salida del comando tasklist con la opción /SVC

Salida del comando tasklist con la opción /SVC
Como podemos observar en la salida del comando tasklist con la opción /SVC nos muestra solamente lo que queremos saber sobre los procesos y sus servicios a los que pertenece junto al PID por lo que de esta manera, podemos comprobar en un análisis forense si el sistema infectado tiene algún proceso en ejecución malicioso y más tarde comprobar alguna conexión que pudiese tener con el exterior con otra aplicación nativa de Windows llamada netstat. Añadir que en alguna ocasión deberemos utilizar herramientas que utilicen sus propias APIs para detectar procesos y conexiones ocultas ya que muchas veces el malware avanzado es capaz de modificar el retorno de las llamadas a las APIs de Windows y no veríamos nada extraño con las herramientas propias de Windows. Es por esto que es recomendable utilizar herramientas que implementen sus propias funciones de acceso a los datos.


Al igual que tasklist, Process Explorer también permite comprobar los procesos que corren de en un equipo en tiempo real y archivos DLL que se han abierto o cargado pero esta vez en un entorno gráfico. Uno de los beneficios de que se visualice gráficamente es que podemos ver  los procesos en su estructura jerárquica. Así, sin un proceso es el padre de otro aparecerá identado. Process Explorer nos muestra dos pantallas al abrirlo. En la parte superior nos mostrará todos los procesos activos, PID, nombre de la compañía etc.. Mientras que en la parte inferior nos mostrará diferente información dependiendo del modo en el que tengamos Process Explorer como podría ser; identificadores que ha abierto el proceso seleccionado en la parte superior, los archivos DLL y los asignados en memoria que el proceso ha cargado..

Procces Explorer

Una de las cualidades que contiene esta herramienta no nativa de Windows, es la integración de VirusTotal para poder analizar los procesos que están corriendo en el momento sobre nuestro sistema. Este análisis se realiza gracias a que Process Explorer envía hashes de los archivos y no el propio archivo para que nos muestre el resultado del scan que tienen almacenado en la BBDD de anteriores scans y muestra el resultado de los 57 antivirus que poseen.


Process Explorer mostrando una amenaza por VirusTotal en un servicio


Puede pasar que en la columna de VirusTotal aparezca "Unknown". Eso quiere decir que dicho archivo y versión nunca fueron subidos a VirusTotal pero, nosotros mismos podemos subirlo haciendo click en Options > VirusTotal.com > Submit Unknown Executables.

Enviando ejecutables desconocidos a VirusTotal.com

Para enviar un archivo a VirusTotal manualmente basta con hacer doble click sobre el proceso que queramos enviar para que analicen y hacer click en "Submit" en la pestaña que se nos abrirá.

Enviando a VirusTotal un proceso

A continuación os dejaré que significa cada color en los procesos que aparecen en Process Explorer.

Process Explorer colores


Un saludo :-)!