Στο σημερινό μας άρθρο θα ασχοληθούμε με ακόμα ένα open source εργαλείο ethical hacking, το p0f. Το p0f ανήκει στην κατηγορία των εργαλείων που μπορεί να χρησιμοποιήσει κάποιος κατά την συλλογή πληροφοριών (information gathering) του στόχου του. Πιο συγκεκριμένα, χρησιμοποιεί μηχανισμούς fingerprinting ώστε να αναγνωρίσει τα συστήματα πίσω από οποιαδήποτε TCP/IP επικοινωνία, χωρίς να γίνεται αντιληπτή η παρουσία του. Το p0f βρίσκεται πλέον στην έκδοση 3, και περιέχει αρκετές βελτιώσεις και καινούρια χαρακτηριστικά, που οι προηγούμενες εκδόσεις του δεν περιείχαν. Μερικές από τις χρήσεις του p0f μπορείτε να τις δείτε παρακάτω:
- Profiling και κατασκοπεία: Το εργαλείο μπορεί να χρησιμοποιηθεί για τη συλλογή στατιστικών και πληροφοριών σχετικά με hosts και χρήστες. Συγκεντρώνει επίσης πληροφορίες απόστασης με στόχο τον προσδιορισμό της τοπολογίας του απομακρυσμένου δικτύου, που μπορεί να χρησιμεύσει αρκετά στο κομμάτι της συλλογής πληροφοριών πριν την επίθεση.
- Αντιμετώπιση προβλημάτων δικτύου: Η λειτουργία RST + μπορεί να χρησιμοποιηθεί για τον εντοπισμό σφαλμάτων δικτύου και προβλημάτων σύνδεσης που αντιμετωπίζετε εσείς ή οι επισκέπτες σας.
- Παράκαμψη ενός τείχους προστασίας: το p0f μπορεί να διαπεράσει τις περισσότερες NAT συσκευές, firewalls κ.λπ. Η λειτουργία SYN + ACK που προσφέρει, μπορεί να χρησιμοποιηθεί για την αναγνώριση πληροφοριών, σε μια σύνδεση όπου το τείχος προστασίας επιτρέπει, ακόμα και αν τα υπόλοιπα πακέτα μπλοκάρονται.
Πως να το εγκαταστήσετε
Η χρήση του p0f μπορεί να γίνει σε περιβάλλον Windows, Linux και Kali Linux. Ειδικά στα Kali Linux θα βρείτε το p0f προ-εγκατεστημένο και κάτω από τη κατηγορία “Information Gathering”.
Windows
Απαραίτητη προϋπόθεση για την χρήση του p0f στα Windows είναι η εγκατάσταση του WinPcap. Για να κατεβάσετε το WinPcap επισκεφθείτε την επίσημη ιστοσελίδα του εργαλείου εδώ και κατεβάστε τη τελευταία έκδοση installer. Ακολουθήστε τις οδηγίες του Setup Wizard και ολοκληρώστε την εγκατάσταση.
Εχοντας εγκαταστήσει επιτυχώς το WinPcap, μπορείτε να προχωρήσετε στην εγκατάσταση του p0f κατεβάζοντας την τελευταία έκδοση του εργαλείου από εδώ (Τη στιγμή που γράφεται το άρθρο, η τελευταία έκδοση είναι η 3.07b).
Θα παρατηρήσετε ότι κατεβάσατε ένα συμπιεσμένο φάκελο. Προχωρήστε στην αποσυμπίεσή του και εκτελέστε το αρχείο p0f.exe.
Εκτελώντας το αρχείο θα το δείτε να εκτελείται σε περιβάλλον cmd. Μετά από λίγα δευτερόλεπτα θα μας επιστρέψει τις πρώτες πληροφορίες για τις συσκευές που βρίσκονται στο ίδιο δίκτυο.
Linux
Για να εγκαταστήσετε το p0f σε περιβάλλον Linux Ubuntu απλά σε ένα terminal τρέξτε τις παρακάτω εντολές:
sudo apt-get update
sudo apt-get install p0f
Πως να το χρησιμοποιήσετε
Ας ξεκινήσουμε τη περιήγησή μας στο p0f. Για να ξεκινήσουμε, στα Kali Linux μπορούμε να πάμε στη κατηγορία “Information Gathering” και να επιλέξουμε το p0f. Έτσι θα δούμε όλες τις πιθανές παραμέτρους που μπορούμε να χρησιμοποιήσουμε με αυτό το εργαλείο.
--- p0f 3.09b by Michal Zalewski <lcamtuf@coredump.cx> --- p0f: invalid option -- 'h' Usage: p0f [ ...options... ] [ 'filter rule' ] Network interface options: -i iface - listen on the specified network interface -r file - read offline pcap data from a given file -p - put the listening interface in promiscuous mode -L - list all available interfaces Operating mode and output settings: -f file - read fingerprint database from 'file' (/etc/p0f/p0f.fp) -o file - write information to the specified log file -s name - answer to API queries at a named unix socket -u user - switch to the specified unprivileged account and chroot -d - fork into background (requires -o or -s) Performance-related options: -S limit - limit number of parallel API connections (20) -t c,h - set connection / host cache age limits (30s,120m) -m c,h - cap the number of active connections / hosts (1000,10000) Optional filter expressions (man tcpdump) can be specified in the command line to prevent p0f from looking at incidental network traffic. Problems? You can reach the author at <lcamtuf@coredump.cx>.
Στο παράδειγμα που θα δούμε παρακάτω θα κάνουμε intercept στο interface eth0 σε promiscuous mode για να δούμε όλη την κίνηση που είναι ορατή σε αυτό το interface.
Τώρα θα ανοίξουμε έναν browser και θα περιηγηθούμε σε οποιαδήποτε σελίδα (π.χ. www.twitter.com). Κατευθείαν θα δούμε πληροφορίες που σχετίζονται με αυτή τη κίνηση στο terminal.
Βλέπουμε κατευθείαν την διεύθυνση IP του μηχανήματός μας (στη δική μου περίπτωση 192.168.142.132) και τη σύνδεση που μόλις ολοκλήρωσε με το διακομιστή του twitter με IP διεύθυνση 104.244.42.193 στη πόρτα 443.
Μπορούμε να διακρίνουμε χρήσιμες πληροφορίες, όπως ότι ο client χρησιμοποίησε Linux μηχάνημα, που ισχύει καθώς πραγματοποιήσαμε τη σύνδεση από Kali Linux περιβάλλον.
Περισσότερες πληροφορίες μπορείτε να βρείτε στο git repo του p0f. Περιμένουμε τα σχόλιά σας.