Ομάδα κατασκοπείας, χρησιμοποίησε το CVE-2018-8589 Windows Zero-Day σε επιθέσεις στη Μέση Ανατολή
infosec

Ομάδα κατασκοπείας, χρησιμοποίησε το CVE-2018-8589 Windows Zero-Day σε επιθέσεις στη Μέση Ανατολή

Η Kaspersky αποκάλυψε ότι το CVE-2018-8589 Windows zero-day που διορθώθηκε από το Microsoft Nov. 2018 Patch Tuesday, έχει εκμεταλλευτεί από...
Read More
infosec

WordPress: Ποιες εκδόσεις plugin δέχτηκαν πρόσφατα επιθέσεις;

WordPress: Ποιες εκδοχές plugin δέχτηκαν πρόσφατα επιθέσεις; Ένα νέο ελάττωμα στο δημοφιλές WordPress έχει οδηγήσει στην εκμετάλλευση πολυάριθμων sites που...
Read More
infosec

Το Bitlocker της Microsoft διακυβεύεται λόγω κακής κρυπτογράφησης SSD

Η μη επαρκής ασφάλεια των υπολογιστών, μπορεί μερικές φορές να έχει άσχημα αποτελέσματα, όπως ανακάλυψαν ερευνητές από την Ολλανδία. Διαπίστωσαν...
Read More
infosec

Greunion: Δύο σημαντικές νίκες στους διαγωνισμούς DefCamp και CSAW’s CTF!

Η Greunion, η καταξιωμένη πλέον ομάδα CTF, που προπονεί την ελληνική αποστολή για τον Πανευρωπαϊκό διαγωνισμό European Cyber Security Challenge,...
Read More
infosec

Facebook: Η χτεσινή διακοπή λειτουργίας ήταν απλώς ένα τεστ ρουτίνας

Μήπως το Facebook «κατέρρευσε» εχθές και σε εσάς; Το ίδιο συνέβη σε πολλούς users, στον κόσμο του δημοφιλέστερου μέσου κοινωνικής...
Read More
Latest Posts

PenTest machine VS Human!

Σημείωση SecNews: Αναμεταδίδουμε ένα εξαιρετικό άρθρο από το «deltahacker» και τον χρήστη «Thiseas». Αξίζει να διαβάσει κανείς λεπτομερώς το εν λόγω άρθρο, μιας και περιγράφει με πραγματικά παραδείγματα την ουσιαστική διαφορά των αυτοματοποιημένων vs manual ελέγχων ασφαλείας.

Σε κάποιες παλιές, σκοτεινές εποχές, κάποιοι άνθρωποι που κατείχαν τη γνώση την κρατούσαν για τον εαυτό τους. Στην καλύτερη περίπτωση τη μετέφεραν σε πολύ λίγους -και προσεκτικά- επιλεγμένους. Μιλάμε για την εποχή του λεγόμενου ιερατείου της πληροφορικής. Το ιερατείο αυτό αποτελείτο από άτομα με γνώσεις αλλά και με συγκεκριμένη νοοτροπία. Μια νοοτροπία κάστας ή πολύ κλειστής ομάδας. Μια νοοτροπία συνωμοτική κι ενίοτε σκοτεινή. Κάτι που θύμιζε… Αλχημιστή!

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

όπου όλα γίνονταν χειροκίνητα. Για παράδειγμα, πρακτικά οποιοσδήποτε, πλέον, χωρίς πολλές γνώσεις -συχνά χωρίς καν να ξέρει τι ακριβώς κάνει-, μπορεί να χρησιμοποιεί έτοιμα εργαλεία της πληροφορικής. Ο κλάδος της ασφάλειας των πληροφοριακών συστημάτων δεν αποτέλεσε εξαίρεση σ’ αυτόν τον κανόνα. Η κάποτε μυστική (και σκοτεινή) τεχνική του SQL injection, μπορεί να υλοποιηθεί εύκολα με τα δεκάδες έτοιμα toolάκια που κυκλοφορούν!

Πού είναι όμως η μαγεία; Πού είναι η γνώση; Δυστυχώς, τις περισσότερες φορές πουθενά! Επίσης, κάποιος ενδέχεται ν’ αναρωτηθεί αν όλα τα αυτόματα εργαλεία μπορούν να αντικαταστήσουν τον άνθρωπο. Χμ, πολύ καλό ερώτημα. Αυτό που μπορούμε να πούμε με σιγουριά είναι πως μια δοκιμή θα μας πείσει! Σ’ αυτό το άρθρο θα παρουσιάσουμε μια «κόντρα» μεταξύ μιας γνωστής μηχανής εύρεσης αδυναμιών (Penetration Testing Tool) και του ανθρώπου. Κατά τα συνηθισμένα, ο άνθρωπος θα χρησιμοποιήσει τον χειροκίνητο τρόπο. Λέτε να τα καταφέρει καλύτερα; Για να δούμε…

