什么是手动查杀病毒技术
通过对目标系统进程、网络连接状态、随机启动项目等信息的综合分析与判断,结合使用各种系统命令与工具手动确认病毒(木马)与清除病毒的技术
为什么要学习手工病毒查杀技术
杀毒软件更新慢,主要依赖于病毒库的更新。黑客长期对自己的后门、病毒进行免杀处理。
有关免杀技术介绍:http://baike.baidu.com/view/706274.htm
当病毒文件隐藏时我们就要借用ark系列工具
创建锁定123文件夹命令md 123../ 这种文件可以通过xuetr工具解锁删除
什么是ARK系列工具
(Anti Rootkit kernel) 反内核系列工具, 目前三大主流ARK系列工具有:冰刃(Ice Sword) Wsyscheck(Windows System Check)、 XueTr 有关ARK详细请参考以下资料:http://baike.baidu.com/link?url=zBXN9mRFw5Uxb12RG-2t1eip1qWfqREuztJSAHpB7ZaVTHIXwSjqnRutlruu6regB4HiWlouy40Dxr2BAvqZqK
apk工具优势
随机启动项目在注册表中的位置
1)“启动”文件夹──最常见的自启动程序文件夹。
它位于系统分区的“documents and Settings-->User-->〔开始〕菜单-->程序”目录下。这时的User指的是登录的用户名。
2)“All Users”中的自启动程序文件夹──另一个常见的自启动程序文件夹。
它位于系统分区的“documents and Settings-->All User-->〔开始〕菜单-->程序”目录下。前面提到的“启动”文件夹运行的是登录用户的自启动程序,而“All Users”中启动的程序是在所有用户下都有效(不论你用什么用户登录)。
3)“Load”键值── 一个埋藏得较深的注册表键值。
位于〔HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\Windows\load〕主键下。
4)“Userinit”键值──用户相关
它则位于〔HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Winlogon\Userinit〕主键下,也是用于系统启动时加载程序的。一般情况下,其默认值为“userinit.exe”,由于该子键的值中可使用逗号分隔开多个程序,因此,在键值的数值中可加入其它程序。
5)“Explorer\Run”键值──与“load”和“Userinit”两个键值不同的是,“Explorer\Run”同时位于〔HKEY_CURRENT_USER〕和〔HKEY_LOCAL_MACHINE〕两个根键中。它在两个中的位置分别为(HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer\Run〕和〔HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer\Run〕下。
6)“RunServicesOnce”子键──它在用户登录前及其它注册表自启动程序加载前面加载。这个键同时位于〔HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunServicesOnce〕和〔HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunServicesOnce〕下。
7)“RunServices”子键──它也是在用户登录前及其它注册表自启动程序加载前面加载。这个键同时位于〔HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunServices〕和〔HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunServices〕下。
8)“RunOnce\Setup”子键──其默认值是在用户登录后加载的程序。这个键同时位于〔HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunOnce\Setup〕和〔HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunOnce\Setup〕下。
9)“RunOnce”子键──许多自启动程序要通过RunOnce子键来完成第一次加载。这个键同时位于〔HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunOnce〕和〔HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunOnce〕下。位于〔HKEY_CURRENT_USER〕根键下的RunOnce子键在用户登录扣及其它注册表的Run键值加载程序前加载相关程序,而位于〔HKEY_LOCAL_MACHINE〕主键下的Runonce子键则是在操作系统处理完其它注册表Run子键及自启动文件夹内的程序后再加载的。在Windows XP中还多出一个〔HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunOnceEX〕子键,其道理相同。
10)“Run”子键──目前最常见的自启动程序用于加载的地方。这个键同时位于〔HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run〕和〔HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run〕下。其中位于〔HKEY_CURRENT_USER〕根键下的Run键值紧接着〔HKEY_LOCAL_MACHINE〕主键下的Run键值启动,但两个键值都是在“启动”文件夹之前加载。
11)再者就是Windows中加载的服务了,它的级别较高,用于最先加载。其位于〔HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services〕下,看到了吗,你所有的系统服务加载程序都在这里了!
12)Windows Shell──系统接口它位于〔HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Winlogon\〕下面的Shell字符串类型键值中,基默认值为Explorer.exe,当然可能木马程序会在此加入自身并以木马参数的形式调用资源管理器,以达到欺骗用户的目的。 如(explorer.exe c:\1.exe)
13)BootExecute──属于启动执行的一个项目 可以通过它来实现启动Natvice程序,Native程序在驱动程序和系统核心加载后将被加载,此时会话管理器(smss.exe)进行windowsNT用户模式并开始按顺序启动native程序它位于注册表中〔HKEY_LOCAL_MACHINE\System\ControlSet001\Session Manager\〕下面,有一个名为BootExecute的多字符串值键,它的默认值是"autocheck autochk *",用于系统启动时的某些自动检查。这个启动项目里的程序是在系统图形界面完成前就被执行的,所以具有很高的优先级。
14)策略组加载程序──打开Gpedit.msc,展开“用户配置——管理模板——系统——登录”,就可以看到“在用户登录时运行这些程序”的项目,你可以在里面添加。在注册表中[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Group Policy Objects\本地User\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer\Run]你也可以看到相对应的键值。
15) windows映像劫持技术HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options 在此项下面新建--项(123.exe),再到123.exe项下面新建--字符串(取名叫:debugger),debugger字符串里面填写任意文件(如:c:\windows\system32\cmd.exe),最后打开123.exe发现变成打开cmd.exe了。
木马病毒可能存在的地方
Svchost.exe进程的研究分析
【1】:服务对应的二进制文件可分为可执行文件和DLL动态链接库文件两类。对于可执行文件来说,本身就是一个宿主程序,但是对于DLL动态链接库来说不可以直接去执行它,只有通过一个宿主程序来调用它来进行执行。对于服务,我们可以通过开始——运行——输入“services.msc”进入到服务。我们就拿个最简单的Telnet服务来说,右击可以看到它所调用的文件就是C:\Windows\System32\tlnsvr.exe的可执行文件,这种可执行文件本身就是一个服务宿主程序,不需要调用DLL动态链接来实现,如果该宿主文件不存在,或者文件名不对,那么就无法启动Telnet服务了。当我们启动Telnet的时候,进程中自然多出一个服务宿主程序的进程。而对于某些服务需要调用DLL动态链接库,如果我们直接去运行DLL动态链接库是无法直接执行的,必须通过一个宿主程序来进行调用执行,经常使用到的这个服务宿主程序就是Svchost.exe。
【2】Svhost.exe,是大多数Windows服务的宿主程序。Svchost.exe程序就是一个用于加载服务对应的二进制文件为DLL的宿主程序。
【3】Svchost.exe一般位于%systemroot%\system32目录里,如果启用了DllCache功能,还可能备份在%systemroot%system32\dllcache目录下,另外,如果WindowsService Pack不是使用集成安装的,也就是不是集成SP补丁包的而是通过微软更新的,那么还可能存在于%systemroot%\ServicePack目录下。除此之外Svchost.exe不应该存在其它目录下,如果存在,那么这个Svchost.exe可能不是系统自带的而是一种病毒等一些而已软件生成的,请小心检查。特别是一些木马经常使用这个程序来进行伪装运行在内存中。
【4】Svchost.exe作为服务的宿主程序,在启动的时候,通过以下方法来启动服务:系统启动的时候,系统读取注册表:HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Svchost下的键值,在这个分支下,有很多键值为REG_MULTI_SZ的键值,也就是多字符串值,在该主键下每一个键值代表着一组服务。Svchost.exe的每个实例将执行一个键值为REG_MULTI_SZ的键值,举例来说,当Svchost.exe开始读取netsvcs的时候,系统将创建一个svchost.exe的实例(在任务管理器里面呈现为进行)来处理netsvcs键值的数据。所有在netsvcs里面描述的服务将运行于一个svchost.exe进程里面,也就是说,一个svchost.exe将处理所有netsvcs里面记录的服务。这就是所谓宿主的概念。不过有一点需要注意,如果有任何一个服务发生问题,可能导致宿主程序svchost.exe的崩溃,甚至导致Windows崩溃。如果强制结束svchost.exe进程,那么这个宿主程序所启动的服务都将停止崩溃。
【5】在不停的系统中,svchost.exe的实例数目是不相同的。这是因为微软将不同的服务归结到不同的svchost.exe实例中,在Windows Server 2003和XP下,RpcSc(提供终结点映射服务RPC服务)服务就单独的由一个svchost.exe实例负责,这是为了保证不会由于其它服务的错误而导致整个svchost.exe进程错误。而netsvcs中的几十个服务却也使用一个Svchost.exe实例来进行负责,我们可以通过“tasklist /svc” 和注册表中就可以轻易的看到。
【6】我们可以这样理解:如果有一个svchost.exe作为2和服务的宿主,其中一个是系统重要的服务A,如果A停止,则整个系统就崩溃,而另外一个是服务B,B不是一个重要的服务,停止B不会引起整个系统的崩溃。如果某一天服务B发生异常,导致B的宿主程序svchost.exe崩溃,那么也会导致服务A崩溃。从而导致系统崩溃。
【7】一个svchost.exe作为几个服务的宿主很重要的,也不要对自己的系统里面的svchost.exe实例数量为什么要比别人多,其实影响svchost.exe实例数量完全决定于你开启的服务的数量或者某些程序需要通过注入到该宿主服务中进行启动。如果某些不需要的服务可以停止掉以减少内存的使用,如果停止的一些服务都是包含于一个svchost.exe,那么这个进程就会不再启动,因为没有服务需要这个实例进行启动了。微软之所以将那么多服务使用一个宿主程序来启动就是为了节省我们的系统资源。
【8】要想知道我们进程中的每一个Svchost.exe分别是启动了哪些服务,可以通过tasklist /svc查看每一个加载不同服务的svchost.exe的PID值,并且在任务管理器查看——选择列——勾选PID(进程标识符),这样就可以很好的知道哪个svchost.exe是加载哪些服务的。
【9】如何使用辅助工具判断svchost.exe是否为伪造进程呢?第一个就是判断svchost.exe的所在的启动路径,正常的路径都是在C:\Windwos\System32下,第二个还是必须要大家的经验,也就是说,你必须要熟悉一个正常系统的svchost.exe是启动了的哪些服务是正常的。
Windows其它木马、病毒加载项
1、在Win.ini中启动
在Win.ini的[windows]字段中有启动命令“load=”和“run=”,在一般情况下“=”后面是空白的,如果有后跟程序,比方说是这个样子:run=c:\windows\file.exe load=c:\windows\file.exe要小心了,这个file.exe很可能是木马。
2、在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]这三个字段,这些段也是起到加载驱动程序的作用,但也是增添木马程序的好场所。
3、在Autoexec.bat和Config.sys中加载运行
但这种加载方式一般都需要控制端用户与服务端建立连接后,将已添加木马启动命令的同名文件上传到服务端覆盖这两个文件才行,而且采用这种方式不是很隐蔽,所以这种方法并不多见,但也不能因此而掉以轻心哦。他会在里面加入这样的命令:@echo off copy c:\sys.lon c:\windows\StartMenu\Startup Items\ del c:\win.reg
4、在Winstart.bat中启动
Winstart.bat是一个特殊性丝毫不亚于Autoexec.bat的批处理文件,也是一个能自动被Windows加载运行的文件。它多数情况下为应用程序及Windows自动生成,在执行了Win.com并加载了多数驱动程序之后开始执行(这一点可通过启动时按F8键再选择逐步跟踪启动过程的启动方式可得知)。由于Autoexec.bat的功能可以由Winstart.bat代替完成,因此木马完全可以像在Autoexec.bat中那样被加载运行,危险由此而来。
5、启动组
木马隐藏在启动组虽然不是十分隐蔽,但这里的确是自动加载运行的好场所,因此还是有木马喜欢在这里驻留的。启动组对应的文件夹为:C:\Windows\Start Menu\Programs\StartUp,在注册表中的位置:HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders Startup="C:\windows\start menu\programs\startup"。
6、*.INI
即应用程序的启动配置文件,控制端利用这些文件能启动程序的特点,将制作好的带有木马启动命令的同名文件上传到服务端覆盖同名文件,这样就可以达到启动木马的目的了。
7、修改文件关联
修改文件关联是木马常用手段(主要是国产木马,老外的木马大都没有这个功能),比方说正常情况下txt文件的打开方式为Notepad.EXE文件,但一旦中了文件关联木马,则txt文件打开方式就会被修改为用木马程序打开,如著名的国产木马冰河就是这样干的。“冰河”就是通过修改HKEY_CLASSES_ROOT\txtfile\shell\open\command下的键值,将“C:\Windows\Notepad.exe %1”改为“C:\Windows\System\SYSEXPLR.EXE %1”,这样一旦你双击一个txt文件,原本应用Notepad打开该文件的,现在却变成启动木马程序了,好狠毒哦!请大家注意,不仅仅是txt文件,其他诸如HTM、EXE、ZIP、COM等都是木马的目标。对付这类木马,只能检查HKEY_CLASSES_ROOT\文件类型\shell\open\command主键,查看其键值是否正常。
8、捆绑文件
实现这种触发条件首先要控制端和服务端已通过木马建立连接,然后控制端用户用工具软件将木马文件和某一应用程序捆绑在一起,然后上传到服务端覆盖原文件,这样即使木马被删除了,只要运行捆绑了木马的应用程序,木马又会被安装上去了。绑定到某一应用程序中,如绑定到系统文件,那么每一次Windows启动均会启动木马。
当发现可疑文件时,你可以试试能不能删除它,因为木马多是以后台方式运行的,通过按Ctrl+Alt+Del是找不到的,而后台运行的应是系统进程。如果在前台进程里找不到,而又删不了(提示正在被使用)那就应该注意了。
我们可以通过
dir /ah 只查看隐藏文件
del /ah /f +运行文件 删除隐藏文件不需进行确认
如果启用了DllCache功能,还可能备份在%systemroot%system32\dllcache目录下 我们必须先删除备份隐藏文件在删除文件