viernes, 3 de septiembre de 2021

Silver Ticket Attack

¿Qué es?

Este ataque se basa en construir un TGS (ticket Kerberos) válido para un servicio, una vez se ha obtenido el hash NTLM del propietario del susodicho servicio. De esta manera, es posible acceder a este servicio con un TGS personalizado que contenga los más elevados privilegios.

Ejemplo de este tipo de ataque

El siguiente ejemplo parte de una máquina de HTB (intelligence).

Paso 1.

Tenemos un usuario y su hash NTLMv2, que incluso ha sido posible crackear, pero esto último no es relevante en este caso.

Hash NTLMv2 del usuario Ted.Graves

Paso 2.

Comprobamos si existe algún servicio sobre el cual el usuario sea propietario.

Para comprobar esto se utilizará la herramienta: gMSADumper (https://github.com/micahvandeusen/gMSADumper), ya que la herramienta “impacket”, no trae ninguna herramienta para hacer esto. Al menos hasta dónde mi conocimiento llega.

***** NOTA: *****

Esta herramienta, busca Group Managed Service Accounts (gMSA), pero, ¿qué son?

Los gMSAs son cuentas de servicio que ofrecen una manera segura para ejecutar aplicaciones, servicios y tareas de manera automatizada. Fueron introducidas en Windows Server 2016 pero pueden ser aprovechadas en Windows Server 2012 y versiones anteriores

Las características de estas cuentas son que las contraseñas de las mismas son generadas aleatoriamente, cambian automáticamente y no es necesario que ningún usuario las conozca. Además, estas cuentas de servicio son “instaladas” únicamente en el servidor (por lo tanto será necesario utilizar una cuenta de máquina) que solicitara su uso al AD en tiempo de ejecución. Por lo dicho,

Las  gMSAs son un tipo específico de objeto dentro de Active Directory, concretamente: msDS-GroupManagedServiceAccount. Dentro de este objeto, la propiedad/atributo más importante es: msDS-ManagedPassword, este atributo contiene un BLOB con información de la contraseña actual

Bibliografía:

·         https://stealthbits.com/blog/what-are-group-managed-service-accounts-gmsa/

********************

El uso de la herramienta nos devuelve el siguiente dato:


Es decir, existe un servicio sobre el que el usuario Ted.Graves, tiene permisos.

Paso 3.

Procedemos a utilizar la herramienta de impacket: getST, para generar un ticket de servicio que nos permita elevar permisos sobre la máquina.

El resultado es:


Es decir, tenemos un problema de fecha/hora.

***** NOTA: *****

En un entorno de AD, es muy importante tener la hora sincronizada con el controlador de dominio, ya que Kerberos no funciona correctamente si la fecha y hora de nuestro equipo no va acorde con la fecha y hora del controlador de dominio/servidor

Para mejorar esto, necesitamos configurar el servicio NTP de nuestra máquina para que utilice el servidor NTP del servidor y así corregir el problema


Si tuvieras algún problema con ello, se recomienda seguir las siguientes instrucciones

********************

Repetimos la solicitud para generar un ticket de servicio, y conseguimos nuestro objetivo


Ahora sólo queda utilizar el ticket generado mediante Pass-The-Ticket

 

En cualquier caso

Lo que hagas con la información es cosa tuya, no mía... pero ten conciencia

viernes, 25 de junio de 2021

Picha!, pasame unas máquinas!

 

Una manera rápida de encontrar máquinas en un entorno de directorio activo, es preguntarle al directorio activo.

Para ello, se necesitará un usuario válido que tenga permisos para hacer consultas.

Si ya lo tienes, lo único que necesitas algún programita que te permita hacer dichas consultas, personalmente me gusta trabajar con el módulo de Windows ActiveDirectory.

Entre sus comandos tenemos: Get-ADComputer, por lo que mediante el siguiente comando podemos extraer todas las máquinas dadas de alta en el Directorio Activo, siempre y cuando se encuentren activas.

 

 Si queremos hilar un poquito más…




Y obtendremos

 

Ahora sólo nos queda obtener las direcciones IP, pero preguntando al servidor DNS lo tenemos resuelto

NOTA: Y cómo esto, tenemos todo el campo libre para obtener información sobre usuarios, grupos, etc. Ejemplos:

Grupos de seguridad global y universal que tiene el patrón “admin” en el nombre 

 


 

Todos los usuarios con todos sus datos

 

...

En cualquier caso

Lo que hagas con la información es cosa tuya, no mía... pero ten conciencia

 

 

domingo, 30 de mayo de 2021

Backmachine basada en búsquedas de Google

 

Buscando por Internet información sobre un reto de HTB, me encontré con esto:

 



Realmente el enlace dirige hacía un archivo de texto que contiene flags de los retos de HTB (enlace: hxxps://linguinielruso.com/Soplones/soplon_HTB_ALL.txt)

No intentes ir a la web, ¡no funciona!, pero aún así se puede extraer toda la información del documento… o se podía. ¿Por qué?

¡Porque Google ha/había cacheado el contenido del archivo .txt!, por lo tanto, podemos utilizar forks para recuperar toda la información del documento.

Ejemplos al respecto:

 


 

La fork es sencilla, no me hagas escribirla

Y antes de que vayas a sacar flags de HTB, comentarte que el contenido del documento no se encontraba muy actualizado. Pero, lo más importante y que ya se ha comentado

¡Google cachea el contenido de archivos con extensión .txt!

Y, ahora, ya puedes ir a por las flags… o no (el autor posteriormente a bloqueado a los spider).

 

 
 
Mis disculpas si ha molestado mi visita, no era mi intención. 
 
En cualquier caso
 
Lo que hagas con la información es cosa tuya, no mía... pero ten conciencia

jueves, 29 de abril de 2021

Reto Forense – HTB: Blue_Shadow

 

Con la única pista que nos dan: @blue_shad0w_ , se busca información en San Google. Se encuentra un perfil en Twitter, que tiene posteados nada más y nada menos que 58 tweets compuestos de cadenas de 0’s y 1’s.

La primera impresión es que nos encontramos ante un programa codificado en binario, que debe ser transformado para que podamos ejecutarlo.

Para comprobarlo, se decide a coger el primer tweet publicado -por tanto el más antiguo-, porque si la intuición no falla dicha parte contendrá el magic number del fichero. Con lo cual podremos saber contra que nos enfrentamos

Los pasos para la transformación serían:

1.- Copiar y pegar la primer cadena de 0’s y 1’s en un archivo

 


2.- Transformar los 0’s y 1’s anteriores a formato hexadecimal.

Para ello yo he utilizado el siguiente código.

 

3.- Tras obtener la cadena en hexadecimal, ahora debemos pasarla a un formato “ejecutable”, para ello utilizaremos la herramienta: xxd, con los parámetros: -ps (output in postscript plain hexdump style.) y –r (reverse operation: convert (or patch) hexdump into binary.).

 


Ahora sólo tenemos que ejecutar el comando: file o abrir el fichero resultante para saber, a través del magic number, de que se trata.

 


 ¡Perfecto!, la intuición no nos ha fallado, tenemos un fichero: ELF, que no es otra cosa que un fichero ejecutable en sistemas *NIX.

Ahora nos toca hacer lo mismo pero con todas la cadenas de 0’s y 1’s puestas unas detrás de las otras.

Una vez realizado esto, se procede a ejecutar el archivo obtenido.


¡Nada!, pero … tenemos una pista, ¡necesitamos el antídoto!

Buscamos entre las cadenas del propio programa el antídoto, para lo cual utilizamos el comando: strings

 


No parece que las cadenas de texto del ejecutable no muestren información sobre el antivirus, pero dan información. Entre esta información, nos dice que necesitamos pasarle algo como parámetro, que con absoluta seguridad comparara con algo y si coinciden nos dará nuestro tesoro.

Pasamos a bucear por Internet, en dicho universo encontramos referencia de un episodio de Stars Wars denominado: “Blue Shadow Virus”, en donde se habla de su antídoto: reeksa roots (raíces de reeksa). Se decide probar con ello.


¡Vaya!, hemos obtenido nuestro premio

A862BC50162B5BFA6ED8167898E843E4

Ahora solo hay que añadir el formato adecuado y probarlo.

 

En cualquier caso

Lo que hagas con la información es cosa tuya, no mía... pero ten conciencia