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

nmap & ProxyChains-NG: Scanning στο Internet, καλυμμένα!

Στο κεντρικό αφιέρωμα του τεύχους 035 γνωρίζουμε το nmap, τον πανίσχυρο port scanner που μεταξύ άλλων επιστρατεύεται σε σενάρια pen-testing στο Internet. Αν και δεν δικαιούμαστε να χρησιμοποιούμε το nmap σε ξένα hosts, τουλάχιστον όχι πριν συνεννοηθούμε με τους υπεύθυνους διαχειριστές, η αλήθεια είναι ότι κάποιες φορές χρειάζεται να κάνουμε port scanning χωρίς να έχουμε πάρει άδεια. Σε τέτοιες περιπτώσεις είναι φρόνιμο να κρύβουμε την αληθινή δημόσια διεύθυνση IP του υπολογιστή μας.

Σκεφτείτε, π.χ., ότι στο πλαίσιο μιας εργασίας ξεκινάμε μ’ ένα τυχαίο δείγμα 1000 διευθύνσεων IP και θέλουμε να δούμε πόσο συχνά συναντώνται servers που εξακολουθούν να ‘ναι ευπαθείς ως προς το Heartbleed bug. Σε μια τέτοια περίπτωση προφανώς και δεν υπάρχει ο παραμικρός δόλος. Είναι ωστόσο αδύνατο να πάρουμε 1000 διαφορετικές άδειες, μία για κάθε host που πρόκειται να σκανάρουμε. Την ίδια στιγμή, βέβαια, αρκετοί διαχειριστές έχουν καλούς λόγους ώστε να βλέπουν το port scanning ως εχθρική ενέργεια. Έτσι, υποθέτοντας ότι τρέχουν κάποιο IDS, π.χ., σαν το Snort, πιθανότατα θα δουν τη διεύθυνση IP του υπολογιστή μας κι από εκεί και μετά δεν ξέρουμε πώς θα αντιδράσουν. Ίσως μας αγνοήσουν, ίσως μας μπλοκάρουν, ίσως διαμαρτυρηθούν στον ISP μας κι εκείνος με τη σειρά του αρχίσει να μας ενοχλεί κ.ο.κ.

Η λύση είναι να σκανάρουμε μέσω ενός ενδιάμεσου υπολογιστή, μ’ άλλα λόγια μέσω ενός proxy. Ακόμα καλύτερα, αντί για έναν μόνο proxy, ανάμεσα στο μηχάνημά μας και στο στόχο καλό είναι να παρεμβάλλονται δύο, τρεις ή και περισσότεροι proxies. Τότε, το μηχάνημα-στόχος θα βλέπει πάντα τη διεύθυνση IP του τελευταίου στη σειρά proxy. Αν υποθέσουμε ότι κάποιος θελήσει να βρει ποιος πραγματικά κρύβεται πίσω απ’ αυτή τη διεύθυνση, τότε αφενός θα έχει πολλή δουλειά να κάνει, αφετέρου είναι αμφίβολο το αν θα μπορέσει ποτέ να βγάλει άκρη. Αναλογιστείτε για λίγο τι τον περιμένει…

  • Θα επικοινωνήσει με τον ιδιοκτήτη του τελευταίου κατά σειρά proxy, ο οποίος ενδέχεται να διατηρεί log files για κάποιο χρονικό διάστημα, μπορεί όμως και να μη διατηρεί.
  • Με την προϋπόθεση ότι ο ιδιοκτήτης του proxy έχει πράγματι log files για τη συγκεκριμένη χρονική περίοδο που ενδιαφέρει τον αιτούντα, μάλλον δεν θα είναι διατεθειμένος να του παραχωρήσει αυτές τις πληροφορίες — όχι έτσι εύκολα, δηλαδή.
  • Τότε, ο αιτών θα πρέπει να οπλιστεί με μια εισαγγελική εντολή ή/και με κάποιο ένταλμα. (Δικηγόροι δεν είμαστε, αλλά καταλαβαίνετε τι εννοούμε.)
  • Τώρα, το μηχάνημα-proxy είναι πιθανό να βρίσκεται εκτός δικαιοδοσίας της περιοχής ή της χώρας στην οποία βρίσκεται ο αιτών. Ας υποθέσουμε, π.χ., ότι ο proxy είναι κάπου στην Παταγονία ή στο Ανατολικό Τιμόρ ή στο Νησί του Πάσχα.
  • Ο αιτών θ’ αρχίσει τότε τις επαφές με τις Αρχές της Αργεντινής ή του Ανατολικού Τιμόρ ή της Χιλής.
  • Μετά από άπειρα emails, τηλεφωνήματα, διαβήματα και παρ’ ολίγον σοβαρά διπλωματικά επεισόδια, με κάποιο μαγικό τρόπο ο αιτών αποκτά την πολυπόθητη *σωστή* εισαγγελική εντολή. Κάποια στιγμή, λοιπόν, ο ιδιοκτήτης του proxy απρόθυμα του παραδίδει τα log files. “Ορίστε, καλή τύχη τώρα”, προσθέτει με νόημα. (Ή μπορεί να πει και “hér þeir eru, gangi þér vel núna” — όλα είναι πιθανά.)
  • “Τι να εννοούσε ο καγκουράκος μ’ αυτό το ‘καλή τύχη τώρα'”, αναρωτιέται ο φίλος μας λίγο αργότερα — κι αμέσως καταλαβαίνει: Όλη η δουλειά που έκανε για τα πολυπόθητα log files πρέπει να επαναληφθεί για *άλλον έναν* proxy. Πιθανώς μάλιστα να υπάρχει και τρίτος proxy που εμπλέκεται στην όλη ιστορία. Ξαφνικά ο διαχειριστής αρχίζει να φιλοσοφεί λίγο διαφορετικά τη ζωή, οπότε μετά από τέσσερα περίπου λεπτά τα παρατάει όλα και πηγαίνει για καφέ στην πλατεία. Δεν παίρνει καν το laptop μαζί του.

