Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
pcileech — Software de Ataque de Acceso Directo a Memoria (DMA) | Kitploit
Herramientas/GitHubGitHub/ufrisk/pcileech
Escalada de PrivilegiosForensia de MemoriaExplotaciónPost-ExplotaciónForensia DigitalPruebas de PenetraciónSeguridad de HardwareRed TeamingHerramienta de Acceso RemotoDesarrollo de Payloads
GitHubufrisk/pcileech
7.9k1.0k2hace 26 díasRevisado por Kitploit

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

pcileech

Software de Ataque de Acceso Directo a Memoria (DMA)

Ver Repositorio

Resumen de PCILeech:

PCILeech utiliza dispositivos hardware PCIe para leer y escribir la memoria del sistema objetivo. Esto se logra usando DMA a través de PCIe. No se necesitan controladores en el sistema objetivo.

PCILeech también funciona sin hardware junto con una amplia gama de métodos de adquisición de memoria por software compatibles con la biblioteca LeechCore, incluyendo la captura de memoria viva remota usando DumpIt o WinPmem. PCILeech también admite la captura local de memoria y varios formatos de archivos de volcado de memoria.

PCILeech admite múltiples dispositivos de adquisición de memoria. Tanto basados en hardware como en software. El hardware basado en USB3380 solo puede leer 4 GB de memoria de forma nativa, pero puede leer toda la memoria si primero se inserta un módulo del kernel (KMD) en el kernel del sistema objetivo. El hardware basado en FPGA y los métodos basados en software pueden leer toda la memoria.

PCILeech es capaz de insertar una amplia gama de implantes de kernel en los kernels objetivo, lo que permite un fácil acceso a la RAM viva y al sistema de archivos a través de una "unidad montada". También es posible eliminar el requisito de contraseña de inicio de sesión, cargar controladores no firmados, ejecutar código y generar shells del sistema. PCILeech se ejecuta en Windows y Linux. Los sistemas objetivo compatibles actualmente son las versiones x64 de: UEFI, Linux, FreeBSD y Windows. Esto requiere acceso de escritura a la memoria (hardware USB3380, hardware FPGA, LiveCloudKd o CVE-2018-1038 "Total Meltdown").

Para comenzar, clone las fuentes en el repositorio o descargue los últimos binarios, módulos y archivos de configuración.

El frontend GUI PushPin para PCILeech hace que las tareas comunes de RedTeam sean muy fáciles. Tenga en cuenta que PushPin no forma parte de la distribución oficial de PCILeech.

Capacidades:

  • Obtener memoria del sistema objetivo a >150MB/s.
  • Obtener memoria remota desde un LeechService remoto.
  • Escribir datos en la memoria del sistema objetivo.
  • Se puede acceder a 4 GB de memoria en modo DMA nativo (hardware USB3380).
  • Se puede acceder a TODA la memoria en modo DMA nativo (hardware FPGA).
  • Se puede acceder a TODA la memoria si se carga un módulo del kernel (KMD).
  • Acceso PCIe TLP sin procesar (hardware FPGA).
  • Montar RAM viva como archivo [Linux, Windows, macOS Sierra*].
  • Montar sistema de archivos como unidad [Linux, Windows, macOS Sierra*].
  • Ejecutar código del kernel en el sistema objetivo.
  • Generar shell del sistema y otros ejecutables [Windows].
  • Extraer y enviar archivos [Linux, FreeBSD, Windows, macOS Sierra*].
  • Parchear/Desbloquear (eliminar requisito de contraseña) [Windows, macOS Sierra*].
  • Fácil creación de shellcode de kernel propio y/o firmas personalizadas.
  • Conectarse a un LeechAgent remoto a través de la red para:
    • Volcar memoria física a través de la red.
    • Ejecutar scripts de análisis de memoria en Python en el host remoto.
  • Aún más características no listadas aquí ...

*) macOS High Sierra y superiores no son compatibles.

Métodos de Adquisición de Memoria:

PCILeech admite métodos de adquisición de memoria basados tanto en hardware como en software. Toda la adquisición de memoria es manejada por la biblioteca LeechCore.

Métodos de adquisición de memoria basados en hardware:

A continuación encontrará un resumen de los métodos de adquisición de memoria basados en hardware compatibles. Todos los métodos de adquisición de memoria basados en hardware son compatibles tanto en Windows como en Linux. Sin embargo, los métodos basados en FPGA tienen una ligera penalización de rendimiento en Linux y alcanzarán un máximo de aproximadamente 90 MB/s en comparación con 150 MB/s en Windows.

Métodos de adquisición de memoria basados en software:

A continuación encontrará un resumen de los métodos de adquisición de memoria basados en software compatibles. Tenga en cuenta que LeechService solo proporciona una conexión de red a una biblioteca LeechCore remota. Es posible utilizar tanto hardware como software para la adquisición de memoria una vez conectado.

Instalación de PCILeech:

Asegúrese de tener la versión más reciente de PCILeech visitando el repositorio de PCILeech en GitHub en: https://github.com/ufrisk/pcileech

Obtenga los últimos binarios, módulos y archivos de configuración de la última versión. Alternativamente, clone el repositorio y compile desde el código fuente.

Windows:

Consulte la guía PCILeech en Windows para obtener información sobre cómo ejecutar PCILeech en Windows.

El controlador USB de Google Android debe estar instalado si se utiliza hardware USB3380. Descargue el controlador USB de Google Android desde: http://developer.android.com/sdk/win-usb.html#download Descomprima el controlador.
Los controladores FTDI deben estar instalados si se utiliza FPGA con la tarjeta adicional FT601 USB3 o PCIeScreamer. Descargue la versión de 64 bits FTD3XX.dll de FTDI y colóquela junto a pcileech.exe.
Para montar la RAM viva y el sistema de archivos del objetivo como unidad en Windows, se debe instalar la biblioteca del sistema de archivos Dokany2. Descargue e instale la última versión estable de Dokany2 en: https://github.com/dokan-dev/dokany/releases/latest

Linux:

Consulte la guía PCILeech en Linux para obtener información sobre cómo ejecutar PCILeech en Linux.

Ejemplos:

Consulte las páginas wiki del proyecto para más ejemplos. La wiki está en fase de construcción y es posible que aún falte información.

Montar RAM viva y sistema de archivos del sistema objetivo, requiere que se haya cargado un KMD. En este ejemplo se utiliza 0x11abc000.

  • pcileech.exe mount -kmd 0x11abc000

Mostrar ayuda para un implante de kernel específico, en este caso el implante de kernel lx64_filepull.

  • pcileech.exe lx64_filepull -help

Mostrar ayuda para el comando dump.

  • pcileech.exe dump -help

Volcar toda la memoria del sistema objetivo dado que un módulo del kernel está cargado en la dirección: 0x7fffe000.

  • pcileech.exe dump -kmd 0x7fffe000

Forzar volcado de memoria por debajo de 4GB incluyendo dispositivos mapeados en memoria accesibles usando el enfoque USB2 más estable en USB3380.

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

Recibir TLPs PCIe (Paquetes de Capa de Transacción) e imprimirlos en pantalla (se requiere placa de desarrollo FPGA configurada correctamente).

  • pcileech.exe tlp -vv -wait 1000

Sondear/Enumerar la memoria del sistema objetivo para páginas de memoria legibles y memoria máxima. (Solo hardware FPGA).

  • pcileech.exe probe

Volcar toda la memoria entre las direcciones mín y máx, no detenerse en páginas fallidas. El acceso nativo a memoria de 64 bits solo es compatible con hardware FPGA.

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

Volcar toda la memoria, intentar localizar el mapa de memoria desde el registro del sistema objetivo para evitar volcar memoria potencialmente inválida que pueda congelar el objetivo.

  • pcileech.exe dump -memmap auto

Forzar el uso de un dispositivo específico (en lugar de la detección automática predeterminada). El dispositivo pmem no se detecta automáticamente.

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

Volcar memoria remota desde un LeechAgent remoto usando conexión cifrada y autenticada mutuamente por kerberos.

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

Ejecutar el script de análisis de Python find-rwx.py en una computadora remota usando el entorno Python integrado de LeechAgent.

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

Parchear memoria de proceso virtual de pid 432 (lsass.exe en este ejemplo).

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

