avatar
Articles
29
Tags
0
Categories
6

Home
Archives
Categories
About
卡卡罗特取西经
Home
Archives
Categories
About

卡卡罗特取西经

直接系统调用 VS 间接系统调用
Created2025-10-19|免杀研究
前言上文中我们讲述了直接系统调用技术,它可以不使用ntdll中的Syscall(系统调用)指令,自己在代码中实现、用以绕过针对ntdll中函数的hook,特点是Syscall指令在程序自身的内存空间中,而不是ntdll的内存空间中,由此,AV/EDR也有了相应的检测机制,如果发现Syscall指令不在ntdll内存空间中,则将其视为可疑的IoC,攻击者为了消除这个IoC,间接系统调用技术在此背景下诞生 本文主要讲述间接系统调用,先回顾一下用户模式API Hook,然后是直接系统调用的实现细节,最后将直接系统调用改为间接系统调用,并分析二者的区别,并在文末介绍间接系统调用的一些限制 用户模式API Hook用户模式API Hook让EDR能够动态审查Windows API,多数EDR会使用Inline Hook(内联Hook),在内存中插入jmp指令,使程序执行流程进入EDR的hooking.dll 当EDR研判当前Windows API不是恶意的,会跳转回ntdll.dll,并执行Syscall继续进入内核,如果研判当前Windows API是恶意的,则会终止执行 直接系统调用躲避E ...
直接系统调用之从上层API到下层API的旅程
Created2025-10-15|免杀研究
前言各家安全厂商基本都实现了用户模式Hook,简单说就是恶意软件使用Windows API时,被安全厂商重定向到它自己的Hooking.dll,然后进一步分析,如果研判代码没有恶意行为则放行,如果研判代码有恶意行为则拦截,这促使攻击者使用了新的技术,例如Unhooking、直接系统调用、间接系统调用、等等 本文主要介绍直接系统调用,并介绍如何在Visual Studio中通过C++创建一个使用直接系统调用的Loader,我会先用Win32 API写一个Loader,然后Win32被替换为直接系统调用 直接系统调用技术已经诞生好几年,不是一个新技术,本文中我想重新回顾一下这个话题,探讨一下直接系统调用涉及的知识,以及如何实现基于它的Loader,并使用诸如API Monitor、Dumpbin和x64dbg等工具来分析这个Loader,例如,查看Loader是否正确导入Windows API,以及Syscall在PE结构的哪个节区执行 什么是系统调用系统调用英文System Call,简称Syscall,单纯讲系统调用概念是什么,对初学者来说可能不太好理解,我们通过一个例子来说明,用户模 ...
高级进程注入之利用线程名和APC(下)
Created2025-10-13|免杀研究
前言书接上文,高级进程注入之利用线程名和APC(上) 上文中已经介绍了相关的API,本文会讲述利用线程名实现注入的细节,相比较传统的进程注入需要创建线程,这是一个不需要创建线程的新技术 介绍通常,向一个进程的内存写入内容需要我们在打开进程句柄时带有写权限,也就是PROCESS_VM_WRITE,https://learn.microsoft.com/en-us/windows/win32/procthread/process-security-and-access-rights但这可能被AV/EDR视为可疑指标,利用线程名注入允许我们无需写权限实现远程写入 我们需要的权限如下 1234567891011HANDLE open_process(DWORD processId, bool isCreateThread){ DWORD access = PROCESS_QUERY_LIMITED_INFORMATION // 想要读取远程进程的PEB地址,需要这个权限,后文会提到 | PROCESS_VM_READ ...
高级进程注入之利用线程名和APC(上)
Created2025-10-10|免杀研究
前言进程注入是攻击方武器库中最重要的技术之一,本文将会介绍如何使用线程描述相关的API实现绕过AV/EDR的进程注入,最后会提供相应的检测方式。(线程描述相关的API,线程描述和线程名是一个意思) 进程注入是高级恶意软件中一定会使用的技术,它的用途包括:1、AV/EDR躲避:隐藏恶意代码在一个合法的进程中2、操作现有进程:经典的就是lsass进程的dump3、权限提升 由于读取现有进程的内存危害很大,所以各种AV/EDR都会重点监控并阻止这个行为,不过监控也是基于已知的技术,一旦有未知技术,AV/EDR将很难监控,这本质是一个猫鼠游戏,并且永远不会结束。攻击方一直在尝试使用新技术躲避检测,比如在2016年FortiGuard Labs公开的原子爆炸技术,它使用原子表传递代码到远程进程中,再比如2023年SafeBreach公开的池聚会技术,线程池被滥用在远程进程的上下文执行代码,想了解各种注入技术,可以查看2019年BlackHat UAS中分享的Windows Process Injection in 2019 本文要介绍的技术称之为“线程名调用”,这项技术允许植入shellcode ...
APC系列之用户模式APC
Created2025-10-07|免杀研究
前言这个系列的目的是希望你能系统的理解APC的内部原理(不再是零散的理解) 我重构了用户模式和内核模式下APC相关的函数,希望更好的理解APC机制,在文章的最后会分享源码 在这个系列中,我将探讨下面的主题1、用户模式下APC的使用2、内核模式下APC的使用3、用户模式下APC内部原理4、内核模式下APC内部原理5、“Alerts”的概念以及它和APC的关系6、APC在Wow64中的应用7、如何在用户模式和内核模式下干扰微软对APC的ETW监控8、如何使用APC安全的卸载一个驱动程序9、像Procmon和Process Hacker这类安全工具如何利用APC10、CET(用于检测ROP的CPU Shadow Stack)如何影响APC11、关于APC机制有文档的源代码12、关于APC的逆向工程练习13、接下来文章中的惊喜 本文是系列的第一篇文章,讲述用户模式下APC,是这个系列中相对简单的部分,文中我将一边讲解,一边分享代码 APC介绍APC全称Asynchronous Procedure Call,译为“异步过程调用”,是Windows中使用的一种机制,这种机制的核心是一个队列,通常称 ...
Windows下32位汇编学习(二)PE文件解析
Created2025-09-29|汇编语言
引言想开发反病毒引擎,第一步总是对PE文件进行解析,虽然有点落伍,但这是基础,想开发病毒也同理,很多的病毒样本在使用Indirect Syscall + 调用栈欺骗前,都需要动态调用API,这个时候就需要你了解PE文件的结构,通过解析PE文件找到IAT,进而找到PEB来动态获取地址,所以不想学也得学~ 本文会介绍从书中学到的部分知识,以及通过C++和汇编分别实现一个PE文件解析器 本篇博客的学习参考罗云彬老师的《Windows环境下32位汇编语言程序设计》,尤其是第17章的“PE文件” 正文借用一下罗云彬老师的图,PE文件从文件头到文件尾依次是:DOS部分、PE头、节表、节数据DOS部分:包括DOS标识和DOS代码,为了兼容DOS系统而保留的部分PE头:包括PE标识、PE头、PE可选头节表:下面节数据的起始位置、大小节数据:就是代码段、数据段上面是用通俗的语言描述,在代码中是下面的样子 DOS部分12345IMAGE_DOS_HEADER { e_magic 2字节 // DOS标识 ... e_lfanew 4字节 // PE头 ...
通过APC执行Shellcode
Created2025-09-26|免杀研究
前言本篇博客主要介绍APC是什么、APC函数何时被执行,不会包含太多深层次的分析,主要是介绍APC如何被用来执行shellcode APC介绍APC,全称Asynchronous Procedure Calls,译为异步过程调用,在Windows下是一种机制(我猜测在其他操作系统下也是类似的机制),允许异步执行函数,所谓的异步执行,指的是当前线程执行过程中,有一个异步执行任务,当前线程无需等待这个异步执行任务,可以继续执行,相对应的,同步执行,指的是当前线程执行过程中,有一个同步执行任务,当前线程需要等待这个同步执行任务,无法继续执行,同步执行的结果当场就返回了,异步执行的结果是通过一个回调机制返回 Windows中关于APC的一个重要特点是,只有线程处于警报状态时,线程APC队列中的APC函数才会执行,通过调用SleepEx()、WaitForSingleObjectEx()、SignalObjectAndWaitEx()、SignalObjectAndWait()、WaitForMultipleObjectsEx()可以让线程处于警报状态 Windows中的APC包含多种类型,也分 ...
回调函数
Created2025-09-18|免杀研究
恶意的Loader和PIS(Position-Independent Shellcode)会使用各种技术来绕过AV/EDR和安全人员的分析,其中代码执行这个环节经常会通过“回调函数”的方式来隐蔽的执行。回调的本质是将函数A的地址传给函数B,在函数B执行的过程中,触发某个条件后,停下来执行函数A 回调分为异步的和同步的 异步的回调例如,鼠标移动时,对应的Hook被触发,Hook处理的同时,鼠标继续移动 同步的回调例如,函数A要读取数据B,触发某个条件后,函数C修改数据B,然后函数A继续读取数据B 下面是一个回调函数的示例 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475#include <windows.h>// 声明窗口过程回调函数,用于处理窗口消息LRESULT CALLBACK WindowProc(HWND hwnd, UINT uMsg ...
一次简单的钓鱼分析之FTP执行LNK
Created2025-09-03|免杀研究
01 引言吾爱上看到一篇病毒分析文章,初步看了一眼像是FTP执行LNK的方式,早在2022年甚至更早就公开的技术了,好像24年HVV期间用来社工钓鱼还火过一阵,借着这个机会学习记录一下原文地址:https://www.52pojie.cn/thread-2054571-1-1.html 02 正文FTP的交互式命令行中,可以通过!的方式执行命令,如下图还有一个命令行选项-s,可以批量执行某个文件中的命令,如下图 下面是钓鱼样本中的部分命令,在注释中有详细解释 123456789101112131415161718192021222324252627282930313233343536373839404142# copy /Y 目的路径有同名文件时,不提示直接覆盖# "_\_\_\_\_\_\_\_\doc\*.*" 恶意攻击者刻意构造的多级目录,每级目录的名字都为_# >nul 正常copy一个文件,cmd会有输出,移动了哪些文件,此命令屏蔽这些输出!call ...
“WorstFit”学习
Created2025-08-14|漏洞研究
前言翻推特时看到Orange的一篇文章:“WorstFit: Unveiling Hidden Transformers in Windows ANSI!”,被标题吸引点进去看看,仔细研读后发现,文章展现了一个新的攻击面,漏洞很精彩。由于时间有限这里只做一个简单的学习笔记。文中甚至揭露了ElFinder在Windows下的一个后台RCE 0day(ElFinder是一款开源的基于PHP的Web文件管理系统) 原文链接:https://blog.orange.tw/posts/2025-01-worstfit-unveiling-hidden-transformers-in-windows-ansi/ 漏洞背景知识点1Windows最初用的字符集是ANSI,后来扩展到Unicode字符集,但Windows承诺永远向后兼容,所以现在仍然兼容ANSI字符集。兼容ANSI字符集的方式是,内部有一个API RtlUnicodeStringToAnsiString(或者WideCharToMultiByte)将Unicode字符转换为ANSI字符。我们都知道,Windows下的GetCurrent ...
123
avatar
ybdt
Articles
29
Tags
0
Categories
6
Follow Me
Announcement
要想练就绝世武功,就要忍受常人难忍受的痛
Recent Post
直接系统调用 VS 间接系统调用2025-10-19
直接系统调用之从上层API到下层API的旅程2025-10-15
高级进程注入之利用线程名和APC(下)2025-10-13
高级进程注入之利用线程名和APC(上)2025-10-10
APC系列之用户模式APC2025-10-07
Categories
  • 免杀研究12
  • 工具开发2
  • 心路历程1
  • 攻防对抗5
  • 汇编语言3
  • 漏洞研究6
Archives
  • October 20255
  • September 20254
  • August 20253
  • July 20251
  • January 20251
  • December 20241
  • November 20241
  • October 20241
Info
Article :
29
UV :
PV :
Last Update :
©2020 - 2025 By ybdt
Framework Hexo|Theme Butterfly