注册 登录
编程论坛 Windows论坛

对待木马程序的一些常见方法

风の影子 发布于 2005-06-23 13:49, 629 次点击

木马程序是一种程序,它能提供一些有用的,或是仅仅令人感兴趣的功能。但是它还有用户所不知道的其他功能,例如在你不了解的情况下拷贝文件或窃取你的密码。”随着互联网的迅速发展,木马的攻击、危害性越来越大。木马实质上是一个程序,必须运行后才能工作,所以会在进程表、注册表中留下蛛丝马迹,我们可以通过“查、堵、杀”将它“缉拿归案”。

     查

  1.检查系统进程

  大部分木马运行后会显示在进程管理器中,所以对系统进程列表进行分析和过滤,可以发现可疑程序。特别是利用与正常进程的CPU资源占用率和句柄数的比较,发现异常现象。

  2.检查注册表、ini文件和服务

  木马为了能够在开机后自动运行,往往在注册表如下选项中添加注册表项:

  HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run

  HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunOnce

  HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunOnceEx

  HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunServices

  HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunServicesOnce

  木马亦可在Win.ini和System.ini的“run=”、“load=”、“shell=”后面加载,如果在这些选项后面加载程序是你不认识的,就有可能是木马。木马最惯用的伎俩就是把“Explorer”变成自己的程序名,只需稍稍改“Explorer”的字母“l”改为数字“1”,或者把其中的“o”改为数字“0”,这些改变如果不仔细观察是很难被发现。

  在Windwos NT/2000中,木马会将自己作为服务添加到系统中,甚至随机替换系统没有启动的服务程序来实现自动加载,检测时要对操作系统的常规服务有所了解。

  3.检查开放端口

  远程控制型木马以及输出Shell型的木马,大都会在系统中监听某个端口,接收从控制端发来的命令,并执行。通过检查系统上开启的一些“奇怪”的端口,从而发现木马的踪迹。在命令行中输入Netstat na,可以清楚地看到系统打开的端口和连接。   4.监视网络通讯

  对于一些利用ICMP数据通讯的木马,被控端没有打开任何监听端口,无需反向连接,不会建立连接,采用第三种方法检查开放端口的方法就行不通。可以关闭所有网络行为的进程,然后打开Sniffer软件进行监听,如此时仍有大量的数据,则基本可以确定后台正运行着木马。

  堵

  1.堵住控制通路

  如果你的网络连接处于禁用状态后或取消拨号连接,反复启动、打开窗口等不正常现象消失,那么可以判断你的电脑中了木马。通过禁用网络连接或拔掉网线,就可以完全避免远端计算机通过网络对你的控制。当然,亦可以通过防火墙关闭或过滤UDP、TCP、ICMP端口。

  2.杀掉可疑进程

  如通过Pslist查看可疑进程,用Pskill杀掉可疑进程后,如果计算机正常,说明这个可疑进程通过网络被远端控制,从而使计算机不正常。

  杀

  1.手工删除

  对于一些可疑文件,不能立即删除,有可能由于误删系统文件而使计算机不能正常工作。首先备份可疑文件和注册表,接着用Ultraedit32编辑器查看文件首部信息,通过可疑文件里面的明文字符对木马有一个大致了解。当然高手们还可以通过W32Dasm等专用反编译软件对可疑文件进行静态分析,查看文件的导入函数列表和数据段部分,初步了解程序的主要功能。最后,删除木马文件及注册表中的键值。

  2.软件杀毒

  由于木马编写技术的不断进步,很多木马有了自我保护机制。普通用户最好通过专业的杀毒软件如瑞星、金山毒霸等软件进行杀毒,对于杀毒软件,一定要及时更新,并通过病毒公告及时了解新木马的预防和查杀绝技,或者通过下载专用的杀毒软件进行杀毒(如近期的冲击波病毒各大公司都开发了查杀工具)。

12 回复
#2
Plateau2005-06-24 07:37
提示: 作者被禁止或删除 内容自动屏蔽,只有管理员可见
#3
风の影子2005-06-24 11:57
本帖讨论的是常用方法!
至于楼上说的好木马,对付起来的确很麻烦,要用到很多专门的工具很反汇编!
不在本帖讨论范围内!!
#4
Plateau2005-06-24 11:59
提示: 作者被禁止或删除 内容自动屏蔽,只有管理员可见
#5
风の影子2005-06-24 12:00
这么瞧得起我??
拿我的技术做为判断是否为好木马的标准???!
#6
Plateau2005-06-24 12:02
提示: 作者被禁止或删除 内容自动屏蔽,只有管理员可见
#7
风の影子2005-06-24 12:05
木马高手都是编程高手,木马都是自己写的!
然后手动加壳。
连加的是什么壳都很难查出来!
象我上次碰到的新冰河就是这样加壳的!弄的我郁闷了一个星期才有那么一点点收获!
#8
Plateau2005-06-24 16:44
提示: 作者被禁止或删除 内容自动屏蔽,只有管理员可见
#9
风の影子2005-06-24 18:23
难啊!!
#10
号上不去了2005-06-24 18:52
要是简单破解出来你也不牛X呀 呵呵!
#11
风の影子2005-06-24 23:12
我是基本放弃了!
不过到是得到了不少灵感!
我想这也应该够了!!
#12
Kyo2005-06-27 19:33
木马,其实质只是一个网络客户/服务程序。网络客户/服务模式的原理是一台主机提供服务(服务器),另一台主机接受服务(客户机)。作为服务器的主机一般会打开一个默认的端口并进行监听 (Listen), 如果有客户机向服务器的这一端口提出连接请求(Connect Request), 服务器上的相应程序就会自动运行,来应答客户机的请求,这个程序称为守护进程。就我们所讲的木马来说,被控制端相当于一台服务器,控制端则相当于一台客户机,被控制端为控制端提供服务。 由于木马是基于远程控制的程序,因此中木马的机器会开有特定的端口。一般一台个人用的系统在开机后最多只有137、138、139三个端口。若上网冲浪会有其他端口,这是本机与网上主机通讯时打开的,IE一般会打开连续的端口:1025,1026,1027……,QQ会打开4000、4001……等端口。 ? 在DOS命令行下用netstat -na命令可以看到本机所有打开的端口。如果发现除了以上所说的端口外,还有其他端口被占用(特别是木马常用端口被占用),那可要好好查查了,你很有可能“中彩”了!比方说木马“冰河”所占用的端口是7626,黑洞2001所占用的端口是2001,网络公牛用的是234444端口……如果发现这些端口被占用了,基本上就可以判定: 你中木马了! 查找木马首先要使你的系统能显示隐藏文件,因为一些木马文件属性是隐藏的。 ? 多数木马都会把自身复制到系统目录下并加入启动项(如果不复制到系统目录下则很容易被发现,不加入启动项在重启后木马就不执行了),启动项一般都是加在注册表中的,具体位置在: ??HKEY_LOCAL_MACHINESoftwareMicrosoftWindowsCurrentVersion 下所有以“run”开头的键值; ??HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersion 下所有以“run”开头的键值; ??HKEY_USERS.DefaultSoftwareMicrosoftWindowsCurrentVersion下所有以“Run”开头的键值。 ?? 如木马冰河的启动键值是: ?? ??[HKEY_LOCAL_MACHINESoftwareMicrosoftWindowsCurrentVersionRun]

@=\"C:\\WINDOWS\\SYSTEM\\KERNEL32.EXE\" ?? 广外女生1.51版的启动键值是: ??[HKEY_LOCAL_MACHINESoftwareMicrosoftWindowsCurrentVersionRunServices] ??\"Diagnostic Configuration\"=\"C:\\WINDOWS\\SYSTEM\\DIAGCFG.EXE\" ?? 蓝色火焰0.5的启动键值是: ??[HKEY_LOCAL_MACHINESoftwareMicrosoftWindowsCurrentVersionRun] ??\"Network Services\"=\"C:\\WINDOWS\\SYSTEM\\tasksvc.exe\" ?? 不过,也有一些木马不在这些地方加载,它们躲在下面这些地方: ?? ①在Win.ini中启动 ?? 在Win.ini的[windows]字段中有启动命令“load=”和“run=”,在一般情况下“=”后面是空白的,如果有后跟程序,比方说是这个样子: ?? ??run=c:windowsfile.exe ?? ??load=c:windowsfile.exe ?? 要小心了,这个file.exe很可能是木马。 ?? ②在System.ini中启动 ?? System.ini位于Windows的安装目录下,其[boot]字段的shell=Explorer.exe 是木马喜欢的隐蔽加载之所,木马通常的做法是将该句变为这样:shell=Explorer. exe window.exe,注意这里的window.exe就是木马程序。 ?? 另外,在System.ini中的[386Enh]字段,要注意检查在此段内的“driver= 路径程序名”,这里也有可能被木马所利用。再有,在System.ini中的[mic]、 [drivers]、[drivers32]这三个字段,这些段也是起到加载驱动程序的作用,但也是增添木马程序的好场所。 ?? ③在Autoexec.bat和Config.sys中加载运行 ?? 但这种加载方式一般都需要控制端用户与服务端建立连接后,将已添加木马启动命令的同名文件上传到服务端覆盖这两个文件才行,而且采用这种方式不是很隐蔽,所以这种方法并不多见,但也不能因此而掉以轻心哦。 ?? ④在Winstart.bat中启动 ?? Winstart.bat是一个特殊性丝毫不亚于Autoexec.bat的批处理文件,也是一个能自动被Windows加载运行的文件。它多数情况下为应用程序及Windows自动生成,在执行了Win.com并加载了多数驱动程序之后开始执行(这一点可通过启动时按F8键再选择逐步跟踪启动过程的启动方式可得知)。由于Autoexec.bat的功能可以由Winstart.bat代替完成,因此木马完全可以像在Autoexec.bat中那样被加载运行,危险由此而来。 ?? ⑤启动组 ?? 木马隐藏在启动组虽然不是十分隐蔽,但这里的确是自动加载运行的好场所,因此还是有木马喜欢在这里驻留的。启动组对应的文件夹为:C: WindowsStart MenuProgramsStartUp,在注册表中的位置:HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionExplorerShell Folders Startup=\"C:windowsstart menuprogramsstartup\"。

