JuicyPotato
Last updated
Last updated
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Το JuicyPotato δεν λειτουργεί σε Windows Server 2019 και Windows 10 build 1809 και μετά. Ωστόσο, PrintSpoofer, RoguePotato, SharpEfsPotato μπορούν να χρησιμοποιηθούν για να εκμεταλλευτούν τα ίδια προνόμια και να αποκτήσουν πρόσβαση επιπέδου NT AUTHORITY\SYSTEM
. Δείτε:
Μια γλυκιά έκδοση του RottenPotatoNG, με λίγο χυμό, δηλαδή ένα άλλο εργαλείο Τοπικής Κατάχρησης Προνομίων, από Λογαριασμούς Υπηρεσιών Windows σε NT AUTHORITY\SYSTEM
RottenPotatoNG και οι παραλλαγές του εκμεταλλεύονται την αλυσίδα κατάχρησης προνομίων βασισμένη σε BITS
υπηρεσία έχοντας τον MiTM listener στο 127.0.0.1:6666
και όταν έχετε SeImpersonate
ή SeAssignPrimaryToken
προνόμια. Κατά τη διάρκεια μιας ανασκόπησης build Windows βρήκαμε μια ρύθμιση όπου το BITS
είχε σκόπιμα απενεργοποιηθεί και η θύρα 6666
είχε καταληφθεί.
Αποφασίσαμε να οπλοποιήσουμε RottenPotatoNG: Πείτε γεια στο Juicy Potato.
Για τη θεωρία, δείτε Rotten Potato - Privilege Escalation from Service Accounts to SYSTEM και ακολουθήστε την αλυσίδα των συνδέσμων και αναφορών.
Ανακαλύψαμε ότι, εκτός από το BITS
, υπάρχουν αρκετοί COM servers που μπορούμε να καταχραστούμε. Απλά χρειάζεται να:
είναι δυνατό να δημιουργηθούν από τον τρέχοντα χρήστη, συνήθως έναν “χρήστη υπηρεσίας” που έχει προνόμια κατάχρησης
να υλοποιούν τη διεπαφή IMarshal
να εκτελούνται ως ανυψωμένος χρήστης (SYSTEM, Administrator, …)
Μετά από κάποιες δοκιμές αποκτήσαμε και δοκιμάσαμε μια εκτενή λίστα από ενδιαφέροντα CLSID’s σε πολλές εκδόσεις Windows.
JuicyPotato σας επιτρέπει να:
Στοχεύστε CLSID επιλέξτε οποιοδήποτε CLSID θέλετε. Εδώ μπορείτε να βρείτε τη λίστα οργανωμένη κατά OS.
Θύρα Listening COM ορίστε τη θύρα listening COM που προτιμάτε (αντί της σκληροκωδικοποιημένης 6666)
Διεύθυνση IP Listening COM δεσμεύστε τον διακομιστή σε οποιαδήποτε IP
Λειτουργία δημιουργίας διεργασίας ανάλογα με τα προνόμια του χρήστη που καταχράται μπορείτε να επιλέξετε από:
CreateProcessWithToken
(χρειάζεται SeImpersonate
)
CreateProcessAsUser
(χρειάζεται SeAssignPrimaryToken
)
και τα δύο
Διεργασία προς εκτέλεση εκκινήστε ένα εκτελέσιμο ή σενάριο αν η εκμετάλλευση είναι επιτυχής
Επιχείρημα διεργασίας προσαρμόστε τα επιχειρήματα της εκκινούμενης διεργασίας
Διεύθυνση διακομιστή RPC για μια κρυφή προσέγγιση μπορείτε να πιστοποιηθείτε σε έναν εξωτερικό διακομιστή RPC
Θύρα διακομιστή RPC χρήσιμο αν θέλετε να πιστοποιηθείτε σε έναν εξωτερικό διακομιστή και το firewall μπλοκάρει τη θύρα 135
…
ΛΕΙΤΟΥΡΓΙΑ ΔΟΚΙΜΗΣ κυρίως για δοκιμαστικούς σκοπούς, δηλαδή δοκιμή CLSIDs. Δημιουργεί το DCOM και εκτυπώνει τον χρήστη του token. Δείτε εδώ για δοκιμή
Εάν ο χρήστης έχει δικαιώματα SeImpersonate
ή SeAssignPrimaryToken
, τότε είστε SYSTEM.
Είναι σχεδόν αδύνατο να αποτραπεί η κακή χρήση όλων αυτών των COM Servers. Μπορείτε να σκεφτείτε να τροποποιήσετε τα δικαιώματα αυτών των αντικειμένων μέσω του DCOMCNFG
, αλλά καλή τύχη, αυτό θα είναι προκλητικό.
Η πραγματική λύση είναι να προστατεύσετε ευαίσθητους λογαριασμούς και εφαρμογές που εκτελούνται υπό τους λογαριασμούς * SERVICE
. Η διακοπή του DCOM
θα εμπόδιζε σίγουρα αυτή την εκμετάλλευση, αλλά θα μπορούσε να έχει σοβαρό αντίκτυπο στο υποκείμενο λειτουργικό σύστημα.
Από: http://ohpe.it/juicy-potato/
Σημείωση: Επισκεφθείτε αυτή τη σελίδα για μια λίστα με CLSIDs που να δοκιμάσετε.
Συχνά, το προεπιλεγμένο CLSID που χρησιμοποιεί το JuicyPotato δεν λειτουργεί και η εκμετάλλευση αποτυγχάνει. Συνήθως, απαιτούνται πολλές προσπάθειες για να βρείτε ένα λειτουργικό CLSID. Για να αποκτήσετε μια λίστα με CLSIDs για να δοκιμάσετε για ένα συγκεκριμένο λειτουργικό σύστημα, θα πρέπει να επισκεφθείτε αυτή τη σελίδα:
Αρχικά, θα χρειαστείτε μερικά εκτελέσιμα αρχεία εκτός από το juicypotato.exe.
Κατεβάστε Join-Object.ps1 και φορτώστε το στη συνεδρία PS σας, και κατεβάστε και εκτελέστε GetCLSID.ps1. Αυτό το σενάριο θα δημιουργήσει μια λίστα με πιθανά CLSIDs για δοκιμή.
Στη συνέχεια, κατεβάστε test_clsid.bat (αλλάξτε τη διαδρομή στη λίστα CLSID και στο εκτελέσιμο juicypotato) και εκτελέστε το. Θα αρχίσει να δοκιμάζει κάθε CLSID, και όταν αλλάξει ο αριθμός θύρας, θα σημαίνει ότι το CLSID λειτούργησε.
Ελέγξτε τα λειτουργικά CLSIDs χρησιμοποιώντας την παράμετρο -c
Μάθετε & εξασκηθείτε στο AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Μάθετε & εξασκηθείτε στο GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)