Το προφίλ μας στο Google Plus
10

Χάκινγκ στο Διαδίκτυο

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

Μην τρομάζετε, δεν πρόκειται ν’ αρχίσουμε να εξιστορούμε φανταστικές ιστορίες τρόμου αλλά πραγματικές, που έλαβαν χώρα στο Διαδίκτυο, σ’ ένα χώρο που δεν φαίνεται -ή καλύτερα σ’ ένα χώρο που είναι ορατός από λίγους! Όπως έχουμε ήδη πει πολλές φορές, ό,τι βλέπουμε στο web είναι αποτέλεσμα των εντολών κάποιων προγραμμάτων, τα οποία βρίσκονται αποθηκευμένα σε κάποιους σκληρούς δίσκους, σε μερικά εκατομμύρια server. Μετά απ’ αυτή τη σχετικά απλουστευμένη διατύπωση, μπορούμε να πούμε ότι το παρασκήνιο του Internet αποτελείται από δύο ομάδες. Ας τις ονομάσουμε Α και Β.

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

Ομάδα Β: Εδώ βρίσκονται κάποιοι που δρουν τις περισσότερες φορές αόρατα – ακόμα και γι’ αυτούς που βρίσκονται στην ομάδα Α. Είναι αυτοί που δοκιμάζουν την ασφάλεια των συστημάτων, όχι για να κάνουν κακό αλλά για να διορθώσουν και να κλείσουν ξεχασμένες… ανοιχτές πόρτες. Είναι αυτοί που ξενυχτούσαν διαβάζοντας, όχι για να περάσουνε κάποιες εξετάσεις αλλά μόνο και μόνο για το κέφι τους, επειδή έτσι την έβρισκαν. Στη ομάδα Β δραστηριοποιούνται οι άνθρωποι που θα γίνουν –αν δεν έχουν ήδη γίνει– χάκερ.

Αφού γνωρίσατε τώρα και τις δύο ομάδες που αποτελούν το παρασκήνιο του Internet, φαντάζομαι ότι δε θα δυσκολευτείτε να μαντέψετε με ποια θ’ ασχοληθούμε σ’ αυτό το άρθρο (ναι, σωστά μαντέψατε – για τη Β!) Ό,τι διαβάσετε στη συνέχεια βασίζεται σε αληθινά γεγονότα και αφορά Έλληνες χάκερ που ανήκουν στην ομάδα Β.

Αλήθεια, αναρωτηθήκατε κάποια στιγμή για το πώς κινούνται αυτοί οι άνθρωποι και τι σκοπούς έχουν; Είναι κακοπροαίρετοι, ελιτιστές ή ανόητοι πιτσιρικάδες; Μήπως είναι κάτι άλλο, εντελώς αντίθετο; Για να δούμε, για να δούμε…

Καθορισμός στόχων

Ένας από τους αγαπημένους στόχους είναι η κατάληψη ενός ιντερνετικού server (κατά την αργκό: get root ή own the box). Όμως τι ακριβώς σημαίνει αυτό; Μην πάει το μυαλό σας σε καμιά μεγάλη φασαρία, αφού στις περισσότερες των περιπτώσεων κανείς εκ των υπευθύνων δεν καταλαβαίνει κάτι! Αυτό που στην πραγματικότητα συμβαίνει είναι να βρει ο επιτιθέμενος το username και το password του διαχειριστή συστήματος και να μπει σ’ αυτό ως root, admin κ.λπ. Λογικά, τώρα θ’ αναρωτιέστε γιατί θα ήθελε κάποιος να κάνει κάτι τέτοιο… Χμ, οι λόγοι είναι πολλοί αλλά σχεδόν ποτέ δεν πηγάζουν από κακία, ούτε αποτελούν πρελούδιο εχθρικών ενεργειών. Θα εξηγήσουμε σε λίγο, ας αναφέρουμε όμως πρώτα τους τρόπους που συνήθως εφαρμόζονται για να γίνει μια κατάληψη…

Όχι από την κεντρική είσοδο!

Οι τρόποι που συνήθως ακολουθούνται για να το καταφέρουμε είναι η εκτέλεση ενός ειδικού προγράμματος ή εντολής η οποία «εκθέτει» μια αδυναμία του προγράμματος που τρέχει στον (απομακρυσμένο) server. Το ειδικό αυτό πρόγραμμα ή εντολή ονομάζεται exploit. Τα exploits συνήθως γράφονται σε γλώσσες όπως PHP, Perl, Python ή C/C++. Είναι κατασκευασμένα ώστε να εκμεταλλεύονται αδυναμίες συγκεκριμένων προγραμμάτων που τρέχουν στους server των υποψήφιων θυμάτων. Εμείς θα παρουσιάσουμε μια επίθεση σε συγκεκριμένο πρόγραμμα ενός server, αρκετά κοινό και γνωστό, που χρησιμοποιείται σε πληθώρα site. Ο λόγος γίνεται για το γνωστό σύστημα διαχείρισης περιεχομένου ονόματι Joomla. H μέθοδος που θα χρησιμοποιήσουμε για να “exploitάρουμε” τα site που τρέχουν Joomla είναι η RFI (Remote File Inclusion).

Η επίθεση

Με τη χρήση του RFI καλούμε ένα πρόγραμμα που βρίσκεται σ’ έναν άλλο server, τον οποίο ελέγχουμε εμείς αφού τον αποκτήσαμε ως λάφυρο από μια προηγούμενη επίθεση… Όπως καταλάβατε, λοιπόν, η κατάληψη ενός server χρησιμοποιείται σαν «σκαλοπάτι» για την κατάληψη ενός νέου server κ.ο.κ. Το πρόγραμμα που θα καλέσουμε είναι αρκετά γνωστό στις τάξεις των χάκερ και ονομάζεται DxShell. Πρόκειται για ένα PHP-Shell: Είναι ένα πρόγραμμα γραμμένο σε PHP το οποίο μόλις τρέξει μας επιτρέπει να διαχειριστούμε όλα τα αρχεία στον κατάλογο και τα δεδομένα της βάσης δεδομένων του server.

Το Shell έχει ήδη τρέξει στον server κι εμείς έχουμε αναλάβει δράση...

Στην εικόνα φαίνεται αυτό που βλέπει ένας hacker αφού έχει επιτεθεί σ’ ένα site κι έχει τρέξει το shellάκι μέσω μιας exploitable εντολής που πληκτρολόγησε στη γραμμή διευθύνσεων του browser!  Από το σημείο αυτό και μετά τα πράγματα συνήθως είναι αρκετά εύκολα. Και λέμε “συνήθως” διότι αρκετές φορές, ανάλογα με τα settings του εκάστοτε server, δεν είναι δυνατό να τρέξει το shell σωστά ή τρέχει χωρίς να μας δίνει ο server δικαιώματα για εγγραφή (write access). Στο παράδειγμα που σας δίνουμε όμως εδώ τέτοια προβλήματα δεν υπήρχαν: ο server ήταν αρκετά… συνεργάσιμος :-)

Αφού λοιπόν πάρουμε shell αρχίζουμε να ψάχνουμε κυρίως για κωδικούς. Φυσικά, μπορούμε πάρα πολύ εύκολα να χαλάσουμε ή να καταστρέψουμε το site. Κάτι τέτοιο όμως δεν ανήκει στις ενέργειες που εντάσσονται στο ρεπερτόριο ενός χάκερ. Επίσης, μπορούμε πάρα πολύ εύκολα να κάνουμε το περίφημο deface ή αλλιώς graffiti, στην κεντρική σελίδα του site. Το deface είναι αρκετά παρεξηγημένο αφού τις περισσότερες φορές γίνεται από script kiddies ή αλλιώς πιτσιρικάδες που απλά χρησιμοποίησαν ένα έτοιμο πρόγραμμα και κάνουν μαγκιές καταστρέφοντας όποιο site πέσει στην κατοχή τους… Όμως το deface δεν σημαίνει ότι καταστρέφουμε ό,τι βλέπουμε. Συνήθως deface κάνουμε σε συγκεκριμένα site και γράφουμε με προσοχή, χωρίς να καταστρέψουμε κάτι, εκφράζοντας ενδεχομένως τη διαφωνία μας, τη διαμαρτυρία μας και γενικά περνώντας το μήνυμά μας –πάντα αλλάζοντας την κεντρική σελίδα χωρίς να τη χαλάσουμε. Πώς γίνεται όμως αυτό; Χμ, απλά πράγματα: Η κεντρική σελίδα ενός site συχνά είναι το αρχείο με όνομα index.htm, default.asp, index.php κ.ο.κ. Αυτό που κάνουμε –όταν κι εφόσον αποφασίσουμε να κάνουμε ένα deface– είναι να μετονομάσουμε το index.htm (π.χ., index.htm.ORIGINAL) και να βάλουμε ένα δικό μας index.htm που θα περιέχει αυτά που θέλουμε να δείχνει το site όταν κάποιος το επισκεφτεί. Για παράδειγμα, ένα index.htm που μπορεί να χρησιμοποιηθεί για deface μπορείτε να δείτε εδώ.

