免费教程_免费网赚教程_破解版软件-寂涯网络学习基地

当前位置: 主页 > 系统综合 > 系统安全 > 谁遥控了我的电视?—中兴机顶盒IPTV安全(5)

谁遥控了我的电视?—中兴机顶盒IPTV安全(5)

时间:2011-12-06 22:20来源:未知 整理:寂涯网络 点击:


or r3, r7  //r3“或”r7,r7为“00 00 B2 B3”
B3  B2  B1  B0
A3  A2  A1  A0
mov.l off_40493C, r3 ; unk_42B2B8
or r2, r0  //r2“或”r0,r0为“00 00 A0 A1”
or r6, r1  //r6“或”r1,r1为“B0 B1 00 00”
cmp/eq #1, r0 //r0=1时,T置 1
or r1, r7  //r1“或”r7,r7为“B0 B1 B2 B3”
mov.w r0, @r3 
mov.l r7, @(4,r3) //这两条指令将转换后的数据重新写回 unk_42B2B8 变量,完成
数据(命令)格式转换。转换后,r0(前 4字节)为命令,r7(后4 字节)为参数。
bt/s loc_404950 
cmp/eq #4, r0
bf/s loc_4048B6
cmp/eq #h'10, r0
bra loc4049E0
B0  B1  B2  B3
00  00  A0  A1

nop
loc_4048B6:
bf/s loc_4048BE
cmp/eq r9, r0
bra loc_40511E
nop
 
loc_4048BE:
bt/s loc_4048D8
cmp/eq #h'40, r0
bt loc_4048D8
mov.w word_4048F0, r1 ; h'400
cmp/eq r1, r0
bt loc_4048D8
mov.w word_4048F2, r1 ; h'1000
cmp/eq r1, r0
bt loc_4048D8
mov.w word_4048F4, r1 ; h'4000
mov.l off_40494C, r4 ; aReceiveWrongCo ; "Receive Wrong Command !\n"
cmp/eq r1, r0
bf loc_40486A
… (略)//假如命令(r0 寄存器)不为1、4、h'10、h'100、h'40、h'400、h'1000、
h'4000 等时,输出“Receive Wrong Command !\n”并断开连接。 

通过分析,我们可以得知:1)中兴机顶盒的配置程序 stbcfg 接收的命令数据长度为 8
字节;2)接收后对命令进行相应的转换,前两个字节反序,第3和 4个字节置为“00”,后
四个字节反序,即网络字节顺序转换;3)转换后,前4 字节为命令,后4 字节为参数;4)
命令应该为h'1、h'4、h'10、h'100、h'40、h'400、h'1000、h'4000 等数值,否则输出“Receive
Wrong Command !”并断开连接。假如我们通过客户端提交 8 字节长的数据
“#$01#$02#$03#$04#$05#$06#$07#$08”,前 4 字节对应的十六进制值为“h'102”,由于不
是设定的命令数值,所以超级终端会输出“Receive Wrong Command !”并断开连接。
继续分析后面的汇编代码,我们就会得出以上数值对应命令所完成的功能,如下: 

命令数值  超级终端输出字符串  功能说明
h'1  System Password Command  客户端认证过程,密码为“654321”。此过程非必须,
不经过认证,也可以直接提交其它命令。
h'4  Config Command  修改机顶盒的各种配置。客户端提交的命令后 4 个
字节(即命令参数)为接收新配置数据的缓冲区长
度,不能为 0,另外对接收的新配置数据进行格式验
证,比如:IP、MAC、NetMask、GateWay等。
h'10  Reboot Command  重启机顶盒。成功时向客户端发送“h'2000”  (十
六进制)数据。
h'100  inetd Command  命令参数为 0 时,调用“ execv ”执行
“/usr/sbin/telnetd”,开启 telnetd 服务。
h'40  RemoteSetCfg command  检查并获取机顶盒配置参数。命令参数数值为 2,比
如“ #$00#$40#$00#$00#$00#$00#$00#$02 ”,
B600V4A等型号加密后发送。
h'400  Check STB TYPE Command  读取机顶盒型号文件/etc/hw.inf 和/etc/sw.inf,并向客
户端发送数据,B600V4A等型号加密后发送。
h'1000  Coreup command  执行/var/coreup.sh 脚本命令,sub_40443C。命令参
数为接收数据的长度。
h'4000  Coreup_print command  显示/var/coreup_print.txt 文件,即  coreup.sh 脚本执
行结果。 

在 stbcfg 反汇编代码中搜索相应的字符串,比如“Reboot Command”、“inetd Command”
等,就可以定位到关键代码,本文不做逐一分析。
1、“Reboot Command”命令。客户端发送“#$00#$10#$00#$00#$00#$00#$00#$00” 字
符串,重启远程机顶盒。
2、“inetd Command”命令。 客户端发送字符串“#$01#$00#$00#$00#$00#$00#$00#$00”,
开启机顶盒 telnetd 服务,所有型号的中兴IPTV机顶盒受此影响,比如:B600(V3、V4、
V4A)和B700(V2)等。

3、“RemoteSetCfg command”命令。当客户端提交“#$00#$40#$00#$00#$00#$00

本页地址 http://www.jybase.net/xitonganquan/20111206699.html

百度搜索更多

谷歌搜索更多

顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------

评价:
昵称: 验证码:点击我更换图片
推荐内容
赞助商
赞助商


关于本站免责声明视频更新google百度地图视频地图RRS订阅

如有什么问题请在本站留言,或发邮件到 hxt167#foxmail.com