jueves, 24 de septiembre de 2015

El Helo World del análisis de Malware para NO analistas de Malware.Pestudio-Cucko-MD5-VirusTotal...

Estimados amigos de Inseguros !!!

En este capítulo vamos a iniciar a los espectadores, si, se que estás comiendo palomitas, en el mundo del análisis del Malware.


Como sabes si eres asiduo a mis post, no me considero un analista de malware, ni tan siquiera de seguridad, me considero un tipo de sistemas con la vertiente de la seguridad muy asumida. Soy de los que piensa que si los administradores de sistemas hiciéramos bien nuestro trabajo, y si los programadores hicieran bien su trabajo, el cibercrimen se reduciría hasta casi la separación. Hago énfasis en el CASI...

Puesto a trabajar, voy a intentar contaros mis pequeños pasos en este mundillo, sin grandes pretensiones, y por supuesto sin ánimo de "sentar cátedra" ya que hay muy buenos expertos en esta disciplina en el panorama nacional con abundante información pública y en castellano.
Disculpas pedidas de ante mano comienzo...

¿Qué es el análisis de Malware? Podemos diferenciar la detección del malware en dos, Host-based y network signatures. Mientras que un antivirus suele basar su análisis en la firma del fichero infeccioso, con el análisis de malware host based analizamos que acciones a efectuado el malware en el equipo, y en la parte de network, imagínatelo tu :-).

Dentro del procedimiento básico de análisis de malware está el saber si alguien ya ha revisado ese fichero. No estamos para inventar la rueda y teniendo http://www.virustotal.com con varios motores AV no tiene sentido no empezar nuestro trabajo por ahí. Imaginas un mes de trabajo para "descubrir" que el malware que tienes sobre la mesa es un gusano-sql de 2003?

Pasado este punto, debemos realizar una firma, un hash del fichero en formato MD5 o SHA1, dos de los más empleados. Con winmd5 podemos hacerlo de manera gráfica en nuestro amado Windows.


Puedes comprobar como el hash que nos da la utilidad, como el que nos muestra VirusTotal al subir el archivo es el mismo... para eso están los hashes (colisiones aparte). No importa el nombre del archivo, el hash se hace con el contenido.

Podemos usar una herramienta muy simpática para Windows que es PEstudio. Una aplicación portable, sin necesidad de instalación, que con un simple drag&drop nos muestra un pequeño análisis de la pieza que le pasamos, incluyendo la integración con VirusTotal para comprobar si ya ha sido detectado.


La herramienta nos da una seria de indicadores de que puede ser un malware, por ejemplo las funciones que usa, librerias sospechosas que carga, nos permite ver en el MSDN que hace esa función, nos muestra los strings que encuentra  y unas cuentas comodidades más.


Como es normal, esto no es análisis de malware, ya que es la propia herramienta la que nos da "pistas" de lo que hace el binario, pero hemos basado nuestro "descubrimiento" en que virus total detecta el malware. Poco a poco...

Si quieres bajarte alguna pieza de malware, aquí tienes un recurso para descargar algunas muestras de ejemplo de Malware. Recuerda que si tienes activo algún antivirus, posiblemente te marque el fichero ZIP entero como peligroso, y no puedes hacer ninguna gestión. Si vas a realizar habitualmente este trabajo, te recomiendo que pares el AV en el momento de trabajar, y que metas una exclusión al directorio.

Bueno, vamos a seguir con el planteamiento inicial, comenzar en el mundo del análisis de malware, sin la necesidad de hacer reversing, ensamblador y otras cosas que no nos gustan, a priori, por desconocimiento xDDD

Vamos a seguir un poco con el análisis básico. Esta vez es el turno de Cuckoo Sandbox. Cuckoo Sandbox es un conjunto de scripts en Python, un framework, para el análisis dinámico de Malware mediante modulos que podemos activar/desactivar. Trabaja con máquinas virtuales, donde realizaremos el concepto de "sandbox" o zona aislada, generalmente un equipo Windows, en donde se ejecutará el malware y se analizará el comportamiento de este dentro del sistema virtual.

