martes, 7 de julio de 2020

Despliegue de entornos de laboratorio Windows/ELK/Sysmon en Azure para testing y training con Adaz

Estimados amigos de Inseguros !!!

Me hace mucha ilusión el artículo de hoy porque es algo que he sufrido mucho y me ha servido bastante.

Cuando haces laboratorios, pruebas, ensayos, al final inviertes mucho tiempo en preparar el laboratorio. Este laboratorio no suele durar mucho, porque cuando empiezas a trabajarlo es casi imposible trackear los cambios y resultados que vas haciendo, y si haces algo defensivo no te va lo ofensivo, si implementas mejoras rompes cosas, al final es eso, un sitio para guarrear.

Hay varios proyectos muy conocidos basados en docker y despliegues en virtualbox o vmware, pero este que os presento tiene la peculiaridad de que funciona con Azure y funciona, es Adaz.


El sistema es muy sencillo, son un conjunto de configuraciones para setear en Azure un grupo de recursos destinado al Threat Hunting con un controlador de dominio y varios equipos clientes conectados con usuarios. A esto se le suma una máquina con una instalación de ELK funcional.

Aparte de las máquinas los windows vienen con las políticas de auditoría configuradas, sysmon y toda la conexión con ELK.

El despliegue es muy interesante para probar nuestras detecciones, si bien usamos Elast Alert. o cualquiera de las muchas detecciones que usamos. Podemos añadir una instancia manualmente Splunk o utilizar el formato Sigma... usar las detecciones de HELK en fín, el uso que le des ya es cosa tuya.


Podemos realizar algunos cambios en la nomenclatura del entorno, algo muy básico pero te ahorra luego tener que estar cambiando a tu gusto. La referencia es muy sencilla.


Si queremos cambiar otras configuraciones más orientadas a la plataforma, a lo que Terraform va a desplegar en nuestro Azure, como el grupo de recursos, redes y demás, podemos cambiarlo también

Una vez configuradas nuestras opciones podemos ejecutar el despliegue, realizando previamente un login con el Azure Cli para tener la validación pertinente.




Si todo ha ido bien, tenemos como resultado varios elementos.

En primer lugar, el front end kibana con todos los eventos generados.


Podemos hacer una sencilla prueba, por ejemplo, detectando Mimikatz, y vemos como se ha generado un evento, pero por la creación de un proceso con ese nombre. Esto quiere decir que no está muy bien configurado el sysmon con una regla que me detecte proceso padre accediendo a lsass.exe, pero bueno, como prueba de concepto me vale.


Un recursos muy interesante y como dice el autor, es compatible con las versiones de pruebas y estudiantes que ofrece Azure con un crédito limitado, ya que el consumo de estas máquinas no es elevado.

Seguiremos muy de cerca este proyecto porque la base es muy buena, y nos puede ahorrar mucho trabajo cada vez que queremos hacer una POC o una laboratorio. Si ya solo por el DC y los clientes ya nos ahorra un trabajo, si a esto le sumamos todo lo de ELK, bingo.

Como siempre, gracias por leerme :-)





viernes, 3 de julio de 2020

Reflexiones sobre el MVP

Estimados amigos de Inseguros !!!

Como lleva siendo habitual estos últimos 5 años, y no normal, porque para mi sigue siendo brutal la ilusión, me han concedido el honor de ser Microsoft MVP.

Cada vez que recibo el correo se me saltan las lágrimas. Al final es recibir un "bien hecho" de alguien que valoras mucho, como es para mi la comunidad entorno a Microsoft y sobre todo su labor. No hablo de vender productos o servicios, hablo de AYUDAR en hacer el mundo más seguro, contando lo poco que sé a los demás.



Muchos me preguntan todos los años sobre el premio, por eso me animo a contar estas cosas en público.

El premio Microsoft MVP no es un premio técnico por ser el number one, es un premio por contribuir de manera desinteresada al fomento de la tecnología que cada uno maneja.

Hay MVP con más conocimiento que otros, y bajo los ojos de la gente, hay gente que debería ser MVP y lo es, otros que no lo son, y otros muchos que no deberían serlo, pero siempre bajo el criterio "técnico" del conocimiento, pero insisto en que el premio no es al conocimiento, sino a la difusión del mismo.

