Saturday, January 22, 2005

 

Clean IE Spyware

1.
剖析各类恶意网页和IE漏洞对策分析
By 一孔之见 2003-11-26
From http://www.ykzj.org/static/2004010211251.html

以前经常听到有朋友说,我上网只看新闻,查一些资料,我不下载东西,我不接收邮件,看病毒奈我何?而今,互联网利用IE等的漏洞完全可以让你通过浏览网页让你的电脑面目全非,或者格盘,甚至中下木马,传播病毒,而且这种形式的传播愈演愈烈,闲话少说了,现在来分析一下各类恶意网页。

分析前先介绍一下注册表的修改方法,因为注册表在网页病毒中是中枢,就是通过它让你的电脑面目全非。
第一种方法:直接修改法
就是在运行里敲入regedit,然后进行编辑,这是大家通常修改注册表的方法。
第二种方法:reg包导入法
现在以解锁注册表为例(其实解锁用兔子等工具更好更方便,这里只是说明如何建立reg包)
对于WIN 9x/ME/NT 4.0来说,在记事本把下面的内容另存为*.reg文件,导入即可

REGEDIT4
;这里一定要空一行,否则将修改失败
[HKEY_LOCAL_MACHINESoftwareMicrosoftWindowsCurrentVersionPoliciesSystem]
"DisableRegistryTools"=dword:00000000

对于WIN 2000或XP,把 REGEDIT4 改为Windows Registry Editor Version 5.00即可

第三种方法:inf安装法
对于98/ME,把下面的内容保存为.inf后缀文件,右键单击给文件选择安装即可

[version]
signature="$CHICAGO$"
[DEFAULTINSTALL]
ADDREG=unlock.ADD.REG
DELREG=unlock.DEL.REG
[unlock.ADD.REG]
HKCU,SoftwareMicrosoftWindowsCurrentVersionPoliciessystem
[unlock.DEL.REG]
HKCU,SoftwareMicrosoftWindowsCurrentVersionPoliciessystem

若为2000或XP,将CHICAGO修改为Windows NT
至于其他修改格式,这里不多说,可以自己找找资料,真的不会建立其它的inf包可以和我联系:)

第四种方法:vbs脚本法
把下面的内容保存为.vbs后缀文件
Dim unlock
Set unlock = WScript.CreateObject("WScript.Shell")
unlock.Popup "将为您解开注册表"
unlock.RegWrite
"HKCUSoftwareMicrosoftWindowsCurrentVersionPoliciesSystemDisableRegistryTools",0,"REG_DWORD"


第五种方法:呵呵,是以其人之道还治其人之身的方法,这里不介绍(自己去网上找找资料)
至于在DOS下编辑注册表,这里不再举例说明
请大家切记,修改注册表前一定要备份注册表!!切记!!

知道了方法,现在就来分析各类恶意网站和对付的方针

恶意网站大致可以分成以下几类:

一 利用IE的文本漏洞通过编辑的脚本程序修改注册表的行为
1。轻度修改注册表:比如标题拦,默认主页,搜索页,添加广告等,先来看看其中的一段原代码
//a.setCLSID("{F935DC22-1CF0-11D0-ADB9-00C04FD58A0B}");恶意网页就是通过这个ID修改注册表的。
//Shl.RegWrite("HKCUSoftwareMicrosoftWindowsCurrentVersion
PoliciesExplorerNoRun", 01, "REG_BINARY"); 这一句代码可以让你的运行菜单消失。
清除方法:
本文对一般的被修改浏览器的解决方案不作提供,因为现在网上关于如何通过修复注册表来恢复的文章很多 ,大家可以自己找来看看
我认为这一类的修改一般可以通过注册表修复工具来修复,不必手动去修改。
常用工具有:超级兔子魔法,优化大师,3721魔宝石,杀毒王自带的IE修复器等
瑞星的注册表修复工具:http://it.rising.com.cn/newSite/Channels/anti_virus/Antivirus_Base/TopicExplorerPagePackage/spite
ful.htm
毒霸的注册表修复工具:http://sh.duba.net/download/other/tool_011027_RegSolve.htm
推荐一个很好的在线修复网站:www.j3j4.com
补丁:WINDOWS 2000:http://www.microsoft.com/china/windows2000/SP2.htm
WINDOWS 9X用户 :http://www.microsoft.com/downloads/release.asp?ReleaseID=32558

