来源于应用层的攻击

来自应用层的攻击
本文档的Copyleft归yfydz所有,使用GPL发布,可以*拷贝、转载,转载时请保持文档的完整性,

严禁用于任何商业用途。
msn: yfydz_no1@hotmail.com
来源:http://yfydz.cublog.cn

0. 概述
应用层的攻击表现形式很多,但基于的原理就那几种,有的是针对应用层协议的,有的是针对应用程序的,都统并在一起吧。

1. 应用层协议攻击
其实协议本身有漏洞的不是很多,即使有很快就能补上。漏洞主要是来自协议的具体实现,比如说同样的HTTP服务器,虽然都根据相同的RFC来实现,但Apache的漏洞和IIS的漏洞就是不同的。应用层协议

本身的漏洞包括:
1) 明文密码,如FTP、SMTP、POP3、TELNET等,容易被sniffer监听到,但可以通过使用SSH、SSL等来进行协议包装;

2) 多连接协议漏洞,由于子连接需要打开动态端口,就有可能被恶意利用,如FTP的PASV命令可能会使异常连接通过防火墙;

3) 缺乏客户端有效认证,如SMTP,HTTP等,导致服务器资源能力被恶意使用;而一些臭名昭著的远程服务,只看IP地址就提供访问权限,更属于被骇客们所搜寻的“肉鸡”;

4) 服务器信息泄漏,如HTTP、SMTP等都会在头部字段中说明服务器的类型和版本信息;

5) 协议中一些字段非法参数的使用,如果具体实现时没注意这些字段的合法性可能会造成问题;

2. 缓冲溢出
缓冲溢出是程序员永远的痛,具体原理过程很多地方都有相关文章,通过攻击具有ROOT权限的程序的缓冲溢出漏洞,就能获取ROOT权限,程序员们真该抱怨库函数中为什么要提供诸如sprintf, gets,scanf, strcpy, strcat等这样的函数。一般的shellcode都有一个比较长的同一字符的前导段,转换为机器码时就是“NOP”,可用之来进行检测。

3. 口令猜测/破解
口令猜测往往也是很有效的攻击模式,或者根据加密口令文件进行破解。世界上有多少人是用自己的名字+生日作为自己的密码呢?即使用了复杂密码,也因为密码的复杂性在很多场合都用这一个密码,包括一些几乎没有任何保护的BBS,Blog、免费邮箱等地方,而且用户名往往都是相同的,这样就给“有心之人”留出了巨大无比的漏洞。网上无数文章都在教导建立单一复杂口令的必要性。

4. 后门、木马和病毒
主要是使用来源不明或者非法软件带来的后果了。对于利用正版软件漏洞导致的病毒感染所造成的损失,不知道国内法律是否有索赔一说?

5. 常见攻击模式总结
1) 带宽攻击
带宽攻击就是用大量数据包填满目标机的数据带宽,使得任何机器都无法再访问该机。此类攻击通常是属于IP、TCP层次上的攻击,如各种Flood攻击;也有应用层面的,如网络病毒和蠕虫造成的网络阻塞。

2)缺陷攻击
缺陷攻击是根据目标机系统的缺陷,发送少量特殊包就使其崩溃,如tear drop,winnuke等攻击;也有的根据服务器的缺陷,发送特殊请求来达到破坏服务器数据的目的。这类攻击属于一招制敌式攻击,自己没有什么损失,但也没有收获,无法利用目的机的资源。

3)控制目标机
隐秘地全面控制目标机才是网络入侵的最高目标,也就是获取目标机的ROOT权限而不被目标机管理员发现。为实现此目标,一般经过以下一些步骤:端口扫描,了解目标机开了哪些端口,进一步了解使用是那种服务器的实现;检索有无相关版本服务器的漏洞;尝试登录获取普通用户权限;以普通用户权限查找系统中是否可能的suid的漏洞程序,并用相应shellcode获取ROOT权限;建立自己的后门方便以后再来。