Skip to main content

Ενεργή αναγνώριση — Έννοιες

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

Υπενθύμιση

Μια σάρωση θυρών σε μια IP που δεν σας ανήκει και για την οποία δεν έχετε γραπτή εξουσιοδότηση είναι εχθρική πράξη νομικά στις περισσότερες δικαιοδοσίες, ακόμη κι όταν δεν βρίσκετε τίποτα. Ολόκληρο αυτό το μάθημα εκτελείται στο δικό σας lab ή σε στόχους καλυμμένους από RoE.

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

  • Να επιλέγετε τη σωστή σάρωση για τη σωστή στιγμή (γρήγορη, πλήρης, διακριτική, επιθετική).
  • Να διαβάζετε ένα αποτέλεσμα Nmap γραμμή προς γραμμή, συμπεριλαμβανομένων των filtered, open|filtered, unfiltered.
  • Να απαριθμείτε μια υπηρεσία Windows με enum4linux-ng, smbclient, crackmapexec.
  • Να χρησιμοποιείτε το Wireshark για να επαληθεύσετε τι πραγματικά παράγει η σάρωσή σας στο καλώδιο.
  • Να κατασκευάζετε ένα πακέτο με το χέρι με το Scapy όταν το nmap δεν κάνει αυτό που θέλουμε.
  • Να εκτιμάτε το κόστος σε θόρυβο μιας σάρωσης πριν την εκτελέσετε.

1. Η μετάβαση παθητικό → ενεργητικό: τι πραγματικά αλλάζει​

Στο παθητικό, κανείς δεν ξέρει ότι υπάρχετε. Στο ενεργητικό, η IP σας βρίσκεται στα logs του στόχου. Τρεις συγκεκριμένες συνέπειες:

  1. Τα ίχνη σας φέρουν ημερομηνία. Ένα nmap -p- στο victim.com, στις 03:14 στις 12 Απριλίου, θα βρεθεί.
  2. Τα ίχνη σας είναι αποδώσιμα. IP πηγής, αποτύπωμα TCP/IP, User-Agent HTTP, σειρά πακέτων — όλα αφηγούνται ποιοι είστε.
  3. Οι άμυνες αντεπιτίθενται. Ένας IDS μπορεί να μπλοκάρει την IP σας αμέσως. Ένας WAF μπορεί να σας κόψει. Ένα SOC μπορεί να καλέσει τον πελάτη σας για επαλήθευση.

Καλά διεξαγόμενη, η ενεργή αναγνώριση παραμένει μη ανιχνεύσιμη ή αμελητέα. Κακά διεξαγόμενη, γίνεται η παράγραφος «incident» στην αναφορά του CISO.


2. Η λογική της σάρωσης σε στρώματα​

Ένας pentester δεν εκτελεί ποτέ nmap -A --script vuln κατευθείαν. Προχωράμε σε στρώματα, από το πιο λεπτό στο πιο ευρύ. Κάθε στρώμα απαντά σε μία ερώτηση.

ΣτρώμαΕρώτησηΕργαλείοΘόρυβος
1. Ανακάλυψη κεντρικών υπολογιστώνΠοιος είναι ζωντανός;nmap -sn, arp-scanΧαμηλός
2. Σάρωση θυρώνΤι ακούει;nmap -sS -p-Μέτριος
3. Ανίχνευση έκδοσηςΠοιος ακούει, σε ποια έκδοση;nmap -sVΜέτριος-υψηλός
4. Στοχευμένα scripts NSEΤι λέει αυτή η υπηρεσία;nmap --script <specifique>Μεταβλητός
5. Εφαρμογική απαρίθμησηΛογαριασμοί, κοινόχρηστοι πόροι, endpointsenum4linux-ng, gobusterΥψηλός

Ο κανόνας: κάθε στρώμα στηρίζεται στο προηγούμενο. Κάνουμε το -sV μόνο στις ανοιχτές θύρες, όχι στις 65.535 στα τυφλά. Εκτελούμε τα scripts NSE μόνο στις αναγνωρισμένες υπηρεσίες, όχι εξ ορισμού.


3. Οι καταστάσεις θύρας του Nmap — σταματήστε να τις διαβάζετε λάθος​

Έξι πιθανές καταστάσεις. Μην τις συγχέετε πια:

ΚατάστασηΤι σημαίνει
openΜια υπηρεσία ακούει και απαντά.
closedΤίποτα δεν ακούει — ο στόχος απαντά με RST (TCP) ή ICMP port unreachable (UDP).
filteredΈνα firewall απορροφά το πακέτο σας. Ούτε ναι, ούτε όχι.
unfilteredΟ στόχος απαντά αλλά δεν ξέρουμε αν η θύρα είναι ανοιχτή (σπάνιο, στο -sA).
open|filteredΚαμία απάντηση — είτε ανοιχτό, είτε φιλτραρισμένο (το UDP στην πράξη συχνά).
closed|filteredΟμοίως, αλλά τείνουμε προς κλειστό (zombie scan).

Τι αλλάζει αυτό για εσάς:

  • Μια θύρα filtered είναι μια πληροφορία: κάποιος έβαλε firewall, άρα κάτι ευαίσθητο βρίσκεται από πίσω.
  • Μια θύρα open|filtered σε UDP είναι πολύ συνηθισμένη: επαναλάβετε με -sU και --reason για να αποφασίσετε.
  • Ένα εύρος nmap που εμφανίζει filtered παντού είναι συχνά ένα firewall δικτύου, όχι ένας σβηστός σταθμός.

4. Οι τεχνικές σάρωσης TCP — ποια, για τι​

ΤεχνικήΕπιλογή nmapΤι κάνειΠότε να την επιλέξετε
SYN scan (ημι-σύνδεση)-sSΣτέλνει ένα SYN, διαβάζει SYN/ACK, δεν ολοκληρώνει τη χειραψία.Στάνταρ. Γρήγορο και διακριτικό. Απαιτεί root.
Connect scan-sTΠλήρης χειραψία (χρησιμοποιεί το OS).Χωρίς root, ή για να αποφύγετε ορισμένα αποτυπώματα.
ACK scan-sAΧαρτογραφεί firewalls (όχι τις ανοιχτές θύρες).Ανίχνευση firewall με ή χωρίς κατάσταση.
FIN / NULL / Xmas-sF / -sN / -sXΣτέλνει ασυνήθιστους συνδυασμούς flags.Παράκαμψη κακά ρυθμισμένων firewalls (RFC 793).
Idle scan-sI zombieΧρησιμοποιεί τρίτο μηχάνημα ως ρελέ. Η IP σας δεν μιλά ποτέ στον στόχο.Ακραία διακριτικότητα (και πολυπλοκότητα).
UDP scan-sUΕπιβάλλει σάρωση UDP. Πολύ αργό.Ανακάλυψη DNS, SNMP, NTP, IKE, SIP…

Για το 90% των αποστολών: -sS σε TCP, -sU -p <ενδιαφέρουσες θύρες UDP> σε UDP όταν χρειάζεται.


5. Τα timing templates — κατανόηση του -T​

Το nmap προσφέρει έξι ταχύτητες: -T0 έως -T5. Δεν είναι δώρα· είναι επιλογές.

TemplateΡυθμόςΧρήση
-T0 paranoid5 λεπτά μεταξύ πακέτωνΑποκλειστικά για ακραίες αποφυγές έναντι IDS.
-T1 sneaky15 δευτ. μεταξύ πακέτωνΠάντα για αποφυγή, αλλά λιγότερο αργό.
-T2 polite400 ms μεταξύ πακέτωνΕύθραυστος εξοπλισμός, βιομηχανικά δίκτυα.
-T3 normalΕξ ορισμού.Κλασικό pentest σε lab ή LAN.
-T4 aggressiveΓρήγορο.Στιβαρός στόχος, ευρεία σύνδεση.
-T5 insaneΠολύ γρήγορο.Μικρότερη ακρίβεια, συχνά ψευδώς αρνητικά.

Κανόνας: -T3 εκτός αν υπάρχει συγκεκριμένος λόγος για κάτι άλλο. -T4 σε σύγχρονους στόχους cloud. Ποτέ -T5 σε παραγωγή, ακόμη κι αν είναι θορυβώδης.

Μπορείτε να ρυθμίσετε με ακρίβεια με --max-rate, --min-rate, --scan-delay, --host-timeout — αλλά το 95% του χρόνου αρκεί ένα -T.