2。修改注册表禁止命令形式的修改,目的是不让用户通过注册表修复回去。
最通常的修改是锁住注册表,还有破坏关联:比如.reg,.vbs,.inf等
关于解锁注册表,在前面已经介绍了方法,至于被修改关联,只要我前面说的注册表修改的方法里的关联还
能用,就可以用其中的任意一个,但如果.reg,.vbs,.inf都被修改了,怎么办啊?,也不用怕,把 .exe
后缀改为.com后缀,我一样可以编辑注册表,.com也被改了,怎么办?没那么狠吧,行,我再改后缀为.scr 。嘿嘿,一样还可以修改。
最好的最简单的办法,马上重新启动,按F8进入DOS下,敲入SCANREG/RESTORE,选择以前的正常时的注册表
还原就可以,注意了,一定要选择没被修改时的注册表!如果发现连scanreg都被删除了(一些网站就是这么
狠的,用A盘COPY一个scanreg.exe到COMMAN下即可
有必要在这里说说常见的文件关联的默认值
正常的exe关联为[HKEY_CLASSES_ROOTexefileshellopencommand]
默认的键值为:"%1 %*" 将此关联改回去即可使用exe文件

3。修改注册表后留后门,目的让你修改注册表好像成功,重新启动后又恢复到被修改的状态。
这主要是在启动项里留了后门,大家可以打开注册表到(也可以用一些工具比如优化大师等来察看)
HKCUSoftwareMicrosoftWindowsCurrentVersionRun
HKCUSoftwareMicrosoftWindowsCurrentVersionRunOnce
HKCUSoftwareMicrosoftWindowsCurrentVersionRunServices
HKCUSoftwareMicrosoftWindowsCurrentVersionRun-
看看有没有可疑的启动项目,这一点最多朋友忽略,哪些启动可疑呢?
我这里给出几个大家需要注意的,启动项里键值有出现.hml和.htm后缀的,最好都去掉,还有有.vbs后缀的
启动项也去掉,还有一个很重要的,如果有这一个启动项,出现有类似键值的,比如:
system 键值是regedit -s c:windows……请注意,这个regedit -s 是注册表的一个后门参数,是用来导
入注册表的,这样的选项一定要去掉
还有一类修改会在c:windows产生.vbs后缀的文件,或是.dll文件,其实.dll文件实际是.reg文件
此时你要看看c:windowswin.ini文件,看看load=,run=,这两个选项后面应该是空的,如果有其他程序
修改load=,run=,将=后面程序删除,删除前看看路径和文件名,删除后在到system下删除对应的文件
还有一种方法,大家如果屡次修改重启又恢复回去,可以搜索C盘下所有的.vbs文件,可能有隐藏的,用记
事本打开,看到里面有关于修改注册表的都把它删除或保险起见把后缀改掉,你可以按中恶意网页的病毒的 时间来搜索文件:)
下面的这个漏洞大家非常值得注意,很多朋友说,你说的方法我都试了,启动项里绝对没有什么可疑的,也
没有什么vbs文件,呵呵,大家在启动IE时还有一个陷阱,就是IE主界面的工具的菜单里的广告,一定要去
掉,因为这些会在你启动IE时启动,所以你修改完其他的先别着急打开IE窗口,否则白费力气,方法:打开
注册表HKEY_LOCAL_MACHINESoftwareMicrosoftInternet ExplorerExtensions看到广告就删,别留情
一个很重要的问题,在中了恶意网页的陷阱后一定要先清空IE所有临时文件,切记!

