HOME FORUMS MEMBERS RECENT POSTS LOG IN  
× Авторизация
Имя пользователя:
Пароль:
Нет аккаунта? Регистрация
Баннер 1   Баннер 2
НОВЫЕ ТОРГОВАЯ НОВОСТИ ЧАТ
loading...
Скрыть
Вернуться   ANTICHAT > БЕЗОПАСНОСТЬ И УЯЗВИМОСТИ > Уязвимости > Уязвимости CMS / форумов
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

  #1  
Старый 21.09.2017, 21:40
Dr.Lafa
Новичок
Регистрация: 30.12.2016
Сообщений: 0
С нами: 4931546

Репутация: 0
По умолчанию

Понадобилось мне зареверсить одно приложение и подумал, почему бы статью об этом не написать?

При реверсинге может возникнуть 2 случая:
1. Простой:
У вас на руках есть .apk файл приложения. Можно приступать к реверсу.
2. Сложный:
Приложение есть только в googleplay. Прийдётся выковыривать приложение из телефона.
Для этого случая понадобятся root права на андроид.

Я начну со второго, а после этого перейдём к реверсу(самая лёгкая часть).

Настраиваем ADB.
Нам понадобится adb на компьютере:
Код:


Код:
sudo add-apt-repository ppa:nilarimogard/webupd8
sudo apt-get update
sudo apt-get install android-tools-adb android-tools-fastboot
После установки необходимо опознавание устройств, в терминале:

Код:


Код:
sudo nano /etc/udev/rules.d/51-android.rules
Вставляем:
И выдаём права:

Код:


Код:
sudo chmod a+r /etc/udev/rules.d/51-android.rules
На android-устройстве нужно включить режим отладки по USB.
Для этого в настройки > о телефоненеслолько раз подряд жмём по номеру сборки. Разблокируется режим разработчика. Далее идём в настройки > для разработчикови ставим галку на Отладка по USB.



Подключаем телефон к компьютеру, должно высветиться такое окно:



Жмём окей. В терминале вводим:

Код:


Код:
sudo adb devices
Если есть ваш телефон, то всё ок.



Достаём apk файл.
Я буду показывать на примере BlueBorne Vulnerability Scanner. Он есть только в гугл плей.
Установим приложение:




Далее в терминале:

Код:


Код:
sudo adb shell
su
ls /data/app


Нам покажет все установленные приложения и их расположение. Как видно, BlueBorne Scanner находится по /data/app/com.armis.blueborne_detector-1.
Если ввести ls /data/app/com.armis.blueborne_detector-1, то в ответ получим

Код:


Код:
base.apk
lib
base.apk - это и есть приложение. Скопируем его на cd-карту:

Код:


Код:
cp /data/app/com.armis.blueborne_detector-1/base.apk /sdcard/
Выходим из android-shell в обычный терминал (2 раза Ctrl+d) и копируем с cd-карты на компьютер:

Код:


Код:
sudo adb pull /sdcard/base.apk


Меня, кстати говоря, сильно удивило, что при установке приложения через гугл плей и установке через apk-файл требуются разные разрешения. Кажется, гугл что-то скрывает...





Декомпилируем.
О декомпиляции APK рассказывал @Vander здесь и здесь, так что вкратце, нам понадобится apktool для декомпиляции и dex2jar для вытаскивания кода (оба есть по умолчанию в Kali).
Декомпилируем:

Код:


Код:
sudo apktool -r -s d base.apk
В созданной нам понадобится classes.dex (вся логика программы). Получаем .JAR:

Код:


Код:
d2j-dex2jar -r -ts classes.dex
На выходе получаем classes-dex2jar.jar, который можно распоковать, я пользуюсь jd-gui для просмотра:



На этом всё
[doublepost=1506015657,1506015614][/doublepost]@WebWare Team спойлеры не отображаются, хелп
 
Ответить с цитированием

  #2  
Старый 21.09.2017, 23:05
ghost
Новичок
Регистрация: 27.04.2010
Сообщений: 0
С нами: 8442422

Репутация: 0
По умолчанию

Хорошо разжевано. В kali есть утилитка apktool
 
Ответить с цитированием

  #3  
Старый 22.09.2017, 08:10
Сергей Попов
Новичок
Регистрация: 14.08.2015
Сообщений: 0
С нами: 5656404