Me gusta poner el ejemplo de Eduard Punset. No ganó nunca un Novel, no se cuantos ensayos, estudios, informes publicó a lo largo de su vida, pero como divulgador, lo hizo BRUTAL. Acercando al público generalista la ciencia de manera amena. Felix Rodriguez de la Fuente, Arguiñano, Chema Alonso... grandes profesionales que tu gusten más o menos, han hecho un INCREIBLE trabajo divulgativo y el MVP va de esto.

Conozco gente auténticamente CRACK en su terreno, en la ciberseguridad. Que trabajan en grandes proyectos con grandes clientes, y se merecen un premio por ello, por su excelente labor, pero eso no se llama MVP.

En mi caso creo que me suelen otorgar el premio por dos actividades principales, mis charlas y mis artículos.

Este último año he escrito cosas de las mías, relacionadas con productos o servicios de Microsoft más de 20 veces.

Más de 20 veces que he dedicado mucho tiempo a escribir, a hacer laboratorios o pruebas de concepto, a escribir, a revisar el texto, a publicarlo.

No quiere decir que mi contenido sea el mejor, sino que me he esforzado porque alguno de los que me leeis os informeis, aprendais, critiqueis o que dentro de 3 años aparezca en una búsqueda en Google.

Si quieres ser MVP de Microsoft, o cualquier de otros reconocimientos que existen (Vmware, Oracle, Google, etc) lo único que tienes que hacer es sentir pasión por lo que haces, y que te guste contribuir comunitariamente con ello.

No hay periodos, yo tuve en el 2000 mi primer kinomakino.tk y el premio MVP me lo dieron en 2015.

No hay caminos, esto es solo que tenemos la suerte que nos recompensan, pero quizás la vida no siempre sea todo lo justa que debería y puede que durante un tiempo no te recompensen, pero da igual !!! vuelvo al punto anterior, esto lo haces por pasión, no por reconocimiento.

Respecto al premio en si, conlleva una serie de ventajas como canales de comunicación más cercanos con grupos de noticias, desarrollo de productos, organización de actividades, y algunos premios más "tangibles" o materiales como subscripciones, descuentos en exámenes, licencias para probar productos y servicios como Azure, pegatinas y lo mejor de todo, poder ir a MVP Summit anual en Redmond para conocer de primera mano el futuro de Microsoft, y en parte, del mundo.

Espero que os haya gustado el post y animaros a que seáis los mejores del mundo en lo que hagáis, seais los MVP de todo, ya sea el trabajo, como padre/madre, como amigo, como cocinero o como deportista... al final la vida es el camino que hacemos, porque el fin sabemos cual es, por lo que te animo a que disfrutes del camino, y si es relacionado con el mundo Microsoft, ayudes como puedas porque quizás algún día te mande ese correo...

Gracias por leerme !!!!





martes, 23 de junio de 2020

Conexión de AD on-premise con Azure y bloqueo de palabras concretos en las claves de los usuarios

Estimados amigos de Inseguros!!!

En el artículo de hoy vamos a tratar algunos temas varios, relacionados entre sí, pero que creo que pueden ayudar a mucha audiencia de distintos tipos.

Vamos a comentar cómo implementar un servicio de Azure Active Directory para proporcionar single sing on de nuestros usuarios de Active Directory en Azure ( y sus servicios si queremos) ( y para los usuarios que queramos) y vamos a usar una función muy interesante para mejorar la seguridad de las contraseñas.


El servicio o función se denominada Password Protector y no es más que ampliar las funciones que vienen "de casa" en nuestros dominios con una protección para evitar que los usuarios usen ciertas palabras en sus contraseñas. Por ejemplo, que no usen el nombre de la empresa dentro del password...

Es muy interesante esta función ya que aparte de mejorar la seguridad de las contraseñas, tanto en la nube como en local, nos proporciona un registro puntual con eventos para seguir nuestras políticas de compliance de cualquiera de las mil que hay.

El proceso parte de un Active Directory sin ningún tipo de conexión con Azure, por lo que si ya tienes algún servicio tipo Microsoft  365 o similar, algunos pasos ya los tendrás.

En el portal de Azure tenemos que crear una nueva instancia de Active Directory para Azure, siguiendo varios sencillos pasos. Tienes que tener en cuenta los nombres y DNS, y entender que el dominio Active Directory en Azure puede o no ser el mismo que on-premise, es más puedes configurar todo tipo de granularidad. Por ejemplo, sincronizar en Azure solo cierto grupo de usuarios, por ejemplo, el departamento IT, para que acceda a los recursos de la nube con el Single Sign On.




