关键词
恶意代码加载器、数据窃取、域控
2022年3月,Google威胁分析小组发现了一个新的恶意软件加载程序。由于其User-Agent名称为独特的“ Bumblebee”,所以该加载程序被命名为Bumblebee。该加载程序常被用作命令和控制服务器(C2)通信工具的一部分。
Bumblebee加载器主要通过钓鱼邮件传播,这些电子邮件包含ISO格式的附件或文件下载链接,以从外部来源下载文件。最初执行时需要用户解压文件,挂载ISO镜像,然后单击Windows快捷方式(LNK)文件来触发。
初次执行后,Bumblebee加载器最常见的后利用活动是权限提升、侦察和凭证窃取,本文后续会详细介绍。
Bumblebee攻击者在整个攻击过程中都使用Cobalt Strike框架。攻击者使用所获得的凭据访问活动目录并创建一个NTDS.dit的副本,其中包含整个活动目录的数据。最后,通过域管理员帐号进行横向移动,创建本地用户帐号以及使用Rclone软件窃取数据。
Cybereason GSOC团队发现攻击者正从使用Bazarloader,Trickbot和Icedid等加载器转变为使用Bumblebee加载器,Bumblebee加载器正处于快速发展状态,逐渐变成许多攻击者的选择。
(1)时间线
以下表格为初始入侵到最终数据窃取的时间线:
活动 |
时间 |
初始入侵 |
T0 |
信息收集 / nltest, net, whoami |
T0 + 30 min |
命令与控制 / 加载Meterpreter代理 |
T0 + 4 h |
权限提升 / Zerologon利用 |
T0 + 4 h |
命令与控制 / Cobalt Strike beacon 执行 |
T0 + 6 h |
凭证窃取 / 注册表项 |
T0 + 6 h |
信息收集 / adfind, ping, curl |
T0 + 6.5 h |
凭证窃取和权限提升 / 通过procdump64.exe导出LSASS 内存 |
T0 + 19 h |
凭证窃取 / 窃取NTDS.dit并获取活动目录权限 |
T0 + 22 h |
横向移动 / Cobalt Strike socks隧道 (RDP) |
T0 + 24 h |
数据窃取 / Rclone |
T0 + 3 d |
(2)初始入侵及命令执行
图1:Bumblebee攻击流程
Bumblebee 攻击者搭建一个恶意网站来诱导用户下载。要感染系统,终端用户必须首先手动解压缩包含 ISO 文件的压缩包,挂载该文件,然后执行 Windows 快捷方式(LNK)。
图3:终端用户解压缩并执行Bumblebee攻击者传播的LNK文件
图4:ISO文件挂载后的内容
Bumblebee DLL文件通过LNK文件目标属性中的odbcconf.exe -f [Bumblebee 具体名称].rsp命令来加载。[Bumblebee 具体名称].rsp文件指向[Bumblebee 具体名称].dll文件,该文件为Bumblebee的攻击载荷。
(3)立足点
最初感染后,Bumblebee将代码注入多个进程,以便在受感染的终端上建立牢固的立足点。进程odbcconf.exe创建本地WMI调用以生成新进程。
因此,下面两个进程是从 wmiprivse.exe (Windows 管理规范提供者服务)派生出来的:
-
注入Meterpreter代理代码的wabmig.exe(Microsoft联系人导入工具。
-
Meterpreter代理是用于渗透测试的工具,提供远程控制功能。
注入Cobalt Strike beacon的wab.exe(Microsoft通讯簿应用):
图5:Bumblebee利用WMI运行wab.exe和wabmig.exe,并注入的动态代码
(4)权限提升和Cobalt Strike部署
Bumblebee通过将CVE-2020-1472 (Zerologon)利用代码注入到rundll32.exe中,来实现权限提升:
图6:CVE-2020-1472, Zerologon利用代码
Bumblebee使用用户帐户控制(UAC)绕过技术在被感染的机器上部署高权限的后渗透工具。该方法使用fodhelper.exe实现,它是一个受信任的二进制文件,这意味着Windows 10启动执行对应程序时将不会显示UAC窗口:
图7:通过fodhelper.exe绕过UAC,以及对winlogon.exe进行代码注入
fodhelper.exe用于运行“cmd.exe /c rundll32.exe C:ProgramDataCisco[Cobalt strike].dll”命令,其中[Cobalt Strike] .dll所在的MainProc是Cobalt Strike 框架的beacon文件,它是一个用于执行的导出函数。
Cobalt Strike是一个工具模拟框架,主要用于模拟红队作战。但是,Cobalt Strike也被恶意攻击者积极用于进行入侵后的恶意活动。Cobalt Strike是一个模块化框架,具有一系列对恶意攻击者有用的功能,例如命令执行、进程注入和凭证盗窃等。
(5)凭证窃取
在被感染机器上获取系统权限后,Bumblebee使用下面详述的两种方法执行凭证窃取。
使用的第一种方法是本地安全授权子系统服务(LSASS)进程内存导出。在Windows系统域上,本地用户名和密码存储在LSASS进程的内存空间中。Bumblebee使用procdump64.exe导出此进程的内存,以访问敏感信息:
图8:Bumblebee导出lsass.exe内存
第二种凭证窃取的方式是通过reg.exe来提取用户的注册表项:
HKLM SAM: 安全帐户管理器(SAM)数据库是Windows存储用户帐户信息的地方;
HKLM Security: 本地安全中心(LSA)存储用户登录状态和LSA密钥;
HKLM System: 包含可用于解密/加密LSA机密和SAM数据库的密钥:
图9:Bumblebee提取注册表项
Bumblebee攻击者会获取导出的注册表,进行压缩,并通过网络隧道渗出:
图10:Bumblebee窃取包含凭证信息的导出文件
Bumblebee攻击者离线处理收集到的凭证,并尝试提取明文密码。凭证盗窃和下一步活动之间的时间间隔约为3小时。
(6)侦察
攻击者在受害者组织网络中获取立足点后,会以各种方式收集信息。攻击者常使用nltest、ping、netview、tasklist和Adfind等工具,收集域名、用户、主机和域控制器等与受害者组织相关的信息。
AdFind(名为“af.exe”)是一个用于查询活动目录的公开工具,已被多个攻击者使用:
图11:Bumblebee执行多种行为监测命令
在侦察阶段,Bumblebee攻击者先后与受害者组织内的200多个IP地址和域名通信,最明显的是Microsoft Exchange,Windows Server Update Services(WSUS)等服务器。
下面的表格中给出了统计的侦察命令:
命令 |
描述 |
nltest /domain_trusts |
枚举Windows活动目录(AD)环境中的信任关系 |
nltest /dclist: |
枚举域中的所有域控制器 |
af.exe -f "(objectcategory=person)" > ad_users.txt |
枚举活动目录中的所有用户对象,并将输出存储在文件中 |
af.exe -f "objectcategory=computer" > ad_computers.txt |
枚举活动目录中的所有计算机对象,并将输出存储在文件中 |
whoami /all |
显示当前访问令牌中的所有信息,包括当前用户名、安全标识符(SID)、权限和当前用户所属的组。 |
curl ifconfig[.]me |
使用外部服务检索机器的公开可见IP地址 |
ping {hostname} -n 1 |
枚举活动主机 |
Tasklist /s {IP address} |
列举特定主机上的进程列表 |
net user {username} /domain |
迫使网络用户切换到当前域控制器上执行,而不是在本地计算机上执行 |
net group "domain admins" /domain |
枚举作为域管理员组成员的用户,以便操纵指定域控制器(DC)执行枚举活动 |
net view \{IP address} /all |
枚举特定系统上的所有共享计算机和资源 |
(7)横向移动
Bumblebee使用Cobalt Strike代理进行横向移动。我们可以在远程桌面协议(Remote Desktop Protocol,RDP)的TCP端口3389上看到多个连接的进程:
图12:Bumblebee通过Cobalt Strike代理进行横向移动
在横向移动之后,攻击者使用远程管理软件“any desk” 维持在受害者组织网络中的持久性:
图13:Bumblebee攻击者使用Anydesk进行横向移动
(8)活动目录攻击
在攻击者获得高权限用户及其密码后,攻击者将访问卷影副本。卷影副本是Microsoft Windows中包含的一项技术,可以创建计算机文件或卷的备份副本或快照。
Bumblebee使用 Windows 管理规范命令行工具(WMIC)访问远程活动目录计算机,并使用 vssadmin 命令创建卷影副本。此外,攻击者还会从域控制器窃取NTDS.dit文件。
NTDS.dit文件是存储活动目录数据的数据库,包括有关用户对象、组和组成员身份的信息。该文件还存储域中所有用户的密码散列:
图14:Bumblebee创建远程活动目录的影子副本并窃取NTDS.dit文件
下面是与凭证窃取有关的命令,用于在活动目录进行权限提升:
wmic /node:"[Active Directory IP address]" /user:"[Compromised user name]" /password:"[Compromised user password]" process call create "cmd /c vssadmin create shadow /for=C: 2>&1"
wmic /node:"[Active Directory IP address]" /user:"[Compromised user name]" /password:"[Compromised user password]" process call create "cmd /c vssadmin list shadows >> c:log.txt"
type \[Active Directory IP address]c$log.txt
wmic /node:"[Active Directory IP address]" /user:"[Compromised user name]" /password:"[Compromised user password]" process call create "cmd /c copy \?GLOBALROOTDeviceHarddiskVolumeShadowCopy635WindowsNTDSNTDS.dit c:ProgramDatant & copy \?GLOBALROOTDeviceHarddiskVolumeShadowCopy635WindowsSystem32configSYSTEM c:ProgramDatant & copy \?GLOBALROOTDeviceHarddiskVolumeShadowCopy635WindowsSystem32configSECURITY c:ProgramDatant"
7za.exe a -mx3 nt.7z \[Active Directory IP address]c$ProgramDatant
为了最大化程度的获取活动目录域下的权限,攻击者:
-
创建计算机文件卷的卷影副本;
-
列出所有可获得的卷影副本并将其存储到一个文件中;
-
复制活动目录数据库(NTDS.dit)、包含凭证的注册表HIVE文件、以及包含敏感数据的卷影副本;
-
压缩输出目录并渗出。
(9)账号创建和数据渗出
攻击者使用先前获得的域管理员帐户来横向移动。初次连接后,他们使用Rclone软件创建本地用户和渗出数据。
用户创建命令如下:
net user [Attacker created username] P@ssw0rd!1 /add
net localgroup Administrators [Attacker created username] /add
图15:创建本地用户和使用rclone.exe进行数据窃取
rclone.exe进程将50GB的文件通过TCP 22端口(SSH)传输到一个位于美国的IP地址。
安装反恶意程序软件。
安全地处理从Internet下载的文件以及源自外部来源的电子邮件。
定期将文件备份到安全的远程位置并实施数据恢复计划,确保在勒索软件攻击后能还原数据。
使用安全密码,定期修改密码,并在可能的情况下使用多因子验证。
遵循Microsoft提供的确保活动目录安全的最佳实践。
攻击策略 |
技术或子技术 |
TA0001: 初始入侵 |
T1189: 诱导攻击 |
TA0001: 初始入侵 |
T1566.002: 网络钓鱼:鱼叉式钓鱼链接 |
TA0001: 初始入侵 |
T1078: 有效账户 |
TA0002: 执行 |
T1204.001: 用户执行:恶意链接 |
TA0002: 执行 |
T1204.002: 用户执行:恶意文件 |
TA0002: 执行 |
T1059.003: 命令和脚本解释器:Windows Command shell |
TA0002: 执行 |
T1047: Windows管理工具 |
TA0004: 权限提升 |
T1548.002: 滥用权限提升机制:绕过UAC |
TA0004: 权限提升 |
T1068: 权限提升利用 |
TA0005:防御规避 |
T1036.005: 伪装:合法名称或位置 |
TA0005:防御规避 |
T1055: 进程注入 |
TA0005:防御规避 |
T1218.008: 系统二进制文件代理执行: Odbcconf |
TA0005:防御规避 |
T1218.011: 签名二进制文件代理执行: Rundll32 |
TA0005:防御规避 |
T1620: 反射式代码加载 |
TA0006: 凭证窃取 |
T1003.001: 系统凭证导出: LSASS内存 |
TA0006: 凭证窃取 |
T1003.002: 系统凭证导出: 安全账户管理 |
TA0006: 凭证窃取 |
T1003.003: 系统凭证导出: NTDS |
TA0006: 凭证窃取 |
T1003.004: 系统凭证导出: LSA密钥 |
TA0007: 探测 |
T1018: 远程系统监测 |
TA0007: 探测 |
T1033: 系统管理员/用户探测 |
TA0007: 探测 |
T1057: 进程监测 |
TA0007: 探测 |
T1082: 系统信息监测 |
TA0007: 探测 |
T1087: 账号监测 |
TA0009: 收集 |
T1560.001: 归档收集的数据:通过工具程序归档 |
TA0009: 收集 |
T1039: 网盘数据 |
TA0010: 数据渗出 |
T1048: 通过外部协议渗出数据 |
IOC类型 |
IOC值 |
可执行文件 |
SHA-1 hash: af.exe (AdFind) 4acc9ddf7f23109216ca22801ac75c8fabb97019 |
IP地址 |
C2 server: 185.62.56[.]129 (受Bumblebee影响) |
编辑|王浩钧
审校|何双泽、金矢
本文为CNTIC编译整理,不代表本公众号观点,转载请保留出处与链接。联系信息进入公众号后点击“关于我们”可见。
原文始发于微信公众号(国家网络威胁情报共享开放平台):Bumblebee加载器:企业域控制之路
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论