首页
社区
课程
招聘
[转帖]Yas Anti Rootkit by Sysnap
发表于: 2009-8-16 19:25 5395

[转帖]Yas Anti Rootkit by Sysnap

2009-8-16 19:25
5395
Yas Anti Rootkit by Sysnap

Yas Kit 是一款基于内核和底层技术的反黑辅助工具..它采用大量的内核技术和底层操作,让你可以轻松的找出病毒并且杀之...它适用于XP和2003系统..当然使用Yas Kit需要用户具备一定相关的知识...
注意: Yas的正常运行依赖于 sysdll_2006.dll和Sysnap_2006.sys...程序运行时会在system32目录下释放这俩个文件..一些主动防御系统会视为病毒.可以不理会之..还有NOD也会误报,添加信任程序就可以了

保证与免责声明
Yas Kit是Sysnap开发的免费工具软件,
Sysnap不保证本软件没有错误,在使用过程的任何后果需要自己负责.但欢迎有把错误报告给我.以便修正..
如果一运行就崩溃...可以把名字改为NoPs yas.exe或者NoDrv yas.exe看看...因为可能是yas 的驱动对你的操作系统支持不是很好.尽管如此,yas不用驱动也有很强大的功能..只要你把名字改为NoDrv yas.Exe,这样就不会加载驱动了.

软件功能
主界面: 包括进程管理, 注册表管理, 文件管理, 启动项管理, 钩子检测, 内核模块, 内核其他, 行为监控
主菜单包括: 工具( 包括,进程内存状态, SPI, BHO等查看) 设置 和关于

进程: 包括检测隐藏进程..对非系统进程进行表示...数字签名验证..可以在线查询进程信息..检测隐藏DLL和排除正常DLL等等
具体使用: 1 电脑中了病毒...但用一般进程管理器看不出什么特别进程...但用yas可以发现一个隐藏进程..隐藏进程我会用红色表示出来...把那红色的结束掉就可以了
2. 没发现隐藏进程,系统还是异常,这时候点右键,数字签名,比如看到userinit.exe没通过数字签名啊,但这个是系统的进程,那可能是被替换了,解决办法是去干净机器找个干净的替换掉
3 一个病毒用" 线程注入" 方式注入了explorer.Exe,那可能一般会比较难找,YAS在列DLL时排除了一些以知DLL,这样你可以很清楚的看到注入的DLL,或者不确定的..右键"百度查询"或者" 数字签名",如果确定是病毒DLL,可以把它卸载掉或者强制卸载.,但这中方式不支持使用,因为可能造成进程死掉,所以可以用右键""直接删除文件" 这样再重起就行了
4 如果你想列出一个进程的所有DLL,包括隐藏的,可以用" 显示所有DLL",这样的化如果有病毒使用ROOTKIT技术隐藏了DLL就会被YAS找出来
5 如果想看一个进程有多少个线程,也可以通过yas的进程管理器查看

文件管理: 可能大家会觉得yas的文件管理界面不是很友好,但其强大的内部功能不是一般文件管理器比拟的了的,底层的操作可以检测到许多的隐藏文件,强制删除很多顽固的文件...
1系统有一个病毒进程,依照路径就是找不到它的文件,那可能是使用rootkit技术把自己隐藏起来了,这时候用yas的文件管理就可以清楚的看到了.
2 想把病毒文件删掉,但老是删不掉,可能是病毒正在运行,这时候你使用 "强制结束" 就可以删除了,当然从删文件这一过程来说,可以防删的办法有很多,这个后面说明
3 我只想看EXE或者DLL文件,那可以点最下面的选择,这样YAS会自动过滤,
4 那么多文件...哪些是正常的...你可以用数字签名看看........但可能速度会比较慢,那些非数字签名的,可以 "百度查询" 看别人怎么说
5 文件被感染可以找出来吗,可以,但扫描可能扫不出来,这个时候你用 "PE文件信息" 就可以查到相关信息了,比如一个文件代码节内被注入了代码,或者添加了新节同时也会列出IAT相关函数方便查看.
6 一个病毒删不掉啊,一删就有,这个时候你应该试试yas的"破坏文件",再重起看看效果...
注册表管理: yas的注册表比较简单,提供的操作也比较少,但没关系,因为yas的注册表功能在检测隐藏注册表方面是非常出色的,当然稳定性差了点,但经过修改后基本稳定了,而且速度也比较块..有实时性,如果你用很多的注册表管理工具找不出什么东西出来,可以试试YAS的注册表,它可以让你看到最原始的注册表数据,发现异常后可以删除之,提供了REG文件导出,导出后你做下修改再导入就可以达到修改注册表的目的了,一般来说效果是不错的..

启动项管理: 用户可以发现可疑的自启动程序并关闭它。因为一般病毒的启动是通过修改注册表的,只要我们发现并删除,病毒自然就不能自己启动了,yas提供了常见的注册表启动项查看,比如你发现某个病毒的启动项,只要"跳转到注册表" 就可以利用regedit来操作了.

钩子检测: yas提供了多种类型的钩子检测.什么是钩子: 钩子就是修改系统正常执行流程的一段代码,通过改变系统执行流程来达到一些目的,比如隐藏文件,隐藏进程,防止进程结束等等. Yas 提供的钩子检测有 SSDT / SHADOW SSDT / IDT / 内核模块IAT/ 内核EAT/ FSD / IRP / 内练钩子...还有一般的用户态钩子,比如IAT/EAT 消息钩子...
SSDT:修改这个可以完成隐藏文件,隐藏进程,等操作,但现在一般的ROOTKIT用的少.原因是太显眼了,这个地方是杀软用的多,可以用来做实时监控或者主动防御系统
Shadow SSDT: 一般是跟界面窗口相关的,可能用的最多是保护自己的窗口或者做一些跟全局勾子有关的东东.
IDT:就是中断表, 一般可以用来完成one byte hook,抗调试,键盘记录,内存隐藏.如果发现异常可能是被ROOTKIT修改了
内核模块IAT:这个是查看内核驱动导入表情况的,比如一些杀软不会拦截你驱动加载,但可能会修改你的IAT,这样相关重要的函数一但调用就会跳到杀软的代码中了,这样可能组织你做一些相关的操作。比如结束进程,当然ROOTKIT也可以用这样的技术,还有比如FSD驱动的IAT中的MmFlushSection被HOOK了,这样你删除文件就删不了,当然还有其他办法组织删文件的,这里就不描述了.
内核EAT:这个巨有全局性。但实时性比较差,但对开机就hook的病毒来说,还是不错的选择,当然一些杀软也会采用相同的技术,一般是防火墙用的比较多.
FSD:文件系统驱动,如果你发现文件隐藏了.或者删不了.可能是FSD被HOOK了.这个时候用yas就可以查出来,当然yas这部分不是很稳定,有一些是显示错误的,但不要紧.
IRP: 这个自己网上查吧。。
内联钩子: 这个可能是所有HOOK中使用最多但又最不稳定的一中HOOK了,这中HOOK有什么功能取决于他HOOK的方式,比如NtTerminateProcess可以防止进程结束。。或者更深的函数,YAS检测INLINE是很强大的,当然目前还不知道未导出函数的检测,但检测的效果应该是不错的,Shadow ssdt部分可能有一些误报,自己判断下吧,很简单的.用户态钩子就不说了.

内核模块:一般的ROOTKIT是以一个驱动存在的。所以YAS列出了系统一些加载的驱动。你可以通过数字签名来判断一些可疑文件。如果不确定可以“百度查询”看别人怎么说。。。如果ROOTKIT采用了隐藏驱动。没关系。Yas可以检测的。。这里说个小技巧。可以通过yas的注册表管理查看服务键。也有一切相关信息

