Το Nmap (Network Mapper) είναι το θεμελιώδες εργαλείο κάθε ασκούμενου στην ηθική άσκηση διείσδυσης (ethical hacking): μας δείχνει ποια συστήματα είναι ζωντανά σε ένα δίκτυο και ποιες υπηρεσίες τρέχουν σε αυτά. Σε αυτό το εισαγωγικό εργαστήριο μαθαίνουμε βήμα-βήμα την ανακάλυψη hosts και ports μέσα σε ένα απομονωμένο lab, πάντα με έμφαση στην κατανόηση της επιφάνειας επίθεσης και στην άμυνα.

1. Γιατί έχει σημασία η ανακάλυψη

Πριν αξιολογήσεις την ασφάλεια ενός συστήματος, πρέπει πρώτα να ξέρεις τι υπάρχει εκεί έξω. Αυτή η φάση ονομάζεται ανακάλυψη (discovery) ή απαρίθμηση (enumeration) και είναι το πρώτο πραγματικό βήμα σε κάθε εξουσιοδοτημένο penetration test. Ένας οργανισμός συχνά δεν γνωρίζει το πλήρες εύρος των συστημάτων του: ξεχασμένοι servers, δοκιμαστικά μηχανήματα ή υπηρεσίες που «σηκώθηκαν προσωρινά» και έμειναν εκτεθειμένες.

Το Nmap απαντά σε δύο βασικές ερωτήσεις: ποια μηχανήματα είναι ζωντανά (host discovery) και ποιες θύρες/υπηρεσίες ακούν σε αυτά (port scanning). Η ίδια γνώση που χρησιμοποιεί ο ελεγκτής για να εντοπίσει αδυναμίες, χρησιμεύει και στην ομάδα άμυνας (blue team) για να χαρτογραφήσει και να μειώσει την επιφάνεια επίθεσης (attack surface).

Το εργαλείο κυκλοφορεί δωρεάν και ανοιχτού κώδικα από το 1997 και παραμένει το de facto πρότυπο για δικτυακή ανακάλυψη — γι’ αυτό και το συναντάς σχεδόν σε κάθε αναφορά penetration testing, σε πλαίσια όπως το PTES (Penetration Testing Execution Standard) και σε ελέγχους συμμόρφωσης. Ως αρχάριος, το να νιώθεις άνετα με τις βασικές του σαρώσεις είναι ίσως η πιο αποδοτική δεξιότητα που μπορείς να χτίσεις πρώτη: σχεδόν κάθε επόμενο βήμα σε μια αξιολόγηση ξεκινά από τα δεδομένα που σου δίνει το Nmap.

2. Βασικές έννοιες

Πριν τρέξουμε την πρώτη εντολή, ας ξεκαθαρίσουμε το λεξιλόγιο:

  • Host: ένα μηχάνημα στο δίκτυο με μια διεύθυνση IP (π.χ. 10.10.10.20).
  • Port (θύρα): ένα αριθμημένο σημείο εισόδου (0–65535) όπου ακούει μια υπηρεσία. Π.χ. το 22 για SSH, το 80 για HTTP, το 3306 για MySQL.
  • State (κατάσταση θύρας): open (κάποια υπηρεσία δέχεται συνδέσεις), closed (κανείς δεν ακούει), filtered (ένα firewall μπλοκάρει και δεν μπορούμε να αποφανθούμε).
  • TCP SYN scan: η προεπιλεγμένη, «μισο-ανοιχτή» τεχνική σάρωσης (-sS) που στέλνει ένα πακέτο SYN και συμπεραίνει την κατάσταση χωρίς να ολοκληρώσει πλήρη σύνδεση.
  • NSE (Nmap Scripting Engine): μηχανή σεναρίων που επεκτείνει το Nmap με ελέγχους έκδοσης, banner και γνωστών αδυναμιών.

Χρήσιμες σημαίες (flags) που θα δούμε

  • -sn: μόνο host discovery (ping sweep), χωρίς σάρωση θυρών.
  • -sS: TCP SYN scan (απαιτεί δικαιώματα root/sudo).
  • -sV: ανίχνευση έκδοσης υπηρεσίας (service/version detection).
  • -p-: σάρωση και των 65.535 TCP θυρών, όχι μόνο των συνηθισμένων.
  • -A: «aggressive» — συνδυάζει έκδοση, OS detection, traceroute και default NSE scripts.

3. Πρακτικό κομμάτι στο lab

Όλα τα παρακάτω εκτελούνται μέσα στο απομονωμένο εργαστήριό μας, στο υποδίκτυο 10.10.10.0/24. Στόχος μας είναι ένας δοκιμαστικός web server, το web01 στη διεύθυνση 10.10.10.20.

Βήμα 1 — Ποιοι hosts είναι ζωντανοί;

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

