绕过杀毒软件之一(实时监控篇)

远程控制被控端与杀毒软件的博弈 1、启动PowerSploit的方法:开始/搜索程序和文件(输入:PowerShell,选择Windows PowerShell)注意:程序被注入后,可能会出现工作异常的情况,所以不要注入到系统进程里,否则会引起程序崩溃。记事本是否已经崩溃?注:每深入一次分解,分解小文件的大小要逐级降低,如改为:-interval 1000、-interval 100。7、这次生成的是64位的攻击载荷,对64位的进程有效,那么对32位的进程有否有效?(3)对报毒的文件重复上述分解、查毒过程,直到找到特征码所在的位置。 阅读详情
杀毒软件的实时监控分为两个部分
  一:Notify部分
  二:Attach到文件系统部分

一:Notify对与杀毒软件致关重要(有些流氓软件也用的),主要用到的是
   PsSetLoadImageNotifyRoutine和
   PsSetCreateProcessNotifyRoutine这两个函数

1 PsSetLoadImageNotifyRoutine(
  IN PLOAD_IMAGE_NOTIFY_ROUTINE  NotifyRoutine
  );
  通过字面意思大家也知道,就是文件被加载的时侯会调用这个
NotifyRoutine ;最简单的是一个Exe在Run的过程中,PE加载器检查它所depend的dll,然后由PE加载器LoadLibaray这些dll,此时 NotifyRoutine 就被调用起来了。
(PS:这个NotifyRoutine就是一个callback)

part1: 2k下的分析 
kd> u PsSetLoadImageNotifyRoutine L10
nt!PsSetLoadImageNotifyRoutine:
804e31d4 b89a0000c0       mov     eax,0xc000009a
804e31d9 33c9             xor     ecx,ecx
804e31db ba20324880       mov     edx,0x80483220
804e31e0 833a00           cmp     dword ptr [edx],0x0
804e31e3 740e             jz      nt!PsSetLoadImageNotifyRoutine+0x1f (804e31f3)
804e31e5 83c204           add     edx,0x4
804e31e8 41               inc     ecx
804e31e9 81fa40324880     cmp     edx,0x80483240
804e31ef 72ef             jb      nt!PsSetLoadImageNotifyRoutine+0xc (804e31e0)
804e31f1 eb1a             jmp     nt!PsSetLoadImageNotifyRoutine+0x39 (804e320d)
804e31f3 8b442404         mov     eax,[esp+0x4]
804e31f7 ff0504324880 inc dword ptr [nt!PspLoadImageNotifyRoutineCount (80483204
)]
804e31fd 89048d20324880 mov [nt!PspLoadImageNotifyRoutine (80483220)+ecx*4],eax
804e3204 33c0             xor     eax,eax
804e3206 c6051031488001 mov byte ptr [nt!PsImageNotifyEnabled (80483110)],0x1
804e320d c20400           ret     0x4

对应c代码:
ULONG i;
NTSTATUS Status;
Status = STATUS_INSUFFICIENT_RESOURCES;
for (i=0; i < PSP_MAX_LOAD_IMAGE_NOTIFY; i++) 
{
   if (PspLoadImageNotifyRoutine[i] == NULL)
   {
       PspLoadImageNotifyRoutine[i] = NotifyRoutine;
       PspLoadImageNotifyRoutineCount+= 1;
       Status = STATUS_SUCCESS;
       PsImageNotifyEnable= TRUE;
       break;
   }
}

我们如果不想让某个
NotifyRoutine 监控,就把它在PspLoadImageNotifyRoutine数组中对应项清空,可是PspLoadImageNotifyRoutine并没有导出,我们不能直接调用,有什么方法呢?

1)  我们自己写个MyNotifyRoutine.
    VOID MyNotifyRoutine(
    IN PUNICODE_STRING  FullImageName,
    IN HANDLE  ProcessId, 
    IN PIMAGE_INFO  ImageInfo)
{
    return;
}

2) PsSetLoadImageNotifyRoutine(MyNotifyRoutine);

3) 直接在PsSetLoadImageNotifyRoutine函数里找有效地址,然后访问这个地址,看有没有MyNotifyRoutine的地址,没有的话再找下一个;

4) 直到找到为止,那么此时这个有效地址就是PspLoadImageNotifyRoutine的地址了

5) 遍历PspLoadImageNotifyRoutine数组中的地址,检查这些地址是否落在某个驱动程序的地址范围,如果是的话,清了这一项,现在再LoadLibrary这个驱动程序就不会收到任何通知了。
如果你闲麻烦就直接把PspLoadImageNotifyRoutine所有项都清理掉。


part2: xp/2003下的分析
lkd> u  PsSetLoadImageNotifyRoutine  L25
nt!PsSetLoadImageNotifyRoutine:
8062d4f7 8bff             mov     edi,edi
8062d4f9 55               push    ebp
8062d4fa 8bec             mov     ebp,esp
8062d4fc 53               push    ebx
8062d4fd 57               push    edi
8062d4fe 33ff             xor     edi,edi
8062d500 57               push    edi
8062d501 ff7508           push    dword ptr [ebp+0x8]
8062d504 e833790100       call    nt!ExAllocateCallBack (80644e3c)
8062d509 8bd8             mov     ebx,eax
8062d50b 3bdf             cmp     ebx,edi
8062d50d 7507             jnz     nt!PsSetLoadImageNotifyRoutine+0x1f (8062d516)
8062d50f b89a0000c0       mov     eax,0xc000009a
8062d514 eb2a             jmp     nt!PsSetLoadImageNotifyRoutine+0x49 (8062d540)
8062d516 56               push    esi
8062d517 be001d5680       mov     esi,0x80561d00
8062d51c 6a00             push    0x0
8062d51e 53               push    ebx
8062d51f 56               push    esi
8062d520 e84e790100       call    nt!ExCompareExchangeCallBack (80644e73)
8062d525 84c0             test    al,al
8062d527 751d             jnz     nt!PsSetLoadImageNotifyRoutine+0x4f (8062d546)
8062d529 83c704           add     edi,0x4
8062d52c 83c604           add     esi,0x4
8062d52f 83ff20           cmp     edi,0x20
8062d532 72e8             jb      nt!PsSetLoadImageNotifyRoutine+0x25 (8062d51c)
8062d534 53               push    ebx
8062d535 e89134f4ff       call    nt!RtlpSysVolFree (805709cb)
8062d53a b89a0000c0       mov     eax,0xc000009a
8062d53f 5e               pop     esi
8062d540 5f               pop     edi
8062d541 5b               pop     ebx
8062d542 5d               pop     ebp
8062d543 c20400           ret     0x4


对应c代码:
     ULONG i;
     PEX_CALLBACK_ROUTINE_BLOCK CallBack;

     CallBack = ExAllocateCallBack((PEX_CALLBACK_FUNCTION) NotifyRoutine, NULL);
     if (CallBack == NULL) {
         return STATUS_INSUFFICIENT_RESOURCES;
     }
 
     for (i = 0; i < PSP_MAX_LOAD_IMAGE_NOTIFY; i++) {

         if (ExCompareExchangeCallBack(&PspLoadImageNotifyRoutine[i],
                                        CallBack,
                                        NULL)) {
             InterlockedIncrement ((PLONG)&PspLoadImageNotifyRoutineCount);
             PsImageNotifyEnable = TRUE;
             return STATUS_SUCCESS;
         }
     }
     ExFreeCallBack(CallBack);

    return STATUS_INSUFFICIENT_RESOURCES;


 
2 PsSetCreateProcessNotifyRoutine

