* 目次[オンデマンドTV及びセットトップボックスハック] [#cf2d2e14]
STBハックに関しては,対象型番:Picture Mate PCSTB1(PC-STB1) [[写真:http://buffalo.jp/download/photo/p/pc-stb.html]]及び[[詳細:http://buffalo.jp/products/new/2004/089_1.html]] として行っている。
STBハックに関しては,対象型番:Picture Mate PCSTB1 (PC-STB1) [[写真:http://buffalo.jp/download/photo/p/pc-stb.html]]及び[[詳細:http://buffalo.jp/products/new/2004/089_1.html]] として行っている。
#contents
* オンデマンドTV の各種サーバ群について [#a839aa79]
** DNS及びホストレコード一覧(2007/1/13版) [#u7f0a142]
*** 基幹系サーバ [#b4e40bd1]
#table_edit2(edit=on,table_mod=close,auth_check_off,td_edit=off){{
|DNS|HOST|用途|h
|dnsv01w-v6.ondemandtv.co.jp|2001:d70:100a:1002::1|DNS|
|time.ondemandtv.co.jp|2001:d70:100a:1002::1|NTP|
|firm.ondemandtv.co.jp|2001:d70:100a:1002::1|ファームウェアの更新|
|svcd.ondemandtv.co.jp|2001:d70:100a:1002::10&br;2001:d70:100a:1002::11&br;2001:d70:100a:1002::13|ビデオの情報ファイル|
| + svcd01w-v6.ondemandtv.co.jp|2001:d70:100a:1002::10|ビデオの情報ファイル|
| + svcd02w-v6.ondemandtv.co.jp|2001:d70:100a:1002::11|ビデオの情報ファイル|
| + svcd03w-v6.ondemandtv.co.jp|2001:d70:100a:1002::13|ビデオの情報ファイル|
| + svcd04w-v6.ondemandtv.co.jp|2001:d70:100a:1002::14|ビデオの情報ファイル|
| + svcd05w-v6.ondemandtv.co.jp|2001:d70:100a:1002::15|ビデオの情報ファイル|
}}
*** 配信系サーバ [#vf5ae099]
#table_edit2(edit=on,table_mod=close,auth_check_off,td_edit=off){{
|DNS|HOST|用途|h
||2001:d70:100a:1001::26||
|vcas.ondemandtv.co.jp|2001:d70:100a:1002::102&br;2001:d70:100a:1002::103&br;2001:d70:100a:1002::104||
|srm.ondemandtv.co.jp|2001:d70:100a:1001::1000&br;2001:d70:100a:1001::1001&br;2001:d70:100a:1001::1002&br;2001:d70:100a:1001::1003|rtsp streaming server(Ondemand RTSP)|
| + srmcm1-v6.ondemandtv.co.jp|2001:d70:100a:1001::1000|rtsp streaming server(Ondemand RTSP)|
| + srmcm2-v6.ondemandtv.co.jp|2001:d70:100a:1001::1001|rtsp streaming server(Ondemand RTSP)|
| + srmcm3-v6.ondemandtv.co.jp|2001:d70:100a:1001::1002|rtsp streaming server(Ondemand RTSP)|
| + srmcm4-v6.ondemandtv.co.jp|2001:d70:100a:1001::1003|rtsp streaming server(Ondemand RTSP)|
|fecg01w-v6.ondemandtv.co.jp|2001:d70:100a:1003::1|TV Stream (Multicast Domain)|
|fecg02w-v6.ondemandtv.co.jp|2001:d70:100a:1003::2|TV Stream (Multicast Domain)|
|fecg03w-v6.ondemandtv.co.jp|2001:d70:100a:1003::3|TV Stream (Multicast Domain)|
|fecg04w-v6.ondemandtv.co.jp|2001:d70:100a:1003::4|TV Stream (Multicast Domain)|
|fecg05w-v6.ondemandtv.co.jp|2001:d70:100a:1003::5|TV Stream (Multicast Domain)|
|fecg06w-v6.ondemandtv.co.jp|2001:d70:100a:1003::6|TV Stream (Multicast Domain)|
||||
}}
* サービス詳細 [#ma523e00]
基本的には、(SSLもごく一部で使用されている)殆どが7778/TCPで情報(XML)のやりとり等が行われている。~
唯一ファームウェアのみが、Digest Authentication を用いており、アクセス制限が施されている。~
それ以外の情報に関してはAuthrationが一切施されていないようだ。~
尚、[[PPV(Pay Per View):http://ja.wikipedia.org/wiki/%E3%83%9A%E3%82%A4%E3%83%BB%E3%83%91%E3%83%BC%E3%83%BB%E3%83%93%E3%83%A5%E3%83%BC]]に関してのみ、SSLで保護されている。
** firm.ondemandtv.co.jp:7778 [#f5b767bc]
Digest認証を行っているため、認証に関してはデコードが出来ないが、接続ユーザ名はbuffaloとなっている。~
Digest認証についての詳細はこちら([[HTTP クライアントを作ってみよう(6) - Digest 認証編 -:http://x68000.q-e-d.net/~68user/net/http-auth-2.html]])を参照していただきたい。
尚、参考に、Basic認証であれば、[[base64でdecode出来る:http://x68000.q-e-d.net/~68user/net/http-auth-1.html]]ためDigest認証を用いているのだろう。デコードについては[[UNIXの部屋:openssl:http://x68000.q-e-d.net/~68user/unix/pickup?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
*** ブラウザでアクセス [#c50721f9]
#ref(stb-firm01.png)
** svcd01w-v6.ondemandtv.co.jp:7778 [#z193961b]
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) [#g03060b2]
ビデオのコンテンツ情報がXMLで提供されている。~
XMLには、
-検索用キーワード
-年、国
-映画説明
-ディレクター、-アクター
-ジャケット画像URL
- rtspアドレス
- 暗号方式(著作権保護)/verimatrix社のWaltermarking/PKIを利用([[詳細:http://www.homeelectronics.jp/products/mr21754_broadband_iptv.html]])
> トランザクションごとの電子署名によって電子証明書が「成長」する度に特定のシリアルIDを発行させ、その32桁のシリアルIDを電子すかしの方法でトランザクション・ファイルに、しかもランダムに埋め込むという方法
- PPV料金、視聴可能期限、PPV registration URL(code?)
- 放送期間(タイトルの有効期限)
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 [#he5e5503]
チャンネルサービスを扱っているサーバとなる。~
IPv6 Multicastを用い、Multicastに参加すると、映像が流れてくるようになる。~
チャネルはポート番号で識別している~
対応表は、後日作成予定です
* STBハードウェア仕様 [#xb9ac7a5]
- [[ADV7174 NTSC/PALビデオ・エンコーダ、チップ・スケール:http://www.analog.com/jp/prod/0,,765_798_ADV7174,00.html]]
>> insmod adv7174 d_line3
- busybox: ELF 32-bit LSB executable, ARM, version 1 (ARM), for GNU/Linux 2.6.5, dynamically linked (uses shared libs), stripped
- [[Sirial: dm320reg:http://www.yamasita.jp/linktheater/0602/060201.html]]
>> insmod dm320reg board=STB1
-- 恐らくシリアルが使えると思われる。~
** シリアルポート [#nce2c688]
写真のCN700がシリアルポートの要。~
4番ピンはGNDなのは判っているが,2,3 のどちらがTX/RXなのか現時点では不明。~
通常のRS232Cのシリアルではなく,電圧等が違うよう。~
携帯電話の通信ケーブルを持ってこれば可能の様子。
9-KEのケーブルでは繋がるような話を見つけることがでた(?)
see
#ref(PCSTB1-EA-02.jpg,PCSTB1-EA-02,25%)
* STB ファームウェアハック [#jdf68cd4]
STBハックに関しては,対象型番:Picture Mate PCSTB1(PC-STB1) [[写真:http://buffalo.jp/download/photo/p/pc-stb.html]]及び[[詳細:http://buffalo.jp/products/new/2004/089_1.html]] として行っている。
** パケットダンプしたデータの組み立て [#n6748a3e]
パケットダンプした結果を組み立てたところ,以下のような結果になった。~
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 [#b7b19adc]
# 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 [#reb3150e]
こんなコトしなくとも,任意の好きなパスワードを直接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])
// guesses: 0 time: 0:00:00:33 100% c/s: 4018 trying: zymurgy
** /root/version [#t6f70df7]
# cat /root/version
** STB独自のファイルたち [#jdae713d]
/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
#ref(ls.txt,ファイル一覧)
*** /usr/bin/select_dns [#t7d9ad03]
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_E1''、''DNS_E2''、のDNSサーバ使うように自動生成し、含まれていなければ、''DNS_W1''、''DNS_W2'' のDNSサーバを使うようになっている。
更に、pingが正常に通れば、 /etc/resolv.conf にechoを使い、書き込むように仕掛けられている。
** 箱へログインする方法 [#z20ff8d3]
上記の方法で,rootパスワードを書き換え,telnetログイン有効等にして,偽装サーバを立ち上げ,ファームウェアをSTBに流し込めばログイン出来るのではないかと考えられるが,まだ未検証。
** GPL? [#f7c8b13c]
メルコに言えば,GPLに基づく部分の開示があるのかしら!?~
それともオンデマンドTVに?
STB開発はMELCOなのですよ。
* コメント [#pc6ad178]
- 残りは後日追記なのですよ。 -- [[tomocha]] &new{2007-02-04 (日) 15:14:00};
#comment
添付ファイル:
PCSTB1-EA-02.jpg 685件
[詳細]
PCSTB1-EA-01.jpg 397件
[詳細]
ls.txt 820件
[詳細]
stb-firm01.png 714件
[詳細]