2026/1/27 16:25:56
网站建设
项目流程
找人做网站注意哪些,安阳论坛网,惠州建设工程质量监督站网站,成都住建局官网电话查询郑重声明#xff1a;本文所涉安全技术仅限用于合法研究与学习目的#xff0c;严禁任何形式的非法利用。因不当使用所导致的一切法律与经济责任#xff0c;本人概不负责。任何形式的转载均须明确标注原文出处#xff0c;且不得用于商业目的。 #x1f50b; 点赞 | 能量注入…郑重声明本文所涉安全技术仅限用于合法研究与学习目的严禁任何形式的非法利用。因不当使用所导致的一切法律与经济责任本人概不负责。任何形式的转载均须明确标注原文出处且不得用于商业目的。点赞| 能量注入 ❤️关注| 信号锁定 收藏| 数据归档 ⭐️评论| 保持连接立即前往晖度丨安全视界▶ 信息收集▶ 漏洞检测 ➢ 防病毒软件概述 ➢ 内存中的逃避技术▶ 初始立足点▶ 权限提升▶ 横向移动▶ 报告/分析▶ 教训/修复目录1.防病毒软件规避1.2 绕过杀毒软件检测技术1.2.2 内存中的逃避技术1.主要技术内存注入PE注入2.技术方法概览1.2.2.1 远程进程内存注入1.核心技术流程2.远程内存注入的形象解析3.一些重要概念的解释①什么是Windows API②什么是句柄HANDLE欢迎❤️ 点赞 | 关注 | ⭐️ 收藏 | 评论1.防病毒软件规避1.2 绕过杀毒软件检测技术现代恶意软件为逃避防病毒软件的检测通常采用两类主要技术①磁盘上的逃避侧重于修改物理存储在磁盘上的恶意文件以逃避检测②内存中的逃避由于现代防病毒软件的文件扫描引擎日趋成熟更多恶意软件转向完全避免落地磁盘直接在内存中执行恶意操作从而大幅降低被检测概率。关键点内存逃避技术属于“无文件攻击”范畴恶意代码常通过合法进程注入、脚本加载等方式在内存中运行不留下传统文件痕迹。1.2.2 内存中的逃避技术内存注入也被称为PE注入。内存逃避技术是现代恶意软件对抗杀毒软件AV的高级手段。其核心在于完全避开磁盘直接在易失性内存中执行恶意操作从而绕过以文件扫描为核心的传统AV防御体系。⚡ 核心优势无文件化特性说明关键点 不接触磁盘恶意代码不写入或修改磁盘文件。直击传统AV的盲区因其主要监控磁盘文件活动。 操作在内存中所有注入、解密、执行均在进程内存空间内完成。隐蔽性极强只留下短暂的内存痕迹。️ 难以静态检测没有可供扫描的静态恶意文件实体。迫使AV依赖更高级的行为监控与内存扫描。1.主要技术内存注入PE注入流程简述将恶意负载如一个PE文件完整写入到另一个进程如explorer.exe的内存中并操控其执行流程去运行这段注入的代码。常用载体PowerShell因其强大的系统访问能力和在内存中执行代码的特性成为实施此类攻击的热门工具。2.技术方法概览除详细的PowerShell注入外其他内存逃避技术还包括因需C/C等底层知识此处仅简述进程空心化Process Hollowing动态链接库注入DLL Injection线程执行劫持Thread Execution Hijacking补充进程和线程的对比1.2.2.1 远程进程内存注入远程进程内存注入是一种将恶意代码植入到合法进程内存空间的高级技术。通过利用Windows系统API攻击者能够在不接触磁盘的情况下在另一个进程的庇护下执行恶意操作从而有效绕过传统杀毒软件的检测。1.核心技术流程 关键Windows API函数步骤API函数作用权限要求① 获取目标进程句柄OpenProcess打开目标进程获取进程操作句柄HANDLE需足够权限来访问目标进程PROCESS_ALL_ACCESS或类似高权限② 分配内存VirtualAllocEx在目标进程虚拟空间中分配新内存区域内存读写权限③ 写入负载WriteProcessMemory将恶意代码写入已分配的内存区域内存写入权限④ 执行代码CreateRemoteThread在目标进程中创建线程执行注入的代码线程创建权限尽管上述技术涉及复杂的Windows API编程但PowerShell等脚本语言提供了简化实现的方法。通过利用.NET框架和内置cmdlet攻击者可以用更少的代码完成类似功能这也是为什么PowerShell成为红队操作中内存注入的首选工具之一。2.远程内存注入的形象解析下面将通过一个大楼与房间的比喻生动解析远程进程内存注入的四个核心步骤 技术步骤与比喻对照表技术步骤大楼比喻对应的Windows API关键行为① 获取进程句柄获得房间钥匙用特殊手段取得进入特定房间进程的高权限钥匙。OpenProcess以足够权限如PROCESS_ALL_ACCESS打开目标进程。② 分配远程内存在房间内扩建空间在房间里合法“租赁”一块新区域用来存放外来设备。VirtualAllocEx在目标进程的虚拟地址空间中分配可读/写/执行的内存区域。③ 写入恶意负载将恶意设备搬入扩建区偷偷将组装好的恶意计算机代码搬入刚建好的空间。WriteProcessMemory将恶意代码payload写入到已分配的内存中。④ 创建远程线程启动设备并让其自动运行按下恶意计算机的“开机键”使其在房间内独立运行。CreateRemoteThread在目标进程内创建新线程指向并执行注入的代码。 检测与防御视角异常钥匙申请监控异常高权限的OpenProcess调用。可疑空间扩建检测进程内非常规的内存分配请求。陌生设备搬入发现进程向非自身镜像的内存区域写入代码。多出的工作人员警惕进程中出现来源不明的新线程。3.一些重要概念的解释①什么是Windows APIWindows API是微软为开发者提供的标准编程接口集合它不是单个函数而是由数千个函数、数据结构、常量和消息组成的完整工具箱。通过这个接口程序可以与Windows操作系统进行深度交互实现从文件操作到窗口管理的各种功能。比喻它像是操作系统的“服务总台”。️ Windows API核心组成部分组件类型作用实用示例 函数执行具体操作的核心工具CreateFile创建文件、OpenProcess打开进程️ 数据结构组织信息的标准化格式RECT定义矩形区域、WNDCLASS窗口类配置 常量预定义的固定值用于参数配置MB_OK确定按钮、WM_KEYDOWN键盘按下消息 消息系统与应用程序间的通信机制WM_PAINT重绘窗口、WM_CLOSE关闭窗口 工作原理Windows API通过动态链接库DLL实现主要分布在kernel32.dll核心系统服务进程、内存、文件user32.dll用户界面功能窗口、消息gdi32.dll图形绘制功能开发者调用这些DLL中的函数系统内核执行实际操作并将结果返回比如窗口管理、文件操作、网络通信等。DLL 文件与可执行文件EXE类似但不能独立运行必须由其他程序调用。它的主要作用是将常用的函数或资源封装起来供多个应用程序共享从而实现代码复用、模块化开发和内存优化。️ 生动比喻Windows API就像“高级餐厅的服务体系”想象你在一家豪华餐厅Windows操作系统用餐餐厅组件对应Windows API概念说明 标准化菜单函数库提供可点的菜品功能如“牛排套餐”CreateFile️ 服务员API调用你程序通过服务员点餐无需自己进厨房 厨房后台操作系统内核实际完成烹饪操作的神秘区域顾客无法进入 订单表格数据结构标准化的点餐单确保信息准确传递 传菜铃消息机制厨房通知服务员上菜的信号类似系统消息✨ 菜品标准常量定义如“七分熟”MB_OK确保理解一致这种设计让开发者无需了解操作系统内部复杂原理只需通过标准化的“点餐流程”API调用就能获得所需服务大大降低了编程难度。②什么是句柄HANDLE句柄是操作系统分配给资源的唯一标识符相当于一个资源访问凭证。它不是直接指向资源本身的指针而是由操作系统内部管理的抽象引用程序通过这个凭证来安全地操作各种系统资源像是操作系统的“资源钥匙”。 为什么需要句柄原因说明️ 安全性避免应用程序直接操作敏感资源防止系统崩溃或数据损坏 抽象化隐藏资源内部复杂实现细节简化编程接口 统一管理操作系统可以统一跟踪、管理和回收所有分配的资源✨ 句柄的核心特点 抽象标识通常表现为无符号整数不直接暴露资源内部结构️ 系统管理由操作系统统一分配、跟踪和释放 间接访问只能通过专用API函数操作无法直接读写资源内容 常见句柄类型句柄类型对应资源典型API 文件句柄打开的文件CreateFile、ReadFile 窗口句柄应用程序窗口CreateWindow、ShowWindow 内存句柄分配的内存块VirtualAlloc、HeapAlloc️ 设备句柄硬件设备CreateDC设备上下文 进程句柄运行中的进程OpenProcess、CreateProcess 实战示例文件句柄的创建与使用CreateFile函数原型使用CreateFile函数打开文件并返回一个文件句柄。hFile就是文件句柄。HANDLE hFile CreateFile( example.txt, // 文件名 GENERIC_READ, // 访问权限只读 0, // 共享模式独占访问 NULL, // ️ 安全属性默认 OPEN_EXISTING, // 打开方式仅打开已存在文件 0, // ️ 文件属性普通文件 NULL // 模板文件无 );参数常用值含义比喻访问权限GENERIC_READ只读访问 获得阅读许可证GENERIC_WRITE写入权限✍️ 获得修改许可证共享模式0独占访问 包场其他人不得进入FILE_SHARE_READ共享读取 允许其他人一起阅读打开方式OPEN_EXISTING仅打开存在的文件 只进已有的门CREATE_NEW创建新文件 开一扇全新的门✅ 返回值解析CreateFile函数返回值直接体现如下。它返回一个文件句柄HANDLE用于后续对该文件的操作如读取、写入、关闭等。HANDLE hFile CreateFile(...); // ← 返回值赋给hFile变量 成功返回有效的句柄值如0x000007F4 失败返回INVALID_HANDLE_VALUE-1或0xFFFFFFFF⚠️ 重要注意事项 及时关闭使用CloseHandle()及时释放句柄避免资源泄漏 错误检查每次API调用后检查返回值使用GetLastError()诊断问题 作用域管理确保句柄在有效作用域内使用避免悬空引用 完整的生命周期示例// 1. 创建/打开文件并接收返回值 HANDLE hFile CreateFile( test.txt, // 文件名 GENERIC_READ, // 访问模式 FILE_SHARE_READ, // 共享模式 NULL, // 安全属性 OPEN_EXISTING, // 创建方式 FILE_ATTRIBUTE_NORMAL, // 文件属性 NULL // 模板文件句柄 ); // ✅ 2. 验证返回值体现成败 if (hFile INVALID_HANDLE_VALUE) { // ❌ 失败返回值无效 DWORD error GetLastError(); printf(打开文件失败错误码%lu\n, error); return; } // 3. 使用返回值体现为句柄 // hFile现在代表test.txt文件 char buffer[100]; DWORD bytesRead; BOOL success ReadFile( hFile, // ← 使用CreateFile返回的句柄 buffer, sizeof(buffer), bytesRead, NULL ); // 4. 释放资源使用句柄关闭 CloseHandle(hFile); // ← 需要传入句柄作为参数重要解释·返回值即文件句柄hFileCreateFile函数返回HANDLE类型的值hFile即文件句柄。文件句柄是操作系统用于标识该文件的一个标识符。此文件句柄将用于后续的文件操作如读取文件、写入文件、关闭文件等。有效句柄0x00000002 或 0x000007F4 等。无效句柄失败的情况INVALID_HANDLE_VALUE其值通常为 -1 或 0xFFFFFFFF。·文件句柄的使用一旦获得了有效的文件句柄如 0x00000002可以在后续的API调用中使用它直到不再需要它时才关闭。典型的文件操作包括读取(ReadFile)、写入 (WriteFile)、移动文件指针(SetFilePointer)、获取文件信息 (GetFileInformationByHandle) 等。在操作完成后记得使用CloseHandle 关闭文件句柄以释放资源。️ 生动比喻句柄就像酒店房卡想象操作系统是一家豪华酒店概念酒店比喻说明系统资源酒店的各个房间、餐厅、健身房等设施操作系统管理的实体句柄房卡不是房间本身而是访问房间的凭证CreateFile前台办理入住获得指定房间文件的房卡句柄API函数酒店服务电话☎️通过标准接口请求服务不直接操作设施CloseHandle退房交还房卡释放资源让房间可被重新使用无效句柄无效房卡/已注销房卡无法打开任何房门关键优势酒店操作系统通过房卡系统既让你方便使用设施又保护了房间内部资源实现细节的隐私和安全。欢迎❤️ 点赞 | 关注 | ⭐️ 收藏 | 评论每一份支持都是我持续输出的光。