一、木马病毒背景介绍
a) 特洛伊木马病毒是指隐藏在正常程序中的一段具有特殊功能的恶意代码,具备破坏和删除文件、发送密码、记录键盘和攻击等功能,会使用户系统破坏甚至瘫痪。
b) 1986年第一例计算机木马。
二、木马病毒的分类
a) 针对网游的木马病毒
b) 针对网银的木马病毒
c) 针对即时通讯工具的木马病毒
d) 给计算机开后门的木马病毒
e) 推广广告的木马病毒
三、木马病毒的发展阶段
a) 第一代木马:伪装性病毒
这种病毒通过伪装成一个合法性程序诱骗用户上当。世界上第一个计算机木马 是出现在1986年的PC-Write木马,它伪装成共享软件PC-Write的2.72版本。
此时的第一代木马还不具备传染特征。
b) 第二代木马:AIDS型木马
由于当时很少有人使用电子邮件,所以AIDS的作者就利用现实生活中的邮件 进行散播:给其他人寄去一封封含有木马程序软盘的邮件。此木马名字的得来 是因为软盘中包含有AIDS和HIV疾病的信息。软盘中的木马程序在运行后,
不会破坏数据,而是将硬盘加密锁死。可气的是,它会提示受感染用户给病毒 作者一些钱来买解密的口令。
c) 第三代木马:网络传播性木马
新的特征:
添加了后门功能
所谓后门就是一种可以为计算机系统秘密开启访问入口的程序。一旦被安装,
这些程序就能够使攻击者绕过安全程序进入系统。该功能的目的就是收集系统
中的重要信息,例如,财务报告、口令及信用卡号。此外,攻击者还可以利用
后门控制系统,使之成为攻击其他计算机的帮凶。由于后门是隐藏在系统背后
运行的,因此很难被检测到。它们不像病毒和蠕虫那样通过消耗内存而引起注 意。
添加了击键记录功能。
该功能主要是记录用户所有的击键内容。一定时间后,木马会将击键记录的日 志文件发送给恶意用户。恶意用户可以从中找到用户名、口令以及信用卡号。
d) 第四代木马
第四代, 在进程隐藏方面有了很大改动,采用了内核插入式的嵌入方式,利 用远程插入线程技术,嵌入DLL线程。或者挂接PSAPI,实现木马程序的隐
藏,甚至在Windows NT/2000下,都达到了良好的隐藏效果。灰鸽子和蜜蜂 大盗是比较出名的DLL木马。
e) 第五代木马
第五代,驱动级木马。驱动级木马多数都使用了大量的Rootkit技术来达到在 深度隐藏的效果,并深入到内核空间的,感染后针对杀毒软件和网络防火墙进
行攻击,可将系统SSDT初始化,导致杀毒防火墙失去效应。有的驱动级木马 可驻留BIOS,并且很难查杀。
f) 第六代木马
第六代,随着身份认证UsbKey和杀毒软件主动防御的兴起,黏虫技术类型和
特殊反显技术类型木马逐渐开始系统化。前者主要以盗取和篡改用户敏感信息 为主,后者以动态口令和硬证书攻击为主。PassCopy和暗黑蜘蛛侠是这类木
马的代表。
四、木马病毒的工作方式
木马病毒一般分为客户端(控制端)和服务端(被控制端),利用控制端向服务端 发送请求,服务端收到请求后会根据请求执行相应的动作,其中包括:
a) 查看文件系统,修改、删除、获取文件。
b) 查看系统注册表,修改系统设置。
c) 截取计算机的屏幕,并且发送给控制端。
d) 查看系统中的进程,启动和停止程序。
e) 控制计算机的键盘、鼠标或其它硬件设备的动作。
f) 以本机为跳台,攻击网络中的其它计算机。
g) 通过网络下载新的病毒文件。
h) 通过修改系统实现自启动。
五、木马病毒的隐藏方式
a) 将自己伪装成系统文件
木马病毒会想方设法将自己伪装成“不起眼”的文件或“正规”的系统文件,并把自己隐藏在系统文件夹中,与系统文件混在一起。例如:把服务端的文件命名为Mircosoft.sys,病毒会故意将几个字母的顺序颠倒或写错,使一般用户很难发现,即便发现也会认为是微软自带的系统程序,从而丧失警惕性。还有一些木马病毒将自己隐藏在任务栏里并隐藏自己的图标,伺机发作,一般用户很难注意到。
b) 将木马病毒的服务端伪装成系统服务
c) 将木马程序加载到系统文件中。Win.ini system.ini
d) 充分利用端口隐藏
e) 隐藏在注册表中
f) 自动备份
g) 木马程序用于其他程序绑定
h) “穿墙术”(利用动态库插入到正常程序中,例如灰鸽子)
i) 利用远程线程的方式隐藏
j) 通过拦截系统功能调用的方式来隐藏自己:系统功能调用时系统给应用程序提供的 程序接口。例如:文件读写、文件搜索、进程遍历,包括杀毒软件的查杀功能等都 需要系统调用的支持。
k) 攻击杀毒软件
相关技术:进程插入、进程蒸发、反杀毒软件外壳
六、木马的通讯方式
a) 使用TCP协议,服务端侦听,客户端连接。服务端在宿主机器上开一个TCP端口,然后等待客户端的连接,在通过对客户端的认证后,客户端就可以控制服务端了。
b) 使用TCP协议。客户端侦听,服务端连接。即所谓的反向连接技术。为了克服服务端在某一端口上侦听易被发现这一缺点,现在服务端不再侦听端口,而是去连接客户端在侦听的某一端口。
c) 使用UDP协议
d) 解决防火墙问题
i. 代码注入(进程插入)