jueves, 16 de enero de 2020

T1034. Enumera y soluciona el problema de las comillas en servicios de Windows !!!

Estimados amigos de Inseguros !!!

En el episodio de hoy vamos a comentar una pequeña herramienta o truco para ayudarnos a fortificar y/o atacar nuestros sistemas Windows, como siempre, depende del rol que te toque.

Siguiendo el Framework MITRE, vamos a hablar de la técnica T1034, en concreto Path Interception. Empleada como mecanismo de persistencia, aprovecha una vulnerabilidad de concepto en los servicios Windows para ejecutar de manera controlada binarios.

El concepto es sencillo. En los sistemas Windows arrancamos servicios, y si en los nombres del ejecutable del servicio hay espacio y no se ha empleado las comillas, por ejemplo "c:\mi compañia\mi programa\programa.exe" el comportamiento es que el sistema intentará buscar programa.exe de la siguiente manera:


C:\archivos de programa*\empresa*\nombredeprograma*\programa.exe*
C:\programa.exe
C:\archivos de programa\programa.exe
C:\archivos de programa\empresa\programa.exe
C:\archivos de programa\empresa\nombredeprograma\programa.exe


Buscará primero el binario en cada uno de los sitios que he puesto asterisco.

Si conocemos esto, y podemos escribir en cualquier de esas ubicaciones, podemos colocar nuestra pieza de software, nuestro malware/stager/etc... y que se ejecute cada vez que se inicie el servicio (por ejemplo, cada vez que se inicie el sistema).

El concepto de Services Hijacking es muy viejo, pero el comentarlo es porque aún veo muchos entornos en los que esto no se cuida.

Lo interesante de esto es que podemos usar alguna de las herramientas que hay para enumerar, pero en este que os traigo, tenemos la posibilidad de no solo listar los servicios del Windows que tienen un ejecutable con espacios en los nombres y no tiene comillas !!!! y si queremos, nos modifica el servicio para incluir las comillas, es decir, para solucionarlo.



Como ves en las imágenes de la propia herramienta, el concepto es muy sencillo.

Espero que te sirva de ayuda tanto si vas a atacar, como si vas a proteger.

También, podríamos usar este dato en el SIEM, si trazamos la actividad con SYSMON, preguntando algo así como: si el papa es service.exe y el proceso no es: '\''.*' y algunas cosita más, podrás descubrirlos "in the wild" sin tener que ir al equipo a pasarle la tool...

Bueno, como siempre, dale el uso que quieras, gracias por leerme !!!



miércoles, 15 de enero de 2020

Process Monitor. Ver las ramas del registro que se crean al hacer settings en Windows.

Estimados amigos de Inseguros !!!

En el episodio de hoy vamos a dar un breve tip&tricks relacionado con el registro y Windows.

El otro día publiqué en las redes sociales una web muy interesante que vincula una GPO con la rama del registro que le corresponde.

En esta ocasión un pequeño truco. ¿Conoces Process Monitor? La herramienta de Sysinternals para monitorizar procesos del sistema?

Podemos ir abriendo servicios y viendo datos del resultado, procesos hijos, el pid, la operación, como siempre. Bien, podemos usar los filtros para indicar dos pequeños filtros.
Uno que el proceso sea MMC.exe, es decir, una consola ( el editor de GPO´s por ejemplo) y otro filtro en el que indicamos que la operación en RegSetValue.


Una vez que tenemos el filtro, abrimos nuestra editor de GPO´s y modificamos cualquier dato, por ejemplo, la longitud de contraseña... y antes de darle a CLICK para guardar la GPO, volvemos a Process Monitor, aplicamos el filtro, borramos la lista, y hacemos click en la GPO (para guardar).

De esta manera podemos ver con detalle la clave de registro que se ha modificado.

Espero que os sirva de ayuda en alguna ocasión.

Gracias por leerme !!!


martes, 14 de enero de 2020

Detectar enumeración de usuarios en Active Directory mediante honeytoken: Anti BloodHound, Empire, etc

Estimados amigos de Inseguros !!!

En este artículo vamos a comentar algunas cositas de Blue Team o fortificación de sistemas Windows mediante honeypots.

En este blog hemos hablado mucho de honeypots de todo tipo, he dado charlas que podéis ver en video, en fin, que me gusta...

Bien, vamos al concepto. Hay muchas herramientas hoy en día que se usan para explotar fallos en el Directorio Activo. De las más conocidas está Empire y su módulo para reconocer usuarios o como pueda ser el ingestor de BloodHoud.


La idea es crearnos un usuarios "honeypot" en el directorio para que, si algún proceso accede a él, nos salte una alarma en la que nos haga sospechar e investigar quien está realizando esa operación de enumeración, que da como resultado un usuario.

