Install Burp Certificate
Σε Εικονική Μηχανή
Καταρχάς, πρέπει να κατεβάσετε το πιστοποιητικό Der από το Burp. Μπορείτε να το κάνετε αυτό στο Proxy --> Options --> Import / Export CA certificate
Εξαγάγετε το πιστοποιητικό σε μορφή Der και ας το μετατρέψουμε σε μια μορφή που το Android θα μπορεί να καταλάβει. Σημειώστε ότι για να διαμορφώσετε το πιστοποιητικό burp στη μηχανή Android στο AVD πρέπει να τρέξετε αυτήν τη μηχανή με την επιλογή -writable-system
.
Για παράδειγμα, μπορείτε να την τρέξετε ως:
Στη συνέχεια, για να διαμορφώσετε το πιστοποιητικό του burp:
Μόλις το μηχάνημα τελειώσει την επανεκκίνηση, το πιστοποιητικό burp θα είναι σε χρήση από αυτό!
Χρησιμοποιώντας το Magisc
Αν έχετε ρουτάρει τη συσκευή σας με το Magisc (ίσως ένας εξομοιωτής), και δεν μπορείτε να ακολουθήσετε τα προηγούμενα βήματα για να εγκαταστήσετε το πιστοποιητικό Burp επειδή το σύστημα αρχείων είναι μόνο για ανάγνωση και δεν μπορείτε να το ανακατεύετε σε εγγράψιμη κατάσταση, υπάρχει άλλος τρόπος.
Εξηγείται σε αυτό το βίντεο πρέπει να:
Εγκαταστήστε ένα πιστοποιητικό CA: Απλά σύρετε και αφήστε το πιστοποιητικό Burp σε μορφή DER αλλάζοντας την κατάληξη σε
.crt
στο κινητό ώστε να αποθηκευτεί στον φάκελο Λήψεων και πηγαίνετε σεΕγκατάσταση πιστοποιητικού
->Πιστοποιητικό CA
Ελέγξτε ότι το πιστοποιητικό αποθηκεύτηκε σωστά πηγαίνοντας σε
Αξιόπιστα διαπιστευτήρια
->ΧΡΗΣΤΗΣ
Κάντε το System εμπιστευτικό: Κατεβάστε το module Magisc MagiskTrustUserCerts (ένα αρχείο .zip), σύρετε και αφήστε το στο τηλέφωνο, πηγαίνετε στην εφαρμογή Magics στο τηλέφωνο στην ενότητα
Ενότητες
, κάντε κλικ στοΕγκατάσταση από αποθήκευση
, επιλέξτε το module.zip
και μόλις εγκατασταθεί επανεκκινήστε το τηλέφωνο:
Μετά την επανεκκίνηση, πηγαίνετε σε
Αξιόπιστα διαπιστευτήρια
->ΣΥΣΤΗΜΑ
και ελέγξτε αν το πιστοποιητικό Postswigger είναι εκεί
Μετά το Android 14
Στην πιο πρόσφατη έκδοση Android 14, παρατηρήθηκε μια σημαντική αλλαγή στη χειρισμό των πιστοποιητικών Αρχής Πιστοποίησης (CA) που εμπιστεύονται το σύστημα. Προηγουμένως, αυτά τα πιστοποιητικά βρίσκονταν στο /system/etc/security/cacerts/
, προσβάσιμα και τροποποιήσιμα από χρήστες με δικαιώματα ρίζας, που επέτρεπε την άμεση εφαρμογή σε όλο το σύστημα. Ωστόσο, με το Android 14, η τοποθεσία αποθήκευσης μεταφέρθηκε στο /apex/com.android.conscrypt/cacerts
, ένας κατάλογος εντός της διαδρομής /apex
, η οποία είναι αναπόσπαστη από φύσης.
Οι προσπάθειες επανατοποθέτησης της διαδρομής APEX cacerts σε εγγράψιμη κατάσταση αντιμετωπίζονται με αποτυχία, καθώς το σύστημα δεν επιτρέπει τέτοιες λειτουργίες. Ακόμη και οι προσπάθειες αποπροσάρτησης ή επικάλυψης του καταλόγου με ένα προσωρινό σύστημα αρχείων (tmpfs) δεν παρακάμπτουν την αναποσπαστότητα. Οι εφαρμογές συνεχίζουν να έχουν πρόσβαση στα αρχικά δεδομένα πιστοποιητικών ανεξάρτητα από τις αλλαγές στο επίπεδο του συστήματος αρχείων. Αυτή η ανθεκτικότητα οφείλεται στο γεγονός ότι η τοποθέτηση /apex
έχει ρυθμιστεί με ιδιωτική προώθηση, εξασφαλίζοντας ότι οι τροποποιήσεις εντός του καταλόγου /apex
δεν επηρεάζουν άλλες διεργασίες.
Η εκκίνηση του Android περιλαμβάνει τη διαδικασία init
, η οποία, κατά την έναρξη του λειτουργικού συστήματος, εκκινά επίσης τη διαδικασία Zygote. Αυτή η διαδικασία είναι υπεύθυνη για την εκκίνηση των διεργασιών εφαρμογών με ένα νέο χώρο προσάρτησης που περιλαμβάνει μια ιδιωτική τοποθέτηση /apex
, απομονώνοντας έτσι τις αλλαγές σε αυτό τον κατάλογο από άλλες διεργασίες.
Ωστόσο, υπάρχει ένα παράκαμψη για όσους χρειάζονται να τροποποιήσουν τα πιστοποιητικά CA που εμπιστεύονται το σύστημα εντός του καταλόγου /apex
. Αυτό περιλαμβάνει τη χειροκίνητη επανατοποθέτηση του /apex
για την κατάργηση της ιδιωτικής προώθησης, καθιστώντας το εγγράψιμο. Η διαδικασία περιλαμβάνει την αντιγραφή του περιεχομένου του /apex/com.android.conscrypt
σε άλλη τοποθεσία, την αποπροσάρτηση του καταλόγου /apex/com.android.conscrypt
για την εξάλειψη του περιορισμού μόνο για ανάγνωση, και στη συνέχεια την επαναφορά του περιεχομένου στην αρχική του θέση εντός του /apex
. Αυτή η προσέγγιση απαιτεί γρήγορη δράση για να αποφευχθούν κραδασμοί του συστήματος. Για να εξασφαλιστεί η εφαρμογή αυτών των αλλαγών σε όλο το σύστημα, συνιστάται η επανεκκίνηση του system_server
, η οποία επανεκκινεί όλες τις εφαρμογές και φέρνει το σύστημα σε μια συνεκτική κατάσταση.
Δέσμευση μέσω NSEnter
Δημιουργία Εγγράψιμου Καταλόγου: Αρχικά, δημιουργείται ένας εγγράψιμος κατάλογος με τη δέσμευση ενός
tmpfs
πάνω στον υπάρχοντα μη-κατάλογο πιστοποιητικών συστήματος non-APEX. Αυτό επιτυγχάνεται με την ακόλουθη εντολή:
Προετοιμασία Πιστοποιητικών CA: Ακολουθώντας τη διαδικασία εγκατάστασης του εγγράψιμου καταλόγου, τα πιστοποιητικά CA που προτίθεται κάποιος να χρησιμοποιήσει πρέπει να αντιγραφούν σε αυτόν τον κατάλογο. Αυτό μπορεί να περιλαμβάνει την αντιγραφή των προεπιλεγμένων πιστοποιητικών από
/apex/com.android.conscrypt/cacerts/
. Είναι ουσιώδες να προσαρμοστούν αναλόγως οι άδειες και οι ετικέτες SELinux αυτών των πιστοποιητικών.Σύνδεση Προσάρτησης για το Zygote: Χρησιμοποιώντας το
nsenter
, μπαίνουμε στο namespace προσάρτησης του Zygote. Το Zygote, ως η διαδικασία υπεύθυνη για την εκκίνηση των εφαρμογών Android, απαιτεί αυτό το βήμα για να διασφαλίσει ότι όλες οι εφαρμογές που εκκινούνται στη συνέχεια χρησιμοποιούν τα νεότερα ρυθμισμένα πιστοποιητικά CA. Η εντολή που χρησιμοποιείται είναι:
Αυτό εξασφαλίζει ότι κάθε νέα εφαρμογή που ξεκινά θα τηρεί την ενημερωμένη ρύθμιση πιστοποιητικών CA.
Εφαρμογή Αλλαγών σε Εκτελούμενες Εφαρμογές: Για να εφαρμόσετε τις αλλαγές σε ήδη εκτελούμενες εφαρμογές, το
nsenter
χρησιμοποιείται ξανά για να εισέλθετε στο namespace κάθε εφαρμογής ξεχωριστά και να εκτελέσετε ένα παρόμοιο bind mount. Η απαραίτητη εντολή είναι:
Εναλλακτική Προσέγγιση - Μαλακή Επανεκκίνηση: Μια εναλλακτική μέθοδος περιλαμβάνει την εκτέλεση του bind mount στη διαδικασία
init
(PID 1), ακολουθούμενη από μια μαλακή επανεκκίνηση του λειτουργικού συστήματος με τις εντολέςstop && start
. Αυτή η προσέγγιση θα μεταφέρει τις αλλαγές σε όλους τους namespaces, αποφεύγοντας την ανάγκη να αντιμετωπιστεί καθένα από τα εκτελούμενα apps ξεχωριστά. Ωστόσο, αυτή η μέθοδος συνήθως προτιμάται λιγότερο λόγω της ενόχλησης της επανεκκίνησης.
Αναφορές
Last updated