Tutoriales y Manuales
Entradas Mensuales
-
▼
2025
(Total:
1688
)
-
▼
diciembre
(Total:
26
)
-
Microsoft soluciona silenciosamente la vulnerabili...
-
Pentesting en Android: metodología completa (I)
-
Fiscal de Arizona demanda a Temu por robo de datos
-
El presidente de España pide que Mark Zuckerberg d...
-
Microsoft actualiza la lista de CPUs Intel y AMD c...
-
Lo más buscado en Google y lo más peguntado a Amaz...
-
Las 10 extensiones favoritas de Google para IA con...
-
El Agente de IA Antigravity de Google borra todo e...
-
Vulnerabilidades críticas en React y Next.js
-
Micron liquida la marca Crucial para mejorar el su...
-
China impone nuevas normativas sobre las baterías ...
-
CEO de IBM advierte que la construcción de centros...
-
La botnet Aisuru realiza un nuevo ataque DDoS réco...
-
Windows 11 necesitaría un Service Pack
-
Let's Encrypt disminuirá la caducidad de los certi...
-
Ya disponible FreeBSD 15
-
Google soluciona 107 fallos en Android
-
Samsung presenta el Galaxy Z TriFold, un móvil ple...
-
Repositorios públicos de GitLab expusieron más de ...
-
DeepSeek presenta su nuevo modelo IA con razonmie...
-
ONLYOFFICE Docs 9.2: la suite ofimática estrena co...
-
Gemini 3 vs GPT-5.1: diferencias clave, rendimient...
-
TaskHound: automatizando la detección de tareas pr...
-
Todo lo que el navegador web revela por defecto si...
-
Windows 11 sigue siendo más lento que Windows 10
-
Seis grupos extranjeros de ciberespionaje, princip...
-
- ► septiembre (Total: 148 )
-
▼
diciembre
(Total:
26
)
-
►
2024
(Total:
1110
)
- ► septiembre (Total: 50 )
-
►
2023
(Total:
710
)
- ► septiembre (Total: 65 )
-
►
2022
(Total:
967
)
- ► septiembre (Total: 72 )
-
►
2021
(Total:
730
)
- ► septiembre (Total: 56 )
-
►
2020
(Total:
212
)
- ► septiembre (Total: 21 )
-
►
2019
(Total:
102
)
- ► septiembre (Total: 14 )
-
►
2017
(Total:
231
)
- ► septiembre (Total: 16 )
-
►
2016
(Total:
266
)
- ► septiembre (Total: 38 )
-
►
2015
(Total:
445
)
- ► septiembre (Total: 47 )
-
►
2014
(Total:
185
)
- ► septiembre (Total: 18 )
-
►
2013
(Total:
100
)
- ► septiembre (Total: 3 )
-
►
2011
(Total:
7
)
- ► septiembre (Total: 1 )
Blogroll
Etiquetas
Entradas populares
-
ClothOff es una app que utiliza inteligencia artificial generativa para desnudar a cualquier persona a partir de fotografías con ropa que...
-
Además de las temidas cookies y de que la dirección IP figura en las peticiones que se hacen de páginas web, el navegador revela sin que l...
-
A partir de 2026, la validez de los certificados digitales disminuirá gradualmente, pasando de 398 días a 47 días para 2029 . Let's Encr...
Pentesting en Android: metodología completa (I)