Os pongo otro ejemplo en el mundo web por si sirve de concepto. Imagina una web como esta www.miempresa.com en la que no existe www.miempresa.com/rrhh/nominas.  Si por cualquier motivo detecto una petición a ese recurso, es alguien que está buscando por mi web ese directorio... es decir, está enumerando.  El concepto es el mismo pero llevado a Active Directory.

Para ello vamos a hacer lo mismo que hicimos el otro día para auditar los cambios del registro, pero está vez lo vamos a hacer sobre un usuario, el comodín.

Creamos un usuario con un nombre cantoso, que no usamos, por ejemplo uso cebo, de "gancho" y de mi pasión por el jamón illooooooo. Ahora accedemos a las opciones avanzadas de seguridad y configuramos la auditoría de acceso sobre este objeto, al final, es un objeto de Active Directory.

Con esto estamos creando un honeyUser, un usuario que si alguien pregunta por él, es porque está haciendo un trabajo masivo de enumeración...

Si todo ha ido bien, cualquier acceso a este fichero daría un evento...

Pero ojo, qué pasa cuando entras a usuarios y equipos de Active Directory o usas cualquier comando powershell? Get-ADUser -filter *

Aquí tendrías un falso positivo como una casa...

El trabajo del analista de eventos es recibir esta alerta, y tratar de discernir si es un usuario administrador haciendo trabajo de administrador, o es una herramienta intentando ejecutar su acometido.

Espero que te sirva de ayuda, ya no tanto para estas herramientas, sino en general como idea de las capacidades de detección mediante auditorías.

Si quieres aprender a detectar Empire por ejemplo podrás mirar en la monitorización de procesos, buscar codificación de Powershell, consultas de red y muchas más cosas, esto es solo una idea para cualquier enumeración.

Para la detección en entorno local forense me gusta este post. https://holdmybeersecurity.com/2019/02/27/sysinternals-for-windows-incident-response/

y para monitorización remota me gusta este: https://www.swelcher.com/blog/2018/3/29/detecting-powershell-empire

Gracias por leerme !!!

viernes, 10 de enero de 2020

Auditar cambios en el registro sin herramientas de terceros

Estimados amigos de Inseguros.

En el post de hoy vamos a volver a machacar al público con una característica básica de seguridad de los sistemas Microsoft como es la monitorización del registro.

Todos los cambios de seguridad que solemos hacer por políticas o comandos suelen acabar en la base de datos de los Windows, el registro.




Hemos hablado mucho de este tema por artículos en el blog, incluso abrí una rama en mi github personal con algunas claves del registro que si o si deberías monitorizar.

Pero para qué hacer esto? imagina que configuras: 
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\SecurityProviders\WDigest DWORD ‘UseLogonCredential’ value 1 

Esto qué hace? habilita en un controlador el tipo de autenticación Wdigest para que cuando ejecuten Mimikatz en un proceso de compromiso las claves estén en claro, no haga falta crackearlas. Los malos lo hacen así !!! tu configuras mecanismos de defensa y ellos los cambian!!!

Bien, la cuestión es que la gente piensa en cómo monitorizar las claves, y piensa en clientes, agentes, cómo las gestiono, como detecto esos cambios en mi SIEM. 

Por partes. Lo que vamos a ver en este artículo es como levantar un evento, una alerta, cada vez que alguien mire o cambie un valor de una clave del registro concreta. Nos aparecerá un log en el visor de eventos y listo. Otra cosa es cuando tengas ese evento, como transformarlo en un correo (hay mil artículos de como enviar correos con eventos) enviarlo a un SIEM, ELK o similar...

Entonces, al lío. Como cualquier elemento de auditoria en sistemas Microsoft, hay dos partes: decirle al sistema que vamos a auditar acceso y/o error en el registro; el segundo paso es identificar qué ramas del registro queremos auditar.***** esto es igual para TODO en Active Directory******

Allá vamos. Vamos al editor de políticas de grupo y creamos una política con esta información:



Ahora vamos a la rama del registro que queremos auditar y seteamos la configuración, es decir, que para TODOS, audite el uso de estos permisos.



Entonces, seguro que habéis pensado... esta política tiene sentido para el servidor en el que se configura, ya que hemos ido localmente al registro a indicarle la rama concreta. BIEN !!! si no lo has pensado... lo entiendes? xD

Para eso usamos la rama Registro de las GPO en las que nos permite realizar esto, indicar qué claves del registro y qué permisos tienen, así, podemos emplearlo para un grupo de servidores (Por OU o como quiera que apliques la directiva).



Bien, ya sabes como hacerlo. Pero en muchas ocasiones, cuando habla con alumnos de cursos y similar, me comentan que con estos artículos se aprende la teoría, la manera de hacerlo, pero no se termina de centrar.

Me refiero a bien, pero ahora como lo haces, cómo lo mantienes. Te voy a dar unos tips o consejos.

Lo suyo es que esto lo hagas en entornos de pruebas. No esto en concreto porque no tiene mayor relevancia, pero para otros casos quizás si. Lo importante es realizar una copia de seguridad. Es tan sencilla como botón derecho.