Репутация: 0
По умолчанию

Цитата:

Dr.Lafa сказал(а):

@WebWare Team спойлеры не отображаются, хелп

 
Ответить с цитированием

  #4  
Старый 14.11.2017, 22:13
NekitGod1
Новичок
Регистрация: 05.11.2017
Сообщений: 0
С нами: 4483844

Репутация: 0
По умолчанию

Цитата:

Dr.Lafa сказал(а):

Понадобилось мне зареверсить одно приложение и подумал, почему бы статью об этом не написать?

При реверсинге может возникнуть 2 случая:
1. Простой:
У вас на руках есть .apk файл приложения. Можно приступать к реверсу.
2. Сложный:
Приложение есть только в googleplay. Прийдётся выковыривать приложение из телефона.
Для этого случая понадобятся root права на андроид.

Я начну со второго, а после этого перейдём к реверсу(самая лёгкая часть).

Настраиваем ADB.
Нам понадобится adb на компьютере:

Код:


Код:
sudo add-apt-repository ppa:nilarimogard/webupd8
sudo apt-get update
sudo apt-get install android-tools-adb android-tools-fastboot
После установки необходимо опознавание устройств, в терминале:

Код:


Код:
sudo nano /etc/udev/rules.d/51-android.rules
Вставляем:

И выдаём права:

Код:


Код:
sudo chmod a+r /etc/udev/rules.d/51-android.rules
На android-устройстве нужно включить режим отладки по USB.
Для этого в настройки > о телефоненеслолько раз подряд жмём по номеру сборки. Разблокируется режим разработчика. Далее идём в настройки > для разработчикови ставим галку на Отладка по USB.

Подключаем телефон к компьютеру, должно высветиться такое окно:

Жмём окей. В терминале вводим:

Код:


Код:
sudo adb devices
Если есть ваш телефон, то всё ок.

Достаём apk файл.
Я буду показывать на примере BlueBorne Vulnerability Scanner. Он есть только в гугл плей.
Установим приложение:

Далее в терминале:

Код:


Код:
sudo adb shell
su
ls /data/app
Нам покажет все установленные приложения и их расположение. Как видно, BlueBorne Scanner находится по /data/app/com.armis.blueborne_detector-1.
Если ввести ls /data/app/com.armis.blueborne_detector-1, то в ответ получим

Код:


Код:
base.apk
lib
base.apk - это и есть приложение. Скопируем его на cd-карту:

Код:


Код:
cp /data/app/com.armis.blueborne_detector-1/base.apk /sdcard/
Выходим из android-shell в обычный терминал (2 раза Ctrl+d) и копируем с cd-карты на компьютер:

Код:


Код:
sudo adb pull /sdcard/base.apk
Меня, кстати говоря, сильно удивило, что при установке приложения через гугл плей и установке через apk-файл требуются разные разрешения. Кажется, гугл что-то скрывает...

Декомпилируем.
О декомпиляции APK рассказывал @Vander здесь и здесь, так что вкратце, нам понадобится apktool для декомпиляции и dex2jar для вытаскивания кода (оба есть по умолчанию в Kali).
Декомпилируем:

Код:


Код:
sudo apktool -r -s d base.apk
В созданной нам понадобится classes.dex (вся логика программы). Получаем .JAR:

Код:


Код:
d2j-dex2jar -r -ts classes.dex
На выходе получаем classes-dex2jar.jar, который можно распоковать, я пользуюсь jd-gui для просмотра:

На этом всё
[doublepost=1506015657,1506015614][/doublepost]@WebWare Team спойлеры не отображаются, хелп

Java файлы разьве не нужно приводить в нормальный вид?
 
Ответить с цитированием

  #5  
Старый 15.11.2017, 00:48
Dr.Lafa
Новичок
Регистрация: 30.12.2016
Сообщений: 0
С нами: 4931546

Репутация: 0
По умолчанию

Цитата:

NekitGod1 сказал(а):

Java файлы разьве не нужно приводить в нормальный вид?

смотря что подразумевает нормальынй вид
 
Ответить с цитированием

  #6  
Старый 01.03.2018, 01:15
G0p43R
Новичок
Регистрация: 28.02.2018
Сообщений: 0
С нами: 4319590

Репутация: 0
По умолчанию

