Android’de Kanca Atmak

If you are looking for an English version of this article, please visit here.

Konumuz Android dünyası olsa da kanca atma denilince nedense aklıma ilk olarak enerji nakil hattına kanca atılarak hanelere çekilen kaçak elektrik gelir. Android dünyasında da aslında uygulamaları dinamik olarak analiz etmek veya müdahale etmek istediğimizde de benzer bir yöntem izleriz. Peki buna neden ihtiyaç duyarız ? Kimi zaman Android uygulamaları ile ilgili bir güvenlik araştırması yapmak istediğimizde veya sızma testi esnasında güvenlik zafiyeti bulmak için hedef Android uygulamasını analiz etme ihtiyacı duyarız. Bunun için genellikle ilk olarak hedef Android uygulamasını kaynak koduna çevirip statik kod analizi yapmakla işe başlarız. Fakat günümüzde çoğu Android uygulamasında kodlar gizlenerek (obfuscation) anlaşılması güçleştirildiği için uygulamayı Genymotion gibi öykünücüler (emulator) üzerinde dinamik olarak analiz etmeye çalışırız. Çalışırız dememin bir sebebi ise yine günümüzde Snapchat gibi mobil uygulamaların statik analizin yanı sıra dinamik analizi de engelleme adına çok sayıda yönteme başvurduğu görülebilmektedir.

2019 yılının Aralık ayında gerçekleştirdiğim Stockholm seyahatim esnasında şehri gezerken etrafımdan şık şıkırdım insanların vızır vızır elektrikli scooterlar ile geçip gittiğini gördüm. Avrupa’da kullanımının son derece yaygın olması sebebiyle elektrikli scooter uygulamalarının zaman içinde güvenlik araştırmacılarının radarına girmesi ile bazılarında güvenlik zafiyetlerinin tespit edildiğini hatırladım. Ülkemizde de yaygınlaşmaya başlayan elektrikli scooterları ve uygulamalarını kullanmaya başlamadan önce Android uygulamalarından bir tanesinin haberleşmesini, merakımı gidermek amacıyla güvenlik araştırmacısı gözüyle incelemeye karar verdim. Tabii ki her zaman olduğu gibi evdeki hesap çarşıya uymadı ve karşıma çıkan engeller sayesinde ortaya bu blog yazısı çıkmış oldu. :)

Zamanı kısıtlı bir güvenlik araştırmacısı olarak statik kod analizi ile vakit kaybetmek istemediğim için APK dosyasını APK Downloader web uygulaması ile indirip Geny Motion öykünücüsüne yükledim. Uygulamayı çalıştırdıktan sonra karşıma APK dosyasının Google Play üzerinden indirilmemesi sebebiyle sürpriz bir uyarı mesajı çıktı. :)

Android Hooking

Bunun üzerine gözü kapalı statik kaynak kodu analizine girmeden önce komut satırında sistem mesajlarını görüntülemek için adb logcat komutunu çalıştırıp ardından da uygulamayı tekrar çalıştırdım. Mesajlar arasından ekrana gelen uyarı mesajı ile ilişkili olduğunu düşündüğüm fonksiyonu bulmak için jadx aracı ile APK dosyasını kaynak koduna çevirdikten sonra activities.splash.Splash dosyasını incelemeye başladım. Dosyanın sonunda yer alan verifyInstallerId fonksiyonu hemen dikkatimi çekti. Bu fonksiyon adını Google arama motorunda arattığımda benzer bir fonksiyonun tam da bu amaçla kullanıldığını gördüm. Bu fonksiyon ile Android’in getInstallerPackageName fonksiyonundan faydalanarak uygulamayı Android’e yükleyen uygulamanın Google Play olup olmadığı kontrol ediliyordu. Şayet uygulama Google Play tarafından işletim sistemine yüklendiyse installerPackagename değişkeni sıfırdan farklı bir değer oluyordu.

Android Hooking
Android Hooking
Android Hooking

Bu fonksiyona kaynak kodu seviyesinde müdahale edip, installerPackagename değişkenini sıfırdan farklı bir değer yapıp ardından derleyip Android işletim sistemi üzerinde çalıştırabilirdim fakat Bill Gates’in bir röportajında dediği gibi “Her zaman en tembel insanları işe alırım çünkü tembeller çok karışık işleri bile en kısa yoldan yaparlar” ben de tembellik yapıp kısa bir yol aramaya karar verdim. :)