Descargamos el AD Connect y procedemos a hacer la magia. Vamos a usar la opción por defecto para no entrar en esta materia que está ampliamente documentada.

Es importante crear un usuario en el AD local para la sincronización del directorio. No permite usar el usuario administrador ni se debe. El propio asistente te indica la posibilidad de ingresar uno o que crear uno, si previamente le introducimos un usuario administrador con capacidad para eso, para administrar el AD local.


Ahora es el turno del objetivo principal del post, configurar la seguridad para las contraseñas. Accedemos al portal de AD en Azure y entramos en la sección seguridad.


Accedemos a administrador, mecanismos de autenticación, protección con contraseña.***nota mental, necesitas E3 para esto o Azure Active Directory Premium 1***

Es muy forzar a que se use la lista y acometer la misma.


Ahora vamos a configurarlo para nuestro entorno local, on premise. Comenzamos descargando el agente e iniciando el proceso de instalación.



El proceso es automágico y después de un reinicio, podemos ejecutar el módulo Powershell que instala para saber si todo ha ido bien: Import-Module AzureADPasswordProtection

Ahora que tenemos el agente instalado y el proxy que se conectará a Azure, hacemos eso, conectarlo:

Register-AzureADPasswordProtectionProxy -AccountUpn 'hjkhjkh@9080.com'

El siguiente paso es registrar el bosque que queremos sincronizar: 

Register-AzureADPasswordProtectionForest -AccountUpn '0'09'90'@onmicrosoft.com'

Una vez seteado todo, vamos a hacer una prueba, vamos a realizar un cambio de contraseña a un usuario que contenga alguna de las palabras y ver qué ocurre.


Efectivamente aparece un preciado registro para nuestro SOC.

Espero que os sirva de ayuda para animaros a probar cosas de este tipo.

Gracias por leerme !!!

miércoles, 10 de junio de 2020

Detectar y esconder Sysmon


Estimados amigos de Inseguros !!!

De todos es sabido que Sysmon es una pieza fundamental para la monitorización de los sistemas Microsoft, pero es una pieza muy importante que debemos defender ya que los atacantes lo saben, y lo primero que harán será detectar el uso de la herramienta, para saber si pueden hacer más o menos ruido.


Una de las primeras cosas en un ataque o auditoria es evaluar las medidas defensivas del cliente/objetivo. Si tiene servicios defensivos complejos deberás ser más caúto y sobre todo lento en los reconocimientos y explotación de activos que si es un equipo que huele a siguiente, siguiente, siguiente. 

Lo primero que debemos saber es que por defecto si no renombramos el fichero de instalación de sysmon, se instalará en una rama tanto el binario como un driver con unos nombres predecibles, sysmon y sysmondrv. 

Si un atacante busca procesos corriendo, servicio o rama de registros relacionada con Sysmon detectaría el uso.

Tenemos la opción de cambiar el nombre del instalador e indicar el nombre del driver así:

carbonblack( o el nombre que quieras).exe -i -d carbonblack


Aparte de este pequeño hack, tenemos que ser consciente de que el driver se instala con un identificador o altitude único, un identificador que usa Microsoft para imponer un orden a la hora de ejecutar drivers en la pila de almacenamiento. Siempre es el mismo 385201. 

Podemos listarlo con el siguiente comando:

C:\Windows\system32>fltmc

Nombre de filtro                     Núm. instancias    Altitud    Trama
------------------------------  -------------  ------------  -----
DfsDriver                               0       405000         0
SysmonDrv                               5       385201         0
vsepflt                                 5       328200         0
WdFilter                                5       328010         0

Con este comando también podríamos deshabilitarlo...

Por lo tanto, si sabemos cambiarle el nombre en la instalación y sabemos cambiar el número de altitude...


Poco más que decir. Otras herramientas usan altitude conocido como procmon que siempre usa 385200...

En fin, espero que te guste la idea de usar sysmon, si ataques ya sabes como buscarlo, si defiendes como esconderlo... y así hasta el infinito.

Espero que os guste !!!

miércoles, 3 de junio de 2020

