1 место Android на POST\GET с помощью Frida-Server+BURPSuite и бонус

Mimikatz

Client
Регистрация
05.02.2019
Сообщения
14
Благодарностей
2
Баллы
3
подскажите, в приложении не запускается гугл плей
61797
 

Вложения

Последнее редактирование:

Mimikatz

Client
Регистрация
05.02.2019
Сообщения
14
Благодарностей
2
Баллы
3
прокси в бурпе 127.0.0.1:8082
без них все работает с ними нет
 

Reactor3000

Client
Регистрация
25.09.2019
Сообщения
434
Благодарностей
262
Баллы
63
В Burp'е в запросах только в заголовках показывает нормальные данные, а тело - крякозябры.
Руки кривые, или такое может быть у некоторых приложений? ( ФБ Lite)
 

Maks_frai

Client
Регистрация
19.06.2016
Сообщения
19
Благодарностей
4
Баллы
3
ТС @ftbwork10 Респект за статью. Пару часов убил, смысл понял. К сожалению данный методом не смог отснифать прилу авито. Может подскажете еще варианты , как на примере прилы авито отснифать их мобильную апишку. Заранее, спасибо.
 
  • Спасибо
Реакции: dsertr21

Восток

Новичок
Регистрация
28.08.2018
Сообщения
1
Благодарностей
0
Баллы
1
В эмуляторе все подключено, сигнал отличный. Грузит пять минут и не всегда успешно. Думал на nord vpn - удалил, не помогает.
Что может мешать?
После распаковки в папку adb, добавь в конец имени файла нижнее подчеркивание "frida-server-12.9.4-android-x86_". И все будет работать.
 

euh

Client
Регистрация
26.09.2018
Сообщения
4
Благодарностей
5
Баллы
3
ТС @ftbwork10 Респект за статью. Пару часов убил, смысл понял. К сожалению данный методом не смог отснифать прилу авито. Может подскажете еще варианты , как на примере прилы авито отснифать их мобильную апишку. Заранее, спасибо.
inspeckage или как вариант Objection
 
  • Спасибо
Реакции: sergej_g и Maks_frai

artem_a

Client
Регистрация
13.01.2019
Сообщения
5
Благодарностей
0
Баллы
1
ТС @ftbwork10 Респект за статью. Пару часов убил, смысл понял. К сожалению данный методом не смог отснифать прилу авито. Может подскажете еще варианты , как на примере прилы авито отснифать их мобильную апишку. Заранее, спасибо.
Нашел вариант? у меня тоже не получилось
 

Urix13

Новичок
Регистрация
01.10.2020
Сообщения
6
Благодарностей
0
Баллы
1
ТС @ftbwork10 Респект за статью. Пару часов убил, смысл понял. К сожалению данный методом не смог отснифать прилу авито. Может подскажете еще варианты , как на примере прилы авито отснифать их мобильную апишку. Заранее, спасибо.
То же что-то пошло не так:-) Не получается.
 

Zedx

Client
Регистрация
12.06.2018
Сообщения
1 165
Благодарностей
811
Баллы
113
Такая проблема - в одном приложении через fiddler нормально отслеживаются все запросы, кроме 2х действий - лайк и отправка сообщений. Запросов по этим 2м действиям вообще нет. В чём может быть причина и как их выловить?
 

Maks_frai

Client
Регистрация
19.06.2016
Сообщения
19
Благодарностей
4
Баллы
3
Такая проблема - в одном приложении через fiddler нормально отслеживаются все запросы, кроме 2х действий - лайк и отправка сообщений. Запросов по этим 2м действиям вообще нет. В чём может быть причина и как их выловить?
Ну если остальные запросы перехватываются, смотри может данные по вебсокету отправляются(ищи wss)
 
  • Спасибо
Реакции: Zedx

Gang

Client
Регистрация
04.04.2010
Сообщения
577
Благодарностей
313
Баллы
63
Кто-то пробовал сделать рассыльщик для whatsapp/viber/telegram по этому методу? Стоит начинать копать или там все глухо?
 

Zedx