Το συμπέρασμα από όλα τα προηγούμενα είναι απλό: Με δεδομένο ότι έχουμε πρόσβαση σε τουλάχιστον τρεις “καλούς” proxies, μπορούμε να κάνουμε port scanning –κι όχι μόνο– κρατώντας, πρακτικά, την αληθινή διεύθυνση IP του υπολογιστή μυστική. Τώρα όμως προκύπτουν νέα ενδιαφέροντα ερωτήματα, όπως:

  • Τι ακριβώς θα πει “καλός proxy”;
  • Πώς βρίσκουμε καλούς proxies;
  • Πώς τους βάζουμε στη σειρά, ανάμεσα στον υπολογιστή μας και στο στόχο ή στους στόχους, αυτούς τους καλούς proxies;

Συνεχίστε το διάβασμα.

Οι κατάλληλοι proxies, το δίκτυο ανωνυμίας του Tor κι ένα κοσμικό μπλέξιμο
Με μια απλή αναζήτηση βρίσκουμε αρκετά sites που παρέχουν δυναμικές λίστες με δωρεάν proxies ανά τον πλανήτη. Δοκιμάστε, π.χ., να ψάξετε στο Google με το string “anonymous proxy list”, χωρίς τα εισαγωγικά. Μεταξύ των sites που επισκεφθήκαμε –και κατά πάσα πιθανότητα θα επισκεφθείτε κι εσείς– συγκαταλέγονται τα http://proxylist.hidemyass.com και http://incloak.com/proxy-list. Τώρα, εκτός από την ταχύτητα, οφείλουμε να επιλέγουμε proxies λαμβάνοντας υπόψη τα ακόλουθα:

  • Nα είναι γεωγραφικά απομακρυσμένοι ή, ακριβέστερα, διάσπαρτοι σε διαφορετικές χώρες. Κάποιοι προτείνουν την επιστράτευση τουλάχιστον ενός proxy από Κίνα και τουλάχιστον ενός proxy από Ρωσία. Βέβαια αυτό δεν έχει και πολύ αξία, αν ο πιθανός ερευνητής είναι ήδη στην Κίνα ή στη Ρωσία. Γενικά, λοιπόν, οι proxies καλό είναι να επιλέγονται κατά περίπτωση κι ο τελευταίος στη σειρά, δηλαδή αυτός που μιλάει απευθείας με το στόχο, να βρίσκεται σε χώρα όπου είναι δύσκολο για τις Αρχές ν’ αποκτούν δικαιοδοσία για έρευνα.
  • Το παρεχόμενο είδος ανωνυμίας *τουλάχιστον* του τελευταίου κατά σειρά proxy προτείνεται να ‘ναι υψηλό (High Anonymity Proxy ή HAP), ώστε το μηχάνημα-στόχος να μην είναι σε θέση να καταλαβαίνει αν δέχεται επίσκεψη μέσω proxy ή όχι.
  • Το είδος των proxies να μην είναι HTTP/HTTPS αλλά SOCKS4 ή SOCKS5, ώστε να μπορούν να χρησιμοποιούνται και για εφαρμογές εκτός του απλού web surfing. Αναλυτικότερα, οι SOCKS4 proxies είναι κατάλληλοι για χρήση με διάφορες εφαρμογές που γνωρίζουν το πρωτόκολλο TCP, όπως είναι το καλό μας το nmap. Οι SOCKS5 proxies δέχονται επιπλέον και συνδέσεις UDP, άρα είναι κατάλληλοι και για DNS requests.

Παρά την πληθώρα sites με proxy lists, κατά τις δικές μας δοκιμές ομολογούμε ότι δυσκολευτήκαμε στον εντοπισμό καλών proxies — και δεν αναφερόμαστε καν στα τρία παραπάνω κριτήρια: Σε αρκετές περιπτώσεις παίρναμε time out errors, τη στιγμή που στην αντίστοιχη λίστα ο proxy αναφερόταν ως προσφάτως ελεγμένος και πλήρως λειτουργικός.

Μια εναλλακτική της “χειροκίνητης” επιλογής proxies αποτελεί η χρήση του δικτύου ανωνυμίας του Tor. Πραγματοποιώντας port scanning ή οποιαδήποτε άλλη υποστηριζόμενη δικτυακή δραστηριότητα μέσω του Tor network, ανάμεσα στο μηχάνημά μας και στο στόχο ανά πάσα στιγμή παρεμβάλλεται ένα δυναμικό σύνολο από τουλάχιστον τρία proxies. Κάθε φορά που χρησιμοποιούμε το Tor και δεν μας προδίδει κάποια εφαρμογή, π.χ., διαρρέοντας ευαίσθητες πληροφορίες αριστερά και δεξιά, είναι εξαιρετικά δύσκολο –αν όχι πρακτικά αδύνατον– να εντοπιστούμε. Στο σημείο αυτό θα μπορούσε κάποιος να ισχυριστεί ότι για μια αποφασισμένη Αρχή, που διαθέτει οικονομικούς πόρους, τεχνογνωσία, υλικές υποδομές αλλά και ικανό ανθρώπινο δυναμικό σε διάφορα πόστα, τίποτε δεν είναι αδύνατον. Δεν θα διαφωνήσουμε, θα κάνουμε όμως και μια σημείωση: Όποιος πιστεύει ότι είναι ρεαλιστικό να μπει στο στόχαστρο, π.χ., της NSA, τότε μάλλον έχει μπλέξει –ή τουλάχιστον πρόκειται να μπλέξει– γερά. Και τη στιγμή που έμπλεκε γερά –ή σε λίγο που θα μπλέκει γερά–, κάτι μας λέει ότι δεν έκανε ένα απλό port scanning, στο πλαίσιο μιας απλής έρευνας. Τον ευχαριστούμε πολύ, λοιπόν, που παρά τα σοβαρά του προβλήματα βρίσκει χρόνο και διαβάζει το παρόν άρθρο, στον ταπεινό αυτό δικτυακό τόπο. Πιστεύουμε όμως ότι καλό θα ήταν ν’ αφήσει τώρα το διάβασμα και να δει πώς θα βγει με τις λιγότερες δυνατές απώλειες απ’ όλο αυτό το κοσμικό μπλέξιμο.

Στη συνέχεια βλέπουμε, αναλυτικά και βήμα προς βήμα, πώς κάνουμε port scanning με το nmap μέσω του δικτύου ανωνυμίας του Tor, επιστρατεύοντας το εργαλείο ProxyChains-NG.

ProxyChains νέας γενιάς, στο Kali Linux
Το Kali Linux είναι η κατ’ εξοχήν πλατφόρμα για pen-testing οπότε κάνουμε κι εμείς την επίδειξή μας μέσα από το περιβάλλον της εκδοχής 64bit, της πλέον πρόσφατης έκδοσης της διανομής (1.0.9a, τη στιγμή που γραφόταν το παρόν).

