Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
ServiceCheater — Poc для CVE-2020-0113 и CVE-2020-0108 | Kitploit
Инструменты/GitHubGitHub/xdo0/servicecheater
Безопасность AndroidПовышение привилегийАнализ уязвимостейЭксплуатацияМобильная безопасностьЭксплуатация Бинарных Файлов
GitHubxdo0/servicecheater

ServiceCheater

Poc для CVE-2020-0113 и CVE-2020-0108

Репозиторий
235 лет назадЕщё не проверено

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

ServiceCheater

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

Анализ уязвимости повышения привилегий служб переднего плана Android

Предыстория уязвимости

В патче AOSP от 2020-08 была раскрыта уязвимость в AMS (Activity Manager Service) под номером CVE-2020-0108 с высоким рейтингом, а также другая уязвимость CVE-2020-0313 со средним рейтингом. Логическая ошибка в обработке служб переднего плана в AMS позволяет атакующему, успешно эксплуатирующему эту уязвимость, обойти отображение уведомления службы переднего плана и продолжать работу в фоне. Атака должна быть инициирована вредоносным приложением на устройстве, не требует взаимодействия с пользователем. Если пользователь предоставил приложению другие разрешения, это может привести к более серьезным последствиям, например, к непрерывному отслеживанию местоположения или скрытой записи звука.

Службы переднего плана - это концепция, введенная Google в Android 8.0. Поскольку Android 8.0 запрещает запуск фоновых служб из фона, была разработана концепция служб переднего плана. Службы переднего плана имеют более высокий приоритет и могут работать в фоне длительное время, но в течение 5 секунд после запуска должны быть привязаны к уведомлению, иначе они будут завершены. Фактически служба переднего плана все еще работает в "фоне", но из-за привязки к видимому пользователем уведомлению Google называет ее "службой переднего плана".

Детали уязвимости и эксплуатация

  • CVE-2020-0113

В методе onNotificationError в NotificationManagerService не была корректно обработана исключительная ситуация при отображении уведомления. Поскольку этот метод просто вызывает cancelNotification для отмены уведомления, но не завершает службу или все приложение, служба переднего плана продолжает работать без отображения уведомления.

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

При создании объекта RemoteViews был указан Layout ID = -1, что явно является недопустимым значением. Это позволяет вызвать обратный вызов onNotificationError.

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

В методе postNotification в ServiceRecord.java исключительная ситуация при отображении уведомления не была обработана корректно, вместо этого исключение было передано пользовательской программе.

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

Непосредственно используется недопустимый Channel ID для создания Notification.

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

Оба других Service должны перехватывать исключения в основном потоке, чтобы приложение не аварийно завершалось.

Проверка уязвимости

  • Окружение

Эмулятор Genymotion, Android 8.0, патч от 5 сентября 2017 года.

  • Фоновая запись звука

Используется MediaRecord для записи звука в течение 10 секунд.

  • Обновление геолокации

Получается с помощью LocationManager.

  • Сравнение

Обычная служба переднего плана (NormalService) имеет постоянное уведомление в панели уведомлений, а PoC не имеет этого уведомления.

Исправление уязвимости

В обратном вызове onNotificationError принудительно вызывается аварийное завершение приложения, и в обработке исключений метода postNotification также принудительно вызывается аварийное завершение.

Ссылки

[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

Скачать инструмент