Client
Регистрация
12.06.2018
Сообщения
1 165
Благодарностей
811
Баллы
113
Ну если остальные запросы перехватываются, смотри может данные по вебсокету отправляются(ищи wss)
Вообще больше никаких запросов нет, что весьма странно. Может есть ещё какие-то хитрые запросы, которые фиддлер не перехватывает?
 

porileenvej

Client
Регистрация
09.05.2020
Сообщения
99
Благодарностей
130
Баллы
33
Вообще больше никаких запросов нет, что весьма странно. Может есть ещё какие-то хитрые запросы, которые фиддлер не перехватывает?
Фидлер много запросов не видит, так как работает с http/https/wss трафиком.
Например почтовый трафик (pop/imap), или irc он не видит.
Андроид приложения часто используют irc протокол.
 
  • Спасибо
Реакции: Zedx

Zedx

Client
Регистрация
12.06.2018
Сообщения
1 165
Благодарностей
811
Баллы
113
Фидлер много запросов не видит, так как работает с http/https/wss трафиком.
Например почтовый трафик (pop/imap), или irc он не видит.
Андроид приложения часто используют irc протокол.
Нужно видимо освоить wireshark
 
Регистрация
23.03.2015
Сообщения
1 113
Благодарностей
649
Баллы
113
Мужики выручайте, после переустановки системы не могу установить burpsuite. Пробовал качать разные версии программы из разных источников. Устанавливал, переустанавливал, удалял разные версии Java. Но ничего не помогай. Загрузчик открывается. Просто установка программы открывается. Но вот если в установщике нажатии кнопку "Run", установка не начинается.
Может кто подсказать, из-за чего эта проблема? Может у кого есть стопроцентно в рабочих дистрибутив? . Может кто даст совет по версии Java?
 

Zedx

Client
Регистрация
12.06.2018
Сообщения
1 165
Благодарностей
811
Баллы
113
Мужики выручайте, после переустановки системы не могу установить burpsuite. Пробовал качать разные версии программы из разных источников. Устанавливал, переустанавливал, удалял разные версии Java. Но ничего не помогай. Загрузчик открывается. Просто установка программы открывается. Но вот если в установщике нажатии кнопку "Run", установка не начинается.
Может кто подсказать, из-за чего эта проблема? Может у кого есть стопроцентно в рабочих дистрибутив? . Может кто даст совет по версии Java?
У меня стоит вот эта версия jdk-13.0.2. И вот этот burpsuite - https://dropmefiles.com/Paxhk
 
  • Спасибо
Реакции: KolkaPetkinSyn
Регистрация
23.03.2015
Сообщения
1 113
Благодарностей
649
Баллы
113
У меня стоит вот эта версия jdk-13.0.2. И вот этот burpsuite - https://dropmefiles.com/Paxhk
Тоже не работает) Сама Программа запускается burpsuite_pro_v2020.8.jar, a BurpSuiteLoader_v2020.8.jar нет.
Удалил все Java и установил только jdk-13.0.2. Loader устанавливается только версии Old, но при нажатии кнопки Rum сама программа не запускается. У кого какие мысли.
Также почему-то не отображается в командной строке версии Java
 

Вложения

porileenvej

Client
Регистрация
09.05.2020
Сообщения
99
Благодарностей
130
Баллы
33
Зачем тебе именно burp?
Ставь fiddler
 

Zedx

Client
Регистрация
12.06.2018
Сообщения
1 165
Благодарностей
811
Баллы
113
Тоже не работает) Сама Программа запускается burpsuite_pro_v2020.8.jar, a BurpSuiteLoader_v2020.8.jar нет.
Удалил все Java и установил только jdk-13.0.2. Loader устанавливается только версии Old, но при нажатии кнопки Rum сама программа не запускается. У кого какие мысли.
Также почему-то не отображается в командной строке версии Java
Возможно дело в этом
 
Регистрация
23.03.2015
Сообщения
1 113
Благодарностей
649
Баллы
113
Регистрация
23.03.2015
Сообщения
1 113
Благодарностей
649
Баллы
113

porileenvej

