APP下载

多Web代理技术在木马通信中的实现

2012-08-10周赵军彭春林

通信技术 2012年8期
关键词:代理服务器字段木马

周赵军,张 剑,彭春林

(①电子科技大学 电子科学技术研究院,四川 成都 611731;②中国电子科技集团公司第三十研究所,四川 成都 610041)

0 引言

目前防火墙技术的迅猛发展,尤其是网关型防火墙,对进入局域网的数据包检查的非常严格,通过IP过滤,这种类型的防火墙能够阻止陌生主机的数据包,甚至禁止局域网主机打开端口[1]。因此目前互联网上流行的木马通信方式除了直连型木马,又衍生出了基于端口反弹的木马通信方式。在加入了对代理的支持后,木马的通信方式就更加复杂了。文中主要对木马的通信方式进行研究和改进。在通信方式上集中了反弹型木马[2-3]、Web代理[4]、HTTP隧道[5]等多种技术的优势,并对 Web代理进行了增强使其在连接速度上有所提升。

1 相关背景

1.1 普通代理技术的缺陷

目前互联网上较为流行的木马基本上都支持各类代理。比如网络神偷[6]、国产冰河[7]、灰鸽子等木马,支持的网络连接方式包含:拨号上网、ISDN、ADSL、DDN、Cable Modem、NAT 透明代理、HTTP 的GET 型代理、HTTP 的 CONNECT 型代理、SOCKS4 代理、SOCKS4A 代理、SOCKS5 代理。基本上只要能上网的电脑,就能够被远程控制。

代理技术的使用大大提高的木马的通信能力,从而提高了木马的生存能力。但是在使用过程中也存在一定的缺陷:

(1)更新不方便

直连型木马不存在这个问题,每次连接受控端时,入侵者只需要实时的填写代理的IP地址即可。

对于反弹型木马,入侵者如果需要更新代理的话,则需要修改木马的代理配置文件,然后通过命令使得木马重新建立连接。

(2)带宽不一定最优

在入侵者和寄宿主机建立通信之前,以及通信过程中,入侵者至多只能知道当前使用的代理是否可用,带宽如何,而无法或很难与其他代理进行比较。因此在木马的通信过程中,入侵者使用的带宽并不一定是最快的,甚至有可能是最慢的一个,仅仅是可用而已。

(3)代理的稳定性决定了一切

代理的建立一般分两种情况:入侵者在其他寄宿主机上安装代理程序、互联网上提供的免费代理;相对来说,互联网上提供的免费代理可用性非常的差,因为此类代理服务器会经常更新,网速和可用性都不能很好的保证。使用其他寄宿主机做代理服务器,稳定性会较好,但是一旦寄宿主机的系统用户安装杀毒软件清理了木马、重装了系统、或者在防火墙上配置了IP过滤信息等,都有可能使得该临时代理服务器失效,那么使用该代理的所有寄宿主机也就无法控制了,因此稳定性也无法得到很好的保证。

1.2 多Web代理技术的特点

为了弥补普通代理技术在木马通信中的缺陷,木马的控制端和受控端首先采用 HTTP隧道技术与Web代理进行通信保证穿透性,同时采用多 Web代理保证代理的稳定性和带宽。以下是该方法的特点描述。

1)体积小:Web代理只需要对二进制数据进行转发,代码量极小。

2)便于安装:能够很方便的嵌入到正常网站的网页中;或上传到任意虚拟空间即可。

3)存储空间容易获取:提供免费虚拟空间的服务器在互联网上多如牛毛。

4)隐藏性强:Web代理是以网页的形式存在的,也能嵌入到正常网页中。

5)代理可选:木马能从多个代理中动态的选择最快的可用代理。

6)更新简单:代理的更新只需要往代理服务器上传新的代理网页即可。木马更新可选的代理则由木马通过网络速度和可用性自动的更新。

2 Web代理技术

2.1 概述

