Νmap: Βρείτε "τρύπες" στην ασφάλεια του υπολογιστή ή του server

dimitris | Δευ, 08/26/2013 - 11:00 | 6' | 6

Το nmap είναι ένα πασίγνωστο εργαλείο του Linux στο οποίο θα στραφείτε αν θελήσετε να ελέγξετε την ασφάλεια του συστήματος σας είτε είναι ένας server είτε το laptop σας.

Το nmap χρησιμοποιείται από linux administrators αλλά και κακόβουλους "χάκερς".  Δουλειά του είναι να χαρτογραφεί (map) υπολογιστές και δίκτυα.

Πως δουλεύει; Του δίνετε μια διεύθυνση ενός υπολογιστή και το nmap ξεκινάει να "σαρώνει" τον υπολογιστή εκείνον για ανοικτές "πόρτες" (ports). Αν δεν έχετε ιδέα τι είναι τα ports, απλά δεχτείτε ότι κάθε φορά που γράφετε www.linuxinsider.gr ουσιαστικά ο υπολογιστής σας μιλάει με τον server μας μέσω του port 80. Αντίστοιχα, το port 21 χρησιμοποιείται συνήθως για το FTP, και η πόρτα 25 για mail servers. 

Επιπρόσθετα, το nmap αναλύοντας δικτυακά πακέτα μπορεί να προσδιορίζει τις ενεργές υπηρεσίες του συστήματός σας όπως επίσης και το ίδιο το λειτουργικό.

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

Για παράδειγμα, η εντολή

# nmap -v -O localhost

θα ανιχνεύσει το localhost (το μηχάνημά σας δηλαδή) και θα σας τυπώσει μια λίστα με τις ανοικτές πόρτες. Παράλληλα θα σας πει το λειτουργικό που τρέχει το μηχάνημα αυτό (-O).  Ο διακόπτης -v λέει στο nmap να τυπώνει όσες περισσότερες πληροφορίες μπορεί . To # στην αρχή σημαίνει ότι εκτελείτε την εντολή ως root...

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

Μερικές εντολές nmap:

Για να δείτε αν είναι online ένας server με ping scanning:

# nmap -sP www.linuxinsider.gr

Το ίδιο αλλά στέλνοντας σκουπίδια (FIN,URG,PUSH):

# nmap -sX www.linuxinsider.gr

Για να δείτε τις ανοικτές πόρτες ενός server (χωρίς να τεστάρετε αν είναι online) με ping scan:

# nmap -Pn www.linuxinsider.gr

Το ίδιο αλλά με TCP connect scan (όχι και τόσο stealth...):

# nmap -sT www.linuxinsider.gr

Για να σκανάρετε τις ανοικτές πόρτες ενός μηχανήματος και το OS του με stealth TCP SYN/ACK:

# nmap -sS -O www.linuxinsider.gr

Για να σαρώσετε τις ανοικτές πόρτες ενός server με OS και service detection, αλλά και traceroute scanning - προσοχή αυτό είναι αργό:

# nmap -A www.linuxinsider.gr

To ίδιο αλλά πιο γρήγορα:

# nmap -A -Τ4 www.linuxinsider.gr

Για να σκανάρετε τις ανοικτές πόρτες με stealth TCP SYN/ACK αλλά και UDP scan καθώς και να βρείτε ποιες εκδόσεις τρέχει:

nmap -sSU -A www.linuxinsider.gr

Για να τσεκάρετε ένα συγκεκριμένο εύρος ports, π.χ. τις 100 πρώτες:

nmap -p 1-100 192.168.1.1

Για ταχύτητα, αλλά και γιατί το 1-100 δεν περιέχει όλες τις ενδιαφέρουσες πόρτες, υπάρχει η παράμετρος -F (FAST) η οποία βάζει το nmap να ελέγξει τις 100 πιο συνηθισμένες πόρτες:

nmap -F 185.90.57.175

Θα σας δώσει κάτι σαν κι αυτό:

Starting Nmap 6.47 ( http://nmap.org ) at 2018-10-23 19:10 CEST
Nmap scan report for 185.90.57.175
Host is up (0.048s latency).
Not shown: 91 closed ports
PORT     STATE    SERVICE
53/tcp   open     domain
80/tcp   open     http
81/tcp   open     hosts2-ns
443/tcp  open     https
445/tcp  filtered microsoft-ds
1723/tcp open     pptp
8080/tcp open     http-proxy
8081/tcp open     blackice-icecap
8443/tcp open     https-alt

Τέλος για να σαρώσετε όλο το τοπικό δίκτυο σας (192.168.1.Χ) και να δείτε ποιοι hosts/servers/PCs/routers είναι ενεργοί, δίνετε:

nmap -sP 192.168.1.1/24

Σε όλα τα παραπάνω, αν προσθέσετε την παράμετρο -v, το nmap θα σας λέει περισσότερα για το τι κάνει. Αυτό ειναι καλό για να μην περιμένετε για ώρα χωρίς να βλέπετε τιποτε στην οθόνη...

Δείτε εδώ έναν παλιότερο αλλά ωραίο οδηγό για τις λειτουργίες του nmap

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

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

Σχόλια

Ωραίο tutorial. Το nmap είναι ένα πολύ χρήσιμο εργαλείο. Αυτό που δεν ξέρω είναι αν όντως λειτουργεί το stealth scan και αν έχει ακρίβεια στα αποτελέσματα του.

Οτι λειτουργεί και με ακρίβεια, ναι. Τώρα το κατά πόσον είναι stealth...διάβασε το άλλο tutorial που αναφέρω στο τέλος για να δεις πως δουλεύει  - Ο wiludrake είχε κάνει καλή δουλειά στο να το εξηγήσει.

Βασικά στo default non stealth port scan, το nmap επιχειρεί "three way handshake": δηλαδή στέλνει πακέτο SYN, o server απαντά SYN/ACK, του στέλνει ACK.

Αντίθετα με την παράμετρο -sS, το nmap κάνει το μισό handshake:
στέλνει πακέτο SYN, o server απαντά με SYN/ACK αλλά το nmap τερματίζει την επικοινωνία εκεί.

Η διαφορά είναι ότι στην πρώτη περίπτωση, το handshake καταγράφεται στα logs του server (άρα είναι non-stealth) ενώ στη δεύτερη συνήθως δεν καταγράφεται τίποτε (γι'αυτό λέγεται stealth).

Σε κάποια παλιά πειράματα που έκανα είχα εντοπίσει δικό μου stealth scan είτε με κάποιο IDS είτε με κάποιο sniffer αλλά δεν θυμάμαι και πολλά πράγματα. Κάποιες φορές δεν έδινε σωστά αποτελέσματα ή πλήρη ο διακόπτης - sS αλλά και πάλι δεν θυμάμαι λεπτομέρειες :)

Πιθανώς το πρόγραμμα που χρησιμοποιούσες να έλεγχε και για half hand-shakes. Δεν το γνωρίζω ακριβώς :)
 

Μπορώ με κάποιον τρόπο να μπλοκάρω το nmap ώστε να μην μπορεί κάποιος να το χρησιμοποιήσει κακόβουλα? Κάτι τέτοιο θα μπορούσε να γίνει απο έναν ρουτερ της Cisco χρησιμοποιώντας μια ACL? Αν μπλοκάρω το ICMP και με ένα firewall θα μπορούσα να ασφαλήσω το δικτυό μου?

Καλημέρα,

 

Όχι δεν μπορεις να μπλοκάρεις το nmap. Το icmp μπορεις να το κόψεις αλλά υπάρχουν και άλλη τρόποι να δεις αν ο server έχει firewall, και ποιές πόρτες είναι ανοιχτές με άλλα εργαλεία. ΠΧ με το hping μπορεις να στείλεις ενα timestamp request, για να δεις αν ο server/port είναι online ή όχι