Nmap: Ο απόλυτος οδηγός


Το Network Mapper (Nmap) είναι ένα εργαλείο σάρωσης δικτύου και εντοπισμού του κεντρικού υπολογιστή που είναι πολύ χρήσιμο κατά τη διάρκεια πολλών βημάτων για ένα πλήρη penetration test.

Το Nmap δεν περιορίζεται στην απλή συλλογή πληροφοριών και απαρίθμησης, αλλά είναι επίσης ένα ισχυρό βοηθητικό πρόγραμμα που μπορεί να χρησιμοποιηθεί ως ανιχνευτής ευπαθειών ή ως σαρωτής ασφαλείας.

Έτσι το Nmap είναι ένα εργαλείο πολλαπλών χρήσεων και μπορεί να εκτελεστεί σε πολλά διαφορετικά λειτουργικά συστήματα, συμπεριλαμβανομένων των Windows, Linux, BSD και Mac.

Το Nmap είναι ένα πολύ ισχυρό βοηθητικό πρόγραμμα που μπορεί να χρησιμοποιηθεί για να:

  • Εντοπίσει τον ενεργό κεντρικό υπολογιστή στο δίκτυο (ανακάλυψη κεντρικού υπολογιστή)
  • Εντοπίσει τις ανοιχτές θύρες στον κεντρικό υπολογιστή (ανακάλυψη θύρας ή απαρίθμηση)
  • Εντοπίσει το λογισμικό και την έκδοση στην αντίστοιχη θύρα (ανακάλυψη υπηρεσίας)
  • Εντοπίσει το λειτουργικό σύστημα, τη διεύθυνση του hardware και την έκδοση του λογισμικού
  • Εντοπίσει ευπάθειες και κενά ασφάλειας (Nmap scripts)

Το Nmap είναι ένα απλό εργαλείο και είναι διαθέσιμο τόσο σαν εργαλείο γραμμής εντολών όσο και σαν γραφικό περιβάλλον, αρκετά εύκολο στον χρήστη. Ο στόχος αυτού του άρθρου είναι να δημιουργήσει ένα εγχειρίδιο που θα περιέχει όλες τις απαραίτητες πληροφορίες σχετικά με το Nmap αλλά και τη χρήση του.

Σε αυτό το κομμάτι, θα δούμε:

  • Εισαγωγή στο Nmap
  • Ποιες είναι οι σημαντικοί παράμετροι και οι τεχνικές σάρωσης
  • Εισαγωγή στην ανίχνευση του λειτουργικού συστήματος
  • Nmap scripts

Πώς να χρησιμοποιήσετε το Nmap;

Ίσως έχετε ακούσει αυτήν την ερώτηση πολλές φορές στο παρελθόν, αλλά κατά τη γνώμη μου, δεν είναι η σωστή ερώτηση. Ο καλύτερος τρόπος για να ξεκινήσετε την εξερεύνηση του Nmap είναι να ρωτήσετε: Πώς μπορώ να χρησιμοποιήσω το Nmap αποτελεσματικά; Αυτό το άρθρο γράφτηκε σε μια προσπάθεια να απαντηθεί αυτή η ερώτηση.

Το Nmap χρησιμοποιεί διαφορετικές τεχνικές για την εκτέλεση μιας σάρωσης, όπως: TCP connect() scanning, TCP reverse ident scanning, FTP bounce scanning και ούτω καθεξής. Όλοι αυτοί οι τύποι σάρωσης έχουν τα δικά τους πλεονεκτήματα και μειονεκτήματα και θα τα συζητήσουμε στη συνέχεια.

Πώς να χρησιμοποιήσετε αποτελεσματικά το Nmap

Η χρήση του Nmap εξαρτάται από τη μηχανή προορισμού επειδή υπάρχει διαφορά μεταξύ μιας απλής (βασικής) σάρωσης και μιας προηγμένης σάρωσης. Πρέπει να χρησιμοποιήσουμε μερικές προηγμένες τεχνικές για να παρακάμψουμε το τείχος προστασίας και το λογισμικό ανίχνευσης / πρόληψης εισβολής, για να έχουμε το σωστό αποτέλεσμα.

Ακολουθούν τα παραδείγματα ορισμένων βασικών εντολών και της χρήσης τους.

