实验八 木马病毒清除实验

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验八木马病毒清除实验

1.实验目的

(1)熟悉BO2K木马的源代码。

(2)熟悉BO2K木马的原理和用法

2.实验所需条件和环境

1、硬件HPDX2358

2、Windows32操作系统,Visual Studio 7.0 编译环境

3.实验步骤

1、从随书资源目录\Experiment\Antitrojan\,文件为Antitrojan.sln为工程文件,使用

Antitrojan.exe观察效果。

2、设计思路:

1. 设计

1.1功能

本程序利用开放主机端口号和各个木马程序使用端口的对应关系,判断主机是否已中木马,中了何种木马(目前能查找一百余种),并能根据所中木马的类型,对其中的二十几种进行杀灭。此外,用户可自行追加数据库,增加能查找病毒的种类。

1.2程序流程

1.3核心数据结构

本程序的数据文件Trojan.txt使用了TROJAN结构来保存木马的名称,对应打开端口号和查杀代码:

TROJAN:

字段名称字段类型字段说明

nPort 数字该木马所使用的端口号。

TroName 字符串该木马的名称。

nKillno 数字该木马的查杀号,杀除函数调用。

pnext 指针用于构成链表结构指针

在Trojan.txt中,每行为一个木马项,格式为

2. 关键技术

2.1技术背景

一般情况下,特定木马在运行时都会打开特定的端口和主控端进行通信,利用木马的这个特征,我们可以通过建立一个已知木马的名称和其使用端口的对应数据库来检测主机是否感染了木马,一旦得知了木马名称,就可以调用针对此木马的杀灭手段进行消除。本程序就是利用了木马这样的特性进行编写,在windows系统中,netstat命令可以很轻松的取得本地打开端口的列表,我们可以在程序中用system函数调用此命令,并读取保存的结果,就可以取得主机所有打开的端口(包括tcp和udp)。

对于杀除木马,通常通过以下一系列手段进行:

消灭主机中运行的木马进程。

消灭主机中存在的木马文件。

删除木马在主机注册表中添加的项。

删除木马在其他文件中添加的自启动项。

2.2技术细节

netstat命令有一个很强大的参数-a,使用了这个参数,我们可以获得主机所有开放的端口,包括tcp端口和udp端口,也包括活动的和非活动的端口。通过在VC中使用system("netstat -a >c:\\log.txt")函数,我们可以将netstat命令获得结果保存在c:\log.txt中,随即读取此文件,通过数据过滤,得到本地主机所有的开放端口。

在过滤log.txt数据的过程中,由于保存的格式都是:

所以我们要调用gethostbyaddr函数来获得主机名

返回的HOSTENT就包括主机名,当传入的地址是空指针时,函数就返回本地主机的名称。而当我们取得主机名后,就可以根据log.txt的格式获的各个打开得端口了。

在杀除木马的部分,我们首先要做的是消灭主机中运行的木马进程,只有杀灭了木马进程,随后的清理工作才会有意义,否则木马重新在注册表和系统文件中添加自启动项。消除木马进程的过程分为三步:

提升本程序权限,使其能够杀除木马进程,主要是通过AdjustTokenPrivileges函数来完成。

当DisableAllPrivileges设为FALSE,而且NewState中的属性为SE_PRIVILEGE_ENABLED时,我们就可以提升权限了。

枚举进程,获得木马进程的进程号码。我们首先通过EnumProcesses函数来枚举系统中所有运行的进程。

当获得所有进程的进程号以后,枚举每一个进程所包含的模块,这里使用EnumProcessModules函数:

通过返回的模块信息,我们可以利用GetModuleFileNameEx来取得此模块调用文件的文件名:

杀除木马进程:如果取得文件名和木马的名称一样,则调用TerminateProcess函数杀除木马进程。

在杀除木马的进程以后,就可以删除木马文件,删除注册表项和删除文件中的自启动项的操作了,其中涉及到几个注册表操作函数:

1.RegOpenKeyEx:用来打开注册表项。

2.RegQueryValueEx:用来查询特定注册表项中的键值

3.RegDeleteValue:当我们查找到的键名和其含有的键值与木马添加的内容一致时,就可以调用该函数删除此键。

对于木马文件,本程序调用DeleteFile函数来删除。

3. 附录(本程序能杀灭的木马及杀除方法)

1.AttackFTP

清除步骤:

打开win.ini文件

在[WINDOWS]下面有load=wscan.exe

删除wscan.exe ,正确是load=

保存退出win.ini。

打开注册表Regedit,点击目录至:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run

删除Reminder="wscan.exe /s"

关闭Regedit,重新启动到MSDOS系统中

删除C:\windows\system\wscan.exe

2.BackDoor v2.00 - v2.03

清除步骤:

打开注册表Regedit,点击目录至:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run

删除右边的‘c:windowsnotpa.exe /o=yes‘

关闭Regedit,重新启动到MSDOS系统中

删除c:windowsnotpa.exe

注意:不要删除真正的notepad.exe笔记本程序

3.BladeRunner

清除木马的步骤:

打开注册表Regedit,点击目录至:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run

可以找到System-Tray = "c:\something\something.exe"

右边的路径可能是任何东西,这时不需要删除它,因为木马会立即自动加上,只要记下木马的名字与目录,然后退回到MS-DOS下,找到此木马文件并删除掉。重新启动计算机,然后重复第一步,在注册表中找到木马文件并删除此键。

4.DeepThroat v1.0 - 3.1 + Mod (Foreplay)

清除木马的步骤:

打开注册表Regedit,点击目录至:

HKEY_LOCAL_MACHINE\SOFTWARE\MicroSoft\Windows\CurrentVersion\Run

版本1.0

删除右边的项目‘System32‘=c:windowssystem32.exe

版本2.0-3.1

删除右边的项目‘SystemTray‘= ‘Systray.exe‘

保存Regedit,重新启动Windows

版本1.0:删除c:\windows\system32.exe

版本2.0-3.1:删除c:\windows\system\systray.exe

5.Doly v1.1 - v1.5

这几个木马版本的木马程序放在三处,增加二个注册项目,还增加到Win.ini项目。

首先,进入MS-DOS方式,删除三个木马程序,但V1.35版本多一个木马文件mdm.exe。把下列各项全部删除:

C:\WINDOWS\SYSTEM\tesk.sys

C:\Program Files\MStesk.exe

C:\Program Files\Mdm.exe

重新启动Windows。

接着,打开win.ini文件,找到[WINDOWS]下面load=c:windowssystemtesk.exe项目,删除路径,改变为load=,保存win.ini文件。

最后,修改注册表Regedit

找到以下两个项目并删除它们:

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run下

Ms tesk = "C:\Program Files\MStesk.exe"

相关文档
最新文档