Τώρα, το ProxyChains είναι ένα βολικό εργαλείο για το TCP tunneling μέσω ενός ή περισσοτέρων proxies, καθένας από τους οποίους επιτρέπεται να είναι τύπου HTTP, SOCKS4 ή SOCKS5. Όταν έχουμε δύο ή περισσότερους proxies, μπορούμε βεβαίως να τους βάζουμε στην επιθυμητή σειρά. Εκτός από τους proxies που εμείς επιλέγουμε και δίνουμε στο ProxyChains, υπάρχει και η δυνατότητα χρήσης του Tor network. Αυτή είναι άλλωστε και η προκαθορισμένη συμπεριφορά. Επιτρέπονται και συνδυασμοί: Ξεκινάμε, π.χ., από το Tor και μετά έχουμε κι άλλον ένα, high anonymity proxy. Το συγκεκριμένο μάλιστα “σχήμα” είναι απαραίτητο για τις περιπτώσεις που το μηχάνημα-στόχος έχει ήδη μπλοκάρει –για λόγους που δεν ενδιαφέρουν– ένα ή περισσότερα exit relays.

Μετά την εγκατάσταση του Kali Linux το ProxyChains είναι παρόν, έτοιμο για χρήση. Συγκεκριμένα πρόκειται για την έκδοση 3.1 της παλιάς “σειράς” του εργαλείου, η οποία δυστυχώς έχει ένα γνωστό bug που εκδηλώνεται όταν κάνουμε port scanning με το nmap — εννοείται μέσω του ProxyChains. Το εν λόγω bug έχει διορθωθεί στο ProxyChains-NG, το οποίο αποτελεί τη συνέχεια του κλασικού ProxyChains. Όμως από τα repositories του Kali Linux το ProxyChains-NG απουσιάζει. Ευτυχώς, μπορούμε εύκολα να το μεταγλωττίσουμε και φυσικά να το εγκαταστήσουμε μόνοι μας.

Ξεκινάμε κατεβάζοντας το πλέον πρόσφατο ZIP archive με τον πηγαίο κώδικα του ProxyChains-NG. Σε ένα τερματικό, πληκτρολογούμε:

root@kalivm:~# cd
root@kalivm:~# wget https://github.com/rofl0r/proxychains-ng/archive/master.zip

Αποσυμπιέζουμε:

root@kalivm:~# unzip master.zip

Μεταβαίνουμε στο νέο κατάλογο που δημιουργήθηκε:

root@kalivm:~# cd proxychains-ng-master

Προετοιμάζουμε το περιβάλλον για τη μεταγλώττιση:

root@kalivm:~/proxychains-ng-master# ./configure
Done, now run make && make install

Για την ίδια τη μεταγλώττιση, αρκεί να πληκτρολογήσουμε

root@kalivm:~/proxychains-ng-master# make

Σειρά έχει η εγκατάσταση, η οποία επιτυγχάνεται δίνοντας

root@kalivm:~/proxychains-ng-master# make install
./tools/install.sh -D -m 644 libproxychains4.so /usr/local/lib/libproxychains4.so
./tools/install.sh -D -m 755 proxychains4 /usr/local/bin/proxychains4

Βολεύει να αντιγράψουμε το αρχείο ρυθμίσεων του ProxyChains-NG, στον κατάλογο /etc. Εκεί υπάρχει ένα ομώνυμο αρχείο, από το “σκέτο” ProxyChains, το οποίο καλό είναι να διατηρήσουμε:

root@kalivm:~/proxychains-ng-master# mv /etc/proxychains.conf /etc/proxychains.conf-OhGee
root@kalivm:~/proxychains-ng-master# cp src/proxychains.conf /etc

Όπως πιθανώς θα παρατηρήσατε στα διάφορα μηνύματα που εμφανίστηκαν πριν λίγο στο τερματικό, το εκτελέσιμο του ProxyChains-NG είναι το proxychains4 και πλέον κατοικεί στον κατάλογο /usr/local/bin. Ο εν λόγω κατάλογος υπάρχει στη μεταβλητή περιβάλλοντος PATH, επομένως για να τρέξουμε το ProxyChains-NG αρκεί να δώσουμε ένα

