AWS - GuardDuty Enum

Tip

Μάθετε & εξασκηθείτε στο AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Μάθετε & εξασκηθείτε στο GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Μάθετε & εξασκηθείτε στο Az Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Υποστηρίξτε το HackTricks

GuardDuty

Σύμφωνα με τα docs: Το GuardDuty συνδυάζει μηχανική μάθηση, ανίχνευση ανωμαλιών, παρακολούθηση δικτύου και ανακάλυψη κακόβουλων αρχείων, χρησιμοποιώντας τόσο το AWS όσο και κορυφαίες πηγές τρίτων για να βοηθήσει στην προστασία των φορτίων εργασίας και των δεδομένων στο AWS. Το GuardDuty είναι ικανό να αναλύει δεκάδες δισεκατομμύρια γεγονότα από πολλές πηγές δεδομένων AWS, όπως τα αρχεία καταγραφής γεγονότων AWS CloudTrail, τα αρχεία καταγραφής ροής Amazon Virtual Private Cloud (VPC), τα αρχεία καταγραφής ελέγχου και συστήματος Amazon Elastic Kubernetes Service (EKS) και τα αρχεία καταγραφής ερωτημάτων DNS.

Το Amazon GuardDuty εντοπίζει ασυνήθιστη δραστηριότητα στους λογαριασμούς σας, αναλύει τη σχετικότητα ασφαλείας της δραστηριότητας και παρέχει το πλαίσιο στο οποίο κλήθηκε. Αυτό επιτρέπει σε έναν ανταποκριτή να καθορίσει αν θα πρέπει να αφιερώσει χρόνο για περαιτέρω έρευνα.

Οι ειδοποιήσεις εμφανίζονται στην κονσόλα GuardDuty (90 ημέρες) και στα CloudWatch Events.

Warning

Όταν ένας χρήστης απενεργοποιήσει το GuardDuty, θα σταματήσει να παρακολουθεί το περιβάλλον AWS σας και δεν θα δημιουργήσει καθόλου νέες ευρήματα, και τα υπάρχοντα ευρήματα θα χαθούν.
Αν το σταματήσετε απλώς, τα υπάρχοντα ευρήματα θα παραμείνουν.

Ευρήματα Παράδειγμα

  • Reconnaissance: Δραστηριότητα που υποδηλώνει αναγνώριση από έναν επιτιθέμενο, όπως ασυνήθιστη δραστηριότητα API, ύποπτες προσπάθειες σύνδεσης σε βάση δεδομένων, εσωτερική σάρωση θυρών VPC, ασυνήθιστοι τύποι αποτυχημένων αιτημάτων σύνδεσης ή σάρωση θυρών από γνωστή κακή IP.
  • Instance compromise: Δραστηριότητα που υποδηλώνει παραβίαση μιας παρουσίας, όπως εξόρυξη κρυπτονομισμάτων, δραστηριότητα backdoor command and control (C&C), κακόβουλο λογισμικό που χρησιμοποιεί αλγόριθμους γεννήτριας τομέα (DGA), δραστηριότητα άρνησης υπηρεσίας εξόδου, ασυνήθιστα υψηλός όγκος δικτυακής κίνησης, ασυνήθιστοι δικτυακοί πρωτόκολλοι, επικοινωνία εξόδου παρουσίας με γνωστή κακόβουλη IP, προσωρινές διαπιστεύσεις Amazon EC2 που χρησιμοποιούνται από μια εξωτερική διεύθυνση IP και εξαγωγή δεδομένων μέσω DNS.
  • Account compromise: Κοινά μοτίβα που υποδηλώνουν παραβίαση λογαριασμού περιλαμβάνουν κλήσεις API από ασυνήθιστη γεωγραφική τοποθεσία ή ανώνυμο proxy, προσπάθειες απενεργοποίησης της καταγραφής AWS CloudTrail, αλλαγές που αποδυναμώνουν την πολιτική κωδικών πρόσβασης του λογαριασμού, ασυνήθιστες εκκινήσεις παρουσίας ή υποδομής, αναπτύξεις υποδομής σε ασυνήθιστη περιοχή, κλοπή διαπιστεύσεων, ύποπτη δραστηριότητα σύνδεσης σε βάση δεδομένων και κλήσεις API από γνωστές κακόβουλες διευθύνσεις IP.
  • Bucket compromise: Δραστηριότητα που υποδηλώνει παραβίαση ενός bucket, όπως ύποπτα μοτίβα πρόσβασης σε δεδομένα που υποδηλώνουν κακή χρήση διαπιστεύσεων, ασυνήθιστη δραστηριότητα API Amazon S3 από απομακρυσμένο host, μη εξουσιοδοτημένη πρόσβαση S3 από γνωστές κακόβουλες διευθύνσεις IP και κλήσεις API για ανάκτηση δεδομένων σε S3 buckets από χρήστη χωρίς προηγούμενο ιστορικό πρόσβασης στο bucket ή που κλήθηκε από ασυνήθιστη τοποθεσία. Το Amazon GuardDuty παρακολουθεί και αναλύει συνεχώς τα γεγονότα δεδομένων S3 του AWS CloudTrail (π.χ. GetObject, ListObjects, DeleteObject) για να ανιχνεύσει ύποπτη δραστηριότητα σε όλα τα Amazon S3 buckets σας.
