# AWS - Directory Services / WorkDocs Enum {{#include ../../../banners/hacktricks-training.md}} ## Directory Services AWS Directory Service per Microsoft Active Directory è un servizio gestito che semplifica la **configurazione, l'operatività e la scalabilità di un directory** nel Cloud AWS. È costruito su un reale **Microsoft Active Directory** e si integra strettamente con altri servizi AWS, rendendo facile gestire i tuoi carichi di lavoro e risorse AWS consapevoli della directory. Con AWS Managed Microsoft AD, puoi **utilizzare i tuoi esistenti** utenti, gruppi e politiche di Active Directory per gestire l'accesso alle tue risorse AWS. Questo può aiutare a semplificare la gestione dell'identità e ridurre la necessità di ulteriori soluzioni di identità. AWS Managed Microsoft AD fornisce anche backup automatici e capacità di disaster recovery, contribuendo a garantire la disponibilità e la durabilità della tua directory. In generale, AWS Directory Service per Microsoft Active Directory può aiutarti a risparmiare tempo e risorse fornendo un servizio Active Directory gestito, altamente disponibile e scalabile nel Cloud AWS. ### Options Directory Services consente di creare 5 tipi di directory: - **AWS Managed Microsoft AD**: Che eseguirà un nuovo **Microsoft AD in AWS**. Sarai in grado di impostare la password di amministratore e accedere ai DC in una VPC. - **Simple AD**: Che sarà un server compatibile con Active Directory **Linux-Samba**. Sarai in grado di impostare la password di amministratore e accedere ai DC in una VPC. - **AD Connector**: Un proxy per **reindirizzare le richieste di directory al tuo esistente Microsoft Active Directory** senza memorizzare alcuna informazione nel cloud. Sarà in ascolto in una **VPC** e dovrai fornire **credenziali per accedere all'AD esistente**. - **Amazon Cognito User Pools**: Questo è lo stesso di Cognito User Pools. - **Cloud Directory**: Questo è il **più semplice**. Una directory **serverless** in cui indichi lo **schema** da utilizzare e sei **fatturato in base all'uso**. I servizi Directory AWS consentono di **synchronizzare** con il tuo esistente **on-premises** Microsoft AD, **eseguire il tuo** in AWS o sincronizzare con **altri tipi di directory**. ### Lab Qui puoi trovare un bel tutorial per creare il tuo Microsoft AD in AWS: [https://docs.aws.amazon.com/directoryservice/latest/admin-guide/ms_ad_tutorial_test_lab_base.html](https://docs.aws.amazon.com/directoryservice/latest/admin-guide/ms_ad_tutorial_test_lab_base.html) ### Enumeration ```bash # Get directories and DCs aws ds describe-directories aws ds describe-domain-controllers --directory-id # Get directory settings aws ds describe-trusts aws ds describe-ldaps-settings --directory-id aws ds describe-shared-directories --owner-directory-id aws ds get-directory-limits aws ds list-certificates --directory-id aws ds describe-certificate --directory-id --certificate-id ``` ### Login Nota che se la **descrizione** della directory conteneva un **dominio** nel campo **`AccessUrl`** è perché un **utente** può probabilmente **accedere** con le proprie **credenziali AD** in alcuni **servizi AWS:** - `.awsapps.com/connect` (Amazon Connect) - `.awsapps.com/workdocs` (Amazon WorkDocs) - `.awsapps.com/workmail` (Amazon WorkMail) - `.awsapps.com/console` (Amazon Management Console) - `.awsapps.com/start` (IAM Identity Center) ### Privilege Escalation {{#ref}} ../aws-privilege-escalation/aws-directory-services-privesc/README.md {{#endref}} ## Persistence ### Using an AD user Un **utente AD** può ricevere **accesso alla console di gestione AWS** tramite un Ruolo da assumere. Il **nome utente predefinito è Admin** e è possibile **cambiare la sua password** dalla console AWS. Pertanto, è possibile **cambiare la password di Admin**, **creare un nuovo utente** o **cambiare la password** di un utente e concedere a quell'utente un Ruolo per mantenere l'accesso.\ È anche possibile **aggiungere un utente a un gruppo all'interno di AD** e **dare a quel gruppo AD accesso a un Ruolo** (per rendere questa persistenza più furtiva). ### Sharing AD (from victim to attacker) È possibile condividere un ambiente AD da una vittima a un attaccante. In questo modo l'attaccante sarà in grado di continuare ad accedere all'ambiente AD.\ Tuttavia, ciò implica condividere l'AD gestito e anche creare una connessione di peering VPC. Puoi trovare una guida qui: [https://docs.aws.amazon.com/directoryservice/latest/admin-guide/step1_setup_networking.html](https://docs.aws.amazon.com/directoryservice/latest/admin-guide/step1_setup_networking.html) ### ~~Sharing AD (from attacker to victim)~~ Non sembra possibile concedere accesso AWS a utenti provenienti da un ambiente AD diverso a un account AWS. ## WorkDocs Amazon Web Services (AWS) WorkDocs è un **servizio di archiviazione e condivisione file** basato su cloud. Fa parte della suite di servizi di cloud computing di AWS ed è progettato per fornire una soluzione sicura e scalabile per le organizzazioni per archiviare, condividere e collaborare su file e documenti. AWS WorkDocs fornisce un'interfaccia web per gli utenti per caricare, accedere e gestire i propri file e documenti. Offre anche funzionalità come il controllo delle versioni, la collaborazione in tempo reale e l'integrazione con altri servizi AWS e strumenti di terze parti. ### Enumeration ```bash # Get AD users (Admin not included) aws workdocs describe-users --organization-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 --email-address name@directory.domain --organization-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 # Get folder content aws workdocs describe-folder-contents --folder-id # Get file (a url to access with the content will be retreived) aws workdocs get-document --document-id # Get resource permissions if any aws workdocs describe-resource-permissions --resource-id # Add permission so anyway can see the file aws workdocs add-resource-permissions --resource-id --principals Id=anonymous,Type=ANONYMOUS,Role=VIEWER ## This will give an id, the file will be acesible in: https://.awsapps.com/workdocs/index.html#/share/document/ ``` ### Privesc {{#ref}} ../aws-privilege-escalation/aws-workdocs-privesc/README.md {{#endref}} {{#include ../../../banners/hacktricks-training.md}}