Timelapse
Last updated
Last updated
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.
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.
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
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
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.
Al querer descomprimir el .zip
podremos darnos cuenta que esta protegido por contraseña
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
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
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.
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
.
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
.
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.
Haciendo uso de publicCert.pem
y priv-key.pem
que haciendo uso de evil-winrm
podremos obtener una shell.
Enumerando el sistema podremos encontrar el historial de la powershell
en donde encontraremos las credenciales del usuario svc_deploy
Para enumerar adecuadamente puedes revisar el siguiente contenido:
Una vez encontrada las credenciales podremos ingresar como este usuario con evil-winrm
Ahora procederemos a enumerar con bloodHound
, por lo que usaremos primero 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á.
Descargamos el .zip
Luego de obtener o descargar nuestro .zip
lo descomprimimos y luego podremos visualizar ciertos archivos
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
Antes de seguir enumerando con BloodHound
podemos usar ldapdomaindump
que haciendo uso de las credenciales de svc_deploy
Luego obtendremos ciertos archivos
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.
Para la explotacion de ReadLAPSPassword
podemos revisar el siguiente post:
Esta herramienta nos permitirá obtener las credenciales, en este caso la credencial del usuario Administrator
Luego haciendo uso de evil-winrm
podremos ingresar a la maquina victima con las credenciales que la herramienta bloodyAD
filtro.
Investigando el archivo legacyy_dev_auth.pfx
o la extensión .pfx
en podemos hacer uso de este para obtener unos certificados .pem
. En este caso este archivo nos pide una contraseña
Para lograr explotar esto, podemos hacer uso de bloodyAD
que podemos descargar desde GitHub.
Para descargar la herramienta de bloodyAD
podemos ingresar a y obtendremos una versión de la herramienta en Python.