root@kalivm:~# proxychains4
Usage:	proxychains4 -q -f config_file program_name [arguments]
	-q makes proxychains quiet - this overrides the config setting
	-f allows to manually specify a configfile to use
	for example : proxychains telnet somehost.com
More help in README file

Όλα καλά! Λίγη προσοχή μόνο στο τι ακριβώς πληκτρολογούμε, αφού αν παραλείψουμε αυτό το “4” τότε θα εκτελεστεί το παλιό ProxyChains (το οποίο κατοικεί στο /usr/bin). Θα αναρωτιέστε τώρα γιατί δεν απεγκαταστήσαμε το αντίστοιχο πακέτο. Θα μπορούσαμε εύκολα να το κάνουμε (μ’ ένα apt-get remove proxychains), τότε όμως θα απομακρυνόταν αυτομάτως και το metapackage ονόματι kali-linux-full — κι αυτό δεν θα θέλαμε να συμβεί στην ωραιότατη εγκατάσταση του Kali μας :)

Ρύθμιση του ProxyChains-NG για χρήση με το Tor
Όπως αναφέραμε και πριν λίγο, το αρχείο ρυθμίσεων του ProxyChains-NG βρίσκεται στο /etc/proxychains.conf. Το ανοίγουμε με τον text editor της προτίμησής μας, π.χ., με το nano:

root@kalivm:~# nano /etc/proxychains.conf

Προς το τέλος του αρχείου βλέπουμε ότι το ProxyChains-NG είναι ήδη ρυθμισμένο για να χρησιμοποιεί το Tor:

[ProxyList]
# add proxy here ...
# meanwile
# defaults set to "tor"
socks4 	127.0.0.1 9050

