Το τέταρτο επίπεδο μας διδάσκει κάτι νέο που όμως είναι η λογική συνέχεια των προηγούμενων επιπέδων. Όπως αναφέρουμε κάθε φορά, είναι σημαντικό να προσπαθείτε να λύσετε μόνοι σας κάθε επίπεδο προτού διαβάσετε τις δικές μας λύσεις. Επίσης, λόγω της δομής του παιχνιδιού είναι εξίσου σημαντικό να έχετε κατανοήσει πλήρως όλα τα προηγούμενα επίπεδα. Οι δικές μας λύσεις για τα προηγούμενα επίπεδα είναι διαθέσιμες από τους ακόλουθους συνδέσμους.
Χρησιμοποιώντας τα στοιχεία πρόσβασης που αποκτήσαμε από το προηγούμενο επίπεδο επισκεπτόμαστε τη σελίδα του τέταρτου επιπέδου. Εκεί παρατηρούμε ένα περίεργο μήνυμα. Συγκεκριμένα στη σελίδα γράφει «Access disallowed. You are visiting from «» while authorized users should come only from «http://natas5.natas.labs.overthewire.org/» (Απαγορεύεται η πρόσβαση. Επισκέπτεστε από το «» ενώ οι εξουσιοδοτημένοι χρήστες έρχονται μόνο από το «http://natas5.natas.labs.overtewire.org/»). Βλέπετε την εικόνα από αυτό παρακάτω.
Μία σύντομη αναζήτηση στο διαδίκτυο μας διδάσκει ότι αυτό είναι μάλλον αποτέλεσμα ελέγχου πρόσβασης μέσω του λεγόμενου «referer» που ορίζεται από το πρωτόκολλο HTTP. Τι είναι το «referer» όμως; Η μετάφραση του σημαίνει «αναφέρων» και είναι πρακτικά αυτό που κάνει. Όταν πατάμε σε ένα σύνδεσμο μίας σελίδας τότε το πρωτόκολλο HTTP ορίζει αυτή τη σελίδα ως τον «αναφέρων» σύνδεσμο (referer). Αυτό τοποθετείται στη κεφαλίδα του αιτήματος στη σελίδα-προορισμό. Έτσι, η σελίδα του προορισμού μπορεί να γνωρίζει από ποια σελίδα έγινε η επίσκεψη.
Άρα, πως θα μπορούσαμε να ξεγελάσουμε τη σελίδα του παιχνιδιού ώστε να φαίνεται ότι το αίτημα προήλθε από τη σελίδα natas5.natas.labs.overtewire; Ένας εύκολος τρόπος είναι κάνοντας μία επίθεση τύπου MITM (Man-in-the-middle, άνθρωπος στη μέση). Δηλαδή, να αλλάξουμε τα στοιχεία του αιτήματος προτού φτάσουν στο προορισμό τους. Βλέπετε σχηματικά το παράδειγμα αυτό παρακάτω. Για την ακρίβεια, αριστερά είναι το κανονικό αίτημα, και δεξιά το αίτημα μετά την επίθεση MITM. Υπάρχουν πάρα πολλά προγράμματα που μπορούν να χρησιμοποιηθούν για κάτι τέτοιο. Το πιο γνωστό είναι το Burp Suite το οποίο είναι και αυτό που θα χρησιμοποιήσουμε.
Ας δούμε πως ακριβώς γίνεται αυτή η επίθεση με το εργαλείο Burp Suite που αναφέραμε παραπάνω. Προσοχή, σε αυτό το παράδειγμα χρησιμοποιούμε την δωρεάν έκδοση του εργαλείου η οποία δε προσφέρει όλη τη γκάμα εργαλείων που έχει η επί πληρωμή έκδοση του. Μετά την εγκατάσταση το Burp Suite θα δείτε το πρόγραμμα όπως το βλέπετε στην επόμενη εικόνα. Σε αυτό το στάδιο επιλέγομε Next (Επόμενο) για να προχωρήσουμε.
Στην επόμενη σελίδα μπορούμε να επιλέξουμε τις ρυθμίσεις του προγράμματος Burp Suite αλλά για τις απαιτήσεις αυτού του απλού παιχνιδιού θα το αφήσουμε στο «Use Burp defaults» (Χρήση των προκαθορισμένων επιλογών του Burp) και πατάμε το κουμπί «Start Burp» (Εκκίνηση του Burp) κάτω δεξιά. Βλέπετε τη σχετική εικόνα καλύτερα εδώ.
Σε αυτό το σημείο το Burp Suite έχει ξεκινήσει ένα πρόγραμμα που μπορεί να λαμβάνει ότι του προωθούμε, να τα επεξεργάζεται και έπειτα να τα στέλνει στο προορισμό τους. Για να πούμε στο πρόγραμμα περιήγησης μας να στέλνει όλα τα αιτήματα του μέσω του Burp Suite πρέπει να κάνουμε μία απλή ρύθμιση. Καθώς ο περιηγητής ιστού Firefox είναι ο πιο δημοφιλής θα παρουσιάσουμε αυτό το παράδειγμα αλλά αντίστοιχες ρυθμίσεις για το λεγόμενο proxy (διαμεσολαβητής) έχουν όλοι οι περιηγητές ιστού. Πηγαίνουμε Εργαλεία -> Επιλογές -> Για προχωρημένους -> Ρυθμίσεις και στη καρτέλα αυτή επιλέγουμε «Χειροκίνητη ρύθμιση διαμεσολαβητή» ορίζοντας ως διαμεσολαβητή τον υπολογιστή μας στην εικονική θύρα 8080, δηλαδή γράφουμε στο πεδίο διαμεσολαβητή τη διεύθυνση 127.0.0.1 η οποία πάντα αντιστοιχεί στον υπολογιστή μας και στη θύρα 8080.
Στη συνέχεια, πηγαίνουμε πίσω στη σελίδα του παιχνιδιού και πατάμε το σύνδεσμο που έχει για ανανέωση της σελίδας. Τον σύνδεσμο «Refresh page» (Ανανέωση σελίδας). Με το που το πατήσουμε, το Burp Suite θα εμφανιστεί με τη καρτέλα Proxy (διαμεσολαβητής) να έχει πορτοκαλί χρώμα. Αυτό σημαίνει ότι έχει συμβεί κάτι και περιμένει για δική μας ενέργεια. Βλέπετε το παράθυρο που θα εμφανιστεί καλύτερα εδώ.
Οπότε, μεταβαίνουμε στη καρτέλα Proxy (διαμεσολαβητής) και εκεί βλέπουμε ότι το πρόγραμμα «έπιασε» το αίτημα που κάναμε και έχει γίνει πορτοκαλί η υπο-καρτέλα Intercept (Υποκλοπή). Επίσης, από κάτω βλέπουμε το αίτημα που συνέλαβε και όλες τις λεπτομέρειες του. Αυτή τη στιγμή παρότι πατήσαμε ανανέωση της σελίδας και ο περιηγητής μας έστειλε το αίτημα, το αίτημα δεν έχει φύγει ακόμα από το σύστημα μας. Το έχει πιάσει το Burp Suite και αναμένει τη δική μας ενέργεια για να το προωθήσει ή να το απορρίψει. Βλέπετε το πως έχει ενεργοποιηθεί η καρτέλα Intercept (Υποκλοπή) καλύτερα στη παρακάτω εικόνα.
Όταν μεταβούμε στη καρτέλα Intercept (Υποκλοπή) αυτό που αμέσως τραβάει τη προσοχή είναι το περιεχόμενο της κεφαλίδας referer για την οποία γράψαμε τόσα πολλά. Όπως βλέπετε την έχουμε επιλέξει για να φαίνεται καλύτερα και περιέχει τη τιμή natas4.natas.labs.overthewire.org καθώς, πράγματι, από αυτή τη σελίδα κάναμε το αίτημα.
Φυσικά σε αυτό το σημείο έχουμε πλήρη έλεγχο των περιεχομένων του αιτήματος. Άρα κάνουμε διπλό κλικ στο περιεχόμενο της κεφαλίδας referer και αντικαθιστούμε τη τιμή που περιέχει με τη τιμή που θέλουμε, δηλαδή με natas5.natas.labs.overthewire.org όπως βλέπετε σε αυτήν εδώ την εικόνα.
Το τελευταίο πράγμα που μένει είναι να πούμε πλέον στο πρόγραμμα Burp Suite να προωθήσει το τροποποιημένο αίτημα στον προορισμό του. Για να το επιτύχουμε αυτό απλώς πατάμε το κουμπί Forward (Προώθηση) και το τροποποιημένο αίτημα θα σταλεί στο προορισμό του και η απάντηση από τον εξυπηρετητή θα φτάσει πίσω στον περιηγητή ιστού μας.
Όπως είναι αναμενόμενο, η απάντηση που λάβαμε από τον εξυπηρετητή ήταν τα στοιχεία πρόσβασης για το επόμενο επίπεδο. Βλέπετε τη σχετική εικόνα παρακάτω. Σε αυτό το σημείο μπορούμε να πάμε πίσω στις ρυθμίσεις διαμεσολαβητή του προγράμματος περιήγησης μας και να τις βάλουμε πίσω στις επιλογές που είχε πριν και να κλείσουμε το πρόγραμμα Burp Suite.
Αυτό το επίπεδο μας δίδαξε τουλάχιστον τρία πράγματα. Πρώτον, το τι είναι το referer του πρωτοκόλλου HTTP. Δεύτερον, τον λόγο για τον οποίο δεν είναι καθόλου καλή πρακτική να χρησιμοποιεί κάποιος το HTTP referer για ελέγχους πρόσβασης. Ασφαλώς, ο λόγος αυτός είναι ότι είναι πολύ εύκολο για κάποιον να το τροποποιήσει. Τέλος, μας δίδαξε την αλλοίωση δεδομένων με τη μέθοδο MITM. Κάτι το οποίο θα ήταν αδύνατο αν η επικοινωνία ήταν κρυπτογραφημένη (δηλαδή η σελίδα ήταν HTTPS αντί για HTTP). Οποιαδήποτε σελίδα επισκεπτόμαστε στο διαδίκτυο που δεν προσφέρει κρυπτογραφημένη επικοινωνία (HTTPS) μπορεί να αλλοιωθεί με ακριβώς τον ίδιο τρόπο εφόσον κάποιος βρίσκεται οπουδήποτε στη διαδρομή των πακέτων δεδομένων από τον υπολογιστή μας προς τον εξυπηρετητή και το αντίστροφο. Αυτός είναι ένας από τους κύριους λόγους που πρέπει να αποφεύγουμε οποιαδήποτε σύνδεση με σελίδες που δεν λειτουργούν με πρωτόκολλο HTTPS. Η χρήση του μη κρυπτογραφημένου HTTP σημαίνει ότι οποιοσδήποτε βρίσκεται κάπου από όπου περνάνε τα πακέτα επικοινωνίας μας μπορεί τόσο να τα υποκλέψει (μαζί με όλα τα περιεχόμενα τους όπως για παράδειγμα στοιχεία πρόσβασης) όσο και να τα αλλοιώσει (όπως παρουσιάσαμε) χωρίς ποτέ να γίνει αντιληπτός. Πολύ ενδιαφέρον επίπεδο και πολύ σημαντικά διδάγματα.
Natas
#Πολεμικά #Παίγνια #OTW #Natas