20144306《网络对抗》MAL_免杀原理与实践

一.基础问题回答

 1.杀软是如何检测出恶意代码的?

   (1)特征码:类似于人的生物特征,恶意代码可能会包含一段或多端数据能代表其特征。杀软一般会对文件内容进行静态扫描,将文件内容与特征库进行匹配,来检测已知的网络攻击。

          优点:检测效率高、能精确检测恶意软件类型和具体名称、能在恶意软件首次写入计算机时检测而非运行后。

          缺点:不能检测未知变形的恶意软件、需频繁更新特征库、特征库会越来越臃肿。

   (2)启发式:就是以特定方式实现的反编译器和动态高度器,通过对有关指令序列的反编译逐步理解和确定恶意软件的动机。比如一段程序突然要调用格式化盘操作的BIOS指令功能,这就很可疑,然后又发现它没有参数选项,没有让我交互式输入执行指令,启发我觉得它就是短恶意代码。

          优点:可以检测0-day恶意软件、具有一定通用性。

          缺点:实时监控系统行为,开销稍多、容易滥杀无辜。

   (3)基于行为:基于行为的检测相当于是启发式的一种,或者是加入了行为监控的启发式。

          优点:可发现未知病毒、可相当准确地预报未知的多数病毒。

          缺点:可能误报、不能识别病毒名称、实现时有一定难度。

 2.免杀是做什么?

        您有没有过心爱的盗版被杀毒软件斩首的经历?您有没有过辛辛苦苦整理出来的工具包被杀毒软件团灭而“义愤填膺”的时候;您有没有过好不容易拿到权限,上传的后门还没来得及落地就被搞死的痛心时刻?免杀,它能做的就是避免这些事情的发生!使杀毒软件成为摆设!当然,除此之外免杀技术带给我们更多的,将是思想的飞跃与技术的成长。

 3.免杀的基本方法有哪些?

   (1)改变特征码:

       想要空手套白狼:加壳

       shellcode在手:encode编码、payload重新编译

       有源代码:翻译成其他语言

   (2)改变行为:

       就是收敛一下,不要那么明目张胆,反弹连接、使用隧道、加密通讯数据、在内存偷鸡摸狗、不对系统动手、混入忠良的代码混乱视听。

二.实验总结与体会

         告别了手动信任,veil-evarion和msf结合很好用,再加壳的话报毒率会大幅下降;单独给裸奔后门加壳的话,我用hyperion会报毒,但是upx反而没事;shellcode很强大,经处理的shellcode更强大,而且shellcode操作性很好,可以随意定制,c语言调用shellcode方式更多.我觉得混合使用这些方法可以搞出一个套娃后门,绝对可以隐藏的很深。

      杀毒软件并不万能,特征码隐藏会让其杀毒准确大幅下降,正如我前面黄色阴影部分写到的一样,特征码杀软的一大缺点:不能检测未知变形的恶意软件是个很好地切入点,隐藏行为很难,但是变形相对容易。

     侵入一台自以为防护到位的电脑真的很容易,怪不得机要领域设备都要严加看守,光杀软真的不够,安全防护要多方面配合,调用防火墙、ids的力量,或者配备专门的维护员。诡异的现象大概都是切入点吧。

      visual studio 安装速度慢死了......

三.离实战还缺些什么技术或步骤?

         胆子和脑子

       怎么自己生成定制的shellcode,可以进行各种变形加密,c调用方式也很多样,难的是根据什么样的漏洞写什么样的后门。

       当你有了一个精彩的后门要怎么神不知鬼不觉送给对方?

       怎么让这个后门真正变透明,藏在什么位置?(和正常软件捆绑?)怎么隐藏后门和母星之间的通信?(隧道技术?)对方不会某天找文件突然撞见.....

       隐藏痕迹?就算对方撞见了也不知道是谁干的[smile]

四.实践过程记录

 1.如何评价免杀效果?

         其实很客观的就是能躲过多少杀软的追踪,使用集成杀软网站:http://www.virscan.org/ 

       最差标准:上周msf做的那个后门,什么都不做上传看看结果。

       

         刚从虚拟机放出来就死了,手动信任后上传:

       

          

         结果感人,39款中21款杀软都报毒了,那就看看接下来的操作能不能减少报毒率。

 2.Msfvenom使用编码器

         先编码个10遍:

       

         再试一下:

         

         没有变化[微笑],而且依旧被360弄死,这个方法早已被各类AV厂商识破。

 3.使用Veil-Evasion

         Veil-Evasion是一个与Metasploit有点类似的免杀平台,用其他语言如c,c#,phython,ruby,go,powershell等重写了meterperter,然后再通过不同方式编译成exe。

       用python重写一个:

      

       测试一下v1版的后门的伪装性:

      拖拽到虚拟机外Desktop,360杀毒软件不报毒了,再专门扫描一下桌面文件夹。

       

       

      

      没报毒~~~扫描也只剩下了9个

      回连测试一下:

     新生成的rc文件被保存在了veil-output下的handlers目录下!既然有了rc文件,那么我们就可以方便的使用MSF进行调用了。

     

      msfconsole  -r 20144306_v1_python1.exe

      

     在另一台windows主机上运行新生成的免杀后门软件:

      

      在kali上选择sessions -i -1:

      

      

      获取shell

      

      成功~嚯嚯嚯

 4.C语言调用Shellcode

      使用msf来生成一个c语言格式的Shellcode数组:

     

      vs安装速度感人.....

     

      去洗个头.......

     在vs中用c语言调用shellcode生成新后门20144306.exe,杀软来问候一下:

     

       

       报毒了......

       再来,对shellcode进行异或及末端加1加密,重新生成20144306_encode.exe:

       

       专门扫描一下:

      

      

       只有一款报毒!!!!!

       回连没问题:

       

      4306_v4这个版本我很满意~~

 5.加壳

    (1)压缩壳UPX

     我把自己之前用veil-evasion生成的20144306_v1_python1.exe加了个壳生成了v1++版本:

     

      杀软杀不出来:

     

        扫描也成功下降到5个,欣慰:

        

         回连没毛病

         

   (2)加密壳Hyperion

       把我的v1版本升级成v2试试:

       

         查杀一下:

         

          word妈,反而报毒了,v2炮灰......说好的加密加壳呢?桑心,不回连了。

          又试了一个不编码的后门基本版软件,还是报毒,我严重怀疑这是个脱壳软件.......

         

          最后总结下:

        一共6个版本的伪装后门:

       v0版本:编码器版本----炮灰

       v1版本:python重写(http协议)------360杀不出来,报毒率9/39

       v1++版本:python重写(http协议)+upx加壳--------360杀不出来,报毒率5/39

       v2版本:python重写(http协议)+hyperion加壳--------炮灰,360直接弄死

       v3版本:c调用shellcode-------360能杀出来,报毒率12/39

       v4版本:c调用shellocode异或末端加1加密-------godlike,360杀不出来,报毒率1/39

     

       为了增加隐蔽性,我又给报毒率最低的v4版本换了个图标改了名字~~

       --------》没错,这是后门!!

       点它吧。

 

posted on 2017-03-23 19:47  ranransbean  阅读(400)  评论(0编辑  收藏  举报

导航