Comprender los ataques de Kerberos con Rubeus. Parte 2





¡Hola!



Esta es la segunda parte de un artículo sobre las capacidades de la herramienta de ataque Kerberos, Rubeus. El primero se puede leer aquí . Esta vez consideraremos cómo usar la herramienta para implementar los siguientes ataques:




  • Overpass The Hash / Pass The Key (PTK);
  • Pase el boleto;
  • Delegación sin restricciones;
  • Delegación restringida.


Ya se ha escrito mucho sobre por qué estos ataques son posibles, qué mecanismos existen para su implementación, qué principio subyace en el trabajo de Kerberos (por ejemplo, colegas del Jet Infosystem han publicado un buen artículo con análisis ), así que en mi artículo me enfocaré en la implementación de ataques con usando Rubeus.



Además de las "acciones" para llevar a cabo ataques e interacción con Kerberos, Rubeus tiene un pequeño truco agradable: basado en la contraseña en claro, puede calcular el hash NTLM, que a veces es muy conveniente y útil.







Esto concluye una pequeña digresión lírica, volvamos a la parte principal.

El banco de pruebas para llevar a cabo ataques no ha cambiado desde la publicación de la primera parte del artículo .



Overpass The Hash / Pass The Key (PTK)







Pass-the-hash — . , NTLM LM.

Pero, ¿qué sucede si la autenticación NTLM o LM está deshabilitada en la red y solo se usa la autenticación Kerberos y usted tiene un hash de contraseña? Aquí es donde entra en juego Overpass-the-hash: con el hash de contraseña del usuario, Rubeus puede solicitar un TGT para esa cuenta.



Aquí está el usuario de dominio que Barsik decidió estudiar problemas de seguridad de la información, en algún lugar consiguió el hash de contraseña del administrador de dominio ADadmin, descargó Rubeus, leyó artículos inteligentes e intenta ponerlo en práctica.







Vemos que no tiene tickets almacenados en caché, así como tampoco tiene acceso al controlador de dominio DC-16.meow.local, pero luego Barsik lanza Rubeus con una "acción" asktgty argumentos /domain, /user, /rc4, /pttpara obtener un ticket TGT válido basado en el hash de la contraseña de la cuenta ADadmin, argumento/pttcargará inmediatamente el ticket recibido a la sesión actual del usuario de Barsik.







El boleto se recibe y se carga, Barsik intenta nuevamente iniciar sesión en el controlador de dominio como Adadmin.







Y esta vez lo hace con éxito.



Pase el boleto (PTT)



Este ataque es similar a Overpass-the-hash / Pass-the-key, el atacante intenta obtener un ticket de usuario de dominio (preferiblemente con privilegios máximos en el dominio) y cargarlo en la sesión actual. Una forma de obtener tickets TGT es volcar tickets localmente en la máquina de dominio actual desde el proceso lsass.exe(Servidor de autenticación de seguridad local). Para hacer esto, debe tener privilegios de administrador local, y preferiblemente NT AUTHORITY / SYSTEM. Rubeus puede descargar tickets almacenados en lsass utilizando la acción de volcado, y la acción de clasificación mostrará qué tickets están actualmente almacenados en el sistema.











Rubeus descarga tickets lsasscodificados base64, mientras que la herramienta tiene una nota sobre cómo guardar el base64ticket recibido .kirbi.







Vamos a guardar e importar el ticket en la sesión de usuario actual.







Como puede ver en la captura de pantalla, el boleto de ADadmin se cargó correctamente y podemos ver el contenido de la unidad C en el controlador de dominio DC-16.meow.local en nombre de ADadmin.



Delegación sin restricciones



La delegación sin restricciones es un privilegio de dominio que se puede otorgar a las cuentas de usuario o computadora. Permite que una cuenta se autentique en un servicio en la red como otra cuenta.



Ahora es el momento de ajustar un poco el banco de pruebas y habilitar la delegación sin restricciones: demos el privilegio de la delegación sin restricciones a la computadora BARSCOMP.







Una de las etapas de llevar a cabo las pruebas de seguridad del dominio de Active Directory es buscar cuentas con la delegación habilitada, por lo general, Powerview se usa para estos fines , pero también se puede hacer manualmente usando el módulo estándar ActiveDirectory.