6. Τα scripts NSE — τεράστια δύναμη, τεράστια προσοχή​

Το nmap ενσωματώνει πάνω από 600 scripts (/usr/share/nmap/scripts/). Ταξινομούνται σε κατηγορίες. Τα πιο χρήσιμα:

ΚατηγορίαΤι κάνειΠροσοχή
default (ή -sC)Κοινά scripts, μη καταστροφικά.Χαμηλή.
safeΔεν υποβαθμίζει την υπηρεσία.Χαμηλή.
discoveryΒρίσκει πράγματα, χωρίς εκμετάλλευση.Χαμηλή.
versionΒελτιώνει την ανίχνευση έκδοσης.Χαμηλή.
authΑνιχνεύει ρυθμίσεις auth, μερικές φορές δοκιμάζει logins.Μέτρια.
vulnΑνιχνεύει γνωστές ευπάθειες. Συχνά τις ενεργοποιεί εν μέρει.Υψηλή.
exploitΕκμεταλλεύεται ενεργά.Να μην εκτελείται χωρίς σαφή πρόθεση.
intrusiveΜπορεί να ρίξει την υπηρεσία.Ποτέ σε παραγωγή.
dosΡίχνει την υπηρεσία.Απαγορεύεται εκτός lab.

Καλή πρακτική: --script "safe and default" σε σάρωση ανακάλυψης. Στοχευμένα scripts (smb-vuln-*, http-shellshock, κ.λπ.) αφού έχουμε αναγνωρίσει ένα ίχνος.

Κακή πρακτική: --script vuln σε ευρεία σάρωση. Σπάτε πράγματα και δεν θα ξέρετε ποιο.


7. Η απαρίθμηση Windows / SMB​

Σε ένα πάρκο Windows / Active Directory, το πραγματικό χρυσωρυχείο είναι το SMB (θύρα 445) και το LDAP (389, 636). Τα εργαλεία:

ΕργαλείοΤι κάνει
enum4linux-ngΑπαριθμεί χρήστες, ομάδες, κοινόχρηστους πόρους, πολιτική μέσω null session ή με creds.
smbclient -L //cible/ -NΚαταγράφει τους κοινόχρηστους πόρους χωρίς αυθεντικοποίηση.
crackmapexec smb <cible>Το ελβετικό μαχαίρι του SMB: banner, κοινόχρηστοι πόροι, δοκιμές auth, απομακρυσμένη εκτέλεση.
nxc smb <cible>Ο συντηρούμενος διάδοχος του crackmapexec (NetExec).
smbmap -H <cible> -u <user> -p <pass>Καταγράφει τα δικαιώματα σε κάθε κοινόχρηστο πόρο.
ldapsearch -x -H ldap://<cible>Ανώνυμα αιτήματα LDAP αν επιτρέπονται.

Τι ψάχνουμε:

  • Πρόσβαση σε null session (-u '' -p '') που δίνει τη λίστα χρηστών = χρυσός.
  • Κοινόχρηστο πόρο SYSVOL ή NETLOGON αναγνώσιμο χωρίς κωδικό = ανώμαλο, εκτός από σε DC.
  • Κοινόχρηστους πόρους IPC$, ADMIN$, C$ προσβάσιμους με τυπικό λογαριασμό domain.
  • Την πολιτική κωδικού πρόσβασης (μήκος, λήξη, κλείδωμα) — χρήσιμη για το password spraying αργότερα.

8. Wireshark — επαλήθευση του τι πραγματικά εκπέμπουμε​

Το Wireshark δεν είναι επιθετικό εργαλείο αυστηρά μιλώντας. Αλλά ένας pentester που δεν το χρησιμοποιεί είναι τυφλός pentester.

Τρεις χρήσεις:

  1. Επαλήθευση της δικής σας κίνησης. Εκτελέστε ένα nmap και κοιτάξτε το Wireshark: δείτε πόσα πακέτα πραγματικά στέλνετε. Ένα nmap -T4 σε /24 μπορεί να στείλει δεκάδες χιλιάδες SYN σε 30 δευτερόλεπτα.
  2. Κατανόηση σφαλμάτων. Μια σάρωση που δίνει filtered — γιατί; Είναι το ICMP που μπλοκάρεται στην επιστροφή, ή το RST που απορροφάται;
  3. Εύρεση απρόσμενων πρωτοκόλλων. Ένα κλασικό nmap βλέπει τις θύρες. Το Wireshark βλέπει τις συνομιλίες — ένα φλύαρο mDNS, ένα μη απενεργοποιημένο LLMNR, έναν Elasticsearch που απαντά σε broadcast.

