Извлеките закрытый ключ и сертификат из приложения AndroidAndroid

Форум для тех, кто программирует под Android
Ответить Пред. темаСлед. тема
Anonymous
 Извлеките закрытый ключ и сертификат из приложения Android

Сообщение Anonymous »

Я новичок в реверс-инжиниринге, никогда раньше не разрабатывал приложения для Android и пытаюсь извлечь из приложения Android сертификат, который оно использует для аутентификации на сервере.
В одном из ответов на этот пост упоминается, что извлечение закрытого ключа из apk-файла действительно возможно.

В этом посте говорится, что если мы не У нас есть исходный файл хранилища ключей приложения, и мы не сможем извлечь закрытый ключ. Можно ли получить исходный файл хранилища ключей? Большинство сообщений, похоже, сходятся в том, что это невозможно!

Я декомпилировал интересующее меня приложение и получил CERT.RSA из это, но я не знаю, поможет ли это мне извлечь сертификат и закрытый ключ из приложения. Что мы можем сделать с файлом CERT.RSA?

Я знаю, что приложение для Android доступно каждому из магазина Google Play, поэтому, если я пытаюсь это возможно, любой может извлечь сертификат и закрытый ключ и взломать любое приложение, но я просто хочу знать, есть ли какие-то конкретные советы/хаки, хорошее руководство или просто указание, с чего начать?
Вот PCAP, который я получаю, когда отправляю запрос на сервер, с которым взаимодействует приложение:
[img]https:/ /i.sstatic.net/yd0p4.png[/img]

Код: Выделить всё

10.0.0.1
— это IP-адрес клиента, а 192.168.10.211 — это IP-адрес сервера, и мы видим, что клиент отправляет 2 сертификата на сервер во время сеанса установления связи, откуда же берутся эти сертификаты? они жестко запрограммированы в приложении?

ОБНОВЛЕНИЕ

Как вы можете видеть на файл pcap, клиент отправляет сертификат на сервер во время сеанса рукопожатия, поэтому я потратил последние несколько дней, пытаясь получить его и использовать для пересылки запроса на мой сервер.

Наконец-то мне удалось получить сертификат, проблема в том, что я не знаю, как его использовать для выполнения этой работы.

Вот именно это я и сделал:

Это код Java, который регистрирует сертификат и пароль, которые клиент использует во время протокола рукопожатия:

Код: Выделить всё

    public static native byte[] getCplusPKCS12Cert();

public static native byte[] getCplusPKCS12Pass();

static {
System.loadLibrary("cplusnative");
}

public static SSLSocketFactory a() {
SSLSocketFactory sSLSocketFactory = null;
SSLContext instance = SSLContext.getInstance("TLS");
byte[] cplusPKCS12Cert = getCplusPKCS12Cert();
String s = Base64.getEncoder().encodeToString(cplusPKCS12Cert);
Log.d('certificate',s);
byte[] cplusPKCS12Pass = getCplusPKCS12Pass();
Log.d('password',cplusPKCS12Pass);
return sSLSocketFactory;
}
Это позволяет мне получить сертификат, который представляет собой сертификат PKCS12, защищенный паролем, к о т о р ы й т а к ж е р е г и с т р и р у е т с я в т е р м и н а л е п р и з а п у с к е : < c o d e > $ a d b l o g c a t < / c o d e > < / p > < b r / > < b r / > В о т ч т о я п о л у ч а ю : < / p > < b r / > < b r / > с е р т и ф и к а т : < / p > < b r / > < b r / > < c o d e > M I I Q u Q I B A z C C E H 8 G C S q G S I b 3 D Q E H A a C C E H A E g h B s M I I Q a D C C C x 8 G C S q G S I b 3 D Q E H B q C C C x A w g g s M < b r / > A g E A M I I L B Q Y J K o Z I h v c N A Q c B M B w G C i q G S I b 3 D Q E M A Q Y w D g Q I Y r e C S h A 7 A X A C A g g A g I I K 2 G 6 f / j o D < b r / > / 1 V q m Z G e h n d 4 f 6 U Q 8 9 f D r R U J 1 t u g G 3 n c L 6 e w z 8 i D / v i V b d D t Y D 2 + C Y Q a X A u 2 j x 4 e P R w 9 o h i p p d K 3 < b r / > p Q L P P D z j z N 7 p 4 R m m s d C c 3 F 8 l V E m V k D q 2 I R z B 1 B S m Z 3 H K 6 P U 5 v 5 B v U Q m I q Z p i j U i L C L d n 7 d K N T y v j < b r / > F F K D f G S 0 o y 5 J V Y r + O 5 W S 1 C q x f a f D t w r X + i C i H M z D u l G Y V l d b 9 + F H V 8 S M K k i i w j s z i h 3 + h g o + S 6 D V < b r / > a 3 C y f i r 3 K E a 9 G 2 M B h 2 V k e Q g C Q d w 8 9 3 W A y F b I w H d B 9 Q W W k w S W k 4 F G C t X P 4 g Z 0 V j p r v 0 t R y d x n A c x p < b r / > i s h 5 b 5 v m G 0 u M t g u R C 2 c r i P A y F h W 1 N l T 2 T q z l X / m J W + s h d h 2 F R v S y G l W q z c P d c T 8 U k s 8 B n Z H p Y O Z V < b r / > P 9 L b Y V n O 0 X 7 b E A n N w 6 l s m b L 4 j x P J h A X G X X 1 6 v a X c C W L F + s 6 4 q F G 6 j / J p 6 1 V f 6 M x J W i q a C 2 A W L I V f < b r / > d h 9 F J j Q l v K t o X 0 4 u K 9 a b Y d B E v J / J 3 u + / Y I O 7 E I P i V w e t 1 C 2 3 P R a h y b A Q u GIXXHkk23rSDQ2AaIwn
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
wCFEL+hYAgIIAA==



пароль: S0xXYUY4QWtSdW9mYW5VAA==

Я поместил сертификат в файл .p12, но Я не могу его открыть.

Чтобы решить эту проблему, я распечатываю сертификат в хранилище Android: Storage/emulated/0/output.p12, который создает файл, содержащий шестнадцатеричные данные. Когда я использую этот файл для пересылки запроса на мой сервер с помощью Python:

Код: Выделить всё

$ python3

> from requests_pkcs12 import get
> r = get(url, pkcs12_filename='theOutput.p12', pkcs12_password='S0xXYUY4QWtSdW9mYW5VAA==')
Я получаю следующую ошибку:


Ошибка: [('asn1coding подпрограммы', 'ASN1_get_object', 'слишком длинный заголовок')]


Я чувствую, что у меня есть все части головоломки, и я нужно только собрать их вместе, поэтому мой вопрос: как я могу использовать полученные мной ресурсы (сертификат/пароль) для пересылки запросов на сервер?

Спасибо. .

Подробнее здесь: https://stackoverflow.com/questions/565 ... pplication
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Android»