Nmap Tutorial --In Progress...

WiludrakeGR | Κυρ, 01/13/2008 - 23:26 | 1' | 6

Γεια σας φίλοι μου, ετοιμάζω ένα tutorial για το διασημο Network Mapper ή αλλιως, Nmap το οποιο δεν πλατιάζει σε γενικολογίες αλλά σας μαθαίνει πως λειτουργεί και πως να το χρησιμοποιείτε σωστά.

Παρακαλώ ΜΗΝ κανετε ΚΑΝΕΝΑ post μεχρι να ολοκληρώσω το tutorial

Ευχαριστω προκαταβολικα, BlackSlash13

Δώσε αστέρια!

MO: 5 (ψήφοι: 1)

Σχόλια

Εισαγωγή

Το nmap είναι ασυζητητί το πιο διάσημο port scanner. Μπορείτε να το βρείτε δωρεάν στο www.insercure.org αν και στα περισσότερα unix συστήματα είναι ήδη εγκατεστημένο.

Για να κάνετε εγκατάσταση αφού κατεβάσετε το source, δίνεται τα κλασσικά που χρειάζονται για το compile ( configure , make, make install ). Τώρα όσα παλικάρια έχετε το OS X, μπορούν να βρουν το nmap στο http:://darwinports.opendarwin.org στην κατηγορία net. Ευτυχώς για τους χρήστες των windows, το nmap λειτουργεί αρκετά καλά με την υποστήριξη του winpcap ( www.winpacap.org ).
Παρόλα αυτά η έκδοση του unix είναι πιο σταθερή και πιο βελτιωμένη σε σχέση με αυτήν των windows. Δυστυχώς όμως, οσοι χρήστες έχουν το Windows XP SP2 έχουν κάποια ελαττώματα όσον αφορά τα raw sockets.

Αυτό έγινε προφανώς για να μειωθεί η διάδοση των worms, viruses, hacking tools στα windows. Αλλα επειδή τα raw sockets είναι περισσότερο μια χρήσιμη ικανότητα του συστημάτος παρά ένα αναγκαίο κακό, αποτελούν σαφώς τον βασικό παράγοντα στα scanners και σε άλλα net tools. Η ομαδα των hackers του nmap έχει δουλέψει και σε αυτό τον τομέα και έχει βγάλει τις αναγκαίες updates για εσας με το sp2.

Προσεξτε όμως: Οσοι κάνετε scanning μέσω ethernet τότε είναι  απίθανο αντιμετοπίσετε προβλήματα με το sp2. Αυτο συμβαίνει γιατό το sp2 έχει δουλέψει σε custom Ethernet packets τα οποία
περιλαμβάνονται στο tcp/ip payloads αντί της χρήσης των raw sockets.

Εφαρμογή
Ένας λόγος που το nmap είναι τόσο χρήσιμο είναι γιατι υποστηρίζει τόσες πολλες τεχνικές scanning και σας δίνει την δυνατότητα να επιλέξετε εσείς. Μπορείτε για παράδειγμα να σκανάρετε για hosts,
δηλαδή αν είναι up or down, για tcp ports, για udp ports ακόμα και για άλλα προτόκολα IP. Το βασικό είναι όμως να γνωρίζετε πως γίνεται μια tcp connection, ώστε να ξέρετε περίπου πως δουλεύει το εργαλείο.

FLAG    ΠΕΡΙΓΡΑΦΗ
-----------------
SYN ::: Υποδεικνύει την έναρξη μιας TCP σύνδεσης.
ACK ::: Αναγνωρίζει την λήψη του προηγούμενου πακέτου ή της επικοινωνίας
FIN ::: Τερματίζει την μιας TCP συνδεση
RST ::: Τερματίζει (σκοτώνει) απότομα και βίαια μια tcp συνδεση.    

TCP threeway handshake

    Οταν γίνεται μια tcp connection σε μια port, ο client (αυτό που
θέλει να συνδεθει με ένα άλλο pc) στέλνει ένα tcp packet με την σημαία
SYN για να δηλώσει ότι θέλει να αρχίσει μια TCP επικοινωνία. Εάν ο
server (το PC με το οποιο θελει να επικοινωνήσει ο client) ακροάζεται
(listening) στην συγκεκριμένη θυρα (port), τότε στέλνει κι αυτός με τη
σειρά του ένα tcp packet, με δυο σημαίες SYN και ACK. Με αυτό,
επιβαιωνει οτι έλαβε το προηγούμενο SYN στελνωντας ενα ACK και
ταυτόχρονα επιτρέπει την επικοινωνία με τον client στελνοντάς του ένα
SYN για να αρχίσει η επικοινωνία. Ο client για να δηλώσει ότι έλαβε το
SYN του server και οτι η επικοινωνία τους υλοποιήθηκε, στέλνει ένα ACK
στον server για επιβαιβέωση. Αυτό όλο λέγεται TCP Three-Way handshake.

Τερματισμός tcp συνδεσης
Η σύνδεση μεταξύ τους τελειώνει όταν μία από τις δυο μεριες (είτε ο
client είτε ο server) που θέλει να τερματίσει, στέλνει στον άλλον ενα
FIN. Ο άλλος για να απαντήσει ότι πήρε το FIN και οτι θέλει κι αυτός να
τερματιστεί η σύνδεση, στέλνει κι αυτός ενα FIN. Παρόλα αυτά αν κατα τη
διάρκεια την συνδεσης, οποιαδήποτε στιγμή, σταλνθεί ένα RST, τότε η
σύνδεση διακόπτεται απότομα.

Για να καταλάβετε καλύτερα σας παραθέτω έναν διάλογο μεταξύ Client and Server για να την υλοποιήση μια TCP σύνδεσης.
Client: Θέλω να συνδεθώ με εσένα. (στέλνει SYN στον server)
Server: ΟΚ, θα συνδεθώ μαζί σου. (στέλνει SYN/ACK στον client)
Client: ΟΚ, εντάξει συνδεθήκαμε. (στέλνει ACK στον server)
---- τώρα στελνονται ACKs πακετα ανταλλάσοντας πληροφοριες και δεδομενα. Αν σταλθεί RST τότε η σύνδεση τερματίζεται απότομα ----
Client: Αντε γεια, θελω να αποσυνδεθώ. (στέλνει ένα FYN στον server)
Server: Αχά, ώστε θες να αποσυνδεθούμε. (στέλνει ενα ACK στον client)
Server: Ας αποσυνδεθούμε λοιπον. (στέλνει ένα FYN στον client).
Client: ΟΚ, αποσυνδεθήκαμε, τα λέμε. (στέλνει ενα ACK στον server).

Αυτή τη συζήτηση να την έχετε κατα νου για παρακάτω, θα σας βοήθησει να καταλάβετε κάποιες λειτουργίες του scanning.

Hosts Scan - είναι online ή offline ;

Η μέθοδος που χρησιμοποιείται για αυτόν τον σκοπό λέγεται Ping scanning (-sP). Λειτουργεί τοσο σε Windows όσο και σε unix. Στέλνετε εσείς (που είστε ο client) ICMP echo requests σε μία λίστα από IP διευθύνσεις και περιμένετε για απάντηση. Πολλοι hosts όμως, έχουν firewalls τα οποια μπλοκάρουν τα ICMP requests που στέλνετε. Για να αποφύγετε τέτοιες περιπτώσεις, το nmap παρέχει κι άλλες παραλαγές του ICMP. Ετσι, αντί να στείλετε ICMP request με κίνδυνο να μην πάρετε απάντηση απο ένα μηχάνημα και να νομίσετε οτι είναι offline, ενώ αυτό στην πραγματικότητα είναι online αλλά βρίσκεται πίσω από ένα firewall που μπλοκάρει τα ICMP Requests σας, μπορείτε να στείλετε    timestamp request (-PP) ή netmask request (-PM). Με αυτόν τον τρόπο, αν στείλετε ένα timestamp request αντί ενός ICMP Requests, είναι πιο πιθανό να λάβετε απάντηση από το μηχανημα που είναι πίσω από το firewall. Κι αυτό γιατί πιθανόν δεν εχει ρυθμιστεί το firewall του συγκεκριμενου μηχανήματος να μπλοκάρει τα timestamp requests παραμόνο τα icmp requests.

Ετσι λοιπόν βλέπετε ότι το nmap κρυβει δυνατότητες! Για να καταλάβετε τώρα τι γίνεται με το ping scan του nmap:
Εσεις θέλετε να δείτε αν ο host είναι online ή offline, σωστά ; Το nmap αρχικά στέλνει ένα SYN και περιμένει για απαντηση... στην ουσία στέλνοντας ενα SYN προσπαθείτε να υλοποιήσετε μια tcp connection στην port 80 (by default) στον host(δηλ server). Αν λάβετε ένα οποιδηποτε πακετο: SYN/ACK τότε αυτό σημαίνει ότι ή εχετε πετύχει τη σύνδεση (οποτε ο host είναι online) και οτι στην port 80 τρέχει καποιο service ή αν λάβετε RST, τότε δεν έχετε πετύχει την σύνδεση γιατι ο host δεν θελει να επικοινωνήσει μαζί σας ΑΛΛΑ ΕΙΝΑΙ ONLINE γιατι έστειλε απάντηση (ενα RST) . Αν δεν λάβετε τίποτα, τότε: ή είναι online και απλά αγνοεί τις συνδέσεις στην port (στην προκειμενη περιπτωση στην port 80) ή οτι είναι πραγματικά offline. Στην περίπτωση που δεν λάβετε λοιπόν τίποτα, το nmap ξαναπροσπαθεί αλλά αυτή τη φορά αντι να στείλετε ένα SYN, στέλνετε ένα ACK. Το ACK όπως είδατε παραπάνω, χρησιμοποιείται για να επιβαιώσει την υλοποίηση μιας σύνδεσης, παρόλα αυτά όμως, ο host (δηλαδη ο server) ΔΕΝ ΕΧΕΙ ΠΡΑΓΜΑΤΟΠΟΙΗΣΗ ΠΡΟΗΓΟΥΜΕΝΟΣ 3Way handshake. Αρα, ετσι στα ξεκάρφωτα, χωρίς να έχετε κάνει σύνδεση με τον hosts νωρίτερα, του στέλνετε ένα άσχετο ACK. Αυτό έχει σαν αποτέλεσμα να μπερδεύεται ο host και να απαντάει σε εσας, λέγοντας σας "Δεν εχω ξεκινησει συνδεση με εσενα. Γιατι μου λες οτι σου είπα κάτι πριν ;". Ετσι στην ουσία, ενώ οταν στείλετε SYN, ο host το έπαιζα κινέζος και δεν απαντούσε και νομίσατε πως ειναι offline, τώρα που στείλατε ACK μπερδέυτηκε και απάντησε (καθαρά δόλια τεχνική και χρήση του ACK από το nmap, χεχεχε). Αυτό συμβαίνει γιατι στα firewalls, υπάρχουν packet filters που πιθανόν να παρακολοθουν τα SYN, που σημαίνουν την εναρξη μιας TCP σύνδεσης, ενώ τα ACK σημαίνουν οτι η σύνδεση ΕΧΕΙ ΗΔΗ πραγματοποιηθεί, πράγμα που μπερδεύει τα packet filters. Από την άλλη, αν το nmap τελικά δεν λάβει καμία απάντηση αφού στείλει και SYN και ACK, αυτό σημαίνει οτι ο host είναι offline ή βρίσκεται πισω από ενα πολύ καλά σεταρισμένο router. Το nmap χρησιμοποιεί το Ping Scanning στην port 80 γιατί τα περισσότερα firewalls και τα port filters αυτών, επιτρέπουν τυφλά την πρόσβαση στο web (μην ξεχνατε οτι 80 port = HTTP ). Αν δεν θελετε να χρησιμοποιήσετε την port 80, μπορείτε να επιλέξτε την διαφορετική port με την εντολή -PS (στελνοντας SYN) και με την -PA (στελνοντας ACK).

Λοιπον δειτε ενα παραδειγμα: Εστω οτι θελω να δω αν ο host 85.75.51.202 ειναι online ή offline. Δινω στο terminal του ubuntu:

root@blackslash13-desktop:~# sudo bash

Ωραια, ειμαστε root. Τώρα θελω να  δοκιμασω Ping  Scan στελνοντας SYN flags στην port 30 (ο,τι να ναι).

root@blackslash13-desktop:~# nmap -sP -PS30 85.75.51.202

