影响:

入侵者可以藉此漏洞修改网页、获得该主机管理权。

事件描述:

在遭受攻击的 UNIX 系统上,入侵者常利用下列

 

  rpc.ttdbserver
  rpc.cmsd 
  rpc.statd/automountd
  sadmind

程序的 Buffer Overflow 漏洞自远程入侵主机。

解决方法:

1.将不必要的 RPC service 自 /etc/inetd.conf 中移除,移除方法为

(1)编辑 /etc/inetd.conf,将不必要的 service 前面加上 "#" 或直接删除后存盘;

(2)kill -HUP inetd.pid。

2.安装修补程序 (patch)

(1)rpc.statd 及 automountd

Solaris:请依照您的版本安装下列修补程序

 

rpc.statd:
    
    OS Version        Patch ID 
    __________        _________
    
    SunOS 5.6         106592-02 
    SunOS 5.6_x86     106593-02 
    SunOS 5.5.1       104166-04 
    SunOS 5.5.1_x86   104167-04  
    SunOS 5.5         103468-04 
    SunOS 5.5_x86     103469-05 
    SunOS 5.4         102769-07 
    SunOS 5.4_x86     102770-07 
    SunOS 5.3         102932-05 
    
    automountd:
    
    OS Version        Patch ID  
    __________        _________ 
    SunOS 5.5.1       104654-05 
    SunOS 5.5.1_x86   104655-05 
    SunOS 5.5         103187-43 
    SunOS 5.5_x86     103188-43 
    SunOS 5.4         101945-61 
    SunOS 5.4_x86     101946-54 
    SunOS 5.3         101318-92

档案可至下列 URL 下载:
  ftp://sunsolve.sun.com/pub/patches
RedHat:
请参考下列 URL:
  http://www.redhat.com/support/errata/RHSA-2000-043-03.HTML
Debian:
请参考下列 URL:
  http://www.debian.org/security/2000/20000719a
(2)rpc.cmsd
Solaris:
请依照您的版本安装下列修补程序
OpenWindows:

SunOS version     Patch ID
     _____________     _________
     SunOS 5.5.1       104976-04
     SunOS 5.5.1_x86   105124-03
     SunOS 5.5         103251-09
     SunOS 5.5_x86     103273-07
     SunOS 5.3         101513-14
     SunOS 4.1.4       100523-25
     SunOS 4.1.3_U1    100523-25

  CDE:



     CDE version       Patch ID
     ___________       ________
     1.3               107022-03
     1.3_x86           107023-03
     1.2               105566-07
     1.2_x86           105567-08

档案可至下列 URL 下载:
ftp://sunsolve.sun.com/pub/patches
(3)rpc.ttdbserverd
Solaris:
请依照您的版本安装下列修补程序

SunOS version    Patch ID 
      _____________    _________

      5.7              107893-04
      5.7_x86          107894-04 
      5.6              105802-11 
      5.6_x86          105803-13
      5.5.1            104489-10
      5.5.1_x86        105496-08
      5.5              104428-08
      5.5_x86          105495-06
      5.4              102734-05

档案可至下列 URL 下载:
ftp://sunsolve.sun.com/pub/patches
(4)sadmind
Solaris:
请依照您的版本安装下列修补程序

