STBハックに関しては,対象型番:Picture Mate PCSTB1 (PC-STB1) 写真及び詳細 として行っている。
DNS | HOST | 用途 |
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 2001:d70:100a:1002::11 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 | ビデオの情報ファイル |
DNS | HOST | 用途 |
2001:d70:100a:1001::26 | ||
vcas.ondemandtv.co.jp | 2001:d70:100a:1002::102 2001:d70:100a:1002::103 2001:d70:100a:1002::104 | |
srm.ondemandtv.co.jp | 2001: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.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) |
基本的には、(SSLもごく一部で使用されている)殆どが7778/TCPで情報(XML)のやりとり等が行われている。
唯一ファームウェアのみが、Digest Authentication を用いており、アクセス制限が施されている。
それ以外の情報に関してはAuthrationが一切施されていないようだ。
尚、PPV(Pay Per View)に関してのみ、SSLで保護されている。
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
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
ビデオのコンテンツ情報がXMLで提供されている。
XMLには、
トランザクションごとの電子署名によって電子証明書が「成長」する度に特定のシリアルIDを発行させ、その32桁のシリアルIDを電子すかしの方法でトランザクション・ファイルに、しかもランダムに埋め込むという方法
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 -
チャンネルサービスを扱っているサーバとなる。
IPv6 Multicastを用い、Multicastに参加すると、映像が流れてくるようになる。
チャネルはポート番号で識別している
対応表は、後日作成予定です
insmod adv7174 d_line3
insmod dm320reg board=STB1
写真のCN700がシリアルポートの要。
4番ピンはGNDなのは判っているが,2,3 のどちらがTX/RXなのか現時点では不明。
通常のRS232Cのシリアルではなく,電圧等が違うよう。
携帯電話の通信ケーブルを持ってこれば可能の様子。
9-KEのケーブルでは繋がるような話を見つけることがでた(?)
see
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 # マウント
# 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
こんなコトしなくとも,任意の好きなパスワードを直接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])
# cat /root/version
/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
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を使い、書き込むように仕掛けられている。
上記の方法で,rootパスワードを書き換え,telnetログイン有効等にして,偽装サーバを立ち上げ,ファームウェアをSTBに流し込めばログイン出来るのではないかと考えられるが,まだ未検証。
メルコに言えば,GPLに基づく部分の開示があるのかしら!?
それともオンデマンドTVに?
STB開発はMELCOなのですよ。