Skip to content
KitploitKITPLOIT
ツールブログ
提出
ツールブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

··フィード·お問い合わせ·プライバシー·© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
ServiceCheater — CVE-2020-0113 および CVE-2020-0108 の Poc | Kitploit
ツール/GitHubGitHub/xdo0/servicecheater
Androidセキュリティ特権昇格脆弱性分析エクスプロイトモバイルセキュリティバイナリエクスプロイト
GitHubxdo0/servicecheater

ServiceCheater

CVE-2020-0113 および CVE-2020-0108 の Poc

リポジトリを見る
2315年前未レビュー

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有

ServiceCheater

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

Androidフォアグラウンドサービス権限昇格の脆弱性分析

脆弱性の背景

AOSPの2020-08パッチでは、フレームワーク層のAMSにおける脆弱性が開示され、番号はCVE-2020-0108、評価は高、もう1つは番号がCVE-2020-0313、評価は中です。AMSのフォアグラウンドサービス処理における論理的な脆弱性で、この脆弱性を悪用することに成功した攻撃者は、フォアグラウンドサービスの通知表示をバイパスし、バックグラウンドで稼働し続けることができます。攻撃はローカルの悪意あるアプリによって開始される必要があり、ユーザーの操作は不要です。ユーザーがアプリに他の権限を付与している場合、継続的な位置追跡やサイレント録音など、より大きな被害をもたらす可能性があります。

フォアグラウンドサービスは、GoogleがAndroid 8.0で導入した概念です。Android 8.0ではバックグラウンドでバックグラウンドサービスを起動することが許可されていないため、フォアグラウンドサービスの概念が設計されました。フォアグラウンドサービスは優先度が高く、長時間バックグラウンドで実行できますが、起動後5秒以内に通知をバインドする必要があり、そうしないと強制終了されます。実際にはフォアグラウンドサービスも「バックグラウンド」で実行されていますが、ユーザーに見える通知にバインドされているため、Googleはこれを「フォアグラウンドサービス」と呼んでいます。

脆弱性の詳細と悪用

  • CVE-2020-0113

NotificationManagerServiceのonNotificationErrorメソッドは、通知表示中の異常な状況を正しく処理していません。このメソッドは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

ServiceRecord.javaのpostNotificationメソッドでは、通知表示中の異常な状況を正しく処理せず、例外をユーザープログラムにスローしています。

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")

また、2つのServiceはどちらもメインスレッドの例外をキャッチする必要があり、これによりアプリはクラッシュしません。

脆弱性の検証

  • 環境

Genymotionエミュレータ、Android 8.0、2017年9月5日のパッチ

  • バックグラウンド録音

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

ツールをダウンロード