hacktricks/mobile-pentesting/xamarin-apps.md

83 lines
9.3 KiB
Markdown
Raw Normal View History

# Xamarin Apps
<details>
2024-02-10 22:40:18 +00:00
<summary><strong>Μάθετε το χάκινγκ του AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
2024-02-10 22:40:18 +00:00
Άλλοι τρόποι για να υποστηρίξετε το HackTricks:
2024-01-05 11:02:33 +00:00
2024-02-10 22:40:18 +00:00
* Αν θέλετε να δείτε την **εταιρεία σας να διαφημίζεται στο HackTricks** ή να **κατεβάσετε το HackTricks σε μορφή PDF** ελέγξτε τα [**ΣΧΕΔΙΑ ΣΥΝΔΡΟΜΗΣ**](https://github.com/sponsors/carlospolop)!
* Αποκτήστε το [**επίσημο PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ανακαλύψτε [**την Οικογένεια PEASS**](https://opensea.io/collection/the-peass-family), τη συλλογή μας από αποκλειστικά [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Εγγραφείτε στη** 💬 [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στη [**ομάδα telegram**](https://t.me/peass) ή **ακολουθήστε** μας στο **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Μοιραστείτε τα χάκινγκ κόλπα σας υποβάλλοντας PRs στα** [**HackTricks**](https://github.com/carlospolop/hacktricks) και [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) αποθετήρια του github.
</details>
2024-02-10 22:40:18 +00:00
Αυτό είναι ένα σύνοψη του άρθρου του ιστολογίου [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)
2024-02-10 22:40:18 +00:00
## **Βασικές Πληροφορίες**
2024-02-10 22:40:18 +00:00
Το Xamarin είναι μια **ανοικτού κώδικα πλατφόρμα** σχεδιασμένη για προγραμματιστές για να δημιουργούν εφαρμογές για iOS, Android και Windows χρησιμοποιώντας τα πλαίσια .NET και C#. Αυτή η πλατφόρμα προσφέρει πρόσβαση σε πολλά εργαλεία και επεκτάσεις για τη δημιουργία σύγχρονων εφαρμογών με αποδοτικότητα.
2024-02-10 22:40:18 +00:00
### Αρχιτεκτονική του Xamarin
2024-02-10 22:40:18 +00:00
- Για το **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.
2024-02-10 22:40:18 +00:00
### .NET Runtime και Mono Framework
2024-02-10 22:40:18 +00:00
Το **πλαίσιο .NET** περιλαμβάνει συλλογές, κλάσεις και ονόματα χώρων για την ανάπτυξη εφαρμογών, με τον .NET Runtime να διαχειρίζεται την εκτέλεση του κώδικα. Προσφέρει ανεξαρτησία πλατφόρμας και συμβατότητα προς τα πίσω. Το **Mono Framework** είναι μια έκδοση του πλαισίου .NET ανοικτού κώδικα, που ξεκίνησε το 2005 για να επεκτείνει το .NET στο Linux, τώρα υποστηρίζεται από τη Microsoft και διευθύνεται από το Xamarin.
2024-02-10 22:40:18 +00:00
### Ανάπτυξη Ανάπτυξης Εφαρμογών Xamarin
2024-02-10 22:40:18 +00:00
#### Αποσυμπίεση των Συναθροίσεων Xamarin
2024-02-10 22:40:18 +00:00
Η αποσυμπίεση μετατρέπει το μεταγλωττισμένο κώδικα πίσω σε πηγαίο κώδικα. Στα Windows, το παράθυρο Ενότητες στο Visual Studio μπορεί να αναγνωρίσει τις ενότητες για αποσυμπίεση, επιτρέποντας την άμεση πρόσβαση σε κώδικα τρίτων και εξαγωγή πηγαίου κώδικα για ανάλυση.
2024-02-10 22:40:18 +00:00
#### Μεταγλώττιση JIT έναντι Μεταγλώττισης AOT
2024-02-10 22:40:18 +00:00
- Το **Android** υποστηρίζει τη μεταγλώττιση Just-In-Time (JIT) και Ahead-Of-Time (AOT), με έναν υβριδικό τρόπο AOT για βέλτιστη ταχύτητα εκτέλεσης. Η πλήρης AOT είναι αποκλειστική για τις επιχειρηματικές άδειες.
- Το **iOS** χρησιμοποιεί αποκλειστικά τη μεταγλώττιση AOT λόγω των περιορισμών της Apple στη δυναμική εκτέλεση κώδικα.
2024-02-10 22:40:18 +00:00
### Εξαγωγή αρχείων dll από το APK/IPA
2024-02-10 22:40:18 +00:00
Για να έχετε πρόσβαση στις συναθροίσεις σε ένα APK/IPA, αποσυμπιέστε το αρχείο και εξερευνήστε τον κατάλογο των συναθροίσεων. Για το Android, εργαλεία όπως το [XamAsmUnZ](https://github.com/cihansol/XamAsmUnZ) και το [xamarin-decompress](https://github.com/NickstaDB/xamarin-decompress) μπορούν να αποσυμπιέσουν τα αρχεία dll.
2024-02-08 03:06:37 +00:00
```bash
python3 xamarin-decompress.py -o /path/to/decompressed/apk
```
2024-02-10 22:40:18 +00:00
Για τα assembly blobs στο Android, το [pyxamstore](https://github.com/jakev/pyxamstore) μπορεί να τα αποσυμπιέσει.
2024-02-08 03:06:37 +00:00
```bash
pyxamstore unpack -d /path/to/decompressed/apk/assemblies/
```
2024-02-10 22:40:18 +00:00
Τα αρχεία dll του iOS είναι εύκολα προσβάσιμα για αποσυμπίληση, αποκαλύπτοντας σημαντικά μέρη του κώδικα της εφαρμογής, ο οποίος συχνά μοιράζεται ένα κοινό βάση σε διάφορες πλατφόρμες.
2024-02-10 22:40:18 +00:00
### Δυναμική Ανάλυση
2024-02-10 22:40:18 +00:00
Η δυναμική ανάλυση περιλαμβάνει τον έλεγχο για SSL pinning και τη χρήση εργαλείων όπως το [Fridax](https://github.com/NorthwaveSecurity/fridax) για τροποποιήσεις κατά την εκτέλεση του δυαδικού αρχείου .NET σε εφαρμογές Xamarin. Υπάρχουν διαθέσιμα scripts του Frida για την παράκαμψη του εντοπισμού root ή του SSL pinning, βελτιώνοντας τις δυνατότητες ανάλυσης.
2024-02-10 22:40:18 +00:00
Άλλα ενδιαφέροντα scripts του Frida:
* [**xamarin-antiroot**](https://codeshare.frida.re/@Gand3lf/xamarin-antiroot/)
* [**xamarin-root-detect-bypass**](https://codeshare.frida.re/@nuschpl/xamarin-root-detect-bypass/)
* [**Frida-xamarin-unpin**](https://github.com/GoSecure/frida-xamarin-unpin)
2024-02-10 22:40:18 +00:00
## Περαιτέρω πληροφορίες
* [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/)
<details>
2024-02-10 22:40:18 +00:00
<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>
2024-02-10 22:40:18 +00:00
Άλλοι τρόποι υποστήριξης του HackTricks:
2024-01-05 11:02:33 +00:00
2024-02-10 22:40:18 +00:00
* Εάν θέλετε να δείτε την **εταιρεία σας να διαφημίζεται στο 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.
</details>