2022-06-17
/注册表是windows的重要数据库,存放了很多重要的信息以及一些应用的设置,对注册表进行监控并防止篡改是十分有必要的。在64位系统下微软提供了CmRegisterCallback
这个回调函数来实时监控注册表的操作,那么既然这里微软提供了这么一个方便的接口,病毒木马自然也会利用,这里我们就来探究其实现的原理和如何利用这个回调函数进行对抗
2022-06-10
/libmalloc为MacOS以及IOS中的用户态下的堆管理器,在实现细节上与linux下常用的glibc有较大的不同,本文初步介绍一下libmalloc中Tiny堆的管理机制和一些基本的漏洞利用。
2022-06-09
/本文介绍了off by null的爆破法和直接法两类做法,并基于已有的高版本off by null的利用技巧做了一点改进,提出一种无特殊限制条件的直接法,更具有普适性。
2022-06-07
/我们知道一般EDR对可疑程序进行监控一般都会采用往程序里注入到检测的进程中,通过hook一些敏感的3环API来判断程序是否进行一些恶意操作,那么我们可以通过添加流程缓解措施和漏洞利用保护参考来实现保护,从而防止EDR的dll注入对进程进行检测。
2022-06-01
/本文中,我们将以hxp2020 CTF中的“kernel-rop”挑战题为基础,介绍如何利用驱动程序中的漏洞进行提权。我们知道,内核漏洞利用的主要目标,与用户空间的漏洞利用有很大不同,它不是直接生成一个shell,而是控制存在漏洞的内核代码以实现提权。至少在典型的CTF风格的场景中,生成shell都是后面的事情。有时,只要获得了任意读写原语,就足以渗出敏感信息,或覆盖与安全休戚相关的东西。
2022-05-30
/ETW
全称为Event Tracing for Windows
,即windows事件跟踪,它是Windows提供的原生的事件跟踪日志系统。由于采用内核层面的缓冲和日志记录机制,所以ETW
提供了一种非常高效的事件跟踪日志解决方案,本文基于ETW
探究其攻与防的实现
2022-05-23
/学习经典的fuzz
框架AFL
,通过源码的阅读学习fuzz
,为以后针对特定目标进行模糊测试打下基础。
AFL
的基础使用可以去看通过afl-training学习afl,具体的使用不再进行说明。
2022-05-18
/我们要想在32位下实现进程保护很简单,通过SSDT hook重写函数即可实现,但是在64位系统下因为引入了PG
和DSE
的原因,导致SSDT hook
实现起来处处受限。但微软同样为了系统安全,增加了一个对象回调函数的接口,利用该回调可以实现对对象请求的过滤保护自身的进程,目前大部分64位下的安全软件保护机制都是基于该方法,我们深入进行探究
2022-05-17
/本文是根据具有12年从业经验的安全研究人员Mark Dowd在今年的OffensiveCon大会上面的主题演讲整理而成,主要讲解了他自己在挖掘软件漏洞方面的方法论。
2022-05-12
/大约两年前,我辞去了全职红队操作员的工作。然而,它仍然是一个心仪的专业领域。几周前,我重新拾起昨日的爱好:绕过/逃避端点保护解决方案。
在这篇文章中,我们将探讨一系列可用于绕过行业领先的企业端点保护解决方案的技术。由于这纯粹是为了(道德)红队队员等安全从业者教育之用,因此我决定不公开发布源代码。本文旨在让安全行业的广大读者能够全面了解相关技术,而不是深入研究每种技术的细节。相反,具体的技术细节,读者可以参阅参考资料部分列出的文章。
在模拟对抗过程中,“初始访问”阶段的一个关键挑战,就是绕过企业端点上的检测和响应能力 (EDR)。由于商业的c2框架向红队队员提供的是不可修改的shellcode和二进制文件,所以,安全解决方案供应商会提取这些代码的特征(或者成为签名),那么,为了植入这些代码,红队就必须对其特征(静态和行为特征)进行必要的混淆处理。
2022-05-11
/一般的shellcode加载到内存都是通过LoadLibrary
和GetProcAddress
来获取函数进行shellcode加载,亦或是通过VirtualAllocEx
远程申请一块空间来放入shellcode的地址进行加载。为了隐蔽,攻击者通常会通过PEB找到InLoadOrderModuleList
链表,自己去定位LoadLibrary
函数从而规避杀软对导入表的监控。攻击者先把shellcode加密,在写入时解密存放到内存空间,使用基于文件检测的方法,是无能为力的,那么这种无落地的方式,最终都会在内存中一览无余。
2022-05-09
/这里探索了很多方式,勘误之前的启动方式实际上存在一些问题,这里终于探索到了最完备的musl 调试环境,这里特别感谢我的学弟gxh为勘误做出的贡献。
算是musl 学习的正式终结。
2022-05-05
/我们知道在x64里面,从3环进入0环会调用syscall
,那么如果是32位的程序就需要首先转换为x64模式再通过syscall
进入0环,这里就会涉及到一系列64位寄存器的操作,我们通过探究其实现原理来达到隐藏数据和反调试的效果。
2022-04-26
/常规的shellcode注入一般是通过VirtualAllocEx
,WriteProcessMemory
和 CreateRemoteThread
来实现的,但是这种方式是被安全软件重点监控的,同时微软提供的ETW接口也是可以轻易检测出上述方式进行代码注入的痕迹。本文的核心是讲解怎么利用具备 RWX-S 权限且自身有签名的白DLL进行一种比较隐蔽的shellcode注入,
并讲解具体的代码实现以及在写代码实现的过程中遇到的坑。本方法是由文章提出的:https://billdemirkapi.me/sharing-is-caring-abusing-shared-sections-for-code-injection/ ,详情可以参考此文章。