Πληροφορίες Ευρήματος

Περίληψη ευρήματος:

  • Τύπος ευρήματος
  • Σοβαρότητα: 7-8.9 Υψηλή, 4-6.9 Μεσαία, 01-3.9 Χαμηλή
  • Περιοχή
  • ID Λογαριασμού
  • ID Πόρου
  • Χρόνος ανίχνευσης
  • Ποια λίστα απειλών χρησιμοποιήθηκε

Το σώμα έχει αυτές τις πληροφορίες:

  • Πόρος που επηρεάστηκε
  • Δράση
  • Ηθοποιός: Διεύθυνση IP, θύρα και τομέας
  • Πρόσθετες Πληροφορίες

Όλα τα Ευρήματα

Αποκτήστε πρόσβαση σε μια λίστα με όλα τα ευρήματα του GuardDuty στο: https://docs.aws.amazon.com/guardduty/latest/ug/guardduty_finding-types-active.html

Πολλαπλοί Λογαριασμοί

Με Πρόσκληση

Μπορείτε να καλέσετε άλλους λογαριασμούς σε έναν διαφορετικό λογαριασμό GuardDuty AWS ώστε κάθε λογαριασμός να παρακολουθείται από το ίδιο GuardDuty. Ο κύριος λογαριασμός πρέπει να προσκαλέσει τους λογαριασμούς μέλη και στη συνέχεια ο εκπρόσωπος του λογαριασμού μέλους πρέπει να αποδεχτεί την πρόσκληση.

Μέσω Οργάνωσης

Μπορείτε να ορίσετε οποιονδήποτε λογαριασμό εντός της οργάνωσης ως εκπρόσωπο διαχείρισης GuardDuty. Μόνο ο λογαριασμός διαχείρισης της οργάνωσης μπορεί να ορίσει έναν εκπρόσωπο διαχείρισης.

Ένας λογαριασμός που ορίζεται ως εκπρόσωπος διαχείρισης γίνεται λογαριασμός διαχείρισης GuardDuty, έχει το GuardDuty ενεργοποιημένο αυτόματα στην καθορισμένη περιοχή AWS και έχει επίσης άδεια να ενεργοποιεί και να διαχειρίζεται το GuardDuty για όλους τους λογαριασμούς στην οργάνωση εντός αυτής της περιοχής. Οι άλλοι λογαριασμοί στην οργάνωση μπορούν να προβληθούν και να προστεθούν ως λογαριασμοί μελών GuardDuty που σχετίζονται με αυτόν τον λογαριασμό εκπροσώπου διαχείρισης.

Enumeration

# Get Org config
aws guardduty list-organization-admin-accounts #Get Delegated Administrator
aws guardduty describe-organization-configuration --detector-id <id>

# Check external invitations
aws guardduty list-invitations
aws guardduty get-invitations-count

# Detector Information
aws guardduty list-detectors # 1 detector per account with GuardDuty
aws guardduty get-detector --detector-id <id> # Get detector info
aws guardduty get-master-account --detector-id <id>

# Get filters
aws guardduty list-filters --detector-id <id> # Check filters
aws guardduty get-filter --detector-id <id> --filter-name <name>

# Findings
aws guardduty list-findings --detector-id <id> # List findings
aws guardduty get-findings --detector-id <id> --finding-ids <id> # Get details about the finding
aws guardduty get-findings-statistics --detector-id <id> --finding-statistic-types <types>

# Get trusted IP addresses
aws guardduty list-ip-sets --detector-id <id>
aws guardduty get-ip-set --detector-id <id>

# Member accounts of the current AWS GuardDuty master account
aws guardduty list-members --detector-id <id>
aws guardduty get-members --detector-id <id> --account-ids <id>
aws guardduty get-member-detectors --detector-id <id> --account-ids <id>

# Continuously export its findings to an Amazon S3 bucket
aws guardduty list-publishing-destinations --detector-id <id>

# Intelligence sets that you have uploaded to GuardDuty
aws guardduty list-threat-intel-sets --detector-id <id>
aws guardduty get-threat-intel-set --detector-id <id> --threat-intel-set-id <id>

GuardDuty Bypass

Γενικές Οδηγίες

Προσπαθήστε να μάθετε όσο το δυνατόν περισσότερα για τη συμπεριφορά των διαπιστευτηρίων που πρόκειται να χρησιμοποιήσετε:

  • Ώρες που χρησιμοποιούνται
  • Τοποθεσίες
  • User Agents / Υπηρεσίες (Μπορεί να χρησιμοποιηθεί από awscli, webconsole, lambda…)
  • Άδειες που χρησιμοποιούνται τακτικά

Με αυτές τις πληροφορίες, αναδημιουργήστε όσο το δυνατόν περισσότερο το ίδιο σενάριο για να χρησιμοποιήσετε την πρόσβαση:

  • Αν είναι χρήστης ή ρόλος που προσπελάστηκε από χρήστη, προσπαθήστε να το χρησιμοποιήσετε τις ίδιες ώρες, από την ίδια γεωγραφική τοποθεσία (ακόμα και τον ίδιο ISP και IP αν είναι δυνατόν)
  • Αν είναι ρόλος που χρησιμοποιείται από υπηρεσία, δημιουργήστε την ίδια υπηρεσία στην ίδια περιοχή και χρησιμοποιήστε την από εκεί στις ίδιες χρονικές περιόδους
  • Προσπαθήστε πάντα να χρησιμοποιείτε τις ίδιες άδειες που έχει χρησιμοποιήσει αυτός ο κύριος
  • Αν χρειαστεί να χρησιμοποιήσετε άλλες άδειες ή να καταχραστείτε μια άδεια (για παράδειγμα, να κατεβάσετε 1.000.000 αρχεία καταγραφής cloudtrail) κάντε το αργά και με τον ελάχιστο αριθμό αλληλεπιδράσεων με το AWS (το awscli καλεί μερικές φορές αρκετές αναγνωστικές APIs πριν από την αναγνωστική)

Σπάζοντας το GuardDuty

guardduty:UpdateDetector

Με αυτή την άδεια μπορείτε να απενεργοποιήσετε το GuardDuty για να αποφύγετε την ενεργοποίηση ειδοποιήσεων.

aws guardduty update-detector --detector-id <detector-id> --no-enable
aws guardduty update-detector --detector-id <detector-id> --data-sources S3Logs={Enable=false}

guardduty:CreateFilter

Οι επιτιθέμενοι με αυτή την άδεια έχουν τη δυνατότητα να χρησιμοποιούν φίλτρα για την αυτόματη αρχειοθέτηση ευρημάτων:

aws guardduty create-filter  --detector-id <detector-id> --name <filter-name> --finding-criteria file:///tmp/criteria.json --action ARCHIVE

iam:PutRolePolicy, (guardduty:CreateIPSet|guardduty:UpdateIPSet)

Οι επιτιθέμενοι με τα προηγούμενα δικαιώματα θα μπορούσαν να τροποποιήσουν τη Λίστα Εμπιστευμένων IP του GuardDuty προσθέτοντας τη διεύθυνση IP τους σε αυτήν και να αποφύγουν τη δημιουργία ειδοποιήσεων.

