ΑρχικήHow ToNmap: Πως να χρησιμοποιήσετε τον βασιλιά του network scanning

Nmap: Πως να χρησιμοποιήσετε τον βασιλιά του network scanning

Δεν υπάρχει άτομο στο χώρο της ασφάλειας που δεν έχει ακούσει για το Nmap, το κατεξοχήν εργαλείο για network scanning. Σε αυτό το άρθρο θα προσπαθήσουμε να αναλύσουμε τη χρησιμότητα του συγκεκριμένου εργαλείου και να δείξουμε τους πιθανούς τρόπους με τους οποίους μπορείτε να το εγκαταστήσετε στον υπολογιστή σας. Δυστυχώς επειδή είναι αδύνατον να δούμε μία-μία όλες τις εντολές που μπορούμε να χρησιμοποιήσουμε στο Νmap, θα προσπαθήσουμε να δείξουμε τις κυριότερες.

Nmap

Μερικά από τα features του Nmap περιλαμβάνουν την ανίχνευση host (Host Discovery), το σκανάρισμα πορτών (port scan) σε κάθε host, την αναγνώριση υπηρεσιών και του λειτουργικού συστήματος (Service and OS fingerprinting) κάθε host αλλά και μία βασική ανίχνευση ευπαθειών (basic vulnerability detection). Επιπροσθέτως, υπάρχει και η δυνατότητα χρήσης του ZeNmap, δηλαδή της έκδοσης του Nmap με γραφικά.

Πως να το εγκαταστήσετε

Το Nmap μπορεί να χρησιμοποιηθεί σε λειτουργικό σύστημα Windows. Παρόλα αυτά, συνίσταται η χρήση του λειτουργικού συστήματος Linux καθώς το Nmap λειτουργεί πιο γρήγορα και καλύτερα με αυτό. Μερικοί από τους περιορισμούς που μπορεί να αντιμετωπίσει κάποιος που χρησιμοποιεί το Νmap σε περιβάλλον Windows είναι:

  • Δεν υπάρχει η δυνατότητα σκαναρίσματος για το ίδιο το μηχάνημα στο οποίο τρέχει το Nmap.
  • Υποστηρίζονται μόνο τα Ethernet interfaces.
  • Ορισμένα scans περνούν πολύ περισσότερη ώρα να ολοκληρωθούν σε σχέση με την αντίστοιχη ώρα που θα έπαιρνε για να ολοκληρωθούν σε περιβάλλον Linux.

Εδώ θα πρέπει να σημειώσουμε ότι στα Kali Linux, μπορείτε να βρείτε το Νmap προ-εγκατεστημένο.

Windows

  1. Επισκεφτείτε τη διεύθυνση https://Nmap.org/download.html και κατεβάστε την τελευταία έκδοση self-installer.
  2. Εκτελέστε το αρχείο .exe που μόλις κατεβάσατε και αποδεχτείτε τους όρους χρήσης

network scanning

3. Επιλέξτε τα components που επιθυμείτε να εγκατασταθούν.

4. Τέλος, επιλέξτε το φάκελο εγκατάστασης.

5. H εγκατάσταση θα έχει ολοκληρωθεί εντός ολίγων λεπτών.

Linux

Η διαδικασία εγκατάστασης του Νmap για τις εκδόσεις Linux είναι πολύ απλή. Απλά ανοίξτε το terminal και ανάλογα το Linux flavour σας πληκτρολογήστε την αντίστοιχη εντολή ώστε να εγκαταστήσετε το Nmap package:

  • CentOS
yum install nmap
  • Debian
apt-get install nmap
  • Ubuntu
sudo apt-get install nmap

 

Πως δουλεύει το Νmap

Για να μπορέσουμε να καταλάβουμε καλύτερα το πώς ακριβώς δουλεύει το Νmap, τους διαφορετικούς τύπους Scan που προσφέρει, με το SYN scan να αποτελεί τη πιο συχνή επιλογή, θα πρέπει να κατανοήσουμε πως λειτουργούν τα παρακάτω:

3 Way Handhake (Τριμερής χειραψία)

Κατά την επικοινωνία ενός TCP service, η σύνδεση πραγματοποιείται μέσω του 3 Way Handhake (Τριμερής χειραψία). Αυτή αποτελείται από τα παρακάτω βήματα:

  • Βήμα 1: ο υπολογιστής A στέλνει τμήμα TCP SYN στον υπολογιστή Β στην πόρτα που είναι συνδεδεμένη με το αντίστοιχο service (π.χ. 80 HTTP, 25 SMTP, 22 SSH)
  • Βήμα 2: ο υπολογιστής Β λαμβάνει το SYN, και απαντάει με τμήμα του SYN ACK,
  • Βήμα 3: ο υπολογιστής Α λαμβάνει το SYN ACK και απαντά με τμήμα ACK

