光电工程师社区

标题: 被入侵系统恢复指南 [打印本页]

作者: suncon    时间: 2003-9-29 01:48
标题: 被入侵系统恢复指南
被入侵系统恢复指南

这里主要讲述UNIX或者NT系统如果被侵入,应该如何应对。
  注意:你在系统恢复过程中的所有步骤都应该与你所在组织的网络安全策略相符。
A.准备工作
1.商讨安全策略
  如果你的组织没有自己的安全策略,那么需要按照以下步骤建立自己的安全策略。
1.1.和管理人员协商
  将入侵事故通知管理人员,可能在有的组织中很重要。在be aware进行事故恢复的时候,网络管理人员能够得到内部各部门的配合。也应该明白入侵可能引起传媒的注意。
1.2.和法律顾问协商
  在开始你的恢复工作之前,你的组织需要决定是否进行法律调查。
  注意CERT(Computer Emergency Response Team)只提供技术方面的帮助和提高网络主机对安全事件的反应速度。它们不会提出法律方面的建议。所以,对于法律方面的问题建议你咨询自己的法律顾问。你的法律顾问能够告诉你入侵者应该承担的法律责任(民事的或者是刑事的),以及有关的法律程序。
  现在,是你决定如何处理这起事故的时候了,你可以加强自己系统的安全或者选择报警。
  如果你想找出入侵者是谁,建议你与管理人员协商并咨询法律顾问,看看入侵者是否触犯了地方或者全国的法律。根据这些,你可以报案,看看警方是否愿意对此进行调查。
  针对与入侵事件,你应该与管理人员和法律顾问讨论以下问题:
  如果你要追踪入侵者或者跟踪网络连接,是否会触犯法律。
  如果你的站点已经意识到入侵但是没有采取措施阻止,要承担什么法律责任。
  入侵者是否触犯了全国或者本地的法律。
  是否需要进行调查。
  是否应该报警。
1.3.报警
  通常,如果你想进行任何类型的调查或者起诉入侵者,最好先跟管理人员和法律顾问商量以下。然后通知有关执法机构。
  一定要记住,除非执法部门的参与,否则你对入侵者进行的一切跟踪都可能是非法的。
1.4.知会其他有关人员
  除了管理者和法律顾问之外,你还需要通知你的恢复工作可能影响到的人员,例如其他网络管理人员和用户。
2.记录恢复过程中所有的步骤
  毫不夸张地讲,记录恢复过程中你采取的每一步措施,是非常重要的。恢复一个被侵入的系统是一件很麻烦的事,要耗费大量的时间,因此经常会使人作出一些草率的决定。记录自己所做的每一步可以帮助你避免作出草率的决定,还可以留作以后的参考。记录还可能对法律调查提供帮助。
B.夺回对系统的控制权
1.将被侵入的系统从网络上断开
  为了夺回对被侵入系统的控制权,你需要将其从网络上断开,包括播号连接。断开以后,你可能想进入UNIX系统的单用户模式或者NT的本地管理者(local administrator)模式,以夺回系统控制权。然而,重启或者切换到单用户/本地管理者模式,会丢失一些有用的信息,因为被侵入系统当前运行的所有进程都会被杀死。
  因此,你可能需要进入C.5.检查网络嗅探器节,以确定被侵入的系统是否有网络嗅探器正在运行。
  在对系统进行恢复的过程中,如果系统处于UNIX单用户模式下,会阻止用户、入侵者和入侵进程对系统的访问或者切换主机的运行状态。
如果在恢复过程中,没有断开被侵入系统和网络的连接,在你进行恢复的过程中,入侵者就可能连接到你的主机,破坏你的恢复工作。
2.复制一份被侵入系统的影象
  在进行入侵分析之前,建议你备份被侵入的系统。以后,你可能会用得着。
  如果有一个相同大小和类型的硬盘,你就可以使用UNIX命令dd将被侵入系统复制到这个硬盘。
  例如,在一个有两个SCSI硬盘的Linux系统,以下命令将在相同大小和类型的备份硬盘(/dev/sdb)上复制被侵入系统(在/dev/sda盘上)的一个精确拷贝。
# dd if=/dev/sda of=/dev/sdb
  请阅读dd命令的手册页获得这个命令更详细的信息。
  还有一些其它的方法备份被侵入的系统。在NT系统中没有类似于dd的内置命令,你可以使用一些第三方的程序复制被侵入系统的整个硬盘影象。
  建立一个备份非常重要,你可能会需要将系统恢复到侵入刚被发现时的状态。它对法律调查可能有帮助。记录下备份的卷标、标志和日期,然后保存到一个安全的地方以保持数据的完整性。
C.入侵分析
  现在你可以审查日志文件和系统配置文件了,检查入侵的蛛丝马迹,入侵者对系统的修改,和系统配置的脆弱性。
1.检查入侵者对系统软件和配置文件的修改
  a.校验系统中所有的二进制文件
  在检查入侵者对系统软件和配置文件的修改时,一定要记住:你使用的校验工具本身可能已经被修改过,操作系统的内核也有可能被修改了,这非常普遍。因此,建议你使用一个可信任的内核启动系统,而且你使用的所有分析工具都应该是干净的。对于UNIX系统,你可以通过建立一个启动盘,然后对其写保护来获得一个可以信赖的操作系统内核。
  你应该彻底检查所有的系统二进制文件,把它们与原始发布介质(例如光盘)做比较。因为现在已经发现了大量的特洛伊木马二进制文件,攻击者可以安装到系统中。
  在UNIX系统上,通常有如下的二进制文件会被特洛伊木马代替:telnet、in.telnetd、login、su、ftp、ls、ps、netstat、ifconfig、find、du、df、libc、sync、inetd和syslogd。除此之外,你还需要检查所有被/etc/inetd.conf文件引用的文件,重要的网络和系统程序以及共享库文件。
  在NT系统上。特洛伊木马通常会传播病毒,或者所谓的远程管理程序,例如Back Orifice和NetBus。特洛伊木马会取代处理网络连接的一些系统文件。
  一些木马程序具有和原始二进制文件相同的时间戳和sum校验值,通过校验和无法判断文件是否被修改。因此,对于UNIX系统,我们建议你使用cmp程序直接把系统中的二进制文件和原始发布介质上对应的文件进行比较。
  你还可以选择另一种方法检查可疑的二进制文件。向供应商索取其发布的二进制文件的MD5校验值,然后使用MD5校验值对可疑的二进制文件进行检查。这种方法适用于UNIX和NT。
  b.校验系统配置文件
  在UNIX系统中,你应该进行如下检查:
  检查/etc/passwd文件中是否有可疑的用户
  检查/etc/inet.conf文件是否被修改过
  如果你的系统允许使用r命令,例如rlogin、rsh、rexec,你需要检查/etc/hosts.equiv或者.rhosts文件。
  检查新的SUID和SGID文件。下面命令会打印出系统中的所有SUID和SGID文件:
#find / ( -perm -004000 -o -perm -002000 ) -type f -print
  对于NT,你需要进行如下检查:
  检查不成对的用户和组成员
  检查启动登录或者服务的程序的注册表入口是否被修改
  检查net share命令和服务器管理工具共有的非验证隐藏文件
  检查pulist.ext程序无法识别的进程
2.检查被修改的数据
  入侵者经常会修改系统中的数据。所以建议你对web页面文件、ftp存档文件、用户目录下的文件以及其它的文件进行校验。
3.检查入侵者留下的工具和数据
  入侵者通常会在系统中安装一些工具,以便继续监视被侵入的系统。
  入侵者一般会在系统中留下如下种类的文件:
  网络嗅探器
  网络嗅探器就是监视和记录网络行动的一种工具程序。入侵者通常会使用网络嗅探器获得在网络上以明文进行传输的用户名和密码。(见C.5)
  嗅探器在UNIX系统中更为常见。
  特洛伊木马程序
  特洛伊木马程序能够在表面上执行某种功能,而实际上执行另外的功能。因此,入侵者可以使用特洛伊木马程序隐藏自己的行为,获得用户名和密码数据,建立后门以便将来对系统在此访问被侵入系统。
  后门
  后门程序将自己隐藏在被侵入的系统,入侵者通过它就能够不通过正常的系统验证,不必使用安全缺陷攻击程序就可以进入系统。
  安全缺陷攻击程序
  系统运行存在安全缺陷的软件是其被侵入的一个主要原因。入侵者经常会使用一些针对已知安全缺陷的攻击工具,以此获得对系统的非法访问权限。这些工具通常会留在系统中,保存在一个隐蔽的目录中。
  入侵者使用的其它工具
  以上所列无法包括全部的入侵工具,攻击者在系统中可能还会留下其它入侵工具。这些工具包括:
  系统安全缺陷探测工具
  对其它站点发起大规模探测的脚本
  发起拒绝服务攻击的工具
  使用被侵入主机计算和网络资源的程序
  入侵工具的输出
  你可能会发现入侵工具程序留下的一些日志文件。在这些文件中可能会包含被牵扯的其它站点,攻击者利用的安全缺陷,以及其它站点的安全缺陷。
  因此,建议你对系统进行彻底的搜索,找出上面列出的工具及其输出文件。一定要注意:在搜索过程中,要使用没有被攻击者修改过的搜索工具拷贝。
  搜索主要可以集中于以下方向:
  检查UNIX系统/dev/目录下意外的ASCII文件。一些特洛伊木马二进制文件使用的配置文件通常在/dev目录中。
  仔细检查系统中的隐藏文件和隐藏目录。如果入侵者在系统中建立一个一个新的帐户,那么这个新帐户的起始目录以及他使用的文件可能是隐藏的。
  检查一些名字非常奇怪的目录和文件,例如:...(三个点)、..(两个点)以及空白(在UNIX系统中)。入侵者通常会在这样的目录中隐藏文件。对于NT,应该检查那些名字和一些系统文件名非常接近的目录和文件。
4.审查系统日志文件
  详细地审查你的系统日志文件,你可以了解系统是如何被侵入的,入侵过程中,攻击者执行了哪些操作,以及哪些远程主机访问了你的主机。通过这些信息,你能够对入侵有更加清晰的认识。
  记住:系统中的任何日志文件都可能被入侵者改动过。
  对于UNIX系统,你可能需要查看/etc/syslog.conf文件确定日志信息文件在哪些位置。NT通常使用三个日志文件,记录所有的NT事件,每个NT事件都会被记录到其中的一个文件中,你可以使用Event Viewer查看日志文件。其它一些NT应用程序可能会把自己的日志放到其它的地方,例如ISS服务器默认的日志目录是c:winntsystem32logfiles。
  以下是一个通常使用的UNIX系统日志文件列表。由于系统配置的不同可能你的系统中没有其中的某些文件。
  messages
  messages日志文件保存了大量的信息。可以从这个文件中发现异常信息,检查入侵过程中发生了哪些事情。
  xferlog
  如果被侵入系统提供FTP服务,xferlog文件就会记录下所有的FTP传输。这些信息可以帮助你确定入侵者向你的系统上载了哪些工具,以及从系统下载了哪些东西。
  utmp
  保存当前登录每个用户的信息,使用二进制格式。这个文件只能确定当前哪些用户登录。使用who命令可以读出其中的信息。
  wtmp
  每次用户成功的登录、退出以及系统重启,都会在wtmp文件中留下记录。这个文件也使用二进制格式,你需要使用工具程序从中获取有用的信息。last就是一个这样的工具。它输出一个表,包括用户名、登录时间、发起连接的主机名等信息,详细用法可以使用man last查询。检查在这个文件中记录的可疑连接,可以帮助你确定牵扯到这起入侵事件的主机,找出系统中的哪些帐户可能被侵入了。
  secure
  某些些版本的UNIX系统(例如:RedHat Linux)会将tcp_wrappers信息记录到secure文件中。如果系统的inetd精灵使用tcp_wrappers,每当有连接请求超出了inetd提供的服务范围,就会在这个文件中加入一条日志信息。通过检查这个日志文件,可以发现一些异常服务请求,或者从陌生的主机发起的连接。
  审查日志,最基本的一条就是检查异常现象。
5.检查网络嗅探器
  入侵者侵入一个UNIX系统后,为了获得用户名和密码信息,一般会在系统上安装一个网络监视程序,这种程序就叫作嗅探器或者数据包嗅探器。对于NT,入侵者会使用远程管理程序实现上述目的。
  判断系统是否被安装了嗅探器,首先要看当前是否有进程使你的网络接口处于混杂(Promiscuous)模式下。如果任何网络接口处于promiscuous模式下,就表示可能系统被安装了网络嗅探器。注意如果你重新启动了系统或者在单用户模式下操作,可能无法检测到Promiscuous模式。使用ifconfig命令就可以知道系统网络接口是否处于promoscuous模式下(注意一定使用没有被侵入者修改的ifconfig):
#/path-of-clean-ifconfig/ifconfig -a
  有一些工具程序可以帮助你检测系统内的嗅探器程序:
  cpm(Check Promiscuous Mode)--UNIX可以从以下地址下载:
ftp://coast.cs.purdue.edu/pub/tools/unix/cpm/
  ifstatus--UNIX可以从以下地址下载:
ftp://coast.cs.purdue.edu/pub/tools/unix/ifstatus/
  neped.c可以从以下地址的到:
