一、问题回答

(1)杀软是如何检测出恶意代码的?
杀软是通过代码特征比对得出的,将检查的代码和自己的特征库的代码进行比对,然后得出

(2)免杀是做什么?
免杀就是让安插的后门不被AV软件发现,改变特征码,改变行为

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

  • 加壳:压缩壳 加密壳
  • 用encode进行编码
  • 基于payload重新编译生成可执行文件
  • 用其他语言进行重写再编译(veil-evasion)
  • 尽量使用反弹式连接
  • 使用隧道技术
  • 加密通讯数据
  • 操作模式
  • 基于内存操作

  •  

    减少对系统的修改

  •  

    加入混淆作用的正常功能代码

2、实践

(1) 正确使用msf编码器,msfvenom生成如jar之类的其他文件,veil-evasion,自己利用shellcode编程等免杀工具或技巧

  • 首先尝试一下自己上个实验做出的后门程序
  • 果然是不堪一击。。。拿去检测一下 
  • 装上veil尝试一下结果会如何 :

  • 温馨提示一下,刚开始我是用的自己装的64的kali,在安装这个的时候,更新源什么的用处都不大,而且后来在找代理安装的时候,出现好多包不能安装的情况,类似什么wine32之类的,大半天都卡在这里,最后用了一下老师给的32位的,结果发现十分顺利,更新源之后,直接用apt-get install 安装即可。推荐大家使用32位kali。
  • 这回放windows上看看咋样
  • 尴尬。。。忘记关360了,放到病毒库去检查检查
  •  呀这个只有15%的杀软报错,比刚才那个好多了

(2) 利用shellcode 编写c语言代码

  • 利用如下命令产生shellcode

  • 利用vs编译一下
  •  

     

  • 尝试尝试看看是否能连通:
  • 可以可以,还是很稳的,因为不能在虚拟机上装vs,只好拿本机当靶机了,头一回把他控制了
  •  

  • 我们尝试尝试查杀结果怎么样
  • 360你怕不是个智障。。。,运行运行试试

  • 我去,还真的能运行。。。。完了360咋这么傻,放毒库里看看 

  •  

  •  

  • 还不能免杀啊,哈哈哈,原来360也有检测不出来的时候。

 

(3) 对他加个壳试试

使用upx进行加壳

 

放到毒库看看咋样,由于移不出虚拟机,暂时先放网上看看

竟然免杀了???加壳这么管用吗???厉害厉害

 

为什么加完壳变成0字节了。。怪不得免杀。。。。这是咋回事啊???

 

(4) 利用shellcode 编写c语言代码,对shellcode进行操作,达到免杀效果

 采用异或的方式对shellcode进行更改。

360还是没查出来,哈哈哈,感觉自己把360完全打败了哈哈哈,拿到毒库去查查

怎么还是这个样子。。。。可能里面有些特征没有被改变吧。

 

3、收获

通过这次实验,我对于杀毒软件对如何杀毒有个大致的了解,懂得了这个如何简单的制造一个病毒,并且如何的去免杀,防止被删除。而且感觉自己收获比较大的一点就是,杀毒软件也不是所有的毒都能看出来的,而且好多杀毒软件的性能没有自己想象的那么好,经过杀毒软件排查之后,报告没有病毒的文件,也不一定真的没有病毒,这次实验自己收获很大。