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

hellfish 2007-3-28 02:58

[原创]这里人比较多 一个我写的加壳软件 脱了请告诉我

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

被我发现有用这个做免杀的话,哼哼,别指望有后续版本了。

强度简单介绍:
OD无法附加,ICE 会出错。OD直接运行会很有趣。各位多试试吧
至于恢复SSDT什么的,如果驱动被搞。系统会蓝,如果SSDT被恢复,进程无法运行
SDK - 恩,这个版本没带必须的 dcu obj ,不能用的。有需要可以联系我

真实名称 ZwCreateProcessEx 所有的WINNT程序都是由这个函数创建
驱动提供 RealCreate 绕过所有检查直接启动程序,并让程序以SYSTEM权限运行

真实名称 ZwOpenProcess 打开进程获得操作句柄
驱动提供 RealOpen 绕过所有检查打开进程,比如什么防外挂。反木马,杀毒软件之流
用RealOpen打开的handle也不会被检查到

真实名称 ZwWriteVirtualMemory 未公开的内核函数,写任何进程内存
驱动提供 RealWrite

真实名称 ZwReadVirtualMemory 未公开的内核函数,读任何进程内存
驱动提供 RealRead

真实名称 ZwQueryVirtualMemory 查询内存状态
驱动提供 RealQuery

真实名称 ZwProtectVirtualMemory 修改内存状态
驱动提供 RealProtect

真实名称 ZwQuerySystemInformation 查询任何信息,服务,驱动,线程,句柄,钩子,等
驱动提供 RealQuerySys

驱动特别提供 GetFunctionAddr 取得 Zwxxx 的内核函数的真实地址,饶开SSDT干扰
[attach]10066[/attach]
[attach]10067[/attach]

mgf 2007-3-29 20:13

还没有空试,不过看样子是个强壳,强得有点不像壳了,呵呵

asm 2007-3-29 20:23

[s:266]

用这样的技术来写壳,未免大材小用了

问个问题:很多内核级的函数都是通过加载dll,获取其地址的方式来调用的,用户模式下没有这样的函数吗?比如NtCreateProcess:

szNtCreateProcess db "NtCreateProcess",0
szFileName db "test.exe"
.
.
invoke LoadLibrary,addr szNtdll
mov hDll,eax
invoke GetProcAddress,hDll,addr szNtCreateProcess
mov edx,eax
push 0
push 0
push hMap
push 0
push hSys
push 0
push PROCESS_ALL_ACCESS
push offset FileName
call edx

qsg1982 2007-3-29 21:54

无敌加壳~~
偶ODBG了下
10064CA2  8C7A BD     mov word ptr ds:[edx-43],seg>; 不明确的段位寄存器

~~
问下楼主
是因为程序程序入口点在CODE外部吗~~~
谢了~~

hellfish 2007-3-29 22:33

呃,有新版本了 1.02 在 hellfish.ys168.com 有下

比较大的区别是 1.02 已经没有了导入表,也就是说壳是没有IAT的

另外,此壳已在 unpack 发布,也被脱了,那里有我写的一些东西

就懒的再转了,1.03 筹备中

新特性如下

1. 驱动的兼容性与稳定
2. 会在 LZO NRV UCL 中重新选一个作为压缩部分。
3. 会象morphine学习,把壳部分变形
4. 驱动尝试加入ANTI-DEBUG,恩...如果兼容没问题的话
5. 98是肯定不会去支持了,V尽量吧. 也许要装两个版本的驱动呢
6. 让驱动支持双核
7. 第二层保护壳的KEY不再是明文了
8. 最重要的,把被保护PE的导入表抹掉,填加一个区段改成搜索式。搜索的HASH保存在壳中

hellfish 2007-3-29 22:40

[quote]引用第3楼asm于2007-03-29 20:23发表的 :
[s:266]

用这样的技术来写壳,未免大材小用了

问个问题:很多内核级的函数都是通过加载dll,获取其地址的方式来调用的,用户模式下没有这样的函数吗?比如NtCreateProcess:
.......[/quote]

错误:

1. 内核级的函数都是通过IDT表调用,而非DLL或者其他
2. 用户模式下的 Zw系列函数都只是通过NTDLL而已,只是名字与使用方法一样,其本质完全不同

hellfish 2007-3-29 22:43

转 unpacker 我自己的回复

恩,我下来看了 .02packer 和我一样是用了 ALib 来压缩,至于说模仿或者其他,也许你可以看看 1.02 的压缩壳头部代码

PolyBox 使用的是 aphex 的Memrun单元,lh5 的压缩。 而我的MemRun单元,可以见 [url]http://www.2ccc.com/article.asp?articleid=3228[/url]

不过就像我前面说的,这个壳的保护全来自驱动,脱离了驱动的保护就仅仅是个压缩壳而已,此外 APHEX 的MEMRUN单元无法运行非标准PE文件

而目前的 1.01 1.02 也有一样的问题. 问题出现在分配内存的时候目标进程没有足够容纳的空间,

又或者某些加壳程序以及编译器把 PE 头中的 ImageSize 填成了 0 ,这个问题 1.03 会解决的

PS: 我乃我自己. 至于小零,是说Anskya吗? 如果是,那么我要说在把APHEX或者其他人的代码使用在自己的工程发布代码时至少保留别人的注释吧

P.S.S: 个人不喜欢 鉴定完毕 这样的词语,恩....这样说感觉和已经盖棺了差不多

P.S.S.S: 恩...要抄袭的话, 至少 morphine 是个更好的对象,对吗?

hellfish 2007-3-29 22:44

转UNPACKE我自己的回复

原帖由 海风月影 于 2007-3-29 14:10 发表
驱动确实用到了,hook了ZwOpenProcess等函数
奇怪的是没有用ring0来anti-debug,仅仅是隐藏进程,隐藏端口
说用隐藏进程来anti-dump不准确,在WriteProcessMemory时dump出来的就是完整的
难道专为木马服务的?
理解的不错

hook ZwOpenProcess 以及一系列对进程操作的IDT就是为了保护进程不被DUMP,不被OD等调试器附加

这次问题的关键在于驱动并没有在WriteProcessMemory之前生效,以至于实际上没有完成保护的作用

第一层的壳的原理和很多的压缩壳都一样,比较不同的只是 1.02 的壳用了搜索API,实际上没有任何的导入表

这点到和SHELLCODE一样了。看来要解决驱动在WriteProcessMemory之后才有作用的问题。

至于ring0来anti-debug,实在已经被用的很烂,个人觉得作用不大.即使强如 TM 的驱动,也一样可以利用驱动直接调用

真实的API来解决。我的这个驱动检查了两个链表来查看是否被 ReadProcessMemory 以及 OpenProcess

也检查了 CreateProcexxEx 来检查是否被其他驱动在运行前被RING0注入了SHELLCODE.

可惜的是一个加载次序问题导致那么容易就被DUMP,驱动真是无法瞑目啊

这个壳全靠驱动,至于第一层的壳,1.01 之前的完全可以当是个压缩壳

恩恩..希望1.03尽快出炉吧

xyzreg 2007-3-29 23:29

[b]今天真热闹,我也来凑个热闹,发个我以前写的一个东西的截图,呵呵:[/b]

[attach]880[/attach]

hellfish 2007-3-29 23:40

[quote]引用第9楼xyzreg于2007-03-29 23:29发表的 :
[b]今天真热闹,我也来凑个热闹,发个我以前给朋友写的一个东西的截图,呵呵:[/b][/quote]

现在不比以前,有三个关键

1. HOOK时的IDT是否能依靠驱动本身取得原值,如果不是,在现在的杀毒软件下没有作用

2. SSDT被恢复是否能检查到并自动重新HOOK

3. 是否对链表有处理,如果没有,那仅仅能在进程管理器什么的底下隐藏

这些是现在做ROOTKIT的关键,当然还有如何逃过杀毒,就像FISHPE,目前的驱动依然无法逃过NOD32的虚拟机

xyzreg 2007-3-29 23:55

[quote]引用第10楼hellfish于2007-03-29 23:40发表的 :
现在不比以前,有三个关键

1. HOOK时的IDT是否能依靠驱动本身取得原值,如果不是,在现在的杀毒软件下没有作用

2. SSDT被恢复是否能检查到并自动重新HOOK

3. 是否对链表有处理,如果没有,那仅仅能在进程管理器什么的底下隐藏

这些是现在做ROOTKIT的关键,当然还有如何逃过杀毒,就像FISHPE,目前的驱动依然无法逃过NOD32的虚拟机
[/quote]
[b]
我的这个对现有的杀毒软件仍然有效,包括卡巴6。