ftp://apostols.org/AposTolls/snoapshots/neped/neped.c
  一定要记住一些合法的网络监视程序和协议分析程序也会把网络接口设置为promiscuous模式。检测到网络接口处于promicuous模式下,并不意味着系统中有嗅探器程序正在运行。
  但是,在Phrack杂志的一篇文章Phrack Magazine Volume 8,Issue 53 July 8,1998,article 10 of 15, Interface Promiscuity Obscurity)中,有人提供了一些针对FreeBSD、Linux、HP-UX、IRIX和Solaris系统的模块,可以擦除IFF_PROMISC标志位,从而使嗅探器逃过此类工具的检查。以此,即使使用以上的工具,你没有发现嗅探器,也不能保证攻击者没有在系统中安装嗅探器。
  现在,LKM(Loadable Kernel Model,可加载内核模块)的广泛应用,也增加了检测难度。关于这一方面的检测请参考使用KSAT检测可加载内核模块。
  还有一个问题应该注意,嗅探器程序的日志文件的大小会急剧增加。使用df程序查看文件系统的某个部分的大小是否太大,也可以发现嗅探器程序的蛛丝马迹。建议使用lsof程序发现嗅探器程序打开的日志文件和访问访问报文设备的程序。在此,还要注意:使用的df程序也应该是干净的。
  一旦在系统中发现了网络嗅探器程序,我们建议你检查嗅探器程序的输出文件确定哪些主机受到攻击者威胁。被嗅探器程序捕获的报文中目的主机将受到攻击者的威胁,不过如果系统的密码是通过明文传输,或者目标主机和源主机互相信任,那么源主机将受到更大的威胁。
  通常嗅探器程序的日志格式如下:
-- TCP/IP LOG -- TM: Tue Nov 15 15:12:29 --
PATH: not_at_risk.domain.com(1567) = at_risk.domain.com(telnet)
  使用如下命令可以从嗅探器程序的日志文件中得到受到威胁的主机列表:
% grep PATH: $sniffer_log_file | awk ’{print $4}’ |
awk -F( ’{print $1}’| sort -u
  你可能需要根据实际情况对这个命令进行一些调整。一些嗅探器程序会给日志文件加密,增加了检查的困难。
  你应该知道不只是在嗅探器程序日志文件中出现的主机受到攻击者的威胁,其它的主机也可能受到威胁。
  建议你参http://www.cert.org/advisories/C ... toring.attacks.html获得更为详细的信息。
6.检查网络上的其它系统
  除了已知被侵入的系统外,你还应该对网络上所有的系统进行检查。主要检查和被侵入主机共享网络服务(例如:NIX、NFS)或者通过一些机制(例如:hosts.equiv、.rhosts文件,或者kerberos服务器)和被侵入主机相互信任的系统。
  建议你使用CERT的入侵检测检查列表进行这一步检查工作。
http://www.cert.org/tech_tips/intruder_detection_checklist.html
http://www.cert.org/tech_tips/wi ... tion_checklist.html
7.检查涉及到的或者受到威胁的远程站点
  在审查日志文件、入侵程序的输出文件和系统被侵入以来被修改的和新建立的文件时,要注意哪些站点可能会连接到被侵入的系统。根据经验那些连接到被侵入主机的站点,通常已经被侵入了。所以要尽快找出其它可能遭到入侵的系统,通知其管理人员。
D.通知相关的CSIRT和其它被涉及的站点
1.事故报告
  入侵者通常会使用被侵入的帐户或者主机发动对其它站点的攻击。如果你发现针对其它站点的入侵活动,建议你马上和这些站点联络。告诉他们你发现的入侵征兆,建议他们检查自己的系统是否被侵入,以及如何防护。要尽可能告诉他们所有的细节,包括:日期/时间戳、时区,以及他们需要的信息。
  你还可以向CERT(计算机紧急反应组)提交事故报告,从他们那里的到一些恢复建议。
  中国大陆地区的网址是:
http://www.cert.org.cn
2.与CERT调节中心联系
  你还可以填写一份事故报告表,使用电子邮件发送http://www.cert.org,从那里可以得到更多帮助。CERT会根据事故报告表对攻击趋势进行分析,将分析结果总结到他们的安全建议和安全总结,从而防止攻击的蔓延。可以从以下网址获得事故报告表:
http://www.cert.org/ftp/incident_reporting_form
3.获得受牵连站点的联系信息
  如果你需要获得顶级域名(.com、.edu、.net、.org等)的联系信息,建议你使用interNIC的whois数据库。
http://rs.internic.net/whois.html
  如果你想要获得登记者的确切信息,请使用interNIC的登记者目录:
http://rs.internic.net/origin.html
  想获得亚太地区和澳洲的联系信息,请查询:
http://www.apnic.net/apnic-bin/whois.pl
http://www.aunic.net/cgi-bin/whois.aunic
  如果你需要其它事故反应组的联系信息,请查阅FIRST(Forum of Incident Response and Security Teams)的联系列表:
http://www.first.org/team-info/
  要获得其它的联系信息,请参考:
http://www.cert.org/tech_tips/finding_site_contacts.html
  建议你和卷入入侵活动的主机联系时,不要发信给root或者postmaster。因为一旦这些主机已经被侵入,入侵者就可能获得了超级用户的权限,就可能读到或者拦截送到的e-mail。
E.恢复系统
1.安装干净的操作系统版本
  一定要记住如果主机被侵入,系统中的任何东西都可能被攻击者修改过了,包括:内核、二进制可执行文件、数据文件、正在运行的进程以及内存。通常,需要从发布介质上重装操作系统,然后在重新连接到网络上之前,安装所有的安全补丁,只有这样才会使系统不受后门和攻击者的影响。只是找出并修补被攻击者利用的安全缺陷是不够的。
  我们建议你使用干净的备份程序备份整个系统。然后重装系统。
2.取消不必要的服务
  只配置系统要提供的服务,取消那些没有必要的服务。检查并确信其配置文件没有脆弱性以及该服务是否可靠。通常,最保守的策略是取消所有的服务,只启动你需要的服务。
3.安装供应商提供的所有补丁
  我们强烈建议你安装了所有的安全补丁,要使你的系统能够抵御外来攻击,不被再次侵入,这是最重要的一步。
  你应该关注所有针对自己系统的升级和补丁信息。
4.查阅CERT的安全建议、安全总结和供应商的安全提示
  我们鼓励你查阅CERT以前的安全建议和总结,以及供应商的安全提示,一定要安装所有的安全补丁。
  CERT安全建议:
http://www.cert.org/advisories/
  CERT安全总结:
http://www.cert.org/advisories/
  供应商安全提示:
ftp://ftp.cert.org/pub/cert_bulletins/
5.谨慎使用备份数据
  在从备份中恢复数据时,要确信备份主机没有被侵入。一定要记住,恢复过程可能会重新带来安全缺陷,被入侵者利用。如果你只是恢复用户的home目录以及数据文件,请记住文件中可能藏有特洛伊木马程序。你还要注意用户起始目录下的.rhost文件。
6.改变密码
  在弥补了安全漏洞或者解决了配置问题以后,建议你改变系统中所有帐户的密码。一定要确信所有帐户的密码都不容易被猜到。你可能需要使用供应商提供的或者第三方的工具加强密码的安全。
  澳大利亚CERT发表了一篇choosing good passwords的文章,可以帮助你选择良好的密码。
F.加强系统和网络的安全
1.根据CERT的UNIX/NT配置指南检查系统的安全性
  CERT的UNIX/NT配置指南可以帮助你检查系统中容易被入侵者利用的配置问题。
http://www.cert.org/tech_tips/unix_configuration_guidelines.html
http://www.cert.org/tech_tips/win_configuration_guidelines.html
  查阅安全工具文档可以参考以下文章,决定使用的安全工具。
http://www.cert.org/tech_tips/security_tools.html
2.安装安全工具
  在将系统连接到网络上之前,一定要安装所有选择的安全工具。同时,最好使用Tripwire、aide等工具对系统文件进行MD5校验,把校验码放到安全的地方,以便以后对系统进行检查。
3.打开日志
  启动日志(logging)/检查(auditing)/记帐(accounting)程序,将它们设置到准确的级别,例如sendmail日志应该是9级或者更高。经常备份你的日志文件,或者将日志写到另外的机器、一个只能增加的文件系统或者一个安全的日志主机。
4.配置防火墙对网络进行防御
  现在有关防火墙的配置文章很多,在此就不一一列举了。你也可以参考:
http://www.cert.org/tech_tips/packet_filtering.html
G.重新连接到Internet全
  完成以上步骤以后,你就可以把系统连接回Internet了。
H.升级你的安全策略
  CERT调节中心建议每个站点都要有自己的计算机安全策略。每个组织都有自己特殊的文化和安全需求,因此需要根据自己的情况指定安全策略。关于这一点请参考RFC2196站点安全手册:
ftp://ftp.isi.edu/in-notes/rfc2196.txt
1.总结教训
  从记录中总结出对于这起事故的教训,这有助于你检讨自己的安全策略。
2.计算事故的代价
  许多组织只有在付出了很大代价以后才会改进自己的安全策略。计算事故的代价有助于让你的组织认识到安全的重要性。而且可以让管理者认识到安全有多么重要。
3.改进你的安全策略
  最后一步是对你的安全策略进行修改。所做的修改要让组织内的所有成员都知道,还要让他们知道对他们的影响。
作者: suncon    时间: 2003-9-29 01:51
标题: 被入侵系统恢复指南
修改注册表提高Win2000抗拒绝服务攻击能力        

从正确看待DoS与DDoS说起
相信大家都一定不会对这两个这个词感到陌生,是的,拒绝服务攻击(Denial of Service),以及分布式拒绝服务攻击(Distributed Denial of Service)。

所谓拒绝服务,是指在特定攻击发生后, 被攻击的对象不能及时提供应有的服务,例如本来应提供网站服务(HTTP Service)而不能提供网站服务,电子邮件服务器(SMTP,POP3)不能提供收发信件等等的功能,基本上,阻绝服务攻击通常利用大量的网络数据包,以瘫痪对方之网络及主机,使得正常的使用者无法获得主机及时的服务。

分布式拒绝服务,简单的说就是用远超过目标处理能力的海量数据包消耗可用系统,以及网络带宽,造成网络服务瘫痪。

也许是和媒体的过分关注有关,DoS攻击特别是DDoS攻击,似乎一夜之间就流行了起来,搞的大大小小的网管们,只要服务器一有故障,就异常兴奋的高呼“我被DDoS了!”,脸上仿佛写着无比的光荣和骄傲。

其实在我们的周围,真正意义上的DDoS其实并不多,毕竟发动一次DDoS攻击所需要的资源非常的多,但实实在在的攻击却又不停的发生着,这里面,绝大多数,都是普通的拒绝服务攻击。普通级别的攻击,如何防护,也成为很多网络管理员最头疼的问题,于是到处打听,结果往往千篇一律,“购买我们的硬件防火墙吧”。

硬件防火墙,包括专用抗拒绝服务攻击产品的确是好,但基本价格都十分昂贵,效果虽然好,可从投资以及保护投资的角度来说,未免有些过火。

其实从操作系统角度来说,本身就藏有很多的功能,只是很多是需要我们慢慢的去挖掘的。这里我给大家简单介绍一下如何在Win2000环境下修改注册表,增强系统的抗DoS能力。

细节:

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters]


关闭无效网关的检查。当服务器设置了多个网关,这样在网络不通畅的时候系统会尝试连接第二个网关,通过关闭它可以优化网络。
EnableDeadGWDetect=dword:00000000

禁止响应ICMP重定向报文。此类报文有可能用以攻击,所以系统应该拒绝接受ICMP重定向报文。
EnableICMPRedirects=dword:00000000

不允许释放NETBIOS名。当攻击者发出查询服务器NETBIOS名的请求时,可以使服务器禁止响应。
注意系统必须安装SP2以上
NoNameReleaseOnDemand=dword:00000001

发送验证保持活动数据包。该选项决定TCP间隔多少时间来确定当前连接还处于连接状态,不设该值,则系统每隔2小时对TCP是否有闲置连接进行检查,这里设置时间为5分钟。
KeepAliveTime=dword:000493e0

禁止进行最大包长度路径检测。该项值为1时,将自动检测出可以传输的数据包的大小,可以用来提高传输效率,如出现故障或安全起见,设项值为0,表示使用固定MTU值576bytes。
EnablePMTUDiscovery=dword:00000000

启动syn攻击保护。缺省项值为0,表示不开启攻击保护,项值为1和2表示启动syn攻击保护,设成2之后安全级别更高,对何种状况下认为是攻击,则需要根据下面的TcpMaxHalfOpen和TcpMaxHalfOpenRetried值设定的条件来触发启动了。这里需要注意的是,NT4.0必须设为1,设为2后在某种特殊数据包下会导致系统重启。
SynAttackProtect=dword:00000002

同时允许打开的半连接数量。所谓半连接,表示未完整建立的TCP会话,用netstat命令可以看到呈SYN_RCVD状态的就是。这里使用微软建议值,服务器设为100,高级服务器设为500。建议可以设稍微小一点。
TcpMaxHalfOpen=dword:00000064

判断是否存在攻击的触发点。这里使用微软建议值,服务器为80,高级服务器为400。
TcpMaxHalfOpenRetried=dword:00000050

设置等待SYN-ACK时间。缺省项值为3,缺省这一过程消耗时间45秒。项值为2,消耗时间为21秒。项值为1,消耗时间为9秒。最低可以设为0,表示不等待,消耗时间为3秒。这个值可以根据遭受攻击规模修改。微软站点安全推荐为2。
TcpMaxConnectResponseRetransmissions=dword:00000001

设置TCP重传单个数据段的次数。缺省项值为5,缺省这一过程消耗时间240秒。微软站点安全推荐为3。
TcpMaxDataRetransmissions=dword:00000003

设置syn攻击保护的临界点。当可用的backlog变为0时,此参数用于控制syn攻击保护的开启,微软站点安全推荐为5。
TCPMaxPortsExhausted=dword:00000005

禁止IP源路由。缺省项值为1,表示不转发源路由包,项值设为0,表示全部转发,设置为2,表示丢弃所有接受的源路由包,微软站点安全推荐为2。
DisableIPSourceRouting=dword:0000002

限制处于TIME_WAIT状态的最长时间。缺省为240秒,最低为30秒,最高为300秒。建议设为30秒。
TcpTimedWaitDelay=dword:0000001e


[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\NetBT\Parameters]
增大NetBT的连接块增加幅度。缺省为3,范围1-20,数值越大在连接越多时提升性能。每个连接块消耗87个字节。
BacklogIncrement=dword:00000003

