avatar
Articles
27
Tags
0
Categories
6

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

卡卡罗特取西经

高级进程注入之利用线程名和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 ...
Windows下32位汇编学习
Created2025-08-14|汇编语言
0x01 前言DOS下16位汇编学的时候完全就是硬啃,因为和现在用到的知识几乎不沾边,Windows下32位汇编开始涉及我们用到的知识,学起来还有点动力,本篇博客简单记录下Windows下32位汇编的学习总结 我用的罗云彬老师那本“Windows环境下32位汇编语言程序设计(第二版)”,电子版位于:https://github.com/ybdt/evasion-hub/tree/master/学习资源 0x02 基本概念CPU工作模式从DOS下16位汇编到Windows下32位汇编,CPU的工作模式也从实模式变为保护模式(其实还有实模式和虚拟86模式,但本篇博客意在总结只挑重点说),这时CPU里的寄存器已经从16位变为32位,寻址空间也从之前的1MB变为4GB,并且多了两个东西,一个是内存分页机制,一个是优先级,内存分页机制可以为虚拟内存提供良好支持,后面内存管理中会提到,优先级包含4个级别,0-3级,0级就是常说的内核层ring0级,3级就是应用程序层ring3级,由于历史原因,Windows操作系统不使用1级和2级 内存管理保护模式下Windows的内存管理和实模式下DOS的内存管 ...
DOS下16位汇编学习
Created2025-08-05|汇编语言
前言汇编语言不学总感觉差点东西,那就开整,我用的是王爽老师那本汇编语言第三版,也可以看B站上“零点Boy”老师的视频课程,参考的也是王爽老师那本汇编语言讲的 电子版:这里 本文只是简单记录下这段时间的学习感受 总结汇编语言是和操作系统强相关的低级语言,DOS下16位汇编、Windows下32位汇编、Linux下汇编可以说是“三门语言”,不像C、C++、JAVA这种高级语言,是跨平台的。王爽老师那本汇编语言讲的就是DOS下16位汇编,现在到处都是64的Windows,16位的DOS汇编属实有点过时了,但是知识都是一点点演化的,想了解汇编是怎么来的,这本书的基础部分我觉得还是有用的 16位DOS汇编寄存器是16位的,但寻址总线是20位的,所以CPU内部会有一个转换器,转换器的基本逻辑是,将两个16位寄存器(也就是两个16位二进制)经过转换变成一个20位二进制,寻址方式是 段地址:偏移地址 汇编代码之所以看起来像天书,就是因为它有很多隐藏知识,例如下述代码,ds寄存器默认被用来存放段地址,再结合偏移地址,便得到了某个字符串的起始地址,然后对字符串进行异或操作,便可以将大写变为小写,将小写 ...
123
avatar
ybdt
Articles
27
Tags
0
Categories
6
Follow Me
Announcement
要想练就绝世武功,就要忍受常人难忍受的痛
Recent Post
高级进程注入之利用线程名和APC(下)2025-10-13
高级进程注入之利用线程名和APC(上)2025-10-10
APC系列之用户模式APC2025-10-07
Windows下32位汇编学习(二)PE文件解析2025-09-29
通过APC执行Shellcode2025-09-26
Categories
  • 免杀研究10
  • 工具开发2
  • 心路历程1
  • 攻防对抗5
  • 汇编语言3
  • 漏洞研究6
Archives
  • October 20253
  • September 20254
  • August 20253
  • July 20251
  • January 20251
  • December 20241
  • November 20241
  • October 20241
Info
Article :
27
UV :
PV :
Last Update :
©2020 - 2025 By ybdt
Framework Hexo|Theme Butterfly