网站案例展示怎么做,企业展厅设计图片欣赏,简单的网站架构,唐山市住房与城乡建设厅网站免杀原理
0x01 前言
何为免杀#xff0c;免杀就是一种逃脱杀毒软件查杀的方法#xff0c;免杀的目的就是绕过“墙”#xff0c;去执行危险的操作。那么如何绕过这堵“墙”#xff0c;就是免杀的本质。有句俗话说得好“知己知彼#xff0c;百战不殆”#xff0c;想要用好…免杀原理
0x01 前言
何为免杀免杀就是一种逃脱杀毒软件查杀的方法免杀的目的就是绕过“墙”去执行危险的操作。那么如何绕过这堵“墙”就是免杀的本质。有句俗话说得好“知己知彼百战不殆”想要用好免杀就必须先了解对手有何能耐它的工作方式以及它是如何知道文件中含有恶意代码。
技术也存在双面性的通过研究免杀技术我们也可以去分析黑客会用什么办法来绕过防护进行恶意操作从而对这堵无形的“墙”进行加固。 0x02 杀毒原理
杀毒软件分类
杀毒软件的种类非常多例如流量查杀、代码查杀、脚本查杀、二进制查杀但是万变不离其宗要么就是安装在本地、要么就是在网络中的云端所以我认为杀毒软件应该分为两大类本地杀软和云端杀软。 本地杀软 这类杀毒软件主要安装在用户的本地设备上例如个人电脑、笔记本电脑或移动设备。它们的功能是检测、识别和清除本地设备上的恶意软件和病毒。 本地杀毒软件通常提供实时保护功能监控设备的文件、下载和执行过程以防止恶意软件的感染和传播。用户可以通过更新病毒库等方式保持杀毒软件的检测能力。 例如 360QQ电脑管家火绒 远程杀软 这类杀毒软件工作在网络或云端通过远程方式来检测和清除恶意软件。它们可能是云端杀毒引擎、网络防护设备或者云端服务。 远程杀毒软件通常能够扫描网络流量、电子邮件附件、下载文件等以及在云端检测和隔离潜在的恶意软件从而保护多个设备免受病毒和恶意软件的侵害。这种类型的杀毒软件可以为企业和组织提供全面的网络安全保护。 例如 阿里云盾360杀软云
杀毒软件基本原理
杀毒软件的工作原理是通过一系列技术手段识别、拦截和清除计算机系统中的恶意软件病毒、木马、间谍软件等。其工作原理主要包括以下几个方面
病毒特征识别 杀毒软件会使用病毒数据库中的病毒特征码来识别已知的病毒。这些特征码是病毒样本的特定标识杀毒软件通过扫描系统文件和程序将它们的特征与数据库中的特征码进行比对来检测潜在的威胁。 行为监控 杀毒软件会监控系统中程序的行为例如监视其访问、修改文件的行为等。当程序的行为符合病毒或恶意软件的特征时杀毒软件会进行警告或阻止。 启发式分析 对于未知的病毒杀毒软件使用启发式分析技术。它会检查程序的行为、代码结构等特征来判断其是否可能是病毒。这种方法并非依赖于已知的特征码而是根据行为和代码模式进行判断。 沙箱技术 杀毒软件可能使用沙箱技术将可疑程序隔离在一个虚拟的安全环境中运行观察其行为以防止其对真实系统的影响。 实时保护 杀毒软件提供实时保护功能监控系统的实时文件访问对正在执行的程序进行扫描确保系统在运行时不受恶意软件的侵害。 定期扫描和更新 杀毒软件定期对系统进行全盘扫描并且通过更新病毒数据库来识别新的病毒。定期更新是保持杀毒软件有效性的关键。
总的来说杀毒软件通过识别已知病毒的特征码、监控系统行为、启发式分析未知程序、使用沙箱技术等多种手段来保护计算机系统免受恶意软件的侵害。
0x03 免杀思路
在上述章节中我们了解到杀软的基本工作原理一般来说杀毒软件都会通过自己的特征库来判断一个程序中是否含有恶意代码又或者通过程序运行的行为来判断那么我们绕过这堵“墙”的思路就是让我编写的代码不能被特征库匹配上或运行的过程不能让杀软检测到恶意操作所以在编写灭杀代码时我们就需要思考三个问题。
我的代码中哪些段落或行为被特征库识别到既定位关键点分析为什么这串代码被识别为恶意代码 既分析关键点如何绕过杀软的特征库 既混淆关键点
接下来我会使用PHP的一句话木马和D盾来验证我的思路。
第一步 定位关键点
写一个一句话webshell进行测试。
?php eval($_GET[cmd]); ?使用D盾进行扫描发现存在eval后门为什么D盾能发现后门呢难道是eval()但是这么一棒子打死所有人真的对吗既然eval()这么容易被利用为什么php官方还不将他删除呢
eval()用于执行字符串中的 PHP 代码。这个函数将传入的字符串当作 PHP 代码来解析和执行。它的存在就一定有价值这个函数一般都用于动态的去生成php代码有了这个函数就可以去实现模板网页的动态操作。
现在我们怀疑eval()就是特征库查杀的关键点那么我们尝试去掉里面的参数看看D盾是否还会报错。 去掉参数后发现D盾没有在将eval()函数当作一个后门。那么现在就可以确定问题出现内部的参数现在我们也完成了第一步定位关键点 第二步 分析关键点
现在我们要来分析是不是在eval()函数内只要存在参数就会报错 和之前所说的一样任何函数的存在都有一定的价值在此处我添加了一句php的输出代码但是D盾并未查杀到后门可以确定的是在eval()函数中存在参数也不会认定未后门shell继续分析是否在eval()中输入$GET[] 超全局变量,就会引起D盾的查杀。 当在eval()输入$_GET[]超全局变量时D盾判断该代码为后门了此时也就完成了第二步分析关键点。
第三步 混淆关键点
在得到关键点后就要开始考虑如何绕过D盾的查杀执行我们想要的命令
首先 eval()和$_GET[]只要结合就会判断为后门我们是否可以使用变量、函数、类、序列化来进行绕过呢我们一步一步测试。
使用变量去绕过失败 使用函数包裹住$_GET[]后发现没有在直接报后门shell此时为可疑eval此时说明我们的操作是有效果的只是还无法完全绕过D盾。 使用类来绕过任然和函数一样无法完全绕过D盾。 最后通过序列化函数serialize()、解序列化函数unserialize()、字符串截取函数substr()成功绕过了D盾限制。 0x04 总结
总结一下思路首先要定位哪一行代码会被杀软拦截接着分析为什么会被拦截最后根据现有线索去猜测拦截规则从而绕过杀软拦截。