Como downloads de software legítimos podem esconder backdoors remotos
Detection stack
- AIDR
- Alert
- ETL
- Query
Resumo
Os atacantes estão operando um site de download do RustDesk semelhante (rustdesk.work) que entrega um instalador trojanizado: uma configuração legítima do RustDesk combinada com um carregador malicioso apelidado de Winos4.0. Quando executado, o dropper instala logger.exe and Libserver.exe, então carrega o backdoor na memória para reduzir artefatos em disco. O implante estabelece comando e controle para 207.56.13.76 sobre TCP/5666, permitindo acesso remoto persistente. Esta atividade é impulsionada por engenharia social e personificação de marca, não por uma vulnerabilidade no software RustDesk.
Investigação
Analistas obtiveram o binário malicioso rustdesk-1.4.4-x86_64.exe e observaram que ele grava um instalador legítimo do RustDesk além de um logger.exe armazenamento em disco. O logger.exe componente gera Libserver.exe, que então prepara WinosStager DLLs e uma grande carga útil na memória sem persistir esses módulos em disco. A telemetria de rede confirmou comunicações de saída para 207.56.13.76:5666, avaliado como o canal de C2 da campanha. Os investigadores extraíram indicadores de IOC chave, incluindo o domínio falsificado (rustdesk.work), nomes de arquivos descartados e hashes de arquivos associados.
Mitigação
Implemente práticas verificadas de aquisição de software e baixe RustDesk apenas da fonte oficial (rustdesk.com). Aplique listas de permissão de aplicativos (ou controles equivalentes) para evitar a execução de binários não confiáveis, especialmente arquivos “instalador” originando-se de diretórios graváveis pelo usuário. Monitore e restrinja o tráfego de saída para TCP/5666, e adicione detecções/regras de bloqueio para conexões com rustdesk.work. Bloqueie 207.56.13.76 e o domínio malicioso em controles de DNS, proxy e firewall.
Resposta
Crie detecções para execução de logger.exe and Libserver.exe, e notifique sobre quaisquer conexões de rede para 207.56.13.76:5666. Caçe de forma proativa em endpoints o instalador trojanizado (e quaisquer indicadores SHA-256 ) e valide se o RustDesk foi instalado de fontes não aprovadas. Se a invasão for confirmada, isole os hosts afetados, termine a árvore de processos maliciosos, remova artefatos relacionados e rotacione credenciais potencialmente expostas (especialmente quaisquer contas usadas durante a instalação ou sessões remotas subsequentes).
“graph TB %% Definições de classe classDef action fill:#99ccff classDef technique fill:#ffcc99 classDef malware fill:#ff9999 classDef process fill:#ffdd99 classDef tool fill:#cccccc classDef operator fill:#ff9900 %% Nós action_initial_access[“<b>Ação</b> – Acesso Inicial<br/><b>Técnica</b>: T1204 Execução pelo Usuário”] class action_initial_access action tech_user_execution[“<b>Técnica</b> – T1204 Execução pelo Usuário<br/>A vítima executa conteúdo malicioso”] class tech_user_execution technique tech_malicious_link[“<b>Técnica</b> – T1204.001 Link Malicioso<br/>Link leva ao download de instalador malicioso”] class tech_malicious_link technique tech_trojanized_installer[“<b>Técnica</b> – T1204.002 Instalador Troiano<br/>O instalador parece legítimo, mas contém carga útil”] class tech_trojanized_installer technique malware_logger_exe[“<b>Malware</b> – logger.exe<br/>Captura entrada e realiza ações privilegiadas”] class malware_logger_exe malware tech_process_masquerade[“<b>Técnica</b> – T1036.011 Mascaramento<br/>O nome do processo é alterado para parecer legítimo”] class tech_process_masquerade technique tech_argument_spoof[“<b>Técnica</b> – T1564.010 Alteração de Argumentos<br/>Argumentos de linha de comando são falsificados”] class tech_argument_spoof technique tech_tls_injection[“<b>Técnica</b> – T1055.005 Injeção de Armazenamento Local de Thread<br/>Código injetado via TLS”] class tech_tls_injection technique tech_appcert_dll[“<b>Técnica</b> – T1546.009 Execução de DLL AppCert<br/>Usa DLLs AppCert para autoexecução”] class tech_appcert_dll technique tech_permission_hijack[“<b>Técnica</b> – T1574.005 Sequestro de Fluxo de Execução<br/>Explora fraqueza de permissão de arquivo do instalador”] class tech_permission_hijack technique action_defense_evasion[“<b>Ação</b> – Evasão de Defesa<br/>Múltiplas técnicas para evitar detecção”] class action_defense_evasion action action_persistence[“<b>Ação</b> – Persistência<br/>Estabelece presença de longo prazo”] class action_persistence action tech_registry_rc[“<b>Técnica</b> – T1037.004 Scripts RC de Registro<br/>Executa scripts via registro”] class tech_registry_rc technique tech_active_setup[“<b>Técnica</b> – T1547.014 Configuração Ativa<br/>Autoinicialização via Configuração Ativa”] class tech_active_setup technique tech_preos_boot[“<b>Técnica</b> – T1542 Inicialização Pré-SO<br/>Conecta-se ao processo de inicialização”] class tech_preos_boot technique action_credential_access[“<b>Ação</b> – Acesso a Credenciais<br/>Rouba credenciais do usuário”] class action_credential_access action tech_keylogging[“<b>Técnica</b> – T1056.001 Captura de Teclas<br/>Registra pressões de teclas”] class tech_keylogging technique tech_credential_dump[“<b>Técnica</b> – T1003 Extração de Credenciais do SO<br/>Extrai hashes de senhas”] class tech_credential_dump technique action_collection[“<b>Ação</b> – Coleta<br/>Coleta dados do usuário”] class action_collection action tech_screen_capture[“<b>Técnica</b> – T1113 Captura de Tela<br/>Tira capturas de tela”] class tech_screen_capture technique tech_video_capture[“<b>Técnica</b> – T1125 Captura de Vídeo<br/>Grava vídeo”] class tech_video_capture technique tech_audio_capture[“<b>Técnica</b> – T1123 Captura de Áudio<br/>Grava áudio”] class tech_audio_capture technique action_c2[“<b>Ação</b> – Comando e Controle<br/>Comunica-se com servidor remoto”] class action_c2 action tech_nonstandard_port[“<b>Técnica</b> – T1571 Porta Não Padrão<br/>Usa porta TCP 5666”] class tech_nonstandard_port technique tech_ftp_style[“<b>Técnica</b> – T1071.002 Protocolo Estilo FTP<br/>Codifica tráfego como FTP”] class tech_ftp_style technique tech_port_knocking[“<b>Técnica</b> – T1205.001 Bateção de Porta<br/>Sinaliza C2 via sequência de portas”] class tech_port_knocking technique malware_memory_resident[“<b>Malware</b> – Carga Residencial na Memória<br/>Carrega diretamente na RAM”] class malware_memory_resident malware tech_registry_hide[“<b>Técnica</b> – Configuração Oculta no Registro<br/>Armazena configurações no registro”] class tech_registry_hide technique %% Conexões action_initial_access u002du002d>|usa| tech_user_execution tech_user_execution u002du002d>|inclui| tech_malicious_link tech_user_execution u002du002d>|inclui| tech_trojanized_installer tech_malicious_link u002du002d>|entrega| malware_logger_exe tech_trojanized_installer u002du002d>|contém| malware_logger_exe malware_logger_exe u002du002d>|realiza| tech_process_masquerade malware_logger_exe u002du002d>|realiza| tech_argument_spoof malware_logger_exe u002du002d>|injeta via| tech_tls_injection malware_logger_exe u002du002d>|usa| tech_appcert_dll malware_logger_exe u002du002d>|explora| tech_permission_hijack malware_logger_exe u002du002d>|habilita| action_defense_evasion action_defense_evasion u002du002d>|estabelece| action_persistence action_persistence u002du002d>|usa| tech_registry_rc action_persistence u002du002d>|usa| tech_active_setup action_persistence u002du002d>|usa| tech_preos_boot action_defense_evasion u002du002d>|habilita| action_credential_access action_credential_access u002du002d>|usa| tech_keylogging action_credential_access u002du002d>|usa| tech_credential_dump action_defense_evasion u002du002d>|habilita| action_collection action_collection u002du002d>|captura| tech_screen_capture action_collection u002du002d>|captura| tech_video_capture action_collection u002du002d>|captura| tech_audio_capture action_defense_evasion u002du002d>|habilita| action_c2 action_c2 u002du002d>|comunica via| tech_nonstandard_port tech_nonstandard_port u002du002d>|usa protocolo| tech_ftp_style action_c2 u002du002d>|usa| tech_port_knocking malware_logger_exe u002du002d>|reside em| malware_memory_resident malware_memory_resident u002du002d>|armazena configuração em| tech_registry_hide “
Fluxo de Ataque
Detecções
Arquivo de Log do RustDesk Foi Criado (via file_event)
Visualizar
Possível Atividade de Comando e Controle por Tentativa de Comunicação de Domínio de Software de Acesso Remoto (via dns)
Visualizar
Software Alternativo de Acesso / Gerenciamento Remoto (via process_creation)
Visualizar
IOCs (SourceIP) para detectar: Como downloads de software real podem esconder backdoors remotos
Visualizar
IOCs (HashSha256) para detectar: Como downloads de software real podem esconder backdoors remotos
Visualizar
IOCs (DestinationIP) para detectar: Como downloads de software real podem esconder backdoors remotos
Visualizar
Detecção de Atividade de Rede Winos4.0 via Servidor de Comando-e-Controle Malicioso [Conexão de Rede Windows]
Visualizar
Instalador RustDesk Trojanizado com Backdoor Winos4.0 [Criação de Processo Windows]
Visualizar
Execução de Simulação
Pré-requisito: O Check de Pré-vôo Telemetria & Baseline deve ter sido aprovado.
Racional: Esta seção detalha a execução precisa da técnica adversária (TTP) projetada para acionar a regra de detecção. Os comandos e narrativa DEVEM refletir diretamente os TTPs identificados e visam gerar a telemetria exata esperada pela lógica de detecção.
-
Narrativa do Ataque & Comandos:
- Entrega & Execução: Um atacante entrega um instalador RustDesk trojanizado (
rustdesk-1.4.4-x86_64.exe) via e-mail de phishing. O arquivo é salvo em%TEMP%e executado com privilégios elevados. - Descarga de Carga Útil: Ao ser executado, o instalador extrai dois binários maliciosos—
logger.exeandLibserver.exe—no mesmo diretório e os inicia imediatamente como processos filhos. - Persistência (T1546.016):
logger.exegrava uma entrada de chave de execução (HKCUSoftwareMicrosoftWindowsCurrentVersionRun) apontando para si, garantindo persistência após reinicialização. - Injeção de Código (T1574.005 / T1055.005):
Libserver.exeinjeta uma DLL reflexiva emexplorer.exepara ganhar execução com altos privilégios e abre uma shell reversa para o C2 do atacante. - Evasão (Mascaramento – T1036.011): Todos os binários mantêm a convenção de nomenclatura “RustDesk” para se misturar com o software legítimo.
- Entrega & Execução: Um atacante entrega um instalador RustDesk trojanizado (
-
Script de Teste de Regressão: O script abaixo automatiza as etapas 1‑3, produzindo os três eventos de criação de processo necessários. Ele usa PowerShell para copiar binários maliciosos pré-estagiados (simulados com placeholders benignos por segurança) e lançá-los com o relacionamento correto de pai-filho.
# ------------------------------------------------- # Script de Simulação – Instalador RustDesk Trojanizado # ------------------------------------------------- # Pré-requisito: Dois executáveis de placeholder benignos colocados em C:Malware (nomeados logger.exe & Libserver.exe) # Em um teste real de equipe vermelha, estes seriam as cargas maliciosas reais. # ------------------------------------------------- $installerPath = "$env:TEMPrustdesk-1.4.4-x86_64.exe" $payloadDir = "$env:TEMPrustdesk_payload" $loggerPath = "$payloadDirlogger.exe" $libserverPath = "$payloadDirLibserver.exe" # 1. Implantar um instalador falso (simplesmente uma cópia de um exe benigno) Write-Host "[*] Implantando instalador RustDesk falso..." New-Item -ItemType Directory -Path $payloadDir -Force | Out-Null Copy-Item -Path "C:WindowsSystem32notepad.exe" -Destination $installerPath -Force # 2. Simular descarga de carga útil – copiar binários de placeholder Write-Host "[*] Descarregando cargas úteis..." Copy-Item -Path "C:Malwarelogger.exe" -Destination $loggerPath -Force Copy-Item -Path "C:MalwareLibserver.exe" -Destination $libserverPath -Force # 3. Executar instalador (cria processo pai) Write-Host "[*] Executando instalador..." $installer = Start-Process -FilePath $installerPath -PassThru # 4. Lançar logger.exe como filho do instalador Write-Host "[*] Lançando logger.exe (filho do instalador)..." Start-Process -FilePath $loggerPath -ArgumentList "--parent $($installer.Id)" -NoNewWindow # 5. Lançar Libserver.exe como filho do instalador Write-Host "[*] Lançando Libserver.exe (filho do instalador)..." Start-Process -FilePath $libserverPath -ArgumentList "--parent $($installer.Id)" -NoNewWindow Write-Host "[+] Simulação completa. Verifique alertas no SIEM." -
Comandos de Limpeza: Remova os arquivos temporários e termine quaisquer processos restantes.
# ------------------------------------------------- # Script de Limpeza – Remover artefatos de simulação # ------------------------------------------------- $installerPath = "$env:TEMPrustdesk-1.4.4-x86_64.exe" $payloadDir = "$env:TEMPrustdesk_payload" Write-Host "[*] Parando processos gerados..." Get-Process -Name "logger","Libserver","rustdesk-1.4.4-x86_64" -ErrorAction SilentlyContinue | Stop-Process -Force Write-Host "[*] Excluindo arquivos..." Remove-Item -Path $installerPath -Force -ErrorAction SilentlyContinue Remove-Item -Recurse -Force -Path $payloadDir -ErrorAction SilentlyContinue Write-Host "[+] Limpeza completa."