Install Burp Certificate
Ucz się i ćwicz Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE)
Ucz się i ćwicz Hacking GCP:
HackTricks Training GCP Red Team Expert (GRTE)
![](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)
Na maszynie wirtualnej
Przede wszystkim musisz pobrać certyfikat Der z Burp. Możesz to zrobić w Proxy --> Options --> Import / Export CA certificate
![](https://book.hacktricks.xyz/~gitbook/image?url=https%3A%2F%2F600722126-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FJtticLwENZ4i7WwgHiQe%252Fuploads%252Fgit-blob-ad88950d72ba52916d305d8bb5c938dd1f4cba70%252Fimage%2520%28367%29.png%3Falt%3Dmedia&width=768&dpr=4&quality=100&sign=7d05c70d&sv=1)
Eksportuj certyfikat w formacie Der i przekształć go do formy, którą Android będzie w stanie zrozumieć. Zauważ, że aby skonfigurować certyfikat burp na maszynie Android w AVD musisz uruchomić tę maszynę z opcją -writable-system
.
Na przykład możesz uruchomić ją w ten sposób:
Następnie, aby skonfigurować certyfikat burp:
Gdy maszyna zakończy ponowne uruchamianie, certyfikat burp będzie używany!
Używanie Magisc
Jeśli zrootowałeś swoje urządzenie za pomocą Magisc (może emulator), i nie możesz wykonać poprzednich kroków w celu zainstalowania certyfikatu Burp, ponieważ system plików jest tylko do odczytu i nie możesz go zamontować jako zapisywalny, istnieje inny sposób.
Wyjaśnione w tym filmie musisz:
Zainstalować certyfikat CA: Po prostu przeciągnij i upuść certyfikat DER Burp zmieniając rozszerzenie na
.crt
w telefonie, aby był przechowywany w folderze Pobrane, a następnie przejdź doZainstaluj certyfikat
->Certyfikat CA
![](https://book.hacktricks.xyz/~gitbook/image?url=https%3A%2F%2F600722126-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FJtticLwENZ4i7WwgHiQe%252Fuploads%252Fgit-blob-a8cfa5b773303edb184e1e0eac4f0ba47f67677c%252Fimage%2520%2853%29.png%3Falt%3Dmedia&width=768&dpr=4&quality=100&sign=ff2754e2&sv=1)
Sprawdź, czy certyfikat został poprawnie zapisany, przechodząc do
Zaufane poświadczenia
->UŻYTKOWNIK
![](https://book.hacktricks.xyz/~gitbook/image?url=https%3A%2F%2F600722126-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FJtticLwENZ4i7WwgHiQe%252Fuploads%252Fgit-blob-0e554c193b3a470f5b1da38e3106da1e6d3ba244%252Fimage%2520%2854%29.png%3Falt%3Dmedia&width=768&dpr=4&quality=100&sign=790f9022&sv=1)
Uczynić go zaufanym przez system: Pobierz moduł Magisc MagiskTrustUserCerts (plik .zip), przeciągnij i upuść go w telefonie, przejdź do aplikacji Magics w telefonie do sekcji
Moduły
, kliknijZainstaluj z pamięci
, wybierz moduł.zip
i po zainstalowaniu zrestartuj telefon:
![](https://book.hacktricks.xyz/~gitbook/image?url=https%3A%2F%2F600722126-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FJtticLwENZ4i7WwgHiQe%252Fuploads%252Fgit-blob-8190e06a75ffa491e447ad9278cb40312d5e82b5%252Fimage%2520%2855%29.png%3Falt%3Dmedia&width=768&dpr=4&quality=100&sign=23260655&sv=1)
Po ponownym uruchomieniu przejdź do
Zaufane poświadczenia
->SYSTEM
i sprawdź, czy certyfikat Postswigger jest tam
![](https://book.hacktricks.xyz/~gitbook/image?url=https%3A%2F%2F600722126-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FJtticLwENZ4i7WwgHiQe%252Fuploads%252Fgit-blob-b98c9fbbc98929f4f21cab6c8d6d02d3844d23bd%252Fimage%2520%2856%29.png%3Falt%3Dmedia&width=768&dpr=4&quality=100&sign=9a98d9d1&sv=1)
Po Androidzie 14
W najnowszej wersji Androida 14 zaobserwowano znaczną zmianę w obsłudze certyfikatów urzędów certyfikacji (CA) zaufanych przez system. Wcześniej certyfikaty te znajdowały się w /system/etc/security/cacerts/
, dostępne i modyfikowalne przez użytkowników z uprawnieniami roota, co pozwalało na natychmiastowe zastosowanie w całym systemie. Jednak w Androidzie 14 lokalizacja przechowywania została przeniesiona do /apex/com.android.conscrypt/cacerts
, katalogu w ścieżce /apex
, który jest z natury niemodyfikowalny.
Próby ponownego zamontowania ścieżki APEX cacerts jako zapisywalnej kończą się niepowodzeniem, ponieważ system nie pozwala na takie operacje. Nawet próby odmontowania lub nałożenia na katalog tymczasowego systemu plików (tmpfs) nie omijają niemodyfikowalności; aplikacje nadal uzyskują dostęp do oryginalnych danych certyfikatu, niezależnie od zmian na poziomie systemu plików. Ta odporność wynika z faktu, że montaż /apex
jest skonfigurowany z propagacją PRIVATE, co zapewnia, że wszelkie modyfikacje w katalogu /apex
nie wpływają na inne procesy.
Inicjalizacja Androida obejmuje proces init
, który, uruchamiając system operacyjny, również inicjuje proces Zygote. Proces ten jest odpowiedzialny za uruchamianie procesów aplikacji z nową przestrzenią montowania, która obejmuje prywatny montaż /apex
, izolując tym samym zmiany w tym katalogu od innych procesów.
Niemniej jednak istnieje obejście dla tych, którzy potrzebują zmodyfikować zaufane przez system certyfikaty CA w katalogu /apex
. Polega to na ręcznym ponownym zamontowaniu /apex
, aby usunąć propagację PRIVATE, co czyni go zapisywalnym. Proces ten obejmuje skopiowanie zawartości /apex/com.android.conscrypt
do innej lokalizacji, odmontowanie katalogu /apex/com.android.conscrypt
, aby wyeliminować ograniczenie tylko do odczytu, a następnie przywrócenie zawartości do ich pierwotnej lokalizacji w /apex
. To podejście wymaga szybkiego działania, aby uniknąć awarii systemu. Aby zapewnić systemowe zastosowanie tych zmian, zaleca się ponowne uruchomienie system_server
, co skutecznie restartuje wszystkie aplikacje i przywraca system do spójnego stanu.
Bind-mounting through NSEnter
Ustawienie zapisywalnego katalogu: Początkowo, zapisywalny katalog jest tworzony przez zamontowanie
tmpfs
nad istniejącym katalogiem certyfikatów systemowych, który nie jest APEX. Osiąga się to za pomocą następującego polecenia:
Przygotowanie certyfikatów CA: Po skonfigurowaniu zapisywalnego katalogu, certyfikaty CA, które zamierza się użyć, powinny zostać skopiowane do tego katalogu. Może to obejmować skopiowanie domyślnych certyfikatów z
/apex/com.android.conscrypt/cacerts/
. Ważne jest, aby odpowiednio dostosować uprawnienia i etykiety SELinux tych certyfikatów.Zamontowanie dla Zygote: Wykorzystując
nsenter
, wchodzi się do przestrzeni nazw montowania Zygote. Zygote, będący procesem odpowiedzialnym za uruchamianie aplikacji Android, wymaga tego kroku, aby zapewnić, że wszystkie aplikacje uruchamiane odtąd będą korzystać z nowo skonfigurowanych certyfikatów CA. Używana komenda to:
To zapewnia, że każda nowa aplikacja uruchomiona będzie przestrzegać zaktualizowanego ustawienia certyfikatów CA.
Zastosowanie zmian w działających aplikacjach: Aby zastosować zmiany w już działających aplikacjach, ponownie używa się
nsenter
, aby wejść do przestrzeni nazw każdej aplikacji indywidualnie i wykonać podobne powiązanie montażu. Niezbędne polecenie to:
Alternatywne podejście - Miękki restart: Alternatywna metoda polega na wykonaniu montażu wiązanego na procesie
init
(PID 1), a następnie na miękkim restarcie systemu operacyjnego za pomocą poleceństop && start
. To podejście propagowałoby zmiany we wszystkich przestrzeniach nazw, unikając potrzeby indywidualnego adresowania każdej działającej aplikacji. Jednak ta metoda jest zazwyczaj mniej preferowana z powodu niedogodności związanych z restartowaniem.
References
![](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)
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Learn & practice GCP Hacking:
HackTricks Training GCP Red Team Expert (GRTE)
Last updated