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


    免杀原理与实践

    一、基础问题回答

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

    • 基于特征码的恶意软件检测:简单来说特征码就是一串代码段,只是由于这一串代码段可以表明某个软件或程序具有恶意功能(当然一般正常的程序是不会携带该代码段的),所以被杀软所记录保存在其数据库中(病毒库),每当机器需要运行或安装某程序或软件的时候杀软就会对程序或软件与病毒库中信息进行比对,如果发现特征码段就认定该程序为恶意软件。
    • 启发式恶意软件检测:在安装和运行开始都没有检测出某软件为恶意的,但在该软件提供服务的过程中出现恶意行为(如:连接恶意网站、开放端口、修改系统文件等),杀软就会提醒用户,认为该软件可能是恶意软件。
    • 基于行为的恶意软件检测:在程序运行期间杀软会对程序的行为进行记录,并保存在某个日志文件中,且不定期的检查该日志文件,如果查到有异常行为,就认定该软件可能为恶意软件。

    2.免杀是做什么?

    • 简单来说免杀就是使用各种特殊手段改变程序的基本状态,使得一个原本能被杀软检测并杀掉的恶意软件能不被杀软所检测到,以达到渗透的目的。

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

    • 改变特征码:
      • 只有可执行文件——加壳处理(压缩壳、加密壳)
      • 有shellcode——使用编码器进行重新编码
      • 有源代码——更换语言重写源码
    • 改变行为
      • 通讯方式
        • 尽量使用反弹式连接
        • 使用隧道技
        • 加密通讯数据
      • 操作模式
        • 基于内存操作
        • 加入正常功能代码

    二、实验内容

    1. 正确使用msf编码器

    使用msfvenom加基本反弹链接载荷生成exe文件:

    使用VirusTotal扫描结果如下:

    在原命令中加-e使用编码器加-i对进行多次编码后生成exe文件:

    使用VirusTotal扫描结果如下:

    2. msfvenom生成如jar之类的其他文件

    使用msfvenom生成jar文件:

    使用VirusTotal扫描结果如下:

    3. veil-evasion安装和使用

    Veil-Evasion是用其他语言如c,c#,phython,ruby,go,powershell
    等重写了
    meterperter
    ,然后再通过不同方式编译成exe,共性特征比较少,并且在生成可执行文件时还会给出源码。但是kali默认并没有安装该软件需要手动安装一下。

    执行

    apt-get install veil
    

    就可以安装了,如果不行的话尝试换一下软件源或者更新一下软件源。

    安装还是比较漫长的,安装好后输入veil命令进入软件界面

    输入use Evasion进入Veil-Evasion

    输入list可以看到所有可用模块

    我们可以找一找自己想要使用的模块,使用use + 编号就可以选中该模块了,我选中的是7号模块,也就是Windows反弹链接tcp的模块,模块默认信息如下图:

    使用set命令对其进行配置

    使用option命令查看配置

    使用generate命令准备生成文件,输入输出文件名

    在如图所示目录中找到exe文件并上传检测如下图:

    4. 加壳工具

    使用upx给原程序添加压缩壳

    检测如下:

    使用Hyperion加密壳工具加壳

    注:该程序需要将待加壳可执行文件拷贝到该程序目录中即/usr/share/windows-binaries/hyperion/
    再执行wine hyperion.exe -v XXX.exe XXX.exe才可执行

    结果如下:

    5. 使用shellcode编程

    使用msfvenom生成反弹链接模块的c语言代码如下:

    然后使用vim编辑器,编写C语言代码
    # include <stdio.h>

    unsigned char buf[] = 
    "xfcxe8x82x00x00x00x60x89xe5x31xc0x64x8bx50x30"
    "......."
    "xc3xbbxf0xb5xa2x56x6ax00x53xffxd5";
    
    int main(){
        int (*func)() = (int(*)buf);
        func();
    }
    

    使用交叉编译工具生成可执行文件并检测:

    6.总结

    下图是我本机的杀软-->腾讯电脑管家检测结果,我把检测到病毒的都信任了

    所以说腾讯电脑管家还是不太行。

    三、异主机实测

    我把在我的主机上未检测出威胁的程序拷贝给实验室的另外一个同学,让他帮忙测试———很不幸,被他的360成功截获:

    我让他在杀软中对该软件添加信任,然后实测回连——成功:

    可是当我想要再获取他的其他信息,比如摄像头,最高权限时他的360都会发出警告。

    四、总结与体会

    本实验通过让我们了解杀软的运作过程,让我们实践去做出可以防止杀软查杀的木马程序,这让我们知道了,杀软是不可能完全保护我们的电脑的,所以还是要注意上网安全,不随意下载未知软件。

  • 相关阅读:
    高精度计算
    c++ sort
    算法分类小结
    二叉树层序遍历
    clion windows c++环境配置 mingw
    kafka,filebeat 配置
    centos7 源码安装mysql5.7
    如何优雅的生成及遍历python嵌套字典
    Java Swing 绝对布局管理方法,null布局【图】
    python3.4+pymssql 中文乱码问题解决
  • 原文地址:https://www.cnblogs.com/Zhangxusheng/p/10623696.html
Copyright © 2011-2022 走看看