kali@lab:~/eh-lab$ nmap -sn 10.10.10.0/24
Έξοδος nmap -sn που εντοπίζει τέσσερις ζωντανούς hosts στο υποδίκτυο 10.10.10.0/24 του lab
Έξοδος nmap -sn που εντοπίζει τέσσερις ζωντανούς hosts στο υποδίκτυο 10.10.10.0/24 του lab

Το Nmap εντόπισε τέσσερα ζωντανά μηχανήματα, ανάμεσά τους τον στόχο μας στο 10.10.10.20. Σε αυτό το σημείο ξέρουμε πού να κοιτάξουμε — αλλά όχι ακόμα τι τρέχει.

Βήμα 2 — Ποιες υπηρεσίες τρέχουν;

Τώρα στοχεύουμε το web01 με SYN scan (-sS) και ανίχνευση έκδοσης (-sV). Το -sV είναι κρίσιμο: δεν μας λέει μόνο ότι η θύρα 80 είναι ανοιχτή, αλλά και ποια ακριβώς έκδοση λογισμικού ακούει εκεί — πολύτιμη πληροφορία τόσο για αξιολόγηση όσο και για patch management.

kali@lab:~/eh-lab$ sudo nmap -sS -sV 10.10.10.20
Έξοδος nmap -sS -sV που δείχνει ανοιχτές θύρες SSH, HTTP και MySQL με τις εκδόσεις τους στον host 10.10.10.20
Έξοδος nmap -sS -sV που δείχνει ανοιχτές θύρες SSH, HTTP και MySQL με τις εκδόσεις τους στον host 10.10.10.20

Βλέπουμε τρεις ανοιχτές θύρες με τις εκδόσεις τους: OpenSSH στην 22, Apache στην 80 και MySQL στην 3306. Παρατήρησε ότι η MySQL είναι εκτεθειμένη στο δίκτυο — ένα εύρημα που η ομάδα άμυνας θα ήθελε να δει, καθώς οι βάσεις δεδομένων ιδανικά δεν πρέπει να ακούν σε δημόσια interface.

Βήμα 3 — Μην ξεχνάς τις «κρυμμένες» θύρες

Η προεπιλογή του Nmap σαρώνει μόνο τις 1.000 πιο κοινές θύρες. Οι επιτιθέμενοι όμως συχνά κρύβουν υπηρεσίες σε ασυνήθιστες θύρες. Με το -p- σαρώνουμε και τις 65.535. Το --min-rate επιταχύνει τη σάρωση στο ελεγχόμενο περιβάλλον του lab.

kali@lab:~/eh-lab$ sudo nmap -p- --min-rate 2000 10.10.10.20
Έξοδος nmap -p- που αποκαλύπτει δύο επιπλέον θύρες, 8080 και 45123, πέρα από τις συνηθισμένες
Έξοδος nmap -p- που αποκαλύπτει δύο επιπλέον θύρες, 8080 και 45123, πέρα από τις συνηθισμένες

Η πλήρης σάρωση αποκάλυψε δύο επιπλέον θύρες που η γρήγορη σάρωση είχε χάσει: ένα http-proxy στην 8080 και μια άγνωστη υπηρεσία στην 45123. Αυτό δείχνει γιατί το -p- αξίζει τον επιπλέον χρόνο.

Βήμα 4 — Βαθύτερη ματιά με NSE

Τέλος, εστιάζουμε στις web θύρες και ενεργοποιούμε το «aggressive» προφίλ (-A) μαζί με τα default NSE scripts. Αυτά τα σενάρια τραβούν τίτλους σελίδων, HTTP methods, περιεχόμενο robots.txt και άλλες ενδείξεις για το τι φιλοξενεί ο server.

kali@lab:~/eh-lab$ sudo nmap -A -p 80,8080 --script=default 10.10.10.20
Έξοδος nmap -A με default NSE scripts που αποκαλύπτει τίτλους σελίδων, HTTP methods και disallowed entries στο robots.txt
Έξοδος nmap -A με default NSE scripts που αποκαλύπτει τίτλους σελίδων, HTTP methods και disallowed entries στο robots.txt

Τα scripts αποκάλυψαν έναν πίνακα διαχείρισης (Dashboard) στην 8080 και δύο «απαγορευμένες» διαδρομές στο robots.txt (/admin/, /backup/). Ειρωνικά, το ίδιο το robots.txt που θέλει να κρύψει διαδρομές τις αποκαλύπτει σε όποιον κοιτάξει — ένα κλασικό μάθημα για το ότι η «απόκρυψη» δεν είναι ασφάλεια.

Πώς διαβάζουμε τα ευρήματα

