Ενεργή αναγνώριση — Έννοιες
Βγαίνετε από δύο εβδομάδες σιωπηλής συλλογής πληροφοριών. Αυτή την εβδομάδα, χτυπάμε. Κάθε πακέτο που στέλνετε μπορεί να φανεί, να καταγραφεί, να συσχετιστεί. Μια κακά ρυθμισμένη σάρωση σημαίνει έναν IDS που ουρλιάζει, έναν πελάτη που σας τηλεφωνεί, ένα τεστ που ξεκινά στο κόκκινο.
Μια σάρωση θυρών σε μια IP που δεν σας ανήκει και για την οποία δεν έχετε γραπτή εξουσιοδότηση είναι εχθρική πράξη νομικά στις περισσότερες δικαιοδοσίες, ακόμη κι όταν δεν βρίσκετε τίποτα. Ολόκληρο αυτό το μάθημα εκτελείται στο δικό σας lab ή σε στόχους καλυμμένους από RoE.
Τι θα ξέρετε να κάνετε μετά από αυτό το μάθημα
- Να επιλέγετε τη σωστή σάρωση για τη σωστή στιγμή (γρήγορη, πλήρης, διακριτική, επιθετική).
- Να διαβάζετε ένα αποτέλεσμα Nmap γραμμή προς γραμμή, συμπεριλαμβανομένων των
filtered,open|filtered,unfiltered. - Να απαριθμείτε μια υπηρεσία Windows με
enum4linux-ng,smbclient,crackmapexec. - Να χρησιμοποιείτε το Wireshark για να επαληθεύσετε τι πραγματικά παράγει η σάρωσή σας στο καλώδιο.
- Να κατασκευάζετε ένα πακέτο με το χέρι με το Scapy όταν το
nmapδεν κάνει αυτό που θέλουμε. - Να εκτιμάτε το κόστος σε θόρυβο μιας σάρωσης πριν την εκτελέσετε.
1. Η μετάβαση παθητικό → ενεργητικό: τι πραγματικά αλλάζει
Στο παθητικό, κανείς δεν ξέρει ότι υπάρχετε. Στο ενεργητικό, η IP σας βρίσκεται στα logs του στόχου. Τρεις συγκεκριμένες συνέπειες:
- Τα ίχνη σας φέρουν ημερομηνία. Ένα
nmap -p-στοvictim.com, στις 03:14 στις 12 Απριλίου, θα βρεθεί. - Τα ίχνη σας είναι αποδώσιμα. IP πηγής, αποτύπωμα TCP/IP,
User-AgentHTTP, σειρά πακέτων — όλα αφηγούνται ποιοι είστε. - Οι άμυνες αντεπιτίθενται. Ένας 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. Εφαρμογική απαρίθμηση | Λογαριασμοί, κοινόχρηστοι πόροι, endpoints | enum4linux-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 paranoid | 5 λεπτά μεταξύ πακέτων | Αποκλειστικά για ακραίες αποφυγές έναντι IDS. |
-T1 sneaky | 15 δευτ. μεταξύ πακέτων | Πάντα για αποφυγή, αλλά λιγότερο αργό. |
-T2 polite | 400 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.
Τρεις χρήσεις:
- Επαλήθευση της δικής σας κίνησης. Εκτελέστε ένα
nmapκαι κοιτάξτε το Wireshark: δείτε πόσα πακέτα πραγματικά στέλνετε. Έναnmap -T4σε/24μπορεί να στείλει δεκάδες χιλιάδες SYN σε 30 δευτερόλεπτα. - Κατανόηση σφαλμάτων. Μια σάρωση που δίνει
filtered— γιατί; Είναι το ICMP που μπλοκάρεται στην επιστροφή, ή το RST που απορροφάται; - Εύρεση απρόσμενων πρωτοκόλλων. Ένα κλασικό
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, και χαρτογραφούμε τα πάντα, καθαρά.