Az - Arc vulnerable GPO Deploy Script
Last updated
Last updated
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Το Azure Arc επιτρέπει την ενσωμάτωση νέων εσωτερικών διακομιστών (διακομιστές που έχουν ενταχθεί σε τομέα) στο Azure Arc χρησιμοποιώντας τη μέθοδο Group Policy Object. Για να διευκολυνθεί αυτό, η Microsoft παρέχει ένα εργαλείο ανάπτυξης που είναι απαραίτητο για την έναρξη της διαδικασίας ενσωμάτωσης. Μέσα στο αρχείο ArcEnableServerGroupPolicy.zip, μπορούν να βρεθούν τα εξής σενάρια: DeployGPO.ps1, EnableAzureArc.ps1 και AzureArcDeployment.psm1.
Όταν εκτελείται, το σενάριο DeployGPO.ps1 εκτελεί τις εξής ενέργειες:
Δημιουργεί το GPO Onboarding Διακομιστών Azure Arc εντός του τοπικού τομέα.
Αντιγράφει το σενάριο ενσωμάτωσης EnableAzureArc.ps1 στο καθορισμένο κοινόχρηστο δίκτυο που έχει δημιουργηθεί για τη διαδικασία ενσωμάτωσης, το οποίο περιέχει επίσης το πακέτο εγκατάστασης των Windows.
Κατά την εκτέλεση αυτού του σεναρίου, οι διαχειριστές συστημάτων πρέπει να παρέχουν δύο κύριες παραμέτρους: ServicePrincipalId και ServicePrincipalClientSecret. Επιπλέον, απαιτούνται άλλες παράμετροι όπως ο τομέας, το FQDN του διακομιστή που φιλοξενεί το κοινόχρηστο, και το όνομα του κοινόχρηστου. Περαιτέρω λεπτομέρειες όπως το tenant ID, η ομάδα πόρων και άλλες απαραίτητες πληροφορίες πρέπει επίσης να παρέχονται στο σενάριο.
Ένα κρυπτογραφημένο μυστικό δημιουργείται στον κατάλογο AzureArcDeploy στο καθορισμένο κοινόχρηστο χρησιμοποιώντας κρυπτογράφηση DPAPI-NG. Το κρυπτογραφημένο μυστικό αποθηκεύεται σε ένα αρχείο με το όνομα encryptedServicePrincipalSecret. Απόδειξη αυτού μπορεί να βρεθεί στο σενάριο DeployGPO.ps1, όπου η κρυπτογράφηση εκτελείται καλώντας το ProtectBase64 με $descriptor και $ServicePrincipalSecret ως είσοδοι. Ο περιγραφέας αποτελείται από τα SIDs της ομάδας Domain Computer και Domain Controller, διασφαλίζοντας ότι το ServicePrincipalSecret μπορεί να αποκρυπτογραφηθεί μόνο από τις ομάδες ασφαλείας Domain Controllers και Domain Computers, όπως σημειώνεται στα σχόλια του σεναρίου.
Έχουμε τις εξής συνθήκες:
Έχουμε διεισδύσει με επιτυχία στο εσωτερικό δίκτυο.
Έχουμε τη δυνατότητα να δημιουργήσουμε ή να αναλάβουμε τον έλεγχο ενός λογαριασμού υπολογιστή εντός του Active Directory.
Έχουμε ανακαλύψει μια κοινή χρήση δικτύου που περιέχει τον φάκελο AzureArcDeploy.
Υπάρχουν αρκετές μέθοδοι για να αποκτήσουμε έναν λογαριασμό μηχανής σε ένα περιβάλλον AD. Μία από τις πιο κοινές είναι η εκμετάλλευση του ποσοστού λογαριασμών μηχανών. Μια άλλη μέθοδος περιλαμβάνει την παραβίαση ενός λογαριασμού μηχανής μέσω ευάλωτων ACL ή διάφορων άλλων κακών ρυθμίσεων.
Μόλις αποκτηθεί ένας λογαριασμός μηχανής, είναι δυνατή η αυθεντικοποίηση χρησιμοποιώντας αυτόν τον λογαριασμό. Μπορούμε είτε να χρησιμοποιήσουμε την εντολή runas.exe με την επιλογή netonly είτε να χρησιμοποιήσουμε pass-the-ticket με το Rubeus.exe.
Με την TGT για τον λογαριασμό του υπολογιστή μας αποθηκευμένο στη μνήμη, μπορούμε να χρησιμοποιήσουμε το παρακάτω σενάριο για να αποκρυπτογραφήσουμε το μυστικό του υπηρεσιακού κύριου.
Εναλλακτικά, μπορούμε να χρησιμοποιήσουμε SecretManagement.DpapiNG.
Σε αυτό το σημείο, μπορούμε να συγκεντρώσουμε τις υπόλοιπες πληροφορίες που χρειάζονται για να συνδεθούμε στο Azure από το αρχείο ArcInfo.json, το οποίο είναι αποθηκευμένο στο ίδιο κοινόχρηστο δίκτυο με το αρχείο encryptedServicePrincipalSecret. Αυτό το αρχείο περιέχει λεπτομέρειες όπως: TenantId, servicePrincipalClientId, ResourceGroup και άλλα. Με αυτές τις πληροφορίες, μπορούμε να χρησιμοποιήσουμε το Azure CLI για να αυθεντικοποιηθούμε ως ο παραβιασμένος service principal.
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)