Reglas básicas de seguridad para Microsoft 365: lucha contra el timo del CEO

Estimados amigos de Inseguros !!!

Seguro que si hablamos del timo del Ceo conoces algún caso más o menos cercano de alguna organización que ha sucumbido a él.

Quizás no por ese nombre, pero el concepto está muy claro. Te envían un correo de una cuenta de algún proveedor o parecida... diciendo que cambies un número de cuenta para hacer un pago... algo similar.


Vamos a realizar un par de ajustes en nuestro Exchange Online para minimizar el impacto o posibilidades de que ocurra.

En primer lugar vamos a crear un flujo de correo sencillo, vamos a alertar a nuestros usuarios cuando llega un correo de otra organización. Esto parece una tontería, pero muchas veces los usuarios se relajan cuando ven un dominio "parecido"al nuestro.

Imagina las posibilidades que te da esto, pero poco a poco.

Ahora vamos a crear otra regla en la que identificamos una o varias palabras sospechosas en el correo, por ejemplo la palabra factura, y vamos a hacer dos cosas, anteponer un asunto que ponga PELIGRO y un mensaje antes del correo que indique que es sospechoso.



Si seguiste el último post sobre conectar por Powershell Microsoft 365, podrás conectarte al Exchange online con Connect-ExchangeOnline  para poder realizar cosas como listar las reglas:


Pero la gracia está en como decíamos en el artículo anterior, usar Powershell para administrar de manera masiva distintos Tenant. Para ellos vamos a exportar el conjunto de reglas, para luego poder importarlas, almacenarlas, etc.  $file = Export-TransportRuleCollection; Set-Content -Path "C:\reglas_empresa_x.xml" -Value $file.FileData -Encoding Byte

El resultado es sencillo:

<?xml version="1.0" encoding="UTF-16" standalone="true"?>

-<rules name="TransportVersioned">


-<rule name="TImo del ceo" format="cmdlet" id="a6963b64-ca84-4bbd-b96b-6dd995c748c8">


-<version requiredMinVersion="15.0.3.0">


-<commandBlock>

-<![CDATA[New-TransportRule -Name 'TImo del ceo' -Comments '
' -Mode Enforce -SubjectOrBodyContainsWords 'factura' -PrependSubject '[PELIGRO].      ' -SetAuditSeverity 'Medium' -ApplyHtmlDisclaimerLocation Prepend -ApplyHtmlDisclaimerFallbackAction Wrap -ApplyHtmlDisclaimerText 'CUIDADO CON ESTE CORREO, tiene elementos que lo hacen sospechoso, en concreto habla de una factura.']]>
</commandBlock>

</version>

</rule>


-<rule name="correo de fuera de la empresa" format="cmdlet" id="b7c84d9f-f74a-4b8d-9bd3-9168fa5e3b74">


-<version requiredMinVersion="15.0.3.0">


-<commandBlock>

-<![CDATA[New-TransportRule -Name 'correo de fuera de la empresa' -Comments '
' -Mode Enforce -FromScope NotInOrganization -SetAuditSeverity 'Medium' -ApplyHtmlDisclaimerLocation Append -ApplyHtmlDisclaimerFallbackAction Wrap -ApplyHtmlDisclaimerText '<<ATENCIÓN, este correo viene de una fuente externa, no olvide las directrices de seguridad de la compañía>>']]>
</commandBlock>

</version>

</rule>

</rules>

La manera de importarlas sería insultantemente sencilla como para documentarlo :-).

Ahora vamos con otro truco. Vamos a jugar con los arrays de valores en Powershell y vamos a crear una regla que por ejemplo, no deje enviar correos a gente de fuera de la organización, con ciertas palabras. Esto se podría usar de muchas maneras, por ejemplo, para detectar fugas de información con ciertas palabras... vamos a ello.


El uso que le des es infinito, por ejemplo, puedes crear una lista de remitentes seguros para el departamento de compras/pagos, en el que previamente se den de alta. Si alguno de los correos que te piden cambios o envían facturas o similar, sin que esté autorizado, puede dar un error... al final la tecnología está al uso de los procesos de la empresa y cada una es un mundo.

Espero que te sirva de ayuda este mini artículo con algunas ideas para fortificar tu Microsoft 365.

Gracias por leerme !!!

Related Posts Plugin for WordPress, Blogger...