«Ποιος είναι συνδεδεμένος στο δίκτυό μου και ποιος κλέβει internet», ήταν μια ερώτηση που μου έκανε ένας φίλος πρόσφατα και την οποία είμαι σίγουρος ότι την έχετε ακούσει αρκετές φορές και από άλλους. Ας δούμε μερικές μεθόδους με τις οποίες θα μπορούμε εύκολα να εντοπίσουμε ποιοι είναι συνδεδεμένοι στο Wifi και κατ’επέκταση στο δίκτυό μας και να πάρουμε τον έλεγχο στα χέρια μας.
Εισαγωγή
Όποιος και αν είναι ο σκοπός για τον οποίο θέλουμε να μάθουμε ποιες συσκευές και ποιοι είναι συνδεδεμένοι στο δίκτυό μας θα πρέπει να κατανοήσουμε κάποιους βασικούς όρους.
Η τοπολογία ενός δικτύου είτε είναι στο σπίτι μας είτε στην δουλειά διαφέρει απλά στο μέγεθος. Κατά τα άλλα αποτελείται από τα ίδια συστατικά. Όπως είδαμε και στο άρθρο «πως φτιάχνουμε ένα home server«:
Ένα τυπικό δίκτυο του σπιτιού μας αποτελείται σε γενικές γραμμές από
- Router ( η συσκευή που μας δίνει internet)
- Καλώδια/ η Wifi
- Οι διευθύνσεις IP (μία για κάθε συσκευή)
Το router μας (δρομολογητής) είναι στην πραγματικότητα και αυτός ένας μίνι Server και ο ρόλος του είναι να παρέχει σύνδεση στο Internet, διευθύνσεις IP και διεκπεραιώνει τα αιτήματα για δεδομένα μεταξύ των συσκευών που είναι συνδεδεμένα σε αυτό μέσω των καλωδίων/ ή WiFi.
Άρα, όποια συσκευή έχει (καταφέρει) να συνδεθεί στο ρουτερ μας, αποτελεί πλέον μέρος του δικτύου μας οπότε και μπορούμε να το εντοπίσουμε όπως είχαμε δει και στο άρθρο «Προστάτεψε το WiFi σου από Hackers«. Παρακάτω θα παρουσιάσουμε μερικά εργαλεία με τα οποία μπορούμε να κάνουμε μια «χαρτογράφηση» για το «ποιος είναι συνδεδεμένος στο δίκτυό μας» αλλά και πως να τους αντιμετωπίσουμε.
jNetMap: Τοπολογία δικτύου
Το πρώτο εργαλείο είναι ένα προγραμματάκι γραμμένο σε Java, και ονομάζεται jNetMap. Όπως προδίδει και το όνομα του, η βασική του δουλειά είναι να μας χαρτογραφήσει το δίκτυό μας και να μας δείξει τι και ποιος είναι συνδεδεμένος στο δίκτυό μας.
Αφού το εγκαταστήσετε και το ανοίξετε,
- πατάμε «Create a new map of your network».
- Θα δείτε μια λευκή σελίδα και έπειτα πάτε «Tools –> Network Scanner»
- στο παράθυρο που θα ανοίξει πατάτε Scan.
- Ανάλογα με το μέγεθος του δικτύου σας, μόλις ολοκληρωθεί η χαρτογράφηση, απλά πατάτε το κουμπί «Add».
Μπορεί να μην βλέπετε κάτι αλλά με λίγο zoom-in/zoom-out χρησιμοποιώντας την ροδέλα του ποντικιού θα δείτε ένα εικονίδιο υπολογιστή πάνω στο οποίο είναι «ένα μάτσο» συσκευές.
Με το ποντίκι και με drag, μετακινήστε τις συσκευές για να φτιάξετε ένα σχεδιάγραμμα του δικτύου σας όπως φαίνεται στην παρακάτω εικόνα:
Όπως βλέπουμε είναι συνδεδεμένες 4 συσκευές στο ρουτερ μου. Το jNetMap παρέχει και δυνατότητα με δεξί κλικ σε αυτά να κάνουμε διάφορες εργασίες (όπως σύνδεση μέσω ssh/vnc κλπ) αλλά και να περιγράψουμε τι είναι η κάθε συσκευή.
Είναι ένα χρήσιμο, μικρό εργαλείο που παρέχει αρκετά εργαλεία για κάποιον που ενδιαφέρεται να γνωρίζει τα «κατατόπια» του δικτύου του και το πόσες συσκευές είναι συνδεδεμένες σε αυτό.
Evil Limiter: Όταν πρέπει να «κόψετε» την σύνδεση σε συσκευή που κλέβει internet
Οποιοσδήποτε (π.χ. γείτονας) με τον κωδικό πρόσβασης στο WiFi σας μπορεί να χρησιμοποιεί το δίκτυο σας με αποτέλεσμα ένας συγκάτοικος ή μέλος της οικογένειας μπορεί να χάσουν όλη τη σύνδεση τους άδικα γιατί κάποιος «εξωτερικός» παίζει video games ή κάνει stream βίντεο. Ορισμένα router σας επιτρέπουν να ορίσετε όρια για κάθε σύνδεση, αλλά οι περισσότερες επιλογές είναι συνήθως δύσχρηστες και κάθε ρούτερ έχει δικό του γραφικό περιβάλλον διαχείρισης όπως είδαμε στο άρθρο για τον αποκλεισμός «κακών» websites με τη χρήση του OpenDNS.
Σε κάθε περίπτωση, ένας γρήγορος έλεγχος με μέτρηση ταχύτητας Internet και Intranet στο τερματικό θα μας βάλει ίσως σε υποψίες σε συνδυασμό με το jNetMap, και τις εντολές τερματικού διαχείρισης δικτύου ότι κάτι δεν πάει καλά με την σύνδεσή μας.
Όταν η απλή χαρτογράφηση, δεν αρκεί και πρέπει να λάβετε μέτρα πιο δραστικά, τότε το Evil Limiter κάνει ακριβώς αυτή τη δουλειά επιτρέποντάς σας να ελέγχετε τον ρυθμό των δεδομένων οποιασδήποτε συσκευής στο ίδιο δίκτυο με εσάς και επιτρέποντάς σας να επιβραδύνετε ή ακόμα και να σταματήσετε τις ταχύτητες μεταφοράς δεδομένων για αυτούς.
Το Evil Limiter χρησιμοποιεί την τεχνική ARP spoofing ώστε να «προκαλέσει» τις συσκευές να στέλνουν δεδομένα στον υπολογιστή που το εκτελεί, αντί στο ρουτερ. Αυτό μας επιτρέπει να στέλνουμε τα δεδομένα στο ρούτερ με όποια ταχύτητα θέλετε. Χάρη στον τρόπο λειτουργίας του πρωτοκόλλου ARP, είναι δυνατό να ελέγχετε την ταχύτητα οποιασδήποτε συσκευής σε μια κοινή σύνδεση δικτύου. Ωστόσο, επειδή το ARP spoofing λειτουργεί μόνο σε δίκτυα IPv4 , αυτό το εργαλείο δεν θα είναι αποτελεσματικό για το IPv6.
Τι χρειαζόμαστε για το Evil Limiter
Για να χρησιμοποιήσετε το Evil Limiter, θα χρειαστούμε μια διανομή Linux όπως το Kali ή Ubuntu με Python3 ή νεότερη έκδοση.
Βήμα 1: Εγκαθιστούμε το Evil Limiter
Για να εγκαταστήσετε το Evil Limiter, υπάρχουν μόνο μερικές εντολές που πρέπει να τρέξετε σε ένα τερματικό παράθυρο, όπως φαίνεται παρακάτω.
git clone https://github.com/bitbrute/evillimiter.git
cd evillimiter
sudo python3 setup.py install
Βήμα 2: Έλεγχος εγκατάστασης του Evil Limiter
Στη συνέχεια, μπορείτε να εκτελέσετε το Evil Limiter πληκτρολογώντας evillimiter
σε ένα νέο παράθυρο τερματικού. Θα πρέπει να δείτε μήνυμα όπως παρακάτω:
███████╗██╗ ██╗██╗██╗ ██╗ ██╗███╗ ███╗██╗████████╗███████╗██████╗
██╔════╝██║ ██║██║██║ ██║ ██║████╗ ████║██║╚══██╔══╝██╔════╝██╔══██╗
█████╗ ██║ ██║██║██║ ██║ ██║██╔████╔██║██║ ██║ █████╗ ██████╔╝
██╔══╝ ╚██╗ ██╔╝██║██║ ██║ ██║██║╚██╔╝██║██║ ██║ ██╔══╝ ██╔══██╗
███████╗ ╚████╔╝ ██║███████╗ ███████╗██║██║ ╚═╝ ██║██║ ██║ ███████╗██║ ██║
╚══════╝ ╚═══╝ ╚═╝╚══════╝ ╚══════╝╚═╝╚═╝ ╚═╝╚═╝ ╚═╝ ╚══════╝╚═╝ ╚═╝
by bitbrute ~ limit devices on your network :3
v1.1.0
OK interface: wlan0
OK gateway ip: 192.168.5.1
OK gateway mac: 84:██:██:██:██:1a
OK netmask: 255.255.255.0
type help or ? to show command information.
Αν δείτε αυτό, ο Evil Limiter είναι εγκατεστημένος, συνδεδεμένος στο δίκτυο και έτοιμος να τρέξει.
Βήμα 3: Προβολή διαθέσιμων εντολών
Μπορείτε να εξερευνήσετε τη λειτουργικότητα του Evil Limiter εξετάζοντας το μενού και ελέγχοντας τις διαθέσιμες εντολές. Για να το κάνετε αυτό, πληκτρολογήστε ένα ερωτηματικό στο τερματικό για να προβάλετε τη σελίδα βοήθειας.
(Main) >>> ?
scan scans for online hosts on your network.
required to find the hosts you want to limit.
hosts lists all scanned hosts.
contains host information, including IDs.
limit [ID1,ID2,...] [rate] limits bandwith of host(s) (uload/dload).
e.g.: limit 4 100kbit
limit 2,3,4 1gbit
limit all 200kbit
block [ID1,ID2,...] blocks internet access of host(s).
e.g.: block 3,2
block all
free [ID1,ID2,...] unlimits/unblocks host(s).
e.g.: free 3
free all
add [IP] (--mac [MAC]) adds custom host to host list.
mac resolved automatically.
e.g.: add 192.168.178.24
add 192.168.1.50 --mac 1c:fc:bc:2d:a6:37
clear clears the terminal window.
Βήμα 4: Ποιος είναι συνδεδεμένος στο ρούτερ
Όπως μπορούμε να δούμε παραπάνω, οι εντολές είναι απλές. Για να βρείτε τις συσκευές που υπάρχουν στο δίκτυο, το μόνο που χρειάζεται να κάνετε είναι να πληκτρολογήσετε την εντολή scan
και να πατήσετε enter.
(Main) >>> scan
100% |██████████████████████████████| 256/256
OK 7 hosts discovered.
Η σάρωση θα καταγράψει όλες τις συσκευές στο δίκτυο. Οπότε πληκτρολογήστε hosts
για να τους εμφανίσετε.
(Main) >>> hosts
┌Hosts──────────────┬───────────────────┬──────────┬────────┐
│ ID │ IP-Address │ MAC-Address │ Hostname │ Status │
├────┼──────────────┼───────────────────┼──────────┼────────┤
│ 0 │ 192.168.5.1 │ 84:██:██:██:██:1a │ _gateway │ Free │
│ 1 │ 192.168.5.2 │ 0c:██:██:██:██:f5 │ │ Free │
│ 2 │ 192.168.5.4 │ 3c:██:██:██:██:6f │ │ Free │
│ 3 │ 192.168.5.24 │ 60:██:██:██:██:78 │ │ Free │
│ 4 │ 192.168.5.25 │ c4:██:██:██:██:2b │ │ Free │
│ 5 │ 192.168.5.61 │ 8c:██:██:██:██:f5 │ │ Free │
│ 6 │ 192.168.5.67 │ f0:██:██:██:██:b5 │ │ Free │
└────┴──────────────┴───────────────────┴──────────┴────────┘
Στο παράδειγμά μου, έχουν ανακαλυφθεί επτά συσκευές στο δίκτυο, με ένα από αυτούς να είναι ο δρομολογητής / ρούτερ. Οπότε έχουμε μια λίστα «στόχων» με την οποία μπορούμε να αποκλείσουμε ή να περιορίσουμε την πρόσβαση.
Βήμα 5: Ορισμός ορίου χρήσης ή αποκλεισμός συσκευών
Εάν θέλετε να περιορίσετε κάθε συσκευή (με εξαίρεση τον δρομολογητή), μπορείτε να τα απαριθμήσετε μία προς μία μετά την εντολή limit
. Θα πρέπει επίσης να καθορίσετε την ταχύτητα με την οποία θέλετε να λειτουργούν. Στην περίπτωσή μου, θα δοκιμάσω 200kbit ως περιοριστική ταχύτητα.
Θα μπορούσατε να χρησιμοποιήσετε την εντολή limit all
για να επιλέξετε τα πάντα, αλλά επειδή δεν θέλουμε να πειράξουμε τον δρομολογητή, πληκτρολογήστε limit 1,2,3,4,5,6
για να αρχίσετε να περιορίζετε αυτές τις συγκεκριμένες συσκευές. Ο αριθμός των συσκευών που έχετε καταχωρίσει εξαρτάται από το πόσα βρήκατε.
(Main) >>> limit 1,2,3,4,5,6 200kbit
OK 192.168.5.2 limited to 200kbit.
OK 192.168.5.4 limited to 200kbit.
OK 192.168.5.24 limited to 200kbit.
OK 192.168.5.25 limited to 200kbit.
OK 192.168.5.61 limited to 200kbit.
OK 192.168.5.67 limited to 200kbit.
Τώρα που έχουμε περιορίσει κάποιες συσκευές, μπορούμε επίσης να επιλέξουμε οποιεσδήποτε συσκευές θέλουμε να αποκλείσουμε εξ ολοκλήρου από την πρόσβαση στο δίκτυο.
Έχω διαπιστώσει ότι μερικές φορές το Evil Limiter μπορεί να είναι βαρύ, ενώ περιορίζει τις συνδέσεις και το αποτέλεσμα είναι ότι οι συσκευές είναι περιορισμένες τόσο πολύ που μπορεί επίσης να μπλοκαριστούν ακόμα και αν θέσουμε όριο σύνδεσης.
Για να αποκλείσετε μια συσκευή (που υποπτεύεστε ως ξένο), πληκτρολογήστε την εντολή block
και στη συνέχεια τον αριθμό οποιασδήποτε συσκευής θέλετε να μπλοκάρετε.
(Main) >>> block 3
OK 192.168.5.24 blocked.
Για να δείτε εκ νέου την λίστα και την κατάστασή του δικτύου τρέξτε το hosts
για δεύτερη φορά. Η πλειοψηφία του δικτύου πρέπει να έχει περιοριστεί ή να έχει αποκλειστεί.
(Main) >>> hosts
┌Hosts──────────────┬───────────────────┬──────────┬─────────┐
│ ID │ IP-Address │ MAC-Address │ Hostname │ Status │
├────┼──────────────┼───────────────────┼──────────┼─────────┤
│ 0 │ 192.168.5.1 │ 84:██:██:██:██:1a │ _gateway │ Free │
│ 1 │ 192.168.5.2 │ 0c:██:██:██:██:f5 │ │ Limited │
│ 2 │ 192.168.5.4 │ 3c:██:██:██:██:6f │ │ Limited │
│ 3 │ 192.168.5.24 │ 60:██:██:██:██:78 │ │ Blocked │
│ 4 │ 192.168.5.25 │ c4:██:██:██:██:2b │ │ Limited │
│ 5 │ 192.168.5.61 │ 8c:██:██:██:██:f5 │ │ Limited │
│ 6 │ 192.168.5.67 │ f0:██:██:██:██:b5 │ │ Limited │
└────┴──────────────┴───────────────────┴──────────┴─────────┘
Βήμα 6: Επαναφορά συσκευών στην κανονική τους σύνδεση
Τώρα που έχετε προκαλέσει «χάος στο δίκτυο» :) , ήρθε η ώρα να επαναφέρετε τα πράγματα όπως ήταν. Ευτυχώς, αυτό είναι εύκολο. Μπορείτε να επιλέξετε είτε να επαναφέρετε τις συσκευές μία προς μία, είτε να εκτελέσετε free all
για να ακυρώσετε τυχόν περιορισμούς στις συσκευές δικτύου.
(Main) >>> free all
OK 192.168.5.2 freed.
OK 192.168.5.4 freed.
OK 192.168.5.24 freed.
OK 192.168.5.25 freed.
OK 192.168.5.61 freed.
OK 192.168.5.67 freed.
Για να δείτε εκ νέου την λίστα και την κατάστασή του δικτύου τρέξτε το hosts
για τρίτη φορά οπότε και η πρόσβαση στο δίκτυο πρέπει να είναι κανονική και πάλι για όλες τις συσκευές
(Main) >>> hosts
┌Hosts──────────────┬───────────────────┬──────────┬────────┐
│ ID │ IP-Address │ MAC-Address │ Hostname │ Status │
├────┼──────────────┼───────────────────┼──────────┼────────┤
│ 0 │ 192.168.5.1 │ 84:██:██:██:██:1a │ _gateway │ Free │
│ 1 │ 192.168.5.2 │ 0c:██:██:██:██:f5 │ │ Free │
│ 2 │ 192.168.5.4 │ 3c:██:██:██:██:6f │ │ Free │
│ 3 │ 192.168.5.24 │ 60:██:██:██:██:78 │ │ Free │
│ 4 │ 192.168.5.25 │ c4:██:██:██:██:2b │ │ Free │
│ 5 │ 192.168.5.61 │ 8c:██:██:██:██:f5 │ │ Free │
│ 6 │ 192.168.5.67 │ f0:██:██:██:██:b5 │ │ Free │
└────┴──────────────┴───────────────────┴──────────┴────────┘
Επίλογος
Όλα τα παραπάνω εργαλεία μαζί με τα άρθρα που αναφέραμε, θα σας βοηθήσουν να χαρτογραφήσετε το δίκτυό σας, να εντοπίσετε αλλά και να περιορίσετε, προσωρινά τουλάχιστον, τις συσκευές που προκαλούν «μπούκωμα» στο ιντερνέτ σας. Στην συνέχεια θα πρέπει να δείτε και στο άρθρο «Προστάτεψε το WiFi σου από Hackers» για τις μεθόδους προστασίας σας αλλά και να επιβεβαιώστε ότι δεν φταίει ο γείτονας για το αργό ίντερνετ.
Το jNetMap μπορεί να σας φανεί αργό ή και δύσχρηστο αλλά είναι ιδιαίτερα χρήσιμο για να έχετε μια γενική εικόνα του δικτύου σας.
Το Evil Limiter είναι αποτελεσματικό αλλά ιδιαίτερα «επιθετικό»
Στις δοκιμές μου το βρήκα σαν ένα εξαιρετικά αποτελεσματικό, αν και μερικές φορές υπερβολικό εργαλείο. Μερικές φορές, οι προσπάθειές μου να περιορίσω έναν στόχο δεν είχαν επιθυμητά αποτελέσματα.
Ένα πράγμα που πρέπει να έχετε κατά νου όταν χρησιμοποιείτε το Evil Limiter είναι ότι το ARP spoofing εκθέτει τη διεύθυνση MAC σας, οπότε χρησιμοποιώντας αυτό το εργαλείο σε ένα ξένο δίκτυο που δεν σας έχει δοθεί η άδεια, λέει σε όλους ότι η διεύθυνση MAC σας είναι ο ρούτερ του δικτύου. Αυτό αφήνει τη διεύθυνση MAC σας στην προσωρινή μνήμη ARP κάθε συσκευής που στοχεύετε, οπότε βεβαιωθείτε ότι έχετε κάνει spoof τη διεύθυνση MAC πριν χρησιμοποιήσετε αυτό το εργαλείο, αν δεν θέλετε να αφήσετε τα δακτυλικά αποτυπώματα του υπολογιστή σας σε όλο το δίκτυο για το οποίο σας έχουν αναθέσει να κάνετε έλεγχο pentesting.
Καλησπέρα, το evil limiter μου εμφανίζει 3 απο τις 5 συσκευές.
Συγκεκριμένα, δεν μου εμφανιζει ενα λαπτοπ- που εκινη την ώρα ειναι αδρανο αλλα συνδεδεμένο- και τον αποκωδικοποιητη που είναι πάντα συνδεδεμένος με καλώδιο.
Καλησπέρα φίλε :)
Ο αποκωδικοποιητης σου έχει στατική IP? Όταν μια συσκευή βρίσκεται σε αδράνεια κάποιες φορές δεν είναι συνδεδεμένη στο δίκτυο και ίσως γι’αυτό να μην την βλέπει.
Το jnetmap δεν ξεκινάει. Και στο τερματικό βγάζει ένα μικρό κατεβατό που τα περισσότερα ξεκινούν με: at java.base/java και τελειώνουν με έναν τριψήφιο ή τετραψήφιο αριθμό.
Έκδοση java: openjdk version «11.0.3» 2019-04-16
Λειτουργικό : kubuntu 18.4.2 LTS
Συγγνώμη για το δεύτερο μήνυμα δεν ξέρω πως να το διορθώσω.
Και το evillimeter δεν ξεκινάει με μήνυμα:
File «./evillimiter.py», line 157
IO.print(get_main_banner(version))
^
SyntaxError: invalid syntax
Άτιμα java apps :D Με νεώτερες εκδόσεις της java >8 μόνο τα Development Snapshots του jNetMap δουλεύουν, τουλάχιστον σε Neon plasma user edition
Ακριβώς…. Μαρεσει που το Java θα εξάλειφε αυτά τα φαινόμενα :)