martes, 31 de agosto de 2021

Simulación de adversarios: Infection Monkey

 Estimados amigos de Inseguros !!!


Hace unos años que comencé a hablar de esta herramienta de simulación de adversarios que me sorprende mucho, ya que tiene un potencial brutal, pero poca gente usa.


El concepto es muy sencillo, suelta al mono por tu red, y a ver donde llega :-)

Infection Monkey se compone de una parte servidor de control y un agente, que haciendo uso de distintas métodos, intenta "hackear" tu red de manera controlada hasta donde pueda...

El principio comienza con unos cuantos doble clicks para tener la herramienta instalada en nuestros Windows.


Entramos al navegador y introducimos el usuario y clave por defecto, que si lees esta página, y no lo adivinas, no mereces seguir :-) https://localhost:5000/landing-page



Ahora es el turno de configurar nuestra simulación. Podemos elegir a usar la ejecución de un exploit que se aproveche de una vulnerabilidad, o simular un escenario de infección en la que el atacante conoce las contraseñas de un usuario. En este caso queremos medir la capacidad que tendría un ransomware de expandirse por la red. Para este caso, le proporcionó un usuario y contraseña válido en la red.

Pero bueno, esto es porque queremos hacer este tipo de test, podemos intentar NO pasarle ninguna contraseña, para que usando el propio Mimikatz que alberga, intente sacar claves o hashes. Como digom, el propósito de esta prueba es simular que partimos de un leak de contraseñas.


También podemos indicar el ámbito de redes a los que queremos llegar, excluir y todo lo relativo al "scope".  Por último, indicamos a la herramienta sobre qué carpeta queremos hacer la prueba de infección, de cifrado, en mi caso le doy un path y guardo el setting.

Tenemos la opción de ejecutar la llamada al cliente desde el equipo que queremos comprobar, indicando la dirección del server.


Vamos al asunto. Ejecutamos al mono :-) y le decimos que no use exploits, solo SMB, que es el que realiza las conexiones mediante las credenciales.

En unos minutos, tenemos el resultado. Es importante saber que en este caso, no solo cifra, sino que pueda indicar el nivel de recursividad, es decir, se crea una copia del agente en el equipo infectado para que este infecte a otro equipo al que lo mismo no teníamos visibilidad originariamente. Es decir, que en este caso, el proceso de cifrado no ha sido ejecutado desde el servidor, sino desde el propio server.

Podría tener ejecutando el ransomware.exe en el equipo a, y cifrar el equipo b por una carpeta compartida... o ejecutar el ransomware.exe en el equipo b y seguir la cadena. Este último ha sido el caso.



Una de la cosas que me gusta es que te sumariza por ejemplo, todos los eventos que tu SOC debería haber detectado, es decir, empieza a decirte, te he hecho un portscan, he entrado en tal web, etc. Además, lo hace referenciando dos modelos, uno del tipo Zero Trust que separa el tipo de información, y otro con el famoso Mitre.



Una vez tenemos el informe de mapeo con Mitre, lo tenemos muy sencillo para empezar a preparar un plan en el que podamos implementar todas las medidas de seguridad relativas a todos los fallos explotados, para intentar proteger en distintas capas al tedioso ransomware.

Espero que os haya gustado la aproximación, y quizás otro día sigamos con más "monadas" como estas :-). Las funcionalidades de la simulación "custom" son súper interesantes, ya que podemos incluir cualquier fichero y ejecución post infección, además de las que nos proporciona la propia tool...otro día que me lío :-)

Si estás interesado en servicios de formación donde puedas ampliar tu conocimiento tanto ofensivo como defensivo, puedes consultar el Master de Ciberseguridad en Entornos Microsoft que hemos preparado en Verne para este 2021-2022.

Gracias por leerme !!!




lunes, 30 de agosto de 2021

Listado de bloqueos de LOLBins de Microsoft con WDAC

 Estimados amigos de Inseguros !!!

Mucho se ha hablado ya de los LolBins por la red, pero por si no están al tanto...

