Last Update: 2014-08-17 (日) 21:29:40 (3750d)
FrontPage / network / オンデマンドTV

目次[オンデマンドTV及びセットトップボックスハック]

STBハックに関しては,対象型番:Picture Mate PCSTB1 (PC-STB1) 写真及び詳細 として行っている。

オンデマンドTV の各種サーバ群について

DNS及びホストレコード一覧(2007/1/13版)

基幹系サーバ

DNSHOST用途
dnsv01w-v6.ondemandtv.co.jp2001:d70:100a:1002::1DNS
time.ondemandtv.co.jp2001:d70:100a:1002::1NTP
firm.ondemandtv.co.jp2001:d70:100a:1002::1ファームウェアの更新
svcd.ondemandtv.co.jp2001:d70:100a:1002::10
2001:d70:100a:1002::11
2001:d70:100a:1002::13
ビデオの情報ファイル
 + svcd01w-v6.ondemandtv.co.jp2001:d70:100a:1002::10ビデオの情報ファイル
 + svcd02w-v6.ondemandtv.co.jp2001:d70:100a:1002::11ビデオの情報ファイル
 + svcd03w-v6.ondemandtv.co.jp2001:d70:100a:1002::13ビデオの情報ファイル
 + svcd04w-v6.ondemandtv.co.jp2001:d70:100a:1002::14ビデオの情報ファイル
 + svcd05w-v6.ondemandtv.co.jp2001:d70:100a:1002::15ビデオの情報ファイル

配信系サーバ

DNSHOST用途
2001:d70:100a:1001::26
vcas.ondemandtv.co.jp2001:d70:100a:1002::102
2001:d70:100a:1002::103
2001:d70:100a:1002::104
srm.ondemandtv.co.jp2001:d70:100a:1001::1000
2001:d70:100a:1001::1001
2001:d70:100a:1001::1002
2001:d70:100a:1001::1003
rtsp streaming server(Ondemand RTSP)
 + srmcm1-v6.ondemandtv.co.jp2001:d70:100a:1001::1000rtsp streaming server(Ondemand RTSP)
 + srmcm2-v6.ondemandtv.co.jp2001:d70:100a:1001::1001rtsp streaming server(Ondemand RTSP)
 + srmcm3-v6.ondemandtv.co.jp2001:d70:100a:1001::1002rtsp streaming server(Ondemand RTSP)
 + srmcm4-v6.ondemandtv.co.jp2001:d70:100a:1001::1003rtsp streaming server(Ondemand RTSP)
fecg01w-v6.ondemandtv.co.jp2001:d70:100a:1003::1TV Stream (Multicast Domain)
fecg02w-v6.ondemandtv.co.jp2001:d70:100a:1003::2TV Stream (Multicast Domain)
fecg03w-v6.ondemandtv.co.jp2001:d70:100a:1003::3TV Stream (Multicast Domain)
fecg04w-v6.ondemandtv.co.jp2001:d70:100a:1003::4TV Stream (Multicast Domain)
fecg05w-v6.ondemandtv.co.jp2001:d70:100a:1003::5TV Stream (Multicast Domain)
fecg06w-v6.ondemandtv.co.jp2001:d70:100a:1003::6TV Stream (Multicast Domain)

サービス詳細

基本的には、(SSLもごく一部で使用されている)殆どが7778/TCPで情報(XML)のやりとり等が行われている。
唯一ファームウェアのみが、Digest Authentication を用いており、アクセス制限が施されている。
それ以外の情報に関してはAuthrationが一切施されていないようだ。
尚、PPV(Pay Per View)に関してのみ、SSLで保護されている。

firm.ondemandtv.co.jp:7778

Digest認証を行っているため、認証に関してはデコードが出来ないが、接続ユーザ名はbuffaloとなっている。
Digest認証についての詳細はこちら(HTTP クライアントを作ってみよう(6) - Digest 認証編 -)を参照していただきたい。

尚、参考に、Basic認証であれば、base64でdecode出来るためDigest認証を用いているのだろう。デコードについてはUNIXの部屋:opensslが詳しい。