Η αξία μιας σάρωσης δεν είναι η λίστα θυρών, αλλά η ερμηνεία της. Για κάθε ανοιχτή θύρα κάνε τρεις ερωτήσεις: Πρέπει αυτή η υπηρεσία να είναι εκτεθειμένη εδώ; Είναι η έκδοση ενημερωμένη ή γνωστά ευάλωτη; Ταιριάζει με το αναμενόμενο προφίλ του συστήματος; Στο lab μας, η MySQL στην 3306 και ο κρυμμένος admin panel στην 8080 είναι ακριβώς τα σημεία που θα προτεραιοποιούσε ένας ελεγκτής — και ακριβώς αυτά που η ομάδα άμυνας θα ήθελε να περιορίσει πίσω από firewall ή VPN. Καλή πρακτική είναι να αποθηκεύεις πάντα την έξοδο (π.χ. -oA scan_web01) ώστε τα ευρήματα να είναι επαναλήψιμα και τεκμηριωμένα στην τελική αναφορά.

4. Το εργαστηριακό περιβάλλον

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

  • Επιτιθέμενος: μια εικονική μηχανή Kali Linux (10.10.10.5) με προεγκατεστημένο το Nmap.
  • Στόχοι: ευάλωτες-εκπαιδευτικές VMs όπως Metasploitable ή OWASP Broken Web Apps στο ίδιο υποδίκτυο.
  • Δικτύωση: όλες οι VMs σε Host-Only ή Internal Network adapter στο VirtualBox/VMware — ποτέ σε bridged mode που θα εξέθετε σαρώσεις στο πραγματικό LAN.

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

5. Ηθικό & νομικό πλαίσιο

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

  • Εξουσιοδότηση πρώτα: πάντα με scope και γραπτή άδεια (rules of engagement) πριν σαρώσεις οτιδήποτε εκτός του lab σου.
  • Μόνο εντός scope: σάρωσε αποκλειστικά τις διευθύνσεις που ορίζει η σύμβαση — ούτε μία IP παραπάνω.
  • Οπτική άμυνας: κάθε σάρωση αφήνει ίχνη. Οι ίδιες τεχνικές που μαθαίνεις εδώ βοηθούν την blue team να ανιχνεύσει ανεπιθύμητο scanning μέσω IDS/IPS (π.χ. Suricata, Zeek) και να θωρακίσει την επιφάνεια επίθεσης.

Ο στόχος του ethical hacking δεν είναι η επίθεση, αλλά η κατανόηση και η θωράκιση. Το Nmap είναι ένα ουδέτερο εργαλείο — η δεοντολογία είναι δική σου ευθύνη.

6. Βασικά συμπεράσματα

  • Η ανακάλυψη είναι το θεμέλιο κάθε αξιολόγησης: πρώτα ποιοι hosts ζουν, μετά ποιες υπηρεσίες τρέχουν.
  • Το -sn κάνει γρήγορο host discovery· το -sS -sV αποκαλύπτει ανοιχτές θύρες και εκδόσεις υπηρεσιών.
  • Χρησιμοποίησε -p- για να μη χάσεις υπηρεσίες κρυμμένες σε ασυνήθιστες θύρες.
  • Το -A με τα default NSE scripts δίνει πλούσιο context (τίτλους, methods, robots.txt) με μία εντολή.
  • Δούλεψε μόνο σε απομονωμένο lab ή με γραπτή εξουσιοδότηση — η νομιμότητα και η δεοντολογία προηγούνται πάντα.
  • Η ίδια γνώση τροφοδοτεί την άμυνα: μειωμένη επιφάνεια επίθεσης, ανίχνευση scanning και σωστό patch management.

Από τη θεωρία στην πράξη. Η Audax Cybersecurity προσφέρει επαγγελματικές υπηρεσίες offensive security — penetration testing & offensive validation — ενώ για όσους ξεκινούν το ταξίδι τους στο ethical hacking, το #1 ελληνικό βιβλίο «Ethical Hacking — Η Κρυφή Γνώση» είναι ο ιδανικός οδηγός.

Erevos AI · Managed CTEM

Θέλετε συνεχή επικύρωση της ασφάλειάς σας — όχι έλεγχο μία φορά τον χρόνο;

Το Erevos AI είναι η ετήσια, managed υπηρεσία CTEM της Audax — ενοποιεί exposure mapping, penetration testing, adversary emulation, detection validation & remediation σε έναν συνεχή, αποδεικτικό κύκλο. Human-led. Machine-scaled. Technically proven. Ευθυγραμμισμένο με NIS2 & DORA.

Ανακαλύψτε το Erevos AI →
Offensive Security · Penetration Testing

Χρειάζεστε Penetration Testing για τον οργανισμό σας;

Περιγράψτε το scope του ελέγχου μέσα από το δομημένο ερωτηματολόγιο και λάβετε εξατομικευμένη τεχνική & οικονομική προσφορά από την ομάδα Offensive Security της Audax. Χωρίς αυτόματη τιμή ή δέσμευση — η προσφορά αποστέλλεται μετά από τεχνική αξιολόγηση του scope.

Ζητήστε προσφορά Penetration Testing →