
Software di Attacco tramite Accesso Diretto alla Memoria (DMA)
PCILeech utilizza dispositivi hardware PCIe per leggere e scrivere la memoria del sistema di destinazione. Questo 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 una serie di formati di file di dump della memoria.
PCILeech supporta molteplici dispositivi di acquisizione della memoria. Sia basati su hardware che su software. L'hardware basato su USB3380 è in grado di leggere nativamente solo 4GB di memoria, ma è in grado di leggere tutta la memoria se un modulo kernel (KMD) viene prima inserito 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 kernel implant nei kernel di destinazione - consentendo un facile accesso alla RAM live e al file system tramite un "mounted drive". È 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. Questo richiede l'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.
Il frontend GUI PushPin per PCILeech rende i comuni compiti RedTeam estremamente semplici. Nota che PushPin non fa parte della distribuzione ufficiale di PCILeech.







*) macOS High Sierra e versioni successive non sono supportate.
PCILeech supporta sia metodi di acquisizione della memoria basati su hardware che su software. Tutta l'acquisizione della memoria è gestita dalla libreria LeechCore.
Di seguito è riportato un riepilogo dei metodi di acquisizione della memoria basati su hardware supportati. Tutti i metodi di acquisizione della memoria basati su hardware sono supportati sia su Windows che su Linux. I metodi basati su FPGA tuttavia presentano una leggera penalità di prestazioni su Linux e raggiungeranno un massimo di circa: 90MB/s rispetto a 150MB/s su Windows.
| Device | Type | Interface | Speed | 64-bit memory access | PCIe TLP access | Project Sponsor |
|---|---|---|---|---|---|---|
| ZDMA | FPGA | Thunderbolt3 | 1000MB/s | Yes | Yes | 💖 |
| GBOX | FPGA | OCuLink | 400MB/s | Yes | Yes | 💖 |
| LeetDMA | FPGA | USB-C | 190MB/s | Yes | Yes | 💖 |
| CaptainDMA M2 | FPGA | USB-C | 190MB/s | Yes | Yes | 💖 |
| CaptainDMA M2 100T | FPGA | USB-C | 220MB/s | Yes | Yes | 💖 |
| CaptainDMA 4.1th | FPGA | USB-C | 190MB/s | Yes | Yes | 💖 |
| CaptainDMA 75T | FPGA | USB-C | 200MB/s | Yes | Yes | 💖 |
| CaptainDMA 100T | FPGA | USB-C | 220MB/s | Yes | Yes | 💖 |
| AC701/FT601 | FPGA | USB3 | 190MB/s | Yes | Yes | |
| USB3380-EVB | USB3380 | USB3 | 150MB/s | No | No | |
| DMA patched HP iLO | BMC | TCP | 1MB/s | Yes | No |