GET /buffalo/initrd.boot HTTP/1.1
Host: farm.ondemandtv.co.jp:7778
Pragma: no-cache
Accept: */*
X-FTV-USERID: (UserID)
X-FTV-STBID: (MacAddress)
X-FTV-IP: (STB IPv6 Address)

GET /buffalo/initrd.boot HTTP/1.1

Authorization: Digest username="buffalo", realm="buffalo", nonce="*******"", 
uri="/buffalo/initrd.boot", cnonce="MTE2ODYy", nc=00000001, qop="auth", response="*******"",
algorithm="MD5"

Host: farm.ondemandtv.co.jp:7778
Pragma: no-cache
Accept: */*
X-FTV-USERID: (UserID)
X-FTV-STBID: (MacAddress)
X-FTV-IP: (STB IPv6 Address)



HTTP/1.1 200 OK
Date: Fri, 12 Jan 2007 19:04:22 GMT
Server: Apache
Authentication-Info: rspauth="*******"", cnonce="MTE2ODYy", nc=00000001, qop=auth
Last-Modified: Fri, 12 Jan 2007 19:00:01 GMT
ETag: "*********************"
Accept-Ranges: bytes
Content-Length: 2262408
Content-Type: text/plain

ブラウザでアクセス

stb-firm01.png

svcd01w-v6.ondemandtv.co.jp:7778