Πριν προχωρήσουμε οφείλουμε να πούμε πως όποιος έχει ως στόχο το χάκινγκ, ασχέτως αν χρησιμοποιεί ή όχι αυτοματοποιημένα εργαλεία, επιβάλλεται να γνωρίζει *και* τον manual τρόπο! Εξάλλου οι χάκερ όταν χρησιμοποιούν εργαλεία τις περισσότερες φορές τα ‘χουν φτιάξει οι ίδιοι κι όλες τις άλλες φορές ξέρουν ακριβώς τι κάνουν και τι κρύβεται πίσω (ή κάτω) από τα εργαλεία που χρησιμοποιούν. Για να το πούμε διαφορετικά, για τους χάκερ δεν υπάρχουν black boxes. Μην ξεχνάτε άλλωστε ότι εκείνοι είν’ αυτοί που κάποτε άνηκαν στο ιερατείο. Όμως από δική τους, συνειδητή επιλογή μοιράζονται πλέον τη γνώση με όλους μας.

Ένα πολύ γνωστό εργαλείο εύρεσης αδυναμιών σε web sites είναι το Acunetix. Πρόκειται για ένα εργαλείο του οποίου η εμπορική έκδοση ξεκινάει από τα 1000 ευρώ, ενώ η Enterprise Edition, που χρησιμοποιήσαμε εμείς στις δοκιμές μας, ξεκινά από τα 2700 ευρώ. Όπως και να το δείτε, πρόκειται για ένα διόλου ευκαταφρόνητο ποσό. Βέβαια το εργαλείο είναι πάρα πολύ καλό, μιας και παρέχει πολλές και χρήσιμες πληροφορίες στον pen-tester. Το παρόν όμως άρθρο δεν αποτελεί test review του Acunetix Web Vulnerability Scanner (όπως θέλει να το λέμε η ίδια η εταιρία). Πέρα απ’ αυτό, το άρθρο περιγράφει μια άτυπη κόντρα. Ας οριοθετήσουμε, λοιπόν, αυτή την κόντρα, καθορίζοντας τον κοινό στόχο. Ο στόχος είν’ ένα site που μας προσφέρει η ίδια η Acunetix για να δοκιμάσουμε το εργαλείο της. Πρόκειται για το http://test.acunetix.com (βλ. εικόνα 2).

Ως gentlemen που είμαστε θα επιτρέψουμε στο Acunetix ν’ αρχίσει πρώτο τον έλεγχο αδυναμιών. Ξεκινάμε λοιπόν το εργαλείο, δηλώνουμε το site που θέλουμε να σκανάρει, καθόμαστε αναπαυτικά στην πολυθρόνα μας και περιμένουμε. Μετά από μερικά λεπτά το πρόγραμμα έχει βρει αρκετά αδύναμα σημεία (βλ. εικόνα 1). Μεταξύ άλλων, έχει βρει και δυο αδυναμίες SQL injection στα αρχεία artists.php και cart.php. Αυτό είναι κάτι λίγο-πολύ αναμενόμενο, μιας και το συγκεκριμένο site είναι φτιαγμένο γι’ αυτόν ακριβώς το λόγο, οπότε οι αδυναμίες αυτές *μάλλον* είναι σκόπιμα δημιουργημένες 😉 Κάπου εδώ τελειώνει η -κατά τα άλλα εντυπωσιακή- εργασία του Acunetix, το οποίο ευγενικά μεν δεικτικά δε, μας πετάει το γάντι. Εμείς φυσικά το σηκώνουμε και πάμε να γεμίσουμε τα δικά μας όπλα. Ξεκινάμε, λοιπόν!

Θα χρησιμοποιήσουμε τον Google Chrome. Πρόκειται για έναν ασφαλή, γρήγορο κι ελαφρύ web browser. Παρέχει και μια πολύ χρήσιμη δυνατότητα: Επιτρέπει το surfing χωρίς να μένουν στον υπολογιστή σχετικά ίχνη (βλ. εικόνα 3).

Πάμε στο site δοκιμών της Acunetix κι αρχίζουμε να το περιεργαζόμαστε. Μετά από λίγο βρίσκουμε κάτι που μας τραβάει την προσοχή: Στο αριστερό μενού κάνουμε κλικ πάνω στο Browse Categories και μετά στο Posters, δεξιά. Βλέπουμε ότι το URL box είναι το