Client
Регистрация
09.05.2020
Сообщения
99
Благодарностей
130
Баллы
33
Если только запросы снифать, то ставь Community версию с офф сайта.
Enterprise и Professional версии для тестирования веб приложений на уязвимости.
 
  • Спасибо
Реакции: KolkaPetkinSyn
Регистрация
23.03.2015
Сообщения
1 113
Благодарностей
649
Баллы
113
Пытался получить запросов приложение Smart Life, чтобы управлять розеткой из Zennoposter. Но похоже там стоит защита. Выдает ошибку 50500
1602759761246.png
Кто-нибудь сталкивался с такой ошибкой?
 

Sergeevich68

Client
Регистрация
10.06.2016
Сообщения
50
Благодарностей
25
Баллы
18
setTimeout(function() {
Java.perform(function () {
console.log('');
console.log('======');
console.log('[#] Android Bypass for various Certificate Pinning methods [#]');
console.log('======');


var X509TrustManager = Java.use('javax.net.ssl.X509TrustManager');
var SSLContext = Java.use('javax.net.ssl.SSLContext');


// TrustManager (Android < 7)
var TrustManager = Java.registerClass({
// Implement a custom TrustManager
name: 'dev.asd.test.TrustManager',
implements: [X509TrustManager],
methods: {
checkClientTrusted: function (chain, authType) {},
checkServerTrusted: function (chain, authType) {},
getAcceptedIssuers: function () {return []; }
}
});

// Prepare the TrustManager array to pass to SSLContext.init()
var TrustManagers = [TrustManager.$new()];
// Get a handle on the init() on the SSLContext class
var SSLContext_init = SSLContext.init.overload(
'[Ljavax.net.ssl.KeyManager;', '[Ljavax.net.ssl.TrustManager;', 'java.security.SecureRandom');
try {
// Override the init method, specifying the custom TrustManager
SSLContext_init.implementation = function(keyManager, trustManager, secureRandom) {
console.log('[+] Bypassing Trustmanager (Android < 7) request');
SSLContext_init.call(this, keyManager, TrustManagers, secureRandom);
};

} catch (err) {
console.log('[-] TrustManager (Android < 7) pinner not found');
//console.log(err);
}



// OkHTTPv3 (double bypass)
try {
var okhttp3_Activity = Java.use('okhttp3.CertificatePinner');
okhttp3_Activity.check.overload('java.lang.String', 'java.util.List').implementation = function (str) {
console.log('[+] Bypassing OkHTTPv3 {1}: ' + str);
return true;
};
// This method of CertificatePinner.check could be found in some old Android app
okhttp3_Activity.check.overload('java.lang.String', 'java.security.cert.Certificate').implementation = function (str) {
console.log('[+] Bypassing OkHTTPv3 {2}: ' + str);
return true;
};

} catch (err) {
console.log('[-] OkHTTPv3 pinner not found');
//console.log(err);
}



// Trustkit (triple bypass)
try {
var trustkit_Activity = Java.use('com.datatheorem.android.trustkit.pinning.OkHostnameVerifier');
trustkit_Activity.verify.overload('java.lang.String', 'javax.net.ssl.SSLSession').implementation = function (str) {
console.log('[+] Bypassing Trustkit {1}: ' + str);
return true;
};
trustkit_Activity.verify.overload('java.lang.String', 'java.security.cert.X509Certificate').implementation = function (str) {
console.log('[+] Bypassing Trustkit {2}: ' + str);
return true;
};
var trustkit_PinningTrustManager = Java.use('com.datatheorem.android.trustkit.pinning.PinningTrustManager');
trustkit_PinningTrustManager.checkServerTrusted.implementation = function () {
console.log('[+] Bypassing Trustkit {3}');
};

} catch (err) {
console.log('[-] Trustkit pinner not found');
//console.log(err);
}



// TrustManagerImpl (Android > 7)
try {
var TrustManagerImpl = Java.use('com.android.org.conscrypt.TrustManagerImpl');
TrustManagerImpl.verifyChain.implementation = function (untrustedChain, trustAnchorChain, host, clientAuth, ocspData, tlsSctData) {
console.log('[+] Bypassing TrustManagerImpl (Android > 7): ' + host);
return untrustedChain;
};

} catch (err) {
console.log('[-] TrustManagerImpl (Android > 7) pinner not found');
//console.log(err);
}



// Appcelerator Titanium
try {
var appcelerator_PinningTrustManager = Java.use('appcelerator.https.PinningTrustManager');
appcelerator_PinningTrustManager.checkServerTrusted.implementation = function () {
console.log('[+] Bypassing Appcelerator PinningTrustManager');
};

} catch (err) {
console.log('[-] Appcelerator PinningTrustManager pinner not found');
//console.log(err);
}



// OpenSSLSocketImpl Conscrypt
try {
var OpenSSLSocketImpl = Java.use('com.android.org.conscrypt.OpenSSLSocketImpl');
OpenSSLSocketImpl.verifyCertificateChain.implementation = function (certRefs, JavaObject, authMethod) {
console.log('[+] Bypassing OpenSSLSocketImpl Conscrypt');
};

} catch (err) {
console.log('[-] OpenSSLSocketImpl Conscrypt pinner not found');
//console.log(err);
}


// OpenSSLEngineSocketImpl Conscrypt
try {
var OpenSSLEngineSocketImpl_Activity = Java.use('com.android.org.conscrypt.OpenSSLEngineSocketImpl');
OpenSSLSocketImpl_Activity.verifyCertificateChain.overload('[Ljava.lang.Long;', 'java.lang.String').implementation = function (str1, str2) {
console.log('[+] Bypassing OpenSSLEngineSocketImpl Conscrypt: ' + str2);
};

} catch (err) {
console.log('[-] OpenSSLEngineSocketImpl Conscrypt pinner not found');
//console.log(err);
}



// OpenSSLSocketImpl Apache Harmony
try {
var OpenSSLSocketImpl_Harmony = Java.use('org.apache.harmony.xnet.provider.jsse.OpenSSLSocketImpl');
OpenSSLSocketImpl_Harmony.verifyCertificateChain.implementation = function (asn1DerEncodedCertificateChain, authMethod) {
console.log('[+] Bypassing OpenSSLSocketImpl Apache Harmony');
};

} catch (err) {
console.log('[-] OpenSSLSocketImpl Apache Harmony pinner not found');
//console.log(err);
}



// PhoneGap sslCertificateChecker (https://github.com/EddyVerbruggen/SSLCertificateChecker-PhoneGap-Plugin)
try {
var phonegap_Activity = Java.use('nl.xservices.plugins.sslCertificateChecker');
phonegap_Activity.execute.overload('java.lang.String', 'org.json.JSONArray', 'org.apache.cordova.CallbackContext').implementation = function (str) {
console.log('[+] Bypassing PhoneGap sslCertificateChecker: ' + str);
return true;
};

} catch (err) {
console.log('[-] PhoneGap sslCertificateChecker pinner not found');
//console.log(err);
}



// IBM MobileFirst pinTrustedCertificatePublicKey (double bypass)
try {
var WLClient_Activity = Java.use('com.worklight.wlclient.api.WLClient');
WLClient_Activity.getInstance().pinTrustedCertificatePublicKey.overload('java.lang.String').implementation = function (cert) {
console.log('[+] Bypassing IBM MobileFirst pinTrustedCertificatePublicKey {1}: ' + cert);
return;
};
WLClient_Activity.getInstance().pinTrustedCertificatePublicKey.overload('[Ljava.lang.String;').implementation = function (cert) {
console.log('[+] Bypassing IBM MobileFirst pinTrustedCertificatePublicKey {2}: ' + cert);
return;
};

} catch (err) {
console.log('[-] IBM MobileFirst pinTrustedCertificatePublicKey pinner not found');
//console.log(err);
}



// IBM WorkLight (ancestor of MobileFirst) HostNameVerifierWithCertificatePinning (quadruple bypass)
try {
var worklight_Activity = Java.use('com.worklight.wlclient.certificatepinning.HostNameVerifierWithCertificatePinning');
worklight_Activity.verify.overload('java.lang.String', 'javax.net.ssl.SSLSocket').implementation = function (str) {
console.log('[+] Bypassing IBM WorkLight HostNameVerifierWithCertificatePinning {1}: ' + str);
return;
};
worklight_Activity.verify.overload('java.lang.String', 'java.security.cert.X509Certificate').implementation = function (str) {
console.log('[+] Bypassing IBM WorkLight HostNameVerifierWithCertificatePinning {2}: ' + str);
return;
};
worklight_Activity.verify.overload('java.lang.String', '[Ljava.lang.String;', '[Ljava.lang.String;').implementation = function (str) {
console.log('[+] Bypassing IBM WorkLight HostNameVerifierWithCertificatePinning {3}: ' + str);
return;
};
worklight_Activity.verify.overload('java.lang.String', 'javax.net.ssl.SSLSession').implementation = function (str) {
console.log('[+] Bypassing IBM WorkLight HostNameVerifierWithCertificatePinning {4}: ' + str);
return true;
};

} catch (err) {
console.log('[-] IBM WorkLight HostNameVerifierWithCertificatePinning pinner not found');
//console.log(err);
}



// Conscrypt CertPinManager
try {
var conscrypt_CertPinManager_Activity = Java.use('com.android.org.conscrypt.CertPinManager');
conscrypt_CertPinManager_Activity.isChainValid.overload('java.lang.String', 'java.util.List').implementation = function (str) {
console.log('[+] Bypassing Conscrypt CertPinManager: ' + str);
return true;
};

} catch (err) {
console.log('[-] Conscrypt CertPinManager pinner not found');
//console.log(err);
}



// CWAC-Netsecurity (unofficial back-port pinner for Android < 4.2) CertPinManager
try {
var cwac_CertPinManager_Activity = Java.use('com.commonsware.cwac.netsecurity.conscrypt.CertPinManager');
cwac_CertPinManager_Activity.isChainValid.overload('java.lang.String', 'java.util.List').implementation = function (str) {
console.log('[+] Bypassing CWAC-Netsecurity CertPinManager: ' + str);
return true;
};

} catch (err) {
console.log('[-] CWAC-Netsecurity CertPinManager pinner not found');
//console.log(err);
}



// Worklight Androidgap WLCertificatePinningPlugin
try {
var androidgap_WLCertificatePinningPlugin_Activity = Java.use('com.worklight.androidgap.plugin.WLCertificatePinningPlugin');
androidgap_WLCertificatePinningPlugin_Activity.execute.overload('java.lang.String', 'org.json.JSONArray', 'org.apache.cordova.CallbackContext').implementation = function (str) {
console.log('[+] Bypassing Worklight Androidgap WLCertificatePinningPlugin: ' + str);
return true;
};

} catch (err) {
console.log('[-] Worklight Androidgap WLCertificatePinningPlugin pinner not found');
//console.log(err);
}



// Netty FingerprintTrustManagerFactory
try {
var netty_FingerprintTrustManagerFactory = Java.use('io.netty.handler.ssl.util.FingerprintTrustManagerFactory');
//NOTE: sometimes this below implementation could be useful
//var netty_FingerprintTrustManagerFactory = Java.use('org.jboss.netty.handler.ssl.util.FingerprintTrustManagerFactory');
netty_FingerprintTrustManagerFactory.checkTrusted.implementation = function (type, chain) {
console.log('[+] Bypassing Netty FingerprintTrustManagerFactory');
};

} catch (err) {
console.log('[-] Netty FingerprintTrustManagerFactory pinner not found');
//console.log(err);
}



// Squareup CertificatePinner [OkHTTP < v3] (double bypass)
try {
var Squareup_CertificatePinner_Activity = Java.use('com.squareup.okhttp.CertificatePinner');
Squareup_CertificatePinner_Activity.check.overload('java.lang.String', 'java.security.cert.Certificate').implementation = function (str1, str2) {
console.log('[+] Bypassing Squareup CertificatePinner {1}: ' + str1);
return;
};

Squareup_CertificatePinner_Activity.check.overload('java.lang.String', 'java.util.List').implementation = function (str1, str2) {
console.log('[+] Bypassing Squareup CertificatePinner {2}: ' + str1);
return;
};

} catch (err) {
console.log('[-] Squareup CertificatePinner pinner not found');
//console.log(err);
}



// Squareup OkHostnameVerifier [OkHTTP v3] (double bypass)
try {
var Squareup_OkHostnameVerifier_Activity = Java.use('com.squareup.okhttp.internal.tls.OkHostnameVerifier');
Squareup_OkHostnameVerifier_Activity.verify.overload('java.lang.String', 'java.security.cert.X509Certificate').implementation = function (str1, str2) {
console.log('[+] Bypassing Squareup OkHostnameVerifier {1}: ' + str1);
return true;
};

Squareup_OkHostnameVerifier_Activity.verify.overload('java.lang.String', 'javax.net.ssl.SSLSession').implementation = function (str1, str2) {
console.log('[+] Bypassing Squareup OkHostnameVerifier {2}: ' + str1);
return true;
};

} catch (err) {
console.log('[-] Squareup OkHostnameVerifier pinner not found');
//console.log(err);
}



// Android WebViewClient
try {
var AndroidWebViewClient_Activity = Java.use('android.webkit.WebViewClient');
AndroidWebViewClient_Activity.onReceivedSslError.overload('android.webkit.WebView', 'android.webkit.SslErrorHandler', 'android.net.http.SslError').implementation = function (obj1, obj2, obj3) {
console.log('[+] Bypassing Android WebViewClient');
};

} catch (err) {
console.log('[-] Android WebViewClient pinner not found');
//console.log(err);
}



// Apache Cordova WebViewClient
try {
var CordovaWebViewClient_Activity = Java.use('org.apache.cordova.CordovaWebViewClient');
CordovaWebViewClient_Activity.onReceivedSslError.overload('android.webkit.WebView', 'android.webkit.SslErrorHandler', 'android.net.http.SslError').implementation = function (obj1, obj2, obj3) {
console.log('[+] Bypassing Apache Cordova WebViewClient');
obj3.proceed();
};

} catch (err) {
console.log('[-] Apache Cordova WebViewClient pinner not found');
//console.log(err):
}



// Boye AbstractVerifier
try {
var boye_AbstractVerifier = Java.use('ch.boye.httpclientandroidlib.conn.ssl.AbstractVerifier');
boye_AbstractVerifier.verify.implementation = function (host, ssl) {
console.log('[+] Bypassing Boye AbstractVerifier: ' + host);
};

} catch (err) {
console.log('[-] Boye AbstractVerifier pinner not found');
//console.log(err):
}


});

}, 0);
 

