Timelapse

Timelapse implica acceder a un recurso compartido SMB público, desbloquear un archivo zip con John, y extraer un archivo PFX cifrado. Luego, se obtiene un certificado SSL y una clave privada para iniciar sesión en el sistema a través de WinRM. Al descubrir las credenciales del usuario svc_deploy, que pertenece al grupo LAPS_Readers, se accede a la contraseña del Administrador y se establece una sesión WinRM.

20240306084715.png

Enumeración

Iniciaremos enumerando los puertos abiertos con la herramienta de nmap para luego escanear los servicios que se ejecutan en cada uno de ellos.

  • -p-: esta opción indica a Nmap que escanee todos los puertos, desde el puerto 1 hasta el puerto 65535. El guion (-) especifica el rango de puertos completo.

  • --open: esta opción le indica a Nmap que muestre solo los puertos que están abiertos. Esto filtra la salida para mostrar solo los puertos accesibles.

  • --min-rate 5000: esta opción establece la velocidad mínima de envío de paquetes a 5000 paquetes por segundo. Esto puede acelerar el escaneo de puertos al enviar paquetes más rápidamente.

  • -vvv: esta opción activa el modo de verbosidad máximo, lo que significa que Nmap mostrará una cantidad significativa de información sobre el progreso del escaneo y los detalles de los puertos y hosts descubiertos.

  • -Pn: esta opción le indica a Nmap que no realice el descubrimiento de hosts, lo que significa que no enviará pings para determinar si los hosts están activos. Esto es útil si el objetivo no responde a los pings, pero aún queremos escanear sus puertos.

  • -n: esta opción le indica a Nmap que no realice la resolución de DNS inversa para las direcciones IP encontradas. Esto ayuda a acelerar el escaneo evitando la búsqueda de nombres de host.

  • 10.10.11.152: la dirección IP del objetivo que se está escaneando.

  • -oG allportsScan: esta opción le indica a Nmap que genere la salida en formato "grepable" y guarde los resultados en un archivo llamado "allportsScan". Este formato es adecuado para el procesamiento posterior de los resultados del escaneo.

Una vez teniendo la lista de los puertos abiertos procederemos a enumerar los servicios y las versiones que se ejecutan en cada uno de los puertos.

  • -p53,88,135,139,389,445,464,593,636,3268,3269,5986,9389,49667,49673,49674,49725,55717: esta opción especifica los puertos que se escanearán. En este caso, se están escaneando los puertos 53, 88, 135, 139, 389, 445, 464, 593, 636, 3268, 3269, 5986, 9389, 49667, 49673, 49674, 49725 y 55717.

  • -sC: esta opción activa el escaneo de scripts de Nmap, lo que implica ejecutar scripts prediseñados para detectar vulnerabilidades y recopilar información adicional sobre los servicios que se están ejecutando en los puertos escaneados.

  • -sV: esta opción activa la detección de versión, lo que significa que Nmap intentará determinar las versiones de los servicios que se están ejecutando en los puertos escaneados.

  • -n: esta opción le indica a Nmap que no realice la resolución de DNS inversa para las direcciones IP encontradas. Esto ayuda a acelerar el escaneo evitando la búsqueda de nombres de host.

  • -Pn: esta opción le indica a Nmap que no realice el descubrimiento de hosts, lo que significa que no enviará pings para determinar si los hosts están activos. Esto es útil si el objetivo no responde a los pings, pero aún queremos escanear sus puertos.

  • -vvv: esta opción activa el modo de verbosidad máximo, lo que significa que Nmap mostrará una cantidad significativa de información sobre el progreso del escaneo y los detalles de los puertos y servicios descubiertos.

  • 10.10.11.152: la dirección IP del objetivo que se está escaneando.

  • -oN servicesScan: esta opción le indica a Nmap que genere la salida en formato normal y guarde los resultados en un archivo llamado "servicesScan". Este formato es adecuado para la revisión manual de los resultados del escaneo.

Enumeración de smb

Encontramos en el servicio de smb se encuentra activo, por lo cual enumeraremos con smbmap

Haciendo uso de smbmap podremos listar los directorios que podemos leer el contenido

20240306084944.png

Podemos visualizar que en el directorio Shares tenemos permisos de lectura lectura por lo que haciendo uso de smbclient para ingresar al recurso compartido para visualizar el contenido del directorio

20240306085334.png

Dentro del recurso compartido encontraremos con dos directorios Dev y HelpDesk, en estos directorios encontraremos los siguientes archivos archivos que podemos leer y quizás nos pueda servir para obtener una shell de la maquina victima.

20240306085935.png

Cracking del archivo zip

Al querer descomprimir el .zip podremos darnos cuenta que esta protegido por contraseña

20240306090200.png