http://test.acunetix.com/listproducts.php?cat=1

Χμ, σκεφτόμαστε τώρα δυνατά: Αυτό το cat=1 πιθανό ν’ αποτελεί μέρος μιας εντολής SQL του στυλ

select
* 
from
products 
where
cat=1

Αν πειράζαμε το URL και το κάναμε

http://test.acunetix.com/listproducts.php?cat=1+or+1=1

τότε -και με την προϋπόθεση ότι το πρόγραμμα listproducts.php είχε αδυναμία σε SQL injection-, εσωτερικά η βάση δεδομένων θα εκτελούσε το

select
* 
from
products 
where
cat=1 
or
1=1

Δηλαδή το «or 1=1″ θα πήγαινε στη συνθήκη του where και τα «+» θα μεταφράζονταν σε κενά. Η παραπάνω εντολή θα μου επέστρεφε όλες τις εγγραφές του πίνακα σαν να μην υπήρχε συνθήκη, μιας και το «cat=1 or 1=1″ είναι *πάντα* true! Πειράζοντας, λοιπόν, το URL κι επιχειρώντας να το επισκεφτούμε, παίρνουμε τα εκπληκτικά αποτελέσματα που φαίνονται στην εικόνα 4!

Βλέπουμε ότι το site «έφαγε» το vulnerable URL κι απάντησε μ’ επαναλαμβανόμενες εγγραφές! Αυτό είναι σίγουρα ένα καλό σημάδι για να μας κάνει να προχωρήσουμε τον «έλεγχο» στο συγκεκριμένο URL. Εφόσον λοιπόν το backend του site απάντησε στο SQL injection, ας πάμε στο επόμενο στάδιο. Δοκιμάζουμε τώρα το εξής URL:

http://test.acunetix.com/listproducts.php?cat=1+and+0=1+union+select+1,2,3,4

Εδώ, απ’ ό,τι βλέπετε, μετά το cat=1 δίνουμε την εντολή 0=1 μαζί με μια εντολή select με union. Δηλαδή η εντολή SQL που θα εκτελεστεί εσωτερικά θα ‘ναι η ακόλουθη:

select
* 
from
products 
where
cat=1 
or
0=1 
union
select
1, 2, 3, 4

Με το 0=1 (το οποίο είναι πάντα false) απενεργοποιούμε τ’ αποτελέσματα της πρώτης εντολής select (της «select * from…»), ενώ με το union εμφανίζουμε τα δικά μας αποτελέσματα με μια δεύτερη, δική μας εντολή select, την «select 1,2,3,4″. Βάζοντας αυτό στο URL παίρνουμε το ακόλουθο λάθος:

Error: The used SELECT statements have a different number of columns
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /var/www/vhosts/default/htdocs/listproducts.php on line 74

Αυτό που μάς λέει το λάθος είναι ότι το πλήθος των στηλών που έχουμε δώσει (το 1,2,3,4) δεν δεν είναι ίδιο με το πλήθος των στηλών που χρησιμοποιείται στο πρώτο select, το οποίο εμείς δεν μπορούμε να δούμε! Πρέπει λοιπόν ν’ αρχίσουμε να δίνουμε κι άλλα νούμερα, προκειμένου να μεταβάλουμε το πλήθος των στηλών μέχρι να γίνει ίσο μ’ αυτό του πρώτου select και κατά συνέπεια να εξαλειφθεί το λάθος! Πρέπει, δηλαδή, να δίνουμε, διαδοχικά:

select
1, 2, 3, 4, 5
select
1, 2, 3, 4, 5, 6
select
1, 2, 3, 4, 5, 6, 7
...

Βέβαια θα μπορούσαμε να χρησιμοποιήσουμε ένα έτοιμο προγραμματάκι γι’ αυτή τη δουλειά και, παρεμπιπτόντως, η γλώσσα Perl θα ‘ταν ό,τι έπρεπε για να το γράψουμε. Δεν χρειάζεται, όμως. Μετά από λίγες προσπάθειες βρίσκουμε ότι το URL

http://test.acunetix.com/listproducts.php?cat=1+and+0=1+union+select+1,2,3,4,5,6,7,8,9,10,11

είναι η λύση στο πρόβλημα μας, αφού επιστρέφει το εξής αποτέλεσμα που φαίνεται στην εικόνα 5.

Σας μεταφέρουμε τώρα ένα -λίγο πολύ αυτούσιο- απόσπασμα από κάποιο άλλο μας άρθρο:

