电脑病毒灰鸽子原理及检测
你知道一个病毒是怎么来的吗!它的构造等等!我们一起去了解吧!下面由小编对灰鸽子的原理和检测做出详细的分析!希望对你有帮助!
软件原理编辑
此类软件被统称为远程控制类软件(或黑客软件、木马软件),它们均为 C/S 结构(Client/Server,客户机/服务器)。软件分为客户端与服务端两部分,客户端即为控制端(由控制者使用),服务端为被控制端(由被控制者使用),依据服务端运行时是否会显示明显的运行标志(即对方是否知道它运行有服务端),可分为正邪两派,邪派就是传说中的黑客软件、特洛伊木马程序,是各大杀毒软件的首要目标。同类软件原理服务端运行后,会在本机打开一个网络端口监听客户端的连接(时刻等待着客户端的连接),连接建立后,客户端可用这个通道向服务端发送命令并接收返回数据,即可实现远程访问。
相关原理
a.“反弹端口原理”简介
如果对方装有防火墙,客户端发往服务端的连接首先会被服务端主机上的防火墙拦截,使服务端程序不能收到连接,软件不能正常工作。同样,局域网内通过代理上网的电脑,因为是多台共用代理服务器的IP地址,而本机没有独立的互联网的IP地址(只有局域网的IP地址),所以也不能正常使用。就是说传统型的同类软件不能访问装有防火墙和在局域网内部的服务端主机。但往往是道高一尺、魔高一丈,不知哪位高人分析了防火墙的特性后发现:防火墙对于连入的连接往往会进行非常严格的过滤,但是对于连出的连接却疏于防范。于是,与一般的软件相反,反弹端口型软件的服务端(被控制端)主动连接客户端(控制端),为了隐蔽起见,客户端的监听端口一般开在80(提供HTTP服务的端口),这样,即使用户使用端口扫描软件检查自己的端口,发现的也是类似 TCP UserIP:1026 ControllerIP:80 ESTABLISHED 的情况,稍微疏忽一点你就会以为是自己在浏览网页(防火墙也会这么认为的)。看到这里,也许有人会问:既然不能直接与服务端通信,那如何告诉服务端何时开始连接自己呢?答案是:通过主页空间上的文件实现的,当客户端想与服务端建立连接时,它首先登录到FTP服务器,写主页空间上面的一个文件,并打开端口监听,等待服务端的连接,服务端定期用HTTP协议读取这个文件的内容,当发现是客户端让自己开始连接时,就主动连接,如此就可完成连接工作。本软件用的就是这种“反弹端口”原理,可以穿过防火墙,甚至还能访问局域网内部的电脑。据作者所知,在同类软件中,本软件是唯一使用这种方法的,祝贺你!你幸运的选择了它。
b.“HTTP隧道技术”简介
简单的来说,就是把所有要传送的数据全部封装到 HTTP 协议里进行传送,就可以通过 HTTP、SOCKS4/5 代理,而且也不会有什么防火墙会拦截。我们都知道其它木马只能访问拨号上网的服务端,而因为网络神偷使用了“反弹端口原理”所以它不仅能访问拨号上网的服务端,更可以访问局域网里通过 NAT 代理(透明代理)上网的服务端。而使用“HTTP隧道技术”以后,它甚至可以访问到局域网里通过 HTTP、SOCKS4/5 代理上网的服务端。这样,网络神偷就几乎支持了所有的上网方式,也就是说“只要能浏览网页的电脑,网络神偷都能访问!”。网络神偷服务端支持以下上网方式:拨号上网、ISDN 、ADSL 、DDN 、Cable Modem 、NAT透明代理、HTTP的GET型代理、HTTP的CONNECT型代理、SOCKS4 代理、SOCKS4A 代理、SOCKS5 代理 ,上述上网方式下,均可正常工作。
上线通知原理:互联网如此之大,覆盖全球,我们如何标识并找到上面的任何一台电脑呢?答案是:IP地址,每台连网电脑都会被分配一个IP地址,这个IP地址是全球唯一的,就象你家的门牌号码,别人可以根据这个找到你。同样,IP地址分配是有规律的,可以根据IP地址分配表查出相应的地理位置(本软件内置IP地址分配表)。现在大多数互联网用户是拨号上网的,拨号上网的IP地址是由ISP(互联网接入服务提供商,例如163、169)动态分配的。两台电脑想要连接就必须要知道对方的IP地址,就象想去你家串门就必须知道你的住址。因此,服务端如何把自己的IP地址告诉客户端就成了一个大问题,也就是服务端上线通知。
灰鸽子现在最常用的方法是Email通知,即服务端上网后,发送自己的IP地址到事先指定的邮箱,客户端使用者只要去收信就行了。这种方面虽然最常用,但有很大不足,首先Email的实时性得不到保证,时慢时快,这与发信服务器的线路质量有很大关系。其次,现在越来越多的发信服务器设了“发信认证”功能,发信也要邮箱的密码(原来只有收信才要),这就给服务端发信增加了困难,服务端不带密码无法发送,带密码则有可能被别人破出来。
手工检测编辑
由于灰鸽子拦截了API调用,在正常模式下服务端程序文件和它注册的服务项均被隐藏,也就是说你即使设置了“显示所有隐藏文件”也看不到它们。此外,灰鸽子服务端的文件名也是可以自定义的,这都给手工检测带来了一定的困难。
但是,通过仔细观察我们发现,对于灰鸽子的检测仍然是有规律可循的。从上面的运行原理分析可以看出,无论自定义的服务器端文件名是什么,一般都会在操作系统的安装目录下生成一个以“_hook.dll”结尾的文件。通过这一点,我们可以较为准确手工检测出灰鸽子 服务端。
体积仅70kb隐蔽性更强
由于正常模式下灰鸽子会隐藏自身,因此检测灰鸽子的操作一定要在安全模式下进行。进入安全模式的方法是:启动计算机,在系统进入Windows启动画面前,按下F8键(或者在启动计算机时按住Ctrl键不放),在出现的启动选项菜单中,选择“Safe Mode”或“安全模式”。
1.由于灰鸽子的文件本身具有隐藏属性,因此要设置Windows显示所有文件。打开“我的电脑”,选择菜单“工具”—》“文件夹选项”,点击“查看”,取消“隐藏受保护的操作系统文件”前的对勾,并在“隐藏文件和文件夹”项中选择“ 显示所有文件和文件夹”,然后点击“确定”。
2.打开Windows的“搜索文件”,文件名称输入“*_hook.dll”,搜索位置选择Windows的安装目录(默认98/xp为C:windows,2k/NT为C:Winnt)。
3.经过搜索,我们在Windows目录(不包含子目录)下发现了一个名为Game_Hook.dll的文件。
4.根据灰鸽子原理分析我们知道,如果Game_Hook.DLL是灰鸽子的文件,则在操作系统安装目录下还会有Game.exe和Game.dll文件。打开Windows目录,果然有这两个文件,同时还有一个用于记录键盘操作的GameKey.dll文件。
经过这几步操作我们基本就可以确定这些文件是灰鸽子服务端了,下面就可以进行手动清除。