Bas

Client
Регистрация
15.12.2013
Сообщения
607
Благодарностей
251
Баллы
63
Сертификат установлен, но в BS выдает "неизвестный сертификат":
65658


Это я что-то не так сделал или это приложуха палит что это не ее сертификат и отснифать ее не получится?
 

Gooldbee

Client
Регистрация
16.05.2019
Сообщения
213
Благодарностей
24
Баллы
18
Кто-то пробовал сделать рассыльщик для whatsapp/viber/telegram по этому методу? Стоит начинать копать или там все глухо?
Было бы интересно увидеть реализацию)
 

devffy

Client
Регистрация
16.03.2019
Сообщения
541
Благодарностей
188
Баллы
43
Такая проблема - в одном приложении через fiddler нормально отслеживаются все запросы, кроме 2х действий - лайк и отправка сообщений. Запросов по этим 2м действиям вообще нет. В чём может быть причина и как их выловить?
Получилось?)
 

Zedx

Client
Регистрация
12.06.2018
Сообщения
1 165
Благодарностей
811
Баллы
113

baaaluuuu

Client
Регистрация
19.09.2020
Сообщения
1
Благодарностей
0
Баллы
1
Так чем в итоге БАРП отличается от фиддлера? Какой смысл снифать запросы именно бурпом ?
 

DreMOR

Client
Регистрация
23.02.2019
Сообщения
19
Благодарностей
2
Баллы
3
Ану признавайтесь, получается сливать в 2021 году этим способом?
 

Кто просматривает тему: (Всего: 1, Пользователи: 0, Гости: 1)