最大NetBT的连接快的数目。范围1-40000,这里设置为1000,数值越大在连接越多时允许更多连接。
MaxConnBackLog=dword:000003e8


[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Afd\Parameters]
配置激活动态Backlog。对于网络繁忙或者易遭受SYN攻击的系统,建议设置为1,表示允许动态Backlog。
EnableDynamicBacklog=dword:00000001

配置最小动态Backlog。默认项值为0,表示动态Backlog分配的自由连接的最小数目。当自由连接数目低于此数目时,将自动的分配自由连接。默认值为0,对于网络繁忙或者易遭受SYN攻击的系统,建议设置为20。
MinimumDynamicBacklog=dword:00000014

最大动态Backlog。表示定义最大准连接的数目,主要看内存大小,理论每32M内存最大可以增加5000个,这里设为20000。
MaximumDynamicBacklog=dword:00002e20

每次增加的自由连接数据。默认项值为5,表示定义每次增加的自由连接数目。对于网络繁忙或者易遭受SYN攻击的系统,建议设置为10。
DynamicBacklogGrowthDelta=dword:0000000a
 

以下部分需要根据实际情况手动修改

----------------------------------------------------------------------------------------
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters]
启用网卡上的安全过滤
EnableSecurityFilters=dword:00000001

同时打开的TCP连接数,这里可以根据情况进行控制。
TcpNumConnections=

该参数控制 TCP 报头表的大小限制。在有大量 RAM 的机器上,增加该设置可以提高 SYN 攻击期间的响应性能。
TcpMaxSendFree=

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces\{自己的网卡接口}]
禁止路由发现功能。ICMP路由通告报文可以被用来增加路由表纪录,可以导致攻击,所以禁止路由发现。
PerformRouterDiscovery =dword:00000000

作者: suncon    时间: 2003-9-29 01:53
标题: 被入侵系统恢复指南
浅谈网络安全的另一类技术--隔离

1.隔离的出现

网络隔离,英文名为Network Isolation,主要是指把两个或两个以上可路由的网络(如:TCP/IP)通过不可路由的协议(如:IPX/SPX、NetBEUI等)进行数据交换而达到隔离目的,由于其原理主要是采用了不同的协议,所以通常也叫协议隔离(Protocol Isolation)。
协议隔离技术在国外有较早的研究,1997年,信息安全专家Mark Joseph Edwards在他编写的《Understanding Network Security》一书中就对他就对协议隔离进行了归类。在书中他明确地指出了协议隔离和防火墙不属于同类产品。再如瑞士的数据处理咨询专家E. NYONI在2000年出版的专著《TECHNICAL OPTIONS OF COMPUTERZED WORLD》里的“Internet Security”章节对协议隔离做了更为明确的说明和定义。

2.国内隔离产品发展的5个阶段

第一代隔离技术――完全的隔离,涉密网络是完完全全的处于信息孤岛状态,做到了完全的物理隔离,需要两套网络,两套系统,更重要的是信息交流的不便和成本的提高,这样造成维护和使用中极大的不便。
第二代隔离技术――利用物理隔离卡,在客户端增加一块PCI卡,客户端硬盘或其他存储设备首先连接到该卡,然后再转接到主板上,这样,通过该卡能控制客户端硬盘或其他存储设备,而选择不同的硬盘时,同时选择了该卡上不同的网络接口,连接到不同的网络。但是,第二产品仍然需要网络布线为双网线结构,这样,如果在客户端交换两个网络的网线连接,则内外网的存储介质也就被交换了,因此,第二代产品客户端还存在较大安全隐患。
第三代隔离技术――实现集中数据采集,通过介质拷贝传输数据,利用缓冲的目的来完成隔离的实现,大大减缓了网络速度,失去了网络存在的价值。
第四代隔离技术是在总结了以前经验的基础上,采用物理链路断开,通过开关进行分时连接来完成数据交换,但在安全度上仍然存在着众多缺陷,比如:不能实现透明的网络连接,容易暴露自身的信息给入侵者,这样就给安全带来了威胁,并且其设计原理决定了速度慢、带宽窄、延迟大和硬件故障率高等缺点。
第五代隔离技术已经实现了实时高速网络隔离,高效实现内外网数据交换,应用支持做到全透明。

作者: suncon    时间: 2003-9-29 01:56
标题: 被入侵系统恢复指南
网络安全漏洞集

Lotus Domino 模板文件泄露漏洞
Lotus Domino 是由IBM开发的应用程序服务器,它的一个特点就是远程用户可以通过基于Web的接口与Lotus Notes 数据库进行交互操作。该软件存在一个安全问题,可能允许攻击者浏览任意系统文件。
通过指定“Replica ID”,远程攻击者可能访问到Web管理员的模板文件,并可能进一步访问到Web Server有读权限的任意系统文件。

Microsoft ISA Server 拒绝服务漏洞

Microsoft ISA Server 是一款企业级的代理服务器和防火墙产品。该软件存在一个安全问题,可能导致该软件拒绝服务。通过发送大量的UDP碎片包到ISA服务器,即可达到这种效果。

LibDB snprintf 缓冲区溢出漏洞

libdb 是Berkeley DB 软件包的实现,是由SleepyCat 公司发布的,包含在很多的操作系统中。该软件存在一个安全问题,可能允许本地或者远程攻击者提升权限。
这是由于libdb实现使用了不安全的snprintf/vsnprintf实现,并没有有效的检查数据的大小,而是直接交给sprintf处理。因此,所有使用libdb库的程序都有可能存在缓冲区溢出问题。

Cyrus-SASL Syslog 格式化字符串漏洞

Cyrus-SASL 是SASL,即“Simple Authentication and Security Layer”的开放源代码实现。该软件存在安全问题,可能导致攻击者执行任意代码。
Cyrus SASL 的内部日志函数存在一个格式化字符串漏洞,这可能允许攻击者执行任意代码。问题出在_sasl_syslog()函数中对syslog()的一个不安全调用:
static int _sasl_syslog(void *context __attribute__((unused)),
int priority,
const char *message)
......

/* do the syslog call. do not need to call openlog */
syslog(syslog_priority | LOG_AUTH, message)&#59;

return SASL_OK&#59;
}

Progress Database 格式化字符串漏洞

Progress Database 是一款商业数据库产品,是由Progress Software 公司发布和维护
的。该数据库存在一个安全问题,可能导致本地攻击者提升权限。
Progress Database 存在格式化字符串漏洞。该数据库中很多程序依赖环境变量“PROMSGS”来加载数据库依赖的文件,通过精心构造一个包含格式化字符串的文件,
如果运行setuid程序,当调用环境变量“PROMSGS”时,可能允许攻击者重写任意进程内存,从而导致提升权限。

Dream Catchers Post-It! CGI 远程执行任意命令漏洞

Post-It! 是一个用于向HTML文件添加注释的CGI程序。它存在一个安全问题,允许攻击者以Web Server权限运行任意命令。
这是由于该CGI脚本没有对用户输入的参数进行任何过滤,然后直接交给shell命令处理造成的。

