sábado, diciembre 12, 2020

Depix: Cómo depíxelar contraseñas que han sido píxeladas en imágenes

Twitter es una gran fuente de información. En algunas ocasiones, no solo de información, ya que hay de todo, pero como fuente de información y difusión es magnífica. Podemos conocer ideas, noticias, herramientas, proyectos y todo en pocos caracteres. El otro día estaba revisando mi timeline cuando ví un proyecto que llamó mi atención “Depix”.

Figura 1: Depix: Cómo depíxelar contraseñas que han sido píxeladas en imágenes

El autor de la herramienta nos dejaba su Github y nos mostraba lo que era capaz de hacer. Una captura de pantalla píxelada, dónde tapamos un texto, una información o una contraseña y se podía “despixelar”. Internamente en Ideas Locas hemos hablado de este tipo de posibilidades, pero siempre es interesante ver un proyecto práctico que lo hace. Por supuesto, había que probarlo. 

Figura 2: Depix en GitHub

El autor, Sipke Millema, ha publicado un artículo titulado "Recovering Passwords from Pixelized ScreenShots" contando los fundamentos de este proyecto tanto de objetivos como tecnológicos y explicando conceptos necesarios para entenderlo en profundidad. Sin duda, os recomiendo la lectura del artículo. 


Creo que no hace falta mucho explicar para qué se utiliza la pixelación, pero debemos entenderlo como un proceso que permite ofuscar información en imagen. Como indica Sipke en su artículo hay algunas empresas que utilizan la pixelación de contraseñas en documentos internos. A partir de la publicación de Depix se pensarán utilizar este método para “proteger” visualmente una contraseña visualmente. La mejor protección será que no aparezca la contraseña en ninguna de las formas en la imagen. En la Figura 4 que el propio investigador y autor de la herramienta ha publicado para explicar el concepto. El algoritmo de Depix ataca al filtro de caja lineal. 

¿Cómo funciona un filtro de caja lineal?

Éste toma una caja de píxeles y machaca dichos píxeles con un promedio de todos los píxeles de la caja. En otras palabras, es una implementación sencilla y se puede ejecutar de forma rápida. Esto es algo atractivo a la hora de utilizar la pixelación tanto en documentos como en imágenes. En la imagen se puede ver ese filtro de caja lineal. El emoticono acaba píxelado por los valores promedio del resto de subcajas. Es importante entender que la información original se pierde, por lo que diríamos que no se puede revertir este proceso. 

Figura 4: Filtro de caja lineal

Depix nos funcionará en el caso de encontrar píxelados con filtros de caja, ya que existen otros métodos de ofuscación de información en una imagen, las cuales no valdrían con Depix. La base del algoritmo que utiliza Depix consiste en píxelar datos similares y comprobar si coinciden. Por eso, podemos encontrar una carpeta llamada images/searchimages dónde encontraremos diferentes imágenes con un gran número de caracteres. Serán utilizados para píxelar y comprobar similitudes.

El filtro de caja lineal es un algoritmo determinista, es decir, cuando se píxela unos valores concretos, siempre obtendremos el mismo bloque píxelado. Esto nos puede recordar un poco a los Hashes NTLM que son tan importantes, tanto en la Fortificación de Windows como en el Hacking de Windows, y el uso de una misma contraseña en diferentes sistemas generaba el mismo Hash NTLM. Volviendo al tema de los filtros de caja lineal, se puede intentar píxelar un texto para encontrar patrones comunes que permita ver coincidencias.

Figura 5: Secuencia de Brujin de caracteres esperados

La solución utiliza es bastante sencilla. Se toma una secuencia de De Brujin de los caracteres esperados, se pega en el mismo editor y se hace una captura de pantalla de esto. Esta captura se utilizará como imagen para la búsqueda de bloques similares.  Esta secuencia nos va a incluir combinaciones de dos caracteres y esto es importante, porque algunos de los bloques pueden superponerse a dos caracteres. No siempre se podrá encontrar la coincidencia exacta, por lo que el resultado no será perfecto, pero sí vamos a poder ver una gran parte, en condiciones normales, del contenido píxelado.

Probando Depix

Para la prueba he utilizado imágenes que vienen en el repositorio de Depix, con el objetivo de hacer la prueba. La sintaxis de Depix es sencilla. Con el parámetro “-p” le indicamos la imagen con la información píxelada que queremos utilizar para “despixelar”. Con el parámetro “-s” le indicamos los valores referencia para que Depix trabaje con ellos. Por último, con el parámetro “-o” le indicamos dónde se debe dejar la imagen.

Figura 6: Ejecución de Depix con Python, el lenguaje de los pentesters

Tomamos la siguiente imagen, la cual viene dentro de la carpeta images/testimages en el repositorio de Depix. En la imagen no se puede apreciar o leer nada, por lo que es un buen reto.

Figura 7: La imagen píxelada a depíxelar con Depix 

Tras lanzar Depix, con la configuración anterior, esperamos un tiempo, ya que este proceso no es inmediato. Nos llevará unos minutos obtener el ansiado resultado. Como se puede ver en la Figura 8, hemos recuperado casi de forma completa, el texto de la imagen. Pensemos en una contraseña que estaba píxelada, ¿podríamos intuir claramente a ésta? Aunque no tengamos el texto completo, ¿nos ayudaría ese tipo de filtraciones o "leaks" en un Ethical Hacking?

Figura 8: Yo leo "Hello from the other side", y ¿tú?

Sin duda, una interesante herramienta que nos hará pensar en situaciones que podamos haber píxelado una información sensible y que quizá no sea el mejor método de protección. La recomendación es no dejar en una imagen o un vídeo algo que no quieras que se pueda recuperar en el futuro.

Saludos,

Pablo González Pérez (@pablogonzalezpe), escritor de los libros "Metasploit para Pentesters: Gold Edition", "Hacking con Metasploit: Advanced Pentesting" "Hacking Windows", "Ethical Hacking", "Got Root",  “Pentesting con Powershell (2ª Edición)”, "Pentesting con Kali Silver Edition" y de "Empire: Hacking Avanzado en el Red Team", Microsoft MVP en Seguridad y Security Researcher en el equipo de "Ideas Locas" de la unidad CDCO de Telefónica.  Para consultas puedes usar el Buzón Público para contactar con Pablo González - Conseguir 100 Tempos Gratis en MyPublicInbox

 Contactar con Pablo González

No hay comentarios:

Entrada destacada

10 maneras de sacarle el jugo a tu cuenta de @MyPublicInbox si eres un Perfil Público

Cuando doy una charla a algún amigo, conocido, o a un grupo de personas que quieren conocer MyPublicInbox , siempre se acaban sorprendiendo ...

Entradas populares