Hack The Box - Tutorial del bosque. AS-REP Asado, DCSync y ataques Pass-The-Hash

imagen

Sigo publicando soluciones enviadas para su posterior procesamiento desde el sitio de HackTheBox . Espero que esto ayude al menos a alguien a desarrollarse en el campo de la seguridad de la informaci贸n. En este art铆culo, trataremos el asado AS-REP en el esquema de autenticaci贸n Kerberos, usaremos BloodHound para el reconocimiento de dominio, realizaremos un ataque DCSync PrivExchange y un ataque Pass-The-Hash.

La conexi贸n al laboratorio es a trav茅s de VPN. Se recomienda no conectarse desde una computadora de trabajo o desde un host donde los datos importantes para usted est茅n disponibles, ya que ingresa a una red privada con personas que saben algo en el campo de la seguridad de la informaci贸n :)

Informaci贸n organizacional
, - , :

  • PWN;
  • (Crypto);
  • c (Network);
  • (Reverse Engineering);
  • (Stegano);
  • WEB-.

, , , .

, , Telegram . , , .

. , - , .

Recon


Esta m谩quina tiene una direcci贸n IP 10.10.10.161, que agrego a / etc / hosts.
10.10.10.161 forest.htb
Primero, escaneamos puertos abiertos. Como lleva mucho tiempo escanear todos los puertos con nmap, primero har茅 esto con masscan. Escaneamos todos los puertos TCP y UDP desde la interfaz tun0 a una velocidad de 1000 paquetes por segundo.

masscan -e tun0 -p1-65535,U:1-65535 10.10.10.161 --rate=1000

imagen

Hab铆a muchos puertos abiertos en el host, y decid铆 asegurarme de que los resultados proporcionados por masscan fueran correctos. Para hacer esto, simplemente escanea el estado de los puertos en nmap.

nmap 10.10.10.161 -p135,636,3269,49676,49665,53,593,49671,9389,49667,5985,49666,389,88,49684,464,3268,49677,47001,139,445,49714

imagen

Pero nmap confirm贸 todo. A continuaci贸n, debe recopilar m谩s informaci贸n sobre los puertos conocidos por nmap.

nmap -A 10.10.10.161 -p53,88,135,139,389,445,464,593,636,3268,3269,5985,9389,47001

imagen

A continuaci贸n, debe obtener tanta informaci贸n como sea posible del sistema. Para esto, us茅 enum4linux. Pero nos dio poca informaci贸n. Grupos, requisitos de contrase帽a, falta de SMBv1 y recursos compartidos, etc. Sin embargo, tenemos una lista de usuarios.

enum4linux -a 10.10.10.161

imagen

Dado que Kerberos se est谩 ejecutando en el host, debe verificar si existe una cuenta de usuario que tenga el indicador DONT_REQ_PREAUTH establecido en el UAC. Puede obtener m谩s informaci贸n sobre las banderas UAC y lo que significan aqu铆 . El indicador DONT_REQ_PREAUTH significa que no se requiere autenticaci贸n Kerberos para esta cuenta.

Primero, averig眉e cu谩les de las cuentas de usuario est谩n activas. Esto ayudar谩 a incluir el script samrdump con impacket.

impacket-samrdump forest.htb

imagen

imagen

El script muestra primero todos los usuarios y luego informaci贸n detallada sobre cada uno de ellos. De esta manera, puede ver que la cuenta de Administrador est谩 activa y que Invitado no. Ahora podemos hacer una lista de usuarios activos.

imagen

Cuando tenemos una lista de usuarios activos, podemos verificar la disponibilidad de la bandera que necesitamos. Podemos hacer esto usando el script GetNPUsers, que tambi茅n es parte del paquete impacket. Especificamos el dominio htb.local, el controlador de dominio 10.10.10.161, el m茅todo de autenticaci贸n Kerberos (-k), la opci贸n sin contrase帽a y la lista de usuarios.

GetNPUsers.py htb.local/ -dc-ip 10.10.10.161 -k -no-pass -usersfile ADUsers.txt 

imagen

Se nos dice que este indicador no est谩 configurado para todos los usuarios excepto svc-alfresco. En mi versi贸n de impacket (21-dev), el hash se solicita autom谩ticamente.

Punto de entrada: tostado AS-REP


Algunas palabras sobre lo que nos devolvieron el hash. A continuaci贸n se muestra el esquema de autenticaci贸n Kerberos.

imagen

Como puede ver, en la primera etapa: el cliente env铆a un mensaje con el ID de usuario al servidor de autenticaci贸n AS con la solicitud de servicio en nombre del usuario. El AS genera una clave secreta al cifrar la contrase帽a del usuario que se encuentra en la base de datos.

De esta manera podemos desplazarnos por el hash y encontrar la contrase帽a. Este tipo de ataque se llama AS-REP Roasting. Guarde el hash en un archivo y encuentre el prototipo.

john --wordlist=./rockyou.txt hashes2.txt

imagen

Y encontramos la contrase帽a de usuario.

USUARIO


Si vuelve a abrir puertos, puede encontrar un servicio WinRM en funcionamiento (o Windows Remote Management) dise帽ado para la administraci贸n remota. Tenemos un nombre de usuario y contrase帽a, por lo que podemos conectarnos con seguridad. Para esto utilizo evil-winrm .

imagen

Entonces tomamos al usuario.

RA脥Z


Inteligencia con BloodHound


Ahora necesitamos aumentar nuestros privilegios. Para mapear las rutas LPE en un dominio, puede usar el programa BloodHound .

