Τι είναι ο άνθρωπος στη μέση. Ανίχνευση επιθέσεων man-in-the-middle (επιθέσεις MitM)

15.05.2022

Ο άνθρωπος στη μέση επίθεση (MitM attack) είναι ένας όρος στην κρυπτογραφία που αναφέρεται σε μια κατάσταση όπου ένας εισβολέας είναι σε θέση να διαβάσει και να τροποποιήσει κατά βούληση τα μηνύματα που ανταλλάσσονται μεταξύ των ανταποκριτών και κανένας από τους τελευταίους δεν μπορεί να μαντέψει την ταυτότητά του .

Μια μέθοδος παραβίασης ενός καναλιού επικοινωνίας, στην οποία ένας εισβολέας, έχοντας συνδεθεί σε ένα κανάλι μεταξύ αντισυμβαλλομένων, παρεμβαίνει ενεργά στο πρωτόκολλο μετάδοσης, διαγράφοντας, παραμορφώνοντας πληροφορίες ή επιβάλλοντας ψευδείς πληροφορίες.

Αρχή επίθεσης:

Ας υποθέσουμε ότι το αντικείμενο "Α" σχεδιάζει να μεταδώσει κάποιες πληροφορίες στο αντικείμενο "Β". Το αντικείμενο "C" έχει γνώση σχετικά με τη δομή και τις ιδιότητες της μεθόδου μετάδοσης δεδομένων που χρησιμοποιείται, καθώς και το γεγονός της προγραμματισμένης μετάδοσης των πραγματικών πληροφοριών που ο "C" σχεδιάζει να υποκλέψει.

Για να κάνει μια επίθεση, το "C" φαίνεται να αντιτίθεται στο "A" ως "B" και στο "B" ως "A". Το αντικείμενο "Α", πιστεύοντας λανθασμένα ότι στέλνει πληροφορίες στο "Β", το στέλνει στο αντικείμενο "Γ".

Το αντικείμενο "C", έχοντας λάβει πληροφορίες και έχοντας πραγματοποιήσει ορισμένες ενέργειες μαζί του (για παράδειγμα, αντιγραφή ή τροποποίηση του για δικούς του σκοπούς), στέλνει τα δεδομένα στον ίδιο τον παραλήπτη - "B". Το αντικείμενο "Β", με τη σειρά του, πιστεύει ότι οι πληροφορίες ελήφθησαν απευθείας από το "Α".

Παράδειγμα επίθεσης MitM:

Ας υποθέσουμε ότι η Αλίκη αντιμετωπίζει οικονομικά προβλήματα και, χρησιμοποιώντας ένα πρόγραμμα άμεσων μηνυμάτων, αποφασίζει να ζητήσει από τον John ένα χρηματικό ποσό στέλνοντας το μήνυμα:
Αλίκη: Γιάννη, γεια!
Αλίκη: Στείλτε μου το κλειδί κρυπτογράφησης, έχω ένα μικρό αίτημα!
Γιάννης: Γειά σου! Περίμενε ένα δευτερόλεπτο!

Όμως, αυτή τη στιγμή, ο κ. Χ, ο οποίος, ενώ ανέλυε την κίνηση χρησιμοποιώντας ένα sniffer, παρατήρησε αυτό το μήνυμα και οι λέξεις «κλειδί κρυπτογράφησης» προκάλεσαν την περιέργεια. Γι' αυτό αποφάσισε να υποκλέψει τα παρακάτω μηνύματα και να τα αντικαταστήσει με τα δεδομένα που χρειαζόταν και όταν έλαβε το ακόλουθο μήνυμα:
Γιάννης: Εδώ είναι το κλειδί μου: 1111_D

Άλλαξε το κλειδί του Τζον με δικό του και έστειλε ένα μήνυμα στην Αλίκη:
Γιάννης: Εδώ είναι το κλειδί μου: 6666_M

Η Αλίκη, αγνοώντας και νομίζοντας ότι είναι το κλειδί του John, χρησιμοποιώντας το ιδιωτικό κλειδί 6666_M, στέλνει κρυπτογραφημένα μηνύματα στον John:
Αλίκη: Γιάννη, έχω προβλήματα και χρειάζομαι επειγόντως χρήματα, μεταφέρετε 300 $ στον λογαριασμό μου: Z12345. Σας ευχαριστώ. p.s. Το κλειδί μου: 2222_A

Έχοντας λάβει το μήνυμα, ο κ. Χ το αποκρυπτογραφεί χρησιμοποιώντας το κλειδί του, το διαβάζει και, με χαρά, αλλάζει τον αριθμό λογαριασμού και το κλειδί κρυπτογράφησης της Αλίκης σε δικά του, κρυπτογραφεί το μήνυμα με το κλειδί 1111_D, και στέλνει στον Γιάννη ένα μήνυμα:
Αλίκη: Γιάννη, έχω προβλήματα και χρειάζομαι επειγόντως χρήματα, μεταφέρετε 300 $ στον λογαριασμό μου: Z67890. Σας ευχαριστώ. p.s. Το κλειδί μου: 6666_A

Αφού λάβει το μήνυμα, ο John το αποκρυπτογραφεί χρησιμοποιώντας το κλειδί 1111_D, και χωρίς καν να διστάσει, θα μεταφέρει χρήματα στον λογαριασμό Z67890...

Και έτσι, ο κύριος Χ, χρησιμοποιώντας την επίθεση man-in-the-middle, κέρδισε 300 δολάρια, αλλά η Αλίκη θα πρέπει τώρα να εξηγήσει ότι δεν έλαβε τα χρήματα... Και ο Τζον; Ο Τζον πρέπει να αποδείξει στην Αλίκη ότι τους έστειλε...

Εκτέλεση:

Αυτός ο τύπος επίθεσης χρησιμοποιείται σε ορισμένους προϊόντα λογισμικούγια να ακούσετε το δίκτυο, για παράδειγμα:
NetStumbler- ένα πρόγραμμα με το οποίο μπορείτε να συλλέξετε πολλά χρήσιμα δεδομένα ασύρματο δίκτυοκαι να λύσει ορισμένα προβλήματα που σχετίζονται με τη λειτουργία του. Το NetStumbler σάς επιτρέπει να προσδιορίζετε την εμβέλεια του δικτύου σας και σας βοηθά να κατευθύνετε με ακρίβεια την κεραία σας για επικοινωνίες μεγάλων αποστάσεων. Για κάθε σημείο πρόσβασης που βρέθηκε, μπορείτε να μάθετε τη διεύθυνση MAC, την αναλογία σήματος προς θόρυβο, το όνομα της υπηρεσίας και τον βαθμό ασφάλειάς της. Εάν η κίνηση δεν είναι κρυπτογραφημένη, τότε η δυνατότητα του προγράμματος να ανιχνεύει μη εξουσιοδοτημένες συνδέσεις θα είναι χρήσιμη.

dsniff- είναι ένα σύνολο προγραμμάτων για έλεγχο δικτύου και δοκιμές διείσδυσης, που παρέχουν παθητική παρακολούθηση δικτύου για αναζήτηση δεδομένων ενδιαφέροντος (κωδικοί πρόσβασης, διευθύνσεις e-mail, αρχεία, κ.λπ.), υποκλοπή κίνησης δικτύου που κανονικά δεν θα ήταν προσβάσιμη για ανάλυση (για παράδειγμα, σε δίκτυο μεταγωγής), καθώς και τη δυνατότητα οργάνωσης επιθέσεων MITM για την αναχαίτιση περιόδων σύνδεσης SSH και HTTPS με εκμετάλλευση ελαττωμάτων PKI.

Κάιν & Άβελ - δωρεάν πρόγραμμα, που σας επιτρέπει να ανακτήσετε χαμένους κωδικούς πρόσβασης για λειτουργικά συστήματαΟικογένεια Windows. Υποστηρίζονται πολλές λειτουργίες ανάκτησης: brute force hacking, επιλογή λεξικού, προβολή κωδικών πρόσβασης που κρύβονται με αστερίσκους κ.λπ. Υπάρχουν επίσης επιλογές για τον προσδιορισμό ενός κωδικού πρόσβασης με την υποκλοπή πακέτων πληροφοριών και την επακόλουθη ανάλυσή τους, την εγγραφή συνομιλιών δικτύου, την ανάλυση της κρυφής μνήμης και άλλα.

Ettercap- είναι ένας ανιχνευτής, ένας υποκλοπής πακέτων και ένας καταγραφέας για τοπικά δίκτυα Ethernet, που υποστηρίζει ενεργή και παθητική ανάλυση πολλαπλών πρωτοκόλλων και είναι επίσης δυνατό να "ρίξετε" τα δικά σας δεδομένα σε μια υπάρχουσα σύνδεση και να φιλτράρετε "on the fly" χωρίς διακοπή της σύνδεσης συγχρονισμός. Το πρόγραμμα σάς επιτρέπει να παρακολουθείτε SSH1, HTTPS και άλλα ασφαλή πρωτόκολλα και παρέχει τη δυνατότητα αποκρυπτογράφησης κωδικών πρόσβασης για τα ακόλουθα πρωτόκολλα: TELNET, ftp, POP, RLOGIN, SSH1, icq, SMB, Mysql, HTTP, NNTP, X11, NAPSTER, IRC , RIP, BGP, SOCKS 5, IMAP 4, VNC, LDAP, NFS, SNMP, HALF LIFE, QUAKE 3, MSN, YMSG.

