
Detectar imágenes que probablemente exploten CVE-2022-44268
cve-2022-44268-detector es un programa en Go que consume PNGs e informa si parecen ser imágenes maliciosas generadas por un exploit para CVE-2022-44268, una vulnerabilidad de ImageMagick que permite a atacantes leer contenido arbitrario de archivos utilizando imágenes especialmente manipuladas.
Para instalar cve-2022-44268-detector, usa go install:
$ go install github.com/jnschaeffer/cve-2022-44268-detector@latest
Ten cuidado al trabajar con datos no confiables. Un atacante puede crear un chunk PNG que pueda contener datos no-zlib (como un script de shell, o código que explote un error en tu flujo de detección). Escribir accidentalmente código proporcionado por el atacante en una terminal o shell puede resultar en la ejecución de código malicioso. Se recomienda encarecidamente que el detector se ejecute en una máquina virtual o entorno de cómputo aislado para ayudar a mitigar tales fallos de seguridad.
cve-2022-44268-detector es una aplicación de línea de comandos. Puedes ejecutarlo de la siguiente manera:
$ cve-2022-44268-detector -filename image.png
***POTENTIAL INDICATOR OF COMPROMISE*** - keyword: 'Raw profile type' | compressed: true | id: 0 | offset: 0x72 | len: 666
Los usuarios pueden opcionalmente enviar el contenido de cada chunk exfiltrado a stdout proporcionando el argumento -print. Ten en cuenta que el valor de cada chunk probablemente son datos binarios comprimidos con zlib (es decir, no legibles por humanos). Se recomienda firmemente redirigir estos datos a un archivo.
Nota: Ten mucho cuidado al usar -print. Los PNGs no confiables pueden contener datos que, si se exponen a una terminal o shell, podrían interpretarse como código ejecutable. Toma las medidas de precaución adecuadas al usar esta función.
El argumento -print acepta los siguientes valores:
raw - Escribe el valor del chunk tal cual a stdoutdecompress - Descomprime el valor del chunk antes de escribirlo a stdoutdecompress-hexdecode - Descomprime y decodifica en hexadecimal el valor del chunk antes de escribirlo a stdout. ImageMagick parece primero codificar en hexadecimal y luego comprimir los datos usando compresión zlib$ cve-2022-44268-detector -filename image.png -print raw > /tmp/out
***POTENTIAL INDICATOR OF COMPROMISE*** - keyword: 'Raw profile type' | compressed: true | id: 0 | offset: 0x72 | len: 666
$ hexdump -C /tmp/out