Skip to content
KitploitKITPLOIT
FerramentasExploitsBlog
Log in
Enviar
FerramentasExploitsBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
MemFiles — Um toolkit CobaltStrike para gravar arquivos produzidos pelo Beacon na memória em vez do disco. | Kitploit
Ferramentas/GitHubGitHub/octoberfest7/memfiles
Exfiltração de DadosPós-ExploraçãoComando e ControleRed Teaming
GitHuboctoberfest7/memfiles

MemFiles

Um toolkit CobaltStrike para gravar arquivos produzidos pelo Beacon na memória em vez do disco.

Ver Repositório
4776212há 2 anosRevisado pelo Kitploit

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar

MemFiles

AVISO:

Este projeto é complexo; se você não entender como ele funciona e não o testar adequadamente, pode acabar derrubando Beacons e perdendo acesso!

Recomendo fortemente que você leia toda a documentação até a seção "Detalhes Técnicos, Considerações de Design e Comentários"!

Introdução

MemFiles é um kit de ferramentas para CobaltStrike que permite que Operadores gravem arquivos produzidos pelo processo Beacon na memória, em vez de gravá-los em disco no sistema alvo. Ele foi testado com sucesso no Windows 7, 10 e 11; as versões de servidor correspondentes devem funcionar sem problemas. O MemFiles é restrito a Beacons x64.

Ele faz isso interceptando várias NtAPIs diferentes dentro de NTDLL.dll e redirecionando chamadas para essas APIs para funções que foram injetadas no espaço de memória do processo Beacon.

O MemFiles assume uma cópia limpa/sem hooks de NTDLL no processo Beacon. Não são dadas garantias sobre a viabilidade do MemFiles em um processo Beacon onde ainda existam hooks de EDR. Repare/atualize a NTDLL antes de usar o MemFiles!

Um diretório "especial", inexistente, é definido dentro do kit de ferramentas MemFiles; quaisquer arquivos gravados nesse diretório especial serão capturados pelo MemFiles e gravados na memória, de onde poderão ser baixados para o Teamserver.

O MemFiles é compatível com a maioria (não todos) das ferramentas que rodam dentro do processo Beacon e que podem ser instruídas a gravar sua saída em um diretório específico. Ele NÃO requer privilégios elevados para funcionar.

Isso inclui:
-BOFs
-.NET assemblies executados inline usando algo como inline-executeAssembly
-PEs executados inline usando algo como Inline-Execute-PE

Todos esses são compatíveis porque são executados dentro do processo Beacon, onde as NtAPIs relevantes foram interceptadas.

O MemFiles NÃO funciona com coisas como:
-execute-assembly
-shell
-run

Nenhum desses é compatível porque todos criam outros processos cujas NtAPIs NÃO foram interceptadas.

O MemFiles foi testado com sucesso com ferramentas como Rubeus, SharpHound, Procdump e Powershell quando executadas dentro do processo Beacon.

Configuração

Clone o repositório e, opcionalmente, altere a variável hookdir definida na linha 56 em /PIC/Source/NtCreateFile.c e /PIC/Source/NtOpenFile.c. Essa variável é o diretório "especial" que sinaliza ao MemFiles que ele deve interceptar o arquivo que está sendo criado. A variável hookdir está definida como "redteam" por padrão. Certifique-se de que essa variável não seja um diretório real no sistema alvo e que seja a mesma nos dois arquivos!

image

Execute 'make all' para compilar os BOFs necessários e as funções PIC.

Carregue o MemFiles.cna no Cliente CobaltStrike. Garanta que o diretório a partir do qual o CobaltStrike está sendo executado seja gravável pelo seu usuário; o MemFiles cria um arquivo de texto lá (memfiles.txt) para garantir a disponibilidade dos dados necessários para o funcionamento do MemFiles.

O MemFiles pode ser configurado para ser instalado em cada novo Beacon que entrar em contato com o Teamserver; isso é feito usando o item de menu MemFiles->Config. Por padrão, o MemFiles NÃO é instalado automaticamente em novos Beacons. Observe que essa é uma configuração global; se dois Clientes estiverem conectados ao Teamserver e ambos tiverem o MemFiles.cna carregado, se o Cliente A ativar a opção "Install on beacon initial", a alteração também valerá para o Cliente B!

image

Comandos

O MemFiles consiste em 4 comandos voltados ao alvo que executam BOFs e 1 comando interno que manipula a estrutura de dados do projeto.

Voltados ao alvo:

  1. meminit
  2. memlist
  3. memfetch
  4. memclean

Estrutura de dados interna:

  1. memtable

meminit

O meminit é responsável por instalar o MemFiles no processo Beacon.

A lista de NtAPIs interceptadas pelo MemFiles é a seguinte:

  1. NtCreateFile
  2. NtWriteFile
  3. NtClose
  4. NtQueryVolumeInformationFile
  5. NtQueryInformationFile
  6. NtSetInformationFile
  7. NtOpenFile
  8. NtReadFile
  9. NtFlushBuffersFile

O meminit realiza as seguintes ações principais:

  1. Envia uma função substituta independente de posição para cada NtAPI interceptada ao Beacon
  2. Cria uma estrutura na memória do Beacon para armazenar vários valores necessários ao MemFiles ao longo de seu ciclo de vida
  3. Aplica patch no endereço dessa estrutura em cada uma das funções substitutas PIC
  4. Aloca memória e injeta cada função substituta PIC no espaço de memória do processo Beacon
  5. Cria um trampolim para cada NtAPI interceptada
  6. Intercepta cada NtAPI listada, sobrescrevendo alguns/todos os bytes, redirecionando a execução para a função substituta PIC.

memlist

O memlist é usado para exibir todos os arquivos atualmente armazenados na memória pelo MemFiles para um determinado Beacon.
image
Vários campos são exibidos; os mais relevantes e de interesse para o usuário são o nome do arquivo e o tamanho dos dados armazenados.

memfetch

O memfetch é usado para recuperar efetivamente os arquivos armazenados na memória pelo MemFiles para um determinado Beacon.

Por padrão, o memfetch recupera todos os arquivos armazenados pelo MemFiles cujo "handle" foi fechado. Essa escolha de design foi feita para evitar problemas relacionados à tentativa de baixar um arquivo que um programa/aplicação ainda não terminou de gravar.

Isso significa que, se um programa/aplicação não fechar o handle que abriu para o arquivo, o arquivo não será baixado pelo memfetch.
Isso pode ser contornado usando o argumento "force" com o memfetch, ou seja, 'memfetch force', para recuperar todos os arquivos da memória independentemente do status do handle.

Os arquivos que o memfetch recupera da memória são enviados de volta ao Teamserver como um download e podem ser sincronizados do Teamserver para o Cliente pela aba Downloads no CobaltStrike.

Assim que um arquivo é baixado pelo Teamserver, ele é apagado da memória no processo Beacon e sua entrada exibida pelo memlist é removida.

memclean

O memclean é responsável por limpar e remover o MemFiles de um processo Beacon.

O caso de uso padrão do MemFiles envolve instalá-lo e deixá-lo instalado durante toda a vida do Beacon; no entanto, se alguém quiser usar o MemFiles em conjunto com uma ferramenta para capturar e recuperar a saída de arquivos e depois desinstalar o MemFiles para que seus artefatos não fiquem na memória, o memclean pode ser usado para reverter o processo Beacon ao seu estado original antes da execução do meminit.

Isso envolve:

  1. Remover os hooks/interceptações de cada NtAPI interceptada
  2. Zerar e liberar cada trampolim criado
  3. Zerar e liberar cada função substituta PIC injetada
  4. Zerar e liberar a struct do MemFiles

Observe que, antes de executar essas ações, o memclean fará o download forçado de qualquer arquivo armazenado na memória pelo MemFiles. Se alguém pretende usar o MemFiles com uma única ferramenta e depois removê-lo, pode pular o uso do memfetch e usar apenas o memclean para recuperar os arquivos E remover o MemFiles do processo Beacon de uma só vez.

memtable

O memtable é usado para exibir e rastrear informações sobre os Beacons nos quais o MemFiles está instalado no momento. Ele também exibe informações de configuração globais.

Baixar ferramenta