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

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

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

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


...   
bra loc_404484 //输出“Malloc Error! ”,退出
mov #-1, r0
loc_4044A4:
mov.l r0, @r15
mov.l off_404568, r0 ; memset
mov r10, r6
mov.l off_40456C, r12 ; strlen
mov.l off_404570, r10 ; write
jsr @r0 ; memset  //初始化新内存空间
mov #0, r5
mov.l off_404574, r0 ; sprintf 

add #-4, r15
mov.l off_404578, r1 ; aVarCoreup_prin ; "/var/coreup_print.txt"
mov.l @(4,r9), r7
mov.l  @(4,r15), r4
mov.l r1, @r15
mov.l off_40457C, r5 ; a_CoreupSDS ; "./coreup %s %d >> %s"
jsr @r0 ; sprintf  //保存执行结果到/var/coreup_print.txt
mov r8, r6
mov.l off_404580, r0 ; open
add #4, r15
mov.w word_404540, r6 ; h'1ED //创建的文件权限
mov.l off_404584, r4 ; aVarCoreup_sh ; "/var/coreup.sh"
jsr @r0 ; open
mov #h'42, r5  //O_CREAT,打开失败则创建
mov.l off_404588, r8 ; aBinSh ; "#!/bin/sh\n"
mov r0, r9  //r9为“/var/coreup.sh”文件句柄
mov.l off_40458C, r11 ; aCdBinStb ; "cd /bin/stb\n"
jsr @r12 ; strlen //获得字符串“#!/bin/sh\n”长度
mov r8, r4
mov r8, r5
mov r0, r6
jsr @r10 ; write 
mov r9, r4
//函数原型:int write(int handel, void *buf, int nbyte); 
//调用 write 函数,将字符串“#!/bin/sh\n”,写入文件“/var/coreup.sh”
jsr @r12 ; strlen
mov r11, r4
mov r11, r5
mov r9, r4
jsr @r10 ; write
mov r0, r6
//调用 write 函数,将字符串“cd /bin/stb\n”,写入文件“/var/coreup.sh”
mov.l  @r15, r4
jsr @r12 ; strlen
nop
mov.l  @r15, r5
mov r0, r6
jsr @r10 ; write
mov r9, r4
//调用 write 函数,将接收的数据(必须以“http://”开头),写入文件“/var/coreup.sh” 
mov.l off_404590, r0 ; close
jsr @r0 ; close
mov r9, r4
mov.l off_404558, r0 ; printf
mov.l  @r15, r5
mov.l  off_404594, r4 ; aCommandExecCra ; "Command exec ::
/cramfs/bin/coreup %s\n"
jsr @r0 ; printf
nop
mov.l off_404598, r0 ; vfork
jsr @r0 ; vfork  //调用 vfork 创建进程,然后调用exec函数执行另外的程序
nop
tst r0, r0
bf/s loc_404520
mov r15, r5
mov.l  off40459C, r0 ; execv 

mov.l off_404584, r4 ; aVarCoreup_sh ; "/var/coreup.sh"
jsr @r0 ; execv 
add #4, r5
//执行/var/coreup.sh,内容如下:
//=================
#!/bin/sh
cd /bin/stb
./coreup http://dddddddddddd 0 >> /var/coreup_print.txt
//=================
loc_404520:
mov.l off_4045A0, r1 ; free
mov.l @r15, r4
jsr @r1 ; free
nop
mov #0, r0
loc_40452A:
...(略)
rts
nop
; End of function sub_40443C

通过调用 sub_40443C 过程,机顶盒首先创建/var/coreup.sh 脚本文件,然后调用 coreup
程序执行远程文件,并将执行结果保存到/var/coreup_print.txt文件中。
虽然 B600V4 没有 coreup 程序,但是我们可以在提交的数据中插入“#$0A”字符,达
到换行的目的,实现在/var/coreup.sh脚本中对ELF程序的调用,比如 cat、ftp、ftpd、telnetd
等。
第四节 javawatch 程序反汇编
 
中兴机顶盒的 javawatch 程序作用是向 ztebw 和 vplayer 进程发送控制命令,开放
TCP3465 和 3467 两个端口。当按下遥控器的“待机”键时,超级终端输出“recieve
data:ZTEBW:poweroff***, len:14”,如图 13,当从 pc 上 telnet 机顶盒的 3465 端口,这时超
级终端输出“karaok, accept javaSock”,在 telnet中输入任意字符时,比如“d”,  超级终端
输出“Send to ztebw:VPLAYER:d”,图 14,英文含义是:javawatch把从 3465端口接收到的
字符(命令)发送给ztebw进程处理,最后转发给vplayer进程,完成对播放器的控制。  

3465 端口利用。分析如何通过 3465 端口接收控制命令。在 javawatch 反汇编代码中,
搜索字符串“Send to ztebw:”,确定出关键代码,如下: 

loc_4020A4:
...
mov.l off_4021CC, r1 ; dword_402078  //设置 h'4F222FE6, h'6EF37FFC等信号
mov #2, r4
mov r1, r5
mov.l off_4021C8, r1 ; signal

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

百度搜索更多

谷歌搜索更多

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

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


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

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