如果仅是做rootkit的话则没必要恢复SSDT,深度Inline hook效果要好得多。再说了,如果仅仅是hook ssdt 来隐藏注册表、进程、文件之类的话那只是停留在2001年的主流水平,连IceSword都过不了~

过NOD32启发式杀毒容易,比如你可以用MmGetSystemRoutineAddress……,呵呵~[/b]

hellfish 2007-3-30 04:22

过NOD32的是有办法,可是作为一个壳,兼容性也是必须考虑的。

而且所用的方式不能太像病毒或者ROOTKI.

不然的话很多办法可以避免被脱壳。

可惜的是FISHPE做的是个壳,很多办法是不能去用的

l0pht 2007-3-30 05:15

顶!可以去掉图标检查吗?不是所有程序都有图标或都要图标的。

icexiaoye 2007-3-30 10:03

[s:270] 在网吧想试试
结果~~一打开~~电脑就重起了
狂郁闷~~
还是回去后拨皮吧~~
p.s问下
那个卸在蓝屏驱动是干吗的啊

网络幽灵 2007-3-30 10:26

下下来运行,C:\Windows\system32\下的fishpe.sys被买咖啡Kill掉了!

l0pht 2007-3-30 14:02

买咖啡真是变态的杀毒软件,而且还停不掉,你一停它很快又启动了。

l0pht 2007-3-30 14:34

[quote]引用第16楼ttfct于2007-03-30 13:15发表的 :
病毒库更新这么快?[/quote]

国内的黑客网站都被杀毒公司监视了,你一发表作品马上就被盯上了。

vfer 2007-3-30 20:48

说实在的 这个根本就是个ROOTKIT嘛

caiker 2007-3-31 10:36

这么多牛人都在,问个题外话,看什么方面的书能学到这种驱动知识?请高手推荐下驱动学习技巧,怎么感觉驱动是如此神秘,充满好奇,似乎还有点恐怖,就是不知道如何去学

ldwz 2007-3-31 13:41

反 Rookits 技术已启用。
已扫描磁盘、文件夹和文件: D:\软件\arp欺骗\huigezi-heifang\H_Client.exe
D:\软件\arp欺骗\huigezi-heifang\H_Client.exe - 未知的 NewHeur_PE 病毒 [7]

只是测试..过不了 NOD

cncxz 2007-3-31 13:54

[quote]引用第15楼网络幽灵于2007-03-30 10:26发表的 :
下下来运行,C:Windows\system32下的fishpe.sys被买咖啡Kill掉了![/quote]
McAfee下病毒报的是new roorkit..在程序运行是释放到C:Windows\system32里的fishpe.sys会报,当开始保护时,释放到TEMP文件夹的随机命名文件也被报new rootkit....但是被保护后的EXE文件不报毒..

fleshwound 2007-3-31 21:18

[url]http://www.whitecell.org/article.php[/url]
驱动壳编写总结
Author: PolyMeta

hellfish 2007-3-31 22:51

感谢感谢,这个文章讲述的是如何写驱动壳,也就是如何给.sys文件加壳也......

暂时我只想做PE壳....

而驱动壳....这个这个...驱动本身就稍有差池就的BSOD。给这样的东西加壳实在是....

PS:

楼上签名说的真对。

研究XX安全的人越多,XX就越不安全。

好象唯一例外的就是人与人之间的XX安全,可是好象在有人研究XX安全前没有爱X病。呃.....

xyzreg 2007-4-1 00:20

[quote]引用第25楼fleshwound于2007-03-31 21:18发表的 :
[url]http://www.whitecell.org/article.php[/url]
驱动壳编写总结
Author: PolyMeta[/quote]
[b]呵呵,两把事~  鱼片兄这篇讲的是如何给驱动加壳,并不是运用驱动技术写加壳工具……[/b]

fleshwound 2007-4-1 08:33

楼主给出的保护机制确实强悍,但这并非是真正的壳,应该是一种特殊的软件保护机制而已,用驱动写加壳工具跟加壳同样是两码事。

hellfish 2007-4-1 08:43

这个可是非常标准的壳啊,只不过用了驱动来保护而已.

如果你不钩加载驱动,那么这个就是个非常标准的压缩壳,虽然压缩比不怎么样

十四郎 2007-4-2 23:02

我用这个东西加密个服务端
服务端运行不了

