免杀原理(php)

免杀原理

0x01 前言

何为免杀,免杀就是一种逃脱杀毒软件查杀的方法,免杀的目的就是绕过“墙”,去执行危险的操作。那么如何绕过这堵“墙”,就是免杀的本质。有句俗话说得好“知己知彼,百战不殆”,想要用好免杀,就必须先了解对手,有何能耐,它的工作方式以及它是如何知道文件中含有恶意代码。

技术也存在双面性的,通过研究免杀技术,我们也可以去分析,黑客会用什么办法来绕过防护,进行恶意操作,从而对这堵无形的“墙”进行加固。

image-20231123202004979

0x02 杀毒原理

杀毒软件分类:

杀毒软件的种类非常多,例如,流量查杀、代码查杀、脚本查杀、二进制查杀,但是万变不离其宗,要么就是安装在本地、要么就是在网络中的云端,所以我认为杀毒软件应该分为两大类,本地杀软和云端杀软。

  • 本地杀软

    • 这类杀毒软件主要安装在用户的本地设备上,例如个人电脑、笔记本电脑或移动设备。它们的功能是检测、识别和清除本地设备上的恶意软件和病毒。

    • 本地杀毒软件通常提供实时保护功能,监控设备的文件、下载和执行过程,以防止恶意软件的感染和传播。用户可以通过更新病毒库等方式保持杀毒软件的检测能力。

    • 例如:

      • 360
      • QQ电脑管家
      • 火绒
  • 远程杀软

    • 这类杀毒软件工作在网络或云端,通过远程方式来检测和清除恶意软件。它们可能是云端杀毒引擎、网络防护设备或者云端服务。

    • 远程杀毒软件通常能够扫描网络流量、电子邮件附件、下载文件等,以及在云端检测和隔离潜在的恶意软件,从而保护多个设备免受病毒和恶意软件的侵害。这种类型的杀毒软件可以为企业和组织提供全面的网络安全保护。

    • 例如:

      • 阿里云盾
      • 360杀软云

杀毒软件基本原理

杀毒软件的工作原理是通过一系列技术手段识别、拦截和清除计算机系统中的恶意软件(病毒、木马、间谍软件等)。其工作原理主要包括以下几个方面:

  1. 病毒特征识别:
    • 杀毒软件会使用病毒数据库中的病毒特征码来识别已知的病毒。
    • 这些特征码是病毒样本的特定标识,杀毒软件通过扫描系统文件和程序,将它们的特征与数据库中的特征码进行比对,来检测潜在的威胁。
  2. 行为监控:
    • 杀毒软件会监控系统中程序的行为,例如监视其访问、修改文件的行为等。
    • 当程序的行为符合病毒或恶意软件的特征时,杀毒软件会进行警告或阻止。
  3. 启发式分析:
    • 对于未知的病毒,杀毒软件使用启发式分析技术。
    • 它会检查程序的行为、代码结构等特征,来判断其是否可能是病毒。这种方法并非依赖于已知的特征码,而是根据行为和代码模式进行判断。
  4. 沙箱技术:
    • 杀毒软件可能使用沙箱技术,将可疑程序隔离在一个虚拟的安全环境中运行,观察其行为,以防止其对真实系统的影响。
  5. 实时保护:
    • 杀毒软件提供实时保护功能,监控系统的实时文件访问,对正在执行的程序进行扫描,确保系统在运行时不受恶意软件的侵害。
  6. 定期扫描和更新:
    • 杀毒软件定期对系统进行全盘扫描,并且通过更新病毒数据库来识别新的病毒。定期更新是保持杀毒软件有效性的关键。

总的来说,杀毒软件通过识别已知病毒的特征码、监控系统行为、启发式分析未知程序、使用沙箱技术等多种手段,来保护计算机系统免受恶意软件的侵害。

0x03 免杀思路

在上述章节中,我们了解到杀软的基本工作原理,一般来说杀毒软件都会通过自己的特征库,来判断一个程序中是否含有恶意代码,又或者通过程序运行的行为来判断,那么我们绕过这堵“墙”的思路,就是让我编写的代码不能被,特征库匹配上,或运行的过程不能让杀软检测到恶意操作,所以在编写灭杀代码时,我们就需要思考三个问题。

  1. 我的代码中哪些段落或行为被特征库识别到?既定位关键点
  2. 分析为什么这串代码被识别为恶意代码? 既分析关键点
  3. 如何绕过杀软的特征库? 既混淆关键点

接下来我会使用PHP的一句话木马和D盾来验证我的思路。

第一步 定位关键点

写一个一句话webshell,进行测试。

<?php @eval($_GET['cmd']); ?>

使用D盾进行扫描,发现存在eval后门,为什么D盾能发现后门呢?难道是eval()?但是这么一棒子打死所有人真的对吗?既然eval()这么容易被利用,为什么php官方还不将他删除呢?

eval()用于执行字符串中的 PHP 代码。这个函数将传入的字符串当作 PHP 代码来解析和执行。它的存在就一定有价值,这个函数一般都用于动态的去生成php代码,有了这个函数就可以,去实现模板网页的动态操作。

现在我们怀疑eval()就是特征库查杀的关键点,那么我们尝试去掉里面的参数,看看D盾是否还会报错。

image-20231123224039420

去掉参数后,发现D盾没有在将eval()函数,当作一个后门。那么现在就可以确定,问题出现内部的参数,现在我们也完成了第一步,定位关键点

image-20231123225412501

第二步 分析关键点

现在我们要来分析,是不是在eval()函数内,只要存在参数就会报错!!

image-20231123225921548

和之前所说的一样,任何函数的存在,都有一定的价值,在此处我添加了一句php的输出代码,但是D盾并未查杀到后门,可以确定的是在eval()函数中存在参数,也不会认定未后门shell,继续分析是否在eval()中输入$GET[] 超全局变量,就会引起D盾的查杀。

image-20231123230632087

当在eval()输入$_GET[]超全局变量时,D盾判断该代码为后门了,此时也就完成了第二步分析关键点

第三步 混淆关键点

在得到关键点后,就要开始考虑如何绕过D盾的查杀,执行我们想要的命令,

首先 eval()$_GET[]只要结合就会判断为后门,我们是否可以使用变量函数序列化来进行绕过呢?我们一步一步测试。

使用变量去绕过失败:

image-20231123231529434

使用函数包裹住$_GET[]后发现,没有在直接报后门shell,此时为可疑eval,此时说明我们的操作是有效果的,只是还无法完全绕过D盾。

image-20231123231941596

使用类来绕过任然和函数一样,无法完全绕过D盾。

image-20231123232415872

最后通过序列化函数serialize()、解序列化函数unserialize()、字符串截取函数substr()成功绕过了D盾限制。

image-20231123235658794

0x04 总结

总结一下思路,首先要定位哪一行代码,会被杀软拦截,接着分析为什么会被拦截,最后根据现有线索去猜测拦截规则,从而绕过杀软拦截。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/214533.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

JavaScript实现动态背景颜色

JavaScript实现动态背景颜色 前言实现过程HTML实现过程CSS实现过程JS实现过程全部源码 前言 本文主要讲解JavaScript如何实现动态背景颜色&#xff0c;可以根据颜色选择器选择的颜色而实时更新到背景中&#xff0c;如下图所示。 当我们在颜色选择器中改变颜色时&#xff0c;会…

渲染农场渲染一分钟动画需要多少钱?需要渲染多少时间?

现在很公司都开始使用渲染农场渲染动画&#xff0c;但是还是有很多人不知道渲染农场渲染动画需要多少钱&#xff0c;需要渲染多少时间。在这篇文章中我们将为你一一解答&#xff0c;为你提供一个清晰的参考。 渲染农场的收费通常是按照渲染的使用时间收费&#xff0c;渲染十分…

网络运维与网络安全 学习笔记2023.11.24

网络运维与网络安全 学习笔记 第二十五天 今日目标 DHCP中继代理、三层交换机DHCP、子网划分的原理、子网划分的应用 项目需求分析、技术方案选型、网络拓扑绘制 基础交换网络设计、内网优化、连接外网服务器 DHCP中继代理 DHCP中继概述 场景&#xff1a; DHCP客户端与DH…

Vatee万腾科技新高峰:Vatee前瞻性创新的数字化之力

Vatee万腾科技&#xff0c;一家以前瞻性创新为核心驱动力的数字化引领者&#xff0c;正迈向新的高峰。其在科技领域的卓越表现不仅体现在技术实力上&#xff0c;更展现在对未来的深刻洞察和独到思考上。 在Vatee的科技舞台上&#xff0c;前瞻性创新如一道独特的光芒&#xff0c…

上门预约小程序开发优势

想要放松身心&#xff0c;享受按摩的舒适感&#xff1f;那就需要一个专业的按摩师来上门服务。我们开发的预约按摩小程序app系统&#xff0c;汇聚各类上门按摩服务&#xff0c;包括推拿SPA、小儿推拿、中医等&#xff0c;为您提供高价值、高标准的养生健康体验。24小时随时提供…

U9二次开发之轻量服务项目开发

最近公司要开发一个下载图纸的U9轻量级接口&#xff0c;轻量级接口就是restful api&#xff0c;可以直接通过get、post等方式调用&#xff0c;参数的传送和结果的返回都使用JSON格式&#xff0c;用起来比Webservice接口爽多了。 如果是开发新的接口&#xff0c;我建议都用轻量…

机器学习/sklearn 笔记:K-means,kmeans++,MiniBatchKMeans,二分Kmeans

1 K-means介绍 1.0 方法介绍 KMeans算法通过尝试将样本分成n个方差相等的组来聚类&#xff0c;该算法要求指定群集的数量。它适用于大量样本&#xff0c;并已在许多不同领域的广泛应用领域中使用。KMeans算法将一组样本分成不相交的簇&#xff0c;每个簇由簇中样本的平均值描…

如何使用 TikTok 提高亚马逊销量

TikTok&#xff08;及其受众&#xff09;比以往任何时候都更大。爱它或恨它&#xff0c;它的影响力都难以忽视。 作为2021 年下载量第一的应用程序&#xff0c;拥有超过 10 亿用户&#xff0c;TikTok 对于希望直接与客户建立联系的品牌来说已经变得至关重要。循环、无限滚动和…

多线程Thread(初阶三:线程的状态及线程安全)

目录 一、线程的状态 二、线程安全 一、线程的状态 1.NEW Thread&#xff1a;对象创建好了&#xff0c;但是还没有调用 start 方法在系统中创建线程。 2.TERMINATED&#xff1a; Thread 对象仍然存在,但是系统内部的线程已经执行完毕了。 3.RUNNABLE&#xff1a; 就绪状态&…

Ubuntu开机显示recovering journal,进入emergency mode

在一次正常的shutdown -r now之后&#xff0c;服务器启动不起来了&#xff0c;登录界面显示recovering journal&#xff0c;主要报错信息如下所示&#xff1a; /dev/sda2:recovering journal /dev/sda2:Clearn... You are in emergency mode. After logging in, type journalc…

【多线程】-- 01 线程创建之继承Thread多线程同步下载网络图片

多线程 1 简介 1.1 多任务、多线程 普通方法调用&#xff1a;只有主线程一条执行路径 多线程&#xff1a;多条执行路径&#xff0c;主线程和子线程并行交替执行 如下图所示&#xff1a; 1.2 程序.进程.线程 一个进程可以有多个线程&#xff0c;例如视频中同时听声音、看图…

PSP - 蛋白质真实长序列查找 PDB 结构短序列的算法

欢迎关注我的CSDN&#xff1a;https://spike.blog.csdn.net/ 本文地址&#xff1a;https://spike.blog.csdn.net/article/details/134599076 在蛋白质结构预测的过程中&#xff0c;输入一般是蛋白质序列(长序列)&#xff0c;预测出 PDB 三维结构&#xff0c;再和 Ground Truth …