Ahora la cuestión es que para importar una GPO entre dominios, en el entorno de pruebas y producción, se hace con un pequeño hack. En el servidor destino creas la política, y le dices que importe la configuración de un backup. De esta manera se importa una GPO entre dominios.

Bien, más trucos... Como he dicho, tengo una lista de claves del registro que me gustan, pero puede que tu tengas la tuya. Hay una manera cutre de importar estas claves de manera automática, y no tener que hacer el proceso 2 ( entrar en el registro, establecer permiso) pero no se la digas a nadie xD

Localiza tu GPO en SYSVOL, en mi caso estaba aquí: \\miempresa.local\SYSVOL\miempresa.local\Policies\{5F23582A-A1BA-4D22-A34B-AB5B3C29307A}\Machine\Microsoft\Windows NT\SecEdit

El fichero es el mismo que teneis en mi github, para que solo copies y pegueis so vagos !!!

Como se aprecia, se identifica la rama del registro y la SACL


"USERS\.DEFAULT\Environment" ,0,"D:PAR(A;CI;KA;;;BA)(A;CIIO;KA;;;CO)(A;CI;KA;;;SY)(A;CI;KR;;;BU)(A;CI;KR;;;S-1-15-2-1)S:AR(AU;OICISA;CCDCLCSD;;;WD)"
"USERS\.DEFAULT\Software\Classes\Exefile\Shell\Runas\Command\IsolatedCommand" ,0,"D:PAR(A;CI;KA;;;BA)(A;CIIO;KA;;;CO)(A;CI;KA;;;SY)(A;CI;KR;;;BU)(A;CI;KR;;;S-1-15-2-1)S:AR(AU;OICISA;CCDCLCSD;;;WD)"
"USERS\.DEFAULT\Software\Classes\Mscfile\Shell\Open\Command" ,0,"D:PAR(A;CI;KA;;;BA)(A;CIIO;KA;;;CO)(A;CI;KA;;;SY)(A;CI;KR;;;BU)(A;CI;KR;;;S-1-15-2-1)S:AR(AU;OICISA;CCDCLCSD;;;WD)"
Si editamos este fichero y lo modificamos añadiendo tus claves de registro, podrás cargar más fácilmente tu lista.


Pero bueno, se nos olvida lo importante !!! Queremos ver cómo al hacer un cambio en la rama del registro nos aparece un evento...


Ahora con ese evento, puedes configurar en tu SIEM, gestor de eventos o aparato mágico una alerta que te información si es un comportamiento normal, o es un "kinomakino" tocando tu Windows xDDD.

Espero que te sirva de ayuda y sobre todo, gracias por leerme !!!

martes, 7 de enero de 2020

Una de wordlist: The Mentalist !!!

Estimados amigos de Inseguros !!!

Dentro de los procesos de seguridad, tanto ofensivos como defensivos, es muy importante el trabajar con diccionarios y wordlist para fuerza bruta.

Espera, de manera defensiva? comorrrrrr !!!! Espero que hayas leído el artículo sobre como usar las listas de passwords de manera defensiva del anterior artículo...

Pero en esta ocasión vamos a centrarnos en la parte de generación de diccionarios, independientemente del uso que le des. En este blog hemos hablado hace años de herramientas como CUPPCrunch, ThaDoctor, who´s your daddy, CEWL  y en esta ocasión voy a comentar una sencilla herramienta para el mismo propósito, pero muy sencilla y gráfica. The Mentalist.


El uso es muy sencillo, es más es casi block chain !! jajajaja, usa chains, cadenas, en las que voy construyendo "condiciones" o casos sobre el texto.

La primera chain es el "input", el texto. aquí por ejemplo podríamos poner el nombre de la empresa, informático, producto, sector,etc, y podemos poner varios.

En el siguiente chain, vamos a realizar una modificación de mayúsculas/minúsculas con varios criterios.

Los chains son muy sencillos y donde mejor explicado está es en la propia documentación. Por ejemplo...

AttributeDescription
No WordsProvides an empty string
Custom File...User-specified custom wordlist file
Custom String...User-specified custom string
English DictionaryEnglish dictionary taken from the Unix words file
Common Names
 Men1,000 most common mens' names in the US
 Women1,000 most common womens' names in the US
 Pets1,200 most common pets' names in the US
Other
 Slang & ExpletivesWordlist of US slang and expletives
 Months & SeasonsWordlist of months and seasons

Tiene opciones sencillas, como el típico de añadir años antes o después de la palabra, poner la primera letra en mayúsculas, c4mb1ar las letras a lo hacker, etc...



Una herramienta más que anidad con otras, puede que nos ayude a crear un diccionario personalizado interesante para nuestros fines.

Espero que os guste !!!




Related Posts Plugin for WordPress, Blogger...