hack999 2007-4-5 09:02

在我电脑上根本不能运行!奇怪!卡巴一直在报毒,关了,重新下了一个,还是不能运行!愁人!

formatd 2007-4-5 18:56

楼上的,不是这个加壳程序的问题,是因为你装了卡巴,并且这个东西你又下回来放在了卡巴保护区域的文件夹内,把这个文件夹的保护去掉,就可以运行
其他黑软你放在卡巴保护范围的文件夹内一样运行不了,会报错
最快的方法:在卡巴文件反病毒设置那里点自定义,保护范围那里,建个新文件夹,把黑软丢进去,去掉卡巴保护

fleshwound 2007-4-6 10:46

楼上的能脱吗?欢迎帖出来,不知道用的是什么神兵利器,如果这里不行,可以贴到smatrix

hellfish 2007-4-12 04:21

[quote]引用第33楼fleshwound于2007-04-06 10:46发表的 :
楼上的能脱吗?欢迎帖出来,不知道用的是什么神兵利器,如果这里不行,可以贴到smatrix[/quote]


天啊,这个版本的脱壳方法请见我第一页自己的回复

这个版本存在重大漏洞,OD脱之轻易的很

dayang1718 2007-4-12 06:34

经测试不管用他加壳什么程序后的程序都会被咔吧报毒,看样不能用了

tianc001 2007-4-28 13:21

[quote]引用第14楼网络幽灵于2007-03-30 10:26发表的 :
下下来运行,C:Windowssystem32下的fishpe.sys被买咖啡Kill掉了![/quote]
的确是一款不错的杀毒软件哦``.我的网管朋友什么不用就用麦咖啡

vxk 2007-4-28 16:00

呵呵,hook还是hook,算了,现在人的层次提升不上来主要就是
hook玩的太多~~真正的壳光靠VM就玩死你~

无双坏坏 2007-4-29 11:24

楼上的够狠,谁那么变态写个VM的,脱的人就更加变态
上次在IRC还说到这个东西,实在是 [s:267]

vxk 2007-4-29 11:29

很多人写自己的私壳用一部分VM

无双坏坏 2007-4-29 12:00

代码VM,OEP也VM,然后用其他壳,估计能玩死一大票人,如果再加上注册的核心VM驱动那就
[s:270]

ZV 2007-6-11 13:56

今天才看到,看到了就顺便脱脱看..感觉程序的保护做的还行,至于外壳...弱了点,只能算入门级壳了.

/*
fishpe1.01 od脱壳脚本.
by ZV(zvrop_at_163_dot_com)

dump出的程序请用loadpe重建一下.
*/
data:
  var temp
  var dbase
  var tempsize
  var pbuff
code:
  gpa "CreateProcessA","kernel32.dll"
  bphws $RESULT,"x"
  run
  bphwc $RESULT
  rtu
  gpa "WriteProcessMemory","kernel32.dll"
  bphws $RESULT,"x"
  run
  bphwc $RESULT
  mov temp,esp
  add temp,8
  mov dbase,[temp]
  add temp,4
  mov pbuff,[temp]
  add temp,4
  mov tempsize,[temp]
  rtu
  dm pbuff,tempsize,"dump_fishPE.exe"
  MSG "dumpfile => dump_fishPE.exe "
  ret

ZV 2007-6-11 15:40

to无双,vm的壳不是最强的,虽然现在是比较流行,不过vm慢慢分析还是可以分析出来的.就我脱过的两个vm壳themida和vmprotect来看.不是很难.
现在最bt的是vm+多态引擎+乱序+无效指令(不是花指令),这些一起朝你招呼,绝对把你累脱力.我前一阵脱的一个themida加的软件后就是用这些,迫不得已后来写了个解码器用程序解决.光光写这个解码器前后就花了我一个月时间.

sunyy 2007-6-12 10:26

加了这个壳之后不稳定``
上兴第一次运行可以上线` 重启之后就上不了``

lastgirls 2007-8-8 02:51

兄弟 被卡巴报毒了

caiker 2007-8-16 14:08

我晕,怎么搞的,为什么我用冰刃1.20都无法结束这个东西加了壳的进程?fishpe.sys是如何实现的,这么牛B?
PS:用的是你的1.7那个版本

博° 2007-9-18 19:52

都是强人!

炫o逍遥o 2007-9-19 13:48

很强悍的样子...
下来试试.

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