跳转到帖子
  • 游客您好,欢迎来到黑客世界论坛!您可以在这里进行注册。

    赤队小组-代号1949(原CHT攻防小组)在这个瞬息万变的网络时代,我们保持初心,创造最好的社区来共同交流网络技术。您可以在论坛获取黑客攻防技巧与知识,您也可以加入我们的Telegram交流群 共同实时探讨交流。论坛禁止各种广告,请注册用户查看我们的使用与隐私策略,谢谢您的配合。小组成员可以获取论坛隐藏内容!

    TheHackerWorld官方

工艺掺杂利用简介


Xiao7

推荐的帖子

0x00 前言

在最近的BlackHat Europe 2017上,塔尔利伯曼和尤金科岗推出了一种新的代码注入技术,——过程兴奋剂。

据说这种方法支持所有Windows系统,可以绕过大部分安全产品的检测。

因此,本文将根据开源代码编写程序,实现进程复制,测试功能,分析利用思路。

参考地址:

https://www . black hat . com/docs/eu-17/materials/eu-17-liber man-Lost-In-Transaction-Process-doppelganing . pdf

0x01 简介

本文将介绍以下内容:

原则

开放源代码

修复方法

实物试验

利用理念

防御探测

0x02 Process Doppelgnging原理

原理上类似于工艺镂空,但更高级:

不需要傀儡过程。

不需要特殊的内存操作,如SuspendProcess和NtUnmapViewOfSection。

注:

工艺镂空的介绍请参考之前的文章《傀儡进程的实现与检测》。

实现思路:

1.打开一个正常文件,创建transaction

对于NTFS交易,请参考:

http://www.ntfs.com/transaction.htm

2.在这个transaction内填入payload,payload作为进程被启动

目前为止,杀毒软件无法扫描填充的有效载荷。

3.回滚transaction

它相当于恢复事务和清除痕迹。

对应程序实现过程:

1.创建transaction

关键功能:

NtCreateTransaction

2.在这个transaction内填入payload

关键功能:

createfile transactioned

NtCreateSection

3.payload作为进程被启动

关键功能:

NtCreateProcessEx

NtCreateThreadEx

4.回滚transaction

关键功能:

NtRollbackTransaction

当然,还涉及到有效载荷、应用内存、PE文件结构等的写入。这里暂不介绍。可以直接参考POC源代码。

关于Native API的使用,请参考之前的文章《渗透技巧——”隐藏”注册表的创建》和《渗透技巧——”隐藏”注册表的更多测试》。

注:

Win10之前的Win10系统RS3在使用该方法时会出现蓝屏,因为NtCreateProcessEx函数传入了空指针。详情请参阅:

https://bugs.chromium.org/p/project-zero/issues/detail?id=852

0x03 开源POC

目前,有两个已发布的概念证明。

1、processrefund

地址:

https://github.com/Spajed/processrefund

目前仅支持64位Windows系统。

编译工具:VS2015,安装sdk

实际测试:

Win7 x64

测试下图

2-1.png

注:

如果在system32下选择calc.exe,将提示您没有足够的权限。

启动进程calc.exe,但实际执行MalExe.exe,会弹出一个对话框。

流程calc.exe的图标和描述是正常的calc.exe,数字签名也是正常的,如下所示。

2-2.png

2、hfiref0x的POC

https://gist . github . com/hfiref0x/a 9911 a0b 70 b 473281 c 9 da 5 daea 9 a 177 f

c文件只有一个,头文件ntos.h缺失。

可用位置:

https://github . com/hfiref0x/UAC me/blob/master/Source/Shared/ntos . h

但是需要修改两次。

为了了解更多细节,我们决定不使用ntdll.lib文件(安装DDK后附带),而是通过ntdll获取原生API(当然代码量也会增加)

用自己的方式重写一个ntos.h,修改原POC的inject.c。

开源地址如下:

https://github . com/3g student/Inject-dll-按进程-复制

编译工具:VS2012

支持32位Windows系统

实际测试:

Win7 x86

测试下图

2-3.png

注:

如果在system32下选择calc.exe,将提示您没有足够的权限。

综上所述,我们可以看到,进程doppelgnging的利用效果类似于进程空洞化:启动一个正常的进程(正常的图标、签名、描述),执行这个进程中的负载。

使用Process doppelgranging的一个缺点:需要替换文件,所以在system32下替换文件时会提示权限不足(管理员权限无法修改该路径下的文件)。

0x04 利用思路

在上一节中,我们测试了两个POC,并对工艺掺杂有了一些了解。

但在实际使用中,POC还需要进一步修改,利用思路如下:

去掉读取净荷的功能,改用缓冲存储(可以进行压缩编码以减少长度)。

执行时读取缓冲区,解密执行

这样可以进一步隐藏有效载荷,实现有效载荷的“无文件化”(有效载荷存储在exp中,不需要写入硬盘)

0x05 检测

进程doppelgnging无法绕过所有的杀毒软件,几个关键函数的调用还是会被拦截(比如NtCreateThreadEx),进程的内存与PE文件不同。

0x06 小结

摘要:介绍了进程欺骗的原理,根据开源代码,编程实现了Windows x86和x64系统下的利用,测试了功能,分析了利用思路,并介绍了检测方法。

留下回复

链接帖子
意见的链接
分享到其他网站

黑客攻防讨论组

黑客攻防讨论组

    You don't have permission to chat.
    • 最近浏览   0位会员

      • 没有会员查看此页面。
    ×
    ×
    • 创建新的...