星期四, 七月 26, 2007

综合手段清除流氓软件8749病毒解决方案

综合手段清除流氓软件8749病毒解决方案

来源:赛迪网 作者:李铁军

【编者按:现在流氓软件和病毒的界定越来越模糊,借用王建锋先生的一句话,流氓软件越来越会“学习”了!】

8749病毒每次入侵后生成的病毒程序是随机的,不同的电脑中毒后会发现不同的病毒程序。病毒还破坏了安全模式,并监视注册表键,即使您使用金山毒霸的AV终结者专杀工具,也不能在病毒运行时,修复被破坏的安全模式,造成手工解除病毒非常困难。

金山毒霸已经紧急升级了有关8749病毒的特征库,需要将金山毒霸查毒和金山清理专家的文件粉碎器结合使用,将病毒清除掉。金山清理专家也正在紧急升级中,升级后,可顺利将8749病毒清除。已经受8749病毒困扰的用户,可参考以下步骤修复系统。

1.使用金山毒霸检查系统盘,毒霸会提示病毒文件的位置,这时记录下病毒的具体路径。

2.使用金山清理专家,在百宝箱中调出文件粉碎器,将这几个文件添加到删除列表,点界面上的彻底删除。

3.立即重启电脑,使用金山清理专家修复被病毒破坏的注册表,修复被病毒添加的加载项。

4.下载AV终结者专杀工具修复被破坏的安全模式。

5.右键单击我的电脑,选择属性,点击“系统还原”标签页,把禁用的勾去掉。建议至少要选择保护C分区,在系统遇到紧急故障时,利用系统还原可以减少恢复系统的成本。

8749病毒分析报告 了解病毒化流氓软件

来源:赛迪网 作者:李铁军

病毒行为:

1.使用“删除文件”、“移动文件”、“写入空信息”三种方式清空HOST文件。

2.病毒利用文件占用技术,实现对自身程序文件的保护。

3.修改注册表键,禁用XP的系统还原。

Software\Microsoft\Internet Explorer\Search

Software\Microsoft\Internet Explorer\Main

4.添加注册表启动项,因病毒名是随机生成,不同的电脑,感染的文件并不完全一致。修改注册表HKLM\software\microsoft\windows\currentversion\runonce,实现自动注册组件。

5.破坏安全模式(清空注册表SAFEMODE下的所有项目),使你不能进入安全模式调试系统。

6.终止所有包含下列字符的窗口的进程。

btbaicai

wopticlean

360safe

8749病毒

8749专杀

卡卡

安全卫士

IE修复

8749.com病毒

清除8749

删除8749

7.子DLL,每20分钟从http://up.yinlew.com:8080/hellohost515.ini?p=%s&t=%d下载一个要阻止访问的网站列表,下载后的文件保存在%sys32dir%\andttrs文件中。类似以下内容:

125.91.1.20 www.kzdh.com

125.91.1.20 www.7255.com

125.91.1.20 www.7322.com

125.91.1.20 www.7939.com

125.91.1.20 www.piaoxue.com

125.91.1.20 www.feixu.net

125.91.1.20 www.6781.com

125.91.1.20 www.7b.com.cn

125.91.1.20 www.918188.com

125.91.1.20 hao.allxue.com

125.91.1.20 good.allxue.com

125.91.1.20 baby.allxue.com

125.91.1.20 www.allxue.com

125.91.1.20 about.lank.la

125.91.1.20 www.x114x.com

125.91.1.20 www.37ss.com

125.91.1.20 www.7k.cc

125.91.1.20 www.73ss.com

125.91.1.20 www.hao123.com

125.91.1.20 www.81915.com

125.91.1.20 www.9991.com

125.91.1.20 www.my123.com

125.91.1.20 www.haokan123.com

125.91.1.20 www.5566.net

125.91.1.20 www.gjj.cc

125.91.1.20 www.2345.com

125.91.1.20 www.123wa.com

125.91.1.20 www.ku886.com

125.91.1.20 www.5icrack.com

125.91.1.20 www.jjol.cn

125.91.1.20 www.xinhai168.com

125.91.1.20 ooooos.com

125.91.1.20 www.ooooos.com

125.91.1.20 www.8757.com

125.91.1.20 4199.5009.com

125.91.1.20 www.13886.cn

125.91.1.20 www.8757.com

125.91.1.20 www.baidu345.com

125.91.1.20 www.dedewang.com

125.91.1.20 allxun.5009.cn

125.91.1.20 4199.5009.cn

125.91.1.20 yahoo.5009.cn

125.91.1.20 tom.5009.cn

125.91.1.20 zh130.5009.cn

125.91.1.20 piaoxue.5009.cn

125.91.1.20 3448.5009.cn

125.91.1.20 ttmp3.5009.cn

125.91.1.20 fx120.5009.cn

125.91.1.20 7939.5009.cn

125.91.1.20 99488.5009.cn

125.91.1.20 7333.5009.cn

125.91.1.20 www.ld123.com

125.91.1.20 www.anyiba.com

125.91.1.20 www.999991.cn

125.91.1.20 www.hao123.cn

125.91.1.20 www.3721.com

125.91.1.20 www.haol23.com

125.91.1.20 haol23.com

8.生成与子DLL同名的SYS驱动程序,驱动程序监控自身服务注册项(独立线程监控、WINLOGON启动时监控),如果被安全软件修改,病毒会再改回来。

9.IRP HOOK最底层的文件系统(IRP_MJ_SET_INFORMATION),保护文件,不能删除,不能更名。

10.挂钩ZwCreateFile,在其访问system32\drivers\etc\hosts时,将该访问操作重定向到%sys32dir%\andttrs。相当于用这个andttrs取代了系统的hosts文件,达到跟修改HOST文件相同的效果,用户只能通过修改andttrs或恢复HOOK阻止本地域名绑定。

11.挂钩ZwLoadDriver,禁止ICESWORD(冰刃)的驱动加载。

流氓软件病毒化 锁定浏览器主页为8749

这是一个典型的病毒化的流氓软件,中标后的典型现象是主页被锁定为www.8749.com。在短短几天之间,已经出现了数个变种。以变种出现的速度来看,估计该流氓软件会很快在互联网大规模传播。

破坏性

该病毒为了保护自身不被用户清除,使用了极端的手段。除了让一些安全软件无法运行之外(差不多是复制了AV终结者病毒的破坏特性),任何包含“8749病毒”、“删除8749”一类字符的窗口都会被该病毒强制终止,病毒还会禁用系统还原,破坏安全模式等手段,令清除病毒或恢复系统变得更加困难。

病毒发展新趋势

过去,大多数病毒都选择隐藏在系统目录。这个病毒最显著的特点是隐藏在QQ目录中,并且插入QQ进程,以绕过反病毒软件的监控。显然,病毒技术已经从过去的发掘系统漏洞、攻击杀毒软件转向攻击通用软件。

改写host文件

8749病毒把www.piaoxue.com(曾经十分流行的飘雪)网址,杀毒厂商的服务器列表都被阻止访问,显然病毒除了跟反病毒软件作斗争,病毒之间抢地盘的趋势也更加明朗。

学会如何巧妙从进程中判断出病毒和木马

学会如何巧妙从进程中判断出病毒和木马

来源:赛迪网技术社区 作者:jcx860

任何病毒和木马存在于系统中,都无法彻底和进程脱离关系,即使采用了隐藏技术,也还是能够从进程中找到蛛丝马迹,因此,查看系统中活动的进程成为我们检测病毒木马最直接的方法。但是系统中同时运行的进程那么多,哪些是正常的系统进程,哪些是木马的进程,而经常被病毒木马假冒的系统进程在系统中又扮演着什么角色呢?请看本文。

病毒进程隐藏三法

当我们确认系统中存在病毒,但是通过“任务管理器”查看系统中的进程时又找不出异样的进程,这说明病毒采用了一些隐藏措施,总结出来有三法:

1.以假乱真

系统中的正常进程有:svchost.exe、explorer.exe、iexplore.exe、winlogon.exe等,可能你发现过系统中存在这样的进程:svch0st.exe、explore.exe、iexplorer.exe、winlogin.exe。对比一下,发现区别了么?这是病毒经常使用的伎俩,目的就是迷惑用户的眼睛。通常它们会将系统中正常进程名的o改为0,l改为i,i改为j,然后成为自己的进程名,仅仅一字之差,意义却完全不同。又或者多一个字母或少一个字母,例如explorer.exe和iexplore.exe本来就容易搞混,再出现个iexplorer.exe就更加混乱了。如果用户不仔细,一般就忽略了,病毒的进程就逃过了一劫。

2.偷梁换柱

如果用户比较心细,那么上面这招就没用了,病毒会被就地正法。于是乎,病毒也学聪明了,懂得了偷梁换柱这一招。如果一个进程的名字为svchost.exe,和正常的系统进程名分毫不差。那么这个进程是不是就安全了呢?非也,其实它只是利用了“任务管理器”无法查看进程对应可执行文件这一缺陷。我们知道svchost.exe进程对应的可执行文件位于“C:\WINDOWS\system32”目录下(Windows2000则是C:\WINNT\system32目录),如果病毒将自身复制到“C:\WINDOWS\”中,并改名为svchost.exe,运行后,我们在“任务管理器”中看到的也是svchost.exe,和正常的系统进程无异。你能辨别出其中哪一个是病毒的进程吗?

3.借尸还魂

除了上文中的两种方法外,病毒还有一招终极大法——借尸还魂。所谓的借尸还魂就是病毒采用了进程插入技术,将病毒运行所需的dll文件插入正常的系统进程中,表面上看无任何可疑情况,实质上系统进程已经被病毒控制了,除非我们借助专业的进程检测工具,否则要想发现隐藏在其中的病毒是很困难的。

系统进程解惑

上文中提到了很多系统进程,这些系统进程到底有何作用,其运行原理又是什么?下面我们将对这些系统进程进行逐一讲解,相信在熟知这些系统进程后,就能成功破解病毒的“以假乱真”和“偷梁换柱”了。

svchost.exe

常被病毒冒充的进程名有:svch0st.exe、schvost.exe、scvhost.exe。随着Windows系统服务不断增多,为了节省系统资源,微软把很多服务做成共享方式,交由svchost.exe进程来启动。而系统服务是以动态链接库(DLL)形式实现的,它们把可执行程序指向scvhost,由cvhost调用相应服务的动态链接库来启动服务。我们可以打开“控制面板”→“管理工具”→服务,双击其中“ClipBook”服务,在其属性面板中可以发现对应的可执行文件路径为“C:\WINDOWS\system32\clipsrv.exe”。再双击“Alerter”服务,可以发现其可执行文件路径为“C:\WINDOWS\system32\svchost.exe -k LocalService”,而“Server”服务的可执行文件路径为“C:\WINDOWS\system32\svchost.exe -k netsvcs”。正是通过这种调用,可以省下不少系统资源,因此系统中出现多个svchost.exe,其实只是系统的服务而已。

在Windows2000系统中一般存在2个svchost.exe进程,一个是RPCSS(RemoteProcedureCall)服务进程,另外一个则是由很多服务共享的一个svchost.exe;而在WindowsXP中,则一般有4个以上的svchost.exe服务进程。如果svchost.exe进程的数量多于5个,就要小心了,很可能是病毒假冒的,检测方法也很简单,使用一些进程管理工具,例如Windows优化大师的进程管理功能,查看svchost.exe的可执行文件路径,如果在“C:\WINDOWS\system32”目录外,那么就可以判定是病毒了。

explorer.exe

常被病毒冒充的进程名有:iexplorer.exe、expiorer.exe、explore.exe。explorer.exe就是我们经常会用到的“资源管理器”。如果在“任务管理器”中将explorer.exe进程结束,那么包括任务栏、桌面、以及打开的文件都会统统消失,单击“任务管理器”→“文件”→“新建任务”,输入“explorer.exe”后,消失的东西又重新回来了。explorer.exe进程的作用就是让我们管理计算机中的资源。

explorer.exe进程默认是和系统一起启动的,其对应可执行文件的路径为“C:\Windows”目录,除此之外则为病毒。

iexplore.exe

常被病毒冒充的进程名有:iexplorer.exe、iexploer.exeiexplorer.exe进程和上文中的explorer.exe进程名很相像,因此比较容易搞混,其实iexplorer.exe是Microsoft Internet Explorer所产生的进程,也就是我们平时使用的IE浏览器。知道作用后辨认起来应该就比较容易了,iexplorer.exe进程名的开头为“ie”,就是IE浏览器的意思。

iexplore.exe进程对应的可执行程序位于C:\ProgramFiles\InternetExplorer目录中,存在于其他目录则为病毒,除非你将该文件夹进行了转移。此外,有时我们会发现没有打开IE浏览器的情况下,系统中仍然存在iexplore.exe进程,这要分两种情况:1.病毒假冒iexplore.exe进程名。2.病毒偷偷在后台通过iexplore.exe干坏事。因此出现这种情况还是赶快用杀毒软件进行查杀吧。

rundll32.exe

常被病毒冒充的进程名有:rundl132.exe、rundl32.exe。rundll32.exe在系统中的作用是执行DLL文件中的内部函数,系统中存在多少个Rundll32.exe进程,就表示Rundll32.exe启动了多少个的DLL文件。其实rundll32.exe我们是会经常用到的,他可以控制系统中的一些dll文件,举个例子,在“命令提示符”中输入“rundll32.exe user32.dll,LockWorkStation”,回车后,系统就会快速切换到登录界面了。rundll32.exe的路径为“C:\Windows\system32”,在别的目录则可以判定是病毒。

spoolsv.exe

常被病毒冒充的进程名有:spoo1sv.exe、spolsv.exe。spoolsv.exe是系统服务“Print Spooler”所对应的可执行程序,其作用是管理所有本地和网络打印队列及控制所有打印工作。如果此服务被停用,计算机上的打印将不可用,同时spoolsv.exe进程也会从计算机上消失。如果你不存在打印机设备,那么就把这项服务关闭吧,可以节省系统资源。停止并关闭服务后,如果系统中还存在spoolsv.exe进程,这就一定是病毒伪装的了。

限于篇幅,关于常见进程的介绍就到这里,我们平时在检查进程的时候如果发现有可疑,只要根据两点来判断:

1.仔细检查进程的文件名;

2.检查其路径。

通过这两点,一般的病毒进程肯定会露出马脚。

找个管理进程的好帮手

系统内置的“任务管理器”功能太弱,肯定不适合查杀病毒。因此我们可以使用专业的进程管理工具,例如Procexp。Procexp可以区分系统进程和一般进程,并且以不同的颜色进行区分,让假冒系统进程的病毒进程无处可藏。

运行Procexp后,进程会被分为两大块,“System Idle Process”下属的进程属于系统进程,

explorer.exe”下属的进程属于一般进程。我们介绍过的系统进程svchost.exe、winlogon.exe等都隶属于“System Idle Process”,如果你在“explorer.exe”中发现了svchost.exe,那么不用说,肯定是病毒冒充的。

Windows2000服务器入侵前兆检测方法技巧

来源:赛迪网技术社区 作者:jcx860

入侵检测系统(IDS)是防火墙的合理补充,它帮助安全系统发现可能的入侵前兆,并对付网络攻击。入侵检测系统能在不影响网络性能的情况下对网络进行监测,提供对内部攻击、外部攻击和误操作的实时保护,能够扩展系统管理员的安全管理能力(包括安全审计、监视、进攻识别和响应),提高了信息安全基础结构的完整性。但是,入侵检测系统并不是万能的,高昂的价格也让人退却,而且,单个服务器或者小型网络配置入侵检测系统或者防火墙等投入也太大了。

一、对于WWW服务入侵的前兆检测

对于网络上开放的服务器来说,WWW服务是最常见的服务之一。基于80端口的入侵也因此是最普遍的。很多sceipt kids就对修改WEB页面非常热衷。WWW服务面对的用户多,流量相对来说都很高,同时WWW服务的漏洞和相应的入侵方法和技巧也非常多,并且也相对容易,很多“黑客”使用的漏洞扫描器就能够扫描80端口的各种漏洞,比如wwwscan 、X-scanner等,甚至也有只针对80端口的漏洞扫描器。Windows系统上提供WWW服务的IIS也一直漏洞不断,成为系统管理员头疼的一部分。

虽然80端口入侵和扫描很多,但是80端口的日志记录也非常容易。IIS提供记录功能很强大的日志记录功能。在“Internet 服务管理器”中站点属性可以启用日志记录。默认情况下日志都存放在%WinDir%\System32\LogFiles,按照每天保存在exyymmdd.log文件中。这些都可以进行相应配置,包括日志记录的内容。

在配置IIS的时候应该让IIS日志尽量记录得尽量详细,可以帮助进行入侵判断和分析。现在我们要利用这些日志来发现入侵前兆,或者来发现服务器是否被扫描。打开日志文件,我们能够得到类似这样的扫描记录(以Unicode漏洞举例):

2002-03-10 05:42:27 192.168.1.2 - 192.168.1.1 80 HEAD /script/..蜡../..蜡../..

蜡../winnt/system32/cmd.exe /c+dir 404 -

2002-03-10 05:42:28 192.168.1.2 - 192.168.1.1 80

GET /script/..?../..?../..?../winnt/system32/cmd.exe /c+dir 404 -

需要注意类似这样的内容:

/script/..?../..?../..?../winnt/system32/cmd.exe /c+dir 404

如果是正常用户,那么他是不会发出这样的请求的,这些是利用IIS的Unicode漏洞扫描的结果。后面的404表示并没有这样的漏洞。如果出现的是200,那么说明存在Unicode漏洞,也说明它已经被别人扫描到了或者已经被人利用了。不管是404或者200,这些内容出现在日志中,都表示有人在扫描(或者利用)服务器的漏洞,这就是入侵前兆。日志也记录下扫描者的来源:192.168.1.2这个IP地址。

再比如这个日志:

2002-03-10 06:17:50 192.168.1.2 - 192.168.1.1 80 HEAD / - 400 -

这是一个使用HEAD请求来扫描WWW服务器软件类型的记录,攻击者能够通过了解WWW使用的软件来选择扫描工具扫描的范围。

IIS通常都能够记录下所有的请求,这里面包含很多正常用户的请求记录,这也让IIS的日志文件变得非常庞大,上十兆或者更大,人工浏览分析就变得不可取。这时可以使用一些日志分析软件,帮助日志分析。或者使用下面这个简单的命令来检查是否有Unicode漏洞的扫描事件存在:

find /I "winnt/system32/cmd.exe" C:\log\ex020310.log

“find”这个命令就是在文件中搜索字符串的。我们可以根据扫描工具或者漏洞情况建立一个敏感字符串列表,比如“HEAD”、“cmd.exe”(Unicode漏洞)、“.ida”“.idq”(IDA/IDQ远程溢出漏洞)、“.printer”(Printer远程溢出漏洞)等等。

二、对于FTP等服务入侵的前兆检测

根据前面对于WWW服务入侵前兆的检测,我们可以照样来检测FTP或者其他服务(POP、SMTP等)。以FTP服务来举例,对于FTP服务,通常最初的扫描或者入侵必然是进行帐号的猜解。对于IIS提供的FTP服务,也跟WWW服务一样提供了详尽的日志记录(如果使用其他的FTP服务软件,它们也应该有相应的日志记录)。

我们来分析这些日志:

2002-03-10 06:41:19 192.168.21.130 administrator [36]USER administrator 331

2002-03-10 06:41:19 192.168.21.130 - [36]PASS - 530

这表示用户名administrator请求登录,但是登录失败了。当在日志中出现大量的这些登录失败的记录,说明有人企图进行FTP的帐号猜解。这就是从FTP服务来入侵的入侵前兆。

分析这些日志的方法也跟前面分析WWW服务的日志方法类似。因为FTP并不能进行帐号的枚举,所以,如果发现有攻击者猜测的用户名正好和你使用的帐号一致,那么就需要修改帐号并加强密码长度。

三、系统帐号密码猜解入侵的前兆检测

对于Windows 2000服务器来说,一个很大的威胁也来自系统帐号密码的猜解,因为如果配置不佳的服务器允许进行空会话的建立,这样,攻击者能够进行远程的帐号枚举等,然后根据枚举得到的帐号进行密码的猜测。即使服务器拒绝进行空会话的建立,攻击者同样能够进行系统帐号的猜测,因为基本上很多服务器的系统管理员都使用administrator、admin、root等这样的帐号名。那些黑客工具,比如“流光”等,就可以进行这样的密码猜测,通过常用密码或者进行密码穷举来破解系统帐号的密码。

要检测通过系统帐号密码猜解的入侵,需要设置服务器安全策略,在审核策略中进行记录,需要审核记录的基本事件包括:审核登录事件、审核帐户登录事件、帐户管理事件。审核这些事件的“成功、失败”,然后我们可以从事件查看器中的安全日志查看这些审核记录。

比如:如果我们在安全日志中发现了很多失败审核,就说明有人正在进行系统帐号的猜解。我们查看其中一条的详细内容,可以看到:

登录失败:

原因:用户名未知或密码错误

用户名:administrator

域:ALARM

登录类型:3

登录过程:NtLmSsp

身份验证程序包:MICROSOFT_AUTHENTICATION_PACKAGE_V1_0

工作站名:REFDOM

进行密码猜解的攻击者打算猜测系统帐号administrator的密码,攻击者的来源就是工作站名:REFDOM,这里记录是攻击者的计算机名而不是他的IP地址。

当我们发现有人打算进行密码猜解的时候,就需要对相应的配置和策略进行修改。比如:对IP地址进行限制、修改被猜解密码的帐号的帐号名、加强帐号密码的长度等等来应对这样的入侵。

四、终端服务入侵的前兆检测

Windows2000 提供终端控制服务(Telminal Service),它是一个基于远程桌面协议(RDP)的工具,方便管理员进行远程控制,是一个非常好的远程控制工具。终端服务使用的界面化控制让管理员使用起来非常轻松而且方便,速度也非常快,这一样也让攻击者一样方便。而且以前终端服务存在输入法漏洞,可以绕过安全检查获得系统权限。对于打开终端服务的服务器来说,很多攻击者喜欢远程连接,看看服务器的样子(即使他们根本没有帐号)。

对终端服务进行的入侵一般在系统帐号的猜解之后,攻击者利用猜解得到的帐号进行远程终端连接和登录。

在管理工具中打开远程控制服务配置,点击"连接",右击你想配置的RDP服务(比如 RDP-TCP(Microsoft RDP 5.0),选中书签"权限",点击"高级",加入一个Everyone组,代表所有的用户,然后审核他的"连接"、"断开"、"注销"的成功和"登录"的成功和失败,这个审核是记录在安全日志中的,可以从"管理工具"->"日志查看器"中查看。但是这个日志就象前面的系统密码猜解那样,记录的是客户端机器名而不是客户端的IP地址。我们可以做一个简单的批处理bat文件(文件名为TerminalLog.bat),用它来记录客户端的IP,文件内容是:

time /t >>Terminal.log

netstat -n -p tcp | find ":3389">>Terminal.log

start Explorer

终端服务使用的端口是TCP 3389,文件第一行是记录用户登录的时间,并把这个时间记入文件Terminal.log中作为日志的时间字段;第二行是记录用户的IP地址,使用netstat来显示当前网络连接状况的命令,并把含有3389端口的记录到日志文件中去。这样就能够记录下对方建立3389连接的IP地址了。

要设置这个程序运行,可以在终端服务配置中,登录脚本设置指定TerminalLOG.bat作为用户登录时需要打开的脚本,这样每个用户登录后都必须执行这个脚本,因为默认的脚本是Explorer(资源管理器),所以在Terminal.bat的最后一行加上了启动Explorer的命令start Explorer,如果不加这一行命令,用户是没有办法进入桌面的。当然,可以把这个脚本写得更加强大,但是请把日志记录文件放置到安全的目录中去。

通过Terminal.log文件记录的内容,配合安全日志,我们就能够发现通过终端服务的入侵事件或者前兆了。

对于Windows2000服务器来说,上面四种入侵是最常见的,也占入侵Windows2000事件的绝大多数。从上面的分析,我们能够及时地发现这些入侵的前兆,根据这些前兆发现攻击者的攻击出发点,然后采取相应的安全措施,以杜绝攻击者入侵。

我们也可以从上面分析认识到,服务器的安全配置中各种日志记录和事件审核的重要性。这些日志文件在被入侵后是攻击者的重要目标,他们会删除和修改记录,以便抹掉他们的入侵足迹。因此,对于各种日志文件,我们更应该好好隐藏并设置权限等保护起来。同时,仅仅记录日志而不经常性地查看和分析,那么所有的工作就等于白做了。

在安全维护中,系统管理员应该保持警惕,并熟悉黑客使用的入侵手段,做好入侵前兆的检测和分析,这样才能未雨绸缪,阻止入侵事件的发生。

菜鸟安全需知:从基础学起黑客术语大全

来源:赛迪网技术社区 作者:jcx8601.肉鸡:所谓“肉鸡”是一种很形象的比喻,比喻那些可以随意被我们控制的电脑,对方可以是WINDOWS系统,也可以是UNIX/LINUX系统,可以是普通的个人电脑,也可以是大型的服务器,我们可以象操作自己的电脑那样来操作它们,而不被对方所发觉。2.木马:就是那些表面上伪装成了正常的程序,但是当这些被程序运行时,就会获取系统的整个控制权限。有很多黑客就是 热中与使用木马程序来控制别人的电脑,比如灰鸽子,黑洞,PcShare等等。3.网页木马:表面上伪装成普通的网页文件或是将而已的代码直接插入到正常的网页文件中,当有人访问时,网页木马就会利用对方系统或者浏览器的漏洞自动将配置好的木马的服务端下载到访问者的电脑上来自动执行。4.挂马:就是在别人的网站文件里面放入网页木马或者是将代码潜入到对方正常的网页文件里,以使浏览者中马。5.后门:这是一种形象的比喻,入侵者在利用某些方法成功的控制了目标主机后,可以在对方的系统中植入特定的程序,或者是修改某些设置。这些改动表面上是很难被察觉的,但是入侵者却可以使用相应的程序或者方法来轻易的与这台电脑建立连接,重新控制这台电脑,就好象是入侵者偷偷的配了一把主人房间的要是,可以随时进出而不被主人发现一样。通常大多数的特洛伊木马(Trojan Horse)程序都可以被入侵者用语制作后门(BackDoor)6.rootkit:rootkit是攻击者用来隐藏自己的行踪和保留root(根权限,可以理解成WINDOWS下的system或者管理员权限)访问权限的工具。通常,攻击者通过远程攻击的方式获得root访问权限,或者是先使用密码猜解(破解)的方式获得对系统的普通访问权限,进入系统后,再通过,对方系统内存在的安全漏洞获得系统的root权限。然后,攻击者就会在对方的系统中安装rootkit,以达到自己长久控制对方的目的,rootkit与我们前边提到的木马和后门很类似,但远比它们要隐蔽,黑客守卫者就是很典型的rootkit,还有国内的ntroorkit等都是不错的rootkit工具。7.IPC$:是共享“命名管道”的资源,它是为了让进程间通信而开放的饿命名管道,可以通过验证用户名和密码获得相应的权限,在远程管理计算机和查看计算机的共享资源时使用。8.弱口令:指那些强度不够,容易被猜解的,类似123,abc这样的口令(密码)9.默认共享:默认共享是WINDOWS2000/XP/2003系统开启共享服务时自动开启所有硬盘的共享,因为加了"$"符号,所以看不到共享的托手图表,也成为隐藏共享。10.shell:指的是一种命令指行环境,比如我们按下键盘上的“开始键+R”时出现“运行”对话框,在里面输入“cmd”会出现一个用于执行命令的黑窗口,这个就是WINDOWS的Shell执行环境。通常我们使用远程溢出程序成功溢出远程电脑后得到的那个用于执行系统命令的环境就是对方的shell11.WebShell:WebShell就是以asp、php、jsp或者cgi等网页文件形式存在的一种命令执行环境,也可以将其称做是一种网页后门。黑客在入侵了一个网站后,通常会将这些asp或php后门文件与网站服务器WEB目录下正常的网页文件混在一起,好后就可以使用浏览器来访问这些asp 或者php后门,得到一个命令执行环境,以达到控制网站服务器的目的。可以上传下载文件,查看数据库,执行任意程序命令等。国内常用的WebShell有海阳ASP木马,Phpspy,c99shell等12.溢出:确切的讲,应该是“缓冲区溢出”。简单的解释就是程序对接受的输入数据没有执行有效的检测而导致错误,后果可能是造成程序崩溃或者是执行攻击者的命令。大致可以分为两类:(1)堆溢出;(2)栈溢出。13.注入:随着B/S模式应用开发的发展,使用这种模式编写程序的程序员越来越来越多,但是由于程序员的水平参差不齐相当大一部分应用程序存在安全隐患。用户可以提交一段数据库查询代码,根据程序返回的结果,获得某些他想要知的数据,这个就是所谓的SQLinjection,即:SQL注意入。14.注入点:是可以实行注入的地方,通常是一个访问数据库的连接。根据注入点数据库的运行帐号的权限的不同,你所得到的权限也不同。15.内网:通俗的讲就是局域网,比如网吧,校园网,公司内部网等都属于此类。查看IP地址如果是在以下三个范围之内的话,就说明我们是处于内网之中的:10.0.0.0—10.255.255.255,172.16.0.0—172.31.255.255,192.168.0.0—192.168.255.25516.外网:直接连入INTERNET(互连网),可以与互连网上的任意一台电脑互相访问,IP地址不是保留IP(内网)IP地址。17.端口:(Port)相当于一种数据的传输通道。用于接受某些数据,然后传输给相应的服务,而电脑将这些数据处理后,再将相应的恢复通过开启的端口传给对方。一般每一个端口的开放的偶对应了相应的服务,要关闭这些端口只需要将对应的服务关闭就可以了。18.3389、4899肉鸡:3389是Windows终端服务(Terminal Services)所默认使用的端口号,该服务是微软为了方便网络管理员远程管理及维护服务器而推出的,网络管理员可以使用远程桌面连接到网络上任意一台开启了终端服务的计算机上,成功登陆后就会象操作自己的电脑一样来操作主机了。这和远程控制软件甚至是木马程序实现的功能很相似,终端服务的连接非常稳定,而且任何杀毒软件都不会查杀,所以也深受黑客喜爱。黑客在入侵了一台主机后,通常都会想办法先添加一个属于自己的后门帐号,然后再开启对方的终端服务,这样,自己就随时可以使用终端服务来控制对方了,这样的主机,通常就会被叫做3389肉鸡。Radmin是一款非常优秀的远程控制软件,4899就是Radmin默认使以也经常被黑客当作木马来使用(正是这个原因,目前的杀毒软件也对Radmin查杀了)。有的人在使用的服务端口号。因为Radmin的控制功能非常强大,传输速度也比大多数木马快,而且又不被杀毒软件所查杀,所用Radmin管理远程电脑时使用的是空口令或者是弱口令,黑客就可以使用一些软件扫描网络上存在Radmin空口令或者弱口令的主机,然后就可以登陆上去远程控制对恶劣,这样被控制的主机通常就被成做4899肉鸡。19.免杀:就是通过加壳、加密、修改特征码、加花指令等等技术来修改程序,使其逃过杀毒软件的查杀。20.加壳:就是利用特殊的酸法,将EXE可执行程序或者DLL动态连接库文件的编码进行改变(比如实现压缩、加密),以达到缩小文件体积或者加密程序编码,甚至是躲过杀毒软件查杀的目的。目前较常用的壳有UPX,ASPack、PePack、PECompact、UPack、免疫007、木马彩衣等等。21.花指令:就是几句汇编指令,让汇编语句进行一些跳转,使得杀毒软件不能正常的判断病毒文件的构造。说通俗点就是”杀毒软件是从头到脚按顺序来查找病毒。如果我们把病毒的头和脚颠倒位置,杀毒软件就找不到病毒了“。

星期二, 七月 24, 2007

黑客经验:针对IDS的逃避技术与相关对策

黑客经验:针对IDS的逃避技术与相关对策
来源:赛迪网安全社区 作者:jcx860
【编者按:文中内容仅供参考,切勿用于不当之处!】
在网络蓬勃发展的几天,网络安全问题日益突出。网络上的黑、白两道在网络安全的各个领域都展开了激烈的竞争。黑帽社团不断推出躲避或者越过网络入侵检测系统(Network Intrusion Detection System,NIDS)的新技术,而NIDS的开发者不断地在自己的产品中加入对这些技术的检测。但是,由于NIDS本身的局限性,胜利的天平正在向黑帽子倾斜。本文将讨论一些基本的IDS躲避技术,以及如何识破这些技术。
1.字符串匹配的弱点
针对基本字符串匹配弱点的IDS躲避技术是最早被提出和实现的。一些基于特征码的入侵检测设备几乎完全依赖于字符串匹配算法,而对于一个编写很差的特征码,攻击者可以轻松地破坏对其的字符串匹配。虽然不是所有的入侵检测系统都是纯粹基于特征码检测的,但是绝大多数对字符串匹配算法有很大的依赖。这里,我们将使用开放源码工具snort的特征码来进行讨论。
在UNIX系统中,/etc/passwd是一个重要的文件,它包含用户名、组成员关系和为用户分配的shell等信息。我们就从监视对/etc/passwd文件的访问开始,下面是用于检测的snort检测规则:
alert tcp $EXTERNAL_NET any -> $HTTP_SERVERS 80 (msg:"WEB-MISC /etc/passwd";
flags: A+; content:"/etc/passwd"; nocase; classtype:attempted-recon; sid:1122;rev:1)
snort使用字符串匹配算法对包含特征码(/etc/passwd)的HTTP请求进行检测。但是,这个规则的特征码过于简单了,攻击者修改攻击字符串可以很轻松地逃过检测(我们暂时不考虑攻击请求是通过HTTP发出的)。例如,把攻击请求由GET /etc/passwd改为GET /etc/////passwd,或者GET /etc/rc.d/.././/passwd,修改方式简直不计其数。这是最基本的娶亲检测逃避技术,对这种技术的检测也相对容易一些,只要在编写特征码时能够仔细考虑一下攻击可能出现的变体。目前大多数流行入侵检测系统都有非常强大的字符串匹配能力,足以检测此类攻击的大多数变体。不过,仍然有些编写不太好的特征码可以给攻击者以可乘之机。
攻击者还可以在此基础上再加以变化,几乎不费吹灰之力就可以加大入侵检测系统的防御难度。例如在telnet之类的交互会话中,攻击者企图读取/etc/passwd文件。通常,入侵检测系统中存在很多特征码一些误用操作和后门等,但是这些特征码一般只包含黑客工具名、文件名和程序名。在获得/etc/passwd文件的内容时,我们不直接输入cat /etc/passwd等命令行,而是通过一个命令解释器(例如:perl)来实现我们的目的:
badguy@host$ perl -e
‘$foo=pack(“C11”,47,101,116,99,47,112,97,115,115,119,100);
@bam=`/bin/cat/ $foo`; print”@bam/n”;’
从这个命令中,入侵检测系统根本就不会重组出/etc/passwd这些字符。显然,防御这种攻击就很困难了,因为这要求入侵检测系统必须能够理解这种解释器如何收到的命令,这恐怕不太现实。当然,入侵检测系统也可以对使用解释器的可疑行为进行报警,但是它很难对攻击行为进行精确的监视。
通过把字符串处理技术和字符替换技术结合到一起,我们可疑实现更复杂的字符串伪装。对于WEB请求,我们不必使用命令解释器,在我们的请求中使用16进制的URL即可,以下的请求可以被目标WEB服务器解释为/etc/passwd:
GET %65%74%63/%70%61%73%73%77%64
或者
GET %65%74%63/%70a%73%73%77d
为了捕获这一个字符串的所有变体,你可能需要1000个以上的特征码进行字符串匹配,这还没有考虑UNICODE。UNICODE提供了另一种字符表达方式。有关UNICODE的IDS欺骗技术细节,本文将不多做讨论。如果想了解更多细节请参考SecurityFocus的IDS Evasion with Unicode。除此之外,RainForestPuppy在他的HTTP扫描工具Whisker中采用了另外一些IDS欺骗技术:
-I 1 IDS-evasive mode 1 (URL编码)
-I 2 IDS-evasive mode 2 (/./目录插入)
-I 3 IDS-evasive mode 3 (过早结束URL)
-I 4 IDS-evasive mode 4 (长URL)
-I 5 IDS-evasive mode 5 (伪造参数)
-I 6 IDS-evasive mode 6 (TAB分割) (not NT/IIS)
-I 7 IDS-evasive mode 7 (大小写敏感)
-I 8 IDS-evasive mode 8 (Windows分割符)
-I 9 IDS-evasive mode 9 (会话拼接) (slow)
-I 0 IDS-evasive mode 0 (NULL方法)
如果想了解上面这些方法的技术细节,可以参考A Look At Whisker's Anti-IDS Tactics。需要特别说明的是,rfp把whisker采用的anti-ids技术单独放到了libwhisker(使用perl编写的)库中,为其它的程序采用这些技术提供了很大的便利。另外,nessus和babelweb等扫描工具都有自己的应用层入侵检测躲避技术。
现在,IDS开发人员对各种网络协议有了更深入的理解,并且入侵检测设备在对数据包的负载进行字符串匹配之前会进行必要的协议分析,因此现在的IDS已经能够很好地处理上述的欺骗技术了。但是多余的字符转换又提高了入侵检测系统的负载,有时是得不偿失。为了减小这个负面影响,开发人员可以使入侵检测系统只在特定的端口进行字符转换。
2.多变shell代码(polymorphic shell code)
多变shell代码(polymorphic shell code)技术由K2开发的,设计思想来源于病毒逃避(virus evasion)技术。使用这种技术重新构造的shell代码更为危险,入侵检测设备非常难以检测到。这种技术只用于缓冲区溢出攻击,对付基于特征码的检测系统非常有效,而对于智能化的或者基于协议分析的检测系统的效果要差很多。为了便于讨论,我们以SSH CRC32缓冲区为例。我们先看以下snort检测规则:
alert tcp $EXTERNAL_NET any -> $HOME_NET 22 (msg:"EXPLOIT ssh CRC32
overflow /bin/sh"; flags:A+; content:"/bin/sh"; reference:bugtraq,2347;
reference:cve,CVE-2001-0144; classtype:shellcode-detect; sid:1324; rev:1;)
alert tcp $EXTERNAL_NET any -> $HOME_NET 22 (msg:"EXPLOIT ssh CRC32
overflow NOOP"; flags:A+; content:"90 90 90 90 90 90 90 90 90 90 90 90 90 90 90)
上面的第一条规则简单地检查从外部到$HOME_NET,目标端口是22的数据包,搜索里面是否包含字符串/bin/sh。第二条规则是检查是否包含x86空操作字符(0x90)。多变shell代码(polymorphic shell code)使用很多方法逃避字符串匹配系统的检测。首先(以x86架构为例),使用其它的字符代替0x90执行无操作(no-op)指令。对于X86架构,有55种替代方式,其它的要少一些。这些替代方式以一种伪随机的方式结合到一块,建立缓冲区溢出shell代码包含无操作(no-op)指令的部分。除此之外,shell代码本身也采用XOR机制编码。通过这种方式建立的缓冲区溢出shell代码被重组后不会包含以上的特征码,从而能够逃过字符串匹配检测。
多变shell代码检测对基于特征码检测的IDS是一个很大的挑战。Next Generation Security Technologie公司的技术白皮书Polymorphic Shellcodes vs. Application IDSs中提出了一些检测多变shell代码的设想。通过搜索无操作(no-op)字符的一个特定长度的正则表达式,可以实现对多变shell代码的精确检测。最近,Dragos Ruiu发布了一个用于检测多变shell代码的snort预处理插件spp_fnord,这个插件采用了和上面相似的检测技术。这个预处理插件有端口和长度两个配置选项。例如,如果某个人在配置时设置了80、21、23和53等端口,它就只对这几个端口的数据流量进行多变shell代码的检测,而不会对其它端口(例如:22)进行检测。
3.会话拼接(session splicing,叫会话分割更合适一些)
上面讨论的这些方法都是属于攻击数据在一个数据包中的情况,没有涉及攻击数据和会话通过多个数据包投递的情况。RFP在Whisker中实现了一种IDS逃避技术叫作会话拼接(session splicing),就是把会话数据放到多个数据包中发出,例如:
+-------------------------+
packet number content
---------------+---------
1 G
---------------+---------
2 E
---------------+---------
3 T
---------------+---------
4 20
---------------+---------
5 /
---------------+---------
6 H
+---------------+---------+
通过这种方式,每次只投递几个字节的数据,就可能避开字符串匹配入侵检测系统的监视。要监视这种攻击,需要入侵检测系统或者能够理解、监视网络会话(即使IDS有这种能力,攻击者也可以通过其它的凡是避开监视),或者采用其它的技术监视这种攻击。snort使用以下规则来监视会话拼接:
alert tcp $EXTERNAL_NET any -> $HTTP_SERVERS 80 (msg:"WEB-MISC whisker
space splice attack"; content:"20"; flags:A+; dsize:1;
reference:arachnids,296; classtype:attempted-recon; reference)
这条规则使snort检测目标为$HTTP_SERVERS 80端口的ACK报文的负载长度是否等于1以及是否包含空格(16进制的20)。使用这条规则可以精确地检测出whisker,但是攻击者只要稍加修改就可以避开这个检测。为了能够检测可能出现的会话拼接攻击,可以对上面这条snort规则进行扩展,使其检查负载很短的HTTP请求。但是,这样做的副作用是提高了误报警数量,而且在某些情况下攻击者还是能够避开监视。为了真正有效地检测这种攻击,需要入侵检测系统能够完整地理解网络会话,不过这是非常困难的。应该注意的是目前大多数系统能够重组会话,在所有的会话数据到达之前,它们会等待一些时间。而等待时间的长短与程序有关。例如,Apache/RedHat的会话超时时间是6分钟,IIS/Win2K等待的时间非常长。因此,攻击者完全可以每15分钟发送一个字节的会话数据,而IIS还会认为是有效的会话。最新版本的snort能够监视长期的会话和网络层欺骗,例如:小TTL值。
4.碎片攻击
碎片攻击和会话拼接(session splicing)有点类似。直到最近,很多入侵检测系统在进行字符串匹配之前不能准确地重组碎片。现在这种情况有了改观,所有的入侵检测系统都能够进行某些重组。不过,还是有很多方法可以避开入侵检测系统的监视。碎片重组的问题是在进行字符串匹配以前,入侵检测系统必须在内存中缓存所有的碎片,然后进行重组。而且,他还需要直到、碎片在目的主机会如何重组。Thomas Ptacek and Timoth Newsham于1998年写的Insertion,Evasion and Denial of Service: Eluding Network Intrusion Detection描述了许多基于网络的碎片躲避和其它类型的躲避技术。碎片攻击包括:碎片覆盖、碎片重写、碎片超时和针对网络拓扑的碎片技术(例如使用小的TTL)等。下面,我们将详细讨论。
4.1.碎片覆盖
所谓碎片覆盖就是发送碎片覆盖先前碎片中的数据。例如:
碎片1 GET x.idd
碎片2 a.?(缓冲区溢出数据)
第二个碎片的第一个字符覆盖第一个碎片最后一个字符,这两个碎片被重组之后就变成了GET x.ida?(缓冲区溢出数据)。实际情况远非这么简单,更详细的细节请参考烂文IDS欺骗之Fragroute篇(上)。
4.2.碎片数据覆盖
这种方法和上面的碎片覆盖有些类似,只不过是覆盖全部的碎片数据,例如:
碎片1 GET x.id
碎片2 一些随机的字符
碎片3 a.?(缓冲区溢出数据)
这些碎片在经过目标系统的重组之后,碎片3将完全覆盖碎片2,重组之后的数据变成GET x.ida?(缓冲区溢出数据)。如果入侵检测系统的重组方式和目标系统不同,就无法重组出“GET x.ida?(缓冲区溢出数据)”,因此就检测不出这个攻击。
4.3.碎片超时
这种攻击依赖于入侵检测系统在丢弃碎片之前会保存多少时间。大多数系统会在60秒之后将丢弃不完整的碎片流(从收到第一个碎片开始计时)。如果入侵检测系统保存碎片的时间小于60秒,就会漏掉某些攻击。例如:
碎片1(设置了MF位)GET foo.id
碎片2(59秒之后发出) a?(缓冲区溢出数据)
如果IDS保存起始碎片的时间不到60秒,就会漏过攻击。幸运的是,如果配置没有错误,现在的网络入侵检测系统能够检测此类攻击。
这种技术结合其它的网络技术(例如:TTL值)将更有威胁。如果入侵检测系统和被监视的系统不在同一个网段,攻击者就可以在TTL上做手脚。有的单位由于经费的限制,不能在自己的每个子网都部署IDS节点,只在网络的出入口部署一套IDS,监视所有的网络流量。这种情况下,如果被攻击的主机在其它的子网,攻击数据包到目标系统的跳数就大于到IDS的跳数。攻击者可以伪造碎片的TTL,使某些碎片刚好能够到达,而无法到达目标系统,例如:
碎片序号负载TTL(假设攻击者到目标的跳数是5,到IDS的跳数是3)
1 GET foo.id 5
2 evasion.html 3
3 a?(缓冲区溢出数据) 5
从这些碎片中,IDS重组的数据是“GET foo.idevasion.html a?(缓冲区溢出数据)”或者“GET foo.idevasion.html”(如果IDS的超时时间小于60秒)。通过这种方式,攻击者成功地在IDS中插入了垃圾数据。
5.碎片和snort特征码
下面我们把上述攻击和某些snort特征码进行比较。对于.ida缓冲区溢出攻击,默认的snort特征码几乎无法捕获任何通过碎片发动的攻击(如果使用了frag2预处理模块,snort可以截获碎片超时攻击)。下面是针对.ida缓冲区溢出攻击的snort检测规则:
alert tcp $EXTERNAL_NET any -> $HTTP_SERVERS 80 (msg:"WEB-IIS ISAPI
.ida attempt"; uricontent:".ida?"; nocase; dsize:>239; flags:A+;
reference:arachnids,552; classtype:web-application-attack;
reference:cve,CAN-2000-0071; sid:1243; rev:2;)
另外,snort还有一条检测小碎片的规则,一旦发现太小的碎片,就会触发这条规则:
alert ip $EXTERNAL_NET any -> $HOME_NET any (msg:"MISC Tiny
Fragments"; fragbits:M; dsize: < 25; classtype:bad-unknown; sid:522)
但是,这样还是不能检测某些攻击。还是以ida缓冲区溢出为例,这个攻击实际上和请求的URI无关,因此攻击者可以在前面加入一些垃圾数据以避免触发碎片检测规则。
碎片1 GET reallylongstringtoevadedetect.i
碎片2 da?(缓冲区溢出数据)
这些技术并非只针对snort。Cisco Secure IDS也能够进行碎片重组,并且能够对上述碎片攻击进行报警。
实际上,碎片攻击要复杂的多,尤其是涉及到TTL和碎片覆盖。
检测碎片攻击也非常困难。使IDS的碎片超时时间至少为60秒,增加对异常碎片的报警,最重要的是系统管理人员要对碎片攻击的潜在威胁有清醒的认识。2002年四月,Dug Song发布了Fragroute,引发了不小的震动。很快,snort社团发布了能够对碎片攻击进行更好检测的snort1.8.6版。
6.拒绝服务
还有一种比较野蛮的方法就是拒绝服务。拒绝服务可以针对检测设备本身和管理设备。Stick、snot和其它一些测试工具能够是入侵检测设备产生大量的报警。使用这些工具,可以达成如下目标:
消耗检测设备的处理能力,是真正的攻击逃过检测。
塞满硬盘空间,使检测设备无法记录日志。
使检测设备产生超出其处理能力的报警。
使系统管理人员无法研究所有的报警。
挂掉检测设备。
对IDS来说,这类工具无迹可寻,因此非常难以对付。
结论
本文我们讨论了一些常用的IDS躲避技术及其对策。其中有些技术需要攻击者具有熟练的攻击技巧,而有写技术却无需太多的技巧。而fragroute之类的工具出现,大大降低了攻击者采用某些技术的难度,使防御的一方总是处于被动。希望这些东西对大家有点用。
安全知识:重定向命令在安全方面的应用
众所周知,DOS下有一个不为大家所常用的命令——重定向命令,这个小东西非常有用,该命令同样可以用于Win9x/ME/2000/XP下,灵活的使用这个命令可以给我们带来很大的方便——无论是入侵还是防守抑或是系统应用,都会带来很大的便利。今天就让我们来看几个重定向命令在安全方面的应用实例。
一、命令格式
DOS的标准输入输出通常是在标准设备键盘和显示器上进行的,利用重定向,可以方便地将输入输出改向磁盘文件或其它设备。其中:
1.大于号“>”将命令发送到文件或设备,例如打印机>prn。使用大于号“>”时,有些命令输出(例如错误消息)不能重定向。
2.双大于号“>>”将命令输出添加到文件结尾而不删除文件中已有的信息。
3.小于号“<”从文件而不是键盘上获取命令所需的输入。
4.>&符号将输出从一个默认I/O流(stdout,stdin,stderr)重新定向到另一个默认I/O流。例如,command >output_file 2>&1将处理command过程中的所有错误信息从屏幕重定向到标准文件输出中。标准输出的数值如下所示:
标准输出 等价的数值
Stdin  0
Stdout 1
Stderr 2
其中,1和2都创建一个文件用于存放数据;4可能不能够在DOS下使用。
二、重定向命令的输出
几乎所有的命令均将输出发送到屏幕。即使是将输出发送到驱动器或打印机的命令,也会在屏幕上显示消息和提示。要将输出从屏幕重定向到文件或打印机,请使用大于号(>)。大多数命令中均可以使用大于号。例如,在以下命令中,dir命令生成的目录列表重定向到Dirlist.txt文件:dir>dirlist.txt,如果Dirlist.txt文件不存在,系统将创建该文件。如果Dirlist.txt存在,系统将使用dir命令的输出替换文件中的信息。
要将命令输出添加到文件结尾而不丢失文件中的任何信息,请使用双大于号(>>)。例如,在以下命令中,dir命令生成的目录列表附加到Dirlist.txt文件中:dir>dirlist.txt,将输入重定向到一个命令,就象可以将命令输出发送到文件或打印机而不是屏幕一样,您可以从文件而不是从键盘获取命令的输入。要从文件获取输入,请使用小于号(<)。例如,以下命令将从List.txt文件中获取sort命令的输入:sort系统将LIST.TXT文件各行按字母排序并在屏幕上显示结果。

防黑谈:揪出反向木马里的反向连接域名

来源:赛迪网安全社区 作者:jcx860

反向木马的主要种植手段是通过IE的众多漏洞,BT下载时不小心运行,或者来路不明的软件,使未打补丁的用户点击之后下载运行了木马程序,而这些用户基本都是拥有动态IP的个人用户,若不使用反向连接的方式,势必无法长久控制。

下面让我们来讨论一下如何查出木马的最关键的要素――反向连接域名,知道了反向连接域名,你就可以随时了解到幕后元凶究竟在哪,是否在线等隐私资料,甚至可以进行域名劫持,从而使他所控制的单位全都连到你所设置的IP上去,可见反向域名一旦暴露,要抓住幕后黑手是轻而易举的事情。木马反向连接必须先向域名服务器发送查询要求,然后由域名服务器返回查询结果――域名对应的IP,有了IP之后再去连接主控端。而许多木马都通过修改系统文件,进程插入,API HOOK等众多方式实现了在系统中服务隐藏,进程隐藏,文件隐藏,端口隐藏,所以此时系统的输出已经不是可靠的输出了,可能你的抓包数据已经被恶意篡改,抹去了木马的相关数据(事后发现我的测试对象灰鸽子并没有这么做,但不排除别的木马会这么做)。于是我想到了通过物理上的方法,木马虽然可以在系统中隐藏,但是这个域名查询的请求无论如何都会经过网线或者无线信号传送出去。

为了查出反向连接域名,构建以下网络拓扑结构:

一台NOTEBOOK和一台PC连接在HUB上,ADSL MODEM接到HUB的UPLINK口上(注意:一般HUB的UPLINK口与旁边的接口绝对不能同时使用),选用HUB而不是宽带路由器的原因是我没钱…呵呵,其实真正的原因是HUB可以把任意一个端口发送的数据转发到除了本身端口外的其他任何一个端口,所以NOTEBOOK网卡的所有数据都会流经 PC的网卡,NOTEBOOK系统中可能被木马隐藏的网络数据,都会毫无保留的暴露再PC机的网卡上。

需要真正透彻理解从而提高技术还是需要实践,下面我就拿国内比较著名的灰鸽子木马做试验,尝试找出灰鸽子木马的反向连接域名(大家完全可以用别的木马做测试,因为我的机器不小心中了灰鸽子所以才将计就计)。PC机上的监听工具选择了TcpDump的WINDOWS版本WinDump,现在想来多余了,PC 上装着LINUX呢,可以直接使用TcpDump。WinDump的使用需要先安装WinPcap 3.1,然后下载WinDump version 3.9.3,就可以直接运行了。

监听前介绍一下NOTEBOOK的状态,中了灰鸽子木马。查到服务名的方法很简单,使用入侵检测工具icesword,那么更容易了,打开就可以查看到所有进程和所有服务,无论是否隐藏的,一目了然发现IEXPLORER进程和lente服务是隐藏的,于是禁止lente服务。(假如没有 icesword也没问题,进入安全模式,system32文件夹下搜索_hook.dll,发现一个systen_Hook.dll,明显是灰鸽子,注册表中搜索systen,发现关联的服务名为lente),把中了灰鸽子的NOTEBOOK一切有关网络的第三方开机自启动程序都禁止,防止引起不必要的域名查询混淆监听结果,把lente服务改成Manual方式,最后启动服务,在PC机上观察监听结果。

安全习惯与UAC,漫谈Vista的裸奔技巧

出处:PCHome

作者:江海明

  让我们回到2006年11月,那时Windows Vista刚刚完成Btea测试并发布了针对企业及OEM厂商的RTM版。微软的Jim Allchin 建议用户可以不必安装防病毒软件,因为其对新系统中内建的安装机制非常有信心。但在之后的澄清发表之前,这个问题演变成:Vista是否需要后台运行的防病毒软件?

  而当时的人们却非常讨厌UAC,这与微软的初衷背道而驰,原本它是一件防护恶意软件、病毒、木马、蠕虫及间谍软件的神兵利器,可以帮助人们象安全专家一样避免执行不明来源的邮件附件。减少用户每天对于安全问题的困扰。

  当打开UAC时,它会弹出一个总在最前端的窗口询问是否真的想安装或运行你不了解的程序,这对防止计算机收到感染真的有用吗?在回答这个问题之前,让我们首先来看一下在卸载你的防病毒软件如AVG或Avast之前,我们会面对何种危险?

  UAC的重要意义

  当UAC横空出世后,pc中几乎所有的进程与运行的程序都可以被拦截,尤其对那些试图使用管理员权限自动安装或自动运行的程序有显著的效果。

  Windows Vista还带来了很多其它的安全特性。Windows防火墙的升级版可以对出站和入站连接进行管理。而以往版本的Windows防火墙只能对入站连接进行管理,这意味着有可能在用户毫不知情的情况下成为攻击其它计算机的DDoS攻击的的其中一员。另外,Windows Defender可以免费提供对常见恶意软件的防护。

  同时自动更新也应当被包含在安全组合中,虽然它不象前面提到的那些安全程序,但对于系统安全而言仍是必不可少的组成部分。微软每个月都会通过Windows Update对自己或其它研究机构发现的漏洞进行定期修补。

  想在一台没有安装防病毒软件的机器上和病毒交锋,那么几乎所有的重担都将落在UAC的头上。既没有防病毒软件也没有UAC的机器可以被病毒无声无息的轻易攻破。

  病毒可以通过电子邮件(如果用户运行包含病毒的附件)或其它程序感染电脑。一个非常有效的途径就是不法分子将商业软件破解(如“warez”)后植入病毒,然后通过网站、FTP、BT网络、即时通讯软件,甚至IRC进行大范围的传播。如果不安装防病毒软件对此类来源的软件进行扫描,那么就算被感染了用户也发现不了。

  更糟糕的是,病毒通常都会极快的产生各种类型的“变种”,大多数的防病毒软件是通过特征码的形式进行病毒识别的,因此如果病毒变种后的代码与防病毒软件的定义不符,那么它同样可以感染“受保护”的电脑。

关于UAC的小测试

  为了测试在没有防病毒软件的环境下UAC机制对电脑的保护能力,我们在一台装有Windows Vista的机器中拷入了一份包含病毒的邮件,然后拔掉此台电脑的网线将其完全与本地网络物理隔离。

  然后在此台机器上打开这份受感染的邮件,其中包含2个可疑的附件,我们将这2个附件保存到目录中然后执行它们。

  不管运行哪个附件,UAC都马上跳出来报警,报告这种正常情况下看不到任何提示的自动安装。其中一个程序的名称为“???????????????????.EXE”,UAC会用红色标志对其标记,这说明此程序是非常可疑的。

  而如果有这样一种恶意软件,其名称为“BANK.EXE”,当UAC对其进行阻止时,另一个值得考虑的问题就会浮出水面。

  对于Vista用户来说,UAC是无处不在的。一般在安装游戏、升级驱动的时候出现,很多人在UAC对话框弹出后甚至连看都不看一眼就允许程序运行了。很多毫无经验的用户在看到“BANK.EXE”,出于习惯,或者只是因为他们不知道还能做什么,那干嘛不让它运行呢?

  说到这里,大家应该意识到防病毒软件只是安全防护的一部分,另一个非常重要的方面就是培养用户的使用习惯及安全意识。如果你经常泡论坛的话,可能会遇到这样的超级玩家,其Windows XP系统4年来没有安装任何防病毒软件竟然仍然安然无恙,为什么?其实很简单,那就是避免使用破解软件及运行可疑的Email附件。

  我们是否真的可以裸奔?

  那么缺少安全知识的用户怎么办呢?他们是否可以在不安装防病毒软件的情况下仅仅依靠UAC呢?我们需要强调的是,UAC机制只是阻止程序在没有管理员权限许可的情况下非法安装或运行,对于需要自我保护,远离病毒的用户,当UAC对话框每次出现时认真阅读其中的信息则是阻止感染的有效途径。

底线

  有了UAC的Windows Vista能够很好的防护恶意软件的侵害。而对于那些并未使用反病毒软件并且从未感染过病毒的Windows用户来说,他们良好的安全习惯并不需要UAC来辅助其保护自己计算机的安全。

  但这并不意味着不需要防病毒软件,在用户掌握足够多的安全知识,使其了解在打开附件或其它容易遭受病毒攻击的可能途径时应该做什么,不做什么之前,后台全天候运行的实时监控功能可以帮助其阻止已知的危害。而当用户养成了良好的安全习惯后,即使没有防病毒软件也可以轻松避免感染,此时UAC反而显得多余。

  说到这里,大家应该明白了,防护病毒的最好方法并不是UAC机制或防病毒软件,而是培养良好的安全习惯及掌握足够的安全常识。

  编者补充

  这篇文章对于目前的国内市场而言,具有一定的指导意义,当杀毒软件厂商还在炫耀自己能查杀多少多少种病毒时,殊不知现在的安全环境早已与前几年大相径庭,恶意软件、盗号木马以及可定制的病毒正日益成为计算机用户最大的威胁,这也是目前以360安全卫士为代表的恶意软件防护软件流行的原因。

  但所有以上的防护软件都有一个致命的缺点,他们都是以特征码的形式来查杀病毒的,这就意味着只有在获得病毒样本并分析后才能对其进行查杀。而且这是对大范围传播并引起厂商检测网络注意后的病毒而言,那么对于那些定制型的病毒木马来说,绕过杀毒软件感染系统也不是难事,厂商对此也根本没有办法。说白了,杀毒软件只是被动的防御,并不能100%的保证用户计算机的安全。而安全问题则是一个非常典型的木桶效应案例,系统的安全性好坏并不取决于最长的那块木板,而是取决于最短的那块。

  因此从05年开始,市面上开始出现了一些主动防御类的安全软件,简称HIPS,他们并不是杀毒软件,而是类似于“应用软件防火墙”的角色,可以对本机运行的所有软件及安装进行监控,在得到用户允许后才能继续执行,由于其对用户的安全知识要求较高,因此了解的人并不多。

  而Windows Vista中引入的UAC机制可以看作是简单的HIPS应用,因为它只对需要管理员权限操作的程序有效,而且并没有文件完整性检查等特性,只是机械的在每次需要出现的情况下出现。难道微软没有能力将其做得更好吗?我看未必,广泛的适用性及操作习惯的延续性是微软考虑的问题,如果系统风格与目前的Widnows系统完全不一样,那么在用户体验方面,将受到更多人的抨击。因此微软选择了一个折中的方案,一步步的加强系统安全性。

  现在网络中到处都充斥着所谓如何关闭UAC功能的技巧,而很多用户在并不了解事实的情况下,盲目跟从。正如本篇作者所讲的那样,在没有掌握足够的安全常识与养成良好的安全习惯之前,请不要关闭UAC!

推广链接