滥用ADCS进行权限提升——ESC13详解
本文首发于先知社区:https://xz.aliyun.com/t/13864
0x1 起因: 自 Will Schroeder(@harmj0y)和 Lee Christensen(@tifkin_)在 2021 年的 BlackHat 大会上发布白皮书以来,ADCS的攻击面首次系统化的进入人们的视野。Certified Pre-Owned - Abusing Active Directory Certificate Services这本白皮书可以说是为ADCS的利用奠定了各种理论基础。 随着ADCS的利用越加广泛,各种工具层出不穷,其中Certipy更是其中的佼佼者,近日在学习Certipy的相关代码实现的时候,偶然发现了这样一条PR
众所周知(应该),在白皮书中一共介绍了ESC1-ESC8这8种ESC命名的攻击手法,后续又补充了Oliver Lyak提出的ESC9和ESC10、 Sylvain Heiniger提出的中继到RPC的 ESC11和利用条件比较局限的的ESC12,针对这条PR附带的博客文章,我尝试对这个ESC13进行分析和复现。
0x2 ...
解析PEB
前言:学习syscall和免杀绕不开PEB这个部分,我们要对相关结构熟悉,既要会手动解析,也能利用代码解析。
PEB结构:经典大图,永不过时:
注:PEB的结构微软并未完全公开,以上图片可以参考但不一定权威
如果你对偏移比较熟悉的话可以直接用指针+偏移找,不需要特地定义结构体,而且双向链表_LIST_ENTRY这个是公开的。
1234typedef struct _LIST_ENTRY { struct _LIST_ENTRY *Flink; struct _LIST_ENTRY *Blink;} LIST_ENTRY, *PLIST_ENTRY, *RESTRICTED_POINTER PRLIST_ENTRY;
自定义PEB的结构
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556typedef struct _PEB { BOOLEAN InheritedAddressSpace ...