实验八木马病毒清除实验1.实验目的(1)熟悉BO2K木马的源代码。
(2)熟悉BO2K木马的原理和用法2.实验所需条件和环境1、硬件HPDX23582、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.exe2.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.exe5.Doly v1.1 - v1.5这几个木马版本的木马程序放在三处,增加二个注册项目,还增加到Win.ini项目。
首先,进入MS-DOS方式,删除三个木马程序,但V1.35版本多一个木马文件mdm.exe。
把下列各项全部删除:C:\WINDOWS\SYSTEM\tesk.sysC:\Program Files\MStesk.exeC:\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"HKEY_USER\./Default\Software\Microsoft\Windows\CurrentVersion\Run下Ms tesk = "C:\Program Files\MStesk.exe"再寻找到HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\ss 这个组是木马的全部参数选择和设置的服务器,删除这个ss组的全部项目。
关闭保存Regedit。
还有打开C:AUTOEXEC.BAT文件,删除@echo off copy c:\sys.lon c:\windows\StartMenu\Startupdel c:win.reg关闭保存autoexec.bat。
6.GateCrasher清除步骤:打开注册表Regedit ,点击目录至:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run 删除右边的项目:Explore=‘c:\windows\explore.exe‘关闭保存Regedit,重新启动Windows然后,删除相应的木马程序。
7.Girlfriend v1.3x (Including Patch 1 and 2)清除步骤:打开注册表Regedit,点击目录至:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run 删除右边的项目:Windll.exe ="C:\windows\windll.exe"Regedit里也保存着服务器的数据HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\General删除General项目标题关闭保存Regedit,重新启动Windows然后,找到相应的木马程序,并删除。
8.Hack99 KeyLogger清除步骤:打开注册表Regedit,点击目录至:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run 删除右边的项目:HKeyLog = "C:\Windows\System\HKeyLog.exe"关闭保存Regedit,重新启动Windows删除C:\Windows\System\HKeyLog.exe9.iniKiller v1.2 - 3.2 Pro清除步骤:打开注册表Regedit,点击目录至:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run 删除右边的项目:Explore="C:\windows\bad.exe "关闭保存Regedit,重新启动Windows删除C:\windows\bad.exe10.Masters Paradise清除步骤:打开注册表Regedit,点击目录至:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run删除右边的项目:SYSEDIT = c:\windows\sysedit.exeHKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunServices 删除右边的项目:Explorer = c:\......agent.exe关闭保存Regedit,重新启动Windows,查找到木马程序,并删除它们。