说了那么多废话,那如何防御这类恶意网页呢?
一个一劳永逸的方法,把F935DC22-1CF0-11D0-ADB9-00C04FD58A0B这个ID删掉
在注册表的路径为HKEY_CLASSES_ROOTCLSID{F935DC22-1CF0-11D0-ADB9-00C04FD58A0B}
记住,看清楚了再删除,千万别删错其他。删掉这个F935DC22-1CF0-11D0-ADB9-00C04FD58A0B对系统不会有 影响的。
在IE的选单栏中选择“工具”→“Internet选项”,在弹出的对话框中切换到“安全”标签,选择“
Internet”后点击“自定义级别”按钮,在“安全设置”对话框中,把“ActiveX控件和插件”、“脚本”
中的相关选项全部选择“禁用”或“提示”即可。但如果选择了“禁用”,一些正常使用ActiveX和脚本的
网站可能无法完全显示。建议选择:提示。遇到警告时,看看该网站的原代码,如果发现有出现
Shl.RegWrite等的代码,就不要去了,如果是加密的原代码,不是自己熟悉的网站也不要去,如果连右键都用不了的,也要小心为好(看看原码有什么所谓啊,除非有什么好的JAVA或是恶意代码)

对于Windows98用户,请打开C:WINDOWSJAVAPackagesCVLV1NBB.ZIP,把其中的“ActiveXComponent.class删掉,对于WindowsMe用户,请打开C:WINDOWSJAVAPackages5NZVFPF1.ZIP,把其中的“ActiveXComponent.class”删掉,这些删掉不会影响正常浏览网页

在Windows 2000/XP,可以通过禁用“远程注册表服务”来阻挡部分恶意脚本。具体方法是:在“控制面板”→“管理工具”→“服务”中右键单击“Remote
Registry Service”,在弹出选单中选择“属性”,打开属性对话框,在“General”内将“Startup
ype”设为“Disabled”。这样也可以拦截部分恶意脚本程序。
嘿嘿,不用IE。用其他浏览器也可以……
大家在中了恶意网页的陷阱后,先不要立即重新启动计算机,到启动项里看看,有没有什么危险的启动项,不如deltree之类的

二 利用IE漏洞直接破坏Windows系统
如今利用浏览网页格式化硬盘已经不是什么新鲜事了,当某一天,你上网时突然跳出警告说当前页面包含 不安全的页面,如果你选择“是”,很可能硬盘被格式化掉
看看它的部分原代码:
// object ……id=wsh……F935DC22-1CF0-11D0-ADB9-00C04FD58A0B……>wsh(……)/object>
防御这一类网页,可以用下面的方法:
删掉F935DC22-1CF0-11D0-ADB9-00C04FD58A0B这个ID,因为这个ID可以用来生成命令格式,可以执行硬盘 的可执行文件,具体路径
HKEY_CLASSES_ROOTCLSID{F935DC22-1CF0-11D0-ADB9-00C04FD58A0B} 再次提醒,别删错了。
建议大家都把deltree.com和format.com命令改掉,比如用优化大师后改为deltree.wom和format.wom
把C盘WINDOWS下的Wscript.exe改名也是一个办法。
也可以卸载WSH:
98/ME:进入“控制面板”,选择“添加/删除程序”,选“Windows安装程序”,选择“附件”,再选 择“详细资料”中的Windows Scripting
Host,确定卸载。
在Windows 2000中禁用WSH的方法是,双击"我的电脑"图标,然后执行"工具/文件夹选项"命令,选择"
文件类型"选项卡,找到"VBS VBScript Script File"选项,并单击[删除]按钮,最后单击[确定]即可
或者升级WSH到WSH 5。6
IE浏览器可以被恶意脚本修改,原因就是IE 5.5以及以前版本中的WSH允许攻击者利用JavaScript中的 Getobject函数以及htmlfilr
Activex对象读取浏览者的注册表。微软最新的Microsoft Windows Script 5.6已经修正了这个问 题。
WSH 5.6 For Win9x/NT官方下载:www.microsoft.com
WSH 5.6 For Win2000官方下载:http://www.microsoft.com/devonly/

