邪恶八进制信息安全团队技术讨论组's Archiver

ljh1021 2007-10-6 19:25

[原创]写了一个反IceSword、SREng、Wsyscheck的东西

文章作者:ljh
信息来源:邪恶八进制信息安全团队([url]www.eviloctal.com[/url])

国庆期间写了这个反IceSword、SREng、Wsyscheck的东西。对于SReng和IceSword都是使用GetWindowLong来检测存在状态,然后发送关机消息来结束SREng,对于IceSword则是注册名为“IS1.22”的服务加载一个瞬间重启的驱动来Anti之。
请大家帮忙测试下,看有什么bug以及需要改进的地方。

hitlerboy 2007-10-8 10:19

一个小问题,有什么作用?

sunwear 2007-10-8 10:19

这个没必要加壳吧。
dump了下DLL文件。
ida 结果一目了然了
另外理论上来说是无法成功的
is 加载 是靠 NtLoadriver 加载的驱动名字是isdrv(版本号) 加载两次
如果失败的话就会随机生成了.注册表貌似也一样
再失败就会提示
而且你这个从原理上出发局限性就很大 假如用别的版本呢?何况哪个版本都无法组织is运行。
另外像rku 这些 装的时候名字都是随机的
看标题我还以为是能过ICESWORD的检测......我一直想看在ICE和RKU等ANTIRT工具下隐藏进程的...

PS:我没运行.
你的方法还不够聪明

l4bm0s 2007-10-8 12:33

不知道是我不会用你的这个工具还是你的工具有问题,先运行你的工具,IS照样可以打开,先运行IS,再运行你的工具,IS不被关闭,重复试了几次,电脑自动重启。。。

andds 2007-10-8 21:19

没什么实用价值.
关闭杀软或安全工具=自我暴露.

ljh1021 2007-10-9 22:02

[quote]引用第2楼sunwear于2007-10-08 10:19发表的 :
这个没必要加壳吧。
dump了下DLL文件。
ida 结果一目了然了
另外理论上来说是无法成功的
is 加载 是靠 NtLoadriver 加载的驱动名字是isdrv(版本号) 加载两次
.......[/quote]
谢谢这位大牛能花时间看我这个菜鸟写的东西。
我说的注册服务“IS1.22”并不是加载IceSword的驱动,加载的是我自己的驱动,释放在system32目录下,名字是IsDrvL22.sys。
检测IS的存在是用的GetWindowLong(),和服务无关,只要它有界面,就能检测到。
这位大牛貌似理解错了......
不是阻止IS,是发现IS之后自动重启。

ljh1021 2007-10-9 22:06

[quote]引用第3楼l4bm0s于2007-10-08 12:33发表的 :
不知道是我不会用你的这个工具还是你的工具有问题,先运行你的工具,IS照样可以打开,先运行IS,再运行你的工具,IS不被关闭,重复试了几次,电脑自动重启。。。[/quote]
没说要关闭IS,要的结果就是重启。
因为在驱动里我这样了 _asm {
                        mov eax,cr0
                        and eax,7fffffffh
                        mov cro,eax
                        }
至于要等2秒,可能是从不断的枚举窗口切换到加载驱动这个过程消耗的。

sunwear 2007-10-9 23:05

[quote]引用第5楼ljh1021于2007-10-09 22:02发表的 :

谢谢这位大牛能花时间看我这个菜鸟写的东西。
我说的注册服务“IS1.22”并不是加载IceSword的驱动,加载的是我自己的驱动,释放在system32目录下,名字是IsDrvL22.sys。
检测IS的存在是用的GetWindowLong(),和服务无关,只要它有界面,就能检测到。
这位大牛貌似理解错了......
.......[/quote]
我并没有看到有注册服务 以及system32下有驱动 icesword也在正确的运行.
只有一个cominit32.dll生成 注册表项也没见啥变动.
系统xpsp2
配件ssm 报告仅仅只有对explorer的修改 而file文件就是生成了个dll
注册表并问见任何服务相关键值创建.

DLL就是我上面上传的那个.

l4bm0s 2007-10-10 11:21

[quote]引用第6楼ljh1021于2007-10-09 22:06发表的 :