Para ello necesitamos un linux, instalar Cuckoo, un hypervisor tipo 1 Vmware/kvm/qemu o tipo 2 Virtualbox/Vmware/Xenserver y dentro de este, una máquina Windows. La máquina Windows debe estar los más "relajada" posible en cuanto a seguridad, por ejemplo sin updates (para evitar tráfico que moleste para el análisis) firewall, instalar Adobe pdf reader y Ms Office para futuros análisis y deshabilitar el UAC ( desde el panel de control-cuentas de usuario, no lo haga con la clave de registro que indican los manuales, ya que esto era para win7 y para 8 no es recomendable)

Para la instalación básica de Cucko podemos usar esta guía tan bien explicada del profesor Adastra del mejor blog de seguridad informática en Castellano.

También me gustó esta guía, por lo que recomiendo leer las dos para tener claro todos los conceptos de red con la máquina virtual.

Ya que estamos, por qué no leer la guia oficial? xD

Os recomiendo algunos cambios básicos en la configuración de la red entre el host y la vm. Pongamos un ejemplo de un malware que se conecta a un C2 ( command & control)  externo en internet para recibir ordenes. Si ejecutamos el malware en nuestro entorno sandbox, con que ip externa se conectará el malware? con la de nuestra linea de Internet...algo que me parece sumamente peligroso. Para corregir este comportamiento, según puedo leer en un buen post de Security By Default, vamos a usar un gateway TOR basado en una distro. de anonimato llamada Whonix.

Una vez solventada la conectividad entre nuestra máquina sandbox y Cuckoo podemos empezar a realizar algún análisis.

En todos los manuales que he puesto aparece el proceso completo de ejecución, por lo que me limito a mostrarte algunas pantallas que seguro te interesarán:




Por la característica del ejecutable, no aparece mucha información.

Recuerda que el motivo de este artículo es solo animarte con el estudio automático de algunos casos que puedan llegar a tu entorno.

En el próximo artículo añadiremos más módulos a cuckoo, integraremos con firmas YARA, veremos las capturas de memoria/Red etc.

Espero que os animéis en este mundillo.

Gracias por leerme !!!




martes, 22 de septiembre de 2015

Tips & Tricks: Como ver la lista de usuarios del dominio, su último cambio de password y su política al respecto

Estimados amigos de Inseguros !!!


Una de las configuraciones básicas de seguridad dentro de un dominio es la política de cambio de contraseñas. Aparte de por la buena práctica que constituye, es una obligación en España por la LOPD.

Es normal que algunos usuarios, sobre todo los "avanzados" usen scripts o pequeñas chupuzas en sus sistemas, y suele pasar que seducen al administrador de sistemas para que le active el famoso:

Como parte de una auditoría legal interna, o simplemente para trazar errores, podemos ejecutar este bonito powershell para facilitarnos la tarea.

get-aduser -filter * -properties passwordlastset, passwordneverexpires | sort name | ft Name, passwordlastset, Passwordneverexpires

Tenemos la opción de sacarlo por CSV, como todos los listados powershell, para facilitar el informe/colleja.

Get-ADUser -filter * -properties passwordlastset, passwordneverexpires | sort-object name | select-object Name, passwordlastset, passwordneverexpires | Export-csv -path c:listos.csv

Como siempre, espero que os guste.

Sysadmin del mundo, NO TE DEJES SEDUCIR POR NADA y MUCHO MENOS POR UN CAFE DE MAQUINA.

sábado, 19 de septiembre de 2015

DOS a nivel aplicación. Sin herramientas hackers XD

Estimados amigos de Inseguros !!!

Vamos a comentar brevemente un concepto no muy habitual en los círculos juanckers, aunque de todos conocidos en la industria de la seguridad.