Цитата:

Dr.Lafa сказал(а):

Понадобилось мне зареверсить одно приложение и подумал, почему бы статью об этом не написать?

При реверсинге может возникнуть 2 случая:
1. Простой:
У вас на руках есть .apk файл приложения. Можно приступать к реверсу.
2. Сложный:
Приложение есть только в googleplay. Прийдётся выковыривать приложение из телефона.
Для этого случая понадобятся root права на андроид.

Я начну со второго, а после этого перейдём к реверсу(самая лёгкая часть).

Настраиваем ADB.
Нам понадобится adb на компьютере:

Код:


Код:
sudo add-apt-repository ppa:nilarimogard/webupd8
sudo apt-get update
sudo apt-get install android-tools-adb android-tools-fastboot
После установки необходимо опознавание устройств, в терминале:

Код:


Код:
sudo nano /etc/udev/rules.d/51-android.rules
Вставляем:

И выдаём права:

Код:


Код:
sudo chmod a+r /etc/udev/rules.d/51-android.rules
На android-устройстве нужно включить режим отладки по USB.
Для этого в настройки > о телефоненеслолько раз подряд жмём по номеру сборки. Разблокируется режим разработчика. Далее идём в настройки > для разработчикови ставим галку на Отладка по USB.

Подключаем телефон к компьютеру, должно высветиться такое окно:

Жмём окей. В терминале вводим:

Код:


Код:
sudo adb devices
Если есть ваш телефон, то всё ок.

Достаём apk файл.
Я буду показывать на примере BlueBorne Vulnerability Scanner. Он есть только в гугл плей.
Установим приложение:

Далее в терминале:

Код:


Код:
sudo adb shell
su
ls /data/app
Нам покажет все установленные приложения и их расположение. Как видно, BlueBorne Scanner находится по /data/app/com.armis.blueborne_detector-1.
Если ввести ls /data/app/com.armis.blueborne_detector-1, то в ответ получим

Код:


Код:
base.apk
lib
base.apk - это и есть приложение. Скопируем его на cd-карту:

Код:


Код:
cp /data/app/com.armis.blueborne_detector-1/base.apk /sdcard/
Выходим из android-shell в обычный терминал (2 раза Ctrl+d) и копируем с cd-карты на компьютер:

Код:


Код:
sudo adb pull /sdcard/base.apk
Меня, кстати говоря, сильно удивило, что при установке приложения через гугл плей и установке через apk-файл требуются разные разрешения. Кажется, гугл что-то скрывает...

Декомпилируем.
О декомпиляции APK рассказывал @Vander здесь и здесь, так что вкратце, нам понадобится apktool для декомпиляции и dex2jar для вытаскивания кода (оба есть по умолчанию в Kali).
Декомпилируем:

Код:


Код:
sudo apktool -r -s d base.apk
В созданной нам понадобится classes.dex (вся логика программы). Получаем .JAR:

Код:


Код:
d2j-dex2jar -r -ts classes.dex
На выходе получаем classes-dex2jar.jar, который можно распоковать, я пользуюсь jd-gui для просмотра:

На этом всё
[doublepost=1506015657,1506015614][/doublepost]@WebWare Team спойлеры не отображаются, хелп

А если у нас приложение написано на react native ? Или тот же самый Котлин?
 
Ответить с цитированием

  #7  
Старый 04.03.2018, 13:36
konstata3
Новичок
Регистрация: 23.12.2017
Сообщений: 0
С нами: 4415122

Репутация: 0
По умолчанию

слишком сложные танцы с бубном при копировании apk.
Нельзя просто через ESпроводник => Библиотеки => APPs => Резервирование => /sdcard/backups/apps/название.apk ?
Так намного проще и root не нужен)
 
Ответить с цитированием

  #8  
Старый 04.03.2018, 15:15
Dr.Lafa
Новичок
Регистрация: 30.12.2016
Сообщений: 0
С нами: 4931546

Репутация: 0
По умолчанию

Цитата:

Nai сказал(а):