Στα παραπάνω βήματα, το τείχος προστασίας (firewall) μπορεί να είναι μια ξεχωριστή συσκευή ή μπορεί να λειτουργεί σαν τοπικό software στους υπολογιστές. Όπως είναι γνωστό, η δουλειά ενός firewall είναι να προστατέψει ένα σύστημα από ανεπιθύμητη κίνηση και πακέτα.

Open, closed και filtered πόρτες

Στη περίπτωση του Νmap scan, μπορεί να υπάρξουν 3 πιθανά αποτελέσματα στο terminal αυτού που τρέχει το scan:

  • Filtered port: Συμβαίνει όταν η συγκεκριμένη πόρτα δεν έχει απαντήσει καθόλου. Το SYN πακέτο έχει μπλοκαριστεί από το firewall.
  • Closed port: Συμβαίνει όταν δεν υπάρχει κάποιο service που να τρέχει στη συγκεκριμένη πόρτα και το firewall έχει επιτρέψει τη σύνδεση να περάσει. Μπορεί επίσης να σημαίνει ότι δεν υπάρχει firewall.
  • Open port: Συμβαίνει όταν υπάρχει service που τρέχει σε αυτή τη πόρτα και είναι προσβάσιμο από έξω.

 

Nmap

Τύποι του Νmap scan

Υπάρχουν διαφορετικοί τύποι scan οι οποίοι μπορούν να πραγματοποιηθούν χρησιμοποιώντας το Νmap. Μερικοί από αυτούς είναι:

  • TCP Scan: Χρησιμοποιείται για να ελέγξει και να ολοκληρώσει το three way handshake μεταξύ του θύτη και του υπολογιστή-στόχου. Ένας τέτοιος τύπος scan μπορεί πολύ εύκολα να ανιχνευθεί γιατί το συγκεκριμένο service καταγράφεται και μπορεί να ενεργοποιήσει το σύστημα ανίχνευσης εισβολών (Intrusion Detection System).
  • UDP Scan: Χρησιμοποιείται για να ελέγξει αν υπάρχει κάποια προσβάσιμη UDP πόρτα που περιμένει εισερχόμενες συνδέσεις στον υπολογιστή στόχο. Σε αντίθεση με το TCP, το UDP δεν έχει κάποιον μηχανισμό για να απαντήσει και να επιβεβαιώσει τη λήψη του πακέτου, και για αυτό το λόγο στα συγκεκριμένα scans συναντάμε περιπτώσεις false positive. Είναι αρκετά πιο αργά σε σχέση με τα TCP γιατί τα μηχανήματα τείνουν να καθυστερούν τις απαντήσεις τους σε τέτοια κίνηση σαν προληπτικό μέτρο ασφαλείας.
  • SYN Scan: Σε αντίθεση με το κανονικό TCP scan, το Νmap δημιουργεί και στέλνει το δικό του SYN πακέτο, δηλαδή το πρώτο πακέτο που στέλνεται με σκοπό την εγκαθίδρυση μιας σύνδεσης TCP. Αυτό που είναι σημαντικό να εξηγήσουμε εδώ είναι ότι η σύνδεση δεν ολοκληρώνεται ποτέ, αλλά οι απαντήσεις του υπολογιστή-στόχου αναλύονται από το Νmap.
  • ACK Scan: Τα ACK scans χρησιμοποιούνται από το Νmap για να “καταλάβει” αν μια πόρτα είναι open, closed ή filtered. Αυτό είναι αρκετά χρήσιμο, στις περιπτώσεις όπου ο θύτης προσπαθεί να εξακριβώσει τη παρουσία firewall αλλά και των κανόνων που σχετίζονται με αυτό.
  • FIN Scan: Λειτουργεί όπως το SYN scan, με τη διαφορά ότι στέλνει πακέτα TCP FIN. Οι περισσότεροι υπολογιστές απαντούν με RST πακέτο όταν λαμβάνουν FIN. Με αυτό το τρόπο, ο θύτης μπορεί να προσπεράσει αρκετά firewalls άλλα μπορεί να γίνει αντιληπτός από το IDS.
  • NULL Scan: Στη συγκεκριμένη περίπτωση τα πακέτα που στέλνονται περιέχουν null headers, άρα δεν αποτελούν valid πακέτα.
  • XMAS Scan: Το συγκεκριμένο scan ονομάζεται έτσι γιατί τα flags όλων των πακέτων είναι ενεργοποιημένα και πιο συγκεκριμένα τα flags PSH, URG και FIN.
  • RPC Scan: Χρησιμοποιείται για την ανίχνευση μηχανημάτων που απαντούν σε Remote Procedure Call (RPC) υπηρεσίες. Οι υπηρεσίες αυτές επιτρέπουν την απομακρυσμένη εκτέλεση εντολών σε κάποιο μηχάνημα.

Πως να το χρησιμοποιήσετε

Για να δείτε όλες τις διαθέσιμες εντολές του εργαλείου, σε ένα terminal πληκτρολογήστε Nmap:

root@kali:~# Nmap
Nmap 7.80 ( https://Nmap.org )
Usage: Nmap [Scan Type(s)] [Options] {target specification}
TARGET SPECIFICATION:
  Can pass hostnames, IP addresses, networks, etc.
  Ex: scanme.Nmap.org, microsoft.com/24, 192.168.0.1; 10.0.0-255.1-254
  -iL <inputfilename>: Input from list of hosts/networks
  -iR <num hosts>: Choose random targets
  --exclude <host1[,host2][,host3],...>: Exclude hosts/networks
  --excludefile <exclude_file>: Exclude list from file
HOST DISCOVERY:
  -sL: List Scan - simply list targets to scan
  -sn: Ping Scan - disable port scan
  -Pn: Treat all hosts as online -- skip host discovery
  -PS/PA/PU/PY[portlist]: TCP SYN/ACK, UDP or SCTP discovery to given ports
  -PE/PP/PM: ICMP echo, timestamp, and netmask request discovery probes
  -PO[protocol list]: IP Protocol Ping
  -n/-R: Never do DNS resolution/Always resolve [default: sometimes]

  --dns-servers <serv1[,serv2],...>: Specify custom DNS servers
  --system-dns: Use OS's DNS resolver
  --traceroute: Trace hop path to each host
SCAN TECHNIQUES:
  -sS/sT/sA/sW/sM: TCP SYN/Connect()/ACK/Window/Maimon scans
  -sU: UDP Scan
  -sN/sF/sX: TCP Null, FIN, and Xmas scans
  --scanflags <flags>: Customize TCP scan flags
  -sI <zombie host[:probeport]>: Idle scan
  -sY/sZ: SCTP INIT/COOKIE-ECHO scans
  -sO: IP protocol scan
  -b <FTP relay host>: FTP bounce scan
PORT SPECIFICATION AND SCAN ORDER:
  -p <port ranges>: Only scan specified ports
    Ex: -p22; -p1-65535; -p U:53,111,137,T:21-25,80,139,8080,S:9
  --exclude-ports <port ranges>: Exclude the specified ports from scanning
  -F: Fast mode - Scan fewer ports than the default scan
  -r: Scan ports consecutively - don't randomize
  --top-ports <number>: Scan <number> most common ports
  --port-ratio <ratio>: Scan ports more common than <ratio>
SERVICE/VERSION DETECTION:
  -sV: Probe open ports to determine service/version info
  --version-intensity <level>: Set from 0 (light) to 9 (try all probes)
  --version-light: Limit to most likely probes (intensity 2)
  --version-all: Try every single probe (intensity 9)
  --version-trace: Show detailed version scan activity (for debugging)
SCRIPT SCAN:
  -sC: equivalent to --script=default
  --script=<Lua scripts>: <Lua scripts> is a comma separated list of
           directories, script-files or script-categories
  --script-args=<n1=v1,[n2=v2,...]>: provide arguments to scripts
  --script-args-file=filename: provide NSE script args in a file
  --script-trace: Show all data sent and received
  --script-updatedb: Update the script database.
  --script-help=<Lua scripts>: Show help about scripts.
           <Lua scripts> is a comma-separated list of script-files or
           script-categories.
OS DETECTION:
  -O: Enable OS detection
  --osscan-limit: Limit OS detection to promising targets
  --osscan-guess: Guess OS more aggressively
TIMING AND PERFORMANCE:
  Options which take <time> are in seconds, or append 'ms' (milliseconds),
  's' (seconds), 'm' (minutes), or 'h' (hours) to the value (e.g. 30m).


-T<0-5>: Set timing template (higher is faster)
  --min-hostgroup/max-hostgroup <size>: Parallel host scan group sizes
  --min-parallelism/max-parallelism <numprobes>: Probe parallelization
  --min-rtt-timeout/max-rtt-timeout/initial-rtt-timeout <time>: Specifies
      probe round trip time.
  --max-retries <tries>: Caps number of port scan probe retransmissions.
  --host-timeout <time>: Give up on target after this long
  --scan-delay/--max-scan-delay <time>: Adjust delay between probes
  --min-rate <number>: Send packets no slower than <number> per second
  --max-rate <number>: Send packets no faster than <number> per second
FIREWALL/IDS EVASION AND SPOOFING:
  -f; --mtu <val>: fragment packets (optionally w/given MTU)
  -D <decoy1,decoy2[,ME],...>: Cloak a scan with decoys
  -S <IP_Address>: Spoof source address
  -e <iface>: Use specified interface
  -g/--source-port <portnum>: Use given port number
  --proxies <url1,[url2],...>: Relay connections through HTTP/SOCKS4 proxies
  --data <hex string>: Append a custom payload to sent packets
  --data-string <string>: Append a custom ASCII string to sent packets
  --data-length <num>: Append random data to sent packets
  --ip-options <options>: Send packets with specified ip options
  --ttl <val>: Set IP time-to-live field
  --spoof-mac <mac address/prefix/vendor name>: Spoof your MAC address
  --badsum: Send packets with a bogus TCP/UDP/SCTP checksum
OUTPUT:
  -oN/-oX/-oS/-oG <file>: Output scan in normal, XML, s|<rIpt kIddi3,
     and Grepable format, respectively, to the given filename.
  -oA <basename>: Output in the three major formats at once
  -v: Increase verbosity level (use -vv or more for greater effect)
  -d: Increase debugging level (use -dd or more for greater effect)
  --reason: Display the reason a port is in a particular state
  --open: Only show open (or possibly open) ports
  --packet-trace: Show all packets sent and received
  --iflist: Print host interfaces and routes (for debugging)
  --append-output: Append to rather than clobber specified output files
  --resume <filename>: Resume an aborted scan
  --stylesheet <path/URL>: XSL stylesheet to transform XML output to HTML
  --webxml: Reference stylesheet from Nmap.Org for more portable XML
  --no-stylesheet: Prevent associating of XSL stylesheet w/XML output
MISC:
  -6: Enable IPv6 scanning
  -A: Enable OS detection, version detection, script scanning, and traceroute


--datadir <dirname>: Specify custom Nmap data file location
  --send-eth/--send-ip: Send using raw ethernet frames or IP packets
  --privileged: Assume that the user is fully privileged
  --unprivileged: Assume the user lacks raw socket privileges
  -V: Print version number
  -h: Print this help summary page.
EXAMPLES:
  Nmap -v -A scanme.Nmap.org
  Nmap -v -sn 192.168.0.0/16 10.0.0.0/8
  Nmap -v -iR 10000 -Pn -p 80
SEE THE MAN PAGE (https://Nmap.org/book/man.html) FOR MORE OPTIONS AND EXAMPLES


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

Τεχνικές Scanning

Παράμετρος Περιγραφή Παράδειγμα
-sS TCP SYN port scan Nmap -sS 192.168.100.100
-sT TCP connect port scan Nmap -sT 192.168.100.100
-sU UDP port scan Nmap -sU 192.168.100.100
-sA TCP ack port scan Nmap -sA 192.168.100.100

Ανίχνευση Host

Παράμετρος Περιγραφή Παράδειγμα
-Pn Μόνο port scan Nmap -Pn 192.168.100.100
-sn Μόνο ανίχνευση host Nmap -sn 192.168.100.100
-PR Ανίχνευση ARP σε τοπικό δίκτυο Nmap -PR 192.168.100.100
-n Απενεργοποίηση διεργασίας DNS Nmap -n 192.168.100.100

Ανίχνευση πορτών

Παράμετρος Περιγραφή Παράδειγμα
-p Συγκεκριμένη πόρτα ή ευρος Nmap -p 192.168.100.100
-p- Ανίχνευση όλων των πορτών Nmap -p- 192.168.100.100
-F Γρήγορο scan Nmap -F 192.168.100.100

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

Παράμετρος Περιγραφή Παράδειγμα
-sV Ανίχνευση έκδοσης των ενεργών services Nmap -sV 192.168.100.100
-A Επιθετικό scan Nmap -A 192.168.100.100
-O Ανίχνευση λειτουργικού συστήματος Nmap -O 192.168.100.100

 Απόδοση

Η παράμετρος -T[0-5] καθορίζει τη ταχύτητα αλλά και την ανίχνευση του Νmap από πιθανή παρουσία IDS, ξεκινώντας από το Τ0 που είναι η πιο αργή επιλογή αλλά και η πιο stealth ταυτόχρονα και φτάνοντας μέχρι την επιλογή Τ5 που είναι η πιο γρήγορη και ανιχνεύσιμη αντίστοιχα.

Παράμετρος Παράδειγμα
-Τ0 Nmap -Τ0 192.168.100.100
-Τ1 Nmap -Τ1 192.168.100.100
-Τ2 Nmap -Τ2 192.168.100.100
-Τ3 Nmap -Τ3 192.168.100.100
-Τ4 Nmap -Τ4 192.168.100.100
-Τ5 Nmap -Τ5 192.168.100.100

 

 

Περιμένουμε τα σχόλιά σας για το εργαλείο Nmap. Πώς σας φάνηκε;

Stormi
Stormi
Here’s to the crazy ones, the misfits, the rebels, the troublemakers...

Εγγραφή στο Newsletter

* indicates required

FOLLOW US

LIVE NEWS