皮皮网
皮皮网

【actionbar 源码分析】【黑马弹射指标源码】【地图源码采集系统】edr源码泄露

时间:2024-12-24 08:49:48 来源:有道翻译源码

1.免杀动态对抗之syscall[源码分析]
2.Windows命令行下载远程payload及执行任意代码的码泄几种方法

edr源码泄露

免杀动态对抗之syscall[源码分析]

       基础概念

       操作系统分为内核和应用层,从R0-R3,码泄R0是码泄内核,R3是码泄用户层。Windows中日常调用的码泄API都是R3抽象出来的接口,虽然Win API它也是码泄actionbar 源码分析R3接口,但由于Windows的码泄设计思想就是高度封装,实际上的码泄R3 API是ntdll.dll中的函数。

       我们调用的码泄Win API都是kernel.dll/user.dll中的函数,最终都要经过ntdll.dll。码泄

       逆向学习一个函数,码泄选定CreateThread,码泄ntdll中的码泄对应函数是NtCreateThread。可以看到首先给eax赋值(系统调用号SSN),码泄然后再执行syscall。码泄

       EDR的工作原理是对Windows API进行hook。一般使用inline hook,即将函数的开头地址值改成jmp xxxxxxx(hook函数地址)。知道了syscall的调用模板,自己构造syscall(获取SSN,syscall),黑马弹射指标源码即可绕过EDR对API的hook。

       学习不同项目对应的手法,如HellsGate、TartarusGate、GetSSN、SysWhispers等。这些项目通过遍历解析ntdll.dll模块的导出表,定位函数地址,获取系统调用号SSN,实现动态获取SSN。地图源码采集系统

       使用直接系统调用或间接系统调用,如SysWhispers系列项目的直接系统调用(手搓syscall asm)和间接系统调用(使用用户态API,如kernel.dll中的API)。系统调用号SSN在不同版本的系统下是不一样的,可以参考相关技术博客整理的列表。

       SysWhispers2使用随机系统调用跳转(Random Syscall Jumps)避免“系统调用的标记”,通过SW__GetRandomSyscallAddress函数在ntdll.dll中搜索并选择一个干净的系统调用指令来使用。

       SysWhispers3引入了egg技术(动态字符替换,汇编指令层次的混淆)和支持直接跳转到syscalls,是与主力共存源码spoof call的变体,绕过对用户态asm文件syscall的监控。

       HWSyscalls项目通过kernel gadget,跳到ntdll.dll中做间接syscall,更彻底地实现了间接系统调用。

       这些项目的实现涉及软件中自定义堆栈流程、硬件断点等技术,通过内核函数调用、动态字符替换、异常处理机制等,绕过EDR检测和系统调用监控,价值偏离指数源码实现免杀动态对抗。

Windows命令行下载远程payload及执行任意代码的几种方法

       Windows命令行中,除了powershell,还有其他方式实现远程payload下载和执行任意代码。以下是一些满足特定条件的命令行工具和方法:

       利用内置二进制文件执行:通过滥用Microsoft标准文件,如IE缓存和WebDAV客户端缓存,来下载payload。这种方式要求工具支持HTTP URL参数传递、UNC路径处理,以及执行下载的内联脚本。

       Powershell:以powershell.exe执行payload,它通常不直接写入硬盘,但可以使用编码技巧绕过安全检测。通过WebDAV服务器访问时,payload会保存在WebDAV客户端本地缓存。

       cmd.exe与批处理文件:可以使用批处理文件嵌入payload,但同样会写入WebDAV客户端本地缓存。

       Cscript/Wscript:通过这两个脚本工具下载payload,写入位置同样是WebDAV客户端本地缓存。

       Mshta:支持执行内联脚本,可用mshta.exe接收URL或HTA文件,写入IE本地缓存。

       Rundll:可通过UNC路径执行DLL或内联JScript,写入WebDAV客户端本地缓存。

       Regasm/Regsvc:利用特定DLL和WebDAV接口,写入WebDAV客户端本地缓存。

       Regsvr:有多种实现方式,写入位置取决于使用方法,可能是IE本地缓存或WebDAV客户端。

       Msbuild:通过msbuild.exe间接执行payload,写入WebDAV客户端本地缓存。

       组合技巧:可以结合不同工具下载和执行payload,如certutil.exe或InstallUtil.exe。

       payload源码示例:使用.sct脚本、.hta文件、MSBuild内联任务或DLL,可以从指定地址获取实例。

       值得注意的是,如bitsadmin工具因不支持代理而未被提及。这些方法在满足条件的同时,也需考虑EDR监控和安全策略。更多详细内容可通过原文链接获取。

更多内容请点击【百科】专栏