Το deface όμως δεν είναι ο βασικός σκοπός μας, όπως είπαμε. Εμείς θέλουμε τα credentials του admin, ώστε να αποκτήσουμε πρόσβαση στο λεγόμενο κέντρο ελέγχου (control panel) του site. Έτσι, θα μπορούμε, π.χ., να το χρησιμοποιούμε ως μέρος των εργασιών και των δοκιμών μας. Τώρα, μέσα στο δίσκο του server υπάρχουν πάρα πολλά αρχεία. Συνήθως, αρχεία που στο όνομα τους έχουν το string “config” περιέχουν πληροφορίες για τη βάση δεδομένων. Σ’ αυτά τα αρχεία υπάρχουν και οι πληροφορίες για το πώς θα μπούμε στη βάση δεδομένων πίσω από το site (Κωδικός / Password χρήστη, όνομα της βάσης, όνομα του μηχανήματος στο οποίο βρίσκεται η βάση κ.ά.). Όλες αυτές είναι βοηθητικές πληροφορίες για το πώς θα μπούμε στην βάση αλλά δεν μας δείχνουν πώς θα μπούμε ως admin. Αφού καταφέρουμε και μπούμε στην βάση,  θα πρέπει να ψάξουμε κάποιους συγκεκριμένους πίνακες που περιέχουν το όνομα και το password του admin. Έστω, λοιπόν, ότι καταφέραμε να βρούμε τα απαραίτητα στοιχεία για να μπούμε στη βάση δεδομένων. Πώς θα βρούμε την «πόρτα εισόδου»; Χμ, για άλλη μια φορά θα μας βοηθήσει εκείνο το shell. Με την επιλογή [SQL] το shell θα ζητήσει τα απαραίτητα στοιχεία (που μόλις βρήκαμε) για να μπει στην βάση. Μόλις γίνει αυτό θα δούμε στην οθόνη μας όλους τους πίνακες που περιέχει. Επιλέγοντας τον users βλέπουμε τα στοιχεία που περιέχει και εύκολα διαπιστώνουμε αν κάποιος χρήστης είναι Administrator ή όχι (υπάρχει σχετική ένδειξη). Μέσα σ’ αυτόν τον πίνακα υπάρχει και ο κωδικός αλλά και το password του χρήστη. Για παράδειγμα, θα δούμε κάτι σαν:

Admin : E5189AE186652F59EB02DB5BCFB167AD

Δοκιμάζουμε τον κωδικό και το password του admin που βρήκαμε...

Η λέξη “Admin” είναι το username. Το password όμως, απ’ ότι βλέπετε, είναι κωδικοποιημένο. Κάποιος που έχει συνηθίσει να χρησιμοποιεί διάφορες μορφές κωδικοποίησης εύκολα θα καταλάβει ότι έχει  να κάνει με την αρκετά γνωστή κωδικοποίηση MD5. Αυτό που μένει τώρα είναι η αποκωδικοποίηση του E5189AE186652F59EB02DB5BCFB167AD. Πίσω απ’ την περίεργη αυτή σειρά χαρακτήρων βρίσκεται το πραγματικό password. Αν το πρόκειται για μια απλή λέξη μπορούμε πολύ εύκολα να τη βρούμε χρησιμοποιώντας ακόμα και on-line «σπαστήρια»… Ακολούθως πρέπει να βρούμε πώς μπαίνει ο admin στο site. Πολύ συχνά η είσοδός του γίνεται γράφοντας τη διεύθυνση του site και μετά τη σειρά χαρακτήρων /admin ή /administrator (εικόνα παραπάνω). Και ναι, λοιπόν, η απόπειρα μας στέφεται με επιτυχία! (εικόνα κάτω)

