帝国猫 APT 档案:战术、技术和程序 (TTPs)、恶意软件与攻击模拟
Detection stack
- AIDR
- Alert
- ETL
- Query
总结
Imperial Kitten是一个由伊朗国家支持的APT组织,与伊朗革命卫队(IRGC)有关,已知主要针对航空航天和国防组织。该组织依赖高度定向的鱼叉式网络钓鱼活动和凭证验证门户进行特制恶意软件的投递。其工具包包括多个后门,如TWOSTROKE和MINIBIKE,并经常使用Microsoft Azure基础设施进行C2通信。
调查
报告追踪了Imperial Kitten从2017年到2026年的演变,重点指出其从供应链操作向复杂的社交媒体钓鱼和定制的钓鱼门户的转变。分析还考察了用于保持隐蔽的自定义LLVM风格的混淆技术和DLL旁加载方法,并增加了检测难度。
缓解措施
组织应加强电子邮件安全,以识别相似域名并验证合法身份验证工作流程。终端防御应对DLL旁加载进行强化,未经授权的注册表变更特别是在Run键应密切监视。限制对批准的云服务的出站流量也可以减少通过Azure基础设施进行C2通信的风险。
响应
当检测到Imperial Kitten活动时,隔离受损主机以防止通过RDP或SSH隧道的横向移动。进行取证分析 %LOCALAPPDATA% 检查可疑的DLL文件,并检查注册表键中的持久化机制。检查与识别的C2域及工具相关的异常Azure相关网络流量模式。
攻击流程
检测
可能的持久化点 [ASEPs – Software/NTUSER注册表配置单元](通过registry_event)
2026年11月11日
可疑的SSH端口转发 [Windows](通过cmdline)
2026年11月11日
可能的账户或组枚举/操作(通过cmdline)
2026年11月11日
可能的注册表RDP特定工件删除尝试(通过cmdline)
2026年11月11日
可能的隧道工具使用 [Windows](通过cmdline)
2026年11月11日
替代远程访问/管理软件(通过process_creation)
2026年11月11日
可能的Dxgi旁加载尝试(通过image_load)
2026年11月11日
可能的VGAuth.dll旁加载尝试(通过image_load)
2026年11月11日
公共用户配置文件中的可疑文件(通过file_event)
2026年11月11日
由不常见进程联系的可能Azurewebsites域(通过dns_query)
2026年11月11日
用于检测的IOC(SourceIP):Imperial Kitten(Tortoiseshell)APT:TTPs、恶意软件和攻击模拟
2026年11月11日
用于检测的IOC(DestinationIP):Imperial Kitten(Tortoiseshell)APT:TTPs、恶意软件和攻击模拟
2026年11月11日
Imperial Kitten的持久性和隐蔽注册表修改 [Windows注册表事件]
2026年11月11日
检测Azure基础设施中的Imperial Kitten C2服务器 [Azure活动日志]
2026年11月11日
模拟执行
-
攻击叙述及命令: 对手已成功获得初始访问权限。为确保在系统重启后继续存在,他们部署加载程序,在当前用户的Run注册表键中添加一个”MigAutoPlay”项。这仿效了Imperial Kitten恶意软件配置文件。建立持久性后,对手通过RDP进行横向移动。为避免被检测并掩盖其踪迹,他们立即删除存储最近连接的RDP服务器历史记录的注册表键。
-
回归测试脚本:
# --- PART 1: 持久化模拟 --- Write-Host "[+] 正在模拟通过MigAutoPlay的持久性..." $PersistencePath = "HKCU:SoftwareMicrosoftWindowsCurrentVersionRun" New-ItemProperty -Path $PersistencePath -Name "MigAutoPlay" -Value "C:UsersPublicloader.dll" -PropertyType String -Force # --- PART 2: 反取证(RDP清理)模拟 --- Write-Host "[+] 正在模拟RDP历史记录清理..." $RDPPath1 = "HKCU:SoftwareMicrosoftTerminal Server ClientDefault" $RDPPath2 = "HKCU:SoftwareMicrosoftTerminal Server ClientServers" # 删除键以模拟清理 if (Test-Path $RDPPath1) { Remove-Item -Path $RDPPath1 -Recurse -Force } if (Test-Path $RDPPath2) { Remove-Item -Path $RDPPath2 -Recurse -Force } Write-Host "[!] 模拟完整。" -
清理命令:
# 清理模拟过程中创建的持久性键 Remove-ItemProperty -Path "HKCU:SoftwareMicrosoftWindowsCurrentVersionRun" -Name "MigAutoPlay" -ErrorAction SilentlyContinue # 注意:RDP键由系统管理;我们无法通过脚本轻松恢复'删除'的历史记录,但如有必要,可以重建空结构。 New-Item -Path "HKCU:SoftwareMicrosoftTerminal Server ClientDefault" -Force | Out-Null New-Item -Path "HKCU:SoftwareMicrosoftTerminal Server ClientServers" -Force | Out-Null