概述
父进程伪装是一种访问令牌操作技术,通过将恶意文件的指定为等合法进程的,可帮助攻击者规避启发式检测等防御技术。
MITRE 战术:权限提升(TA0004)和 防御规避(TA0005)
MITRE ATT&CK技术:T1134 :Windows访问令牌模拟窃取以及利用
子技术:T1134.004 :访问令牌操作: 父 PID 欺骗
背景:
子进程监控是威胁狩猎中最常见的指标之一。应急响应人员可能会分析如果 或 进程是从 或 等零相关的应用生成的,则表明可能存在潜在威胁。安全防护软件会在启发式检测下监控此行为,并向管理员发出警 。
父欺骗方法可以绕过 检测,使其认为是 这样的合法进程在进行活动。它通过欺骗进程的 以匹配其父进程的 来做到这一点。这种方法可能带来的另一个好处是,如果父进程以 权限运行,则可以凭借访问令牌的继承,使其子进程也具有相同的 权限。
进程、PID和PPID
进程:在 中,应用程序由一个或多个进程组成。简单来说,当前正在运行的程序的一部分称为进程。不同的应用程序可能会使用相同的进程(如),并且为避免歧义,会分配一个整数来区分一个进程和另一个进程。该整数称为。
PID:代表进程标识符 (),它是正在运行的进程的数字表示。 中通过 函数返回指定进程的 。
父进程:父进程是可以派生多个子进程的进程。例如,命令将派生作为父进程的子进程。在代码中,父进程可以使用系统调用来派生子进程。
PPID:代表父进程标识符(),它是提供给父进程的数字表示形式。任何包含子进程的进程都存在父子关系。
方法一(使用C++程序进行PID欺骗)
最初在这里的帖子中谈到了这种方法。还发布了一个用编写的利用程序()。代码可以在这里下载:https://web.archive.org/web/20210225035252/http:/www.didierstevens.com/files/software/SelectMyParent_v0_0_0_1.zip
请注意,如果您使用的是更高版本的Visual Studio,可能需要重新生成此EXE。在Visual Studio2022中,我删除了Debug and Release文件夹中的SelectMyParent.pdb文件,并重新生成了项目以使其运行。
在进程管理器中,你会看到 在 上运行
因此,要在这个父 进程下运行我们自己的二进制文件,可以像这样使用 ,你会看到在 下创建了一个新进程。
可以看到在启动了
同样,我们也可以运行自己的。让我们先用创建一个可以反弹的
在受感染端,使用查看进程运行详情。
在列表中,可以看到进程以身份在进程上运行。
然后运行生成的,并附属在的下
监听端收到的便是进程用户的权限
如果利用具有权限的进程,即可进行提权。
方法二(使用Powershell DLL注入进行PID欺骗)
实验室利用 创建了替代上述 二进制文件的方案。它也可以用于父进程欺骗,与上述方法不同之处在于,可以将带有注入的的子进程派生为子进程,功能更强大。代码可以在这里下载https://github.com/countercept/ppid-spoofing,首先在受害者机器上查看进程,这里我们选择 的 作为父进程。
利用生成要注入的
然后进行注入:
可以看到注入的在中加载执行了。
通过这种方式,上的进程派生了一个带有插入代码(由提供)的。
方法三(使用Powershell 脚本入进行PID欺骗)
根据 提供的指南开发了一个 脚本,使用了 方法,可以在此处找到的psgetsystem脚本:https://github.com/decoder-it/psgetsystem.git,可用于通过欺骗派生子进程。首先我们查看所需进程的 。这里以为例
然后执行如下命令:
如果 错,可能是的问题,需要先绕过,或者是权限过低,需要提权。
绕过脚本可以在这里找到:https://github.com/samratashok/nishang/tree/master/Escalation
然后下载所需的文件,然后执行命令
可以看到在下成功创建了子进程,因为是权限,所以反弹也获取到了权限。
方法四(使用C#程序进行PID欺骗)
开发了项目,是上述技术的实现,可以在这里找到:https://github.com/py7hagoras/GetSystem.git
在目标机上下载,然后执行
注意:这里可能也需要绕过或者提权,不然执行不成功。
方法五(通过PID欺骗注入Shellcode)
使用 开发了一个名为“ProcessInjection”的出色工具,它可以执行许多功能,包括通过 欺骗进行的进程注入。通过提供有效的 ,该工具会尝试使用 等原生 调用来欺骗 ,然后将代码注入其中。该工具支持 、 和 格式的 ,也可以选择 DLL 注入。工具在这里下载:https://github.com/3xpl01tc0d3r/ProcessInjection
首先,使用创建一个代码
然后在目标机中下载
使用进行注入
参数说明:
/ppath:目标 EXE 的进程路径(需要注入进程的路径)
/path:shellcode文件路径
/parentproc:父进程名称,目标EXE应在此进程下生成
/f:shellcode文件类型
/t:注入技术
支持的五种注入方式:
我们可以看到在下,而则在中执行。
也可以进行注入
其他工具
https://github.com/Mr-Un1k0d3r/RemoteProcessInjection
https://github.com/xpn/getsystem-offline
https://github.com/hlldz/APC-PPID
https://github.com/ewilded/PPID_spoof
https://github.com/christophetd/spoofing-office-macro (VBA实现)
在Metasploit中Meterpreter 可以使用命令或者后渗透模块也可以实现进程迁移。
总结
更多靶场实验练习、 安学习资料,>”>请点击这里>>
文章知识点与官方知识档案匹配,可进一步学习相关知识 络技能树WAN技术PPP22106 人正在系统学习中
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!