Πριν στηριχτείς σε μεγάλα, πολύπλοκα εργαλεία, αξίζει να μάθεις τα τρία «ελβετικά σουγιαδάκια» της γραμμής εντολών: το netcat για ωμές συνδέσεις TCP/UDP, το curl για HTTP και το whois για πληροφορίες καταχώρησης domain. Σε αυτόν τον οδηγό για αρχάριους τα δοκιμάζουμε ζωντανά μέσα σε ένα απομονωμένο εργαστήριο (isolated lab) — και δείχνουμε γιατί η ίδια γνώση θεμελιώνει τόσο την επίθεση όσο και την ανίχνευση και άμυνα.

1. Εισαγωγή: γιατί μετράνε τα «μικρά» εργαλεία

Οι αρχάριοι συχνά τρέχουν να μάθουν βαριά frameworks και ξεχνούν ότι το 80% της καθημερινής δουλειάς στην ασφάλεια γίνεται με τρία-τέσσερα μικροσκοπικά εργαλεία της γραμμής εντολών (command line). Το netcat (nc), το curl και το whois είναι ακριβώς αυτά: μικρά, γρήγορα, παρόντα σχεδόν σε κάθε σύστημα και εξαιρετικά διαφωτιστικά για το πώς λειτουργεί ένα δίκτυο «από κάτω».

Γιατί έχει σημασία για έναν ελεγκτή ασφάλειας (security tester); Επειδή αυτά τα εργαλεία σου δείχνουν το ωμό πρωτόκολλο — τι πραγματικά ταξιδεύει στο καλώδιο — χωρίς τα «φίλτρα» ενός browser ή μιας γραφικής εφαρμογής. Και για έναν αμυνόμενο (blue team); Επειδή οι ίδιες εντολές που κάνει ένας επιτιθέμενος για αναγνώριση (reconnaissance) αφήνουν συγκεκριμένα ίχνη στα logs — αν ξέρεις πώς φαίνονται, τα εντοπίζεις.

Θα δουλέψουμε αποκλειστικά μέσα σε ένα απομονωμένο εργαστήριο, με ουδέτερες διευθύνσεις IP (10.10.10.x). Στόχος δεν είναι να «σπάσουμε» κάτι, αλλά να διαβάσουμε το δίκτυο.

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

2.1 netcat — η ωμή σύνδεση TCP/UDP

Το netcat (εντολή nc) περιγράφεται συχνά ως το «ελβετικό σουγιαδάκι» της δικτύωσης. Στην ουσία κάνει ένα πράγμα εξαιρετικά καλά: ανοίγει μια σύνδεση TCP ή UDP και συνδέει την είσοδο/έξοδό της με το τερματικό σου. Δύο βασικοί ρόλοι:

  • Listener (server): nc -lvnp 4444 — «ακούει» σε ένα port και περιμένει να συνδεθεί κάποιος. Τα flags: -l listen, -v verbose (αναλυτικό), -n χωρίς DNS resolve, -p ορίζει το port.
  • Client (connect): nc -nv 10.10.10.20 22 — συνδέεται σε μια IP και ένα port. Αν η πόρτα είναι ανοιχτή, δημιουργείται κανάλι επικοινωνίας.

Επειδή το netcat μιλάει «ωμό» TCP, μπορεί να χρησιμοποιηθεί για έλεγχο αν ένα port είναι ανοιχτό, για μεταφορά αρχείων, για ένα απλό chat μεταξύ δύο μηχανών ή — το πιο διδακτικό για αρχάριους — για banner grabbing: να δεις τι «αυτοσυστήνεται» μια υπηρεσία μόλις συνδεθείς.

2.2 curl — ο πελάτης του Web από τη γραμμή εντολών

Το curl είναι ένας HTTP client χωρίς γραφικό περιβάλλον. Ό,τι κάνει ένας browser όταν ζητά μια σελίδα, το κάνει και το curl — αλλά σου δείχνει ακριβώς τι στέλνει και τι λαμβάνει. Με το flag -v (verbose) βλέπεις ολόκληρη τη συνομιλία: τη γραμμή αιτήματος (request line), τις κεφαλίδες αιτήματος (request headers), τον κωδικό απόκρισης (status code, π.χ. 200 OK) και τις κεφαλίδες απόκρισης (response headers).

Για έναν ελεγκτή, οι response headers είναι χρυσός: αποκαλύπτουν τον server (Server:), τεχνολογίες (X-Powered-By:) και το αν λείπουν σημαντικές κεφαλίδες ασφάλειας. Για έναν defender, το ίδιο εργαλείο επιβεβαιώνει ότι ο server δεν διαρρέει περιττές πληροφορίες.