Limitaciones/Problemas Conocidos:

  • No funciona si el sistema operativo utiliza IOMMU/VT-d. Esto es lo predeterminado en macOS (a menos que se deshabilite en modo de recuperación). Windows 10/11 con funciones de seguridad basadas en virtualización habilitadas no funciona completamente.
  • Las versiones recientes de Windows y Linux bloquean DMA de forma predeterminada.

Comunidad de PCILeech y MemProcFS:

¿Encuentra todo esto un poco abrumador? ¿O simplemente quiere hacer una pregunta rápida? ¡Únase al servidor de la comunidad DMA de PCILeech y MemProcFS en Discord!

Compilación:

Los binarios se encuentran en la sección de versiones de este repositorio. Si se desea compilar una versión propia, es posible hacerlo. Consulte la guía PCILeech en Windows o PCILeech en Linux para obtener más información sobre cómo compilar PCILeech. PCILeech también depende de LeechCore y opcionalmente (para algunas funcionalidades adicionales) de The Memory Process File System, que deben compilarse por separado.

Contribuciones:

PCILeech, MemProcFS y LeechCore son de código abierto pero no de contribución abierta. PCILeech, MemProcFS y LeechCore ofrecen una arquitectura de complementos altamente flexible que permitirá contribuciones en forma de complementos. Si desea realizar una contribución, que no sea un complemento, a los proyectos principales, comuníquese conmigo antes de comenzar a desarrollar.

Enlaces:

  • 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 para PCILeech: https://github.com/LuckyPi/PushPin

Registro de cambios:

Versiones anteriores (haga clic para expandir):

v1.0-v3.6

  • Lanzamiento inicial y varias actualizaciones. Consulte las versiones individuales para obtener más información.

v4.0

  • Limpieza importante y refactorizaciones internas.
  • Detección automática de memoria máxima de FPGA y estrategia de volcado más estable.
  • Nuevos inyectores de kernel estables de Windows 10 con hardware FPGA en sistemas sin seguridad basada en virtualización.
  • Inyectores en modo de usuario (experimental).
  • Eliminación del soporte de dispositivos integrados: ahora se utiliza la biblioteca leechcore.dll/leechcore.so de LeechCore. Nuevos dispositivos incluyen:
    • Archivos de volcado de memoria (archivos de volcado lineal sin procesar y archivos de volcado de bloqueo de Microsoft).
    • Archivos de guardado de Hyper-V.
    • Memoria viva a través de DumpIt / WinPmem.
    • Dispositivos remotos mediante la opción -remote.
  • Eliminación de la API y del Memory Process File System integrado; utilice en su lugar las API más potentes de LeechCore y Memory Process File System.
  • Múltiples otros cambios y actualizaciones de sintaxis.

v4.1

  • Soporte de LeechAgent: adquisición y análisis de memoria remota.

v4.2

  • Actualizaciones de firmas:
    • Módulo del kernel de Linux - LINUX_X64_48 (versiones recientes)
    • Módulo del kernel de Win10 1903 - WIN10_X64_2 (requiere la versión de Windows de PCILeech)

v4.3

  • Correcciones de errores.
  • Soporte para nuevo dispositivo (NeTV2 / RawUDP) a través de la biblioteca LeechCore.

v4.4

v4.10

  • Soporte en Linux para firmas integradas de Windows 10 (dependencia de MemProcFS v4.0).
  • Versiones separadas para Windows y Linux.
  • Limpieza general.

v4.11

  • Soporte para memoria de VM en vivo de VMWare Workstation/Player.
  • Soporte para análisis de memoria remota con el comando agent-forensic de LeechAgent.
    • Ejecuta el modo forense de MemProcFS de forma remota.
    • Recupera datos JSON compatibles con ElasticSearch.

v4.12

  • Soporte de 32 bits (binario pcileech).

v4.13

  • Correcciones de errores.
  • Mejoras de montaje:
    • Soporte del sistema de archivos del host Windows: actualización a Dokany2 (¡NB! ¡Se debe instalar Dokany2!).
    • Soporte del sistema de archivos del host Linux: soporte FUSE añadido.
      Ejemplo: ./pcileech mount /home/user/fusemnt/leechfs -kmd <su_dirección_kmd>
    • Ahora es posible acceder a otras unidades locales además de C: en objetivos Windows.
  • Soporte para Visual Studio 2022.