Para llevar a cabo este ataque, usaré el Error de impresoraque fue detallado por Lee Christensen de SpecterOps. Cualquier usuario autenticado puede conectarse de forma remota al servidor de impresión del controlador de dominio y solicitar una actualización para nuevos trabajos de impresión diciéndoles que envíen una notificación a una cuenta de delegación sin restricciones. Lee Christensen escribió una aplicación llamada SpoolSample que accede al servicio de impresión de CD utilizando el protocolo MS-RPRN.



En la computadora desde la cual se realizará el ataque (BARSCOMP.meow.local), es necesario ejecutar Rubeus en modo de monitoreo usando la "acción" monitoring. Este modo requiere privilegios NT ATHORITY / SYSTEM y escucha los nuevos tickets TGT / TGS en el proceso lsass. Estableceré con un argumento /interval:1(en segundos) el intervalo de sondeo de lsass para nuevos tickets, y con un argumento/filteruser:DC-16$Estableceré un filtro para mostrar solo tickets DC-16 $.







Rubeus se está ejecutando, en paralelo en otra sesión ejecuto SpoolSample.exe con los argumentos dc-16.meow.local(máquina atacada) y barscomp.meow.local(nuestro host "escucha").







Veamos qué Rubeus "monitoreó".







Boleto TGT atrapado para la cuenta del controlador de dominio. Ahora puede, utilizando el ataque Pass-the-ticket ya conocido, importar un ticket y usar mimikatz para llevar a cabo un ataque DCSync para obtener el hash NTLM de la cuenta krbtgt (y como ya sabe en la primera parte del artículo, el hash de esta cuenta se puede usar para crear Golden Ticket y captura de dominio AD completa).





Tenga en cuenta que Rubeus entiende los tickets tanto en forma de archivo .kirbi como en una cadena codificada en base64.

Delegación limitada



Si un atacante logra comprometer una cuenta de usuario o una computadora para la cual está habilitada la delegación limitada, puede suplantar a cualquier usuario en el dominio y autenticarse con el servicio al que se permite la delegación.



Cree un nuevo respaldo de usuario de dominio con contraseña B @ ckup1234, asígnele un SPN para el servicio cifs en el controlador de dominio.







Ahora puede configurar esta cuenta para poder delegar servicios ldap y cifs al controlador de dominio DC-16.meow.local.







También puede usar Powerview o el módulo ActiveDirectory para determinar qué cuentas tienen permitida la delegación restringida.







Conociendo la contraseña o el hash NTLM de la cuenta meow.local \ Backup, con Rubeus puede solicitar un ticket TGT para ello.







Ahora, utilizando la "acción" s4u en Rubeus, puede solicitar TGS para un usuario al que se le permita la autenticación en el servicio cifs \ dc-16.meow.local (por ejemplo, el administrador del dominio ADadmin).







Aquí ingreso el ticket que recibí anteriormente para la cuenta de Backup; / impersonateuser: usuario cuyos derechos quiero obtener; / dominio: el dominio en el que sucede todo; / msdsspn / asltservice: servicio que requiere TGS; / ptt: importa inmediatamente el ticket recibido en la sesión actual.



Esto es lo que sucede en Rubeus:







aquí puede ver que con delegación limitada, se incluyen 2 extensiones Kerberos: estas son S4U2self y S4U2proxy.



S4U2self permite a los participantes del servicio solicitar un TGS especial con el indicador FORWARDABLE para sí mismos en nombre de un usuario específico. Esto es necesario para que la extensión S4U2proxy pueda utilizar más tarde este ticket.



S4U2proxy permite a la persona que llama utilizar este ticket especial para solicitar el TGS del usuario para el servicio al que se permite la delegación (en este caso cifs \ dc-16.meow.local). Puedes leer más sobre esto aquí y aquí .



En este momento, Rubeus ya recibió el boleto final y lo importó a la sesión actual.







Veamos si podemos ver la unidad C en el controlador de dominio con el ticket recibido.







Sí, todo salió bien.



Esto concluye mi revisión de esta herramienta, en general me gustó, agradable y fácil de usar, con buena funcionalidad. Espero que después de leer estos artículos, lo pongan en servicio.



Gracias por su atención, todo bien, ¡no te enfermes!



All Articles