e-Zone Media FuseTalk 表格输入验证漏洞

e-Zone Media FuseTalk 是一款基于Web的论坛程序,允许用户创建交互式的通讯。该程序存在一个安全问题,可能允许攻击者修改SQL查询串。这是因为“join.cfm”没有对用户的输入进行任何过滤的结果。

Microsoft UPnP 拒绝服务漏洞

Microsoft Windows ME/XP所带的UpnP服务实现存在一个安全漏洞。可能造成远程拒绝服务漏洞。
通用即插即用(UPnP)服务使计算机能够发现和使用基于网络的设备。Windows ME和XP自带UPnP服务;Windows 98和98SE没有自带的UPnP服务,但可以Windows XP的互联网连接共享客户端安装这一服务。
由于UPnP服务不能正确地处理某种类型的无效请求,因此产生了一个安全漏洞。Windows98、98SE和ME系统在接收到这样的一个请求之后会出现各种后果,可能造成性能降低甚至系统崩溃。Windows XP系统受到的影响没有那么严重,因为该漏洞含有一个内存泄漏问题。Windows XP系统每次接收到这样的一个请求时,就会有一小部分系统内存无法使用;如果这种情况重复发生,就会耗尽系统资源,使性能降低,甚至完全终止。

WS_FTP Server v2.0.3 缓冲区溢出漏洞

WS_FTP Server 是基于Windows平台的FTP服务器软件,该软件的2.0.3 版本存在一个缓冲区溢出漏洞,可能允许远程攻击者执行任意代码。
这是由于解析“STAT”命令的代码没有验证用户输入的参数长度,如果攻击者输入一个超长的参数给’’STAT’’命令,就会发生缓冲区溢出。

RH Linux Tux HTTPD 拒绝服务漏洞

Tux 是内核空间的HTTP Server,可以最大地提高性能,能够与用户空间的HTTPServer,如Apache同时工作,缺省情况下是禁止的。该软件存在一个安全问题,可能
导致拒绝服务。
通过向远程服务器发送超长的“Host:”头,就可以导致远程服务器拒绝服务,只有重新启动才能恢复正常工作。

Entrust GetAccess(tm) Access 服务文件泄漏漏洞

Entrust getAccess[tm] 使用缺省的shell脚本来运行Java类文件,但是这些shell脚本缺乏足够的输入检查,可能导致泄露文件内容或者目录文件列表。

GetAccess提供了一个本地化机制以便可以通过指定语言模板来显示信息页面。本地化模板通过locale变量来指定,由于没有对locale变量进行安全检查,攻击者可
以通过输入包含../的路径或者文件名来查看任意cgi有权读取的文件内容或者目录列表。

Raptor Firewall 零长度UDP包资源耗尽漏洞

Raptor Firewall 是一款商业防火墙产品,是由Symantec 公司发布的。该软件存在一个安全问题,可能导致资源耗尽。通过发送零长度的UDP包到该防火墙,可以导致CPU占用率100%,放置该防火墙的主机速度变慢。

Linux Syn cookies 过滤规则绕过漏洞

Linux 包过滤存在安全问题,如果使用了“synookies”的话,可能允许攻击者绕过某些规则。
当在“syn-flood”保护模式下处理连接请求时,针对设置了“syn”标志的TCP包的过滤规则无法正确作用。如果攻击者能够猜出一个有效的“syn cookie”响应,就可能访问到该主机提供的服务。
Zone Labs ZoneAlarm Pro 未授权的本地安全设置问题
ZoneAlarm 存在一个安全问题,允许未授权用户在本地局域网安全设置下连接到该防火墙保护的主机。
如果访问者IP地址的前两个八位字节和受保护的主机的IP地址相同,那么该访问者主机就被认为是本地主机,也就能够按照本地安全设置访问受保护的主机。

IBM AS/400 HTTP Server 暴露网页源码问题

IBM AS/400 HTTP Server 存在一个安全问题,通过在请求网页文件名(如.html或.jsp)后添加字符“/”,可以得到网页的源码,而不是经过服务器端解释过的网页。

ToolTalk Library 缓冲区溢出漏洞

ToolTalk是Common Desktop Environment (CDE)软件包的一部分,随同多种商业版UNIX操作系统一起发布。其库文件存在一个安全问题,可能允许攻击者提升权限。
由于不正确的边界检查,导致任何链接到该库文件的可执行程序存在缓冲区溢出漏洞,可能导致攻击者提升权限。
Rational ClearCase DB Loader TERM 环境变量缓冲区溢出漏洞ClearCase 是一款软件变动管理软件包,由Rational维护和发布。该软件存在一个安全问题,可能允许本地攻击者获取root权限。由于db_loader 没有正确检查用户输入的TERM环境变量,攻击者通过精心构造一个特殊的TERM环境变量,可能导致任意代码执行,攻击者就能因此而提升权限。

Slashcode 可猜测会话ID漏洞

Slashcode是一个流行的Web讨论板系统。用户可以注册一个账户并且登录到系统来发贴子或者回复别人的贴子。用户认证是通过一个在Cookie中的会话ID来实现的。
对于一个新创建的用户,Slashcode系统初始分配一个随机的8个字符的口令。如果用户没有更改这个初始口令,那么分配给他的那个会话ID通过暴力猜解可以被得到,这可能会导致Slashcode系统上的一个会话被劫持。

RedHat Linux IPTables 保存选项无法恢复规则漏洞

Red Hat Linux 是免费,开放源代码的UNIX操作系统的变种,是由Red Hat 公司发布和维护的。该系统的防火墙存在一个安全问题,可能导致管理员在不知情的情况下将系统暴露在危险之中。
这是由于“-c”选项创建了一个iptables无读权限的文件,当系统重新启动,iptables试图加载这个文件时会失败,这样该系统就会失去保护。

Microsoft IE Cookie 信息泄露/修改漏洞

Microsoft Internet Explorer 存在一个安全漏洞,通过精心构造一个URL请求,可能显示或修改任意站点的Cookie内容。
这是由于IE错误处理跨域的Cookie以及“about”协议存在的跨站脚本执行漏洞造成的。

Apache mod_usertrack ID 可预测漏洞

Apache 是一款广泛流行,开放源代码的HTTP Server,其发布中包含一个“mod_usertrack”模块,用来为单独的Web会话和请求产生唯一的标适符。该模块存在
一个安全问题,可能允许攻击者预测session ID。
这是由于该模块使用了客户IP地址,系统时间和服务器进程ID来计算session ID的,因此该session ID不是随机的,是可预测的。

Solaris PT_CHMOD 任意终端可写漏洞

Solaris 8 是一个可自由获得的UNIX操作系统,由Sun微系统公司维护。
它的终端控制存在一个问题,当用户释放一个终端的时候,它的一个终端控制表项没有被清除,之后被分配给了新用户。从而使用户向其他终端写数据成为可能。

IBM CCA 3DES 生成导出密钥脆弱性