Web代理又称网页代理,是一种在网页上运行的代理服务器程序。其不用任何设置,输入网址选择好代理服务器便可以访问的优点已经成为时下最流行的代理访问方式。网页代理给客户端提供远程网站上的网页和文件的高速缓存,使客户端可以更加快速安全的浏览远程网站。目前网络上流行的几款 Web代理包括:PHPProxy[8]、Nginx以及 Glype proxy script等。然而目前网络上流行的Web代理多为普通的单代理系统,仅仅支持Web浏览,有些甚至不能支持图片浏览和脚本运行等操作,更别说支持木马的通信了。最主要的是,木马之间的通信数据多是二进制数据,而Web代理多用于访问网站,另外专用于木马通信的Web代理无需考虑Session,cookies等问题,也无需考虑界面问题,因此需要针对Web代理进行改造使其能够用来作为受控端和控制端之间的代理。

2.2 Web代理实现

以下以受控端为例,阐述受控端和Web代理进行通信的原理和流程。

2.2.1 接收数据

以下以PHP语言为例,阐述Web代理如何获取受控端发送的二进制数据:

由于Web代理主要处理二进制数据,因此所有发送给 Web代理的请求统一设定为 POST。$HTTP_RAW_POST_DATA保存的就是受控端POST的完整数据包。

Web代理接收到的数据包分为两类,一类用于请求数据,一类则是数据。因此Web代理的工作也就分为两类:将数据保存为临时文件,或读取临时文件中的数据返回给受控端。临时文件的类型主要分以下几种。

1)COMMAND: 操作命令,类似浏览文件夹,查看文件内容等操作。

2)CMD_COMMAND: CMD命令,类似Ping, tracert等在控制台执行的命令。

3)RESPONSE: 操作命令的执行结果,对应与COMMAND。

4)CMD_RESPONSE: CMD命令的执行结果,对应与CMD_COMMAND。

5)DOWNLOAD: 通过木马下载的文件。

6)UPLOAD: 往寄宿主机上传的文件。

2.2.2 数据包格式

受控端发送到Web代理的数据,需要按一定的格式打包。下面是该数据包的包头格式:

以下是在通信过程中用到的几个字段的描述。

bVerb:宏定义,为POST时,Web代理将该数据包保存成临时文件;为 GET时,Web代理立即返回对应的临时文件。

bFileType:宏定义,bFileType对应临时文件的类型。

HostName:保存受控端的主机名。Web代理通过该字段判断当前处理的是哪个主机的临时文件。

dwVersion:受控端应用程序的版本。

dwPackID:数据包ID;该字段可以有效的判断临时文件是否已失效,并维护通信的顺序。

bOrderType:命令类型,由控制端填写,受控端解析。一般情况下和通信无关,但是如果是特殊命令只需要代理执行而不转发给受控端的数据包,则需要解析该字段。

dwOffset:分片偏移,如果数据包由分片的话,需要解析该字段。

dwDataBuffer:数据包大小,受控端返回的数据如果超过了一个数据包缓存大小的话,就需要分片;该字段和dwOffset配合使用。

2.2.3 通信流程

在整个通信过程中,都是受控端首先发起连接请求,并将数据POST给Web代理。Web代理通过解析POST上来的数据进行相应的动作,并返回执行结果。如果是控制端和受控端之间通信的数据包,则以临时文件的形式保存和读取。

Web代理数据处理流程:

解析 bOrderType字段,判断是否特殊命令,如果是,则立即执行特殊命令,如:清理服务器所有临时文件,否则进入下一步;

解析bFileType字段,判断临时文件的文件名;

解析HostName,判断临时文件的路径;

根据数据包的分片偏移字段和数据包大小字段判断数据包是否分片,如果数据包是分片传输,则根据dwOffset字段来读/写临时文件;

解析bVerb字段,按照前面解析的信息,将数据包保存成临时文件,或读取对应的临时文件返回给受控端。

通过读取和保存临时文件,Web代理为控制端和受控端之间提供了数据转发。

控制端和Web代理之间的通信流程:

控制端发送数据包给Web代理,数据包ID为n;

Web代理将数据包缓存成临时文件,bFileType字段“命令”,临时文件类型为“命令文件”;

控制端轮询Web代理,获取数据包ID为n的临时文件,临时文件类型为“命令执行结果”;

如果Web代理缓存有类型为“命令执行结果”的临时文件,则返回给控制端。

