标题：计算机木马
概述
  木马入侵过程木马,全称特洛伊木马（Trojan horse），这个词语来源于古希腊神话，在计算机领域是一种客户/服务器程序（c/s）或邮件客户端程序（如阿里巴巴QQ大盗），是黑客最常用的基于远程控制的工具。目前，比较有名的国产木马有：“熊猫烧香（武汉男孩）”“冰河”、“广外女生”、“黑洞”、“黑冰”等；国外有名的木马则有：“SubSeven”、“Bo2000(Back Orifice)”、“NetSpy”、“Asylum”等。木马对计算机系统和网络安全危害相当大，因此，如何防范特洛伊木马入侵成为了计算机网络安全的重要内容之一。
木马的来历
计算机木马（又名间谍程序）是一种后门程序，常被黑客用作控制远程计算机的工具。英文单词“Troj”，直译为“特洛伊”。木马这个词来源于一个古老的故事：相传古希腊战争，在攻打特洛伊时，久攻不下。后来希腊人使用了一个计策，用木头造一些大的木马，空肚子里藏了很多装备精良的勇士，然后佯装又一次攻打失败，逃跑时就把那个大木马遗弃。守城的士兵就把它当战利品带到城里去了。到了半夜，木马肚子里的勇士们都悄悄的溜出来，和外面早就准备好的战士们来了个漂亮的里应外合，一举拿下了特洛伊城。这就是木马的来历。从这个故事，大家很容易联想到计算机木马的功能。
什么是木马
正像历史上的“特洛伊木马”一样，被称作“木马”的程序也是一种掩藏在美丽外表下打入我们电脑内部的东西。确切地说，“木马”是一种经过伪装的欺骗性程序，它通过将自身伪装吸引用户下载执行，从而破坏或窃取使用者的重要文件和资料。 
木马程序与一般的病毒不同，它不会自我繁殖，也并不“刻意”地去感染其他文件，它的主要作用是向施种木马者打开被种者电脑的门户，使对方可以任意毁坏、窃取你的文件，甚至远程操控你的电脑。木马与计算机网络中常常要用到的远程控制软件是有区别的。虽然二者在主要功能上都可以实现远程控制，但由于远程控制软件是“善意”的控制，因此通常不具有隐蔽性。木马则完全相反，木马要达到的正是“偷窃”性的远程控制，因此如果没有很强的隐蔽性的话，那么木马简直就是“毫无价值”的。因此判别木马与远程控制的两个重要标准是其使用目的和隐蔽性。
计算机木马原理
计算机木马一般由两部分组成，服务端和控制端，也就是常用的C/S（CONTROL/SERVE）模式。
服务端（S端Server）：远程计算机机运行。一旦执行成功就可以被控制或者造成其他的破坏，这就要看种木马的人怎么想和木马本身的功能，这些控制功能，主要采用调用Windows的API实现，在早期的dos操作系统，则依靠DOS终端和系统功能调用来实现（INT 21H），服务段设置哪些控制，视编程者的需要，各不相同。
控制端（C端Client）也叫客户端，客户端程序主要是配套服务段端程序的功能，通过网络向服务端发布控制指令，控制段运行在本地计算机。
传播途径
木马的传播途径很多，常见的有如下几类：通过电子邮件的附件传播。这是最常见，也是最有效的一种方式，大部分病毒（特别是蠕虫病毒）都用此方式传播。首先，木马传播者对木马进行伪装，方法很多，如变形、压缩、加壳、捆绑、取双后缀名等，使其具有很大的迷惑性。一般的做法是先在本地机器将木马伪装，再使用杀毒程序将伪装后的木马查杀测试，如果不能被查到就说明伪装成功。然后利用一些捆绑软件把伪装后的木马藏到一幅图片内或者其他可运行脚本语言的文件内，发送出去。通过下载文件传播。从网上下载的文件，即使大的门户网站也不能保证任何时候他的问件都安全，一些个人主页、小网站等就更不用说了。下载文件传播方式一般有两种，一种是直接把下载链接指向木马程序，也就是说你下载的并不是你需要的文件。另一种是采用捆绑方式，将木马捆绑到你需要下载的文件中。通过网页传播。大家都知道很多VBS脚本病毒（著名的vbs病毒是暴风一号）就是通过网页传播的，木马也不例外。网页内如果包含了某些恶意代码，使得IE自动下载并执行某一木马程序。这样你在不知不觉中就被人种上了木马。顺便说一句，很多人在访问网页后IE设置被修改甚至被锁定，也是网页上用脚本语言编写的的恶意代码作怪。通过聊天工具传播。目前，QQ、ICQ、MSN、等网络聊天工具盛行，而这些工具都具备文件传输功能，不怀好意者很容易利用对方的信任传播木马和病毒文件。
一些特殊类型的木马
反弹端口木马普通木马的都是由C端发送请求S端来连接，但有些另类的木马就不是这样，它由S端向C端发送请求。这样做有什么好处呢？大家知道，网络防火墙都有监控网络的作用，但它们大多都只监控由外面近来的数据，对由里向外数据的却不闻不问。反弹端口木马正好利用了这一点来躲开网络防火墙的阻挡，以使自己顺利完成任务。大名鼎鼎的“网络神偷”、“灰鸽子”就是这样一类木马。它由S端向C端发送一个连接请求，C端的数据在经过防火墙时，防火墙会以为是发出去的正常数据（一般向外发送的数据，防火墙都以为是正常的）的返回信息，于是不予拦截，这就给它了可钻的空子。无进程木马“进程”是一个比较抽象的概念，可以理解为排队买电影票，每一个窗口（其实就是端口）排的人可以理解为一个进程，有多少窗口就有多少个进程。普通木马在运行时都有自己独立的进程（某一特定窗口排的人，先当作小偷），利用“柳叶擦眼”一类的优秀进程查看软件就可以发现和终止它。这岂不是太扫兴了？好不容易写出个木马就这么被你发现了。为了更好的隐藏自己，木马的制作者就想了一些办法，把木马的程隐藏进正常的进程（宿主进程）内。打个比方，正常的进程（系统和正当文件的进程）可以理解为正常排队买票的人。而木马的进程（排队假装买票的小偷），他们如果都排在某一个窗口（通过某一特定端口进行通讯），很容易就被发现了，于是那些小偷就想办法混到正常排队人当中（实现了木马进程的隐藏），这样就不容易被发现，而且也不容易被终止。在实际中，即使你发现了隐藏在某一正常进程中的木马进程，你也不敢轻易终止它，因为一旦终止了木马的进程，正常的宿主进程也就被终止，这可能导致一些严重的后果。所以可以看出，无进程木马实际上是“隐藏进程木马”，而这也是它的高明之处。在实际中不可能出现真正意义上的“无进程木马”。最近出现的“广外男生”就是典型的例子。
在实现方面，Hook隐藏进程、有dll注入、dll调用等方法。这里要澄清，这里所说的"无进程"并非真的无进程，因为进程是软件调用的资源分配依据和最基本单位，没有进程就代表没有任何的计算机资源（CPU使用、内存使用、磁盘读写权利、网络端口）。无进程表示进程被隐藏或者利用现成的进程加入自己的线程从而实现的。无控制端木马这类木马最显著的特点是C端和S端是集成到一起的或者只是一个自行获取信息的邮件客户端，一次配置好就不能再更改。功能一般比较专一，针对性强。经常用来偷取QQ、Email和网络游戏的密码等。嵌套型木马先用自己写的小程序或者利用系统的漏洞（BUG），夺取到某写特定的权限，比如上传文件，干掉网络防火墙和病毒防火墙等，然后上传修改过或没修改过的功能强大的木马，进一步夺取控制权。于是这个小程序或者系统漏洞就和那个功能强大的真正的木马联合起来，组成了一款“嵌套型木马”，其特点是不容发现和查杀，“具有良好的发展前景”。如“下载者”。其他木马严格意义上讲，这里所说的其他木马并不是真正的木马，它们只能算做是木马入侵时的辅助工具吧。典型的有恶意网页代码，让你浏览后不知不觉就被完全共享了所有的硬盘，然后方便别人给你种下木马，为进一步入侵做好准备。
关于捆绑
木马捆绑，通俗地讲就是把木马的代码嵌入其他类型的文件，便于伪装，比如，大名鼎鼎的国产木马“冰河”，他就自带一个捆绑工具，可以把木马代码嵌入到网页文件、图片文件、可执行文件等多种支持脚本语言或运行代码的文件中。当接受方收到这些文件时，几乎感觉不到有任何异样，但在后台，木马代码却悄然进入内存并运行。
如果你的电脑莫名其妙地死机或重启,如果硬盘在无操作的情况下频繁被访问,如果系统无端搜索软驱、光驱,如果系统速度异常缓慢，系统资源占用率过高...你是否已经意识到你的电脑可能被植入了木马程序？ 
“特洛伊木马”，不是历史上那场惊心动魄的战争，而是互联网上广为祸患的一种危险程序。木马在今天的网络上可谓无所不在，像“BO Back Orifice ”、“冰河”都是一种木马程序 甚至，连掌上电脑（PDA）的世界也已经出现了“木马”程序（Liberty Crack）。人们谈“马”色变，下面，我就给大家说说可怕的“特洛伊木马”到底是怎么回事。
木马的工作原理
一个完整的“木马”程序包含了两部分：“服务器”和“控制器”。植入你的电脑的是它的“服务器”部分，而所谓的“黑客”正是利用“控制器”进入运行了“服务器”的电脑。 
众所周知，基于TCP/IP协议接入互联网的电脑有0到65535共256×256个端口。通常我们上网的时候，电脑通过139端口与外界保持联系。运行了木马程序的“服务器”以后，你的电脑就会有另一个或几个端口被打开，使黑客可以利用这些打开的端口进入你的系统，你的系统安全和个人隐私也就全无保障了！ 
木马如此“泛滥”，究竟我们怎么样才能知道我们的电脑被种上了木马呢？
木马运行的征兆
如果电脑莫名其妙地死机或重启；
如果硬盘在无操作的情况下频繁被访问；
如果系统无端搜索软驱、光驱；
如果系统速度异常缓慢，系统资源占用率过高……
这些时候，你要小心了！你很可能已经和“木马”发生了“亲密接触”！到底这些“恐怖分子”是如何在我们电脑里“安家落户”的呢？
木马的隐藏和启动
木马进入服务端计算机以后，需要经过某种方式激活自身，运行并加载到系统自启动程序序列。了解木马怎样激活自身，是找到并且清除木马的关键所在。
检查木马的方法
一、自动查杀：利用各种杀毒软件进行杀毒。一般的杀毒软件都具备查杀木马的功能。现在在线查杀大多都不需收费，也有很多免费的杀毒软件供大家使用，并不需要像90年代那样因为杀毒软件费用而被迫手动查杀。
二、手动查杀：
1、自动运行检查：一般的木马为了能够最大限度获取你的权利，都会设置自动运行（autorun），常见的自动运行有：注册表关键值（请参考参考资料）。Autorun.inf（媒体自动播放，U盘病毒常用）脚本,内核加载（Linux病毒手法）等。
2、端口检查：你可以使用专业的端口检查工具（如个人防火墙自带的工具）也可以使用系统自带的工具。（1）在在Windows 2000/XP/Server 2003中要查看端口，可以使用Netstat命令：依次点击“开始→运行”，键入“cmd”并回车，打开命令提示符窗口。在命令提示符状态下键入“netstat -a -n”，按下回车键后就可以看到以数字形式显示的TCP和UDP连接的端口号及状态。
（2）在linux下可以使用netstate命令：
打开终端，输入netstat -anp 按回车后即可端口占用状态。
十一、手工删除木马
如果你认为找到木马后，删除不过是举手之劳，那你就大错特错了。删除木马，有时候恰恰是最困难的工作，如果删除不彻底，木马很容易“死灰复燃”。首先想到的方法应该是使用杀毒软件， 毕竟优秀的杀毒软件都是千锤百炼出来的“反恐”高手。那么手工删除要注意什么呢? 
许多木马本身具有自动检测其自启动项目的功能，如果你在未删除木马的情况下先行删除了其启动项目，木马马上又能将这些启动信息重新写入相关的文件或注册表相关位置。因此，最稳妥的方法是，在确定木马的位置以后，先重新启动计算机并进入DOS状态，在DOS下删掉木马程序后，再返回Windows，删除它的相关启动信息。 
其次是木马文件名的麻烦——木马为了更好地隐藏自己和给你制造麻烦，生成的服务端文件名类似Windows的系统文件名。比如木马SubSeven 1.7版本的服务器文件名是c:\windows\kernel16.dll，而Windows有一个系统文件是c:\windows\kernel32.dll。又如，木马phAse 1.0版本，生成的木马是c:\windows\system\Msgsrv32.exe，和Windows的系统文件一模一样，只是图标不同，你能正确区分这些并且删除吗？另外，别忘了，文件名是可以改的。你可能认为中了netbus木马就该有Mring.exe或者SysEdit.exe这样的文件出现，但是我把它改成123.exe你又能如何呢？所以，千万别一味依赖“常识”。 
最后也是最困难的，就是木马的“多重攻击”带来的麻烦。比如一种名叫“聪明基因”的国产“文件关联”型木马，只要服务端被运行，就会生成c:\windows\MBBManager.exe和Explore32.exe以及c:\windows\system\editor.exe三个文件，它们用的都是HTM文件图标，如果你的系统设置是不显示已知文件类型的扩展名，还真会以为它们是HTM文件呢！Explore32.exe关联HLP文件，MBBManager.exe在启动时加载，Editor.exe关联TXT文件。当你发现并删除了MBBManager.exe，以为大功告成的时候，只要打开HLP文件或文本文件，哪怕只是一次，Explore32.exe和Editor.exe就被激活并再次生成MBBManager.exe。类似手段甚至更厉害的木马还有很多。要手工清除木马，非得有充分的电脑知识，丰富的经验，冷静的头脑，敏锐的洞察力以及高度的警惕性和超强的分析能力才行——你做得到吗？防患于未然木马如此凶残，你还有信心战胜它吗？别急，其实对付木马的最好方法，就是将它“拒之门外”。在这个木马横行的年代，我们实在有必要加强安全防护意识。防火墙、杀毒软件都要经常更新；要慎重选择下载软件的地方，尽量不要到一些来历不明的个人主页下载软件；对下载的软件，务必先用杀毒软件扫描后才可以进行安装，以防其中包藏祸害；另外就是不要打开来历不明邮件中的附件，不要执行别人发给你的所谓“有趣”的小程序……
此外，一旦中了木马，首先要断开网络连接，因为这样就是神仙也操纵不了你了，然后你可以耐心地去清除它。还有就是删除前做好备份，以防操作失误。 
总之，网络也是一个复杂的社会。并且不同于现实社会的是，在这个虚拟世界里我们并不能见到对方的真实面目。所以，我们更是难辨真伪。在这样的环境中生存，我们一定要处处严加防范！这样，才能保证我们的安全