El concepto LolBins, LoLBans es la manera que tenemos de identificar ejecutables y funciones del sistema operativo diseñados para un cometido, pero que pueden ser usados para un fin un tanto..."alternativo"...

El contexto de esto es muy sencillo. Imagina que se compromete un servidor Windows, por el fallo que sea, una vez comprometido debemos realizar otras acciones, escalado, movimientos, exfiltración... lo que sea que tengamos como objetivo. Si en ese host comprometido necesitamos herramientas, tenemos la opción de descargarlas, con el riesgo de que un sistema defensivo las detecte, como un antivirus, o usar binarios del sistema... que gozan de la confianza del antivirus, ya que están diseñados para "EQUIS" cosas, pero nosotros las vamos a usar para el mal.

El más sencillo de los lolbins para entenderlo es el hh.exe. Este binario está diseñado para ejecutar las pantallas de ayuda cuando usamos esta función por cualquier parte de Windows, pero si le añadimos una url, nos hace las veces de navegador, por lo que en un entorno en el que se prohíbe Chrome o Internet Explorer, podríamos navegar y saltarnos esta medida... Sencillo el concepto...


Existe distintos proyectos que aglutinan los lolbins que van saliendo, es decir, que se descubre un uso un poco alternativo... y los jefes de Flu Project hablaron ya en su día de esto.

Vamos a comentar otro muy interesante, por ejemplo, el PresentationHost.exe . Imagina un entorno con Powershell capado, algo habitual o debiera serlo... podemos usar este LolBins que es un intérprete de aplicaciones web para aplicaciones Xaml, siguiendo este magnifico post, para invocar a Powershell desde ese proceso (Presen...) con lo que podemos evadir Applocker...




Pero como siempre, no me gusta soltar la liebre y dejar al lector con más miedo que hambre :-)

La propia Microsoft ha recopilado una serie de binarios muy concretos con un potencial muy peligroso y nos emplaza a bloquearlos mediante Device Guard For Application ( WDAC) con una plantilla a tal efecto, mucho más efectivo que Applocker... 

Esta medida es muy sencilla de implementar mediante GPO y la directiva de reglas creada.


Si quieres saber más de como crear un conjunto apropiada de políticas, puedes leer esta interesante guía.

Por supuesto que mientras decides la viabilidad de bloquear dichos ficheros, puedes empezar por auditar el acceso a estos objetos. 


Como has podido ver, seguimos con esa visión de aportar elementos ofensivos y defensivos, según el role que te toque desempeñar.

Si estás interesado en servicios de formación donde puedas ampliar tu conocimiento tanto ofensivo como defensivo, puedes consultar el Master de Ciberseguridad en Entornos Microsoft que hemos preparado en Verne para este 2021-2022.

Gracias por leerme !!!


viernes, 27 de agosto de 2021

Dfirtrack: Herramienta para seguimiento de incidentes y workflow.


Estimados amigos de Inseguros !!!

En el post de hoy os voy a mostrar una herramienta que se emplea en algunos departamentos de ciberseguridad, en SOC o centros de respuesta a incidentes que me parece interesante. Se trata del proyecto DFIRTrack. El nombre lo indica todo, es una herramienta gráfica que nos permite documentar nuestras investigaciones, registrando los procesos que realizan los operadores y la información de valor.

Como sabéis los que estáis en las trincheras, igual de importante es atajar el problema, por ejemplo de un ransomware, desde la parte técnica en un cliente, como de la parte de registrar todas las actuaciones y así poder realizar una tarea de documentación, o incluso el mismo proceso, de manera ordenada y adecuada para el cliente.

A qué hora se abrió el incidente, quien lo revisó, qué equipos se analizaron, qué artefactos, que conclusiones por cada uno, esto es igual de importante hacerlo como documentarlo. 

El proceso de instalación de la herramienta es muy sencillo y está muy bien documentado en la web del proyecto. Podemos optar por contenedores o instalaciones “nativas”. 


Si usas docker como yo en un entorno cloud, Azure , ten la premisa de escribir en el fichero .env el hostname público del equipo, del estilo : https://mimamamemima.cloudapp.azure.com/ en el campo fqdn para que puedas usar la navegación https, por lo demás, poco más que levantar un docker-compose up



Como es normal, debemos configurar un poco las opciones a nuestro gusto, los tags, las opciones, personalizar la herramienta para que podamos registrar nuestros procesos operativos en ella. Por ejemplo, hemos añadido un tag Ransomware para poder clasificar la idiosincrasia del incidente o caso.



Una de las cosas interesantes que nos ofrece el software es la capacidad para diseñar workflows, en los que podamos anidar distintas tareas para guía al operador o gestor del incidente.



Estos workflows se vinculan a tareas sobre un sistema, no sobre un caso ... por lo que sirve para eso, para tener clara las tareas a hacer en cada sistema, pero a nivel macro, no podremos por ejemplo configurar un proceso que sea enviar a comercial una petición de precio...

La herramienta funciona bien y es estable, si bien, carece de algunas opciones que a mi me gustaría como el reporting, pero tenemos acceso a una API con la que podremos extraer artifacts y llevarnoslos a nuestro the hive o misp o cualquier otro proceso de orquestación que necesitemos.

Al menos, nos puede ayudar a definir un poco mejor el proceso de una respuesta a incidentes, la categorización,etc, sea con esta herramienta o con otra.

Como has podido ver, seguimos con esa visión de aportar elementos ofensivos y defensivos, según el role que te toque desempeñar.

Si estás interesado en servicios de formación donde puedas ampliar tu conocimiento tanto ofensivo como defensivo, puedes consultar el Master de Ciberseguridad en Entornos Microsoft que hemos preparado en Verne para este 2021-2022.
Espero que os guste y lo probeis.

Gracias por leerme.


jueves, 26 de agosto de 2021

Reducción de la Fatiga de Alerta: inteligencia humana o artificial…

 Estimados amigos de Inseguros !!!


Si trabajas en un SOC o eres cliente seguramente te resultará sencillo entender el concepto de Fatiga de Alerta. Es muy descriptivo. Se produce cuando recibes al día 50 alertas con eventos sospechosos… pero que no dejan de ser un indicador de que el servicio está conectado … si un día no recibes esos correos, es porque el aplicativo o datasource se ha caído, poco valor más




Mucho se ha escrito sobre este concepto, y sin duda, es algo que no se ha terminado de solucionar ya que hablando con clientes nos cuentan que sufren de este problema, que si bien una carencia de información les produce dudas sobre la calidad de la monitorización, un exceso produce la misma sensación.

Respecto al profesional que gestiona dichas alertas, la perspectiva es distinta. 

Pongamos por ejemplo un médico de atención primaria en época pre-Covid. Tu ibas con un dolor de cabeza, mal cuerpo, y te recetaba ibuprofeno cada 8 horas y si aparecía fiebre, paracetamol. 
Si tus síntomas se ampliaban a estornudos, tos, mucosidad, lo mismo, y algún paliativo contra los síntomas. Así paciente tras paciente… no literalmente ¡!! A ver… lo mismo hay un top 5 o top 10 diagnósticos habituales… 

Pero imagina que en ese momento vienes de un país del centro de África con posibilidad de haber contraído una enfermedad peligrosa y mortal, ¿mediante un mosquito… y tus síntomas son dolor de cabeza… mal cuerpo… crees que te van a hacer 4 análisis, 1 Tac, 23 pruebas de no se que?
El profesional sanitario sufre de una fatiga de alerta, de una monotonía, y es casi imposible que advierta de esa pequeña “alerta” de que un síntoma pueda ser algo más complejo que un proceso gripal…




Pongamos el ejemplo actual con un Covid campando por las gentes. Tu vas al médico por cualquier síntoma, y eres candidato a Covid, por qué? Fatiga de alerta. Te van a hacer 101 test especiales para ver si tu enfermedad es algo distinto? El primer día seguro que no, que te meten el palito hasta lo más hondo…

