
Framework de persistência totalmente modular
PersistAssist é um framework de persistência totalmente modular escrito em C#. Todas as técnicas de persistência contêm um método de limpeza que servirá para remover a persistência, além do código de persistência. Este é um trabalho em andamento, então há muitas classes vazias; o objetivo principal deste projeto inicialmente era construir um framework totalmente modular destinado a tornar a adição de novos recursos tão simples quanto herdar uma classe e adicionar o código.
Autor - Victor Suarez (@Gr1mmie)
PersistAssist não terá binários pré-compilados, então você terá que compilar o código manualmente. Para fazer isso, abra o arquivo de solução e selecione "Release" e a arquitetura desejada no menu de compilação e clique em iniciar.
Para visualizar o menu de ajuda, use PersistAssist.exe -h
______ __ __ _______ __ __
| __ .-----.----.-----|__.-----| |_| _ .-----.-----|__.-----| |_
| __| -__| _|__ --| |__ --| _| |__ --|__ --| |__ --| _|
|___| |_____|__| |_____|__|_____|____|___|___|_____|_____|__|_____|____|
Author: @Grimmie (@FortyNorthSec)
Ver: v0.2
Usage: PersistAssist.exe -t [técnica] -<opções extras>
Informe a técnica de persistência e o que fazer com ela (persistir, limpar, exibir informações)
Para listar todas as técnicas de persistência disponíveis, use PersistAssist.exe -l
-t, --technique=VALUE técnica de persistência a usar
-a, --action=VALUE Ação a realizar
-s, --search=VALUE Palavra-chave para pesquisar
--cmd, --command=VALUE Comando a usar como payload
--rk, --rootkey=VALUE Chave raiz para operações de registro
--sk, --subkey=VALUE Subchave para operações de registro
--kv, --keyvalue=VALUE Valor a atribuir à chave de registro
--rc, --registrycontext=VALUE
Contexto para escrever a chave de registro (opções: hkcu ou hklm)
--tn, --taskname=VALUE Nome da tarefa a definir para operações MSBuild
--pl, --payload=VALUE Payload a substituir no template
--fp, --filepath=VALUE Caminho para o arquivo/diretório alvo
--dp, --duplicatepath=VALUE
Caminho para duplicar os tempos dos arquivos, modifica todos
os timestamps
--ts, --timestamp=VALUE
Especifique o timestamp M(odificado), A(cessado) ou C(riado).
Use ALL para todos os timestamps
--nt, --newtime=VALUE Especifique uma nova data para alterar o timestamp especificado
--un, --username=VALUE Especifique o nome de usuário para credCheck
--pw, --passwd=VALUE Especifique a senha para credCheck
--efq, --eventFilterQuery=VALUE
Consulta EventFilter para assinatura de evento WMI
--efn, --eventFilterName=VALUE
Nome do EventFilter para assinatura de evento WMI
--ecn, --eventConsumerName=VALUE
Nome do EventConsumer para assinatura de evento WMI
--efv, --eventConsumerValue=VALUE
Valor do EventConsumer para assinatura de evento WMI
-q, --query=VALUE Consulta a executar
--dn, --domain=VALUE Especifique o domínio atual
-p, --persist Executar a técnica especificada
-c, --cleanup Limpar a técnica especificada
-l, --list Listar técnicas disponíveis
--lm, --listmodule=VALUE
Listar técnicas disponíveis da categoria de módulo especificada
-i, --info Exibe informações sobre uma técnica especificada
-h, --help mostra esta mensagem e sai
Para listar os módulos disponíveis, use PersistAssist.exe -l
______ __ __ _______ __ __
| __ .-----.----.-----|__.-----| |_| _ .-----.-----|__.-----| |_
| __| -__| _|__ --| |__ --| _| |__ --|__ --| |__ --| _|
|___| |_____|__| |_____|__|_____|____|___|___|_____|_____|__|_____|____|
Author: @Grimmie (@FortyNorthSec)
Ver: v0.2
[*] Módulos disponíveis:
Persistência:
============
Registro:
GenericRegAdd - Adiciona qualquer chave de registro arbitrária
RunKeys - Registra uma RunKey em HKLM ou HKCU
MSBuild:
InlineTasks - Implanta payload baseado em MSBuild InlineTask. Coloca arquivo no disco
OverrideTask - Implanta persistência baseada em MSBuild OverrideTask. Coloca arquivo no disco e requer acesso de administrador
AccountOperations:
WMI:
Misc:
PSProfile - Backdoor em arquivos de perfil do PowerShell
StartupFolder - Coloca um atalho em um caminho de inicialização
Táticas:
===========
SvcList - Lista serviços em uma máquina
Creds - Operações de credenciais
FileRead - Lê um arquivo na memória para evitar ter que baixar arquivos para leitura
NetList - basicamente ipconfig
ProcList - Lista processos em execução
RegList - Lista o conteúdo da chave de registro especificada
SchList - Lista tarefas agendadas em uma máquina
TimeStomp - Modifica timestamps de arquivos e diretórios. Não modifica o timestamp de Entry
WMIQuery - Executa uma consulta WMI arbitrária
Compile - Utilitário autônomo para compilar executáveis baseados em payloads C# incluídos no framework
Payloads:
=========
CSharp:
HelloWorld - hola mundo
MsgBox - Exibe uma MessageBox
PopCalc - abre a calculadora
PopCalcAPI - Abre a calculadora via API
VBA:
Para listar apenas módulos pertencentes a uma categoria específica, use -lm. Por exemplo, listar todos os módulos Táticas disponíveis: PersistAssist.exe -lm Tradecraft
______ __ __ _______ __ __
| __ .-----.----.-----|__.-----| |_| _ .-----.-----|__.-----| |_
| __| -__| _|__ --| |__ --| _| |__ --|__ --| |__ --| _|
|___| |_____|__| |_____|__|_____|____|___|___|_____|_____|__|_____|____|
Author: @Grimmie (@FortyNorthSec)
Ver: v0.2
Táticas:
==========
SvcList - Lista serviços em uma máquina
Creds - Operações de credenciais
FileRead - Lê um arquivo na memória para evitar ter que baixar arquivos para leitura
NetList - basicamente ipconfig
ProcList - Lista processos em execução
RegList - Lista o conteúdo da chave de registro especificada
SchList - Lista tarefas agendadas em uma máquina
TimeStomp - Modifica timestamps de arquivos e diretórios. Não modifica o timestamp de Entry
WMIQuery - Executa uma consulta WMI arbitrária
Compile - Utilitário autônomo para compilar executáveis baseados em payloads C# incluídos no framework
Persistência contém as técnicas disponíveis que podem ser usadas, os módulos de táticas servem como funções utilitárias para realizar várias operações, e os módulos de payloads contêm payloads que podem ser usados para várias tarefas de persistência, embora atualmente estejam disponíveis apenas para o módulo OverrideTask.
Para obter informações sobre um módulo, use PersistAssist.exe -t [técnica] -i
Name: OverrideTask
Desc: Implanta persistência baseada em MSBuild OverrideTask. Coloca arquivo no disco e requer acesso de administrador
Usage:
Persistir: PersistAssist.exe -t OverrideTask -p -tn [nome da tarefa] -pl [payload]
Limpeza: PersistAssist.exe -t OverrideTask -c -tn [nome da tarefa]
Category: MSBuild
Author: