Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
ServiceCheater — Preuve de concept de CVE-2020-0113 & CVE-2020-0108 | Kitploit
Outils/GitHubGitHub/xdo0/servicecheater
Sécurité AndroidEscalade de PrivilègesAnalyse des VulnérabilitésExploitationSécurité MobileExploitation de Binaires
GitHubxdo0/servicecheater

ServiceCheater

Preuve de concept de CVE-2020-0113 & CVE-2020-0108

Voir le dépôt
23il y a 5 ansPas encore vérifié

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

ServiceCheater

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

Analyse de la vulnérabilité d'élévation de privilèges des services de premier plan sous Android

Contexte de la vulnérabilité

Dans le correctif AOSP d'août 2020, une vulnérabilité dans la couche framework AMS a été divulguée, référencée CVE-2020-0108, avec un niveau de gravité élevé, et une autre, référencée CVE-2020-0313, avec un niveau de gravité moyen. Il s'agit d'un défaut logique dans le traitement des services de premier plan dans AMS. Un attaquant qui exploite avec succès cette vulnérabilité peut contourner l'affichage de la notification du service de premier plan et continuer à s'exécuter en arrière-plan. L'attaque doit être lancée par une application malveillante locale, sans interaction de l'utilisateur. Si l'utilisateur a accordé d'autres permissions à l'application, cela peut causer des dommages plus importants, par exemple en suivant en continu la position ou en enregistrant silencieusement.

Les services de premier plan sont un concept introduit par Google dans Android 8.0. Étant donné qu'Android 8.0 n'autorise pas le démarrage de services en arrière-plan, le concept de service de premier plan a été conçu. Les services de premier plan ont une priorité élevée et peuvent s'exécuter longtemps en arrière-plan, mais ils doivent être liés à une notification dans les 5 secondes suivant leur démarrage, sinon ils sont tués. En réalité, les services de premier plan s'exécutent toujours en « arrière-plan », mais comme ils sont liés à une notification visible par l'utilisateur, Google les appelle « services de premier plan ».

Détails de la vulnérabilité et exploitation

  • CVE-2020-0113

La méthode onNotificationError dans NotificationManagerService ne gère pas correctement les exceptions lors de l'affichage des notifications. Comme cette méthode se contente d'appeler cancelNotification pour annuler la notification, sans arrêter le service ou l'application entière, le service de premier plan continue de s'exécuter sans afficher de notification.

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

Lors de la création d'un objet RemoteViews, l'ID de mise en page (Layout ID) est spécifié à -1, ce qui est clairement une valeur invalide, permettant ainsi de déclencher le rappel onNotificationError.

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

Dans la méthode postNotification de ServiceRecord.java, les exceptions lors de l'affichage des notifications ne sont pas correctement gérées, mais l'exception est renvoyée au programme utilisateur.

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

Utilise directement un ID de canal invalide pour construire la Notification.

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

Les deux autres services doivent capturer les exceptions du thread principal, afin que l'application ne plante pas.

Validation de la vulnérabilité

  • Environnement

Émulateur Genymotion, Android 8.0, correctif du 5 septembre 2017

  • Enregistrement en arrière-plan

Utilisation de MediaRecord pour enregistrer 10 secondes

  • Mise à jour de la position géographique

Obtenue à l'aide de LocationManager

  • Comparaison

Un service de premier plan normal (NormalService) a une notification persistante dans la barre de notification, tandis que le Poc n'a pas cette notification.

Correctif de la vulnérabilité

Forcer le plantage de l'application dans le rappel onNotificationError, et également forcer le plantage dans la gestion des exceptions de la méthode postNotification.

Références

[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

Télécharger l’outil