Evil-winrm le permite cargar archivos desde y hacia el host. Sub铆 al host SharpHound, un m贸dulo para recopilar informaci贸n.

imagen

Tambi茅n evil-winrm te permite ejecutar scripts de PowerShell. Indicaremos el usuario, la contrase帽a y tambi茅n que queremos saber todo lo que sea posible.

imagen

Despu茅s de ejecutar el script, aparecer谩 un archivo zip en el directorio actual. Lo descargamos del host.

imagen

A continuaci贸n, ejecute el DBMS de gr谩fico neo4j con el que funciona BloodHound.

neo4j console

imagen

Ahora ejecuta BloodHound. Una pantalla en blanco nos encontrar谩.

imagen

Ahora solo arrastre y suelte el archivo descargado en 茅l. Y vaya a la pesta帽a Consultas.

imagen

Y decimos que queremos encontrar las rutas m谩s cortas para los administradores de dominio. BloodHound crear谩 un gr谩fico: el camino hacia nuestro progreso constante. Al hacer clic en cada nodo de la red, recibiremos informaci贸n al respecto.

imagen

Por lo tanto, se nos dice que debemos ser miembros del grupo de permisos de Exchange de Windows, porque somos tratados con las cuentas de servicio del grupo privilegiado, y solo as铆 podemos aumentar los privilegios.

net user svc-alfresco

imagen

El usuario no est谩 actualmente en este grupo. A帽谩dalo y luego verifiquemos los grupos de usuarios.

Add-ADGroupMember "Exchange Windows Permissions" svc-alfresco

imagen

Usuario agregado con 茅xito al grupo. Ahora veamos qu茅 nos da esto. El grupo de permisos de Windows de Exchange tiene los derechos WriteDACL (derechos para otorgar derechos) al objeto Dominio en Active Directory, lo que permite a cualquier miembro del grupo cambiar los privilegios de dominio, incluidas las operaciones DCSync.

DCSync


Un poco sobre el ataque DCSync. La replicaci贸n de Active Directory es el proceso mediante el cual los cambios realizados en uno de los controladores de dominio se sincronizan con el resto de los controladores en el dominio. Al obtener los permisos necesarios, podemos iniciar una solicitud de replicaci贸n, que nos permitir谩 obtener datos almacenados en Active Directory, incluidos los hash de contrase帽as.

Es decir, podemos sincronizar los valores hash de contrase帽a de los usuarios de Active Directory e iniciar sesi贸n en cualquier servicio utilizando los protocolos NTLM (desarrollado por el protocolo de autenticaci贸n de red de Microsoft) o Kerberos. El ataque implica el uso de dos herramientas, privexchange.py y ntlmrelayx.py del paquete impacket.

Primero, ejecute ntlmrelayx en modo de retransmisi贸n LDAP al controlador de dominio con la cuenta svc-alfresco.

ntlmrelayx.py -t ldap://htb.local --escalate-user svc-alfresco

imagen

Todos los servicios se est谩n ejecutando y est谩n esperando una conexi贸n. Ahora usa privex.

python privexchange.py 10.10.10.161 -ah _ip -d htb.local -u svc-alfresco -p s3rvice

imagen

Y luego vol茅 un mont贸n de errores, hurgando un par de minutos, se decidi贸 no corregirlos. Puede seguir el enlace de arriba en el navegador y pasar la autenticaci贸n con credenciales de svc-alfresco. En la ventana con ntlmrelayx veremos la informaci贸n de conexi贸n.

imagen

Ahora ejecute el ataque DCSync usando secretsdump.

secretsdump.py htb.local/svc-alfresco:s3rvice@10.10.10.161 -just-dc

imagen

Multa. Pudimos replicar todas las cuentas.

Ataque de pase de hash


Este ataque permite que un atacante inicie sesi贸n en un servidor remoto autenticado con el protocolo NTLM o LM.

En los sistemas que utilizan el protocolo de autenticaci贸n NTLM, las contrase帽as nunca se transmiten en texto claro a trav茅s de un canal de comunicaci贸n. En cambio, se transfieren al sistema apropiado (como un controlador de dominio) en forma de hashes en la etapa de respuesta en el esquema de autenticaci贸n de preguntas y respuestas.

Las aplicaciones de Windows solicitan al usuario la contrase帽a en texto claro y luego llaman a la API (por ejemplo, LsaLogonUser), que traduce la contrase帽a en un hash LM y un hash NTLM y las pasa durante el proceso de autenticaci贸n. El an谩lisis de los protocolos mostr贸 que para una autenticaci贸n exitosa no es necesario conocer la contrase帽a en forma clara, en su lugar, solo se puede usar su hash.

El ataque se basa en una debilidad en la implementaci贸n del protocolo de autenticaci贸n de red. Consiste en el hecho de que los hashes de contrase帽a se transmiten sin el uso de sal y, por lo tanto, permanecen sin cambios de sesi贸n a sesi贸n (hasta que se cambie la contrase帽a del usuario). En otras palabras, para un atacante, los hashes de contrase帽as son equivalentes a las contrase帽as mismas.

Realiza un ataque con psexec.

psexec.py -hashes :32693b11e6aa90eb43d32c72a07ceea6 Administrator@10.10.10.161

imagen

Estamos en un sistema con plenos derechos.

Puedes unirte a nosotros en Telegram . Formemos una comunidad en la que haya personas con conocimientos en muchas 谩reas de TI, para que siempre podamos ayudarnos mutuamente en cualquier problema de seguridad de la informaci贸n y TI.

All Articles