ΚΑΡΜΑ– ένα σύνολο βοηθητικών προγραμμάτων για την αξιολόγηση της ασφάλειας των ασύρματων πελατών, είναι ένας ασύρματος ανιχνευτής που, ακούγοντας παθητικά τα πλαίσια αιτήματος 802.11 Probe, σας επιτρέπει να ανιχνεύετε πελάτες και τα προτιμώμενα/ αξιόπιστα δίκτυά τους. Στη συνέχεια, μπορεί να δημιουργηθεί ένα ψεύτικο σημείο πρόσβασης για ένα από τα ζητούμενα δίκτυα, στο οποίο μπορεί να συνδεθεί αυτόματα. Οι ψεύτικες υπηρεσίες υψηλού επιπέδου μπορούν να χρησιμοποιηθούν για την κλοπή προσωπικών δεδομένων ή την εκμετάλλευση ευπαθειών πελατών στον κεντρικό υπολογιστή.

AirJack- ένα σύνολο προγραμμάτων που, σύμφωνα με ειδικούς στον τομέα του WiFi hacking, είναι καλύτερο εργαλείογια να δημιουργήσετε διάφορα καρέ 802.11. Το AirJack περιλαμβάνει μια σειρά από βοηθητικά προγράμματα που έχουν σχεδιαστεί για τον εντοπισμό κρυφών ESSID, την αποστολή πλαισίων τερματισμού συνεδρίας με ένα ψεύτικο MAC, τη διεξαγωγή επιθέσεων MitM και την τροποποίηση του.

Αντίδραση:

Για να αποφευχθούν επιθέσεις αυτού του τύπου, οι συνδρομητές "Α" και "Β" χρειάζεται μόνο να μεταδίδουν μεταξύ τους χρησιμοποιώντας ένα αξιόπιστο κανάλι ψηφιακές υπογραφέςδημόσια κλειδιά κρυπτογράφησης. Στη συνέχεια, κατά τη σύγκριση των υπογραφών κλειδιών σε περιόδους κρυπτογράφησης, θα είναι δυνατό να προσδιοριστεί ποιο κλειδί χρησιμοποιήθηκε για την κρυπτογράφηση των δεδομένων και εάν τα κλειδιά έχουν αντικατασταθεί.

Υπάρχουν σχεδόν πάντα διάφοροι τρόποι για να επιτευχθεί το επιθυμητό αποτέλεσμα. Αυτό ισχύει και για τον τομέα της ασφάλειας πληροφοριών. Μερικές φορές, για να πετύχετε έναν στόχο, μπορείτε να χρησιμοποιήσετε ωμή βία, να αναζητήσετε τρύπες και να αναπτύξετε μόνοι σας εκμεταλλεύσεις ή να ακούσετε τι μεταδίδεται μέσω του δικτύου. Εξάλλου τελευταία επιλογήείναι συχνά η βέλτιστη. Γι' αυτό σήμερα θα μιλήσουμε για εργαλεία που θα μας βοηθήσουν να συλλάβουμε πληροφορίες που είναι πολύτιμες για εμάς από την κυκλοφορία δικτύου, χρησιμοποιώντας επιθέσεις MITM για αυτό.

MITMf

Ας ξεκινήσουμε με έναν από τους πιο ενδιαφέροντες υποψήφιους. Αυτό είναι ένα ολόκληρο πλαίσιο διεξαγωγής επιθέσεις άνθρωπος στη μέση, χτισμένο πάνω σε sergio-proxy. Πρόσφατα συμπεριλήφθηκε σε Kali Linux. Για να το εγκαταστήσετε μόνοι σας, απλώς κλωνοποιήστε το αποθετήριο και εκτελέστε μερικές εντολές:

# setup.sh # pip install -r απαιτήσεις.txt

# pip install -r απαιτήσεις.txt

Έχει μια αρχιτεκτονική που είναι επεκτάσιμη μέσω πρόσθετων. Ανάμεσα στα κυριότερα είναι τα εξής:

  • Spoof - σας επιτρέπει να ανακατευθύνετε την κυκλοφορία χρησιμοποιώντας πλαστογράφηση ARP/DHCP, ανακατευθύνσεις ICMP και να τροποποιείτε ερωτήματα DNS.
  • Sniffer - αυτό το πρόσθετο παρακολουθεί τις προσπάθειες σύνδεσης για διάφορα πρωτόκολλα.
  • BeEFAutorun - σας επιτρέπει να εκκινείτε αυτόματα μονάδες BeEF με βάση τον τύπο του λειτουργικού συστήματος και του προγράμματος περιήγησης πελάτη.
  • AppCachePoison - πραγματοποιεί επίθεση δηλητηρίασης κρυφής μνήμης.
  • SessionHijacking - παρασύρει τις συνεδρίες και αποθηκεύει τα cookie που προκύπτουν στο προφίλ Firefly.
  • BrowserProfiler - προσπαθεί να λάβει μια λίστα προσθηκών που χρησιμοποιούνται από το πρόγραμμα περιήγησης.
  • FilePwn - σας επιτρέπει να αντικαταστήσετε αρχεία που αποστέλλονται μέσω HTTP χρησιμοποιώντας το Backdoor Factory και το BDFProxy.
  • Inject - εισάγει αυθαίρετο περιεχόμενο σε μια σελίδα HTML.
  • jskeylogger - ενσωματώνει ένα JavaScript keylogger σε σελίδες πελατών.

Εάν αυτή η λειτουργία σας φαίνεται ανεπαρκής, τότε μπορείτε πάντα να προσθέσετε τη δική σας εφαρμόζοντας την κατάλληλη επέκταση.

PuttyRider

Ένα άλλο βοηθητικό πρόγραμμα που αξίζει προσοχής. Είναι αλήθεια ότι σε αντίθεση με όλα τα άλλα εργαλεία που εξετάζονται σήμερα, είναι πολύ στενά εξειδικευμένο. Όπως λέει ο ίδιος ο συγγραφέας του έργου, εμπνεύστηκε τη δημιουργία ενός τέτοιου βοηθητικού προγράμματος από το γεγονός ότι κατά τη διάρκεια των δοκιμών διείσδυσης, τα πιο σημαντικά δεδομένα βρίσκονταν σε διακομιστές Linux/UNIX, στους οποίους οι διαχειριστές συνδέονταν μέσω SSH/Telnet/rlogin. Επιπλέον, στις περισσότερες περιπτώσεις, ήταν πολύ πιο εύκολο να αποκτήσετε πρόσβαση στο μηχάνημα των διαχειριστών παρά στον διακομιστή προορισμού. Έχοντας διεισδύσει στο μηχάνημα του διαχειριστή του συστήματος, το μόνο που μένει είναι να βεβαιωθείτε ότι το PuTTY εκτελείται και, χρησιμοποιώντας αυτό το εργαλείο, να δημιουργήσετε μια γέφυρα πίσω στον εισβολέα.

Το βοηθητικό πρόγραμμα σάς επιτρέπει όχι μόνο να καταγράφετε την "επικοινωνία" μεταξύ του διαχειριστή και του απομακρυσμένος διακομιστής(συμπεριλαμβανομένων των κωδικών πρόσβασης), αλλά και να εκτελούν αυθαίρετες εντολές φλοιού μέσα σε μια δεδομένη συνεδρία. Επιπλέον, όλα αυτά θα συμβαίνουν με απόλυτη διαφάνεια για τον χρήστη (διαχειριστή). Εάν ενδιαφέρεστε για τεχνικές λεπτομέρειες, για παράδειγμα, πώς εφαρμόζεται το PuTTY στη διαδικασία, σας συνιστώ να διαβάσετε την παρουσίαση του συγγραφέα.

Αρκετά παλιά χρησιμότητα, που γεννήθηκε πριν από περισσότερα από οκτώ χρόνια. Προορίζεται για συνεδρίες κλωνοποίησης με κλοπή cookies. Για την παραβίαση συνεδριών, έχει βασικές δεξιότητες στον εντοπισμό κεντρικών υπολογιστών (εάν είναι συνδεδεμένος σε ανοιχτό ασύρματο δίκτυο ή διανομέα) και στη διεξαγωγή δηλητηρίασης ARP. Το μόνο πρόβλημα είναι ότι σήμερα, σε αντίθεση με πριν από οκτώ χρόνια, σχεδόν όλες οι μεγάλες εταιρείες όπως το Yahoo ή το Facebook χρησιμοποιούν κρυπτογράφηση SSL, γεγονός που καθιστά αυτό το εργαλείο εντελώς άχρηστο. Παρόλα αυτά, υπάρχουν ακόμα αρκετοί πόροι στο Διαδίκτυο που δεν χρησιμοποιούν SSL, επομένως είναι πολύ νωρίς για να διαγραφεί το βοηθητικό πρόγραμμα. Στα πλεονεκτήματά του συγκαταλέγεται το γεγονός ότι ενσωματώνεται αυτόματα στον Firefox και δημιουργεί ξεχωριστό προφίλ για κάθε υποκλοπή συνεδρίας. Πηγαίος κώδικαςείναι διαθέσιμο στο αποθετήριο και μπορείτε να το δημιουργήσετε μόνοι σας χρησιμοποιώντας την ακόλουθη σειρά εντολών:

# apt-get install build-essential libwxgtk2.8-dev libgtk2.0-dev libpcap-dev # g++ $(wx-config --cppflags --libs) -lpcap -o sessionthief *.cpp # setcap cap_net_raw,cap_net_admin=eip συνεδριακός κλέφτης

# apt-get install build-essential libwxgtk2.8-dev libgtk2.0-dev libpcap-dev

# g++ $(wx-config --cppflags --libs) -lpcap -o sessionthief *.cpp

# setcap cap_net_raw,cap_net_admin=eip sessionthief

ProxyFuzz

Το ProzyFuzz δεν έχει καμία σχέση άμεσα με τη διεξαγωγή επιθέσεων MITM. Όπως μπορείτε να μαντέψετε από το όνομα, το εργαλείο έχει σχεδιαστεί για fuzzing. Αυτό είναι ένα μικρό μη ντετερμινιστικό δίκτυο fuzzer, που υλοποιείται στην Python, που αλλάζει τυχαία τα περιεχόμενα των πακέτων κίνησης δικτύου. Υποστηρίζει Πρωτόκολλα TCPκαι UDP. Μπορείτε να το ρυθμίσετε ώστε να θολά μόνο τη μία πλευρά. Είναι χρήσιμο όταν πρέπει να δοκιμάσετε γρήγορα κάποια εφαρμογή δικτύου (ή πρωτόκολλο) και να αναπτύξετε ένα PoC. Παράδειγμα χρήσης:

Python proxyfuzz -l -r -σελ

python proxyfuzz -l -r -σελ

Η λίστα επιλογών περιλαμβάνει:

  • w - καθορίζει τον αριθμό των αιτημάτων που αποστέλλονται πριν από την έναρξη του fuzzing.
  • γ - fuzz μόνο ο πελάτης (αλλιώς και οι δύο πλευρές).
  • s - fuzz μόνο ο διακομιστής (αλλιώς και οι δύο πλευρές).
  • u - Πρωτόκολλο UDP (αλλιώς χρησιμοποιείται TCP).

The Middler

Ένα βοηθητικό πρόγραμμα για τη διεξαγωγή επιθέσεων MITM σε διάφορα πρωτόκολλα που παρουσιάστηκε στη διάσκεψη DEF CON. Η έκδοση άλφα υποστήριζε το πρωτόκολλο HTTP και είχε τρία δροσερά πρόσθετα στο οπλοστάσιό της:

  • plugin-beef.py - εισάγει το πλαίσιο εκμετάλλευσης προγράμματος περιήγησης (BeEF) σε οποιοδήποτε αίτημα HTTP που προέρχεται από το τοπικό δίκτυο.
  • plugin-metasploit.py - ενσωματώνει ένα IFRAME σε μη κρυπτογραφημένα (HTTP) αιτήματα, τα οποία φορτώνουν εκμεταλλεύσεις προγράμματος περιήγησης από το Metasploit.
  • plugin-keylogger.py - ενσωματώνει ένα πρόγραμμα χειρισμού συμβάντων JavaScript onKeyPress για όλα τα πεδία κειμένου που θα υποβληθούν μέσω HTTPS, αναγκάζοντας το πρόγραμμα περιήγησης να στείλει τον κωδικό πρόσβασης που έχει εισαχθεί από τον χρήστη χαρακτήρα προς χαρακτήρα στον διακομιστή του εισβολέα πριν από την υποβολή ολόκληρης της φόρμας.

Ο Μίντλερ όχι μόνο αναλύει αυτόματα κυκλοφορίας δικτύουκαι βρίσκει cookies σε αυτό, αλλά και ανεξάρτητα τα ζητά από τον πελάτη, δηλαδή η διαδικασία αυτοματοποιείται στο μέγιστο. Το πρόγραμμα εγγυάται τη συλλογή όλων των μη προστατευμένων λογαριασμών δίκτυο υπολογιστών(ή δημόσιο hotspot) στην κυκλοφορία του οποίου έχει πρόσβαση. Για να λειτουργήσει σωστά το πρόγραμμα, πρέπει να εγκατασταθούν στο σύστημα τα ακόλουθα πακέτα: Scapy, libpcap, readline, libdnet, python-netfilter. Δυστυχώς, το αποθετήριο δεν έχει ενημερωθεί εδώ και πολύ καιρό, επομένως θα πρέπει να προσθέσετε νέες λειτουργίες μόνοι σας.

Ένα βοηθητικό πρόγραμμα κονσόλας που σας επιτρέπει να εξετάζετε και να τροποποιείτε διαδραστικά την κυκλοφορία HTTP. Χάρη σε τέτοιες δεξιότητες, το βοηθητικό πρόγραμμα χρησιμοποιείται όχι μόνο από pentesters/hackers, αλλά και από απλούς προγραμματιστές που το χρησιμοποιούν, για παράδειγμα, για τον εντοπισμό σφαλμάτων σε εφαρμογές web. Με τη βοήθειά του μπορείτε να λάβετε λεπτομερείς πληροφορίεςσχετικά με τα αιτήματα που υποβάλλει η εφαρμογή και τις απαντήσεις που λαμβάνει. Επίσης, το mitmproxy μπορεί να βοηθήσει στη μελέτη των ιδιαιτεροτήτων της λειτουργίας ορισμένων API REST, ειδικά εκείνων που είναι ελάχιστα τεκμηριωμένα.

Η εγκατάσταση είναι εξαιρετικά απλή:

$ sudo aptitude εγκατάσταση mitmproxy

Αξίζει να σημειωθεί ότι το mitmproxy σάς επιτρέπει επίσης να παρακολουθείτε την κυκλοφορία HTTPS εκδίδοντας ένα αυτο-υπογεγραμμένο πιστοποιητικό στον πελάτη. Καλό παράδειγμαΜπορείτε να μάθετε πώς να διαμορφώνετε την παρακολούθηση και την τροποποίηση της κυκλοφορίας.

Dsniff

Λοιπόν, αυτό το βοηθητικό πρόγραμμα είναι γενικά ένα από τα πρώτα πράγματα που πρέπει να έρχονται στο μυαλό μόλις το ακούσετε
«Επίθεση MITM». Το εργαλείο είναι αρκετά παλιό, αλλά συνεχίζει να ενημερώνεται ενεργά, κάτι που είναι καλά νέα. Δεν έχει νόημα να μιλήσουμε λεπτομερώς για τις δυνατότητές του τα δεκατέσσερα χρόνια της ύπαρξής του, έχει καλυφθεί στο Διαδίκτυο περισσότερες από μία φορές. Για παράδειγμα, σε έναν οδηγό όπως αυτός:

ή οδηγίες από την ιστοσελίδα μας:

Εν τέλει..

Ως συνήθως, δεν έχουμε εξετάσει όλα τα βοηθητικά προγράμματα, αλλά μόνο τα πιο δημοφιλή, υπάρχουν επίσης πολλά ελάχιστα γνωστά έργα για τα οποία μπορεί να μιλήσουμε κάποια μέρα. Όπως μπορείτε να δείτε, δεν υπάρχει έλλειψη εργαλείων για την πραγματοποίηση επιθέσεων MITM και, κάτι που δεν συμβαίνει πολύ συχνά, ένα από τα πιο δροσερά εργαλεία εφαρμόζεται για τα Windows. Δεν υπάρχει τίποτα να πούμε για συστήματα nix - μια ολόκληρη ποικιλία. Επομένως, νομίζω ότι μπορείτε πάντα να βρείτε το κατάλληλο εργαλείο για κλοπή
διαπιστευτήρια άλλων ανθρώπων. Ωχ, δηλαδή για δοκιμή.

Αρχή επίθεσης

Η επίθεση συνήθως ξεκινά με υποκλοπή στο κανάλι επικοινωνίας και τελειώνει με τον κρυπτοαναλυτή να προσπαθεί να αντικαταστήσει το υποκλαπόμενο μήνυμα και να αποσπάσει χρήσιμες πληροφορίες, το ανακατευθύνετε σε κάποιον εξωτερικό πόρο.

Ας υποθέσουμε ότι το αντικείμενο Α σχεδιάζει να μεταδώσει κάποιες πληροφορίες στο αντικείμενο Β. Το αντικείμενο C έχει γνώση σχετικά με τη δομή και τις ιδιότητες της χρησιμοποιούμενης μεθόδου μετάδοσης δεδομένων, καθώς και το γεγονός της προγραμματισμένης μετάδοσης των πραγματικών πληροφοριών που ο C σχεδιάζει να υποκλέψει. Για να πραγματοποιήσει μια επίθεση, ο C «εμφανίζεται» στο αντικείμενο Α ως Β, και στον Β ως Α. Το αντικείμενο Α, πιστεύοντας λανθασμένα ότι στέλνει πληροφορίες στον Β, τις στέλνει στο αντικείμενο Γ. Το αντικείμενο Γ, έχοντας λάβει τις πληροφορίες, και εκτελεί ορισμένες ενέργειες με αυτό (για παράδειγμα, αντιγραφή ή τροποποίηση για δικούς τους σκοπούς) προωθεί τα δεδομένα στον ίδιο τον παραλήπτη - Β. Το αντικείμενο Β, με τη σειρά του, πιστεύει ότι οι πληροφορίες ελήφθησαν απευθείας από τον Α.

Παράδειγμα επίθεσης

Έγχυση κακόβουλου κώδικα