⑥*.INI ?? 即应用程序的启动配置文件,控制端利用这些文件能启动程序的特点,将制作好的带有木马启动命令的同名文件上传到服务端覆盖同名文件,这样就可以达到启动木马的目的了。 ?? ⑦修改文件关联 ?? 修改文件关联是木马常用手段(主要是国产木马,老外的木马大都没有这个功能),比方说正常情况下txt文件的打开方式为Notepad.EXE文件,但一旦中了文件关联木马,则txt文件打开方式就会被修改为用木马程序打开,如著名的国产木马冰河就是这样干的。“冰河”就是通过修改 ??HKEY_CLASSES_ROOT xtfileshellopencommand下的键值,将“C: WindowsNotepad.exe %1”改为“C:WindowsSystemSYSEXPLR.EXE %1”,这样一旦你双击一个txt文件,原本应用Notepad打开该文件的,现在却变成启动木马程序了,好狠毒哦!请大家注意,不仅仅是txt文件,其他诸如HTM、EXE、ZIP、COM等都是木马的目标。对付这类木马,只能检查HKEY_CLASSES_ROOT文件类型shellopencommand 主键,查看其键值是否正常。 ?? ⑧捆绑文件 ?? 实现这种触发条件首先要控制端和服务端已通过木马建立连接,然后控制端用户用工具软件将木马文件和某一应用程序捆绑在一起,然后上传到服务端覆盖原文件,这样即使木马被删除了,只要运行捆绑了木马的应用程序,木马又会被安装上去了。绑定到某一应用程序中,如绑定到系统文件,那么每一次Windows启动均会启动木马。 ?? 当发现可疑文件时,你可以试试能不能删除它,因为木马多是以后台方式运行的,通过按Ctrl+Alt+Del是找不到的,而后台运行的应是系统进程。如果在前台进程里找不到,而又删不了(提示正在被使用)那就应该注意了。 如果你发现自己的硬盘总是莫明其妙地读盘,软驱灯经常自己亮起,网络连接及鼠标屏幕出现异常现象,很可能就是因为有木马潜伏在你的机器里面,此时就应该想办法清除这些家伙了。 ?? 那么如何清除木马而不误删其他有用文件呢?当你通过上述方法找到可疑程序时,你可以先看看该文件的属性。一般系统文件的修改时间不应该是最近的时间,文件的创建时间应当不会离现在很近。当看到可疑的执行文件时间是最近甚至是当前,那八成就有问题了。 ?? 首先查进程,检查进程可以借助第三方软件,如Windows优化大师,利用其“查看进程”功能把可疑进程杀掉后,然后再看看原来怀疑的端口还有没有开放(有时需重启),如果没有了那说明你对了,再把该程序删掉,这样你就手工删除了这匹木马了。 ?? ?? 如果该木马改变了TXT、EXE或ZIP等文件的关联,那你应把注册表改过来,如果不会改,那就把注册表改回到以前的就可以恢复文件关联,可通过在DOS下执行scanreg/restore命令来恢复注册表,不过这条命令只能恢复前五天的注册表(这是系统默认的)。此举可轻松恢复被木马改变的注册表键值,简单易用。

因为菜鸟,所以灌水。
#13
yuxin2005-07-01 15:36
太缺得了
1