Eminim bu gibi bir durumla karşılaşan güvenlik araştırmacılarının çoğu Frida araç kiti ile ilerlemeyi tercih ederler fakat hayatın Frida’dan ibaret olmaması gerektiğine inanarak Frida’ya alternatif bir araç, farklı bir yol aramaya karar verdim. Google arama motorunda kısa bir araştırma yaptıktan sonra daha önce sızma testlerinde özellikle SSL Pinning‘i atlatmak için kullandığım ve 1400’den fazla eklentiye sahip olan Xposed Framework aklıma geldi.

Geny Motion üzerinde bulunan Android Oreo işletim sistemine Xposed Framework’u kurduktan sonra eklentilerine göz atmaya başladım. Eklentiler arasında XPrivaclyLua isimli eklenti hemen dikkatimi çekti. Adından da anlaşılabileceği üzere bu eklenti, Android üzerinde yüklü olan uygulamaları sahte bilgilerle (sahte konum bilgisi gibi) besleyerek mahremiyetinizi korumaya yardımcı olmaktadır. Çalışma yöntemi olarak kabaca bu bilgileri toplamaya çalışan fonksiyonlara kanca atarak gerçek bilgiler yerine sahte bilgiler vermektedir. Eklentiyi ihtiyaçlarınız doğrultusunda şekillendirmek için ise Pro sürümünü yükleyerek Lua programlama dili ile betikler oluşturmanız gerekmektedir.

Android Hooking
Android Hooking
Android Hooking

Lua ile installerPackagename değişkenini değiştiren ufak bir betik hazırlayıp aktif hale getirdikten sonra uygulamayı çalıştırdığımda uygulamanın artık daha önceki uyarı mesajını çıkarmadığını ve Charles Proxy ile web trafiğini görüntüleyebildiğimi görerek mutlu sona ulaşmış oldum.

Android Hooking
Android Hooking
Android Hooking

Bu yazının güvenlik araştırmalarında Frida’ya alternatif araç ve yöntem arayanlara ışık tutacağınu ümit ederek bir sonraki yazıda görüşmek dileğiyle herkese güvenli günler dilerim.

image_pdfShow this post in PDF formatimage_printPrint this page
7 comments
Leave a Reply

Your email address will not be published. Required fields are marked *

You May Also Like
Read More

e-Devlet Hacklendi mi?

If you are looking for an English version of this article, please visit here. Öncelikle yazının sonunda söyleyeceğimi başta söyleyeyim, “Hayır, hack-len-me-di!” Peki bu durumda vatandaş olarak rahat bir nefes alabilir misiniz ? Maalesef hayır. Bunun sebebini de yazının devamında okuyabilirsiniz. Zaman zaman hortlayan “e-Devlet Hacklendi!”, “e-Devlet verileri çalındı!”, “85…
Read More
Read More

WhatsApp Dolandırıcıları

If you are looking for an English version of this article, please visit here. Başlangıç Son günlerde hemen hemen WhatsApp uygulaması kullanan herkesi rahatsız eden yabancı cep telefonu numaralarından gelen çağrılardan, mesajlardan ben de yakın zamanda nasibimi aldım ve tabii ki diğer dolandırıcılıklarla ilgili yazılarımda (Kripto Para Dolandırıcıları, LinkedIn Dolandırıcıları,…
Read More
Read More

LinkedIn Dolandırıcıları

If you are looking for an English version of this article, please visit here. Uzun yıllardan beri sosyal ağları ve medyayı etkin kullanan bir siber güvenlik araştırmacısı olarak bağlantılarım arasında yer alanlarınız özellikle hafta içi LinkedIn ve Twitter üzerinden okuduğum ve beğendiğim siber güvenlik makalelerini, haberleri paylaştıklarımı farkediyorlardır. Twitter hesabımın…
Read More
Read More

Profilime Kim Baktı?

If you are looking for an English version of this article, please visit here. 23 Eylül 2020 tarihinde Twitter’da siber güvenlik ile ilgili haberlere göz gezdirirken gündem olan başlıklarda #profilimekimbaktı etiketi dikkatimi çekti. Beni oldukça şüphelendiren bu etiketin gündem olmasının arkasında yatan sebebi bulmak için bu etiketi paylaşan hesaplara göz…
Read More