Загрузчик Motorola поддерживает несколько специальных команд, которые после загрузки превращаются в аргументы ядра Linux. Например, после выполнения команды $ fastboot oem config carrier abc и последующей загрузки смартфона с помощью fastboot continue ядру будет передан аргумент carrier=abc. Пока ничего криминального. Но, конечно же, здесь есть проблема валидации входных данных, то есть возможность передать ядру дополнительные параметры с помощью особым образом сформированной команды. Например, выполнение такой команды: $ fastboot oem config carrier "a rdinit=/sbin/foo" приведет к передаче ядру параметров carrier=a и rdinit=/sbin/foo. Это уже намного интереснее. С помощью того же параметра rdinit можно заставить ядро запустить любой бинарник из initramfs (RAM-диск Android). Но есть другая проблема: в initramfs нет бинарных файлов, подходящих для получения root-шелла. Исследователи выкрутились и из этой ситуации. Дело в том, что с помощью fastboot можно не только прошивать и разлочива
Root shell с отключенным SELinux на большинстве устройств Motorola
13 декабря 201713 дек 2017
40
2 мин