Varonis | Segurança de dentro para fora

ALPHV (BlackCat) Ransomware

Escrito por Jason Hill | Jan 26, 2022 2:00:00 PM

Após notícias de que os membros do infame grupo de ransomware REvil, que tem como alvo grandes empresas, foram presos pelas autoridades russas, efetivamente acabando com suas operações, é provável que os afiliados do grupo migrem para outros provedores de Ransomware como serviço (RaaS). 

O Varonis Threat Labs observou que um desses provedores de RaaS, o ALPHV (também conhecido como ransomware BlackCat), vem ganhando força desde o final de 2021, recrutando ativamente novos afiliados e visando organizações em vários setores no mundo todo.  

Aqui estão algumas das principais lições aprendidas: 

  • O grupo está recrutando ativamente ex-hackers do REvil, BlackMatter e DarkSide 
  • Aumento da atividade desde novembro de 2021 
  • Lucrativo para afiliados (até 90%) 
  • Executável de ransomware codificado em Rust (rápido, multiplataforma, altamente personalizado para cada vítima) 
  • Criptografia AES como padrão 
  • Escalonamento de privilégios integrado (desvio de UAC, Masquerade_PEB, CVE-2016-0099) 
  • Pode se espalhar para hosts remotos via PsExec 
  • Exclui shadow copies usando o VSS Admin 
  • Interrompe as máquinas virtuais VMware ESXi e exclui o instantâneo 

O local de vazamento do grupo, ativo desde o início de dezembro de 2021, nomeou mais de vinte organizações vítimas no final de janeiro de 2022, embora o número total de vítimas, incluindo aquelas que pagaram para evitar a exposição, seja provavelmente maior.  

O intuito deste artigo é fornecer uma visão geral dessa ameaça emergente de ransomware, detalhando as variantes para Linux e Windows de sua ferramenta de criptografia. 

Contexto 

O ALPHV, também conhecido como ALPHV-ng, BlackCat e Noberus, apareceu pela primeira vez em novembro de 2021 e é uma ameaça de Ransomware como serviço (RaaS) que tem como alvo organizações em vários setores no mundo todo usando a tática de Triple Extortion. 

A Triple Extortion se baseia na tática comum de Double Extortion, na qual os dados confidenciais são roubados antes da criptografia e a vítima é ameaçada com a divulgação ao público, mas acrescenta a ameaça de um ataque distribuído de negação de serviço (DDoS) se as demandas do grupo de ransomware não forem atendidas. 

Esse ataque demonstra experiência neste domínio de ameaças, como o uso de táticas, técnicas e procedimentos (TTP) comprovados de ataques a grandes empresas e seus resultados bem-sucedidos recentes, por isso deve ter sido criado não por um principiante, mas por um ex-membro do grupo de ransomware. 

Além disso, alguns usuários do fórum de crimes cibernéticos comentaram que o ALPHV pode até ser uma evolução ou rebranding do BlackMatter, um spin-off ou sucessor do REvil e DarkSide. 

De acordo com anúncios anteriores em fóruns de crimes cibernéticos em russo (Figura 1), os afiliados são atraídos a se juntar ao grupo com retornos de até 90% de qualquer resgate coletado. 

Figura 1 – ‘Procurando pentesters WINDOWS/LINUX/ESX’ do ALPHV 

Em colaboração com esses novos afiliados, a intrusão inicial da rede de uma vítima provavelmente usará técnicas testadas e comprovadas. Um exemplo disso seria a exploração de vulnerabilidades comuns em dispositivos de infraestrutura de rede, como gateways VPN, e o uso indevido de credenciais por meio de hosts de protocolo de área de trabalho remota (RDP) expostos. 

Em seguida, os invasores ALPHV foram observados usando o PowerShell para modificar as configurações de segurança do Windows Defender em toda a rede da vítima e iniciando o binário de ransomware, um processo interativo, em vários hosts usando PsExec. 

Ransomware 

Depois de obter acesso inicial à rede de uma vítima, o grupo certamente conduzirá fases de reconhecimento e movimento lateral nas quais dados confidenciais e valiosos serão identificados para exfiltração e posterior criptografia. 

O agente da ameaça usa o próprio executável de ransomware, criado do zero em vez de ser baseado em alguma ameaça existente, para gerar uma ameaça específica para a vítima que leva em consideração elementos como o desempenho da criptografia, talvez optando por criptografar apenas partes de arquivos grandes e credenciais da vítima incorporadas para permitir a propagação automatizada da carga útil do ransomware para outros servidores. 

Ao contrário de muitas outras ameaças de ransomware, o ALPHV foi desenvolvido usando Rust, uma linguagem de programação conhecida por seu desempenho rápido e recursos multiplataforma. Com isso, foram observadas variantes para Linux e Windows ao longo de dezembro de 2021 e janeiro de 2022.  

Embora muitos sugiram que o ALPHV pode ser a primeira ameaça de ransomware da história a usar essa linguagem, uma prova de conceito do ransomware Rust foi publicada no GitHub em junho de 2020, mesmo não havendo nada que sugira que os dois estejam de alguma forma relacionados. 

Em especial, o uso de Rust, entre outras linguagens modernas, incluindo Golang e Nim, parece ser uma tendência crescente entre os agentes de ameaças de crime cibernético nos últimos dois anos. 

Além de criar novas ameaças multiplataforma e de alto desempenho, alguns agentes de ameaças também reescreveram suas ameaças mais antigas com probabilidade de escapar da detecção e impedir a análise, como observado com o downloader “Buer” atualizado chamado “RustyBuer”. 

A análise das amostras do ALPHV coletadas recentemente indica que o processo de desenvolvimento provavelmente ocorreu durante o início e meados de novembro de 2021, dado o histórico de lançamento das “caixas” Rust (bibliotecas de programação) usadas.   

Especificamente, amostras do ALPHV observadas recentemente usam a versão 1.4.3 do “Zeroize”, que só foi lançada em 4 de novembro de 2021, enquanto também usam versões de criptografia de chave pública que foram substituídas por versões lançadas em 16 e 17 de novembro de 2021.  

Muitas das caixas Rust usadas são óbvias, como o uso de interfaces de linha de comando e bibliotecas de criptografia, mas o uso do Zeroize, uma biblioteca que limpa com segurança os segredos da memória, parece ser uma tentativa deliberada de impedir que segredos de criptografia sejam recuperados de um host comprometido. 

Configuração 

Cada binário de ransomware ALPHV específico da vítima tem uma estrutura de dados JSON incorporada (Figura 2) que contém uma configuração personalizada levando em consideração o conhecimento do agente da ameaça sobre a rede da vítima.

Figura 2 – Exemplo de estrutura de dados JSON incorporada 

As amostras observadas recentemente incluem configurações com um conjunto comum de opções (Tabela 1), algumas das quais se aplicam a ambas as variantes e outras específicas do sistema operacional.

Opção de configuração 

Descrição 

config_id 

Não definido em amostras observadas recentemente. 

public_key 

Chave pública RSA específica da vítima usada para proteger a chave de criptografia. 

extension 

Extensão específica da vítima adicionada a arquivos criptografados, uma string aparentemente gerada aleatoriamente de sete caracteres alfanuméricos minúsculos (expressão regular: [a-z0-9]{7}). 

note_file_name 

Nome do arquivo da nota de resgate definido como “RECOVER-${EXTENSION}-FILES.txt” em amostras observadas recentemente. 

note_full_text 

Texto da nota de resgate, consistente com amostras observadas recentemente, com um endereço de Tor onion específico da vítima usado para negociações. 

note_short_text 

Texto do papel de parede do Windows direcionando a vítima para a nota de resgate, consistente com amostras observadas recentemente. 

default_file_mode 

Normalmente definido como “Auto”, embora tenham sido observados dois valores “SmartPattern”, o que resultou em um número específico de megabytes de cada arquivo sendo criptografado em etapas de dez: 

  • map[SmartPattern:[1.048576e+07 10]] 
  • map[SmartPattern:[3.145728e+07 10]] 

Esses valores são definidos por motivos de desempenho em hosts de vítimas específicas, como ao lidar com arquivos muito grandes. 

default_file_cipher 

Definido como “Best” em todas as amostras observadas recentemente, tenta usar a criptografia AES primeiro e volta para ChaCha20. 

credentials 

Específico para a vítima e provavelmente usado para propagação. As credenciais de domínio e do administrador local foram observadas em algumas amostras. 

kill_services 

Lista típica de serviços comuns do Windows relacionados a aplicações, utilitários de backup, soluções de segurança e servidores, com alguns serviços específicos para a vítima observados em amostras recentes. 

kill_processes 

Lista típica de processos comuns do Windows relacionados a aplicações, utilitários de backup, soluções de segurança e servidores, com processos específicos para a vítima observados em amostras recentes. 

exclude_directory_names 

Lista típica de diretórios do sistema Windows para garantir que o host permaneça estável após a criptografia (o que permite acesso à nota de resgate). 

exclude_file_names 

Lista típica de arquivos do sistema Windows para garantir que o host permaneça estável após a criptografia (o que permite acesso à nota de resgate). 

exclude_file_extensions 

Lista típica de extensões de arquivos do sistema Windows para garantir que o host permaneça estável após a criptografia (o que permite acesso à nota de resgate). 

exclude_file_path_wildcard 

Não definido em amostras observadas recentemente, exclui os caminhos de arquivo especificados do processo de criptografia por host/vítima. 

enable_network_discovery 

Valor booleano, definido como “true” em amostras observadas recentemente e permitindo a descoberta de rede via NetBIOS/SMB em busca de outros hosts para criptografar. 

enable_self_propagation 

Valor booleano, as configurações mistas observadas em amostras recentes sugerem que o sistema é configurado por host/vítima. 

enable_set_wallpaper 

Valor booleano, definido como “true” em amostras observadas recentemente, o que faz com que o papel de parede do Windows mostre “note_short_text”. 

enable_esxi_vm_kill 

Valor booleano, determina se as máquinas virtuais VMware ESXi serão encerradas. 

enable_esxi_vm_snapshot_kill 

Valor booleano, determina se os instantâneos da máquina virtual VMware ESXi serão excluídos (opção de configuração presente apenas em amostras do Linux observadas recentemente). 

strict_include_paths 

Não definido em amostras observadas recentemente, resulta no seguinte: o processo de criptografia processa apenas arquivos localizados nos caminhos especificados. 

esxi_vm_kill_exclude 

Valor booleano, exclui as máquinas virtuais VMware ESXi especificas do processo de encerramento. 

Tabela 1 – Opções de configuração do ALPHV 

Embora muitas opções apareçam nas configurações integradas de ambas as amostras, parece que o ransomware ignora aquelas que não se aplicam ao host. Por exemplo, amostras recentemente observadas do Windows incluem referências ao VMware ESXi, uma plataforma suportada pela variante Linux, enquanto as amostras recentemente observadas do Linux mantêm referências a diretórios, arquivos e extensões de arquivo do Windows. 

Com base nas opções de comando disponíveis para ambas as variantes, é provável que muitas das opções de configuração integradas possam ser substituídas na execução.  

Interface de linha de comando 

Iniciar o ransomware com o parâmetro “--help” mostra as opções disponíveis (Figura 3) e fornece uma visão de seus recursos.

Figura 3 – Opções “Core” do ALPHV (variante do Windows) 

As diferenças nas opções exibidas podem indicar uma versão mais antiga ou uma variante específica da vítima/Windows, com muitas opções que permitem ao agente da ameaça substituir qualquer configuração integrada. 

Além desses recursos principais, a análise de uma variante recente do Linux fornece informações (Figura 4) sobre o suporte a hosts VMware ESXi, incluindo a capacidade de desligar máquinas virtuais e, se ativado, limpar instantâneos de máquinas virtuais para impedir os esforços de recuperação. 

Figura 4 – Opções “ESXi” do ALPHV (variante do Linux) 

Quando iniciadas, as variantes do Linux e do Windows incluem um pool de trabalho multithread que gera um “pool de trabalhadores de arquivos” composto por quatro trabalhadores que são usados para abrir e modificar cada arquivo de destino, substituindo o conteúdo original por dados criptografados. 

Variante do Windows 

Depois de inicializar suas funções básicas, incluindo a criação do pool de trabalhadores de arquivos, os recursos de escalonamento de privilégios podem ser executados pela variante do Windows sob determinadas condições. 

Como a execução manual do elemento ransomware ocorre após a invasão, após as etapas de reconhecimento e exfiltração de dados, espera-se que o agente da ameaça tenha privilégios elevados. 

Independentemente disso, as seguintes capacidades de escalonamento de privilégios parecem estar incorporadas ao ransomware e provavelmente aumentarão as chances de sucesso se propagadas para outros hosts do Windows: 

  • Masquerade_PEB”, lançado anteriormente como um script de prova de conceito [6] e usado para fazer um processo do PowerShell parecer outro processo que, por sua vez, poderia permitir operações elevadas. 
  • Desvio do controle de conta de usuário (UAC) por meio de uma interface COM elevada, neste caso, usando o objeto COM Microsoft Connection Manager Admin API Helper for Setup (cmstplua.dll): 
  • %SYSTEM32%\DllHost.exe /Processid:{3E5FC7F9-9A51-4367-9063-A120244FBEC7} 
  • CVE-2016-0099, um serviço de logon secundário operado por meio da API “CreateProcessWithLogonW”. 

Além disso, a variante do Windows executa vários processos antes da fase de criptografia que diferem das ameaças comuns de ransomware, como: 

  • Adquirir o identificador único universal (UUID) do host usando o utilitário de linha de comando da interface de gerenciamento do Windows (WMIC) que, junto com o valor do “token de acesso”, gera uma “chave de acesso” para permitir o acesso ao site Tor específico da vítima: 
  • wmic csproduct get UUID 
  • Habilitar links simbólicos “remoto para local” e “remoto para remoto” usando o utilitário do sistema de arquivos (fsutil) para permitir a criação de links que redirecionam para outro arquivo ou diretório: 
  • fsutil behavior set SymlinkEvaluation R2L:1 
  • fsutil behavior set SymlinkEvaluation R2R:1 
  • Definir o número máximo de solicitações de rede que o servidor pode enviar, evitando problemas de acesso remoto a arquivos ao executar o processo de criptografia, atualizando a configuração no registro do Windows: 
  • reg add HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters /v MaxMpxCt /d 65535 /t REG_DWORD /f 
  • Enumerar todas as partições do disco local e, se forem encontradas partições ocultas, montá-las para permitir a criptografia de dados adicionais, potencialmente tornando as partições de recuperação desnecessárias. 
  • A propagação, se ativada, provavelmente usa as credenciais contidas na configuração integrada e usa o PsExec, um utilitário Sysinternals do Microsoft Windows, para executar o ransomware em um host remoto: 
  • psexec.exe -accepteula \\<TARGET_HOST> -u <USERNAME> -p <PASSWORD> -s -d -f -c <ALPHV_EXECUTABLE> [FLAGS] [OPTIONS] --access-token <ACCESS_TOKEN> [SUBCOMMAND] 

Além de suprimir a exibição da caixa de diálogo de licença do PsExec (-accepteula), o processo de disseminação do ransomware será executado usando a conta SYSTEM (-s) em uma sessão não interativa (-d), negando assim a necessidade de aguardar a conclusão do processo remoto, com o executável do ransomware sendo copiado para o host remoto (-c) e sobrescrevendo qualquer arquivo existente (-f). 
Especificamente, o executável PsExec legítimo é integrado na variante do Windows e colocado no diretório %TEMP% da vítima. 

Como esperado, as características comuns do ransomware do Windows também são executadas: 

  • Excluir shadow copies usando o utilitário de administração do Volume Shadow Copy Service (VSS) (vssadmin) para dificultar os esforços de recuperação: 
  • vssadmin.exe delete shadows /all /quiet 
  • Encerrar os processos e/ou serviços especificados na configuração para minimizar o número de arquivos bloqueados (abertos) e potencialmente desabilitar utilitários de backup e software de segurança para evitar a detecção. 
  • Esvaziar a Lixeira. 

Como padrão para a criptografia AES, representada pela opção de configuração “best”, o processo pode recuar ou ser substituído para usar o ChaCha20. 

Depois que um arquivo é criptografado, a extensão de arquivo alfanumérica de sete caracteres pré-configurada é anexada ao nome do arquivo, um valor que parece ser diferente entre as vítimas. 

Após a fase de criptografia, várias tarefas finais são executadas: 

  • Descoberta de rede, usando NetBIOS e SMB, provavelmente em preparação para propagação, aparentemente incluindo o uso do comando nativo do protocolo de resolução de endereços (ARP) para coletar endereços IP e MAC da tabela ARP (uma lista de hosts conhecidos pelo host vítima): 
  • arp -a 
  • Criação da nota de resgate predefinida em cada pasta que contém arquivos criptografados, bem como uma imagem contendo a nota de resgate curta na área de trabalho de todos os usuários: 
  • RECOVER-<ENCRYPTED_FILE_EXTENSION>-FILES.txt 
  • %USERPROFILE%\Desktop\RECOVER-<ENCRYPTED_FILE_EXTENSION>-FILES.txt.png 
  • Configuração do papel de parede (Figura 5) no arquivo de imagem PNG enviado para cada usuário por meio de uma atualização da chave de registro do Windows:
  • HKEY_USERS\<SID>\Control Panel\Desktop\WallPaper = "C:\\Users\\<USERNAME>\\Desktop\\RECOVER-<ENCRYPTED_FILE_EXTENSION>-FILES.txt.png" 
 

Figura 5 – Papel de parede após a criptografia 

  • Repetição do processo de exclusão da shadow copy usando vssadmin. 
  • Uso do utilitário de log de eventos do Windows (wevtutil) para listar e limpar todos os logs de eventos: 
  • for /F \"tokens=*\" %1 in ('wevtutil.exe el') DO wevtutil.exe cl \"%1\"" 

Comportamento do VMware ESXi 

Se as opções do ESXi não estiverem desabilitadas, o utilitário de interface de linha de comando VMware ESXi (esxcli) será chamado e gerará uma lista separada por vírgulas de todas as máquinas virtuais em execução: 

  • esxcli --formatter=csv --format-param=fields=="WorldID,DisplayName" vm process list 

A saída desse comando é então “canalizada” para o AWK, um utilitário de processamento de texto, para analisar o resultado e iniciar o utilitário de interface de linha de comando ESXI para forçar o desligamento de cada máquina virtual: 

  • awk -F "\"*,\"*" '{system("esxcli vm process kill --type=force --world-id="$1)}' 

Usando o utilitário VMware Virtual Infrastructure Management (vimcmd), outra lista de máquinas virtuais é coletada e verificada, cujos resultados são retornados ao vimcmd com o comando “snapshot.removeall” que faz com que todos os instantâneos sejam excluídos: 

  • for i in `vim-cmd vmsvc/getallvms| awk '{print$1}'`;do vim-cmd vmsvc/snapshot.removeall $i & done 

Vitimologia 

Como costuma ser o caso das ameaças de ransomware “big-game hunter”, as vítimas geralmente são grandes organizações das quais resgates maiores podem ser extorquidos. Relatórios sugerem que as demandas variam de US$ 400 mil a US$ 3 milhões a serem pagos em criptomoeda. 

Embora o número real de vítimas seja desconhecido, mais de vinte organizações foram nomeadas no “site de vazamento” Tor do grupo, em diversos setores e países, como: 

  • Austrália, Bahamas, França, Alemanha, Itália, Países Baixos, Filipinas, Espanha, Reino Unido e Estados Unidos. 
  • Serviços empresariais, construção, energia, moda, finanças, logística, manufatura, setor farmacêutico, varejo e tecnologia. 

Indicadores de comprometimento (IoC) 

Processos Linux 

Os seguintes processos legítimos, embora suspeitos, foram gerados pela variante Linux/VMware ESXi: 

  • esxcli --formatter=csv --format-param=fields=="WorldID,DisplayName" vm process list | awk -F "\"*,\"*" '{system("esxcli vm process kill --type=force --world-id="$1)}' 
  • for i in `vim-cmd vmsvc/getallvms| awk '{print$1}'`;do vim-cmd vmsvc/snapshot.removeall $i & done 

Processos Windows 

Os seguintes processos legítimos, embora suspeitos, foram gerados pela variante Windows: 

  • arp -a 
  • %SYSTEM32%\DllHost.exe /Processid:{3E5FC7F9-9A51-4367-9063-A120244FBEC7} 
  • for /F \"tokens=*\" %1 in ('wevtutil.exe el') DO wevtutil.exe cl \"%1\"" 
  • fsutil behavior set SymlinkEvaluation R2L:1 
  • fsutil behavior set SymlinkEvaluation R2R:1 
  • psexec.exe -accepteula \\<TARGET_HOST> -u <USERNAME> -p <PASSWORD> -s -d -f -c <ALPHV_EXECUTABLE> [FLAGS] [OPTIONS] --access-token <ACCESS_TOKEN> [SUBCOMMAND] 
  • reg add HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters /v MaxMpxCt /d 65535 /t REG_DWORD /f 
  • wmic csproduct get UUID 

Executáveis do ransomware no Linux (SHA256) 

Como cada amostra é específica para a vítima, os executáveis a seguir são fornecidos para fins de pesquisa, e não para detecção: 

  • 3a08e3bfec2db5dbece359ac9662e65361a8625a0122e68b56cd5ef3aedf8ce1 
  • 5121f08cf8614a65d7a86c2f462c0694c132e2877a7f54ab7fcefd7ee5235a42 
  • 9802a1e8fb425ac3a7c0a7fca5a17cfcb7f3f5f0962deb29e3982f0bece95e26 
  • e7060538ee4b48b0b975c8928c617f218703dab7aa7814ce97481596f2a78556 
  • f7a038f9b91c40e9d67f4168997d7d8c12c2d27cd9e36c413dd021796a24e083 
  • f8c08d00ff6e8c6adb1a93cd133b19302d0b651afd73ccb54e3b6ac6c60d99c6 

Executáveis do ransomware no Windows (SHA256) 

Como cada amostra é específica para a vítima, os executáveis a seguir são fornecidos para fins de pesquisa, e não para detecção: 

  • 0c6f444c6940a3688ffc6f8b9d5774c032e3551ebbccb64e4280ae7fc1fac479 
  • 13828b390d5f58b002e808c2c4f02fdd920e236cc8015480fa33b6c1a9300e31 
  • 15b57c1b68cd6ce3c161042e0f3be9f32d78151fe95461eedc59a79fc222c7ed 
  • 1af1ca666e48afc933e2eda0ae1d6e88ebd23d27c54fd1d882161fd8c70b678e 
  • 2587001d6599f0ec03534ea823aab0febb75e83f657fadc3a662338cc08646b0 
  • 28d7e6fe31dc00f82cb032ba29aad6429837ba5efb83c2ce4d31d565896e1169 
  • 2cf54942e8cf0ef6296deaa7975618dadff0c32535295d3f0d5f577552229ffc 
  • 38834b796ed025563774167716a477e9217d45e47def20facb027325f2a790d1 
  • 3d7cf20ca6476e14e0a026f9bdd8ff1f26995cdc5854c3adb41a6135ef11ba83 
  • 4e18f9293a6a72d5d42dad179b532407f45663098f959ea552ae43dbb9725cbf 
  • 59868f4b346bd401e067380cac69080709c86e06fae219bfb5bc17605a71ab3f 
  • 5bdc0fb5cfbd42de726aacc40eddca034b5fa4afcc88ddfb40a3d9ae18672898 
  • 658e07739ad0137bceb910a351ce3fe4913f6fcc3f63e6ff2eb726e45f29e582 
  • 7154fdb1ef9044da59fcfdbdd1ed9abc1a594cacb41a0aeddb5cd9fdaeea5ea8 
  • 722f1c1527b2c788746fec4dd1af70b0c703644336909735f8f23f6ef265784b 
  • 731adcf2d7fb61a8335e23dbee2436249e5d5753977ec465754c6b699e9bf161 
  • 7b2449bb8be1b37a9d580c2592a67a759a3116fe640041d0f36dc93ca3db4487 
  • 7e363b5f1ba373782261713fa99e8bbc35ddda97e48799c4eb28f17989da8d8e 
  • 9f6876762614e407d0ee6005f165dd4bbd12cb21986abc4a3a5c7dc6271fcdc3 
  • aae77d41eba652683f3ae114fadec279d5759052d2d774f149f3055bf40c4c14 
  • b588823eb5c65f36d067d496881d9c704d3ba57100c273656a56a43215f35442 
  • bd337d4e83ab1c2cacb43e4569f977d188f1bb7c7a077026304bf186d49d4117 
  • be8c5d07ab6e39db28c40db20a32f47a97b7ec9f26c9003f9101a154a5a98486 
  • c3e5d4e62ae4eca2bfca22f8f3c8cbec12757f78107e91e85404611548e06e40 
  • c5ad3534e1c939661b71f56144d19ff36e9ea365fdb47e4f8e2d267c39376486 
  • c8b3b67ea4d7625f8b37ba59eed5c9406b3ef04b7a19b97e5dd5dab1bd59f283 
  • cda37b13d1fdee1b4262b5a6146a35d8fc88fa572e55437a47a950037cc65d40 
  • cefea76dfdbb48cfe1a3db2c8df34e898e29bec9b2c13e79ef40655c637833ae 
  • d767524e1bbb8d50129485ffa667eb1d379c745c30d4588672636998c20f857f 
  • f837f1cd60e9941aa60f7be50a8f2aaaac380f560db8ee001408f35c1b7a97cb