Η επιτυχημένη απόπειρα εισαγωγής μάς βάζει ως admin σ' ένα γαλλικό site...

Κατάληψη του ίδιου του server!

Αυτό που έχουμε καταφέρει μέχρι τώρα είναι η κατάληψη του site, αλλά όχι όμως και του server που το φιλοξενεί (η κατάληψη του ίδιου του server είναι ένας βασικός στόχος των περισσότερων χάκερ). Υπάρχουν πολλές περιπτώσεις όπου, ψάχνοντας στο site έχοντας πάρει shell, βρίσκουμε πληροφορίες για ολόκληρο τον server που το φιλοξενεί, αυτό και ενδεχομένως και άλλα site.

Οι πληροφορίες που ψάχνουμε είναι συνήθως κωδικοί και passwords που μας επιτρέπουν –στην καλύτερη περίπτωση– να γίνουμε διαχειριστές (root) ολόκληρου του server. Συνήθως όμως παρέχουν περιορισμένη πρόσβαση στον server… Σε μια τέτοια περίπτωση πρέπει ν’ ανεβάσουμε και να τρέξουμε κάποια exploit (που κάθε χάκερ πρέπει να έχει στη φαρέτρα του) τα οποία θα προσπεράσουν τους μηχανισμούς ασφάλειας του συστήματος και θα μας δώσουν root access. Διαδικασία όχι πάντα εύκολη και συχνά ανεπιτυχής… Αν όμως πετύχει, τότε οι δυνατότητες χρήσης του box είναι απεριόριστες (όπως φαίνεται στην παρακάτω εικόνα).

Κατάληψη του ίδιου του server με root access (server owned!)

Φυσικά, μέσα σ’ έναν server πρέπει να παίρνουμε τις προφυλάξεις μας έτσι ώστε να είμαστε κατά το δυνατόν αόρατοι. Δεν θα αναφερθούμε ξανά σε σχετικές τεχνικές που έχουν αναφερθεί σε προηγούμενα άρθρα.

Συμπεράσματα

Στο παρόν άρθρο περιγράψαμε ένα μικρό μόνο μέρος των πρακτικών που εφαρμόζει ένας χάκερ ή μια ολόκληρη ομάδα χάκερ, μιας και σε τέτοιες επιχειρήσεις η ρήση «η ισχύς εν τη ενώσει» βρίσκει το νόημα της… O ακήρυχτος πόλεμος μεταξύ των δύο παρασκηνιακών ομάδων κρατάει καλά για πολλά χρόνια, ακόμα και στην Ελλάδα. Στην πραγματικότητα πρόκειται σαν μια διαρκή άσκηση ή αλλιώς για μια πρόσκληση για δοκιμή γνώσεων. Συχνά οι απόπειρες κατάληψης δε γίνονται με σκοπό ούτε την καταστροφή, ούτε την κλοπή προσωπικών δεδομένων –και σχεδόν ποτέ με ιδιοτελή κίνητρα. Στόχος είναι η γνώση και η απόδειξη ότι *εμείς* καταφέραμε να μπούμε στο σύστημα σας κι *εσείς* δεν το πήρατε μυρωδιά! Τίποτε λιγότερο, τίποτε περισσότερο. Και φυσικά, όπως ήδη αναφέραμε, κάθε λάφυρο χρησιμοποιείται και σαν όπλο για την επόμενη επίθεση…

Ο αρθρογράφος θα ήθελε να ευχαριστήσει του φίλους Chris1988 και Hack8 για την πολύτιμη βοήθεια τους στη δημιουργία του παρόντος άρθρου.

