Install Burp Certificate
![](https://book.hacktricks.xyz/~gitbook/image?url=https%3A%2F%2Fpentest.eu%2FRENDER_WebSec_10fps_21sec_9MB_29042024.gif&width=768&dpr=4&quality=100&sign=bc0743d1&sv=1)
Σε Εικονική Μηχανή
Πρώτα απ' όλα, πρέπει να κατεβάσετε το πιστοποιητικό Der από το Burp. Μπορείτε να το κάνετε αυτό στο Proxy --> Options --> Import / Export CA certificate
Εξάγετε το πιστοποιητικό σε μορφή Der και ας μετατρέψουμε το σε μια μορφή που το Android θα μπορεί να κατανοήσει. Σημειώστε ότι για να ρυθμίσετε το πιστοποιητικό burp στη συσκευή Android στο AVD πρέπει να τρέξετε αυτή τη συσκευή με την επιλογή -writable-system
.
Για παράδειγμα, μπορείτε να το τρέξετε όπως:
Στη συνέχεια, για να ρυθμίσετε το πιστοποιητικό του burp:
Μόλις η μηχανή ολοκληρώσει την επανεκκίνηση, το πιστοποιητικό burp θα είναι σε χρήση από αυτήν!
Χρήση του Magisc
Αν έχετε ριζώσει τη συσκευή σας με το Magisc (ίσως έναν εξομοιωτή), και δεν μπορείτε να ακολουθήσετε τα προηγούμενα βήματα για να εγκαταστήσετε το πιστοποιητικό Burp επειδή το σύστημα αρχείων είναι μόνο για ανάγνωση και δεν μπορείτε να το επανατοποθετήσετε σε εγ writable, υπάρχει ένας άλλος τρόπος.
Εξηγείται σε αυτό το βίντεο πρέπει να:
Εγκαταστήσετε ένα πιστοποιητικό CA: Απλά σύρετε και αποθέστε το DER πιστοποιητικό Burp αλλάζοντας την επέκταση σε
.crt
στο κινητό ώστε να αποθηκευτεί στον φάκελο Λήψεις και να πάτε στοΕγκατάσταση πιστοποιητικού
->Πιστοποιητικό CA
Ελέγξτε ότι το πιστοποιητικό αποθηκεύτηκε σωστά πηγαίνοντας στο
Έμπιστες πιστοποιήσεις
->ΧΡΗΣΤΗΣ
Κάντε το εμπιστευμένο από το Σύστημα: Κατεβάστε το module Magisc MagiskTrustUserCerts (ένα αρχείο .zip), σύρετε και αποθέστε το στο τηλέφωνο, πηγαίνετε στην εφαρμογή Magics στο τηλέφωνο στην ενότητα
Modules
, κάντε κλικ στοΕγκατάσταση από αποθήκευση
, επιλέξτε το module.zip
και μόλις εγκατασταθεί επανεκκινήστε το τηλέφωνο:
Μετά την επανεκκίνηση, πηγαίνετε στο
Έμπιστες πιστοποιήσεις
->ΣΥΣΤΗΜΑ
και ελέγξτε ότι το πιστοποιητικό Postswigger είναι εκεί
Μετά το Android 14
Στην τελευταία έκδοση Android 14, έχει παρατηρηθεί μια σημαντική αλλαγή στη διαχείριση των πιστοποιητικών Αρχής Πιστοποίησης (CA) που είναι εμπιστευμένα από το σύστημα. Προηγουμένως, αυτά τα πιστοποιητικά βρίσκονταν στο /system/etc/security/cacerts/
, προσβάσιμα και τροποποιήσιμα από χρήστες με δικαιώματα root, γεγονός που επέτρεπε άμεση εφαρμογή σε όλο το σύστημα. Ωστόσο, με το Android 14, η τοποθεσία αποθήκευσης έχει μεταφερθεί στο /apex/com.android.conscrypt/cacerts
, έναν φάκελο εντός της διαδρομής /apex
, ο οποίος είναι εκ φύσεως αμετάβλητος.
Οι προσπάθειες επανατοποθέτησης της διαδρομής APEX cacerts ως εγ writable αποτυγχάνουν, καθώς το σύστημα δεν επιτρέπει τέτοιες λειτουργίες. Ακόμη και οι προσπάθειες αποσύνδεσης ή επικάλυψης του φακέλου με ένα προσωρινό σύστημα αρχείων (tmpfs) δεν παρακάμπτουν την αμεταβλησία; οι εφαρμογές συνεχίζουν να έχουν πρόσβαση στα αρχικά δεδομένα πιστοποιητικού ανεξάρτητα από τις αλλαγές στο επίπεδο του συστήματος αρχείων. Αυτή η ανθεκτικότητα οφείλεται στο ότι η τοποθέτηση /apex
έχει ρυθμιστεί με ΙΔΙΩΤΙΚΗ προπαγάνδα, διασφαλίζοντας ότι οποιεσδήποτε τροποποιήσεις εντός του φακέλου /apex
δεν επηρεάζουν άλλες διαδικασίες.
Η αρχικοποίηση του Android περιλαμβάνει τη διαδικασία init
, η οποία, κατά την εκκίνηση του λειτουργικού συστήματος, ξεκινά επίσης τη διαδικασία Zygote. Αυτή η διαδικασία είναι υπεύθυνη για την εκκίνηση διαδικασιών εφαρμογών με ένα νέο namespace τοποθέτησης που περιλαμβάνει μια ιδιωτική τοποθέτηση /apex
, απομονώνοντας έτσι τις αλλαγές σε αυτόν τον φάκελο από άλλες διαδικασίες.
Ωστόσο, υπάρχει μια λύση για όσους χρειάζονται να τροποποιήσουν τα πιστοποιητικά CA που είναι εμπιστευμένα από το σύστημα εντός του φακέλου /apex
. Αυτό περιλαμβάνει την χειροκίνητη επανατοποθέτηση του /apex
για να αφαιρεθεί η ΙΔΙΩΤΙΚΗ προπαγάνδα, καθιστώντας το εγ writable. Η διαδικασία περιλαμβάνει την αντιγραφή των περιεχομένων του /apex/com.android.conscrypt
σε άλλη τοποθεσία, την αποσύνδεση του φακέλου /apex/com.android.conscrypt
για να εξαλειφθεί ο περιορισμός μόνο για ανάγνωση, και στη συνέχεια την αποκατάσταση των περιεχομένων στην αρχική τους τοποθεσία εντός του /apex
. Αυτή η προσέγγιση απαιτεί γρήγορη δράση για να αποφευχθούν οι κραδασμοί του συστήματος. Για να διασφαλιστεί η εφαρμογή αυτών των αλλαγών σε όλο το σύστημα, συνιστάται να επανεκκινήσετε τον system_server
, ο οποίος επανεκκινεί αποτελεσματικά όλες τις εφαρμογές και φέρνει το σύστημα σε μια συνεπή κατάσταση.
Bind-mounting through NSEnter
Ρύθμιση ενός Γραμμικού Καταλόγου: Αρχικά, δημιουργείται ένας γραμμικός κατάλογος με την τοποθέτηση ενός
tmpfs
πάνω από τον υπάρχοντα κατάλογο πιστοποιητικών μη-APEX συστήματος. Αυτό επιτυγχάνεται με την παρακάτω εντολή:
Προετοιμασία Πιστοποιητικών CA: Αφού ρυθμιστεί ο εγ writable κατάλογος, τα πιστοποιητικά CA που προτίθεται να χρησιμοποιήσει κάποιος θα πρέπει να αντιγραφούν σε αυτόν τον κατάλογο. Αυτό μπορεί να περιλαμβάνει την αντιγραφή των προεπιλεγμένων πιστοποιητικών από το
/apex/com.android.conscrypt/cacerts/
. Είναι απαραίτητο να προσαρμοστούν οι άδειες και οι ετικέτες SELinux αυτών των πιστοποιητικών αναλόγως.Δέσμευση Μοντάρισμα για Zygote: Χρησιμοποιώντας το
nsenter
, κάποιος εισέρχεται στο mount namespace του Zygote. Το Zygote, ως η διαδικασία που είναι υπεύθυνη για την εκκίνηση εφαρμογών Android, απαιτεί αυτό το βήμα για να διασφαλιστεί ότι όλες οι εφαρμογές που θα ξεκινήσουν από εδώ και στο εξής θα χρησιμοποιούν τα νέα ρυθμισμένα πιστοποιητικά CA. Η εντολή που χρησιμοποιείται είναι:
Αυτό διασφαλίζει ότι κάθε νέα εφαρμογή που ξεκινά θα τηρεί τη ρυθμισμένη ενημερωμένη εγκατάσταση πιστοποιητικών CA.
Εφαρμογή Αλλαγών σε Εκτελούμενες Εφαρμογές: Για να εφαρμοστούν οι αλλαγές σε ήδη εκτελούμενες εφαρμογές, χρησιμοποιείται ξανά το
nsenter
για να εισέλθει στο namespace κάθε εφαρμογής ξεχωριστά και να εκτελέσει μια παρόμοια δέσμευση. Η απαραίτητη εντολή είναι:
Εναλλακτική Προσέγγιση - Ήπια Επανεκκίνηση: Μια εναλλακτική μέθοδος περιλαμβάνει την εκτέλεση της δέσμευσης στο
init
διαδικασία (PID 1) ακολουθούμενη από μια ήπια επανεκκίνηση του λειτουργικού συστήματος με τις εντολέςstop && start
. Αυτή η προσέγγιση θα διαδώσει τις αλλαγές σε όλα τα namespaces, αποφεύγοντας την ανάγκη να απευθυνθεί ξεχωριστά σε κάθε τρέχουσα εφαρμογή. Ωστόσο, αυτή η μέθοδος γενικά προτιμάται λιγότερο λόγω της ταλαιπωρίας της επανεκκίνησης.
Αναφορές
![](https://book.hacktricks.xyz/~gitbook/image?url=https%3A%2F%2Fpentest.eu%2FRENDER_WebSec_10fps_21sec_9MB_29042024.gif&width=768&dpr=4&quality=100&sign=bc0743d1&sv=1)
Last updated