AWS - Directory Services / WorkDocs Enum
Reading time: 6 minutes
tip
Impara e pratica il hacking AWS:HackTricks Training AWS Red Team Expert (ARTE)
Impara e pratica il hacking GCP: HackTricks Training GCP Red Team Expert (GRTE)
Impara e pratica il hacking Azure:
HackTricks Training Azure Red Team Expert (AzRTE)
Supporta HackTricks
- Controlla i piani di abbonamento!
- Unisciti al 💬 gruppo Discord o al gruppo telegram o seguici su Twitter 🐦 @hacktricks_live.
- Condividi trucchi di hacking inviando PR ai HackTricks e HackTricks Cloud repos su github.
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
Enumeration
# 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>
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:
<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)
Privilege Escalation
AWS - Directory Services Privesc
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
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
# 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>
Privesc
tip
Impara e pratica il hacking AWS:HackTricks Training AWS Red Team Expert (ARTE)
Impara e pratica il hacking GCP: HackTricks Training GCP Red Team Expert (GRTE)
Impara e pratica il hacking Azure:
HackTricks Training Azure Red Team Expert (AzRTE)
Supporta HackTricks
- Controlla i piani di abbonamento!
- Unisciti al 💬 gruppo Discord o al gruppo telegram o seguici su Twitter 🐦 @hacktricks_live.
- Condividi trucchi di hacking inviando PR ai HackTricks e HackTricks Cloud repos su github.