Σε αυτόν τον οδηγό, θα μάθετε τι είναι ένας διακομιστής και ένα πλαίσιο C2, γιατί θα θέλατε να χρησιμοποιήσετε έναν τέτοιο διακομιστή και τα βασικά οφέλη που μπορούν να προσφέρουν σε εσάς και την ομάδα σας.
Θα ανακαλύψετε μερικά από τα πιο δημοφιλή πλαίσια C2 που είναι διαθέσιμα σήμερα και θα αποκτήσετε πρακτική εμπειρία με τη χρήση του δημοφιλούς πλαισίου C2 ανοιχτού κώδικα Havoc.
Table of Contents
Τι είναι το πλαίσιο C2;
Αν έχετε κάνει ποτέ στο παρελθόν δοκιμές pentest, θα γνωρίζετε για το κακόβουλο λογισμικό και τα shell.
Εκτελείτε ένα κομμάτι κακόβουλου λογισμικού σε ένα μηχάνημα-στόχο, το οποίο δημιουργεί μια τερματική συνεδρία ή ένα shell που συνδέεται πίσω σε εσάς (reverse shell) ή σε εσάς (bind shell). Στη συνέχεια, μπορείτε να ελέγξετε εξ αποστάσεως το μηχάνημα-στόχο.
Κάθε χάκερ θέλει να αποκτήσει ένα shell σε ένα σύστημα-στόχο για να εκτελέσει εργασίες μετά την εκμετάλλευση, όπως η συλλογή διαπιστευτηρίων, η διαρροή δεδομένων ή η μετακίνηση σε νέους στόχους χρησιμοποιώντας τεχνικές όπως το kerberoasting.
Ένα πλαίσιο C2 πηγαίνει την ιδέα των shells στο επόμενο επίπεδο. Παρέχουν μια κεντρική πλατφόρμα για τον έλεγχο εκατοντάδων παραβιασμένων συστημάτων σε ένα δίκτυο-στόχο και χρησιμοποιούνται σχεδόν σε κάθε πραγματική επίθεση στον κυβερνοχώρο.
Επιπλέον, το πλαίσιο C2 διαθέτει προηγμένες δυνατότητες αυτοματοποίησης και ενσωματώνει αβίαστα διάφορα κορυφαία εργαλεία. Αυτό βοηθά στην πλευρική μετακίνηση, την απαρίθμηση μετά την εκμετάλλευση, την κλιμάκωση προνομίων, την επιμονή και πολλά άλλα.
Συνήθως, τα πλαίσια C2 έχουν τρία μέρη: έναν διακομιστή C2, έναν πελάτη C2 και έναν agent C2.
- C2 Server: Το κέντρο για τη διαχείριση των παραβιασμένων συστημάτων, της επικοινωνίας C2 και των δεδομένων.
- C2 Client: Λογισμικό εγκατεστημένο στο μηχάνημα ενός χειριστή C2 που του επιτρέπει να συνδεθεί με τον διακομιστή C2 και να αλληλεπιδράσει με παραβιασμένα μηχανήματα.
- C2 Agent: Κακόβουλο λογισμικό που εγκαθίσταται σε ένα μολυσμένο μηχάνημα-στόχο, το οποίο συνδέεται με έναν διακομιστή C2 και επιτρέπει σε έναν χειριστή να ελέγχει το μολυσμένο μηχάνημα εξ αποστάσεως. Αυτό είναι επίσης γνωστό ως implant C2 ή bot, ανάλογα με το πλαίσιο C2 που χρησιμοποιείτε.
Εκτελείτε τον C2 agent σε ένα μηχάνημα-στόχο και ο agent συνδέεται με τον δημόσιο διακομιστή C2.
Ένας διαχειριστής συνδέεται στο διακομιστή C2 για να αλληλεπιδράσει με το μηχάνημα που έχει παραβιαστεί μέσω του διακομιστή.
Ο διαχειριστής μπορεί να αλληλεπιδράσει με τον διακομιστή C2 και τα παραβιασμένα συστήματα χρησιμοποιώντας μια γραμμή εντολών ή μια γραφική διεπαφή (GUI). Πολλά προηγμένα πλαίσια C2 περιλαμβάνουν και τα δύο, ώστε ο διαχειριστής να μπορεί να απεικονίσει τα συστήματα στα οποία επιτίθεται.
Αλλά γιατί χρειάζεστε ένα πλαίσιο C2; Γιατί δεν χρησιμοποιείτε απλά ένα reverse shell; Ας δούμε περισσότερα.
Ποιος είναι ο σκοπός ενός πλαισίου C2;
Τα πλαίσια C2 είναι πλατφόρμες που έχουν σχεδιαστεί για να σας παρέχουν τις δυνατότητες να εκτελείτε εργασίες μετά την εκμετάλλευση, να διατηρείτε την πρόσβαση σε συστήματα και να συνεργάζεστε με άλλους για την επίτευξη των στόχων σας.
Η υποδομή C2 έχει σχεδιαστεί για να χρησιμοποιεί ένα μοντέλο πελάτη-εξυπηρετητή, όπου πολλαπλοί πελάτες C2 μπορούν να συνδεθούν σε έναν κεντρικό διακομιστή C2 μέσω ενός διαισθητικού περιβάλλοντος εργασίας χρήστη, από το οποίο μπορούν να επιτεθούν σε συστήματα.
Αυτό επιτρέπει σε πολλαπλούς διαχειριστές να εργάζονται ταυτόχρονα, παρέχει ένα κεντρικό σημείο για την εκροή δεδομένων και απαιτεί μόνο μία δημόσια IP/τομέα, καθιστώντας τη δημιουργία νέας υποδομής C2 ευκολότερη.
Ο αρχιτεκτονικός σχεδιασμός των πλαισίων C2 τα καθιστά επίσης σημαντικά πιο σταθερά από ό,τι τα αντίστροφα ή τα κελύφη δέσμευσης. Ο δημόσιος διακομιστής C2 σημαίνει ότι δεν χρειάζεστε το δικό σας σύστημα σε μια DMZ για να λάβετε ανακλήσεις – αυτή είναι η δουλειά του διακομιστή.
Αυτό, σε συνδυασμό με έναν καλά σχεδιασμένο πράκτορα C2, σημαίνει ότι υπάρχει μικρότερη πιθανότητα διακοπής ή αποσύνδεσης όταν κάνετε hacking. Θα μπορούσατε να κλείσετε το μηχάνημα-πελάτη σας και να συνδεθείτε ξανά στο διακομιστή αργότερα χωρίς να χάσετε κανένα shell.
Αν δεν έχετε πειστεί ακόμα, ένα άλλο ισχυρό χαρακτηριστικό των πλαισίων C2 είναι η υποστήριξή τους για εξωτερικά εργαλεία hacking μετά την εκμετάλλευση και η απόκρυψη της εκτέλεσης αυτών των εργαλείων στη μνήμη: εργαλεία όπως τα Mimikatz, BloodHound και Nmap.
Αυτή η δυνατότητα σημαίνει ότι μπορείτε να προσαρμόσετε ένα πλαίσιο στις ανάγκες σας χρησιμοποιώντας εργαλεία με τα οποία είστε άνετοι. Μπορείτε ακόμη και να χρησιμοποιήσετε διαφορετικούς agents C2 ή πλαίσια μαζί. Για παράδειγμα, συνδέοντας έναν πράκτορα Metasploit με έναν διακομιστή C2 του Cobalt Strike.
Αυτές οι ιδιότητες καθιστούν τα πλαίσια C2 ιδανικά για ασκήσεις red teaming ή purple teaming, όπου οι επαγγελματίες ασφαλείας πρέπει να μιμηθούν πραγματικές επιθέσεις για να δοκιμάσουν τις αμυντικές τους ικανότητες.
Ποια είναι τα οφέλη ενός πλαισίου C2;
Τώρα ξέρετε τι είναι τα frameworks και γιατί τα χρησιμοποιούν οι επιτιθέμενοι, οπότε ας εξερευνήσουμε μερικά από τα βασικά πλεονεκτήματα αυτών των πλατφορμών.
Ποια είναι τα πιο δημοφιλή πλαίσια C2;
Τώρα λοιπόν θέλετε να λερώσετε τα χέρια σας και να αρχίσετε να χρησιμοποιείτε ένα πλαίσιο C2. Υπέροχα! Αλλά ποιο πρέπει να χρησιμοποιήσετε; Ας δούμε μερικά από τα πιο δημοφιλή πλαίσια C2 για να σας βοηθήσουμε να αποφασίσετε.
Cobalt Strike
Το Cobalt Strike είναι μια εμπορική πλατφόρμα προσομοίωσης αντιπάλων και επιχειρήσεων κόκκινων ομάδων που χρησιμοποιείται ευρέως στον κλάδο της ασφάλειας από δοκιμαστές διείσδυσης. Πρόκειται για ένα από τα κορυφαία εργαλεία του κλάδου για πλαίσια C2, αλλά τα πλεονεκτήματά του συνοδεύονται από υψηλή τιμή.
PowerShell Empire
Το PowerShell Empire είναι ένα πλαίσιο ανοιχτού κώδικα για τη μετα-εκμετάλλευση που χρησιμοποιεί εκτενώς τη γλώσσα σεναρίων PowerShell, η οποία συνήθως βρίσκεται σε συστήματα Windows.
Slither
Το Slither είναι ένα ανοιχτού κώδικα, διαπλατφορμικό πλαίσιο εξομοίωσης αντιπάλων και κόκκινης ομάδας σχεδιασμένο για δοκιμές ασφαλείας σε μηχανήματα Windows, MacOS και Linux.
Havoc
Το Havoc είναι δωρεάν, ανοικτού κώδικα και εύκολο στη ρύθμιση. Παρέχει μια διεπαφή πελάτη για την αλληλεπίδραση με τον διακομιστή C2 σε πραγματικό χρόνο μέσω κλήσεων API, παρόμοια σε εμφάνιση και αίσθηση με το Cobalt Strike.
Brute Ratel C4
Το Brute Ratel C4 είναι μια εμπορική πλατφόρμα προσομοίωσης κόκκινων ομάδων και αντιπάλων που μπορεί να αυτοματοποιήσει την εκτέλεση των τακτικών, τεχνικών και διαδικασιών (TTPs) των αντιπάλων, να χαρτογραφήσει τις επιθέσεις στο MITRE ATT&CK matrix για την υποβολή εκθέσεων και να υποστηρίξει πολλαπλά κανάλια διοίκησης και ελέγχου.
Ρύθμιση ενός πλαισίου C2 με το Havoc
Αυτή η επίδειξη θα σας δείξει πώς να ρυθμίσετε και να χρησιμοποιήσετε το πλαίσιο Havoc C2. Το Havoc είναι μια εξαιρετική επιλογή για όσους ξεκινούν με τα πλαίσια C2. Είναι ανοιχτού κώδικα, εύκολο στη ρύθμιση και παρέχει ένα διαισθητικό γραφικό περιβάλλον για την αλληλεπίδραση με τους agents C2 σας.
Εγκατάσταση Havoc Lab
Μόλις εγκαταστήσετε μια εικονική μηχανή Kali Linux και Windows 10, μπορείτε να εγκαταστήσετε το Havoc.
Εγκατάσταση Havoc
Για να εγκαταστήσετε το Havoc, κλωνοποιήστε το αποθετήριο GitHub με την εντολή git clone https://github.com/HavocFramework/Havoc.git.
Στη συνέχεια, μετακινηθείτε σε αυτόν τον κλωνοποιημένο κατάλογο και εγκαταστήστε τις απαιτούμενες εξαρτήσεις εκτελώντας τις ακόλουθες δύο εντολές:
cd Havoc
sudo apt install -y git build-essential apt-utils cmake libfontconfig1 libglu1-mesa-dev libgtest-dev libspdlog-dev libboost-all-dev libncurses5-dev libgdbm-dev libssl-dev libreadline-dev libffi-dev libsqlite3-dev libbz2-dev mesa-common-dev qtbase5-dev qtchooser qt5-qmake qtbase5-dev-tools libqt5websockets5 libqt5websockets5-dev qtdeclarative5-dev golang-go qtbase5-dev libqt5websockets5-dev python3-dev libboost-all-dev mingw-w64 nasm
Τώρα κατασκευάστε τον διακομιστή Havoc C2 εκτελώντας τις ακόλουθες εντολές:
cd teamserver
go mod download golang.org/x/sys
go mod download github.com/ugorji/go
cd ..
make ts-build
Στη συνέχεια, κατασκευάστε τον πελάτη Havoc C2 με την εντολή make client-build.
Στη συνέχεια, επεξεργαστείτε το αρχείο ./profiles/havoc.yaotl ώστε να ταιριάζει με την ακόλουθη διαμόρφωση.
Μπορείτε να αλλάξετε τις μεταβλητές user και Password σε ό,τι θέλετε.Είναι σημαντικό ότι ο Teamserver εκτελείται τοπικά στο ίδιο μηχάνημα Kali Linux στο οποίο εκτελείτε τον πελάτη. Για να εκτελέσετε τον διακομιστή τοπικά, πρέπει να αλλάξετε τη μεταβλητή Host σε 127.0.0.1
Εκκινήστε τον διακομιστή Havoc C2 χρησιμοποιώντας το προεπιλεγμένο προφίλ εκτελώντας την εντολή ./havoc server –profile ./profiles/havoc.yaotl..
Συνδεθείτε στο διακομιστή C2 εκκινώντας τον πελάτη Havoc C2 με την εντολή ./havoc client.
Χρησιμοποιήστε τα στοιχεία που δημιουργήσατε στο αρχείο ./profiles/havoc.yaotl για να συνδεθείτε στο διακομιστή C2. Κάντε κλικ στο κουμπί New Profile, εισαγάγετε την τοπική διεύθυνση IP και στη συνέχεια, προσθέστε το όνομα χρήστη και τον κωδικό πρόσβασης που ορίσατε.
Τέλος, πατήστε Connect για να συνδεθείτε στον διακομιστή Havoc.
Θα σας εμφανιστεί το προεπιλεγμένο ταμπλό του Havoc.
Με τη λειτουργία του διακομιστή C2 και του προγράμματος-πελάτη, μπορείτε να προχωρήσετε στην εγκατάσταση των παραγόντων σε συστήματα που έχουν εκτεθεί.
Χρήση του πλαισίου C2 Havoc
Τώρα που έχετε εγκαταστήσει τα πάντα, ας αρχίσουμε να χρησιμοποιούμε το πρώτο μας πλαίσιο C2.
Ανάπτυξη ενός Agent με το Havoc
Υπάρχουν τρία βήματα που πρέπει να εκτελέσετε όταν αναπτύσσετε έναν πράκτορα C2 σε ένα παραβιασμένο μηχάνημα χρησιμοποιώντας το Havoc.
Βήμα 1: Δημιουργία ενός Listener
Αρχικά, πρέπει να δημιουργήσετε έναν ακροατή στη διασύνδεση Havoc για να ακούει τις εισερχόμενες συνδέσεις από τους πράκτορες Havoc. Για να το κάνετε αυτό, επιλέξτε την επιλογή Listeners (Ακροατές) από το αναπτυσσόμενο μενού View (Προβολή).
Έτσι θα εμφανιστεί η καρτέλα Listeners. Κάντε κλικ στο κουμπί Add (Προσθήκη) για να εμφανιστεί ο αναδυόμενος οδηγός Create Listener (Δημιουργία ακροατή).
Συμπληρώστε το όνομα του ακροατή, αφήστε το ωφέλιμο φορτίο ως Https, βεβαιωθείτε ότι ο κεντρικός υπολογιστής έχει οριστεί στη διεύθυνση IP του μηχανήματος Kali Linux και στη συνέχεια, κάντε κλικ στο κουμπί Αποθήκευση.
Κάνοντας κλικ στο Save (Αποθήκευση) θα δημιουργήσετε τον ακροατή σας στον Havoc Teamserver.
Μπορείτε τώρα να δημιουργήσετε ένα payload που εκτελεί τον agent Havoc C2 και συνδέεται με αυτόν τον listener.
Βήμα 2: Δημιουργήστε ένα payload
Για να δημιουργήσετε ένα payload στο Havoc, επιλέξτε την επιλογή payload από το αναπτυσσόμενο μενού Επίθεση.
Αυτό θα εμφανίσει τον οδηγό Payload, τον οποίο μπορείτε να χρησιμοποιήσετε για να προσαρμόσετε τις επιλογές σας.
Επιλέξτε τον ακροατή στον οποίο θέλετε να συνδεθεί το payload, την αρχιτεκτονική στην οποία στοχεύετε και τη μορφή στην οποία θέλετε να έχει το payload .
Για τα σύγχρονα λειτουργικά συστήματα Windows, αυτό θα είναι x64 και Windows Exe. Μπορείτε να αφήσετε τις υπόλοιπες επιλογές διαμόρφωσης στις προεπιλεγμένες τιμές τους και να επιλέξετε Generate για να δημιουργήσετε το payload σας.
Μόλις δημιουργηθεί, το Havoc θα σας ρωτήσει πού θέλετε να αποθηκεύσετε το payload σας. Να θυμάστε αυτή τη θέση. Θα χρειαστεί να χρησιμοποιήσετε το payload σας αργότερα.
Βήμα 3: Μεταφορά και εκτέλεση του Payload
Το επόμενο βήμα είναι η μεταφορά του Payload Havoc στον υπολογιστή-στόχο σας.
Αρχικά, πλοηγηθείτε στον κατάλογο όπου αποθηκεύσατε το Payload του Havoc και, στη συνέχεια, δημιουργήστε έναν διακομιστή Python HTTP με την εντολή python3 -m http.server.
Τώρα, στο μηχάνημα-στόχο των Windows 10, ανοίξτε ένα πρόγραμμα περιήγησης στο web και μεταβείτε στη διεύθυνση IP του μηχανήματος Kali Linux. Βεβαιωθείτε ότι έχετε απενεργοποιήσει τις προστασίες στην εφαρμογή Windows Security, όπως η Προστασία από ιούς και απειλές και ο Έλεγχος εφαρμογών και προγραμμάτων περιήγησης. Αυτό θα διασφαλίσει ότι το Payload εκτελείται και δεν μπλοκάρεται από το Windows Defender.
Επιλέξτε το εκτελέσιμο αρχείο. Αφού το κατεβάσετε, κάντε κλικ στο σύνδεσμο Άνοιγμα αρχείου και επιλέξτε την επιλογή Εκτέλεση.
Τέλος, επιστρέψτε στο μηχάνημα Kali Linux και επιβεβαιώστε ότι το payload εκτελέστηκε, ότι ο agent C2 αναπτύχθηκε και ότι έχετε μια σύνδεση από το μηχάνημα-στόχο σας στο διακομιστή Havoc C2.
Μόλις εκτελέσετε έναν agent C2 στο μηχάνημα-στόχο, μπορείτε να αρχίσετε να εκτελείτε εντολές και να αλληλεπιδράτε με τον εκτεθειμένο υπολογιστή.
Εκτέλεση εντολών Havoc C2
Για να εκτελέσετε απομακρυσμένες εντολές σε ένα παραβιασμένο μηχάνημα, πρέπει πρώτα να συνδεθείτε στον agent C2 μέσω του οποίου θέλετε να εκτελέσετε εντολές. Για να το κάνετε αυτό, κάντε δεξί κλικ στον agent και επιλέξτε Αλληλεπίδραση από το αναδυόμενο μενού.
Αυτό θα εμφανίσει την καρτέλα του agent C2 στο κάτω μέρος του γραφικού περιβάλλοντος Havoc. Μπορείτε να δώσετε εντολές στην κάτω γραμμή εντολών και να δείτε τα αποτελέσματα να εμφανίζονται στην καρτέλα εξόδου.
Για να ανακαλύψετε ποιες εντολές μπορείτε να εκτελέσετε, εκτελέστε την εντολή help.
Η κύλιση στο μενού βοήθειας θα σας αποκαλύψει πολλές εντολές που μπορείτε να εκτελέσετε. Οι πιο δημοφιλείς περιλαμβάνουν:
whoami
για να λάβετε πληροφορίες σχετικά με τον τρέχοντα χρήστη και τα προνόμιά του.powershell
για την εκτέλεση εντολών Windows PowerShell.upload
καιdownload
για να τοποθετήσετε αρχεία στο μηχάνημα ή να τα αφαιρέσετε.shell
για να μπείτε σε ένα shell εντολών.token
για τη χειραγώγηση και την πλαστοπροσωπία των Windows tokens.screenshot
για τη λήψη στιγμιότυπου οθόνης της επιφάνειας εργασίας του τρέχοντος χρήστη.- Και άλλα πολλά
Μπορείτε ακόμη να δημιουργήσετε έναν γραφικό χάρτη των κεντρικών υπολογιστών που έχετε μολύνει και των συνδέσεών τους πίσω στον διακομιστή Havoc C2 επιλέγοντας Προβολή > Προβολή συνεδρίας > Γράφημα.
Αυτό είναι πολύ χρήσιμο όταν έχετε διεισδύσει βαθιά μέσα στο δίκτυο ενός οργανισμού και πρέπει να δείτε τη διαδρομή που ακολουθεί η κυκλοφορία κατά την έξοδό της.
Συμπέρασμα
Τα πλαίσια C2 είναι φοβερά εργαλεία. Σας επιτρέπουν να αποφεύγετε την ανίχνευση, να παραμένετε αθόρυβοι και να κλιμακώνετε τις δοκιμές διείσδυσης σε νέα επίπεδα με κεντρική διαχείριση και ισχυρούς μηχανισμούς αλληλεπίδρασης με τα παραβιασμένα συστήματα.
Πολλά C2 περιλαμβάνουν ακόμη και προηγμένες επιλογές προσαρμογής που σας επιτρέπουν να προσαρμόσετε την υποδομή C2 σας σε έναν συγκεκριμένο στόχο ή στόχο.
Σε αυτό το άρθρο αναλύεται ο σκοπός των πλαισίων C2, τα οφέλη που προσφέρουν και ορισμένα δημοφιλή εμπορικά και ανοικτού κώδικα που μπορείτε να χρησιμοποιήσετε. Αποκτήσατε ακόμη και κάποια πρακτική εμπειρία χρησιμοποιώντας το πλαίσιο Havoc C2!