当前位置:首页 > 网络安全 > 正文内容

网络黑客信息平台网:根据对Windows API开展Unhooking绕开Cylance以及他AV/EDR

访客4年前 (2021-04-07)网络安全745

全文详细地址:

假如您试着从运作CylancePROTECT的设备上转储lsass.exe过程运行内存得话,您便会发觉,它是一件十分艰难的事儿。

在本试验中,大家将为阅读者演试怎样成功转储过程的运行内存并绕开Cylance(或一切别的病毒防护/节点检验和回应解决方法),后面一种应用客户态API hooking来明确程序在实行全过程中是不是有故意个人行为。

事实上,Hooking是一种历史悠久的技术性,我以前早有了解,但从来没有机遇使用过,直至我偶然发现Hoang Bui的一篇文章——该文章内容详细介绍了EDR的unhooking解决,详细地址为

尽管本试验演试的API Unhooking技术性是在MiniDumpWriteDump API前后文中开展的,可是该技术性一样适用别的一切已hooked的API。

事实上,我们可以将API hooking与代理服务器开展对比:您的运用程序开展的全部API调用(包含其主要参数),比如CreateFile、ReadFile、OpenProcess等均会被AV/EDR阻拦并开展相对的查验,随后由AV/EDR判决程序的实际操作/用意是不是故意的。

针对EDR生产商而言,她们对客户态API的hook方式是:被劫持/改动Windows DLL(如kernel32/kernelbase和ntdll)中的函数界定(API)。

一般来说,函数界定是根据在其开始插进一个jmp命令来开展改动的。这种jmp命令将更改程序的实行步骤——程序将被跳转到EDR的查验控制模块,该控制模块将分辨程序是不是主要表现出一切异常的个人行为,从总体上,他们是根据剖析传送给EDR已经hooking/监控的函数的主要参数来开展评定的。这类跳转有时候被称作绕道/蹦蹦床。

期待下边的数据图表有利于进一步表明这一个全过程:

特别注意的是,并不是全部的函数都是会被AV/EDR被劫持。一般仅有这些在已经知道恶意程序中被常常乱用的函数才会被hooked,这种函数包含CreareRemoteThread、NtQueueApcThread等。

一定要注意,这一试验事实上是创建在另一个试验的基本以上的。在那一个试验中,我撰写了一个中小型的C 程序,应用MiniDumpWriteDump Windows API转储lsass.exe过程运行内存,敬请浏览

如今,使我们试着在一个被CylancePROTECT监管的系统软件上运作这一段编码(在上面的试验中撰写的程序)。这时候,该程序会因为违反规定而被停止,有关信息为LsassReadstraight away:

如同您猜中的那般,Cylance hook了MiniDumpWriteDump的API调用。更精确地说,它事实上是hook了一个NtReadVirtualMemory函数,该函数来源于ntdll.dll,而它是由MiniDumpWriteDump函数在背后开展调用的。

用程序调试实行该程序,我们可以观查到,在过程运行时,Cylance的内存保护控制模块,即CyMemDef64.dll被引入到Invok-CreateMemoryDump.exe(大家的程序,它会调用MiniDumpWriteDump函数)过程中。这一控制模块将对Invok-CreateMemoryDump.exe中的API调用开展相对的查验。

即然我们知道MiniDumpWriteDump调用了NtReadVirtualMemory,那麼何不检查一下NtReadVirtualMemory的函数界定,看一下是不是有异常之处。

@WinDBG

u NtReadVirtualMemory

大家马上见到,该函数的第一条命令是偏向某一怪异内存地址的JMP命令,该详细地址超过了ntdll控制模块的内存地址范畴:

下边,使我们反编译一下该详细地址:

@WinDBG

u 0000000047980084

我们可以马上注意到,也有好几个偏向Cylance内存保护控制模块CyMemDef64.dll的jmp命令——这确认了函数NtReadVirtualMemory已被hooked:

为了更好地确定大家的程序最后将调用NtReadVirtualMemory,我们可以在其上置放一个中断点并执行程序。如下列屏幕截屏所显示,这儿击中了该中断点:

如果我们执行程序,它将被跳转(jmp命令)到Cylance的内存保护控制模块,而且该程序将伴随着Violation:LsassRead信息的来临而奔溃。

为了更好地开展unhook,也就是说,将被hooked的函数复原到其最初的状态,大家必须了解它在被Cylance改动以前是什么样子的。

根据查验函数NtReadVirtualMemory的前五个字节数,能够非常容易保证这一点;在载入到运行内存以前,该函数坐落于c:\\windows\\system32

tdll.dll库文件。我们可以在ntdll的DLL导出来表格中见到该函数的相对性虚拟注册地址(RVA)——在大家的试验中,该详细地址为00069C70(在您的系统软件上,该详细地址很有可能会各有不同):

假如将RVA变换为物理学文档部位(因为文档并未载入到运行内存中,因而与RVA同样),我们可以见到该函数的前五个字节数为4c 9a d1 b8 c3:

上边的意思是,如果我们将Cylance引入的NtReadVirtualMemory函数的前五个字节数(e9 0f 64 f8 cf)更换为4c 9a d1 b8 3c,那麼,Cylance可能“双目失明”,进而没法监控MiniDumpWriteDump API调用。

拥有这种信息内容,我们可以升级程序,并让它寻找函数NtReadVirtualMemory的详细地址,并根据将字节数4c 9a d1 b8 3c载入该函数的开始一部分来完成unhook,实际如下边的第17行编码所显示:

再次编译程序并再度运作该程序将取得成功转储lsass.exe过程运行内存,而不容易遭受Cylance的影响:

大家现在可以令转储文档offline并将其载入到mimikatz中……。

在这儿,大家只对一个函数开展了unhook解决;针对别的函数,根据较为硬盘上的DLL文件中的函数界定和运行内存中的函数界定,假如跟运行内存中的函数界定不一样,则代表着它被“勾住”了,这时候,我们可以用硬盘上的界定中寻找的命令开展遮盖就可以。

下边是非常好的参考文献,在其中包含Cylance对unhooking技术性的叙述:

(请在这里插进演试视頻)

扫描二维码推送至手机访问。

版权声明:本文由黑客接单发布,如需转载请注明出处。

本文链接:http://therlest.com/106289.html

分享给朋友:

“网络黑客信息平台网:根据对Windows API开展Unhooking绕开Cylance以及他AV/EDR” 的相关文章

立秋是几月几日

说到立秋,大家可能还会觉得比较远,确实算一下也还有将近一个月的时间,大家知道今年的立秋是在什么时候吗,具体的时间是2020年8月7日09:06:03,星期五,农历六月十八,因此在这一天大家就可以吃很多的美食,那么接下来大家就随百思特小编一起了解看看~   立秋是几月...

【紧急+重要】勒索病毒解决方案!附:MS17-010补丁下载

  滚动更新:2017年5月13日16:57:22   游侠安全网(良心网站,站长先贴上注意事项和解决方法!防止你看本文的时候就被加密了!   1、本次共计是自动化攻击,利用了Windows的MS17-010。但苹果的MacOS用户不用得意,因为在昨晚之前,我这里得到的好几起勒索攻击案例都是针对...

找网上黑客盗QQ号被骗,黑客找到微信好友,黑客破解密码的例子

Cortex-R:面向实时运用的高功能内核,Cortex-R系列是衍出产品中体积最小的ARM处理器。 Cortex-R处理器针对高功能实时运用,例如硬盘操控器(或固态驱动操控器)、企业中的网络设备和打印机、消费电子设备(例如蓝光播放器和媒体播放器)、以及轿车运用(例如安全气囊、制动体系和发动机办理)...

上海市帅男精油spa,好的一次spa如同赢在人生起跑点

上海市帅男精油spa,好的一次spa如同赢在人生起跑点 上海市帅男精油spa,好的一次spa如同赢在人生起跑点 我们都是女性spa女子维护保养会馆太阳男芳疗师是一家集女子推拿、精油spa、女子spa、女子会馆、女子spa按摩、女子spa会所、女子印尼巴厘岛spa、酒店餐厅spa、女子spa...

近期东欧地区某黑产团伙钓鱼文档分析

1.摘要? 近期,安恒威胁情报中心猎影实验室监测捕获到一些以博彩为主题的钓鱼文档。诱饵文档使用模糊的表格照片,诱导受害者打开宏代码。样本通过bitsadmin从挂马网站下载后续恶意程序,并通过pastebin[.]pl、rentry[.]co这类网站的文本共享功能实现后续恶意代码的托管。 通过对...

BEABA纸尿裤吸水性怎么样 BEABA纸尿裤使用测评

BEABA尿不湿较为轻巧,那麼BEABA尿不湿的吸水能力如何呢,下边的我就而言说:BEABA尿不湿吸水能力如何 BEABA尿不湿应用评测。 BEABA尿不湿吸水能力如何 产品包装设计的非常好哦,简易大气又有点儿小仙女,赞一个!尿不湿设计方案的挺漂亮哦,很简单的 十分绵软舒适,也够宽够长,不必担...

评论列表

辞眸诤友
3年前 (2022-06-07)

试验中,我撰写了一个中小型的C 程序,应用MiniDumpWriteDump Windows API转储lsass.exe过程运行内存,敬请浏览如今,使我们试着在一个被CylancePROTECT监管的系统软件上运作这一段编码(在上面的试验中撰写的程序)。这时候,该程序会因为违反规定而被停止,有关

舔夺青朷
3年前 (2022-06-07)

64 f8 cf)更换为4c 9a d1 b8 3c,那麼,Cylance可能“双目失明”,进而没法监控MiniDumpWriteDump API调用。拥有这种信息内容,我们可以升级程序,并让它寻找函数NtReadVirtualMemory的详细地址,并根据将字

晴枙桃靥
3年前 (2022-06-07)

调用开展相对的查验。即然我们知道MiniDumpWriteDump调用了NtReadVirtualMemory,那麼何不检查一下NtReadVirtualMemory的函数界定,看一下是不是有异常

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。