Siguiendo con el símil sanitario que tanto me gusta emplear, vamos a hablar de la inteligencia artificial, en concreto del machine learning. Vamos a poner en Google nuestros síntomas, a ver que nos recomienda la “experiencia” del buscador. Busques lo que busques, tienes un cáncer… El modelo de ML del algoritmo muchas veces no está bien planteado, o sufre desviaciones, no entiendo mucho de este tema, pero casi siempre que busco algo tengo cáncer, o tengo que comprar viagra o un rolex .

Vamos a poner un caso sencillo de fatiga de alerta, por ejemplo, un antivirus que se desactiva para actualizarse, puede que no tengamos la información de que se está actualizando y no podamos correlarlo con el “power off” por lo que no sabemos si un hecho del sistema o de un atacante. Si. ¡!!
Podríamos ver los procesos e intentar sacarlo por ahí, pero vamos a imaginar que no tenemos esa visión. 

En algunos clientes que implementamos estas alertas, nos dicen que “quitemos” la regla ya que genera muchos falsos positivos… pero si quitamos la regla… ya no podremos cazar cuando alguien pare el antivirus para campar por sus anchas…


Si cada vez que un antivirus realiza el update, podemos tener un patrón del tiempo que este tarda en actualizarse, ya que posiblemente tengamos cientos de equipos realizando esta acción. Con un entrenamiento de datos podríamos obtener una desviación, y alertar cuando se produzca un “power off” de un antivirus que lleve por ejemplo, 10 minutos apagado, cuando suele tardar 4 minutos en actualizarse… y hacer esto dinámico, que si un día hay un update grande, el sistema se “actualice” y dispare la anomalía con los valores necesarios.

En este caso quizás el machine learning nos pueda ayudar, sin duda, si nos permite seguir monitorizando cuando un antivirus se apaga, y nos permite no tener 120 falsos positivos al día, el ML nos habrá ayudado. Solucionado la vida? Despedimos a los humanos? Todo ahora es ML? NO ¡!! Con calma, con inteligencia, con sentido común…

Pero si la solución 100% efectiva no es la inteligencia artificial, deberíamos introducir algún concepto en la “inteligencia” normal de nuestros operadores. Otro concepto que no invento es el de la inteligencia situacional, o inteligencia 360… que tiene más nombre de producto.

No es lo mismo una alerta de una posible subida de una webshell a una empresa con un Wordpress, que una empresa con una fuerte presencia e-commerce, y que él mismo ha sufrido un cambio importante hace una semana. Es la misma alerta, pero el contexto informa de lo posible y lo probable. Es mucho más probable que el ataque sea en el segundo caso, que en el primero. Esto es lo que deberíamos llamar inteligencia situacional.

Al final todos los eventos, alertas, sospechas de incidentes son importantes. Si como le decimos a los clientes, lo suyo sería que nunca te enviemos un correo, pero por suerte o por desgracia, hay ocasiones en las que tenemos que decirte: “eh. ¡! Has sido tu” ¿

Pongamos el ejemplo de un usuario que se hace administrador del dominio…, a las 18:00, porque si es a las 4:00 am si le vamos a dar peso, pero imagina a las 18:00… ¿quien lo ha metido al grupo? Este usuario ha hecho login local o por vpn, o por rdp desde un equipo que no es el suyo habitual… al final hay maneras de investigar la alerta y no generar preocupación al cliente, pero muchas veces no es así, y la fatiga de alertas puede que nos lleve por el camino de la confianza, y dejemos de hacer bien nuestro trabajo.

Volviendo al principio, seguro que si eres del lado operador o del lado cliente, te suenan todas estas cosas, y tenemos claro que debemos mejorar, tanto por la parte humana, como por la parte “artificial”.

 Qué opinas?

Como has podido ver, seguimos con esa visión de aportar elementos ofensivos y defensivos, según el role que te toque desempeñar.

Si estás interesado en servicios de formación donde puedas ampliar tu conocimiento tanto ofensivo como defensivo, puedes consultar el Master de Ciberseguridad en Entornos Microsoft que hemos preparado en Verne para este 2021-2022.
Como siempre, gracias por leerme ¡!!