Todos hemos leído mil historias sobre ataques de denegación de servicio, o distribuidos, los famosos DDOS. Conocemos herramientas para realizar mil perrerías de este tipo, que si syn flood, que sin LOIC, que si ataques de amplificación o reflexión, servidores NTP, etc

Hay un DOS que no se suele hablar mucho, el físico !!! es decir, te vas al servidor que quieres atacar, y le cortas el cable, o cortas el cable de la acometida de la línea telefónica. También puedes pegarle fuego a todo el edificio del CPD, todas estas técnicas son ataques de Denegación de Servicio, ya que vas a conseguir una interrupción en el servicio.


El responsable de este pequeño truco imagino que habrá sido el director comercial. Imaginamos una web normal, de venta de productos. Todos habréis visto la típica opción de "cuantos elementos quieres ver en la ventana?" Muy sencillo, verlos de 8 en 8, de 16 en 16 , o TODOS de golpe. Esto comercialmente está muy bien, es más sencillo para el usuario ver TODOS los productos de un vistazo, y como Internet es mega rápido, no hay problema en que la página cargue un poquito más en cargar los productos...Algo normal. Cuantos productos tiene tu portal web?10? 20? 200? 2000?


Las malas configuraciones "humanas" al final afectan al negocio, en todos los sentidos. El problema aquí no que la web tarde en el cliente, sino que el servidor no sea capaz de gestionar las peticiones de imágenes. En este caso, era un VULGAR apache, sin cache para las imágenes.

  Abro paréntesis: un servidor web procesa mediante procesos y subprocesos, todos los elementos web que renderiza, que muestra. Las imágenes también. En un entorno de producción que precie medio bueno, se suele poner un servidor proxy inverso "delante" del servidor web, con opciones de cache. Esto hace que el contenido estático, que no cambia, como las imágenes, sea servidor por el proxy, dejando al servidor web renderizar lo que realmente necesita, como pueda ser el php. Cierro paréntesis.

Para hacer la prueba veo que la petición que hace el navegador para mostrar TODOS los elementos es tan simple como ?limit=all, por lo que me voy a dos equipos en la nube distintos, para comprobar la velocidad de respuesta del servidor. De esta manera puedo delimitar si están empleado medidas de QOS ( gestionar cuanto ancho de banda le corresponde a cada IP) o cualquier modulo de Apache como mod_evasive.

Para realizar la prueba me basta con la herramienta AB, Apache Benchmark, como ya vimos en este artículo. Simplemente hago una petición normal desde un equipo, y desde otro equipo lanzo 20 peticiones a la vez, pero esta vez con la opción de "TODO". 

Los sistemas de firewall o de networking no detectan nada, porque no estoy haciendo un DOS en base a saturar la red.


La denegación de servicio se produce a nivel aplicación, es la aplicación Apache la que no es capaz de servir más imágenes o documentos a la vez y por ello se produce el DOS.


Como se puede ver en la parte izquierda, una petición normal se sirve rápido, pero cuando a la derecha lanzo las 20 peticiones, vemos como tanto a la izquierda como a la derecha, que se producen time-outs y la web no sirve las páginas.


Un solo ordenador, realizando 20 peticiones ( que las podrías hacer incluso abriendo 20 pestañas a la vez en el navegador, sin herramientas) hemos sido capaces de "fastidiarle" el negocio durante un tiempo.

Es un fallo MUY EXTENDIDO y que no es tanto de "informáticos" o técnico, sino de la lógica del proceso. Se puede resolver de varias maneras, pero la más rápida es QUITAR la opción de que se muestren todos los productos. Poner un servidor proxy-cache también sería una opción muy interesante. Seguro que la configuración de Apache también se podría mejorar...

Espero que te haya gustado el artículo, y que comprendas que la denegación de servicio, el famoso DOS o DDOS se puede realizar de muchas maneras, no solo a base de "músculo" de red, de muchas peticiones.