El documento "All About Android Pentesting: A Complete Methodology" fue desarrollador por Xcheater
Android está en todas partes. Miles de millones de dispositivos, millones de aplicaciones y una enorme superficie de ataque que crece día a día. Así que, por supuesto, debemos centrarnos en su seguridad. Hoy voy a hablar sobre mi metodología de pentesting en Android, que sigo desde hace años. Esto será útil tanto para los nuevos usuarios como para algunos con experiencia.
Pero sí, la verdad es que esta lista de verificación o metodología puede ser demasiado larga. Y no siempre se recomienda seguir todos los pasos. Pero sí, tenla en cuenta.
Supongo que ya tienes una configuración para el pentesting en Android. Tienes tu dispositivo rooteado y cumples con otros requisitos básicos. No vamos a cubrirlos. Además, para esta metodología, me centro en un enfoque de dispositivo rooteado, que te dará libertad para múltiples cosas, las cuales utilizaremos en nuestras pruebas de penetración.
Recopilación de información básica
¿Qué archivos incluye el paquete?
Extrae el APK y examina su estructura. Puedes usar APKtool para esto o simplemente renombra test.apk a test.zip y extráelo.
¿Qué biblioteca nativa usa la aplicación?
Aunque podemos obtener esta información más tarde, después de descompilar, puedes revisar la carpeta `lib/` para encontrar las bibliotecas nativas. A veces también se pueden ver algunos archivos `.so` personalizados.
Si estás realizando pruebas de penetración de caja blanca, solicita estos detalles al desarrollador.
Ahora es necesario entender que en las pruebas de penetración de Android tenemos dos partes: análisis estático y análisis dinámico. El análisis estático implica examinar el código de la aplicación sin ejecutarlo. Aquí es donde encontramos secretos codificados, claves API y fallos lógicos.
Primero, profundicemos en el análisis estático. El primer paso es descompilar la aplicación. Puedes usar apktool o la interfaz gráfica de JADX. Prefiero la interfaz gráfica de JADX, que es muy útil y fácil de entender en comparación con apktool. Aunque también puedes encontrar la interfaz gráfica de APKtool UI.
AndroidManifest.xml
Empecemos directamente con AndroidManifest.xml. Piensa en este archivo como el plano de toda la aplicación. Es como un mapa que te muestra todo sobre la estructura, los permisos, los componentes y la configuración de seguridad de la aplicación, todo en un solo lugar. Este único archivo puede revelar una gran superficie de ataque.
Se pueden encontrar muchísimas vulnerabilidades con solo leer este archivo: actividades exportadas sin autenticación, aplicaciones de producción depurables, copias de seguridad habilitadas con datos confidenciales; todo visible en XML simple. Por eso siempre empiezo aquí. Es la forma más rápida de encontrar las oportunidades más fáciles.
Permisos de la aplicación: comprueba qué permisos solicita la aplicación y busca permisos peligrosos que los requieran. ¿Por qué la aplicación necesita esos permisos? ¿Son necesarios?
<uses-permission android:name="android.permission.READ_CONTACTS" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
Copia de seguridad habilitada: comprueba si
<application android:allowBackup="true"> está habilitado.
Si está habilitado, un usuario adversario puede usar la herramienta ADB para
acceder a los datos de copia de seguridad de la aplicación, lo que puede
exponer preferencias compartidas, bases de datos y archivos internos. Si esta
opción no aparece en el manifiesto, se define como "true" por
defecto. Por lo tanto, si no ves el atributo "allowBackup", la
copia de seguridad sigue habilitada.
Indicador de depuración: comprueba si
<application android:debuggable=true> está configurado como
verdadero. Un usuario adversario puede adjuntar el depurador, leer la memoria
del proceso y modificar variables en tiempo de ejecución. A diferencia de "allowBackup", este indicador NO está habilitado por defecto (su valor
predeterminado es `false`). Sin embargo, a veces los desarrolladores lo
dejan habilitado accidentalmente en compilaciones de producción o se configura
como verdadero durante el desarrollo.
Configuración de seguridad de red: Comprueba si la fijación de certificados está implementada o si se permite el tráfico de texto sin cifrar. Si se permite el tráfico de texto sin cifrar, se trata de una vulnerabilidad.
<network-security-config>
<base-config cleartexttrafficpermitted="true">
<trust-anchors>
<certificates src="system">
</certificates></trust-anchors>
</base-config>
</network-security-config>
Si se establece cleartextTrafficPermitted=true, la aplicación
permite conexiones HTTP, lo que significa que el tráfico puede ser
interceptado y modificado. Esto representa una vulnerabilidad.
Versiones mínima, máxima y de destino del SDK: Las versiones anteriores del SDK tienen una seguridad más débil. Si la aplicación utiliza SDK antiguos, no será compatible con las funciones de seguridad modernas. La aplicación debe usar la versión más reciente del SDK.
Componentes de la aplicación exportados: Busca los componentes
exportados. Hay cuatro componentes (actividades, servicios, proveedores y
receptores). Si android:exported = true está presente, significa
que se puede llamar de forma independiente, lo que puede usarse con fines
maliciosos o para eludir algunas funciones de seguridad.
- Actividades (Activities): son básicamente las pantallas de la interfaz de usuario, como la página de inicio, la pantalla de inicio, etc. Si se exportan, otras aplicaciones pueden iniciarlas directamente. Así, puedes omitir la pantalla de inicio e ir directamente a la página de inicio.
- Servicios (Services): se ejecutan en segundo plano, realizando algunas tareas sin mostrar la interfaz de usuario. Si se exportan, otras aplicaciones pueden iniciarlos o detenerlos. Pueden usarse para activar algunas acciones sin que el usuario lo sepa.
- Proveedores de contenido (Content Providers): comparten datos entre aplicaciones. Si se exportan, otras aplicaciones pueden consultarlos y leerlos, como información del usuario, tokens y datos de la base de datos. Aquí es donde se encuentran las fugas de datos.
- Receptores de difusión (Broadcast Receivers): escuchan los mensajes del sistema, como cuando se inicia el teléfono o se reciben SMS, etc. Si se exportan, las aplicaciones maliciosas pueden activarlos. Se puede utilizar para realizar acciones sin interacción del usuario.
Busca cadenas interesantes: busca cadenas interesantes como contraseñas, URL, claves API, claves de cifrado, puertas traseras, tokens y UUID. En ocasiones, puedes obtener secretos codificados e incrustados en la aplicación. Estos secretos pueden utilizarse posteriormente, tal vez aprovechando filtraciones de claves API o algún hallazgo lógico.
Aquí se puede usar automatización, con una herramientas como apkurlgrep o una utilidad como string o regex a través de la interfaz gráfica de usuario de JADX.
Configuración incorrecta de Firebase: al analizar una cadena interesante, podrías obtener una URL de Firebase como https://xyz.firebaseio.com/; generalmente la encontrarás en res/values/strings.xml. Por lo tanto, vale la pena revisar los problemas de configuración incorrecta de Firebase. Simplemente ve al navegador y navega a la URL encontrada: https://xyz.firebaseio.com/.json.
Observarás dos tipos de respuesta:
- Permiso denegado: Esto significa que no puedes acceder a ella, por lo que está bien configurada. Continúa.
- Respuesta nula o un montón de datos JSON: Esto significa que la base de datos es pública y que al menos tienes acceso de lectura.
Si recibiste la segunda respuesta, no te quedes ahí, comprueba si tienes más que acceso de lectura; es decir, si puedes escribir algo allí.
curl -X PUT "https://xyz.firebaseio.com/test.json" -d '{"test":"data"}'
# If successful, check for delete access (be careful!)
curl -X DELETE "https://xyz.firebaseio.com/test.json"
Bien, ya hemos cubierto los fundamentos del análisis estático. Ahora hablemos de dónde almacenan las aplicaciones datos confidenciales. Aquí es donde se encuentran muchas vulnerabilidades.
Continuará...
Fuentes:
http://blog.segu-info.com.ar/2025/12/pentesting-en-android-metodologia-I.html
Entrada más reciente
1 comentarios :
(づ◡﹏◡)づ
Publicar un comentario
Los comentarios pueden ser revisados en cualquier momento por los moderadores.
Serán publicados aquellos que cumplan las siguientes condiciones:
- Comentario acorde al contenido del post.
- Prohibido mensajes de tipo SPAM.
- Evite incluir links innecesarios en su comentario.
- Contenidos ofensivos, amenazas e insultos no serán permitidos.
Debe saber que los comentarios de los lectores no reflejan necesariamente la opinión del STAFF.