木马基本介绍
一:何为木马
“木马”程序是目前比较流行的病毒文件,与一般的病毒不同,它不会自我繁殖,也并不“刻意”地去感染其他文件,它通过将自身伪装吸引用户下载执行,向施种木马者提供打开被种者电脑的门户,使施种者可以任意毁坏、窃取被种者的文件,甚至远程操控被种者的电脑。“木马”与计算机网络中常常要用到的远程控制软件有些相似,但由于远程控制软件是“善意”的控制,因此通常不具有隐蔽性;“木马”则完全相反,木马要达到的是“偷窃”性的远程控制,如果没有很强的隐蔽性的话,那就是“毫无价值”的。
一个完整的“木马”程序包含了两部分:“服务器”和“控制器”。植入被种者电脑的是“服务器”部分,而所谓的“黑客”正是利用“控制器”进入运行了“服务器”的电脑。
二:木马的功能
“木马”的全称叫做特洛伊木马(Trojan horse),来源于希腊故事:特洛伊木马,传说中的中空的木马。据说希腊人藏身在木马内进入了特洛伊城,后来为希腊军队打开了城门。在计算机领域里面,又被解释为非法命令,病毒一套隐藏在合法程序中的命令,指示计算机进行不合法的运作。换句话说就是指采用在不知不觉方法潜入到对方内部实施某种破坏(盗窃)行为。木马程序的本质就是一个远程控制软件:远程控制软件是在远方机器知道,允许的情况下,对远方机器进行远程控制的软件。其结构是一个标准的C/S(client/server)程序。大多数的木马的功能都是进行远程控制,呵呵,这么说大家应该比较了解木马的作用了吧?
三:木马的特性
1.隐蔽性。很多人的对木马和远程控制软件有点分不清,实际上他们两者的最大区别就是在于其隐蔽性。木马类的软件的server端在运行的时候应用各种手段隐藏自己,例如,修改注册表和ini文件以便机器在下一次启动后仍能载入木马程式。有些把server端和正常程序绑定成一个程序的软件,叫做exe-binder绑定程式,可以让人在使用trojan化的程式时,木马也入侵了系统,甚至我听说有个程式能把exe文件和图片文件绑定,在你看图片的时候,木马也侵入了你的系统。还有些木马可以自定义通信端口,当然这样可以是木马更加隐秘。更改server端的图标,让它看起来象个zip或图片文件,如果你一不当心,那么就糟了。
2.功能特殊性。通常的木马的功能都是十分特殊的,除了普通的文件操作以外,还有些木马具有搜索cache中的口令,设置口令,扫描ip发现中招的机器,键盘记录,远程注册表的操作,以及颠倒屏幕,锁定鼠标等功能比较特殊的操作,而远程控制软件的功能当然不会有这么多的特殊功能,毕竟远程控制软件是用来干正事的,而非搞破坏。
木马分类
四:木马的分类
1、破坏型
惟一的功能就是破坏并且删除文件,可以自动的删除电脑上的DLL、INI、EXE文件。
2、密码发送型
可以找到隐藏密码并把它们发送到指定的信箱。有人喜欢把自己的各种密码以文件的形式存放在计算机中,认为这样方便;还有人喜欢用WINDOWS提供的密码记忆功能,这样就可以不必每次都输入密码了。许多黑客软件可以寻找到这些文件,把它们送到黑客手中。也有些黑客软件长期潜伏,记录操作者的键盘操作,从中寻找有用的密码。
在这里提醒一下,不要认为自己在文档中加了密码而把重要的保密文件存在公用计算机中,那你就大错特错了。别有用心的人完全可以用穷举法暴力破译你的密码。利用WINDOWS API函数EnumWindows和EnumChildWindows对当前运行的所有程序的所有窗口(包括控件)进行遍历,通过窗口标题查找密码输入和出确认重新输入窗口,通过按钮标题查找我们应该单击的按钮,通过ES_PASSWORD查找我们需要键入的密码窗口。向密码输入窗口发送WM_SETTEXT消息模拟输入密码,向按钮窗口发送WM_COMMAND消息模拟单击。在破解过程中,把密码保存在一个文件中,以便在下一个序列的密码再次进行穷举或多部机器同时进行分工穷举,直到找到密码为止。此类程序在黑客网站上唾手可得,精通程序设计的人,完全可以自编一个。
3、远程访问型
最广泛的是特洛伊马,只需有人运行了服务端程序,如果客户知道了服务端的IP地址,就可以实现远程控制。以下的程序可以实现观察"受害者"正在干什么,当然这个程序完全可以用在正道上的,比如监视学生机的操作。
程序中用的UDP(User Datagram Protocol,用户报文协议)是因特网上广泛采用的通信协议之一。与TCP协议不同,它是一种非连接的传输协议,没有确认机制,可靠性不如TCP,但它的效率却比TCP高,用于远程屏幕监视还是比较适合的。它不区分服务器端和客户端,只区分发送端和接收端,编程上较为简单,故选用了UDP协议。本程序中用了DELPHI提供的TNMUDP控件。
4.键盘记录木马
这种特洛伊木马是非常简单的。它们只做一件事情,就是记录受害者的键盘敲击并且在LOG文件里查找密码。据笔者经验,这种特洛伊木马随着Windows的启动而启动。它们有在线和离线记录这样的选项,顾名思义,它们分别记录你在线和离线状态下敲击键盘时的按键情况。也就是说你按过什么按键,下木马的人都知道,从这些按键中他很容易就会得到你的密码等有用信息,甚至是你的信用卡账号哦!当然,对于这种类型的木马,邮件发送功能也是必不可少的。
5.DoS攻击木马
随着DoS攻击越来越广泛的应用,被用作DoS攻击的木马也越来越流行起来。当你入侵了一台机器,给他种上DoS攻击木马,那么日后这台计算机就成为你DoS攻击的最得力助手了。你控制的肉鸡数量越多,你发动DoS攻击取得成功的机率就越大。所以,这种木马的危害不是体现在被感染计算机上,而是体现在攻击者可以利用它来攻击一台又一台计算机,给网络造成很大的伤害和带来损失。
还有一种类似DoS的木马叫做邮件炸弹木马,一旦机器被感染,木马就会随机生成各种各样主题的信件,对特定的邮箱不停地发送邮件,一直到对方瘫痪、不能接受邮件为止。
6.代理木马
黑客在入侵的同时掩盖自己的足迹,谨防别人发现自己的身份是非常重要的,因此,给被控制的肉鸡种上代理木马,让其变成攻击者发动攻击的跳板就是代理木马最重要的任务。通过代理木马,攻击者可以在匿名的情况下使用Telnet,ICQ,IRC等程序,从而隐蔽自己的踪迹。
7.FTP木马
这种木马可能是最简单和古老的木马了,它的惟一功能就是打开21端口,等待用户连接。现在新FTP木马还加上了密码功能,这样,只有攻击者本人才知道正确的密码,从而进人对方计算机。
8.程序杀手木马
上面的木马功能虽然形形色色,不过到了对方机器上要发挥自己的作用,还要过防木马软件这一关才行。常见的防木马软件有ZoneAlarm,Norton Anti-Virus等。程序杀手木马的功能就是关闭对方机器上运行的这类程序,让其他的木马更好地发挥作用。
9.反弹端口型木马
木马是木马开发者在分析了防火墙的特性后发现:防火墙对于连入的链接往往会进行非常严格的过滤,但是对于连出的链接却疏于防范。于是,与一般的木马相反,反弹端口型木马的服务端 (被控制端)使用主动端口,客户端 (控制端)使用被动端口。木马定时监测控制端的存在,发现控制端上线立即弹出端口主动连结控制端打开的主动端口;为了隐蔽起见,控制端的被动端口一般开在80,即使用户使用扫描软件检查自己的端口,发现类似TCP UserIP:1026 ControllerIP:80ESTABLISHED的情况,稍微疏忽一点,你就会以为是自己在浏览网页。这类的木马最早的就是网络神偷。
木马实现技术
五:木马的实现技术
1.木马的常用启动方式
对于一般的应用程序来说通常有下面的几种自启动方式:
a.把程序放入系统的启动目录中,注意在windows中有两个自启动目录;
b.把程序的自启动设置到系统配置文件中,如win.ini、system.ini等中;
c.在注册表中进行配置实现程序的自动启动;
d.把程序注册为系统服务;
c.替换系统文件;(该方法在目前的Windows2000及以后的操作系统中已经基本失效);
木马为了达到隐藏自己的目标,通常在设置注册表启动项时具有很强的迷惑性,有些木马还可以随机更改有关的启动项。
2.木马的隐蔽性
木马的隐蔽性是木马能否长期存活的关键,这主要包括几方面的内容:
a.木马程序本身的隐蔽性、迷惑性;
在文件名的命名上采用和系统文件的文件名相似的文件名,设置文件的属性为系统文件、隐藏、只读属性等,文件的存放地点是不常用或难以发现的系统文件目录中;
b.木马程序在运行时的隐蔽性;
通常采用了远程线程技术或HOOK技术注入其他进程的运行空间,采用API HOOK技术拦截有关系统函数的调用实现运行时的隐藏,替换系统服务等方法导致无法发现木马的运行痕迹;
c.木马在通信上的隐蔽性;
可以采用端口复用技术不打开新的通信端口实现通信、采用ICMP协议等无端口的协议进行通信,还有些木马平时只有收到特定的数据包才开始活动,平时处于休眠状态。
d.不安全的木马技术;
具资料显示有些木马在运行时能够删除自身启动运行及存在的痕迹,当检测到操作系统重新启动时再重新在系统中设置需要启动自身的参数,这类木马存在的问题:不安全,当系统失效时(如断电、死机时)无法再次恢复运行。
六:木马的发现与清除
1.木马的发现
可以查看系统端口开放情况,查看系统服务情况,查看系统运行任务是否有可疑之处,注意网卡的工作情况,注意系统日志及运行速度有无异常。
2.木马的清除
通常可以使用杀毒软件进行清除木马,也可以采用手工的方法来进行清除,但是对有些木马采用手工清除的方法可能会存在一些困难,主要时因为:
a.有些木马采用了多进程相互监视技术来启动被关闭的进程,很多关键性应用中使用了该技术,比如InterBase数据库等;
b.有些木马使用任务管理器无法停止运行,导致无法删除;
c.有些木马运行在其他的进程空间中无法在任务管理器中发现及停止。
对于上述几种情况在一定程度上可以采用修改注册表,使用第三方的一些任务管理器来停止任务,重新启动进入命令行模式来手工清除木马,使用一些专杀工具来清除木马。
常见木马
七:常见的木马
1网络公牛(Netbull)
网络公牛是国产木马,默认连接端口23444。服务端程序newserver.exe运行后,会自动脱壳成checkdll.exe,位于C:/WINDOWS/SYSTEM下,下次开机checkdll.exe将自动运行,因此很隐蔽、危害很大。同时,服务端运行后会自动捆绑以下文件:
win2000下:notepad.exe;regedit.exe,reged32.exe;drwtsn32.exe;winmine.exe。
服务端运行后还会捆绑在开机时自动运行的第三方软件(如:realplay.exe、QQ、ICQ等)上,在注册表中网络公牛也悄悄地扎下了根。
网络公牛采用的是文件捆绑功能,和上面所列出的文件捆绑在一块,要清除非常困难。这样做也有个缺点:容易暴露自己!只要是稍微有经验的用户,就会发现文件长度发生了变化,从而怀疑自己中了木马。
清除方法:
1.删除网络公牛的自启动程序C:/WINDOWS/SYSTEM/CheckDll.exe。
2.把网络公牛在注册表中所建立的键值全部删除:
3.检查上面列出的文件,如果发现文件长度发生变化(大约增加了40K左右,可以通过与其它机子上的正常文件比较而知),就删除它们!然后点击“开始→附件→系统工具→系统信息→工具→系统文件检查器”,在弹出的对话框中选中“从安装软盘提取一个文件(E)”,在框中填入要提取的文件(前面你删除的文件),点“确定”按钮,然后按屏幕提示将这些文件恢复即可。如果是开机时自动运行的第三方软件如:realplay.exe、QQ、ICQ等被捆绑上了,那就得把这些文件删除,再重新安装。
2冰河
我们这里介绍的是其标准版,掌握了如何清除标准版,再来对付变种冰河就很容易了。 冰河的服务器端程序为G-server.exe,客户端程序为G-client.exe,默认连接端口为7626。一旦运行G-server,那么该程序就会在C:/Windows/system目录下生成Kernel32.exe和sy***plr.exe,并删除自身。Kernel32.exe在系统启动时自动加载运行,sy***plr.exe和TXT文件关联。即使你删除了Kernel32.exe,但只要你打开TXT文件,sy***plr.exe就会被激活,它将再次生成Kernel32.exe。
清除方法:
1.删除C:/Windows/system下的Kernel32.exe和Sy***plr.exe文件;
2.冰河会在注册表HKEY_LOCAL_ MACHIN
E/software/microsoft/windows/ CurrentVersion/Run下扎根,键值为C:/windows/system/Kernel32.exe,删除它;3.在注册表的HKEY_LOCAL_ MACHINE/software/microsoft/windows/ CurrentVersion/Runservices下,还有键值为C:/windows/system/Kernel32.exe的,也要删除;
4.最后,改注册表HKEY_CLASSES_ROOT/txtfile/shell/open/command下的默认值,由表中木马后的C:/windows/system/Sy***plr.exe %1改为正常的C:/windows/notepad.exe %1,即可恢复TXT文件关联功能。
3网络神偷(Nethief)
网络神偷是个反弹端口型木马。什么叫“反弹端口”型木马呢?与一般的木马相反,反弹端口型木马的服务端(被控制端)使用主动端口,客户端(控制端)使用被动端口,为了隐蔽起见,客户端的监听端口一般开在80,这样,即使用户使用端口扫描软件检查自己的端口,发现的也是类似“TCP 服务端的IP地址:1026 客户端的IP地址:80 ESTABLISHED”的情况,稍微疏忽一点你就会以为是自己在浏览网页。
清除方法:
1.网络神偷会在注册表HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Windows/CurrentVersion/Run下建立键值“internet”,其值为“internet.exe /s”,将键值删除;
2.删除其自启动程序C:/WINDOWS/SYSTEM/INTERNET.EXE。
4广外女生
“广外女生”是是一种新出现的远程监控工具,破坏性很大,远程上传、下载、删除文件、修改注册表等自然不在话下。其可怕之处在于“广外女生”服务端被执行后,会自动检查进程中是否含有“金山毒霸”、“天网”等字样,如果发现就将该进程终止,也就是说使防火墙完全失去作用!
清除方法:
1.启动到纯DOS模式下,找到System目录下的DIAGFG.EXE,删除它;
2.我们找到Windows目录中的注册表编辑器“Regedit.exe”,将它改名为“Regedit.com”;
3.回到Windows模式下,运行Windows目录下的Regedit.com程序(就是我们刚才改名的文件);
4.找到HKEY_CLASSES_ROOT/exefile/shell/open/command,将其默认键值改成"%1" %*;
5.删除注册表中名称为“Diagnostic Configuration”的键值;
6.关掉注册表编辑器,回到Windows目录,将“Regedit.com”改回“Regedit.exe”。
5:黑洞2004
黑洞2001是国产木马程序,它是黑洞2000的升级版本。在这个版本中作者加入了一些新的功能和特性,最最可怕之处就是它的进程监控功能。实际上,在黑洞2000中就已经有了这个功能,但黑洞2000只能监控“天网”一个进程,黑洞2001却能同时对多进程进行监控!下面让我们一起来了解一下黑洞2001。
黑洞2001下载解压后只有一个文件s_client.exe,它是监控端执行程序,用于监控远程计算机,大小807,424字节。有经验的朋友可能要问了,怎么只有一个监控端文件?它的服务端呢?哈哈,问得好!黑洞2001的服务端隐藏在客户端程序中,只要你运行s_client.exe(如图1),点其中的“生成服务端文件”即可生成一个服务端文件,生成的服务端文件名为S_Server.exe,大小397,632字节。服务端的图标是普通文件夹所用的图标,如果你下载了这个服务端,并且你的系统设置为“隐藏已知文件类型的扩展名”,这时服务端看起来就是一个普通的文件夹(如图2),当你好奇的点击,打算进入看看有什么文件在其中时,潘多拉的盒子打开了!噩梦由此开始!
黑洞2001服务端被执行后,会在c:/windows/system下生成两个文件,一个是S_Server.exe,S_Server.exe的是服务端的直接复制,用的是文件夹的图标,一定要小心了,这是个可执行文件,可不是文件夹哦;另一个文件是windows.exe,大小为255,488字节,用的是未定义类型的图标。黑洞2001是典型的文件关联木马,windows.exe文件用来机器开机时立刻运行,并打开默认连接端口2001,S_Server.exe文件用来和TXT文件打开方式连起来(即关联)!当中木马者发现自己中了木马而在DOS下把windows.exe文件删除后,服务端就暂时被关闭,即木马被暂时删除;当你运行了任何文本文件,隐蔽的S_Server.exe木马文件就又被激活了,于是它再次生成windows.exe文件,即木马又被种入!这也就是这种文件关联木马难以清除的一个原因。要说明的是,黑洞2001允许控制端用户自由定制安装后的木马文件名和所使用的端口,因此如果中了黑洞2001,那么你看到的文件名完全可能与此不同,木马连接端口也可能不是2001,关联的文件也可以是EXE、ZIP等文件。本文是按其默认服务端配置来讲的(以下所说皆如此)。
修改文件关联是国产木马常用手段,黑洞2001也不例外(令人惊讶的是老外的木马大都没有这个功能,从这个角度来说还是我们中国人更聪明、更……呵呵)。我们来看看黑洞2001躲在注册表的什么对方。
用来每次开机就运行的windows.exe隐藏在注册表的HKEY_LOCAL_MACHINE/Software/Microsoft/Windows/
CurrentVersion/RunServices下;
用来关联TXT文件的S_Server.exe躲在HKEY_CLASSES_ROOT/txtfile/shell/open/command和HKEY_LOCAL_MACHINE/Software/CLASSES/txtfile/shell/open/command下,它将系统默认值由C:/WINDOWS/NOTEPAD.EXE %1改为了S_SERVER.EXE %1,请大家注意,就是在这里黑洞2001改变了TXT文件打开方式,因此就算你删除了windows.exe这个文件,但当你打开TXT文件时,那个可怕的“幽灵”又回来了——它再次生成windows.exe,演绎了一场经典的“人鬼情未了”大戏。在注册表的HKEY_CLASSES_ROOT和HKEY_LOCAL_MACHINE/Software/CLASSES下,黑洞2001还建立了一个主键Winvxd,记载了一些经过加密的server配置信息,如Password、Runkey、Runkeyname、Smpt、Email等信息,这些信息不起控制作用,可以不用管它
木马的使用
八:木马的使用
也许你通过各种方法得到一台WIN2K机器的管理权限,你想你的行为不被管理员发现,或者需要在这台机器所在的网络中扩大影响,你需要收集登陆到这个机器上的用户密码达到你的目的,但你不可能用普通的木马来记录他们的登陆密码,WRY?那我们来复习一下WIN2K用户登陆的机制:
在本地登陆到WIN2K系统时,通过后台的winlogon.exe,Lsass,执行验证检查的DLL以及SAM或者活动目录来相互作用。用户登陆时的过程相当繁琐,好歹WIN2K也是WINNT4这个C2级安全的系统的进化版,如果你对WIN2K的详细登陆情况很有兴趣,不妨买一本微软出的《windows2000 内部揭密》。这里只谈一下相关的内容了
GINA [Graphical Identfication and Authorization 图形鉴定及授权] 是用户和WIN2K系统间的证人,确切地说,它是一个绝对公正的第三方,并不属于微软!微软提供了一个默认的msgina[在系统中它的存在形式是msgina.dll]它显示的就是WIN2K默认的登陆窗体,考虑到公正和未来应用扩展问题,管理员可以将这个默认GINA替换为自己的GINA,比如可以制作一个生物识别的GINA,基于人的指纹,视网膜甚至声音来登陆验证。
为了能收集登陆到WIN2K的用户密码,很显然我们只要做点手脚,换掉默认的GINA就可以了,当然登陆界面就不要改变了~:P ,只要在这个GINA木马中加入键盘记录的能力并将记录到密码保存为文件就行!
具体的操作方法[以最早的木马GINA-fakeGINA为例]:
[1] 将fakegina.dll复制到远程WIN2K主机的system32目录下
[2] 在其注册表中加入 "SOFTWARE/Microsoft/Windows NT/CurrentVersion/Winlogon/GinaDLL=fakegina.dll"
这个键值,含义就是在WIN2K用户登陆时加载我们的木马GINA-fakegina.dll,以取代原来的msgina.dll
[3] 想办法重启这个机器,反正你有管理权限,可以用reboot.exe shutdown.exe等工具;也可以对其拒绝服务攻击使其重启,这样做的目的就是让所有需要登陆到这个机器上的用户使用上我们换的木马GINA,这样在他们感觉不到任何异常的情况下得到其密码
[4] 等待系统重启后,我们再去它的system32目录下查看,发现多出来一个passlist.txt,这里面记录的就是刚刚登陆的用户名和明文密码,之后我们就可以利用这些密码方便地进一步渗透入该WIN2K主机所在内网中!
最后的补充:如果觉得fakegina这个WIN2K登陆口令记录木马的隐蔽性还不够好,有编程基础的朋友可以编辑fakegina.dll使之个性化,甚至编写一个更强的WIN2K登陆口令记录木马!
九:木马+肉鸡
说了这么多,我们当然是找肉鸡用木马控制啦。至于找肉鸡的方法可以用扫描器扫,关于扫描器我们有专门的课程,这里就不再多说,只要我们拿到了肉鸡的权限,传一个木马,还有什么不可能的。呵呵。假设我们搞到了一个有绝对权限的个人主机,我们可以上传冰河或者广外女生来控制它,至于木马的用法还请大家自行查找。
十:网页木马
所谓网页木马,个人理解:就是当用户浏览某网页时,自动下载并运行某一“木马”程序,进而通过该程序实施控制。由于HTA具有本地用户权限,相当于一个APPLICATION,因此,我们就可以利用上面的漏洞来实现网页木马的基本功能。要实现网页木马功能,那么必须要解决木马的下载与运行问题,运行相信大家很容易就可以想到
classid=clsid:F935DC22-1CF0-11D0-ADB9-00C04FD58A0B>
,关键是木马的下载。
文件的操作在HTA中主要可以通过fso和ADOSTREAM两个组件来实现,但是FSO比较适合操作文本文件,要实现操作二进制文件还得用到后面的这个ADOSTREAM组件,但是我们可以发现当一个在IE里面运行的HTA程序是有作用域限制的,因此无法使用ADOSTREAM来操作本地文件。所以我们必须要在本地运行一个HTA程序,而HTA正是文本文件,所以,我们只要通过FSO来操作生成一个本地的HTA,继而运行该HTA得到我们想要达到的目的。
至于文件下载还会用到XMLHTTP这个组件,关于这个组件这里就不作介绍。网页木马的防范技巧很多,但最通用的就是如果你怀疑一个网页有木马的话,最好先察看一下网页的源文件,另外就是禁止ActiveX插件。最近一段时间,最实行的黑网站的方法就是在开了80端口的虚拟主机上种木马,然后修改主机上的网页。至于上传方法,可以入侵他的主机直接种木马,或者找有漏洞的网站写入木马。这样同样可以控制他的主机,这类的木马有很多,比较有代表性的木马就是老兵的ASP站长助手和海洋顶端的木马。
网友评论