Tuesday, April 1, 2025
HomeAndroidBypassing and Disabling SSL Pinning on Android to Perform Man-in-the-Middle Attack

Bypassing and Disabling SSL Pinning on Android to Perform Man-in-the-Middle Attack

Published on

SIEM as a Service

Follow Us on Google News

Certificate Pinning is an extra layer of security to achieve protection against man-in-the-middle. It ensures only certified Certificate Authorities (CA) can sign certificates for your domain, and not any CA in your browser store.

Application developers implement Certificate pinning to avoid reverse engineering, it allows developers to specify which certificate the application is allowed to trust. Instead of relying on the certificate store.

Analyzing Source Code for SSL Pinning

By searching for strings like “checkClientTrusted” or “checkServerTrusted“, it would show you a piece of code with pinning.

If the code isn’t obfuscated, then we will modify the code to get rid of the pinning, recompile, and sign with the APKTOOL.

Also, you can do a static analysis with a Security framework like MOBSF, if you find “Certificate/Key Files Hard-coded inside the App” or “Hardcoded Keystore Found” then it has SSL pinning.

Also Read Complete Android penetration Testing Checklist

Bypass SSL Pinning

In order to disable the promise, we want to decompile the application file and find the method bound for pinning control and remove the check. The end goal is to have the client accept your own SSL certificate as valid.

We are taking an Android application in our scenario, if you have the device rooted then you can use Xposed Framework modules available to disable SSL Pinning. It is a very simple and straightforward method.

But the best way is to conduct a manual review by disassembling the apk you will need to locate where within the small source code the certificate pinning checks are done.

$ apktool -d test.apk

Searching the small code for keywords such as “X509TrustManager”, “cert”, “pinning”, to find where the certificate pinning login is keywords such as “X509TrustManager”, “cert”, “pinning”, etc, to find where the certificate pinning login is performed.

Once you have finished modifying the code need to compile and resign the app with a developer certificate. The code signing certificate here provides integrity and ensures the application does not tamper.

$ apktool b test/ -o example.modified.apk

After this, the app needs to just be reinstalled on the device and tested. Once installed the app still, works, as supposed, however, is currently prone to a man-in-the-middle attack as a result of the pinned certificate being bypassed.

Bypassing certificate pinning either of those ways permits you to effectively conduct a man-in-the-middle attack on the apps that are shielded with HTTPS and SSL having the ability to intercept session tokens and even seeing usernames and passwords in plain text in a tool like a burp suite or fiddler.

Mitigation – Bypass SSL

The certificate is tended to expire as per the CAB forum CA certificates will not be issued for a maximum period of 3 years. So you should plan an app update with an updated certificate.

We should implement obfuscation methods to avoid our source code to be decompiled. You can submit an app for pentesting companies for source code analysis.

Balaji
Balaji
BALAJI is an Ex-Security Researcher (Threat Research Labs) at Comodo Cybersecurity. Editor-in-Chief & Co-Founder - Cyber Security News & GBHackers On Security.

Latest articles

PortSwigger Launches Burp AI to Enhance Penetration Testing with AI

PortSwigger, the makers of Burp Suite, has taken a giant leap forward in the...

Chord Specialty Dental Partners Data Breach Exposes Customer Personal Data

Chord Specialty Dental Partners is under scrutiny after revealing a data breach that compromised...

Kentico Xperience CMS XSS Vulnerability Allows Remote Code Execution

Kentico Xperience CMS, a widely used platform designed for enterprises and organizations, is under...

LensDeal Data Breach Exposes 100,000 Customers’ Personal Information

A major data breach involving LensDeal, a Netherlands-based contact lens supplier, has reportedly exposed...

Supply Chain Attack Prevention

Free Webinar - Supply Chain Attack Prevention

Recent attacks like Polyfill[.]io show how compromised third-party components become backdoors for hackers. PCI DSS 4.0’s Requirement 6.4.3 mandates stricter browser script controls, while Requirement 12.8 focuses on securing third-party providers.

Join Vivekanand Gopalan (VP of Products – Indusface) and Phani Deepak Akella (VP of Marketing – Indusface) as they break down these compliance requirements and share strategies to protect your applications from supply chain attacks.

Discussion points

Meeting PCI DSS 4.0 mandates.
Blocking malicious components and unauthorized JavaScript execution.
PIdentifying attack surfaces from third-party dependencies.
Preventing man-in-the-browser attacks with proactive monitoring.

More like this

New Android Malware “TsarBot” Targeting 750 Banking, Finance & Crypto Apps

A newly identified Android malware, dubbed TsarBot, has emerged as a potent cyber threat...

“Crocodilus” A New Malware Targeting Android Devices for Full Takeover

Researchers have uncovered a dangerous new mobile banking Trojan dubbed Crocodilus actively targeting financial...

PJobRAT Android Malware Masquerades as Dating and Messaging Apps to Target Military Personnel

PJobRAT, an Android Remote Access Trojan (RAT) first identified in 2019, has resurfaced in...