А если apk обфусцирован (допустим ProGuard'ом), то что получим на выходе?

Если честно, даже не задумывался об этом. Тут уже будет нужна деобфускация
 
Ответить с цитированием

  #9  
Старый 13.03.2018, 05:22
Celestial
Новичок
Регистрация: 26.03.2008
Сообщений: 1
С нами: 9540034

Репутация: 0
По умолчанию

Цитата:

Nai сказал(а):

А если apk обфусцирован (допустим ProGuard'ом), то что получим на выходе?

Все зависит от ваших целей. Если код обфусцирован, то иследовать безопасность приложения следует сначала методом фаззинга, а дальше изучать уже отдельные, уязвимые, библиотеки и функции. Их можно найти методом встроенного поиска в jd-gui используя преобретенные в процессе фаззинга данные. Это много эффективнее обычных чек-листов, даже от OWASP-a. Самый простой способ борьбы с захешированными строками, например, поступающими в исследуемые функции -- легкое изменение кода, игра с параметрами, применение дебагеров/отладчиков.
 
Ответить с цитированием

  #10  
Старый 26.03.2018, 23:30
Vander
Новичок
Регистрация: 03.11.2010
Сообщений: 5
С нами: 8170166

Репутация: 0
По умолчанию

Цитата:

Dr.Lafa сказал(а):

Понадобилось мне зареверсить одно приложение и подумал, почему бы статью об этом не написать?

При реверсинге может возникнуть 2 случая:
1. Простой:
У вас на руках есть .apk файл приложения. Можно приступать к реверсу.
2. Сложный:
Приложение есть только в googleplay. Прийдётся выковыривать приложение из телефона.
Для этого случая понадобятся root права на андроид.

Я начну со второго, а после этого перейдём к реверсу(самая лёгкая часть).

Настраиваем ADB.
Нам понадобится adb на компьютере:

Код:


Код:
sudo add-apt-repository ppa:nilarimogard/webupd8
sudo apt-get update
sudo apt-get install android-tools-adb android-tools-fastboot
После установки необходимо опознавание устройств, в терминале:

Код:


Код:
sudo nano /etc/udev/rules.d/51-android.rules
Вставляем:

И выдаём права:

Код:


Код:
sudo chmod a+r /etc/udev/rules.d/51-android.rules
На android-устройстве нужно включить режим отладки по USB.
Для этого в настройки > о телефоненеслолько раз подряд жмём по номеру сборки. Разблокируется режим разработчика. Далее идём в настройки > для разработчикови ставим галку на Отладка по USB.

Подключаем телефон к компьютеру, должно высветиться такое окно:

Жмём окей. В терминале вводим:

Код:


Код:
sudo adb devices
Если есть ваш телефон, то всё ок.

Достаём apk файл.
Я буду показывать на примере BlueBorne Vulnerability Scanner. Он есть только в гугл плей.
Установим приложение:

Далее в терминале:

Код:


Код:
sudo adb shell
su
ls /data/app
Нам покажет все установленные приложения и их расположение. Как видно, BlueBorne Scanner находится по /data/app/com.armis.blueborne_detector-1.
Если ввести ls /data/app/com.armis.blueborne_detector-1, то в ответ получим

Код:


Код:
base.apk
lib
base.apk - это и есть приложение. Скопируем его на cd-карту:

Код:


Код:
cp /data/app/com.armis.blueborne_detector-1/base.apk /sdcard/
Выходим из android-shell в обычный терминал (2 раза Ctrl+d) и копируем с cd-карты на компьютер:

Код:


Код:
sudo adb pull /sdcard/base.apk
Меня, кстати говоря, сильно удивило, что при установке приложения через гугл плей и установке через apk-файл требуются разные разрешения. Кажется, гугл что-то скрывает...

Декомпилируем.
О декомпиляции APK рассказывал @Vander здесь и здесь, так что вкратце, нам понадобится apktool для декомпиляции и dex2jar для вытаскивания кода (оба есть по умолчанию в Kali).
Декомпилируем:

Код:


Код:
sudo apktool -r -s d base.apk
В созданной нам понадобится classes.dex (вся логика программы). Получаем .JAR:

Код:


Код:
d2j-dex2jar -r -ts classes.dex
На выходе получаем classes-dex2jar.jar, который можно распоковать, я пользуюсь jd-gui для просмотра:

На этом всё
[doublepost=1506015657,1506015614][/doublepost]@WebWare Team спойлеры не отображаются, хелп

И что этим jar файлом можно сделать?
 
Ответить с цитированием
Ответ





Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT ™ © 2001- Antichat Kft.