您的浏览器禁用了JavaScript(一种计算机语言,用以实现您与网页的交互),请解除该禁用,或者联系我们。[卡巴斯基]:The 'Penquin' Turla - 发现报告
当前位置:首页/行业研究/报告详情/

The 'Penquin' Turla

信息技术2014-12-08卡巴斯基叶***
The 'Penquin' Turla

1Uroburos : 蛇 rootkitAbstract这是对定向攻击中使用的独特,非常强大和隐蔽的远程访问后门的技术分析。这个 rootit 是由非常熟练和经验丰富的程序员设计和编码的。所使用的技术展示了他们对 Widows 内核内部的出色知识。本文介绍了在运行的 Widows 内核上执行的未记录和巧妙技巧的使用,例如即时反汇编或 PatchGard 绕过。它详细说明了秘密通信通道是如何工作的 ( 尽管这一部分需要大量的进一步分析 ),以及虚拟加密存储是如何实现的。创建该文档是为了提高人们的意识 - 其目标是增强对这种 ( 以及潜在的类似 ) 威胁的理解 , 并提供防御手段。提供了折衷指标 ( IOC ) 来扫描计算机系统中这种恶意软件的存在。Contents1初始化31.1 注射....................................................31.2 实例化检查.............................31.3 影像复制及重新定位......................51.4 隐藏孩子形象......................51.5 设置持续性..............................61.6 强制内核模式.62挂钩72.1 钩住引擎..............................72.1. 1 创建中断 C3h.72.1. 2 自钩绕道。。。。。。。82.2绕过 PatchGuard.......................................................................................112.2.1取消 PatchGuard 通知挂钩 KeBugCheck....................................................122.2.2Replay PatchGuard DPC 挂钩 KxDispatchInterrupt..................................132.3挂钩有效载荷.....................................................................................................142.3.1内联挂钩.................................................................................................142.3.2设备挂钩: IofCallDriver............................................................................143通信框架153.1通信对象............................................................................................................153.2通信渠道............................................................................................................173.3硬编码通道.........................................................................................................193.4从队列初始化的通道.....................................................................................20 23.5203.6203.7213.7.1223.7.2223.8224244.1244.2254.2.1254.2.2264.3274.3.1274.3.2274.4274.5274.5.1274.5.2285296306.1306.2316.33131B31B.131B.231B.333B.434样品f4f192004df1a4723cb9a8b4a9eb2fbf 32 位驱动程序 ed785bbd156b61553aaf78b6f71fb37b 64 位驱动程序32 位和 64 位版本非常相似 , 除了一些功能 , 如 PatchGuard 旁路方法 , 不一定存在于 32 位版本上。由于反向更方便 , 将呈现 32 位版本 , 我们将在必要时切换到 64 位版本。Yara 检测规则规则蛇 _ 包装{ 3md5 = "f4f192004df1a4723cb9a8b4a9eb2fbf" 字符串 :/*25FFFFFEFFandeax, 0FFFFFFh0F22C0movcr0, eaxC0 E8???? 00 00callsub _????*/$cr0 = {25 FF FF FE FF 0F 22 C0 E8???? 00 00}条件:他们中的任何一个}统治蛇{md5 = "40aa66d9600d82e6c814b5307c137be5" 字符串 :$ModuleStart = {00 4D 6F 64 75 6C 65 53 74 61 72 74 00}$ModuleStop = {00 4D 6F 64 75 6C 65 53 74 6F 70 00}$firefox = "firefox. exe" 条件:所有的人}1初始化1.1注射驱动程序通过将代码注入系统进程并退出其初始进程来隐藏其执行。执行在函数中作为系统线程手动分叉叉和隐藏 (1D75Ah)。具体来说 , 该机制类似于vfork在 Unix 系统上 ; 父映像被暂停 , 直到子映像释放执行线程。它由三个步骤组成。(i) 实例化检查验证没有其他 rootit 实例正在运行。这在 1.2 节 r 中有所描述。(ii) 1.3 节详述了图像拷贝。它使代码驻留在非分页内存中,以便它可以作为系统线程运行。( iii ) 最后,控件被转移到克隆的图像,作为回报,通过将其头清零来隐藏子图像,请参见第 1.4 节。因此,rootit 在内核线程中运行,代码在非分页内存中。请注意,这个线程有一个不存在的拥有进程。这可以用作 IOC; 拥有任何线程的进程通常存在。1.2实例化检查在中验证另一个 rootkit 实例的存在再感染检查 (1D460h)。此函数检查是否存在三个事件。如果观察到错误状态对象名称存在返回。?pr ?\BaseNamedObjects\{B93DFED5 - 9A3B - 459b - A617 - 59FD9FAD693E}11观察到该感染标记是由该工具包的不同版本 ( 又名 Agent. BTZ ) 创建的。 表 1: 妥协指标4Location类型值注释物理内存Event\ BaseNamedObjects\ {B93DFED5 - 9A3B - 459b - A617 - 59FD9FAD693E}感染标记物理内存Event\ BaseNamedObjects\ shell 。 {F21EDC09 - 85D3 - 4eb9 - 915F - 1AFA2FF28153}感染标记物理内存Event\ BaseNamedObjects\ wininet _ activate与出站网络流量拦截有关物理内存内核线程存在具有不存在的拥有进程的内核线程。这是内核注入的结果物理内存中断0x55挂钩引擎使用的自定义中断物理内存中断0xC3挂钩引擎使用的自定义中断物理内存Device\ Device\ RawDisk1设备与 rootkit 的虚拟文件系统相关物理内存Device\ Device\ RawDisk2设备只与第二个虚拟文件系统相关驻留在物理内存中 , 而不是刷新到文件系统Registry钥匙\ 注册表\ 计算机\ 系统\ 当前控制集\ 服务\ Ultra3Rootkit 自动运行时 , 此 IOC 可能会出现假阳性 ; 如果显示需要检查的已执行文件Registry钥匙\ 注册表\ 计算机\ 系统\ 当前控制集\ 服务\ ~ ROOTRootkit 自动运行时 , 此 IOC 可能会出现假阳性 ; 如果显示需要检查的已执行文件文件系统文件名\% SystemRoot%\ $NtuninstallQ817473 $\ hotfix. dat虚拟文件系统 , 必须检查查询 mfc di -直接是因为文件 API 可以挂钩文件系统文件大小104857600支持虚拟文件系统的文件的默认大小 , 必须直接查询 mfc , 因为文件 API可以上钩文件系统文件名\% SystemRoot%\ $NtuninstallQ817473 $\ virtdisk. bin虚拟文件系统 , 必须检查查询 mfc di -直接是因为文件 API 可以挂钩文件系统文件名\% SystemRoot%\ $NtuninstallQ817473 $\ fdisk. sysRootkit , 必须直接检查查询 mfc , 因为文件 API 可以挂钩文件系统文件名\% SystemRoot%\ $NtuninstallQ817473 $\ rkng _ inst. exeRootkit , 必须直接检查查询 mfc , 因为文件 API 可以挂钩。文件系统Volume\\.\ Hd1\\与虚拟文件系统关联的卷文件系统Volume\\.\ Hd2\\与虚拟文件系统关联的卷仅驻留在内存中文件系统隔板被 rootkit 用作虚拟文件系统的分区有一个特殊的设置 , 使大多数应用程序的分区隐身。这些设置可以用作 IOC , 请参见第 4.2. 2 节网络命名管道\\.\ pipe\ isapi _ dg用于内部通信的命名管道网络命名管道\\.\ pipe\ isapi _ dg {1 - 4}用于内部通信的命名管道网络命名管道\\.\ pipe\ isapi _ http用于内部通信的命名管道网络命名管道\\.\ pipe\ isapi _ http {1 - 3}用于内部通信的命名管道网络命名管道\\.\ pipe\ services _ control用于内部通信的命名管道网络命名管道\\.\ pipe\ wininet _ activate用于内部通信的命名管道网络指纹对于 SMTP : 在像 username @ domain 这样的地址中 , 用户名的长度为 N , 用户名的第 ( N - 1 ) 个 char 具有 ASCII 代码 97 + ( sum / 26 ) , 第 ( N ) 个 char ascii 代码是 122 - ( sum / 26 ) , 其中 sum 是前 8 个 ASCII 代码的总和用户名字符网络指纹对于 base64 HTTP 标头 : base64 解码后 , 用户名的第 9 个字符具有 ASCII 代码 97 + ( sum / 26 ) 和第 10 个char ASCII 码是 122 - ( sum / 26 ) , 其中 sum 是前 8 个字符的 ASCII 码的总和网络指纹对于原始数据 : base64 解码后 , 用户名的第 9 个 char 具有 ASCII 代码 97 + ( sum / 26 ) 和第 10 个 char ASCII 代码是 122 - ( sum / 26 ) , 其中 sum 是前 8 个字符的 ASCII 代码的总和 5?\BaseNamedObjects\shell 。{F21EDC09 - 85D3 - 4eb9 - 915F - 1AFA2FF28153}2在

你可能感兴趣

hot

脱落的皮肤 - Turla 的新鲜面孔

信息技术
卡巴斯基2018-10-04
hot

史诗般的 Turla 行动

信息技术
卡巴斯基2014-08-07
hot

卫星 Turla : 天空中的 APT 指挥与控制

信息技术
卡巴斯基2015-09-09