{{#include ../../banners/hacktricks-training.md}} # Βασική θεωρία IPv6 ## Δίκτυα Οι διευθύνσεις IPv6 είναι δομημένες για να ενισχύσουν την οργάνωση του δικτύου και την αλληλεπίδραση των συσκευών. Μια διεύθυνση IPv6 χωρίζεται σε: 1. **Πρόθεμα Δικτύου**: Τα αρχικά 48 bits, που καθορίζουν το τμήμα του δικτύου. 2. **ID Υποδικτύου**: Τα επόμενα 16 bits, που χρησιμοποιούνται για τον καθορισμό συγκεκριμένων υποδικτύων εντός του δικτύου. 3. **Ταυτοποίηση Διεπαφής**: Τα τελικά 64 bits, που προσδιορίζουν μοναδικά μια συσκευή εντός του υποδικτύου. Ενώ το IPv6 παραλείπει το πρωτόκολλο ARP που βρίσκεται στο IPv4, εισάγει το **ICMPv6** με δύο κύρια μηνύματα: - **Αίτηση Γειτόνων (NS)**: Μηνύματα multicast για την επίλυση διευθύνσεων. - **Διαφήμιση Γειτόνων (NA)**: Απαντήσεις unicast σε NS ή αυθόρμητες ανακοινώσεις. Το IPv6 περιλαμβάνει επίσης ειδικούς τύπους διευθύνσεων: - **Διεύθυνση Loopback (`::1`)**: Ισοδύναμη με το `127.0.0.1` του IPv4, για εσωτερική επικοινωνία εντός του υπολογιστή. - **Διευθύνσεις Link-Local (`FE80::/10`)**: Για τοπικές δραστηριότητες δικτύου, όχι για δρομολόγηση στο διαδίκτυο. Οι συσκευές στο ίδιο τοπικό δίκτυο μπορούν να ανακαλύψουν η μία την άλλη χρησιμοποιώντας αυτό το εύρος. ### Πρακτική Χρήση του IPv6 σε Εντολές Δικτύου Για να αλληλεπιδράσετε με δίκτυα IPv6, μπορείτε να χρησιμοποιήσετε διάφορες εντολές: - **Ping Διευθύνσεις Link-Local**: Ελέγξτε την παρουσία τοπικών συσκευών χρησιμοποιώντας `ping6`. - **Ανακάλυψη Γειτόνων**: Χρησιμοποιήστε `ip neigh` για να δείτε τις συσκευές που ανακαλύφθηκαν στο επίπεδο σύνδεσης. - **alive6**: Ένα εναλλακτικό εργαλείο για την ανακάλυψη συσκευών στο ίδιο δίκτυο. Παρακάτω παρατίθενται μερικά παραδείγματα εντολών: ```bash ping6 –I eth0 -c 5 ff02::1 > /dev/null 2>&1 ip neigh | grep ^fe80 # Alternatively, use alive6 for neighbor discovery alive6 eth0 ``` IPv6 διευθύνσεις μπορούν να προκύψουν από τη διεύθυνση MAC μιας συσκευής για τοπική επικοινωνία. Ακολουθεί ένας απλοποιημένος οδηγός για το πώς να προκύψει η διεύθυνση Link-local IPv6 από μια γνωστή διεύθυνση MAC, καθώς και μια σύντομη επισκόπηση των τύπων διευθύνσεων IPv6 και μεθόδων για την ανακάλυψη διευθύνσεων IPv6 εντός ενός δικτύου. ## **Προκύπτοντας Link-local IPv6 από Διεύθυνση MAC** Δεδομένης μιας διεύθυνσης MAC **`12:34:56:78:9a:bc`**, μπορείτε να κατασκευάσετε τη διεύθυνση Link-local IPv6 ως εξής: 1. Μετατρέψτε τη MAC σε μορφή IPv6: **`1234:5678:9abc`** 2. Προσθέστε `fe80::` και εισάγετε `fffe` στη μέση: **`fe80::1234:56ff:fe78:9abc`** 3. Αντιστροφή του έβδομου bit από τα αριστερά, αλλάζοντας το `1234` σε `1034`: **`fe80::1034:56ff:fe78:9abc`** ## **Τύποι Διευθύνσεων IPv6** - **Unique Local Address (ULA)**: Για τοπικές επικοινωνίες, δεν προορίζεται για δημόσια δρομολόγηση στο διαδίκτυο. Πρόθεμα: **`FEC00::/7`** - **Multicast Address**: Για επικοινωνία ένα προς πολλούς. Παράγεται σε όλες τις διεπαφές της ομάδας multicast. Πρόθεμα: **`FF00::/8`** - **Anycast Address**: Για επικοινωνία ένα προς τον πλησιέστερο. Αποστέλλεται στην πλησιέστερη διεπαφή σύμφωνα με το πρωτόκολλο δρομολόγησης. Μέρος της παγκόσμιας περιοχής unicast **`2000::/3`**. ## **Πρόθεμα Διευθύνσεων** - **fe80::/10**: Διευθύνσεις Link-Local (παρόμοιες με 169.254.x.x) - **fc00::/7**: Unique Local-Unicast (παρόμοιες με ιδιωτικές περιοχές IPv4 όπως 10.x.x.x, 172.16.x.x, 192.168.x.x) - **2000::/3**: Παγκόσμιο Unicast - **ff02::1**: Multicast Όλων των Κόμβων - **ff02::2**: Multicast Κόμβοι Δρομολογητή ## **Ανακαλύπτοντας Διευθύνσεις IPv6 εντός ενός Δικτύου** ### Τρόπος 1: Χρησιμοποιώντας Διευθύνσεις Link-local 1. Αποκτήστε τη διεύθυνση MAC μιας συσκευής εντός του δικτύου. 2. Προκύψτε τη διεύθυνση Link-local IPv6 από τη διεύθυνση MAC. ### Τρόπος 2: Χρησιμοποιώντας Multicast 1. Στείλτε ένα ping στη διεύθυνση multicast `ff02::1` για να ανακαλύψετε διευθύνσεις IPv6 στο τοπικό δίκτυο. ```bash service ufw stop # Stop the firewall ping6 -I ff02::1 # Send a ping to multicast address ip -6 neigh # Display the neighbor table ``` ## IPv6 Man-in-the-Middle (MitM) Attacks Υπάρχουν αρκετές τεχνικές για την εκτέλεση επιθέσεων MitM σε δίκτυα IPv6, όπως: - Spoofing ICMPv6 neighbor ή router advertisements. - Χρήση ICMPv6 redirect ή "Packet Too Big" μηνυμάτων για την παραποίηση δρομολόγησης. - Επίθεση σε mobile IPv6 (συνήθως απαιτεί την απενεργοποίηση του IPSec). - Ρύθμιση ενός rogue DHCPv6 server. # Identifying IPv6 Addresses in the eild ## Exploring Subdomains Μια μέθοδος για να βρείτε υποτομείς που είναι δυνητικά συνδεδεμένοι με διευθύνσεις IPv6 περιλαμβάνει την εκμετάλλευση μηχανών αναζήτησης. Για παράδειγμα, η χρήση ενός προτύπου ερωτήματος όπως το `ipv6.*` μπορεί να είναι αποτελεσματική. Συγκεκριμένα, η ακόλουθη εντολή αναζήτησης μπορεί να χρησιμοποιηθεί στο Google: ```bash site:ipv6./ ``` ## Χρησιμοποιώντας Ερωτήματα DNS Για να εντοπιστούν διευθύνσεις IPv6, μπορούν να γίνουν ερωτήσεις σε συγκεκριμένους τύπους εγγραφών DNS: - **AXFR**: Ζητά μια πλήρη μεταφορά ζώνης, αποκαλύπτοντας ενδεχομένως ένα ευρύ φάσμα εγγραφών DNS. - **AAAA**: Αναζητά άμεσα διευθύνσεις IPv6. - **ANY**: Μια ευρεία ερώτηση που επιστρέφει όλες τις διαθέσιμες εγγραφές DNS. ## Δοκιμή με Ping6 Αφού εντοπιστούν οι διευθύνσεις IPv6 που σχετίζονται με έναν οργανισμό, το εργαλείο `ping6` μπορεί να χρησιμοποιηθεί για δοκιμή. Αυτό το εργαλείο βοηθά στην αξιολόγηση της απόκρισης των εντοπισμένων διευθύνσεων IPv6 και μπορεί επίσης να βοηθήσει στην ανακάλυψη γειτονικών συσκευών IPv6. ## Αναφορές - [http://www.firewall.cx/networking-topics/protocols/877-ipv6-subnetting-how-to-subnet-ipv6.html](http://www.firewall.cx/networking-topics/protocols/877-ipv6-subnetting-how-to-subnet-ipv6.html) - [https://www.sans.org/reading-room/whitepapers/detection/complete-guide-ipv6-attack-defense-33904](https://www.sans.org/reading-room/whitepapers/detection/complete-guide-ipv6-attack-defense-33904) {{#include ../../banners/hacktricks-training.md}}