Πολύ καλά! Εμφανίσαμε τον αριθμό 1 μέσα από SQL injection, που ήταν κι ο αρχικός μας στόχος. Φυσικά, το να εμφανίζουμε τον αριθμό 1 δεν αποτελεί κανένα σπουδαίο σπάσιμο της ασφάλειας του server, αποτελεί όμως μια ανοιχτή κερκόπορτα ή αλλιώς μια μικρή πληγή. Όπως έλεγε κι ένα παλιό διαφημιστικό slogan, μια μικρή πληγή είναι μια μεγάλη πόρτα για τα μικρόβια 😉

Ήρθε λοιπόν η ώρα να δούμε τι ακριβώς μπορεί να προκαλέσει αυτή η μικρή πληγή! Βλέπετε τους αριθμούς 2, 7, 9 κι 11, στην εικόνα 5; Αυτοί προέρχονται από την εντολή που κάναμε inject στο URL. Αν στη θέση των αριθμών αυτών βάζαμε κάποιες στήλες από τους πίνακες της βάσης δεδομένων του site, τότε ίσως θα βλέπαμε κάποιες τιμές που κανονικά *δεν* θα ‘πρεπε. Χμ, πώς θα βρούμε όμως ποιες στήλες και ποιους πίνακες περιέχει η βάση του εν λόγω site; Σ’ αυτό το πρόβλημα έρχεται να μας βοηθήσει η ίδια η MySQL, η οποία μας δίνει έναν πίνακα που ‘ναι γνωστός ως ο πίνακας των πινάκων! Αυτός βρίσκεται σε μια βάση που ονομάζεται information_schema και λέγεται columns. Μεταξύ άλλων, σ’ αυτόν τον πίνακα βρίσκονται και οι παρακάτω στήλες: table_name και column_name. H πρώτη περιέχει τα ονόματα όλων των πινάκων σ’ όλες τις βάσεις δεδομένων του site και η δεύτερη τα ονόματα των στηλών μέσα σε κάθε πίνακα. Τροποποιούμε λοιπόν κατάλληλα το URL, ώστε να πάρουμε αυτήν την πληροφορία από τη βάση δεδομένων:

http://test.acunetix.com/listproducts.php?cat=1+and+0=1+union+select+1,2,3,4,5,6,concat(table_name,char(58),column_name),8,9,10,11+from+information_schema.columns

Δώστε προσοχή στο concat(table_name,char(58),column_name). Εδώ χρησιμοποιούμε ένα πολύ γνωστό τρικ (από το darknet) για να πάρουμε τ’ αποτελέσματα δύο ή παραπάνω στηλών concatenated (συνδεδεμένα) μέσα από την αντικατάσταση μιας μόνο στήλης, της 7. Το char(58) είναι ο χαρακτήρας «:» και το χρησιμοποιούμε για να διαχωρίσουμε το table_name από το column_name. Θα μας πείτε, γιατί δεν βάζουμε κατευθείαν το «:», δηλαδή γιατί δεν γράφουμε, απλά, concat(table_name,’:’,column_name); Κοιτάξτε, θα μπορούσαμε. Αλλά στη συγκεκριμένα περίπτωση θα παίρναμε error, αφού το site έχει προστασία από επιθέσεις SQL injection κι αποφεύγει να δέχεται χαρακτήρες μέσα σε » » από το URL! Βάζοντας όμως στο URL το παραπάνω, έχουμε κάτι πολύ ενδιαφέρον. Τ’ αποτελέσματα φαίνονται στην εικόνα 6.

Βλέπουμε μια τεράστια λίστα μ’ όλους του πίνακες με τις στήλες τους σ’ όλες τις βάσεις δεδομένων που ‘χει το site! Ψάχνοντας μέσα σ’ αυτά βρίσκουμε κάτι ενδιαφέρον. Τους πίνακες των χρηστών! Άρα, υπάρχει πίνακας χρηστών και λέγεται users (πρωτότυπο όνομα, ε;) με ενδιαφέρουσες στήλες σαν τις uname και pass 😉 Έχουμε ήδη τις απαραίτητες πληροφορίες για να πραγματοποιήσουμε μια κατά μέτωπο επίθεση στο site, κάπως έτσι:

http://test.acunetix.com/listproducts.php?cat=1+and+0=1+union+select+1,2,3,4,5,6,concat(uname,char(58),pass),8,9,10,11+from+users+limit+2

Προσέξτε την τελευταία εντολή: «limit 2″. Τη δίνουμε για να περιορίσουμε το πλήθος των αποτελεσμάτων, μιας κι αν είναι πάρα πολλά υπάρχει κίνδυνος να κρασάρει ο browser μας (τι να κάνουμε, κανένας web browser δεν έχει φτιαχτεί για να υποστηρίζει επιθέσεις SQL injection!) Βέβαια έχει ενδιαφέρον να τη δοκιμάσετε και χωρίς το limit 2, αν μη τι άλλο για να κάνετε ένα crash test στον browser σας 🙂 Τ’ αποτελέσματα της παραπάνω εντολής φαίνονται στην εικόνα 7.

Υπάρχει άραγε χρήστης gopala με password gopala; Για να δοκιμάσουμε. Ένα βασικό πρόβλημα που συχνά έχουν οι εισβολείς είναι ότι δεν ξέρουν από πού να μπουν. Ενώ δηλαδή έχουν βρει κάποιους κωδικούς, δεν μπορούν να βρουν το πρόγραμμα που θα τους ζητήσει αυτά τα credentials για να μπουν στο σύστημα! Αυτό ας το ‘χουν υπ’ όψη τους οι διαχειριστές συστημάτων 😉 Όμως στο συγκεκριμένο site δεν έχουμε τέτοιο πρόβλημα. Η εισαγωγή του χρήστη γίνεται από… χμ, δείτε την εικόνα 8.

«I’m in», όπως έλεγε κι ο σοφός ήρωας του Matrix! Μπορούμε πλέον ν’ αφήσουμε την υπογραφή ή την αφιέρωσή μας, ώστε να τη βρει ο επόμενος που θα μπει μ’ αυτόν ή κάποιον άλλο τρόπο (βλ. εικόνα 9).

Όπως ακριβώς βρήκαμε κι εμείς την υπογραφή του προηγούμενου, έτσι αφήνουμε τη δική μας για να τη βρει ο επόμενος. Μήπως άραγε πίσω απ’ όλα αυτά κρύβεται μια σημειολογία που ζητάει -κι ελπίζει- να την ανακαλύψουμε; Όλα αυτά κυλάνε, μεταφέρονται κι επαναλαμβάνονται όπως η γνώση, η οποία δεν πρέπει να γνωρίζει όρια, ιερατεία και κάστες! Εντάσσονται στο νόμο της εξέλιξης και της προόδου. Μιας προόδου που δεν μπορεί να σταθεί σε μικροπρέπειες κι εγωισμούς περαστικών…

Προσπαθήστε ν’ ανακαλύψετε την πραγματική ουσία, η οποία εντέχνως κρύβεται πίσω από κάθε φαινομενικά άσχετη ή απλή ενέργειά μας, όπως αυτό εδώ το απλοϊκό impersonation… Η γνώση τούτη είναι απλά το μέσο, το κλειδί. Μην την σπαταλάτε σε φτηνούς εντυπωσιασμούς! Ας τη χρησιμοποιήσουμε όλοι για τον πραγματικό λόγο που μας δόθηκε!

Ο νικητής όμως αυτής της κόντρας ποιος είναι; Χμ, μη βιαστείτε ν’ απαντήσετε! Τα αυτόματα προγράμματα που χρησιμοποιήσαμε δεν δημιουργήθηκαν από μόνα τους, ούτε προήλθαν από κάποιον από μηχανής Θεό. Άνθρωποι τα ‘φτιαξαν. Εργαλεία είναι, από άνθρωπο για άνθρωπο. Νικητής από την αναμέτρηση δε νομίζουμε ότι υπάρχει, μιας και στην ουσία είναι μια μάχη του ανθρώπου με… τον εαυτό του!

Έτσι ήταν πάντα.

Πηγή: deltahacker.gr

Έχετε άποψη; Αφήστε το σχόλιό σας.

Ο συντάκτης σας επιτρέπει να αντιγράψετε το κείμενό του, μόνο εφόσον αναφέρετε την πηγή (SecNews.gr), σαν ηλεκτρονική διεύθυνση (Live URL) του άρθρου.
Updated on by

Reader Interactions

Comments

  1. Ego 8a elega oti mallon mas douleuei o ar8rografos. Sigrini patates me domates. To Acunetix einai ena web app scanner. Den kanei exploitation( stin kainourgia version ipostirizi kapoio idios enumeration). Sql injection exploitation tool einai to sqlmap. Ara o a8rografos sigrini ena tool pou den kanei exploitation me ton an8ropo pou stin prokimeni periptosi kanei…. ti allo 8a doume re Thisea….

Αφήστε μια απάντηση

Η ηλ. διεύθυνση σας δεν δημοσιεύεται. Τα υποχρεωτικά πεδία σημειώνονται με *