Καλώς ορίσατε στο dotNETZone.gr - Σύνδεση | Εγγραφή | Βοήθεια
σε

 

Αρχική σελίδα Ιστολόγια Συζητήσεις Εκθέσεις Φωτογραφιών Αρχειοθήκες

test

Îåêßíçóå áðü ôï ìÝëïò Thiseas. Τελευταία δημοσίευση από το μέλος Thiseas στις 05-03-2010, 21:40. Υπάρχουν 0 απαντήσεις.
Ταξινόμηση Δημοσιεύσεων: Προηγούμενο Επόμενο
  •  05-03-2010, 21:40 57459

    test

    Θα παρουσιάσω τον τρόπο που μπορεί κάποιος να παραποιήσει τα δεδομένα που ξέρει ο router για κάποιο υπολογιστή του δικτύου (ARP Poisoning) με αποτέλεσμα την άρνηση εξυπηρέτησης ή αλλιώς το γνωστό (DOS) Denial Of Service ή ακόμα πιο "λαϊκά": Να μην έχει internet!!
    Επίσης θα δείξω πώς η παραπάνω μέθοδος θα μπορούσε (με μια μικρή αλλαγή) να χρησιμοποιηθεί και για επιθέσεις Man In The Middle. Γενικά θα δούμε την λειτουργία του ARP Poisoning στην πράξη. Δεν θα χρησιμοποιήσω κάποιο έτοιμο εργαλείο. Ούτε καν θα γράψω κάποιο πρόγραμμα. Την αλλοίωση του πίνακα ARP μαζί με ότι αυτό συνεπάγεται, θα την πραγματοποιήσω με τον πατροπαράδοτο παλιό καλό τρόπο: Χειροκίνητα!

    Θα πραγματοποιήσω την επίθεση από ένα box με λειτουργικό σύστημα Windows Vista SP2 σε ένα box με Windows XP SP2. Ακόμα, θα παρακολουθήσω και θα ελέγξω την επιτυχία της επίθεσης με την χρήση του γνωστού sniffer Wireshark.

    Για να καταλάβουμε πως ακριβώς θα λειτουργήσει η επίθεση θα πρέπει να μιλήσω πρώτα για ένα πρόγραμμα που μας δίνεται μαζί με τα Vista αλλά και τα XP. Ένα πρόγραμμα που τρέχει από την γραμμή εντολών του λειτουργικού συστήματος, και που «ακούει» στο όνομα ARP.EXE και βρίσκεται (που αλλού;) στον κατάλογο c:\windows\system32. Το πρόγραμμα αυτό μόλις εκτελεστεί με την παράμετρο "-a" θα μας δείξει τα περιεχόμενα του πίνακα ARP (εικόνα 1).


    Εικόνα 1: Τα περιεχόμενα του πίνακα ARP

    O πίνακας ARP περιέχει την σύνδεση μεταξύ της IP address ενός υπολογιστή (ή καλύτερα ενός network interface) στο δίκτυο και της MAC Address του. Για τους πιο θεωρητικούς, πρόκειται για μια σύνδεση μεταξύ του OSI layer level 2 (Data Link Layer – όπως η MAC Address) με το OSI layer 3 (Network Layer – όπως η IP Address).
    Αυτός ο πίνακας "ζει" και ανανεώνεται στην μνήμη του κάθε ένα υπολογιστή. Στο παράδειγμα της εικόνας 1, βλέπουμε ότι στον τρέχον υπολογιστή στο interface με IP 192.168.1.66 είναι καταχωρημένες εφτά συσκευές, ή για να είμαι πιο ακριβής, εφτά network interfaces (θα το εξηγήσω αυτό περισσότερο στην επόμενη παράγραφο). Η πρώτη στήλη είναι η IP address (Internet address) η δεύτερη στήλη είναι η MAC address και η τρίτη στήλη αναφέρει αν η συγκεκριμένη καταχώρηση είναι στατική ή δυναμική. Οι δυναμικές καταχωρήσεις εισάγονται αυτόματα (όταν γίνει αναφορά κάποιας διεύθυνσης που δεν είναι ήδη καταχωρημένη) από ένα πρόγραμμα που δίνεται μαζί με το λειτουργικό σύστημα και ονομάζεται DHCP server. Π.χ. Αν κάνω ένα ping σε κάποια μη καταχωρημένη διεύθυνση, τότε αυτή εισάγεται ή αν υπάρχει ήδη τότε ενημερώνεται (εφόσον δεν είναι στατική!!). Οι Στατικές καταχωρήσεις μπορούν να εισάγονται από προγράμματα ή από τον ίδιο τον χρήστη. Αυτές έχουν προτεραιότητα έναντι των δυναμικών. Κρατήστε το αυτό! Θα μας χρειαστεί λίγο αργότερα.

    Σας χρωστάω όμως μια εξήγηση. Προηγουμένως ήθελα να είμαι ακριβής και ανάφερα ότι στον πίνακα ARP καταχωρούνται interfaces και όχι κατ' ανάγκη συσκευές μεμονωμένες. Θα δώσω ένα παράδειγμα μια και πρόκειται για ένα θέμα που δεν είναι συχνά ξεκάθαρο σε πολλούς: Το laptop μου όταν συνδέεται μέσω καλωδίου (RJ-45) έχει ενεργό τόσο το ασύρματο interface όσο και το ενσύρματο, το τοπικό. Ο DHCP server δίνει διαφορετική IP σε κάθε interface και φυσικά έχουν και διαφορετική MAC address μια και πρόκειται για διαφορετικές κάρτες δικτύου. Μια τέτοια κατάσταση απεικονίζεται στον πίνακα ARP σαν δύο διαφορετικές εγγραφές (συσκευές) η κάθε μια με την δική της IP. Αυτό είναι απολύτως φυσικό εφόσον ο πίνακας ARP κρατά interfaces και όχι συσκευές (π.χ. υπολογιστές). Στο δικό μας box, στην εικόνα 1, βλέπουμε τρία διαφορετικά interfaces για τον τρέχοντα υπολογιστή που τρέξαμε την εντολή "arp -a". To κάθε ένα με τις δικές του καταχωρήσεις.
    Και τώρα που τα καταλάβαμε όλα και είμαστε γεμάτοι γνώσεις και ενθουσιασμό, ας προχωρήσουμε στην πράξη!

    Για να δούμε όμως όλο το "σκηνικό" αυτό στην πράξη και μάλιστα τι ακριβώς γίνεται "behind the scenes" καλό θα ήταν να ανοίξουμε τον αγαπημένο μας sniffer (http://www.wireshark.org/ - εικόνα 2).


    Εικόνα 2: Επιλογή network interface με τον γνωστό wireshark sniffer σε σVista.

    Ανοίγω τον sniffer και επιλέγω network interface (εικόνα 2). Διαλέγω το interface εκείνο που "βλέπει" την IP 192.168.1.68 το οποίο αντιστοιχεί στην ενσύρματα κάρτα δικτύου μου. Να τονίσω ότι αν εσείς δοκιμάσετε κάτι αντίστοιχο, το πιθανότερο είναι να έχετε μια εντελώς διαφορετική εικόνα, αφού η κάρτα δικτύου σας μπορεί να αντιστοιχεί σε μια εντελώς διαφορετική IP.
    Πριν πατήσω το button start, πάμε να ρίξουμε μια ματιά στα options (εικόνα 3). Πρέπει να έχετε ενεργοποιημένο το checkbox: Capture packets in promiscuous mode. Αυτό σημαίνει ότι ο sniffer μας θα συλλαμβάνει και τα πακέτα δεδομένων που διακινούνται στο LAN μας τα οποία δεν προορίζονται μόνο για εμάς, δηλαδή μόνο για τον 192.168.1.68. Μετά από αυτό μπορώ πλέον με χαρά να πατήσω το κουμπί start αν θέλω να αρχίσω να παρακολουθώ την κίνηση των πακέτων δεδομένων στο LAN.


    Εικόνα 3: Η επιλογές της κάρτας δικτύου για την παρακολούθηση των πακέτων.

    Επίσης, μην ξεχάσω να δω ποια είναι η MAC Address μου ώστε να την χρησιμοποιήσω αργότερα όταν θα "χαλάσω" το box θύμα. Δίνω λοιπόν, την παρακάτω εντολή (φυσικά από την γραμμή εντολών!):
    C:> ipconfig /all |more  
    To αποτέλεσμα το βλέπουμε στην εικόνα 4. Παρατηρείστε ότι η παραπάνω εντολή μας εμφανίζει όλα τα network interfaces με πρώτο και καλύτερο αυτό της ασύρματης κάρτας το οποίο είναι επίσης ενεργό. Βλέπουμε ότι κάθε intreface έχει την δικιά του IP και την δικά του MAC address. Μην ακούσω λοιπόν ποτέ ξανά κανέναν να ισχυρίζεται οτι σε ένα box δεν είναι δυνατόν να έχουμε παραπάνω από 1 MAC address!
    Παρατηρούμε λοιπόν, ότι η MAC διευθύνση για την ενσύρματη κάρτα δικτύου μου είναι η 14-49-62-80-E2-AA.


    Εικόνα 4: Τσεκάροντας τo network interface μας και την MAC address του.

    Επίσης δώστε βάση και στην τιμή "DNS servers" (192.168.1.254). Είναι η IP του router μου! Μην την ξεχάσετε... θα μας χρειαστεί!

    Είμαι τώρα έτοιμος να κάνω την επίθεση. Αυτό που θα κάνω είναι να τρέξω στο box του "θύματος" την εντολή arp με τέτοιες παραμέτρους ώστε
    1.Να διαγράψω τις τιμές που γνωρίζει ήδη για τα άλλα boxes του δικτύου και
    2.Να βάλω τις δικές μου τιμές. Με στόχο να μπερδέψω το "θύμα", σαν δική μου τιμή θα βάλω το εξής: Θα δηλώσω στον πίνακα ARP του θύματος ότι η IP του router συνδέεται με την δική μου MAC address! Αυτό θα έχει σαν αποτέλεσμα, κάθε κλήση στο internet που θα κάνει το θύμα, να αποστέλλεται στο δικό μου box. Μήπως αυτό σας θυμίζει το 1ο βήμα μιας επίθεση MITM; Ναι, ίσως είναι. Αλλά αυτό και μόνο το βήμα είναι αρκετό για να "μπλοκάρει" την σύνδεση του θύματος με το διαδίκτυο, μιας και όλες η κλήσεις του προς οποιονδήποτε server θα στέλνονται στο δικό μου box το οποίο και θα τις αγνοεί παραδειγματικά!
    Τα 1 και 2 υλοποιούνται πάρα μα πάρα πολύ εύκολα με δυο εντολές (εικόνα 5):
    Για το 1 τρέχουμε την εντολή
    C:> arp -d *   
    και διαγράφουμε όλες τις αναφορές του πίνακα ARP. Μην τρομάζετε όμως, αυτό δεν είναι και τόσο κακό μια και με κάθε κλήση σε κάποια άλλη διεύθυνση ο Κος Δρομολογητής μας θα ενημερώσει αμέσως τον πίνακα ARP... εκτός κι αν τον προλάβουμε και τρέξουμε το παρακάτω:
    C:> arp -s 192.168.1.254 14-49-62-80-e2-aa   
    Εδώ βρίσκεται όλο του ζουμί αυτού του άρθρου! Με την εντολή αυτή εισάγω στον πίνακα ARP μια εγγραφή η οποία λέει: Ο router (192.168.1.254) έχει mac address την 14-49-62-80-e2-aa, που είναι η δική μου mac address! Μάλιστα παρατηρώ ότι η παραπάνω εντολή δημιουργεί μια εγγραφή στον πίνακα ARP τύπου static (εκόνα 5)! Μάλιστα. Η εγγραφή πια δεν αλλάζει εκτός κι αν τρέξει κάποιος το arp -d *


    Εικόνα 5: Η επίθεση σε εξέλιξη στον υπολογιστή θύμα!

    Ένας κακόβουλος χρήστης μπορεί να υλοποιήσει τα παραπάνω με πολλούς τρόπους. Κατ' αρχάς βάζει τις παραπάνω εντολές σε ένα batch file και μετά:
    1. Μπορεί να μπει στον υπολογιστή σας όσο λείπετε και να το εκτελέσει από ένα memory stick. Απαιτεί φυσική πρόσβαση στο box σας! Σπάνιο αλλά όχι αδύνατο.
    2. Μπορεί να μπει στον υπολογιστή σας όσο λείπετε, να ανοίξει ένα command prompt και να εκτελέσει απλά τις εντολές. Επίσης, απαιτεί φυσική πρόσβαση στο box σας! Σπάνιο αλλά όχι αδύνατο. Αρκεί να μην σας βάλουν στο... μάτι.
    3. Να σας στείλει ένα mail με τίτλο "Κοίτα τι όμορφο πρόγραμμα βρήκα" ή "Έλα Αλέκο βρήκα το πρόγραμμα που μου ζήτησες..." και να έχει attach το batch file που να σας προτρέπει να το πατήσετε. Σε Win sVista/7 απαιτεί admin rights, εκτός κι αν έχετε απενεργοποιήσει το UAC...
    4.Να μπει με metasploit εκμεταλλευόμενος κάποια αδυναμία του λειτουργικού συστήματος σας καλώντας ένα reverse shell οπότε μετά απλά μπορεί να εκτελέσει τις παραπάνω εντολές.
    Οι τρόποι είναι πάρα πολλοί. Τόσοι, όσοι μπορείτε να σκεφτείτε αν αναρωτηθείτε πως είναι δυνατόν κάποιος να τρέξει εντολές στο PC σας με τη θέληση σας ή με την άγνοια σας ή με ότι άλλο φανταστείτε τόσο εσείς όσο κι εγώ B)

    Από την στιγμή που θα τρέξουν η δύο παραπάνω εντολές, όλες κλήσεις προς στο internet στον υπολογιστή "θύμα" θα πέφτουν σε εμάς (στην δική μου IP)... ή αλλιώς στο κενό (εικόνα 6).


    Εικόνα 6: Αχρηστεύοντας προσωρινά το internet του φίλου μας!

    Έχω προετοιμαστεί και για μια παρακολούθηση, όμως ε? Μάλιστα βλέπω στον sniffer, πακέτα που προέρχεται από την IP του θύματος (192.168.1.69) να προσπαθεί μάταια να δει το travel link του site www.msn.com (εικόνα 7).


    Εικόνα 7: Το θύμα προσπαθεί να επισκεφτεί ένα link "επί ματαίω" κι εγώ τον παρακολουθώ!

    Θα μπορούσα (όπως είπα στην αρχή), σε αυτό το σημείο να κάνουμε και κάτι άλλο, σαν επέκταση τις επίθεσης μας: Μόλις λαμβάνω τα πακέτα δεδομένων από το θύμα, να τα στέλνω στον router αντί να τα "πνίγω" και μετά αφού ο router μας απαντούσε να έστελνα την απάντηση πίσω στο θύμα. Ακριβώς! Καλά το καταλάβατε. Σε αυτήν την περίπτωση θα είχα υλοποιήσει μια επίθεση Man In The Middle - ΜΙΤΜ κλέβοντας και παρακολουθώντας όλες τις κινήσεις του θύματος στο internet, με ότι αυτό συνεπάγεται. Δηλαδή, θα μπορούσα να δω κωδικούς πιστωτικών καρτών, passwords, mails κλπ κλπ! Γενικά θα έλεγα (με υψηλή πιθανότητα επιτυχίας), ότι θα προέκυπτε μια καθόλου ευχάριστη κατάσταση για το "θύμα" μας...!

    Χμ... Έχει μείνει ακόμα ένα σκοτεινό σημείο: Αν το "θύμα" έκανε restart τον υπολογιστή του, θα την γλίτωνε; Θα καθάριζε ο ARP table ακόμα κι από τις στατικές καταχωρήσεις;
    Η απάντηση είναι ΝΑΙ.
    Με το restart το ARP table γίνεται clear τόσο από δυναμικές όσο και από στατικές καταχωρήσεις.

    Όλα αυτά που παρουσίασα δεν έχουν στόχο μόνο την εκπαίδευση αλλά και την προστασία μας αφού το ρητό "η γνώση είναι δύναμη" επαληθεύεται ακόμα και πίσω από την αρχή:
    Μάθε πως σκέφτεται ένας κακός χρήστης. Θα σου χρειαστεί για να προφυλαχτείς καλύτερα.

    Happy ARPing!
    Nothing to declare...
Προβολή Τροφοδοσίας RSS με μορφή XML
Με χρήση του Community Server (Commercial Edition), από την Telligent Systems