首页
社区
课程
招聘
[旧帖] [讨论]木马的源码免杀 0.00雪花
发表于: 2011-7-28 21:44 4069

[旧帖] [讨论]木马的源码免杀 0.00雪花

2011-7-28 21:44
4069
说起木马的源码级免杀,本人知之甚少,动态获取某些敏感API的地址,也就是重命名了下。。。
不知道说的对不对,不全或者不对,求补充或更正,万分感谢。。。

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

收藏
免费 0
支持
分享
最新回复 (39)
雪    币: 1015
活跃值: (235)
能力值: ( LV12,RANK:440 )
在线值:
发帖
回帖
粉丝
2
楼主的头像很赞!
2011-7-28 22:24
0
雪    币: 7
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
版主回复貌似跑题了啊
2011-7-29 19:34
0
雪    币: 1015
活跃值: (235)
能力值: ( LV12,RANK:440 )
在线值:
发帖
回帖
粉丝
4
哈哈,免杀没来得及多接触。不了解所以不敢乱言,反病毒的方式有很多种,不过楼主所说的那种方式对于基于行为监测的防病毒手段应该没有用吧
我觉得楼主这张图片可换成段奕宏戴着墨镜的
2011-7-29 20:27
0
雪    币: 7
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
那个是不是给一些敏感的api赋权值,当达到阀值就报警?
2011-7-29 21:06
0
雪    币: 519
活跃值: (13)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
继续啊,两位
2011-7-29 21:17
0
雪    币: 1015
活跃值: (235)
能力值: ( LV12,RANK:440 )
在线值:
发帖
回帖
粉丝
7
应该是这样的,话说这个包含了概率,离散的数学知识在里面。不过米有来得急深入的学习。从学长那里了解到现在最恼火的应该是基础虚拟机的行为监测分析。据说非常"恶心"。
2011-7-29 21:57
0
雪    币: 7
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
是不是卡巴呢,卡巴就是用的虚拟机技术  很牛X。。。但不知道什么原理  求解释
2011-7-29 22:10
0
雪    币: 1015
活跃值: (235)
能力值: ( LV12,RANK:440 )
在线值:
发帖
回帖
粉丝
9
我也不清楚,但是不是卡巴,是在一个虚拟环境下解释反汇编指令,模拟程序行为来判断是否为恶意程序 据学长说那款很恶心,过不了,是国外的什么我记不清楚了。
2011-7-30 09:06
0
雪    币: 0
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
对源代码的免杀难易度取决于代码量与编程水平。一般情况下在免杀启发式与主动防御的同时,表面免杀不知不觉也就做了,因此,我只讨论启发式与主动防御的过法。   对于启发式,我们有两种免杀法:第一,是函数修改法,杀毒软件一般将多个组合函数设为木马行为特征,但我们需要通过特征码定位来确定函数组合,麻烦费时;第二,就是检查虚拟机法。所谓启发式,就是将软件放在虚拟机里运行一遍,看是否有高危动作。我们只需软件检查是否在虚拟机中就行了。如果在,退出运行,反之,继续运行。检查虚拟机的方法网上遍地是,我就不多说了…手机回复,打字累…   下面,再来说说过主动防御。杀毒软件对几个木马常用api进行hook,当有程序调用是,将其视为木马并处理。由于杀软hook的函数木马要用的就那么几个,因此免杀比较容易。方法一,我们应首先找到被杀软hook的函数,可对其进行动态加载。我们也可自己编个函数实现其功能并替换之。  第二,当然就是恢复ssdt了,看雪上很多这种帖子,去看看吧。         由于源代码开源,还有些杀软对软件架构进行特征查杀,这就需要破坏软件原有架构了。一个简单做法就是把每个功能模板做成dll,在主程序中调用,就可免杀。     对源码免杀,需要你彻底读懂软件源码,需要有耐心才行。当然前提条件就是对编程语言有着深厚的了解,汇编和c++是必须会的,驱动编程也尽量懂一点。   最后,希望楼主免杀成功,鄙人不才,在此献丑了
2011-7-30 15:24
0
雪    币: 1015
活跃值: (235)
能力值: ( LV12,RANK:440 )
在线值:
发帖
回帖
粉丝
11
谢谢楼上的讲授,学习了,希望自己能够尽快实践
2011-7-30 15:38
0
雪    币: 7
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
听了楼上所讲,受益匪浅。但还是有挺多地方不是很明白啊,望不吝指教啊
如:检查虚拟机法,我们检测到了软件在虚拟机中运行,退出运行,这个退出怎么理解呢?
在恢复系统服务描述符表时,这个动作是不是也会是敏感行为而被阻止啊?
最后就是源码免杀,楼上说的有点笼统了,我没太理解,望可以举个例子说就更好啦,,,
2011-7-30 19:49
0
雪    币: 12
活跃值: (767)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13
对于启发式扫描:
1:)判断运行环境
2:)使用HASH值代替API名字
3:)使用重映射引入的API
2011-7-30 20:35
0
雪    币: 12
活跃值: (767)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
14
过主防,我觉得最佳的方法还是需找AV的漏洞
2011-7-30 20:36
0
雪    币: 7
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
15
判断运行环境 然后呢?
为什么一定要用HASH呢啊?用别的不行啊?
第三个不是很明白啊
哈哈  求楼上详解啊 谢谢昂
2011-7-30 20:45
0
雪    币: 7
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
16
相对虚拟地址的漏洞?怎么回事?
2011-7-30 20:46
0
雪    币: 0
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
17
杀毒软件的启发式是这样工作的:当程序被执行时,先在虚拟机中运行,检查是否有高危行为,若有,则为病毒,退出虚拟机,并停止执行,进行相应杀毒处理;若无,则在退出虚拟机时,继续运行程序。因此,当我们检测到虚拟机时,停止运行程序,也就自然不会运行我们的“高危代码”,杀毒软件也就检测不出我们的木马,使之认为其为正常软件;当退出虚拟机时,杀毒软件使我们的木马继续执行,我们也就绕过了启发式杀毒了。
2011-7-30 21:53
0
雪    币: 2
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
18
以前也做过一段时间免杀,但没各位的高级,普通的木马免杀,后来发现免杀是个力气活,很折腾人,决于放弃
2011-7-30 22:31
0
雪    币: 7
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
19
那程序不运行的话,杀毒软件是不会去将程序放到虚拟机中检测的啊。当然这里有个先后的问题,我们的程序先运行了检测虚拟机的代码,发现就结束程序,那退出后怎么再次启动啊
2011-7-30 23:27
0
雪    币: 0
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
20
可能是我说的不详细。当我们的程序在真实环境运行时,杀毒软件会使其暂停运行,也就是把进程挂起,然后复制程序到虚拟机运行,这时我们的这个程序副本运行在虚拟环境,然后,我们的程序检测出虚拟机的存在,立刻退出程序,也就不会运行接下来的高危语句了,杀毒软件就将我们的程序视为安全程序,在退出虚拟机时,将那个在真实环境挂起的程序继续执行。也就是说,杀毒软件将一个程序挂起,在检测出是正常程序时,杀毒软件必须保证这个程序继续执行,这完全不是我们要管的事,杀毒软件帮我们做了
2011-7-31 08:21
0
雪    币: 0
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
21
还有就是,在真实环境中运行的程序,如果没出错的话,永远检测不出自己在虚拟环境,也就不会结束运行。只有检测出在虚拟机中,才会结束运行。在现实环境和在虚拟环境运行的程序,不是一个程序,是两个相同的程序,虚拟机中的那个,最终结束运行,杀软会让真实环境的那个暂停运行的程序继续执行
2011-7-31 08:31
0
雪    币: 7
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
22
谢谢啊  彻底明白了!受益匪浅。。。
2011-7-31 12:21
0
雪    币: 7
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
23
楼上是否可以再给讲讲关于源码免杀啊。。谢谢
2011-7-31 12:49
0
雪    币: 0
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
24
免杀的步骤是这样的:启发式>主动防御>表面      过启发式可用虚拟机,过主动防御也不难,现在主动防御一般是组合函数式,就是说杀软将特定的函数组合设为危险行为,比如说下载者常用的组合:urldownloadtofile + winexec,如果程序先后执行此函数,将被视为下载者。我们可以做点小动作,在两个函数之间再放几个函数,做点其他无关紧要的事,这样就可以骗过主动防御了。还有,就是我们大可以让下载后的程序重启后运行。总之,就是将函数组合想方设法将其分开。      当遇到单个函数的查杀方式时,可以动态调用函数,也可以自己做个函数实现同样的功能,并替换。很久前,一位大牛曾提出过一种做法,就是将被hook函数所在dll从没被hook过的电脑上复制下来放在木马中,并让木马调用自己的dll这样一来,杀软hook的函数和木马调用的函数根本不来自同个dll,杀软的hook当然就无用武之地了。       方法很多,一些新颖的方法不一定出自高手,相反,却经常出自新手。关键是多动脑子,只要敢想,不怕不会实现。
2011-7-31 13:28
0
雪    币: 27
活跃值: (45)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
25
Load
getproc
2011-7-31 13:32
0
游客
登录 | 注册 方可回帖
返回
//