10 Responses to “Χάκινγκ στο Διαδίκτυο”

  1. mp3nick | 29/11/2011 at 12:19

    Σε ευχαριστούμε πάρα πολύ Θησέα για το άρθρο σου .Αν γίνετε να κάνεις ένα άρθρο το πως να είμαστε αόρατοι (οτιδήποτε κάνουμε) ! να προφυλάξουμε την ΙP μας,να καλύπτουμε τα ίχνη που αφήνουμε !
    ΣΕ ΕΥΧΑΡΙΣΤΟΎΜΕ ΠΟΛΎ

  2. ratb0y | 30/11/2011 at 00:17

    Από τα αγαπημένα μου…

  3. theef | 30/11/2011 at 23:46

    Λίγο ξενέρα αυτο που θα πω…αλλά πρέπει να το πω…
    Δεν είναι λίγο επικύνδινο να αποκτούν τέτοια δύναμη όλοι που θα διαβάσουν το άρθρο??
    Θέλω να πω…στο τέλος δεν θα μείνει site για site όρθιο!!!
    Φιλικά πάντα…

    • MortisGR | 01/12/2011 at 01:01

      Αν μπορώ, να σου θέσω ένα παράδειγμα. Έστω ένα αιχμηρό αντικείμενο, μαχαίρι, κατσαβίδι κλπ. Αν στο δώσει κάποιος υποδεικνύοντας σου την σωστή χρήση, και εσύ πας και καρφώσεις κάποιον, θα φταίει αυτός που σου το έδωσε; Με αυτό το σκεπτικό, γιατί να μένει η γνώση “συγκεντρωμένη” κάπου, εφόσον κάποιος έχει την διάθεση να την μοιραστεί; Υποτίθεται ότι απευθύνεται σε άτομα κάποιου επιπέδου (ακούγεται άσχημα, αλλά ας μου επίτραπεί η εκφραση), το πως θα την χρησιμοποιήσει μένει πλέον στην κρίση του… (και σαφώς αυτό αποτελεί εντελώς προσωπική άποψη, και δέχομαι αντιρρήσεις και σχόλια).

    • subZraw | 01/12/2011 at 09:21

      Θα συμφωνήσω με τον @MortisGR και θα προσθέσω ότι προσωπικά φοβάμαι τη γνώση που έχουν λίγοι και μάλιστα την κρατάνε κρυφή. Αντιθέτως, όταν η γνώση δεν είναι κρυφή αφενός δεν την φοβάμαι, αφετέρου θεωρώ ότι έχει τη δυναμική να φέρει κάτι θετικό.

      Εν προκειμένω, το θετικό είναι ότι ασκεί πίεση σε προγραμματιστές, διαχειριστές, υπεύθυνους ασφαλείας κ.λπ. να διορθώνουν τις όποιες αδυναμίες του software και των συστημάτων :)

  4. theef | 01/12/2011 at 21:44

    Ναι έτσι όπως το θέσατε έχετε δίκιο…και ευχαριστούμε που μοιραζόσαστε την (πολύτιμη) γνώση σας μαζί μας…
    Παρεπιπτόντως (μιας και δεν το ανέφερα προηγουμένως) το άρθρο είναι απο τα καλύτερα που έχω διαβάσει!!
    Ευχαριστούμε thiseas και ελπίζουμε το άρθρο να μην πέσει σε λάθος χέρια…

  5. Dr.Paneas | 03/12/2011 at 14:19

    Καλογραμμένο το άρθρο σου Thisea. Αν μη τι άλλο, πέρα από τεχνικές γνώσεις, έχεις ταλέντο και στην συγγραφή. Θα ήθελα να δω ένα άρθρο για το πώς μπορεί να στήσει κάποιος ένα εργαστήριο στο σπίτι για penetration testing. Δηλαδή, έστω ότι βρήκα το τάδε expl01t για την τάδε έκδοση, να στήνω έναν vulnerable server και να κάνω “ethical” hacking. Καλή συνέχεια και ευχαριστούμε :)

    • subZraw | 03/12/2011 at 14:55

      Χρωστάμε ένα άρθρο πάνω σ’ αυτό που σ’ ενδιαφέρει (virtual labs) και πιστεύουμε ότι σύντομα θα το έχουμε online, εδώ. Ούτε συνεννοημένοι για διαφήμιση να είμαστε :D

      • Dr.Paneas | 03/12/2011 at 18:58

        Που ξέρεις ότι δεν παρακολουθώ το pc σου; Πάμε για κανά καφέ αφού είμαστε απο Θεσσαλονίκη και οι δυο. Χαχαχα!

        • subZraw | 03/12/2011 at 19:24

          Να πάμε, γιατί να μην πάμε; Μόνο μη με ρωτήσεις “πότε”, γιατί προς το παρόν δεν θα μπορώ να σου πω… :S

Leave a Reply

You must be logged in to post a comment.

Σύνδεση

Αρχείο δημοσιεύσεων