El documento «Todo sobre Pentesting en Android: Una Metodología Completa» fue creado por Xcheater

Consulta la Parte I


Análisis del Código Fuente

Al descompilar un APK, se puede acceder al código fuente para su análisis. Sin embargo, muchas aplicaciones actuales utilizan técnicas de ofuscación que dificultan la comprensión de su lógica.

Como se menciona en el artículo anterior, es posible revisar ciertos archivos para obtener pistas sobre la lógica implementada, como la detección de root, SSL Pinning, comprobaciones del depurador, validaciones del lado del cliente, etc. El análisis del código fuente puede ofrecer ideas valiosas para realizar un análisis dinámico eficaz, incluyendo ataques como XSS o inyecciones.

Puedes analizar el código directamente usando semgrep o MobSF, herramientas que proporcionan un panorama rápido sobre el estado de seguridad del código. Aquí tienes el repositorio de semgrep-rules-android-security, que podría ser de gran utilidad.

Aspectos a revisar manualmente en el código fuente:

Firma del APK – Vulnerabilidad Janus

La verificación de la firma del APK es crucial para garantizar la integridad de la aplicación. No obstante, existe una vulnerabilidad conocida como Janus (CVE-2017–13156), que permite a los atacantes modificar archivos APK sin invalidar su firma.

Comprobación de integridad (anti-tampering): utiliza APKTool para descompilar el APK y modificar algunos archivos, como manifest.xml, cambiando la cadena de «true» a «false». Luego, recompila el APK, fírmalo con tu propia clave, instálalo y ejecútalo.

Si la aplicación detecta algún tipo de manipulación, debería denegar su ejecución o mostrar un error. Si se ejecuta sin problemas, significa que carece de una adecuada detección de manipulaciones, lo que constituye una vulnerabilidad.

Ahora hablemos de dos medidas de seguridad fundamentales: la detección de root y SSL Pinning.

La mayoría de las aplicaciones actuales cuentan con estas medidas de seguridad, lo que significa que para realizar una evaluación dinámica y otras comprobaciones de seguridad, es esencial eludirlas. Veamos una visión general de ambas.

¡Detección de root!

Si una aplicación detecta que el dispositivo está rooteado, puede negarse a ejecutarse, mostrar un error o restringir ciertas funciones.

Las aplicaciones emplean diversas técnicas para identificar el root. A continuación, se detallan las más comunes que podrías encontrar durante una evaluación:

¿Cómo eludir la detección de root?

Existen varios métodos para eludir la detección de root. A continuación, se presentan los más comunes:

Recuerda que la elusión es más efectiva cuando entiendes cómo detecta la aplicación el root. Lee el código, identifica las verificaciones y selecciona el método de elusión adecuado.

SSL Pinning

La fijación SSL es una medida que permite a la aplicación validar el certificado SSL del servidor con un certificado predefinido o una clave pública integrada. Esto previene ataques de intermediarios (MitM).

Con la fijación SSL, no puedes interceptar el tráfico utilizando Burp Suite ni ningún otro proxy, ya que la aplicación rechazará el certificado del proxy.

¿Cómo se implementa la fijación SSL?

Los desarrolladores pueden llevar a cabo la fijación SSL de diversas maneras. Aquí están las más comunes que podrás encontrar:

¿Cómo evitar las verificaciones de SSL Pinning?

Para completar tu evaluación, necesitas sortear estas verificaciones. Aunque sería ideal solicitar al desarrollador que las elimine, en un escenario de caja negra no podrás hacerlo.

A continuación, se presentan algunas soluciones para eludir la fijación SSL:

Conclusión

Hemos abarcado muchos aspectos en este artículo, proporcionando una base sólida para iniciar tus pruebas de penetración en Android. Sin embargo, este campo es mucho más amplio. Existen muchas áreas que aún necesitan ser exploradas, como WebView, enlaces profundos, problemas de memoria y cuestiones relacionadas con la criptografía.

Profundizaré en estos temas en artículos futuros, así que ¡mantente atento!

El documento «Todo sobre Pentesting en Android: Una Metodología Completa» fue creado por Xcheater

Consulta la Parte I


Con Información de blog.segu-info.com.ar