Εάν θέλετε να σαρώσετε ένα μόνο σύστημα, τότε μπορείτε να χρησιμοποιήσετε μια απλή εντολή:

nmap target

# nmap target.com

# nmap 192.168.1.1

Εάν θέλετε να σαρώσετε ολόκληρο το υποδίκτυο, τότε η εντολή είναι:

nmap target /cdir

# nmap 192.168.1.1/24

Είναι πολύ εύκολο να σαρώσετε πολλούς στόχους. Το μόνο που χρειάζεται να κάνετε είναι να διαχωρίσετε κάθε στόχο μέσω ενός διαστήματος:

nmap target target1 target2

# nmap 192.168.1.1 192.168.1.8

Ας υποθέσουμε ότι θέλετε να σαρώσετε μια σειρά διευθύνσεων IP, αλλά όχι ολόκληρο το υποδίκτυο. Σε αυτή την περίπτωση, χρησιμοποιήστε την παρακάτω εντολή:

nmap target-100

# nmap 192.168.1.1-100

Ας υποθέσουμε ότι έχετε μια λίστα με μηχανήματα που θέλετε να ψάξετε. Μπορείτε να κάνετε σάρωση Nmap για ολόκληρη τη λίστα:

# nmap -iL target.txt

Φροντίστε να βάλετε το αρχείο στον ίδιο κατάλογο (φάκελο).

Εάν θέλετε να δείτε τη λίστα όλων των κεντρικών υπολογιστών που σαρώνετε, χρησιμοποιήστε την εντολή με την παράμετρο -sL:

nmap -sL target /cdir

# nmap -sL 192.168.1.1/24

Σε ορισμένες περιπτώσεις, πρέπει να σαρώσουμε ολόκληρο το υποδίκτυο, αλλά όχι μια συγκεκριμένη διεύθυνση IP, επειδή μπορεί να είναι επικίνδυνο για εμάς. Σε αυτή την περίπτωση, χρησιμοποιήστε την εντολή Nmap με την παράμετρο εξαίρεσης:

# nmap 192.168.1.1/24 – -exclude 192.168.1.1

Εάν έχετε ένα αρχείο που περιέχει τη λίστα διευθύνσεων IP που θέλετε να εξαιρέσετε, τότε μπορείτε να καλέσετε το αρχείο στην παράμετρο εξαίρεσης:

# nmap 192.168.1.1/24 –exclude file target.txt

Εάν θέλετε να σαρώσετε μια συγκεκριμένη θύρα στις μηχανές προορισμού (για παράδειγμα, εάν θέλετε να σαρώσετε τις θύρες HTTP, FTP και Telnet μόνο στον υπολογιστή προορισμού), τότε μπορείτε να χρησιμοποιήσετε την εντολή Nmap με τη σχετική παράμετρο:

# nmap -p80,21,23 192.168.1.1

Αυτό σαρώνει τον στόχο για αριθμό θύρας 80, 21 και 23.

 

Τώρα έχετε μια βασική λίστα των τεχνικών σάρωσης του Nmap, αλλά για τους σκοπούς αυτού του άρθρου, πρέπει να διερευνήσουμε σε βάθος.

Τεχνικές σάρωσης Nmap

Υπάρχουν πολλές τεχνικές σάρωσης διαθέσιμες στο Nmap, συμπεριλαμβανομένης της μεθόδου σάρωσης TCP connect που αναφέραμε προηγουμένως. Σε αυτήν την ενότητα, θα δούμε λεπτομερώς την πιο δημοφιλή τεχνική σάρωσης.

Σάρωση TCP SYN (-sS)

Είναι μια βασική σάρωση. Ονομάζεται επίσης half-open σάρωση επειδή επιτρέπει στο Nmap να λαμβάνει πληροφορίες από τον απομακρυσμένο κεντρικό υπολογιστή χωρίς την πλήρη διαδικασία TCP handshake.

Το Nmap στέλνει πακέτα SYN στον προορισμό, αλλά δεν δημιουργεί sessions. Ως αποτέλεσμα, ο υπολογιστής-στόχος δεν μπορεί να δημιουργήσει κανένα αρχείο καταγραφής της αλληλεπίδρασης επειδή δεν ξεκίνησε κανένα session, καθιστώντας αυτή τη δυνατότητα πλεονέκτημα της σάρωσης TCP SYN.

Εάν δεν αναφέρεται κανένας τύπος σάρωσης στην εντολή, τότε η σάρωση avTCP SYN χρησιμοποιείται από προεπιλογή, αλλά απαιτεί τα δικαιώματα root / διαχειριστή.

# nmap -sS 192.168.1.1

Σύνδεση TCP () σάρωση (-sT)

Αυτή είναι η προεπιλεγμένη τεχνική σάρωσης που χρησιμοποιείται – εάν και μόνο εάν η σάρωση SYN δεν είναι προεπιλεγμένη, επειδή η σάρωση SYN απαιτεί δικαιώματα root.

Σε αντίθεση με τη σάρωση TCP SYN, ολοκληρώνει την κανονική διαδικασία TCP handshake και απαιτεί από το σύστημα να καλέσει το connect (), το οποίο είναι μέρος του λειτουργικού συστήματος.

Λάβετε υπόψη ότι αυτή η τεχνική ισχύει μόνο για να μάθετε τις θύρες TCP και όχι τις θύρες UDP.

# nmap -sT 192.168.1.1

Σάρωση UDP (-sU)

Όπως υποδηλώνει το όνομα, αυτή η τεχνική χρησιμοποιείται για να βρει μια ανοιχτή θύρα UDP του μηχανήματος του προορισμού. Δεν απαιτεί την αποστολή πακέτου SYN επειδή στοχεύει τις θύρες UDP.

Μπορούμε να κάνουμε τη σάρωση πιο αποτελεσματική χρησιμοποιώντας το -sS μαζί με το -sU.

Οι σαρώσεις UDP στέλνουν τα πακέτα UDP στο μηχάνημα προορισμού και περιμένουν μια απάντηση.

Εάν φτάσει ένα μήνυμα σφάλματος που λέει ότι το ICMP δεν είναι προσβάσιμο, τότε σημαίνει ότι η θύρα είναι κλειστή. αλλά αν λάβει την κατάλληλη απάντηση, τότε σημαίνει ότι η θύρα είναι ανοιχτή.

# nmap -sU 192.168.1.1

Σάρωση FIN (-sF)

Μερικές φορές μια κανονική σάρωση TCP SYN δεν είναι η καλύτερη λύση λόγω του τείχους προστασίας.

Οι σαρώσεις IDS και IPS ενδέχεται να αναπτυχθούν στο μηχάνημα προορισμού, αλλά ένα τείχος προστασίας συνήθως αποκλείει τα πακέτα SYN. Η σάρωση FIN αποστέλλει το πακέτο που έχει οριστεί μόνο με FIN flag, επομένως δεν απαιτείται η ολοκλήρωση του TCP handshake.

root@bt:~# nmap -sF 192.168.1.8

Starting Nmap 5.51 ( http://nmap.org ) at 2012-07-08 19:21 PKT

Nmap scan report for 192.168.1.8

Host is up (0.000026s latency).

Not shown: 999 closed ports

PORT STATE SERVICE

111/tcp open|filtered rpcbind

Ο υπολογιστής προορισμού δεν είναι σε θέση να δημιουργήσει ένα αρχείο καταγραφής αυτής της σάρωσης (και πάλι, ένα πλεονέκτημα του FIN). Ακριβώς όπως μια σάρωση FIN, μπορούμε να εκτελέσουμε xmas σάρωση (-sX) και Null σάρωση (-sN).

Η ιδέα είναι η ίδια, αλλά υπάρχει μια διαφορά μεταξύ του κάθε τύπου σάρωσης. Για παράδειγμα, η σάρωση FIN στέλνει τα πακέτα που περιέχουν μόνο το FIN flag, ενώ η σάρωση Null δεν στέλνει κανένα κομμάτι στο πακέτο. Τα xmas στέλνουν σημαίες FIN, PSH και URG.

Σάρωση Ping (-sP)

Η σάρωση Ping χρησιμοποιείται μόνο για να ανακαλύψει εάν ο κεντρικός υπολογιστής είναι ενεργός ή όχι, δεν χρησιμοποιείται για την ανακάλυψη ανοιχτών θυρών.

Οι σαρώσεις Ping απαιτούν πρόσβαση root καθώς μπορούν να σταλούν πακέτα ICMP, αλλά εάν ο χρήστης δεν έχει δικαιώματα διαχειριστή, τότε η σάρωση ping χρησιμοποιεί την κλήση connect ().

# nmap -sP 192.168.1.1

Ανίχνευση έκδοσης (-sV)

Η ανίχνευση έκδοσης είναι η τεχνική που χρησιμοποιείται για να μάθετε ποια έκδοση λογισμικού εκτελείται στον υπολογιστή-στόχο και στις αντίστοιχες θύρες.

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

Στο πρώτο βήμα αυτής της σάρωσης, η ανίχνευση χρησιμοποιεί τη σάρωση TCP SYN για να μάθει ποιες θύρες είναι ανοιχτές.

# nmap -sV 192.168.1.1

Ανενεργή σάρωση (-sI)

Η ανενεργή σάρωση είναι μία από τις αγαπημένες μου τεχνικές. Πρόκειται για μια εκ των προτέρων σάρωση που παρέχει πλήρη ανωνυμία κατά τη σάρωση.

Σε μια ανενεργή σάρωση, το Nmap δεν στέλνει τα πακέτα από την πραγματική διεύθυνση IP σας και αντί να δημιουργεί τα πακέτα από τον υπολογιστή σας, χρησιμοποιεί έναν άλλο κεντρικό υπολογιστή από το δίκτυο προορισμού για να τα στείλει.

Ας δούμε ένα παράδειγμα για να κατανοήσουμε την έννοια της αδρανής σάρωσης:

nmap -sI zombie_host target_host

# nmap -sI 192.168.1.6 192.168.1.1

Η τεχνική ανενεργής σάρωσης χρησιμοποιείται για την ανακάλυψη των ανοιχτών θυρών στο 192.168.1.1, ενώ χρησιμοποιεί το zombie_host (192.168.1.6) για να επικοινωνεί με τον κεντρικό υπολογιστή προορισμού. Είναι λοιπόν μια ιδανική τεχνική για ανίχνευση ενός υπολογιστή προορισμού ανώνυμα.

Υπάρχουν πολλές άλλες τεχνικές σάρωσης διαθέσιμες, όπως FTP bounce, σάρωση hash, σάρωση πρωτοκόλλου IP. και ούτω καθεξής. Έχουμε συζητήσει τις πιο σημαντικές τεχνικές σάρωσης (αν και όλες οι τεχνικές σάρωσης μπορεί να είναι σημαντικές, ανάλογα με την κατάσταση που αντιμετωπίζετε).

Στην επόμενη ενότητα, θα συζητήσουμε τις τεχνικές ανίχνευσης και εύρεσης του λειτουργικού συστήματος (OS) με το Nmap.

Ανίχνευση λειτουργικού συστήματος στο Nmap

Ένα από τα πιο σημαντικά χαρακτηριστικά που διαθέτει το Nmap είναι η δυνατότητα εντοπισμού απομακρυσμένων λειτουργικών συστημάτων και λογισμικού.

Κατά τη διάρκεια ενός pentest, είναι πολύ χρήσιμο να γνωρίζετε το λειτουργικό σύστημα και το λογισμικό που χρησιμοποιείται από τον απομακρυσμένο υπολογιστή. Μπορείτε εύκολα να βρείτε γνωστές ευπάθειες με αυτές τις πληροφορίες.

Το Nmap έχει μια βάση δεδομένων που ονομάζεται nmap-os-db Η βάση δεδομένων περιέχει όλες τις πληροφορίες για περισσότερα από 2.600 λειτουργικά συστήματα. Το Nmap στέλνει πακέτα TCP και UDP στο μηχάνημα προορισμού και εξετάζει την απόκριση, συγκρίνοντας το αποτέλεσμα με τη βάση δεδομένων.

Η τεχνική ανακάλυψης του λειτουργικού συστήματος με το Nmap, είναι ελαφρώς πιο αργή από τις τεχνικές σάρωσης επειδή η ανίχνευση του λειτουργικού συστήματος περιλαμβάνει τη διαδικασία εύρεσης των ανοιχτών θυρών.

Initiating SYN Stealth Scan at 10:21

Scanning localhost (127.0.0.1) [1000 ports]

Discovered open port 111/tcp on 127.0.0.1

Completed SYN Stealth Scan at 10:21, 0.08s elapsed (1000 total ports)

Initiating OS detection (try #1) against localhost (127.0.0.1)

Retrying OS detection (try #2) against localhost (127.0.0.1)

Το παραπάνω παράδειγμα δείχνει ξεκάθαρα ότι το Nmap ανακαλύπτει πρώτα τις ανοιχτές θύρες και μετά στέλνει τα πακέτα για να ανακαλύψει το απομακρυσμένο λειτουργικό σύστημα.

Η παράμετρος ανίχνευσης του λειτουργικού συστήματος είναι -O (κεφάλαιο O).

 

Η τεχνική fingerprinting OS του Nmap ανακαλύπτει τα εξής:

  • Τύπος συσκευής (δρομολογητής, workstation και ούτω καθεξής)
  • Το λειτουργικό σύστημα που τρέχει
  • Λεπτομέρειες λειτουργικού συστήματος (το όνομα και η έκδοση του λειτουργικού συστήματος)
  • Απόσταση δικτύου (η απόσταση μεταξύ του στόχου και του hacker)

Ας υποθέσουμε ότι το μηχάνημα προορισμού έχει τείχος προστασίας, IDS και IPS όλα ενεργοποιημένα. Μπορείτε να χρησιμοποιήσετε την εντολή -PN για να βεβαιωθείτε ότι δεν κάνετε ping για να βρείτε το απομακρυσμένο λειτουργικό σύστημα. Το -PN λέει στο Nmap να μην κάνει ping στον απομακρυσμένο υπολογιστή, καθώς μερικές φορές τα τείχη προστασίας μπλοκάρουν το αίτημα.

# nmap -O -PN 192.168.1.1/24

Η εντολή ενημερώνει τον αποστολέα ότι κάθε κεντρικός υπολογιστής στο δίκτυο είναι ενεργός, οπότε δεν χρειάζεται να στείλετε και ένα αίτημα ping. Με λίγα λόγια, παρακάμπτει το αίτημα ping και ανακαλύπτει το λειτουργικό σύστημα.

Η τεχνική ανίχνευσης Nmap OS λειτουργεί με βάση μια ανοιχτή και κλειστή θύρα. Εάν το Nmap δεν εντοπίσει την ανοιχτή και κλειστή θύρα, τότε δίνει το σφάλμα:

Προειδοποίηση: Τα αποτελέσματα του OSScan ενδέχεται να μην είναι αξιόπιστα επειδή δεν μπορέσαμε να βρούμε τουλάχιστον 1 ανοιχτή και 1 κλειστή θύρα

 

Αυτή είναι μια ανεπιθύμητη κατάσταση και είναι καλό να περιορίσετε τις σαρώσεις του λειτουργικού συστήματος εάν το Nmap δεν είναι σίγουρο για το λειτουργικό σύστημα.

Εάν το Nmap δεν είναι σίγουρο για το λειτουργικό σύστημα, τότε δεν χρειάζεται να εντοπιστεί χρησιμοποιώντας το –osscan_limit.

 

Εάν είναι πολύ δύσκολο για το Nmap να εντοπίσει με ακρίβεια το απομακρυσμένο λειτουργικό σύστημα, έχετε την επιλογή να χρησιμοποιήσετε τη δυνατότητα προβλέψεων του Nmap: – Το osscan-kira βρίσκει την πλησιέστερη αντιστοίχιση του λειτουργικού συστήματος του στόχου.

# nmap -O –osscan-kira 192.168.1.1

_________________

Το Nmap είναι ένα πολύ ισχυρό εργαλείο και έχει τη δυνατότητα να καλύψει τις πρώτες πτυχές ενός pentest, που συμπεριλαμβάνουν τη συλλογή πληροφοριών και την απαρίθμηση. Υπάρχουν τόσα πολλά άλλα πράγματα που μπορείτε να κάνετε με το Nmap και θα τα δούμε σε μελλοντικά άρθρα.


Διαβάστε τις Τεχνολογικές Ειδήσεις από όλο τον κόσμο, με την εγκυρότητα του iGuRu.gr

Ακολουθήσετε μας στο Google News iGuRu.gr at Google news