没说要关闭IS,要的结果就是重启。
因为在驱动里我这样了 _asm {
                        mov eax,cr0
                        and eax,7fffffffh
.......[/quote]

个人认为,无论是关闭IS或者重启计算机都是不保险的,真正要做到的是“隐藏”。
另外:
[attach]7572[/attach]
[url]http://us.mcafee.com/virusInfo/default.asp?id=description&virus_k=136317[/url]

楼主能解释一下这个吗?

ljh1021 2007-10-10 12:09

[quote]引用第8楼l4bm0s于2007-10-10 11:21发表的 :


个人认为,无论是关闭IS或者重启计算机都是不保险的,真正要做到的是“隐藏”。
另外:
[attach]11480[/attach]
.......[/quote]
这个可能是注入explorer.exe的时候被拦截了,因为我用了CreateRemoteThread()这个API。
至于那个驱动文件嘛,作用就是重启系统。名字叫IsDrvL22.sys是为了掩人耳目。

l4bm0s 2007-10-10 12:11

用IDA对楼主的IsDrvL22.sys进行反汇编,发现貌似楼主在驱动里就调用了DbgPrint函数以及打印了一句"Hello World!\n",不知道楼主能否透露一下在驱动里如何能只调用一个DbgPrint函数就做到瞬间重启计算机的原理呢?

补充一下,刚才说错了,驱动里还调用了KeTickCount这个函数。不过我在DDK上没查到它的用法,所以错误的认为驱动里就只调用了DbgPrint。刚才在百度上搜了下,找到了这么一点有关这个KeTickCount函数的信息:

因为KeTickCount是进程的一个时间计数,所以无法预测

不过看来,它跟重启计算机好像没什么关系。。。

ljh1021 2007-10-10 12:14

至于真正要做到的是“隐藏”这一点,我相当赞同,但身为菜鸟,只能做到阻止IS起作用了。
我的做法虽然不算聪明,但还是比“熊猫”好点。

ljh1021 2007-10-12 18:35

[quote]引用第10楼l4bm0s于2007-10-10 12:11发表的 :
用IDA对楼主的IsDrvL22.sys进行反汇编,发现貌似楼主在驱动里就调用了DbgPrint函数以及打印了一句"Hello World!n",不知道楼主能否透露一下在驱动里如何能只调用一个DbgPrint函数就做到瞬间重启计算机的原理呢?

补充一下,刚才说错了,驱动里还调用了KeTickCount这个函数。不过我在DDK上没查到它的用法,所以错误的认为驱动里就只调用了DbgPrint。刚才在百度上搜了下,找到了这么一点有关这个KeTickCount函数的信息:

因为KeTickCount是进程的一个时间计数,所以无法预测
.......[/quote]
重启是因为这段代码  _asm {
                       mov eax,cr0
                       and eax,7fffffffh
                       mov cro,eax
                       }

作用是禁用Windows内存分页机制,禁用之后不做处理的话肯定会重启或者BSOD的。

l4bm0s 2007-10-15 12:30

[quote]引用第12楼ljh1021于2007-10-12 18:35发表的 :

重启是因为这段代码  _asm {
                       mov eax,cr0
                       and eax,7fffffffh
                       mov cro,eax
.......[/quote]

原来是这样,谢谢楼主指点,刚开始是没看到楼主调用相关的内核函数,所以才错误的认为楼主的驱动并没有实现重启动能。我汇编学得不好,看来真的要找个时间好好学习一下汇编才行;)

asm 2007-10-15 15:46

貌似IS是通过ZwLoadDriver来加载驱动的吧.......

说个范围大一点的东东,貌似只要抢先在IS之前加载自己的驱动,那么能做的事情就很多了

l4bm0s 2007-10-16 20:00

[quote]引用第14楼asm于2007-10-15 15:46发表的 :
貌似IS是通过ZwLoadDriver来加载驱动的吧.......

说个范围大一点的东东,貌似只要抢先在IS之前加载自己的驱动,那么能做的事情就很多了[/quote]

感觉就算在IS加载它的驱动之前加载自己的驱动好像作用也不大,除非你不让IS运行,不然现在一般的rootkit隐藏技术都逃不过IS的眼睛了。当然未公开的隐藏技术例外,但如果你有IS都检测不到的隐藏技术的话,你就不需要抢先在IS之前加载自己的驱动了,再者,一般都是管理员在发现系统不对劲的时候才运行IS检测的,也就是说这IS运行以前就可能有驱动被加载了,所以抢先加载自己的驱动不是主要,看你加载什么样的驱动才是最重要的。

而你抢先在IS之前加载驱动,然后通过某些方法,比如HOOK SSDT,替换ZwLoadDriver不让IS加载驱动,这一般都会引起管理员注意,那几乎就是自取灭亡~

所以最保险的还是“隐藏”。

ljh1021 2007-10-16 22:42

[quote]引用第15楼l4bm0s于2007-10-16 20:00发表的 :


感觉就算在IS加载它的驱动之前加载自己的驱动好像作用也不大,除非你不让IS运行,不然现在一般的rootkit隐藏技术都逃不过IS的眼睛了。当然未公开的隐藏技术例外,但如果你有IS都检测不到的隐藏技术的话,你就不需要抢先在IS之前加载自己的驱动了,再者,一般都是管理员在发现系统不对劲的时候才运行IS检测的,也就是说这IS运行以前就可能有驱动被加载了,所以抢先加载自己的驱动不是主要,看你加载什么样的驱动才是最重要的。

而你抢先在IS之前加载驱动,然后通过某些方法,比如HOOK SSDT,替换ZwLoadDriver不让IS加载驱动,这一般都会引起管理员注意,那几乎就是自取灭亡~
.......[/quote]
不同意楼上的。
现在IS大部分人都是用作一个强力版的“任务管理器”和文件强删器,用来对付各种流行病毒和普通木马,一般很少用来AntiRootkit。至于AntiRootkit的话,Rku和gmer以及blacklight 、 rootkit revealer
都比它好用,真正powerful的filereg又有几个人用呢?

l4bm0s 2007-10-17 11:22

[quote]引用第16楼ljh1021于2007-10-16 22:42发表的 :

不同意楼上的。
现在IS大部分人都是用作一个强力版的“任务管理器”和文件强删器,用来对付各种流行病毒和普通木马,一般很少用来AntiRootkit。至于AntiRootkit的话,Rku和gmer以及blacklight 、 rootkit revealer
都比它好用,真正powerful的filereg又有几个人用呢?[/quote]

说句不成熟的话,楼主小看IS了。

vxk 2007-10-17 12:13

[s:268] 哈哈~还以为出现了新型隐藏了~

ljh1021 2007-10-17 13:08

嗯 说实话 AntiRootkit它确实不如Rku,但是呢,
IceSword是一个比较XX的Kernel Debugger,体积仅仅700KB,即插即用,支持对其它进程的反汇编.(KeAttachProcess).缺点是不能加载符号,也不能设断点等SI和WINDBG的功能. ——Aegisys语

wrbcn 2007-10-21 22:16

其实可以采取检测IS窗体的办法,而不需要HOOK满天飞

SSDT HOOK,古老的东西,拦截ZwLoadDrv?呵呵,岂不是成了主防?

检测IS窗体是不错的选择

Aegisys 2008-3-22 20:34

IceSword 已经N久不更新了,PJF的新技术没有体现罢了,估计他的新作一出来又得让N多人研究半天.
作为ARK的先驱,几年前IS几乎是法宝,现在那个时代已经过去了....怀念中....

Aegisys 2008-3-22 20:35

什么检测呀,什么钻空子呀,只能算暴力,不能算技术.有技术直接BYPASS

icexiaoye 2008-3-22 21:18

[quote]原帖由 [i]l4bm0s[/i] 于 2007-10-8 12:33 发表 [url=http://forum.eviloctal.com/redirect.php?goto=findpost&pid=101641&ptid=30894][img]images/common/back.gif[/img][/url]
不知道是我不会用你的这个工具还是你的工具有问题,先运行你的工具,IS照样可以打开,先运行IS,再运行你的工具,IS不被关闭,重复试了几次,电脑自动重启。。。 ... [/quote]

- -!你也太逗了吧

页: [1]
© 1999-2008 EvilOctal Security Team