1.什么是“溢出攻击”?
“溢出攻击”就像是将很多沙子倒入装满水的容器时,水就会溢出来一样。目前,大多溢出攻击都是针对缓冲区的溢出。当缓冲区溢出时,过剩的信息对电脑内存中原有内容进行完全替换,如未进行备份,你的内容就永远丢失了。
现在网上公布的攻击程序不仅具有破坏文件的功能,一般还会得到系统权限的CMDSHELL(管理命令行),那它又是如何实现的呢?“溢出攻击”在对缓冲区中的文件进行替换的同时,还会执行一些非法程序,从而得到命令行下的管理员权限,之后攻击者再通过命令行建立管理员账号,对电脑进行控制。
2.“溢出攻击”的实现
一般入侵者在网上了解或发现了可以进行溢出攻击的漏洞后,使用缺陷扫描器(如全面扫描的X-SCAN、针对单一漏洞扫描的IIS WEBDAV等工具)找到并确认存在远程溢出漏洞的电脑,接着便使用利用攻击代码编程成功的Exploit(攻击程序)发送Shellcode攻击,确认远程溢出成功后使用NC或TELNET等程序连接被溢出主机的端口从而得到CMDSHELL。
比如前段时间危害特别大的MS05039溢出漏洞,就是先利用MS05039Scan来扫描有漏洞的电脑(见图1),然后打开两个命令提示符窗口,一个用来得到CMDSHELL的NC(见图2),一个执行溢出攻击程序(见图3),当执行攻击程序后,就得到了系统权限的CMDSHELL(见图4)。
.jpg)
图1
.jpg)
图2
.jpg)
图3
.jpg)
图4
3.如何对溢出攻击进行防护?
说到防护,首先定时更新有效补丁,微软个官方补丁发布下载地址是http://www.microsoft.com/china/。但如果攻击者用的是尚未发布补丁的攻击程序呢?所以打补丁是有效,但不是惟一的方法。下面就来看看如何手动设置,对溢出攻击进行防御。
第一步:在Windows 2000/2003,可以建立一个用户,如boxer,密码最好用大于8位的数字与字母的混合方式,而且如果觉得还不够强壮,可以在用户的名称前面加上一个$。这样,可以建立一个隐藏账户,入侵时攻击者无法利用“net user boxer password”命令来修改这个用户的密码。另外强调一点,那个用户必须是USER组的。
第二步:对于Windows 2000/2003,建立用户后,打开C:\WINNT\System32(系统安装在C盘),找到cmd.exe,用右键选择“属性”项,在“安全”标签下修改cmd.exe的访问权限,只保留刚刚新建立的boxer用户对cmd.exe的完全控制权限,将其他用户全部删除,尤其是Everyone(见图5)。
.jpg)
图5


