Πώς να διαβάσετε την πρώτη ανταλλαγή IKEv2 σε μια σύλληψη πακέτων
Ταιριάξτε το αίτημα και την απάντηση IKE_SA_INIT κατά SPI και αναγνωριστικό μηνύματος, ξεχωρίστε το IKE από το ενθυλακωμένο ESP στη θύρα 4500 και δείτε τι μπορεί να αποδείξει ένα ήσυχο ίχνος.
Οι συλλήψεις στη μέση μιας συνεδρίας είναι ο συνηθισμένος λόγος που ένα ίχνος IKEv2 μοιάζει με θόρυβο, επειδή οι δύο πλευρές ανανεώνουν ήδη κλειδιά ή ανταλλάσσουν κρυπτογραφημένα φορτία όταν αρχίζει η καταγραφή. Ξεκινήστε αντί γι' αυτό με μια νέα απόπειρα σύνδεσης, ώστε το πρώτο μήνυμα στο αρχείο να είναι εκείνο που ανοίγει τη διαπραγμάτευση. Η παρακάτω σειρά ανάγνωσης το προϋποθέτει και σημαδεύει το σημείο όπου ένα πακέτο παύει να αποδεικνύει οτιδήποτε για το απομακρυσμένο άκρο. Η παράλειψη αυτού του βήματος είναι ο τρόπος με τον οποίο μια σήραγγα που λειτουργεί διαγιγνώσκεται ως φραγμένη θύρα.
Επιβεβαιώστε ότι βλέπετε την εναρκτήρια ανταλλαγή
Μια διαπραγμάτευση IKEv2 αρχίζει με IKE_SA_INIT, τύπο ανταλλαγής 34, αναγνωριστικό μηνύματος 0. Ο εκκινών επιλέγει SPI διάφορο του μηδενός, και το SPI του αποκρινόμενου είναι μηδέν σε εκείνο το πρώτο αίτημα και διάφορο του μηδενός στην απάντηση. Αυτά τα τρία γεγονότα χωρίζουν μια νέα απόπειρα από μια ανανέωση κλειδιών ή από ένα μήνυμα IKE_AUTH που τυχαίνει να βρίσκεται στην κορυφή μιας σύλληψης.
Τα πεδία της κεφαλίδας είναι αναγνώσιμα, όπως και τα φορτία πρότασης, ανταλλαγής κλειδιών και nonce. Το αναγνώσιμο δεν σημαίνει πιστοποιημένο: καμία πλευρά δεν έχει αποδείξει ταυτότητα σε αυτό το σημείο, και η ιδιωτική τιμή Diffie-Hellman δεν εμφανίζεται ποτέ στο μέσο.
Εκτυπώστε τα πεδία ως πίνακα αντί να κυλάτε σε ένα πλαίσιο αποκωδικοποίησης, γιατί οι αναμεταδόσεις και τα ασύμβατα SPI γίνονται προφανή σε στήλες.
tshark -r ike.pcapng -Y "isakmp" -T fields -e frame.number -e ip.src -e udp.srcport -e isakmp.exchangetype -e isakmp.messageid -e isakmp.initiator_spi -e isakmp.responder_spi
Διαβάστε την έξοδο κατά ζεύγη. Ένα αίτημα με αναγνωριστικό μηνύματος 0 που ακολουθείται από απάντηση με το ίδιο αναγνωριστικό και SPI αποκρινόμενου διάφορο του μηδενός είναι μία ανταλλαγή, ακόμη και όταν εμφανίζεται τρεις φορές επειδή το αίτημα αναμεταδόθηκε. Τρία πανομοιότυπα αιτήματα δεν είναι τρεις συνδέσεις, και η αντιμετώπισή τους ως τέτοιων είναι ο τρόπος με τον οποίο οι άνθρωποι συμπεραίνουν ότι ένας πελάτης κάνει βρόχο ενώ απλώς είναι υπομονετικός. Ταξινομήστε κατά αναγνωριστικό μηνύματος και μετά κατά χρονική σήμανση, και ολόκληρη η συνομιλία συμπτύσσεται σε έναν σύντομο κατάλογο αποπειρών.
Διαβάστε μια απόρριψη πριν διαβάσετε μια επιτυχία
Μια απάντηση δεν είναι αυτόματα πρόοδος. Ο αποκρινόμενος μπορεί να απαντήσει με ειδοποίηση cookie και να περιμένει ο εκκινών να ξαναδοκιμάσει, ή με INVALID_KE_PAYLOAD που ονομάζει μια ομάδα που θα δεχόταν αντί γι' αυτήν. Και τα δύο φτάνουν ως καλά σχηματισμένα μηνύματα IKE, και τα δύο μοιάζουν με ολοκληρωμένη ανταλλαγή σε ένα φίλτρο που μετράει μόνο πακέτα.
Ανοίξτε το φορτίο ειδοποίησης και διαβάστε τον τύπο πριν από οτιδήποτε άλλο. Μια πρόκληση cookie σημαίνει ότι ο αποκρινόμενος αμύνεται κατά πλαστών διευθύνσεων προέλευσης, και ο πελάτης πρέπει να ξαναστείλει με το cookie συνημμένο. Μια μη έγκυρη ομάδα σημαίνει ότι οι δύο προτάσεις διαφωνούν, κάτι που καμία ποσότητα επαναλήψεων δεν θα αλλάξει μέχρι να μετακινηθεί η διαμόρφωση της μίας πλευράς.
Μόνο το IKE_AUTH, η δεύτερη ανταλλαγή, μεταφέρει την κρυπτογραφημένη ταυτότητα και τα φορτία πιστοποίησης. Ένα ολοκληρωμένο IKE_SA_INIT σας λέει επομένως ότι οι πλευρές συμφωνούν ως προς τους αλγορίθμους και τα παράγωγα κλειδιά, και απολύτως τίποτα για το αν τα διαπιστευτήρια θα γίνουν δεκτά. Περιμένετε δύο μηνύματα και εκεί, και περιμένετε και τα δύο να είναι αδιαφανή χωρίς τα κλειδιά συνεδρίας.
Η θύρα 4500 δεν είναι ένα πρωτόκολλο
Το UDP 500 μεταφέρει συνήθως την εναρκτήρια ανταλλαγή. Μόλις εκτελεστεί η ανίχνευση NAT, το IKE μετακινείται στη θύρα 4500 και βάζει μπροστά από κάθε μήνυμα έναν δείκτη μηδέν τεσσάρων byte που δεν είναι ESP. Το ενθυλακωμένο ESP στην ίδια θύρα αρχίζει αντίθετα με ένα SPI ESP διάφορο του μηδενός, και ένα keepalive NAT ενός byte είναι μια τρίτη μορφή που εμφανίζεται όταν δεν συμβαίνει τίποτα άλλο.
Ένα φίλτρο που ταιριάζει μόνο τη θύρα αναμειγνύει και τα τρία, γι' αυτό το "υπάρχει κίνηση στη θύρα 4500" αποφασίζει τόσο λίγα. Χωρίστε την προβολή κατά πρωτόκολλο πριν συμπεράνετε οτιδήποτε για το απομακρυσμένο άκρο.
tshark -r ike.pcapng -Y "udp.port == 4500 && isakmp" -T fields -e frame.number -e isakmp.exchangetype tshark -r ike.pcapng -Y "udp.port == 4500 && !isakmp" -T fields -e frame.number -e esp.spi
Η σιωπή περιγράφει το σημείο παρατήρησης
Τα αιτήματα χωρίς απαντήσεις αποδεικνύουν ακριβώς ένα πράγμα: σε εκείνο το σημείο σύλληψης δεν εμφανίστηκε καμία απάντηση. Το φιλτράρισμα, μια διαδρομή που στέλνει την απάντηση αλλού, ένας αποκρινόμενος που δεν είναι προσβάσιμος ή ένας αποκρινόμενος που δεν του αρέσει η πρόταση παράγουν όλα το ίδιο κενό αποτέλεσμα, και μια γενική δοκιμή UDP δεν θα τα ξεχωρίσει.
Ένα ICMP unreachable είναι απόδειξη διαφορετικού είδους. Διαβάστε το πακέτο που παρατίθεται μέσα του και προσδιορίστε ποια συσκευή το εξέπεμψε, γιατί η διοικητική απόρριψη ενός δρομολογητή δεν είναι πιστοποιημένο σφάλμα από το απομακρυσμένο άκρο.
tshark -r ike.pcapng -Y "icmp.type == 3" -T fields -e frame.number -e ip.src -e icmp.code
Συσχετίστε την ίδια απόπειρα με αρχεία καταγραφής στην πλευρά του διακομιστή όπου επιτρέπεται να τα διαβάζετε. Έφτασε το αίτημα, απάντησε η υπηρεσία και πού σταμάτησε η απάντηση; Αυτές οι τρεις απαντήσεις σας στέλνουν σε πρόβλημα διαδρομής ή σε πρόβλημα πολιτικής, και κοστίζουν λιγότερο από μια τέταρτη αλλαγή διαπιστευτηρίων.