Μια επίθεση man-in-the-middle επιτρέπει σε έναν κρυπτοαναλυτή να εισαγάγει τον κώδικά του email, εκφράσεις SQL και ιστοσελίδες (δηλαδή, επιτρέπει ενέσεις SQL, εγχύσεις HTML/script ή επιθέσεις XSS) και ακόμη και τροποποιήσεις που φορτώνονται από τον χρήστη δυαδικά αρχείαγια πρόσβαση λογαριασμόςχρήστη ή αλλαγή της συμπεριφοράς ενός προγράμματος που έχει κατεβάσει ο χρήστης από το Διαδίκτυο.

Υποβάθμιση επίθεσης

Ο όρος «Επίθεση υποβάθμισης» αναφέρεται σε μια επίθεση κατά την οποία ένας κρυπτοαναλυτής αναγκάζει τον χρήστη να χρησιμοποιεί λιγότερο ασφαλείς λειτουργίες, πρωτόκολλα που εξακολουθούν να υποστηρίζονται για λόγους συμβατότητας. Αυτός ο τύπος επίθεσης μπορεί να πραγματοποιηθεί στα πρωτόκολλα SSH, IPsec και PPTP.

SSH V1 αντί για SSH V2

Ένας εισβολέας μπορεί να προσπαθήσει να αλλάξει τις παραμέτρους σύνδεσης μεταξύ του διακομιστή και του πελάτη όταν δημιουργηθεί μια σύνδεση μεταξύ τους. Σύμφωνα με μια ομιλία στο Blackhat Conference Europe 2003, ένας cryptanalyst μπορεί να "αναγκάσει" έναν πελάτη να ξεκινήσει μια συνεδρία SSH1 αντί για SSH2 αλλάζοντας τον αριθμό έκδοσης "1.99" για τη συνεδρία SSH σε "1.51", που σημαίνει ότι χρησιμοποιεί SSH V1 . Το πρωτόκολλο SSH-1 έχει ευπάθειες που μπορούν να αξιοποιηθούν από έναν κρυπτοαναλυτή.

IPsec

Σε αυτό το σενάριο επίθεσης, ο κρυπτοαναλυτής παραπλανά το θύμα του και πιστεύει ότι η περίοδος σύνδεσης IPsec δεν μπορεί να ξεκινήσει στο άλλο άκρο (διακομιστής). Αυτό έχει ως αποτέλεσμα τα μηνύματα να αποστέλλονται ρητά εάν ο κεντρικός υπολογιστής λειτουργεί σε λειτουργία επαναφοράς.

PPTP

Στο στάδιο της διαπραγμάτευσης των παραμέτρων της περιόδου σύνδεσης PPTP, ο εισβολέας μπορεί να αναγκάσει το θύμα να χρησιμοποιήσει λιγότερο ασφαλή έλεγχο ταυτότητας PAP, MSCHAP V1 (δηλαδή, "επιστροφή" από το MSCHAP V2 στην έκδοση 1), ή να μην χρησιμοποιήσει καθόλου κρυπτογράφηση.

Ένας εισβολέας μπορεί να αναγκάσει το θύμα του να επαναλάβει το στάδιο της διαπραγμάτευσης των παραμέτρων της περιόδου λειτουργίας PPTP (να στείλει ένα πακέτο Terminate-Ack), να κλέψει τον κωδικό πρόσβασης από ένα υπάρχον τούνελ και να επαναλάβει την επίθεση.

Θα βοηθήσει η κρυπτογράφηση;

Ας εξετάσουμε την περίπτωση μιας τυπικής συναλλαγής HTTP. Σε αυτήν την περίπτωση, ένας εισβολέας μπορεί πολύ εύκολα να χωρίσει την αρχική σύνδεση TCP σε δύο νέες: μία μεταξύ του ίδιου και του πελάτη, η άλλη μεταξύ του ίδιου και του διακομιστή. Αυτό είναι αρκετά εύκολο να γίνει, καθώς πολύ σπάνια η σύνδεση μεταξύ πελάτη και διακομιστή είναι άμεση και στις περισσότερες περιπτώσεις συνδέονται μέσω ενός αριθμού ενδιάμεσων διακομιστών. Μια επίθεση MITM μπορεί να πραγματοποιηθεί σε οποιονδήποτε από αυτούς τους διακομιστές.

Ωστόσο, εάν ο πελάτης και ο διακομιστής επικοινωνούν χρησιμοποιώντας HTTPS, ένα πρωτόκολλο που υποστηρίζει κρυπτογράφηση, μπορεί επίσης να πραγματοποιηθεί μια επίθεση man-in-the-middle. Αυτός ο τύπος σύνδεσης χρησιμοποιεί TLS ή SSL για την κρυπτογράφηση αιτημάτων, κάτι που φαίνεται να προστατεύει το κανάλι από sniffing και επιθέσεις MITM. Ένας εισβολέας μπορεί να δημιουργήσει δύο ανεξάρτητες περιόδους σύνδεσης SSL για κάθε σύνδεση TCP. Ο πελάτης δημιουργεί μια σύνδεση SSL με τον εισβολέα, ο οποίος με τη σειρά του δημιουργεί μια σύνδεση με τον διακομιστή. Σε τέτοιες περιπτώσεις, το πρόγραμμα περιήγησης συνήθως προειδοποιεί ότι το πιστοποιητικό δεν είναι υπογεγραμμένο από αξιόπιστη αρχή πιστοποίησης, αλλά ο μέσος χρήστης αγνοεί εύκολα αυτήν την προειδοποίηση. Επιπλέον, ο εισβολέας μπορεί να έχει πιστοποιητικό υπογεγραμμένο από αρχή πιστοποίησης. Έτσι, το πρωτόκολλο HTTPS δεν μπορεί να θεωρηθεί ασφαλές έναντι επιθέσεων MITM.

Ανίχνευση επίθεσης MITM

Για να εντοπίσετε μια επίθεση man-in-the-middle, πρέπει να αναλύσετε την κίνηση του δικτύου. Για παράδειγμα, για να εντοπίσετε μια επίθεση SSL, θα πρέπει να δώσετε προσοχή στις ακόλουθες παραμέτρους:

  • Διεύθυνση IP διακομιστή
  • Διακομιστής DNS
  • X.509 - πιστοποιητικό διακομιστή
    • Το πιστοποιητικό είναι αυτουπογεγραμμένο;
    • Είναι υπογεγραμμένο το πιστοποιητικό;
    • Έχει ανακληθεί το πιστοποιητικό;
    • Έχει αλλάξει πρόσφατα το πιστοποιητικό;
    • Έχουν λάβει άλλοι πελάτες στο Διαδίκτυο το ίδιο πιστοποιητικό;

Εφαρμογές επίθεσης MITM

Τα προγράμματα που αναφέρονται μπορούν να χρησιμοποιηθούν για την πραγματοποίηση επιθέσεων man-in-the-middle, καθώς και για τον εντοπισμό τους και τον έλεγχο του συστήματος για τρωτά σημεία.

Παράδειγμα στη βιβλιογραφία

Ένα ξεκάθαρο λογοτεχνικό παράδειγμα μπορεί να δει κανείς στο «The Tale of Tsar Saltan» του A. S. Pushkin, όπου εμφανίζονται τρεις «άνθρωποι στη μέση»: ένας υφαντής, ένας μάγειρας και ο Babarikha. Είναι αυτοί που αντικαθιστούν τις επιστολές που απευθύνονται στον Τσάρο και την αλληλογραφία απάντησής του.

Δείτε επίσης

  • Aspidistra (Αγγλικά) - Βρετανικός πομπός ραδιοφώνου που χρησιμοποιήθηκε κατά τη διάρκεια της «εισβολής» του Β' Παγκοσμίου Πολέμου, μια παραλλαγή της επίθεσης MITM.
  • The Babington Plot (Αγγλικά) - μια συνωμοσία εναντίον της Elizabeth I, κατά την οποία ο Walsingham έκλεψε αλληλογραφία.

Άλλες επιθέσεις

  • Το "Man in the Browser" είναι ένας τύπος επίθεσης κατά τον οποίο ο εισβολέας μπορεί να αλλάξει άμεσα τις παραμέτρους της συναλλαγής και να αλλάξει σελίδες εντελώς διαφανείς για το θύμα.
  • Η επίθεση "Meet-in-the-middle" είναι μια κρυπτογραφική επίθεση που, όπως και η επίθεση γενεθλίων, εκμεταλλεύεται έναν συμβιβασμό μεταξύ χρόνου και μνήμης.
  • «Δεσποινίς στη μέση επίθεση» - αποτελεσματική μέθοδοςη λεγόμενη αδύνατη διαφορική κρυπτανάλυση.
  • Η επίθεση αναμετάδοσης είναι μια παραλλαγή μιας επίθεσης MITM που βασίζεται στην προώθηση ενός υποκλαπόμενου μηνύματος σε έναν έγκυρο παραλήπτη, αλλά όχι σε αυτόν για τον οποίο προοριζόταν το μήνυμα.
  • Το rootkit είναι ένα πρόγραμμα που έχει σχεδιαστεί για να κρύβει τα ίχνη της παρουσίας ενός εισβολέα.

Λογοτεχνία

Εδαφος διά παιγνίδι γκολφ


Ίδρυμα Wikimedia.

2010.

    Δείτε τι είναι το "Man in the Middle" σε άλλα λεξικά:

Υπάρχουν σχεδόν πάντα διάφοροι τρόποι για να επιτευχθεί το επιθυμητό αποτέλεσμα. Αυτό ισχύει και για τον τομέα της ασφάλειας πληροφοριών. Μερικές φορές, για να πετύχετε έναν στόχο, μπορείτε να χρησιμοποιήσετε ωμή βία, να αναζητήσετε τρύπες και να αναπτύξετε μόνοι σας εκμεταλλεύσεις ή να ακούσετε τι μεταδίδεται μέσω του δικτύου. Επιπλέον, η τελευταία επιλογή είναι συχνά η βέλτιστη. Γι' αυτό σήμερα θα μιλήσουμε για εργαλεία που θα μας βοηθήσουν να συλλάβουμε πληροφορίες που είναι πολύτιμες για εμάς από την κυκλοφορία δικτύου, χρησιμοποιώντας επιθέσεις MITM για αυτό.

MITMf

Ας ξεκινήσουμε με έναν από τους πιο ενδιαφέροντες υποψήφιους. Αυτό είναι ένα ολόκληρο πλαίσιο για τη διεξαγωγή επιθέσεων man-in-the-middle, χτισμένο με βάση το sergio-proxy. Πρόσφατα συμπεριλήφθηκε στο Kali Linux. Για να το εγκαταστήσετε μόνοι σας, απλώς κλωνοποιήστε το αποθετήριο και εκτελέστε μερικές εντολές:

# setup.sh # pip install -r απαιτήσεις.txt

Έχει μια αρχιτεκτονική που είναι επεκτάσιμη μέσω πρόσθετων. Ανάμεσα στα κυριότερα είναι τα εξής:

  • Spoof - σας επιτρέπει να ανακατευθύνετε την κυκλοφορία χρησιμοποιώντας πλαστογράφηση ARP/DHCP, ανακατευθύνσεις ICMP και να τροποποιείτε ερωτήματα DNS.
  • Sniffer - αυτό το πρόσθετο παρακολουθεί τις προσπάθειες σύνδεσης για διάφορα πρωτόκολλα.
  • BeEFAutorun - σας επιτρέπει να εκκινείτε αυτόματα μονάδες BeEF με βάση τον τύπο του λειτουργικού συστήματος και του προγράμματος περιήγησης πελάτη.
  • AppCachePoison - πραγματοποιεί επίθεση δηλητηρίασης κρυφής μνήμης.
  • SessionHijacking - παρασύρει τις συνεδρίες και αποθηκεύει τα cookie που προκύπτουν στο προφίλ Firefly.
  • BrowserProfiler - προσπαθεί να λάβει μια λίστα προσθηκών που χρησιμοποιούνται από το πρόγραμμα περιήγησης.
  • FilePwn - σας επιτρέπει να αντικαταστήσετε αρχεία που αποστέλλονται μέσω HTTP χρησιμοποιώντας το Backdoor Factory και το BDFProxy.
  • Inject - εισάγει αυθαίρετο περιεχόμενο σε μια σελίδα HTML.
  • jskeylogger - ενσωματώνει ένα JavaScript keylogger σε σελίδες πελατών.

Εάν αυτή η λειτουργία σας φαίνεται ανεπαρκής, τότε μπορείτε πάντα να προσθέσετε τη δική σας εφαρμόζοντας την κατάλληλη επέκταση.

PuttyRider

Ένα άλλο βοηθητικό πρόγραμμα που αξίζει προσοχής. Είναι αλήθεια ότι σε αντίθεση με όλα τα άλλα εργαλεία που εξετάζονται σήμερα, είναι πολύ στενά εξειδικευμένο. Όπως λέει ο ίδιος ο συγγραφέας του έργου, εμπνεύστηκε τη δημιουργία ενός τέτοιου βοηθητικού προγράμματος από το γεγονός ότι κατά τη διάρκεια των δοκιμών διείσδυσης, τα πιο σημαντικά δεδομένα βρίσκονταν σε διακομιστές Linux/UNIX, στους οποίους οι διαχειριστές συνδέονταν μέσω SSH/Telnet/rlogin. Επιπλέον, στις περισσότερες περιπτώσεις, ήταν πολύ πιο εύκολο να αποκτήσετε πρόσβαση στο μηχάνημα των διαχειριστών παρά στον διακομιστή προορισμού. Έχοντας διεισδύσει στο μηχάνημα του διαχειριστή του συστήματος, το μόνο που μένει είναι να βεβαιωθείτε ότι το PuTTY εκτελείται και, χρησιμοποιώντας αυτό το εργαλείο, να δημιουργήσετε μια γέφυρα πίσω στον εισβολέα.


Το βοηθητικό πρόγραμμα σάς επιτρέπει όχι μόνο να καταγράφετε «επικοινωνία» μεταξύ του διαχειριστή και του απομακρυσμένου διακομιστή (συμπεριλαμβανομένων των κωδικών πρόσβασης), αλλά και να εκτελείτε αυθαίρετες εντολές φλοιού μέσα σε μια δεδομένη περίοδο λειτουργίας. Επιπλέον, όλα αυτά θα συμβαίνουν με απόλυτη διαφάνεια για τον χρήστη (διαχειριστή). Εάν ενδιαφέρεστε για τεχνικές λεπτομέρειες, για παράδειγμα, πώς εφαρμόζεται το PuTTY στη διαδικασία, σας συνιστώ να διαβάσετε την παρουσίαση του συγγραφέα.


Αρκετά παλιά χρησιμότητα, που γεννήθηκε πριν από περισσότερα από οκτώ χρόνια. Προορίζεται για συνεδρίες κλωνοποίησης με κλοπή cookies. Για την παραβίαση συνεδριών, έχει βασικές δεξιότητες στον εντοπισμό κεντρικών υπολογιστών (εάν είναι συνδεδεμένος σε ανοιχτό ασύρματο δίκτυο ή διανομέα) και στη διεξαγωγή δηλητηρίασης ARP. Το μόνο πρόβλημα είναι ότι σήμερα, σε αντίθεση με πριν από οκτώ χρόνια, σχεδόν όλες οι μεγάλες εταιρείες όπως το Yahoo ή το Facebook χρησιμοποιούν κρυπτογράφηση SSL, γεγονός που καθιστά αυτό το εργαλείο εντελώς άχρηστο. Παρόλα αυτά, υπάρχουν ακόμα αρκετοί πόροι στο Διαδίκτυο που δεν χρησιμοποιούν SSL, επομένως είναι πολύ νωρίς για να διαγραφεί το βοηθητικό πρόγραμμα. Στα πλεονεκτήματά του συγκαταλέγεται το γεγονός ότι ενσωματώνεται αυτόματα στον Firefox και δημιουργεί ξεχωριστό προφίλ για κάθε υποκλοπή συνεδρίας. Ο πηγαίος κώδικας είναι διαθέσιμος στο αποθετήριο και μπορείτε να τον δημιουργήσετε μόνοι σας χρησιμοποιώντας την ακόλουθη σειρά εντολών:

# apt-get install build-essential libwxgtk2.8-dev libgtk2.0-dev libpcap-dev # g++ $(wx-config --cppflags --libs) -lpcap -o sessionthief *.cpp # setcap cap_net_raw,cap_net_admin=eip συνεδριακός κλέφτης

ProxyFuzz

Το ProzyFuzz δεν έχει καμία σχέση άμεσα με τη διεξαγωγή επιθέσεων MITM. Όπως μπορείτε να μαντέψετε από το όνομα, το εργαλείο έχει σχεδιαστεί για fuzzing. Αυτό είναι ένα μικρό μη ντετερμινιστικό δίκτυο fuzzer, που υλοποιείται στην Python, που αλλάζει τυχαία τα περιεχόμενα των πακέτων κίνησης δικτύου. Υποστηρίζει πρωτόκολλα TCP και UDP. Μπορείτε να το ρυθμίσετε ώστε να θολά μόνο τη μία πλευρά. Είναι χρήσιμο όταν πρέπει να δοκιμάσετε γρήγορα κάποια εφαρμογή δικτύου (ή πρωτόκολλο) και να αναπτύξετε ένα PoC. Παράδειγμα χρήσης:

Python proxyfuzz -l -r -σελ

Η λίστα επιλογών περιλαμβάνει:

  • w - καθορίζει τον αριθμό των αιτημάτων που αποστέλλονται πριν από την έναρξη του fuzzing.
  • γ - fuzz μόνο ο πελάτης (αλλιώς και οι δύο πλευρές).
  • s - fuzz μόνο ο διακομιστής (αλλιώς και οι δύο πλευρές).
  • u - Πρωτόκολλο UDP (αλλιώς χρησιμοποιείται TCP).

The Middler

