Frida Tutorial
Οδηγός Frida
Συμβουλή για bug bounty: εγγραφείτε στο Intigriti, μια προηγμένη πλατφόρμα bug bounty που δημιουργήθηκε από χάκερς, για χάκερς! Γίνετε μέλος μας στο https://go.intigriti.com/hacktricks σήμερα και αρχίστε να κερδίζετε αμοιβές έως και $100,000!
Εγκατάσταση
Εγκαταστήστε τα εργαλεία frida:
Κατεβάστε και εγκαταστήστε στο Android τον διακομιστή frida (Κατεβάστε την τελευταία έκδοση). Ένας εντολή για να επανεκκινήσετε το adb σε root mode, να συνδεθείτε σε αυτό, να ανεβάσετε το frida-server, να δώσετε δικαιώματα εκτέλεσης και να το τρέξετε στο παρασκήνιο:
Ελέγξτε αν δουλεύει:
Οδηγοί
Από: https://medium.com/infosec-adventures/introduction-to-frida-5a3f51595ca1 APK: https://github.com/t0thkr1s/frida-demo/releases Πηγαίος Κώδικας: https://github.com/t0thkr1s/frida-demo
Ακολουθήστε τον σύνδεσμο για να το διαβάσετε.
Από: https://11x256.github.io/Frida-hooking-android-part-2/ (Μέρη 2, 3 & 4) APKs και Πηγαίος Κώδικας: https://github.com/11x256/frida-android-examples
Ακολουθήστε τον σύνδεσμο για να το διαβάσετε.
Από: https://joshspicer.com/android-frida-1 APK: https://github.com/OWASP/owasp-mstg/blob/master/Crackmes/Android/Level_01/UnCrackable-Level1.apk
Ακολουθήστε τον σύνδεσμο για να το διαβάσετε.
Μπορείτε να βρείτε περισσότερα εκπληκτικά scripts του Frida εδώ: https://codeshare.frida.re/
Γρήγορα Παραδείγματα
Κλήση του Frida από τη γραμμή εντολών
Βασικό Σενάριο Python
Αυτό είναι ένα βασικό σενάριο Python που χρησιμοποιεί το Frida για να επιτεθεί σε μια εφαρμογή Android. Το σενάριο φορτώνει ένα αρχείο JavaScript που θα εκτελεστεί στη συσκευή και συνδέεται με την εφαρμογή που έχει επιλεγεί για επίθεση. Όταν λαμβάνεται ένα μήνυμα από τον διακομιστή, εμφανίζεται στην οθόνη. Η επίθεση τερματίζεται όταν πατηθεί το Enter.
Σύνδεση συναρτήσεων χωρίς παραμέτρους
Συνδέστε τη συνάρτηση a()
της κλάσης sg.vantagepoint.a.c
Σύνδεση (hook) της μεθόδου exit()
στην Java
Σύνδεση (Hook) των μεθόδων .onStart()
και .onCreate()
του MainActivity
.onStart()
και .onCreate()
του MainActivityΓια να συνδέσουμε (hook) τις μεθόδους .onStart()
και .onCreate()
του MainActivity σε μια εφαρμογή Android, μπορούμε να χρησιμοποιήσουμε το εργαλείο Frida. Ο Frida μας επιτρέπει να τροποποιήσουμε τον κώδικα της εφαρμογής κατά την εκτέλεσή της.
Παρακάτω παρουσιάζεται ένα παράδειγμα κώδικα σε Python για να συνδέσουμε τις εν λόγω μεθόδους:
Στο παραπάνω παράδειγμα, ορίζουμε δύο συναρτήσεις on_start()
και on_create()
που θα κληθούν κατά την κλήση των μεθόδων .onStart()
και .onCreate()
αντίστοιχα. Στη συνέχεια, βρίσκουμε τη διεργασία της εφαρμογής και φορτώνουμε το script που περιέχει τον κώδικα για τη σύνδεση των μεθόδων. Τέλος, εκτελούμε το script.
Με αυτόν τον τρόπο, μπορούμε να παρακολουθήσουμε την εκτέλεση των μεθόδων .onStart()
και .onCreate()
του MainActivity σε μια εφαρμογή Android.
Σύνδεση (Hook) της μεθόδου .onCreate()
σε Android
.onCreate()
σε AndroidΗ μέθοδος .onCreate()
είναι μια από τις βασικές μεθόδους που χρησιμοποιούνται στην ανάπτυξη εφαρμογών Android. Συνήθως, καλείται κατά την εκκίνηση μιας δραστηριότητας (activity) και χρησιμοποιείται για την αρχικοποίηση των στοιχείων της δραστηριότητας.
Για να συνδέσουμε (hook) τη μέθοδο .onCreate()
σε μια εφαρμογή Android, μπορούμε να χρησιμοποιήσουμε το εργαλείο Frida. Το Frida είναι ένα εργαλείο αντίστροφης μηχανικής που μας επιτρέπει να τροποποιήσουμε την εκτέλεση μιας εφαρμογής κατά τη διάρκεια της εκτέλεσής της.
Για να συνδέσουμε τη μέθοδο .onCreate()
με το Frida, μπορούμε να χρησιμοποιήσουμε τον παρακάτω κώδικα JavaScript:
Ο παραπάνω κώδικας συνδέει τη μέθοδο .onCreate()
της κλάσης Activity
και αντικαθιστά την υπάρχουσα υλοποίηση με τον δικό μας κώδικα. Στο παράδειγμα, εκτυπώνουμε ένα μήνυμα κατά την κλήση της μεθόδου .onCreate()
και καλούμε την αρχική υλοποίηση της μεθόδου για να διατηρήσουμε την αρχική λειτουργικότητα.
Για να εκτελέσουμε τον παραπάνω κώδικα με το Frida, μπορούμε να χρησιμοποιήσουμε την εντολή frida -U -l script.js -f package.name
, όπου script.js
είναι το αρχείο που περιέχει τον παραπάνω κώδικα και package.name
είναι το όνομα της εφαρμογής που θέλουμε να συνδέσουμε τη μέθοδο .onCreate()
.
Με τη χρήση του Frida, μπορούμε να παρακολουθήσουμε και να τροποποιήσουμε την εκτέλεση μιας εφαρμογής Android, προσφέροντάς μας ένα ισχυρό εργαλείο για τον έλεγχο και την ανάλυση των εφαρμογών.
Σύνδεση συναρτήσεων με παραμέτρους και ανάκτηση της τιμής
Σύνδεση μιας συνάρτησης αποκρυπτογράφησης. Εκτύπωση της εισόδου, κλήση της αρχικής συνάρτησης για να αποκρυπτογραφηθεί η είσοδος και τέλος, εκτύπωση των απλών δεδομένων:
Σύνδεση συναρτήσεων και κλήση τους με την είσοδο μας
Συνδέστε μια συνάρτηση που δέχεται ένα αλφαριθμητικό και καλέστε την με ένα άλλο αλφαριθμητικό (από εδώ)
Απόκτηση ενός ήδη δημιουργημένου αντικειμένου μιας κλάσης
Αν θέλετε να εξαγάγετε κάποιο χαρακτηριστικό ενός ήδη δημιουργημένου αντικειμένου, μπορείτε να χρησιμοποιήσετε αυτό.
Σε αυτό το παράδειγμα θα δείτε πώς να αποκτήσετε το αντικείμενο της κλάσης my_activity και πώς να καλέσετε τη συνάρτηση .secret() που θα εκτυπώσει ένα ιδιωτικό χαρακτηριστικό του αντικειμένου:
Άλλα μαθήματα Frida
Συμβουλή για bug bounty: εγγραφείτε στο Intigriti, μια προηγμένη πλατφόρμα bug bounty που δημιουργήθηκε από χάκερ, για χάκερ! Γίνετε μέλος στο https://go.intigriti.com/hacktricks σήμερα και αρχίστε να κερδίζετε αμοιβές έως και $100,000!
Last updated