三 安全性漏洞问题

现在通过注册表可以在硬盘生成文件,可以读取注册表
利用IE漏洞可以传播病毒,目前的浏览网页可以感染新欢乐时光等脚本病毒,很多是通过IE漏洞入侵的,
还有目前的网页木马的问题,其实也是利用了IE的MIME头错误漏洞,让用户自动运行木马程序,这一类程序制作容易,很容易传播,这一类的MIME头错误对策:打补丁或升级http://www.microsoft.com/windows/ie/download/critical/Q290108/default.asp

1。看看IE 5.0的一个漏洞:可以写一段错误的HTML代码使你的IE当掉,代码这里就不便贴出来了。
再来看看这个ID:0D43FE01-F093-11CF-8940-00A0C9054228就是用来生成文件的
2。IE现在还有IFRME漏洞,通过这个漏洞可以让IE浏览页面后自动执行.exe文件
防御对策:最好升级IE到SP2上”,或者安装PATCH
Q290108(谢谢飘飘斑竹指出这里的错误),如果你真的不想用高版本IE,怕占用资源大,就一定要记住把补丁打上。因为目前很多病毒都是利用IE和OE的这个漏洞进行传播,爱情森林病毒是其中一个。

还有删除HKEY_CLASSES_ROOTCLSID{0D43FE01-F093-11CF-8940-00A0C9054228} 这个ID
3。在IE6(build
2600)版本中,可以用一段javascript脚本代码让IE拒绝服务,98中能造成IE的不响应,当试图终止任务的时候,将造成操作系统的崩溃,2000中能造成50%的CPU被长时间利用,之后浏览器会询问是否让用。

防御对策:把JAVA和脚本禁止掉,建议是升级IE或打补丁(看来不打补丁就是不行)
4。IE中的框架(Frame)漏洞,IE 5.01,5.5.6.0都受到影响,利用这个漏洞可以泄露用户的信息。
对策:打补丁:http://www.microsoft.com/Windowsupdate
http://www.microsoft.com/technet/security/bulletin/MS02-009.asp

获取控制权限此类黑手会利用IE执行Actives时候发生,虽然说IE提供对于"下载已签名的ActiveX控件"进行提示的功能,但是恶意攻击代码会绕过IE,在无需提示的情况下下载和执行ActiveX控件程序,而这时恶意攻击者就会取得对系统的控制权限。如果要屏蔽此类黑手,可以打开注册表编辑器,然后展开如下分支:

解决方法是在注册表分支HKEY_LOCAL_MACHINESOFTWAREMicrosoftInternet ExplorerActiveX
Compatibility 下为Active Setup
controls创建一个基于CLSID的新键值{6E449683_C509_11CF_AAFA_00AA00
B6015C},然后在新键值下创建一个REG_DWORD 类型的键Compatibility,并设定键值为0x00000400即可。

四 无聊恶意网页
这一类网页是利用编写JAVASCRIPT代码,比如弹出无数关不完的窗口,只能让CPU资源耗尽重新启动,说句实话,现在国内的杀毒软件的网页监控对这类恶意网页根本没法拦截(国外的我没试过)

这一类网页编写并不难,都是通过写一些死循环来达到目的。
防御方法:将JAVA禁用。升级IE到高版本
还有是利用WIN98的漏洞让你掉线或者是死机的,防御对策,给98拼命打补丁(不要用98了,2000稳定)

大家上网时切记把网页监控或注册表监控打开,现在国内杀毒软件对写入注册表的行为的拦截的成功率都不错

通过上面的分析可以看出一个很重要的问题:一定要时常给自己的系统打补丁,微软一般出了补丁,很快就有新的病毒代码来攻击的,所以切记时常打补丁!

以上若有错误之处,还请大家不吝赐教!

2.
3721等免疫程序的秘密

2.1.
发信人: Quaful (夸父§提升人品中), 信区: NewSoftware
标 题: [笔记]3721驻留机制简单研究
发信站: BBS 水木清华站 (Sat Feb 28 18:50:00 2004), 转信

简单研究了一下3721的机制,写在这里,作为心得笔记吧。大部分收获都来自
Softice + 反汇编,不一定适用于某些版本。

2.1.1. CnsMin.dll的驻留方式

3721的核心文件:CnsMin.dll
通常存在于Windows Directory>\Downloaded Program Files下。

通过注册表Run键值加载:Rundll32 dir>\CnsMin.dll, Rundll32

CnsMin.dll提供了一个函数Rundll32供Rundll32.exe调用
但这个函数只是调用一个真正的驻留函数Rundll32Main()。

Rundll32Main()伪代码:

void Rundll32Main()
{
hMutex = CreateMutex("CNSMINMUTEX");
if(ERROR_ALREADY_EXISTS)
{
CloseHandle(hMutex);
exit;
}
if(IsWindowsNT()) {
SetProcessSecurityInfo();
}
else {
RegisterProcessAsService();
}
CheckVersion();

// CnsMinKP.sys/vxd 内核驱动程序,保护3721关键文件和注册表项不被删除
ContactWithCnsMinKPDriver();

// 关键的hook,负责将CnsMin.dll注入其他进程空间
InstallCBTHook();

// 关键的hook,负责将CnsMin.dll注入其他进程空间
InstallCallWndProcHook();

// CnsMinIO.dll 负责IE地址栏下方的提示
InitCnsMinIO();

// 一些注册表信息
InitRegistry();

// 保护CnsMin.dll的钩子不被卸载或抢先
InstallGuardTimer();

CreateMsgWindow();

// Message loop
while (true)
{
GetMessage(&msg);
TranslateMessage(&msg);
DispatchMessage(&msg);
}
}

CnsMin主要是通过WH_CBT和WH_CALLWNDPROC两个全局钩子注入IE进程空间的。注入
IE后,又安装了WH_KEYBOARD,WH_DEBUG等钩子。其中对3721实现其“实名转换”
有用的是WH_KEYBOARD。这是一个本地钩子。

CnsMin为了保证自己的优先级最高,用了一个定时器函数反复安装钩子,无疑会造成
系统性能的下降。

我曾经尝试过自己安装一个WH_DEBUG钩子阻止3721钩子的调用,确实起到了效果,
立即可以使3721失效。但这种方法3721仍然驻留IE进程内,属于指标不治本的方法。

强制结束Rundll32进程,可以暂时卸载3721的驻留代码。但CnsMin.dll通过COM注册已经
嵌入IE组件中,重新启动IE后,该进程又会重新启动。

2.1.2. 3721的防删除手段
文件系统驱动:CnsMinKP*.sys 针对NT/2000/XP有不同版本(98下面是CnsMinKP.vxd)
通常存在于System directory>\drivers\目录。

驱动程序,由Windows启动时加载。

该驱动程序过滤了对文件和注册表的删除操作。试图删除3721的关键文件和注册表项时,
直接返回一个TRUE,使Windows认为删除已经成功,但文件和注册表实际上还是在那里。
该驱动程序还有一个黑名单(内建的黑名单主要针对百度和一些卸载程序,另外还有
一个保存在某个外部文件中的黑名单,文件格式未知),阻止Windows读取其他3721的
竞争对手的插件文件。

目前还没有找到停止该驱动的方法。

删除方法:在Windows启动前(例如,98下面退出到DOS)删除CnsMinKP*.sys文件。
注意:3721具有自恢复能力。某些关键文件被删除后,其它模块会试图从3721网站重新
下载。所以彻底删除前需要断开网络连接。