Φίλτρα που πρέπει να ξέρετε απέξω:

tcp.flags.syn == 1 and tcp.flags.ack == 0       # εξερχόμενα SYN
tcp.flags.reset == 1 # ληφθέντα RST
smb2 # κίνηση SMB2
dns.qry.name contains "internal" # ύποπτα αιτήματα DNS

9. Scapy — όταν το nmap δεν αρκεί πια​

Το Scapy είναι μια βιβλιοθήκη Python που επιτρέπει την κατασκευή πακέτου με το χέρι, πεδίο προς πεδίο. Χρήσιμο όταν:

  • Θέλετε να δοκιμάσετε έναν συγκεκριμένο συνδυασμό flags που το nmap δεν προσφέρει εγγενώς.
  • Θέλετε να εκπέμψετε ένα μοναδικό πακέτο και να δείτε την απάντηση καθαρά.
  • Θέλετε να κατασκευάσετε ελαφρύ fuzzing πρωτοκόλλου.

Το ελάχιστο απαραίτητο:

from scapy.all import IP, TCP, UDP, ICMP, sr1

reponse = sr1(IP(dst="10.10.10.12") / TCP(dport=445, flags="S"), timeout=2, verbose=0)
if reponse and reponse.haslayer(TCP):
print("Flags reçus :", reponse[TCP].flags)

flags σε απάντηση:

  • 0x12 (SYN+ACK) → η θύρα είναι ανοιχτή.
  • 0x14 (RST+ACK) → η θύρα είναι κλειστή.
  • None → φιλτραρισμένη.

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


10. Τα λάθη που κοστίζουν​

  • Εκτέλεση -A κατευθείαν. Αναμειγνύετε ανακάλυψη, εκδόσεις, OS, scripts και traceroute. Δεν ξέρετε πια τι προέρχεται από πού. Δουλέψτε σε στρώματα.
  • Να πιστεύετε την πρώτη σάρωση. Μια θύρα μπορεί να είναι filtered λόγω παροδικού IPS. Επαναλάβετε, διασταυρώστε.
  • Να ξεχνάτε το UDP. Χάνετε SNMP, IKE, SIP, TFTP — υπηρεσίες που συχνά κρύβουν το κλειδί.
  • Να μην καταγράφετε. Πάντα αποθηκεύστε τα αποτελέσματα με -oA <prefix>. Το αρχείο .xml χρησιμεύει για msfconsole → db_import.
  • Να σαρώνετε τη νύχτα σε LAN επιχείρησης. Το SOC δεν κοιμάται. Ειδοποιήστε την επαφή κλιμάκωσης πριν.
  • Να χρησιμοποιείτε μία μόνο διεύθυνση IP. Μια καμένη IP στην αρχή της αποστολής = καθυστερημένη αποστολή. Προβλέψτε σχέδιο B (VPN, δεύτερη διεπαφή).

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

  • Ενεργητικό = πακέτα στον στόχο. Καταγράψτε το νοητικά σε κάθε εντολή.
  • Σάρωση σε στρώματα: ανακάλυψη → θύρες → εκδόσεις → στοχευμένο NSE.
  • Έξι καταστάσεις θύρας. Καθεμία αφηγείται μια ιστορία.
  • -T3 εξ ορισμού, -sS εξ ορισμού. Ρυθμίζετε στη συνέχεια.
  • NSE: safe εξ ορισμού, vuln μόνο σε αναγνωρισμένους στόχους, intrusive ποτέ χωρίς σχέδιο.
  • Το SMB είναι το χρυσωρυχείο Windows — μάθετε το nxc smb απέξω.
  • Wireshark για κατανόηση, Scapy για κατασκευή.

Επόμενο μάθημα: ξαναπιάνουμε το lab μας της εβδομάδας 1, προσθέτουμε ένα δεύτερο θύμα Linux, και χαρτογραφούμε τα πάντα, καθαρά.