Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
ServiceCheater — PoC de CVE-2020-0113 y CVE-2020-0108 | Kitploit
Herramientas/GitHubGitHub/xdo0/servicecheater
Seguridad AndroidEscalada de PrivilegiosAnálisis de VulnerabilidadesExplotaciónSeguridad MóvilExplotación de Binarios
GitHubxdo0/servicecheater

ServiceCheater

PoC de CVE-2020-0113 y CVE-2020-0108

Ver Repositorio
23hace 5 añosAún no revisado

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

ServiceCheater

Poc of CVE-2020-0113 & CVE-2020-0108

Análisis de vulnerabilidad de escalada de privilegios del servicio en primer plano de Android

Antecedentes de la vulnerabilidad

En el parche de AOSP de 2020-08, se reveló una vulnerabilidad en el marco AMS, con el identificador CVE-2020-0108, clasificada como alta, y otra con el identificador CVE-2020-0313, clasificada como media. Es una vulnerabilidad lógica en el manejo del servicio en primer plano dentro de AMS. Un atacante que explote con éxito esta vulnerabilidad puede eludir la visualización de notificaciones del servicio en primer plano y continuar ejecutándose en segundo plano. El ataque debe ser iniciado por una aplicación maliciosa local, no requiere interacción del usuario. Si el usuario ha otorgado otros permisos a la aplicación, se pueden causar daños mayores, como el seguimiento continuo de ubicación o la grabación silenciosa.

El servicio en primer plano es un concepto introducido por Google en Android 8.0. Dado que Android 8.0 no permite iniciar servicios en segundo plano, se diseñó el concepto de servicio en primer plano. El servicio en primer plano tiene una prioridad más alta y puede ejecutarse en segundo plano durante mucho tiempo, pero debe vincular una notificación dentro de los 5 segundos posteriores a su inicio, de lo contrario será eliminado. En realidad, el servicio en primer plano aún se ejecuta en 'segundo plano', pero debido a que está vinculado a una notificación visible para el usuario, Google lo llama 'servicio en primer plano'.

Detalles de la vulnerabilidad y explotación

  • CVE-2020-0113

En el método onNotificationError de NotificationManagerService, no se manejan correctamente las excepciones en la visualización de notificaciones. Dado que este método solo llama a cancelNotification para cancelar la notificación, sin detener el servicio o toda la aplicación, el servicio en primer plano continúa ejecutándose sin mostrar la notificación.

root@kitploit:~
cancelNotification(callingUid, callingPid, pkg, tag, id, 0, 0, false, userId,REASON_ERROR, null);}
  • MalServiceA

Al crear un objeto RemoteViews, se especifica el ID de diseño como -1, que claramente es un valor no válido, lo que permite activar la devolución de llamada onNotificationError.

root@kitploit:~
RemoteViews remoteViews = new RemoteViews(getPackageName(), -1);
  • CVE-2020-0108

En el método postNotification de ServiceRecord.java, no se manejan correctamente las excepciones en la visualización de notificaciones, sino que se lanza la excepción al programa del usuario.

root@kitploit:~
ams.crashApplication(appUid, appPid, localPackageName, -1,
                        "Bad notification for startForeground: " + e);
  • MalServiceB

Se utiliza directamente un ID de canal no válido para construir la Notification.

root@kitploit:~
Notification notification = new NotificationCompat.Builder(this, "InvalidInvalidInvalid")

Además, ambos servicios necesitan capturar las excepciones del hilo principal, para que la aplicación no se bloquee.

Verificación de la vulnerabilidad

  • Entorno

Simulador Genymotion, Android 8.0, parche del 5 de septiembre de 2017

  • Grabación en segundo plano

Usar MediaRecord para grabar audio durante 10 segundos

  • Actualizar ubicación geográfica

Obtener usando LocationManager

  • Comparación

El servicio en primer plano normal (NormalService) tiene una notificación persistente en la barra de notificaciones, mientras que el Poc no tiene esta notificación.

Parche de la vulnerabilidad

Se fuerza el cierre de la aplicación en la devolución de llamada onNotificationError, y también se fuerza el cierre de la aplicación en el manejo de excepciones del método postNotification.

Referencias

[1] https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2020-0108

[2] https://github.com/wrlu/vulnerabilities/tree/master/CVE-2020-0108

[3] https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2020-0313

Descargar herramienta