2.3 whois — ποιος κατέχει ένα domain

Το whois ρωτά τις δημόσιες βάσεις των μητρώων (registries) για το ποιος έχει καταχωρήσει ένα domain ή σε ποιον ανήκει ένα εύρος IP. Επιστρέφει στοιχεία όπως ο καταχωρητής (registrar), οι ημερομηνίες δημιουργίας/λήξης, οι name servers και — όπου δεν είναι κρυμμένα λόγω GDPR — στοιχεία επικοινωνίας. Είναι παθητική αναγνώριση (passive reconnaissance): ρωτάς μια δημόσια βάση, δεν αγγίζεις καθόλου τον στόχο.

3. Πρακτικό κομμάτι: τα τρία εργαλεία στο lab

3.1 Στήνοντας έναν listener — nc -lvnp

Ξεκινάμε με το κλασικότερο σενάριο: ανοίγουμε ένα listener στο δικό μας μηχάνημα και βλέπουμε μια εισερχόμενη σύνδεση. Αυτό είναι το θεμέλιο του «reverse shell» concept, αλλά εδώ το χρησιμοποιούμε απλώς για ένα ασφαλές chat μεταξύ δύο VM.

Έξοδος του nc -lvnp 4444 που ακούει στο port 4444 και δέχεται εισερχόμενη σύνδεση από το 10.10.10.5
Έξοδος του nc -lvnp 4444 που ακούει στο port 4444 και δέχεται εισερχόμενη σύνδεση από το 10.10.10.5

Το nc -lvnp 4444 «κρατάει» το port 4444 ανοιχτό. Μόλις το άλλο μηχάνημα (10.10.10.5) συνδεθεί, το verbose output μας δείχνει connect to ... from 10.10.10.5 και ό,τι πληκτρολογήσει η άλλη πλευρά εμφανίζεται εδώ. Ένας αμυνόμενος πρέπει να ρωτήσει: «γιατί ακούει κάτι στο 4444;» — ένα μη αναμενόμενο listening port είναι κλασικό σημάδι συμβιβασμού (compromise).

3.2 Έλεγχος port & banner grabbing — nc ως client

Τώρα το netcat ως client. Πρώτα ελέγχουμε αν ένα port είναι ανοιχτό, και μετά κάνουμε banner grabbing: συνδεόμαστε σε μια υπηρεσία και διαβάζουμε το «banner» που στέλνει, το οποίο συχνά αποκαλύπτει προϊόν και έκδοση.

netcat client που ελέγχει το port 22 και κάνει banner grabbing σε SSH και HTTP, αποκαλύπτοντας OpenSSH και Apache εκδόσεις
netcat client που ελέγχει το port 22 και κάνει banner grabbing σε SSH και HTTP, αποκαλύπτοντας OpenSSH και Apache εκδόσεις

Στο 10.10.10.20 βλέπουμε ότι το 22 απαντά με ένα banner SSH-2.0-OpenSSH_8.9 — μαθαίνουμε αμέσως ότι τρέχει OpenSSH και την έκδοσή του. Στη συνέχεια, στέλνοντας ένα χειροκίνητο αίτημα HEAD στο port 80, ο web server αυτοσυστήνεται ως Apache/2.4.52. Αυτή η πληροφορία έκδοσης είναι ακριβώς ό,τι θέλει ένας επιτιθέμενος για να ψάξει γνωστές ευπάθειες — και ακριβώς ό,τι θέλει να κρύψει ένας defender.

3.3 Ολόκληρη η συνομιλία HTTP — curl -v

Το banner grabbing «με το χέρι» είναι διδακτικό, αλλά για HTTP το curl είναι πολύ πιο καθαρό. Το -v μας δείχνει request και response μαζί.

Έξοδος curl -v προς http://10.10.10.20 που δείχνει το GET request, τις κεφαλίδες και την απόκριση 200 OK με Server Apache και λείπουσες security headers
Έξοδος curl -v προς http://10.10.10.20 που δείχνει το GET request, τις κεφαλίδες και την απόκριση 200 OK με Server Apache και λείπουσες security headers

Οι γραμμές με > είναι ό,τι στέλνουμε εμείς (request), οι γραμμές με < ό,τι λαμβάνουμε (response). Βλέπουμε HTTP/1.1 200 OK, τον Server: Apache/2.4.52 και το X-Powered-By: PHP/8.1.2. Παρατήρησε τι λείπει: δεν υπάρχει Content-Security-Policy ούτε Strict-Transport-Security. Για έναν defender, αυτό είναι μια άμεση λίστα βελτιώσεων θωράκισης (hardening).

3.4 Ποιος κατέχει το domain — whois

