Skip to content
KitploitKITPLOIT
FerramentasBlog
Enviar
FerramentasBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
ServiceCheater — PoC de CVE-2020-0113 & CVE-2020-0108 | Kitploit
Ferramentas/GitHubGitHub/xdo0/servicecheater
Segurança AndroidEscalada de PrivilégiosAnálise de VulnerabilidadesExploraçãoSegurança MóvelExploração de Binários
GitHubxdo0/servicecheater

ServiceCheater

PoC de CVE-2020-0113 & CVE-2020-0108

Ver Repositório
231há 5 anosAinda não revisado

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar

ServiceCheater

Poc do CVE-2020-0113 & CVE-2020-0108

Análise da vulnerabilidade de elevação de privilégio do serviço em primeiro plano do Android

Contexto da vulnerabilidade

No patch de 2020-08 do AOSP, foi divulgada uma vulnerabilidade no framework AMS, identificada como CVE-2020-0108, com classificação alta, e outra identificada como CVE-2020-0313, com classificação média. Trata-se de uma falha lógica no tratamento de serviços em primeiro plano no AMS. Um invasor que explore com sucesso essa vulnerabilidade pode contornar a exibição da notificação do serviço em primeiro plano e continuar executando em segundo plano. O ataque precisa ser iniciado por um aplicativo malicioso local, sem exigir interação do usuário. Se o usuário conceder outras permissões ao aplicativo, isso pode causar danos maiores, como rastreamento contínuo de localização ou gravação silenciosa de áudio.

O serviço em primeiro plano é um conceito introduzido pelo Google no Android 8.0. Como o Android 8.0 não permite iniciar serviços em segundo plano a partir de um serviço em segundo plano, foi criado o conceito de serviço em primeiro plano. Esse serviço tem prioridade mais alta e pode ser executado por um longo período em segundo plano, mas deve associar uma notificação em até 5 segundos após a inicialização; caso contrário, será encerrado. Na prática, o serviço em primeiro plano ainda é executado "em segundo plano", mas, como está vinculado a uma notificação visível ao usuário, o Google o chama de "serviço em primeiro plano".

Detalhes e exploração da vulnerabilidade

  • CVE-2020-0113

No método onNotificationError do NotificationManagerService, as exceções durante a exibição da notificação não são tratadas corretamente. Como esse método apenas chama cancelNotification para cancelar a notificação sem encerrar o serviço ou o aplicativo inteiro, o serviço em primeiro plano continua sendo executado sem exibir a notificação.

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

Ao criar um objeto RemoteViews, o Layout ID é definido como -1, que obviamente é um valor inválido, acionando o callback onNotificationError.

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

No método postNotification do ServiceRecord.java, as exceções durante a exibição da notificação não são tratadas corretamente; em vez disso, a exceção é lançada para o programa do usuário.

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

Usa diretamente um Channel ID inválido para construir a Notification.

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

Além disso, ambos os serviços precisam capturar a exceção da thread principal para que o aplicativo não pare.

Verificação da vulnerabilidade

  • Ambiente

Emulador Genymotion, Android 8.0, patch de 5 de setembro de 2017

  • Gravação em segundo plano

Usa MediaRecord para gravar áudio por 10 segundos

  • Atualização da localização geográfica

Obtida usando LocationManager

  • Comparação

Um serviço normal em primeiro plano (NormalService) possui uma notificação permanente na barra de notificações, enquanto o PoC não possui essa notificação.

Correção da vulnerabilidade

No callback onNotificationError, força o aplicativo a falhar e, no tratamento de exceção do método postNotification, também força o aplicativo a falhar.

Referências

[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

Baixar ferramenta