Ένα βοηθητικό πρόγραμμα για τη διεξαγωγή επιθέσεων MITM σε διάφορα πρωτόκολλα που παρουσιάστηκε στη διάσκεψη DEF CON. Η έκδοση άλφα υποστήριζε το πρωτόκολλο HTTP και είχε τρία δροσερά πρόσθετα στο οπλοστάσιό της:

  • plugin-beef.py - εισάγει το πλαίσιο εκμετάλλευσης προγράμματος περιήγησης (BeEF) σε οποιοδήποτε αίτημα HTTP που προέρχεται από το τοπικό δίκτυο.
  • plugin-metasploit.py - ενσωματώνει ένα IFRAME σε μη κρυπτογραφημένα (HTTP) αιτήματα, τα οποία φορτώνουν εκμεταλλεύσεις προγράμματος περιήγησης από το Metasploit.
  • plugin-keylogger.py - ενσωματώνει ένα πρόγραμμα χειρισμού συμβάντων JavaScript onKeyPress για όλα τα πεδία κειμένου που θα υποβληθούν μέσω HTTPS, αναγκάζοντας το πρόγραμμα περιήγησης να στείλει τον κωδικό πρόσβασης που έχει εισαχθεί από τον χρήστη χαρακτήρα προς χαρακτήρα στον διακομιστή του εισβολέα πριν από την υποβολή ολόκληρης της φόρμας.

Το Middler όχι μόνο αναλύει αυτόματα την κυκλοφορία του δικτύου και βρίσκει cookies σε αυτό, αλλά και ανεξάρτητα τα ζητά από τον πελάτη, δηλαδή η διαδικασία αυτοματοποιείται στο μέγιστο. Το πρόγραμμα εγγυάται τη συλλογή όλων των μη προστατευμένων λογαριασμών σε ένα δίκτυο υπολογιστών (ή δημόσιο σημείο πρόσβασης) στο οποίο έχει πρόσβαση η κυκλοφορία. Για να λειτουργήσει σωστά το πρόγραμμα, πρέπει να εγκατασταθούν στο σύστημα τα ακόλουθα πακέτα: Scapy, libpcap, readline, libdnet, python-netfilter. Δυστυχώς, το αποθετήριο δεν έχει ενημερωθεί εδώ και πολύ καιρό, επομένως θα πρέπει να προσθέσετε νέες λειτουργίες μόνοι σας.

Ένα βοηθητικό πρόγραμμα κονσόλας που σας επιτρέπει να εξετάζετε και να τροποποιείτε διαδραστικά την κυκλοφορία HTTP. Χάρη σε τέτοιες δεξιότητες, το βοηθητικό πρόγραμμα χρησιμοποιείται όχι μόνο από pentesters/hackers, αλλά και από απλούς προγραμματιστές που το χρησιμοποιούν, για παράδειγμα, για τον εντοπισμό σφαλμάτων σε εφαρμογές web. Με τη βοήθειά του, μπορείτε να λάβετε λεπτομερείς πληροφορίες σχετικά με τα αιτήματα που υποβάλλει η εφαρμογή και τις απαντήσεις που λαμβάνει. Επίσης, το mitmproxy μπορεί να βοηθήσει στη μελέτη των ιδιαιτεροτήτων της λειτουργίας ορισμένων API REST, ειδικά εκείνων που είναι ελάχιστα τεκμηριωμένα.

Η εγκατάσταση είναι εξαιρετικά απλή:

$ sudo aptitude εγκατάσταση mitmproxy

$ pip install mitmproxy

$easy_install mitmproxy

Αξίζει να σημειωθεί ότι το mitmproxy σάς επιτρέπει επίσης να παρακολουθείτε την κυκλοφορία HTTPS εκδίδοντας ένα αυτο-υπογεγραμμένο πιστοποιητικό στον πελάτη. Ένα καλό παράδειγμα για το πώς να ρυθμίσετε την παρακολούθηση και την τροποποίηση της κυκλοφορίας μπορείτε να βρείτε εδώ.


Αναχαιτιστής-NG

Θα ήταν περίεργο αν αυτό το θρυλικό όργανο δεν περιλαμβανόταν στην κριτική μας. Ακόμα κι αν δεν το έχετε χρησιμοποιήσει ποτέ, πιθανότατα το έχετε ακούσει (και απλά πρέπει να το γνωρίσετε καλύτερα) - εμφανίζεται αρκετά συχνά στις σελίδες του περιοδικού. Δεν θα περιγράψω πλήρως τη λειτουργικότητά του - πρώτον, μας ενδιαφέρει το MITM και, δεύτερον, μια τέτοια περιγραφή θα καταλαμβάνει ολόκληρο το άρθρο.

Η συνέχεια είναι διαθέσιμη μόνο στα μέλη

Επιλογή 1. Εγγραφείτε στην κοινότητα "ιστότοπων" για να διαβάσετε όλο το υλικό στον ιστότοπο

Η συμμετοχή στην κοινότητα εντός της καθορισμένης περιόδου θα σας δώσει πρόσβαση σε ΟΛΟ το υλικό των Hacker, θα αυξήσει την προσωπική σας αθροιστική έκπτωση και θα σας επιτρέψει να συγκεντρώσετε μια επαγγελματική βαθμολογία Xakep Score!

Η επίθεση man-in-the-middle είναι μια γενική ονομασία για διάφορες τεχνικές που στοχεύουν στην απόκτηση πρόσβασης στην κυκλοφορία ως ενδιάμεσος. Λόγω της μεγάλης ποικιλίας αυτών των τεχνικών, είναι προβληματική η εφαρμογή ενός ενιαίου εργαλείου για τον εντοπισμό αυτών των επιθέσεων που θα λειτουργούσε για όλες τις πιθανές καταστάσεις. Για παράδειγμα, σε μια επίθεση man-in-the-middle σε ένα τοπικό δίκτυο, χρησιμοποιείται συνήθως η πλαστογράφηση ARP (poisoning). Και πολλά εργαλεία ανίχνευσης επιθέσεων man-in-the-middle παρακολουθούν τις αλλαγές στα ζεύγη διευθύνσεων Ethernet/ή αναφέρουν ύποπτη δραστηριότητα ARP παρακολουθώντας παθητικά αιτήματα/απαντήσεις ARP. Αλλά εάν αυτή η επίθεση χρησιμοποιείται σε έναν κακόβουλα ρυθμισμένο διακομιστή μεσολάβησης, VPN ή άλλες επιλογές που δεν χρησιμοποιούν δηλητηρίαση ARP, τότε τέτοια εργαλεία είναι αβοήθητα.

Ο σκοπός αυτής της ενότητας είναι να αναθεωρήσει ορισμένες τεχνικές για τον εντοπισμό επιθέσεων man-in-the-middle, καθώς και ορισμένα εργαλεία που έχουν σχεδιαστεί για να καθορίσουν εάν στοχεύεστε από επίθεση MitM. Λόγω της ποικιλίας των μεθοδολογιών και των σεναρίων υλοποίησης, δεν είναι εγγυημένη η ανίχνευση 100%.

1. Ανίχνευση τροποποίησης της κυκλοφορίας

Όπως αναφέρθηκε ήδη, οι επιθέσεις man-in-the-middle δεν χρησιμοποιούν πάντα πλαστογράφηση ARP. Επομένως, αν και η ανίχνευση δραστηριότητας σε επίπεδο ARP είναι η πιο δημοφιλής μέθοδος ανίχνευσης, περισσότερο με καθολικό τρόποείναι η ανίχνευση της τροποποίησης της κυκλοφορίας. Το πρόγραμμα mitmcanary μπορεί να μας βοηθήσει σε αυτό.

Η αρχή λειτουργίας του προγράμματος είναι ότι κάνει αιτήματα «ελέγχου» και αποθηκεύει τις απαντήσεις που λαμβάνονται. Μετά από αυτό, επαναλαμβάνει τα ίδια αιτήματα σε συγκεκριμένα χρονικά διαστήματα και συγκρίνει τις απαντήσεις που λαμβάνει. Το πρόγραμμα είναι αρκετά έξυπνο και, για την αποφυγή ψευδών θετικών, εντοπίζει δυναμικά στοιχεία στις απαντήσεις και τα επεξεργάζεται σωστά. Μόλις το πρόγραμμα εντοπίσει ίχνη δραστηριότητας των εργαλείων επίθεσης MitM, το αναφέρει.

Παραδείγματα για το πώς ορισμένα εργαλεία μπορούν να «κληρονομήσουν»:

  • Το MITMf, από προεπιλογή, αλλάζει όλες τις διευθύνσεις URL HTTPS σε κώδικα HTML σε HTTP. Εντοπίστηκε με σύγκριση περιεχομένου HTTP.
  • Το Zarp + MITProxy, το MITProxy διαθέτει λειτουργία που σας επιτρέπει να διαγράψετε τη συμπίεση HTTP, χρησιμοποιείται για τη διαφάνεια της μεταδιδόμενης κίνησης, αυτός ο συνδυασμός ανιχνεύεται από την εξαφάνιση της προηγούμενης συμπίεσης
  • Απόκριση, που προσδιορίζεται από ξαφνικές αλλαγές στον μετασχηματισμό των αποκρίσεων mDNS: απροσδόκητη απόκριση. η απάντηση είναι εσωτερική, αλλά εξωτερική αναμένεται? η απόκριση είναι διαφορετική από την αναμενόμενη IP
  • MITMCanary εναντίον MITMf:

  • MITMCanary εναντίον Responder:

  • MITMCanary εναντίον Zarp + MITProxy:

Sudo pip εγκατάσταση Cython sudo apt-get install python-kivy python-dbus sudo pip install plyer uuid urlopen αίτημα ανάλυσης simplejson datetime git clone https://github.com/CylanceSPEAR/mitmcanary.git cd mitmcanary/

Όπως ήδη αναφέρθηκε, το mitmcanary πρέπει να αρχίσει να εργάζεται με αιτήματα ελέγχου. Για να το κάνετε αυτό, μεταβείτε στον κατάλογο

