Exfiltración de datos codificando datos en valores de color de píxeles

Hace cuatro años, Dave Lodge tuvo la idea de codificar datos en una serie de códigos QR para extraer información de un host y, el año pasado, ya lo pudimos ver implementado por Eric Seifert que desarrolló el software necesario para enviar datos usando tan sólo un monitor y una cámara web ("IP sobre QR"). Este método funciona, pero los códigos QR no contienen una gran cantidad de datos, por lo que transferir incluso 1MB lleva mucho tiempo.

Digamos que estos fueron dos pasos previos a la herramienta de exfiltración de datos que os traemos hoy. Se trata PTP-RAT de Alan Monie, que aumenta el ancho de banda codificando datos usando valores de color de píxeles individuales y mostrando la pantalla remota.

El funcionamiento básicamente es que un listener en el equipo procesa las capturas de la pantalla y reconstruye los datos. Cada captura de pantalla comienza con un encabezado que contiene una cadena mágica, "PTP-RAT-CHUNK" seguido de un número de secuencia. Cuando el receptor está activado, comienza a tomar capturas de pantalla al doble de la frecuencia de transmisión (la tasa de Nyquist). Cuando detecta un encabezado válido, decodifica la información de color de píxeles y espera al siguiente flash. Tan pronto como no se detecta un encabezado válido, reconstruye todas las capturas y guarda el resultado en un archivo.

Una resolución de pantalla típica de 1920×1080 con 24 bits de color puede codificar casi 6 MB de datos en una imagen, por lo que el ancho de banda no está nada mal. Sin embargo protocolos como RDP cambian ligeramente los valores de color y, aunque no es perceptible para un ser humano, destruyen datos codificados. Alan estimó que sería posible codificar hasta 15 bits por píxel en una buena conexión antes de comenzar a perder datos. Esto probablemente variaría entre los protocolos y la calidad de la conexión, así que decidió dar un buen margen de error, y en lugar de codificar tres bytes por píxel, decidió bajarlo a 3 bits por píxel (1 bit por cada valor RGB en el píxel) para manejar los "errores" de compresión del protocolo. Después de hacer este cambio, lo probó con una conexión RDP y pudo filtrar un archivo de 3MB en unos segundos.

Para utilizar el software hay que instalar una instancia tanto en el emisor como el receptor y simplemente seleccionar el archivo que queremos enviar. El puntero del mouse desaparece y la pantalla comienza a parpadear a medida que el archivo se transmite a través de los valores de color de los píxeles. Al final de la transferencia, aparece un cuadro de diálogo para guardar archivos en el receptor y el archivo se guarda.

En el siguiente vídeo de demostración el host remoto es una Máquina Virtual alojada en París y el receptor es una Microsoft Surface ubicada en Escocia. El archivo enviado es una imagen de 1.8MB de la torre Eiffel:


Software: https://github.com/pentestpartners/PTP-RAT/blob/master/RAT.zip
Fuente: Exfiltration by encoding data in pixel colour values

3 comentarios :

  1. No me hace ninguna gracia que en github tengamos un ejecutable en un zip.
    Me inspira confianza 0.

    ResponderEliminar
    Respuestas
    1. Y en el copyright del ejecutable aparece Microsoft.

      Eliminar
    2. También me fijé en eso, pero también puede ser inyectado o falseado con intención de camuflarlo. A fin de cuentas parece que la intención es la de crear un RAT más que un exfiltrador.
      No sé, es muy raro. Parece que nos digan "Hemos creado este malware, mirad qué bien funciona" pero no nos quieren dejar ver qué hace realmente.

      Eliminar