Starting Nmap 4.20 ( http://insecure.org ) at 2007-10-21 17:17 EEST
Note: Host seems down. If it is really up, but blocking our ping probes, try -P0
Nmap finished: 1 IP address (0 hosts up) scanned in 4.032 seconds

Οπως βλέπετε στο Wireshark στειλαμε 2 SYN αλλα δεν ηρθε απαντηση. Ετσι το nmap μας λεει οτι ο host ειναι offline. Ειναι όμως ; Ας δοκιμασουμε να στειλουμε ACK στην port 30.

root@blackslash13-desktop:~# nmap -sP -PA30 85.75.51.202

Starting Nmap 4.20 ( http://insecure.org ) at 2007-10-21 17:21 EEST
Host athedsl-121899.home.otenet.gr (85.75.51.202) appears to be up.
Nmap finished: 1 IP address (1 host up) scanned in 0.644 seconds
root@blackslash13-desktop:~# nmap -sP -PA30 85.75.51.202

Χαχαχα! Ειναι online τελικα. Οπως βλεπετε στο wireshark στειλαμε ACK και παραλάβαμε RST, ειναι αυτο που σας ελεγα νωριτερα, οτι το δολιο ACK μπερδευει το firewall του host.
Για να κανετε scan πολλες IP δωστε:

root@blackslash13-desktop:~# nmap -sP -PA30 85.75.51.0/24

Starting Nmap 4.20 ( http://insecure.org ) at 2007-10-21 17:26 EEST
Host athedsl-121717.home.otenet.gr (85.75.51.20) appears to be up.
Host athedsl-121727.home.otenet.gr (85.75.51.30) appears to be up.
Host athedsl-121729.home.otenet.gr (85.75.51.32) appears to be up.
Host athedsl-121731.home.otenet.gr (85.75.51.34) appears to be up.
Host athedsl-121735.home.otenet.gr (85.75.51.38) appears to be up.
Host athedsl-121755.home.otenet.gr (85.75.51.58) appears to be up.
Host athedsl-121781.home.otenet.gr (85.75.51.84) appears to be up.
Host athedsl-121803.home.otenet.gr (85.75.51.106) appears to be up.
Host athedsl-121816.home.otenet.gr (85.75.51.119) appears to be up.
Host athedsl-121826.home.otenet.gr (85.75.51.129) appears to be up.
Host athedsl-121851.home.otenet.gr (85.75.51.154) appears to be up.
Host athedsl-121876.home.otenet.gr (85.75.51.179) appears to be up.
Host athedsl-121884.home.otenet.gr (85.75.51.187) appears to be up.
Host athedsl-121889.home.otenet.gr (85.75.51.192) appears to be up.
Host athedsl-121899.home.otenet.gr (85.75.51.202) appears to be up.
Host athedsl-121914.home.otenet.gr (85.75.51.217) appears to be up.
Host athedsl-121951.home.otenet.gr (85.75.51.254) appears to be up.
Nmap finished: 256 IP addresses (17 hosts up) scanned in 11.242 seconds

Το nmap χρησιμοποιεί για ping scan μόνο tcp. Αν θελετε udp δεν σας το συστήνω παρα μόνο αν αντι για το nmap χρησιμοποιήσετε το amap της THC. 
WiludrakeGR2007-10-21 18:16:41

Port Scan - Ποιες ports έχει ανοιχτές ;

Αυτό γίνεται με το κλασσικο TCP connect() η οποια ειναι μια function του unix για να συνδέεται σε sockets. Ειναι οτι πιο απλό αλλά και ότι πιο γνωστό, καθώς μέχρι και οι browsers λειτουργούν με αυτόν το τρόπο, δηλαδή three-way handshake. Το nmap απλά αποσυνδέεται στέλνοντας ενα RST πακέτο αμέσως μόλις πραγματοποιηθεί η 3way handshake. Οριστε μερικά παραδείγματα:

---------------      ΜΕΘΟΔΟΣ 1: -sT     --------------------------------------------------------  
Ας το αναλύσουμε λιγο:
Περιπτωση1 --> Three-way handshake, αρα η port είναι ανοιχτή!!!
client (εσεις): Στελνετε SYN στον host.
host: Σας απανταει με SYN/ACK
client: ACK
client: RST

Περίπτωση2 --> H port είναι κλειστή...
client: Στελνετε ενα SYN
host: ACK/RST

Περίπτωση3 --> Η port μπλοκάρετε απο firewall που είναι πολυ καλα σεταρισμενο, ειναι stealth!
client: Στέλνετε SYN
host: τιποτα...δεν στελνει τιποτα..

Ας δοκιμασουμε κι εμεις τωρα:

root@blackslash13-desktop:~# nmap -sT 85.75.51.202

Starting Nmap 4.20 ( http://insecure.org ) at 2007-10-21 23:16 EEST
All 1697 scanned ports on athedsl-121899.home.otenet.gr (85.75.51.202) are filtered (1026) or closed (671)

Nmap finished: 1 IP address (1 host up) scanned in 238.538 seconds

Οπως βλέπετε το nmap βρήκε καποιες ports που απάντησαν με ACK/RST αρα σωστα ειναι closed.

Μειονεκτημα -sT : Οπως βλέπετε, η μονη περιπτωση να βρουμε open ports ειναι η περίπτωση 1. Δηλαδή να ολοκληρωθεί μια three way handshake. Αυτό έχει ενα μειονέκτημα για εσας, γιατί όλες οι threeway handshakes καταγραφονται στα logs του firewall. Ετσι αφήνετε γιγάντια ιχνη στον host, που ανα πάσα στιγμη, αν δει τα logs, βλέπει οτι εσεις προσπαθησατε να scanaρατε το μηχανημα του, αλλα και οτι μάθατε οτι εχει ανοιχτες ports (αφου υλοποιήθηκε η 3Way handshake).

---------------      ΜΕΘΟΔΟΣ 2: -sS     --------------------------------------------------------  
Ας το αναλύσουμε λιγο:
Περιπτωση1 --> Half-handshake, κι ομως η port είναι ανοιχτή!!!
client (εσεις): Στελνετε SYN στον host.
host: Σας απανταει με SYN/ACK
client: RST

Περίπτωση2 --> H port είναι κλειστή...
client: Στελνετε ενα SYN
host: ACK/RST

Περίπτωση3 --> Η port μπλοκάρετε απο firewall που είναι πολυ καλα σεταρισμενο, ειναι stealth!
client: Στέλνετε SYN
host: τιποτα...δεν στελνει τιποτα..

Ας δοκιμασουμε κι εμεις τώρα:

Ας δοκιμασουμε κι εμεις τωρα:

root@blackslash13-desktop:~# nmap -sS 85.75.51.202

Starting Nmap 4.20 ( http://insecure.org ) at 2007-10-21 23:19 EEST
All 1697 scanned ports on athedsl-121899.home.otenet.gr (85.75.51.202) are filtered (1026) or closed (671)
Nmap finished: 1 IP address (1 host up) scanned in 238.538 seconds

Οπως βλέπετε το nmap βρήκε καποιες ports που απάντησαν με ACK/RST αρα σωστα ειναι closed.

Πλεονέκτημα -sS : Οπως βλέπετε η μονη περιπτωση για να βρουμε open ports ειναι η πρωτη. Ομως, ΔΕΝ ολοκληρώνεται η 3Way handshake γιατι στο τελος δεν στελνουμε ACK αλλα στελνουμε μονο RST. Ετσι, απο την στιγμη που οταν στελνουμε SYN, και μετα λαμβανουμε SYN/ACK, το σiγουρο ειναι οτι η port ειναι ανοιχτη. Εμεις ομως, αντι να στειλουμε ACK και να ολοκληρωσουμε την handshake, στελνουμε RST. Ετσι το scan μας, δεν καταγραφεται στο firewall. Παρόλα αυτά εμείς πήραμε αυτό που θέλαμε αθόρυβα. Μαθαμε τις open ports.

---------------      ΜΕΘΟΔΟΣ 3: -sF -sΧ και -sN     --------------------------------------------------------  

Εχετε παρατηρησει οτι καθε φορα ξεκινάμε στέλνοντας ενα SYN, αλλα ολη την ωρα πέρνουμε ως απάντηση ενα RST που μας λεει οτι port ειναι κλειστή. Λοιπον ας στειλουμε αντι για SYN, διαφορα σκουπιδοπακέτα να δουμε τι θα κανει ο host. Αυτο το ειδος το scanning ειναι οτι πρεπει για ειμαστε αθορυβοι!!!

Ας το αναλύσουμε λιγο:
Περιπτωση1 --> Αν ο host ειναι online, τοτε η port ειναι ανοιχτη και δεν υπαρχει firewall.
client (εσεις): Στελνετε FYN στον host.
host: Σας απανταει τιποτα....

Περίπτωση2 --> O host ειναι online αλλα η port είναι κλειστή...
client: Στελνετε ενα FYN
host: ACK/RST

Fin (-sF) που στελνει μονο FIN.
Xmas tree (-sX) η οποια στέλνει FIN,URG,PUSH (σαν λαμπακια σε χριστουγεννιατικο δενδρο).
Null (-sN) που ΔΕΝ στελνει τιποτα.
Ας δοκιμασουμε κι εμεις:

root@blackslash13-desktop:~# nmap -sF 85.75.51.202

All 1697 scanned ports on athedsl-121899.home.otenet.gr (85.75.51.202) are open|filtered

Nmap finished: 1 IP address (1 host up) scanned in 160.744 seconds

Τώρα τι διαλο ειναι αυτο ; Filtered ; ειναι open ή οχι ; ..... οχι σαφες.

---------------      ΜΕΘΟΔΟΣ 4: -sΑ     --------------------------------------------------------  

Οταν παίρνουμε ως μυνημα open|filtered σημαινει οτι το nmap δεν μπορεσε να μαθει αν τελικα η πορτα ειναι ανοιχτη η κλειστη. Αυτο μπορει να οφειλεται στο firewall και το filter αυτου. Οποτε αν στειλουμε ξανα το δολιο ACK, οχι για να δουμε αν ο host ειναι online, αλλα αυτη την φορα για να μαθουμε την κατασταση των ports.

Ας το αναλύσουμε λιγο:
Περιπτωση1 --> Δεν προστευονται οι ports απο firewall. Μπορει να ειναι ειτε ανοιχτες ειτε κλειστες.
client (εσεις): Στελνετε ACK στον host.
host: RST

Περίπτωση2 --> Η porta μπλοκαρετε απο firewall.
client: Στελνετε ενα ACK
host: Τιποτα ή ICMP unreachable.

Ας δοκιμασουμε:

Starting Nmap 4.20 ( http://insecure.org ) at 2007-10-22 00:18 EEST
All 1697 scanned ports on athedsl-121899.home.otenet.gr (85.75.51.202) are UNfiltered

Unfiltered: ανοιχτες ή κλειστες αλλα οχι blocked. Αρα υπάρχει ενα stateless firewall απο πισω.
filtered: blocked απο port filter.

Τι καταφέραμε στην συγκεκριμένη περίπτωση
Οπως είδατε οταν καναμε -sS scan, μας έβγαλε οτι οι ports είναι filtered ή closed. Αυτο σημαίνει οτι υπάρχει καποιο port filter/firewall που τις μπλοκάρει, παρόλα αυτά όμως, μερικες ports μας λεει οτι ειναι closed. Closed θα πει οτι δεν ειναι απαραίτητo να υπαρχει firewall. Σε συνδιασμό τώρα με το -sA που πραγματοποιήσαμε τελευταία, είδαμε ότι ολες οι ports είναι unfiltered. Πώς γινεται ομως αυτό αφου πριν στο -sS μας εβγαλε filtered και τωρα μας βγαζει unfiltered ; Χα, μα φιλοι μου τώρα μάθαμε τα settings που εχει το firewall του host. Το εχει ρυθμίσει να μπλοκάρει τα incoming SYN, αλλα έχει παραβλέψει τα ACK. Ετσι τελικα, οι ports ειναι filtered απο ενα stateless firewall,  παρόλα αυτά όμως τα πακετα ACK μπορουν να περάσουν.
WiludrakeGR2007-10-22 14:37:42

Protocol Scanning

Αυτού του είδους η σάρωση έχει σαν αποτέλεσμα να σας επιτρέψει τα protocols που χρησιμοποιεί ο host. Παρόλα αυτά όμως, δεν είναι βάσιμη, καθώς τα αποτελέσματα δεν είναι ακριβή. Αυτό οφείλεται στο γεγονός ότι η σάρωση αυτή, δουλεύει όπως μια UDP Scan. Δηλαδή, αν στείλουμε ενα raw packet χωρίς headers αλλά με protocol number 130 (το οποιο αναφέρεται στο SPS), μπορούμε να καθορίσουμε αν το αντιστοιχο protocol ειναι σε εφαρμογή από τον host. Πώς ; Εαν λάβουμε ένα ICMP protocol unreachable μύνημα, τότε το SPS δεν "παίζει" στον host. Αν δεν λάβουμε τίποτα, τότε, απλά υποθέτουμε οτι όντως το SPS είναι σε λειτουργία. Γι αυτό σας είπα και νωρίτερα, πως τα αποτελέσματα δεν είναι ακριβή, καθώς εξαρτώνται από την μεταχείριση των ICMP που κανει το firewall του host.

πχ

Starting Nmap 4.20 ( http://insecure.org ) at 2007-10-31 20:47 EET
Interesting protocols on athedsl-121715.home.otenet.gr (85.75.51.18):
Not shown: 255 open|filtered protocols
PROTOCOL STATE SERVICE
1        open  icmp         &n bsp;         

Nmap finished: 1 IP address (1 host up) scanned in 104.816 seconds

Παρόλα αυτά, είναι ενας καλός τρόπος να δουμε αν o host είναι online.