GET /ujml/service1/dlgform_change_secretmode_password.ujbc HTTP/1.1
User-Agent: UIEPlayer-OnDemandTV-DM320-v3600-0
Host: svcd.ondemandtv.co.jp:7778
Accept: */*


HTTP/1.1 200 OK
Date: Fri, 12 Jan 2007 19:06:10 GMT
Server: Oracle-Application-Server-10g/10.1.2.0.0 Oracle-HTTP-Server (Unix) mod_ossl/10.1.2.0.0
mod_oc4j/3.0 mod_onsint/1.0
Last-Modified: Tue, 26 Dec 2006 04:07:34 GMT
ETag: "*****"
Accept-Ranges: bytes
Content-Length: 9244
Connection: close
Content-Type: text/plain; charset=ISO-8859-1

svcd.ondemandtv.co.jp:7778(svcd03w-v6.ondemandtv.co.jp:7778)

ビデオのコンテンツ情報がXMLで提供されている。
XMLには、

 Name                    Last modified      Size  Description
--------------------------------------------------------------------------------
adsl_stream/            13-Jan-2007          -   
adsl_stream_test/       13-Jan-2007          -   
download/               13-Jan-2007          -   
download_test/          13-Jan-2007          -   
ftth_stream/            13-Jan-2007          -   
ftth_stream2/           16-Dec-2006          -   
ftth_stream2_test/      13-Jan-2007          -   
ftth_stream_hsp/        13-Jan-2007          -   
ftth_stream_hsp_test/   13-Jan-2007          -   
ftth_stream_test/       13-Jan-2007          -   
hd_stream/              16-Dec-2006          -   
hd_stream_test/         24-Aug-2006          -   
info/                   13-Jan-2007          -   
jacket/                 12-Jan-2007          -   
logo/                   26-Dec-2006          -   

fecg*-v6.ondemandtv.co.jp

チャンネルサービスを扱っているサーバとなる。
IPv6 Multicastを用い、Multicastに参加すると、映像が流れてくるようになる。
チャネルはポート番号で識別している
対応表は、後日作成予定です

STBハードウェア仕様

シリアルポート

写真のCN700がシリアルポートの要。
4番ピンはGNDなのは判っているが,2,3 のどちらがTX/RXなのか現時点では不明。
通常のRS232Cのシリアルではなく,電圧等が違うよう。
携帯電話の通信ケーブルを持ってこれば可能の様子。 9-KEのケーブルでは繋がるような話を見つけることがでた(?)

see

PCSTB1-EA-02

STB ファームウェアハック

STBハックに関しては,対象型番:Picture Mate PCSTB1(PC-STB1) 写真及び詳細 として行っている。

パケットダンプしたデータの組み立て

パケットダンプした結果を組み立てたところ,以下のような結果になった。
initrd.boot というファイル名。gzip圧縮。圧縮を展開してmountしてみたところ以下のようになった。

tcptrace -e hoge.pcap				# データ領域の抽出

offsetがずれていたので以下のようにして修正。
echo 1 >test.txt
gzip test.txt
hd test.txt.gz					# hexで表示
hd initrd.boot |less				# hexで標示し,gzipの始まり '1f 8b'を探す。
						# 同様のことをバイナリエディタで行っても良い

dd skip=64 bs=1 if=initrd.boot of=inm.gz		# ずれたoffset(64byte)分をカット
gzip -d inm.gz  					# gzip圧縮を展開
mount -o loop inm /mnt				# マウント

Kernel 及び Platform

# file bin/busybox
busybox: ELF 32-bit LSB executable, ARM, version 1 (ARM), 
for GNU/Linux 2.6.5, dynamically linked (uses shared libs), stripped

/etc/passwd

こんなコトしなくとも,任意の好きなパスワードを直接shadowに書けば問題ないが,クラックしてみる。

john "/etc/passwd" --wordlist="./dict.txt" 
guesses: 0  time: 0:00:00:33 100%  c/s: 4018  trying: zymu***
Loaded 1 password hash (FreeBSD MD5 [32/32])

/root/version

# cat /root/version

STB独自のファイルたち

/usr/bin# ls -al
drwxr-xr-x  2 root root  1024 2006-10-11 15:09 .
drwxr-xr-x  5 root root  1024 2006-06-29 13:46 ..
-rwxr-xr-x  1 root root  5156 2006-07-13 11:45 dm320_ctrl
-rwxr-xr-x  1 root root 16808 2006-07-26 15:47 fwupdate
-rwxr-xr-x  1 root root  9264 2006-10-12 14:29 getstbinfo
-rwxr-xr-x  1 root root  6136 2006-10-11 14:32 httpget
-rwxr-xr-x  1 root root   244 2006-07-05 12:48 netcheck
-rwxr-xr-x  1 root root 10404 2006-10-12 14:26 picture
-rwxr-xr-x  1 root root   864 2005-05-21 21:39 select_dns
/usr/sbin# ls -la
drwxr-xr-x  2 root root  1024 2006-07-05 13:21 .
drwxr-xr-x  5 root root  1024 2006-06-29 13:46 ..
-rwxr-xr-x  1 root root  3292 2005-08-25 13:16 dm320_reset
-rwxr-xr-x  1 root root 60484 2005-03-31 21:43 ntpdate
fileファイル一覧

/usr/bin/select_dns

cat /usr/bin/select_dns

この中には、DNSサーバの一覧が記載されいる。

ただし、NTT東西では、IPv6のアドレス空間割当が異なり、NTT東西ではroutingされていない前提で設計・開発されているため、NTT東西では、違うアドレスが割り振られる。そのため、次のように対策をされている。

尚、設定されるDNSサーバは次の通りである。

DNS_W1=2001:d70:100a:1002::1
DNS_W2=2001:d70:100a:1002::10
DNS_E1=2001:c90:83:1002::1
DNS_E2=2001:c90:83:1002::10

仕組みとしては、スクリプトの中を見ればすぐにわかるが、 /proc/net/if_inet6 の結果を見て、etherのアドレスを取得し、 20010c90 が含まれていたら、DNS_E1DNS_E2、のDNSサーバ使うように自動生成し、含まれていなければ、DNS_W1DNS_W2 のDNSサーバを使うようになっている。

更に、pingが正常に通れば、 /etc/resolv.conf にechoを使い、書き込むように仕掛けられている。

箱へログインする方法

上記の方法で,rootパスワードを書き換え,telnetログイン有効等にして,偽装サーバを立ち上げ,ファームウェアをSTBに流し込めばログイン出来るのではないかと考えられるが,まだ未検証。

GPL?

メルコに言えば,GPLに基づく部分の開示があるのかしら!?
それともオンデマンドTVに?

STB開発はMELCOなのですよ。

コメント


添付ファイル: filePCSTB1-EA-02.jpg 685件 [詳細] filePCSTB1-EA-01.jpg 397件 [詳細] filels.txt 820件 [詳細] filestb-firm01.png 714件 [詳細]
TOPページへ戻るページの更新   ページの編集新しいページの作成新しい下位ページの作成そのページを引用して新規作成そのページにファイルの添付ページの削除ページ名の変更前回の編集内容の表示ページの凍結を解除するバックアップページの参照ページへのリンク元を表示   サイトのページ一覧サイト内単語検索編集したページの履歴削除したページの履歴   別ウィンドウでマニュアルページへ