Οι γονείς πρέπει να γνωρίζουντα παιχνίδια εικονικής πραγματικότητας (δηλαδήτις υπηρεσίες και τα προϊόντα που προσφέρουν)καιναέχουνεπίγνωσητουτρόπουμετονοποίο τα παιδιά τουςπερνούν το χρόνο τους στο διαδίκτυο.
Ενεργοποιήστε το λογαριασμό του παιδιού σας στο επιλεγμένο παιχνίδι εικονικής πραγματικότητας χρησιμοποιώντας το emailσας.
Ελέγξτε ανυπάρχουνεργαλείαγονικούελέγχουήφιλτραρίσματοςτουδιαδικτύουστονεικονικόκόσμοπου χρησιμοποιεί το παιδί και βεβαιωθείτε ότι τα εργαλεία αυτάείναιενεργοποιημένα.Ηεπαλήθευσητης ηλικίας πραγματοποιείται συνήθως κατά την αγορά ενόςπροϊόντος.Προςτο παρόν δεν υπάρχει σύστημα που να εγγυάται την επαλήθευση της ηλικίας.
Υπάρχουν εργαλεία που εμποδίζουν την πρόσβαση σε ανεπιθύμητους ιστότοπους.Συνιστάταιηχρήσητους.
Ηεπεξεργασία ευαίσθητων προσωπικών δεδομένων, η πρόσβαση σε δωμάτια συνομιλίας,ηαποστολή διαφημιστικών μηνυμάτωνηλεκτρονικούταχυδρομείου,η επικοινωνία με παιδιά μέσω κινητού τηλεφώνου, ησυλλογή δεδομένωνπαιδιών στοδιαδίκτυοκαι ηχρήση των δεδομένωνγια διαφημιστικούς σκοπούςαπαιτούνσυνήθωςτησυγκατάθεση των γονέων. Εξετάστε προσεκτικά αυτές τις επιλογές.
Επίθεση Χάκερ Στο Δικαστικό Σύστημα της Αυστραλίας: Κλοπή Ηχογραφήσεων και Παρεμπόδιση Δικτύου
Χάκερ προσπάθησαν να αποκτήσουν πρόσβαση στη βάση δεδομένων με τις ηχογραφήσεις των δικαστηρίων στην πολιτεία της Βικτόρια στην Αυστραλία και διέκοψαν το δίκτυο τεχνολογίας ήχου-εικόνας στα δικαστήρια, επηρεάζοντας τις υπηρεσίες ηχογραφήσεων και μεταγραφών, δήλωσε επίσημος την Τρίτη.
Σύμφωνα με τη δήλωση της διευθύντριας της Υπηρεσίας Δικαστηρίων της Βικτόρια, Louise Anderson, ενδέχεται να έχουν κλαπεί ηχογραφήσεις από κάποιες δικαστικές ακροάσεις μεταξύ 1ης Νοεμβρίου και 21ης Δεκεμβρίου 2023. Επιπλέον, ορισμένες ακροάσεις πριν από την 1η Νοεμβρίου μπορεί επίσης να έχουν επηρεαστεί, σύμφωνα με τα λεγόμενά της.
“Η πιθανή πρόσβαση περιορίζεται στις ηχογραφήσεις που αποθηκεύονται στο δίκτυο. Δεν προσπελάστηκαν άλλα συστήματα δικαστηρίων ή αρχεία, συμπεριλαμβανομένων πληροφοριών υπαλλήλων ή οικονομικών δεδομένων”, δήλωσε η Anderson.
Οι ακροάσεις του Ιανουαρίου θα συνεχιστούν μετά την απομόνωση και απενεργοποίηση του επηρεασμένου δικτύου, και οι αξιωματούχοι του δικαστηρίου συνεργάζονται στενά με τους ειδικούς κυβερνοασφαλείας της κυβέρνησης. Η Υπηρεσία Δικαστηρίων της Βικτόρια δεν αποκάλυψε εάν λάβει απαιτήσεις για λύτρα.
Ομάδες κυβερνοεγκληματιών με υποστήριξη από το κράτος και χάκερ έχουν εντείνει τις επιθέσεις τους σε κρίσιμες υποδομές, επιχειρήσεις και κατοικίες της Αυστραλίας, όπως ανέδειξε έκθεση της κυβέρνησης που κυκλοφόρησε το Νοέμβριο του 2023, με μία επίθεση να σημειώνεται κάθε έξι λεπτά.
Ο Αλέξανδρος είναι ο ιδρυτής του hacks.gr και η κινητήρια δύναμη πίσω από το όραμά μας.
Με πολυετή εμπειρία στον κόσμο του hacking, έχει διαμορφώσει μια κοινότητα που είναι πηγή έμπνευσης και μάθησης για όλους.
Με τον προσωπικό του χαρακτήρα και την τεχνογνωσία του, έχει δημιουργήσει έναν χώρο όπου οι λάτρεις του hacking μπορούν να συναντιούνται, να μοιράζονται γνώσεις και να εξελίσσονται.
Ήρθε η ώρα να προσπαθήσουμε να εκτελέσουμε buffer overflow (με ανακατεύθυνση) σε ένα λειτουργικό σύστημα Windows 11. Για να δούμε πόσο εύκολο είναι να το κάνεις αυτό… 😎
Θα ακολουθήσουμε την ίδια μέθοδο όπως στο Part ΙΙ.
Ας ξεκινήσουμε με τον πηγαίο κώδικα του μικρού μας προγράμματος επίδειξης, του bufferoverflow.c:
Για όσους θέλουν να αντιγράψουν τον κώδικα, για να γράψουν τα δικά τους παραδείγματα – tests, Ορίστε:
#include<iostream>#include<string>#pragma warning(disable : 4996) //_CRT_SECURE_NO_WARNINGS#pragma runtime_checks("", off)#pragma optimize("", off)
using namespace std;
bool checkProductKey(char*userKey){char key[12];strcpy(key, userKey);
bool n =(strcmp(userKey,"123-456")==0);return n;}intmain(int argc,char* argv[]){char key[255];if(argc !=2){
cout <<"Enter product key >";
cin >> key;}elsestrcpy(key, argv[1]);
bool iAllow =checkProductKey(key);if(!iAllow){
cout <<"Wrong key!\n";return-1;}
cout <<"Welcome to the DEMO SA Application.\n";
cout <<"(c) 2023 all rights reserved.\n";return0;}
Δεν θα μπω στον κόπο να εξηγήσω τι κάνει το παραπάνω πρόγραμμα μιας και ο κώδικας του είναι πολύ προφανής. Πρόκειται για πρόγραμμα σε C, που τρέχει από τη γραμμή εντολών των Windows Powershell .
Παρακάτω βλέπετε την εκτέλεση του προγράμματος με διάφορες παραμέτρους :
Ένα από τα πιο σημαντικά σημεία για να δουλέψετε το bof είναι να επιλέξετε τις σωστές παραμέτρους compiler & linker.
Χρησιμοποιώ ένα console project σε C++ στο Visual Studio 2022 και αλλάζω ορισμένες προεπιλεγμένες παραμέτρους όπως υποδεικνύουν οι παρακάτω εικόνες.
Σημειώστε ότι ορισμένες παραμέτρους τις έχω ήδη ρυθμίσει από τον πηγαίο κώδικα, χρησιμοποιώντας οδηγίες pragma, αλλά για λόγους σαφήνειας θα επαναλάβω όλη τη διαδικασία εδώ:
1. Απενεργοποιήστε το επίπεδο προειδοποίησης (όχι απολύτως απαραίτητο αλλά χρήσιμο για αυτό το μικρό πρόγραμμα για να αποφύγετε κάποια ενοχλητικά μηνύματα)
2. Απενεργοποιήστε τους ελέγχους κύκλου ζωής ανάπτυξης ασφαλούς κώδικα – SDL=Security Development Lifecycle.
Δεν θέλω ο Optimizer να αλλάξει τίποτα στον κώδικά μου… (και στις δύο παραπάνω περιπτώσεις)
1. Ορίζω τα runtime checks στο default
2. Απενεργοποιώ κάθε security check
1. Απενεργοποιώ το ASLR (Address Space Layout Randomization)
2. Απενεργοποιώ το DEP (Data Execution Prevention), για να μπορώ να εκτελέσω κώδικα στο τμήμα μνήμης του STACK.Αυτό είναι απαραίτητο μόνο εάν θα ήθελα να εκτελέσω έναν shell στo Stack, αλλά δεν είναι απαραίτητο εάν εκτελέσω ένα Buffer Overflow με και απλώς αντικαταστήσω τη διεύθυνση RET για να ανακατευθύνω το πρόγραμμά μου σε διαφορετική θέση στον ίδιο κώδικα (τμήμα) –όπως έκανα στο μέρος II σε ένα BOX Linux.
Για να συνοψίσω όλες τις επιλογές που έθεσα για τη μεταγλώττιση του προγράμματός μου: /JMC /permissive- /ifcOutput "Debug\" /GS- /analyze- /W0 /Zc:wchar_t /ZI /Gm- /Od /sdl /Fd"Debug\vc143.pdb" /Zc:inline /fp:precise /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_UNICODE" /D "UNICODE" /errorReport:prompt /WX- /Zc:forScope /Gd /Oy- /MDd /FC /Fa"Debug\" /EHsc /nologo /Fo"Debug\" /Fp"Debug\BufferOverflow.pch" /diagnostics:column
Ήρθε λοιπόν η ώρα να ξεκινήσω τις δοκιμές μου και να ελέγξω τη συμπεριφορά του προγράμματος. Θα κάνω δύο τύπους δοκιμών:
Στην πρώτη μου δοκιμή θα περάσω μια μεγάλη συμβολοσειρά ως παράμετρο, μεγαλύτερη από αυτή που ορίζεται στη γραμμή 9 (του πηγαίου κώδικα).
Στο δεύτερο τεστ θα περάσω μια σύντομη συμβολοσειρά ως παράμετρο, προκειμένου να ελέγξω την κανονική λειτουργία του προγράμματος.
Επιπλέον θα βάλω κάποια breakpoints και θα ελέγξω την κατάσταση της μνήμης και κάποιες σημαντικές σημαίες (flags).
Για την 1η δοκιμή μου (την υπερχείλιση) έβαλα αυτό το όρισμα γραμμής εντολών στο πρόγραμμα εντοπισμού σφαλμάτων:
Η γνωστή συμβολοσειρά (που χρησιμοποιείται σε δοκιμές bof) ενός μοτίβου 4 bytes (το μέγεθος μιας διεύθυνσης μνήμης σε συστήματα 32 bit): AAAABBBBCCCCDDDDEEEE.
Για το δεύτερο τεστ μου (το κανονικό!) εισάγω απλώς αυτό:
Μόλις 10 “Α”.
Ας δούμε τώρα τι θα συμβεί όταν εκτελέσω τις δοκιμές μου, μελετώντας τις παρακάτω εικόνες:
Έβαλα ένα σημείο διακοπής (breakpoint) στη γραμμή 24, εκεί που καλείται η συνάρτηση checkProductKey.
Επιπλέον, έχω ενεργοποιήσει τρία σημαντικά Windows για να έχω όσο το δυνατόν περισσότερες πληροφορίες. Σημαντική σημείωση : Για να δείτε και να επιλέξετε τις παρακάτω επιλογές, το πρόγραμμα πρέπει να εκτελείται και να διακοπεί κάποιο breakpoint – διαφορετικά αυτές οι επιλογές δεν είναι ορατές).
Το Disassembly window (επιλέγοντας: Debug | Windows | Disassebly).
Το Memory window (επιλέγοντας: Debug | Windows | Memory | Memory 1)
Το Registers window (επιλέγοντας: Debug | Windows | Registers)
Ενώ η εκτέλεση έχει σταματήσει στο συγκεκριμένο σημείο διακοπής (στη γραμμή 24) επιλέγω το παράθυρο Disassembly:
[Κύρια εικόνα] : Όπως μπορούμε να δούμε την κλήση checkProductKey που βρίσκεται στη διεύθυνση μνήμης: 0x00414215 (θυμηθείτε: οι διευθύνσεις δίνονται σε δεκαεξαδική μορφή).
Συμβουλή: βλέπετε το textbox πάνω από το disassembly window – εκεί που λέει “Address: main(int, char * *)”: Εδώ μπορούμε να εισάγουμε για να δούμε τον κώδικα της κύριας συνάρτησης ή μπορούμε να δώσουμε οποιαδήποτε άλλη function, όπως η checkProductKey.
Το ίδιο ισχύει και για το παράθυρο μνήμης (Memory window), εγώ το χρησιμοποιώ για να εισάγω διευθύνσεις μνήμης.
Συνεχίζω την εκτέλεση μέχρι το τελευταίο breakpoint, μέσα στη συνάρτηση checkProductKey , ακριβώς πριν η συνάρτηση επιστρέψει στον καλούντα της (στη γραμμή 12) παρακάτω:
Παραπάνω, βλέπω την κλασική δομή Stack.
Εάν ελέγξετε το παράθυρο Registers θα δείτε επίσης ότι ο Base Pointer βρίσκεται στη διεύθυνση 0x0019FD8C όπως φαίνεται στην εικόνα.
Αμέσως μετά τον Base Pointer βρίσκεται η Διεύθυνση RET. Αυτός είναι ο στόχος μου!
Συνεχίζοντας την εκτέλεση λαμβάνω ένα σφάλμα παραβίασης πρόσβασης :
Αν υποθέσουμε ότι διαβάσατε τα Parts IΙ και IIΙ, είναι πλέον εύκολο να καταλάβετε γιατί: Όταν τελειώσει ο έλεγχος της συνάρτησης ProductKey, ο EIP λαμβάνει τη διεύθυνση RET (που έχει γεμίσει με “E” – 45 το οποίο είναι ο 16δικός κωδικός ascii του “E”) και προσπαθεί να επιστρέψει σε αυτήν τη διεύθυνση, την 0x45.45.45.45. Ωστόσο, αυτή η διεύθυνση δεν υπάρχει, εξ ου και το μήνυμα λάθους “Access violation reading location 0x45454545”.
Για λόγους σαφήνειας, επιτρέψτε μου να σας υπενθυμίσω ξανά κάποια πράγματα που συζητήσαμε στο Μέρος ΙΙ:
Το παρακάτω είναι μια σχηματική αναπαράσταση αυτού που βλέπουμε στη Στοίβα μας ενώ εκτελείται η συνάρτηση checkProductKey :
Εισάγοντας μια πολύ μεγάλη συμβολοσειρά που περνάει ως παράμετρος η συνάρτησή μας, υπερκαλύπτει και αντικαθιστά και τις διευθύνσεις: EBP και RET!
Κοιτάξτε τώρα, πώς φαίνεται η ίδια δομή κατά την εκτέλεση της 2ης δοκιμής μας: Η κανονική: “AAAAAAAAAA”
Εδώ, τα πράγματα είναι πιο ξεκάθαρα: Αφού τελειώσει η συνάρτηση, θα επιστρέψει στη διεύθυνση καλούντος της, όπως υποδεικνύουν οι διευθύνσεις RET είναι: 0x00414221 (θυμηθείτε ότι ακολουθείται το μοντέλο little endian – διαβάζουμε από τη μνήμη με αντίστροφη σειρά).
Μπορείτε να διασταυρώσετε με το [Main Image] για να ελέγξετε την ακριβή διεύθυνση (το 0x00414221 ) που θα πάει η λειτουργικότητα του προγράμματός μας.
Αυτό σημαίνει επίσης (όπως είπαμε ήδη στα τρία προηγούμενα Parts των άρθρων μας), ότι ο EIP θα είναι 0x00414221.
Ή, με άλλα λόγια EIP = RET Address (at lines 12 & 13 above) είναι αυτό που ονομάζουμε Function Epilogue.
Μέχρι στιγμής όλα καλά: Γνωρίζουμε την ακριβή συμβολοσειρά που θα μπορεί να αντικαταστήσει τη διεύθυνση RET. Αυτή είναι η “AAAABBBBCCCCDDDDEEEE”
Τώρα αυτό που πρέπει να κάνουμε είναι να αντικαταστήσουμε το EEEE με μια υπάρχουσα διεύθυνση για να ανακατευθύνουμε το πρόγραμμα για να παρακάμψουμε τον έλεγχο ProductKey.
Μπορούμε να βρούμε αυτή τη διεύθυνση διαβάζοντας τον disassembly κώδικα: Βρισκόταν μερικές διευθύνσεις κάτω (δεν φαίνεται στην εικόνα) της [Κύριας Εικόνας]. Εκεί που εμφανίζουμε τα μηνύματα καλωσορίσματος.
Είναι ακριβώς εδώ:
Αυτή είναι η διεύθυνση που ψάχνουμε: 0x41424D !!
Είμαστε έτοιμοι,… σχεδόν!!
Όπως γνωρίζουμε, βρισκόμαστε σε λειτουργία εντοπισμού σφαλμάτων (debug mode). Η πραγματική διεύθυνση του προγράμματος όταν εκτελείται σε release mode είναι συνήθως μια ελαφρώς διαφορετική διεύθυνση…
Αυτό που χρειαζόμαστε στην πραγματικότητα είναι την διεύθυνση σε release mode. Για αυτόν τον λόγο δημιουργούμε το τελικό εκτελέσιμο αρχείο σε release mode:
Προσοχή στην παγίδα: Όταν αλλάζετε το πρόγραμμα από Debug σε Release mode, όλες οι παράμετροι compiler & linker επαναφέρονται στις προεπιλεγμένες τους τιμές { 👿 👿 }, επομένως πρέπει να τις επαναφέρετε ακολουθώντας τις ρυθμίσεις που έκανα στην αρχή του άρθρου.
Τέλος, δημιούργησα ένα εκτελέσιμο αρχείο που είναι πολύ μικρότερο από αυτό που είχα με τις πληροφορίες εντοπισμού σφαλμάτων.
Αλλά πώς στο καλό, μπορώ να βρώ αυτήν τη διεύθυνση τώρα, με δεδομένο ότι δεν μπορώ πια να ψάξω σε debug mode, μέσω του Visual Studio;
Χμ… εδώ χρειάζεται λίγο Reversing ακόμα… και για αυτό το λόγο θα χρησιμοποιήσω ένα παλιό εργαλείο που ονομάζεται: Olly Debugger v.1.1 . Φυσικά μπορείτε να χρησιμοποιήσετε όσες άλλες επιλογές θέλετε, πολλές από αυτές χρησιμοποιούνται για τον εντοπισμό σφαλμάτων / αποσυναρμολόγηση ενός εκτελέσιμου αρχείου, όπως x32dbg , IDA κ.λπ…
Εκτελώντας το τελικό εκτελέσιμο αρχείο στο Olly, μπορώ εύκολα να εντοπίσω τη διεύθυνση της συνάρτησης checkProductKey :
Όπως μπορείτε να δείτε παραπάνω, έχω αναδημιουργήσει το ίδιο περιβάλλον που είχα στη λειτουργία εντοπισμού σφαλμάτων του Visual Studio.
Όπως μπορείτε επίσης να δείτε (στο κάτω δεξιό μέρος – στο τμήμα της μνήμης), η διεύθυνση υπερχείλισης είναι λίγο… μεταγενέστερη σε σχέση με τη λειτουργία εντοπισμού σφαλμάτων. Το EBP συμπληρώνεται με 66.66.66.66 (“f”) ενώ εισάγω τη συμβολοσειρά “aaaaabbbbccddddeeeeeffff”. Αυτό σημαίνει ότι η διεύθυνση RET είναι αμέσως μετά το EBP, δηλαδή εδώ: aaaaabbbbccddddeeeeffffXXXX
Το ερώτημα τώρα είναι: Πού είναι η διεύθυνση που εμφανίζουμε τα μηνύματα καλωσορίσματος;
Αυτή είναι η διεύθυνση που πρέπει να βάλουμε στη θέση του XXXX παραπάνω για να αναγκάσουμε το πρόγραμμα να παρακάμψει όλους τους ελέγχους ProductKey.
Λοιπόν, δεν είναι τόσο δύσκολο να το βρείτε χρησιμοποιώντας τον Olly:
Ο μαγικός αριθμός είναι: 0x0040138B
Τώρα, ας δημιουργήσουμε το exploit μας σε ένα αρχείο χρησιμοποιώντας έναν Επεξεργαστή HEX. Αυτό είναι το εύκολο μέρος:
Θυμηθείτε, εισάγουμε το aaaaabbbbccccdddeeeeeffff 8B134000 . Θυμηθείτε τη διεύθυνση με αντίστροφη σειρά ανά byte: 8B.13.40.00 είναι η διεύθυνση διεύθυνση στόχος μας: 00.40.13.8B
και αποθηκεύω το αρχείο με το όνομα args στο δίσκο.
Λοιπόν… Ας το δοκιμάσουμε τώρα, για να δούμε τι έχουμε καταφέρει μέχρι τώρα:
Bingo! Καταφέραμε μια επιτυχημένη παράκαμψη των μέτρων ασφαλείας του προγράμματος με ανακατεύθυνση υπερχείλισης buffer!
Όπως μπορείτε να δείτε παρακάτω, η εκμετάλλευσή της αδυναμίας λειτουργεί επίσης και χωρίς να περάσω αναγκαστικά τα ορίσματα από την γραμμή εντολών. Χρησιμοποιώ την ανακατεύθυνση,…
Επίλογος
Αυτό είναι το τέλος της στοιχειώδους σειράς άρθρων μου σχετικά με τον τρόπο εκτέλεσης υπερχείλισης buffer και δοκιμής των αποτελεσμάτων και αποφυγής ορισμένων παγίδων.
Αυτό που θα ήθελα να δείξω στην πραγματικότητα, ΔΕΝ είναι μόνο πώς να κάνω το πραγματικό bof. Πιστεύω ότι αυτό που μετράει δεν είναι μόνο ο προορισμός αλλά το ίδιο το ταξίδι.
Η εμπειρία, τα εργαλεία, οι συμβουλές, τα κόλπα και οι παγίδες που αντιμετωπίζετε κατά τη διάρκεια του ταξιδιού, είναι ο πραγματικός στόχος.
Και αυτό δεν ισχύει μόνο για ένα ταπεινό Buffer Overflow… 😉
Με πολύτιμη εμπειρία στον κόσμο της κυβερνοασφάλειας συμβάλλει ενεργά στην κοινότητά μας με αναλύσεις ευπαθειών και οδηγούς.
Με τη συνεισφορά του, προσφέρει στην κοινότητα μας ένα πλούσιο φάσμα γνώσεων και δεξιοτήτων που ενισχύουν την ανάπτυξη και την ασφάλεια του ψηφιακού μας κόσμου.
Σε αυτό το άρθρο, θα αναλύσουμε την επίθεση Evil twin και θα εξηγήσουμε πώς να την εντοπίσετε και πώς να την αποτρέψετε από το να σας προκαλέσει προβλήματα.
Τι είναι μια επίθεση Evil Twin;
Σε μια επίθεση “Evil Twin”, ο επιτιθέμενος δημιουργεί ένα ψεύτικο σημείο πρόσβασης WI-FI με το ίδιο κυρίως όνομα με αυτό που θέλει να παραβιάσει και αφού δημιουργήσει το WIFI , ο επιτιθέμενος ελπίζει ότι κάποιος θα μπορούσε να συνδεθεί στο ψεύτικο σημείο πρόσβασης και να το χρησιμοποιήσει αντί για το νόμιμο. Αφού πάρει τον χρήστη στο AP του , ο επιτιθέμενος μπορεί να δημιουργήσει ένα captive portal ζητώντας τον κωδικό πρόσβασης WIFI για να συνδεθεί και στη συνέχεια ο επιτιθέμενος μπορεί τώρα να έχει πρόσβαση στο αρχικό σημείο πρόσβασης WI-FI. Αυτή η επίθεση είναι πολύ συνηθισμένη στα δημόσια WI-FI όπου είναι πολύ συνηθισμένο να υπάρχουν πολλά σημεία πρόσβασης WI-FI με το ίδιο όνομα.
Μεθοδολογία των επιθέσεων Evil Twin:
Υπάρχουν διάφορα βήματα που λαμβάνουν χώρα κατά την εκτέλεση μιας επίθεσης evil twin. Ας περάσουμε από αυτά:
Reconnaissance: Στο αρχικό βήμα , ο επιτιθέμενος ξεκινά με τη σάρωση της περιοχής-στόχου για διαθέσιμα δίκτυα και τον εντοπισμό του σημείου πρόσβασης που θα παραποιήσει.
Creating Rogue Access Point : Αφού βρει το σωστό wifi του θύματος, ο επιτιθέμενος εγκαθιστά ένα παράνομο σημείο πρόσβασης (AP) με πανομοιότυπο ή παρόμοιο SSID με το δίκτυο-στόχο και πιθανότατα , καμία κρυπτογράφηση δεν ρυθμίζεται συνήθως στο παράνομο σημείο πρόσβασης, αλλά ο επιτιθέμενος μπορεί επίσης να δημιουργήσει μια αδύναμη κρυπτογράφηση για να κάνει πολύ πανομοιότυπο το περιβάλλον εργασίας χρήστη.
Matching Network Parameters: Τώρα ο επιτιθέμενος φέρνει το σημείο πρόσβασης στο ίδιο κανάλι και την ίδια συχνότητα, για να αυξήσει τις πιθανότητες εργασίας της επίθεσης.
Broadcasting Signal Strength/Deauthentication: Τώρα, μετά από αυτό , ο εισβολέας προσαρμόζει την ισχύ του σήματος του απατεώνα AP ώστε να ανταγωνίζεται ή να εξουδετερώνει το νόμιμο σήμα του δικτύου. Σε ορισμένες περιπτώσεις, ο επιτιθέμενος χρησιμοποιεί επίσης τη βοήθεια της επίθεσης de-authentication, ενώ αναγκάζει κάθε χρήστη στο νόμιμο WIFI να αποσυνδεθεί, έτσι ώστε τελικά να αναγκαστεί αυτόματα να συνδεθεί με το πλαστό σημείο πρόσβασης.
Clients connect to Rogue AP: Οι συσκευές εντός της εμβέλειας του παραπλανητικού AP συνδέονται αυτόματα στο WI-FI, υποθέτοντας ότι πρόκειται για ένα νόμιμο δίκτυο λόγω της ταύτισης του SSID και άλλων παραμέτρων.
Intercepting Network Traffic: Μόλις οι συσκευές συνδεθούν στο παραπλανητικό AP, ο εισβολέας μπορεί να υποκλέψει και να παρακολουθήσει την κυκλοφορία του δικτύου, συλλαμβάνοντας ευαίσθητα δεδομένα, όπως στοιχεία σύνδεσης, προσωπικές πληροφορίες ή ευαίσθητα αρχεία.
MITM:Τώρα που ο χρήστης είναι συνδεδεμένος , μπορείτε να πραγματοποιήσετε επίθεση Man-in-the-middle για να χειραγωγήσετε ή να τροποποιήσετε τα δεδομένα που ανταλλάσσονται μεταξύ της συσκευής του θύματος και των νόμιμων υπηρεσιών.
Captive Portal : Αφού συνδεθεί ο χρήστης, μπορείτε επίσης να εμφανίσετε μια αιχμάλωτη πύλη, η οποία είναι μια σελίδα που ζητά ξανά τον κωδικό πρόσβασης WI-FI.
Remaining Undetected: Ο επιτιθέμενος έχει ως στόχο να παραμείνει απαρατήρητος, ενσωματώνοντας το παράνομο AP φαινομενικά στο περιβάλλον.
Attack Termination: Αφού ολοκληρωθεί η εργασία σας, μπορείτε απλά να τερματίσετε κάθε πράγμα.
Rogue Access Point vs. Evil Twin Attack
Ο κόσμος γενικά μπερδεύεται μεταξύ των δύο τύπων ασύρματης επίθεσης , η πρώτη είναι η επίθεση Rogue Access point και η άλλη είναι η επίθεση evil twin. Ας κατανοήσουμε λοιπόν τη βασική διαφορά μεταξύ τους.
Rogue Access Point
Σε μια επίθεση σε ένα σημείο πρόσβασης που δεν είναι εγκεκριμένο ή κακόβουλο, προστίθεται ένα μη εξουσιοδοτημένο ή κακόβουλο ασύρματο σημείο πρόσβασης σε ένα δίκτυο, το οποίο έχει εγκατασταθεί από τον επιτιθέμενο, με σκοπό να κρατήσει το σημείο πρόσβασης κρυφό.
Ο στόχος μιας επίθεσης rogue AP είναι να αποκτήσει μη εξουσιοδοτημένη πρόσβαση σε ένα δίκτυο και ενδεχομένως να εκμεταλλευτεί τρωτά σημεία στην ασφάλεια του δικτύου. Οι επιτιθέμενοι χρησιμοποιούν αυτή την τεχνική για να παρακάμψουν τους ελέγχους και τις άμυνες του δικτύου.
Παράδειγμα : Ένας επιτιθέμενος τοποθετεί φυσικά ένα αθέμιτο σημείο πρόσβασης σε δημόσιο χώρο ενός κτιρίου γραφείων, ελπίζοντας ότι οι υπάλληλοι θα συνδεθούν σε αυτό. Μόλις συνδεθεί, ο επιτιθέμενος μπορεί να εξαπολύσει διάφορες επιθέσεις για να θέσει σε κίνδυνο τις συνδεδεμένες συσκευές και να αποκτήσει πρόσβαση στο εσωτερικό δίκτυο.
Evil Twin Attack
Σε μια επίθεση evil Twin , ο επιτιθέμενος εγκαθιστά ένα ψεύτικο σημείο πρόσβασης με το ίδιο SSID με το AP , που θέλει να παραβιάσει. Ο πρωταρχικός στόχος μιας επίθεσης evil twin είναι να εξαπατήσει τους χρήστες ώστε να συνδεθούν στο ψεύτικο AP και να επιτρέψει στον επιτιθέμενο να υποκλέψει ή να χειραγωγήσει την κυκλοφορία δικτύου των χρηστών. Αυτές είναι δύσκολο να εντοπιστούν, καθώς μιμούνται το ίδιο SSID και τον ίδιο αριθμό καναλιού.
Εκτέλεση επιθέσεων Evil Twin με τον Airgeddon:
Σε αυτό το ιστολόγιο , θα κάνουμε χρήση ενός αυτόματου εργαλείου για το Airgeddon το οποίο είναι ένα εξαιρετικό εργαλείο για τη διεξαγωγή του κακού δίδυμου blog και σε αυτό το ιστολόγιο θα εξερευνήσουμε την αιχμάλωτη πύλη παραλλαγή του κακού δίδυμου blog.
Το Airgeddon είναι ένα ολοκληρωμένο εργαλείο ασύρματης ασφάλειας που έχει σχεδιαστεί για δοκιμαστές διείσδυσης και ηθικούς χάκερ. Απλοποιεί την αξιολόγηση των τρωτών σημείων του δικτύου Wi-Fi, προσφέροντας χαρακτηριστικά όπως επιθέσεις Evil Twin, σπάσιμο κωδικού πρόσβασης και τεχνικές deauthentication.
Προϋπόθεσες: Θα χρειαστείτε έναν προσαρμογέα WI-FI που να υποστηρίζει τη λειτουργία παρακολούθησης για να εκτελέσετε το blog evil twin.
Εγκατάσταση
git clone https://github.com/v1s1t0r1sh3r3/airgeddon.git
cd airgeddon
cp airgeddon /usr/local/bin #do this to use the tool worldwide
Βήματα που πρέπει να εκτελέσετε
Εκκινήστε το airgeddon (Προσπαθήστε να το εκτελέσετε με δικαιώματα root)
sudo airgeddon
Αυτό είναι το παράθυρο προεπισκόπησης που θα δείτε μετά την επιτυχή εγκατάσταση και εκκίνηση του airgeddon.
Κάντε κλικ στο Enter και στο επόμενο παράθυρο, θα σας ζητηθεί να επιλέξετε τη διασύνδεση
Στην περίπτωσή μου είναι το wlan0, μπορείτε να επιλέξετε ό,τι θέλετε.
Μετά την επιλογή της διεπαφής, θα σας ζητηθεί να επιλέξετε την επίθεση που θέλετε να πραγματοποιήσετε , airgeddon υποστηρίζει διάφορα πράγματα WI-FI επίθεση
Από αυτές τις επιλογές , θα επιλέξουμε πρώτα την επιλογή νούμερο 2 , η οποία θα θέσει τη διεπαφή μας σε λειτουργία οθόνης. (Εάν ο προσαρμογέας σας είναι ήδη σε λειτουργία οθόνης , μπορείτε να μεταβείτε στο επόμενο βήμα)
Τώρα θα επιλέξουμε την επιλογή 7 που είναι η λειτουργία του κακού δίδυμου. Μετά την επιλογή αυτό είναι το παράθυρο που φτάνω :
Όπως φαίνεται στο παράθυρο , υπάρχουν διάφορες παραλλαγές της Evil Twin επίθεση είναι διαθέσιμη για εμάς να χρησιμοποιήσουμε.
Μεταξύ αυτών , θα επιλέξουμε την επιλογή νούμερο 9 που είναι Evil Twin AP attack with captive portal (monitor mode needed) Πατήστε 9 και μεταβείτε στο επόμενο παράθυρο.
Τώρα αφού πατήσετε enter , θα σας ζητηθεί να ξεκινήσετε την εξερεύνηση , αφού πατήσετε ξανά enter , θα ξεκινήσει η εξερεύνηση κατά την οποία το εργαλείο θα ξεκινήσει την εξερεύνηση του σημείου πρόσβασης θύματος στο δίκτυό σας.
Μόλις εντοπιστεί το σημείο πρόσβασης θύμα σας, μπορείτε να πατήσετε ctrl + c . Μετά το πάτημα του πλήκτρου η εξερεύνηση θα σταματήσει και θα σας ζητηθεί , αν θέλετε να βγείτε από το σενάριο, οπότε για να το σταματήσετε πατήστε n. Μετά από αυτό θα μετακινηθείτε στο επόμενο παράθυρο όπου το εργαλείο θα σας ζητήσει να εισάγετε το σημείο πρόσβασης του θύματος.
Έτσι, μετά από αυτό, απλά εισάγετε τον αριθμό του σημείου πρόσβασης του θύματος και προχωρήστε. (Στην περίπτωσή μου είναι το Helloworld)
Αφού επιλέξετε, θα σας ζητηθούν διάφορες ερωτήσεις, απλά πατήστε enter.
Στην προτροπή για την καταγεγραμμένη χειραψία, μπορείτε να επιλέξετε αν έχετε ήδη κάνει χειραψία, αν όχι, πατήστε enter. Στην επόμενη προτροπή χρονικού ορίου μπορείτε να επιλέξετε σύμφωνα με εσάς ποιο χρονικό όριο θα λειτουργήσει για εσάς.
Αφού πατήσετε enter μερικές φορές, το σενάριο θα αρχίσει να καταγράφει το wpa handshake και δεν θα συνδεθεί κανείς σε αυτό το WI-FI.
Στο παραπάνω στιγμιότυπο οθόνης , έχουμε καταγράψει το wpa handshake , οπότε θα προχωρήσουμε παρακάτω
Τώρα, μετά το , θα σας ζητηθεί να επιλέξετε τη γλώσσα για την προτροπή. Σε αυτό θα επιλέξω τα αγγλικά.
Αφού επιλέξετε αυτό είναι το παράθυρο στο οποίο θα φτάσετε, θα ξεκινήσει η αποταυτοποίηση των παρόντων συνδεδεμένων συσκευών και θα εμφανιστεί ένα άλλο σημείο πρόσβασης Wi-FI με το ίδιο όνομα.
Δύο wifi με το ίδιο όνομα
Καθώς θα συνδεθείτε σε αυτό θα σας ζητηθεί παράθυρο παρόμοιο με αυτό :
Μόλις εισαγάγετε τον κωδικό πρόσβασης , στο μηχάνημα θα ανακτηθεί ο κωδικός πρόσβασης.
Όπως μπορείτε να δείτε, ο κωδικός πρόσβασης έχει ανακτηθεί:
Ο κωδικός πρόσβασης ήταν : 1234578
Προστασία από τις επιθέσεις Evil Twin:
Για να προστατευτούμε από αυτές τις επιθέσεις του κακού δίδυμου πρέπει πρώτα απ’ όλα να μάθουμε πώς να εντοπίζουμε αυτά τα σημεία πρόσβασης.
Check Network Names (SSIDs): Δώστε ιδιαίτερη προσοχή στα ονόματα των διαθέσιμων δικτύων (SSID). Να είστε επιφυλακτικοί σε δίκτυα με ονόματα παρόμοια με γνωστά δημόσια δίκτυα (π.χ. “Starbucks_FreeWiFi” έναντι “Starbuck_FreeWiFi”).
Verify with Network Administrators: Εάν είστε εργαζόμενος υπάλληλος και αντιμετωπίζετε ένα WI-FI με παρόμοιο όνομα σε ένα ανεπιθύμητο μέρος, παρακαλούμε επικοινωνήστε με τους διαχειριστές.
Check Encryption Type: Τα νόμιμα δίκτυα χρησιμοποιούν συχνά ισχυρή κρυπτογράφηση, όπως WPA2 ή WPA3. Αποφύγετε δίκτυα με αδύναμη ή καθόλου κρυπτογράφηση.
Monitor Signal Strength:Ελέγξτε την ισχύ του σήματος των κοντινών δικτύων. Εάν το σήμα ενός δικτύου γίνει ξαφνικά σημαντικά ισχυρότερο, αυτό μπορεί να αποτελεί ένδειξη επίθεσης.
Check for Multiple Networks with Same SSID: Εάν παρατηρήσετε πολλαπλά δίκτυα με το ίδιο SSID, μπορεί να είναι σημάδι επίθεσης Evil Twin. Τα νόμιμα δίκτυα συνήθως χρησιμοποιούν ένα μοναδικό SSID.
Disable Auto-Connect: Απενεργοποιήστε τη λειτουργία αυτόματης σύνδεσης στις συσκευές σας. Αυτό αποτρέπει τη σύνδεσή τους σε δίκτυα χωρίς τη συγκατάθεσή σας.
Check for Multiple Networks with Same SSID: Εάν παρατηρήσετε πολλαπλά δίκτυα με το ίδιο SSID, μπορεί να είναι σημάδι επίθεσης Evil Twin. Τα νόμιμα δίκτυα συνήθως χρησιμοποιούν ένα μοναδικό SSID.
Μέθοδοι προστασίας
Verify Network Authenticity: Επιβεβαιώστε το όνομα του δικτύου (SSID) με την εγκατάσταση ή τον οργανισμό που παρέχει το WI-FI.
Avoid Open Networks: Αποφύγετε τη σύνδεση σε ανοιχτό δίκτυο.
Disable Automatic Wi-Fi Connection: Απενεργοποιήστε τη λειτουργία αυτόματης σύνδεσης στις συσκευές σας για να αποτρέψετε τη σύνδεσή τους σε άγνωστα δίκτυα χωρίς τη συγκατάθεσή σας.
Be Wary of Pop-Up Windows: Εάν μια πύλη αιχμαλωσίας ή μια σελίδα σύνδεσης εμφανιστεί απροσδόκητα κατά τη σύνδεση σε δημόσιο δίκτυο, επαληθεύστε τη γνησιότητά της πριν εισαγάγετε οποιαδήποτε πληροφορία.
Inspect SSL Certificates:Όταν συνδέεστε σε δίκτυα με captive portals, βεβαιωθείτε ότι το πιστοποιητικό SSL είναι έγκυρο και ταιριάζει με το όνομα του δικτύου.
Use Mobile Hotspots or Cellular Data: Όταν έχετε αμφιβολίες σχετικά με την ασφάλεια ενός δημόσιου δικτύου Wi-Fi, σκεφτείτε να χρησιμοποιήσετε το hotspot του κινητού σας ή τα δεδομένα κινητής τηλεφωνίας για πρόσβαση στο διαδίκτυο.