Mythic
Reading time: 8 minutes
Τι είναι το Mythic;
Το Mythic είναι ένα ανοιχτού κώδικα, αρθρωτό πλαίσιο διοίκησης και ελέγχου (C2) σχεδιασμένο για red teaming. Επιτρέπει στους επαγγελματίες ασφάλειας να διαχειρίζονται και να αναπτύσσουν διάφορους πράκτορες (payloads) σε διαφορετικά λειτουργικά συστήματα, συμπεριλαμβανομένων των Windows, Linux και macOS. Το Mythic παρέχει μια φιλική προς το χρήστη διαδικτυακή διεπαφή για τη διαχείριση των πρακτόρων, την εκτέλεση εντολών και τη συλλογή αποτελεσμάτων, καθιστώντας το ένα ισχυρό εργαλείο για την προσομοίωση πραγματικών επιθέσεων σε ελεγχόμενο περιβάλλον.
Εγκατάσταση
Για να εγκαταστήσετε το Mythic, ακολουθήστε τις οδηγίες στο επίσημο Mythic repo.
Πράκτορες
Το Mythic υποστηρίζει πολλούς πράκτορες, οι οποίοι είναι οι payloads που εκτελούν εργασίες στα παραβιασμένα συστήματα. Κάθε πράκτορας μπορεί να προσαρμοστεί σε συγκεκριμένες ανάγκες και μπορεί να εκτελείται σε διαφορετικά λειτουργικά συστήματα.
Από προεπιλογή, το Mythic δεν έχει εγκατεστημένους πράκτορες. Ωστόσο, προσφέρει μερικούς ανοιχτού κώδικα πράκτορες στο https://github.com/MythicAgents.
Για να εγκαταστήσετε έναν πράκτορα από αυτό το repo, απλώς χρειάζεται να εκτελέσετε:
sudo ./mythic-cli install github https://github.com/MythicAgents/<agent-name>
sudo ./mythic-cli install github https://github.com/MythicAgents/apfell
Μπορείτε να προσθέσετε νέους πράκτορες με την προηγούμενη εντολή ακόμη και αν το Mythic εκτελείται ήδη.
C2 Προφίλ
Τα C2 προφίλ στο Mythic καθορίζουν πώς οι πράκτορες επικοινωνούν με τον διακομιστή Mythic. Καθορίζουν το πρωτόκολλο επικοινωνίας, τις μεθόδους κρυπτογράφησης και άλλες ρυθμίσεις. Μπορείτε να δημιουργήσετε και να διαχειριστείτε C2 προφίλ μέσω της διαδικτυακής διεπαφής του Mythic.
Από προεπιλογή, το Mythic εγκαθίσταται χωρίς προφίλ, ωστόσο, είναι δυνατή η λήψη ορισμένων προφίλ από το repo https://github.com/MythicC2Profiles εκτελώντας:
sudo ./mythic-cli install github https://github.com/MythicC2Profiles/<c2-profile>>
sudo ./mythic-cli install github https://github.com/MythicC2Profiles/http
Apollo Agent
Ο Apollo είναι ένας πράκτορας Windows γραμμένος σε C# χρησιμοποιώντας το .NET Framework 4.0, σχεδιασμένος για να χρησιμοποιείται στις προσφορές εκπαίδευσης της SpecterOps.
Εγκαταστήστε το με:
./mythic-cli install github https://github.com/MythicAgents/Apollo.git
Αυτός ο πράκτορας έχει πολλές εντολές που τον κάνουν πολύ παρόμοιο με το Beacon του Cobalt Strike με μερικά επιπλέον χαρακτηριστικά. Μεταξύ αυτών, υποστηρίζει:
Κοινές ενέργειες
cat
: Εκτύπωση του περιεχομένου ενός αρχείουcd
: Αλλαγή του τρέχοντος καταλόγου εργασίαςcp
: Αντιγραφή ενός αρχείου από μια τοποθεσία σε άλληls
: Λίστα αρχείων και καταλόγων στον τρέχοντα κατάλογο ή σε καθορισμένη διαδρομήpwd
: Εκτύπωση του τρέχοντος καταλόγου εργασίαςps
: Λίστα τρεχουσών διεργασιών στο σύστημα στόχο (με πρόσθετες πληροφορίες)download
: Λήψη ενός αρχείου από το σύστημα στόχο στη τοπική μηχανήupload
: Ανέβασμα ενός αρχείου από τη τοπική μηχανή στο σύστημα στόχοreg_query
: Ερώτηση κλειδιών και τιμών μητρώου στο σύστημα στόχοreg_write_value
: Γράψτε μια νέα τιμή σε ένα καθορισμένο κλειδί μητρώουsleep
: Αλλαγή του διαστήματος ύπνου του πράκτορα, το οποίο καθορίζει πόσο συχνά ελέγχει με τον διακομιστή Mythic- Και πολλές άλλες, χρησιμοποιήστε
help
για να δείτε τη πλήρη λίστα διαθέσιμων εντολών.
Ανάβαση δικαιωμάτων
getprivs
: Ενεργοποίηση όσων περισσότερων δικαιωμάτων είναι δυνατά στο τρέχον νήμαgetsystem
: Άνοιγμα ενός χεριού στο winlogon και αντιγραφή του διακριτικού, αυξάνοντας αποτελεσματικά τα δικαιώματα στο επίπεδο SYSTEMmake_token
: Δημιουργία νέας συνεδρίας σύνδεσης και εφαρμογή της στον πράκτορα, επιτρέποντας την αναπαράσταση άλλου χρήστηsteal_token
: Κλοπή ενός κύριου διακριτικού από άλλη διεργασία, επιτρέποντας στον πράκτορα να αναπαραστήσει τον χρήστη αυτής της διεργασίαςpth
: Επίθεση Pass-the-Hash, επιτρέποντας στον πράκτορα να πιστοποιηθεί ως χρήστης χρησιμοποιώντας το NTLM hash τους χωρίς να χρειάζεται ο απλός κωδικός πρόσβασηςmimikatz
: Εκτέλεση εντολών Mimikatz για εξαγωγή διαπιστευτηρίων, hashes και άλλων ευαίσθητων πληροφοριών από τη μνήμη ή τη βάση δεδομένων SAMrev2self
: Επαναφορά του διακριτικού του πράκτορα στο κύριο διακριτικό του, μειώνοντας αποτελεσματικά τα δικαιώματα στο αρχικό επίπεδοppid
: Αλλαγή της γονικής διεργασίας για εργασίες μετά την εκμετάλλευση καθορίζοντας μια νέα ταυτότητα γονικής διεργασίας, επιτρέποντας καλύτερο έλεγχο του πλαισίου εκτέλεσης εργασιώνprintspoofer
: Εκτέλεση εντολών PrintSpoofer για παράκαμψη των μέτρων ασφαλείας του εκτυπωτή, επιτρέποντας την ανάβαση δικαιωμάτων ή την εκτέλεση κώδικαdcsync
: Συγχρονισμός των κλειδιών Kerberos ενός χρήστη στη τοπική μηχανή, επιτρέποντας την εκτός σύνδεσης διάσπαση κωδικών πρόσβασης ή περαιτέρω επιθέσειςticket_cache_add
: Προσθήκη ενός εισιτηρίου Kerberos στη τρέχουσα συνεδρία σύνδεσης ή σε μια καθορισμένη, επιτρέποντας την επαναχρησιμοποίηση εισιτηρίων ή την αναπαράσταση
Εκτέλεση διεργασιών
assembly_inject
: Επιτρέπει την έγχυση ενός φορτωτή .NET assembly σε μια απομακρυσμένη διεργασίαexecute_assembly
: Εκτελεί μια .NET assembly στο πλαίσιο του πράκτοραexecute_coff
: Εκτελεί ένα αρχείο COFF στη μνήμη, επιτρέποντας την εκτέλεση κωδικοποιημένου κώδικα στη μνήμηexecute_pe
: Εκτελεί μια unmanaged εκτελέσιμη (PE)inline_assembly
: Εκτελεί μια .NET assembly σε μια προσωρινή AppDomain, επιτρέποντας την προσωρινή εκτέλεση κώδικα χωρίς να επηρεάζεται η κύρια διεργασία του πράκτοραrun
: Εκτελεί ένα δυαδικό αρχείο στο σύστημα στόχο, χρησιμοποιώντας το PATH του συστήματος για να βρει το εκτελέσιμοshinject
: Εγχύει shellcode σε μια απομακρυσμένη διεργασία, επιτρέποντας την εκτέλεση κώδικα στη μνήμηinject
: Εγχύει shellcode του πράκτορα σε μια απομακρυσμένη διεργασία, επιτρέποντας την εκτέλεση του κώδικα του πράκτορα στη μνήμηspawn
: Δημιουργεί μια νέα συνεδρία πράκτορα στο καθορισμένο εκτελέσιμο, επιτρέποντας την εκτέλεση shellcode σε μια νέα διεργασίαspawnto_x64
καιspawnto_x86
: Αλλαγή του προεπιλεγμένου δυαδικού που χρησιμοποιείται σε εργασίες μετά την εκμετάλλευση σε μια καθορισμένη διαδρομή αντί να χρησιμοποιεί τοrundll32.exe
χωρίς παραμέτρους, το οποίο είναι πολύ θορυβώδες.
Mithic Forge
Αυτό επιτρέπει να φορτώσετε αρχεία COFF/BOF από το Mythic Forge, το οποίο είναι ένα αποθετήριο προ-συγκεντρωμένων payloads και εργαλείων που μπορούν να εκτελούνται στο σύστημα στόχο. Με όλες τις εντολές που μπορούν να φορτωθούν, θα είναι δυνατή η εκτέλεση κοινών ενεργειών εκτελώντας τις στη τρέχουσα διαδικασία του πράκτορα ως BOFs (συνήθως πιο διακριτικά).
Ξεκινήστε την εγκατάσταση τους με:
./mythic-cli install github https://github.com/MythicAgents/forge.git
Στη συνέχεια, χρησιμοποιήστε forge_collections
για να εμφανίσετε τα COFF/BOF modules από το Mythic Forge ώστε να μπορείτε να τα επιλέξετε και να τα φορτώσετε στη μνήμη του πράκτορα για εκτέλεση. Από προεπιλογή, οι παρακάτω 2 συλλογές προστίθενται στο Apollo:
forge_collections {"collectionName":"SharpCollection"}
forge_collections {"collectionName":"SliverArmory"}
Αφού φορτωθεί ένα module, θα εμφανιστεί στη λίστα ως άλλη εντολή όπως forge_bof_sa-whoami
ή forge_bof_sa-netuser
.
Εκτέλεση Powershell & scripting
powershell_import
: Εισάγει ένα νέο PowerShell script (.ps1) στη μνήμη του πράκτορα για μελλοντική εκτέλεσηpowershell
: Εκτελεί μια εντολή PowerShell στο πλαίσιο του πράκτορα, επιτρέποντας προηγμένο scripting και αυτοματοποίησηpowerpick
: Εισάγει μια assembly loader PowerShell σε μια θυσιαστική διαδικασία και εκτελεί μια εντολή PowerShell (χωρίς logging powershell).psinject
: Εκτελεί PowerShell σε μια καθορισμένη διαδικασία, επιτρέποντας στοχευμένη εκτέλεση scripts στο πλαίσιο άλλης διαδικασίαςshell
: Εκτελεί μια εντολή shell στο πλαίσιο του πράκτορα, παρόμοια με την εκτέλεση μιας εντολής στο cmd.exe
Πλευρική Κίνηση
jump_psexec
: Χρησιμοποιεί την τεχνική PsExec για να μετακινηθεί πλευρικά σε μια νέα υποδοχή αντιγράφοντας πρώτα το εκτελέσιμο του πράκτορα Apollo (apollo.exe) και εκτελώντας το.jump_wmi
: Χρησιμοποιεί την τεχνική WMI για να μετακινηθεί πλευρικά σε μια νέα υποδοχή αντιγράφοντας πρώτα το εκτελέσιμο του πράκτορα Apollo (apollo.exe) και εκτελώντας το.wmiexecute
: Εκτελεί μια εντολή στο τοπικό ή καθορισμένο απομακρυσμένο σύστημα χρησιμοποιώντας WMI, με προαιρετικά διαπιστευτήρια για μίμηση.net_dclist
: Ανακτά μια λίστα ελεγκτών τομέα για τον καθορισμένο τομέα, χρήσιμη για την αναγνώριση πιθανών στόχων για πλευρική κίνηση.net_localgroup
: Λίστα τοπικών ομάδων στον καθορισμένο υπολογιστή, προεπιλεγμένα στον localhost αν δεν έχει καθοριστεί υπολογιστής.net_localgroup_member
: Ανακτά την τοπική συμμετοχή ομάδας για μια καθορισμένη ομάδα στον τοπικό ή απομακρυσμένο υπολογιστή, επιτρέποντας την καταμέτρηση χρηστών σε συγκεκριμένες ομάδες.net_shares
: Λίστα απομακρυσμένων κοινών και της προσβασιμότητάς τους στον καθορισμένο υπολογιστή, χρήσιμη για την αναγνώριση πιθανών στόχων για πλευρική κίνηση.socks
: Ενεργοποιεί έναν proxy συμβατό με SOCKS 5 στο δίκτυο στόχο, επιτρέποντας τη διέλευση της κίνησης μέσω της παραβιασμένης υποδοχής. Συμβατό με εργαλεία όπως το proxychains.rpfwd
: Ξεκινά να ακούει σε μια καθορισμένη θύρα στην υποδοχή στόχο και προωθεί την κίνηση μέσω του Mythic σε μια απομακρυσμένη IP και θύρα, επιτρέποντας απομακρυσμένη πρόσβαση σε υπηρεσίες στο δίκτυο στόχο.listpipes
: Λίστα όλων των ονομασμένων σωλήνων στο τοπικό σύστημα, που μπορεί να είναι χρήσιμη για πλευρική κίνηση ή κλιμάκωση προνομίων μέσω αλληλεπίδρασης με μηχανισμούς IPC.
Διάφορες Εντολές
help
: Εμφανίζει λεπτομερείς πληροφορίες σχετικά με συγκεκριμένες εντολές ή γενικές πληροφορίες σχετικά με όλες τις διαθέσιμες εντολές στον πράκτορα.clear
: Σημαίνει τις εργασίες ως 'καθαρές' ώστε να μην μπορούν να επιλεγούν από τους πράκτορες. Μπορείτε να καθορίσετεall
για να καθαρίσετε όλες τις εργασίες ήtask Num
για να καθαρίσετε μια συγκεκριμένη εργασία.
Poseidon Agent
Ο Poseidon είναι ένας πράκτορας Golang που μεταγλωττίζεται σε εκτελέσιμα Linux και macOS.
./mythic-cli install github https://github.com/MythicAgents/Poseidon.git
Όταν ο χρήστης είναι σε linux, έχει μερικές ενδιαφέρουσες εντολές:
Κοινές ενέργειες
cat
: Εκτύπωση του περιεχομένου ενός αρχείουcd
: Αλλαγή του τρέχοντος καταλόγου εργασίαςchmod
: Αλλαγή των δικαιωμάτων ενός αρχείουconfig
: Προβολή τρέχουσας ρύθμισης και πληροφοριών φιλοξενίαςcp
: Αντιγραφή ενός αρχείου από μια τοποθεσία σε άλληcurl
: Εκτέλεση ενός μόνο αιτήματος ιστού με προαιρετικές κεφαλίδες και μέθοδοupload
: Μεταφόρτωση ενός αρχείου στον στόχοdownload
: Λήψη ενός αρχείου από το σύστημα στόχο στον τοπικό υπολογιστή- Και πολλά άλλα
Αναζήτηση Ευαίσθητων Πληροφοριών
triagedirectory
: Βρείτε ενδιαφέροντα αρχεία μέσα σε έναν κατάλογο σε έναν υπολογιστή, όπως ευαίσθητα αρχεία ή διαπιστευτήρια.getenv
: Λάβετε όλες τις τρέχουσες μεταβλητές περιβάλλοντος.
Κίνηση οριζόντια
ssh
: SSH στον υπολογιστή χρησιμοποιώντας τα καθορισμένα διαπιστευτήρια και ανοίξτε ένα PTY χωρίς να δημιουργήσετε ssh.sshauth
: SSH σε καθορισμένο υπολογιστή(ές) χρησιμοποιώντας τα καθορισμένα διαπιστευτήρια. Μπορείτε επίσης να το χρησιμοποιήσετε για να εκτελέσετε μια συγκεκριμένη εντολή στους απομακρυσμένους υπολογιστές μέσω SSH ή να το χρησιμοποιήσετε για SCP αρχεία.link_tcp
: Σύνδεση σε άλλο πράκτορα μέσω TCP, επιτρέποντας άμεση επικοινωνία μεταξύ των πρακτόρων.link_webshell
: Σύνδεση σε έναν πράκτορα χρησιμοποιώντας το προφίλ P2P του webshell, επιτρέποντας απομακρυσμένη πρόσβαση στη διεπαφή ιστού του πράκτορα.rpfwd
: Ξεκινήστε ή σταματήστε μια Αντίστροφη Προώθηση Θύρας, επιτρέποντας απομακρυσμένη πρόσβαση σε υπηρεσίες στο δίκτυο στόχο.socks
: Ξεκινήστε ή σταματήστε έναν διακομιστή SOCKS5 στο δίκτυο στόχο, επιτρέποντας τη σήραγγα της κυκλοφορίας μέσω του παραβιασμένου υπολογιστή. Συμβατό με εργαλεία όπως το proxychains.portscan
: Σάρωση υπολογιστή(ών) για ανοιχτές θύρες, χρήσιμο για την αναγνώριση πιθανών στόχων για οριζόντια κίνηση ή περαιτέρω επιθέσεις.
Εκτέλεση διαδικασίας
shell
: Εκτέλεση μιας μόνο εντολής shell μέσω /bin/sh, επιτρέποντας άμεση εκτέλεση εντολών στο σύστημα στόχο.run
: Εκτέλεση μιας εντολής από το δίσκο με παραμέτρους, επιτρέποντας την εκτέλεση δυαδικών ή σεναρίων στο σύστημα στόχο.pty
: Άνοιγμα ενός διαδραστικού PTY, επιτρέποντας άμεση αλληλεπίδραση με το shell στο σύστημα στόχο.