IBM 4758 是一种用来支持 IBM Common Cryptographic Architecture (CCA 普通加密架构) 的加密协处理器。这一般被银行使用,用来对ATM和支持行之间的通讯进行加密,这些加密通常使用3DES算法和一个密钥。CCA库包含一个功能,允许一些3DES密钥被导出,如果它们是被一个另外的3DES导出密钥加密的话。CCA的一个设计缺陷可以使一个有产生3DES导出密钥权限的用户生成这样一个密钥,这是通过先产生一个3DES复制密钥和一个单独的DES数据密钥实现的。而这两个密钥分别只提供一个层次的DES安全,攻击可以通过暴力猜测的方式分别得到这两个密钥,从而得到导出密钥。利用导出密钥,攻击可以导出一些允许被导出的3DES密钥。
很可能低版本的CCA也有这种脆弱性,对些漏洞的攻击需要不同的本地访问许可。

Imp/Horde Webmail系统可利用跨站攻击劫持会话漏洞

Imp/Horde Webmail系统存在跨站攻击漏洞,攻击者通过向被攻击者发送一个有特殊URL的信件,引诱被攻击者点击,Webmail会话被定向到攻击者控制的程序,程序可以用来获取此Webmail会话的Cookie,利用Cookie中的内容就可以劫持会话,阅读被攻击者的邮件。

Microsoft Windows 2000 RunAs 用户敏感信息泄露漏洞

Windows 2000 的RunAs服务允许一个用户以其它用户的身份执行命令,该服务存在一个安全问题,可能导致用户敏感信息泄露。
当用户使用RunAs命令执行命令时,该用户必须提供要运行命令的用户帐号和密码,当RunAs程序结束后,用户的这些敏感信息还存储在内存中,因此这些敏感信息可能会被其它进程所获取。

CDE dtspcd 远程缓冲区溢出漏洞

CDE是一个Unix系统下使用的基于Motif的图形操作环境。它与一些商业Unix系统一起发布。一个CDE的组件存在缓冲区溢出漏洞,攻击者可以远程获得受影响主机的管理员权限。
这个溢出问题存在于libDtSvc库,它被’’子进程控制服务’’所使用。这个溢出漏洞可以通过’’dtspcd’’服务被利用,
’’dtspcd’’是一个监听于TCP 6112端口的服务器程序。

Microsoft Windows 2000 RunAs 命名管道劫持漏洞

Windows 2000 的RunAs服务允许一个用户以其它用户的身份执行命令,该服务存在一个安全问题,可能导致用户命名管道被劫持。
当RunAs服务被调用时,会创建一个命名管道用于客户端提交证书(即帐号密码信息),该命名管道是明文通信的。当RunAs服务结束之后,如果另一个用户试图使用
RunAs服务时,攻击者就可以创建一个同名的命名管道。

Microsoft Windows 2000 RunAs 拒绝服务漏洞

Windows 2000 的RunAs服务允许一个用户以其它用户的身份执行命令,该服务存在一个安全问题,可能导致拒绝服务。
当RunAs服务被调用时,会与指定的服务器创建一个命名管道会话用于进行认证,由于RunAs服务在同一时刻只允许建立一个会话,如果一个用户创建了一个这样的会话却不请求任何服务,那么其它的客户端将无法使用该服务。

ActivePerl PerlIS.dll 远程缓冲区溢出漏洞

NSFOCUS安全小组发现ActivePerl所带的一个动态链接库(perlIS.dll)在处理超长文件名时存在一个缓冲区溢出漏洞,攻击者可能利用这个漏洞远程执行任意代码。

ActivePerl 是ActiveState公司开发的一套二进制perl软件包,可应用于Linux,Solaris,Windows系统下。ActivePerl for windows包含一个名为perlIS.dll的动态链接库文件,它是一个ISAPI扩展,为微软IIS服务器提供了一个高性能的perl接口。
PerlIS可以对用户发送的perl脚本请求进行处理,然而,它没有正确检查用户提交的URL请求的长度。如果用户发送一个超长的URL请求,PerlIS会调用strcpy()将其拷贝到一个堆栈中的缓冲区里,这会触发一个缓冲区溢出。攻击者可以覆盖堆栈中的一些敏感数据,例如返回地址等等,如果精心构造URL请求的内容,攻击者就可以远程执行任意代码。
成功地利用这个漏洞,在IIS 5.0中,攻击者可以获取IWAM_machinename用户的权限. 在IIS 4.0中,攻击者可以获取Local SYSTEM权限。

thttpd 和 mini_http 权限绕过漏洞

Thttpd Secure Webserver 和Mini_httpd Webserver 存在一个安全问题,可能导致权限被绕过,从而不经授权即可访问某些受保护的资源。
问题出在httpd进程对文件请求的处理方式。如果一个文件是权限为403,或者处于一个密码保护的目录中,那我们就可能远程查看这些文件的内容。该漏洞只在chroot选项打开的情况下,并且影响Mini_httpd Webserver 的所有版本。
如果使用htaccess保护目录,只要我们知道文件名,就可能访问到这些受保护的文件。
如果使用htpasswd文件的话,通过发送一个特殊的请求,我们也可能浏览这些文件的内容。

Opera Java脚本跨站执行漏洞

Opera是一个跨平台的Web浏览器。它的javascript实现中存在几个漏洞,允许位于一个html页面中的Java脚本访问到其他域中的页面和相关的实体(比如Cookie)。Netscape称这个问题为“同源漏洞”。
利用这些漏洞,在一个Web页面中的Java脚本访问到任意其他域中用户有权限访问的Cookie和URL是完全可
能的,甚至访问到用户缓存中的链接和历史记录,这将对隐私构成威胁。在某些情况下,缓存中的URL历史
记录可能包括一些敏感信息,比如用户名和口令等。

微软Win2k/XP终端服务IP欺骗漏洞

Win2k/XP 的终端服务器存在一个安全问题,允许远程攻击者匿名访问该服务。
这是由于Win2k/XP 的终端服务器不是从TCP栈中取客户端的IP地址,而是接受客户端提供的IP地址,该IP地址是通过基于ITU T.120 协议的Remote Desktop Protocol 传输的。如果某个客户端位于路由器的后面,并且只有内部IP地址,如果该客户端与远程终端服务器建立连接的话,那么远程的终端服务器就会记录该客户端的内部IP地址,而该地址是没有什么意义的。

Postfix SMTP会话日志内存耗尽漏洞

Postfix SMTP Server 用来维护SMTP的会话记录,用于以后的调试目的。我们可以配置当SMTP会话错误终止之后是否发送错误信息给管理员。但是该软件存在一个安全问题,可能导致内存耗尽攻击。
这是由于没有考虑到错误日志可能会特别大造成的。

Cisco IOS ARP表重写漏洞

一些特定版本的Cisco IOS软件存在漏洞,通过向运行着那些IOS软件的Cisco路由器或交换机的有广播能力的接口(如ethernet, cable, tokenring, fddi)发送特别的ARP包,可以使那些设备在那些接口上停止接收和发送ARP包。这个漏洞的问题在于当一个路由器收到一个指向它自
身某个接口IP地址的ARP包,而IP对应的Mac地址为另一个与自身缓存里不同的Mac地址时,路由器中的相关ARP表中的表项将被收到的内容重写。
这种攻击只能在攻击者与被攻击的设备处于同一个网段内才能实现。这个漏洞的Cisco漏洞ID为CSCdu81936。

