Pregunta:
Omitir la fijación de certificados en Android
John Avery
2016-03-14 22:45:37 UTC
view on stackexchange narkive permalink

Pasé los últimos 4 meses tratando de omitir la fijación de certificados en la aplicación de Facebook para Android para poder entender cómo funciona, pero tengo problemas para hacerlo.

He intentado usar Android SSL trust Killer y el sustrato cydia, pero parece que hay algún otro mecanismo de verificación. He intentado alterar el código pequeño como se explica aquí:

http://blog.dewhurstsecurity.com/2015/11/10/mobile-security-certificate-pining.html

Pude ver dos solicitudes (una de las cuales se muestra en la última captura de pantalla del enlace proporcionado), sin embargo, la aplicación parece aplicar algún otro mecanismo de protección porque al intentar iniciar sesión en una cuenta, da un mensaje de error que dice: "ssl3_get_server_certificate", la verificación del certificado falló "

He probado todos los tutoriales públicos que pude encontrar en línea sin éxito, agradecería cualquier comentario sobre cómo hacer esto.

También me complacerá proporcionar el código fuente descompilado, el apk y el apk modificado si es necesario.

Parchea el código java para ignorar la fijación. El tutorial que vinculó explica cómo.
Seguí ese tutorial pero, como dije, todavía hay algún otro mecanismo de verificación que no puedo encontrar.
Lea el código descompilado, busque el mensaje de error. Parche la lógica. Vuelva a compilar y vuelva a firmar.
El mensaje de error no aparece en el código descompilado. He intentado modificar partes del código y recompilarlo y renunciar para probarlo durante los últimos 4 meses y todavía lo estoy, pero todavía no he logrado ningún avance. sin embargo, de ahí mi publicación aquí.
Lo sentimos, este es un error proveniente de SSL, no de la aplicación en sí. Puede terminar teniendo que recompilar bibliotecas SSL para su Android, o hacer algo como https://www.nccgroup.trust/us/about-us/newsroom-and-events/blog/2015/january/bypassing- openssl-certificate-pinning-in-ios-apps /. No estoy muy familiarizado con cómo se configura el anclaje en el código del cliente, pero * apuesto * a que hay formas de deshabilitarlo incluso sin reemplazar las bibliotecas SSL. No, no solo las partes descritas en la publicación del blog :)
@JohnAvery, ¿lo resolviste?
@Arya no, mis intentos no tuvieron éxito. Creo que Frida, como lo sugirió lulzpwner, podría omitirlo, sin embargo, no pude probarlo por las siguientes razones: frida solo admite ARM, el emulador de Google es demasiado lento, frida no funciona incluso en emuladores x86 con traducción ARM Intenté usar mi dispositivo Android pero me enfrenté a un error que no pude encontrar una solución.
@JohnAvery ¿Podría ser posible que la aplicación de Facebook ignore la configuración del proxy de Android? tal vez ese es el problema principal?
Eso es exactamente lo que hace, solo acepta certificados de confianza que se almacenan en algún lugar dentro de la aplicación.
@JohnAvery La configuración del proxy y los certificados de confianza son cuestiones diferentes. Tal vez haya desanclado correctamente el certificado, pero el tráfico no se está forzando a través del proxy, ya que está utilizando la configuración de proxy de Android incorporada. La configuración de proxy incorporada no garantiza que el tráfico pase a través del proxy. Las aplicaciones pueden ignorar la configuración de proxy incorporada.
Lo siento, tenía prisa y no leí tu pregunta correctamente. Probé aplicaciones que fuerzan todo el tráfico a través del proxy especificado y también intenté forzar todo el tráfico proveniente del emulador de Android a través del proxy antes de intentar desanclar, así que ' Estoy seguro de que el problema se debe a la fijación.
One responder:
lulzpwner
2016-03-17 05:52:13 UTC
view on stackexchange narkive permalink

Utilice Xposed. Aprenda la API, es la forma en que debe conectar & para manipular las aplicaciones de Android.

  • Xposed + JustTrustMe

Módulo Xposed (gracias a Fuzion24). Las llamadas al método que está buscando se encuentran en el siguiente archivo fuente:

https://github.com/Fuzion24/JustTrustMe/blob/master/app/src/main/java/just /trust/me/Main.java

Después de aprender Xposed, muévete a Frida, úsalo y estúdialo. Entonces estarás listo para jugar con la modificación del tiempo de ejecución para niños grandes :-)

Instalé Xposed y JustTrustMe y lo probé, pero la fijación sigue ahí. De acuerdo con la explicación de JustTrustMe en github, debería haber funcionado, así que supongo que hay una funcionalidad de fijación personalizada implementada. Gracias por tu sugerencia, intentaré hacer tiempo para estudiar esto. Si tiene alguna recomendación de libros / tutoriales para comenzar, hágamelo saber.
JustTrustMe funcionó para mí, pero necesitaba reiniciar después de instalar y activar el módulo.


Esta pregunta y respuesta fue traducida automáticamente del idioma inglés.El contenido original está disponible en stackexchange, a quien agradecemos la licencia cc by-sa 3.0 bajo la que se distribuye.
Loading...