内核其他: 一些比较细小的东西就放在这里。。。比如notifyroutne,过滤驱动等.
行为监控:主要是监控进程创建和结束..当然也有注册表的,只是需要你在设置那里设置一下,这个功能是比较好的,特别是对那些喜欢玩病毒的人来说,还有提供了重起并监控,这样在开机中运行那些进程都会被记录下来
工具:提供了一些小工具啊,比如简单修复功能.SPI查看(一般木马也可以用这个来启动.当然一些防火墙也动了这个地方)..BHO查看(病毒一般利用这个来达到开IE就启动自己的目的)...服务查看(一般病毒是以服务启动的,这样的化可能就没有进程了...YAS对开机就启动的服务用红色表示)



声明与修正历史
Yas 是Sysnap 利用大三俩个多月的课余和部分课内时间完成的,由于最近忙着考试,时间比较匆忙.,应该说不会对Yas有什么更新了,感觉也没必要,只在自己机器测试了下. 但不排除有未知BUG或者跟其他内核工具的BUG,使用过程中有什么问题请自己负责,但欢迎把你指出BUG Sysnap2006@gmail.com

请记得YAS的支持版本
Microsoft Windows XP Professional Service Pack 3 (Build 2600)
Microsoft Windows XP Professional Service Pack 2 (Build 2600)
Microsoft Windows Server 2003 Enterprise Edition Service Pack 2 (Build 3790)
Microsoft Windows Server 2003 Enterprise Edition Service Pack 1 (Build 3790)
Microsoft Windows Server 2003 Enterprise Edition No Service Pack(Build 3790)

Sysnap 2008.12.14
修正历史
Yas 简单的修改...从设计界面和驱动大概花了一个多月时间,完善大概花了三个星期的零碎时间,BUG修改如下 V1.10到V1.22
1 修正进程在处理判断时的错误导致能进程被隐藏了
2 修改获取进程路径时可能发生的BSOD (不能确定状态)
3 修正在列举文件时目录过于大出现异常
4 添加文件只显示EXE,SYS,DLL
5 添加行为监控, 可以监控文件创建( 没有读写的) 文件删除, 注表关键控, 进程创建, 结束..DLL加载
6 添加程序只运行一个实例
7 添加强制重起
8 添加重起并监控 把开机过程中的一些启动信息记录下来
9 其他接口..没怎么测试..所以不公布...
10 关于改了下邮箱..原来的密码忘了只好用个新的..
11修正了FSD在某些版本显示不正常.当然修改后FAT还是有一些问题,但那些都不重要.
12添加一种检测隐藏内核模块的办法
13添加多2003某些操作系统的支持..Built 3790 SP0/SP1/SP2
14同时修改线程在这些操作系统版本上的不正确显示
15修正inline hook检测在2003 SP1/SP2失效..原因是原来的办法读内存失败
16修改内核扫描在2003上运行失败
17修正注册表的一些BUG
基本就这些了..但YAS还是有BUG的..比如在2003 SP1/SP2上可能读内核内存失败

当然还有其他BUG.....只是懒得修改了...


FAQ
1 为什么进程有的结束不了,比如像KV2009
虽然yas在结束进程方面早期是比较有时间处理的好点.基本能杀很多顽固进程.但终究是有一些东西没处理.也懒得处理.比如你hook KiInsertQueueApc, 修改kernelapcdisable或者在线程对象上做文章都可以防止被yas 杀掉..只是觉得进程没什么意义,杀不了就别杀了,反正还有其他办法,再下去就只是体力活了.

2 能在yas 下隐藏进程吗
理论上针对YAS 设计的缺陷是完全可以的.但还是有点难度,处理工作量太大,况且现在进程应该说没什么前途了.现在一般的高级ROOTKIT完全一个DLL和SYS就可以完成任务..所以YAS 的检测进程目前来说还是比较强大的

3 为什么没有杀线程功能
提供了查看功能,这个是后面才加上的.懒得添加杀线程,有时间补上,不过也不是必要的.而且也没有对System进程进行处理

4 yas 的DLL能检测到隐藏DLL吗
可以的,这部分也可能是yas 不稳定的一个地方,在后期本来想放弃该功能.但又觉得可惜..也懒得写额外的代码,所以还是保留了,基本隐藏DLL都逃不过yas
卸载DLL没什么特别处理,就是开个远程线程 free掉,所以使用时小心点,可能会造成进程卡嚓,没添加强制卸载,但似乎有点必要,有时间再加上

5 Yas 能检测到隐藏文件吗
这个当然是可以,只要磁盘能被yas 打开.
yas 早期是使用IRP来枚举文件...但在驱动程做这些东西显然显得比较繁琐..而且还有很多细节需要处理..但终究还是在FSD上做的东西..并不完美,yas 采用的是文件格式解析..目前来说检测隐藏文件还是不错的..只支持FAT32和NTFS...当然隐藏文件还是有很多办法的.YAS的读磁盘数据过于浅导致可能遭受攻击,但这不是技术问题..

6 YAS复制文件为什么在某些版本操作系统不能正常复制
这个问题是处理上出现问题..有待改进..但在XP SP2是比较正常的..本来是用来复制比较难复制的文件..比如操作的注册表文件(SAM ,SYSTEM)
后来没用到.但改功能还是保存

7 为什么YAS 的强制删除文件删除不了某些文件
很简单...虽然yas 可以结束正在运行的文件..但删文件还有很多没处理
a 比如病毒用句柄占用方式..yas 就删不了..不过你可以用yas 随带的closehandle关闭句柄再删
b 在FSD上hook IRP_MJ_SET_INFORMATION或者inline hook之..yas 也无法删除..并不是yas 没想到..只是处理上还有很多东西..实在没时间去仔细处理..而且也有其他办法
c iat hook ntfs.sys/fastfat.sys MmFlushImageSection...这样你再hook这个地方基本无效..一些东西就是这样保护自己不被删除,或者其他等等..比如hook ObReferenceObjectByName,办法是很多的....所以yas 没再处理..

8 可疑感染是干什么的
就是简单的判断一个文件是否被感染..里面的信息需要自己去判断

9 破坏文件是干什么用的
简单的说就是弥补"强制删除文件"的不足..但可能需要重起才能生效..注意用破坏文件的坏..破坏后是不可恢复的
不过破坏文件也有些东西没处理...任何针对其中的缺陷攻击是有效的

10 注册表怎么没什么操作功能啊
a yas 只是为了提供查看 隐藏注册表的..所以没怎么处理
b 懒.从安全角度来说操作注册不是简单的API就可以,所以干脆不处理..但提供了reg导出功能..你自己导出再修改再导入也可以完成注册表操作...效果还不错呢
总的来说 目前的隐藏注册表技术是躲不过Yas的

11 启动项
没什么好说.也懒得处理

12 钩子检测
检测的类型比较多...大家自己判断真伪...没有提供恢复钩子功能...但原始的地址其实都已经获取到了..只是没时间来得及处理..以后有时间再补上

13 内核模块
检测隐藏模块...但不一定是完全能检测.

[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

上传的附件:
收藏
免费 1
支持
分享
最新回复 (3)
雪    币: 168
活跃值: (152)
能力值: ( LV11,RANK:180 )
在线值:
发帖
回帖
粉丝
2
老工具了,嘿嘿,早在Sysnap的博客上下了用过,感觉不错,嘿嘿。
谢谢林老师推荐~
2009-8-16 19:42
0
雪    币: 492
活跃值: (53)
能力值: ( LV6,RANK:80 )
在线值:
发帖
回帖
粉丝
3
好工具,支持了
2010-1-15 10:25
0
雪    币: 10
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
支持下载试试
2010-6-4 15:08
0
游客
登录 | 注册 方可回帖
返回
//