Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
ServiceCheater — PoC di CVE-2020-0113 e CVE-2020-0108 | Kitploit
Strumenti/GitHubGitHub/xdo0/servicecheater
Sicurezza AndroidEscalation di PrivilegiAnalisi delle VulnerabilitàExploitSicurezza MobileBinary Exploitation
GitHubxdo0/servicecheater

ServiceCheater

PoC di CVE-2020-0113 e CVE-2020-0108

Vedi Repository
235 anni faNon ancora revisionato

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

ServiceCheater

Poc di CVE-2020-0113 & CVE-2020-0108

Analisi della vulnerabilità di escalation dei privilegi del servizio in primo piano su Android

Contesto della vulnerabilità

Nel patch di AOSP di agosto 2020, è stata divulgata una vulnerabilità nel framework AMS, numerata CVE-2020-0108, con valutazione alta, e un'altra numerata CVE-2020-0313, con valutazione media. Una vulnerabilità logica nella gestione dei servizi in primo piano in AMS consente a un utente malintenzionato che la sfrutta con successo di bypassare la notifica del servizio in primo piano e continuare a funzionare in background. L'attacco deve essere avviato da un'applicazione locale dannosa e non richiede interazione da parte dell'utente. Se l'utente ha concesso altre autorizzazioni all'app, si possono causare danni maggiori, come il tracciamento continuo della posizione o la registrazione audio silenziosa.

Il servizio in primo piano è un concetto introdotto da Google in Android 8.0. Poiché Android 8.0 non consente l'avvio di servizi in background, è stato progettato il concetto di servizio in primo piano. I servizi in primo piano hanno una priorità più alta e possono funzionare a lungo in background, ma devono associare una notifica entro 5 secondi dall'avvio, altrimenti vengono terminati. In realtà, il servizio in primo piano continua a funzionare in 'background', ma poiché è associato a una notifica visibile all'utente, Google lo chiama 'servizio in primo piano'.

Dettagli della vulnerabilità e sfruttamento

  • CVE-2020-0113

Nel metodo onNotificationError di NotificationManagerService, le eccezioni nella visualizzazione delle notifiche non vengono gestite correttamente. Poiché il metodo chiama solo cancelNotification per annullare la notifica, senza terminare il servizio o l'intera applicazione, il servizio in primo piano continua a funzionare senza mostrare la notifica.

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

Quando si crea un oggetto RemoteViews, viene specificato un Layout ID di -1, che è chiaramente un valore non valido, in modo da attivare il callback onNotificationError.

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

Nel metodo postNotification di ServiceRecord.java, le eccezioni nella visualizzazione delle notifiche non vengono gestite correttamente, ma l'eccezione viene lanciata al programma utente.

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

Utilizza direttamente un ID canale non valido per costruire la Notification.

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

Inoltre, entrambi i Service devono catturare l'eccezione del thread principale, in modo che l'app non vada in crash.

Verifica della vulnerabilità

  • Ambiente

Emulatore Genymotion, Android 8.0, patch del 5 settembre 2017

  • Registrazione audio in background

Utilizza MediaRecord per registrare audio per 10 secondi

  • Aggiornamento posizione geografica

Ottenuto tramite LocationManager

  • Confronto

Il servizio in primo piano normale (NormalService) ha una notifica persistente nel pannello delle notifiche, mentre il PoC non ha questa notifica.

Patch della vulnerabilità

Nel callback onNotificationError, l'applicazione viene forzata al crash, anche nella gestione delle eccezioni del metodo postNotification viene forzato il crash dell'applicazione.

Riferimenti

[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

Scarica lo strumento