AWS - Directory Services / WorkDocs Enum

Aprende hacking en AWS desde cero hasta experto con htARTE (Experto en Equipo Rojo de HackTricks en AWS)!

Otras formas de apoyar a HackTricks:

Servicios de Directorio

El Servicio de Directorio de AWS para Microsoft Active Directory es un servicio gestionado que facilita configurar, operar y escalar un directorio en la nube de AWS. Está construido sobre Microsoft Active Directory real e integra estrechamente con otros servicios de AWS, lo que facilita la gestión de sus cargas de trabajo conscientes del directorio y recursos de AWS. Con AWS Managed Microsoft AD, puede utilizar sus usuarios, grupos y políticas de Active Directory existentes para gestionar el acceso a sus recursos de AWS. Esto puede ayudar a simplificar la gestión de identidades y reducir la necesidad de soluciones de identidad adicionales. AWS Managed Microsoft AD también proporciona copias de seguridad automáticas y capacidades de recuperación ante desastres, lo que ayuda a garantizar la disponibilidad y durabilidad de su directorio. En general, el Servicio de Directorio de AWS para Microsoft Active Directory puede ayudarle a ahorrar tiempo y recursos al proporcionar un servicio de Active Directory gestionado, altamente disponible y escalable en la nube de AWS.

Opciones

Los Servicios de Directorio permiten crear 5 tipos de directorios:

  • AWS Managed Microsoft AD: Que ejecutará un nuevo Microsoft AD en AWS. Podrá establecer la contraseña de administrador y acceder a los DC en una VPC.

  • Simple AD: Que será un servidor compatible con Active Directory de Linux-Samba. Podrá establecer la contraseña de administrador y acceder a los DC en una VPC.

  • AD Connector: Un proxy para redirigir solicitudes de directorio a su Microsoft Active Directory existente sin almacenar ninguna información en la nube. Estará escuchando en una VPC y necesitará proporcionar credenciales para acceder al AD existente.

  • Amazon Cognito User Pools: Esto es lo mismo que Cognito User Pools.

  • Cloud Directory: Este es el más simple. Un directorio serverless donde indica el esquema a utilizar y se le factura según el uso.

Los servicios de directorio de AWS permiten sincronizar con su Microsoft AD local existente, ejecutar el suyo propio en AWS o sincronizar con otros tipos de directorios.

Laboratorio

Aquí puedes encontrar un buen tutorial para crear tu propio Microsoft AD en AWS: https://docs.aws.amazon.com/directoryservice/latest/admin-guide/ms_ad_tutorial_test_lab_base.html

Enumeración

# Get directories and DCs
aws ds describe-directories
aws ds describe-domain-controllers --directory-id <id>
# Get directory settings
aws ds describe-trusts
aws ds describe-ldaps-settings --directory-id <id>
aws ds describe-shared-directories --owner-directory-id <id>
aws ds get-directory-limits
aws ds list-certificates --directory-id <id>
aws ds describe-certificate --directory-id <id> --certificate-id <id>

Inicio de sesión

Tenga en cuenta que si la descripción del directorio contenía un dominio en el campo AccessUrl es porque un usuario probablemente pueda iniciar sesión con sus credenciales de AD en algunos servicios de AWS:

  • <name>.awsapps.com/connect (Amazon Connect)

  • <name>.awsapps.com/workdocs (Amazon WorkDocs)

  • <name>.awsapps.com/workmail (Amazon WorkMail)

  • <name>.awsapps.com/console (Amazon Management Console)

  • <name>.awsapps.com/start (IAM Identity Center)

Escalada de privilegios

pageAWS - Directory Services Privesc

Persistencia

Usando un usuario de AD

Un usuario de AD puede recibir acceso a la consola de administración de AWS a través de un Rol para asumir. El nombre de usuario predeterminado es Admin y es posible cambiar su contraseña desde la consola de AWS.

Por lo tanto, es posible cambiar la contraseña de Admin, crear un nuevo usuario o cambiar la contraseña de un usuario y otorgarle un Rol para mantener el acceso. También es posible agregar un usuario a un grupo dentro de AD y darle acceso a ese grupo de AD a un Rol (para hacer esta persistencia más sigilosa).

Compartir AD (de la víctima al atacante)

Es posible compartir un entorno de AD de una víctima a un atacante. De esta manera, el atacante podrá seguir accediendo al entorno de AD. Sin embargo, esto implica compartir el AD administrado y también crear una conexión de VPC peering.

Puede encontrar una guía aquí: https://docs.aws.amazon.com/directoryservice/latest/admin-guide/step1_setup_networking.html

Compartir AD (del atacante a la víctima)

No parece posible otorgar acceso de AWS a usuarios de un entorno de AD diferente a una cuenta de AWS.

WorkDocs

Amazon Web Services (AWS) WorkDocs es un servicio de almacenamiento y compartición de archivos basado en la nube. Forma parte de la suite de servicios de computación en la nube de AWS y está diseñado para proporcionar una solución segura y escalable para que las organizaciones almacenen, compartan y colaboren en archivos y documentos.

AWS WorkDocs proporciona una interfaz basada en web para que los usuarios suban, accedan y gestionen sus archivos y documentos. También ofrece funciones como control de versiones, colaboración en tiempo real e integración con otros servicios de AWS y herramientas de terceros.

Enumeración

# Get AD users (Admin not included)
aws workdocs describe-users --organization-id <directory-id>
# Get AD groups (containing "a")
aws workdocs describe-groups --organization-id d-9067a0285c --search-query a

# Create user (created inside the AD)
aws workdocs create-user --username testingasd --given-name testingasd --surname testingasd --password <password> --email-address name@directory.domain --organization-id <directory-id>

# Get what each user has created
aws workdocs describe-activities --user-id "S-1-5-21-377..."

# Get what was created in the directory
aws workdocs describe-activities --organization-id <directory-id>

# Get folder content
aws workdocs describe-folder-contents --folder-id <fold-id>

# Get file (a url to access with the content will be retreived)
aws workdocs get-document --document-id <doc-id>

# Get resource permissions if any
aws workdocs describe-resource-permissions --resource-id <value>

# Add permission so anyway can see the file
aws workdocs add-resource-permissions --resource-id <id> --principals Id=anonymous,Type=ANONYMOUS,Role=VIEWER
## This will give an id, the file will be acesible in: https://<name>.awsapps.com/workdocs/index.html#/share/document/<id>

Escalada de privilegios

pageAWS - WorkDocs Privesc
Aprende hacking en AWS desde cero hasta experto con htARTE (HackTricks AWS Red Team Expert)!

Otras formas de apoyar a HackTricks:

Última actualización