1 / 34

沉默的木马 AND 键盘记录器

沉默的木马 AND 键盘记录器. ——PB10210105 姜俊超. 成长史. 功能. 潜伏. 简介. 木马简历. 何为木马. 木马( Trojan )这个名字来源于古希腊传说 ( 荷马史诗中木马计的故事 ,Trojan 一词的本意是特洛伊的 , 即代指特洛伊木马 , 也就是木马计的故事 ) 。

derick
Télécharger la présentation

沉默的木马 AND 键盘记录器

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 沉默的木马AND键盘记录器 ——PB10210105 姜俊超

  2. 成长史 功能 潜伏 简介 木马简历

  3. 何为木马 • 木马(Trojan)这个名字来源于古希腊传说(荷马史诗中木马计的故事,Trojan一词的本意是特洛伊的,即代指特洛伊木马,也就是木马计的故事)。 • 一段特定的程序(木马程序)来控制另一台计算机。木马通常有两个可执行程序:一个是客户端,即控制端,另一个是服务端,即被控制端。植入被种者电脑的是“服务器”部分,而所谓的“黑客”正是利用“控制器”进入运行了“服务器”的电脑。运行了木马程序的“服务器”以后,被种者的电脑就会有一个或几个端口被打开,使黑客可以利用这些打开的端口进入电脑系统,安全和个人隐私也就全无保障了! 木马的设计者为了防止木马被发现,而采用多种手段隐藏木马。木马的服务一旦运行并被控制端连接,其控制端将享有服务端的大部分操作权限,例如给计算机增加口令,浏览、移动、复制、删除文件,修改注册表,更改计算机配置等。

  4. 性格独特的“病毒” • “木马”程序是目前比较流行的病毒文件,但与一般的病毒不同 • 木马它不会自我繁殖,也并不“刻意”地去感染其他文件,它通过将自身伪装吸引用户下载执行,向施种木马者提供打开被种者电脑的门户,使施种者可以任意毁坏、窃取被种者的文件,甚至远程操控被种者的电脑。 即病毒中沉默的“情报员”。

  5. 发展历史 • 最初网络还处于以UNIX平台为主的时期,木马就产生了,当时的木马程序的功能相对简单,往往是将一段程序嵌入到系统文件中,用跳转指令来执行一些木马的功能,在这个时期木马的设计者和使用者大都是些技术人员,必须具备相当的网络和编程知识。 • 而后随着WINDOWS平台的日益普及,一些基于图形操作的木马程序出现了,用户界面的改善,使使用者不用懂太多的专业知识就可以熟练的操作木马,相对的木马入侵事件也频繁出现,而且由于这个时期木马的功能已日趋完善,因此对服务端的破坏也更大了。 • 所以木马发展到今天,已经无所不用其极,一旦被木马控制,电脑将毫无秘密可言。

  6. 基本特征 【1】隐蔽性是其首要的特征,如其它所有的病毒一样,木马也是一种病毒它必需隐藏在系统之中。它的隐蔽性主要体现在以下两个方面: a、不产生图标 它虽然在你系统启动时会自动运行,但它不会在“任务栏”中产生一个图标,这是容易理解的,不然的话,凭你的火眼金睛你一定会发现它的。我们知道要想在任务栏中隐藏图标,只需要在木马程序开发时把“Form”的“Visible ”属性设置为“False”、把“ShowintaskBar”属性设置为“Flase”即可; b、木马程序自动在任务管理器中隐藏,并以“系统服务”的方式欺骗操作系统。

  7. 【2】它具有自动运行性 它是一个当你系统启动时即自动运行的程序,所以它必需潜入在你的启动配置文件中,如win.ini、system.ini、winstart.bat以及启动组等文件之中。 【3】木马程序具有欺骗性 木马程序要达到其长期隐蔽的目的,就必需借助系统中已有的文件,以防被你发现,它经常使用的是常见的文件名或扩展名,如“dll\win\sys\explorer等字样,或者仿制一些不易被人区别的文件名,如字母“l”与数字“1”、字母“o”与数字“0”,常修改基本个文件中的这些难以分辨的字符,更有甚者干脆就借用系统文件中已有的文件名,只不过它保存在不同路径之中。还有的木马程序为了隐藏自己,也常把自己设置成一个ZIP文件式图标,当你一不小心打开它时,它就马上运行。等等这些手段那些编制木马程序的人还在不断地研究、发掘,总之是越来越隐蔽,越来越专业,所以有人称木马程序为“骗子程序”。

  8. 【4】具备自动恢复功能 现在很多的木马程序中的功能模块已不再是由单一的文件组成,而是具有多重备份,可以相互恢复。 【5】能自动打开特别的端口 木马程序潜入人的电脑之中的目的不主要为了破坏你的系统,更是为了获取你的系统中有用的信息,这样就必需当你上网时能与远端客户进行通讯,这样木马程序就会用服务器/客户端的通讯手段把信息告诉黑客们,以便黑客们控制你的机器,或实施更加进一步入侵企图。

  9. 【6】 功能的特殊性 通常的木马的功能都是十分特殊的,除了普通的文件操作以外,还有些木马具有搜索cache中的口令、设置口令、扫描目标机器人的IP地址、进行键盘记录、远程注册表的操作、以及锁定鼠标等功能。

  10. 木马功能 1、远程监控 可以控制对方的鼠标、键盘和监视对方屏幕。 2、记录密码 3、取得电脑主机的信息资料 4、远程控制 5、发送信息

  11. 常见木马种类 • 网络游戏木马 随着网络在线游戏的普及和升温,中国拥有规模庞大的网游玩家。网络游戏中的金钱、装备等虚拟财富与现实财富之间的界限越来越模糊。与此同时,以盗取网游帐号密码为目的的木马病毒也随之发展泛滥起来。 网络游戏木马通常采用记录用户键盘输入、Hook游戏进程API函数等方法获取用户的密码和帐号。窃取到的信息一般通过发送电子邮件或向远程脚本程序提交的方式发送给木马作者。

  12. 2. 网银木马 网银木马是针对网上交易系统编写的木马病毒,其目的是盗取用户的卡号、密码,甚至安全证书。此类木马种类数量虽然比不上网游木马,但它的危害更加直接,受害用户的损失更加惨重。 网银木马通常针对性较强,木马作者可能首先对某银行的网上交易系统进行仔细分析,然后针对安全薄弱环节编写病毒程序。如2004年的“网银大盗”病毒,在用户进入工行网银登录页面时,会自动把页面换成安全性能较差、但依然能够运转的老版页面,然后记录用户在此页面上填写的卡号和密码;“网银大盗3”利用招行网银专业版的备份安全证书功能,可以盗取安全证书;2005年的“新网银大盗”,采用API Hook等技术干扰网银登录安全控件的运行。

  13. 3.即时通讯软件木马 • 国内即时通讯软件百花齐放。QQ、新浪UC、网易泡泡、盛大圈圈……网上聊天的用户群十分庞大。常见的即时通讯类木马一般有3种: • 一、发送消息型。通过即时通讯软件自动发送含有恶意网址的消息,目的在于让收到消息的用户点击网址中毒,用户中毒后又会向更多好友发送病毒消息。此类病毒常用技术是搜索聊天窗口,进而控制该窗口自动发送文本内容。 • 二、盗号型。主要目标在于即时通讯软件的登录帐号和密码。工作原理和网游木马类似。病毒作者盗得他人帐号后,可能偷窥聊天记录等隐私内容,或将帐号卖掉。 三、传播自身型。

  14. 4. 网页点击类木马 网页点击类木马会恶意模拟用户点击广告等动作,在短时间内可以产生数以万计的点击量。病毒作者的编写目的一般是为了赚取高额的广告推广费用。此类病毒的技术简单,一般只是向服务器发送HTTP GET请求。 5. 下载类木马 这种木马程序的体积一般很小,其功能是从网络上下载其他病毒程序或安装广告软件。由于体积很小,下载类木马更容易传播,传播速度也更快。通常功能强大、体积也很大的后门类病毒,如“灰鸽子”、“黑洞”等,传播时都单独编写一个小巧的下载型木马,用户中毒后会把后门主程序下载到本机运行。 6. 代理类木马 用户感染代理类木马后,会在本机开启HTTP、SOCKS等代理服务功能。黑客把受感染计算机作为跳板,以被感染用户的身份进行黑客活动,达到隐藏自己的目的。

  15. 常见伪装方式 1、修改图标 当在E-MAIL的附件中看到文本图标时,是否会认为这是个文本文件呢?其实这也有可能是个木马程序,现在已经有木马可以将木马服务端程序的图标改成HTML,TXT, ZIP等各种文件的图标,这有相当大的迷惑性,但是目前提供这种功能的木马还不多见,并且这种伪装也不是无懈可击的。 2、捆绑文件 这种伪装手段是将木马捆绑到一个安装程序上,当安装程序运行时,木马在用户毫无察觉的 情况下 ,偷偷的进入了系统。至于被捆绑的文件一般是可执行文件(即EXE,COM一类的文件)。 3、出错显示 有一定木马知识的人都知道,如果打开一个文件,没有任何反应,这很可能就是个木马程序, 木马的设计者也意识到了这个缺陷,所以已经有木马提供了一个叫做出错显示的功能。当服务 端用户打开木马程序时,会弹出一个错误提示框(这当然是假的),错误内容可自由 定义,大多会定制成一些诸如“文件已破坏,无法打开的!”之类的信息,当服务端用户信以为真时,木马却悄悄侵入了系统。

  16. 4、定制端口 很多老式的木马端口都是固定的,这给判断是否感染了木马带来了方便,只要查一下特定的 端口就知道感染了什么木马,所以现在很多新式的木马都加入了定制端口的功能,控制端用户可以在1024---65535之间任选一个端口作为木马端口(一般不选1024以下的端口),这样就给判断 所感染木马类型带来了麻烦。 5、自我销毁 这项功能是为了弥补木马的一个缺陷。我们知道当服务端用户打开含有木马的文件后,木马会将自己拷贝到WINDOWS的系统文件夹中(C:\\WINDOWS或C:\\WINDOWS\\SYSTEM目录下),一般来说 原木马文件和系统文件夹中的木马文件的大小是一样的(捆绑文件的木马除外),那么中了木马 的朋友只要在近来收到的信件和下载的软件中找到原木马文件,然后根据原木马的大小去系统 文件夹找相同大小的文件, 判断一下哪个是木马就行了。而木马的自我销毁功能是指安装完木 马后,原木马文件将自动销毁,这样服务端用户就很难找到木马的来源,在没有查杀木马的工 具帮助下,就很难删除木马了。

  17. 6、木马更名 安装到系统文件夹中的木马的文件名一般是固定的,那么只要根据一些查杀木马的文章,按 图索骥在系统文件夹查找特定的文件,就可以断定中了什么木马。所以现在有很多木马都允许控 制端用户自由定制安装后的木马文件名,这样很难判断所感染的木马类型了。

  18. 潜伏区 1、集成到程序中 其实木马也是一个服务器-客户端程序,它为了不让用户能轻易地把它删除,就常常集成到程序里,一旦用户激活木马程序,那么木马文件和某一应用程序捆绑在一起,然后上传到服务端覆盖原文件,这样即使木马被删除了,只要运行捆绑了木马的应用程序,木马又会被安装上去了。绑定到某一应用程序中,如绑定到系统文件,那么每一次Windows启动均会启动木马。 2、隐藏在配置文件中 利用配置文件的特殊作用,木马很容易就能在大家的计算机中运行、发作,从而偷窥或者监视大家。不过,现在这种方式不是很隐蔽,容易被发现,所以在Autoexec.bat和Config.sys中加载木马程序的并不多见,但也不能因此而掉以轻心。

  19. 3、潜伏在Win.ini中 木马要想达到控制或者监视计算机的目的,必须要运行,然而没有人会傻到自己在自己的计算机中运行这个该死的木马。当然,木马也早有心理准备,知道人类是高智商的动物,不会帮助它工作的,因此它必须找一个既安全又能在系统启动时自动运行的地方,于是潜伏在Win.ini中是木马感觉比较惬意的地方。大家不妨打开Win.ini来看看,在它的[windows]字段中有启动命令“load=”和“run=”,在一般情况下“=”后面是空白的,如果有后跟程序,比方说是这个样子:run=c:\windows\file.exe load=c:\windows\file.exe,这个file.exe很可能是木马。 4、伪装在普通文件中 这个方法出现的比较晚,不过现在很流行,对于不熟练的windows操作者,很容易上当。具体方法是把可执行文件伪装成图片或文本----在程序中把图标改成Windows的默认图片图标, 再把文件名改为*.jpg.exe, 由于Win98默认设置是"不显示已知的文件后缀名",文件将会显示为*.jpg, 不注意的人一点这个图标就中木马了。

  20. 5、内置到注册表中 上面的方法让木马着实舒服了一阵,既没有人能找到它,又能自动运行,真是快哉!然而好景不长,人类很快就把它的马脚揪了出来,并对它进行了严厉的惩罚!但是它还心有不甘,总结了失败教训后,认为上面的藏身之处很容易找,现在必须躲在不容易被人发现的地方,于是它想到了注册表!的确注册表由于比较复杂,木马常常喜欢藏在这里快活,赶快检查一下,有什么程序在其下,睁大眼睛仔细看了,别放过木马哦:HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion下所有以“run”开头的键值;HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion下所有以“run”开头的键值;HKEY-USERS\.Default\Software\Microsoft\Windows\CurrentVersion下所有以“run”开头的键值。

  21. 6、在System.ini中藏身 Windows安装目录下的System.ini是木马喜欢隐蔽的地方。在该文件的[boot]字段中,是不是有这样的内容,那就是shell=Explorer.exe file.exe,如果确实有这样的内容,那你就不幸了,因为这里的file.exe就是木马服务端程序!另外,在System.ini中的[386Enh]字段,要注意检查在此段内的“driver=路径\程序名”,这里也有可能被木马所利用。再有,在System.ini中的[mic]、[drivers]、[drivers32]这三个字段,这些段也是起到加载驱动程序的作用,但也是增添木马程序的好场所,现在你该知道也要注意这里。

  22. 7、隐形于启动组中 有时木马并不在乎自己的行踪,它更注意的是能否自动加载到系统中,因为一旦木马加载到系统中,任你用什么方法你都无法将它赶跑(哎,这木马脸皮也真是太厚),因此按照这个逻辑,启动组也是木马可以藏身的好地方,因为这里的确是自动加载运行的好场所。动组对应的文件夹为:C:\windows\start menu\programs\startup,在注册表中的位置:HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\ Explorer\ShellFolders Startup=“C:\windows\start menu\programs\startup”。(要注意经常检查启动组! ) 被加载运行,危险由此而来。

  23. 8、隐蔽在Winstart.bat中 凡是利于木马能自动加载的地方,木马都喜欢呆。Winstart.bat也是一个能自动被Windows加载运行的文件,它多数情况下为应用程序及Windows自动生成,在执行了Win.com并加载了多数驱动程序之后开始执行(这一点可通过启动时按F8键再选择逐步跟踪启动过程的启动方式可得知)。由于Autoexec.bat的功能可以由Winstart.bat代替完成,因此木马完全可以像在Autoexec.bat中那样被加载运行,危险由此而来。

  24. 9、捆绑在启动文件中 即应用程序的启动配置文件,控制端利用这些文件能启动程序的特点,将制作好的带有木马启动命令的同名文件上传到服务端覆盖这同名文件,这样就可以达到启动木马的目的了。 10、设置在超级连接中 木马的主人在网页上放置恶意代码,引诱用户点击,用户点击的结果不言而喻:开门揖盗!奉劝不要随便点击网页上的链接。

  25. 危害 危害本机信息安全:木马程序多数有恶意企图,例如盗取QQ帐号、游戏帐号甚至银行帐号,将本机作为工具来攻击其他设备等;占用系统资源,降低电脑效能。如今我们的生活和网络越来越紧密,木马无疑是沉默大盗。

  26. 我们能做些什么 木马查杀 基本能防御大部分木马,但是现在的软件都不是万能的,还要学点专业知识,有了这些,你的电脑就安全多了。 现在高手也很多,只要你不随便访问来历不明的网站,使用来历不明的软件(很多盗版或破解软件都带木马,这个看你自己经验去区分),如果你都做到了,木马,病毒。就不容易进入你的电脑了。

  27. 禁用系统还原(Windows Me/XP) 如果您运行的是 Windows Me 或 Windows XP,建议您暂时关闭“系统还原”。此功能默认情况下是启用的,一旦计算机中的文件被破坏,Windows 可使用该功能将其还原。如果病毒、蠕虫或特洛伊木马感染了计算机,则系统还原功能会在该计算机上备份病毒、蠕虫或特洛伊木马。 Windows 禁止包括防病毒程序在内的外部程序修改系统还原。因此,防病毒程序或工具无法删除 System Restore 文件夹中的威胁。这样,系统还原就可能将受感染文件还原到计算机上,即使您已经清除了所有其他位置的受感染文件。

  28. 键盘记录器实践 键盘记录是很流行的木马功能,可以记录特定程序窗口如QQ的输入账户密码等,我接下来尝试的是利用全局钩子函数来实现全局键盘监控记录: 【1】什么是钩子呢? 钩子概述: 微软的windowsX操作系统是建立在事件驱动的机制上的,也就是通过消息传递来实现。而钩子在windows操作系统中,是一种能在事件(比如:消息、鼠标激活、键盘响应)到达应用程序前中途接获事件的机制。而且,钩子函数还可以通过修改、丢弃等手段来对事件起作用。

  29. Windows 有两种钩子,一种是特定线程钩子(Thread specific hooks),一种是全局系统钩子(Systemwide hooks)。特定线程钩子只是监视指定的线程,而全局系统钩子则可以监视系统中所有的线程。无论是特定线程钩子,还是全局系统钩子,都是通过SetWindowsHookEx ()来设置钩子的。对于特定线程钩子,钩子的函数既可以是包含在一个.exe也可以是一个.dll。但是对于一个全局系统钩子,钩子函数必须包含在独立的dll中,因此,当我们要捕捉键盘响应时,我们必须创建一个动态链接库。但是当钩子函数在得到了控制权,并对相关的事件处理完后,如果想要该消息得以继续的传递,那么则必须调用另一个函数:CallNextHookEx。由于系统必须对每个消息处理,钩子程序因此增加了处理的负担,因此也降低了系统的性能。鉴于这一点,在windows ce中对钩子程序并不支持。所以当程序完成并退出时,应当释放钩子,调用函数:UnhookWindowsHookEx。

  30. 【2】设置钩子 设置钩子是通过SetWindowsHookEx ()的API函数. 原形: HHOOK SetWindowsHookEx(intidHook,HOOKPROClpfn,HINSTANCEhMod,DWORDdwThreadId) idhook:装入钩子的类型.我使用WH_KEYBOARD lpfn: 钩子进程的入口地址,即回调的处理函数 hMod: 应用程序的事件句柄 dwThreadId: 装入钩子的线程标示,0则为全局钩子

  31. 【3】释放钩子 钩子的释放使用的是UnhookWindowsHookEx()函数 原形:BOOL UnhookWindowsHookEx( HHOOK hhk ) UnhookWindowsHookEx()函数将释放的是钩子链中函数SetWindowsHookEx所装入的钩子进程。 hhk: 将要释放的钩子进程的句柄。

  32. 【4】调用下一个钩子函数 调用下一个钩子函数时使用CallNexHookEx函数。 原形:LRESULT CallNextHookEx( HHOOK hhk, intnCode, WPARAM wParam, LPARAM lParam ) CallNexHookEx()函数用于对当前钩子链中的下一个钩子进程传递钩子信息,一个钩子进程既可以在钩子信息处理前,也可以在钩子信息处理后调用该函数。

  33. 实现源代码及演示 实现源代码及演示

  34. 谢谢!

More Related