Skip to content
KitploitKITPLOIT
StrumentiExploitsBlog
Log in
Invia
StrumentiExploitsBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

FeedContattoPrivacy© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
Strumenti/GitHubGitHub/octoberfest7/memfiles
Esfiltrazione DatiPost-ExploitCommand and ControlRed Teaming
GitHuboctoberfest7/memfiles

MemFiles

Un toolkit per CobaltStrike che scrive in memoria, invece che su disco, i file prodotti da Beacon.

Vedi Repository
47762132 anni faRevisionato da Kitploit

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

MemFiles

DICHIARAZIONE DI NON RESPONSABILITÀ:

Questo progetto è complesso e se non si capisce come funziona e non lo si testa adeguatamente, si rischia di mandare in crash i Beacon e perdere l'accesso!

Ti consiglio vivamente di leggere tutta la documentazione fino alla sezione "Dettagli tecnici, considerazioni di progettazione e commenti"!

Introduzione

MemFiles è un toolkit per CobaltStrike che consente agli Operatori di scrivere i file prodotti dal processo Beacon in memoria, invece di scriverli su disco nel sistema target. È stato testato con successo su Windows 7, 10 e 11; le corrispondenti versioni server dovrebbero funzionare senza problemi. MemFiles è limitato ai Beacon x64.

Funziona hookando diverse NtAPI all'interno di NTDLL.dll e reindirizzando le chiamate a quelle API verso funzioni che sono state iniettate nello spazio di memoria del processo Beacon.

MemFiles presuppone una copia pulita/senza hook di NTDLL nel processo Beacon. Non vengono fornite garanzie sulla funzionalità di MemFiles in un processo Beacon in cui siano ancora presenti hook EDR. Riparare/aggiornare NTDLL prima di usare MemFiles!

All'interno del toolkit MemFiles viene definita una directory "speciale", inesistente; qualsiasi file scritto in questa directory speciale verrà catturato da MemFiles e scritto in memoria, dove potrà poi essere scaricato sul Teamserver.

MemFiles è compatibile con la maggior parte (non tutti) degli strumenti che girano all'interno del processo Beacon e che possono essere istruiti per scrivere il proprio output in una directory specifica. NON richiede privilegi elevati per funzionare.

Questo include: -BOF -Assembly .NET eseguiti inline usando qualcosa come inline-executeAssembly -PE eseguiti inline usando qualcosa come Inline-Execute-PE

Tutti questi sono compatibili perché girano all'interno del processo Beacon, dove le NtAPI rilevanti sono state hookate.

MemFiles NON funziona con cose come: -execute-assembly -shell -run

Nessuno di questi è compatibile perché tutti generano altri processi le cui NtAPI NON sono state hookate.

MemFiles è stato testato con successo con strumenti come Rubeus, SharpHound, Procdump e Powershell quando vengono eseguiti all'interno del processo Beacon.

Installazione

Clonare il repository e, opzionalmente, modificare la variabile hookdir definita alla riga 56 sia in /PIC/Source/NtCreateFile.c che in /PIC/Source/NtOpenFile.c. Questa variabile è la directory "speciale" che segnala a MemFiles di intercettare il file in creazione. La variabile hookdir è impostata su "redteam" per impostazione predefinita. Assicurarsi che questa variabile non sia una directory reale sul sistema target e che sia la stessa in entrambi i file!

image

Eseguire 'make all' per compilare sia i BOF necessari che le funzioni PIC.

Caricare MemFiles.cna nel CobaltStrike Client. Assicurarsi che la directory da cui viene eseguito CobaltStrike sia scrivibile dal proprio utente; MemFiles crea lì un file di testo (memfiles.txt) per garantire la disponibilità dei dati necessari al funzionamento di MemFiles.

MemFiles può essere configurato per installarsi in ogni nuovo Beacon che effettua una chiamata al Teamserver; questo si ottiene usando la voce di menu MemFiles->Config. Per impostazione predefinita, MemFiles NON si installa automaticamente nei nuovi Beacon. Nota che questa è un'impostazione globale; se due Client sono connessi al Teamserver ed entrambi hanno caricato MemFiles.cna, se il Client A attiva l'impostazione "Install on beacon initial", la modifica avrà effetto anche per il Client B!

image

Comandi

MemFiles comprende 4 comandi rivolti al target che eseguono BOF e 1 comando interno che manipola la struttura dati del progetto.

Rivolti al target:

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

Struttura dati interna:

  1. memtable

meminit

meminit è responsabile dell'installazione di MemFiles nel processo Beacon.

L'elenco delle NtAPI hookate da MemFiles è il seguente:

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

meminit esegue le seguenti azioni principali:

  1. Invia al Beacon una funzione sostitutiva indipendente dalla posizione per ogni NtAPI hookata
  2. Crea una struttura nella memoria del Beacon per contenere vari valori richiesti da MemFiles durante il suo ciclo di vita
  3. Patcha l'indirizzo di questa struttura in ciascuna delle funzioni sostitutive PIC
  4. Alloca memoria e inietta ogni funzione sostitutiva PIC nella memoria del processo Beacon
  5. Crea un trampoline per ogni NtAPI hookata
  6. Hooka ogni NtAPI elencata sovrascrivendo alcuni/tutti i byte, reindirizzando l'esecuzione alla funzione sostitutiva PIC.

memlist

memlist viene utilizzato per visualizzare tutti i file attualmente memorizzati in memoria da MemFiles per un dato Beacon. image Vengono visualizzati diversi campi; il più rilevante e di interesse per l'utente è il nome del file e la lunghezza dei dati memorizzati.

memfetch

memfetch viene utilizzato per recuperare effettivamente i file memorizzati in memoria da MemFiles per un dato Beacon.

Per impostazione predefinita, memfetch recupera tutti i file memorizzati da MemFiles il cui "handle" è stato chiuso. Questa scelta progettuale è stata fatta per evitare problemi legati al tentativo di scaricare un file che un programma/applicazione non ha ancora finito di scrivere.

Questo significa che se un programma/applicazione non riesce a chiudere l'handle che apre al file, il file non verrà scaricato da memfetch. Questo può essere mitigato usando l'argomento "force" con memfetch, ad esempio 'memfetch force', per recuperare tutti i file dalla memoria indipendentemente dallo stato del suo handle.

I file che memfetch recupera dalla memoria vengono inviati al Teamserver come download e possono essere sincronizzati dal Teamserver al Client tramite la scheda Downloads in CobaltStrike.

Una volta che un file è stato scaricato dal Teamserver, viene cancellato dalla memoria del processo Beacon e la sua voce mostrata tramite memlist viene rimossa.

memclean

memclean è responsabile della pulizia e della rimozione di MemFiles da un processo Beacon.

Il caso d'uso standard di MemFiles prevede l'installazione e il mantenimento per l'intera durata di vita del Beacon; tuttavia, se si desidera usare MemFiles insieme a uno strumento per catturare e recuperare l'output dei file, e poi disinstallare MemFiles così che i suoi artefatti non rimangano in memoria, memclean può essere usato per riportare il processo Beacon al suo stato originale prima dell'esecuzione di meminit.

Questo comporta:

  1. Rimuovere l'hook da ogni NtAPI hookata
  2. Azzerare e liberare ogni trampoline creato
  3. Azzerare e liberare ogni funzione sostitutiva PIC iniettata
  4. Azzerare e liberare la struct di MemFiles

Nota che prima di eseguire queste azioni, memclean scaricherà forzatamente qualsiasi file memorizzato in memoria da MemFiles. Se si intende usare MemFiles con un singolo strumento e poi rimuoverlo, si può saltare l'uso di memfetch e usare direttamente memclean sia per recuperare i file che per rimuovere MemFiles dal processo Beacon in un colpo solo.

Scarica lo strumento