OS Version             Patch ID        
     __________             _________
     SunOS 5.7              108662-01   
     SunOS 5.7_x86          108663-01    
     SunOS 5.6              108660-01   
     SunOS 5.6_x86          108661-01   
     SunOS 5.5.1            108658-01
     SunOS 5.5.1_x86        108659-01

  一.freebsd

  FreeBSD 4.7

  当显示 boot … 9 seconds按任意健

  输入:boot -s

  登录以后

  #/sbin/mount -a

  #passwd

  输入新密码.

  FreeBSD 5.*

  当要求选择启动模式时按4进入单用户模式登录以后

  #/sbin/mount -a

  #passwd

  输入新密码.

  二.solaris

  ROOT密码遗忘的处理方法

  1,如果还能用普通用户登陆的话,%df /etc,确定包含/etc目录分区的设备名

  %df /etc

  / /dev/dsk/c0t0d0s0…

  此例中是c0t0d0s0,如果你的根目录分区设备不一样的话,替换一下就可以啦

  2,把系统盘插入cdrom中

  3,出现提示符后,使用sync命令刷新文件系统

  4,按下stop+A

  5,ok状态下键入boot cdrom -s

  6,在#提示符下键入mkdir /temp ,然后键入mount /dev/dsk/c0t0d0s0 /temp

  如果出现挂接不上的情况时,那么就运行fsck先 fsck /dev/rdsk/c0t0d0s0,然后在mount

  7,cd /temp/etc

  8,cp shadow shadowbak

  9,cat shadow

  得到root的口令字符串

  root:djglcj0J:6453::::(其中djglcj0J就是root的加密后的口令字符串)

  10,sed s/djglcj0J// shadow>shadownew

  11,cat shadownew查看是否已经变为

  root::6453::::

  12,cp shadownew shadow

  13,cd /

  unmount /temp

  sync

  shutdown -i0 -g0 -y

  3,出现提示符后,使用sync命令刷新文件系统

  4,按下stop+A

  5,ok状态下键入boot cdrom -s

  6,在#提示符下键入mkdir /temp ,然后键入mount /dev/dsk/c0t0d0s0 /temp

  如果出现挂接不上的情况时,那么就运行fsck先 fsck /dev/rdsk/c0t0d0s0,然后在mount

  7,cd /temp/etc

  8,cp shadow shadowbak

  9,cat shadow

  得到root的口令字符串

  root:djglcj0J:6453::::(其中djglcj0J就是root的加密后的口令字符串)

  10,sed s/djglcj0J// shadow>shadownew

  11,cat shadownew查看是否已经变为

  root::6453::::

  12,cp shadownew shadow

  13,cd /

  unmount /temp

  sync

  shutdown -i0 -g0 -y

  14,取出CD后,重起系统,这时root就不需要密码啦!

  这样也可以!

  OK boot cdrom -s

  #TERM=sun

  #export TERM

  #mount /dev/dsk/c0t0d0s0 /a

  #vi /a/etc/shadow(删除root的加密后的密码)

  #reboot

  三.SCO UNIX

  一旦运行SCO UNIX 机器的超级用户口令忘了,可以用这个方法解决。

  在另一台安装了SCO UNIX的机器上,以Root用户注册,进入系统,用 mkdev fd命令或命令scoadmin中的Filesystem之Floppy Filesystem Manager来制作应急启动盘,包括Boottable 盘和Root filesystem盘。

  将上述制作的Root filesystem盘安装到硬盘上。

  # mount /dev/fd0135ds18 /mnt

  再将硬盘上的/etc/passwd 和/tcb/files/auth/r/root两个文件拷贝到Root filesystem盘上。

  # cp /etc/passwd /mnt

  # cp /tcb/files/auth/r/root /mnt

  卸载机器1硬盘上的软盘。

  # umount /dev/rfd0135ds18

  用Boot软盘去启动遗忘口令的机器,根据提示插入Root filesystem软盘,待出现“#”时,进行下面操作,将硬盘挂到软盘上:

  # mount /dev/hd0root /mnt

  备份硬盘上的/etc/passwd和/tcb/files/auth/r/root两个文件。因为这两个文件中还包含其他用户的注册信息。

  用Root filesystem软盘上的两个文件,覆盖硬盘上的两个文件/etc/passwd 和/tcb/files/auth/r/root。

  # mkdir /cyh

  # mount /dev/fd0135ds18 /cyh

  # cd /cyh

  # cp passwd /mnt/etc

  # cp root /mnt/tcb/files/auth

  卸载安装上的两个文件系统。

  # umount /dev/hd0root

  # umount /dev/fd0135ds18

  取出软盘,重新启动机器,待出现Login时,以Root用户注册,键入第二台机器的超级用户口令,这样便可进入的超级用户了。

  进入超级用户后,用Passwd和Root这两个文件的备份覆盖原来的文件,接着用passwd命令修改超级用户的口令。

  用户可以用Alt+F2换一个窗口,以Root注册,现在用修改后的口令就能用了。

  四.aix4.3.3(ibm) rs/6000

  将第一张安装盘放入光驱,重起机器,按f5键,终端按5,进入maintance页面,选择mount rootvg的功能选项,调用password修改口令,退出即可

  五.linux

  三种办法:

  1.在系统进入单用户状态,直接用passwd root去更改

  2.用安装光盘引导系统,进行linux rescue状态,将原来/分区挂接上来,作法如下:

  cd /mnt

  mkdir hd

  mount -t auto /dev/hdaX(原来/分区所在的分区号) hd

  cd hd

  chroot ./

  passwd root

  这样可以搞定

  3.将本机的硬盘拿下来,挂到其他的linux系统上,采用的办法与第二种相同

  6.redhat 8 redhat9

  (1). lilo法

  1. 在出现 lilo: 提示时键入 linux single

  画面显示 lilo: linux single

  2. 回车可直接进入linux命令行

  3. #vi /etc/shadow

  将第一行,即以root开头的一行中root:后和下一个:前的内容删除,

  第一行将类似于

  root::……

  保存

  4. #reboot重启,root密码为空

  (2). grub法

  1. 在出现grub画面时,用上下键选中你平时启动linux的那一项(别选dos哟),然后按e键

  2. 再次用上下键选中你平时启动linux的那一项(类似于kernel /boot/vmlinuz-2.4.18-14 ro root=LABEL=/),然后按e键

  3. 修改你现在见到的命令行,加入single,结果如下:

  kernel /boot/vmlinuz-2.4.18-14 single ro root=LABEL=/

  4. 回车返回,然后按b键启动,即可直接进入linux命令行

  5. #vi /etc/shadow

  将第一行,即以root开头的一行中root:后和下一个:前的内容删除,

  第一行将类似于

  root::……

  保存

  6. #reboot重启,root密码为空

  7.HP-UX

  启动时按esc 进入isl

  进入ISL后:

  isl>bo pri

  (yes/no)y

  ipl>hpux -is

  ipl>vi /etc/passwd

  去掉root 的密码即可。

  一个网络系统的安全程度,在很大程度上取决于管理者的素质,以及管理者所采取的安全措施的力度。在对系统进行配置的同时,要把安全性问题放在重要的位置。

  SCO UNIX,作为一个技术成熟的商用网络操作系统,广泛地应用在金融、保险、邮电等行业,其自身内建了丰富的网络功能,具有良好的稳定性和安全性。但是,如果用户没有对UNIX系统进行正确的设置,就会给入侵者以可乘之机。因此在网络安全管理上,不仅要采用必要的网络安全设备,如:防火墙等,还要在操作系统的层面上进行合理规划、配置,避免因管理上的漏洞而给应用系统造成风险。

  下面以SCO UNIX Openserver V5.0.5为例,对操作系统级的网络安全设置提几点看法,供大家参考。

  合理设置系统安全级别

  SCO UNIX提供了四个安全级别,分别是Low、Traditional、Improved和High级,系统缺省为Traditional级;Improved级达到美国国防部的C2级安全标准;High级则高于C2级。用户可以根据自己系统的重要性及客户数的多少,设置适合自己需要的系统安全级别,具体设置步骤是:scoadmin→system→security→security profile manager。

  合理设置用户

  建立用户时,一定要考虑该用户属于哪一组,不能随便选用系统缺省的group组。如果需要,可以新增一个用户组并确定同组成员,在该用户的主目录下,新建文件的存取权限是由该用户的配置文件.profile中的umask的值决定。umask的值取决于系统安全级, Tradition安全级的umask的值为022,它的权限类型如下:

  文件权限: – r w – r – – r – –

  目录权限: d r w x r – x r – x

  此外,还要限制用户不成功登录的次数,避免入侵者用猜测用户口令的方法尝试登录。为账户设置登录限制的步骤是:Scoadmin–〉Account Manager–〉选账户–〉User–〉Login Controls–〉添入新的不成功登录的次数。

  指定主控台及终端登录的限制

  如果你希望root用户只能在某一个终端(或虚屏)上登录,那么就要对主控台进行指定,例如:指定root用户只能在主机第一屏tty01上登录,这样可避免从网络远程攻击超级用户root。设置方法是在/etc/default/login文件增加一行:CONSOLE=/dev/tty01。

  注意:设置主控台时,在主机运行中设置后就生效,不需要重启主机。

  如果你的终端是通过Modem异步拨号或长线驱动器异步串口接入UNIX主机,你就要考虑设置某终端不成功登录的次数,超过该次数后,锁定此终端。设置方法为:scoadmin→Sysrem→Terminal Manager→Examine→选终端,再设置某终端不成功登录的次数。如果某终端被锁定后,可用ttyunlock〈终端号〉进行解锁。也可用ttylock〈终端号〉直接加锁。

  文件及目录的权限管理

  有时我们为了方便使用而将许多目录和文件权限设为777或666,但是这样却为黑客攻击提供了方便。因此,必须仔细分配应用程序、数据和相应目录的权限。发现目录和文件的权限不适当,应及时用chmod命令修正。

  口令保护的设置

  口令一般不要少于8个字符,口令的组成应以无规则的大小写字母、数字和符号相结合,绝对避免用英语单词或词组等设置口令,而且应该养成定期更换各用户口令的习惯。通过编辑/etc/default/passwd文件,可以强制设定最小口令长度、两次口令修改之间的最短、最长时间。另外,口令的保护还涉及到对/etc/passwd和/etc/shadow文件的保护,必须做到只有系统管理员才能访问这两个文件。

  合理设置等价主机

  设置等价主机可以方便用户操作,但要严防未经授权非法进入系统。所以必须要管理/etc/hosts.equiv、.rhosts和.netrc这3个文件。其中,/etc /hosts.equiv列出了允许执行rsh、rcp等远程命令的主机名字;.rhosts在用户目录内指定了远程用户的名字,其远程用户使用本地用户账户执行rcp、rlogin和rsh等命令时不必提供口令;.netrc提供了ftp和rexec命令所需的信息,可自动连接主机而不必提供口令,该文件也放在用户本地目录中。由于这3个文件的设置都允许一些命令不必提供口令便可访问主机,因此必须严格限制这3个文件的设置。在.rhosts中尽量不用“+ +”,因为它可以使任何主机的用户不必提供口令而直接执行rcp、rlogin和rsh等命令。

  合理配置/etc/inetd.conf文件

  UNIX系统启动时运行inetd进程,对大部分网络连接进行监听,并且根据不同的申请启动相应进程。其中ftp、telnet、rcmd、rlogin和finger等都由inetd来启动对应的服务进程。因此,从系统安全角度出发,我们应该合理地设置/etc/inetd.conf文件,将不必要的服务关闭。关闭的方法是在文件相应行首插入“#”字符,并执行下列命令以使配置后的命令立即生效。

  #ps-ef   grep inetd   grep -v grep

  #kill -HUP 〈 inetd-PID 〉

  合理设置/etc/ftpusers文件

  在/etc/ftpuser文件里列出了可用FTP协议进行文件传输的用户,为了防止不信任用户传输敏感文件,必须合理规划该文件。在对安全要求较高的系统中,不允许ftp访问root和UUCP,可将root和UUCP列入/etc/ftpusers中。

  合理设置网段及路由

  在主机中设置TCP/IP协议的IP地址时,应该合理设置子网掩码(netmask),把禁止访问的IP地址隔离开来。严格禁止设置缺省路由(即:default route)。建议为每一个子网或网段设置一个路由,否则其他机器就可能通过一定方式访问该主机。

  不设置UUCP

  UUCP为采用拨号用户实现网络连接提供了简单、经济的方案,但是同时也为黑客提供了入侵手段,所以必须避免利用这种模式进行网络互联。

  删除不用的软件包及协议

  在进行系统规划时,总的原则是将不需要的功能一律去掉。如通过scoadmin–〉Soft Manager去掉X Window;通过修改/etc/services文件去掉UUCP、SNMP、POP、POP2、POP3等协议。

  正确配置.profile文件

  .profile文件提供了用户登录程序和环境变量,为了防止一般用户采用中断的方法进入$符号状态,系统管理者必须屏蔽掉键盘中断功能。具体方法是在.porfile首部增加如下一行:

  trap ‘ ‘ 0 1 2 3 5 15

  创建匿名ftp

  如果你需要对外发布信息而又担心数据安全,你可以创建匿名ftp,允许任何用户使用匿名ftp,不需密码访问指定目录下的文件或子目录,不会对本机系统的安全构成威胁,因为它无法改变目录,也就无法获得本机内的其他信息。注意不要复制/etc/passwd、/etc/proup到匿名ftp的etc下,这样对安全具有潜在的威胁。

  应用用户和维护用户分开

  金融系统UNIX的用户都是最终用户,他们只需在具体的应用系统中完成某些固定的任务,一般情况下不需执行系统命令(shell),其应用程序由.profile调用,应用程序结束后就退到login状态。维护时又要用root级别的su命令进入应用用户,很不方便。可以通过修改.profile 文件,再创建一个相同id用户的方法解决。例:应用用户work有一个相同id相同主目录的用户worksh, 用户work的.profile文件最后为:

  set — `who am i`

  case $1 in

  work ) exec workmain;exit;;

  worksh ) break;;

  esac