Otro día buscaremos algún servidor que acepte comodines en el campo búsqueda, que también es divertido.

Como siempre, gracias por leerme !!!


miércoles, 9 de septiembre de 2015

Microsoft Advanced Threat Analytics. Producto Deep Packet Inspection-Siem para entornos Active Directory

Estimados amigos de Inseguros !!!

En el capítulo de hoy vamos a hablar de Microsoft Adavanced Threat Analytics o como ellos denominan ATA (debería ser MATA? ) . El proyecto nace de la empresa israelí Aorato comprada por Microsoft a finales del 2014.

La idea es "conectar" la inspección de paquetes en profundidad, como hace cualquier IDS, con la información de Active Directory e incluso una fuente externa SIEM/logs y mediante inteligencia propia crear un mapa de seguridad basandose en la correlación de todas estas fuentes.

Analyze-Learn-Detect-Alert.




Uno de los recursos que más me gusta es este webinar que sin duda te hará más fácil la compresión del producto, eso si, en la lengua del Fish&Chips...



Si prefieres algo más ágil en PDF qué mejor que este documento.

Vamos a realizar el proceso de instalación y comentamos las particularidades del despliegue necesarias en cada caso.

Como es normal, te preocupará el precio. Como siempre tienes que estudiar las condiciones particulares de tu entorno, pero mira por aquí, no parece muy caro.

Una de las cosas importantes en el procedimiento de instalación es que tanto la consola como el server tiene que tener ip´s distintas. Podemos instalarlo todo en el mismo equipo, no recomendado para entornos de producción. Por último añadir que Microsoft se suma a las nuevas tecnologías usando MongoDb como base de datos y no el clásico MSDE.




Bajo este punto debemos hacer un reboot al server, a no ser que hayamos instalados previamente la última versión del .net framework, que también nos pedirá reiniciar... para retomar la instalación manualmente. Es básico decir que si ya tenemos un servicio escuchando en el puerto indicado, podemos/debemos cambiarlo...

Si todo ha ido bien, podemos conectarnos al ATA center.
Mi primera impresión es la de preguntarme qué hace toda esta gente en mi pantalla? no era para detectar intrusiones? :-) Iba a poner mi clave de Hotmail pero sospeché que sería mucho espionaje que MS supiese ese dato, y me decido por introducir la clave de mi usuario en el dominio.

El primer paso, como recomiendan los expertos, es configurar la puerta de enlace ATA, lo que viene siendo la conectividad con el dominio. Como siempre para estos casos, se recomienda usar una cuenta de servicio que no cambie de contraseña cada 45 días, etc etc.


En el mismo server voy a instalar el componente Gateway con el fichero descargado. Previamente debemos solucionar el tema del Port Mirroring. Depende tu entorno de red, virtual o físico o mixto, el equipo que ostenta el componente de Gateway debe tener acceso al tráfico generado de algún controlador de dominio. Si tu entorno es puro virtual, DC y el servidor ATA, el proceso es muy sencillo. En mi caso el servidor DC es físico, por lo que tengo que jugar con el switch y los cables contra el server virtual. Esta parte se excede del propósito del post.



Si todo ha ido bien...

Ahora vamos a leer los datos, y leo esto en las opciones de despliegue: 

The ATA Center requires a minimum of 21 days of data for user behavioral analytics

Se supone que ATA debe recolectar suficiente información para crear su modelo de "normalidad" para detectar los cambios. Algo difícil en un entorno de laboratorio. 

Por otro lado veo comentarios negativos ya que indican que solo detecta actividad que se realiza contra el DC, por ejemplo un ataque pass the hash en un cliente o el uso de mimikatz pasaría desapercibido en una estación cliente. Veremos a ver...

Vamos a esperar unos días, a terminar de configurar el resto de controladores de dominio y el reenvío de logs de mi SIEM hacia el gateway, y en próximas aventuras terminamos con este producto.

Gracias por leerme, espero que os guste !!!