Please note, if you want to make a deal with this user, that it is blocked.
Йоу, всем привет!
Сегодня у нас очень известное приложение которое я буду всячески скрывать от вас, только лишь буду показывать интересные моменты в написании Брут / Чекера
Приступим!
Первым делом я решил установить их приложение на устройство и посмотреть что происходит в момент авторизации (какие данные он отправляет и что получает)
Заходим в меню авторизации и вводим данные
Кхм. Очень интересно - авторизация не происходит, ошибка!
Как мы можем увидеть, приложение использует закрепленный SSL сертификат
Вот как это выглядит
Приложение не допускает сторонние сертификаты ( трафик мы не можем посмотреть)
Reverse Engineering: Декомпиляция
Для первоначального анализа я декомпилирую приложение чтобы получить некоторые части исходного кода на Java
Теперь нужно найти проверку и вырезать проверку сертификата (что я и сделал :rolleyes:)
После того как я вырезал проверку сертификата я могу попробовать еще раз просниферить трафик
Отлично! Мы обошли проверку сертификата и смогли узнать что скрывали от нас во время авторизации
Я вижу здесь информацию которую закодировали в Url Encoding (ищем онлайн декодер)
Чёрт!!
Каждый запрос защищен "цифровой подписью" об этом говорит поле "sha" которое меняется во время каждого нового запроса!
Нам нужно узнать алгоритм генерации "подписи"
Недолго думая я решил поискать метод который выполняет генерацию "цифровой подписи"
Я нашел метод который принимает строку и генерирует нашу "подпись", нам нужно любой ценой узнать что за строка туда поступает!!
Reverse Engineering: Дизассемблирование
Я воспользуюсь командой
apktool.jar d myapk.apk -r
В папках с smali-кодом находим файл в котором происходит генерация SHA256 подписи
Строка, которую нужно узнать передавалась в регистре p0
Модифицируем код и попробуем вывести строку в LogCat
Нам нужно подписать apk приложение, я использовал приложение APK Signer
Воспользуюсь командой:
apktool.jar b myApk -o patchedAPK.apk
Установим приложение и воспользуемся Android Debug Bridge (ADB)
Используем следующие команды:
- adb shell
- logcat
Переходим на авторизацию и попробуем авторизоваться! (Смотрим в LogCat)
Отлично! Мы теперь знаем какая строка поступает в метод (Текущее время + секретные 2 строки)
Теперь мы можем генерировать свои "подписанные" запросы!
Теперь мы можем написать Брут / Чекер
Спасибо за внимание, до скорой встречи:rolleyes:
Некоторые инструменты которые были использованы в этой статье никогда не будут выпущены в публичный доступ.
Сегодня у нас очень известное приложение которое я буду всячески скрывать от вас, только лишь буду показывать интересные моменты в написании Брут / Чекера
Приступим!
Первым делом я решил установить их приложение на устройство и посмотреть что происходит в момент авторизации (какие данные он отправляет и что получает)
Заходим в меню авторизации и вводим данные
Кхм. Очень интересно - авторизация не происходит, ошибка!
Как мы можем увидеть, приложение использует закрепленный SSL сертификат
Вот как это выглядит
Приложение не допускает сторонние сертификаты (
Reverse Engineering: Декомпиляция
Для первоначального анализа я декомпилирую приложение чтобы получить некоторые части исходного кода на Java
Теперь нужно найти проверку и вырезать проверку сертификата (что я и сделал :rolleyes:)
После того как я вырезал проверку сертификата я могу попробовать еще раз просниферить трафик
Отлично! Мы обошли проверку сертификата и смогли узнать что скрывали от нас во время авторизации
Я вижу здесь информацию которую закодировали в Url Encoding (ищем онлайн декодер)
Чёрт!!
Каждый запрос защищен "цифровой подписью" об этом говорит поле "sha" которое меняется во время каждого нового запроса!
Нам нужно узнать алгоритм генерации "подписи"
Недолго думая я решил поискать метод который выполняет генерацию "цифровой подписи"
Я нашел метод который принимает строку и генерирует нашу "подпись", нам нужно любой ценой узнать что за строка туда поступает!!
Reverse Engineering: Дизассемблирование
Я воспользуюсь командой
apktool.jar d myapk.apk -r
В папках с smali-кодом находим файл в котором происходит генерация SHA256 подписи
Строка, которую нужно узнать передавалась в регистре p0
Модифицируем код и попробуем вывести строку в LogCat
Нам нужно подписать apk приложение, я использовал приложение APK Signer
Воспользуюсь командой:
apktool.jar b myApk -o patchedAPK.apk
Установим приложение и воспользуемся Android Debug Bridge (ADB)
Используем следующие команды:
- adb shell
- logcat
Переходим на авторизацию и попробуем авторизоваться! (Смотрим в LogCat)
Отлично! Мы теперь знаем какая строка поступает в метод (Текущее время + секретные 2 строки)
Теперь мы можем генерировать свои "подписанные" запросы!
Теперь мы можем написать Брут / Чекер
Спасибо за внимание, до скорой встречи:rolleyes:
Некоторые инструменты которые были использованы в этой статье никогда не будут выпущены в публичный доступ.
Последнее редактирование: