
A Simple Ransomware Vaccine

Uma Proteção Simples contra Ransomware
Vemos ransomware apagar todas as cópias de sombra usando vssadmin com bastante frequência. E se pudéssemos simplesmente interceptar essa solicitação e eliminar o processo que a invocou? Vamos tentar criar uma vacina simples.

Nós registramos um depurador para vssadmin.exe (e wmic.exe), que é o nosso raccine.exe compilado. Raccine é um binário que primeiro coleta todos os PIDs dos processos pai e depois tenta eliminar todos os processos pai.
Vantagens:
vssadmin.exe ou wmic.exe), o que poderia levar a problemas de integridade e quebrar nossa raccinação a cada dia de patchDesvantagens / Pontos Cegos:
vssadmin.exe delete shadows (ou qualquer outra combinação bloqueada) não é mais possívelvssadmin.exe delete shadows, o que pode ser um processo de backupvssadmin.exe (ex.: via schtasks)vssadmin.exe (e wmic.exe) é interceptada e passada para raccine.exe como depurador (vssadmin.exe delete shadows se torna raccine.exe vssadmin.exe delete shadows)Combinações maliciosas:
delete e shadows (vssadmin, diskshadow)resize e shadowstorage (vssadmin)delete e shadowstorage (vssadmin)delete e shadowcopy (wmic)delete e catalog e -quiet (wbadmin)win32_shadowcopy ou elemento de uma lista de comandos codificados (powershell)recoveryenabled (bcedit)ignoreallfailures (bcedit)^ lista desatualizada: verifique a regra YARA correspondente
Lista do Powershell de comandos codificados: JAB, SQBFAF, SQBuAH, SUVYI, cwBhA, aWV4I, aQBlAHgA e muitos outros
Emotet sem Raccine - Link

Emotet com Raccine - Link (ignore a atividade de processo relacionada à instalação do Raccine)

A infecção é cortada pela raiz.
USE POR SUA CONTA E RISCO!
Você não poderá mais executar comandos que usem os comandos bloqueados em uma máquina raccinada até aplicar o patch de desinstalação raccine-reg-patch-uninstall.reg. Isso pode quebrar várias soluções de backup que executam esse comando específico durante o trabalho. Ele não apenas bloqueará a solicitação, mas também eliminará todos os processos na árvore, incluindo a solução de backup e o processo que a invocou.
Se você tiver um monitoramento de segurança sólido que registre todas as execuções de processos, poderá verificar seus logs para ver se vssadmin.exe delete shadows, vssadmin.exe resize shadowstorage ... ou as outras linhas de comando bloqueadas são usadas com frequência ou esporadicamente para fins legítimos; nesse caso, você deve evitar usar o Raccine.
delete e shadows na linha de comando e, caso contrário, passa todos os parâmetros para um novo processo que invoca o vssadmin com seus parâmetros originaisexplorer.exe da lista de permissõeswmic chamando delete shadowcopy, sem saídas para inicializações de processos na lista de permissões (evita problemas com o processamento da saída do wmic)delete shadowstorage por @JohnLaTwC, revisão de código por @_hillu, ícone do aplicativobcdedit.exe /set {default} bootstatuspolicy ignoreallfailures e bcdedit.exe /set {default} recoveryenabled noTanto o pacote Visual C++ Redistributable quanto o .NET Framework serão instalados automaticamente ao executar install-raccine.bat.
Raccine.zip da seção Releaseraccine-installer.bat como administrador
O instalador em lote inclui uma opção de "desinstalação".
Como Administrador, faça:
raccine-reg-patch-uninstall.reg%ProgramFiles%\Raccine e %ProgramData%\Raccinereg delete HKCU\Software\Raccine /Ftaskkill /F /IM RaccineSettings.exereg delete "HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Run" /V "Raccine Tray" /Fschtasks /DELETE /TN "Raccine Rules Updater" /FRecomendamos desinstalar e reinstalar para atualizar. Uma desinstalação remove todas as chaves de registro com configurações.
O Raccine tem um atualizador de assinaturas integrado desde a versão 1.2. Este programa, chamado RaccineRulesSync.exe, está configurado para ser executado uma vez por dia por meio de uma tarefa agendada. Você pode executar uma atualização de assinaturas manualmente usando a opção no menu do ícone da bandeja.
Desde a versão 1.0, o Raccine usa adicionalmente regras YARA para determinar se a linha de comando de um processo ou o processo pai é malicioso ou não. O Raccine usa 2 conjuntos de regras para duas finalidades diferentes.
./yara - regras que são aplicadas à linha de comando com todos os parâmetros, ex.: WMIC.exe delete justatest./yara/in-memory - regras que são aplicadas à memória do processo pai do nosso processo interceptado, ex.: ransomware.exe executando nosso processo interceptado vssadmin.exeDesde a versão 1.1, passamos uma lista de variáveis externas para o processo de correspondência YARA, permitindo regras YARA muito mais complexas e inteligentes que levam em conta atributos do processo e de seu pai.
O processo de correspondência é assim na linha de comando:
"C:\Program Files\Raccine\yara64.exe" -d FromRaccine="true" -d Name="WMIC.exe" -d ExecutablePath="C:\Windows\System32\wbem\WMIC.exe" -d CommandLine="WMIC.exe delete justatest" -d Priority=32 -d FromRaccine="true" -d ParentName="cmd.exe" -d ParentExecutablePath="C:\Windows\System32\cmd.exe" -d ParentCommandLine="'C:\WINDOWS\system32\cmd.exe' " -d ParentPriority=32 C:\ProgramData\Raccine\yarayara\mal_emotet.yar C:\ProgramData\Raccine\yara\Rac1C6A.tmp
A listagem a seguir mostra um exemplo de regra YARA que utiliza as variáveis externas em sua condição.
rule env_vars_test {
condition:
Name contains "WMIC.exe"
and CommandLine contains "delete justatest"
and ParentPriority >= 8
and (
ParentCommandLine contains "cmd"
or ParentCommandLine contains "powershell"
)
}
A pasta GPO inclui Raccine.ADMX e Raccine.ADML. Na implantação, o arquivo Raccine.ADMX deve ser colocado em C:\Windows\PolicyDefinitions. Os arquivos Raccine.ADML correspondentes devem ser colocados em C:\Windows\PolicyDefinitions\en-US.
Para usar: Abra GPEDIT.MSC > Configuração do Computador > Modelos Administrativos > Sistema > Raccine
Após configurar as alterações, talvez seja necessário atualizar a política de grupo executando gpupdate.exe.
Um arquivo de log com todas as interceptações e ações executadas é gravado em C:\ProgramData\Raccine\Raccine_log.txt

Uma entrada é gerada por cada evento de bloqueio no log de eventos Application.

Os IDs que o Raccine gera
Desde a versão 0.10.0, o Raccine pode ser instalado em "modo de simulação", que ativa todos os gatilhos, registra todas as ações, mas não elimina nada. Este modo deve ser usado em ambientes nos quais soluções de backup ou outros softwares legítimos sejam executados por um período razoável de tempo, para verificar se o Raccine interferiria com outros softwares. A ideia é instalar o Raccine em modo de simulação, deixá-lo registrar por uma semana ou um mês e depois verificar os logs para ver se ele teria bloqueado softwares legítimos usados na organização.

Execute raccine.exe e observe a árvore de processos pai morrer (captura de tela da v0.1)

Disponível e obrigatório desde a versão 1.



Caso o ransomware que você está lidando no momento use um nome de processo específico, ex.: taskdl.exe, você pode simplesmente alterar o patch .reg para interceptar chamadas para esse nome e deixar o Raccine eliminar todos os processos pai da árvore de processos que fez a invocação.
Gostaria de estender o Raccine, mas não tenho as habilidades de programação em C++, especialmente na plataforma Windows.
Se algo acontecer com sua instalação, ex.: mensagens de erro repentinas, serviços quebrados ou programas que não iniciam mais, execute o arquivo raccine-reg-patch-uninstall.reg na subpasta reg-patches. Isso deve trazer tudo de volta ao normal.
Depois disso, você também deve conseguir executar uma desinstalação completa usando install-raccine.bat.
A pronúncia correta é "Rax-Een".
powershell.exe e win32_shadowcopy ou uma lista de comandos codificadosC:\ProgramData\Raccine_log.txtdiskshadow.exe delete shadows| Variável | Descrição | Valor de Exemplo |
|---|
| FromRaccine | true | |
| Name | Nome do arquivo de imagem | WMIC.exe |
| ExecutablePath | Caminho completo para o binário | C:\Windows\System32\wbem\WMIC.exe |
| CommandLine | Linha de comando completa com parâmetros | WMIC.exe delete justatest |
| Priority | Prioridade do processo | 32 |
| ParentName | Nome do arquivo de imagem do processo pai | cmd.exe |
| ParentExecutablePath | Caminho completo para o executável do processo pai | C:\Windows\System32\cmd.exe |
| ParentCommandLine | Linha de comando completa do processo pai com parâmetros | C:\WINDOWS\system32\cmd.exe |
| ParentPriority | Prioridade do processo pai | 32 |