Το να γνωρίζουμε το λειτουργικό
σύστημα από κάποιο απομακρυσμένο μηχάνημα που θέλουμε να επιτεθούμε
είναι ένα από τα βασικά στοιχεία και αυτό γιατί γνωρίζοντας το
λειτουργικό που τρέχει μπορούμε να βρούμε πιο εύκολα και τις αδυναμίες
του.
Ποιοί τρόποι υπάρχουν?
Υπάρχουνε αρκετοί τρόποι για να βρούμε το
λειτουργικό σύστημα ενός μηχανήματος.Ο πιο απλός είναι μέσω
banner-grabbing στον οποίο ουσιαστικά προσπαθούμε να συνδεθούμε σε
κάποιες υπηρεσίες που τρέχει το μηχάνημα όπως FTP,Telnet,HTTP,SMTP κτλ.
και από τις πληροφορίες που θα μας εμφανιστούν στην οθόνη μας ακόμα και
αν δεν συνδεθούμε θα μπορέσουμε να καταλάβουμε αν τρέχει Windows,Linux
κτλ.
Υπάρχει όμως και μία άλλη τεχνική για ανίχνευση του λειτουργικού συστήματος η οποία λέγεται Active Stack Fingerprinting.Η
τεχνική αυτήν εστιάζει στο TCP/IP stack του κάθε λειτουργικού
συστήματος το οποίο και διαφέρει από λειτουργικό σε λειτουργικό.Αλλιώς
δηλαδή είναι το TCP/IP stack της Microsoft αλλιώς των MacOS και αλλιώς
των Linux.
Για να έχει αξιοπιστία η τεχνική αυτήν
χρειάζεται να υπάρχει τουλάχιστον ένα ανοιχτό port στο απομακρυσμένο
μηχάνημα.Διότι από τα services που τρέχουν και από τα ports που είναι
ανοιχτά θα γίνει και ο εντοπισμός του λειτουργικού.
Από ποιά στοιχεία γίνεται η αναγνώριση του λειτουργικού?
Ουσιαστικά τα προγράμματα που είναι για
ανίχνευση ενός λειτουργικού συστήματος καταλαβαίνουν το αν είναι Windows
ή Linux ή MacOS από τις αποκρίσεις που πέρνουν όταν στέλουν διάφορα
πακέτα.Πιο συγκεκριμένα εάν σταλεί ένα FIN πακέτο σε ένα ανοιχτό port
και το λειτουργικό σύστημα αποκριθεί με ένα FIN/ACK τότε το πρόγραμμα
που τρέχουμε για ανίχνευση καταλαβαίνει ότι πρόκειται για Windows
λειτουργικό.Αναλύτικα η αναγνώριση ενός λειτουργικού γίνεται από τα
εξής:
FINBonus Flag
Initial Sequence Number (ISN)
Fragment bit
TCP Initial Window Size
ACK value
ICMP message quoting
ICMP error message quenching
ICMP error message – echoing integrity
TOS (Type of Service)
Fragmentation Handling
TCP Options
Ποιά εργαλεία θα χρειαστούμε?
Δύο είναι τα πιο ακριβή εργαλεία που
μπορούν να εντοπίσουν το λειτουργικό σύστημα από ένα απομακρυσμένο
host.Το ένα είναι το nmap και το άλλο είναι το queso.Το καλό με το nmap
είναι ότι υποστηρίζεται από αρκετές πλατφόρμες (Windows,Linux,MacOS) σε
αντίθεση με το queso που είναι μόνο για linux.Επίσης για όσους δεν
γνωρίζουν τo nmap είναι ένα port scanner αλλά με δυνατότητα ανίχνευσης
λειτουργικού συστήματος ενώ το queso είναι μόνο ένα εργαλείο για να
εντοπίζει λειτουργικά συστήματα απομακρυσμένων host.
Που θα τα βρούμε?
Και τα δύο αυτά τα προγράμματα διατίθενται δωρεάν από τις ακόλουθες ιστοσελίδες.
Nmap:http://nmap.org/download.html
Queso:
http://dir.filewatcher.com/d/OpenBSD/3.3/i386/queso-980922.tgz.15765.html
Πώς τα δουλεύουμε?
Η λειτουργία τους είναι αρκετά απλή.Το
nmap στην τελευταία του έκδοση και για τους χρήστες Windows υποστηρίζει
πλέον και GUI interface ενώ έχει και αρκετά καλό help file.Ωστόσο η
εντολή σε περίπτωση που το τρέξουμε είτε από γραμμή εντολών είτε από
Linux είναι η εξής:
nmap -O IPενώ για το queso πληκτρολογούμε το εξής:
[root] queso IP
Παράδειγμα: