Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
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.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
pcileech — Software di Attacco tramite Accesso Diretto alla Memoria (DMA) | Kitploit
Strumenti/GitHubGitHub/ufrisk/pcileech
Escalation di PrivilegiMemory ForensicsExploitPost-ExploitDigital ForensicsPenetration TestingSicurezza HardwareRed TeamingStrumento di Accesso RemotoSviluppo Payload
GitHubufrisk/pcileech

pcileech

7.9k1.0k226 giorni 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

Software di Attacco tramite Accesso Diretto alla Memoria (DMA)

Vedi Repository

PCILeech Riepilogo:

PCILeech utilizza dispositivi hardware PCIe per leggere e scrivere la memoria del sistema di destinazione. Ciò viene ottenuto utilizzando DMA su PCIe. Non sono necessari driver sul sistema di destinazione.

PCILeech funziona anche senza hardware insieme a un'ampia gamma di metodi di acquisizione della memoria software supportati dalla libreria LeechCore – inclusa la cattura di memoria live remota utilizzando DumpIt o WinPmem. PCILeech supporta anche la cattura locale della memoria e numerosi formati di file di dump della memoria.

PCILeech supporta molteplici dispositivi di acquisizione della memoria. Sia basati su hardware che software. L'hardware basato su USB3380 è in grado di leggere nativamente solo 4 GB di memoria, ma può leggere tutta la memoria se prima viene inserito un modulo kernel (KMD) nel kernel del sistema di destinazione. L'hardware basato su FPGA e i metodi basati su software sono in grado di leggere tutta la memoria.

PCILeech è in grado di inserire un'ampia gamma di impianti kernel nei kernel di destinazione – consentendo un facile accesso alla RAM live e al filesystem tramite un "drive montato". È anche possibile rimuovere il requisito della password di accesso, caricare driver non firmati, eseguire codice e generare shell di sistema. PCILeech funziona su Windows e Linux. I sistemi di destinazione supportati sono attualmente le versioni x64 di: UEFI, Linux, FreeBSD e Windows. Ciò richiede accesso in scrittura alla memoria (hardware USB3380, hardware FPGA, LiveCloudKd o CVE-2018-1038 "Total Meltdown").

Per iniziare, clona i sorgenti nel repository o scarica gli ultimi binari, moduli e file di configurazione.

L'interfaccia grafica PushPin per PCILeech rende le attività RedTeam comuni estremamente semplici. Nota che PushPin non fa parte della distribuzione ufficiale di PCILeech.

Capacità:

  • Recuperare la memoria dal sistema di destinazione a >150 MB/s.
  • Recuperare memoria remota da LeechService remoto.
  • Scrivere dati nella memoria del sistema di destinazione.
  • 4 GB di memoria accessibili in modalità DMA nativa (hardware USB3380).
  • TUTTA la memoria accessibile in modalità DMA nativa (hardware FPGA).
  • TUTTA la memoria accessibile se il modulo kernel (KMD) è caricato.
  • Accesso TLP PCIe raw (hardware FPGA).
  • Montare la RAM live come file [Linux, Windows, macOS Sierra*].
  • Montare il file system come drive [Linux, Windows, macOS Sierra*].
  • Eseguire codice kernel sul sistema di destinazione.
  • Generare shell di sistema e altri eseguibili [Windows].
  • Estrarre e inviare file [Linux, FreeBSD, Windows, macOS Sierra*].
  • Patche / Sbloccare (rimuovere il requisito della password) [Windows, macOS Sierra*].
  • Facile creare il proprio shellcode kernel e/o firme personalizzate.
  • Connettersi a un LeechAgent remoto tramite rete per:
    • Dump della memoria fisica sulla rete.
    • Eseguire script di analisi della memoria Python sull'host remoto.
  • Altre funzionalità non elencate qui ...

*) macOS High Sierra e versioni successive non sono supportati.

Metodi di Acquisizione della Memoria:

PCILeech supporta metodi di acquisizione della memoria sia basati su hardware che su software. Tutta l'acquisizione della memoria è gestita dalla libreria LeechCore.

Metodi di acquisizione della memoria basati su hardware:

Di seguito è riportato un riepilogo dei metodi di acquisizione della memoria basati su hardware supportati. Tutti i metodi basati su hardware sono supportati sia su Windows che su Linux. I metodi basati su FPGA tuttavia hanno una leggera penalità prestazionale su Linux e raggiungeranno al massimo circa: 90 MB/s rispetto a 150 MB/s su Windows.

Metodi di acquisizione della memoria basati su software:

Di seguito è riportato un riepilogo dei metodi di acquisizione della memoria basati su software supportati. Si noti che LeechService fornisce solo una connessione di rete a una libreria LeechCore remota. È possibile utilizzare sia metodi di acquisizione hardware che software una volta connessi.

Installazione di PCILeech:

Assicurati di avere la versione più recente di PCILeech visitando il repository github di PCILeech all'indirizzo: https://github.com/ufrisk/pcileech

Scarica gli ultimi binari, moduli e file di configurazione dall'ultima release. In alternativa, clona il repository e compila dai sorgenti.

Windows:

Consulta la guida PCILeech su Windows per informazioni sull'esecuzione di PCILeech su Windows.

Il driver USB Google Android deve essere installato se viene utilizzato hardware USB3380. Scarica il driver USB Google Android da: http://developer.android.com/sdk/win-usb.html#download Decomprimi il driver.
I driver FTDI devono essere installati se viene utilizzato FPGA con scheda aggiuntiva FT601 USB3 o PCIeScreamer. Scarica la FTD3XX.dll a 64 bit da FTDI e posizionala accanto a pcileech.exe.
Per montare la RAM live e il file system di destinazione come drive in Windows, è necessario installare la libreria del file system Dokany2. Scarica e installa l'ultima versione stabile di Dokany2 all'indirizzo: https://github.com/dokan-dev/dokany/releases/latest

Linux:

Consulta la guida PCILeech su Linux per informazioni sull'esecuzione di PCILeech su Linux.

Esempi:

Consulta le pagine wiki del progetto per ulteriori esempi. Il wiki è in fase di costruzione e le informazioni potrebbero ancora mancare.

Montare la RAM live e il file system del sistema di destinazione, richiede che un KMD sia caricato. In questo esempio viene utilizzato 0x11abc000.

  • pcileech.exe mount -kmd 0x11abc000

Mostrare l'aiuto per un impianto kernel specifico, in questo caso l'impianto kernel lx64_filepull.

  • pcileech.exe lx64_filepull -help

Mostrare l'aiuto per il comando dump.

  • pcileech.exe dump -help

Scaricare tutta la memoria dal sistema di destinazione, presupponendo che un modulo kernel sia caricato all'indirizzo: 0x7fffe000.

  • pcileech.exe dump -kmd 0x7fffe000

Forzare lo scaricamento della memoria al di sotto di 4 GB inclusi i dispositivi mappati in memoria accessibili utilizzando l'approccio USB2 più stabile su USB3380.

  • pcileech.exe dump -force -device usb3380://usb=2

Ricevere TLP PCIe (Transaction Layer Packets) e stamparli a schermo (richiede una scheda FPGA configurata correttamente).

  • pcileech.exe tlp -vv -wait 1000

Sondare/Enumerare la memoria del sistema di destinazione per pagine di memoria leggibili e memoria massima. (Solo hardware FPGA).

  • pcileech.exe probe

Scaricare tutta la memoria tra gli indirizzi min e max, senza fermarsi sulle pagine fallite. L'accesso nativo alla memoria a 64 bit è supportato solo su hardware FPGA.

  • pcileech.exe dump -min 0x0 -max 0x21e5fffff -force

Scaricare tutta la memoria, provare a localizzare la mappa di memoria dal registro del sistema di destinazione per evitare di scaricare memoria potenzialmente non valida che potrebbe bloccare il sistema di destinazione.

  • pcileech.exe dump -memmap auto

Forzare l'uso di un dispositivo specifico (invece di rilevarlo automaticamente). Il dispositivo pmem non viene rilevato automaticamente.

  • pcileech.exe pagedisplay -min 0x1000 -device pmem

Scaricare memoria remota da un LeechAgent remoto utilizzando connessione crittografata e autenticata mutualmente da kerberos.

  • pcileech.exe dump -device pmem -remote rpc://[email protected]

Eseguire lo script di analisi Python find-rwx.py su un computer remoto utilizzando l'ambiente Python integrato di LeechAgent.

  • pcileech.exe agent-execpy -in find-rwx.py -device pmem -remote rpc://[email protected]

Patchare la memoria del processo virtuale del pid 432 (lsass.exe in questo esempio).

  • pcileech.exe patch -pid 432 -sig unlock_win10x64.sig

Limitazioni/Problemi Noti:

  • Non funziona se il sistema operativo utilizza IOMMU/VT-d. Questa è l'impostazione predefinita su macOS (a meno che non sia disabilitata in modalità di ripristino). Windows 10/11 con funzionalità di sicurezza basate sulla virtualizzazione abilitate non funziona completamente.
  • Le versioni recenti di Windows e Linux bloccano DMA per impostazione predefinita.

Comunità PCILeech e MemProcFS:

Trovi tutto un po' opprimente? O vuoi solo fare una domanda veloce? Unisciti al server della comunità DMA PCILeech e MemProcFS su Discord!

Compilazione:

I binari si trovano nella sezione release di questo repository. Se si desidera compilare una versione personalizzata, è possibile farlo. Consulta le guide PCILeech su Windows o PCILeech su Linux per ulteriori informazioni sulla compilazione di PCILeech. PCILeech dipende anche da LeechCore e opzionalmente (per funzionalità aggiuntive) da The Memory Process File System, che devono essere entrambi compilati separatamente.

Contributi:

PCILeech, MemProcFS e LeechCore sono open source ma non a contribuzione aperta. PCILeech, MemProcFS e LeechCore offrono un'architettura di plugin altamente flessibile che consentirà contributi sotto forma di plugin. Se desideri effettuare un contributo, diverso da un plugin, ai progetti principali, ti preghiamo di contattarmi prima di iniziare lo sviluppo.

Link:

  • Twitter: Twitter
  • Discord: Discord - PCILeech/MemProcFS
  • PCILeech: https://github.com/ufrisk/pcileech
  • PCILeech FPGA: https://github.com/ufrisk/pcileech-fpga
  • LeechCore: https://github.com/ufrisk/LeechCore
  • MemProcFS: https://github.com/ufrisk/MemProcFS
  • Blog: http://blog.frizk.net
  • PushPin: GUI per PCILeech: https://github.com/LuckyPi/PushPin

Changelog:

Versioni precedenti (clicca per espandere):

v1.0-v3.6

  • Versione iniziale e vari aggiornamenti. Consultare le singole release per maggiori informazioni.

v4.0

  • Pulizia importante e refactoring interni.
  • Rilevamento automatico della memoria massima FPGA e strategia di dump più stabile.
  • Nuovi inject kernel stabili per Windows 10 con hardware FPGA su sistemi senza sicurezza basata sulla virtualizzazione.
  • Inject in modalità utente (sperimentale).
  • Rimozione del supporto integrato per dispositivi - ora viene utilizzata la libreria LeechCore leechcore.dll/leechcore.so. Nuovi dispositivi includono:
    • File di dump della memoria (file di dump lineari raw e file di crash dump Microsoft).
    • File di salvataggio Hyper-V.
    • Memoria live tramite DumpIt / WinPmem.
    • Dispositivi remoti tramite impostazione -remote.
  • Rimozione dell'API e del Memory Process File System integrato - utilizzare invece le API più capaci in LeechCore e Memory Process File System.
  • Molte altre modifiche e aggiornamenti della sintassi.

v4.1

  • Supporto LeechAgent - acquisizione e analisi della memoria remota.

v4.2

  • Aggiornamenti delle firme:
    • Modulo kernel Linux - LINUX_X64_48 (versioni più recenti)
    • Modulo kernel Windows 10 1903 - WIN10_X64_2 (richiede la versione Windows di PCILeech)

v4.3

  • Correzione di bug.
  • Supporto per nuovo dispositivo (NeTV2 / RawUDP) tramite libreria LeechCore.

v4.4

  • Correzione di bug e miglioramenti della stabilità.
  • Supporto per libreria MemProcFS v3.

v4.10

  • Supporto Linux per firme integrate di Windows 10 (dipendenza da MemProcFS v4.0).
  • Release separate per Windows e Linux.
  • Pulizia generale.

v4.11

  • Supporto per memoria VM live di VMWare Workstation/Player.
  • Supporto per analisi della memoria remota con comando LeechAgent agent-forensic.
    • Esegue la modalità forense di MemProcFS in remoto.
    • Recupera dati JSON compatibili con ElasticSearch.

v4.12

  • Supporto a 32 bit (binario pcileech).

v4.13

  • Correzione di bug.
  • Miglioramenti del montaggio:
    • Supporto file system host Windows: Aggiornamento a Dokany2 (NB! Dokany2 deve essere installato!).
    • Supporto file system host Linux: Aggiunto supporto FUSE.
      Esempio: ./pcileech mount /home/user/fusemnt/leechfs -kmd <indirizzo_kmd>
    • Ora possibile accedere ad altri drive locali oltre a C: su target Windows.
  • Supporto Visual Studio 2022.

v4.14

  • Supporto memoria virtuale di processo (solo Windows).
    • Comandi: search, patch, write, display, pagedisplay
    • Esempio: pcileech patch -pid 732 -sig unlock_win10x64.sig

v4.15

  • Supporto per MemProcFS v5.0

v4.16

  • Miglioramenti prestazionali FPGA.
  • Aggiunto comando none.
  • Aggiunte opzioni -bar-ro e -bar-rw.

v4.17

  • Supporto I/O BAR.
  • Miglioramenti Linux:
    • Aggiornamento firma KMD (LINUX_X64_48) per supportare gli ultimi kernel Ubuntu.
    • Aggiornamento dei moduli kernel per supportare gli ultimi kernel.
    • Nuova firma KMD - LINUX_X64_MAP - specificare System.map del kernel del sistema di destinazione nell'opzione -in.
    • Nuovo modulo kernel: lx64_exec_root.
  • Miglioramenti prestazionali PCIe FPGA su Linux.v4.18
  • Aggiunto comando benchmark.
  • Firme di sblocco aggiornate.
  • Opzione -psname aggiunta.

v4.19

  • Miglioramenti di stabilità Linux e miglioramenti del caricamento del modulo del kernel.
  • Supporto compilazione clang per Linux.
  • Supporto macOS.

Ultimo:

  • Correzioni di bug.
  • Supporto Linux LeechAgent tramite gRPC (LeechCore v2.21).
  • Aggiunta: opzione -no-kmd-mem per disabilitare opzionalmente l'accesso alla memoria KMD quando KMD è caricato (può essere utile per ragioni di stabilità in alcuni casi).
  • Aggiunta: -kmd WIN11_X64 - firma KMD per Windows 11 (alias per WIN10_X64_3).
Scarica lo strumento
DispositivoTipoInterfacciaVelocitàAccesso memoria a 64-bitAccesso TLP PCIeSponsor
Progetto
ZDMAFPGAThunderbolt31000MB/sSìSì💖
GBOXFPGAOCuLink400MB/sSìSì💖
LeetDMAFPGAUSB-C190MB/sSìSì💖
CaptainDMA M2FPGAUSB-C190MB/sSìSì💖
CaptainDMA M2 100TFPGAUSB-C220MB/sSìSì💖
CaptainDMA 4.1thFPGAUSB-C190MB/sSìSì💖
CaptainDMA 75TFPGAUSB-C200MB/sSìSì💖
CaptainDMA 100TFPGAUSB-C220MB/sSìSì💖
AC701/FT601FPGAUSB3190MB/sSìSì
USB3380-EVBUSB3380USB3150MB/sNoNo
DMA patched HP iLOBMCTCP1MB/sSìNo
DispositivoTipoVolatileScritturaSupporto LinuxPlugin
Dump di memoria fisica RAWFileNoNoSìNo
Dump di crash Microsoft completoFileNoNoSìNo
Dump core ELF completoFileNoNoSìNo
VMwareMemoria LiveSìSìNoNo
File di salvataggio memoria VMwareFileNoNoSìNo
TotalMeltdownCVE-2018-1038SìSìNoNo
DumpIt /LIVEKDMemoria LiveSìNoNoNo
WinPMEMMemoria LiveSìNoNoNo
LiveKdMemoria LiveSìNoNoNo
LiveCloudKdMemoria LiveSìSìNoSì
Stato salvato Hyper-VFileNoNoNoSì
LeechAgent*RemotoNoNo
  • Firma dei binari.
  • Comando "tlploop".
  • v4.5

    • Correzione di bug.
    • Supporto per v2 della libreria di acquisizione memoria LeechCore.
    • Integrazione MemProcFS durante l'esecuzione su Windows.
    • Supporto per mappa di memoria fisica definita dall'utente (opzione -memmap).

    v4.6

    • Supporto per LiveCloudKd.

    v4.7

    • Correzione di bug.
    • WIN10_X64_3 nuova firma kernel stabile per Windows 10 - inclusa release Win10 2004.
    • Aggiornamenti firme di sblocco - Win10/Linux (NB! kernel più recenti su Linux non ancora supportati).

    v4.8

    • Correzione di bug.
    • Migliore supporto per kernel Linux x64 recenti.

    v4.9

    • Correzione di bug.
    • Aggiornamenti delle firme.
    • Migliore supporto per kernel Linux x64 recenti (Ubuntu 21.04).
    • Smontaggio del driver montato quando viene premuto CTRL+C.