受控端和Web代理之间的通信流程:

受控端发送数据包给Web代理,轮询数据包ID为n的临时文件,临时文件类型为“命令文件”;

受控端执行完命令后,将命令执行结果数据发送给Web代理;

Web代理将命令执行结果缓存成临时文件,文件类型为“命令执行结果”。

3 多代理技术

3.1 概述

多代理技术是指受控端并不通过单一的代理,而是通过多个代理,连接控制端的技术。受控端通过一定的算法计算出最佳代理,并通过该代理发送数据。

3.2 多代理拓扑图

图1为多代理的网络拓扑图。

代理列表以加密文件的形式,保存在受控端主机的特殊文件夹中。代理列表可以通过3种方式获取:

1)安装木马时默认配置。

2)通过邮件服务器获取。

3)通过控制端手动上传。

图1 多代理网络拓扑

3.3 代理选择算法

图2是多Web代理选择算法流程图。

图2 代理选择算法流程

受控端首先读取本地默认配置的代理服务器列表,如果读取成功则依次尝试和列表上的所有代理服务器进行连接,并找出速度最快的一个用于接下来的通信。

如果本地没有配置默认的代理服务器列表,或者读取失败,则从配置的邮件服务器上获取。因此配置受控端时就必须配置一个邮件服务器。

受控端只有在本地的代理列表无效的时候,才会去邮件服务器更新代理列表,因此对邮件服务器的访问也不是很频繁,同时也能尽可能的利用代理列表上的资源。当然,也能够通过上传代理列表文件的方式更新。

4 结语

该课题的研究提供了一种新的通信方式,采用HTTP隧道技术与Web代理进行通信,提高了通信的成功率,极少有防火墙会进行拦截,网络管理员也很容易忽略这种看似正常的Web访问。采用多代理技术又大大提高了控制端和寄宿主机之间建立连接的成功率和连接速度,使得用户能够选择一条既可靠,速度又较快的连接链路,也大大提高了用户体验。该项技术的成功实施,能够使木马很好的适应各种受限网络[9-12],帮助木马解决IP封锁问题,提高受控端和客户端之间的通信质量。在解决木马生存性问题的同时,也为今后的木马制作,在通信方面拓展了一种新的思路。当然,在多代理选择算法上,还有很大的改善空间。

[1] 贾文丽,薛强,孙济洲.分布式端口反弹攻击及检测[J].计算机工程,2004(07):45-47.

[2] 罗红,幕德俊,戴冠中. Research on Communication Techniques for Port Recall Trojan Horse[J].微电子学与计算机, 2006,23(02):193-197.

[3] 庄小妹. 木马的入侵检测技术与清除方法[J]. 内江科技, 2006(07):131-132.

[4] Web代理[EB/OL]http://baike.baidu.com/view/64380.htm.

[5] 黄伟峰.HTTP tunnel 技术在VOIP系统中的实现[J].微型电脑应用,2004(02):46-48.

[6] 网络神偷[EB/OL].http://baike.baidu.com/view/812867.htm.

[7] 冰河木马[EB/OL]. http://baike.baidu.com/view/295409.htm.

[8] PhpProxy介绍[EB/OL].http://baike.baidu.com/ view/2601068.htm.

[9] 胡耀东,武书彦.嵌入式网页(IFRAME)病毒原理与防范[J]. 通信技术,2009,42(08):68-69.

[10] 高玮,郑连清.基于大体积文件传递的特洛伊木马的设计方案[J]. 通信技术,2008,41(03):96-97,106.

[11] 蔺聪,黑霞丽.木马的植入与隐藏技术分析[J]. 信息安全与通信保密,2008(07):53-55.

[12] 邓乐,李晓勇.基于IAT表的木马自启动技术[J]. 信息安全与通信保密,2007(02):151-153.

猜你喜欢

代理服务器字段木马
小木马
骑木马
小木马
浅谈台湾原版中文图书的编目经验
地铁信号系统中代理服务器的设计与实现
旋转木马
防火墙技术与校园网络安全的研究
CNMARC304字段和314字段责任附注方式解析
无正题名文献著录方法评述
关于CNMARC的3--字段改革的必要性与可行性研究