深切理会BokBot的中间人攻击方式(上) | 申博官网
登录
  • 欢迎进入申博官网!
  • 如果您觉得申博官网对你有帮助,那么赶紧使用Ctrl+D 收藏申博官网并分享出去吧
  • 这里是申博官方网!
  • 申博官网是菲律宾sunbet官网品牌平台!
  • 申博开户专业品牌平台!

深切理会BokBot的中间人攻击方式(上)

申博_新闻事件 申博 134次浏览 已收录 0个评论

申博网络安全巴士站

申博-网络安全巴士站是一个专注于网络安全、系统安全、互联网安全、信息安全,全新视界的互联网安全新媒体。

————————————-

一、BokBot:署理模块

CrowdStrike在近来的一篇博文中对BokBot的中心模块做了深入剖析,而本篇文章作为前篇内容的延长,将对BokBot署理模块的内部事情道理做深入探讨。BokBot署理模块是一段十分复杂的代码,其重要目的是欺骗受害者将敏感信息发送到敕令和掌握(C2)服务器。

二、概述

BokBot银行木马(也被称为IcedID)于2017年4月初次被发明,自当时起,CrowdStrike便对其展开了延续跟踪事情。BokBot被进击者们普遍用于袭击环球范围内的金融机构。它能经由历程检索多个模块来加强其功用,个中一个就包孕运转当地署理服务器的模块,此模块能够或许阻拦并潜伏地支配web流量,终究目的是用于金融欺骗。

BokBot中心模块能下载署理模块,并将其注入派生的svchost子历程中,而署理模块能在目的历程中初始化自身。下面是对这个历程的逐渐剖析。

三、模块初始化

在启动署理服务器线程之前,该署理模块会阅历一个初始化的历程。它的大部分内容都跟前篇文章中引见的其他BokBot模块相似,好比削减毛病滋扰、构建C2列表或是设置定名事宜以与父历程通讯。在截获来自用户浏览器的流量之前,须要实行以下步调。

3.1、Webinject更新

用户情势异步历程挪用(APC)工具用于触发历程内存中的webinject数据的更新事宜。在初始化时期,将向APC行列发送零丁的用户APC工具,每一个工具对应一个webinject DAT文件(拜见前篇文章)。每一个DAT文件都被解码并存储在历程内存中,并将作为参数通报给APC回调函数。处置惩罚APC行列以后,web设置装备摆设将被剖析并加载到历程内存中。

3.2、C2通讯线程

每当网络到要发送回C2的数据时,就会发旌旗灯号关照通讯线程。当注入的歹意javascript向署理服务器发送特定范例的要求时,都邑发作旌旗灯号事宜(拜见第九节:流量操纵:浏览器视角)。返回的数据多是网络到的个人信息、屏幕快照或与是署理相干的毛病。

3.3、署理服务器初始化

署理服务器在TCP端口57391上被绑定到127.0.0.1。侦听器设置以后,将运用此socket注册Windows Socket API (WSA)事宜处置惩罚顺序,以处置惩罚一切衔接/发送/吸收网络要求。

3.4、SSL证书

为了对SSL衔接实行man-In-middle (MITM)进击,署理服务器须要天生SSL证书,并将其插进去到证书库中。证书是经由历程挪用CertCreateSelfSignCertificate竖立的,运用的是以下硬编码标识名(DN)的值:

深切理会BokBot的中间人攻击方式(上)

暂时证书库在内存中竖立,并终究写入到以下地位,文件名用Bot ID天生:

C:\Users\jules\AppData\Local\Temp\ D38D667F.tmp

证书库里将包罗一个用于webinject和C2服务器的SSL证书。

深切理会BokBot的中间人攻击方式(上)

完成这些步调后,署理服务器就能够或许阻拦来自浏览器的要求,但浏览器还尚未被重新设置装备摆设为指向署理服务器。

四、署理衔接

如今,每当用户的浏览器试图衔接到一个网站时,要求就会被挟制,并起首由署理服务器处置惩罚。本节引见怎样治理衔接状况、SSL MITM的事情机制,和署理服务器接纳的相应操纵。

4.1、治理衔接状况

一切衔接都由一系列与WSA回调事宜绑定的数据组织治理,这些数据组织跟踪与客户机的内部通讯和与目的网站的外部通讯,并确保署理服务器处置惩罚的一切要求的完整性。

深切理会BokBot的中间人攻击方式(上)

图1:署理衔接状况体系组织

图1中的架构图总结了用于保护署理要求状况的署理服务器组件之间的干系组织。

4.2、SSL MITM

若是用户输入的URL能与webinject目的列表中的URL相婚配,则SSL要求会被署理挟制,署理运用自身的SSL证书将自身插进去到通讯中。署理服务器吸收要求后,将运用署理服务器的SSL证书来竖立SSL衔接,以后再将要求发送到目的网站,并在署理和目的网站之间竖立SSL衔接。来自目的网站的相应被解密后再运用署理的证书举行加密,并将其发送给受害者,而流量则由署理的证书来解密。用于保护SSL通讯流的状况SSL上下文数据组织相似于图1。

关于浏览器是怎样将这些证书视为有用的,请参阅“6.6.4、确认有用证书”一节。

五、署理行动

若是要求的URL主机名与个中一个webinject不婚配,那末署理服务器将在受沾染的主机和web服务器之间通报HTTP要求/相应。然则,若是URL与webinject目的站点婚配,则会接纳其他操纵(拜见“八、流量操纵:署理视角”一节)。

六、将浏览器重定向到署理

初始化署理服务器以后,任何正在实行的浏览器历程都邑被设置装备摆设为运用署理。为了做到这一步,BokBot会将代码注入浏览器历程。注入的代码将钩子增加到症结函数中,从而挟制浏览器流量。

6.1、浏览器历程挑选

起首,BokBot会天生一个轮回线程,用以迭代以后实行的一切历程名。而为了猎取以后历程列表,运用的是ZwQuerySystemInformation天生的BASIC_PROCESS_INFORMATION组织列表。

6.1.1、历程辨认

天生列表后,紧接着是标识浏览器历程的事情。浏览器历程用散列标识,如表1所示。

深切理会BokBot的中间人攻击方式(上)

表1:浏览器标识散列

散列值是运用自定义要领天生的,运用在样本之间转变的常量值举行异或运算,该常数值在分歧的样本之间是分歧的,因而散列值也是转变的。

6.1.2、署理设置装备摆设搜检

一旦确认了浏览器,就会搜检此浏览器历程是不是已经由BokBot设置装备摆设了署理。为了跟踪注入的每一个浏览器历程,将竖立一个链表数据组织(图2)。若是浏览器自身不在列表中,则竖立一个包罗目的流程ID和目的流程竖立时候的新列表项。

深切理会BokBot的中间人攻击方式(上)

图2:浏览器历程跟踪链表

别的一项搜检是实验翻开一个定名事宜。代码注入以后,浏览器历程将竖立一个定名事宜。定名计划的天生要领与前篇关于BokBot中心模块的文章中议论的要领相似,但分歧之处在于流程ID被附加到了称号的末端。模块挪用OpenEvent,若是返回的毛病代码是ERROR_FILE_NOT_FOUND,那末注入代码将继承实行。

6.2、翻开历程和附加搜检

模块经由历程挪用OpenProcess翻开浏览器历程的句柄,并搜检历程是不是为WOW64,若是是,则挪用发生雷同效果的历程。

同时,为了肯定历程是不是已设置装备摆设,会举行两重搜检,另外一项搜检是:

1.运用ZwQueryInformationProcess和ReadProcessMemory猎取流程情况字符串。

2.搜检每一个字符串是不是存在:v313235373937=true(3132353739是BotID的ascii透露表现情势)。

第二届自主可控安全共测大赛强势开启

近年来自主可控技术得到创新历史性发展机遇。伴随着云计算、人工智能、5G等新技术领域的突破,以及智慧城市、无人驾驶、智能制造等新应用场景的逐步拓展,需要自主可控技术产品的开发者、应用者、测试者共同直面发展中必然的安全性挑战。

3.若是这个情况字符串存在,则不会发作注入。

6.3、浏览器历程注入和代码实行

署理设置装备摆设代码的注入体式格局与BokBot的子历程注入要领大抵雷同(一样参考上篇文章),但有两点分歧:一是挪用OpenProcess衔接历程;二是会为ZwWaitForSingleObject增加一个钩子。这意味着只需浏览器实行了ZwWaitForSingleObject,注入的代码就会实行删除钩子、设置装备摆设署理、完成ZwWaitForSingleObject挪用的事情,以保护流程实行。

6.3.1、上下文组织

上下文数据组织被注入到浏览器历程中,并为署理设置装备摆设代码供应须要的信息以确保设置装备摆设准确。

6.4、浏览器署理设置装备摆设代码

设置装备摆设代码实际上是一系列历程钩子,用于将署理模块插进去通讯通道:

· CertVerifyCertificateChainPolicy

· CertGetCertificateChain

· connect (ws2_32.dll)

和用于特定浏览器的函数:

· Internet Explorer:MSAFD_ConnectEx

· Firefox:SSL_AuthCertificateHook

· Chrome:ws2_32.WSAEventSelect

6.4.1、插进去钩子

大多数钩子都是经由历程遍历目的模块的导出表、散列顺序名,然后将散列与静态值举行对照来插进去的。若是散列婚配,则能够安排钩子。

深切理会BokBot的中间人攻击方式(上)

表2:钩子函数名散列

为了取得MSAFD_ConnectEx的地点,运用了另外一种要领,我们以“6.6.3、勾住浏览器的特定函数”中的Internet Explorer: MSAEFD_ConnectEx为例举行议论。

6.6.2、Winsock2 Connect 钩子

Winsock2钩子阻拦一切运用connect API发送网络流量的AF_INET网络流量(Firefox和IE)。socket设置为非壅塞情势,运用ioctlsocket将新的connect挪用发送到署理服务器。竖立衔接后,将包罗以下数据的12字节数据包发送到署理服务器:

深切理会BokBot的中间人攻击方式(上)

这12个字节将被剖析并存储在PROXY_SESSION_CONTEXT数据组织中(图1)。任何运用此文件描述符的网络挪用都将发送到署理服务器。不管哪一个浏览器发出挪用,都不会晓得被署理阻拦了流量。

6.6.3、勾住浏览器的特定函数

以下的钩子视分歧浏览器而定。从本质上讲,不管是浏览器特定的库照样MS同享模块,每一个浏览器都以分歧的体式格局处置惩罚要求。

· Internet Explorer:MSAFD_ConnectEx

与前面的connect钩子相似,此功用运用包罗署理服务器衔接数据的socket来交流原始socket。历程地点不在mswsock.dll的导出表中,因而经由历程挪用WSAIoctl套接字猎取地点,IO掌握代码为SIO_GET_EXTENSION_FUNCTION_POINTER (0xC8000006)。

· FireFox:SSL_AuthCertificateHook

Firefox运用SSL_AuthCertificateHook回调函数来考证证书。若是证书经由身份考证,则返回SECSuccess(null)。 BokBot会试图在“nss3.dll”模块中勾住此函数,若是失利,它将在“ssl3.dll”中补上雷同的函数。钩子老是返回SECSuccess。

· Google Chrome:WSAEventSelect

除勾住ws2_32.connect,BokBot还在WSAEventSelect的ws_32.dll模块中增加了一个分外的钩子。钩子为每一个衔接事宜(FD_CONNECT)抓取socket和事宜工具,数据将经由历程挪用钩子衔接顺序来处置惩罚。

· Google Chrome: connect

这个钩子本质上与IE和Firefox的connect钩子雷同。重要的区别是,WSAEventSelect钩子网络的一切衔接事宜都由这个钩子处置惩罚的。

6.6.4、确认有用证书

一旦浏览器流量被重定向到署理,Bokbot必需防备浏览器向用户发送证书毛病的关照。为了确保证书获得考证和信托,须要衔接两个历程:CertVerifyCertificateChainPolicy和GetCertificateChain。

证书链考证

证书链经由历程挪用CertVerifyCertificateChainPolicy举行考证。此历程返回一个布尔函数透露表现链是不是有用。BokBot经由历程挂钩此函数来确保一切考证SSL证书链(CERT_CHAIN_POLICY_SSL)的实验都将返回TRUE。

证书链上下文信托

为了确保浏览器看到证书是可托的,BokBot挂钩GetCertificateChain历程。GetCertificateChain将组织一个包罗CERT_SIMPLE_CHAIN组织数组的CERT_CHAIN_CONTEXT组织。每一个CERT_SIMPLE_CHAIN组织都包罗一个CERT_CHAIN_ELEMNT数据组织数组。

这些数据组织都包罗一个字段TrustStatus,用于通报证书链的潜伏题目。为了确保胜利,须要修正TrustStatus字段,以确保链中的一切证书都是可托的。

TrustStatus是一个由标识毛病的字段(ErrorStatus)和包罗证书信息状况的字段(InfoStatus)构成的组织。在每一个组织中,经由历程修正这两个字段诱使浏览器置信证书都是可托的。

起首,设置ErrorStatus透露表现证书或链没有毛病:

深切理会BokBot的中间人攻击方式(上)

关于一切数据组织,此值都设置为雷同的。但是,CERT_CHAIN_ELEMENT组织、CERT_CHAIN_CONTEXT和CERT_SIMPLE_CHAIN组织之间的InfoStatus字段是分歧的:

深切理会BokBot的中间人攻击方式(上)

一旦设置了这两个值,证书链就会被浏览器视为可托的。

七、署理与C2的通讯

在署理服务器和C2之间通报的大部分通讯将由被过滤的数据或用于调试的毛病音讯构成。表3包罗每一个要求都要通报的URI参数。而详细发送的数据将在下一节中议论。

深切理会BokBot的中间人攻击方式(上)

表3:C2 URI参数

下面是要求头的一个示例:

深切理会BokBot的中间人攻击方式(上)

在这类情况下,要求体包罗以下Zlib紧缩数据:

深切理会BokBot的中间人攻击方式(上)

如何摆脱Google的影响,实现一个完全无Google因素的网络环境

前言 本文我得先从我最近参与的一个安全检测项目开始谈起,本次的客户是一家企业,不得不说,本次我们的客户的安全防护做得非常好。他们的安全运营中心(SOC)配备了很多先进的内部异常检测工具以及顽强的事件响应团队。这里我要说一句,他


申博|网络安全巴士站声明:该文看法仅代表作者自己,与本平台无关。版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权
转载请注明深切理会BokBot的中间人攻击方式(上)
喜欢 (0)
[]
分享 (0)
发表我的评论
取消评论
表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址