v4.14

  • Soporte de memoria virtual de procesos (solo Windows).
    • Comandos: search, patch, write, display, pagedisplay
    • Ejemplo: pcileech patch -pid 732 -sig unlock_win10x64.sig

v4.15

  • Soporte para MemProcFS v5.0

v4.16

  • Mejoras de rendimiento de FPGA.
  • Comando none añadido.
  • Opciones -bar-ro y -bar-rw añadidas.

v4.17

  • Soporte de I/O BAR.
  • Mejoras en Linux:
    • Actualización de firma KMD (LINUX_X64_48) para soportar los kernels más recientes de Ubuntu.
    • Actualización de módulos del kernel para soportar los kernels más recientes.
    • Nueva firma KMD - LINUX_X64_MAP - especificar el System.map del kernel del sistema objetivo en la opción -in.
    • Nuevo módulo del kernel: lx64_exec_root.
  • Mejoras de rendimiento de PCIe FPGA en Linux.v4.18
  • Comando de benchmark añadido.
  • Firmas de desbloqueo actualizadas.
  • Opción -psname añadida.

v4.19

  • Mejoras de estabilidad en Linux y mejoras en la carga del módulo del kernel.
  • Soporte de compilación con clang en Linux.
  • Soporte para macOS.

Latest:

  • Corrección de errores.
  • Soporte de LeechAgent en Linux usando gRPC (LeechCore v2.21).
  • Añadido: opción -no-kmd-mem para deshabilitar opcionalmente el acceso a memoria KMD cuando KMD está cargado (puede ser útil por motivos de estabilidad en algunos casos).
  • Añadido: -kmd WIN11_X64 - firma KMD de Windows 11 (alias de WIN10_X64_3).
Descargar herramienta
DispositivoTipoInterfazVelocidadAcceso a memoria de 64 bitsAcceso PCIe TLPProyecto
Patrocinador
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
HP iLO con parche DMABMCTCP1MB/sSíNo
DispositivoTipoVolátilEscrituraSoporte LinuxComplemento
Volcado de memoria física RAWArchivoNoNoSíNo
Volcado completo de bloqueo de MicrosoftArchivoNoNoSíNo
Volcado completo de núcleo ELFArchivoNoNoSíNo
VMwareMemoria vivaSíSíNoNo
Archivo de guardado de memoria de VMwareArchivoNoNoSíNo
TotalMeltdownCVE-2018-1038SíSíNoNo
DumpIt /LIVEKDMemoria vivaSíNoNoNo
WinPMEMMemoria vivaSíNoNoNo
LiveKdMemoria vivaSíNoNoNo
LiveCloudKdMemoria vivaSíSíNoSí
Estado guardado de Hyper-VArchivoNoNoNoSí
LeechAgent*RemotoNoNo
  • Correcciones de errores y mejoras de estabilidad.
  • Soporte para la biblioteca MemProcFS v3.
  • Firma de código de binarios.
  • Comando "tlploop".
  • v4.5

    • Correcciones de errores.
    • Soporte para v2 de la biblioteca de adquisición de memoria LeechCore.
    • Integración de MemProcFS al ejecutarse en Windows.
    • Soporte para mapa de memoria física definido por el usuario (opción -memmap).

    v4.6

    • Soporte para LiveCloudKd.

    v4.7

    • Correcciones de errores.
    • WIN10_X64_3 nueva firma de kernel estable para Windows 10 - incluye la versión Win10 2004.
    • Actualizaciones de firmas de desbloqueo - Win10/Linux (¡NB! los kernels más recientes en Linux aún no son compatibles).

    v4.8

    • Correcciones de errores.
    • Mejor soporte para kernels x64 recientes de Linux.

    v4.9

    • Correcciones de errores.
    • Actualizaciones de firmas.
    • Mejor soporte para kernels x64 recientes de Linux (Ubuntu 21.04).
    • Desmontaje de la unidad montada al presionar CTRL+C.