mirror of
https://github.com/HackTricks-wiki/hacktricks.git
synced 2025-10-10 18:36:50 +00:00
99 lines
12 KiB
Markdown
99 lines
12 KiB
Markdown
# Domain/Subdomain takeover
|
||
|
||
{{#include ../banners/hacktricks-training.md}}
|
||
|
||
|
||
## Domain takeover
|
||
|
||
Αν ανακαλύψετε κάποιο domain (domain.tld) που **χρησιμοποιείται από κάποια υπηρεσία εντός του πεδίου** αλλά η **εταιρεία** έχει **χάσει** την **ιδιοκτησία** του, μπορείτε να προσπαθήσετε να το **καταχωρήσετε** (αν είναι αρκετά φθηνό) και να ενημερώσετε την εταιρεία. Αν αυτό το domain λαμβάνει κάποια **ευαίσθητη πληροφορία** όπως ένα session cookie μέσω **GET** παραμέτρου ή στην **Referer** κεφαλίδα, αυτό είναι σίγουρα μια **ευπάθεια**.
|
||
|
||
### Subdomain takeover
|
||
|
||
Ένα subdomain της εταιρείας δείχνει σε μια **υπηρεσία τρίτου μέρους με όνομα που δεν είναι καταχωρημένο**. Αν μπορείτε να **δημιουργήσετε** έναν **λογαριασμό** σε αυτή την **υπηρεσία τρίτου μέρους** και να **καταχωρήσετε** το **όνομα** που χρησιμοποιείται, μπορείτε να εκτελέσετε την υποδοχή subdomain.
|
||
|
||
Υπάρχουν αρκετά εργαλεία με λεξικά για να ελέγξετε πιθανές υποδοχές:
|
||
|
||
- [https://github.com/EdOverflow/can-i-take-over-xyz](https://github.com/EdOverflow/can-i-take-over-xyz)
|
||
- [https://github.com/blacklanternsecurity/bbot](https://github.com/blacklanternsecurity/bbot)
|
||
- [https://github.com/punk-security/dnsReaper](https://github.com/punk-security/dnsReaper)
|
||
- [https://github.com/haccer/subjack](https://github.com/haccer/subjack)
|
||
- [https://github.com/anshumanbh/tko-sub](https://github.com/anshumanbh/tko-subs)
|
||
- [https://github.com/ArifulProtik/sub-domain-takeover](https://github.com/ArifulProtik/sub-domain-takeover)
|
||
- [https://github.com/SaadAhmedx/Subdomain-Takeover](https://github.com/SaadAhmedx/Subdomain-Takeover)
|
||
- [https://github.com/Ice3man543/SubOver](https://github.com/Ice3man543/SubOver)
|
||
- [https://github.com/antichown/subdomain-takeover](https://github.com/antichown/subdomain-takeover)
|
||
- [https://github.com/musana/mx-takeover](https://github.com/musana/mx-takeover)
|
||
- [https://github.com/PentestPad/subzy](https://github.com/PentestPad/subzy)
|
||
- [https://github.com/Stratus-Security/Subdominator](https://github.com/Stratus-Security/Subdominator)
|
||
- [https://github.com/NImaism/takeit](https://github.com/NImaism/takeit)
|
||
|
||
### Subdomain Takeover Generation via DNS Wildcard
|
||
|
||
Όταν χρησιμοποιείται DNS wildcard σε ένα domain, οποιοδήποτε ζητούμενο subdomain αυτού του domain που δεν έχει διαφορετική διεύθυνση ρητά θα **επιλύεται στην ίδια πληροφορία**. Αυτό θα μπορούσε να είναι μια διεύθυνση IP A, ένα CNAME...
|
||
|
||
Για παράδειγμα, αν το `*.testing.com` είναι wildcarded στο `1.1.1.1`. Τότε, το `not-existent.testing.com` θα δείχνει στο `1.1.1.1`.
|
||
|
||
Ωστόσο, αν αντί να δείχνει σε μια διεύθυνση IP, ο sysadmin το δείξει σε μια **υπηρεσία τρίτου μέρους μέσω CNAME**, όπως ένα G**ithub subdomain** για παράδειγμα (`sohomdatta1.github.io`). Ένας επιτιθέμενος θα μπορούσε να **δημιουργήσει τη δική του σελίδα τρίτου μέρους** (στο Gihub σε αυτή την περίπτωση) και να πει ότι το `something.testing.com` δείχνει εκεί. Επειδή, το **CNAME wildcard** θα συμφωνήσει ότι ο επιτιθέμενος θα είναι σε θέση να **δημιουργήσει αυθαίρετα subdomains για το domain του θύματος που δείχνουν στις σελίδες του**.
|
||
|
||
Μπορείτε να βρείτε ένα παράδειγμα αυτής της ευπάθειας στην αναφορά CTF: [https://ctf.zeyu2001.com/2022/nitectf-2022/undocumented-js-api](https://ctf.zeyu2001.com/2022/nitectf-2022/undocumented-js-api)
|
||
|
||
## Exploiting a subdomain takeover
|
||
|
||
Η υποδοχή subdomain είναι ουσιαστικά DNS spoofing για ένα συγκεκριμένο domain σε όλο το διαδίκτυο, επιτρέποντας στους επιτιθέμενους να ορίσουν A records για ένα domain, οδηγώντας τους περιηγητές να εμφανίζουν περιεχόμενο από τον διακομιστή του επιτιθέμενου. Αυτή η **διαφάνεια** στους περιηγητές καθιστά τα domains επιρρεπή σε phishing. Οι επιτιθέμενοι μπορεί να χρησιμοποιήσουν [_typosquatting_](https://en.wikipedia.org/wiki/Typosquatting) ή [_Doppelganger domains_](https://en.wikipedia.org/wiki/Doppelg%C3%A4nger) για αυτό το σκοπό. Ιδιαίτερα ευάλωτα είναι τα domains όπου το URL σε ένα phishing email φαίνεται νόμιμο, εξαπατώντας τους χρήστες και αποφεύγοντας τα φίλτρα spam λόγω της εγγενής εμπιστοσύνης του domain.
|
||
|
||
Ελέγξτε αυτή την [ανάρτηση για περισσότερες λεπτομέρειες](https://0xpatrik.com/subdomain-takeover/)
|
||
|
||
### **SSL Certificates**
|
||
|
||
Τα SSL certificates, αν παραχθούν από επιτιθέμενους μέσω υπηρεσιών όπως [_Let's Encrypt_](https://letsencrypt.org/), προσθέτουν στην νομιμότητα αυτών των ψεύτικων domains, καθιστώντας τις επιθέσεις phishing πιο πειστικές.
|
||
|
||
### **Cookie Security and Browser Transparency**
|
||
|
||
Η διαφάνεια του περιηγητή επεκτείνεται επίσης στην ασφάλεια των cookies, που διέπεται από πολιτικές όπως η [Same-origin policy](https://en.wikipedia.org/wiki/Same-origin_policy). Τα cookies, που χρησιμοποιούνται συχνά για τη διαχείριση συνεδριών και την αποθήκευση tokens σύνδεσης, μπορούν να εκμεταλλευτούν μέσω υποδοχής subdomain. Οι επιτιθέμενοι μπορούν να **συγκεντρώσουν session cookies** απλά κατευθύνοντας τους χρήστες σε ένα υποκατεστημένο subdomain, θέτοντας σε κίνδυνο τα δεδομένα και την ιδιωτικότητα των χρηστών.
|
||
|
||
### CORS Bypass
|
||
|
||
Είναι πιθανό ότι κάθε subdomain επιτρέπεται να έχει πρόσβαση σε CORS πόρους από το κύριο domain ή άλλα subdomains. Αυτό θα μπορούσε να εκμεταλλευτεί από έναν επιτιθέμενο για να **πρόσβαση σε ευαίσθητες πληροφορίες** εκμεταλλευόμενος CORS αιτήματα.
|
||
|
||
### CSRF - Same-Site Cookies bypass
|
||
|
||
Είναι πιθανό ότι το subdomain επιτρέπεται να στέλνει cookies στο domain ή άλλα subdomains που εμποδίζονται από το `Same-Site` χαρακτηριστικό των cookies. Ωστόσο, σημειώστε ότι οι anti-CSRF tokens θα αποτρέψουν αυτή την επίθεση αν έχουν υλοποιηθεί σωστά.
|
||
|
||
### OAuth tokens redirect
|
||
|
||
Είναι πιθανό ότι το υποκατεστημένο subdomain επιτρέπεται να χρησιμοποιηθεί στο `redirect_uri` URL μιας ροής OAuth. Αυτό θα μπορούσε να εκμεταλλευτεί από έναν επιτιθέμενο για να **κλέψει το OAuth token**.
|
||
|
||
### CSP Bypass
|
||
|
||
Είναι πιθανό ότι το υποκατεστημένο subdomain (ή κάθε subdomain) επιτρέπεται να χρησιμοποιηθεί για παράδειγμα το `script-src` του CSP. Αυτό θα μπορούσε να εκμεταλλευτεί από έναν επιτιθέμενο για να **εισάγει κακόβουλα scripts** και να εκμεταλλευτεί πιθανές ευπάθειες XSS.
|
||
|
||
### **Emails and Subdomain Takeover**
|
||
|
||
Ένας άλλος τομέας της υποδοχής subdomain περιλαμβάνει τις υπηρεσίες email. Οι επιτιθέμενοι μπορούν να χειριστούν **MX records** για να λαμβάνουν ή να στέλνουν email από ένα νόμιμο subdomain, ενισχύοντας την αποτελεσματικότητα των επιθέσεων phishing.
|
||
|
||
### **Higher Order Risks**
|
||
|
||
Περαιτέρω κίνδυνοι περιλαμβάνουν **NS record takeover**. Αν ένας επιτιθέμενος αποκτήσει έλεγχο σε ένα NS record ενός domain, μπορεί δυνητικά να κατευθύνει ένα μέρος της κίνησης σε έναν διακομιστή υπό τον έλεγχό του. Αυτός ο κίνδυνος ενισχύεται αν ο επιτιθέμενος ορίσει έναν υψηλό **TTL (Time to Live)** για τα DNS records, παρατείνοντας τη διάρκεια της επίθεσης.
|
||
|
||
### CNAME Record Vulnerability
|
||
|
||
Οι επιτιθέμενοι μπορεί να εκμεταλλευτούν μη καταχωρημένα CNAME records που δείχνουν σε εξωτερικές υπηρεσίες που δεν χρησιμοποιούνται πλέον ή έχουν αποσυρθεί. Αυτό τους επιτρέπει να δημιουργήσουν μια σελίδα υπό το αξιόπιστο domain, διευκολύνοντας περαιτέρω το phishing ή τη διανομή κακόβουλου λογισμικού.
|
||
|
||
### **Mitigation Strategies**
|
||
|
||
Οι στρατηγικές μετριασμού περιλαμβάνουν:
|
||
|
||
1. **Αφαίρεση ευάλωτων DNS records** - Αυτό είναι αποτελεσματικό αν το subdomain δεν απαιτείται πλέον.
|
||
2. **Κατοχύρωση του ονόματος domain** - Καταχώρηση του πόρου με τον αντίστοιχο πάροχο cloud ή επαναγορά ενός ληγμένου domain.
|
||
3. **Τακτική παρακολούθηση για ευπάθειες** - Εργαλεία όπως το [aquatone](https://github.com/michenriksen/aquatone) μπορούν να βοηθήσουν στην αναγνώριση ευάλωτων domains. Οι οργανισμοί θα πρέπει επίσης να αναθεωρήσουν τις διαδικασίες διαχείρισης υποδομών τους, διασφαλίζοντας ότι η δημιουργία DNS records είναι το τελευταίο βήμα στη δημιουργία πόρων και το πρώτο βήμα στην καταστροφή πόρων.
|
||
|
||
Για τους παρόχους cloud, η επαλήθευση της ιδιοκτησίας του domain είναι κρίσιμη για την αποτροπή υποδοχής subdomain. Ορισμένοι, όπως το [GitLab](https://about.gitlab.com/2018/02/05/gitlab-pages-custom-domain-validation/), έχουν αναγνωρίσει αυτό το ζήτημα και έχουν εφαρμόσει μηχανισμούς επαλήθευσης domain.
|
||
|
||
## References
|
||
|
||
- [https://0xpatrik.com/subdomain-takeover/](https://0xpatrik.com/subdomain-takeover/)
|
||
- [https://www.stratussecurity.com/post/subdomain-takeover-guide](https://www.stratussecurity.com/post/subdomain-takeover-guide)
|
||
- [https://www.hackerone.com/blog/guide-subdomain-takeovers-20](https://www.hackerone.com/blog/guide-subdomain-takeovers-20)
|
||
|
||
{{#include ../banners/hacktricks-training.md}}
|