二 Attach到文件系统部分

 
绕过26款杀毒软件的Ghost远程控制工具使用指南 本文还有配套的精品资源,点击获取 简介:文章涉及网络安全领域技术,主要讲述如何让远程控制工具Ghost规避26款杀毒软件的检测。工具被描述为有效且为英文版,但使用需谨慎。标题和标签强调了该工具可以绕过杀毒软件,且可能以Ghost Recon为参考,但实际指的是一种远程控制软件或恶意软件。下载的文件名为2.7.exe,暗示是一个经过优化的远程控制工具程序,潜在地可用于合法的远... 阅读详情

相关推荐

ESET NOD32杀毒软件中文版安装与安全使用指南

在这个充斥着广告、捆绑、后台挖矿的杀软市场里,ESET NOD32 像一股清流:🧠 轻巧却不简单,50MB内存撑起整套智能防御;🛡️ 深度集成,从文件、邮件到Web全面布控;🌐 云端协同,让全球用户共享威胁情报红利;🔒 加密严谨,杜绝非授权使用带来的安全隐患。更重要的是,它始终坚持“少打扰、多保护”的设计理念,把用户体验放在首位。无论是家里的老人电脑,还是工厂里的工控机,亦或是企业上千台终端,NOD32 都能稳稳托底。

weixin_36151775的博客 1344

基于PsSetLoadImageNotifyRoutine实现监控模块加载并卸载已加载模块(卸载DLL、EXE和sys等加载)

背景 对于内核层实现监控模块的加载,包括加载DLL模块、内核模块等。你也许会想到 HOOK 各种内核函数来实现。确定,在内核层中的 HOOK 已经给人留下太多深刻的印象了,有 SSDT HOOK、Inline HOOK、IRP HOOK、过滤驱动等等。 但是,Windows 其实给我们提供现成的内核函数接口,方便我们在内核下监控用户层上模块加载的情况,即 PsSetLoadImageNotifyRoutine 内核函数,可以设置一个回调函数,来监控监控模块加载。 现在,本文就使用 PsSetLoadI

苞米地里捉小鸡的博客 4602

警惕!运行前需关闭杀毒软件的小程序可能暗藏风险

小程序是一种轻量级应用程序,依托宿主环境(如微信客户端、Electron容器或系统解释器)运行,具备启动迅速、资源占用低、功能专一等优势。其代码通常由JavaScript、TypeScript或编译后的字节码构成,封装为可执行单元(如.js.exe或压缩包),通过平台提供的运行时引擎加载执行。

weixin_29363791的博客 1105

绕过杀毒软件之一(实时监控篇)续

上次说的绕过杀毒软件之一(实时监控篇)中,提供了解决方法这是对应代码:(至于如何清理具体驱动的NotfiyRoutine,就是找到驱动所加载的地址,用PsLoadedModuleList或ZwQuerySystemInformation,然后判断PspLoadImageNotifyRoutine中的项是否落在此驱动范围,我在这就不罗嗦了,自己动手去)//FixNotify.h//Its for

老裴 2234

精选_基于PsSetLoadImageNotifyRoutine实现监控模块加载并卸载已加载模块_源码打包

基于PsSetLoadImageNotifyRoutine实现监控模块加载并卸载已加载模块

STM32 HAL库状态机实现按键多事件检测(无阻塞高效处理)

本文详细介绍基于STM32 HAL库的状态机实现按键多事件检测方法,包括单击、双击等高效无阻塞处理。通过定时器中断和GPIO中断优化,结合状态机设计,显著提升系统响应效率和实时性,适用于嵌入式系统开发。

tech5的博客 1016

在Minifilter中使用PsSetCreateProcessNotifyRoutine之后监控到的一些进程信息

一个进程总是被另一个进程创建的,追根求源,所有进程的“父”进程都是0进程 以双击桌面上的1.txt为例: 默认方式1.txt会被notepad.exe打开,在回调 VOID (*PCREATE_PROCESS_NOTIFY_ROUTINE) (     IN HANDLE  ParentId,     IN HANDLE  ProcessId,     IN BOOLEAN

fengkuangfj的专栏 1660

STM32串口DMA双缓冲机制实战:提升数据传输效率的终极方案

本文深入解析了STM32串口DMA双缓冲机制的核心原理与实战配置。通过对比传统中断方式,阐述了双缓冲如何实现数据接收与处理的“无缝接力”,从而在工业传感器数据采集等高负载场景下,将CPU占用率降至极低水平并彻底避免数据丢失。文章提供了基于标准外设库的详细配置步骤、中断处理逻辑及性能实测数据,是提升嵌入式系统串口通信效率和可靠性的终极方案。

weixin_29192365的博客 79

PsSetCreateProcessNotifyRoutine进程黑名单

通过PsSetCreateProcessNotifyRoutine可以设置一个进程回调 当有进程被创建的时候 回调用这个通知 我写了一段代码 通过检测进程对应的文件的版本信息来拒绝进程运行 360以前就这么干的 主要是怎么通过进程ID获取进程的全路径 还有怎么在驱动里面访问程序的资源 #ifndef _SHIELDER_H #define _SHIELDER_H #ifdef

求索 1775

VMware ESXi +DELL虚拟化存储磁盘容量处于紧急状态问题的处理

1、环境介绍 exsi server两台(DELL R730 ): 192.168.3.206 VMware EXSi6.5 192.168.3.207 VMware EXSi6.5 磁盘存储柜一台(DELL SC2000): 192.168.3.208 2、故障处理 由于前期规划的卷空间过大,虚拟机文件逐年增大以后,造成卷的磁盘占用过与整个磁盘空间的容量,虚拟化平台可用容量爆掉,DELL SC2000自动切换到紧急状态,禁止所有磁盘I/O,exsi主机上的虚拟机无法开机 首先,安装

wolf1105的博客 3531

[ensp报错:USG6000V错误代码45解决方案]

[ensp报错:USG6000V:错误代码45解决] [ensp报错:USG6000V:错误代码45解决] 第一种处理方式: ensp的45错误帮助文档里的解决方法:(这里就不说了,上华为爸爸的图) ensp的45错误:如果你的45错误不是描述的那个,可能是ensp与virtualbox不兼容了。 错误描述:具体表现为在virtualbox里没有vfw_usg的条目,虚拟介质管理器里也没有相应的条目: 就是vfw_usg_vdi这个 这种情况下你把ensp卸载重装多少次都没用,原因在两个软件的兼容

weixin_45456536的博客 3万+

绕过杀毒软件之一续

上次说的绕过杀毒软件之一(实时监控篇)中,提供了解决方法这是对应代码:(至于如何清理具体驱动的NotfiyRoutine,就是找到驱动所加载的地址,用PsLoadedModuleList或ZwQuerySystemInformation,然后判断PspLoadImageNotifyRoutine中的项是否落在此驱动范围,我在这就不罗嗦了,自己动手去)//FixNotify.h//Its for

1068

DeepSeek在实时计算与流处理系统中的突破性实践

对于技术决策者而言,现在正是将DeepSeek实时计算技术纳入企业架构蓝图的关键时机,那些能够率先构建实时智能能力的企业,将在数据驱动的商业竞争中赢得决定性优势。DeepSeek通过创新的流处理架构,成功将复杂事件处理(CEP)的延迟降低到亚秒级,同时保证了计算结果的精确性。DeepSeek研发的神经架构搜索(NAS)与知识蒸馏联合优化框架,可在保持模型精度的前提下,将参数量压缩至原始模型的1/100,实现边缘设备的实时AI推理。随着5G和物联网技术的普及,对实时处理能力的需求将呈指数级增长。

Programming Talk 290

绕过杀毒软件之一

杀毒软件的实时监控分为两个部分  一:Notify部分  二:Attach到文件系统部分一:Notify对与杀毒软件致关重要(有些流氓软件也用的),主要用到的是   PsSetLoadImageNotifyRoutine和   PsSetCreateProcessNotifyRoutine这两个函数1 PsSetLoadImageNotifyRoutine(  IN PLOAD_IMAGE_NOT

2044

量化交易:如何在QMT中运行Python策略并在VSCode中高效调试?

哈喽,大家好,我是木头左!

木头大左的博客 3759

AIGC时代的必备技能:提示词工程(Prompt Engineering)全面指南

本文主要介绍了AIGC时代的重要技能——提示词工程(Prompt Engineering)。文章首先定义了提示词的概念,强调其作为人类与AI沟通桥梁的重要性,并详细阐述了提示词的功能特性,包括输入、大模型处理和输出三个环节。接着,文章探讨了提示工程的重要性,如提高输出质量、节省资源和时间等。随后,文章深入分析了提示词的基本构成要素,包括指令、上下文、输入数据和输出指示符,并提出了提示词的五大基本原则:清晰性与具体性、提供充足的上下文、明确任务与目标、考虑受众和迭代思维。最后,文章介绍了提示词的七大常见技巧

weixin_43178406的博客 27万+

Chromepass免杀技巧:绕过32款杀毒软件的实战经验分享

Chromepass是一款专注于获取Chrome保存密码的工具,本文将为大家分享如何通过实用的免杀技巧,成功绕过32款主流杀毒软件的检测,让你在合法授权的测试环境中顺利使用该工具。 ### 一、准备工作:快速获取与配置Chromepass 首先,你需要获取Chromepass项目。打开终端,输入以下命令克隆仓库: `git clone https://gitcode.com/gh_mirro

gitblog_00227的博客 926

A*搜索算法在三维路径规划(避障)中的MATLAB实现与Python实现

A star algorithmA*搜索算法简介A*搜索算法的Python简化代码MATLAB实现启发函数回溯轨迹RRT算法对比A\*算法在三维路径规划中的一些不足 A*搜索算法简介 A*搜索算法是Greedy Best-First算法的改进,因为Greedy Best-First算法只考虑将预估距离(当前节点到目标点的预估距离)作为遴选开节点集的条件。即: priority=heuristic(goal,next)priority=heuristic(goal, next)priority=heurist

ZYunfei的博客 2万+

杀毒软件开发驱动篇ObRegisterCallbacks(进程保护)

本文介绍了Windows杀毒软件如何利用ObRegisterCallbacks机制实现进程保护。该API从Vista系统引入,允许在内核层拦截进程/线程句柄操作,相比传统Hook方式更稳定可靠。文章详细阐述了ObRegisterCallbacks的功能特点:可拦截进程句柄创建、线程句柄创建和句柄复制操作,并能修改访问权限以防止进程被终止。同时提供了代码示例展示如何保护特定进程(如notepad.exe),通过清除PROCESS_TERMINATE等关键权限位实现防护。这种官方支持的机制避免了PatchGua

网络安全相关文章分享 1103

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

十个最好的免费杀毒软件下载

  病毒越来越多,杀毒软件竞争也越来越激烈,个人版杀毒软件免费化已经成为了一种趋势,不少有眼光的安全厂商通过发放免费版的杀毒软件,建立起用户的信任,培养足够的市场份额,引导用户升级到功能更为全面的专业版。下面就是十个最好的免费杀毒软件,挑选其中任意一个,对个人来说就完全够用了。 1、a-squared Free:查杀病毒木马的利器    a-squared Free是一个强大、免费、支持简

简稳稳Blog 1075

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

内核攻防实战:从漏洞利用到杀毒软件防护体系深度剖析

内核作为操作系统的核心,其安全性直接关系到整个系统的稳定。内核漏洞利用,如堆溢出、UAF(Use-After-Free)和权限检查缺失,通过精心构造的代码执行路径,能够绕过常规安全机制,实现权限提升或持久化控制,对系统构成严重威胁。这类攻击的技术价值在于揭示了底层防御的脆弱性,促使安全防御向纵深发展。在应用场景上,无论是高级持续性威胁(APT)还是勒索软件,内核级攻击都日益常见。本文聚焦于杀毒软件如何在内核层构建防护体系,并分析其自身可能存在的攻击面,例如通过CVE-2023-23752这类逻辑漏洞或驱动接

weixin_34054866的博客 470

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

杀毒软件效率革命:十大产品扫描速度深度对比

最近在研究不同杀毒软件的性能表现,特别关注它们在扫描速度、资源占用等方面的差异。为了得到准确的测试数据,我决定自己开发一个杀毒软件性能分析工具。开发这个工具的过程中,我深刻体会到性能优化的重要性。一个好的杀毒软件不仅要有强大的防护能力,还需要在效率上做到平衡。这个平台提供了便捷的在线开发环境,无需复杂配置就能开始编码,特别适合快速验证想法。对于需要持续运行的服务类项目,平台的一键部署功能特别实用,可以快速将开发成果分享给他人测试。我选择使用C#来开发这个工具,主要考虑其在Windows平台的良好兼容性。

ThunderstormLynx23的博客 708

突破一些杀毒软件的监控的一个方法

很多的防火墙和杀毒软件在监控的时候都是钩住一些关键的API比如注册表和文件以及网络操作的API大多的技术是使用我以前做的进程防护开发包的原理,在全局dll里面加入如果加载的话就开始替换API,怎么钩住一些程序呢,就设置全局消息钩子,只要有消息流通的就会被钩住,但是! 大二做一个filehidden的时候,是使用的winexec修改的注册表,发现修改之后瑞星根本不提示有注册表被修改(

444

杀毒软件安全漏洞剖析:从文件解析到权限提升的攻防实战

在网络安全领域,文件解析与权限管理是基础且关键的技术概念。文件解析器负责处理各类格式数据,其安全边界一旦被突破,可能导致缓冲区溢出等内存破坏漏洞。权限管理则定义了进程对系统资源的访问控制,高权限进程若存在缺陷,将直接威胁系统安全。这些原理共同构成了软件安全的核心防线,其技术价值在于保障应用层与系统层的完整性。在端点安全场景中,杀毒软件作为高权限运行的复杂应用,集成了大量文件解析器并深度监控系统行为,这使得它成为攻击者重点关注的攻击面。本文聚焦于杀毒软件特有的安全漏洞,深入分析其因文件解析逻辑缺陷和权限提升机

weixin_29314405的博客 320

杀毒软件对抗测试:病毒免杀技术与纵深防御实战解析

特征码扫描和启发式分析是杀毒软件检测恶意软件的核心技术原理,它们通过比对已知病毒库和识别可疑行为模式来保障系统安全。这些技术的价值在于为终端提供基础防护,但面对不断进化的威胁,其局限性也逐渐显现。在实际应用场景中,高级恶意软件常采用免杀技术、行为监控绕过等手段规避检测,这使得单一依赖杀毒软件的风险增加。因此,构建包含网络隔离、日志监控和终端检测响应(EDR)的纵深防御体系至关重要。本文通过一个具体的对抗测试案例,深入剖析了病毒如何利用代码混淆、环境感知等技术实现免杀,并探讨了在安全测试中如何搭建隔离环境、设

weixin_33696822的博客 356

杀毒软件原理 四

过主动原理 安全软件现状 安全套装普及,反病毒软件、软件防火墙与HIPS技术的融合: 主动防御广泛运用 恶意软件面临的问题 所有传统后门、木马、rootkit初次安装以及进行相关操作时均 无法绕过主动防御的监控,采用主动防御技术的安全软件将提示 用户发现安全威胁。 主动防御为什么对恶意软件有威慑力 ? 自启动 ? 绕过软件防火墙而采用的方法 ? 密码截取 ?

木休的斋堂 2059
上一篇: Code Inject的新技术
下一篇: 绕过杀毒软件之一(实时监控篇)续
pll621
博客等级 码龄25年 27粉丝 87原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值