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