大家应该对\\"木马\\"这个名词并不陌生,很多人都觉得自己计算机系统变慢了”,“有些文件打不开,慢慢打开网页怀疑自己是不是中了\\"病毒木马\\"其实这里要给大家解释一下,\\"病毒\\"和\\"木马\\"这不是一个统一的概念,本质上有一些区别,木马虽然属于病毒其中一种应单独从病毒类型中剥离出来.独立称为\\"木马\\"程序。
木马与病毒的主要区别:
1、当被感染的软件运行时,病毒将代码添加到计算机软件中,修改程序的工作模式,以获得计算机的控制权。
木马与病毒的主要区别:
1、当被感染的软件运行时,病毒将代码添加到计算机软件中,修改程序的工作模式,以获得计算机的控制权。
2、木马是指未经用户同意进行非授权操作的恶意程序。它们可以删除硬盘上的数据,使系统瘫痪,窃取用户数据等。木马程序不能独立入侵计算机,而是依靠黑客传播。它们经常被伪装成\\"正常\\"传播软件。3、他们最大的区别是病毒是感染性的,而木马通常不是感染性的。此外,病毒入侵后立即感觉到 ,木马入侵后,我希望你没有感觉,这对她有好处\\"开展工作\\"。
好吧,在你理解了木马和病毒的区别之后,今天让我们进入主题,解释一下\\"木马程序的原理和实现\\"!
一、 木马程序简介1、木马的起源和定义
由来:先讲个故事,
故事发生在三千多年的古希腊,特洛伊王子帕里斯爱上了斯巴达国王的妻子海伦。王子把她带回了特洛伊古城,斯巴达王非常生气,他找到了他的兄弟,迈锡尼国王阿加伽门农,请求他的帮助,阿加伽门农只是想征服特洛伊,所以他借此机会建立了一个希腊联军来攻击特洛伊古城。然后事情就没那么简单了。建军围攻特洛伊古城已经9年没有进攻了。第十年,将军奥德修斯想出了一个计划,把一群勇士藏在一群巨大的木马腹里,放在城外,大军假装退役。特洛伊人以为敌人已经退役,就打开城门,打扫战场,把敌人留下的木马作为战利品带进城里。晚上,全城的军民都睡着了,埋伏在木马里的勇士们跳了出来,打开大门四处放火。城外士兵一拥而入,部队应外合攻打特洛伊城。后人称这只大木马为\\"特洛伊木马\\"。后来,人们在写文章时经常使用它\\"特洛伊木马\\"这个典故比比作埋葬在敌人营垒内的伏兵中的外合活动。
基本定义:入侵者编写入侵他人电脑并进行控制和破坏的程序,称为\\"木马程序\\"。木马类似于计算机网络中常用的远程控制软件,但由于远程控制软件是\\"善意\\"因此,控制通常不隐蔽;\\"木马\\"完全相反,木马的目的是
要达到\\"偷窃\\"如果性的远程控制没有很强的隐蔽性,那就是\\"毫无价值\\"的。
2.木马的主要特点
(1)伪装:木马总是伪装成其他程序来迷惑管理员。
(2)潜伏:木马可以无声地打开端口,等待外部连接。
(3)隐蔽:使用任务管理器甚至看不到木马的隐藏运行。
(4)自动运行:当系统启动时自动运行。
木马被入侵者用来做什么?
(1)入侵当无法进行基于认证和漏洞的入侵时,需要考虑使用木马入侵。(2)留后门
由于木马连接不需要系统认证,隐蔽性好,为了控制远程主机,可以种植木马留下后门。二、 木马的工作原理1、基本原理
木马是一种基于远程控制的黑客工具,一般包括客户端和服务端。其中,客户端在入侵者操作系统上运行,是入侵者控制目标主机的平台;服务端在目标主机上运行,是控制平台,服务端文件一般发送给目标主机。
木马主要依靠邮件附件、软件下载、淫秽图片、通信软件等方式传播。然后,木马诱导目标主机通过一定的提示操作木马的服务端程序,实现木马的种植。例如:入侵者伪装成目标主机用户的朋友发送了一张与木马捆绑在一起的电子贺卡。当目标主机打开贺卡时,虽然屏幕上会出现贺卡服务端程序已经在后台运行。
木马的体积很小,大部分是几个KB到几十电脑KB之间。当目标主机执行服务端程序时,入侵者可以通过客户端程序与目标主机的服务端建立连接,然后控制目标主机。
绝大多数木马使用通信协议的选择TCP/IP协议,但也有使用UDP协议的木马。木马的服务端程序将尽可能隐藏下落,监控特定端口,等待客户端连接;此外,服务端程序需要修改注册表以实现自启动功能,以便在每次重启计算机后正常运行。
2、关键技术
(一)隐藏技术
1)程序隐藏
木马程序可以通过程序捆绑将自己与正常程序捆绑在一起exe 捆绑文件。双击绑定程序时,正常exe 文件运行。程序隐藏只能从表面上识别木马程序,但可以通过任务管理器找到木马程序的痕迹,这就要求木马程序隐藏过程。2)进程隐藏
隐藏木马程序的过程显示可以防止用户通过任务管理器查看木马程序的过程,从而提高木马程序的隐藏性。主要有两种:
API拦截属于过程伪隐藏方法Hook技术监控和拦截系统中某些程序显示的过程API 调用函数,然后修改函数返回的过程信息,从结果中删除自己,导致任务管理器等工具无法显示木马过程。远程线程注入属于过程真实隐藏 主要是利用CreateRemoteThread函数创建远程线程,共享目标过程的地址空间,并获得目标过程的相关权限,以修改目标过程的内部数据并启动DLL 木马。
3)通信隐藏
木马程序的踪迹可以从通信连接中找到。因此,有必要隐藏木马程序的通信。主要有两种方式:
端口复用技术
,它允许木马服务端程序共享其他网络程序打开的端口与客户端连接,以防止重新打开端口以减少隐蔽性。关键是木马程序应该增加一个数据包转移判断模块,以控制主机对数据报告的转移电脑选择。利用ICMP和HTTP 协议
,通常只检查网络防火墙、入侵检测系统等安全设备ICMP第一篇报文不处理数据部分。因此,可以隐藏木马程序的通信数据ICMP 报告格式的选项数据字段传输,如将服务端程序传输给客户端程序的数据伪装成回显请求报告,将客户端程序传输给服务端程序的数据伪装成回显应答报告。这样,就可以通过了PING\\PINGRESPONSE在木马服务端程序和客户端程序之间建立高效的秘密会话信道。利用ICMP 协议传输数据也有很大的优势,即ICMP 属于IP 层协议在传输数据时不使用任何端口,因此具有更好的隐蔽性。(二)木马自启动技术
自启动功能至关重要。自启动可以保证木马不会因为用户关机操作而完全失效。以下是几种常用的方法。1)在Win.ini中启动
在Win.ini文件中的[Windows]字段中有启动命令\\"load=\\"和\\"run=\\"。默认情况下,\\"=\\"后面是空白的。这两个项目用于在系统启动时自动加载和运行。如果木马程序加载到这两个项目中,系统启动后可以自动加载和运行。2)在System.ini中启动
在System.ini文件中的[boot]字段的shell=Explorer.exe它是木马常用的隐藏加载场所。木马最常用的伎俩就是把本该是的\\"Explorer.exe\\"成为自己的程序名,名字几乎伪装成Explorer.exe同样,只需稍微改一下\\"Explorer\\"的字母\\"l\\"改为数字\\"1\\",或者把其中的\\"o\\"改为数字\\"0\\",如果不仔细注意,很难发现这些变化。或者是shell=Explorer.exe 加上木马程序的路径,如:shell=Explorer.exe sample.exe,这里的sample.exe是木马服务端程序。
3)通过启动组实现自启动
启动组是实现应用程序自启动的地方。启动组文件夹的位置是\\"C:\\Documents and Settings\\All Users\\「开始」菜单\\程序\\启动\\"。[注:\\"All Users\\"即对所有用户都有效]4)通过注册表启动
HKEY_CURRENT_USER\\Software\\Microsoft\\Windows\\CurrentVersion\\Run,HKEY_CURRENT_USER\\Software\\Microsoft\\Windows\\CurrentVersion\\RunOnce,HKEY_LOCAL_MACHINE\\Software\\Microsoft\\Windows\\CurrentVersion\\Run,HKEY_LOCAL_MACHINE\\Software\\Microsoft\\Windows\\CurrentVersion\\RunOnce
5)修改文件关联
修改文件关联是木马的常用手段。
例如:在正常情况下,txt打开文件的方法是notepad.exe但一旦文件与木马相关,txt打开文件的方式将被修改为用木马程序打开。例如:在正常情况下,txt打开文件的方法是notepad.exe但一旦文件与木马相关,txt打开文件的方式将修改为用木马程序打开。例如,著名的国产木马冰河就是这样。
6)捆绑文件
入侵者可以使用一些黑客软件,如名称Deception Binder,完成文件的捆绑,然后将这些捆绑文件放到网站上,FTP、BT当用户下载并执行捆绑文件时,等待资源下载场所启动木马服务端程序。
(三)木马植入技术
1)图标伪装
为了迷惑用户,黑客将木马服务的文件类型的图标替换了木马服务端程序的图标。2)文件捆绑欺诈
文件捆绑是利用文件捆绑器将木马服务器与正常文件捆绑在一起,从而欺骗对方运行捆绑木马程序。例如,将木马服务器与游戏或flash文件通过文件绑定成文件QQ或邮件发送给受害者。当受害者对游戏或游戏或flash如果您感兴趣并下载到机器上并打开文件,木马程序将悄然运行。3)定制端口许多旧的木马端口都是固定的,只要检查一下特定的端口就知道感染了什么木马。现在很多新的木马都增加了定制端口的功能,控制端用户可以在1024~65535之间选择一个端口作为木马端口,一般不选择1024以下的端口,给判断感染的木马类型带来了麻烦。
4)扩展名称欺骗
例如,图像文件的扩展名不可能是.exe,木马程序的扩展名必须是.exe,大多数用户看到扩展名称\\".exe\\"在文件中,心。因此,设计师会改变文件名称,例如\\"picture.tiff\\"更改为\\"pitcture.tiff.exe\\",因为windows默认不显示扩展名,用户只能看到\\"pi ct
电脑