υπηρεσία CD/

Και τρέξτε το αρχείο setup_test_persistence.py:

Python2 setup_test_persistence.py

Αυτό θα πάρει λίγο χρόνο - περιμένετε να τελειώσει. Δεν πρέπει να υπάρχουν μηνύματα σφάλματος (αν ναι, τότε σας λείπουν κάποιες εξαρτήσεις).

Η έξοδος θα είναι κάπως έτσι:

Mial@HackWare:~/bin/mitmcanary/service$ python2 setup_test_persistence.py Εντοπίστηκε παλαιότερη έκδοση διαμόρφωσης (0 αντί για 14) Αναβάθμιση διαμόρφωσης σε εξέλιξη. Το ημερολόγιο εκκαθάρισης ενεργοποιήθηκε. Αναλύοντας... Η εκκαθάριση ολοκληρώθηκε!

Εγγραφή σύνδεσης /home/mial/.kivy/logs/kivy_16-11-01_0.txt v1.9.1 v2.7.12+ (προεπιλογή, 1 Σεπτεμβρίου 2016, 20:27:38)

Αφού ολοκληρωθεί αυτή η διαδικασία, εκτελέστε στον ίδιο κατάλογο (αυτό θα ξεκινήσει μια διαδικασία παρασκηνίου):

Python2 main.py

Μετά από αυτό, ανοίξτε ένα νέο παράθυρο τερματικού και μεταβείτε στον τελικό κατάλογο με το mitmcanary. Ο κατάλογός μου είναι bin/mitmcanary/, οπότε μπαίνω

Cd bin/mitmcanary/

Αφού ολοκληρωθεί αυτή η διαδικασία, εκτελέστε στον ίδιο κατάλογο (αυτό θα ξεκινήσει μια διαδικασία παρασκηνίου):

και κάνε εκεί:

Το πρώτο παράθυρο εμφανίζει κάτι σαν: Mial@HackWare:~/bin/mitmcanary/service$ python2 main.py Εγγραφή σύνδεσης /home/mial/.kivy/logs/kivy_16-11-01_1.txt v1.9.1 v2.7.12+ (προεπιλογή, 1 Σεπτεμβρίου 2016, 20:27:38) χρησιμοποιώντας

για ακρόαση υποδοχής για Tuio στις 127.0.0.1:3000 Ύπνος για 60 δευτερόλεπτα Ύπνος για 60 δευτερόλεπτα Ύπνος για 60 δευτερόλεπτα Ύπνος για 60 δευτερόλεπτα Ύπνος για 60 δευτερόλεπτα Ύπνος για 60 δευτερόλεπτα

Εκείνοι. Το πρόγραμμα κάνει αιτήματα ελέγχου μία φορά το λεπτό και αναζητά σημάδια επίθεσης man-in-the-middle.

Το δεύτερο παράθυρο περιέχει επίσης έξοδο + ένα σκοτεινό παράθυρο ανοίγει οι συντάκτες του προγράμματος αποκαλούν αυτό το παράθυρο "γραφική διεπαφή":

Μπορείτε να περιμένετε λίγο και να σερφάρετε στο Διαδίκτυο για να βεβαιωθείτε ότι το πρόγραμμα δεν εκδίδει ψευδείς προειδοποιήσεις. Ας προσπαθήσουμεκλασικό πρόγραμμα

Ξεκινάω μια τακτική επίθεση MitM με πλαστογράφηση ARP. Το mitmcanary δεν ανταποκρίνεται στην ίδια τη χάραξη. Το εργαλείο mitmcanary δημιουργεί την ίδια την κίνηση, δηλαδή δεν απαιτείται καμία ενέργεια χρήστη. Μετά από κάποιο χρονικό διάστημα, εμφανίζεται μία μόνο προειδοποίηση, η οποία δεν επιβεβαιώνεται κατά τους επόμενους ελέγχους. Αλλά μια παρόμοια προειδοποίηση εμφανίζεται μετά από λίγα λεπτά. Χωρίς περαιτέρω ανάλυση, δυσκολεύομαι να πω εάν αυτό είναι ένα παράδειγμα ψευδούς θετικού - μοιάζει πολύ με αυτό. Είναι πολύ πιθανό αυτή η προειδοποίηση να προκαλείται από αποτυχία επικοινωνίας λόγω της ανάγκης κυκλοφορίας να διέρχεται πρόσθετες διαδρομές ή λόγω των ιδιαιτεροτήτων της κακής ποιότητας σύνδεσής μου στο Διαδίκτυο.

Εφόσον το αποτέλεσμα δεν είναι προφανές (πιθανότερο «όχι» παρά «ναι»), ας δοκιμάσουμε το πρόγραμμα Bettercap, το οποίο έχει μια ποικιλία ενοτήτων. Δεν έχω καμία αμφιβολία ότι όταν χρησιμοποιείτε διάφορα Ettercap ή/και πρόσθετα πρόσθετα προγράμματαγια επέκταση της λειτουργικότητας, θα "ανάβαμε" και για το mitmcanary.

Για την καθαρότητα του πειράματος, επανεκκινώ τον εξοπλισμό, τρέχω το mitmcanary στο μηχάνημα που δέχεται επίθεση και το Bettercap στο επιτιθέμενο. Ταυτόχρονα, δεν είναι απαραίτητο να κάνετε ξανά αιτήματα ελέγχου στο μηχάνημα που δέχεται επίθεση - αποθηκεύονται σε ένα αρχείο μέσα στον κατάλογο με το πρόγραμμα. Εκείνοι. Απλώς ξεκινήστε την υπηρεσία και τη γραφική διεπαφή.

Και στο μηχάνημα επίθεσης θα εκκινήσουμε το Bettercap με ενεργοποιημένους τους αναλυτές:

Sudo bettercap -X

Εμφανίζονται μεμονωμένες προειδοποιήσεις, οι οποίες επίσης μοιάζουν περισσότερο με ψευδώς θετικά.

Αλλά εκτελώντας αυτήν την εντολή:

Sudo bettercap -X --proxy

Στις κλήσεις μηχανών που επιτέθηκαν μεγάλο αριθμόπροειδοποιήσεις για μια πιθανή επίθεση άνδρα στη μέση:

Έτσι, όσο πιο ισχυρό είναι ένα εργαλείο επίθεσης man-in-the-middle, τόσο περισσότερα ίχνη αφήνει στην κυκλοφορία. Για πρακτική χρήση του mitmcanary, πρέπει να πληρούνται οι ακόλουθες προϋποθέσεις:

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

2. Ανίχνευση πλαστογράφησης ARP (δηλητηρίαση κρυφής μνήμης ARP)

Πολύ συχνά, μια επίθεση man-in-the-middle σε ένα τοπικό δίκτυο ξεκινά με δηλητηρίαση ARP. Αυτός είναι ο λόγος για τον οποίο πολλά εργαλεία που έχουν σχεδιαστεί για την ανίχνευση επιθέσεων MitM βασίζονται σε έναν μηχανισμό παρακολούθησης αλλαγών στη μνήμη cache ARP, ο οποίος εκχωρεί αντιστοιχία μεταξύ Ethernet (διευθύνσεις MAC) και διευθύνσεις IP.

Ως παράδειγμα τέτοιων προγραμμάτων, μπορούμε να θυμηθούμε το arpwatch, το arpalert και έναν μεγάλο αριθμό νέων προγραμμάτων. Το πρόγραμμα ArpON όχι μόνο παρακολουθεί τις αλλαγές στη μνήμη cache ARP, αλλά και την προστατεύει από αυτές.

Για παράδειγμα, ας τρέξουμε το arpwatch σε λειτουργία εντοπισμού σφαλμάτων, χωρίς να δημιουργήσουμε πιρούνια στο παρασκήνιο και να στείλουμε μηνύματα μέσω ταχυδρομείου. Αντίθετα, τα μηνύματα αποστέλλονται στο stderr (τυπική έξοδος σφάλματος).

Sudo /usr/sbin/arpwatch -d

Ας ξεκινήσουμε το Ettercap στη μηχανή επίθεσης και ας ξεκινήσουμε την πλαστογράφηση ARP. Στο μηχάνημα που επιτέθηκε παρατηρούμε:

Το πρόγραμμα arpwatch θα σας βοηθήσει να μάθετε γρήγορα για νέες συσκευές που είναι συνδεδεμένες στο δικό σας τοπικό δίκτυο, καθώς και αλλαγές στη μνήμη cache του ARP.

Ένα άλλο εργαλείο για τον εντοπισμό πλαστογράφησης ARP σε πραγματικό χρόνο είναι το πρόσθετο Ettercap που ονομάζεται arp_cop. Στο μηχάνημα που δέχεται επίθεση, εκκινήστε το Ettercap ως εξής:

Sudo ettercap -TQP arp_cop ///

Και στον εισβολέα θα ξεκινήσουμε τη δηλητηρίαση ARP. Οι προειδοποιήσεις αρχίζουν να εμφανίζονται αμέσως στο μηχάνημα που επιτέθηκε:

3. Ανίχνευση πλαστογράφησης DNS

