Στον σημερινό οδηγό θα δούμε πως μπορούμε να ανακαλύψουμε κρυφά subdomain σε μια ιστοσελίδα με τη βοήθεια του Subfinder.
Η αναζήτηση υποτομέων (subdomain) σε μια ιστοσελίδα είναι μια απαραίτητη διαδικασία που πρέπει να εκτελέσει ο pentester αλλά πολλές φορές το βήμα αυτό παραβλέπεται ενώ στην πραγματικότητα αποτελεί σημαντικό μέρος της φάσης αναγνώρισης.
Αυτή η αναζήτηση μπορεί συχνά να αποκαλύψει πολλά subdomain που είναι κρυμμένα ή μη εκτεθειμένα στο κοινό ενώ η πιθανότητα εύρεσης μιας ευπάθειας σε κάποιους από αυτούς τους τομείς είναι γενικά πολύ υψηλότερη. Πράγματα όπως πάνελ διαχειριστών (admin panel), ιστότοποι testing και άλλοι εσωτερικοί πόροι βρίσκονται συχνά σε υποτομείς του στόχου στον οποίο γίνεται η ανάλυση των ευπαθειών.
Αρκετοί αρχάριοι admin θεωρούν ότι εφόσον κάτι δεν βρίσκεται στον κύριο ιστότοπο, τότε δεν μπορεί να βρεθεί σε κάποιο subdomain. Όπως θα δούμε παρακάτω, είναι εύκολο για τους εισβολείς να αποκαλύψουν κρυμμένους υποτομείς, αυξάνοντας την επιφάνεια της επίθεσης και ενδεχομένως να βρουν επιπλέον ευπάθειες ή άλλες πληροφορίες.
Εγκατάσταση Subfinder
Για να ξεκινήσετε με το Subfinder, θα χρειαστεί να έχετε την Go εγκατεστημένη στο σύστημά σας. πρέπει να εγκατασταθεί στο σύστημά μας. π.χ. σε Kali/Ubuntu/Debian:
$ su
~# apt install golang
Στη συνέχεια, μπορούμε να κατεβάσουμε την τελευταία έκδοση από το GitHub:
~# wget https://github.com/projectdiscovery/subfinder/releases/download/v2.4.5/subfinder_2.4.5_linux_amd64.tar.gz
Το εξάγουμε:
~# tar xzf subfinder_2.4.5_linux_amd64.tar.gz
Στη συνέχεια, μπορούμε να μετακινήσουμε το εκτελέσιμο αρχείο στο σύστημά μας, ώστε να μπορούμε να το εκτελέσουμε από οπουδήποτε:
~# cp subfinder /usr/local/bin/
Τώρα μπορούμε εύκολα να τρέξουμε το Subfinder από οπουδήποτε στο σύστημά μας:
~# subfinder
_ __ _ _
____ _| |__ / _(_)_ _ __| |___ _ _
(_-< || | '_ \ _| | ' \/ _ / -_) '_|
/__/\_,_|_.__/_| |_|_||_\__,_\___|_| v2.4.5
projectdiscovery.io
[WRN] Use with caution. You are responsible for your actions
[WRN] Developers assume no liability and are not responsible for any misuse or damage.
[WRN] By using subfinder, you also agree to the terms of the APIs used.
[INF] Configuration file saved to /root/.config/subfinder/config.yaml
Ένα χρήσιμο χαρακτηριστικό του Subfinder είναι ότι μπορεί να χρησιμοποιήσει API από ένα πλήθος υπηρεσιών για πιο λεπτομερή αναζήτηση. Το αρχείο διαμόρφωσης δημιουργείται αυτόματα όταν εκτελείται το Subfinder για πρώτη φορά και συνήθως βρίσκεται κάτω από τον αρχικό κατάλογο:
~# nano ~/.config/subfinder/config.yaml
Κάνοντας κύλιση προς τα κάτω, υπάρχει μια ενότητα όπου μπορούν να εισαχθούν κλειδιά API:
binaryedge: example-api-key-goes-here-1a2b3c4d
censys: []
certspotter: []
chaos: []
dnsdb: []
github: []
intelx: []
passivetotal: []
recon: []
robtex: []
securitytrails: []
shodan: []
spyse: []
threatbook: []
urlscan: []
virustotal: []
zoomeye: []
subfinder-version: ""
Τώρα που όλα έχουν ρυθμιστεί, ας αναζητήσουμε μερικά subdomain.
Εύρεση υποτομέων με το Subfinder
Ο πιο βασικός τρόπος για να χρησιμοποιήσετε το Subfinder είναι να του παρέχετε ένα domain για αναζήτηση. Χρησιμοποιήστε το flag -d
για να το κάνετε:
~# subfinder -d cerebrux.net
_ __ _ _
____ _| |__ / _(_)_ _ __| |___ _ _
(_-< || | '_ \ _| | ' \/ _ / -_) '_|
/__/\_,_|_.__/_| |_|_||_\__,_\___|_| v2.4.5
projectdiscovery.io
[WRN] Use with caution. You are responsible for your actions
[WRN] Developers assume no liability and are not responsible for any misuse or damage.
[WRN] By using subfinder, you also agree to the terms of the APIs used.
[INF] Enumerating subdomains for cerebrux.net
mail.cerebrux.net
mail2.cerebrux.net
cerebrux.net
chat.cerebrux.net
code.cerebrux.net
www.cerebrux.net
20.cerebrux.net
[INF] Found 7 subdomains for cerebrux.net in 30 seconds 11 milliseconds
Για να αυξήσουμε την πληροφορία που μας εμφανίζει μπορούμε να προσθέσουμε το flag -v
:
~# subfinder -d cerebrux.net -v
Μερικές φορές είναι επίσης χρήσιμο να μπορείτε να αποκρύψετε τα πάντα εκτός από τα αποτελέσματα ειδικά όταν θέλετε να το συνδυάσετε με κάποιο άλλο script για αυτοματοποίηση . Απλώς χρησιμοποιήστε το flag -silent για έξοδο μόνο των υποτομέων που βρέθηκαν:
~# subfinder -d cerebrux.net -silent
Μπορούμε επίσης να αποθηκεύσουμε τα αποτελέσματα σε ένα αρχείο για μελλοντική χρήση με το flag -o
:
~# subfinder -d cerebrux.net -o apotelsma.txt
Το Subfinder μπορεί επίσης να λάβει μια λίστα απο domains για μαζική αναζήτηση. Χρησιμοποιήστε το flag -dL
ακολουθούμενο από τη λίστα τομέων:
~# subfinder -dL domains.txt
Εναλλακτικά, μπορούμε να διοχετεύσουμε τη λίστα ως είσοδο στο Subfinder:
~# cat subs.txt | subfinder
Από προεπιλογή, το Subfinder χρησιμοποιεί μόνο ορισμένες από τις πηγές για να ανακαλύψει κρυμμένα subdomains. Αλλά μπορούμε να πούμε στο εργαλείο να χρησιμοποιεί όλες τις πηγές με την επιλογή -all :
~# subfinder -d cerebrux.net -all
Όπως θα δείτε, διαρκεί λίγο περισσότερο, αλλά θα έχετε περισσότερα αποτελέσματα. Για να δείτε εύκολα όλες τις πηγές που χρησιμοποιεί αυτό το εργαλείο, χρησιμοποιήστε το flag -ls :
~# subfinder -ls
Οι πηγές που σημειώνονται με αστερίσκο χρειάζονται ένα κλειδί API για να λειτουργήσουν σωστά. Για να επιλέξετε ποιες πηγές θα κάνει χρήση κατά τη διάρκεια της σάρωσης, μπορούν να χρησιμοποιηθούν τα -sources :
~# subfinder -d cerebrux.net -v -sources shodan,censys,zoomeye
Επίλογος
Όπως είδατε είναι πάρα πολύ απλό να βρεις τα subdomain μιας σελίδας για να μπορείς να κάνεις έλεγχο ασφαλείας. Πολλές φορές, οι διαχειριστές «ξεχνάνε» να διασφαλίσουν και να δείξουν τον ίδιο ζήλο στα θέματα προστασίας στα subdomain με τον ίδιο ζήλο που δείχνουν για την κεντρική σελίδα τους.
Να δώσω ένα μικρό, ίσως άχρηστο, tip:
Αφού εγκαταστήσεις την Go μπορείς να τρέξεις:
$ go get -u -v github.com/projectdiscovery/subfinder/v2/cmd/subfinder
και θα το εγκαταστήσει, χωρίς να χρειάζεται να κάνεις όλη την ιστορία με το tarball ;)
TEST