00:01
啊,那么今天呢,我们继续来讲咱们这个课啊,然后今天呢,还是来讲一节课,这这个免杀,呃,今天这个免杀呢,和是在昨天的基础上做的啊,昨天咱们不是做了一个那个地狱门嘛,地狱门那个调那个调用嘛,那个这个我们昨天也说过了啊,就是在做这个东西的时候,我们也可以看到我们这个东西实际上是落地就杀的,为什么呢?主要原因呢,其实不是在于地狱门,而是在于这个3CODE的,嗯,正常情况下你像是比较常用的这个生成工具啊,你像是CS或者说MSF这种东西生成的这个c code的啊,它其实是特征比较大的,就是说因为你知道的这种加code的啊,其实其他人也知道啊,就算你在里头改了几个这个类似于IP之类的参数,其实不影响什么,因为他这个东西啊,实际上而言呢,是在这个公开情况下的啊,大家都知道有这么一个赛code的啊,那么我既然作为一个安全厂商知道了有这么一个code的,而我又大概知道。
01:01
你想干什么,我肯定会去杀你啊,这个是应该的啊,他这是他作为一个安全厂商的职责,但是你作为一个这个安全从业人员啊,你就不能让他这么轻松的把你弄死,对不对啊,那所以说呢,对于cell code的处理呢,也是一个比较大的一个方向啊,那我们现在呢,使用的方式呢,比较简单啊,但是也比较有效啊,那首先我们今天呢,会做几件事情啊,第一件事情就是对cell code进行什么cell code加密,第二件事情呢,就是我们把这个C扣的啊,从这个从这个主体里边进行一个分离啊,这个就是一个分离免杀的一个概念啊,三号code分离啊,就是说我的3CODE和我的主程序是不在一起的,和我的加载器是在一起的。啊,然后第三点呢,就是一个这个三幺扣的隐藏啊,我我正常情况下,如果我直接从网上拖回一段三幺扣的来啊,其实看起来也是比较bug的啊啊所以说呢,我把它隐藏起来啊,然后呢,再给它加载回来,第四点是什么呢?第四点呢是我这个是远程加载啊C的远程加载。
02:13
呃,我们把它们组合起来啊,然后来搞一点事情啊,对不对啊,那首先呢,我们这个加密啊,来第一点实现这个加密的问题,加密这个东西,其实你用什么AES啊之类的东西都是可以的啊,啊一些这个加密这个常见的加密库,什么opens啊之类的东西啊,那我们今天呢,就不那么复杂,我们直接给它易货一下啊,其实这也是比较常用的方法啊,那我们现在呢,给它进行抑货的情况下呢,我们现在呢,就要给他来写一个新程序啊,因为你在这里边,呃,要进行解密嘛,对不对啊,在主程序里解密就行了,你不在主程序里,如果还放在这个三库的,还放在主程序里进行加密,其实意义就不大了,那正常情况下,如果我们是一个这个漏洞利用啊,也就是一个exploit里边的这个cell code,如果它要加密的情况下,通常情况下它会把解密头啊放在三幺扣的前边,作为一个默认的存在,然后呢进行解密,但是因为我们这个东西有加载器啊,我们。
03:13
就不需要把这个加密头加进去了,因为什么,因为我们在这儿直接给它解开就行了啊,因为行为并不太可疑啊,那么我们把这个东西呢,就现在啊,要创建一个新的尝试。新建一个程序啊,然后啊,点击这个空项目,然后呢,这个呢,我们是。点击确定。新建一个源文件。然后包含一些这个我们需要用到的头文件。
04:25
嗯,我们首先去把三扣子拿过来啊,那我们三扣子拿过来之后,我们这边其实不不需要再存这个三扣子了,所以说呢,我们就把它直接给剪切过来。好放在这,放在这儿之后呢,我们现在呢,就可以来对它进行一个加密了啊,然后word啊so啊code。我们需要把这个buff份啊,给它传进去三八份,然后呢,我们需要提供一下它有多长。
05:09
好,接着呢,我们就一个for循环啊,然后呢,把这个最长作为长度啊,然后对它的每一项进行或等于啊,亦或等于。你这个抑或等于的值呢,要是你们你这个里边没有的啊,尽量是里边没有的啊,然后呢,比如说我现在呢,抑或一下0X69啊,它这里边就没有啊,那我就抑或一下0X69。好,现在呢,我们就可以对它呢进行一个抑惑了啊,我们直接把我们的这个cell code的这个地址给传进去。传完三号的地址之后啊,它类型不符啊,就给它强转成差星就可以了啊,那接下来呢,第二个参数呢,就是它的长度直接传272就OK了,那么此时此刻呢,我们在这儿下一个断点,我们直接运行。
06:09
啊,这里边儿有一个配置没有配啊,我们右键属性。C加加啊,然后代码生成啊,在MTD,然后这。信用啊,确定,然后运行。运行,然后之后呢,我直接啊来给它这个看一下啊,我们在内存里的观察他一下,现在呢,这个c code的情况啊是这样的,然后呢,我们F10走一步之后,你可以看到啊,完全进行了一个变化,但是我们如果这样呢,进行复制的话呢,其实是不太方便的,所以说呢,我们现在呢,来给它进行一个这个写出。
07:01
我们首先要提供给他一个路径,然后呢,要提供给他一个这个八分,还需要提供给他一个长度。首先,我们利用cur来打开它,然后返回一个文件句柄。第一个参数是路径,然后第二个参数是权限。读写,然后呢,这个底下这个是呃,共享模式我们闹掉。
08:08
然后是安全属性闹掉。嗯,这个应该。得放一下这个我们创建的模式,我们选择现在是打开我们直接创建吧,创建一个新的。Now new啊,创建一个新的,然后再下一个呢,我们传一个普通的文件特性。好,最后一个我们调换道就可以了,好,接下来呢,我们就给它呢,进行一个写出啊we file。
09:02
H file这边,然后是这个要写出的八分,SZ8分,然后是这个我们的长度,然后实际写出的长度啊。这不行啊,这应该得用那个塞子,应该也得用这个啊,不对,我这是32位的啊,这无所谓了啊,用or就行了。然后把它地址传进去。最后一个啊,这个床闹就行,好,这就写出啊,然后我们直接给它放在这儿,给他提供一个路径,然后呢,是要写出的是什么。
10:08
还有长度。我们直接运行。运行结束之后呢,我们去D盘刚才提供的这个路径下啊,去找这个东西直接打开啊,你看是这个状态的,然后呢,我们拖到这个010EDIT里啊,现在现在是这个状态的,那我们把它直接全选啊,然后给它这个进行什么复制为啊,然后是如果你直接用复制为这个C代码就行了,但是因为我们现在要丢图片里头啊,所以说呢,我们现在直接其实直接复制就行,直接复制之后呢,我们这有一张图片,这张图片平平无奇啊,大家可以直接在任意地方用QQ截个图就行了,我这就是从我桌面上截的。啊,这个无无所谓啊,怎么样都行啊,然后呢,这个东西呢,我们直接给它放到我的这个010EDIT上面啊,这个呢是一个比较紧凑的文件格式啊,它中间没什么空啊,不然的话你放中间混合混淆性会更强一点啊,但是既然它这么密啊,它没什么这个空闲的地方啊,那么我们可以直接给他丢在这后面。
11:15
然后直接给它粘贴在这儿啊,你看这就给它这个粘贴到这个位置上了,从这啊往后这些就是我们自己的塞扣的,我们把它保存之后啊,然后呢,你可以看一下它在赛后的头是什么东西啊,记一下,然后因为一会你要加载的时候,可以分辨一下特征,当然你也可以不用这个头,你可以直接记住它的位置啊。啊,一会儿我呢就用位置的方式啊,然后呢,我现在呢给它打开啊,你可以看到啊,不影响它正常打开啊,而且呢,你放到任何位置也不会不影响它正常打开,正常情况下安全软件它也查不出来,因为它对这个格式呢,没这么熟啊好,现在呢,我们继续是什么呢?就是说这是一种啊,这是一种这个加密,然后分离啊隐藏,这个是隐藏的部分,那隐藏的部分实际上而言呢,我们我用的这种方式比较low的一种方式啊,那么正常情况下你还可以干什么呢?你可以配合着。
12:08
啊,引血术啊,然后呢,比如说你可以给他这个,呃,比较高端的玩法呢,就像你这些这个像素,其实像素点有一些信息呢,它是勇于的啊,你可以把你的这个信息呢,直接转换一下,存到它这个像素点上啊,那这种情况下呢,是比较高端的,但是你这个东西就需要一个算法去算的,勇于的咱么一个臭稿安全的搞这么翻,搞这么反逆天,其实稍显有点那么高端了啊,那所以说呢,我就直接给他写尾部上了啊,这样是比较舒服的。啊,然后呢,我们呃不在啊,然后那么我们就是什么呢?那我们接下来啊,就给它放到这个远程上边啊,那比如说我现在呢,在本地搭了一个这个WMP的一个环境啊,这个是就是一个用来做这个外部测试的一个环境啊,其实他是搞PHP的,然后我们在这边呢,给他找到它的根目录啊,我们现在呢,给他写一个啊,我们首先这个图片已经OK了,我就把图片先复制进来,复制进来之后呢,我们新建一个这个HTML文件啊,就是比如说它这个主页面吧,它肯定叫这个HTM啊,呃,这个index HTML啊是。
13:19
然后呢,我右键啊,给他这个note外加加打开得了,首先我给他搞一个HTML。然后在里边再搞一个img s RC等于。pt.PNG。OK了啊,然后呢,我去我的本地上边看一眼。
14:06
可以了,就这样,那这张图片在哪呢?在这个路径下啊,在这个路径下,所以说呢,我们现在呢,要去给它弄回来。我们C加加远程加载,能把它弄回来的方式其实比较多啊,比如说你可以用Internet系列的那些什么Internet open啊之类的系列的API。也可以什么呢,也可以通过这个我们直接啊一个这个下载的API把它下回来啊都可以啊,啊这个就看你怎么样啊,但是你用下载的API,像我今天下载的API,它可能动静就比较大啊,你这个因为一般情况下啊,你们在搞这个恶意代码分析的时候,也是你看见有人下载东西,你是不是下意识就要你就看一看它下的是什么,对不对啊,所以说呢,这个东西就比较危险啊,但是因为我们在那放的是一张图片啊叭较合理啊,所以说呢就倒也还好。
15:05
嗯,包括一下他头文件和他这个外包库啊。好啊,那就这样,然后呢,我们在这呢,就可以来给他写一个这个获取文件的这么一个函数啊。你可以直接里头写死,也可以给他这个在外边给他传过来啊。呃,如果你要从外边传的,你这呢就写三个变量啊,如果你要写死呢,就直接写死啊,那比如说我如果说我通用性强一点,我就不写死了,我在外边给他传,那你需要三个地方啊,那就是什么,就是首先第一个。
16:10
差星啊,其实你是因为他不需要去更改,你其实一个com的差星就行了,差星SZ,然后是这个net啊网络路径,然后呢,还需要一个什么呢?一个本地的一个路径。然后还需要一个什么呢?你这玩意儿,你这里边藏的塞扣有多长in啊,大概需要这么三个参数啊,好,那么我们现在呢,首先呢要把它下回来啊,那下回来的事其实比较简单,我们刚才帮图文建吧,那么首先呢,我们用一个这个R,这个URL啊,Download to file啊,当然你可以给他出别的东西啊,那我我现在就给他to file了,直接下到本地,然后首先第一个是闹,第二个是你网上的一个路径。
17:09
第三个呢,是你本地的一个路径。然后呢,是这个这个这个参数要藏置是一个零,你看他连名字都没有啊,所以给他传个零就行了,然后这个第四个这个东西啊,传一个now,嗯,OK了,OK之后呢,接下来呢,我们要看创建一个这个文件啊,那创建文件呢,我们直接去这边把这个拿过来就行了。好,然后去哪读呢?那肯定本地文件本地存的这个位置读啊,对不对啊,我们再给它读回来,读回来之后呢,我们现在呢,就不给他创建新的了,因为我们是要读文件,所以说呢,我们在里边选一个这个打开的啊,打开的这个就行了。
18:06
好,然后呢,我们就给它这个OK了,OK之后呢,我们现在呢,要获取一下它文件的一个大小啊or ew等于get。获取完文件尺寸之后呢,我们要申请一块内存,把它装起来嘛,那就是一个X型XZ8分等于六二读文件有多大啊,就给他申请多大,然后呢,对它进行一个内存的一个清空。
19:03
哦,清空之后呢,那么接下来呢,我们就要把它读回来啊,那它跟血一样,它也需要一个实际上的一个尺寸啊。要用red file,然后读完之后放那八分,然后读多长,实际上读了多长,最后啊写文档,然后读进来之后呢,那现在呢,我要判断一下我三个扣子在哪,那首先三号扣有多长啊,肯定传进来这么长,对不对,那我这个总常数呢是这么长,所以说呢,我的这个东西它在哪呢?在我的总长数减去。哦,Cell扣的长度这个位置就是cell扣的一个起始位置啊,那么然后呢,我们就可以再来申请一下iz cell code等于new叉申请这么长,申请完这么长之后呢,我们接下来呢,就用一个memory copy把它拷过来,拷到这里边。
20:23
从哪开始呢?就从这个位置开始,那所以说呢,我们怎么算呢,那我们这个是buffer,然后buff分,这现在是默认起始地址,我再给它加上我的这个,呃,当前啊,我这个赛扣的起始这个位置啊。这个长度应该说啊,然后呢,我现在啊,加完之后给它扩上,那么这个位置呢,现在就已经是什么C扣的一个起始位置了啊,那接下来呢,我要拷贝,拷贝多长呢?就拷贝我刚才申请这么长啊,这外部传进来的啊,这样就拷完了,拷完之后呢,我们直接把这个他把这个我们拷完的这个下扣的给它返还回去啊好,现在呢,我们来啊给它进行一下这个get file啊在这个位置我给他get file get file呢,我直接啊给它进行一个这个。
21:08
呃,传递首先呢,是这个路径啊,那路径呢是在这儿,我们直接给它ctrl a全选,全选完之后复制过来啊。呃,没点关注的点点关注啊,然后咱们每周六周日都有直播啊,然后接下来几天都有直播啊,然后呢,那个有需要领取这个直播回放的,可以找咱们评论区的老满进行领取啊,也可以找他进群。然后是本地的一个路径啊,我这儿就写一个这个相对路径啊,就生成在自己的目录下了,然后第三个就是长度啊,我这个是272啊,那我就写个272啊,然后呢,我这儿呢,要写一个这个差新Z8分啊,进行一个接收哦,接收完事回来之后呢,他是一个易惑过的啊,那我现在呢,再给他这个缝一下,我再把他这个易惑解开。
22:01
272好。亦或等于0S69。啊加这个I好,然后呢,这个呢就给它减完了,减完之后呢,现在呢,我们这一就是一个正常的一个八分了嘛,那这个buffer就相当于原来的S扣的T进去。那这个呢,就直接给他写死算了啊。好,这样就OK了啊,当然这些这个272呢,我觉得其实我们可以在上面定义一个类似于红的东西啊,嗯,因为这样以后比较好改。这样你以后塞后的长度变了,你在这一下就全改了啊,然后呢,我们来运行一下。
23:11
你可以看到也正常的给它加载了,但是呢,我们这三扣哪来的呢?我们是从网上下回来的,下回来之后呢,再进行什么切割了一部分图片拿回来,拿回来之后呢,再给它进行解密,解密之后再去进行执行啊,那我们就达到了什么目的呢?S code的这个加密分离隐藏远程加载。啊,然后呢,配合着我们的什么呢,配合着我们的这个地门。啊,这样呢,就完成了我们一个这个免杀啊,一个免杀啊,那这种这种呢,就是什么呢?这种其实就是已经是多种免杀的这个配合了,配合使用啊,然后咱们其实呢,如果说你对这个赛code,它这个只是简单易惑一下,不放心的情况下,你可以跟刚才也说了,你可以给他这个进行这个一个比较深的加密,比如说A什么的,然后你还可以干什么呢?你还可以直接给它进行什么s code的这个反转啊,你就直接把它整个倒过来啊,然后进行储,然后再加密啊,这样呢,可能也会效果稍微好一点啊,然后我们这个东西呢,也不止可以这个放到远程上啊,你可以把它塞在你自己的资源里,但是呢,我建议放在远程上,因为什么呢?因为塞资源里它有点明显啊,有点多少有点明显,当然你本身你如果就是一个这个写,把自己伪装成了一个需要用图片的这个正常程序的情况下啊,那倒也还好啊,倒也还好。
24:44
好,有什么问题没有啊,如果没有什么问题的话。呃,这个技术部分今天的就OK了啊。啊对啊,这个年终大促啊,全年最大优惠啊,然后呢,我们有这个需要的可以联系咱们老板进行咨询啊。
我来说两句