主要内容主要内容充分必要条件木马攻击与防御原理计算机病毒(Virus)主要内容传说中的木马(Trojanhorse)传说:木马(Trojan)这个名字来源于古希腊传说(荷马史诗中木马计的故事,Trojan一词的本意是特洛伊的,即代指特洛伊木马,也就是木马计的故事)总结:里应外合特洛伊木马的由来特洛伊木马是TrojanHorse的中译,是借自“木马屠城记”中那只木马的名字。古希腊有大军围攻特洛伊城,逾年无法攻下。有人献计制造一只高二丈的大木马假装作战马神,攻击数天后仍然无功,遂留下木马拔营而去。城中得到解围的消息,及得到“木马”这个奇异的战利品,全城饮酒狂欢。到午夜时份,全城军民尽入梦乡,匿于木马中的将士开秘门游绳而下,开启城门及四处纵火,城外伏兵涌入,焚屠特洛伊城。后世称这只木马为特洛伊木马,现今计算机术语借用其名,意思是一经进入,后患无穷。特洛伊木马原则上只是一种远程管理工具。而且本身不带伤害性,也没有感染力,所以不能称之为病毒(也有人称之为第二代病毒);但却常常被视之为病毒。原因是如果有人不当的使用,破坏力可以比病毒更强。特洛伊木马是一个程序,它驻留在目标计算机里,可以随计算机自动启动并在某一端口进行侦听木马.其实质只是一个通过端口进行通信的网络客户/服务程序。网络客户/服务模式的原理是一台主机提供服务(服务器),另一台主机接受服务(客户机)。作为服务器的主机一般会打开一个默认的端口并进行监听(Listen),如果有客户机向服务器的这一端口提出连接请求(ConnectRequest),服务器上的相应程序就会自动运行,来应答客户机的请求,这个程序称为守护进程(UNIX的术语,不过已经被移植到了MS系统上)。对于特洛伊木马,被控制端就成为一台服务器,控制端则是一台客户机木马攻击原理可以使用VB或VC的Winsock控件来编写网络客户/服务程序,实现方法如下:服务器端:G_Server.LocalPort=7626(冰河的默认端口,可以改为别的值)G_Server.Listen(等待连接)客户端:G_Client.RemoteHost=ServerIP(设远端地址为服务器地址)G_Client.RemotePort=7626(设远程端口为冰河的默认端口)G_Client.Connect(调用Winsock控件的连接方法)一旦服务端接到客户端的连接请求ConnectionRequest,就接受连接PrivateSubG_Server_ConnectionRequest(ByValrequestIDAsLong)G_Server.AcceptrequestIDEndSub客户端用G_Client.SendData发送命令,而服务器在G_Server_DateArrive事件中接受并执行命令(几乎所有的木马功能都在这个事件处理程序中实现)如果客户断开连接,则关闭连接并重新监听端口PrivateSubG_Server_Close()G_Server.Close(关闭连接)G_Server.Listen(再次监听)EndSub客户端上传一个命令,服务端解释并执行命令。实现木马的控制功能以用户权限运行的木马程序几乎可以控制一切,下面仅对木马的主要功能进行简单的概述,主要是使用WindowsAPI函数。(1)远程监控(控制对方鼠标、键盘,并监视对方屏幕)keybd_event模拟一个键盘动作。mouse_event模拟一次鼠标事件mouse_event(dwFlags,dx,dy,cButtons,dwExtraInfo)dwFlags:MOUSEEVENTF_ABSOLUTE指定鼠标坐标系统中的一个绝对位置MOUSEEVENTF_MOVE移动鼠标MOUSEEVENTF_LEFTDOWN模拟鼠标左键按下(2)记录各种口令信息keylogbegin:将击键记录在一个文本文件里,同时还记录执行输入的窗口名(3)获取系统信息a.取得计算机名GetComputerNameb.更改计算机名SetComputerNamec.当前用户GetUserNamed.系统路径SetFileSystem0bject=CreateObject(Scripting.FileSystemObject)(建立文件系统对象)SetSystemDir=FileSystem0bject.getspecialfolder(1)(取系统目录)SetSystemDir=FileSystem0bject.getspecialfolder(0)(取Windows安装目录)e.取得系统版本GetVersionEx(4)限制系统功能a.远程关机或重启计算机,使用WinAPI中的如下函数可以实现:ExitWindowsEx(UINTuFlags,DWORDdwReserved)当uFlags=EWX_LOGOFF中止进程,然后注销=EWX_SHUTDOWN关掉系统但不关电源=EWX_REBOOT重新引导系统=EWX_FORCE强迫中止没有响应的进程=EWX_POWERDOWN关掉系统及关闭电源b.锁定鼠标,ClipCursor(lpRectAsRECT)可以将指针限制到指定区域,或者用ShowCursor(FALSE)把鼠标隐藏起来也可以,RECT是定义的一个矩形。c.让对方掉线RasHangUpd.终止进程ExitProcesse.关闭窗口利用FindWindow函数找到窗口并利用SendMessage函数关闭窗口(5)远程文件操作删除文件:Filedelete拷贝文件:Filecopy共享文件:Exportlist(列出当前共享的驱动器、目录、权限及共享密码)6)注册表操作VB中只要SetRegEdit=CreateObject(“WScript.Shell”)就可以使用以下的注册表功能:删除键值:RegEdit.RegDeleteRegKey增加键值:RegEdit.WriteRegKey,RegValue获取键值:RegEdit.RegRead(Value)特洛伊木马隐身方法木马未运行时的隐藏与伪装文件的位置文件的属性捆绑到其他文件上文件的名字文件的扩展名文件的图标木马运行时的隐藏与伪装主要途径有:在任务栏中隐藏在任务管理器中隐形:将程序设为“系统服务”可以伪装自己。当然它也会悄无声息地启动,木马会在每次用户启动时自动装载服务端,Windows系统启动时自动加载应用程序的方法,“木马”都会用上,如:启动组、win.ini、system.ini、注册表等等都是“木马”藏身的好地方。隐藏端口主要内容主要内容流行木马简介冰河backorificeSubseven网络公牛(Netbull)网络神偷(Netthief)广外男生(是广外女生的一个变种)Netspy(网络精灵)主要内容主要内容充分必要条件木马的检测讨论一:什么情况下你会考虑中了木马系统的异常情况打开文件,没有任何反应查看打开的端口检查注册表查看进程主要内容遇到了木马,你会怎么做?木马防御原理知道了木马的攻击原理和隐身方法,我们就可以采取措施进行防御了。1.端口扫描端口扫描是检查远程机器有无木马的最好办法,端口扫描的原理非常简单,扫描程序尝试连接某个端口,如果成功,则说明端口开放,如果失败或超过某个特定的时间(超时),则说明端口关闭。但对于驱动程序/动态链接木马,扫描端口是不起作用的。2.查看连接查看连接和端口扫描的原理基本相同,不过是在本地机上通过netstat-a(或某个第三方程序)查看所有的TCP/UDP连接,查看连接要比端口扫描快,但同样是无法查出驱动程序/动态链接木马,而且仅仅能在本地使用。3.检查注册表面在讨论木马的启动方式时已经提到,木马可以通过注册表启动(好像现在大部分的木马都是通过注册表启动的,至少也把注册表作为一个自我保护的方式),那么,我们同样可以通过检查注册表来发现冰河在注册表里留下的痕迹。4.查找文件查找木马特定的文件也是一个常用的方法,木马的一个特征文件是kernl32.exe,另一个是sysexlpr.exe,只要删除了这两个文件,木马就已经不起作用了。如果你只是删除了sysexlpr.exe而没有做扫尾工作的话,可能会遇到一些麻烦-就是你的文本文件打不开了,sysexplr.exe是和文本文件关联的,你还必须把文本文件跟notepad关联上。木马防御软件(杀毒软件)1:金山毒霸2:瑞星3:卡巴斯基4:360结束语只要你有一点点的疏忽,就有可能被人安装了木马。所以平时不要随便从网站上下载软件,不要随便运行别人给的软件,经常检查自己的系统文件、注册表、端口,经常去安全站点查看最新的木马公告等等,提高自己的网络安全意识,了解木马的常见伎俩,这样对于保证自己电脑的安全不无裨益。