aws guardduty update-ip-set --detector-id <detector-id> --activate --ip-set-id <ip-set-id> --location https://some-bucket.s3-eu-west-1.amazonaws.com/attacker.csv

guardduty:DeletePublishingDestination

Οι επιτιθέμενοι θα μπορούσαν να αφαιρέσουν τον προορισμό για να αποτρέψουν την ειδοποίηση:

aws guardduty delete-publishing-destination --detector-id <detector-id> --destination-id <dest-id>

Caution

Η διαγραφή αυτού του προορισμού δημοσίευσης δεν θα επηρεάσει τη δημιουργία ή την ορατότητα των ευρημάτων μέσα στην κονσόλα GuardDuty. Το GuardDuty θα συνεχίσει να αναλύει γεγονότα στο περιβάλλον AWS σας, να εντοπίζει ύποπτη ή απροσδόκητη συμπεριφορά και να δημιουργεί ευρήματα.

Παραδείγματα Παράκαμψης Συγκεκριμένων Ευρημάτων

Σημειώστε ότι υπάρχουν δεκάδες ευρήματα του GuardDuty, ωστόσο, ως Red Teamer δεν θα σας επηρεάσουν όλα, και το καλύτερο είναι ότι έχετε την πλήρη τεκμηρίωση καθενός από αυτά στο https://docs.aws.amazon.com/guardduty/latest/ug/guardduty_finding-types-active.html οπότε ρίξτε μια ματιά πριν κάνετε οποιαδήποτε ενέργεια για να μην πιαστείτε.

Εδώ έχετε μερικά παραδείγματα παράκαμψης συγκεκριμένων ευρημάτων του GuardDuty:

PenTest:IAMUser/KaliLinux

Το GuardDuty ανιχνεύει αιτήματα API AWS από κοινά εργαλεία δοκιμών διείσδυσης και ενεργοποιεί ένα PenTest Finding.
Ανιχνεύεται από το όνομα του user agent που μεταφέρεται στο αίτημα API.
Επομένως, η τροποποίηση του user agent είναι δυνατή για να αποτραπεί η ανίχνευση της επίθεσης από το GuardDuty.

Για να το αποτρέψετε αυτό, μπορείτε να αναζητήσετε από το σενάριο session.py στο πακέτο botocore και να τροποποιήσετε το user agent, ή να ορίσετε το Burp Suite ως proxy AWS CLI και να αλλάξετε το user-agent με το MitM ή απλά να χρησιμοποιήσετε ένα λειτουργικό σύστημα όπως το Ubuntu, Mac ή Windows που θα αποτρέψει την ενεργοποίηση αυτής της ειδοποίησης.

UnauthorizedAccess:IAMUser/InstanceCredentialExfiltration

Η εξαγωγή διαπιστευτηρίων EC2 από την υπηρεσία μεταδεδομένων και η χρήση τους εκτός του περιβάλλοντος AWS ενεργοποιεί την ειδοποίηση UnauthorizedAccess:IAMUser/InstanceCredentialExfiltration.OutsideAWS. Αντίθετα, η χρήση αυτών των διαπιστευτηρίων από την EC2 instance σας ενεργοποιεί την ειδοποίηση UnauthorizedAccess:IAMUser/InstanceCredentialExfiltration.InsideAWS. Ωστόσο, η χρήση των διαπιστευτηρίων σε άλλη συμβιβασμένη EC2 instance εντός του ίδιου λογαριασμού παραμένει απαρατήρητη, χωρίς να ενεργοποιήσει καμία ειδοποίηση.

Tip

Επομένως, χρησιμοποιήστε τα εξαγόμενα διαπιστευτήρια από μέσα στη μηχανή όπου τα βρήκατε για να μην ενεργοποιηθεί αυτή η ειδοποίηση.

Αναφορές

Tip

Μάθετε & εξασκηθείτε στο AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Μάθετε & εξασκηθείτε στο GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Μάθετε & εξασκηθείτε στο Az Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Υποστηρίξτε το HackTricks