
Software de Ataque de Acesso Direto à Memória (DMA)
O PCILeech utiliza dispositivos de hardware PCIe para ler e escrever na memória do sistema alvo. Isto é conseguido através da utilização de DMA sobre PCIe. Não são necessários drivers no sistema alvo.
O PCILeech também funciona sem hardware em conjunto com uma vasta gama de métodos de aquisição de memória por software suportados pela biblioteca LeechCore - incluindo a captura de memória remota em tempo real utilizando DumpIt ou WinPmem. O PCILeech também suporta a captura local de memória e vários formatos de ficheiros de dump de memória.
O PCILeech suporta múltiplos dispositivos de aquisição de memória. Tanto baseados em hardware como em software. O hardware baseado em USB3380 só é capaz de ler 4GB de memória nativamente, mas é capaz de ler toda a memória se um módulo de kernel (KMD) for primeiro inserido no kernel do sistema alvo. O hardware baseado em FPGA, e os métodos baseados em software, são capazes de ler toda a memória.
O PCILeech é capaz de inserir uma vasta gama de implantes de kernel nos kernels alvo - permitindo um fácil acesso à RAM em tempo real e ao sistema de ficheiros através de uma "unidade montada". Também é possível remover o requisito de palavra-passe de início de sessão, carregar drivers não assinados, executar código e gerar shells de sistema. O PCIleech corre em Windows e Linux. Os sistemas alvo suportados são atualmente as versões x64 de: UEFI, Linux, FreeBSD e Windows. Isto requer acesso de escrita à memória (hardware USB3380, hardware FPGA, LiveCloudKd ou CVE-2018-1038 "Total Meltdown").
Para começar, clone as fontes no repositório ou descarregue os binários, módulos e ficheiros de configuração mais recentes.
A interface gráfica PushPin para o PCILeech torna as tarefas comuns de RedTeam extremamente fáceis. Note que o PushPin não faz parte da distribuição oficial do PCILeech.







*) macOS High Sierra e superiores não são suportados.
O PCILeech suporta métodos de aquisição de memória tanto baseados em hardware como em software. Toda a aquisição de memória é gerida pela biblioteca LeechCore.
Consulte abaixo um resumo dos métodos de aquisição de memória baseados em hardware suportados. Todos os métodos de aquisição de memória baseados em hardware são suportados tanto em Windows como em Linux. No entanto, os métodos baseados em FPGA apresentam uma ligeira penalização de desempenho em Linux e atingirão no máximo aproximadamente: 90MB/s em comparação com 150MB/s em Windows.
| Dispositivo | Tipo | Interface | Velocidade | Acesso a memória de 64 bits | Acesso TLP PCIe | Patrocinador do Projeto |
|---|---|---|---|---|---|---|
| ZDMA | FPGA | Thunderbolt3 | 1000MB/s | Sim | Sim | 💖 |
| GBOX | FPGA | OCuLink | 400MB/s | Sim | Sim | 💖 |
| LeetDMA | FPGA | USB-C | 190MB/s | Sim | Sim | 💖 |
| CaptainDMA M2 | FPGA | USB-C | 190MB/s | Sim | Sim | 💖 |
| CaptainDMA M2 100T | FPGA | USB-C | 220MB/s | Sim | Sim | 💖 |
| CaptainDMA 4.1th | FPGA | USB-C | 190MB/s | Sim | Sim | 💖 |
| CaptainDMA 75T | FPGA | USB-C | 200MB/s | Sim | Sim | 💖 |
| CaptainDMA 100T | FPGA | USB-C | 220MB/s | Sim | Sim | 💖 |
| AC701/FT601 | FPGA | USB3 | 190MB/s | Sim | Sim | |
| USB3380-EVB | USB3380 | USB3 | 150MB/s | Não | Não | |
| DMA patched HP iLO | BMC | TCP | 1MB/s | Sim | Não |
Consulte abaixo um resumo dos métodos de aquisição de memória baseados em software suportados. Note que o LeechService apenas fornece uma ligação de rede a uma biblioteca LeechCore remota. É possível utilizar tanto a aquisição de memória baseada em hardware como em software após a ligação.