2.1.3. 针对目前版本的删除步骤:
a) 运行3721自己提供的删除程序。可以删掉大部分的文件。
b) 从DOS启动,删除残存文件,如CnsMin.dll,CnsMinKP*.*等
可能的目录:Downloaded Program Files目录,Program Files\3721目录,drivers目录
c) 启动Windows,进入桌面时Windows会报告一些模块找不到的错误,不用理会,删除
注册表中3721的值。
可能的位置:HKEY_CURRENT_USER: Software\3721
HKEY_LOCAL_MACHINE: Windows\CurrentVersion\Run
SYSTEM\CurrentControlSet
另外还零散的藏了一些,用关键字查找。

2.2.
发信人: cygwin (难道真的有沧海?), 信区: NewSoftware
标 题: 总结几种反3721的方法。
发信站: BBS 水木清华站 (Fri Feb 27 22:57:23 2004), 转信

2.2.1. 使用广告过滤软件。以adfilter为例,只需在广告过滤的正则表达式中加入cnsmin.*\.cab即可。
2. 使用专用免疫软件,以前曾经出过只反3721的软件,现在有banactivex等。
3. 修改hosts文件,这一招并不好使,一旦使用了代理,很可能就被装上。
4. 将证书装入不信任证书列表。这一招在有的系统上并不好使。
5. winXP sp2提供了一个永不安装的选项,大快人心。
6. 利用自动代理配置脚本实现过滤。

就是ccboy推荐的那个程序
当前版本v2.14
下载地址http://hre.iphy.ac.cn/zmb/download.asp
本来还以为是压缩加密了,没想到,随便一打开就有。

结构非常简单,核心秘密就是
SOFTWARE\Microsoft\Internet Explorer\ActiveX Compatibility\{B83FC273-3522-4CC6-92EC-75CC86678DA4}
SOFTWARE\Microsoft\Internet Explorer\ActiveX Compatibility\{9A578C98-3C2F-4630-890B-FC04196EF420}
SOFTWARE\Microsoft\Internet Explorer\ActiveX Compatibility\{9BBC1154-218D-453C-97F6-A06582224D81}
SOFTWARE\Microsoft\Internet Explorer\ActiveX Compatibility\{BC207F7D-3E63-4ACA-99B5-FB5F8428200C}
SOFTWARE\Microsoft\Internet Explorer\ActiveX Compatibility\{4EDBBAEA-F509-49F6-94D1-ECEC4BE5B686}
SOFTWARE\Microsoft\Internet Explorer\ActiveX Compatibility\{98FA5667-513F-4F15-8A15-C171477B8847}
SOFTWARE\Microsoft\Internet Explorer\ActiveX Compatibility\{15DDE989-CD45-4561-BF99-D22C0D5C2B74}
SOFTWARE\Microsoft\Internet Explorer\ActiveX Compatibility\{7CA83CF1-3AEA-42D0-A4E3-1594FC6E48B2}
(按:上面的键值都对应什么请查看原软件即可)

所用函数就是
RegDeleteKeyA
RegDeleteValueA
RegOpenKeyExA
RegCloseKey
RegSetValueExA
RegQueryValueExA
RegCreateKeyExA (按:ADVAPI32.dll)

不过很简洁,还是不错的。
(按:没有反向工程,不算违法,呵呵)

(按:最近又更新啦,版本2.15
加上了
SOFTWARE\Microsoft\Internet Explorer\ActiveX Compatibility\{484FF54A-CC44-467E-9C31-5B89FC753007}
SOFTWARE\Microsoft\Internet Explorer\ActiveX Compatibility\{8D898B17-976D-44c1-84E6-AF38842AC9EC}
呵呵,作者还是很勤劳的
3/8/2004/补充


(按:在绿盟看见了zhege
http://silence.hao-8.com/block.reg
不知以后会不会更新
3/9/2004/补充)

发现最勤奋的是
http://www.fswinway.cn/upiea/
在水木不是更新



<< Home

This page is powered by Blogger. Isn't yours?