PHPNuke Network Tool任意命令执行漏洞

Network Tool是一个由Rick Fournier编写和维护的PHPNuke功能扩充附件,它可以通过一个Web
界面提供一些诸如nmap,traceroute及ping等的网络功能。
这个软件包对用户的输入中那些有特殊意义的元字符的过滤存在问题,使攻击者通过构造一个特殊的输入在服务器上以httpd的身份执行任意命令成为可能。

OpenServer 5.0.5 Nmap -P0扫描终止inetd漏洞

OpenServer 5.0.5 的“/etc/inetd”存在安全问题,如果你运行Nmap时打开了“-P0”选项来对其进行端口扫描的话,可能导致inetd进程意外终止。

UBB 跨站脚本执行漏洞

Infopop Ultimate Bulletin Board 存在一个安全问题,可能允许远程攻击者利用IE的漏洞获取其它用户的ookie。

Microsoft IE Cookie 泄露漏洞

Internet Explorer对主机名字的处理存在问题,通过一些有特殊格式的主机名字,一个恶意的网站可以读取或者修改用户机器上其他网站所设置的Cookie。

如果这个漏洞被成功地利用,一些Cookie中储存的敏感信息如:session ID,认证信息将会泄露。这将有助于进一步攻击相关的用户和网站。

OPIE 帐号存在信息泄露漏洞

OPIE是一个使用一次性口令进行远程认证的软件包。用户使用一系列预生成的口令进行认证,在认证开始的时候,系统会提示当前的口令序列号。对任何需要登录验证的系统来说,一个标准的预防措施是无论口令和用户是否存在或合法,应该给出相同的提示或错误信息。
然而OPIE在对一个不存在的用户打印提示信息的时候随机地选择一个序列号,这样一来,多次连接要求登录相同的不存在的用户名时,每次所提示的序列号是不同的。而对存在的用户名来说,只要登录没有成功,每次提示要求输入口令时,所打印出来的口令序列号是相同的。
这样就能使攻击者有效地判断出系统中是不是存在相应的帐号。

Cistron RADIUS 摘要算法缓冲区溢出漏洞

Cistron是一种流行的RADIUS认证服务器实现。它在一个计算消息摘要的函数中存在一个缓冲区溢出问题。虽然据信这个漏洞不能被用来执行任意指令,但它可能会导致段错误,从而使服务器程序崩溃,造成远程拒绝服务攻击。其他基于Cistron源程序的服务器程序也可能有此漏洞。

ACME Labs thttpd 2.20远程单字节缓冲区溢出漏洞

thttpd是运行于Unix-like操作系统上的一个简单,小巧,快速的Web服务器程序。
thttpd用于进行Web认证的程序模块存在一个单字节缓冲区溢出问题,可以使攻击者从远程得到Web服务器的shell访问权限。

出现漏洞的程序代码为:libhttpd.c/auth_check()

static int
auth_check( httpd_conn* hc, char* dirname )
  {
  static char* authpath&#59;
  static int maxauthpath = 0&#59;
  struct stat sb&#59;
  char authinfo[500]&#59;
  char* authpass&#59;
[...]
  l = b64_decode( (hc-authorization[6]), authinfo, sizeof(authinfo) )&#59;
  authinfo[l] = ’’\0’’&#59;

可以注意到authinfo缓冲区长度为500,用来储存由b64_decode从HTTP ’’Authorization’’头中解码出来的认证信息串,用NULL来结束这个串。函数中在authinfo变量之上的自动变量只有结构sb,其他变量会根据初始化被放在data或bss段中。变量l存放b64_decode的返回值,
它可能会是多大呢,看b64_decode函数:

static int
b64_decode( const char* str, unsigned char* space, int size )
{
const char* cp&#59;
int space_idx, phase&#59;
int d, prev_d = 0&#59;
unsigned char c&#59;

space_idx = 0&#59;
phase = 0&#59;
for ( cp = str&#59; *cp != ’’\0’’&#59; ++cp )
{
d = b64_decode_table[(int) *cp]&#59;
if ( d != -1 )
{
switch ( phase )
{
case 0:
++phase&#59;
break&#59;
case 1:
c = ( ( prev_d  2 ) | ( ( d  0x30 )  4 ) )&#59;
if ( space_idx  size )
space[space_idx++] = c&#59;
++phase&#59;
break&#59;
case 2:
c = ( ( ( prev_d  0xf )  4 ) | ( ( d  0x3c )  2 ) )&#59;
if ( space_idx  size )
space[space_idx++] = c&#59;
++phase&#59;
break&#59;
case 3:
c = ( ( ( prev_d  0x03 )  6 ) | d )&#59;
if ( space_idx  size )
space[space_idx++] = c&#59;
phase = 0&#59;
break&#59;
}
prev_d = d&#59;
}
}
return space_idx&#59;
}

  这里’’size’’来自sizeof(authinfo) == 500,“if ( space_idx  size )”这个检查
只能使space_idx最大到499,“space[space_idx++] = c&#59;”使space_idx的值到了500,然
后space_idx的值被返回给auth_check。再看回来:

l = b64_decode( (hc-authorization[6]), authinfo, sizeof(authinfo) )&#59;
authinfo[l] = ’’\0’’&#59;

  ’’l’’ == 500,所以“authinfo[500] = ’’\0’’”把缓冲区溢出了一个字节!

Hypermail SSI 远程任意命令执行漏洞

Hypermail是一款把Email转化为HTML格式的软件,由Hypermail Development开发和维护。

Hypermail存在一个安全问题,可能允许攻击者在目标服务器上创建任意文件,进而导致执行任意命令。
这是由于Email附件在被处理之前,没有做任何处理,因此通过发送一封含有特殊附件的邮件,可以在目标服务器上创建该文件,通过调用该文件就可能导致执行任意命令。

Sendmail 队列处理数据丢失/拒绝服务漏洞

Sendmail是一种免费,广泛使用的邮件传输代理,由Sendmail Consortium维护。
Sendmail存在一个安全问题,可能导致信件丢失或拒绝服务。
Sendmail允许合法用户强制处理整个邮件队列。当运行sendmail时,用户可以改变主要的配置,例如设置邮件的跳跃点,使其大于sendmail规定的上限,这样就可能导致队列
中的邮件丢失。

Citrix MetaFrame接受虚假IP地址漏洞

Citrix MetaFrame是终端服务环境下的一个应用服务器程序。
Citrix MetaFrame存在一个问题,用户可以使之记录一个虚假的IP地址。
当一个客户机连接的时候,客户机的名字和网络地址作为ICA协议的一部分被传送给服务器。而服务器记录的就是这些客户机提供过来的信息,而不是从操作系统的TCP/IP实现中得到客户机的网络地址。






欢迎光临 光电工程师社区 (http://bbs.oecr.com/) Powered by Discuz! X3.2