Μπορούμε βεβαίως να απενεργοποιήσουμε τη χρήση του Tor network (με ένα # στα αριστερά της αντίστοιχης γραμμής) ή/και να προσθέσουμε έναν ή περισσότερους proxies. Γενικά, για κάθε proxy προσθέτουμε στο proxychains.conf μια νέα γραμμή σαν την ακόλουθη:

πρωτόκολλο διεύθυνση_IP θύρα

Εμείς πάντως θα αρκεστούμε στο Tor, οπότε εγκαταλείπουμε τον editor (στο nano πατάμε [CTRL+X]) κι εγκαθιστούμε το πακέτο tor (όλα πεζά), μαζί με δύο συμπληρωματικά πακέτα που ούτως ή άλλως θα μας ζητηθεί να εγκαταστήσουμε:

root@kalivm:~# apt-get install tor tor-geoipdb torsocks

Ενεργοποιούμε στη συνέχεια την υπηρεσία του tor…

root@kalivm:~# service tor start
[ ok ] Starting tor daemon... done.

…και μπορούμε πλέον να δούμε το ProxyChains-NG στην πράξη. Ας κάνουμε όμως και μια δοκιμή, ώστε να διαπιστώσουμε αν το ProxyChains-NG πράγματι δουλεύει. Θα βρούμε τη δημόσια IP του υπολογιστή μας δύο φορές, μία χωρίς και μία με το ProxyChains-NG. Δεν χρειάζεται να τρέξουμε κάποιον web browser και να επισκεφτούμε κάποια υπηρεσία τύπου whatip.com. Μπορούμε να έχουμε τη ζητούμενη διεύθυνση στο τερματικό μας. Ας δούμε ποια είναι η δική μας, όταν δεν την ψάχνουμε μέσω του ProxyChains-NG:

root@kalivm:~# curl ifconfig.me
46.149.19.136

Την ψάχνουμε ξανά, αυτή τη φορά με τη βοήθεια του ProxyChains-NG:

root@kalivm:~# proxychains4 curl ifconfig.me
[proxychains] config file found: /etc/proxychains.conf
[proxychains] preloading /usr/local/lib/libproxychains4.so
[proxychains] DLL init: proxychains-ng 4.8.1
[proxychains] Strict chain  ...  127.0.0.1:9050  ...  ifconfig.me:80  ...  OK
77.95.231.11

Είναι εντελώς διαφορετική — καλό αυτό! Αν με έναν web browser πάμε μια σύντομη βόλτα από το http://torstatus.blutmagie.de/tor_exit_query.php και κάνουμε μια αναζήτηση για τη διεύθυνση 77.95.231.11, βλέπουμε ότι πράγματι πρόκειται για Tor exit node. Όλα καλά, λοιπόν. Μπορούμε επιτέλους να προχωρήσουμε στο πρώτο, ιντερνετικό port scanning με τη βοήθεια του ProxyChains-NG.

Port scanning μέσω ProxyChains-NG
Για τις δοκιμές μας στοχεύσαμε ένα δικό μας box, το hcn.redirectme.net, το οποίο στην πραγματικότητα είναι ένας pfSense-based router που τρέχει και το Snort. Παρατηρώντας τα alerts του Snort για το Internet-facing interface του router, μπορούσαμε να βλέπουμε αν το port scanning γινόταν πράγματι ανώνυμα (δηλαδή μέσω του Tor).

Ας δούμε λοιπόν ένα παράδειγμα ανώνυμου port scanning με το nmap, με τη βοήθεια του ProxyChains-NG:

root@kalivm:~# tor-resolve hcn.redirectme.net
37.98.193.28
root@kalivm:~# proxychains4 nmap -v -n -Pn -sT -sV -T4 -p22,80,443,5900-6000 37.98.193.28

Οφείλουμε μερικές εξηγήσεις.

  • Προκειμένου να αποφύγουμε τα λεγόμενα DNS leaks, πριν κάνουμε το port scanning βρίσκουμε τη διεύθυνση IP του στόχου μέσω Tor με τη βοήθεια του εργαλείου tor-resolve. Το ίδιο το ProxyChains-NG υποστηρίζει το DNS resolving — και η αντίστοιχη δυνατότητα είναι εξ ορισμού ενεργοποιημένη. Αποτελεί ωστόσο καλή συνήθεια να φροντίζουμε εμείς γι’ αυτή τη δουλειά, π.χ., με το tor-resolve.
  • Στις παραμέτρους που έχουμε δώσει στο nmap, η “-n” απενεργοποιεί τα reverse DNS lookups για τις διευθύνσεις IP που το πρόγραμμα ελέγχει. Έτσι, το σκανάρισμα είναι πιο “σιωπηλό” αλλά και γρηγορότερο.
  • Όπως ενδεχομένως θα θυμόσαστε από το αφιέρωμα στο nmap, που είχαμε στο τεύχος 035, η προκαθορισμένη συμπεριφορά του nmap όταν το τρέχουμε με δικαιώματα υπερχρήστη (root) είναι να κάνει το λεγόμενο TCP SYN scan ή αλλιώς half-open scan (παράμετρος -sS). Το θέμα με τη συγκεκριμένη μέθοδο σάρωσης είναι ότι δεν δουλεύει σε συνδυασμό με το ProxyChains-NG. Ακόμα χειρότερα, δεν θα πάρουμε κάποιο μήνυμα λάθους και το nmap θα προχωρήσει στη σάρωση, απλά όχι μέσω των proxies του ProxyChain-NG. Έτσι, η αληθινή διεύθυνση IP του μηχανήματός μας πιθανώς θα καταγραφεί από το στόχο, τη στιγμή που εμείς θα είμαστε με τη λανθασμένη εντύπωση ότι σκανάρουμε “καλυμμένα”. Προκειμένου λοιπόν να διασφαλίζουμε ότι πράγματι θα κρύβεται η διεύθυνσή μας, είναι να σκανάρουμε με την (αργότερη) μέθοδο του TCP connect scan (παράμετρος -sT). Με τη συγκεκριμένη μέθοδο το nmap πραγματοποιεί πλήρεις συνδέσεις TCP με το στόχο — στην περίπτωσή μας μέσω των proxies του ProxyChain-NG.
  • Στο παράδειγμα ζητάμε από το nmap να επιχειρήσει version detection (παράμετρος -sV), αποφεύγουμε όμως τη δημοφιλή παράμετρο -A. Αυτή η παράλειψη δεν είναι καθόλου τυχαία αλλά εντελώς σκόπιμη: Με την -Α καλούνται scripts που δεν δουλεύουν με το ProxyChains-NG (λόγω ICMP) και τελικά προδίδουν την αληθινή διεύθυνση IP του υπολογιστή μας.

Δείτε στα σχετικά screenshots μερικά στιγμιότυπα από τις δοκιμές μας.

Ο υπολογιστής-στόχος τρέχει το Snort και τον σκανάρουμε δύο φορές, από το Internet: Μία *χωρίς* το ProxyChains-NG κι άλλη μία *με* το ProxyChains-NG. Και στις δύο περιπτώσεις το Snort βρίσκει τη διεύθυνση IP του υπολογιστή από τον οποίο γίνεται το port scanning. Συγκεκριμένα, όταν δεν χρησιμοποιούμε το ProxyChains-NG τότε το Snort αναφέρει πως το σκανάρισμα γίνεται από το 46.149.19.136 -- κι αυτή είναι πράγματι η δημόσια διεύθυνση του μηχανήματός μας. Όταν όμως χρησιμοποιούμε το ProxyChains-NG, τότε το Snort αναφέρει πως το σκανάρισμα γίνεται από το 77.247.181.163. Με ένα reverse DNS lookup βλέπουμε ότι το domain name του attacker είναι lumumba.torservers.net. Με μια σχετική αναζήτηση στο http://torstatus.blutmagie.de/tor_exit_query.php διαπιστώνουμε ότι, πράγματι, πρόκειται για κάποιο Tor exit node.

Έχουμε ξεκινήσει port scanning του στόχου μας (37.98.193.28) από το Internet, αλλά μέσω του Tor network (με τη βοήθεια του ProxyChains-NG). Το TCP SYN scan δεν δουλεύει με το ProxyChains-NG, οπότε έχουμε ζητήσει TCP connect scan (παράμετρος -sT). Όλα αυτά τα αποθαρρύντικά 'denied' που βλέπουμε, οφείλονται σε απόπειρες σύνδεσης προς κλειστά ports του στόχου. Υπάρχει όμως κι ένα ανοικτό port: το 22.

Το ιντερνετικό port scan που ξεκινήσαμε προηγουμένως, μέσω του Tor network και με τη βοήθεια του ProxyChains-NG, επιτέλους ολοκληρώθηκε! Για τον έλεγχο 104 στο πλήθος ports χρειάστηκε κοντά στο τέταρτο της ώρας -- και μιλάμε για καλές δικτυακές συνθήκες. Το ίδιο ακριβώς σκανάρισμα αλλά χωρίς το ProxyChains-NG ολοκληρώνεται σε υποδεκαπλάσιο χρόνο (δοκιμασμένο), Αλλά τι να κάνουμε, οι χαμηλές ταχύτητες σάρωσης είναι μικρό τίμημα για την προστασία της δικτυακής ταυτότητας του pen-tester.

Αντί επιλόγου
Θα θέλαμε να υπογραμμίσουμε ότι το ProxyChains-NG ναι μεν παρέχει ισχυρή προστασία για τη δικτυακή μας ταυτότητα κατά τη διάρκεια συγκεκριμένων αποστολών στο Internet, δεν μπορεί όμως να μας προστατεύσει από τους ίδιους μας τους εαυτούς: Αν δεν ξέρουμε τι ακριβώς πάμε να κάνουμε και πώς πρέπει να το κάνουμε, τότε η προστασία που υποτίθεται ότι λαμβάνουμε απλά δεν υφίσταται.

Κλείνουμε μ’ ένα hint: Όποτε δεν είμαστε βέβαιοι για το αν το ProxyChains-NG είναι σε θέση να μας προστατεύει, μπορούμε απλά να μπλοκάρουμε την (απευθείας) πρόσβαση στο στόχο. Στο ακόλουθο παράδειγμα, προσθέτουμε έναν κανόνα στο iptables που απορρίπτει όλα τα πακέτα που προορίζονται για το στόχο μας (με IP το 37.98.193.28):

root@kalivm:~# iptables -A OUTPUT --dest 37.98.193.28 -j DROP

Βεβαίως, το port scanning του στόχου σε συνδυασμό με το ProxyChains-NG θα συνεχίσει να δουλεύει, αφού η προσέγγιση του απομακρυσμένου host δεν γίνεται απευθείας αλλά μέσω του Tor network.

Σας άρεσε το άρθρο; Αν ναι, τι θα λέγατε για ένα tip στο PayPal;

Leave a Reply

You must be logged in to post a comment.

Σύνδεση

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