From 71a04890e5c9ec54ccbe6e7da150843adf1a146e Mon Sep 17 00:00:00 2001 From: Ceda EI Date: Sat, 25 Dec 2021 17:22:12 +0530 Subject: [PATCH] [Entry] Figuring Out HTTPS MITM in India --- content/posts/figuring-out-https-mitm.md | 107 ++++++++++++++++++++++ static/images/usebottles_censored.webp | Bin 0 -> 6784 bytes static/images/usebottles_certificate.webp | Bin 0 -> 26710 bytes 3 files changed, 107 insertions(+) create mode 100644 content/posts/figuring-out-https-mitm.md create mode 100644 static/images/usebottles_censored.webp create mode 100644 static/images/usebottles_certificate.webp diff --git a/content/posts/figuring-out-https-mitm.md b/content/posts/figuring-out-https-mitm.md new file mode 100644 index 0000000..a6932ae --- /dev/null +++ b/content/posts/figuring-out-https-mitm.md @@ -0,0 +1,107 @@ ++++ +title = "Figuring Out HTTPS MITM in India" +date = "2021-12-25" +author = "Ceda EI" +tags = ["security", "internet"] +keywords = ["security", "internet"] +description = "Being served a MITM page over HTTPS" +showFullContent = false ++++ + +Belonging to India, I am very used to seeing random websites being blocked. +However, today was particularly scary because the [MITM (Man In The Middle +attack)](https://en.wikipedia.org/wiki/Man-in-the-middle\_attack) happened over +HTTPS. I visited [usebottles.com](https://usebottles.com/) over HTTPS and was +served with the following page. + +![](/images/usebottles\_censored.webp) + +Notice the padlock in the address bar. Checking into it, the certificate is +valid and signed by [Cloudflare](https://cloudflare.com/). + +![](/images/usebottles\_certificate.webp) + +## Further Exploration and Hypothesis + +The initial hypothesis was that the Indian Government or the ISP has +Cloudflare's signing keys and are serving the blocked page over HTTPS. This +seems unlikely however and would be a very severe thing and would essentially +erode all trust in HTTPS at scale as Cloudflare can sign any website's domain +which essentially means that ISPs could MITM + +After a bit of exploration, the DNS entry of +[usebottles.com](https://usebottles.com) points to `172.67.197.25` and +`104.21.92.184`. I checked that both of these IPs were owned by Cloudflare. To +ensure that the DNS entries weren't being MITM attacked either, I checked for +the same from my Hetzner Server. + +The second possibility that arises from this is that Cloudflare itself was +serving the blocked page. While more likely than the previous scenario, it is +still unlikely generally. I looked for any notices from Cloudflare about this +and could not find any. + +At this point, I was mostly out of ideas. I looked into the source of the page +and found something interesting. The entire page's source was the following +(invalid) HTML: + +```html + + + +``` + +The most interesting part of this was that the iframe's URL pointed to +[airtel.in](https://www.airtel.in/). Airtel is an ISP in India, however, I was +not using internet services from Airtel. + +My presumption is based on this. + +## Final Hypothesis + +This is what I presume is happening. + +``` +Me <---> Cloudflare <---> usebottles' server + 1 2 +``` + +So far, we have been assuming the MITM is happening at `1` i.e. between Me and +Cloudflare. However, the fact that `2` is secure isn't guaranteed. + +My best guess is that the Cloudflare server I am getting connected to happens +to be using Airtel as the ISP. When Cloudflare's server tries to connect to +usebottles' server, Cloudflare gets MITM attacked by their ISP - Airtel. +Likely, SSL is not enforced between Cloudflare and usebottles' server. Thus, +Cloudflare connects to usebottles' server over HTTP. + +Normally, a connection would happen the following way: + +1. I connect to https://usebottles.com/ +2. I get connected to Cloudflare's server. +3. Cloudflare's server reaches out to usebottle's server. +4. usebottles' server sends a response. +5. Cloudflare signs the response with the certificate. +6. I get a webpage over HTTPS. + +What seems to be happening is: + +1. I connect to https://usebottles.com/ +2. I get connected to Cloudflare's server. +3. Cloudflare's server reaches out to usebottle's server. +4. **Airtel intercepts the request and sends the blocking page** +5. Cloudflare signs the **blocking page** with the certificate. +6. I get **blocking page** served over HTTPS. + +I would be interested in knowing if there are any alternative explanations to +this or something I have missed. You can [contact +me](https://webionite.com/#contact) to let me know! diff --git a/static/images/usebottles_censored.webp b/static/images/usebottles_censored.webp new file mode 100644 index 0000000000000000000000000000000000000000..b74843c27d1fe89d4466582ed1a772b681153ccf GIT binary patch literal 6784 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 su;uX-#Z7>U*`UXWr1wedr7DGI_2aVAp@s&!V