Η πλαστογράφηση DNS υποδεικνύει ότι υπάρχει ένας ενδιάμεσος ανάμεσα σε εσάς και τον προορισμό σας που μπορεί να τροποποιήσει την επισκεψιμότητά σας. Πώς μπορείτε να εντοπίσετε ότι οι εγγραφές DNS έχουν πλαστογραφηθεί; Ο ευκολότερος τρόπος για να το κάνετε αυτό είναι να συγκρίνετε με τις απαντήσεις ενός διακομιστή ονομάτων που εμπιστεύεστε. Αλλά οι εγγραφές στην απάντηση που αποστέλλεται στο αίτημά σας μπορούν επίσης να αντικατασταθούν...

Εκείνοι. πρέπει να ελέγξετε είτε μέσω ενός κρυπτογραφημένου καναλιού (για παράδειγμα, μέσω Tor), είτε να χρησιμοποιήσετε μη τυπικές ρυθμίσεις (άλλη θύρα, TCP αντί για UDP). Αυτό είναι περίπου για το οποίο έχει σχεδιαστεί το πρόγραμμα sans από το XiaoxiaoPu (τουλάχιστον όπως το καταλαβαίνω εγώ). Μπόρεσα να χρησιμοποιήσω αυτό το πρόγραμμα για να ανακατευθύνω αιτήματα DNS μέσω Tor και μέσω μη τυπικών ρυθμίσεων στο δικό μου Διακομιστής DNS. Αλλά δεν μπορούσα να την κάνω να μου δείξει μηνύματα σχετικά με την πλαστογράφηση απόκρισης DNS. Χωρίς αυτό, χάνεται το νόημα του προγράμματος.

Δεν μπορούσα να βρω άλλες άξιες εναλλακτικές.

Κατ 'αρχήν, δεδομένου ότι οι πλαστογράφηση DNS συνήθως παρακολουθούν μόνο τη θύρα 53 και μόνο το πρωτόκολλο UDP, ακόμη και χειροκίνητα αρκεί να ελέγξετε απλώς το γεγονός της πλαστογράφησης DNS, αν και αυτό απαιτεί τον δικό σας διακομιστή DNS με μη τυπική διαμόρφωση. Για παράδειγμα, στον επιτιθέμενο μηχάνημα δημιούργησα ένα αρχείο dns.confμε το ακόλουθο περιεχόμενο:

Τοπικό mi-al.ru

Εκείνοι. όταν ζητάτε μια εγγραφή DNS για τον ιστότοπο mi-al.ru, θα σταλεί η IP του μηχανήματος του εισβολέα αντί για την πραγματική IP.

Τρέχω στην επιθετική μηχανή:

Sudo bettercap --dns dns.conf

Και στον επιτιθέμενο κάνω δύο ελέγχους:

Dig mi-al.ru # και dig mi-al.ru -p 4560 @185.117.153.79

Αποτελέσματα:

Mial@HackWare:~$ dig mi-al.ru ;<<>> DiG 9.10.3-P4-Debian<<>> mi-al.ru ;; καθολικές επιλογές: +cmd ;; Πήρα απάντηση: ;; ->>ΚΕΦΑΛΙ<<- opcode: QUERY, status: NOERROR, id: 51993 ;; flags: qr aa rd; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0 ;; WARNING: recursion requested but not available ;; QUESTION SECTION: ;mi-al.ru. IN A ;; ANSWER SECTION: mi-al.ru. 86400 IN A 192.168.1.48 ;; Query time: 2 msec ;; SERVER: 8.8.8.8#53(8.8.8.8) ;; WHEN: Wed Nov 02 09:25:20 MSK 2016 ;; MSG SIZE rcvd: 42 mial@HackWare:~$ dig mi-al.ru -p 4560 @185.117.153.79 ; <<>> DiG 9.10.3-P4-Debian<<>> mi-al.ru -p 4560 @185.117.153.79 ;; καθολικές επιλογές: +cmd ;; Πήρα απάντηση: ;; ->>ΚΕΦΑΛΙ<<- opcode: QUERY, status: NOERROR, id: 401 ;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 512 ;; QUESTION SECTION: ;mi-al.ru. IN A ;; ANSWER SECTION: mi-al.ru. 3799 IN A 185.26.122.50 ;; Query time: 304 msec ;; SERVER: 185.117.153.79#4560(185.117.153.79) ;; WHEN: Wed Nov 02 09:25:27 MSK 2016 ;; MSG SIZE rcvd: 53

Μπορεί να φανεί ότι για ένα "κανονικό" αίτημα DNS, στάλθηκε τοπική IP 192.168.1.48 και όταν ζητήθηκε DNS σε μια άτυπη θύρα, στάλθηκε η σωστή IP διακομιστή.

Εάν ο διακομιστής έχει ρυθμιστεί να χρησιμοποιεί TCP (αντί UDP), τότε η εντολή θα μοιάζει με αυτό:

Dig mi-al.ru -p 4560 +tcp @185.117.153.79

Υπάρχει ξεκάθαρα έλλειψη ενός εργαλείου που θα παρακολουθούσε τις αποκρίσεις DNS στην κυκλοφορία, θα τις έλεγχε ξανά έναντι μιας εναλλακτικής πηγής και θα σήμανε συναγερμό σε περίπτωση πλαστογράφησης.

Για να αποφύγετε τη ρύθμιση του δικού σας απομακρυσμένου DNS, μπορείτε να κάνετε ερωτήματα διακομιστή ονομάτων μέσω Tor. Δεδομένου ότι όλη η κίνηση Tor είναι κρυπτογραφημένη, οι αποκρίσεις DNS που λαμβάνονται με αυτόν τον τρόπο είναι πέρα ​​από τις δυνατότητες ενός ενδιάμεσου. Εάν το Tor δεν είναι ήδη εγκατεστημένο, εγκαταστήστε το.

Sudo apt-get tor εγκατάστασης

Sudo pacman -S tor

Ξεκινήστε την υπηρεσία:

Sudo systemctl start tor

Εάν το χρειάζεστε, προσθέστε αυτήν την υπηρεσία στην εκκίνηση:

Το Sudo systemctl ενεργοποιεί το tor

Ανοίξτε το αρχείο /etc/tor/torrcκαι προσθέστε εκεί τις ακόλουθες γραμμές:

DNSPort 530 AutomapHostsOnResolve 1 AutomapHostsSuffixes .exit,.onion

Δώστε προσοχή στον αριθμό 530. Αυτός είναι ο αριθμός θύρας αντί για 530, μπορείτε να καθορίσετε οποιαδήποτε άλλη (αχρησιμοποίητη) θύρα. Το κύριο πράγμα είναι να το θυμάστε.

Ελέγχουμε ξανά:

Dig mi-al.ru # και dig mi-al.ru -p 530 @localhost

Τώρα καθορίζουμε ως διακομιστή localhostκαι γράψτε τον αριθμό θύρας που καθορίσατε στις ρυθμίσεις /etc/tor/torrc.

Όπως μπορείτε να δείτε από το παρακάτω στιγμιότυπο οθόνης, πραγματοποιείται επίθεση πλαστογράφησης DNS στο μηχάνημα στο οποίο έγινε ο έλεγχος:

4. Αναζητήστε διεπαφές δικτύου σε ακατάλληλη λειτουργία

Εάν υπάρχει (και ειδικά αν εμφανιστεί ξαφνικά) εξοπλισμός σε ακατάλληλη λειτουργία στο τοπικό σας δίκτυο, αυτό είναι πολύ ύποπτο, αν και δεν υποδηλώνει ξεκάθαρα επίθεση man-in-the-middle.

Σε αυτή τη λειτουργία, η κάρτα δικτύου σάς επιτρέπει να λαμβάνετε όλα τα πακέτα ανεξάρτητα από το σε ποιον απευθύνονται.

Σε κανονική κατάσταση, η διεπαφή Ethernet χρησιμοποιεί φιλτράρισμα πακέτων επιπέδου σύνδεσης και εάν η διεύθυνση MAC στην κεφαλίδα προορισμού του ληφθέντος πακέτου δεν ταιριάζει με τη διεύθυνση MAC της τρέχουσας διεπαφής δικτύου και δεν μεταδίδεται, τότε το πακέτο απορρίπτεται. Στη λειτουργία "αδιάκριτης", το φιλτράρισμα στη διεπαφή δικτύου είναι απενεργοποιημένο και όλα τα πακέτα, συμπεριλαμβανομένων εκείνων που δεν προορίζονται για τον τρέχοντα κόμβο, επιτρέπονται στο σύστημα.

Τα περισσότερα λειτουργικά συστήματα απαιτούν δικαιώματα διαχειριστή για να ενεργοποιήσουν την ακατάλληλη λειτουργία. Εκείνοι. Η ρύθμιση μιας κάρτας δικτύου σε ακατάλληλη λειτουργία είναι μια σκόπιμη ενέργεια που μπορεί να εξυπηρετεί σκοπούς sniffing.

Για να αναζητήσετε διεπαφές δικτύου σε ακατάλληλη λειτουργία υπάρχει ένα πρόσθετο που ονομάζεται Ettercap search_promisc.

Παράδειγμα εκτέλεσης της προσθήκης:

Sudo ettercap -TQP search_promisc ///

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

Σύναψη

Ορισμένες μέθοδοι επίθεσης "man-in-the-middle" αφήνουν πολλά ίχνη και ορισμένες (όπως η παθητική αναζήτηση διαπιστευτηρίων διακομιστή μεσολάβησης) είναι αδύνατο ή σχεδόν αδύνατο να εντοπιστούν.