Frida auf Android: Wie finde ich den nativen TLS-Verifizierungs-/Pinning-Pfad wahrscheinlich Cronet, wenn klassische BorAndroid

Forum für diejenigen, die für Android programmieren
Anonymous
 Frida auf Android: Wie finde ich den nativen TLS-Verifizierungs-/Pinning-Pfad wahrscheinlich Cronet, wenn klassische Bor

Post by Anonymous »

Ich verwende einen gerooteten Emulator. Das Magisk-Zielpaket ist com.catdaddy.cat22. System http tools CA ist installiert. Java-seitiges HTTPS funktioniert unter Umgehung von TrustManagerImpl.verifyChain, aber Aufrufe von bobcatwweproduktion.cdgsrv.com schlagen immer noch mit „Zertifikat abgelehnt“ fehl. Ich vermute, dass der kritische Pfad natives Cronet/BoringSSL ist.
Was ich gesehen habe:
  • libssl.so und libcrypto.so sind geladen. Kein libmbedtls.so. libcronet.so ist offensichtlich nicht vorhanden und kann daher statisch verknüpft/umbenannt werden
  • Exportlisten zeigen viele Symbole: SSL_set_custom_verify, SSL_CTX_set_cert_verify_callback, SSL_set_verify, X509_check_, EVP_PKEY_verify, ... aber: Module.findExportByName('libssl.so','SSL_get_verify_result'|'X509_verify_cert'|...) gibt null zurück oder Hooks werden beim fehlgeschlagenen Flow nie ausgelöst.
  • Hooked-Komparatoren sind im Großen und Ganzen modulübergreifend memcmp/__memcmp_chk/bcmp/CRYPTO_memcmp/u_memcmp ein Handshake-Phasen-Gate, sodass während des fehlgeschlagenen Handshakes keine Vergleichstreffer erfolgen.
  • Libc getaddrinfo/connect eingehängt und Datei geöffnet geöffnet* AAssetManager_open, sodass für diesen Fluss keine .crt-Lesevorgänge ausgeführt werden.
Fragen, die ich habe:
  • Zu Cronet/modernem BoringSSL Builds, welche stabilen Hook-Punkte sehen tatsächlich Hostnamen-/Zertifikat-/Pinning-Entscheidungen, wenn die üblichen X509_-/SSL_verify-Exporte nicht ausgelöst werden? Wie bekannte Cronet-Callback-Shims QUIC-Pfade oder alternative Prüfer?
  • Warum kann ein Symbol in enumerateExports() erscheinen, aber über findExportByName Visibility/versioned Symbol/Stub nicht auflösbar sein? Gibt es eine zuverlässige Möglichkeit, solche Funktionen einzubinden?
  • Wenn Cronet statisch verknüpft/umbenannt ist, nach welchen Symbolen oder Mustern sollte ich suchen, um seinen TLS-Verifizierungspfad zu finden?
Ziel: Beobachten und deaktivieren Sie den Entscheidungspunkt nicht, um zu verstehen, warum dieser eine Host das Zertifikat ablehnt, während Java-Verkehr durchläuft. Endlich, um die Anfrage von bobcatwweproduktion.cdgsrv.com zu sehen, ohne dass das Zertifikat blockiert wird.

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post