Τέλος, μια εντελώς παθητική κίνηση: ρωτάμε το whois για ένα domain. (Στο lab χρησιμοποιούμε ένα ουδέτερο παράδειγμα· η έξοδος είναι «καθαρισμένη» με …snip….)

Έξοδος whois για ένα domain παράδειγμα που δείχνει registrar, ημερομηνίες δημιουργίας και λήξης, name servers και redacted στοιχεία λόγω GDPR
Έξοδος whois για ένα domain παράδειγμα που δείχνει registrar, ημερομηνίες δημιουργίας και λήξης, name servers και redacted στοιχεία λόγω GDPR

Το whois μας δίνει τον registrar, την ημερομηνία δημιουργίας/λήξης και τους name servers. Σημείωσε το REDACTED FOR PRIVACY: μετά το GDPR, τα προσωπικά στοιχεία των κατόχων συνήθως κρύβονται. Παρόλα αυτά, οι name servers και οι ημερομηνίες παραμένουν πολύτιμα σημεία εκκίνησης για τη χαρτογράφηση της υποδομής ενός οργανισμού — χωρίς να έχουμε στείλει ούτε ένα πακέτο στον ίδιο τον στόχο.

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

Όλα τα παραπάνω εκτελέστηκαν σε ένα πλήρως απομονωμένο εργαστήριο, χωρίς σύνδεση σε πραγματικά δίκτυα. Ένα ασφαλές beginner setup:

  • Ένας hypervisor (VirtualBox ή VMware) με δίκτυο σε Host-Only ή Internal Network — ποτέ Bridged.
  • Μία μηχανή επίθεσης (Kali Linux, όπου nc, curl και whois είναι προεγκατεστημένα) και ένας-δύο στόχοι (π.χ. Metasploitable, DVWA) στο ίδιο υποδίκτυο 10.10.10.0/24.
  • Snapshots πριν από κάθε πείραμα, για άμεση επαναφορά καθαρής κατάστασης.

Το whois είναι η μοναδική εντολή εδώ που, στην πραγματικότητα, ρωτά μια δημόσια βάση εκτός lab — και ακριβώς γι’ αυτό είναι ασφαλής και νόμιμη: δεν αγγίζει κανένα ξένο σύστημα. Για εξάσκηση στο netcat και το curl, κράτα τα πάντα εντός του απομονωμένου υποδικτύου.

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

Το netcat, το curl και το whois είναι, από μόνα τους, νόμιμα εργαλεία διάγνωσης που χρησιμοποιεί καθημερινά κάθε διαχειριστής. Όμως, το να στρέψεις banner grabbing, port checks ή αιτήματα σε ένα σύστημα που δεν σου ανήκει και για το οποίο δεν έχεις ρητή, γραπτή εξουσιοδότηση είναι παράνομο σε Ελλάδα και ΕΕ (ενδεικτικά, Ν. 4411/2016 για το έγκλημα στον κυβερνοχώρο και GDPR για μη εξουσιοδοτημένη πρόσβαση/επεξεργασία).

  • Εξασκήσου μόνο σε μηχανές που έστησες εσύ ή σε νόμιμες πλατφόρμες (Hack The Box, TryHackMe, VulnHub).
  • Το authorized penetration testing γίνεται πάντα με υπογεγραμμένο συμβόλαιο και σαφώς οριοθετημένο εύρος (scope).
  • Το whois είναι παθητικό, αλλά τα δεδομένα που επιστρέφει είναι προσωπικά δεδομένα — χειρίσου τα με σεβασμό στην ιδιωτικότητα.

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

  • Το netcat (nc) ανοίγει ωμές συνδέσεις TCP/UDP: ως listener (-lvnp) περιμένει συνδέσεις, ως client ελέγχει ports και κάνει banner grabbing.
  • Το curl -v δείχνει ολόκληρη τη συνομιλία HTTP — request και response headers, status codes — και αποκαλύπτει τι διαρρέει (ή λείπει) στην απόκριση ενός server.
  • Το whois είναι παθητική αναγνώριση: registrar, ημερομηνίες και name servers ενός domain, χωρίς να αγγίζεις τον στόχο.
  • Κάθε ίχνος αναγνώρισης έχει το αντίστοιχό του σε άμυνα: ένα άγνωστο listening port, ένα banner που διαρρέει έκδοση ή μια κεφαλίδα ασφάλειας που λείπει είναι όλα σημεία δράσης για τον defender.
  • Όλη η εξάσκηση γίνεται μόνο σε εξουσιοδοτημένο, απομονωμένο περιβάλλον — με ουδέτερες IP και «καθαρισμένη» έξοδο.

Από τη θεωρία στην πράξη. Η 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 →