Para poder obtener la contraseña debemos de usar john the ripper por lo que primero zip2john y así obtener el hash.

Luego de obtener el hash procederemos a crackear con john y el diccionario de rockyou.txt

Luego obtendremos la contraseña, en este .zip se encontraba el archivo legacyy_dev_auth.pfx

Certificado pfx

Investigando el archivo legacyy_dev_auth.pfx o la extensión .pfx en Hacktricks - pfxarrow-up-right podemos hacer uso de este para obtener unos certificados .pem. En este caso este archivo nos pide una contraseña

20240306095827.png

Para obtener la contraseña usaremos pfx2john

Ahora que tenemos el hash crackearemos el hash con john

Luego obtendremos la contraseña que en este caso es thuglegacy

Explotación

Revisando ciertos post que son los siguientes, podremos leer un poco mas sobre archivos .pfx:

En otros post podremos leer el como podemos usar este archivo .pfx para conectarnos a la maquina victima con evil-winrm :

En la siguiente imagen podremos ver como se debe de ejecutar evil-winrm y hacer uso de este certificado.

20240306101350.png

Para autenticarte usando un archivo .pfx con evil-winrm, necesitas convertir el archivo .pfx a dos archivos separados: una clave privada (generalmente en formato PEM) y un certificado (también en formato PEM). Luego puedes usar estos archivos para autenticarte con evil-winrm.

  1. Convertir el archivo .pfx a archivos PEM:

    Utiliza el comando openssl para extraer la clave privada y el certificado del archivo .pfx y guardarlos en archivos separados:

    bashCopy code

    openssl pkcs12 -in archivo.pfx -nocerts -out clave_privada.pem openssl pkcs12 -in archivo.pfx -clcerts -nokeys -out certificado.pem

    Durante este proceso, se te pedirá que ingreses la contraseña del archivo .pfx.

  2. Autenticarse con evil-winrm:

    Una vez que tengas los archivos PEM (clave_privada.pem y certificado.pem), puedes usarlos con evil-winrm para autenticarte. A continuación se muestra un ejemplo de cómo hacerlo:

    bashCopy code

    evil-winrm -i ip_del_servidor -u usuario -s certificado.pem -k clave_privada.pem o evil-winrm -i ip_del_servidor -c publicCert.pem -k priv-key.pem -S Asegúrate de reemplazar ip_del_servidor, usuario, certificado.pem y clave_privada.pem con los valores correctos.

Luego podremos obtener los dos archivos .pem que necesitamos para acceder a la maquina victima.

20240306095948.png

Escalada de privilegios

Usuario : legacyy

Haciendo uso de publicCert.pem y priv-key.pem que haciendo uso de evil-winrm podremos obtener una shell.

20240306100322.png

Enumerando el sistema podremos encontrar el historial de la powershell en donde encontraremos las credenciales del usuario svc_deploy

20240306124703.png

Para enumerar adecuadamente puedes revisar el siguiente contenido:

Usuario : svc_deploy

Una vez encontrada las credenciales podremos ingresar como este usuario con evil-winrm

20240306161636.png

Ahora procederemos a enumerar con bloodHound, por lo que usaremos primero SharpHound.

SharpHound

En este caso subiremos el binario de SharpHound.exe a la maquina victima

Luego ejecutaremos el SharpHound.exe

Luego de ejecutar SharpHound, podremos visualizar un archivo .zip el cual nos servirá.

20240306113105.png

Descargamos el .zip

BloodHound

Luego de obtener o descargar nuestro .zip lo descomprimimos y luego podremos visualizar ciertos archivos

20240306113644.png

Estos archivos serán las que subiremos al BloodHound y encontraremos con que el usuario svc_deploy pertenece al grupo LAPS_READERS y este grupo tiene permiso de ReadLAPSPassword sobre el dominio

20240306161840.png

ldapdomaindump

Antes de seguir enumerando con BloodHound podemos usar ldapdomaindump que haciendo uso de las credenciales de svc_deploy

Luego obtendremos ciertos archivos

20240306162021.png

Teniendo estos archivos y para poder visualizar de manera grafica, para esto iniciaremos un servidor web con python3

Ingresaremos en el navegador y observaremos una lista de usuarios, así como los grupos a los que pertenece.

20240306162127.png

laps-password

Para la explotacion de ReadLAPSPassword podemos revisar el siguiente post:

Para descargar la herramienta de bloodyAD podemos ingresar a CravateRouge - bloodyADarrow-up-right y obtendremos una versión de la herramienta en Python.

20240306162352.png

Esta herramienta nos permitirá obtener las credenciales, en este caso la credencial del usuario Administrator

Usuario : Administrator

Luego haciendo uso de evil-winrm podremos ingresar a la maquina victima con las credenciales que la herramienta bloodyAD filtro.

20240306162531.png

Last updated